summaryrefslogtreecommitdiff
path: root/drivers/rkflash
diff options
context:
space:
mode:
authorJon Lin <jon.lin@rock-chips.com>2019-01-24 10:40:10 +0800
committerTao Huang <huangtao@rock-chips.com>2019-03-08 12:01:45 +0800
commitcb508201ffb58249b09e4b157eb65cc0a9d5bbab (patch)
tree89b0248cadb2e72a5479702aa26809e9845380a9 /drivers/rkflash
parent281b14365e78eb30ad46cdbbbb14c066b0000573 (diff)
drivers: rkflash: don't update vpc when record vpc equals 0 in gc progress
1.don't update vpc when record vpc equals 0 in gc progress 2.increase the number of read retry 3.avoid danger of abnormal power lost 4.change flash_read_page_raw return to error_ecc_bits 5.add nand buildin ecc support 6.skip ECC error page instead of marking as bad block 7.adjust the way of building tables to increase ftl init Change-Id: I9ba24980c06d61a5a1d66019378075e0171a5887 Signed-off-by: Jon Lin <jon.lin@rock-chips.com>
Diffstat (limited to 'drivers/rkflash')
-rw-r--r--drivers/rkflash/flash.c73
-rw-r--r--drivers/rkflash/flash.h1
-rw-r--r--drivers/rkflash/flash_com.h5
-rw-r--r--drivers/rkflash/rk_sftl_arm_v7.S11871
-rw-r--r--drivers/rkflash/rk_sftl_arm_v7_thumb.S10339
-rw-r--r--drivers/rkflash/rk_sftl_arm_v8.S8332
6 files changed, 15682 insertions, 14939 deletions
diff --git a/drivers/rkflash/flash.c b/drivers/rkflash/flash.c
index ab4d89d895e6..c5a737b08716 100644
--- a/drivers/rkflash/flash.c
+++ b/drivers/rkflash/flash.c
@@ -18,6 +18,7 @@ static u8 g_nand_max_die;
static u16 g_totle_block;
static u8 g_nand_flash_ecc_bits;
static u8 g_nand_idb_res_blk_num;
+static u8 g_nand_ecc_en;
static struct NAND_PARA_INFO_T nand_para = {
2,
@@ -123,6 +124,7 @@ static void flash_erase_cmd(u8 cs, u32 page_addr)
static void flash_prog_second_cmd(u8 cs, u32 page_addr)
{
+ usleep_range(100, 120);
nandc_writel(PAGE_PROG_CMD & 0x00ff, NANDC_CHIP_CMD(cs));
}
@@ -142,9 +144,28 @@ static void flash_read_random_dataout_cmd(u8 cs, u32 col_addr)
nandc_writel(READ_DP_OUT_CMD & 0x00ff, NANDC_CHIP_CMD(cs));
}
+static u32 flash_read_ecc(u8 cs)
+{
+ u32 ecc0, ecc1;
+
+ nandc_writel(READ_ECC_STATUS_CMD, NANDC_CHIP_CMD(cs));
+ nandc_delayns(80);
+ ecc0 = nandc_readl(NANDC_CHIP_DATA(cs)) & 0xF;
+ ecc1 = nandc_readl(NANDC_CHIP_DATA(cs)) & 0xF;
+ if (ecc1 > ecc0)
+ ecc0 = ecc1;
+ ecc1 = nandc_readl(NANDC_CHIP_DATA(cs)) & 0xF;
+ if (ecc1 > ecc0)
+ ecc0 = ecc1;
+ ecc1 = nandc_readl(NANDC_CHIP_DATA(cs)) & 0xF;
+ if (ecc1 > ecc0)
+ ecc0 = ecc1;
+
+ return ecc0;
+}
+
static u32 flash_read_page_raw(u8 cs, u32 page_addr, u32 *p_data, u32 *p_spare)
{
- u32 ret = 0;
u32 error_ecc_bits;
u32 sec_per_page = nand_para.sec_per_page;
@@ -157,34 +178,44 @@ static u32 flash_read_page_raw(u8 cs, u32 page_addr, u32 *p_data, u32 *p_spare)
error_ecc_bits = nandc_xfer_data(cs, NANDC_READ, sec_per_page,
p_data, p_spare);
- if (error_ecc_bits > 2) {
- PRINT_NANDC_E("FlashReadRawPage %x %x error_ecc_bits %d\n",
- cs, page_addr, error_ecc_bits);
- if (p_data)
- PRINT_NANDC_HEX("data:", p_data, 4, 8);
- if (p_spare)
- PRINT_NANDC_HEX("spare:", p_spare, 4, 2);
- }
+
nandc_flash_de_cs(cs);
if (error_ecc_bits != NAND_STS_ECC_ERR) {
- if (error_ecc_bits >= (u32)nand_para.ecc_bits - 3)
- ret = NAND_STS_REFRESH;
- else
- ret = NAND_STS_OK;
+ if (error_ecc_bits >= (u32)nand_para.ecc_bits - 3) {
+ error_ecc_bits = NAND_STS_REFRESH;
+ } else {
+ error_ecc_bits = NAND_STS_OK;
+ if (g_nand_ecc_en) {
+ u32 nand_ecc = flash_read_ecc(cs);
+
+ if (nand_ecc >= 6) {
+ PRINT_NANDC_E("%s nand ecc %x ecc %d\n",
+ __func__, page_addr, nand_ecc);
+ error_ecc_bits = NAND_STS_REFRESH;
+ }
+ }
+ }
}
- return ret;
+ return error_ecc_bits;
}
static u32 flash_read_page(u8 cs, u32 page_addr, u32 *p_data, u32 *p_spare)
{
- u32 ret;
+ u32 ret, i;
ret = flash_read_page_raw(cs, page_addr, p_data, p_spare);
- if (ret == NAND_STS_ECC_ERR)
- ret = flash_read_page_raw(cs, page_addr, p_data, p_spare);
-
+ if (ret == NAND_STS_ECC_ERR) {
+ for (i = 0; i < 50; i++) {
+ ret = flash_read_page_raw(cs, page_addr, p_data, p_spare);
+ if (ret != NAND_STS_ECC_ERR) {
+ ret = NAND_STS_REFRESH;
+ break;
+ }
+ }
+ PRINT_NANDC_E("flash_read_page %x err_ecc %d\n", page_addr, ret);
+ }
return ret;
}
@@ -468,6 +499,7 @@ u32 nandc_flash_init(void __iomem *nandc_addr)
PRINT_NANDC_I("...%s enter...\n", __func__);
g_nand_idb_res_blk_num = MAX_IDB_RESERVED_BLOCK;
+ g_nand_ecc_en = 0;
nandc_init(nandc_addr);
@@ -487,6 +519,8 @@ u32 nandc_flash_init(void __iomem *nandc_addr)
return FTL_UNSUPPORTED_FLASH;
}
}
+ if (id_byte[0][0] == 0x98 && (id_byte[0][4] & 0x80))
+ g_nand_ecc_en = 1;
nand_para.nand_id[1] = id_byte[0][1];
if (id_byte[0][1] == 0xDA) {
nand_para.plane_per_die = 2;
@@ -497,8 +531,9 @@ u32 nandc_flash_init(void __iomem *nandc_addr)
nand_para.plane_per_die = 2;
nand_para.sec_per_page = 8;
} else if (id_byte[0][0] == 0x98 && id_byte[0][3] == 0x26) {
- nand_para.blk_per_plane = 2048;
+ nand_para.blk_per_plane = 1024;
nand_para.sec_per_page = 8;
+ nand_para.plane_per_die = 2;
} else {
nand_para.plane_per_die = 2;
nand_para.blk_per_plane = 2048;
diff --git a/drivers/rkflash/flash.h b/drivers/rkflash/flash.h
index 4c5771219d71..3b658c37e75f 100644
--- a/drivers/rkflash/flash.h
+++ b/drivers/rkflash/flash.h
@@ -40,6 +40,7 @@
#define BLOCK_ERASE_CMD 0x60d0
#define READ_CMD 0x0030
#define READ_DP_OUT_CMD 0x05E0
+#define READ_ECC_STATUS_CMD 0x7A
#define SAMSUNG 0x00 /* SAMSUNG */
#define TOSHIBA 0x01 /* TOSHIBA */
diff --git a/drivers/rkflash/flash_com.h b/drivers/rkflash/flash_com.h
index 5de1998160d9..dd87effe2447 100644
--- a/drivers/rkflash/flash_com.h
+++ b/drivers/rkflash/flash_com.h
@@ -15,6 +15,11 @@
#define NAND_STS_EMPTY 512 /* page is not proged */
#define NAND_STS_ECC_ERR NAND_ERROR
+#define NAND_IDB_START 64 /* 32 KB*/
+#define NAND_IDB_SIZE 512 /* 256 KB*/
+#define NAND_IDB_END (NAND_IDB_START + NAND_IDB_SIZE - 1)
+#define DEFAULT_IDB_RESERVED_BLOCK 16
+
#define FULL_SLC 0
#define SLC 1
diff --git a/drivers/rkflash/rk_sftl_arm_v7.S b/drivers/rkflash/rk_sftl_arm_v7.S
index 170f03e7d607..e8f58318b4e4 100644
--- a/drivers/rkflash/rk_sftl_arm_v7.S
+++ b/drivers/rkflash/rk_sftl_arm_v7.S
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
- * date: 2018-12-27
+ * date: 2019-02-20
*/
.file "rk_sftl.c"
.global __udivsi3
@@ -72,6 +72,94 @@ ftl_set_blk_mode.part.6:
.word .LANCHOR0
.size ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6
.align 2
+ .global ftl_print_sblk_info
+ .syntax unified
+ .arm
+ .fpu softvfp
+ .type ftl_print_sblk_info, %function
+ftl_print_sblk_info:
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 1, uses_anonymous_args = 0
+ mov ip, sp
+ push {r4, fp, ip, lr, pc}
+ sub fp, ip, #4
+ sub sp, sp, #12
+ ldr r4, .L9
+ ldr r1, .L9+4
+ ldr r0, .L9+8
+ bl sftl_printk
+ ldrh r1, [r4, #28]
+ ldr ip, [r4, #76]
+ ldrb r3, [r4, #34] @ zero_extendqisi2
+ ldrh r2, [r4, #30]
+ lsl r0, r1, #1
+ ldrh r0, [ip, r0]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #32]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #36] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+12
+ bl sftl_printk
+ ldrh r1, [r4, #80]
+ ldr ip, [r4, #76]
+ ldrb r3, [r4, #86] @ zero_extendqisi2
+ ldrh r2, [r4, #82]
+ lsl r0, r1, #1
+ ldrh r0, [ip, r0]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #84]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #88] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+16
+ bl sftl_printk
+ ldrh r1, [r4, #128]
+ ldr ip, [r4, #76]
+ ldrb r3, [r4, #134] @ zero_extendqisi2
+ ldrh r2, [r4, #130]
+ lsl r0, r1, #1
+ ldrh r0, [ip, r0]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #132]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #136] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+20
+ bl sftl_printk
+ ldrh r1, [r4, #176]
+ ldr ip, [r4, #76]
+ ldrb r3, [r4, #182] @ zero_extendqisi2
+ ldrh r2, [r4, #178]
+ lsl r0, r1, #1
+ ldrh r0, [ip, r0]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #180]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #184] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+24
+ bl sftl_printk
+ ldrh r3, [r4, #224]
+ ldrh r2, [r4, #226]
+ ldrh r1, [r4, #228]
+ ldr r0, .L9+28
+ bl sftl_printk
+ sub sp, fp, #16
+ ldmfd sp, {r4, fp, sp, pc}
+.L10:
+ .align 2
+.L9:
+ .word .LANCHOR0
+ .word .LC0
+ .word .LC1
+ .word .LC2
+ .word .LC3
+ .word .LC4
+ .word .LC5
+ .word .LC6
+ .size ftl_print_sblk_info, .-ftl_print_sblk_info
+ .align 2
.global Ftl_log2
.syntax unified
.arm
@@ -85,17 +173,17 @@ Ftl_log2:
sub fp, ip, #4
mov r1, #0
mov r2, #1
-.L9:
+.L12:
cmp r2, r0
uxth r3, r1
add r1, r1, #1
- bls .L10
+ bls .L13
sub r0, r3, #1
uxth r0, r0
ldmfd sp, {fp, sp, pc}
-.L10:
+.L13:
lsl r2, r2, #1
- b .L9
+ b .L12
.size Ftl_log2, .-Ftl_log2
.align 2
.global FtlPrintInfo
@@ -123,25 +211,25 @@ FtlSysBlkNumInit:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L13
+ ldr r3, .L16
uxth r0, r0
- ldrh r2, [r3, #32]
+ ldrh r2, [r3, #236]
cmp r0, #24
- ldrh r1, [r3, #42]
+ ldrh r1, [r3, #246]
movcc r0, #24
- str r0, [r3, #28]
+ str r0, [r3, #232]
mul r2, r0, r2
sub r0, r1, r0
- ldr r1, [r3, #48]
- strh r0, [r3, #40] @ movhi
+ ldr r1, [r3, #252]
+ strh r0, [r3, #244] @ movhi
mov r0, #0
- str r2, [r3, #36]
+ str r2, [r3, #240]
sub r2, r1, r2
- str r2, [r3, #44]
+ str r2, [r3, #248]
ldmfd sp, {fp, sp, pc}
-.L14:
+.L17:
.align 2
-.L13:
+.L16:
.word .LANCHOR0
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
.global __divsi3
@@ -152,133 +240,164 @@ FtlSysBlkNumInit:
.fpu softvfp
.type FtlConstantsInit, %function
FtlConstantsInit:
- @ args = 0, pretend = 0, frame = 4
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #4
- mov r7, r0
- ldrh r2, [r7, #6]
- ldrh ip, [r7, #14]
- ldr r4, .L25
+ sub sp, sp, #8
+ mov r3, r0
+ ldr r4, .L28
+ movw ip, #262
ldrh r1, [r0]
- cmp ip, #4
ldrh r6, [r0, #2]
- strh r2, [r4, #42] @ movhi
+ add r2, r4, #256
+ ldrh r0, [r0, #4]
+ strh r1, [r2] @ movhi
+ movw r2, #258
+ strh r6, [r4, r2] @ movhi
+ add r2, r4, #260
+ ldrh lr, [r3, #14]
+ strh r0, [r2] @ movhi
+ ldrh r2, [r3, #6]
+ cmp lr, #4
+ strh lr, [r4, ip] @ movhi
+ strh r2, [r4, #246] @ movhi
lsreq r2, r2, #1
- strh ip, [r4, #58] @ movhi
- ldr ip, .L25+4
- strheq r2, [r4, #42] @ movhi
+ strheq r2, [r4, #246] @ movhi
moveq r2, #8
- ldrh r0, [r0, #4]
- strheq r2, [r4, #58] @ movhi
+ strheq r2, [r4, ip] @ movhi
mov r2, #0
- strh r1, [r4, #52] @ movhi
- strh r6, [r4, #54] @ movhi
- strh r0, [r4, #56] @ movhi
-.L17:
+ ldr ip, .L28+4
+.L20:
strb r2, [r2, ip]
add r2, r2, #1
cmp r2, #32
- bne .L17
- ldrh r5, [r4, #42]
+ bne .L20
+ ldrh r5, [r4, #246]
smulbb r6, r6, r0
- mov r2, #5
+ ldr r8, .L28+8
cmp r1, #1
- mov ip, #640
+ ldr r2, .L28+12
+ mov ip, #5
uxth r6, r6
- strh r2, [r4, #92] @ movhi
+ mov lr, #0
smulbb r0, r0, r5
- mov r2, #0
- strheq r1, [r4, #92] @ movhi
- strh ip, [r4, #96] @ movhi
+ mov r7, r8
+ strh ip, [r2] @ movhi
+ movw ip, #298
+ strheq r1, [r2] @ movhi
+ mov r2, #640
uxth r0, r0
- str ip, [fp, #-44]
- strh r2, [r4, #94] @ movhi
- strh r6, [r4, #32] @ movhi
- strh r0, [r4, #98] @ movhi
+ strh r2, [r7], #4 @ movhi
+ movw r2, #302
+ strh lr, [r4, ip] @ movhi
+ str r3, [fp, #-44]
+ strh r0, [r4, r2] @ movhi
+ strh r6, [r4, #236] @ movhi
bl Ftl_log2
- ldrh r9, [r7, #12]
- ldrh r10, [r4, #58]
- strh r0, [r4, #100] @ movhi
- strh r9, [r4, #102] @ movhi
- smulbb r2, r6, r9
- mov r0, r10
- strh r9, [r4, #104] @ movhi
- strh r2, [r4, #106] @ movhi
+ ldr r3, [fp, #-44]
+ movw r2, #306
+ strh r0, [r7] @ movhi
+ mov r7, r8
+ add r8, r8, #24
+ ldrh r10, [r3, #12]
+ str r3, [fp, #-48]
+ strh r10, [r4, r2] @ movhi
+ movw r2, #310
+ smulbb r1, r6, r10
+ strh r10, [r8, #-16] @ movhi
+ strh r1, [r4, r2] @ movhi
+ movw r2, #262
+ ldrh r1, [r4, r2]
+ mov r0, r1
+ str r1, [fp, #-44]
bl Ftl_log2
- ldrh r3, [r7, #20]
- lsl r2, r10, #9
- mov r8, r0
- strh r0, [r4, #108] @ movhi
+ ldr r1, [fp, #-44]
+ mov r9, r0
+ strh r0, [r7, #12]! @ movhi
+ movw r0, #314
+ ldr r3, [fp, #-48]
+ lsl r2, r1, #9
uxth r2, r2
- mul r1, r9, r10
- strh r3, [r4, #114] @ movhi
+ strh r2, [r4, r0] @ movhi
+ lsr r2, r2, #8
mov r0, #5120
+ strh r2, [r8, #-8] @ movhi
+ ldrh r2, [r3, #20]
+ movw r3, #318
+ strh r2, [r4, r3] @ movhi
mul r3, r5, r6
- strh r2, [r4, #110] @ movhi
- lsr r2, r2, #8
lsl r5, r5, #6
- strh r2, [r4, #112] @ movhi
- str r3, [r4, #48]
+ str r3, [r4, #252]
+ mul r3, r1, r3
+ mul r1, r10, r1
mul r3, r10, r3
- mul r3, r9, r3
asr r3, r3, #11
- str r3, [r4, #116]
+ str r3, [r4, #320]
bl __divsi3
- ldr ip, [fp, #-44]
uxth r0, r0
+ movw r2, #326
mov r1, r6
cmp r0, #4
movls r3, #4
- strhhi r0, [r4, #120] @ movhi
- asr r7, ip, r8
- add r8, r8, #9
- asr r5, r5, r8
- strhls r3, [r4, #120] @ movhi
- add r7, r7, #2
- ldrh r0, [r4, #120]
- strh r5, [r4, #124] @ movhi
+ strhhi r0, [r8] @ movhi
+ strhls r3, [r8] @ movhi
+ mov r3, #640
+ asr r3, r3, r9
+ add r9, r9, #9
+ asr r5, r5, r9
+ ldrh r0, [r8]
+ add r3, r3, #2
+ strh r3, [r4, r2] @ movhi
+ ldr r3, .L28+16
+ strh r5, [r3] @ movhi
uxth r5, r5
- strh r7, [r4, #122] @ movhi
mul r3, r6, r5
add r5, r5, #8
- str r3, [r4, #128]
+ str r3, [r4, #332]
bl __udivsi3
uxtah r0, r5, r0
cmp r6, #1
addeq r0, r0, #4
- str r0, [r4, #28]
- ldrh r0, [r4, #28]
+ str r0, [r4, #232]
+ ldrh r0, [r4, #232]
bl FtlSysBlkNumInit
- ldr r3, [r4, #28]
+ ldr r3, [r4, #232]
mov r0, #0
- str r0, [r4, #140]
- str r3, [r4, #132]
- ldr r3, [r4, #44]
+ str r0, [r4, #344]
+ str r3, [r4, #336]
+ ldr r3, [r4, #248]
lsl r2, r3, #2
- ldrh r3, [r4, #102]
+ movw r3, #306
+ ldrh r3, [r4, r3]
mul r3, r3, r2
- ldrh r2, [r4, #108]
+ ldrh r2, [r7]
add r2, r2, #9
lsr r3, r3, r2
+ ldr r2, .L28+20
add r3, r3, #2
- strh r3, [r4, #136] @ movhi
- mov r3, #32
- strh r3, [r4, #138] @ movhi
- ldrh r3, [r4, #120]
+ strh r3, [r2] @ movhi
+ mov r2, #32
+ movw r3, #342
+ strh r2, [r4, r3] @ movhi
+ ldrh r3, [r8]
add r3, r3, #3
- strh r3, [r4, #120] @ movhi
- ldr r3, [r4, #128]
+ strh r3, [r8] @ movhi
+ ldr r3, [r4, #332]
add r3, r3, #3
- str r3, [r4, #128]
- ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L26:
+ str r3, [r4, #332]
+ sub sp, fp, #40
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L29:
.align 2
-.L25:
+.L28:
.word .LANCHOR0
- .word .LANCHOR0+60
+ .word .LANCHOR0+264
+ .word .LANCHOR0+300
+ .word .LANCHOR0+296
+ .word .LANCHOR0+328
+ .word .LANCHOR0+340
.size FtlConstantsInit, .-FtlConstantsInit
.align 2
.global IsBlkInVendorPart
@@ -292,30 +411,30 @@ IsBlkInVendorPart:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r2, .L33
+ ldr r3, .L36
uxth r1, r0
- ldrh r0, [r2, #144]
+ add r2, r3, #348
+ ldrh r0, [r2]
cmp r0, #0
- ldrne r3, [r2, #148]
- ldrhne r2, [r2, #120]
- addne r2, r3, r2, lsl #1
- bne .L29
- ldmfd sp, {fp, sp, pc}
-.L30:
- ldrh r0, [r3], #2
- cmp r1, r0
- beq .L32
-.L29:
- cmp r3, r2
- bne .L30
+ ldmfdeq sp, {fp, sp, pc}
+ ldr r2, [r3, #352]
+ add r3, r3, #324
+ ldrh r3, [r3]
+ add r3, r2, r3, lsl #1
+.L32:
+ cmp r2, r3
+ bne .L33
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L32:
+.L33:
+ ldrh r0, [r2], #2
+ cmp r1, r0
+ bne .L32
mov r0, #1
ldmfd sp, {fp, sp, pc}
-.L34:
+.L37:
.align 2
-.L33:
+.L36:
.word .LANCHOR0
.size IsBlkInVendorPart, .-IsBlkInVendorPart
.align 2
@@ -345,12 +464,12 @@ sftl_get_density:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L37
- ldr r0, [r3, #140]
+ ldr r3, .L40
+ ldr r0, [r3, #344]
ldmfd sp, {fp, sp, pc}
-.L38:
+.L41:
.align 2
-.L37:
+.L40:
.word .LANCHOR0
.size sftl_get_density, .-sftl_get_density
.global __umodsi3
@@ -367,10 +486,11 @@ FtlBbmMapBadBlock:
push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
+ movw r3, #302
+ ldr r4, .L43
uxth r5, r0
- ldr r4, .L40
mov r0, r5
- ldrh r7, [r4, #98]
+ ldrh r7, [r4, r3]
mov r1, r7
bl __udivsi3
uxth r6, r0
@@ -379,28 +499,29 @@ FtlBbmMapBadBlock:
bl __umodsi3
add r2, r4, r6, lsl #2
uxth r3, r0
- ldr r2, [r2, #180]
+ ldr r2, [r2, #384]
lsr r0, r3, #5
and ip, r3, #31
mov lr, #1
+ add r4, r4, #356
ldr r1, [r2, r0, lsl #2]
orr r1, r1, lr, lsl ip
str r1, [r2, r0, lsl #2]
mov r2, r6
str r1, [sp]
mov r1, r5
- ldr r0, .L40+4
+ ldr r0, .L43+4
bl sftl_printk
- ldrh r3, [r4, #158]
+ ldrh r3, [r4, #6]
mov r0, #0
add r3, r3, #1
- strh r3, [r4, #158] @ movhi
+ strh r3, [r4, #6] @ movhi
ldmib sp, {r4, r5, r6, r7, fp, sp, pc}
-.L41:
+.L44:
.align 2
-.L40:
+.L43:
.word .LANCHOR0
- .word .LC0
+ .word .LC7
.size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
.align 2
.global FtlBbmIsBadBlock
@@ -414,9 +535,10 @@ FtlBbmIsBadBlock:
mov ip, sp
push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r5, .L43
+ ldr r5, .L46
+ movw r3, #302
uxth r6, r0
- ldrh r7, [r5, #98]
+ ldrh r7, [r5, r3]
mov r0, r6
mov r1, r7
bl __umodsi3
@@ -428,14 +550,14 @@ FtlBbmIsBadBlock:
lsr r2, r4, #5
add r5, r5, r0, lsl #2
and r4, r4, #31
- ldr r3, [r5, #180]
+ ldr r3, [r5, #384]
ldr r0, [r3, r2, lsl #2]
lsr r0, r0, r4
and r0, r0, #1
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L44:
+.L47:
.align 2
-.L43:
+.L46:
.word .LANCHOR0
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
.align 2
@@ -464,19 +586,20 @@ FtlBbtMemInit:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r0, .L47
- mvn r3, #0
- mov r2, #16
+ ldr r0, .L50
+ mvn r2, #0
mov r1, #255
- strh r3, [r0, #152] @ movhi
- mov r3, #0
- strh r3, [r0, #158] @ movhi
- add r0, r0, #164
+ add r3, r0, #356
+ add r0, r0, #368
+ strh r2, [r3] @ movhi
+ mov r2, #0
+ strh r2, [r3, #6] @ movhi
+ mov r2, #16
bl memset
ldmfd sp, {fp, sp, pc}
-.L48:
+.L51:
.align 2
-.L47:
+.L50:
.word .LANCHOR0
.size FtlBbtMemInit, .-FtlBbtMemInit
.align 2
@@ -491,28 +614,30 @@ FtlBbtCalcTotleCnt:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L56
+ ldr r3, .L59
+ movw r2, #302
+ movw r1, #258
mov r5, #0
+ ldrh r2, [r3, r2]
mov r4, r5
- ldrh r2, [r3, #98]
- ldrh r6, [r3, #54]
+ ldrh r6, [r3, r1]
mul r6, r6, r2
-.L50:
+.L53:
uxth r0, r5
cmp r0, r6
- blt .L52
+ blt .L55
mov r0, r4
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L52:
+.L55:
bl FtlBbmIsBadBlock
cmp r0, #0
add r5, r5, #1
addne r4, r4, #1
uxthne r4, r4
- b .L50
-.L57:
+ b .L53
+.L60:
.align 2
-.L56:
+.L59:
.word .LANCHOR0
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
.align 2
@@ -527,15 +652,17 @@ V2P_block:
mov ip, sp
push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L59
+ ldr r4, .L62
uxth r7, r0
uxth r5, r1
- ldrh r6, [r4, #56]
+ add r3, r4, #260
mov r0, r7
+ ldrh r6, [r3]
mov r1, r6
bl __udivsi3
- ldrh r4, [r4, #98]
+ movw r3, #302
smulbb r5, r6, r5
+ ldrh r4, [r4, r3]
mov r1, r6
smulbb r4, r4, r0
mov r0, r7
@@ -544,9 +671,9 @@ V2P_block:
add r0, r4, r0
uxth r0, r0
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L60:
+.L63:
.align 2
-.L59:
+.L62:
.word .LANCHOR0
.size V2P_block, .-V2P_block
.align 2
@@ -561,11 +688,13 @@ P2V_plane:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L62
+ ldr r3, .L65
uxth r5, r0
- ldrh r6, [r3, #56]
+ add r2, r3, #260
mov r0, r5
- ldrh r1, [r3, #98]
+ ldrh r6, [r2]
+ movw r2, #302
+ ldrh r1, [r3, r2]
bl __udivsi3
mov r1, r6
smulbb r4, r0, r6
@@ -574,9 +703,9 @@ P2V_plane:
add r0, r4, r0
uxth r0, r0
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L63:
+.L66:
.align 2
-.L62:
+.L65:
.word .LANCHOR0
.size P2V_plane, .-P2V_plane
.align 2
@@ -591,18 +720,20 @@ P2V_block_in_plane:
mov ip, sp
push {r4, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L65
+ ldr r4, .L68
+ movw r3, #302
uxth r0, r0
- ldrh r1, [r4, #98]
+ ldrh r1, [r4, r3]
+ add r4, r4, #260
bl __umodsi3
- ldrh r1, [r4, #56]
+ ldrh r1, [r4]
uxth r0, r0
bl __udivsi3
uxth r0, r0
ldmfd sp, {r4, fp, sp, pc}
-.L66:
+.L69:
.align 2
-.L65:
+.L68:
.word .LANCHOR0
.size P2V_block_in_plane, .-P2V_block_in_plane
.align 2
@@ -618,13 +749,13 @@ ftl_cmp_data_ver:
push {fp, ip, lr, pc}
sub fp, ip, #4
cmp r0, r1
- bls .L68
+ bls .L71
sub r0, r0, r1
cmp r0, #-2147483648
movhi r0, #0
movls r0, #1
ldmfd sp, {fp, sp, pc}
-.L68:
+.L71:
sub r0, r1, r0
cmp r0, #-2147483648
movls r0, #0
@@ -643,20 +774,21 @@ FtlFreeSysBlkQueueInit:
mov ip, sp
push {r4, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L71
+ ldr r2, .L74
mov r4, #0
mov r1, #2048
- strh r0, [r3, #212] @ movhi
- add r0, r3, #220
- strh r4, [r3, #214] @ movhi
- strh r4, [r3, #216] @ movhi
- strh r4, [r3, #218] @ movhi
+ add r3, r2, #416
+ strh r0, [r3] @ movhi
+ add r0, r2, #424
+ strh r4, [r3, #2] @ movhi
+ strh r4, [r3, #4] @ movhi
+ strh r4, [r3, #6] @ movhi
bl __memzero
mov r0, r4
ldmfd sp, {r4, fp, sp, pc}
-.L72:
+.L75:
.align 2
-.L71:
+.L74:
.word .LANCHOR0
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
.align 2
@@ -671,15 +803,15 @@ FtlFreeSysBlkQueueEmpty:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L74
- ldrh r0, [r3, #218]
+ ldr r3, .L77
+ ldrh r0, [r3, #6]
clz r0, r0
lsr r0, r0, #5
ldmfd sp, {fp, sp, pc}
-.L75:
+.L78:
.align 2
-.L74:
- .word .LANCHOR0
+.L77:
+ .word .LANCHOR0+416
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
.align 2
.global FtlFreeSysBlkQueueFull
@@ -693,16 +825,16 @@ FtlFreeSysBlkQueueFull:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L77
- ldrh r0, [r3, #218]
+ ldr r3, .L80
+ ldrh r0, [r3, #6]
sub r0, r0, #1024
clz r0, r0
lsr r0, r0, #5
ldmfd sp, {fp, sp, pc}
-.L78:
+.L81:
.align 2
-.L77:
- .word .LANCHOR0
+.L80:
+ .word .LANCHOR0+416
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
.align 2
.global FtlFreeSysBLkSort
@@ -716,42 +848,42 @@ FtlFreeSysBLkSort:
mov ip, sp
push {r4, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L88
- ldrh r2, [r3, #218]
+ ldr r3, .L91
+ ldrh r2, [r3, #6]
cmp r2, #0
ldmfdeq sp, {r4, fp, sp, pc}
- ldr r2, .L88+4
+ ldr r2, .L91+4
mov r4, #0
- ldrh r1, [r3, #214]
+ ldrh r1, [r3, #2]
mov lr, r4
ldrh ip, [r2, #28]
- ldrh r2, [r3, #216]
+ ldrh r2, [r3, #4]
and ip, ip, #31
-.L81:
+.L84:
uxth r0, r4
add r4, r4, #1
cmp ip, r0
- bgt .L82
+ bgt .L85
cmp lr, #0
- strhne r1, [r3, #214] @ movhi
- strhne r2, [r3, #216] @ movhi
+ strhne r1, [r3, #2] @ movhi
+ strhne r2, [r3, #4] @ movhi
ldmfd sp, {r4, fp, sp, pc}
-.L82:
+.L85:
add r0, r3, r1, lsl #1
add r1, r1, #1
ubfx r1, r1, #0, #10
- ldrh lr, [r0, #220]
+ ldrh lr, [r0, #8]
add r0, r3, r2, lsl #1
- strh lr, [r0, #220] @ movhi
+ strh lr, [r0, #8] @ movhi
mov lr, #1
add r2, r2, lr
ubfx r2, r2, #0, #10
- b .L81
-.L89:
+ b .L84
+.L92:
.align 2
-.L88:
- .word .LANCHOR0
- .word .LANCHOR0+2268
+.L91:
+ .word .LANCHOR0+416
+ .word .LANCHOR0+2472
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 2
.global IsInFreeQueue
@@ -765,35 +897,35 @@ IsInFreeQueue:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L96
+ ldr r3, .L99
uxth r0, r0
- ldrh ip, [r3, #218]
+ ldrh ip, [r3, #6]
cmp ip, #1024
- ldrhne lr, [r3, #214]
+ ldrhne lr, [r3, #2]
movne r1, #0
- bne .L92
-.L94:
+ bne .L95
+.L97:
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L93:
+.L96:
add r2, r1, lr
ubfx r2, r2, #0, #10
add r2, r3, r2, lsl #1
- ldrh r2, [r2, #220]
+ ldrh r2, [r2, #8]
cmp r2, r0
- beq .L95
+ beq .L98
add r1, r1, #1
-.L92:
- cmp r1, ip
- bcc .L93
- b .L94
.L95:
+ cmp r1, ip
+ bcc .L96
+ b .L97
+.L98:
mov r0, #1
ldmfd sp, {fp, sp, pc}
-.L97:
+.L100:
.align 2
-.L96:
- .word .LANCHOR0
+.L99:
+ .word .LANCHOR0+416
.size IsInFreeQueue, .-IsInFreeQueue
.align 2
.global insert_data_list
@@ -802,50 +934,46 @@ IsInFreeQueue:
.fpu softvfp
.type insert_data_list, %function
insert_data_list:
- @ args = 0, pretend = 0, frame = 12
+ @ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #12
+ sub sp, sp, #4
uxth r0, r0
- ldr r1, .L114
- ldrh r3, [r1, #40]
+ ldr r1, .L116
+ ldrh r3, [r1, #244]
mov lr, r1
cmp r3, r0
- bls .L100
- ldr r6, [r1, #2316]
+ bls .L103
+ ldr r6, [r1, #2520]
lsl r5, r0, #3
mvn ip, #0
add r2, r6, r5
strh ip, [r2, #2] @ movhi
strh ip, [r6, r5] @ movhi
- ldr r3, [r1, #2320]
- cmp r3, #0
- bne .L101
-.L113:
- str r2, [r1, #2320]
- b .L100
-.L101:
- ldr r7, [r1, #2324]
- lsl r4, r0, #1
+ ldr r3, [r1, #2524]
+ cmp r3, #0
+ bne .L104
+.L115:
+ str r2, [r1, #2524]
+ b .L103
+.L104:
+ ldr r8, [r1, #76]
+ lsl r1, r0, #1
+ ldr r7, [lr, #2520]
+ movw r9, #65535
+ ldrh lr, [lr, #244]
+ ldrh r4, [r8, r1]
ldrh r1, [r2, #4]
- ldr r10, [lr, #2316]
- ldrh r8, [r7, r4]
+ str lr, [fp, #-44]
+ mov lr, #0
cmp r1, #0
- streq ip, [fp, #-44]
- mulne r1, r1, r8
- ldrh r8, [lr, #40]
- str r8, [fp, #-48]
- ldr r8, [lr, #2328]
- strne r1, [fp, #-44]
- sub r1, r3, r10
+ mulne ip, r1, r4
+ sub r1, r3, r7
ubfx r1, r1, #3, #16
- add lr, r8, r4
- str lr, [fp, #-52]
- mov lr, #0
.L109:
- ldr r4, [fp, #-48]
+ ldr r4, [fp, #-44]
add lr, lr, #1
uxth lr, lr
cmp lr, r4
@@ -854,61 +982,48 @@ insert_data_list:
cmp r0, r1
orreq r4, r4, #1
cmp r4, #0
- bne .L100
- lsl r9, r1, #1
- ldrh r4, [r7, r9]
- mov ip, r4
+ bne .L103
ldrh r4, [r3, #4]
cmp r4, #0
- mulne r4, r4, ip
- ldr ip, [fp, #-44]
- mvneq r4, #0
- cmp ip, r4
- bne .L105
- ldr ip, [fp, #-52]
- ldrh r9, [r8, r9]
- ldrh r4, [ip]
- cmp r9, r4
- bcc .L107
-.L106:
- strh r1, [r6, r5] @ movhi
- ldrh r1, [r3, #2]
- strh r1, [r2, #2] @ movhi
- ldr r1, .L114
- ldr ip, [r1, #2320]
- cmp r3, ip
- bne .L110
- strh r0, [r3, #2] @ movhi
- b .L113
-.L105:
- bcc .L106
-.L107:
- ldrh r4, [r3]
- movw ip, #65535
+ beq .L107
+ lsl r10, r1, #1
+ ldrh r10, [r8, r10]
+ mul r4, r4, r10
cmp r4, ip
+ bcs .L107
+ ldrh r4, [r3]
+ cmp r4, r9
bne .L108
strh r1, [r2, #2] @ movhi
strh r0, [r3] @ movhi
- ldr r3, .L114
- str r2, [r3, #2332]
-.L100:
+ ldr r3, .L116
+ str r2, [r3, #2528]
+.L103:
mov r0, #0
- sub sp, fp, #40
- ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+ ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
.L108:
- add r3, r10, r4, lsl #3
+ add r3, r7, r4, lsl #3
mov r1, r4
b .L109
+.L107:
+ strh r1, [r6, r5] @ movhi
+ ldrh r1, [r3, #2]
+ strh r1, [r2, #2] @ movhi
+ ldr r1, .L116
+ ldr ip, [r1, #2524]
+ cmp r3, ip
+ strheq r0, [r3, #2] @ movhi
+ beq .L115
.L110:
ldrh r2, [r3, #2]
- ldr r1, [r1, #2316]
+ ldr r1, [r1, #2520]
lsl r2, r2, #3
strh r0, [r1, r2] @ movhi
strh r0, [r3, #2] @ movhi
- b .L100
-.L115:
+ b .L103
+.L117:
.align 2
-.L114:
+.L116:
.word .LANCHOR0
.size insert_data_list, .-insert_data_list
.align 2
@@ -925,26 +1040,26 @@ INSERT_DATA_LIST:
sub fp, ip, #4
uxth r0, r0
bl insert_data_list
- ldr r2, .L118
- add r1, r2, #2336
- ldrh r2, [r2, #40]
- ldrh r3, [r1]
+ ldr r2, .L120
+ movw r1, #2532
+ ldrh r3, [r2, r1]
add r3, r3, #1
uxth r3, r3
+ strh r3, [r2, r1] @ movhi
+ ldrh r2, [r2, #244]
cmp r2, r3
- strh r3, [r1] @ movhi
ldmfdcs sp, {fp, sp, pc}
mov r2, #214
- ldr r1, .L118+4
- ldr r0, .L118+8
+ ldr r1, .L120+4
+ ldr r0, .L120+8
bl sftl_printk
ldmfd sp, {fp, sp, pc}
-.L119:
+.L121:
.align 2
-.L118:
+.L120:
.word .LANCHOR0
.word .LANCHOR1
- .word .LC1
+ .word .LC8
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
.align 2
.global insert_free_list
@@ -961,60 +1076,60 @@ insert_free_list:
uxth r0, r0
movw lr, #65535
cmp r0, lr
- beq .L121
- ldr r2, .L127
+ beq .L123
+ ldr r2, .L129
lsl r5, r0, #3
mvn r3, #0
- ldr r6, [r2, #2316]
+ ldr r6, [r2, #2520]
mov r1, r2
add ip, r6, r5
strh r3, [ip, #2] @ movhi
strh r3, [r6, r5] @ movhi
- ldr r3, [r2, #2340]
+ ldr r3, [r2, #2536]
cmp r3, #0
- streq ip, [r2, #2340]
- beq .L121
- ldr r8, [r2, #2328]
+ streq ip, [r2, #2536]
+ beq .L123
+ ldr r8, [r2, #2540]
lsl r2, r0, #1
- ldr r7, [r1, #2316]
+ ldr r7, [r1, #2520]
mov r4, lr
ldrh r9, [r8, r2]
sub r2, r3, r7
ubfx r2, r2, #3, #16
-.L125:
+.L127:
lsl lr, r2, #1
ldrh lr, [r8, lr]
cmp lr, r9
- bcs .L123
+ bcs .L125
ldrh lr, [r3]
cmp lr, r4
- bne .L124
+ bne .L126
strh r2, [ip, #2] @ movhi
strh r0, [r3] @ movhi
-.L121:
+.L123:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
-.L124:
+.L126:
add r3, r7, lr, lsl #3
mov r2, lr
- b .L125
-.L123:
+ b .L127
+.L125:
ldrh lr, [r3, #2]
strh lr, [ip, #2] @ movhi
strh r2, [r6, r5] @ movhi
- ldr r2, [r1, #2340]
+ ldr r2, [r1, #2536]
cmp r3, r2
ldrhne r2, [r3, #2]
- ldrne r1, [r1, #2316]
+ ldrne r1, [r1, #2520]
strheq r0, [r3, #2] @ movhi
- streq ip, [r1, #2340]
+ streq ip, [r1, #2536]
lslne r2, r2, #3
strhne r0, [r1, r2] @ movhi
strhne r0, [r3, #2] @ movhi
- b .L121
-.L128:
+ b .L123
+.L130:
.align 2
-.L127:
+.L129:
.word .LANCHOR0
.size insert_free_list, .-insert_free_list
.align 2
@@ -1031,26 +1146,25 @@ INSERT_FREE_LIST:
sub fp, ip, #4
uxth r0, r0
bl insert_free_list
- ldr r2, .L131
- movw r1, #2344
- ldrh r3, [r2, r1]
+ ldr r2, .L133
+ ldrh r3, [r2, #228]
add r3, r3, #1
uxth r3, r3
- strh r3, [r2, r1] @ movhi
- ldrh r2, [r2, #40]
+ strh r3, [r2, #228] @ movhi
+ ldrh r2, [r2, #244]
cmp r2, r3
ldmfdcs sp, {fp, sp, pc}
mov r2, #207
- ldr r1, .L131+4
- ldr r0, .L131+8
+ ldr r1, .L133+4
+ ldr r0, .L133+8
bl sftl_printk
ldmfd sp, {fp, sp, pc}
-.L132:
+.L134:
.align 2
-.L131:
+.L133:
.word .LANCHOR0
.word .LANCHOR1+17
- .word .LC1
+ .word .LC8
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
.align 2
.global List_remove_node
@@ -1064,70 +1178,70 @@ List_remove_node:
mov ip, sp
push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L140
+ ldr r4, .L142
uxth r1, r1
movw r3, #65535
mov r8, r0
- ldr r7, [r4, #2316]
+ ldr r7, [r4, #2520]
lsl r6, r1, #3
add r5, r7, r6
ldrh r2, [r5, #2]
cmp r2, r3
- bne .L134
+ bne .L136
ldr r3, [r0]
cmp r5, r3
- beq .L134
+ beq .L136
mov r2, #372
- ldr r1, .L140+4
- ldr r0, .L140+8
+ ldr r1, .L142+4
+ ldr r0, .L142+8
bl sftl_printk
-.L134:
+.L136:
ldr r3, [r8]
ldrh r2, [r7, r6]
cmp r5, r3
movw r3, #65535
- bne .L135
+ bne .L137
cmp r2, r3
- ldrne r3, [r4, #2316]
+ ldrne r3, [r4, #2520]
moveq r3, #0
streq r3, [r8]
addne r2, r3, r2, lsl #3
mvnne r3, #0
strne r2, [r8]
strhne r3, [r2, #2] @ movhi
-.L137:
+.L139:
mvn r3, #0
mov r0, #0
strh r3, [r7, r6] @ movhi
strh r3, [r5, #2] @ movhi
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L135:
+.L137:
cmp r2, r3
ldrh r3, [r5, #2]
- bne .L138
+ bne .L140
cmp r3, r2
- ldrne r2, [r4, #2316]
+ ldrne r2, [r4, #2520]
lslne r3, r3, #3
mvnne r1, #0
- beq .L137
-.L139:
+ beq .L139
+.L141:
strh r1, [r2, r3] @ movhi
- b .L137
-.L138:
- ldr r1, [r4, #2316]
+ b .L139
+.L140:
+ ldr r1, [r4, #2520]
add r2, r1, r2, lsl #3
strh r3, [r2, #2] @ movhi
ldrh r3, [r5, #2]
ldrh r1, [r7, r6]
- ldr r2, [r4, #2316]
+ ldr r2, [r4, #2520]
lsl r3, r3, #3
- b .L139
-.L141:
+ b .L141
+.L143:
.align 2
-.L140:
+.L142:
.word .LANCHOR0
.word .LANCHOR1+34
- .word .LC1
+ .word .LC8
.size List_remove_node, .-List_remove_node
.align 2
.global List_pop_index_node
@@ -1145,32 +1259,32 @@ List_pop_index_node:
uxth r1, r1
cmp r3, #0
movweq r4, #65535
- beq .L142
- ldr r2, .L149
+ beq .L144
+ ldr r2, .L151
movw ip, #65535
- ldr r4, [r2, #2316]
-.L144:
+ ldr r4, [r2, #2520]
+.L146:
cmp r1, #0
- bne .L145
-.L147:
+ bne .L147
+.L149:
sub r3, r3, r4
ubfx r4, r3, #3, #16
mov r1, r4
bl List_remove_node
-.L142:
+.L144:
mov r0, r4
ldmfd sp, {r4, fp, sp, pc}
-.L145:
+.L147:
ldrh r2, [r3]
cmp r2, ip
- beq .L147
+ beq .L149
sub r1, r1, #1
add r3, r4, r2, lsl #3
uxth r1, r1
- b .L144
-.L150:
+ b .L146
+.L152:
.align 2
-.L149:
+.L151:
.word .LANCHOR0
.size List_pop_index_node, .-List_pop_index_node
.align 2
@@ -1201,33 +1315,33 @@ List_get_gc_head_node:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r1, .L158
+ ldr r1, .L160
uxth r2, r0
- ldr r3, [r1, #2320]
+ ldr r3, [r1, #2524]
cmp r3, #0
- ldrne r1, [r1, #2316]
+ ldrne r1, [r1, #2520]
movwne r0, #65535
- bne .L154
+ bne .L156
movw r0, #65535
ldmfd sp, {fp, sp, pc}
-.L156:
+.L158:
sub r2, r2, #1
add r3, r1, r3, lsl #3
uxth r2, r2
-.L154:
+.L156:
cmp r2, #0
- beq .L155
+ beq .L157
ldrh r3, [r3]
cmp r3, r0
- bne .L156
+ bne .L158
ldmfd sp, {fp, sp, pc}
-.L155:
+.L157:
sub r3, r3, r1
ubfx r0, r3, #3, #16
ldmfd sp, {fp, sp, pc}
-.L159:
+.L161:
.align 2
-.L158:
+.L160:
.word .LANCHOR0
.size List_get_gc_head_node, .-List_get_gc_head_node
.align 2
@@ -1242,26 +1356,23 @@ List_update_data_list:
mov ip, sp
push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L173
- movw r3, #2348
+ ldr r4, .L175
uxth r5, r0
- ldrh r3, [r4, r3]
+ ldrh r3, [r4, #28]
cmp r3, r5
- beq .L162
- movw r3, #2396
- ldrh r3, [r4, r3]
+ beq .L164
+ ldrh r3, [r4, #80]
cmp r3, r5
- beq .L162
- movw r3, #2444
- ldrh r3, [r4, r3]
+ beq .L164
+ ldrh r3, [r4, #128]
cmp r3, r5
- beq .L162
- ldr r8, [r4, #2316]
- ldr r3, [r4, #2320]
+ beq .L164
+ ldr r8, [r4, #2520]
+ ldr r3, [r4, #2524]
add r7, r8, r5, lsl #3
cmp r7, r3
- beq .L162
- ldr r2, [r4, #2324]
+ beq .L164
+ ldr r2, [r4, #76]
lsl r3, r5, #1
ldrh r6, [r7, #4]
ldrh r3, [r2, r3]
@@ -1270,56 +1381,56 @@ List_update_data_list:
mulne r6, r6, r3
ldr r3, [r8, r5, lsl #3]
cmn r3, #1
- bne .L165
+ bne .L167
movw r2, #463
- ldr r1, .L173+4
- ldr r0, .L173+8
+ ldr r1, .L175+4
+ ldr r0, .L175+8
bl sftl_printk
-.L165:
+.L167:
ldr r3, [r8, r5, lsl #3]
cmn r3, #1
- beq .L162
+ beq .L164
ldrh r2, [r7, #2]
- ldr r1, [r4, #2324]
+ ldr r1, [r4, #76]
lsl r2, r2, #3
lsr r3, r2, #2
ldrh r0, [r1, r3]
- ldr r1, [r4, #2316]
+ ldr r1, [r4, #2520]
add r2, r1, r2
ldrh r3, [r2, #4]
cmp r3, #0
mulne r3, r3, r0
mvneq r3, #0
cmp r6, r3
- bcs .L162
- ldr r4, .L173+12
+ bcs .L164
mov r1, r5
- ldr r0, .L173+16
+ ldr r0, .L175+12
bl List_remove_node
- ldrh r3, [r4]
+ movw r3, #2532
+ ldrh r3, [r4, r3]
cmp r3, #0
- bne .L167
+ bne .L169
movw r2, #474
- ldr r1, .L173+4
- ldr r0, .L173+8
+ ldr r1, .L175+4
+ ldr r0, .L175+8
bl sftl_printk
-.L167:
- ldrh r3, [r4]
+.L169:
+ movw r2, #2532
mov r0, r5
+ ldrh r3, [r4, r2]
sub r3, r3, #1
- strh r3, [r4] @ movhi
+ strh r3, [r4, r2] @ movhi
bl INSERT_DATA_LIST
-.L162:
+.L164:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L174:
+.L176:
.align 2
-.L173:
+.L175:
.word .LANCHOR0
.word .LANCHOR1+51
- .word .LC1
- .word .LANCHOR0+2336
- .word .LANCHOR0+2320
+ .word .LC8
+ .word .LANCHOR0+2524
.size List_update_data_list, .-List_update_data_list
.align 2
.global select_l2p_ram_region
@@ -1331,85 +1442,86 @@ select_l2p_ram_region:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L185
+ ldr r0, .L187
+ movw r3, #342
mov r1, #0
- mov r0, #12
movw ip, #65535
- ldrh r2, [r3, #138]
- ldr r3, [r3, #2492]
-.L176:
+ ldrh r2, [r0, r3]
+ mov lr, r0
+ ldr r3, [r0, #2544]
+ mov r0, #12
+.L178:
uxth r4, r1
cmp r4, r2
- bcc .L178
+ bcc .L180
mov r4, r2
mov r1, #0
mov r0, #-2147483648
- mov r5, #12
-.L179:
- uxth lr, r1
- cmp lr, r2
- bcc .L181
+ mov r6, #12
+.L181:
+ uxth r5, r1
+ cmp r5, r2
+ bcc .L183
cmp r4, r2
- bcc .L177
- ldr r1, .L185+4
+ bcc .L179
+ movw r1, #2548
mov r4, r2
+ ldrh r5, [lr, r1]
mvn r0, #0
- ldrh r5, [r1]
mov r1, #0
-.L182:
+.L184:
uxth ip, r1
cmp ip, r2
- bcc .L184
+ bcc .L186
cmp r4, r2
- bcc .L177
+ bcc .L179
movw r2, #789
- ldr r1, .L185+8
- ldr r0, .L185+12
+ ldr r1, .L187+4
+ ldr r0, .L187+8
bl sftl_printk
- b .L177
-.L178:
+ b .L179
+.L180:
add r1, r1, #1
- mla lr, r0, r1, r3
- ldrh lr, [lr, #-12]
- cmp lr, ip
- bne .L176
-.L177:
+ mla r5, r0, r1, r3
+ ldrh r5, [r5, #-12]
+ cmp r5, ip
+ bne .L178
+.L179:
mov r0, r4
- ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L181:
- mla ip, r5, r1, r3
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
+.L183:
+ mla ip, r6, r1, r3
add r1, r1, #1
ldr ip, [ip, #4]
cmp r0, ip
- movls r6, #0
- movhi r6, #1
+ movls r7, #0
+ movhi r7, #1
cmp ip, #0
- movlt r6, #0
- cmp r6, #0
+ movlt r7, #0
+ cmp r7, #0
movne r0, ip
- movne r4, lr
- b .L179
-.L184:
+ movne r4, r5
+ b .L181
+.L186:
ldr lr, [r3, #4]
cmp r0, lr
- bls .L183
+ bls .L185
ldrh r6, [r3]
cmp r6, r5
movne r0, lr
movne r4, ip
-.L183:
+.L185:
add r1, r1, #1
add r3, r3, #12
- b .L182
-.L186:
+ b .L184
+.L188:
.align 2
-.L185:
+.L187:
.word .LANCHOR0
- .word .LANCHOR0+2496
.word .LANCHOR1+73
- .word .LC1
+ .word .LC8
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
.global FtlUpdateVaildLpn
@@ -1423,38 +1535,38 @@ FtlUpdateVaildLpn:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr ip, .L193
- movw r1, #2498
+ ldr ip, .L195
+ movw r1, #2550
ldrh r2, [ip, r1]
mov r3, ip
cmp r2, #4
cmpls r0, #0
- bne .L188
+ bne .L190
add r2, r2, #1
strh r2, [ip, r1] @ movhi
ldmfd sp, {fp, sp, pc}
-.L188:
+.L190:
mov r2, #0
movw lr, #65535
strh r2, [ip, r1] @ movhi
- str r2, [ip, #2500]
- ldrh r1, [ip, #40]
- ldr r2, [ip, #2324]
+ str r2, [ip, #2552]
+ ldrh r1, [ip, #244]
+ ldr r2, [ip, #76]
add r1, r2, r1, lsl #1
-.L189:
+.L191:
cmp r2, r1
- bne .L191
+ bne .L193
ldmfd sp, {fp, sp, pc}
-.L191:
+.L193:
ldrh ip, [r2], #2
cmp ip, lr
- ldrne r0, [r3, #2500]
+ ldrne r0, [r3, #2552]
addne r0, r0, ip
- strne r0, [r3, #2500]
- b .L189
-.L194:
+ strne r0, [r3, #2552]
+ b .L191
+.L196:
.align 2
-.L193:
+.L195:
.word .LANCHOR0
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 2
@@ -1471,11 +1583,11 @@ ftl_set_blk_mode:
sub fp, ip, #4
cmp r1, #0
uxth r0, r0
- beq .L196
+ beq .L198
bl ftl_set_blk_mode.part.6
ldmfd sp, {fp, sp, pc}
-.L196:
- ldr r3, .L198
+.L198:
+ ldr r3, .L200
lsr r1, r0, #5
mov ip, #1
and r0, r0, #31
@@ -1484,9 +1596,9 @@ ftl_set_blk_mode:
bic r0, r3, ip, lsl r0
str r0, [r2, r1, lsl #2]
ldmfd sp, {fp, sp, pc}
-.L199:
+.L201:
.align 2
-.L198:
+.L200:
.word .LANCHOR0
.size ftl_set_blk_mode, .-ftl_set_blk_mode
.align 2
@@ -1501,7 +1613,7 @@ ftl_get_blk_mode:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L201
+ ldr r3, .L203
uxth r0, r0
ldr r3, [r3, #24]
lsr r2, r0, #5
@@ -1510,9 +1622,9 @@ ftl_get_blk_mode:
lsr r0, r3, r0
and r0, r0, #1
ldmfd sp, {fp, sp, pc}
-.L202:
+.L204:
.align 2
-.L201:
+.L203:
.word .LANCHOR0
.size ftl_get_blk_mode, .-ftl_get_blk_mode
.align 2
@@ -1531,27 +1643,28 @@ ftl_sb_update_avl_pages:
uxth r2, r2
uxth r5, r1
strh r3, [r0, #4] @ movhi
- ldr r3, .L210
+ ldr r3, .L212
add ip, r0, r2, lsl #1
movw r1, #65535
add ip, ip, #14
- ldrh lr, [r3, #32]
-.L204:
+ ldrh lr, [r3, #236]
+.L206:
cmp r2, lr
- bcc .L206
- ldrh r1, [r3, #102]
+ bcc .L208
+ movw r2, #306
add ip, r0, #16
- mov r3, #0
+ ldrh r1, [r3, r2]
movw r4, #65535
+ mov r3, #0
sub r1, r1, #1
sub r1, r1, r5
uxth r1, r1
-.L207:
+.L209:
uxth r2, r3
cmp lr, r2
- bhi .L209
+ bhi .L211
ldmfd sp, {r4, r5, fp, sp, pc}
-.L206:
+.L208:
ldrh r4, [ip, #2]!
add r2, r2, #1
uxth r2, r2
@@ -1559,18 +1672,18 @@ ftl_sb_update_avl_pages:
ldrhne r4, [r0, #4]
addne r4, r4, #1
strhne r4, [r0, #4] @ movhi
- b .L204
-.L209:
+ b .L206
+.L211:
ldrh r2, [ip], #2
add r3, r3, #1
cmp r2, r4
ldrhne r2, [r0, #4]
addne r2, r1, r2
strhne r2, [r0, #4] @ movhi
- b .L207
-.L211:
+ b .L209
+.L213:
.align 2
-.L210:
+.L212:
.word .LANCHOR0
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 2
@@ -1596,14 +1709,14 @@ FtlSlcSuperblockCheck:
mov lr, #0
add r2, r0, r2, lsl #1
ldrh r1, [r2, #16]
- ldr r2, .L218
- ldrh ip, [r2, #32]
+ ldr r2, .L220
+ ldrh ip, [r2, #236]
mov r2, r3
-.L215:
+.L217:
cmp r1, r2
- beq .L217
+ beq .L219
ldmfd sp, {fp, sp, pc}
-.L217:
+.L219:
ldrb r3, [r0, #6] @ zero_extendqisi2
add r3, r3, #1
uxtb r3, r3
@@ -1616,10 +1729,10 @@ FtlSlcSuperblockCheck:
ldrb r3, [r0, #6] @ zero_extendqisi2
add r3, r0, r3, lsl #1
ldrh r1, [r3, #16]
- b .L215
-.L219:
+ b .L217
+.L221:
.align 2
-.L218:
+.L220:
.word .LANCHOR0
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 2
@@ -1636,57 +1749,66 @@ make_superblock:
sub fp, ip, #4
sub sp, sp, #4
mov r4, r0
- ldr r6, .L225
+ ldr r6, .L228
ldrh r2, [r0]
- ldrh r3, [r6, #40]
+ ldrh r3, [r6, #244]
cmp r2, r3
- bcc .L221
- movw r2, #2156
- ldr r1, .L225+4
- ldr r0, .L225+8
+ bcc .L223
+ movw r2, #2148
+ ldr r1, .L228+4
+ ldr r0, .L228+8
bl sftl_printk
-.L221:
- ldrh r9, [r6, #32]
- add r7, r4, #16
- ldr r10, .L225+12
- mvn r8, #0
+.L223:
+ ldrh r9, [r6, #236]
+ add r8, r4, #16
+ ldr r10, .L228+12
+ mvn r7, #0
mov r5, #0
strh r5, [r4, #4] @ movhi
strb r5, [r4, #7]
-.L222:
+.L224:
uxth r3, r5
+ ldrh r1, [r4]
cmp r9, r3
- bhi .L224
+ bhi .L226
+ movw r2, #306
ldrb r3, [r4, #7] @ zero_extendqisi2
+ ldrh r2, [r6, r2]
+ lsl r1, r1, #1
mov r0, #0
- ldrh r2, [r6, #102]
- strb r0, [r4, #9]
smulbb r3, r3, r2
strh r3, [r4, #4] @ movhi
+ mov r3, #0
+ strb r3, [r4, #9]
+ ldr r3, [r6, #2540]
+ ldrh r2, [r3, r1]
+ movw r3, #10000
+ cmp r2, r3
+ movhi r3, #1
+ strbhi r3, [r4, #9]
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L224:
+.L226:
ldrb r0, [r10, r5] @ zero_extendqisi2
- add r7, r7, #2
- ldrh r1, [r4]
- add r5, r5, #1
+ add r8, r8, #2
bl V2P_block
- strh r8, [r7, #-2] @ movhi
+ strh r7, [r8, #-2] @ movhi
+ add r5, r5, #1
str r0, [fp, #-44]
bl FtlBbmIsBadBlock
cmp r0, #0
ldreq r3, [fp, #-44]
- strheq r3, [r7, #-2] @ movhi
+ strheq r3, [r8, #-2] @ movhi
ldrbeq r3, [r4, #7] @ zero_extendqisi2
addeq r3, r3, #1
strbeq r3, [r4, #7]
- b .L222
-.L226:
+ b .L224
+.L229:
.align 2
-.L225:
+.L228:
.word .LANCHOR0
.word .LANCHOR1+95
- .word .LC1
- .word .LANCHOR0+60
+ .word .LC8
+ .word .LANCHOR0+264
.size make_superblock, .-make_superblock
.align 2
.global update_multiplier_value
@@ -1700,31 +1822,32 @@ update_multiplier_value:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L233
+ ldr r3, .L236
+ movw r2, #306
mov r5, #0
uxth r6, r0
mov r4, r5
- ldrh r8, [r3, #32]
+ ldrh r8, [r3, #236]
mov r7, r3
- ldrh r9, [r3, #102]
- add r10, r3, #60
-.L228:
+ ldrh r9, [r3, r2]
+ add r10, r3, #264
+.L231:
uxth r3, r5
cmp r8, r3
- bhi .L230
+ bhi .L233
cmp r4, #0
moveq r0, r4
- beq .L231
+ beq .L234
mov r1, r4
mov r0, #32768
bl __divsi3
-.L231:
- ldr r1, [r7, #2316]
+.L234:
+ ldr r1, [r7, #2520]
add r1, r1, r6, lsl #3
strh r0, [r1, #4] @ movhi
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L230:
+.L233:
mov r1, r6
ldrb r0, [r10, r5] @ zero_extendqisi2
bl V2P_block
@@ -1733,10 +1856,10 @@ update_multiplier_value:
add r5, r5, #1
addeq r4, r4, r9
uxtheq r4, r4
- b .L228
-.L234:
+ b .L231
+.L237:
.align 2
-.L233:
+.L236:
.word .LANCHOR0
.size update_multiplier_value, .-update_multiplier_value
.align 2
@@ -1751,19 +1874,19 @@ GetFreeBlockMinEraseCount:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L238
- ldr r0, [r3, #2340]
+ ldr r3, .L241
+ ldr r0, [r3, #2536]
cmp r0, #0
- ldrne r2, [r3, #2316]
- ldrne r3, [r3, #2328]
+ ldrne r2, [r3, #2520]
+ ldrne r3, [r3, #2540]
subne r0, r0, r2
ubfxne r0, r0, #3, #16
lslne r0, r0, #1
ldrhne r0, [r3, r0]
ldmfd sp, {fp, sp, pc}
-.L239:
+.L242:
.align 2
-.L238:
+.L241:
.word .LANCHOR0
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
.align 2
@@ -1778,15 +1901,14 @@ GetFreeBlockMaxEraseCount:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r2, .L248
+ ldr r2, .L251
uxth r4, r0
- ldr r0, [r2, #2340]
+ ldr r0, [r2, #2536]
cmp r0, #0
ldmfdeq sp, {r4, r5, fp, sp, pc}
- movw r3, #2344
- ldr ip, [r2, #2316]
- ldrh r3, [r2, r3]
+ ldrh r3, [r2, #228]
mov r1, #0
+ ldr ip, [r2, #2520]
movw r5, #65535
rsb r3, r3, r3, lsl #3
asr r3, r3, #3
@@ -1794,26 +1916,26 @@ GetFreeBlockMaxEraseCount:
uxthgt r4, r3
sub r3, r0, ip
ubfx r3, r3, #3, #16
-.L243:
+.L246:
uxth r0, r1
cmp r4, r0
- bls .L245
+ bls .L248
lsl r0, r3, #3
add r1, r1, #1
ldrh lr, [ip, r0]
cmp lr, r5
- bne .L247
-.L245:
- ldr r2, [r2, #2328]
+ bne .L250
+.L248:
+ ldr r2, [r2, #2540]
lsl r3, r3, #1
ldrh r0, [r2, r3]
ldmfd sp, {r4, r5, fp, sp, pc}
-.L247:
+.L250:
mov r3, lr
- b .L243
-.L249:
+ b .L246
+.L252:
.align 2
-.L248:
+.L251:
.word .LANCHOR0
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 2
@@ -1829,526 +1951,514 @@ FtlPrintInfo2buf:
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #16
- mov r7, r0
- ldr r5, .L262
- add r4, r7, #12
- ldr r1, .L262+4
- movw r8, #2344
+ mov r6, r0
+ ldr r5, .L265
+ add r4, r6, #12
+ ldr r1, .L265+4
bl strcpy
- ldr r3, [r5, #116]
+ ldr r3, [r5, #320]
mov r1, #64
- ldr r2, .L262+8
+ ldr r2, .L265+8
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r1, .L262+12
+ ldr r1, .L265+12
mov r0, r4
add r4, r4, #10
bl strcpy
- ldr r3, [r5, #2504]
+ ldr r3, [r5, #2556]
mov r1, #64
- ldr r2, .L262+16
+ ldr r2, .L265+16
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2500]
- ldr r2, .L262+20
+ ldr r3, [r5, #2552]
+ ldr r2, .L265+20
mov r1, #64
mov r0, r4
- ldr r6, .L262+24
+ add r7, r5, #356
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2508]
- ldr r2, .L262+28
+ ldr r3, [r5, #2560]
+ ldr r2, .L265+24
mov r1, #64
mov r0, r4
- ldr r9, .L262+32
+ ldr r8, .L265+28
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2512]
- ldr r2, .L262+36
+ ldr r3, [r5, #2564]
+ ldr r2, .L265+32
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2516]
- ldr r2, .L262+40
+ ldr r3, [r5, #2568]
+ ldr r2, .L265+36
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2520]
- ldr r2, .L262+44
+ ldr r3, [r5, #2572]
+ ldr r2, .L265+40
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2524]
- ldr r2, .L262+48
+ ldr r3, [r5, #2576]
+ ldr r2, .L265+44
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2528]
- ldr r2, .L262+52
+ ldr r3, [r5, #2580]
+ ldr r2, .L265+48
mov r1, #64
mov r0, r4
bl snprintf
- ldr r3, [r5, #2532]
+ ldr r3, [r5, #2584]
add r4, r4, r0
- ldr r2, .L262+56
+ ldr r2, .L265+52
mov r1, #64
mov r0, r4
lsr r3, r3, #11
bl snprintf
- ldr r3, [r5, #2536]
+ ldr r3, [r5, #2588]
add r4, r4, r0
- ldr r2, .L262+60
+ ldr r2, .L265+56
mov r1, #64
mov r0, r4
lsr r3, r3, #11
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2540]
- ldr r2, .L262+64
+ ldr r3, [r5, #2592]
+ ldr r2, .L265+60
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2544]
- ldr r2, .L262+68
+ ldr r3, [r5, #2596]
+ ldr r2, .L265+64
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #158]
- ldr r2, .L262+72
+ ldrh r3, [r7, #6]
+ ldr r2, .L265+68
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, r8]
- ldr r2, .L262+76
+ ldrh r3, [r5, #228]
+ ldr r2, .L265+72
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2548]
- ldr r2, .L262+80
+ ldr r3, [r5, #2600]
+ ldr r2, .L265+76
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2552]
- ldr r2, .L262+84
+ ldr r3, [r5, #2604]
+ ldr r2, .L265+80
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2556]
- ldr r2, .L262+88
+ ldr r3, [r5, #2608]
+ ldr r2, .L265+84
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2560]
- ldr r2, .L262+92
+ ldr r3, [r5, #2612]
+ ldr r2, .L265+88
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2564]
- ldr r2, .L262+96
+ ldr r3, [r5, #2616]
+ ldr r2, .L265+92
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2568]
- ldr r2, .L262+100
+ ldr r3, [r5, #2620]
+ ldr r2, .L265+96
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r6, #30]
- ldr r2, .L262+104
+ ldrh r3, [r8, #30]
+ ldr r2, .L265+100
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r6, #28]
- ldr r2, .L262+108
+ ldrh r3, [r8, #28]
+ ldr r2, .L265+104
mov r1, #64
mov r0, r4
- movw r6, #2348
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #140]
- ldr r2, .L262+112
+ ldr r3, [r5, #344]
+ ldr r2, .L265+108
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #132]
- ldr r2, .L262+116
+ ldr r3, [r5, #336]
+ ldr r2, .L265+112
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #28]
- ldr r2, .L262+120
+ ldr r3, [r5, #232]
+ ldr r2, .L265+116
mov r1, #64
mov r0, r4
bl snprintf
+ add r3, r5, #416
add r4, r4, r0
- ldrh r3, [r5, #218]
- ldr r2, .L262+124
+ ldrh r3, [r3, #6]
mov r1, #64
+ ldr r2, .L265+120
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #40]
- ldr r2, .L262+128
+ ldrh r3, [r5, #244]
+ ldr r2, .L265+124
mov r1, #64
mov r0, r4
bl snprintf
- movw r3, #2572
+ add r3, r5, #2624
add r4, r4, r0
- ldrh r3, [r5, r3]
+ ldrh r3, [r3]
mov r1, #64
- ldr r2, .L262+132
+ ldr r2, .L265+128
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #44]
- ldr r2, .L262+136
+ ldr r3, [r5, #248]
+ ldr r2, .L265+132
mov r1, #64
mov r0, r4
bl snprintf
- add r3, r5, #2576
+ movw r3, #2628
add r4, r4, r0
- ldrh r3, [r3]
+ ldrh r3, [r5, r3]
mov r1, #64
- ldr r2, .L262+140
+ ldr r2, .L265+136
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #152]
- ldr r2, .L262+144
+ ldrh r3, [r7]
+ ldr r2, .L265+140
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #2]
- ldr r2, .L262+148
+ ldrh r3, [r5, #30]
+ ldr r2, .L265+144
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2354] @ zero_extendqisi2
- ldr r2, .L262+152
+ ldrb r3, [r5, #34] @ zero_extendqisi2
+ ldr r2, .L265+148
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, r6]
- ldr r2, .L262+156
+ ldrh r3, [r5, #28]
+ ldr r2, .L265+152
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2356] @ zero_extendqisi2
- ldr r2, .L262+160
+ ldrb r3, [r5, #36] @ zero_extendqisi2
+ ldr r2, .L265+156
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #4]
- ldr r2, .L262+164
+ ldrh r3, [r5, #32]
+ ldr r2, .L265+160
mov r1, #64
mov r0, r4
bl snprintf
- ldrh r3, [r5, r6]
+ ldrh r3, [r5, #28]
add r4, r4, r0
- ldr r2, [r5, #2324]
+ ldr r2, [r5, #76]
mov r1, #64
mov r0, r4
- movw r6, #2396
lsl r3, r3, #1
ldrh r3, [r2, r3]
- ldr r2, .L262+168
+ ldr r2, .L265+164
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #50]
- ldr r2, .L262+172
+ ldrh r3, [r5, #82]
+ ldr r2, .L265+168
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2402] @ zero_extendqisi2
- ldr r2, .L262+176
+ ldrb r3, [r5, #86] @ zero_extendqisi2
+ ldr r2, .L265+172
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, r6]
- ldr r2, .L262+180
+ ldrh r3, [r5, #80]
+ ldr r2, .L265+176
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2404] @ zero_extendqisi2
- ldr r2, .L262+184
+ ldrb r3, [r5, #88] @ zero_extendqisi2
+ ldr r2, .L265+180
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #52]
- ldr r2, .L262+188
+ ldrh r3, [r5, #84]
+ ldr r2, .L265+184
mov r1, #64
mov r0, r4
bl snprintf
- ldrh r3, [r5, r6]
+ ldrh r3, [r5, #80]
add r4, r4, r0
- ldr r2, [r5, #2324]
+ ldr r2, [r5, #76]
mov r1, #64
mov r0, r4
- add r6, r5, #2592
lsl r3, r3, #1
ldrh r3, [r2, r3]
- ldr r2, .L262+192
+ ldr r2, .L265+188
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #98]
- ldr r2, .L262+196
+ ldrh r3, [r5, #130]
+ ldr r2, .L265+192
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2450] @ zero_extendqisi2
- ldr r2, .L262+200
+ ldrb r3, [r5, #134] @ zero_extendqisi2
+ ldr r2, .L265+196
mov r1, #64
mov r0, r4
bl snprintf
- movw r3, #2444
add r4, r4, r0
- ldrh r3, [r5, r3]
+ ldrh r3, [r5, #128]
+ ldr r2, .L265+200
mov r1, #64
- ldr r2, .L262+204
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2452] @ zero_extendqisi2
- ldr r2, .L262+208
+ ldrb r3, [r5, #136] @ zero_extendqisi2
+ ldr r2, .L265+204
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r9, #100]
- ldr r2, .L262+212
+ ldrh r3, [r5, #132]
+ ldr r2, .L265+208
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r6, #2]
- ldr r2, .L262+216
+ ldrh r3, [r5, #178]
+ ldr r2, .L265+212
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2598] @ zero_extendqisi2
- ldr r2, .L262+220
+ ldrb r3, [r5, #182] @ zero_extendqisi2
+ ldr r2, .L265+216
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r6]
- ldr r2, .L262+224
+ ldrh r3, [r5, #176]
+ ldr r2, .L265+220
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2600] @ zero_extendqisi2
- ldr r2, .L262+228
+ ldrb r3, [r5, #184] @ zero_extendqisi2
+ ldr r2, .L265+224
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r6, #4]
- ldr r2, .L262+232
+ ldrh r3, [r5, #180]
+ ldr r2, .L265+228
mov r1, #64
mov r0, r4
bl snprintf
- ldr r3, [r5, #2716]
+ ldr r3, [r5, #2720]
add r4, r4, r0
- ldr r2, .L262+236
+ ldr r2, .L265+232
mov r1, #64
mov r0, r4
str r3, [sp, #4]
- ldr r3, [r5, #2724]
+ ldr r3, [r5, #2728]
str r3, [sp]
- ldr r3, [r5, #2720]
+ ldr r3, [r5, #2724]
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2712]
- ldr r2, .L262+240
+ ldr r3, [r5, #2716]
+ ldr r2, .L265+236
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2736]
- ldr r2, .L262+244
+ ldr r3, [r5, #2740]
+ ldr r2, .L265+240
mov r1, #64
mov r0, r4
bl snprintf
- add r3, r5, #3152
+ movw r3, #3156
add r4, r4, r0
- ldrh r3, [r3]
+ ldrh r3, [r5, r3]
mov r1, #64
- ldr r2, .L262+248
+ ldr r2, .L265+244
mov r0, r4
bl snprintf
- movw r3, #3154
+ movw r3, #3158
add r4, r4, r0
ldrh r3, [r5, r3]
mov r1, #64
- ldr r2, .L262+252
+ ldr r2, .L265+248
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #3156]
- ldr r2, .L262+256
+ ldr r3, [r5, #3160]
+ ldr r2, .L265+252
mov r1, #64
mov r0, r4
bl snprintf
- movw r3, #3160
+ movw r3, #3164
add r4, r4, r0
ldrh r3, [r5, r3]
mov r1, #64
- ldr r2, .L262+260
+ ldr r2, .L265+256
mov r0, r4
bl snprintf
add r4, r4, r0
bl GetFreeBlockMinEraseCount
- ldr r2, .L262+264
+ ldr r2, .L265+260
mov r3, r0
mov r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r0, [r5, r8]
+ ldrh r0, [r5, #228]
bl GetFreeBlockMaxEraseCount
- ldr r2, .L262+268
+ ldr r2, .L265+264
mov r3, r0
mov r1, #64
mov r0, r4
bl snprintf
- ldr r3, .L262+272
+ ldr r3, .L265+268
add r4, r4, r0
ldr r3, [r3]
cmp r3, #1
- beq .L251
-.L256:
- sub r0, r4, r7
+ beq .L254
+.L259:
+ sub r0, r4, r6
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L251:
- ldrh r3, [r6]
+.L254:
+ ldrh r3, [r5, #176]
movw r2, #65535
cmp r3, r2
- beq .L253
- ldr r2, [r5, #2324]
+ beq .L256
+ ldr r2, [r5, #76]
lsl r3, r3, #1
mov r0, r4
mov r1, #64
ldrh r3, [r2, r3]
- ldr r2, .L262+276
+ ldr r2, .L265+272
bl snprintf
add r4, r4, r0
-.L253:
+.L256:
mov r0, #0
- ldr r9, .L262+280
+ ldr r9, .L265+276
bl List_get_gc_head_node
uxth r0, r0
- mov r6, #0
+ mov r7, #0
movw r10, #65535
-.L255:
+.L258:
cmp r0, r10
- beq .L254
- ldr r3, [r5, #2328]
+ beq .L257
+ ldr r3, [r5, #2540]
lsl r2, r0, #1
lsl r8, r0, #3
mov r1, #64
ldrh r3, [r3, r2]
str r3, [sp, #12]
- ldr r3, [r5, #2316]
+ ldr r3, [r5, #2520]
add r3, r3, r8
ldrh r3, [r3, #4]
str r3, [sp, #8]
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
ldrh r3, [r3, r2]
mov r2, r9
stm sp, {r0, r3}
- mov r3, r6
+ mov r3, r7
mov r0, r4
- add r6, r6, #1
+ add r7, r7, #1
bl snprintf
- ldr r3, [r5, #2316]
- cmp r6, #16
+ ldr r3, [r5, #2520]
+ cmp r7, #16
add r4, r4, r0
ldrh r0, [r3, r8]
- bne .L255
-.L254:
- ldr r3, [r5, #2340]
- mov r6, #0
- ldr r2, [r5, #2316]
+ bne .L258
+.L257:
+ ldr r3, [r5, #2536]
+ mov r7, #0
+ ldr r2, [r5, #2520]
movw r9, #65535
- ldr r10, .L262+284
+ ldr r10, .L265+280
sub r3, r3, r2
ubfx r3, r3, #3, #16
-.L257:
+.L260:
cmp r3, r9
- beq .L256
- ldr r1, [r5, #2328]
+ beq .L259
+ ldr r1, [r5, #2540]
lsl r2, r3, #1
lsl r8, r3, #3
mov r0, r4
ldrh r2, [r1, r2]
mov r1, #64
str r2, [sp, #8]
- ldr r2, [r5, #2316]
+ ldr r2, [r5, #2520]
add r2, r2, r8
ldrh r2, [r2, #4]
str r3, [sp]
- mov r3, r6
- add r6, r6, #1
+ mov r3, r7
+ add r7, r7, #1
str r2, [sp, #4]
mov r2, r10
bl snprintf
- cmp r6, #4
+ cmp r7, #4
add r4, r4, r0
- beq .L256
- ldr r3, [r5, #2316]
+ beq .L259
+ ldr r3, [r5, #2520]
ldrh r3, [r3, r8]
- b .L257
-.L263:
+ b .L260
+.L266:
.align 2
-.L262:
+.L265:
.word .LANCHOR0
- .word .LC2
- .word .LC3
- .word .LC4
- .word .LC5
- .word .LC6
- .word .LANCHOR0+2268
- .word .LC7
- .word .LANCHOR0+2348
- .word .LC8
.word .LC9
.word .LC10
.word .LC11
.word .LC12
.word .LC13
.word .LC14
+ .word .LANCHOR0+2472
.word .LC15
.word .LC16
.word .LC17
@@ -2401,10 +2511,17 @@ FtlPrintInfo2buf:
.word .LC64
.word .LC65
.word .LC66
- .word .LANCHOR2
.word .LC67
.word .LC68
.word .LC69
+ .word .LC70
+ .word .LC71
+ .word .LC72
+ .word .LC73
+ .word .LANCHOR2
+ .word .LC74
+ .word .LC75
+ .word .LC76
.size FtlPrintInfo2buf, .-FtlPrintInfo2buf
.align 2
.global rknand_proc_ftlread
@@ -2420,10 +2537,10 @@ rknand_proc_ftlread:
sub fp, ip, #4
cmp r0, #2048
mov r5, r1
- blt .L266
- ldr r3, .L267
+ blt .L269
+ ldr r3, .L270
mov r1, #64
- ldr r2, .L267+4
+ ldr r2, .L270+4
mov r0, r5
bl snprintf
add r4, r5, r0
@@ -2432,14 +2549,14 @@ rknand_proc_ftlread:
add r0, r4, r0
sub r0, r0, r5
ldmfd sp, {r4, r5, fp, sp, pc}
-.L266:
+.L269:
mov r0, #0
ldmfd sp, {r4, r5, fp, sp, pc}
-.L268:
+.L271:
.align 2
-.L267:
- .word .LC70
- .word .LC71
+.L270:
+ .word .LC0
+ .word .LC77
.size rknand_proc_ftlread, .-rknand_proc_ftlread
.align 2
.global GetSwlReplaceBlock
@@ -2454,161 +2571,162 @@ GetSwlReplaceBlock:
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #16
- ldr r4, .L293
- ldr r2, [r4, #2556]
- ldr r3, [r4, #2568]
+ ldr r4, .L296
+ ldr r2, [r4, #2608]
+ ldr r3, [r4, #2620]
cmp r2, r3
- bcs .L270
- ldr r2, [r4, #2328]
+ bcs .L273
+ ldr r2, [r4, #2540]
mov r3, #0
- ldrh r1, [r4, #40]
- str r3, [r4, #2548]
+ ldrh r1, [r4, #244]
+ str r3, [r4, #2600]
sub r2, r2, #2
-.L271:
+.L274:
cmp r3, r1
- bcc .L272
- ldr r5, [r4, #2548]
+ bcc .L275
+ ldr r5, [r4, #2600]
mov r0, r5
bl __udivsi3
- str r0, [r4, #2556]
- ldr r0, [r4, #2552]
- ldrh r1, [r4, #92]
+ ldr r3, .L296+4
+ str r0, [r4, #2608]
+ ldr r0, [r4, #2604]
+ ldrh r1, [r3]
sub r0, r5, r0
bl __udivsi3
- str r0, [r4, #2548]
-.L273:
- ldr r6, [r4, #2568]
- ldr r7, [r4, #2556]
+ str r0, [r4, #2600]
+.L276:
+ ldr r6, [r4, #2620]
+ ldr r7, [r4, #2608]
add r3, r6, #256
cmp r3, r7
- bls .L278
- ldr r2, [r4, #2564]
+ bls .L281
+ ldr r2, [r4, #2616]
add r3, r6, #768
cmp r3, r2
- bls .L278
-.L280:
+ bls .L281
+.L283:
movw r5, #65535
-.L279:
+.L282:
mov r0, r5
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L272:
+.L275:
ldrh r0, [r2, #2]!
add r3, r3, #1
- ldr ip, [r4, #2548]
+ ldr ip, [r4, #2600]
add r0, r0, ip
- str r0, [r4, #2548]
- b .L271
-.L270:
- ldr r3, [r4, #2564]
+ str r0, [r4, #2600]
+ b .L274
+.L273:
+ ldr r3, [r4, #2616]
cmp r2, r3
addhi r3, r3, #1
- strhi r3, [r4, #2564]
+ strhi r3, [r4, #2616]
movhi r3, #0
- bls .L273
-.L275:
- ldrh r2, [r4, #40]
+ bls .L276
+.L278:
+ ldrh r2, [r4, #244]
cmp r3, r2
- bcs .L273
- ldr r0, [r4, #2328]
+ bcs .L276
+ ldr r0, [r4, #2540]
lsl r1, r3, #1
add r3, r3, #1
ldrh r2, [r0, r1]
add r2, r2, #1
strh r2, [r0, r1] @ movhi
- b .L275
-.L278:
- movw r3, #2344
- ldrh r0, [r4, r3]
+ b .L278
+.L281:
+ ldrh r0, [r4, #228]
add r0, r0, r0, lsl #1
asr r0, r0, #2
bl GetFreeBlockMaxEraseCount
add r3, r6, #64
mov r9, r0
cmp r0, r3
- bcc .L280
- ldr r3, [r4, #2320]
+ bcc .L283
+ ldr r3, [r4, #2524]
cmp r3, #0
- beq .L280
- ldrh r10, [r4, #40]
+ beq .L283
+ ldrh r10, [r4, #244]
movw r1, #65535
- ldr lr, [r4, #2316]
+ ldr lr, [r4, #2520]
mov r0, #0
- ldr r8, [r4, #2328]
+ ldr r8, [r4, #2540]
mov r2, r1
-.L281:
+.L284:
ldrh ip, [r3]
movw r5, #65535
cmp ip, r5
- bne .L284
+ bne .L287
mov r5, r2
-.L283:
+.L286:
movw r3, #65535
cmp r5, r3
- beq .L280
+ beq .L283
lsl r3, r5, #1
ldrh r10, [r8, r3]
cmp r6, r10
- bcs .L285
+ bcs .L288
str r3, [fp, #-44]
bl GetFreeBlockMinEraseCount
ldr r3, [fp, #-44]
cmp r6, r0
- strcc r1, [r4, #2568]
-.L285:
+ strcc r1, [r4, #2620]
+.L288:
cmp r7, r10
- bls .L280
+ bls .L283
add r2, r10, #128
cmp r9, r2
- ble .L280
+ ble .L283
add r2, r10, #256
cmp r7, r2
- bhi .L286
- ldr r2, [r4, #2564]
+ bhi .L289
+ ldr r2, [r4, #2616]
add r10, r10, #768
cmp r10, r2
- bcs .L280
-.L286:
+ bcs .L283
+.L289:
str r9, [sp, #8]
mov r1, r5
ldrh r2, [r8, r3]
- ldr r0, .L293+4
+ ldr r0, .L296+8
str r2, [sp, #4]
- ldr r2, [r4, #2324]
+ ldr r2, [r4, #76]
ldrh r3, [r2, r3]
mov r2, r7
str r3, [sp]
- ldr r3, [r4, #2564]
+ ldr r3, [r4, #2616]
bl sftl_printk
mov r3, #1
- str r3, [r4, #3164]
- b .L279
-.L284:
+ str r3, [r4, #3168]
+ b .L282
+.L287:
add r0, r0, #1
uxth r0, r0
cmp r0, r10
- bhi .L280
+ bhi .L283
ldrh r5, [r3, #4]
cmp r5, #0
- beq .L282
+ beq .L285
sub r3, r3, lr
asr r3, r3, #3
uxth r5, r3
lsl r3, r5, #1
ldrh r3, [r8, r3]
cmp r6, r3
- bcs .L283
+ bcs .L286
cmp r1, r3
movhi r1, r3
movhi r2, r5
-.L282:
+.L285:
add r3, lr, ip, lsl #3
- b .L281
-.L294:
+ b .L284
+.L297:
.align 2
-.L293:
+.L296:
.word .LANCHOR0
- .word .LC72
+ .word .LANCHOR0+296
+ .word .LC78
.size GetSwlReplaceBlock, .-GetSwlReplaceBlock
.align 2
.global free_data_superblock
@@ -2625,19 +2743,19 @@ free_data_superblock:
uxth r0, r0
movw r3, #65535
cmp r0, r3
- beq .L296
- ldr r3, .L297
+ beq .L299
+ ldr r3, .L300
mov r1, #0
- ldr r2, [r3, #2324]
+ ldr r2, [r3, #76]
lsl r3, r0, #1
strh r1, [r2, r3] @ movhi
bl INSERT_FREE_LIST
-.L296:
+.L299:
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L298:
+.L301:
.align 2
-.L297:
+.L300:
.word .LANCHOR0
.size free_data_superblock, .-free_data_superblock
.align 2
@@ -2656,82 +2774,88 @@ get_new_active_ppa:
movw r3, #65535
mov r4, r0
cmp r2, r3
- bne .L300
- movw r2, #2786
- ldr r1, .L313
- ldr r0, .L313+4
+ bne .L303
+ movw r2, #2781
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L300:
- ldr r5, .L313+8
+.L303:
+ ldr r6, .L317+8
+ movw r3, #306
ldrh r2, [r4, #2]
- ldrh r3, [r5, #102]
+ ldrh r3, [r6, r3]
cmp r2, r3
- bne .L301
- movw r2, #2787
- ldr r1, .L313
- ldr r0, .L313+4
+ bne .L304
+ movw r2, #2782
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L301:
+.L304:
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L302
- movw r2, #2788
- ldr r1, .L313
- ldr r0, .L313+4
+ bne .L305
+ movw r2, #2783
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L302:
+.L305:
ldrb r2, [r4, #6] @ zero_extendqisi2
mov r3, #0
- ldrh r1, [r5, #32]
+ ldrh r0, [r6, #236]
movw ip, #65535
strb r3, [r4, #10]
add r2, r4, r2, lsl #1
- ldrh r0, [r2, #16]
+ ldrh r1, [r2, #16]
mov r2, r3
-.L303:
- cmp r0, ip
- ldrb r3, [r4, #6] @ zero_extendqisi2
- beq .L305
+.L306:
+ cmp r1, ip
+ beq .L308
+ movw r3, #306
+ ldrh r5, [r4, #2]
+ ldrh ip, [r6, r3]
+ cmp r5, ip
+ movwcs r5, #65535
+ bcs .L302
ldrh r2, [r4, #4]
- ldrh r6, [r4, #2]
+ orr r5, r5, r1, lsl #10
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ movw lr, #65535
sub r2, r2, #1
uxth r2, r2
- orr r6, r6, r0, lsl #10
- movw r0, #65535
strh r2, [r4, #4] @ movhi
-.L307:
+.L311:
add r3, r3, #1
uxtb r3, r3
- cmp r1, r3
- ldrheq r3, [r4, #2]
- addeq r3, r3, #1
- strheq r3, [r4, #2] @ movhi
+ cmp r0, r3
+ ldrheq r1, [r4, #2]
moveq r3, #0
- add ip, r4, r3, lsl #1
- ldrh ip, [ip, #16]
- cmp ip, r0
- beq .L307
+ addeq r1, r1, #1
+ strheq r1, [r4, #2] @ movhi
+ add r1, r4, r3, lsl #1
+ ldrh r1, [r1, #16]
+ cmp r1, lr
+ beq .L311
strb r3, [r4, #6]
cmp r2, #0
ldrh r3, [r4, #2]
- ldrh r1, [r5, #102]
- sub r3, r3, r1
+ sub r3, r3, ip
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
- beq .L299
- movw r2, #2809
- ldr r1, .L313
- ldr r0, .L313+4
+ beq .L302
+ movw r2, #2806
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L299:
- mov r0, r6
+.L302:
+ mov r0, r5
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L305:
+.L308:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r3, #1
uxtb r3, r3
- cmp r3, r1
+ cmp r3, r0
strb r3, [r4, #6]
ldrheq r3, [r4, #2]
strbeq r2, [r4, #6]
@@ -2739,13 +2863,13 @@ get_new_active_ppa:
strheq r3, [r4, #2] @ movhi
ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r4, r3, lsl #1
- ldrh r0, [r3, #16]
- b .L303
-.L314:
+ ldrh r1, [r3, #16]
+ b .L306
+.L318:
.align 2
-.L313:
+.L317:
.word .LANCHOR1+111
- .word .LC1
+ .word .LC8
.word .LANCHOR0
.size get_new_active_ppa, .-get_new_active_ppa
.align 2
@@ -2758,93 +2882,99 @@ FtlGcBufInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L320
+ ldr r5, .L324
mov lr, #12
mov r4, #1
- mov r5, #20
- mov r2, #0
- str r2, [r3, #3168]
-.L316:
- ldrh r1, [r3, #32]
- uxth r0, r2
- add ip, r2, #1
+ ldr r2, .L324+4
+ mov r6, #20
+ mov r3, #0
+ str r3, [r2, #3172]
+.L320:
+ ldrh r1, [r2, #236]
+ uxth r0, r3
+ add ip, r3, #1
cmp r0, r1
- bcc .L317
- mov ip, #12
- mov lr, #0
-.L318:
- ldr r2, [r3, #3188]
- cmp r1, r2
- bcc .L319
- ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L317:
- uxth r2, r2
- ldr r6, [r3, #3172]
- mul r0, lr, r2
- add r1, r6, r0
+ bcc .L321
+ ldr lr, .L324
+ mov r0, #12
+ mov ip, #0
+.L322:
+ ldr r3, [r2, #3192]
+ cmp r1, r3
+ bcc .L323
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
+.L321:
+ uxth r3, r3
+ ldr r7, [r2, #3176]
+ mul r0, lr, r3
+ add r1, r7, r0
str r4, [r1, #8]
- ldrh r1, [r3, #110]
- mul r1, r2, r1
- add r7, r1, #3
- cmp r1, #0
- movlt r1, r7
- ldr r7, [r3, #3176]
- bic r1, r1, #3
- add r1, r7, r1
- str r1, [r6, r0]
- ldrh r1, [r3, #112]
- ldr r7, [r3, #3172]
- mul r1, r2, r1
- add r6, r7, r0
+ ldrh r1, [r5]
+ mul r1, r3, r1
add r8, r1, #3
cmp r1, #0
movlt r1, r8
- ldr r8, [r3, #3180]
+ ldr r8, [r2, #3180]
bic r1, r1, #3
add r1, r8, r1
- str r1, [r6, #4]
- ldr r1, [r3, #3184]
- mla r2, r5, r2, r1
- ldr r1, [r7, r0]
- str r1, [r2, #8]
- ldr r1, [r6, #4]
- str r1, [r2, #12]
- mov r2, ip
- b .L316
-.L319:
- mul r4, ip, r1
- ldr r5, [r3, #3172]
- add r2, r5, r4
- str lr, [r2, #8]
- ldrh r2, [r3, #110]
- mul r2, r1, r2
- add r0, r2, #3
- cmp r2, #0
- movlt r2, r0
- ldr r0, [r3, #3176]
- bic r2, r2, #3
- add r2, r0, r2
- str r2, [r5, r4]
- ldrh r2, [r3, #112]
- ldr r0, [r3, #3172]
- mul r2, r1, r2
- add r0, r0, r4
+ str r1, [r7, r0]
+ ldr r1, .L324+8
+ ldr r8, [r2, #3176]
+ ldrh r1, [r1]
+ add r7, r8, r0
+ mul r1, r3, r1
+ add r9, r1, #3
+ cmp r1, #0
+ movlt r1, r9
+ ldr r9, [r2, #3184]
+ bic r1, r1, #3
+ add r1, r9, r1
+ str r1, [r7, #4]
+ ldr r1, [r2, #3188]
+ mla r3, r6, r3, r1
+ ldr r1, [r8, r0]
+ str r1, [r3, #8]
+ ldr r1, [r7, #4]
+ str r1, [r3, #12]
+ mov r3, ip
+ b .L320
+.L323:
+ mul r4, r0, r1
+ ldr r6, [r2, #3176]
+ add r3, r6, r4
+ str ip, [r3, #8]
+ ldrh r3, [lr]
+ mul r3, r1, r3
+ add r5, r3, #3
+ cmp r3, #0
+ movlt r3, r5
+ ldr r5, [r2, #3180]
+ bic r3, r3, #3
+ add r3, r5, r3
+ str r3, [r6, r4]
+ ldr r3, [r2, #3176]
+ add r4, r3, r4
+ ldr r3, .L324+8
+ ldrh r3, [r3]
+ mul r3, r1, r3
add r1, r1, #1
uxth r1, r1
- add r4, r2, #3
- cmp r2, #0
- movlt r2, r4
- ldr r4, [r3, #3180]
- bic r2, r2, #3
- add r2, r4, r2
- str r2, [r0, #4]
- b .L318
-.L321:
+ add r5, r3, #3
+ cmp r3, #0
+ movlt r3, r5
+ ldr r5, [r2, #3184]
+ bic r3, r3, #3
+ add r3, r5, r3
+ str r3, [r4, #4]
+ b .L322
+.L325:
.align 2
-.L320:
+.L324:
+ .word .LANCHOR0+314
.word .LANCHOR0
+ .word .LANCHOR0+316
.size FtlGcBufInit, .-FtlGcBufInit
.align 2
.global FtlGcBufFree
@@ -2858,37 +2988,37 @@ FtlGcBufFree:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L329
+ ldr r3, .L333
mov lr, #0
mov r5, #20
mov r7, #12
mov r8, lr
- ldr r6, [r3, #3188]
- ldr r4, [r3, #3172]
-.L323:
+ ldr r6, [r3, #3192]
+ ldr r4, [r3, #3176]
+.L327:
uxth r3, lr
cmp r1, r3
ldmfdls sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
mla ip, r5, r3, r0
mov r2, #0
-.L324:
+.L328:
uxth r3, r2
cmp r6, r3
- bls .L325
+ bls .L329
mul r3, r7, r3
add r2, r2, #1
ldr r10, [r4, r3]
add r9, r4, r3
ldr r3, [ip, #8]
cmp r10, r3
- bne .L324
+ bne .L328
str r8, [r9, #8]
-.L325:
+.L329:
add lr, lr, #1
- b .L323
-.L330:
+ b .L327
+.L334:
.align 2
-.L329:
+.L333:
.word .LANCHOR0
.size FtlGcBufFree, .-FtlGcBufFree
.align 2
@@ -2903,41 +3033,41 @@ FtlGcBufAlloc:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L338
+ ldr r3, .L342
mov ip, #0
mov r6, #12
mov r7, #1
mov r8, #20
- ldr r4, [r3, #3188]
- ldr r5, [r3, #3172]
-.L332:
+ ldr r4, [r3, #3192]
+ ldr r5, [r3, #3176]
+.L336:
uxth r2, ip
cmp r1, r2
- bhi .L336
+ bhi .L340
ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
-.L336:
+.L340:
mov lr, #0
-.L333:
+.L337:
uxth r3, lr
cmp r4, r3
- bls .L334
+ bls .L338
mla r3, r6, r3, r5
add lr, lr, #1
ldr r9, [r3, #8]
cmp r9, #0
- bne .L333
+ bne .L337
mla r2, r8, r2, r0
ldr lr, [r3]
str r7, [r3, #8]
str lr, [r2, #8]
ldr r3, [r3, #4]
str r3, [r2, #12]
-.L334:
+.L338:
add ip, ip, #1
- b .L332
-.L339:
+ b .L336
+.L343:
.align 2
-.L338:
+.L342:
.word .LANCHOR0
.size FtlGcBufAlloc, .-FtlGcBufAlloc
.align 2
@@ -2952,26 +3082,26 @@ IsBlkInGcList:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r2, .L345
- movw r1, #3196
+ ldr r2, .L349
uxth r0, r0
- ldr r3, [r2, #3192]
- ldrh r2, [r2, r1]
+ ldr r3, [r2, #3196]
+ add r2, r2, #3200
+ ldrh r2, [r2]
add r2, r3, r2, lsl #1
-.L341:
+.L345:
cmp r3, r2
- bne .L343
+ bne .L347
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L343:
+.L347:
ldrh r1, [r3], #2
cmp r1, r0
- bne .L341
+ bne .L345
mov r0, #1
ldmfd sp, {fp, sp, pc}
-.L346:
+.L350:
.align 2
-.L345:
+.L349:
.word .LANCHOR0
.size IsBlkInGcList, .-IsBlkInGcList
.align 2
@@ -2984,52 +3114,51 @@ FtlGcUpdatePage:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
mov r4, r0
ubfx r0, r0, #10, #16
mov r5, r1
mov r6, r2
bl P2V_block_in_plane
- ldr r3, .L351
- movw r2, #3196
+ ldr r3, .L355
mov ip, #0
- ldrh lr, [r3, r2]
- ldr r2, [r3, #3192]
- sub r1, r2, #2
-.L348:
- uxth r7, ip
- cmp r7, lr
- bcc .L350
- bne .L349
- lsl ip, r7, #1
- strh r0, [r2, ip] @ movhi
- movw r2, #3196
- ldrh r0, [r3, r2]
- add r0, r0, #1
- strh r0, [r3, r2] @ movhi
- b .L349
-.L350:
- ldrh r7, [r1, #2]!
+ add lr, r3, #3200
+ ldr r1, [r3, #3196]
+ ldrh r7, [lr]
+ sub r2, r1, #2
+.L352:
+ uxth r8, ip
+ cmp r8, r7
+ bcc .L354
+ moveq ip, r8
+ lsleq ip, ip, #1
+ strheq r0, [r1, ip] @ movhi
+ ldrheq r2, [lr]
+ addeq r2, r2, #1
+ strheq r2, [lr] @ movhi
+ b .L353
+.L354:
+ ldrh r8, [r2, #2]!
add ip, ip, #1
- cmp r7, r0
- bne .L348
-.L349:
- movw ip, #3204
+ cmp r8, r0
+ bne .L352
+.L353:
+ movw ip, #3208
mov r0, #12
ldrh r2, [r3, ip]
mul r0, r0, r2
- ldr r2, [r3, #3200]
+ ldr r2, [r3, #3204]
add r1, r2, r0
stmib r1, {r5, r6}
str r4, [r2, r0]
ldrh r2, [r3, ip]
add r2, r2, #1
strh r2, [r3, ip] @ movhi
- ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L352:
+ ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
+.L356:
.align 2
-.L351:
+.L355:
.word .LANCHOR0
.size FtlGcUpdatePage, .-FtlGcUpdatePage
.align 2
@@ -3045,31 +3174,29 @@ FtlGcRefreshBlock:
push {r4, fp, ip, lr, pc}
sub fp, ip, #4
uxth r4, r0
- ldr r0, .L356
+ ldr r0, .L360
mov r1, r4
bl sftl_printk
- ldr r3, .L356+4
- movw ip, #3206
- ldrh lr, [r3, ip]
- cmp r4, lr
- beq .L354
- movw r2, #3208
- ldrh r0, [r3, r2]
+ ldr r3, .L360+4
+ ldrh r0, [r3, #226]
cmp r4, r0
- beq .L354
- movw r1, #65535
- cmp lr, r1
- strheq r4, [r3, ip] @ movhi
- beq .L354
- cmp r0, r1
- strheq r4, [r3, r2] @ movhi
-.L354:
+ beq .L358
+ ldrh r1, [r3, #224]
+ cmp r4, r1
+ beq .L358
+ movw r2, #65535
+ cmp r0, r2
+ strheq r4, [r3, #226] @ movhi
+ beq .L358
+ cmp r1, r2
+ strheq r4, [r3, #224] @ movhi
+.L358:
mov r0, #0
ldmfd sp, {r4, fp, sp, pc}
-.L357:
+.L361:
.align 2
-.L356:
- .word .LC73
+.L360:
+ .word .LC79
.word .LANCHOR0
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
.align 2
@@ -3084,7 +3211,7 @@ FtlGcMarkBadPhyBlk:
mov ip, sp
push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L362
+ ldr r4, .L366
uxth r5, r0
movw r6, #3210
mov r0, r5
@@ -3092,39 +3219,39 @@ FtlGcMarkBadPhyBlk:
mov r2, r5
mov r7, r0
ldrh r1, [r4, r6]
- ldr r0, .L362+4
+ ldr r0, .L366+4
bl sftl_printk
mov r0, r7
bl FtlGcRefreshBlock
ldrh r3, [r4, r6]
mov r2, #0
- ldr r0, .L362+8
-.L359:
+ ldr r0, .L366+8
+.L363:
uxth r1, r2
cmp r3, r1
- bhi .L361
+ bhi .L365
cmp r3, #15
movwls r2, #3210
addls r1, r3, #1
strhls r1, [r4, r2] @ movhi
lslls r3, r3, #1
- ldrls r2, .L362+8
+ ldrls r2, .L366+8
strhls r5, [r2, r3] @ movhi
- b .L360
-.L361:
+ b .L364
+.L365:
add r2, r2, #1
add r1, r0, r2, lsl #1
ldrh r1, [r1, #-2]
cmp r1, r5
- bne .L359
-.L360:
+ bne .L363
+.L364:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L363:
+.L367:
.align 2
-.L362:
+.L366:
.word .LANCHOR0
- .word .LC74
+ .word .LC80
.word .LANCHOR0+3212
.size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
.align 2
@@ -3139,16 +3266,15 @@ FtlGcReFreshBadBlk:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L370
+ ldr r4, .L374
movw r3, #3210
ldrh r2, [r4, r3]
cmp r2, #0
- beq .L365
- movw r3, #3206
- ldrh r1, [r4, r3]
+ beq .L369
+ ldrh r1, [r4, #226]
movw r3, #65535
cmp r1, r3
- bne .L365
+ bne .L369
movw r3, #3246
movw r5, #3246
ldrh r1, [r4, r3]
@@ -3156,7 +3282,7 @@ FtlGcReFreshBadBlk:
movcs r2, #0
strhcs r2, [r4, r3] @ movhi
ldrh r3, [r4, r5]
- ldr r2, .L370+4
+ ldr r2, .L374+4
lsl r3, r3, #1
ldrh r0, [r2, r3]
bl P2V_block_in_plane
@@ -3164,12 +3290,12 @@ FtlGcReFreshBadBlk:
ldrh r3, [r4, r5]
add r3, r3, #1
strh r3, [r4, r5] @ movhi
-.L365:
+.L369:
mov r0, #0
ldmfd sp, {r4, r5, fp, sp, pc}
-.L371:
+.L375:
.align 2
-.L370:
+.L374:
.word .LANCHOR0
.word .LANCHOR0+3212
.size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
@@ -3185,12 +3311,12 @@ ftl_malloc:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r1, .L373
+ ldr r1, .L377
bl __kmalloc
ldmfd sp, {fp, sp, pc}
-.L374:
+.L378:
.align 2
-.L373:
+.L377:
.word 37748929
.size ftl_malloc, .-ftl_malloc
.align 2
@@ -3227,51 +3353,51 @@ rknand_print_hex:
mov r9, r3
mov r5, r6
mov r4, r6
-.L377:
+.L381:
cmp r4, r9
- bcc .L383
- ldr r0, .L385
+ bcc .L387
+ ldr r0, .L389
bl sftl_printk
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L383:
+.L387:
cmp r5, #0
- bne .L378
+ bne .L382
mov r3, r6
mov r2, r7
mov r1, r10
- ldr r0, .L385+4
+ ldr r0, .L389+4
bl sftl_printk
-.L378:
+.L382:
cmp r8, #4
ldreq r1, [r7, r4, lsl #2]
- ldreq r0, .L385+8
- beq .L384
+ ldreq r0, .L389+8
+ beq .L388
cmp r8, #2
lsleq r3, r4, #1
- ldreq r0, .L385+12
+ ldreq r0, .L389+12
ldrbne r1, [r7, r4] @ zero_extendqisi2
ldrheq r1, [r7, r3]
- ldrne r0, .L385+16
-.L384:
+ ldrne r0, .L389+16
+.L388:
add r5, r5, #1
bl sftl_printk
cmp r5, #15
- bls .L382
+ bls .L386
mov r5, #0
- ldr r0, .L385
+ ldr r0, .L389
bl sftl_printk
-.L382:
+.L386:
add r4, r4, #1
add r6, r6, r8
- b .L377
-.L386:
+ b .L381
+.L390:
.align 2
-.L385:
- .word .LC79
- .word .LC75
- .word .LC76
- .word .LC77
- .word .LC78
+.L389:
+ .word .LC85
+ .word .LC81
+ .word .LC82
+ .word .LC83
+ .word .LC84
.size rknand_print_hex, .-rknand_print_hex
.align 2
.global FlashEraseBlocks
@@ -3287,29 +3413,29 @@ FlashEraseBlocks:
sub fp, ip, #4
sub sp, sp, #12
mov r7, #0
- ldr r6, .L403
+ ldr r6, .L407
mov r8, r2
mov r4, r0
mov r5, r0
ldrh r9, [r6, #12]
lsl r10, r9, #3
-.L388:
+.L392:
cmp r7, r8
- beq .L392
+ beq .L396
sub r2, fp, #48
sub r1, fp, #44
mov r0, r5
bl l2p_addr_tran
ldr ip, [fp, #-48]
cmp ip, #0
- bne .L389
+ bne .L393
ldr r3, [fp, #-44]
cmp r10, r3
- bls .L389
- ldr r5, .L403+4
- ldr r6, .L403+8
- b .L402
-.L391:
+ bls .L393
+ ldr r5, .L407+4
+ ldr r6, .L407+8
+ b .L406
+.L395:
mvn r3, #0
ldr r2, [fp, #-44]
str r3, [r4, #-20]
@@ -3320,25 +3446,25 @@ FlashEraseBlocks:
mov r3, #16
mov r2, #4
ldr r1, [r4, #-12]
- ldr r0, .L403+12
+ ldr r0, .L407+12
bl rknand_print_hex
mov r3, #4
ldr r1, [r4, #-8]
mov r2, r3
- ldr r0, .L403+16
+ ldr r0, .L407+16
bl rknand_print_hex
ldr ip, [fp, #-52]
add ip, ip, #1
-.L402:
+.L406:
cmp ip, r8
add r4, r4, #20
- bne .L391
+ bne .L395
bl dump_stack
-.L392:
+.L396:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L389:
+.L393:
ldr r3, [r6, #3252]
uxtb r0, ip
ldr r1, [fp, #-44]
@@ -3349,7 +3475,7 @@ FlashEraseBlocks:
strne r3, [r5]
ldrh r3, [r6, #14]
cmp r3, #4
- bne .L396
+ bne .L400
ldr r1, [fp, #-44]
ldr r3, [r6, #3252]
ldrb r0, [fp, #-48] @ zero_extendqisi2
@@ -3358,18 +3484,18 @@ FlashEraseBlocks:
cmp r0, #0
mvnne r3, #0
strne r3, [r5]
-.L396:
+.L400:
add r7, r7, #1
add r5, r5, #20
- b .L388
-.L404:
+ b .L392
+.L408:
.align 2
-.L403:
+.L407:
.word .LANCHOR0
.word .LANCHOR1+130
- .word .LC80
- .word .LC81
- .word .LC82
+ .word .LC86
+ .word .LC87
+ .word .LC88
.size FlashEraseBlocks, .-FlashEraseBlocks
.align 2
.global FtlFreeSysBlkQueueIn
@@ -3381,52 +3507,53 @@ FtlFreeSysBlkQueueIn:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, fp, ip, lr, pc}
sub fp, ip, #4
- uxth r5, r0
+ uxth r6, r0
movw r2, #65533
uxth r1, r1
- sub r3, r5, #1
+ sub r3, r6, #1
uxth r3, r3
cmp r3, r2
- ldmfdhi sp, {r4, r5, r6, fp, sp, pc}
- ldr r4, .L414
- ldrh r3, [r4, #218]
+ ldmfdhi sp, {r4, r5, r6, r7, fp, sp, pc}
+ ldr r5, .L418
+ add r4, r5, #416
+ ldrh r3, [r4, #6]
cmp r3, #1024
- ldmfdeq sp, {r4, r5, r6, fp, sp, pc}
+ ldmfdeq sp, {r4, r5, r6, r7, fp, sp, pc}
cmp r1, #0
- beq .L407
- mov r0, r5
+ beq .L411
+ mov r0, r6
bl P2V_block_in_plane
- mov r6, r0
- ldr r0, [r4, #3272]
- lsl r3, r5, #10
+ mov r7, r0
+ ldr r0, [r5, #3272]
+ lsl r3, r6, #10
mov r2, #1
mov r1, r2
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r2, [r4, #2328]
- lsl r0, r6, #1
+ ldr r2, [r5, #2540]
+ lsl r0, r7, #1
ldrh r3, [r2, r0]
add r3, r3, #1
strh r3, [r2, r0] @ movhi
- ldr r3, [r4, #2560]
+ ldr r3, [r5, #2612]
add r3, r3, #1
- str r3, [r4, #2560]
-.L407:
- ldrh r3, [r4, #218]
+ str r3, [r5, #2612]
+.L411:
+ ldrh r3, [r4, #6]
add r3, r3, #1
- strh r3, [r4, #218] @ movhi
- ldrh r3, [r4, #216]
+ strh r3, [r4, #6] @ movhi
+ ldrh r3, [r4, #4]
add r2, r4, r3, lsl #1
add r3, r3, #1
ubfx r3, r3, #0, #10
- strh r5, [r2, #220] @ movhi
- strh r3, [r4, #216] @ movhi
- ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L415:
+ strh r6, [r2, #8] @ movhi
+ strh r3, [r4, #4] @ movhi
+ ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
+.L419:
.align 2
-.L414:
+.L418:
.word .LANCHOR0
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
.align 2
@@ -3439,50 +3566,51 @@ FtlFreeSysBlkQueueOut:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, fp, ip, lr, pc}
+ push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L421
- ldrh r2, [r4, #218]
+ ldr r6, .L425
+ add r4, r6, #416
+ ldrh r2, [r4, #6]
cmp r2, #0
movweq r5, #65535
- beq .L417
- ldrh r3, [r4, #214]
+ beq .L421
+ ldrh r3, [r4, #2]
sub r2, r2, #1
- ldr r0, [r4, #3272]
- strh r2, [r4, #218] @ movhi
+ ldr r0, [r6, #3272]
+ strh r2, [r4, #6] @ movhi
mov r2, #1
add r1, r4, r3, lsl #1
add r3, r3, #1
ubfx r3, r3, #0, #10
- ldrh r5, [r1, #220]
+ ldrh r5, [r1, #8]
mov r1, r2
- strh r3, [r4, #214] @ movhi
+ strh r3, [r4, #2] @ movhi
lsl r3, r5, #10
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r3, [r4, #2560]
+ ldr r3, [r6, #2612]
add r3, r3, #1
- str r3, [r4, #2560]
-.L417:
+ str r3, [r6, #2612]
+.L421:
sub r3, r5, #1
movw r2, #65533
uxth r3, r3
cmp r3, r2
- bls .L418
- ldrh r2, [r4, #218]
+ bls .L422
+ ldrh r2, [r4, #6]
mov r1, r5
- ldr r0, .L421+4
+ ldr r0, .L425+4
bl sftl_printk
-.L419:
- b .L419
-.L418:
- mov r0, r5
- ldmfd sp, {r4, r5, fp, sp, pc}
+.L423:
+ b .L423
.L422:
+ mov r0, r5
+ ldmfd sp, {r4, r5, r6, fp, sp, pc}
+.L426:
.align 2
-.L421:
+.L425:
.word .LANCHOR0
- .word .LC83
+ .word .LC89
.size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
.align 2
.global ftl_map_blk_alloc_new_blk
@@ -3500,16 +3628,16 @@ ftl_map_blk_alloc_new_blk:
mov r4, r0
mov r3, #0
ldr r2, [r0, #12]
-.L424:
+.L428:
uxth r5, r3
cmp r5, r1
- bcs .L427
+ bcs .L431
mov r7, r2
add r3, r3, #1
ldrh r6, [r7]
add r2, r2, #2
cmp r6, #0
- bne .L424
+ bne .L428
bl FtlFreeSysBlkQueueOut
sub r3, r0, #1
movw r2, #65533
@@ -3517,14 +3645,14 @@ ftl_map_blk_alloc_new_blk:
mov r1, r0
strh r0, [r7] @ movhi
cmp r3, r2
- bls .L425
- ldr r3, .L431
- ldr r0, .L431+4
- ldrh r2, [r3, #218]
+ bls .L429
+ ldr r3, .L435
+ ldr r0, .L435+4
+ ldrh r2, [r3, #6]
bl sftl_printk
-.L426:
- b .L426
-.L425:
+.L430:
+ b .L430
+.L429:
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
strh r5, [r4] @ movhi
@@ -3533,24 +3661,24 @@ ftl_map_blk_alloc_new_blk:
ldrh r3, [r4, #8]
add r3, r3, #1
strh r3, [r4, #8] @ movhi
-.L427:
+.L431:
ldrh r3, [r4, #10]
cmp r3, r5
- bhi .L429
+ bhi .L433
movw r2, #578
- ldr r1, .L431+8
- ldr r0, .L431+12
+ ldr r1, .L435+8
+ ldr r0, .L435+12
bl sftl_printk
-.L429:
+.L433:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L432:
+.L436:
.align 2
-.L431:
- .word .LANCHOR0
- .word .LC84
+.L435:
+ .word .LANCHOR0+416
+ .word .LC90
.word .LANCHOR1+147
- .word .LC1
+ .word .LC8
.size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
.align 2
.global FlashGetBadBlockList
@@ -3564,7 +3692,7 @@ FlashGetBadBlockList:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r5, .L440
+ ldr r5, .L444
mov r4, r0
mov r6, r1
mov r2, #256
@@ -3576,30 +3704,30 @@ FlashGetBadBlockList:
blx r3
uxth r0, r0
cmp r0, #50
- bls .L434
+ bls .L438
mov r2, #256
mov r1, #255
mov r0, r4
bl memset
mov r0, #0
-.L434:
+.L438:
ldrh r3, [r5, #14]
cmp r3, #4
moveq r3, r4
addeq r1, r3, r0, lsl #1
- beq .L436
+ beq .L440
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L437:
+.L441:
ldrh r2, [r3]
lsr r2, r2, #1
strh r2, [r3], #2 @ movhi
-.L436:
+.L440:
cmp r3, r1
- bne .L437
+ bne .L441
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L441:
+.L445:
.align 2
-.L440:
+.L444:
.word .LANCHOR0
.size FlashGetBadBlockList, .-FlashGetBadBlockList
.align 2
@@ -3616,9 +3744,9 @@ ftl_memset:
sub fp, ip, #4
cmp r2, #0
mov r4, r0
- beq .L443
+ beq .L447
bl memset
-.L443:
+.L447:
mov r0, r4
ldmfd sp, {r4, fp, sp, pc}
.size ftl_memset, .-ftl_memset
@@ -3632,58 +3760,58 @@ FtlMemInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L548
+ ldr r4, .L552
movw r3, #65535
- movw r2, #3206
+ movw r6, #310
+ mov r2, #32
mov r5, #0
- mov r7, #12
str r3, [r4, #3280]
mvn r3, #0
- strh r3, [r4, r2] @ movhi
- movw r2, #3208
- strh r3, [r4, r2] @ movhi
- add r3, r4, #3152
- mov r2, #32
- ldrh r0, [r4, #106]
- strh r2, [r3] @ movhi
+ ldrh r0, [r4, r6]
+ mov r7, #12
+ strh r3, [r4, #226] @ movhi
+ add r9, r4, #316
+ strh r3, [r4, #224] @ movhi
+ movw r3, #3156
+ strh r2, [r4, r3] @ movhi
mov r2, #128
- movw r3, #3154
- str r5, [r4, #2540]
+ movw r3, #3158
+ lsl r0, r0, #1
strh r2, [r4, r3] @ movhi
- movw r3, #3160
+ movw r3, #3164
strh r5, [r4, r3] @ movhi
movw r3, #3210
strh r5, [r4, r3] @ movhi
- lsl r0, r0, #1
movw r3, #3246
- str r5, [r4, #2544]
strh r5, [r4, r3] @ movhi
- mov r6, #20
- str r5, [r4, #2528]
- str r5, [r4, #2516]
- str r5, [r4, #2512]
- str r5, [r4, #2520]
- str r5, [r4, #2524]
- str r5, [r4, #2508]
- str r5, [r4, #2548]
- str r5, [r4, #2552]
- str r5, [r4, #2560]
- str r5, [r4, #2564]
+ str r5, [r4, #2592]
+ str r5, [r4, #2596]
+ str r5, [r4, #2580]
str r5, [r4, #2568]
+ str r5, [r4, #2564]
+ str r5, [r4, #2572]
+ str r5, [r4, #2576]
+ str r5, [r4, #2560]
+ str r5, [r4, #2600]
+ str r5, [r4, #2604]
+ str r5, [r4, #2612]
+ str r5, [r4, #2616]
+ str r5, [r4, #2620]
str r5, [r4, #3276]
- str r5, [r4, #3164]
+ str r5, [r4, #3168]
str r5, [r4, #3284]
- str r5, [r4, #3156]
+ str r5, [r4, #3160]
str r5, [r4, #3288]
bl ftl_malloc
- str r0, [r4, #3192]
- ldrh r0, [r4, #106]
+ str r0, [r4, #3196]
+ ldrh r0, [r4, r6]
+ mov r6, #20
mul r0, r7, r0
bl ftl_malloc
- ldrh r3, [r4, #32]
- str r0, [r4, #3200]
+ ldrh r3, [r4, #236]
+ str r0, [r4, #3204]
mul r6, r6, r3
lsl r8, r6, #2
mov r0, r8
@@ -3700,13 +3828,14 @@ FtlMemInit:
str r0, [r4, #3272]
mov r0, r6
bl ftl_malloc
- ldrh r3, [r4, #32]
- ldrh r6, [r4, #110]
- str r0, [r4, #3184]
+ ldrh r3, [r4, #236]
+ movw r8, #314
+ ldrh r6, [r4, r8]
+ str r0, [r4, #3188]
lsl r3, r3, #1
mov r0, r6
add r3, r3, #1
- str r3, [r4, #3188]
+ str r3, [r4, #3192]
bl ftl_malloc
str r0, [r4, #3304]
mov r0, r6
@@ -3715,31 +3844,32 @@ FtlMemInit:
mov r0, r6
bl ftl_malloc
str r0, [r4, #3312]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
mul r0, r0, r6
bl ftl_malloc
- str r0, [r4, #3176]
+ str r0, [r4, #3180]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3316]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3320]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
mul r0, r7, r0
bl ftl_malloc
- str r0, [r4, #3172]
+ str r0, [r4, #3176]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3324]
mov r0, r6
bl ftl_malloc
+ movw r3, #262
str r0, [r4, #3328]
- ldrh r0, [r4, #58]
+ ldrh r0, [r4, r3]
lsl r0, r0, #2
bl ftl_malloc
- ldrh r3, [r4, #112]
- ldrh r6, [r4, #32]
+ ldrh r3, [r9]
+ ldrh r6, [r4, #236]
str r0, [r4, #3332]
mul r6, r6, r3
mov r0, r6
@@ -3748,38 +3878,38 @@ FtlMemInit:
lsl r0, r6, #2
add r6, r4, #3344
bl ftl_malloc
- ldrh r3, [r4, #112]
+ ldrh r3, [r9]
str r0, [r4, #3340]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
mul r0, r0, r3
bl ftl_malloc
- str r0, [r4, #3180]
- ldrh r0, [r4, #42]
+ str r0, [r4, #3184]
+ ldrh r0, [r4, #246]
lsl r0, r0, #1
uxth r0, r0
strh r0, [r6] @ movhi
bl ftl_malloc
str r0, [r4, #3348]
ldrh r0, [r6]
- ldr r3, .L548+4
+ ldr r3, .L552+4
add r0, r0, #544
add r0, r0, #3
lsr r0, r0, #9
strh r0, [r6] @ movhi
and r0, r3, r0, lsl #9
bl ftl_malloc
- ldrh r6, [r4, #42]
+ ldrh r6, [r4, #246]
str r0, [r4, #3352]
add r0, r0, #32
- str r0, [r4, #2328]
+ str r0, [r4, #2540]
lsl r6, r6, #1
mov r0, r6
bl ftl_malloc
str r0, [r4, #3356]
mov r0, r6
bl ftl_malloc
- ldr r6, [r4, #128]
- str r0, [r4, #2324]
+ ldr r6, [r4, #332]
+ str r0, [r4, #76]
lsl r6, r6, #1
mov r0, r6
bl ftl_malloc
@@ -3787,55 +3917,61 @@ FtlMemInit:
mov r0, r6
bl ftl_malloc
str r0, [r4, #3364]
- ldrh r0, [r4, #42]
+ add r6, r4, #324
+ ldrh r0, [r4, #246]
lsr r0, r0, #3
add r0, r0, #4
bl ftl_malloc
str r0, [r4, #24]
- ldrh r0, [r4, #120]
+ ldrh r0, [r6]
lsl r0, r0, #1
bl ftl_malloc
- str r0, [r4, #148]
- ldrh r0, [r4, #120]
+ str r0, [r4, #352]
+ ldrh r0, [r6]
lsl r0, r0, #1
bl ftl_malloc
str r0, [r4, #3368]
- ldrh r0, [r4, #120]
+ ldrh r0, [r6]
+ movw r6, #326
lsl r0, r0, #2
bl ftl_malloc
str r0, [r4, #3372]
- ldrh r0, [r4, #122]
+ ldrh r0, [r4, r6]
lsl r0, r0, #2
bl ftl_malloc
- ldrh r2, [r4, #122]
+ ldrh r2, [r4, r6]
mov r1, r5
str r0, [r4, #3376]
- add r5, r4, #3392
+ movw r5, #342
+ movw r6, #258
lsl r2, r2, #2
bl ftl_memset
- ldrh r0, [r4, #136]
+ add r3, r4, #340
+ ldrh r0, [r3]
lsl r0, r0, #2
bl ftl_malloc
str r0, [r4, #3380]
- ldr r0, [r4, #128]
+ ldr r0, [r4, #332]
lsl r0, r0, #2
bl ftl_malloc
str r0, [r4, #3384]
- ldrh r0, [r4, #138]
+ ldrh r0, [r4, r5]
mul r0, r7, r0
bl ftl_malloc
- ldrh r3, [r4, #138]
- str r0, [r4, #2492]
- ldrh r0, [r4, #110]
+ ldrh r3, [r4, r5]
+ add r5, r4, #3392
+ str r0, [r4, #2544]
+ ldrh r0, [r4, r8]
mul r0, r0, r3
bl ftl_malloc
str r0, [r4, #3388]
- ldrh r0, [r4, #42]
+ ldrh r0, [r4, #246]
lsl r0, r0, #3
bl ftl_malloc
- str r0, [r4, #2316]
- ldrh r0, [r4, #98]
- ldrh r3, [r4, #54]
+ movw r3, #302
+ str r0, [r4, #2520]
+ ldrh r0, [r4, r3]
+ ldrh r3, [r4, r6]
add r0, r0, #31
asr r0, r0, #5
strh r0, [r5] @ movhi
@@ -3843,147 +3979,147 @@ FtlMemInit:
lsl r0, r0, #2
bl ftl_malloc
ldrh r2, [r5]
- add ip, r4, #180
- ldrh lr, [r4, #54]
+ add ip, r4, #384
+ ldrh lr, [r4, r6]
mov r3, #1
- str r0, [r4, #180]
+ str r0, [r4, #384]
lsl r2, r2, #2
mov r1, r2
-.L448:
+.L452:
cmp r3, lr
- bcc .L449
- ldr r2, .L548+8
+ bcc .L453
+ ldr r2, .L552+8
mov r1, #0
add r3, r2, r3, lsl #2
add r2, r2, #56
add r3, r3, #24
-.L450:
+.L454:
cmp r2, r3
- bne .L451
+ bne .L455
ldr r3, [r4, #3360]
cmp r3, #0
- bne .L452
-.L454:
- ldr r1, .L548+12
- ldr r0, .L548+16
+ bne .L456
+.L458:
+ ldr r1, .L552+12
+ ldr r0, .L552+16
bl sftl_printk
mvn r0, #0
- ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L449:
- ldr r0, [r4, #180]
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
+.L453:
+ ldr r0, [r4, #384]
add r3, r3, #1
add r0, r0, r1
add r1, r1, r2
str r0, [ip, #4]!
- b .L448
-.L451:
+ b .L452
+.L455:
str r1, [r3, #4]!
- b .L450
-.L452:
+ b .L454
+.L456:
ldr r3, [r4, #3364]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3380]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3384]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #2492]
+ beq .L458
+ ldr r3, [r4, #2544]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3388]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #2316]
+ beq .L458
+ ldr r3, [r4, #2520]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #180]
+ beq .L458
+ ldr r3, [r4, #384]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #2324]
+ beq .L458
+ ldr r3, [r4, #76]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3192]
+ beq .L458
+ ldr r3, [r4, #3196]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3200]
+ beq .L458
+ ldr r3, [r4, #3204]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3292]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3300]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3272]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3184]
+ beq .L458
+ ldr r3, [r4, #3188]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3296]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3304]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3308]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3312]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3176]
+ beq .L458
+ ldr r3, [r4, #3180]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3316]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3320]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3172]
+ beq .L458
+ ldr r3, [r4, #3176]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3336]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3340]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #3180]
+ beq .L458
+ ldr r3, [r4, #3184]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #2328]
+ beq .L458
+ ldr r3, [r4, #2540]
cmp r3, #0
- beq .L454
+ beq .L458
ldr r3, [r4, #3348]
cmp r3, #0
- beq .L454
- ldr r3, [r4, #148]
+ beq .L458
+ ldr r3, [r4, #352]
cmp r3, #0
- beq .L454
- ldr r3, .L548
+ beq .L458
+ ldr r3, .L552
ldr r2, [r3, #3368]
cmp r2, #0
- beq .L454
+ beq .L458
ldr r2, [r3, #3372]
cmp r2, #0
- beq .L454
+ beq .L458
ldr r3, [r3, #3376]
cmp r3, #0
- beq .L454
+ beq .L458
mov r0, #0
- ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L549:
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
+.L553:
.align 2
-.L548:
+.L552:
.word .LANCHOR0
.word 33553920
- .word .LANCHOR0+152
+ .word .LANCHOR0+356
.word .LANCHOR1+173
- .word .LC85
+ .word .LC91
.size FtlMemInit, .-FtlMemInit
.align 2
.global FtlBbt2Bitmap
@@ -3997,48 +4133,49 @@ FtlBbt2Bitmap:
mov ip, sp
push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r6, .L556
+ ldr r3, .L560
mov r4, r0
- mov r7, r1
- ldr r8, .L556+4
+ mov r6, r1
+ ldr r7, .L560+4
sub r5, r4, #2
- ldrh r2, [r6]
+ ldrh r2, [r3]
add r4, r4, #1020
+ ldr r8, .L560+8
add r4, r4, #2
- sub r6, r6, #3392
mov r1, #0
- mov r0, r7
+ mov r0, r6
lsl r2, r2, #2
bl ftl_memset
-.L553:
+.L557:
ldrh r3, [r5, #2]
movw r2, #65535
cmp r3, r2
ldmfdeq sp, {r4, r5, r6, r7, r8, fp, sp, pc}
- ldrh r2, [r6, #98]
+ ldrh r2, [r7]
cmp r2, r3
- bhi .L552
+ bhi .L556
mov r2, #74
mov r1, r8
- ldr r0, .L556+8
+ ldr r0, .L560+12
bl sftl_printk
-.L552:
+.L556:
ldrh r3, [r5, #2]!
mov r0, #1
cmp r4, r5
lsr r1, r3, #5
and r3, r3, #31
- ldr r2, [r7, r1, lsl #2]
+ ldr r2, [r6, r1, lsl #2]
orr r3, r2, r0, lsl r3
- str r3, [r7, r1, lsl #2]
- bne .L553
+ str r3, [r6, r1, lsl #2]
+ bne .L557
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L557:
+.L561:
.align 2
-.L556:
+.L560:
.word .LANCHOR0+3392
+ .word .LANCHOR0+302
.word .LANCHOR1+184
- .word .LC1
+ .word .LC8
.size FtlBbt2Bitmap, .-FtlBbt2Bitmap
.align 2
.global ftl_free_no_use_map_blk
@@ -4063,39 +4200,39 @@ ftl_free_no_use_map_blk:
mov r0, r5
bl ftl_memset
mov r2, #0
-.L559:
+.L563:
ldrh r1, [r4, #6]
uxth r3, r2
cmp r1, r3
- bhi .L563
- ldr r3, .L578
+ bhi .L567
+ ldr r3, .L582
mov r6, #0
mov r8, r6
mov r10, r6
- ldrh r2, [r3, #104]
+ ldrh r2, [r3]
ldrh r3, [r4]
lsl r3, r3, #1
strh r2, [r5, r3] @ movhi
ldrh r9, [r5]
-.L564:
+.L568:
ldrh r3, [r4, #10]
uxth r1, r6
cmp r3, r1
- bhi .L568
+ bhi .L572
mov r0, r8
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L563:
+.L567:
uxth r3, r2
mov r1, #0
ldr r0, [r6, r3, lsl #2]
ubfx r0, r0, #10, #16
-.L560:
+.L564:
ldrh ip, [r4, #10]
uxth r3, r1
cmp ip, r3
addls r2, r2, #1
- bls .L559
-.L562:
+ bls .L563
+.L566:
uxth r3, r1
add r1, r1, #1
lsl r3, r3, #1
@@ -4108,28 +4245,28 @@ ftl_free_no_use_map_blk:
ldrhne ip, [r5, r3]
addne ip, ip, #1
strhne ip, [r5, r3] @ movhi
- b .L560
-.L568:
+ b .L564
+.L572:
uxth r3, r6
lsl r3, r3, #1
ldrh r2, [r5, r3]
cmp r9, r2
- bls .L565
+ bls .L569
ldrh r0, [r7, r3]
add ip, r7, r3
cmp r0, #0
- bne .L566
-.L567:
+ bne .L570
+.L571:
add r6, r6, #1
- b .L564
-.L565:
+ b .L568
+.L569:
cmp r2, #0
- bne .L567
+ bne .L571
ldrh r0, [r7, r3]
add ip, r7, r3
cmp r0, #0
- beq .L567
-.L569:
+ beq .L571
+.L573:
mov r1, #1
str ip, [fp, #-44]
bl FtlFreeSysBlkQueueIn
@@ -4138,16 +4275,16 @@ ftl_free_no_use_map_blk:
ldrh r3, [r4, #8]
sub r3, r3, #1
strh r3, [r4, #8] @ movhi
- b .L567
-.L566:
+ b .L571
+.L570:
subs r9, r2, #0
mov r8, r1
- beq .L569
- b .L567
-.L579:
+ beq .L573
+ b .L571
+.L583:
.align 2
-.L578:
- .word .LANCHOR0
+.L582:
+ .word .LANCHOR0+308
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
.align 2
.global FtlL2PDataInit
@@ -4159,43 +4296,48 @@ FtlL2PDataInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L583
+ ldr r4, .L587
mov r1, #0
mvn r5, #0
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
ldr r0, [r4, #3364]
lsl r2, r2, #1
bl ftl_memset
- ldrh r3, [r4, #110]
+ movw r3, #314
+ movw r2, #342
+ ldrh r3, [r4, r3]
mov r1, #255
- ldrh r2, [r4, #138]
+ ldrh r2, [r4, r2]
ldr r0, [r4, #3388]
mul r2, r2, r3
bl ftl_memset
+ ldr r0, .L587+4
mov r2, #0
mov r3, r4
mov lr, #12
mov r4, r2
-.L581:
- ldrh r0, [r3, #138]
+ sub r6, r0, #28
+.L585:
+ ldrh r7, [r0]
uxth r1, r2
add ip, r2, #1
- cmp r0, r1
- bhi .L582
- ldr r2, .L583+4
+ cmp r7, r1
+ bhi .L586
+ ldr r2, .L587+8
mvn r1, #0
movw r0, #3396
strh r1, [r3, r0] @ movhi
strh r1, [r2, #2] @ movhi
- ldr r1, [r3, #128]
+ ldr r1, [r3, #332]
strh r1, [r2, #10] @ movhi
- ldr r1, .L583+8
+ ldr r1, .L587+12
strh r1, [r2, #4] @ movhi
ldrh r1, [r2, #44]
strh r1, [r2, #8] @ movhi
- ldrh r1, [r3, #136]
+ sub r1, r2, #3056
+ ldrh r1, [r1]
strh r1, [r2, #6] @ movhi
ldr r2, [r3, #3360]
str r2, [r3, #3408]
@@ -4205,28 +4347,29 @@ FtlL2PDataInit:
str r2, [r3, #3416]
ldr r2, [r3, #3380]
str r2, [r3, #3420]
- ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L582:
+ ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
+.L586:
uxth r2, r2
- ldr r1, [r3, #2492]
- mul r0, lr, r2
- add r6, r1, r0
- str r4, [r6, #4]
- strh r5, [r1, r0] @ movhi
- ldr r1, [r3, #2492]
- add r1, r1, r0
- ldrh r0, [r3, #110]
- mul r2, r2, r0
- ldr r0, [r3, #3388]
+ ldr r7, [r3, #2544]
+ mul r1, lr, r2
+ add r8, r7, r1
+ str r4, [r8, #4]
+ strh r5, [r7, r1] @ movhi
+ ldr r7, [r3, #2544]
+ add r1, r7, r1
+ ldrh r7, [r6]
+ mul r2, r2, r7
+ ldr r7, [r3, #3388]
bic r2, r2, #3
- add r2, r0, r2
+ add r2, r7, r2
str r2, [r1, #8]
mov r2, ip
- b .L581
-.L584:
+ b .L585
+.L588:
.align 2
-.L583:
+.L587:
.word .LANCHOR0
+ .word .LANCHOR0+342
.word .LANCHOR0+3396
.word -3902
.size FtlL2PDataInit, .-FtlL2PDataInit
@@ -4242,44 +4385,47 @@ FtlVariablesInit:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L586
+ ldr r4, .L590
mvn r3, #0
movw r2, #3442
mov r5, #0
strh r3, [r4, r2] @ movhi
mov r1, r5
- ldrh r2, [r4, #120]
- ldr r0, [r4, #148]
str r3, [r4, #3452]
+ add r3, r4, #348
+ strh r5, [r3] @ movhi
+ add r3, r4, #324
+ ldrh r2, [r3]
+ ldr r0, [r4, #352]
str r5, [r4, #3444]
- lsl r2, r2, #1
str r5, [r4, #3448]
- strh r5, [r4, #144] @ movhi
+ lsl r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, r5
- ldr r0, [r4, #2328]
+ ldr r0, [r4, #2540]
lsl r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, r5
ldr r0, [r4, #3348]
lsl r2, r2, #1
bl ftl_memset
- add r0, r4, #2256
+ add r0, r4, #2464
mov r1, #48
- add r0, r0, #12
+ add r0, r0, #8
bl __memzero
add r0, r4, #2640
mov r1, #512
+ add r0, r0, #4
bl __memzero
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r5
ldmfd sp, {r4, r5, fp, sp, pc}
-.L587:
+.L591:
.align 2
-.L586:
+.L590:
.word .LANCHOR0
.size FtlVariablesInit, .-FtlVariablesInit
.align 2
@@ -4289,128 +4435,125 @@ FtlVariablesInit:
.fpu softvfp
.type SupperBlkListInit, %function
SupperBlkListInit:
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 12
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #16
+ sub sp, sp, #12
mov r5, #0
- ldr r4, .L599
+ ldr r4, .L603
mov r1, #0
mov r8, r5
mov r6, r5
- ldrh r2, [r4, #42]
- ldr r0, [r4, #2316]
+ ldrh r2, [r4, #246]
+ ldr r0, [r4, #2520]
lsl r2, r2, #3
bl ftl_memset
- add r3, r4, #2336
- movw r2, #2344
- str r5, [r4, #2340]
- str r5, [r4, #2320]
- str r5, [r4, #2332]
- strh r5, [r3] @ movhi
- strh r5, [r4, r2] @ movhi
- str r3, [fp, #-48]
-.L589:
- ldrh r3, [r4, #40]
+ movw r3, #2532
+ str r5, [r4, #2536]
+ str r5, [r4, #2524]
+ str r5, [r4, #2528]
+ strh r5, [r4, r3] @ movhi
+ strh r5, [r4, #228] @ movhi
+.L593:
+ ldrh r3, [r4, #244]
uxth r10, r5
cmp r10, r3
- bcs .L596
- ldrh r3, [r4, #102]
+ bcs .L600
+ ldr r3, .L603+4
mov r9, r10
- ldrh ip, [r4, #32]
+ ldrh ip, [r4, #236]
+ ldrh r3, [r3]
str r3, [fp, #-44]
mov r3, #0
mov r7, r3
- b .L597
-.L591:
- ldr r2, .L599+4
+ b .L601
+.L595:
+ ldr r2, .L603+8
mov r1, r9
- str ip, [fp, #-56]
- str r3, [fp, #-52]
+ str ip, [fp, #-52]
+ str r3, [fp, #-48]
ldrb r0, [r2, r3] @ zero_extendqisi2
bl V2P_block
bl FtlBbmIsBadBlock
cmp r0, #0
- ldr r3, [fp, #-52]
+ ldr r3, [fp, #-48]
ldreq r2, [fp, #-44]
- ldr ip, [fp, #-56]
+ ldr ip, [fp, #-52]
add r3, r3, #1
addeq r7, r7, r2
uxtheq r7, r7
-.L597:
+.L601:
uxth r1, r3
cmp ip, r1
- bhi .L591
+ bhi .L595
cmp r7, #0
- beq .L592
+ beq .L596
mov r1, r7
mov r0, #32768
bl __divsi3
uxth r7, r0
-.L593:
- ldr r3, [r4, #2316]
+.L597:
+ ldr r3, [r4, #2520]
add r3, r3, r9, lsl #3
strh r7, [r3, #4] @ movhi
- ldr r3, .L599+8
- ldrh r1, [r3]
- cmp r1, r10
- beq .L594
- ldrh r1, [r3, #48]
- cmp r1, r10
- beq .L594
- ldrh r3, [r3, #96]
+ ldrh r3, [r4, #28]
+ cmp r3, r10
+ beq .L598
+ ldrh r3, [r4, #80]
cmp r3, r10
- beq .L594
- ldr r2, [r4, #2324]
+ beq .L598
+ ldrh r3, [r4, #128]
+ cmp r3, r10
+ beq .L598
+ ldr r2, [r4, #76]
lsl r3, r9, #1
ldrh r3, [r2, r3]
cmp r3, #0
- bne .L595
+ bne .L599
add r8, r8, #1
mov r0, r9
uxth r8, r8
bl INSERT_FREE_LIST
-.L594:
+.L598:
add r5, r5, #1
- b .L589
-.L592:
- ldr r1, [r4, #2324]
+ b .L593
+.L596:
+ ldr r1, [r4, #76]
lsl r3, r9, #1
mvn r0, #0
strh r0, [r1, r3] @ movhi
- b .L593
-.L595:
+ b .L597
+.L599:
add r6, r6, #1
mov r0, r9
uxth r6, r6
bl INSERT_DATA_LIST
- b .L594
-.L596:
- ldr r2, [fp, #-48]
- strh r6, [r2] @ movhi
+ b .L598
+.L600:
+ movw r2, #2532
+ strh r8, [r4, #228] @ movhi
+ strh r6, [r4, r2] @ movhi
add r6, r6, r8
cmp r6, r3
- movw r2, #2344
- strh r8, [r4, r2] @ movhi
- ble .L598
- movw r2, #2216
- ldr r1, .L599+12
- ldr r0, .L599+16
+ ble .L602
+ movw r2, #2210
+ ldr r1, .L603+12
+ ldr r0, .L603+16
bl sftl_printk
-.L598:
+.L602:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L600:
+.L604:
.align 2
-.L599:
+.L603:
.word .LANCHOR0
- .word .LANCHOR0+60
- .word .LANCHOR0+2348
+ .word .LANCHOR0+306
+ .word .LANCHOR0+264
.word .LANCHOR1+198
- .word .LC1
+ .word .LC8
.size SupperBlkListInit, .-SupperBlkListInit
.align 2
.global FtlGcPageVarInit
@@ -4422,30 +4565,31 @@ FtlGcPageVarInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, fp, ip, lr, pc}
+ push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L602
+ ldr r4, .L606
mov r3, #0
- movw r2, #3196
+ movw r5, #310
mov r1, #255
+ add r2, r4, #3200
+ ldr r0, [r4, #3196]
+ strh r3, [r2] @ movhi
+ movw r2, #3208
strh r3, [r4, r2] @ movhi
- movw r2, #3204
- strh r3, [r4, r2] @ movhi
- ldrh r2, [r4, #106]
- ldr r0, [r4, #3192]
+ ldrh r2, [r4, r5]
lsl r2, r2, #1
bl ftl_memset
- ldrh r3, [r4, #106]
+ ldrh r3, [r4, r5]
mov r2, #12
mov r1, #255
- ldr r0, [r4, #3200]
+ ldr r0, [r4, #3204]
mul r2, r2, r3
bl ftl_memset
bl FtlGcBufInit
- ldmfd sp, {r4, fp, sp, pc}
-.L603:
+ ldmfd sp, {r4, r5, fp, sp, pc}
+.L607:
.align 2
-.L602:
+.L606:
.word .LANCHOR0
.size FtlGcPageVarInit, .-FtlGcPageVarInit
.align 2
@@ -4477,32 +4621,32 @@ FlashReadPages:
sub fp, ip, #4
sub sp, sp, #12
mov r7, #0
- ldr r5, .L633
+ ldr r5, .L648
mov r8, r1
- ldr r9, .L633+4
+ ldr r9, .L648+4
mov r4, r0
- ldr r10, .L633+8
+ ldr r10, .L648+8
ldrh r3, [r5, #12]
str r3, [fp, #-52]
-.L606:
+.L610:
cmp r7, r8
- bne .L617
+ bne .L623
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L617:
+.L623:
ldr r3, [r4, #8]
cmp r3, #0
- beq .L607
+ beq .L611
ldr r3, [r4, #12]
cmp r3, #0
- bne .L608
-.L607:
+ bne .L612
+.L611:
mov r2, #96
mov r1, r9
mov r0, r10
bl sftl_printk
-.L608:
+.L612:
sub r2, fp, #48
sub r1, fp, #44
mov r0, r4
@@ -4511,7 +4655,7 @@ FlashReadPages:
cmp r0, #3
mvnhi r3, #0
strhi r3, [r4]
- bhi .L610
+ bhi .L614
ldr r6, [r4, #8]
ldr r3, [r4, #12]
ldr ip, [r5, #3260]
@@ -4523,7 +4667,7 @@ FlashReadPages:
str r0, [r4]
ldrh r3, [r5, #14]
cmp r3, #4
- bne .L613
+ bne .L617
ldr r0, [fp, #-52]
add r2, r6, #2048
ldr r3, [r4, #12]
@@ -4534,21 +4678,21 @@ FlashReadPages:
ldrb r0, [fp, #-48] @ zero_extendqisi2
blx ip
cmn r0, #1
- beq .L614
+ beq .L618
ldr r3, [r4, #12]
ldr r2, [r3, #12]
cmn r2, #1
- bne .L615
+ bne .L619
ldr r2, [r3, #8]
cmn r2, #1
- bne .L615
+ bne .L619
ldr r3, [r3]
cmn r3, #1
- beq .L615
-.L614:
+ beq .L619
+.L618:
mvn r3, #0
str r3, [r4]
-.L615:
+.L619:
ldr r3, [r4]
sub r0, r0, #256
clz r0, r0
@@ -4558,27 +4702,55 @@ FlashReadPages:
cmp r0, #0
movne r3, #256
strne r3, [r4]
-.L613:
+ ldr r3, [r4]
+ cmn r3, #1
+ cmpne r3, #256
+ bne .L617
+ ldr r1, [r4, #4]
+ ldr r2, [fp, #-44]
+ ldr r0, .L648+12
+ bl sftl_printk
+ ldr r1, [r4, #8]
+ cmp r1, #0
+ beq .L622
+ mov r3, #4
+ ldr r0, .L648+16
+ mov r2, r3
+ bl rknand_print_hex
+.L622:
+ ldr r1, [r4, #12]
+ cmp r1, #0
+ beq .L617
+ mov r3, #4
+ ldr r0, .L648+20
+ mov r2, r3
+ bl rknand_print_hex
+.L617:
ldr r3, [r5, #3324]
cmp r6, r3
- bne .L610
+ bne .L614
ldr r0, [r4, #8]
cmp r6, r0
- beq .L610
- ldrh r2, [r5, #58]
+ beq .L614
+ ldr r3, .L648+24
mov r1, r6
+ ldrh r2, [r3]
lsl r2, r2, #9
bl ftl_memcpy
-.L610:
+.L614:
add r7, r7, #1
add r4, r4, #20
- b .L606
-.L634:
+ b .L610
+.L649:
.align 2
-.L633:
+.L648:
.word .LANCHOR0
.word .LANCHOR1+216
- .word .LC1
+ .word .LC8
+ .word .LC92
+ .word .LC93
+ .word .LC94
+ .word .LANCHOR0+262
.size FlashReadPages, .-FlashReadPages
.align 2
.global FtlLoadFactoryBbt
@@ -4592,53 +4764,62 @@ FtlLoadFactoryBbt:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L645
- mov r6, #0
- mvn r9, #0
- ldr r3, [r4, #3304]
- add r7, r4, #162
- ldr r8, [r4, #3336]
- add r10, r4, #3456
- str r3, [r4, #3464]
- str r8, [r4, #3468]
-.L636:
- ldrh r3, [r4, #54]
- cmp r6, r3
- bcc .L641
+ ldr r5, .L660
+ mov r7, #0
+ add r6, r5, #364
+ ldr r3, [r5, #3304]
+ ldr r8, [r5, #3336]
+ add r6, r6, #2
+ sub r9, r6, #64
+ str r3, [r5, #3464]
+ str r8, [r5, #3468]
+.L651:
+ ldr r3, .L660+4
+ ldrh r3, [r3]
+ cmp r7, r3
+ bcc .L656
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L641:
- ldrh r5, [r4, #98]
- strh r9, [r7, #2]! @ movhi
-.L638:
- ldrh r3, [r4, #98]
- sub r5, r5, #1
- uxth r5, r5
+.L656:
+ ldrh r4, [r9]
+ mvn r3, #0
+ ldr r10, .L660+8
+ strh r3, [r6, #2]! @ movhi
+ add r4, r4, r3
+ uxth r4, r4
+.L652:
+ ldrh r3, [r9]
sub r2, r3, #16
- cmp r5, r2
- ble .L639
- mla r3, r6, r3, r5
+ cmp r4, r2
+ ble .L654
+ mla r3, r7, r3, r4
mov r2, #1
mov r1, r2
mov r0, r10
lsl r3, r3, #10
- str r3, [r4, #3460]
+ str r3, [r5, #3460]
bl FlashReadPages
- ldr r3, [r4, #3456]
+ ldr r3, [r5, #3456]
cmn r3, #1
- beq .L638
+ beq .L653
ldrh r2, [r8]
movw r3, #61664
cmp r2, r3
- bne .L638
- strh r5, [r7] @ movhi
-.L639:
- add r6, r6, #1
- b .L636
-.L646:
+ bne .L653
+ strh r4, [r6] @ movhi
+.L654:
+ add r7, r7, #1
+ b .L651
+.L653:
+ sub r4, r4, #1
+ uxth r4, r4
+ b .L652
+.L661:
.align 2
-.L645:
+.L660:
.word .LANCHOR0
+ .word .LANCHOR0+258
+ .word .LANCHOR0+3456
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
.align 2
.global FtlGetLastWrittenPage
@@ -4654,15 +4835,17 @@ FtlGetLastWrittenPage:
sub fp, ip, #4
sub sp, sp, #84
cmp r1, #1
- ldr r3, .L658
+ ldr r3, .L673
+ movwne r2, #306
lsl r6, r0, #10
- mov r2, r1
mov r7, r1
sub r0, fp, #116
- ldrheq r5, [r3, #104]
- mov r1, #1
- ldrhne r5, [r3, #102]
+ addeq r2, r3, #308
+ ldrhne r5, [r3, r2]
+ ldrheq r5, [r2]
+ mov r2, r1
ldr r3, [r3, #3328]
+ mov r1, #1
sub r5, r5, #1
sxth r5, r5
str r3, [fp, #-108]
@@ -4674,12 +4857,12 @@ FtlGetLastWrittenPage:
ldr r3, [fp, #-96]
cmn r3, #1
moveq r8, #0
- beq .L651
-.L650:
+ beq .L666
+.L665:
mov r0, r5
sub sp, fp, #32
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L654:
+.L669:
add r3, r8, r5
mov r2, r7
add r3, r3, r3, lsr #31
@@ -4692,25 +4875,25 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [fp, #-96]
cmn r3, #1
- bne .L652
+ bne .L667
ldr r3, [fp, #-92]
cmn r3, #1
- bne .L652
+ bne .L667
ldr r3, [fp, #-116]
cmn r3, #1
subne r4, r4, #1
sxthne r5, r4
- bne .L651
-.L652:
+ bne .L666
+.L667:
add r4, r4, #1
sxth r8, r4
-.L651:
+.L666:
cmp r8, r5
- ble .L654
- b .L650
-.L659:
+ ble .L669
+ b .L665
+.L674:
.align 2
-.L658:
+.L673:
.word .LANCHOR0
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
.align 2
@@ -4727,56 +4910,58 @@ FtlScanSysBlk:
sub fp, ip, #4
sub sp, sp, #24
mov r5, #0
- ldr r4, .L742
+ ldr r4, .L757
mov r1, r5
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
add r3, r4, #3440
+ strh r5, [r3] @ movhi
+ add r3, r4, #348
ldr r0, [r4, #3384]
- mov r6, r4
+ add r6, r4, #324
strh r5, [r3] @ movhi
- strh r5, [r4, #144] @ movhi
+ mov r7, r4
lsl r2, r2, #2
bl ftl_memset
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
mov r1, r5
ldr r0, [r4, #3360]
lsl r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #120]
+ ldrh r2, [r6]
mov r1, r5
ldr r0, [r4, #3372]
lsl r2, r2, #2
bl ftl_memset
- ldrh r2, [r4, #120]
+ ldrh r2, [r6]
mov r1, r5
- ldr r0, [r4, #148]
+ ldr r0, [r4, #352]
mov r5, r4
lsl r2, r2, #1
bl ftl_memset
mov r2, #16
mov r1, #255
- add r0, r4, #2576
+ add r0, r6, #2304
bl memset
- ldrh r3, [r4, #40]
+ ldrh r3, [r4, #244]
str r3, [fp, #-44]
-.L661:
- ldrh r3, [r6, #42]
+.L676:
+ ldrh r3, [r5, #246]
ldr r2, [fp, #-44]
cmp r3, r2
- bls .L702
- ldr r1, [r6, #3180]
- mov r7, #0
- ldrh r2, [r6, #32]
- mov r10, r7
- ldr r8, [r6, #3292]
- ldr r3, [r6, #3176]
+ bls .L717
+ ldr r8, .L757+4
+ mov r6, #0
+ ldrh ip, [r5, #236]
+ mov r10, r6
+ ldr r9, [r5, #3292]
+ ldrh r1, [r8], #-52
+ ldr r2, [r5, #3180]
+ ldr r3, [r5, #3184]
str r1, [fp, #-48]
- ldrh r9, [r6, #112]
- ldr ip, .L742+4
- b .L703
-.L663:
- ldrb r0, [ip, r7] @ zero_extendqisi2
+ b .L718
+.L678:
ldr r1, [fp, #-44]
+ ldrb r0, [r8, r6] @ zero_extendqisi2
str r3, [fp, #-64]
str r2, [fp, #-60]
str ip, [fp, #-56]
@@ -4787,47 +4972,47 @@ FtlScanSysBlk:
ldr ip, [fp, #-56]
ldr r2, [fp, #-60]
ldr r3, [fp, #-64]
- bne .L662
+ bne .L677
mov r1, #20
- mla r0, r1, r10, r8
+ mla r0, r1, r10, r9
ldr r1, [fp, #-52]
lsl r1, r1, #10
- stmib r0, {r1, r3}
- mul r1, r9, r10
+ stmib r0, {r1, r2}
+ ldr r1, [fp, #-48]
+ mul r1, r1, r10
add lr, r1, #3
cmp r1, #0
movlt r1, lr
- ldr lr, [fp, #-48]
bic r1, r1, #3
- add r1, lr, r1
+ add r1, r3, r1
str r1, [r0, #12]
add r1, r10, #1
uxth r10, r1
-.L662:
- add r7, r7, #1
-.L703:
- uxth r1, r7
- cmp r2, r1
- bhi .L663
+.L677:
+ add r6, r6, #1
+.L718:
+ uxth r1, r6
+ cmp ip, r1
+ bhi .L678
cmp r10, #0
- bne .L664
-.L701:
+ bne .L679
+.L716:
ldr r3, [fp, #-44]
add r3, r3, #1
uxth r3, r3
str r3, [fp, #-44]
- b .L661
-.L664:
+ b .L676
+.L679:
mov r2, #1
mov r1, r10
- mov r0, r8
+ mov r0, r9
bl FlashReadPages
mov r3, #0
-.L741:
+.L756:
str r3, [fp, #-48]
ldrh r3, [fp, #-48]
cmp r10, r3
- bls .L701
+ bls .L716
ldr r3, [fp, #-48]
mov r9, #20
mul r9, r9, r3
@@ -4835,13 +5020,13 @@ FtlScanSysBlk:
add r2, r3, r9
ldr r3, [r3, r9]
ldr r1, [r2, #4]
- ldr r7, [r2, #12]
+ ldr r6, [r2, #12]
cmn r3, #1
lsr ip, r1, #10
uxth r8, ip
- bne .L668
+ bne .L683
mov r3, #16
-.L670:
+.L685:
ldr r0, [r4, #3292]
str ip, [fp, #-56]
str r3, [fp, #-52]
@@ -4852,80 +5037,80 @@ FtlScanSysBlk:
mov r2, #1
mov r1, r2
bl FlashReadPages
- ldrh r2, [r7]
+ ldrh r2, [r6]
movw r3, #65535
ldr ip, [fp, #-56]
cmp r2, r3
ldr r3, [fp, #-52]
- bne .L667
+ bne .L682
ldr r3, [r4, #3292]
mvn r2, #0
str r2, [r3, r9]
ldr r3, [r4, #3292]
ldr r3, [r3, r9]
cmp r3, r2
- bne .L668
-.L669:
+ bne .L683
+.L684:
mov r1, #1
- b .L740
-.L667:
+ b .L755
+.L682:
ldr r2, [r4, #3292]
ldr r2, [r2, r9]
cmn r2, #1
- bne .L668
+ bne .L683
sub r3, r3, #1
uxth r3, r3
cmp r3, #0
- bne .L670
- b .L669
-.L668:
- ldr r2, [r6, #2540]
- ldr r3, [r7, #4]
+ bne .L685
+ b .L684
+.L683:
+ ldr r2, [r5, #2592]
+ ldr r3, [r6, #4]
cmn r2, #1
- beq .L671
+ beq .L686
cmp r2, r3
- bhi .L672
-.L671:
+ bhi .L687
+.L686:
cmn r3, #1
addne r2, r3, #1
- strne r2, [r5, #2540]
-.L672:
- ldrh r2, [r7]
+ strne r2, [r7, #2592]
+.L687:
+ ldrh r2, [r6]
movw r1, #61604
cmp r2, r1
- beq .L674
- bhi .L675
+ beq .L689
+ bhi .L690
movw r3, #61574
cmp r2, r3
- beq .L676
-.L673:
+ beq .L691
+.L688:
ldr r3, [fp, #-48]
add r3, r3, #1
- b .L741
-.L675:
+ b .L756
+.L690:
movw r3, #61634
cmp r2, r3
- beq .L677
+ beq .L692
movw r3, #65535
cmp r2, r3
moveq r1, #0
- bne .L673
-.L740:
+ bne .L688
+.L755:
uxth r0, ip
bl FtlFreeSysBlkQueueIn
- b .L673
-.L677:
- ldr r9, .L742+8
- ldr r3, [r4, #128]
+ b .L688
+.L692:
+ ldr r9, .L757+8
+ ldr r3, [r4, #332]
ldrh r2, [r9]
cmp r2, r3
- bls .L679
+ bls .L694
movw r2, #1225
- ldr r1, .L742+12
- ldr r0, .L742+16
+ ldr r1, .L757+12
+ ldr r0, .L757+16
bl sftl_printk
-.L679:
- ldr r0, [r4, #128]
+.L694:
+ ldr r0, [r4, #332]
ldrh r2, [r9]
ldr ip, [r4, #3384]
uxth r1, r0
@@ -4935,104 +5120,106 @@ FtlScanSysBlk:
sxth r3, r3
sxth r1, r1
str r1, [fp, #-52]
-.L680:
+.L695:
ldr r1, [fp, #-52]
cmp r3, r1
- bgt .L686
+ bgt .L701
cmp r3, #0
- bge .L718
- b .L673
-.L686:
+ bge .L733
+ b .L688
+.L701:
lsl lr, r3, #2
- ldr r1, [r7, #4]
+ ldr r1, [r6, #4]
str lr, [fp, #-56]
ldr lr, [ip, r3, lsl #2]
cmp r1, lr
- bls .L681
+ bls .L696
ldr r1, [ip]
cmp r1, #0
- bne .L682
+ bne .L697
cmp r0, r2
addne r2, r2, #1
strhne r2, [r9] @ movhi
-.L682:
+.L697:
uxth ip, r3
mov r1, #0
-.L683:
+.L698:
uxth r0, r1
sxth r2, r1
cmp ip, r0
- bhi .L684
- ldr r1, [r7, #4]
+ bhi .L699
+ ldr r1, [r6, #4]
cmp r3, #0
- ldr r2, [r5, #3384]
+ ldr r2, [r7, #3384]
ldr r0, [fp, #-56]
str r1, [r2, r0]
lsl r2, r3, #1
- ldr r1, [r5, #3360]
+ ldr r1, [r7, #3360]
strh r8, [r1, r2] @ movhi
- blt .L673
- ldr r2, .L742+8
- ldr r1, [r5, #128]
+ blt .L688
+ ldr r2, .L757+8
+ ldr r1, [r7, #332]
ldrh r2, [r2]
sub r1, r1, r2
sub r1, r1, #1
sxth r1, r1
cmp r3, r1
- bgt .L673
-.L718:
+ bgt .L688
+.L733:
add r2, r2, #1
- ldr r1, [r7, #4]
+ ldr r1, [r6, #4]
strh r2, [r9] @ movhi
ldr r2, [r4, #3384]
str r1, [r2, r3, lsl #2]
lsl r3, r3, #1
ldr r2, [r4, #3360]
-.L738:
+.L753:
strh r8, [r2, r3] @ movhi
- b .L673
-.L684:
- ldr r0, [r6, #3384]
+ b .L688
+.L699:
+ ldr r0, [r5, #3384]
add r1, r1, #1
add lr, r0, r2, lsl #2
ldr lr, [lr, #4]
str lr, [r0, r2, lsl #2]
lsl r2, r2, #1
- ldr r0, [r6, #3360]
+ ldr r0, [r5, #3360]
add lr, r0, r2
ldrh lr, [lr, #2]
strh lr, [r0, r2] @ movhi
- b .L683
-.L681:
+ b .L698
+.L696:
sub r3, r3, #1
sxth r3, r3
- b .L680
-.L676:
- ldrh r2, [r4, #144]
- ldrh r3, [r4, #120]
+ b .L695
+.L691:
+ ldr r9, .L757+20
+ ldrh r2, [r9]
+ ldrh r3, [r9, #-24]
cmp r2, r3
- bls .L689
+ bls .L704
movw r2, #1266
- ldr r1, .L742+12
- ldr r0, .L742+16
+ ldr r1, .L757+12
+ ldr r0, .L757+16
bl sftl_printk
-.L689:
- ldrh r2, [r4, #120]
- ldrh r1, [r4, #144]
+.L704:
+ ldrh r2, [r9, #-24]
+ ldrh r1, [r9]
ldr ip, [r4, #3372]
sub r0, r2, #1
sxth r3, r0
sub r0, r0, r1
str r0, [fp, #-52]
-.L690:
+.L705:
ldr r0, [fp, #-52]
cmp r3, r0
- ble .L695
- ldr r9, [ip, r3, lsl #2]
+ ble .L710
lsl lr, r3, #2
- ldr r0, [r7, #4]
- cmp r0, r9
- bls .L691
+ ldr r0, [r6, #4]
+ str lr, [fp, #-56]
+ ldr lr, [ip, r3, lsl #2]
+ cmp r0, lr
+ bls .L706
sub r2, r2, r1
ldr r0, [ip]
clz r2, r2
@@ -5042,180 +5229,185 @@ FtlScanSysBlk:
orrne r2, r2, #1
cmp r2, #0
addeq r1, r1, #1
- strheq r1, [r5, #144] @ movhi
+ strheq r1, [r9] @ movhi
mov r1, #0
-.L693:
+.L708:
uxth r0, r1
sxth r2, r1
cmp ip, r0
- bhi .L694
- ldr r1, [r7, #4]
- ldr r2, [r5, #3372]
- str r1, [r2, lr]
+ bhi .L709
+ ldr r1, [r6, #4]
+ ldr r2, [r7, #3372]
+ ldr r0, [fp, #-56]
+ str r1, [r2, r0]
lsl r2, r3, #1
- ldr r1, [r5, #148]
+ ldr r1, [r7, #352]
strh r8, [r1, r2] @ movhi
-.L695:
+.L710:
cmp r3, #0
- blt .L673
- ldrh r2, [r5, #120]
- ldrh r1, [r5, #144]
+ blt .L688
+ ldr r0, .L757+20
+ ldrh r2, [r0, #-24]
+ ldrh r1, [r0]
sub r2, r2, #1
sub r2, r2, r1
sxth r2, r2
cmp r3, r2
- bgt .L673
+ bgt .L688
add r1, r1, #1
- ldr r2, [r5, #3372]
- strh r1, [r5, #144] @ movhi
- ldr r1, [r7, #4]
+ ldr r2, [r4, #3372]
+ strh r1, [r0] @ movhi
+ ldr r1, [r6, #4]
str r1, [r2, r3, lsl #2]
lsl r3, r3, #1
- ldr r2, [r5, #148]
- b .L738
-.L694:
- ldr r0, [r6, #3372]
+ ldr r2, [r4, #352]
+ b .L753
+.L709:
+ ldr r0, [r5, #3372]
add r1, r1, #1
- add r9, r0, r2, lsl #2
- ldr r9, [r9, #4]
- str r9, [r0, r2, lsl #2]
+ add lr, r0, r2, lsl #2
+ ldr lr, [lr, #4]
+ str lr, [r0, r2, lsl #2]
lsl r2, r2, #1
- ldr r0, [r6, #148]
- add r9, r0, r2
- ldrh r9, [r9, #2]
- strh r9, [r0, r2] @ movhi
- b .L693
-.L691:
+ ldr r0, [r5, #352]
+ add lr, r0, r2
+ ldrh lr, [lr, #2]
+ strh lr, [r0, r2] @ movhi
+ b .L708
+.L706:
sub r3, r3, #1
sxth r3, r3
- b .L690
-.L674:
- ldr r9, .L742+20
+ b .L705
+.L689:
+ ldr r9, .L757+24
movw r2, #65535
ldrh r1, [r9]
cmp r1, r2
strheq r8, [r9] @ movhi
- beq .L739
+ beq .L754
ldrh r0, [r9, #4]
cmp r0, r2
- beq .L698
+ beq .L713
mov r1, #1
bl FtlFreeSysBlkQueueIn
-.L698:
- ldr r3, [r7, #4]
- ldr r2, [r4, #2584]
+.L713:
+ ldr r3, [r6, #4]
+ ldr r2, [r4, #2636]
cmp r2, r3
strhcs r8, [r9, #4] @ movhi
- bcs .L673
+ bcs .L688
ldrh r3, [r9]
strh r8, [r9] @ movhi
strh r3, [r9, #4] @ movhi
- ldr r3, [r7, #4]
-.L739:
- str r3, [r4, #2584]
- b .L673
-.L702:
- ldr r2, [r6, #3360]
+ ldr r3, [r6, #4]
+.L754:
+ str r3, [r4, #2636]
+ b .L688
+.L717:
+ ldr r2, [r5, #3360]
ldrh r3, [r2]
cmp r3, #0
- beq .L704
-.L707:
- ldr r1, [r4, #148]
- ldrh r2, [r1]
+ beq .L719
+.L722:
+ ldr r0, [r4, #352]
+ ldrh r2, [r0]
cmp r2, #0
- beq .L705
-.L706:
- ldr r3, .L742+8
+ beq .L720
+.L721:
+ ldr r3, .L757+8
ldrh r2, [r3]
- ldr r3, [r4, #128]
+ ldr r3, [r4, #332]
cmp r2, r3
- bls .L737
+ bls .L752
movw r2, #1391
- ldr r1, .L742+12
- ldr r0, .L742+16
+ ldr r1, .L757+12
+ ldr r0, .L757+16
bl sftl_printk
-.L737:
+.L752:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L704:
- ldr r1, .L742+8
+.L719:
+ ldr r1, .L757+8
ldrh r1, [r1]
cmp r1, #0
- ldrne r1, [r6, #128]
- beq .L707
-.L708:
+ ldrne r1, [r5, #332]
+ beq .L722
+.L723:
sxth ip, r3
cmp ip, r1
- bcs .L707
+ bcs .L722
lsl r0, ip, #1
add r3, r3, #1
ldrh r0, [r2, r0]
cmp r0, #0
- beq .L708
+ beq .L723
mov r3, ip
mov lr, #0
-.L709:
- ldr r2, [r5, #128]
+.L724:
+ ldr r2, [r7, #332]
cmp r3, r2
- bcs .L707
- ldr r1, [r5, #3360]
+ bcs .L722
+ ldr r1, [r7, #3360]
lsl r2, r3, #1
sub r0, r3, ip
- lsl r6, r0, #1
- ldrh r7, [r1, r2]
- strh r7, [r1, r6] @ movhi
- ldr r1, [r5, #3384]
- ldr r6, [r1, r3, lsl #2]
+ lsl r5, r0, #1
+ ldrh r6, [r1, r2]
+ strh r6, [r1, r5] @ movhi
+ ldr r1, [r7, #3384]
+ ldr r5, [r1, r3, lsl #2]
add r3, r3, #1
sxth r3, r3
- str r6, [r1, r0, lsl #2]
- ldr r1, [r5, #3360]
+ str r5, [r1, r0, lsl #2]
+ ldr r1, [r7, #3360]
strh lr, [r1, r2] @ movhi
- b .L709
-.L705:
- ldrh r3, [r4, #144]
- cmp r3, #0
- ldrhne r0, [r4, #120]
- beq .L706
-.L714:
+ b .L724
+.L720:
+ ldr r3, .L757+20
+ ldrh r1, [r3]
+ cmp r1, #0
+ ldrhne ip, [r3, #-24]!
+ movne r1, r3
+ beq .L721
+.L729:
sxth r3, r2
- cmp r3, r0
- mov ip, r3
- bge .L706
- lsl lr, r3, #1
+ cmp r3, ip
+ mov lr, r3
+ bge .L721
+ lsl r5, r3, #1
add r2, r2, #1
- ldrh lr, [r1, lr]
- cmp lr, #0
- beq .L714
- mov lr, #0
-.L715:
- ldrh r2, [r5, #120]
+ ldrh r5, [r0, r5]
+ cmp r5, #0
+ beq .L729
+ mov r5, #0
+.L730:
+ ldrh r2, [r1]
cmp r3, r2
- bge .L706
- ldr r1, [r5, #148]
+ bge .L721
+ ldr r0, [r4, #352]
lsl r2, r3, #1
- sub r0, r3, ip
- lsl r6, r0, #1
- ldrh r7, [r1, r2]
- strh r7, [r1, r6] @ movhi
- ldr r1, [r5, #3372]
- ldr r6, [r1, r3, lsl #2]
+ sub ip, r3, lr
+ lsl r6, ip, #1
+ ldrh r7, [r0, r2]
+ strh r7, [r0, r6] @ movhi
+ ldr r0, [r4, #3372]
+ ldr r6, [r0, r3, lsl #2]
add r3, r3, #1
sxth r3, r3
- str r6, [r1, r0, lsl #2]
- ldr r1, [r5, #148]
- strh lr, [r1, r2] @ movhi
- b .L715
-.L743:
+ str r6, [r0, ip, lsl #2]
+ ldr r0, [r4, #352]
+ strh r5, [r0, r2] @ movhi
+ b .L730
+.L758:
.align 2
-.L742:
+.L757:
.word .LANCHOR0
- .word .LANCHOR0+60
+ .word .LANCHOR0+316
.word .LANCHOR0+3440
.word .LANCHOR1+231
- .word .LC1
- .word .LANCHOR0+2576
+ .word .LC8
+ .word .LANCHOR0+348
+ .word .LANCHOR0+2628
.size FtlScanSysBlk, .-FtlScanSysBlk
.align 2
.global FtlLoadBbt
@@ -5227,23 +5419,25 @@ FtlLoadBbt:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L776
+ ldr r4, .L791
+ ldr r8, .L791+4
ldr r3, [r4, #3304]
add r7, r4, #3456
ldr r6, [r4, #3336]
str r3, [r4, #3464]
str r6, [r4, #3468]
bl FtlBbtMemInit
- ldrh r5, [r4, #98]
+ movw r3, #302
+ ldrh r5, [r4, r3]
sub r5, r5, #1
uxth r5, r5
-.L745:
- ldrh r3, [r4, #98]
+.L760:
+ ldrh r3, [r8]
sub r3, r3, #16
cmp r5, r3
- ble .L748
+ ble .L763
lsl r3, r5, #10
mov r2, #1
mov r1, r2
@@ -5252,7 +5446,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr r3, [r4, #3456]
cmn r3, #1
- bne .L746
+ bne .L761
ldr r3, [r4, #3460]
mov r2, #1
mov r1, r2
@@ -5260,134 +5454,140 @@ FtlLoadBbt:
add r3, r3, #1
str r3, [r4, #3460]
bl FlashReadPages
-.L746:
+.L761:
ldr r3, [r4, #3456]
cmn r3, #1
- beq .L747
+ beq .L762
ldrh r2, [r6]
movw r3, #61649
cmp r2, r3
- bne .L747
- ldr r3, [r6, #4]
- strh r5, [r4, #152] @ movhi
- str r3, [r4, #160]
- ldrh r3, [r6, #8]
- strh r3, [r4, #156] @ movhi
-.L748:
- ldrh r3, [r4, #152]
+ bne .L762
+ ldr r2, [r6, #4]
+ ldr r3, .L791+8
+ str r2, [r4, #364]
+ ldrh r2, [r6, #8]
+ strh r5, [r3] @ movhi
+ strh r2, [r3, #4] @ movhi
+.L763:
+ ldr r5, .L791+8
movw r2, #65535
+ ldrh r3, [r5]
cmp r3, r2
- beq .L762
- ldrh r3, [r4, #156]
+ beq .L777
+ ldrh r3, [r5, #4]
cmp r3, r2
- beq .L752
+ beq .L767
lsl r3, r3, #10
mov r2, #1
mov r1, r2
- ldr r0, .L776+4
+ ldr r0, .L791+12
str r3, [r4, #3460]
bl FlashReadPages
ldr r3, [r4, #3456]
cmn r3, #1
- beq .L752
+ beq .L767
ldrh r2, [r6]
movw r3, #61649
cmp r2, r3
- bne .L752
+ bne .L767
ldr r3, [r6, #4]
- ldr r2, [r4, #160]
+ ldr r2, [r4, #364]
cmp r3, r2
- ldrhhi r2, [r4, #156]
- strhi r3, [r4, #160]
+ ldrhhi r2, [r5, #4]
+ strhi r3, [r4, #364]
ldrhhi r3, [r6, #8]
- strhhi r2, [r4, #152] @ movhi
- strhhi r3, [r4, #156] @ movhi
-.L752:
- ldr r7, .L776+4
+ strhhi r2, [r5] @ movhi
+ strhhi r3, [r5, #4] @ movhi
+.L767:
+ ldr r8, .L791+12
mov r1, #1
- ldrh r0, [r4, #152]
+ ldrh r0, [r5]
bl FtlGetLastWrittenPage
- sxth r5, r0
+ sxth r7, r0
add r0, r0, #1
- strh r0, [r4, #154] @ movhi
-.L754:
- cmp r5, #0
- bge .L757
- mov r2, #253
- ldr r1, .L776+8
- ldr r0, .L776+12
+ strh r0, [r5, #2] @ movhi
+.L769:
+ cmp r7, #0
+ bge .L772
+ mov r2, #251
+ ldr r1, .L791+16
+ ldr r0, .L791+20
bl sftl_printk
-.L756:
+.L771:
ldrh r3, [r6, #10]
ldrh r0, [r6, #12]
- strh r3, [r4, #158] @ movhi
+ strh r3, [r5, #6] @ movhi
movw r3, #65535
cmp r0, r3
- beq .L759
- ldr r2, [r4, #28]
+ beq .L774
+ ldr r2, [r4, #232]
cmp r0, r2
- beq .L759
- ldrh r3, [r4, #42]
+ beq .L774
+ ldrh r3, [r4, #246]
lsr r3, r3, #2
cmp r0, r3
cmpcc r2, r3
- bcs .L759
+ bcs .L774
bl FtlSysBlkNumInit
-.L759:
- ldr r6, .L776+16
+.L774:
+ ldr r6, .L791+24
mov r5, #0
- add r7, r6, #3216
-.L760:
- ldrh r3, [r4, #54]
+ ldr r8, .L791+28
+ sub r7, r6, #122
+.L775:
+ ldrh r3, [r7]
cmp r5, r3
- bcc .L761
+ bcc .L776
mov r0, #0
- ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L747:
+ ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
+.L762:
sub r5, r5, #1
uxth r5, r5
- b .L745
-.L757:
- ldrh r3, [r4, #152]
+ b .L760
+.L772:
+ ldrh r3, [r5]
mov r2, #1
mov r1, r2
- mov r0, r7
- orr r3, r5, r3, lsl #10
+ mov r0, r8
+ orr r3, r7, r3, lsl #10
str r3, [r4, #3460]
ldr r3, [r4, #3304]
str r3, [r4, #3464]
bl FlashReadPages
ldr r3, [r4, #3456]
cmn r3, #1
- beq .L755
+ beq .L770
ldrh r2, [r6]
movw r3, #61649
cmp r2, r3
- beq .L756
-.L755:
- sub r5, r5, #1
- sxth r5, r5
- b .L754
-.L761:
- ldrh r2, [r7]
+ beq .L771
+.L770:
+ sub r7, r7, #1
+ sxth r7, r7
+ b .L769
+.L776:
+ ldrh r2, [r8]
ldr r1, [r4, #3464]
ldr r0, [r6, #4]!
lsl r2, r2, #2
mla r1, r5, r2, r1
add r5, r5, #1
bl ftl_memcpy
- b .L760
-.L762:
- mvn r0, #0
- ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
+ b .L775
.L777:
+ mvn r0, #0
+ ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
+.L792:
.align 2
-.L776:
+.L791:
.word .LANCHOR0
+ .word .LANCHOR0+302
+ .word .LANCHOR0+356
.word .LANCHOR0+3456
.word .LANCHOR1+245
- .word .LC1
- .word .LANCHOR0+176
+ .word .LC8
+ .word .LANCHOR0+380
+ .word .LANCHOR0+3392
.size FtlLoadBbt, .-FtlLoadBbt
.align 2
.global FlashProgPages
@@ -5403,7 +5603,7 @@ FlashProgPages:
sub fp, ip, #4
sub sp, sp, #48
mov r8, #0
- ldr r6, .L816
+ ldr r6, .L832
mov r4, r0
str r3, [fp, #-88]
mov r5, r0
@@ -5415,52 +5615,52 @@ FlashProgPages:
str r3, [fp, #-72]
lsl r3, r3, #3
str r3, [fp, #-80]
-.L779:
+.L794:
ldr r3, [fp, #-76]
cmp r8, r3
- bne .L793
+ bne .L808
ldr r3, [fp, #-88]
cmp r3, #0
- beq .L787
+ beq .L802
mov r5, #0
- ldr r7, .L816+4
- ldr r6, .L816
- b .L794
-.L793:
+ ldr r6, .L832+4
+ ldr r7, .L832+8
+ b .L809
+.L808:
ldr r3, [r5, #8]
cmp r3, #0
- beq .L780
+ beq .L795
ldr r3, [r5, #12]
cmp r3, #0
- bne .L781
-.L780:
- mov r2, #140
- ldr r1, .L816+8
- ldr r0, .L816+12
+ bne .L796
+.L795:
+ mov r2, #148
+ ldr r1, .L832+12
+ ldr r0, .L832+16
bl sftl_printk
-.L781:
+.L796:
sub r2, fp, #68
sub r1, fp, #64
mov r0, r5
bl l2p_addr_tran
ldr r7, [fp, #-68]
cmp r7, #3
- bls .L782
-.L815:
+ bls .L797
+.L831:
mvn r3, #0
str r3, [r5]
- b .L783
-.L782:
+ b .L798
+.L797:
cmp r7, #0
- bne .L784
+ bne .L799
ldr r3, [fp, #-64]
ldr r2, [fp, #-80]
cmp r2, r3
- bls .L784
- ldr r5, .L816+8
- ldr r6, .L816+16
- b .L814
-.L786:
+ bls .L799
+ ldr r5, .L832+12
+ ldr r6, .L832+20
+ b .L830
+.L801:
mvn r3, #0
ldr r2, [r4, #-16]
str r3, [r4, #-20]
@@ -5471,36 +5671,37 @@ FlashProgPages:
mov r3, #16
mov r2, #4
ldr r1, [r4, #-12]
- ldr r0, .L816+20
+ ldr r0, .L832+24
bl rknand_print_hex
mov r3, #4
ldr r1, [r4, #-8]
mov r2, r3
- ldr r0, .L816+24
+ ldr r0, .L832+28
bl rknand_print_hex
-.L814:
+.L830:
ldr r3, [fp, #-76]
add r4, r4, #20
cmp r7, r3
- bne .L786
+ bne .L801
bl dump_stack
-.L787:
+.L802:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L784:
+.L799:
ldr r1, [r5, #8]
tst r1, #63
moveq r7, r1
- beq .L788
+ beq .L803
ldr r7, [r10, #3324]
cmp r1, r7
- beq .L788
- ldrh r2, [r10, #58]
+ beq .L803
+ ldr r3, .L832+32
mov r0, r7
+ ldrh r2, [r3]
lsl r2, r2, #9
bl ftl_memcpy
-.L788:
+.L803:
ldr r3, [r5, #12]
mov r2, r7
ldr ip, [r10, #3256]
@@ -5513,7 +5714,7 @@ FlashProgPages:
strne r3, [r5]
ldrh r3, [r6, #14]
cmp r3, #4
- bne .L783
+ bne .L798
ldr r0, [fp, #-72]
add r2, r7, #2048
ldr r3, [r5, #12]
@@ -5524,12 +5725,12 @@ FlashProgPages:
ldrb r0, [fp, #-68] @ zero_extendqisi2
blx ip
cmp r0, #0
- bne .L815
-.L783:
+ bne .L831
+.L798:
add r8, r8, #1
add r5, r5, #20
- b .L779
-.L798:
+ b .L794
+.L814:
ldr r2, [r9, #3324]
mov r3, #0
mov r1, #1
@@ -5547,58 +5748,70 @@ FlashProgPages:
bl FlashReadPages
ldr r10, [fp, #-60]
cmn r10, #1
- bne .L795
+ bne .L810
+ ldr r1, [r4, #4]
+ mov r0, r6
+ bl sftl_printk
+ str r10, [r4]
+.L810:
+ ldr r10, [fp, #-60]
+ cmp r10, #256
+ bne .L811
ldr r1, [r4, #4]
mov r0, r7
bl sftl_printk
str r10, [r4]
-.L795:
+.L811:
ldr r3, [r4, #12]
cmp r3, #0
- beq .L796
+ beq .L812
ldr r2, [r3]
- ldr r3, [r6, #3332]
+ ldr r3, .L832
+ ldr r3, [r3, #3332]
ldr r3, [r3]
cmp r2, r3
- beq .L796
+ beq .L812
ldr r1, [r4, #4]
- ldr r0, .L816+28
+ ldr r0, .L832+36
bl sftl_printk
mvn r3, #0
str r3, [r4]
-.L796:
+.L812:
ldr r3, [r4, #8]
cmp r3, #0
- beq .L797
+ beq .L813
ldr r2, [r3]
- ldr r3, [r6, #3324]
+ ldr r3, .L832
+ ldr r3, [r3, #3324]
ldr r3, [r3]
cmp r2, r3
- beq .L797
+ beq .L813
ldr r1, [r4, #4]
- ldr r0, .L816+32
+ ldr r0, .L832+40
bl sftl_printk
mvn r3, #0
str r3, [r4]
-.L797:
+.L813:
add r5, r5, #1
add r4, r4, #20
-.L794:
+.L809:
cmp r8, r5
- bne .L798
- b .L787
-.L817:
+ bne .L814
+ b .L802
+.L833:
.align 2
-.L816:
+.L832:
.word .LANCHOR0
- .word .LC86
+ .word .LC95
+ .word .LC96
.word .LANCHOR1+256
- .word .LC1
- .word .LC80
- .word .LC81
- .word .LC82
+ .word .LC8
+ .word .LC86
.word .LC87
.word .LC88
+ .word .LANCHOR0+262
+ .word .LC97
+ .word .LC98
.size FlashProgPages, .-FlashProgPages
.align 2
.global FtlLowFormatEraseBlock
@@ -5613,230 +5826,231 @@ FtlLowFormatEraseBlock:
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #12
- mov r9, #0
- ldr ip, .L860
- uxtb r6, r1
- uxth r7, r0
- mov r5, r9
- mov r4, r9
- mov r10, ip
- str r7, [ip, #3288]
-.L819:
- ldrh r1, [r10, #32]
- uxth r3, r9
+ mov r10, #0
+ ldr ip, .L876
+ uxtb r5, r1
+ uxth r3, r0
+ mov r6, r10
+ mov r4, r10
+ mov r9, ip
+ mov r8, #20
+ str r3, [fp, #-44]
+ str r3, [ip, #3288]
+.L835:
+ ldrh r1, [r9, #236]
+ uxth r3, r10
cmp r1, r3
- bhi .L823
- cmp r5, #0
- beq .L818
- mov r8, #0
- mov r9, #20
- mov r2, r5
+ bhi .L839
+ cmp r6, #0
+ beq .L834
+ mov r7, #0
+ mov r8, #20
+ mov r2, r6
mov r1, #0
- ldr r0, [r10, #3272]
+ ldr r0, [r9, #3272]
bl FlashEraseBlocks
-.L826:
- uxth r3, r8
- cmp r5, r3
- bhi .L828
-.L829:
- cmp r6, #0
- ldrhne r3, [r10, #104]
+.L842:
+ uxth r3, r7
+ cmp r6, r3
+ bhi .L844
+.L845:
+ cmp r5, #0
+ mov r7, #0
+ ldrne r3, .L876+4
moveq r3, #2
+ streq r5, [fp, #-48]
streq r3, [fp, #-52]
- streq r6, [fp, #-48]
+ ldrhne r3, [r3]
strne r3, [fp, #-52]
movne r3, #1
strne r3, [fp, #-48]
- mov r3, #0
- str r3, [fp, #-44]
-.L838:
- mov r8, #0
- mov r5, r8
-.L830:
- ldrh r1, [r10, #32]
- uxth r3, r8
+.L854:
+ mov r10, #0
+ mov r6, r10
+.L846:
+ ldrh r1, [r9, #236]
+ uxth r3, r10
cmp r1, r3
- bhi .L833
- cmp r5, #0
- beq .L818
- mov r9, #0
+ bhi .L849
+ cmp r6, #0
+ beq .L834
+ mov r8, #0
+ mov r10, #20
mov r3, #1
ldr r2, [fp, #-48]
- mov r1, r5
- ldr r0, [r10, #3272]
+ mov r1, r6
+ ldr r0, [r9, #3272]
bl FlashProgPages
-.L835:
- uxth r3, r9
- cmp r5, r3
- bhi .L837
- ldr r3, [fp, #-44]
+.L851:
+ uxth r3, r8
+ cmp r6, r3
+ bhi .L853
+ add r7, r7, #1
ldr r2, [fp, #-52]
- add r3, r3, #1
- str r3, [fp, #-44]
- ldrh r3, [fp, #-44]
+ uxth r3, r7
cmp r2, r3
- bhi .L838
- mov r8, #0
- mov r9, #20
-.L839:
- uxth r3, r8
- cmp r5, r3
- bhi .L841
- adds r6, r6, #0
- movne r6, #1
- cmp r7, #63
- movhi r7, r6
- orrls r7, r6, #1
- cmp r7, #0
- beq .L818
- mov r2, r5
+ bhi .L854
+ mov r7, #0
+ mov r8, #20
+.L855:
+ uxth r3, r7
+ cmp r6, r3
+ bhi .L857
+ ldr r3, [fp, #-44]
+ adds r5, r5, #0
+ movne r5, #1
+ cmp r3, #63
+ orrls r5, r5, #1
+ cmp r5, #0
+ beq .L834
+ mov r2, r6
ldr r1, [fp, #-48]
- ldr r0, [r10, #3272]
+ ldr r0, [r9, #3272]
bl FlashEraseBlocks
-.L818:
+.L834:
mov r0, r4
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L823:
- uxth r3, r9
- mov r2, #20
- ldr r0, [r10, #3272]
- mul r1, r2, r3
+.L839:
+ uxth r3, r10
+ ldr r0, [r9, #3272]
mov r2, #0
- add r3, r10, r3
+ mul r1, r8, r3
+ add r3, r9, r3
str r2, [r0, r1]
- mov r1, r7
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldr r1, [fp, #-44]
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
- cmp r6, #0
- mov r8, r0
- beq .L820
+ cmp r5, #0
+ mov r7, r0
+ beq .L836
bl IsBlkInVendorPart
cmp r0, #0
- bne .L821
-.L820:
- mov r0, r8
+ bne .L837
+.L836:
+ mov r0, r7
bl FtlBbmIsBadBlock
cmp r0, #0
addne r4, r4, #1
uxthne r4, r4
- bne .L821
- ldr r1, [r10, #3272]
- mov r3, #20
- lsl r8, r8, #10
- mla r1, r3, r5, r1
- ldr r3, [r10, #3320]
+ bne .L837
+ ldr r1, [r9, #3272]
+ lsl r7, r7, #10
+ ldr r3, [r9, #3320]
+ mla r1, r8, r6, r1
str r3, [r1, #8]
- ldrh r3, [r10, #112]
- str r8, [r1, #4]
- mul r3, r5, r3
- add r5, r5, #1
- uxth r5, r5
+ ldr r3, .L876+8
+ str r7, [r1, #4]
+ ldrh r3, [r3]
+ mul r3, r6, r3
+ add r6, r6, #1
+ uxth r6, r6
add r0, r3, #3
cmp r3, #0
movlt r3, r0
- ldr r0, [r10, #3340]
+ ldr r0, [r9, #3340]
bic r3, r3, #3
add r3, r0, r3
str r3, [r1, #12]
-.L821:
- add r9, r9, #1
- b .L819
-.L828:
- mul r3, r9, r8
- ldr r2, [r10, #3272]
+.L837:
+ add r10, r10, #1
+ b .L835
+.L844:
+ mul r3, r8, r7
+ ldr r2, [r9, #3272]
add r1, r2, r3
ldr r3, [r2, r3]
cmn r3, #1
- bne .L827
+ bne .L843
ldr r0, [r1, #4]
add r4, r4, #1
uxth r4, r4
ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
-.L827:
- add r8, r8, #1
- b .L826
-.L833:
- uxth r3, r8
+.L843:
+ add r7, r7, #1
+ b .L842
+.L849:
+ uxth r3, r10
mov r2, #20
- ldr r0, [r10, #3272]
+ ldr r0, [r9, #3272]
mul r1, r2, r3
mov r2, #0
- add r3, r10, r3
+ add r3, r9, r3
str r2, [r0, r1]
- mov r1, r7
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldr r1, [fp, #-44]
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
- cmp r6, #0
- mov r9, r0
- beq .L831
+ cmp r5, #0
+ mov r8, r0
+ beq .L847
bl IsBlkInVendorPart
cmp r0, #0
- bne .L832
-.L831:
- mov r0, r9
+ bne .L848
+.L847:
+ mov r0, r8
bl FtlBbmIsBadBlock
cmp r0, #0
- bne .L832
- ldr r1, [r10, #3272]
+ bne .L848
+ ldr r1, [r9, #3272]
mov r3, #20
- mla r1, r3, r5, r1
- ldr r3, [fp, #-44]
- add r9, r3, r9, lsl #10
- ldr r3, [r10, #3316]
- str r9, [r1, #4]
+ add r8, r7, r8, lsl #10
+ mla r1, r3, r6, r1
+ ldr r3, [r9, #3316]
str r3, [r1, #8]
- ldrh r3, [r10, #112]
- mul r3, r5, r3
- add r5, r5, #1
- uxth r5, r5
+ ldr r3, .L876+8
+ str r8, [r1, #4]
+ ldrh r3, [r3]
+ mul r3, r6, r3
+ add r6, r6, #1
+ uxth r6, r6
add r0, r3, #3
cmp r3, #0
movlt r3, r0
- ldr r0, [r10, #3320]
+ ldr r0, [r9, #3320]
bic r3, r3, #3
add r3, r0, r3
str r3, [r1, #12]
-.L832:
- add r8, r8, #1
- b .L830
-.L837:
- mov r3, #20
- ldr r2, [r10, #3272]
- mul r3, r3, r9
+.L848:
+ add r10, r10, #1
+ b .L846
+.L853:
+ mul r3, r10, r8
+ ldr r2, [r9, #3272]
add r1, r2, r3
ldr r3, [r2, r3]
cmp r3, #0
- beq .L836
+ beq .L852
ldr r0, [r1, #4]
add r4, r4, #1
uxth r4, r4
ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
-.L836:
- add r9, r9, #1
- b .L835
-.L841:
- cmp r6, #0
- beq .L840
- mul r3, r9, r8
- ldr r2, [r10, #3272]
+.L852:
+ add r8, r8, #1
+ b .L851
+.L857:
+ cmp r5, #0
+ beq .L856
+ mul r3, r8, r7
+ ldr r2, [r9, #3272]
add r1, r2, r3
ldr r3, [r2, r3]
cmp r3, #0
- bne .L840
+ bne .L856
ldr r0, [r1, #4]
mov r1, #1
ubfx r0, r0, #10, #16
bl FtlFreeSysBlkQueueIn
-.L840:
- add r8, r8, #1
- b .L839
-.L861:
+.L856:
+ add r7, r7, #1
+ b .L855
+.L877:
.align 2
-.L860:
+.L876:
.word .LANCHOR0
+ .word .LANCHOR0+308
+ .word .LANCHOR0+316
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
.align 2
.global FlashTestBlk
@@ -5854,8 +6068,8 @@ FlashTestBlk:
uxth r5, r0
cmp r5, #11
movls r4, #0
- bls .L862
- ldr r3, .L867
+ bls .L878
+ ldr r3, .L883
sub r0, fp, #84
mov r2, #32
mov r1, #165
@@ -5864,7 +6078,7 @@ FlashTestBlk:
ldr r4, [r3, #3328]
str r4, [fp, #-96]
bl memset
- ldr r3, .L867+4
+ ldr r3, .L883+4
mov r2, #1
mov r1, r2
sub r0, fp, #104
@@ -5880,7 +6094,7 @@ FlashTestBlk:
ldr r3, [fp, #-104]
cmp r3, #0
mvnne r4, #0
- bne .L864
+ bne .L880
add r3, r5, #1
sub r0, fp, #104
str r3, [fp, #-100]
@@ -5892,19 +6106,19 @@ FlashTestBlk:
adds r4, r4, #0
movne r4, #1
rsb r4, r4, #0
-.L864:
+.L880:
mov r2, #1
mov r1, #0
sub r0, fp, #104
str r5, [fp, #-100]
bl FlashEraseBlocks
-.L862:
+.L878:
mov r0, r4
sub sp, fp, #20
ldmfd sp, {r4, r5, fp, sp, pc}
-.L868:
+.L884:
.align 2
-.L867:
+.L883:
.word .LANCHOR0
.word 1515870810
.size FlashTestBlk, .-FlashTestBlk
@@ -5915,112 +6129,120 @@ FlashTestBlk:
.fpu softvfp
.type FtlBbmTblFlush, %function
FtlBbmTblFlush:
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #4
+ sub sp, sp, #8
mov r5, #0
- ldr r4, .L878
+ ldr r4, .L897
mov r1, #0
- ldr r0, [r4, #3304]
- add r6, r4, #176
ldr r3, [r4, #3336]
- add r7, r4, #3392
- ldrh r2, [r4, #110]
- str r0, [r4, #3464]
+ add r6, r4, #380
+ ldr r0, [r4, #3304]
+ sub r7, r6, #122
+ add r8, r4, #3392
str r3, [r4, #3468]
+ movw r3, #314
+ ldrh r2, [r4, r3]
+ str r0, [r4, #3464]
bl ftl_memset
-.L870:
- ldrh r3, [r4, #54]
+.L886:
+ ldrh r3, [r7]
cmp r5, r3
- blt .L871
- ldr r5, [r4, #3468]
+ blt .L887
+ ldr r6, [r4, #3468]
mov r2, #16
mov r1, #255
- ldr r8, .L878+4
- mov r6, #0
- mov r0, r5
- mov r7, r6
+ ldr r5, .L897+4
+ ldr r10, .L897+8
+ mov r7, #0
+ mov r0, r6
+ mov r8, r7
bl memset
- ldr r3, .L878+8
- strh r3, [r5] @ movhi
- ldr r3, [r4, #160]
- str r3, [r5, #4]
- ldrh r3, [r4, #152]
- strh r3, [r5, #2] @ movhi
- ldrh r3, [r4, #156]
- strh r3, [r5, #8] @ movhi
- ldrh r3, [r4, #158]
- strh r3, [r5, #10] @ movhi
- ldr r3, [r4, #28]
- strh r3, [r5, #12] @ movhi
-.L872:
+ ldr r3, .L897+12
+ sub r9, r5, #48
+ strh r3, [r6] @ movhi
+ ldr r3, [r4, #364]
+ str r3, [r6, #4]
+ ldrh r3, [r5]
+ strh r3, [r6, #2] @ movhi
+ ldrh r3, [r5, #4]
+ strh r3, [r6, #8] @ movhi
+ ldrh r3, [r5, #6]
+ strh r3, [r6, #10] @ movhi
+ ldr r3, [r4, #232]
+ strh r3, [r6, #12] @ movhi
+ ldr r3, [r4, #2608]
+ strh r3, [r6, #14] @ movhi
+.L888:
ldr r3, [r4, #3304]
- mov r9, #0
- ldrh r2, [r4, #154]
- ldrh r1, [r4, #152]
+ mov ip, #0
+ ldrh r2, [r5, #2]
+ ldrh r1, [r5]
str r3, [r4, #3464]
ldr r3, [r4, #3336]
- str r9, [r4, #3456]
+ str ip, [r4, #3456]
+ str ip, [fp, #-44]
str r3, [r4, #3468]
orr r3, r2, r1, lsl #10
- ldrh r0, [r5, #10]
+ ldrh r0, [r6, #10]
str r3, [r4, #3460]
- ldrh r3, [r4, #156]
+ ldrh r3, [r5, #4]
str r0, [sp]
- mov r0, r8
+ mov r0, r10
bl sftl_printk
- ldrh r3, [r4, #104]
- ldrh r2, [r4, #154]
+ ldrh r3, [r9]
+ ldrh r2, [r5, #2]
+ ldr ip, [fp, #-44]
sub r3, r3, #1
cmp r2, r3
- blt .L873
- ldr r3, [r4, #160]
- ldrh r2, [r4, #152]
+ blt .L889
+ ldr r3, [r4, #364]
+ ldrh r2, [r5]
ldr r0, [r4, #3272]
add r3, r3, #1
- strh r9, [r4, #154] @ movhi
- str r3, [r4, #160]
- str r3, [r5, #4]
- ldrh r3, [r4, #156]
- strh r2, [r5, #8] @ movhi
- strh r2, [r4, #156] @ movhi
+ strh ip, [r5, #2] @ movhi
+ str r3, [r4, #364]
+ str r3, [r6, #4]
+ ldrh r3, [r5, #4]
+ strh r2, [r6, #8] @ movhi
+ strh r2, [r5, #4] @ movhi
mov r2, #1
- strh r3, [r4, #152] @ movhi
+ strh r3, [r5] @ movhi
mov r1, r2
lsl r3, r3, #10
str r3, [r4, #3460]
str r3, [r0, #4]
bl FlashEraseBlocks
-.L873:
+.L889:
mov r3, #1
- ldr r0, .L878+12
+ ldr r0, .L897+16
mov r2, r3
mov r1, r3
bl FlashProgPages
- ldrh r3, [r4, #154]
+ ldrh r3, [r5, #2]
add r3, r3, #1
- strh r3, [r4, #154] @ movhi
+ strh r3, [r5, #2] @ movhi
ldr r3, [r4, #3456]
cmn r3, #1
- bne .L874
- add r6, r6, #1
+ bne .L890
+ add r7, r7, #1
ldr r1, [r4, #3460]
- uxth r6, r6
- ldr r0, .L878+16
+ uxth r7, r7
+ ldr r0, .L897+20
bl sftl_printk
- cmp r6, #3
- bls .L872
- mov r2, r6
+ cmp r7, #3
+ bls .L888
+ mov r2, r7
ldr r1, [r4, #3460]
- ldr r0, .L878+20
+ ldr r0, .L897+24
bl sftl_printk
-.L876:
- b .L876
-.L871:
- ldrh r2, [r7]
+.L892:
+ b .L892
+.L887:
+ ldrh r2, [r8]
ldr r3, [r4, #3464]
ldr r1, [r6, #4]!
mul r0, r2, r5
@@ -6028,24 +6250,29 @@ FtlBbmTblFlush:
add r5, r5, #1
add r0, r3, r0, lsl #2
bl ftl_memcpy
- b .L870
-.L877:
- mov r7, #1
- b .L872
-.L874:
- cmp r7, #0
- beq .L877
+ b .L886
+.L893:
+ mov r8, #1
+ b .L888
+.L890:
+ add r8, r8, #1
+ cmp r8, #1
+ ble .L893
+ cmp r3, #256
+ beq .L888
mov r0, #0
- ldmib sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
-.L879:
+ sub sp, fp, #40
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L898:
.align 2
-.L878:
+.L897:
.word .LANCHOR0
- .word .LC89
+ .word .LANCHOR0+356
+ .word .LC99
.word -3887
.word .LANCHOR0+3456
- .word .LC90
- .word .LC91
+ .word .LC100
+ .word .LC101
.size FtlBbmTblFlush, .-FtlBbmTblFlush
.align 2
.global allocate_data_superblock
@@ -6061,26 +6288,27 @@ allocate_data_superblock:
sub fp, ip, #4
sub sp, sp, #12
mov r4, r0
- ldr r10, .L916
-.L881:
- ldr r8, .L916+4
- ldrh r1, [r8, #-8]
- ldrh r2, [r8]
+ ldr r9, .L935
+.L900:
+ ldr r3, .L935
+ ldr r10, .L935+4
+ ldrh r2, [r3, #228]
+ ldrh r1, [r10]
add r2, r2, r1
- ldrh r1, [r10, #40]
+ ldrh r1, [r3, #244]
cmp r2, r1
- ble .L882
- movw r2, #2661
- ldr r1, .L916+8
- ldr r0, .L916+12
+ ble .L901
+ mov r2, #2656
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L882:
- ldr r2, .L916+16
+.L901:
+ ldr r2, .L935+16
cmp r4, r2
movne r1, #0
- bne .L883
- ldrh r2, [r8]
- ldr r1, [r10, #3164]
+ bne .L902
+ ldrh r2, [r9, #228]
+ ldr r1, [r9, #3168]
mul r0, r1, r2
lsr r1, r2, #1
add r1, r1, #1
@@ -6089,196 +6317,194 @@ allocate_data_superblock:
cmp r1, #0
subne r1, r1, #1
uxthne r1, r1
-.L883:
- ldr r0, .L916+20
+.L902:
+ ldr r0, .L935+20
bl List_pop_index_node
- ldrh r2, [r8]
+ ldrh r2, [r9, #228]
mov r7, r0
- uxth r9, r0
+ uxth r8, r0
cmp r2, #0
- bne .L884
- movw r2, #2670
- ldr r1, .L916+8
- ldr r0, .L916+12
+ bne .L903
+ movw r2, #2665
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L884:
- ldrh r2, [r8]
+.L903:
+ ldrh r2, [r9, #228]
sub r2, r2, #1
- strh r2, [r8] @ movhi
- ldrh r2, [r10, #40]
- cmp r2, r9
- bls .L881
+ strh r2, [r9, #228] @ movhi
+ ldrh r2, [r9, #244]
+ cmp r2, r8
+ bls .L900
uxth r7, r7
- ldr r2, [r10, #2324]
+ ldr r2, [r9, #76]
lsl r6, r7, #1
ldrh r5, [r2, r6]
cmp r5, #0
- bne .L881
- strh r9, [r4] @ movhi
+ bne .L900
+ strh r8, [r4] @ movhi
mov r0, r4
bl make_superblock
ldrb r2, [r4, #7] @ zero_extendqisi2
cmp r2, #0
- bne .L886
- ldr r2, [r10, #2324]
+ bne .L905
+ ldr r2, [r9, #76]
mvn r1, #0
mov r0, r7
strh r1, [r2, r6] @ movhi
bl INSERT_DATA_LIST
- ldr r3, .L916+24
- ldrh r2, [r8]
- ldrh r1, [r3]
+ ldrh r1, [r10]
+ ldrh r2, [r9, #228]
add r2, r2, r1
- ldrh r1, [r10, #40]
+ ldrh r1, [r9, #244]
cmp r2, r1
- ble .L881
- movw r2, #2684
- ldr r1, .L916+8
- ldr r0, .L916+12
+ ble .L900
+ movw r2, #2679
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
- b .L881
-.L886:
- ldr r3, .L916+24
- ldrh r2, [r8]
- ldrh r1, [r3]
+ b .L900
+.L905:
+ ldrh r1, [r10]
+ ldrh r2, [r9, #228]
add r2, r2, r1
- ldrh r1, [r10, #40]
+ ldrh r1, [r9, #244]
cmp r2, r1
- ble .L888
- movw r2, #2687
- ldr r1, .L916+8
- ldr r0, .L916+12
+ ble .L907
+ movw r2, #2682
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L888:
- ldr r0, [r10, #3272]
+.L907:
+ ldr r0, [r9, #3272]
mov r1, #20
- ldrh lr, [r10, #32]
+ ldrh lr, [r9, #236]
add ip, r4, #16
str r1, [fp, #-44]
mov r2, r0
mla r3, r1, lr, r0
mov lr, #0
-.L889:
+.L908:
cmp r3, r2
- bne .L891
+ bne .L910
cmp r5, #0
- bne .L892
- movw r2, #2698
- ldr r1, .L916+8
- ldr r0, .L916+12
+ bne .L911
+ movw r2, #2693
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L892:
- ldr r2, .L916+28
- ldrh r2, [r2]
- cmp r2, r9
- bne .L893
- movw r2, #2700
- ldr r1, .L916+8
- ldr r0, .L916+12
+.L911:
+ ldrh r2, [r9, #176]
+ cmp r2, r8
+ bne .L912
+ movw r2, #2695
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L893:
+.L912:
ldrb r2, [r4, #8] @ zero_extendqisi2
- ldr r1, [r10, #2328]
+ ldr r1, [r9, #2540]
+ ldr r10, .L935+24
cmp r2, #0
ldrh r2, [r1, r6]
- bne .L894
+ bne .L913
cmp r2, #0
- ldrhne r0, [r10, #92]
+ ldrhne r0, [r10]
moveq r2, #2
addne r2, r2, r0
mov r0, r7
strh r2, [r1, r6] @ movhi
mov r1, #0
- ldr r2, [r10, #2548]
+ ldr r2, [r9, #2600]
add r2, r2, #1
- str r2, [r10, #2548]
+ str r2, [r9, #2600]
bl ftl_set_blk_mode
-.L897:
- ldr r2, [r10, #2328]
- ldr r1, [r10, #2564]
- ldr ip, [r10, #2548]
+.L916:
+ ldr r2, [r9, #2540]
+ ldr r1, [r9, #2616]
+ ldr ip, [r9, #2600]
ldrh r2, [r2, r6]
- ldrh r0, [r10, #92]
+ ldrh r0, [r10]
cmp r2, r1
- ldrh r1, [r10, #40]
- strhi r2, [r10, #2564]
- ldr r2, [r10, #2552]
+ ldrh r1, [r9, #244]
+ strhi r2, [r9, #2616]
+ ldr r2, [r9, #2604]
mla r0, ip, r0, r2
bl __udivsi3
- ldr r1, [r10, #3352]
- str r0, [r10, #2556]
- ldr r0, [r10, #3272]
+ ldr r1, [r9, #3352]
+ str r0, [r9, #2608]
+ ldr r0, [r9, #3272]
ldr r2, [r1, #16]
- ldr ip, .L916+32
+ ldr ip, .L935+28
add r2, r2, #1
str r2, [r1, #16]
mov r1, #20
mla r1, r1, r5, r0
add r2, r0, #4
add r1, r1, #24
-.L899:
+.L918:
add r2, r2, #20
cmp r1, r2
- bne .L900
+ bne .L919
ldrb r1, [r4, #8] @ zero_extendqisi2
mov r2, r5
- ldr r0, [r10, #3272]
- mov r8, #0
+ ldr r0, [r9, #3272]
+ mov r10, #0
bl FlashEraseBlocks
- mov r1, r8
+ mov r1, r10
mov ip, #20
-.L901:
- uxth r2, r8
+.L920:
+ uxth r2, r10
cmp r5, r2
- bhi .L903
+ bhi .L922
cmp r1, #0
- ble .L904
+ ble .L923
mov r0, r7
bl update_multiplier_value
bl FtlBbmTblFlush
-.L904:
+.L923:
ldrb r1, [r4, #7] @ zero_extendqisi2
cmp r1, #0
- bne .L905
- ldr r2, [r10, #2324]
+ bne .L924
+ ldr r2, [r9, #76]
mvn r1, #0
strh r1, [r2, r6] @ movhi
- b .L881
-.L891:
+ b .L900
+.L910:
str lr, [r2, #8]
- movw r8, #65535
+ movw r10, #65535
str lr, [r2, #12]
add r2, r2, #20
ldrh r1, [ip], #2
- cmp r1, r8
- ldrne r8, [fp, #-44]
+ cmp r1, r10
+ ldrne r10, [fp, #-44]
lslne r1, r1, #10
- mlane r8, r8, r5, r0
+ mlane r10, r10, r5, r0
addne r5, r5, #1
uxthne r5, r5
- strne r1, [r8, #4]
- b .L889
-.L894:
+ strne r1, [r10, #4]
+ b .L908
+.L913:
add r2, r2, #1
mov r0, r7
strh r2, [r1, r6] @ movhi
- ldr r2, [r10, #2552]
+ ldr r2, [r9, #2604]
add r2, r2, #1
- str r2, [r10, #2552]
+ str r2, [r9, #2604]
bl ftl_set_blk_mode.part.6
- b .L897
-.L900:
+ b .L916
+.L919:
ldr r0, [r2, #-20]
and r0, r0, ip
str r0, [r2, #-20]
- b .L899
-.L903:
- mul r2, ip, r8
- ldr lr, [r10, #3272]
+ b .L918
+.L922:
+ mul r2, ip, r10
+ ldr lr, [r9, #3272]
add r0, lr, r2
ldr r2, [lr, r2]
cmn r2, #1
- bne .L902
+ bne .L921
ldr r0, [r0, #4]
add r1, r1, #1
str ip, [fp, #-52]
@@ -6287,59 +6513,59 @@ allocate_data_superblock:
str r1, [fp, #-44]
bl FtlBbmMapBadBlock
ldr r2, [fp, #-48]
- add r0, r4, r8, lsl #1
+ add r0, r4, r10, lsl #1
ldr ip, [fp, #-52]
ldr r1, [fp, #-44]
strh r2, [r0, #16] @ movhi
ldrb r2, [r4, #7] @ zero_extendqisi2
sub r2, r2, #1
strb r2, [r4, #7]
-.L902:
- add r8, r8, #1
- b .L901
-.L905:
- ldrh r2, [r10, #102]
- strh r9, [r4] @ movhi
+.L921:
+ add r10, r10, #1
+ b .L920
+.L924:
+ movw r2, #306
+ ldrh r2, [r9, r2]
+ strh r8, [r4] @ movhi
smulbb r2, r2, r1
mov r1, #0
strh r1, [r4, #2] @ movhi
strb r1, [r4, #6]
- ldr r1, [r10, #2540]
+ ldr r1, [r9, #2592]
uxth r2, r2
- ldr r0, [r10, #2324]
+ ldr r0, [r9, #76]
strh r2, [r4, #4] @ movhi
str r1, [r4, #12]
add r1, r1, #1
- str r1, [r10, #2540]
+ str r1, [r9, #2592]
ldrh r1, [r4]
lsl r3, r1, #1
strh r2, [r0, r3] @ movhi
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L906
+ beq .L925
ldrb r3, [r4, #7] @ zero_extendqisi2
cmp r3, #0
- bne .L907
-.L906:
- movw r2, #2753
- ldr r1, .L916+8
- ldr r0, .L916+12
+ bne .L926
+.L925:
+ movw r2, #2748
+ ldr r1, .L935+8
+ ldr r0, .L935+12
bl sftl_printk
-.L907:
+.L926:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L917:
+.L936:
.align 2
-.L916:
+.L935:
.word .LANCHOR0
- .word .LANCHOR0+2344
+ .word .LANCHOR0+2532
.word .LANCHOR1+271
- .word .LC1
- .word .LANCHOR0+2444
- .word .LANCHOR0+2340
- .word .LANCHOR0+2336
- .word .LANCHOR0+2592
+ .word .LC8
+ .word .LANCHOR0+128
+ .word .LANCHOR0+2536
+ .word .LANCHOR0+296
.word -1024
.size allocate_data_superblock, .-allocate_data_superblock
.align 2
@@ -6356,47 +6582,47 @@ FtlGcFreeBadSuperBlk:
sub fp, ip, #4
sub sp, sp, #8
uxth r3, r0
- ldr r6, .L930
+ ldr r6, .L949
str r3, [fp, #-44]
movw r3, #3210
ldrh r3, [r6, r3]
cmp r3, #0
movne r7, #0
- ldrne r10, .L930+4
- bne .L920
-.L919:
+ ldrne r10, .L949+4
+ bne .L939
+.L938:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L926:
+.L945:
uxtah r3, r6, r7
ldr r1, [fp, #-44]
mov r8, #0
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
mov r9, r0
-.L921:
+.L940:
ldrh r3, [r10]
uxth r4, r8
cmp r3, r4
- bhi .L925
+ bhi .L944
add r7, r7, #1
-.L920:
- ldrh r2, [r6, #32]
+.L939:
+ ldrh r2, [r6, #236]
uxth r3, r7
cmp r2, r3
- bhi .L926
+ bhi .L945
bl FtlGcReFreshBadBlk
- b .L919
-.L925:
+ b .L938
+.L944:
uxth r3, r8
- ldr r5, .L930+8
+ ldr r5, .L949+8
lsl r2, r3, #1
ldrh r2, [r5, r2]
cmp r2, r9
- bne .L922
+ bne .L941
mov r1, r9
- ldr r0, .L930+12
+ ldr r0, .L949+12
str r3, [fp, #-48]
bl sftl_printk
mov r0, r9
@@ -6405,27 +6631,27 @@ FtlGcFreeBadSuperBlk:
ldr r3, [fp, #-48]
ldrh r2, [r10]
add r3, r5, r3, lsl #1
-.L923:
+.L942:
cmp r4, r2
- bcc .L924
+ bcc .L943
sub r2, r2, #1
strh r2, [r10] @ movhi
-.L922:
+.L941:
add r8, r8, #1
- b .L921
-.L924:
+ b .L940
+.L943:
ldrh r1, [r3, #2]!
add r4, r4, #1
uxth r4, r4
strh r1, [r3, #-2] @ movhi
- b .L923
-.L931:
+ b .L942
+.L950:
.align 2
-.L930:
+.L949:
.word .LANCHOR0
.word .LANCHOR0+3210
.word .LANCHOR0+3212
- .word .LC92
+ .word .LC102
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
.align 2
.global update_vpc_list
@@ -6439,79 +6665,82 @@ update_vpc_list:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L942
- uxth r4, r0
- ldr r1, [r3, #2324]
- lsl r2, r4, #1
- mov r6, r3
- ldrh r0, [r1, r2]
- cmp r0, #0
- bne .L933
- add r2, r3, #2592
- ldrh r1, [r2]
- cmp r1, r4
+ ldr r4, .L963
+ uxth r5, r0
+ ldr r2, [r4, #76]
+ lsl r3, r5, #1
+ ldrh r3, [r2, r3]
+ cmp r3, #0
+ bne .L952
+ ldrh r3, [r4, #226]
+ cmp r3, r5
mvneq r3, #0
- strheq r3, [r2] @ movhi
- beq .L935
- movw r2, #2348
- ldrh r2, [r3, r2]
- cmp r2, r4
- ldmfdeq sp, {r4, r5, r6, fp, sp, pc}
- movw r2, #2396
- ldrh r2, [r3, r2]
- cmp r2, r4
- ldmfdeq sp, {r4, r5, r6, fp, sp, pc}
- movw r2, #2444
- ldrh r3, [r3, r2]
- cmp r3, r4
- ldmfdeq sp, {r4, r5, r6, fp, sp, pc}
-.L935:
- ldr r5, .L942+4
- mov r1, r4
- ldr r0, .L942+8
+ strheq r3, [r4, #226] @ movhi
+ ldrh r3, [r4, #224]
+ cmp r3, r5
+ mvneq r3, #0
+ strheq r3, [r4, #224] @ movhi
+ ldrh r3, [r4, #176]
+ cmp r3, r5
+ mvneq r3, #0
+ strheq r3, [r4, #176] @ movhi
+ beq .L956
+ ldrh r3, [r4, #28]
+ cmp r3, r5
+ beq .L961
+ ldrh r3, [r4, #80]
+ cmp r3, r5
+ beq .L961
+ ldrh r3, [r4, #128]
+ cmp r3, r5
+ beq .L961
+.L956:
+ mov r1, r5
+ ldr r0, .L963+4
bl List_remove_node
- ldrh r3, [r5]
+ movw r3, #2532
+ ldrh r3, [r4, r3]
cmp r3, #0
- bne .L937
- movw r2, #2823
- ldr r1, .L942+12
- ldr r0, .L942+16
+ bne .L958
+ movw r2, #2824
+ ldr r1, .L963+8
+ ldr r0, .L963+12
bl sftl_printk
-.L937:
- ldrh r3, [r5]
- mov r0, r4
+.L958:
+ movw r6, #2532
+ mov r0, r5
+ ldrh r3, [r4, r6]
sub r3, r3, #1
- strh r3, [r5] @ movhi
+ strh r3, [r4, r6] @ movhi
bl free_data_superblock
- mov r0, r4
+ mov r0, r5
bl FtlGcFreeBadSuperBlk
- movw r3, #2344
- ldrh r2, [r5]
- ldrh r3, [r6, r3]
+ ldrh r2, [r4, r6]
+ ldrh r3, [r4, #228]
add r3, r3, r2
- ldrh r2, [r6, #40]
+ ldrh r2, [r4, #244]
cmp r3, r2
- ble .L941
- movw r2, #2826
- ldr r1, .L942+12
- ldr r0, .L942+16
+ ble .L962
+ movw r2, #2827
+ ldr r1, .L963+8
+ ldr r0, .L963+12
bl sftl_printk
-.L941:
+.L962:
mov r0, #1
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L933:
- mov r0, r4
+.L952:
+ mov r0, r5
bl List_update_data_list
+.L961:
mov r0, #0
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L943:
+.L964:
.align 2
-.L942:
+.L963:
.word .LANCHOR0
- .word .LANCHOR0+2336
- .word .LANCHOR0+2320
+ .word .LANCHOR0+2524
.word .LANCHOR1+296
- .word .LC1
+ .word .LC8
.size update_vpc_list, .-update_vpc_list
.align 2
.global decrement_vpc_count
@@ -6528,50 +6757,50 @@ decrement_vpc_count:
uxth r6, r0
movw r3, #65535
cmp r6, r3
- ldr r4, .L956
- beq .L945
- ldr r3, [r4, #2324]
+ ldr r4, .L977
+ beq .L966
+ ldr r3, [r4, #76]
lsl r5, r6, #1
ldrh r2, [r3, r5]
cmp r2, #0
subne r2, r2, #1
strhne r2, [r3, r5] @ movhi
- bne .L945
+ bne .L966
mov r1, r6
- ldr r0, .L956+4
+ ldr r0, .L977+4
bl sftl_printk
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
ldrh r5, [r3, r5]
cmp r5, #0
- beq .L947
-.L954:
+ beq .L968
+.L975:
mov r5, #0
-.L944:
+.L965:
mov r0, r5
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L947:
- movw r2, #2841
-.L955:
- ldr r1, .L956+8
- ldr r0, .L956+12
+.L968:
+ movw r2, #2842
+.L976:
+ ldr r1, .L977+8
+ ldr r0, .L977+12
bl sftl_printk
- b .L944
-.L945:
+ b .L965
+.L966:
movw r7, #3442
movw r3, #65535
ldrh r0, [r4, r7]
cmp r0, r3
strheq r6, [r4, r7] @ movhi
- beq .L954
-.L949:
+ beq .L975
+.L970:
cmp r6, r0
- beq .L954
+ beq .L975
bl update_vpc_list
- ldr r2, [r4, #2316]
+ ldr r2, [r4, #2520]
adds r5, r0, #0
- ldr r3, [r4, #2320]
+ ldr r3, [r4, #2524]
movne r5, #1
- ldr r1, [r4, #2324]
+ ldr r1, [r4, #76]
strh r6, [r4, r7] @ movhi
sub r3, r3, r2
asr r3, r3, #3
@@ -6584,16 +6813,16 @@ decrement_vpc_count:
lsr r2, r2, #5
moveq r2, #0
cmp r2, #0
- beq .L944
- movw r2, #2857
- b .L955
-.L957:
+ beq .L965
+ movw r2, #2858
+ b .L976
+.L978:
.align 2
-.L956:
+.L977:
.word .LANCHOR0
- .word .LC93
+ .word .LC103
.word .LANCHOR1+312
- .word .LC1
+ .word .LC8
.size decrement_vpc_count, .-decrement_vpc_count
.align 2
.global FtlSuperblockPowerLostFix
@@ -6611,7 +6840,7 @@ FtlSuperblockPowerLostFix:
mvn r3, #0
str r3, [fp, #-36]
mov r6, #0
- ldr r3, .L971
+ ldr r3, .L992
movw r1, #61589
mov r4, r0
ldr r2, [r3, #3304]
@@ -6628,57 +6857,58 @@ FtlSuperblockPowerLostFix:
strh r2, [r5, #2] @ movhi
ldr r2, [r3, #3304]
str r1, [r2]
- ldr r1, .L971+4
+ ldr r1, .L992+4
ldr r2, [r3, #3304]
str r1, [r2, #4]
ldrh r2, [r0, #4]
tst r2, #1
moveq r7, #6
movne r7, #7
-.L964:
+.L985:
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L960
-.L961:
+ bne .L981
+.L982:
ldrh r3, [r4]
- ldr r1, [r8, #2324]
+ ldr r1, [r8, #76]
ldrh r0, [r4, #4]
lsl r3, r3, #1
ldrh r2, [r1, r3]
sub r2, r2, r0
strh r2, [r1, r3] @ movhi
- ldrh r3, [r8, #102]
+ movw r3, #306
+ ldrh r3, [r8, r3]
strh r3, [r4, #2] @ movhi
mov r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
sub sp, fp, #32
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L960:
+.L981:
mov r0, r4
bl get_new_active_ppa
cmn r0, #1
str r0, [fp, #-48]
- beq .L961
- ldr r3, [r8, #2544]
+ beq .L982
+ ldr r3, [r8, #2596]
mov r1, #1
sub r0, fp, #52
str r3, [r5, #4]
add r3, r3, #1
cmn r3, #1
moveq r3, r6
- str r3, [r8, #2544]
+ str r3, [r8, #2596]
mov r3, #0
mov r2, r3
bl FlashProgPages
ldrh r0, [r4]
bl decrement_vpc_count
subs r7, r7, #1
- bne .L964
- b .L961
-.L972:
+ bne .L985
+ b .L982
+.L993:
.align 2
-.L971:
+.L992:
.word .LANCHOR0
.word 305419896
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
@@ -6689,189 +6919,204 @@ FtlSuperblockPowerLostFix:
.fpu softvfp
.type FtlMakeBbt, %function
FtlMakeBbt:
- @ args = 0, pretend = 0, frame = 4
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #4
- mov r7, #0
- ldr r8, .L992
+ sub sp, sp, #8
+ mov r8, #0
+ ldr r6, .L1014
bl FtlBbtMemInit
bl FtlLoadFactoryBbt
- sub r5, r8, #180
- sub r9, r8, #18
- mov r4, r5
-.L974:
- ldrh r3, [r5, #54]
- cmp r7, r3
- bcc .L980
+ sub r7, r6, #384
+ sub r9, r6, #18
+ sub r4, r6, #28
+ mov r5, r7
+.L995:
+ ldr r3, .L1014+4
+ ldrh r2, [r3]
+ cmp r8, r2
+ bcc .L1001
mov r0, #0
-.L981:
- ldrh r2, [r4, #114]
+ add r6, r3, #60
+.L1002:
+ ldrh r2, [r6]
uxth r3, r0
- add r5, r0, #1
+ add r7, r0, #1
cmp r2, r3
- bhi .L982
- ldrh r5, [r4, #164]
- movw r6, #65535
- sub r5, r5, #1
- uxth r5, r5
-.L983:
- ldrh r3, [r4, #164]
+ bhi .L1003
+ ldrh r6, [r4, #12]
+ movw r7, #65535
+ sub r6, r6, #1
+ uxth r6, r6
+.L1004:
+ ldrh r3, [r4, #12]
sub r3, r3, #48
- cmp r5, r3
- ble .L987
- mov r0, r5
+ cmp r6, r3
+ ble .L1008
+ mov r0, r6
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L984
- mov r0, r5
+ beq .L1005
+ mov r0, r6
bl FlashTestBlk
cmp r0, #0
- beq .L985
- mov r0, r5
+ beq .L1006
+ mov r0, r6
bl FtlBbmMapBadBlock
-.L984:
- sub r5, r5, #1
- uxth r5, r5
- b .L983
-.L980:
- ldrh r3, [r9, #2]!
- movw r2, #65535
- ldr r0, [r5, #3304]
- ldr r10, [r5, #3336]
- cmp r3, r2
- str r0, [r5, #3464]
- str r10, [r5, #3468]
- beq .L975
- ldrh ip, [r5, #98]
+.L1005:
+ sub r6, r6, #1
+ uxth r6, r6
+ b .L1004
+.L1001:
+ ldr r2, [r7, #3336]
+ movw r1, #65535
+ ldr r0, [r7, #3304]
+ str r2, [fp, #-48]
+ str r2, [r7, #3468]
+ ldrh r2, [r9, #2]!
+ str r0, [r7, #3464]
+ cmp r2, r1
+ beq .L996
+ ldrh r10, [r3, #44]
+ ldr r0, .L1014+8
+ str r3, [fp, #-44]
+ mla r10, r8, r10, r2
+ lsl r2, r10, #10
+ str r2, [r7, #3460]
mov r2, #1
mov r1, r2
- ldr r0, .L992+4
- mla ip, r7, ip, r3
- lsl r3, ip, #10
- str ip, [fp, #-44]
- str r3, [r5, #3460]
bl FlashReadPages
- ldrh r2, [r5, #98]
- ldr r1, [r5, #3464]
- ldr r0, [r8]
+ ldr r3, [fp, #-44]
+ ldr r1, [r7, #3464]
+ ldr r0, [r6]
+ ldrh r2, [r3, #44]
add r2, r2, #7
asr r2, r2, #3
bl ftl_memcpy
- ldr ip, [fp, #-44]
-.L976:
- uxth r0, ip
- add r7, r7, #1
- add r8, r8, #4
+.L997:
+ uxth r0, r10
+ add r8, r8, #1
+ add r6, r6, #4
bl FtlBbmMapBadBlock
- b .L974
-.L975:
- mov r1, r7
+ b .L995
+.L996:
+ mov r1, r8
+ str r3, [fp, #-44]
bl FlashGetBadBlockList
- ldr r1, [r8]
- ldr r0, [r5, #3464]
+ ldr r1, [r6]
+ ldr r0, [r7, #3464]
bl FtlBbt2Bitmap
- ldrh r6, [r5, #98]
-.L978:
- sub r6, r6, #1
- uxth r6, r6
-.L977:
- ldrh r0, [r4, #98]
- smlabb r0, r0, r7, r6
+ ldr r3, [fp, #-44]
+ ldrh r3, [r3, #44]
+.L1013:
+ sub r3, r3, #1
+ uxth r3, r3
+ str r3, [fp, #-44]
+.L998:
+ ldr r10, .L1014+12
+ ldr r3, [fp, #-44]
+ ldrh r0, [r10]
+ smlabb r0, r0, r8, r3
uxth r0, r0
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L978
+ beq .L999
+ ldrh r3, [fp, #-44]
mov r1, #16
- ldr r0, [r4, #3336]
- strh r6, [r9] @ movhi
+ ldr r0, [r5, #3336]
+ strh r3, [r9] @ movhi
bl __memzero
mov r1, #4096
- ldr r0, [r4, #3304]
+ ldr r0, [r5, #3304]
bl __memzero
- ldr r3, .L992+8
- strh r3, [r10] @ movhi
+ ldr r2, [fp, #-48]
+ ldr r3, .L1014+16
+ strh r3, [r2] @ movhi
mov r3, #0
- str r3, [r10, #4]
+ str r3, [r2, #4]
ldrh r3, [r9]
- ldrh ip, [r4, #98]
- strh r3, [r10, #2] @ movhi
+ ldrh r10, [r10]
+ strh r3, [r2, #2] @ movhi
ldrh r3, [r9]
- ldr r1, [r8]
- ldr r0, [r4, #3464]
- mla ip, r7, ip, r3
- lsl r3, ip, #10
- str ip, [fp, #-44]
- str r3, [r4, #3460]
- ldr r3, .L992+12
+ ldr r1, [r6]
+ ldr r0, [r5, #3464]
+ mla r10, r8, r10, r3
+ lsl r3, r10, #10
+ str r3, [r5, #3460]
+ ldr r3, .L1014+20
ldrh r2, [r3]
lsl r2, r2, #2
bl ftl_memcpy
mov r2, #1
- ldr r0, .L992+4
+ ldr r0, .L1014+8
mov r1, r2
bl FlashEraseBlocks
mov r3, #1
- ldr r0, .L992+4
+ ldr r0, .L1014+8
mov r2, r3
mov r1, r3
bl FlashProgPages
- ldr r3, [r4, #3456]
- ldr ip, [fp, #-44]
+ ldr r3, [r5, #3456]
cmn r3, #1
- bne .L976
- uxth r0, ip
+ bne .L997
+ uxth r0, r10
bl FtlBbmMapBadBlock
- b .L977
-.L982:
+ b .L998
+.L999:
+ ldr r3, [fp, #-44]
+ b .L1013
+.L1003:
uxth r0, r0
bl FtlBbmMapBadBlock
- mov r0, r5
- b .L981
-.L985:
- ldrh r3, [r4, #152]
- cmp r3, r6
- strheq r5, [r4, #152] @ movhi
- beq .L984
-.L986:
- strh r5, [r4, #156] @ movhi
-.L987:
- ldrh r3, [r4, #152]
- mov r5, #0
- ldr r0, [r4, #3272]
+ mov r0, r7
+ b .L1002
+.L1006:
+ ldrh r3, [r4]
+ cmp r3, r7
+ strheq r6, [r4] @ movhi
+ beq .L1005
+.L1007:
+ strh r6, [r4, #4] @ movhi
+.L1008:
+ ldrh r3, [r4]
+ mov r6, #0
+ ldr r0, [r5, #3272]
mov r1, #1
- str r5, [r4, #160]
+ str r6, [r5, #364]
mov r2, #2
- strh r5, [r4, #154] @ movhi
+ strh r6, [r4, #2] @ movhi
lsl r3, r3, #10
str r3, [r0, #4]
- ldrh r3, [r4, #156]
+ ldrh r3, [r4, #4]
lsl r3, r3, #10
str r3, [r0, #24]
bl FlashEraseBlocks
- ldrh r0, [r4, #152]
+ ldrh r0, [r4]
bl FtlBbmMapBadBlock
- ldrh r0, [r4, #156]
+ ldrh r0, [r4, #4]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldr r3, [r4, #160]
- ldrh r2, [r4, #156]
- strh r5, [r4, #154] @ movhi
+ ldr r3, [r5, #364]
+ ldrh r2, [r4, #4]
+ strh r6, [r4, #2] @ movhi
add r3, r3, #1
- str r3, [r4, #160]
- ldrh r3, [r4, #152]
- strh r2, [r4, #152] @ movhi
- strh r3, [r4, #156] @ movhi
+ str r3, [r5, #364]
+ ldrh r3, [r4]
+ strh r2, [r4] @ movhi
+ strh r3, [r4, #4] @ movhi
bl FtlBbmTblFlush
- mov r0, r5
- ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L993:
+ mov r0, r6
+ sub sp, fp, #40
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L1015:
.align 2
-.L992:
- .word .LANCHOR0+180
+.L1014:
+ .word .LANCHOR0+384
+ .word .LANCHOR0+258
.word .LANCHOR0+3456
+ .word .LANCHOR0+302
.word -3872
.word .LANCHOR0+3392
.size FtlMakeBbt, .-FtlMakeBbt
@@ -6902,23 +7147,23 @@ js_hash:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L998
+ ldr r3, .L1020
add r1, r0, r1
-.L996:
+.L1018:
cmp r0, r1
- bne .L997
+ bne .L1019
mov r0, r3
ldmfd sp, {fp, sp, pc}
-.L997:
+.L1019:
lsr r2, r3, #2
ldrb ip, [r0], #1 @ zero_extendqisi2
add r2, r2, r3, lsl #5
add r2, r2, ip
eor r3, r3, r2
- b .L996
-.L999:
+ b .L1018
+.L1021:
.align 2
-.L998:
+.L1020:
.word 1204201446
.size js_hash, .-js_hash
.align 2
@@ -6938,15 +7183,15 @@ Ftl_write_map_blk_to_last_page:
mov r4, r0
ldr r5, [r0, #12]
cmp r3, r2
- bne .L1001
+ bne .L1023
ldrh r3, [r0, #8]
cmp r3, #0
- beq .L1002
+ beq .L1024
movw r2, #641
- ldr r1, .L1010
- ldr r0, .L1010+4
+ ldr r1, .L1032
+ ldr r0, .L1032+4
bl sftl_printk
-.L1002:
+.L1024:
ldrh r3, [r4, #8]
add r3, r3, #1
strh r3, [r4, #8] @ movhi
@@ -6958,16 +7203,16 @@ Ftl_write_map_blk_to_last_page:
ldr r3, [r4, #28]
add r3, r3, #1
str r3, [r4, #28]
-.L1003:
+.L1025:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L1001:
+.L1023:
lsl r3, r3, #1
ldr r7, [r0, #24]
mov r1, #255
ldrh r8, [r5, r3]
ldrh r3, [r0, #2]
- ldr r5, .L1010+8
+ ldr r5, .L1032+8
orr r3, r3, r8, lsl #10
ldr r6, [r5, #3336]
str r3, [r5, #3460]
@@ -6976,42 +7221,44 @@ Ftl_write_map_blk_to_last_page:
str r3, [r5, #3464]
ldr r3, [r0, #28]
str r3, [r6, #4]
- ldr r3, .L1010+12
+ ldr r3, .L1032+12
strh r3, [r6, #8] @ movhi
ldrh r3, [r0, #4]
strh r8, [r6, #2] @ movhi
strh r3, [r6] @ movhi
- ldrh r2, [r5, #104]
+ add r3, r5, #308
+ ldrh r2, [r3]
ldr r0, [r5, #3304]
lsl r2, r2, #3
bl ftl_memset
mov r2, #0
mov r3, r2
-.L1004:
+.L1026:
ldrh r0, [r4, #6]
uxth r1, r2
cmp r0, r1
- bhi .L1006
- ldrh r1, [r5, #110]
+ bhi .L1028
+ movw r3, #314
ldr r0, [r5, #3464]
+ ldrh r1, [r5, r3]
bl js_hash
mov r2, #1
str r0, [r6, #12]
mov r3, #0
mov r1, r2
- ldr r0, .L1010+16
+ ldr r0, .L1032+16
bl FlashProgPages
ldrh r3, [r4, #2]
mov r0, r4
add r3, r3, #1
strh r3, [r4, #2] @ movhi
bl ftl_map_blk_gc
- b .L1003
-.L1006:
+ b .L1025
+.L1028:
uxth r1, r2
ldr r0, [r7, r1, lsl #2]
cmp r8, r0, lsr #10
- bne .L1005
+ bne .L1027
ldr r0, [r5, #3304]
add r3, r3, #1
uxth r3, r3
@@ -7020,14 +7267,14 @@ Ftl_write_map_blk_to_last_page:
ldr r1, [r5, #3304]
add r1, r1, r3, lsl #3
str r0, [r1, #4]
-.L1005:
+.L1027:
add r2, r2, #1
- b .L1004
-.L1011:
+ b .L1026
+.L1033:
.align 2
-.L1010:
+.L1032:
.word .LANCHOR1+332
- .word .LC1
+ .word .LC8
.word .LANCHOR0
.word -1291
.word .LANCHOR0+3456
@@ -7046,48 +7293,48 @@ FtlMapWritePage:
sub fp, ip, #4
sub sp, sp, #4
mov r6, #0
- ldr r7, .L1030
+ ldr r5, .L1052
mov r4, r0
- mov r8, r1
+ mov r7, r1
mov r9, r2
- mov r5, r7
-.L1013:
- ldr r3, [r7, #2524]
+ add r8, r5, #308
+.L1035:
+ ldr r3, [r5, #2576]
add r3, r3, #1
- str r3, [r7, #2524]
- ldrh r3, [r7, #104]
+ str r3, [r5, #2576]
+ ldrh r3, [r8]
ldrh r2, [r4, #2]
sub r3, r3, #1
cmp r2, r3
- bge .L1014
+ bge .L1036
ldrh r2, [r4]
movw r3, #65535
cmp r2, r3
- bne .L1015
-.L1014:
+ bne .L1037
+.L1036:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L1015:
+.L1037:
ldrh r3, [r4]
ldr r2, [r4, #12]
lsl r3, r3, #1
ldrh r3, [r2, r3]
cmp r3, #0
- bne .L1016
+ bne .L1038
mov r2, #700
- ldr r1, .L1030+4
- ldr r0, .L1030+8
+ ldr r1, .L1052+4
+ ldr r0, .L1052+8
bl sftl_printk
-.L1016:
+.L1038:
ldrh r2, [r4]
ldrh r3, [r4, #10]
cmp r2, r3
- bcc .L1017
+ bcc .L1039
movw r2, #701
- ldr r1, .L1030+4
- ldr r0, .L1030+8
+ ldr r1, .L1052+4
+ ldr r0, .L1052+8
bl sftl_printk
-.L1017:
+.L1039:
ldrh r3, [r4]
mov r1, #16
ldr r2, [r4, #12]
@@ -7105,18 +7352,19 @@ FtlMapWritePage:
ldr r10, [r5, #3468]
ldr r2, [fp, #-44]
str r3, [r10, #4]
- strh r8, [r10, #8] @ movhi
+ strh r7, [r10, #8] @ movhi
ldrh r3, [r4, #4]
strh r2, [r10, #2] @ movhi
strh r3, [r10] @ movhi
- ldrh r1, [r5, #110]
+ ldr r3, .L1052+12
ldr r0, [r5, #3464]
+ ldrh r1, [r3]
bl js_hash
mov r3, #1
str r0, [r10, #12]
mov r2, r3
mov r1, r3
- ldr r0, .L1030+12
+ ldr r0, .L1052+16
bl FlashProgPages
ldrh r3, [r4, #2]
add r3, r3, #1
@@ -7124,56 +7372,57 @@ FtlMapWritePage:
strh r3, [r4, #2] @ movhi
ldr r2, [r5, #3456]
cmn r2, #1
- bne .L1018
+ bne .L1040
ldr r1, [r5, #3460]
add r6, r6, #1
- ldr r0, .L1030+16
+ ldr r0, .L1052+20
uxth r6, r6
bl sftl_printk
ldrh r3, [r4, #2]
cmp r3, #2
- ldrhls r3, [r5, #104]
+ ldrhls r3, [r8]
subls r3, r3, #1
strhls r3, [r4, #2] @ movhi
cmp r6, #3
- bls .L1020
+ bls .L1042
mov r2, r6
ldr r1, [r5, #3460]
- ldr r0, .L1030+20
+ ldr r0, .L1052+24
bl sftl_printk
-.L1021:
- b .L1021
-.L1020:
+.L1043:
+ b .L1043
+.L1042:
ldr r3, [r4, #32]
cmp r3, #0
- beq .L1013
-.L1029:
- b .L1029
-.L1018:
+ beq .L1035
+.L1051:
+ b .L1051
+.L1040:
cmp r3, #1
cmpne r2, #256
- beq .L1024
+ beq .L1046
ldr r0, [r4, #36]
cmp r0, #0
- beq .L1025
-.L1024:
+ beq .L1047
+.L1046:
mov r3, #0
str r3, [r4, #36]
- b .L1013
-.L1025:
+ b .L1035
+.L1047:
ldr r2, [r5, #3460]
ldr r3, [r4, #24]
- str r2, [r3, r8, lsl #2]
+ str r2, [r3, r7, lsl #2]
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1031:
+.L1053:
.align 2
-.L1030:
+.L1052:
.word .LANCHOR0
.word .LANCHOR1+363
- .word .LC1
+ .word .LC8
+ .word .LANCHOR0+314
.word .LANCHOR0+3456
- .word .LC94
- .word .LC95
+ .word .LC104
+ .word .LC105
.size FtlMapWritePage, .-FtlMapWritePage
.align 2
.global load_l2p_region
@@ -7185,111 +7434,114 @@ load_l2p_region:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1039
+ ldr r9, .L1061
uxth r6, r0
- uxth r8, r1
- ldrh r3, [r4, #136]
+ uxth r10, r1
+ ldrh r3, [r9]
cmp r3, r6
- bcs .L1033
+ bcs .L1055
movw r2, #485
- ldr r1, .L1039+4
- ldr r0, .L1039+8
+ ldr r1, .L1061+4
+ ldr r0, .L1061+8
bl sftl_printk
-.L1033:
- ldr r3, [r4, #3380]
+.L1055:
+ ldr r7, .L1061+12
mov r5, #12
- ldr r7, [r3, r6, lsl #2]
- cmp r7, #0
- bne .L1034
- mul r5, r5, r8
- ldr r3, [r4, #2492]
- ldrh r2, [r4, #110]
+ ldr r3, [r7, #3380]
+ mov r4, r7
+ ldr r8, [r3, r6, lsl #2]
+ cmp r8, #0
+ bne .L1056
+ mul r5, r5, r10
+ ldr r3, [r7, #2544]
+ movw r2, #314
mov r1, #255
+ ldrh r2, [r7, r2]
add r3, r3, r5
ldr r0, [r3, #8]
bl ftl_memset
- ldr r3, [r4, #2492]
+ ldr r3, [r7, #2544]
strh r6, [r3, r5] @ movhi
- ldr r3, [r4, #2492]
+ ldr r3, [r7, #2544]
add r5, r3, r5
- str r7, [r5, #4]
-.L1035:
+ str r8, [r5, #4]
+.L1057:
mov r0, #0
- ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L1034:
- mul r5, r5, r8
- ldr r3, [r4, #2492]
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L1056:
+ mul r5, r5, r10
+ ldr r3, [r7, #2544]
mov r2, #1
- ldr r0, .L1039+12
+ add r0, r7, #3456
mov r1, r2
- str r7, [r4, #3460]
+ str r8, [r7, #3460]
add r3, r3, r5
ldr r3, [r3, #8]
- str r3, [r4, #3464]
- ldr r3, [r4, #3336]
- str r3, [r4, #3468]
+ str r3, [r7, #3464]
+ ldr r3, [r7, #3336]
+ str r3, [r7, #3468]
bl FlashReadPages
- ldr r8, [r4, #3468]
- ldrh r3, [r8, #8]
+ ldr r7, [r7, #3468]
+ ldrh r3, [r7, #8]
cmp r3, r6
- beq .L1036
- mov r2, r7
+ beq .L1058
+ mov r2, r8
mov r1, r6
- ldr r0, .L1039+16
+ ldr r0, .L1061+16
bl sftl_printk
mov r3, #4
ldr r1, [r4, #3468]
mov r2, r3
- ldr r0, .L1039+20
+ ldr r0, .L1061+20
bl rknand_print_hex
- ldrh r3, [r4, #136]
+ ldrh r3, [r9]
mov r2, #4
ldr r1, [r4, #3380]
- ldr r0, .L1039+24
+ ldr r0, .L1061+24
bl rknand_print_hex
-.L1037:
- ldrh r3, [r8, #8]
+.L1059:
+ ldrh r3, [r7, #8]
cmp r3, r6
- beq .L1038
+ beq .L1060
mov r2, #508
- ldr r1, .L1039+4
- ldr r0, .L1039+8
+ ldr r1, .L1061+4
+ ldr r0, .L1061+8
bl sftl_printk
-.L1038:
- ldr r3, [r4, #2492]
+.L1060:
+ ldr r3, [r4, #2544]
mov r1, #0
add r2, r3, r5
str r1, [r2, #4]
strh r6, [r3, r5] @ movhi
- b .L1035
-.L1036:
+ b .L1057
+.L1058:
ldr r3, [r4, #3456]
cmp r3, #256
- bne .L1037
- mov r2, r7
+ bne .L1059
+ mov r2, r8
mov r1, r6
- ldr r0, .L1039+28
+ ldr r0, .L1061+28
bl sftl_printk
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
mov r1, r6
- ldr r0, .L1039+32
+ ldr r0, .L1061+32
add r3, r3, r5
ldr r2, [r3, #8]
bl FtlMapWritePage
- b .L1037
-.L1040:
+ b .L1059
+.L1062:
.align 2
-.L1039:
- .word .LANCHOR0
+.L1061:
+ .word .LANCHOR0+340
.word .LANCHOR1+379
- .word .LC1
- .word .LANCHOR0+3456
- .word .LC96
- .word .LC97
- .word .LC98
- .word .LC99
+ .word .LC8
+ .word .LANCHOR0
+ .word .LC106
+ .word .LC94
+ .word .LC107
+ .word .LC108
.word .LANCHOR0+3396
.size load_l2p_region, .-load_l2p_region
.align 2
@@ -7306,67 +7558,69 @@ ftl_map_blk_gc:
sub fp, ip, #4
sub sp, sp, #8
mov r4, r0
- ldr r6, [r0, #12]
+ ldr r5, [r0, #12]
ldr r9, [r0, #24]
bl ftl_free_no_use_map_blk
ldrh r3, [r4, #10]
ldrh r2, [r4, #8]
- ldr r5, .L1057
sub r3, r3, #5
cmp r2, r3
- blt .L1042
+ blt .L1064
uxth r0, r0
lsl r0, r0, #1
- ldrh r8, [r6, r0]
+ ldrh r8, [r5, r0]
cmp r8, #0
- beq .L1042
+ beq .L1064
ldr r3, [r4, #32]
cmp r3, #0
- bne .L1042
+ bne .L1064
mov r2, #1
str r2, [r4, #32]
- strh r3, [r6, r0] @ movhi
+ strh r3, [r5, r0] @ movhi
ldrh r3, [r4, #8]
ldrh r2, [r4, #2]
sub r3, r3, #1
strh r3, [r4, #8] @ movhi
- ldrh r3, [r5, #104]
+ ldr r3, .L1079
+ ldrh r3, [r3]
cmp r2, r3
- bcc .L1043
+ bcc .L1065
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1043:
+.L1065:
+ ldr r5, .L1079+4
mov r6, #0
-.L1044:
+.L1066:
ldrh r3, [r4, #6]
uxth r10, r6
cmp r3, r10
- bhi .L1051
+ bhi .L1073
mov r1, #1
mov r0, r8
bl FtlFreeSysBlkQueueIn
mov r3, #0
str r3, [r4, #32]
-.L1042:
+.L1064:
+ ldr r3, .L1079
ldrh r2, [r4, #2]
- ldrh r3, [r5, #104]
+ ldrh r3, [r3]
cmp r2, r3
- bcc .L1052
+ bcc .L1074
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1052:
+.L1074:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1051:
+.L1073:
uxth r7, r6
add r3, r9, r7, lsl #2
str r3, [fp, #-44]
ldr r3, [r9, r7, lsl #2]
cmp r8, r3, lsr #10
- bne .L1045
+ bne .L1067
ldr r3, [r5, #3308]
- ldr r0, .L1057+4
+ ldr r0, .L1079+8
str r3, [r5, #3464]
ldr r3, [r5, #3336]
str r3, [r5, #3468]
@@ -7379,44 +7633,45 @@ ftl_map_blk_gc:
ldr r3, [fp, #-48]
ldrh r2, [r3, #8]
cmp r2, r10
- beq .L1046
+ beq .L1068
movw r2, #611
- ldr r1, .L1057+8
- ldr r0, .L1057+12
+ ldr r1, .L1079+12
+ ldr r0, .L1079+16
bl sftl_printk
ldr r3, [fp, #-48]
-.L1046:
+.L1068:
ldr r2, [r5, #3456]
cmn r2, #1
- bne .L1047
-.L1049:
+ bne .L1069
+.L1071:
ldr r2, [fp, #-44]
mov r3, #0
str r3, [r2]
-.L1048:
- b .L1048
-.L1047:
+.L1070:
+ b .L1070
+.L1069:
ldrh r2, [r3, #8]
cmp r2, r10
- bne .L1049
+ bne .L1071
ldrh r2, [r3]
ldrh r3, [r4, #4]
cmp r2, r3
- bne .L1049
+ bne .L1071
ldr r2, [r5, #3464]
mov r1, r7
mov r0, r4
bl FtlMapWritePage
-.L1045:
+.L1067:
add r6, r6, #1
- b .L1044
-.L1058:
+ b .L1066
+.L1080:
.align 2
-.L1057:
+.L1079:
+ .word .LANCHOR0+308
.word .LANCHOR0
.word .LANCHOR0+3456
.word .LANCHOR1+395
- .word .LC1
+ .word .LC8
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 2
.global flush_l2p_region
@@ -7430,27 +7685,27 @@ flush_l2p_region:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r5, .L1060
+ ldr r5, .L1082
uxth r0, r0
mov r4, #12
mul r4, r4, r0
- ldr r3, [r5, #2492]
+ ldr r3, [r5, #2544]
add r0, r5, #3392
add r0, r0, #4
add r2, r3, r4
ldrh r1, [r3, r4]
ldr r2, [r2, #8]
bl FtlMapWritePage
- ldr r0, [r5, #2492]
+ ldr r0, [r5, #2544]
add r4, r0, r4
mov r0, #0
ldr r3, [r4, #4]
bic r3, r3, #-2147483648
str r3, [r4, #4]
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1061:
+.L1083:
.align 2
-.L1060:
+.L1082:
.word .LANCHOR0
.size flush_l2p_region, .-flush_l2p_region
.align 2
@@ -7467,80 +7722,82 @@ log2phys:
sub fp, ip, #4
sub sp, sp, #8
mov r6, r0
- ldr r4, .L1075
+ ldr r4, .L1097
mov r7, r1
mov r10, r2
- ldr r3, [r4, #2504]
- ldrh r5, [r4, #108]
+ add r3, r4, #312
+ ldrh r5, [r3]
+ ldr r3, [r4, #2556]
cmp r0, r3
- bcc .L1063
+ bcc .L1085
movw r2, #813
- ldr r1, .L1075+4
- ldr r0, .L1075+8
+ ldr r1, .L1097+4
+ ldr r0, .L1097+8
bl sftl_printk
-.L1063:
- ldr r3, [r4, #2504]
+.L1085:
+ ldr r3, [r4, #2556]
cmp r6, r3
- bcs .L1064
+ bcs .L1086
add r5, r5, #7
- ldrh r0, [r4, #138]
+ ldr ip, [r4, #2544]
lsr r3, r6, r5
- ldr ip, [r4, #2492]
mov r1, #0
- str r3, [fp, #-44]
mov r2, #12
+ str r3, [fp, #-44]
+ movw r3, #342
ldrh r9, [fp, #-44]
-.L1065:
+ ldrh r0, [r4, r3]
+.L1087:
uxth r8, r1
cmp r8, r0
- bcc .L1070
+ bcc .L1092
str r2, [fp, #-48]
bl select_l2p_ram_region
ldr r2, [fp, #-48]
mov r8, r0
- ldr r1, [r4, #2492]
+ ldr r1, [r4, #2544]
mul r2, r2, r0
add ip, r1, r2
ldrh r1, [r1, r2]
movw r2, #65535
cmp r1, r2
- beq .L1071
+ beq .L1093
ldr r2, [ip, #4]
cmp r2, #0
- bge .L1071
+ bge .L1093
bl flush_l2p_region
-.L1071:
+.L1093:
mov r1, r8
ldrh r0, [fp, #-44]
bl load_l2p_region
- b .L1067
-.L1064:
+ b .L1089
+.L1086:
cmp r10, #0
mvn r0, #0
streq r0, [r7]
-.L1062:
+.L1084:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1070:
+.L1092:
add r1, r1, #1
mla lr, r2, r1, ip
ldrh lr, [lr, #-12]
cmp lr, r9
- bne .L1065
-.L1067:
+ bne .L1087
+.L1089:
mvn r2, #0
cmp r10, #0
bic r5, r6, r2, lsl r5
mov r2, #12
uxth r5, r5
- bne .L1068
- ldr r1, [r4, #2492]
+ bne .L1090
+ ldr r1, [r4, #2544]
mla r2, r2, r8, r1
ldr r2, [r2, #8]
ldr r2, [r2, r5, lsl #2]
str r2, [r7]
-.L1069:
- ldr r1, [r4, #2492]
+.L1091:
+ ldr r1, [r4, #2544]
mov r2, #12
mov r0, #0
mla r3, r2, r8, r1
@@ -7548,29 +7805,28 @@ log2phys:
cmn r2, #1
addne r2, r2, #1
strne r2, [r3, #4]
- b .L1062
-.L1068:
+ b .L1084
+.L1090:
mul r2, r2, r8
- ldr r1, [r4, #2492]
+ ldr r1, [r4, #2544]
ldr r0, [r7]
add r1, r1, r2
ldr r1, [r1, #8]
str r0, [r1, r5, lsl #2]
- ldr r1, [r4, #2492]
+ ldr r1, [r4, #2544]
add r2, r1, r2
ldr r1, [r2, #4]
orr r1, r1, #-2147483648
str r1, [r2, #4]
- ldr r2, .L1075+12
- strh r9, [r2] @ movhi
- b .L1069
-.L1076:
+ movw r2, #2548
+ strh r9, [r4, r2] @ movhi
+ b .L1091
+.L1098:
.align 2
-.L1075:
+.L1097:
.word .LANCHOR0
.word .LANCHOR1+410
- .word .LC1
- .word .LANCHOR0+2496
+ .word .LC8
.size log2phys, .-log2phys
.align 2
.global FtlWriteDump_data
@@ -7579,108 +7835,107 @@ log2phys:
.fpu softvfp
.type FtlWriteDump_data, %function
FtlWriteDump_data:
- @ args = 0, pretend = 0, frame = 28
+ @ args = 0, pretend = 0, frame = 24
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #28
- ldr r6, .L1095
- ldr r4, .L1095+4
- ldrh r2, [r6, #4]
+ sub sp, sp, #24
+ ldr r4, .L1117
+ ldrh r2, [r4, #32]
cmp r2, #0
- beq .L1078
- ldrb r3, [r4, #2356] @ zero_extendqisi2
+ beq .L1100
+ ldrb r3, [r4, #36] @ zero_extendqisi2
cmp r3, #0
- bne .L1078
- ldrb r1, [r4, #2355] @ zero_extendqisi2
- ldrh r3, [r4, #102]
+ bne .L1100
+ movw r3, #306
+ ldrb r1, [r4, #35] @ zero_extendqisi2
+ ldrh r3, [r4, r3]
mul r3, r3, r1
cmp r2, r3
- beq .L1078
- ldrb r8, [r4, #2358] @ zero_extendqisi2
- cmp r8, #0
- bne .L1077
- ldr r7, [r4, #2504]
- mov r2, r8
+ beq .L1100
+ ldrb r7, [r4, #38] @ zero_extendqisi2
+ cmp r7, #0
+ bne .L1099
+ ldr r6, [r4, #2556]
+ mov r2, r7
sub r1, fp, #64
- ldrh r9, [r4, #32]
- sub r7, r7, #1
- mov r0, r7
+ ldrh r8, [r4, #236]
+ sub r6, r6, #1
+ mov r0, r6
bl log2phys
ldr r3, [fp, #-64]
ldr r5, [r4, #3336]
ldr r0, [r4, #3304]
cmn r3, #1
str r3, [fp, #-56]
- str r7, [fp, #-44]
+ str r6, [fp, #-44]
str r0, [fp, #-52]
str r5, [fp, #-48]
- str r8, [r5, #4]
- beq .L1080
- mov r2, r8
+ str r7, [r5, #4]
+ beq .L1102
+ mov r2, r7
mov r1, #1
sub r0, fp, #60
bl FlashReadPages
-.L1081:
- ldr ip, .L1095
- mov r8, #0
- ldr r3, .L1095+8
- lsl r9, r9, #2
- mov r10, r8
+.L1103:
+ ldr r10, .L1117+4
+ mov r7, #0
+ ldr r3, .L1117+8
+ lsl r8, r8, #2
+ mov r9, r7
strh r3, [r5] @ movhi
-.L1082:
- cmp r9, r8
- bne .L1086
-.L1083:
+.L1104:
+ cmp r8, r7
+ bne .L1108
+.L1105:
mov r3, #1
-.L1094:
- strb r3, [r4, #2358]
-.L1077:
+.L1116:
+ strb r3, [r4, #38]
+.L1099:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1080:
- ldrh r2, [r4, #110]
+.L1102:
+ movw r3, #314
mov r1, #255
+ ldrh r2, [r4, r3]
bl ftl_memset
- b .L1081
-.L1086:
- ldrh r3, [r6, #4]
+ b .L1103
+.L1108:
+ ldrh r3, [r4, #32]
cmp r3, #0
- beq .L1083
+ beq .L1105
ldr r3, [fp, #-56]
- mov r0, ip
- str r7, [r5, #8]
- add r8, r8, #1
- str ip, [fp, #-68]
+ mov r0, r10
+ str r6, [r5, #8]
+ add r7, r7, #1
str r3, [r5, #12]
- ldrh r3, [r6]
+ ldrh r3, [r4, #28]
strh r3, [r5, #2] @ movhi
bl get_new_active_ppa
- ldr r3, [r4, #2544]
+ ldr r3, [r4, #2596]
mov r1, #1
str r0, [fp, #-56]
sub r0, fp, #60
str r3, [r5, #4]
add r3, r3, #1
cmn r3, #1
- moveq r3, r10
- str r3, [r4, #2544]
+ moveq r3, r9
+ str r3, [r4, #2596]
mov r3, #0
mov r2, r3
bl FlashProgPages
- ldrh r0, [r6]
+ ldrh r0, [r4, #28]
bl decrement_vpc_count
- ldr ip, [fp, #-68]
- b .L1082
-.L1078:
+ b .L1104
+.L1100:
mov r3, #0
- b .L1094
-.L1096:
+ b .L1116
+.L1118:
.align 2
-.L1095:
- .word .LANCHOR0+2348
+.L1117:
.word .LANCHOR0
+ .word .LANCHOR0+28
.word -3947
.size FtlWriteDump_data, .-FtlWriteDump_data
.align 2
@@ -7697,73 +7952,70 @@ FtlReUsePrevPpa:
sub fp, ip, #4
sub sp, sp, #4
mov r6, r0
- ldr r7, .L1107
+ ldr r7, .L1129
ubfx r0, r1, #10, #16
str r1, [fp, #-32]
bl P2V_block_in_plane
- ldr r2, [r7, #2324]
+ ldr r2, [r7, #76]
lsl r5, r0, #1
ldrh r3, [r2, r5]
cmp r3, #0
- bne .L1098
- ldr r4, [r7, #2340]
+ bne .L1120
+ ldr r4, [r7, #2536]
cmp r4, #0
- beq .L1099
- movw r2, #2344
+ beq .L1121
+ ldr r2, [r7, #2520]
movw lr, #65535
- ldrh ip, [r7, r2]
- ldr r2, [r7, #2316]
+ ldrh ip, [r7, #228]
sub r4, r4, r2
ubfx r4, r4, #3, #16
-.L1100:
+.L1122:
uxth r1, r3
cmp ip, r1
- bls .L1099
+ bls .L1121
cmp r4, r0
- bne .L1101
+ bne .L1123
mov r1, r4
- ldr r0, .L1107+4
+ ldr r0, .L1129+4
bl List_remove_node
- movw r3, #2344
- ldrh r3, [r7, r3]
+ ldrh r3, [r7, #228]
cmp r3, #0
- bne .L1102
+ bne .L1124
movw r2, #1733
- ldr r1, .L1107+8
- ldr r0, .L1107+12
+ ldr r1, .L1129+8
+ ldr r0, .L1129+12
bl sftl_printk
-.L1102:
- movw r2, #2344
+.L1124:
+ ldrh r3, [r7, #228]
mov r0, r4
- ldrh r3, [r7, r2]
sub r3, r3, #1
- strh r3, [r7, r2] @ movhi
+ strh r3, [r7, #228] @ movhi
bl INSERT_DATA_LIST
- ldr r2, [r7, #2324]
+ ldr r2, [r7, #76]
ldrh r3, [r2, r5]
-.L1098:
+.L1120:
add r3, r3, #1
strh r3, [r2, r5] @ movhi
- b .L1099
-.L1101:
+ b .L1121
+.L1123:
lsl r4, r4, #3
add r3, r3, #1
ldrh r4, [r2, r4]
cmp r4, lr
- bne .L1100
-.L1099:
+ bne .L1122
+.L1121:
mov r2, #1
sub r1, fp, #32
mov r0, r6
bl log2phys
ldmib sp, {r4, r5, r6, r7, fp, sp, pc}
-.L1108:
+.L1130:
.align 2
-.L1107:
+.L1129:
.word .LANCHOR0
- .word .LANCHOR0+2340
+ .word .LANCHOR0+2536
.word .LANCHOR1+419
- .word .LC1
+ .word .LC8
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
.align 2
.global FtlRecoverySuperblock
@@ -7772,76 +8024,79 @@ FtlReUsePrevPpa:
.fpu softvfp
.type FtlRecoverySuperblock, %function
FtlRecoverySuperblock:
- @ args = 0, pretend = 0, frame = 44
+ @ args = 0, pretend = 0, frame = 48
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #44
+ sub sp, sp, #48
movw r2, #65535
ldrh r3, [r0]
mov r10, r0
cmp r3, r2
- beq .L1229
+ beq .L1255
ldrh r3, [r0, #2]
- ldr r5, .L1238
+ ldr r5, .L1263
str r3, [fp, #-64]
ldrb r3, [r0, #6] @ zero_extendqisi2
ldr r1, [fp, #-64]
- str r3, [fp, #-80]
- ldrh r3, [r5, #102]
+ str r3, [fp, #-84]
+ movw r3, #306
+ ldrh r3, [r5, r3]
cmp r3, r1
mov r3, #0
strheq r3, [r0, #4] @ movhi
ldrhne r0, [r0, #16]
- bne .L1113
-.L1236:
+ bne .L1135
+.L1261:
strb r3, [r10, #6]
-.L1229:
+.L1255:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1114:
+.L1136:
uxth r1, r3
add r1, r10, r1, lsl #1
ldrh r0, [r1, #16]
-.L1113:
+.L1135:
cmp r0, r2
uxth r6, r3
add r3, r3, #1
- beq .L1114
+ beq .L1136
mov r1, #1
bl FtlGetLastWrittenPage
cmn r0, #1
mov r4, r0
- beq .L1115
- ldrh r3, [r5, #32]
+ beq .L1137
+ ldrh r3, [r5, #236]
mov r2, #0
ldr r0, [r5, #3292]
movw r7, #65535
- ldr lr, [r5, #3180]
+ ldr lr, [r5, #3184]
mov r8, #20
str r3, [fp, #-56]
- ldr r3, [r5, #3176]
- ldrh r6, [r5, #112]
+ ldr r3, [r5, #3180]
str r3, [fp, #-60]
- ldrh r3, [r5, #110]
+ movw r3, #314
+ ldrh r3, [r5, r3]
mov r5, r2
str r3, [fp, #-68]
+ ldr r3, .L1263+4
+ ldrh r6, [r3]
add r3, r10, #16
mov ip, r3
- str r3, [fp, #-76]
-.L1116:
+ str r3, [fp, #-80]
+.L1138:
ldr r1, [fp, #-56]
uxth r3, r2
cmp r1, r3
- bhi .L1120
- ldr r6, .L1238
+ bhi .L1142
+ ldr r6, .L1263
mov r2, #0
mov r1, r5
movw r8, #65535
bl FlashReadPages
- ldr r3, [r6, #2544]
+ ldr r3, [r6, #2596]
uxth r2, r4
ldr r9, [r6, #3292]
str r2, [fp, #-60]
@@ -7849,23 +8104,24 @@ FtlRecoverySuperblock:
str r3, [fp, #-56]
mov r7, r9
mov r3, #0
-.L1121:
+.L1143:
uxth r2, r3
cmp r5, r2
- bhi .L1126
+ bhi .L1148
addeq r3, r4, #1
uxtheq r3, r3
streq r3, [fp, #-60]
- bne .L1124
-.L1230:
+ bne .L1146
+.L1256:
ldr r0, [r9, #4]
ubfx r0, r0, #10, #16
bl P2V_plane
- ldrh r3, [r6, #102]
- sub r1, fp, #68
+ movw r3, #306
ldr r2, [fp, #-60]
+ ldrh r3, [r6, r3]
+ sub r1, fp, #68
str r0, [fp, #-68]
- ldr r0, [fp, #-80]
+ ldr r0, [fp, #-84]
cmp r3, r2
ldrheq r3, [fp, #-60]
strheq r3, [r10, #2] @ movhi
@@ -7877,14 +8133,14 @@ FtlRecoverySuperblock:
cmpeq r1, r0
moveq r2, r1
moveq r1, r3
- beq .L1237
+ beq .L1262
movw r3, #65535
cmp r8, r3
- bne .L1130
+ bne .L1152
ldrb r3, [r10, #8] @ zero_extendqisi2
cmp r3, #0
- bne .L1131
-.L1130:
+ bne .L1153
+.L1152:
ldr r3, [r6, #3452]
uxth r7, r4
uxth r4, r4
@@ -7892,48 +8148,48 @@ FtlRecoverySuperblock:
ldreq r3, [fp, #-56]
streq r3, [r6, #3452]
ldr r3, [fp, #-64]
- ldr r6, .L1238
+ ldr r6, .L1263
add r3, r3, #7
cmp r4, r3
subgt r4, r7, #7
ldrle r4, [fp, #-64]
uxthgt r4, r4
-.L1134:
+.L1156:
cmp r4, r7
- bhi .L1141
+ bhi .L1163
mov r3, #0
- ldrh r8, [r6, #32]
+ ldrh r8, [r6, #236]
ldr r0, [r6, #3292]
mov r5, r3
- ldr r1, [fp, #-76]
+ ldr r1, [fp, #-80]
movw lr, #65535
mov ip, #20
- b .L1142
-.L1115:
+ b .L1164
+.L1137:
ldr r3, [fp, #-64]
cmp r3, #0
- beq .L1117
+ beq .L1139
movw r2, #1800
- ldr r1, .L1238+4
- ldr r0, .L1238+8
+ ldr r1, .L1263+8
+ ldr r0, .L1263+12
bl sftl_printk
-.L1117:
- ldr r3, [fp, #-80]
+.L1139:
+ ldr r3, [fp, #-84]
cmp r3, #0
cmpne r6, r3
- beq .L1118
+ beq .L1140
movw r2, #1801
- ldr r1, .L1238+4
- ldr r0, .L1238+8
+ ldr r1, .L1263+8
+ ldr r0, .L1263+12
bl sftl_printk
-.L1118:
+.L1140:
mov r3, #0
strh r3, [r10, #2] @ movhi
- b .L1236
-.L1120:
+ b .L1261
+.L1142:
ldrh r3, [ip], #2
cmp r3, r7
- beq .L1119
+ beq .L1141
mla r1, r8, r5, r0
orr r3, r4, r3, lsl #10
str r3, [r1, #4]
@@ -7955,45 +8211,45 @@ FtlRecoverySuperblock:
bic r3, r3, #3
add r3, lr, r3
str r3, [r1, #12]
-.L1119:
+.L1141:
add r2, r2, #1
- b .L1116
-.L1126:
+ b .L1138
+.L1148:
ldr r2, [r7]
cmp r2, #0
- bne .L1122
+ bne .L1144
ldr ip, [r7, #12]
ldr r2, [ip, #4]
cmn r2, #1
- beq .L1123
- ldr r1, .L1238
+ beq .L1145
+ ldr r1, .L1263
mov r0, r2
str ip, [fp, #-68]
- ldr r1, [r1, #2544]
+ ldr r1, [r1, #2596]
bl ftl_cmp_data_ver
ldr ip, [fp, #-68]
cmp r0, #0
- ldrne r1, .L1238
+ ldrne r1, .L1263
addne r2, r2, #1
- strne r2, [r1, #2544]
-.L1123:
+ strne r2, [r1, #2596]
+.L1145:
ldr r2, [ip]
cmn r2, #1
- bne .L1125
-.L1124:
+ bne .L1147
+.L1146:
uxth r2, r4
uxth r3, r3
str r2, [fp, #-60]
mov r2, #20
mla r9, r2, r3, r9
- b .L1230
-.L1122:
+ b .L1256
+.L1144:
ldr r8, [fp, #-60]
-.L1125:
+.L1147:
add r3, r3, #1
add r7, r7, #20
- b .L1121
-.L1136:
+ b .L1143
+.L1158:
ldrh r2, [r1], #2
add r3, r3, #1
cmp r2, lr
@@ -8002,10 +8258,10 @@ FtlRecoverySuperblock:
orrne r2, r4, r2, lsl #10
uxthne r5, r5
strne r2, [r9, #4]
-.L1142:
+.L1164:
uxth r2, r3
cmp r8, r2
- bhi .L1136
+ bhi .L1158
mov r1, r5
mov r2, #0
bl FlashReadPages
@@ -8013,341 +8269,334 @@ FtlRecoverySuperblock:
mov r2, #20
movw r1, #65535
mla r5, r2, r5, r3
-.L1137:
+.L1159:
cmp r5, r3
addeq r4, r4, #1
uxtheq r4, r4
- beq .L1134
-.L1140:
+ beq .L1156
+.L1162:
ldr r2, [r3]
cmp r2, #0
- bne .L1131
+ bne .L1153
ldr r2, [r3, #12]
ldrh r0, [r2]
cmp r0, r1
- beq .L1139
+ beq .L1161
ldr r2, [r2, #4]
cmn r2, #1
strne r2, [r6, #3452]
-.L1139:
+.L1161:
add r3, r3, #20
- b .L1137
-.L1141:
+ b .L1159
+.L1163:
mvn r3, #0
str r3, [r6, #3452]
-.L1131:
- ldr r1, .L1238
+.L1153:
+ ldr r7, .L1263
mov r2, #1
- ldr r8, [fp, #-64]
+ ldr r9, [fp, #-64]
movw r3, #3476
- mov r4, r1
- strh r2, [r1, r3] @ movhi
-.L1143:
- ldrh ip, [r4, #32]
- mov r3, #0
- ldr r0, [r4, #3292]
- mov r9, r3
- ldr r1, [fp, #-76]
+ mov r4, r7
+ strh r2, [r7, r3] @ movhi
+.L1165:
+ ldrh ip, [r4, #236]
movw lr, #65535
+ ldr r0, [r4, #3292]
mov r5, #20
-.L1144:
+ ldr r1, [fp, #-80]
+ mov r3, #0
+ str r3, [fp, #-72]
+.L1166:
uxth r2, r3
cmp ip, r2
- bhi .L1146
+ bhi .L1168
mov r2, #0
- mov r1, r9
+ ldr r1, [fp, #-72]
bl FlashReadPages
mov r3, #0
-.L1235:
- str r3, [fp, #-72]
- ldrh r3, [fp, #-72]
- cmp r9, r3
- bhi .L1176
- add r8, r8, #1
- ldrh r3, [r4, #102]
- uxth r8, r8
- cmp r3, r8
- bne .L1143
- ldrh r2, [r4, #32]
+.L1260:
+ str r3, [fp, #-76]
+ ldr r2, [fp, #-72]
+ ldrh r3, [fp, #-76]
+ cmp r2, r3
+ bhi .L1196
+ ldr r3, .L1263+16
+ add r9, r9, #1
+ uxth r9, r9
+ ldrh r3, [r3]
+ cmp r3, r9
+ bne .L1165
+ ldrh r2, [r4, #236]
movw r0, #65535
mov r3, #0
- strh r8, [r10, #2] @ movhi
+ strh r9, [r10, #2] @ movhi
strh r3, [r10, #4] @ movhi
-.L1177:
+.L1197:
uxth r1, r3
cmp r1, r2
- bcs .L1229
- ldr r1, [fp, #-76]
+ bcs .L1255
+ ldr r1, [fp, #-80]
ldrh ip, [r1], #2
cmp ip, r0
- str r1, [fp, #-76]
+ str r1, [fp, #-80]
add r1, r3, #1
- bne .L1236
+ bne .L1261
mov r3, r1
- b .L1177
-.L1146:
+ b .L1197
+.L1168:
ldrh r2, [r1], #2
- add r3, r3, #1
cmp r2, lr
- mlane r6, r5, r9, r0
- orrne r2, r8, r2, lsl #10
- addne r9, r9, #1
- uxthne r9, r9
- strne r2, [r6, #4]
- b .L1144
-.L1176:
- ldr r3, [fp, #-72]
+ beq .L1167
+ ldr r6, [fp, #-72]
+ orr r2, r9, r2, lsl #10
+ mla r6, r5, r6, r0
+ str r2, [r6, #4]
+ ldr r2, [fp, #-72]
+ add r2, r2, #1
+ uxth r2, r2
+ str r2, [fp, #-72]
+.L1167:
+ add r3, r3, #1
+ b .L1166
+.L1196:
+ ldr r3, [fp, #-76]
mov r6, #20
ldr r2, [r4, #3292]
mul r6, r6, r3
- str r2, [fp, #-84]
- add r7, r2, r6
- ldr r5, [r7, #4]
+ str r2, [fp, #-88]
+ add r8, r2, r6
+ ldr r5, [r8, #4]
ubfx r0, r5, #10, #16
str r5, [fp, #-44]
bl P2V_plane
ldr r3, [fp, #-64]
- cmp r8, r3
- bcc .L1148
- ldr r2, [fp, #-80]
+ cmp r9, r3
+ bcc .L1170
+ ldr r2, [fp, #-84]
moveq r3, #1
movne r3, #0
cmp r2, r0
movls r3, #0
andhi r3, r3, #1
cmp r3, #0
- bne .L1148
+ bne .L1170
ldr r3, [fp, #-60]
ldr r2, [fp, #-68]
- cmp r8, r3
+ cmp r9, r3
cmpeq r2, r0
- beq .L1149
- ldr r2, [fp, #-84]
+ beq .L1171
+ ldr r2, [fp, #-88]
ldr r3, [r2, r6]
cmn r3, #1
- beq .L1150
- ldr r7, [r7, #12]
+ beq .L1172
+ ldr r8, [r8, #12]
movw r3, #61589
- ldrh r2, [r7]
+ ldrh r2, [r8]
cmp r2, r3
ldrhne r0, [r10]
- bne .L1233
- ldr r3, [r7, #4]
+ bne .L1257
+ ldr r3, [r8, #4]
cmn r3, #1
str r3, [fp, #-56]
- beq .L1152
+ beq .L1174
mov r0, r3
- ldr r1, [r4, #2544]
+ ldr r1, [r4, #2596]
bl ftl_cmp_data_ver
cmp r0, #0
ldrne r3, [fp, #-56]
addne r3, r3, #1
- strne r3, [r4, #2544]
-.L1152:
- ldrh r2, [r7]
+ strne r3, [r4, #2596]
+.L1174:
+ ldrh r2, [r8]
movw r3, #61589
cmp r2, r3
- beq .L1153
+ beq .L1175
mov r2, #1952
- ldr r1, .L1238+4
- ldr r0, .L1238+8
+ ldr r1, .L1263+8
+ ldr r0, .L1263+12
bl sftl_printk
-.L1153:
- ldr r5, [r7, #8]
+.L1175:
+ ldr r5, [r8, #8]
sub r1, fp, #48
- ldr r3, [r7, #12]
+ ldr r3, [r8, #12]
mov r2, #0
mov r0, r5
str r3, [fp, #-52]
bl log2phys
ldr r1, [r4, #3452]
cmn r1, #1
- beq .L1154
+ beq .L1176
ldr r0, [fp, #-56]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1154
+ beq .L1176
ldr r2, [fp, #-52]
cmn r2, #1
- beq .L1155
+ beq .L1177
ldr r0, [r4, #3292]
mov r1, #1
add r0, r0, r6
str r2, [r0, #4]
mov r2, #0
- ldr r7, [r0, #12]
+ ldr r8, [r0, #12]
bl FlashReadPages
ldr r2, [r4, #3292]
ldr r1, [r2, r6]
add r3, r2, r6
cmn r1, #1
- bne .L1156
-.L1157:
+ bne .L1178
+.L1179:
mvn r3, #0
str r3, [fp, #-52]
-.L1164:
+.L1186:
ldr r6, [fp, #-52]
cmn r6, #1
- beq .L1148
-.L1180:
+ beq .L1170
+.L1200:
ubfx r0, r6, #10, #16
bl P2V_block_in_plane
- ldrh r3, [r4, #40]
+ ldrh r3, [r4, #244]
mov r5, r0
cmp r3, r0
- bhi .L1172
- movw r2, #2065
- ldr r1, .L1238+4
- ldr r0, .L1238+8
+ bhi .L1192
+ movw r2, #2057
+ ldr r1, .L1263+8
+ ldr r0, .L1263+12
bl sftl_printk
-.L1172:
- ldr r3, .L1238
- ldr r2, [r3, #2324]
+.L1192:
+ ldr r2, [r7, #76]
lsl r3, r5, #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1173
+ beq .L1193
mov r0, r5
-.L1233:
+.L1257:
bl decrement_vpc_count
- b .L1148
-.L1155:
+ b .L1170
+.L1177:
ldr r3, [fp, #-44]
ldr r2, [fp, #-48]
cmp r2, r3
- bne .L1148
+ bne .L1170
mov r2, #1
sub r1, fp, #52
mov r0, r5
bl log2phys
-.L1148:
- ldr r3, [fp, #-72]
+.L1170:
+ ldr r3, [fp, #-76]
add r3, r3, #1
- b .L1235
-.L1156:
- ldr r1, [r7, #8]
+ b .L1260
+.L1178:
+ ldr r1, [r8, #8]
cmp r5, r1
- bne .L1157
- ldr r1, [r7, #4]
+ bne .L1179
+ ldr r1, [r8, #4]
ldr r0, [r4, #3452]
- str r1, [fp, #-84]
+ str r1, [fp, #-88]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1157
+ beq .L1179
ldr r1, [fp, #-48]
ldr r0, [fp, #-44]
cmp r1, r0
- bne .L1159
-.L1162:
+ bne .L1181
+.L1184:
ldr r1, [fp, #-52]
mov r0, r5
bl FtlReUsePrevPpa
- b .L1157
-.L1159:
+ b .L1179
+.L1181:
ldr r0, [fp, #-52]
cmp r1, r0
- beq .L1157
+ beq .L1179
cmn r1, #1
streq r1, [r2, r6]
- beq .L1161
+ beq .L1183
str r1, [r3, #4]
mov r2, #0
mov r1, #1
mov r0, r3
- ldr r7, [r3, #12]
+ ldr r8, [r3, #12]
bl FlashReadPages
-.L1161:
+.L1183:
ldr r2, [r4, #3292]
ldr r2, [r2, r6]
cmn r2, #1
- beq .L1162
- ldr r3, [r7, #4]
+ beq .L1184
+ ldr r3, [r8, #4]
ldr r0, [r4, #3452]
mov r1, r3
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1162
+ beq .L1184
mov r1, r3
- ldr r0, [fp, #-84]
+ ldr r0, [fp, #-88]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1157
- b .L1162
-.L1154:
+ beq .L1179
+ b .L1184
+.L1176:
ldr r3, [fp, #-44]
ldr r2, [fp, #-48]
cmp r2, r3
- beq .L1164
- ldr r3, [fp, #-52]
- ldr r2, [r4, #48]
- cmp r2, r3, lsr #10
- bhi .L1166
- cmn r3, #1
-.L1232:
- bne .L1148
+ beq .L1186
+ ldr r1, [fp, #-52]
+ cmn r1, #1
+ beq .L1188
+ ldr r3, [r4, #252]
+ cmp r3, r1, lsr #10
+ ldrls r0, .L1263+20
+ bls .L1259
+.L1188:
mov r2, #1
sub r1, fp, #44
mov r0, r5
bl log2phys
ldr r6, [fp, #-48]
cmn r6, #1
- beq .L1164
+ beq .L1186
ldr r3, [fp, #-52]
cmp r6, r3
- beq .L1180
+ beq .L1200
ubfx r0, r6, #10, #16
bl P2V_block_in_plane
- ldr r3, .L1238+12
- ldrh r2, [r3]
- cmp r2, r0
- beq .L1171
- ldrh r2, [r3, #48]
- cmp r2, r0
- beq .L1171
- ldrh r3, [r3, #96]
+ ldrh r3, [r4, #28]
cmp r3, r0
- bne .L1164
-.L1171:
- ldr r0, [r4, #3292]
+ beq .L1191
+ ldrh r3, [r4, #80]
+ cmp r3, r0
+ beq .L1191
+ ldrh r3, [r4, #128]
+ cmp r3, r0
+ bne .L1186
+.L1191:
+ ldr r0, [r7, #3292]
mov r2, #0
mov r1, #1
str r6, [r0, #4]
- ldr r7, [r0, #12]
+ ldr r8, [r0, #12]
bl FlashReadPages
- ldr r3, [r4, #3292]
+ ldr r3, [r7, #3292]
ldr r3, [r3]
cmn r3, #1
- beq .L1164
- ldr r1, [r7, #4]
+ beq .L1186
+ ldr r1, [r8, #4]
ldr r0, [fp, #-56]
bl ftl_cmp_data_ver
cmp r0, #0
- bne .L1164
+ bne .L1186
mov r2, #1
sub r1, fp, #48
mov r0, r5
bl log2phys
- b .L1164
-.L1166:
- ldr r0, [r4, #3292]
- mov r2, #0
- mov r1, #1
- ldr r6, [r0, #12]
- str r3, [r0, #4]
- bl FlashReadPages
- ldr r3, [r6, #8]
- cmp r5, r3
- bne .L1148
- ldrh r2, [r6]
- movw r3, #61589
- cmp r2, r3
- b .L1232
-.L1173:
+ b .L1186
+.L1193:
+ ldr r0, .L1263+24
mov r1, r5
- ldr r0, .L1238+16
+.L1259:
bl sftl_printk
- b .L1148
-.L1150:
+ b .L1170
+.L1172:
ldr r3, [r4, #3480]
cmp r3, #31
addls r2, r4, r3, lsl #2
@@ -8359,33 +8608,35 @@ FtlRecoverySuperblock:
ldr r3, [r4, #3452]
cmn r3, #1
ldreq r3, [fp, #-56]
- beq .L1234
+ beq .L1258
ldr r2, [fp, #-56]
cmp r2, r3
- bcs .L1148
+ bcs .L1170
mov r3, r2
-.L1234:
+.L1258:
str r3, [r4, #3452]
- b .L1148
-.L1149:
+ b .L1170
+.L1171:
ldrb r3, [fp, #-68] @ zero_extendqisi2
ldr r2, [fp, #-68]
ldr r1, [fp, #-60]
strb r3, [r10, #6]
ldrh r3, [fp, #-60]
strh r3, [r10, #2] @ movhi
-.L1237:
+.L1262:
mov r0, r10
bl ftl_sb_update_avl_pages
- b .L1229
-.L1239:
+ b .L1255
+.L1264:
.align 2
-.L1238:
+.L1263:
.word .LANCHOR0
+ .word .LANCHOR0+316
.word .LANCHOR1+435
- .word .LC1
- .word .LANCHOR0+2348
- .word .LC100
+ .word .LC8
+ .word .LANCHOR0+306
+ .word .LC109
+ .word .LC110
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 2
.global ftl_check_vpc
@@ -8401,117 +8652,116 @@ ftl_check_vpc:
sub fp, ip, #4
sub sp, sp, #4
mov r4, #0
- ldr r6, .L1264
- ldr r1, .L1264+4
- ldr r0, .L1264+8
+ ldr r6, .L1289
+ ldr r1, .L1289+4
+ ldr r0, .L1289+8
mov r5, r6
bl sftl_printk
mov r1, #8192
- ldr r0, .L1264+12
+ ldr r0, .L1289+12
bl __memzero
-.L1241:
- ldr r3, [r6, #2504]
+.L1266:
+ ldr r3, [r6, #2556]
cmp r4, r3
- bcc .L1243
- ldr r8, .L1264+12
+ bcc .L1268
+ ldr r8, .L1289+12
mov r4, #0
- ldr r9, .L1264+16
+ ldr r9, .L1289+16
mov r6, r4
-.L1244:
- ldrh r2, [r5, #40]
+.L1269:
+ ldrh r2, [r5, #244]
uxth r3, r4
cmp r2, r3
- bhi .L1246
- ldr r4, [r5, #2340]
+ bhi .L1271
+ ldr r4, [r5, #2536]
cmp r4, #0
- beq .L1247
- movw r3, #2344
- ldr r9, .L1264+12
- ldrh r8, [r5, r3]
+ beq .L1272
+ ldr r3, [r5, #2520]
mov r7, #0
- ldr r3, [r5, #2316]
- ldr r10, .L1264+20
+ ldrh r8, [r5, #228]
+ ldr r9, .L1289+12
+ ldr r10, .L1289+20
sub r4, r4, r3
ubfx r4, r4, #3, #16
-.L1248:
+.L1273:
uxth r3, r7
cmp r8, r3
- bls .L1247
- ldr r2, [r5, #2324]
+ bls .L1272
+ ldr r2, [r5, #76]
lsl r3, r4, #1
ldrh r2, [r2, r3]
cmp r2, #0
- beq .L1249
+ beq .L1274
mov r6, #1
ldrh r3, [r9, r3]
mov r1, r4
mov r0, r10
bl sftl_printk
-.L1249:
- ldr r3, [r5, #2316]
+.L1274:
+ ldr r3, [r5, #2520]
lsl r4, r4, #3
add r7, r7, #1
ldrh r4, [r3, r4]
movw r3, #65535
cmp r4, r3
- bne .L1248
-.L1247:
+ bne .L1273
+.L1272:
cmp r6, #0
ldmibeq sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
- movw r2, #2389
- ldr r1, .L1264+4
- ldr r0, .L1264+24
+ movw r2, #2383
+ ldr r1, .L1289+4
+ ldr r0, .L1289+24
bl sftl_printk
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1243:
+.L1268:
mov r2, #0
sub r1, fp, #44
mov r0, r4
bl log2phys
ldr r0, [fp, #-44]
cmn r0, #1
- beq .L1242
+ beq .L1267
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r2, .L1264+12
+ ldr r2, .L1289+12
lsl r0, r0, #1
ldrh r3, [r2, r0]
add r3, r3, #1
strh r3, [r2, r0] @ movhi
-.L1242:
+.L1267:
add r4, r4, #1
- b .L1241
-.L1246:
+ b .L1266
+.L1271:
uxth r1, r4
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
lsl r7, r1, #1
ldrh r2, [r3, r7]
ldrh r3, [r8, r7]
cmp r2, r3
- beq .L1245
+ beq .L1270
mov r0, r9
bl sftl_printk
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
movw r2, #65535
ldrh r3, [r3, r7]
cmp r3, r2
- beq .L1245
+ beq .L1270
ldrh r2, [r8, r7]
cmp r2, r3
movhi r6, #1
-.L1245:
+.L1270:
add r4, r4, #1
- b .L1244
-.L1265:
+ b .L1269
+.L1290:
.align 2
-.L1264:
+.L1289:
.word .LANCHOR0
.word .LANCHOR1+457
- .word .LC101
+ .word .LC111
.word check_vpc_table
- .word .LC102
- .word .LC103
- .word .LC1
+ .word .LC112
+ .word .LC113
+ .word .LC8
.size ftl_check_vpc, .-ftl_check_vpc
.align 2
.global ftl_scan_all_data
@@ -8527,39 +8777,39 @@ ftl_scan_all_data:
sub fp, ip, #4
sub sp, sp, #24
mov r5, #0
- ldr r6, .L1274
+ ldr r6, .L1299
mov r1, #0
- ldr r0, .L1274+4
+ ldr r0, .L1299+4
bl sftl_printk
mov r4, r6
-.L1267:
- ldr r3, [r6, #2504]
+.L1292:
+ ldr r3, [r6, #2556]
cmp r5, r3
- bcc .L1273
+ bcc .L1298
sub sp, fp, #28
ldmfd sp, {r4, r5, r6, r7, fp, sp, pc}
-.L1273:
+.L1298:
mov r2, #0
sub r1, fp, #32
mov r0, r5
bl log2phys
ubfx r3, r5, #0, #11
cmp r3, #0
- bne .L1268
+ bne .L1293
ldr r2, [fp, #-32]
mov r1, r5
- ldr r0, .L1274+8
+ ldr r0, .L1299+8
bl sftl_printk
-.L1268:
+.L1293:
ldr r3, [fp, #-32]
cmn r3, #1
- beq .L1270
+ beq .L1295
str r3, [r4, #3460]
mov r2, #0
ldr r3, [r4, #3304]
mov r1, #1
ldr r7, [r4, #3336]
- ldr r0, .L1274+12
+ ldr r0, .L1299+12
str r3, [r4, #3464]
str r5, [r4, #3472]
str r7, [r4, #3468]
@@ -8568,14 +8818,14 @@ ftl_scan_all_data:
ldr r3, [r4, #3456]
cmn r3, #1
cmpne r3, #256
- beq .L1271
+ beq .L1296
ldr r3, [r7, #8]
cmp r5, r3
- beq .L1270
-.L1271:
+ beq .L1295
+.L1296:
ldr r2, [r4, #3464]
ldr r3, [r4, #3468]
- ldr r0, .L1274+16
+ ldr r0, .L1299+16
ldr r1, [r2, #4]
str r1, [sp, #16]
mov r1, r5
@@ -8590,17 +8840,17 @@ ftl_scan_all_data:
ldr r3, [r3]
ldr r2, [r4, #3460]
bl sftl_printk
-.L1270:
+.L1295:
add r5, r5, #1
- b .L1267
-.L1275:
+ b .L1292
+.L1300:
.align 2
-.L1274:
+.L1299:
.word .LANCHOR0
- .word .LC104
- .word .LC105
+ .word .LC114
+ .word .LC115
.word .LANCHOR0+3456
- .word .LC106
+ .word .LC116
.size ftl_scan_all_data, .-ftl_scan_all_data
.align 2
.global FtlGcScanTempBlk
@@ -8609,234 +8859,247 @@ ftl_scan_all_data:
.fpu softvfp
.type FtlGcScanTempBlk, %function
FtlGcScanTempBlk:
- @ args = 0, pretend = 0, frame = 44
+ @ args = 0, pretend = 0, frame = 48
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #44
- mov r5, r0
- ldr r3, .L1306
- str r1, [fp, #-68]
- ldrh r6, [r3, #4]
+ sub sp, sp, #48
+ mov r4, r0
+ ldr r3, .L1333
+ str r1, [fp, #-76]
+ ldrh r5, [r3, #4]
movw r3, #65535
- cmp r6, r3
- beq .L1301
- cmp r6, #0
- bne .L1277
-.L1278:
+ cmp r5, r3
+ beq .L1326
+ cmp r5, #0
+ bne .L1302
+.L1303:
bl FtlGcPageVarInit
- b .L1279
-.L1301:
- mov r6, #0
-.L1277:
- ldr r3, .L1306+4
- ldr r2, [fp, #-68]
- ldrh r3, [r3, #102]
+ b .L1304
+.L1326:
+ mov r5, #0
+.L1302:
+ ldr r2, .L1333+4
+ movw r3, #306
+ ldrh r3, [r2, r3]
+ ldr r2, [fp, #-76]
cmp r3, r2
- beq .L1278
-.L1279:
- ldr r4, .L1306+4
- mov r9, #0
-.L1280:
- ldrh r2, [r5]
+ beq .L1303
+.L1304:
+ ldr r6, .L1333+4
mov r3, #0
- strb r3, [r5, #8]
+ str r3, [fp, #-68]
+.L1320:
+ ldrh r2, [r4]
+ mov r3, #0
+ strb r3, [r4, #8]
movw r3, #65535
cmp r2, r3
- beq .L1281
-.L1298:
- ldrh r3, [r4, #32]
- mov r2, #0
- ldr r0, [r4, #3292]
- add ip, r5, #16
- ldrh lr, [r4, #112]
- mov r10, r2
+ beq .L1305
+.L1323:
+ ldrh r3, [r6, #236]
+ add ip, r4, #16
+ ldr r0, [r6, #3292]
+ movw r9, #65535
+ mov lr, #20
str r3, [fp, #-72]
- movw r7, #65535
- ldr r3, [r4, #3176]
- str r3, [fp, #-76]
- ldrh r3, [r4, #110]
+ ldr r3, [r6, #3180]
str r3, [fp, #-80]
- ldr r3, [r4, #3180]
- str r3, [fp, #-84]
-.L1282:
+ ldr r3, .L1333+8
+ ldrh r2, [r3]
+ ldrh r10, [r3, #2]
+ str r2, [fp, #-84]
+ ldr r2, [r6, #3184]
+ str r2, [fp, #-88]
+ mov r2, #0
+ mov r7, r2
+.L1306:
ldr r1, [fp, #-72]
uxth r3, r2
cmp r1, r3
- bhi .L1284
+ bhi .L1308
mov r8, #0
mov r2, #0
- mov r1, r10
+ mov r1, r7
bl FlashReadPages
-.L1285:
+.L1309:
uxth r3, r8
- cmp r10, r3
- bhi .L1296
+ cmp r7, r3
+ bhi .L1321
ldr r3, [fp, #-68]
- add r9, r9, #1
- add r6, r6, #1
- uxth r6, r6
- cmp r3, r9
- bls .L1297
-.L1299:
- ldrh r3, [r4, #102]
- cmp r3, r6
- bhi .L1298
-.L1281:
- ldr r3, .L1306
+ add r5, r5, #1
+ uxth r5, r5
+ add r3, r3, #1
+ str r3, [fp, #-68]
+ ldr r2, [fp, #-68]
+ ldr r3, [fp, #-76]
+ cmp r3, r2
+ ldr r2, .L1333+12
+ bls .L1322
+.L1324:
+ ldrh r3, [r2]
+ cmp r3, r5
+ bhi .L1323
+.L1305:
+ ldr r3, .L1333
mvn r2, #0
- strh r6, [r5, #2] @ movhi
- mov r1, r6
- mov r0, r5
+ strh r5, [r4, #2] @ movhi
+ mov r1, r5
+ mov r0, r4
strh r2, [r3, #4] @ movhi
mov r2, #0
- strb r2, [r5, #6]
+ strb r2, [r4, #6]
bl ftl_sb_update_avl_pages
- b .L1300
-.L1284:
+ b .L1325
+.L1308:
ldrh r3, [ip], #2
- cmp r3, r7
- beq .L1283
- mov r1, #20
- orr r3, r6, r3, lsl #10
- mla r1, r1, r10, r0
+ cmp r3, r9
+ beq .L1307
+ mla r1, lr, r7, r0
+ orr r3, r5, r3, lsl #10
str r3, [r1, #4]
- ldr r3, [fp, #-80]
- mul r3, r3, r10
+ ldr r3, [fp, #-84]
+ mul r3, r3, r7
add r8, r3, #3
cmp r3, #0
movlt r3, r8
- ldr r8, [fp, #-76]
+ ldr r8, [fp, #-80]
bic r3, r3, #3
add r3, r8, r3
str r3, [r1, #8]
- mul r3, lr, r10
- add r10, r10, #1
- uxth r10, r10
+ mul r3, r10, r7
+ add r7, r7, #1
+ uxth r7, r7
add r8, r3, #3
cmp r3, #0
movlt r3, r8
- ldr r8, [fp, #-84]
+ ldr r8, [fp, #-88]
bic r3, r3, #3
add r3, r8, r3
str r3, [r1, #12]
-.L1283:
+.L1307:
add r2, r2, #1
- b .L1282
-.L1296:
- mov r3, #20
- ldr r2, [r4, #3292]
- mul ip, r3, r8
- ldr r7, [r2, ip]
+ b .L1306
+.L1321:
+ mov ip, #20
+ ldr r2, [r6, #3292]
+ mul ip, ip, r8
+ ldr r10, [r2, ip]
add r3, r2, ip
ldr r1, [r3, #4]
- cmp r7, #0
+ ldr r9, [r3, #12]
+ cmp r10, #0
str r1, [fp, #-72]
- bne .L1286
- ldr r3, [r3, #12]
+ bne .L1310
+ ldrh r1, [r9]
movw r2, #65535
- ldrh r1, [r3]
cmp r1, r2
- bne .L1287
-.L1286:
- ldrh r3, [r5]
+ bne .L1311
+.L1331:
+ ldrh r3, [r4]
mov r1, #0
- ldr r2, [r4, #2324]
- mov r6, #0
+ ldr r2, [r6, #76]
+ mov r5, #0
lsl r3, r3, #1
strh r1, [r2, r3] @ movhi
- ldrh r0, [r5]
+ ldrh r0, [r4]
bl INSERT_FREE_LIST
mvn r3, #0
- strh r3, [r5] @ movhi
+ strh r3, [r4] @ movhi
+ strh r3, [r6, #176] @ movhi
bl FtlGcPageVarInit
- b .L1280
-.L1287:
- ldr r0, [r3, #8]
- ldr r2, [r4, #2504]
+ b .L1320
+.L1311:
+ ldr r0, [r9, #8]
+ ldr r2, [r6, #2556]
str ip, [fp, #-80]
- str r3, [fp, #-76]
cmp r0, r2
- bhi .L1286
- mov r2, r7
+ bhi .L1331
+ mov r2, r10
sub r1, fp, #64
bl log2phys
- ldr r3, [fp, #-76]
ldr r1, [fp, #-64]
+ ldr r2, [r9, #12]
ldr ip, [fp, #-80]
- ldr r2, [r3, #12]
cmn r1, #1
sub r0, r2, r1
clz r0, r0
lsr r0, r0, #5
moveq r0, #0
cmp r0, #0
- bne .L1290
-.L1294:
- ldr r2, [r3, #8]
- add r8, r8, #1
+ bne .L1314
+.L1319:
+ ldr r2, [r9, #8]
+.L1332:
ldr r1, [fp, #-72]
- ldr r0, [r3, #12]
+ add r8, r8, #1
+ ldr r0, [r9, #12]
bl FtlGcUpdatePage
- b .L1285
-.L1290:
+ b .L1309
+.L1314:
str r2, [fp, #-56]
mov r1, #1
- ldr r2, [r4, #3320]
+ ldr r2, [r6, #3320]
sub r0, fp, #60
str ip, [fp, #-80]
- str r3, [fp, #-76]
str r2, [fp, #-52]
- ldr r2, [r4, #3340]
+ ldr r2, [r6, #3340]
str r2, [fp, #-48]
- mov r2, r7
+ mov r2, r10
bl FlashReadPages
- ldrh r1, [r4, #58]
- ldr r2, [r4, #3292]
+ ldr r2, .L1333+16
ldr ip, [fp, #-80]
ldr r0, [fp, #-52]
- ldr r3, [fp, #-76]
+ ldrh r1, [r2]
+ ldr r2, [r6, #3292]
lsl r1, r1, #7
add ip, r2, ip
- mov r2, r7
-.L1291:
+ mov r2, r10
+.L1316:
cmp r2, r1
- beq .L1294
+ beq .L1319
ldr lr, [ip, #8]
- ldr r7, [lr, r2, lsl #2]
+ ldr r10, [lr, r2, lsl #2]
ldr lr, [r0, r2, lsl #2]
- cmp r7, lr
- beq .L1292
+ cmp r10, lr
+ beq .L1317
ldr r2, [fp, #-56]
- ldrh r1, [r5]
- ldr r0, .L1306+8
+ ldrh r1, [r4]
+ ldr r0, .L1333+20
bl sftl_printk
- b .L1286
-.L1292:
+ b .L1331
+.L1317:
add r2, r2, #1
- b .L1291
-.L1297:
- ldr r2, .L1306
- movw r1, #65535
- ldrh r3, [r2, #4]
- cmp r3, r1
- beq .L1299
- add r3, r3, r9
- strh r3, [r2, #4] @ movhi
- ldrh r3, [r4, #102]
- cmp r3, r6
- bls .L1299
-.L1300:
+ b .L1316
+.L1310:
+ mvn r2, #0
+ b .L1332
+.L1322:
+ ldr r1, .L1333
+ movw r0, #65535
+ ldrh r3, [r1, #4]
+ cmp r3, r0
+ beq .L1324
+ ldr r0, [fp, #-68]
+ add r3, r3, r0
+ strh r3, [r1, #4] @ movhi
+ ldrh r3, [r2]
+ cmp r3, r5
+ bls .L1324
+.L1325:
mvn r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1307:
+.L1334:
.align 2
-.L1306:
+.L1333:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC107
+ .word .LANCHOR0+314
+ .word .LANCHOR0+306
+ .word .LANCHOR0+262
+ .word .LC117
.size FtlGcScanTempBlk, .-FtlGcScanTempBlk
.align 2
.global FtlReadRefresh
@@ -8848,95 +9111,111 @@ FtlReadRefresh:
@ args = 0, pretend = 0, frame = 88
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, fp, ip, lr, pc}
+ push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #88
- ldr r3, .L1321
- ldr r0, [r3, #2720]
- mov r4, r3
- cmp r0, #0
- beq .L1309
- ldr r1, [r3, #2724]
- ldr r2, [r3, #2504]
- cmp r1, r2
- bcs .L1310
- mov r5, #2048
-.L1315:
- ldr r0, [r4, #2724]
- ldr r3, [r4, #2504]
+ ldr r6, .L1351
+ ldr r9, [r6, #2724]
+ mov r5, r6
+ cmp r9, #0
+ beq .L1336
+ ldr r2, [r6, #2728]
+ ldr r3, [r6, #2556]
+ cmp r2, r3
+ bcs .L1337
+ mov r4, #2048
+.L1342:
+ ldr r0, [r5, #2728]
+ ldr r3, [r5, #2556]
cmp r0, r3
- bcs .L1312
+ bcc .L1338
+.L1341:
+ mvn r0, #0
+.L1335:
+ sub sp, fp, #40
+ ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L1338:
mov r2, #0
- sub r1, fp, #108
+ sub r1, fp, #128
bl log2phys
- ldr r2, [fp, #-108]
- ldr r3, [r4, #2724]
+ ldr r2, [fp, #-128]
+ ldr r3, [r5, #2728]
cmn r2, #1
add r3, r3, #1
- str r3, [r4, #2724]
- beq .L1313
- str r3, [fp, #-88]
- sub r0, fp, #20
- ldr r3, [r4, #3328]
+ str r3, [r5, #2728]
+ beq .L1340
+ str r3, [fp, #-108]
+ sub r0, fp, #40
+ ldr r3, [r5, #3328]
mov r1, #1
- str r2, [fp, #-100]
+ str r2, [fp, #-120]
mov r2, #0
str r2, [r0, #-84]!
- str r3, [fp, #-96]
- sub r3, fp, #84
- str r3, [fp, #-92]
+ str r3, [fp, #-116]
+ sub r3, fp, #104
+ str r3, [fp, #-112]
bl FlashReadPages
- ldr r3, [fp, #-104]
+ ldr r3, [fp, #-124]
cmp r3, #256
- bne .L1312
- ldr r0, [fp, #-108]
+ bne .L1341
+ ldr r0, [fp, #-128]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1312:
- mvn r0, #0
-.L1308:
- sub sp, fp, #20
- ldmfd sp, {r4, r5, fp, sp, pc}
-.L1313:
- subs r5, r5, #1
- bne .L1315
- b .L1312
-.L1310:
- ldr r2, [r3, #2508]
+ b .L1341
+.L1340:
+ subs r4, r4, #1
+ bne .L1342
+ b .L1341
+.L1337:
+ ldr r3, [r6, #2560]
mov r0, #0
- str r0, [r3, #2720]
- str r0, [r3, #2724]
- str r2, [r3, #2716]
- b .L1308
-.L1309:
- ldr r1, [r3, #2508]
- ldr r2, [r3, #2716]
- add ip, r1, #1048576
- cmp r2, ip
- bhi .L1318
- ldr r3, [r3, #2564]
- mov ip, #33554432
- lsr r3, r3, #10
- add r2, r2, ip, asr r3
- cmp r1, r2
- bhi .L1318
- ldr r3, .L1321+4
- ldrb r3, [r3, #28] @ zero_extendqisi2
- cmp r3, #0
- bne .L1308
-.L1318:
- mov r3, #1
+ str r0, [r6, #2724]
+ str r0, [r6, #2728]
+ str r3, [r6, #2720]
+ b .L1335
+.L1336:
+ ldr r1, [r6, #2616]
+ movw r4, #10000
+ ldr r8, [r6, #2560]
+ ldr r7, [r6, #2720]
+ cmp r1, r4
+ ldr r10, .L1351+4
+ add r3, r8, #1048576
+ movhi r4, #31
+ movls r4, #63
+ cmp r7, r3
+ bhi .L1346
+ ldr r3, [r6, #2556]
+ lsr r1, r1, #10
+ mov r0, #1000
+ add r1, r1, #1
+ mul r0, r0, r3
+ bl __udivsi3
+ add r0, r0, r7
+ cmp r8, r0
+ bhi .L1346
+ ldrh r3, [r10, #28]
+ ands r0, r4, r3
+ movne r0, r9
+ bne .L1335
+ ldr r2, [r6, #2744]
+ cmp r3, r2
+ beq .L1335
+.L1346:
+ ldrh r3, [r10, #28]
mov r0, #0
- str r3, [r4, #2720]
- str r0, [r4, #2724]
- str r1, [r4, #2716]
- b .L1308
-.L1322:
+ str r0, [r5, #2728]
+ str r8, [r5, #2720]
+ str r3, [r5, #2744]
+ mov r3, #1
+ str r3, [r5, #2724]
+ b .L1335
+.L1352:
.align 2
-.L1321:
+.L1351:
.word .LANCHOR0
- .word .LANCHOR0+2268
+ .word .LANCHOR0+2472
.size FtlReadRefresh, .-FtlReadRefresh
.align 2
.global l2p_flush
@@ -8950,32 +9229,34 @@ l2p_flush:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r5, .L1327
+ ldr r6, .L1357
mov r4, #0
- mov r6, #12
+ ldr r5, .L1357+4
bl FtlWriteDump_data
-.L1324:
- ldrh r2, [r5, #138]
+.L1354:
+ ldrh r2, [r5]
uxth r3, r4
cmp r2, r3
- bhi .L1326
+ bhi .L1356
mov r0, #0
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1326:
- ldr r3, [r5, #2492]
+.L1356:
+ ldr r2, [r6, #2544]
uxth r0, r4
- mla r3, r6, r0, r3
+ mov r3, #12
+ mla r3, r3, r0, r2
ldr r3, [r3, #4]
cmp r3, #0
- bge .L1325
+ bge .L1355
bl flush_l2p_region
-.L1325:
+.L1355:
add r4, r4, #1
- b .L1324
-.L1328:
+ b .L1354
+.L1358:
.align 2
-.L1327:
+.L1357:
.word .LANCHOR0
+ .word .LANCHOR0+342
.size l2p_flush, .-l2p_flush
.align 2
.global FtlVendorPartWrite
@@ -8991,33 +9272,36 @@ FtlVendorPartWrite:
sub fp, ip, #4
sub sp, sp, #100
mov r7, r0
- ldr r4, .L1338
+ ldr r4, .L1368
mov r5, r1
str r2, [fp, #-128]
add r2, r0, r1
- ldrh r3, [r4, #96]
+ ldrh r3, [r4]
+ sub r4, r4, #300
cmp r2, r3
mvnhi r8, #0
- bhi .L1329
- ldrh r6, [r4, #108]
+ bhi .L1359
+ add r3, r4, #312
mov r8, #0
+ ldrh r6, [r3]
lsr r6, r0, r6
lsl r10, r6, #2
-.L1331:
+.L1361:
cmp r5, #0
- bne .L1336
-.L1329:
+ bne .L1366
+.L1359:
mov r0, r8
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1336:
+.L1366:
ldr r3, [r4, #3376]
mov r0, r7
- ldrh r2, [r4, #58]
ldr ip, [r3, r10]
+ ldr r3, .L1368+4
+ str ip, [fp, #-140]
+ ldrh r2, [r3]
mov r1, r2
str r2, [fp, #-136]
- str ip, [fp, #-140]
bl __umodsi3
ldr r2, [fp, #-136]
ldr ip, [fp, #-140]
@@ -9030,7 +9314,7 @@ FtlVendorPartWrite:
cmpne r9, r2
movne r1, #1
moveq r1, #0
- beq .L1333
+ beq .L1363
ldr r2, [r4, #3312]
sub r0, fp, #124
str ip, [fp, #-120]
@@ -9040,7 +9324,7 @@ FtlVendorPartWrite:
mov r2, #1
mov r1, r2
bl FlashReadPages
-.L1334:
+.L1364:
ldr r3, [fp, #-132]
lsl ip, r9, #9
ldr r0, [r4, #3312]
@@ -9054,7 +9338,7 @@ FtlVendorPartWrite:
bl ftl_memcpy
mov r1, r6
ldr r2, [r4, #3312]
- ldr r0, .L1338+4
+ ldr r0, .L1368+8
add r6, r6, #1
bl FtlMapWritePage
ldr r3, [fp, #-128]
@@ -9063,17 +9347,20 @@ FtlVendorPartWrite:
mvneq r8, #0
add r3, r3, ip
str r3, [fp, #-128]
- b .L1331
-.L1333:
- ldrh r2, [r4, #110]
+ b .L1361
+.L1363:
+ ldr r3, .L1368+12
ldr r0, [r4, #3312]
+ ldrh r2, [r3]
bl ftl_memset
- b .L1334
-.L1339:
+ b .L1364
+.L1369:
.align 2
-.L1338:
- .word .LANCHOR0
+.L1368:
+ .word .LANCHOR0+300
+ .word .LANCHOR0+262
.word .LANCHOR0+3612
+ .word .LANCHOR0+314
.size FtlVendorPartWrite, .-FtlVendorPartWrite
.align 2
.global Ftl_save_ext_data
@@ -9087,48 +9374,49 @@ Ftl_save_ext_data:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r2, .L1342
- ldr r3, .L1342+4
- ldr r1, [r2, #2640]
- cmp r1, r3
+ ldr r3, .L1372
+ ldr r2, .L1372+4
+ ldr r1, [r3, #2644]
+ cmp r1, r2
ldmfdne sp, {fp, sp, pc}
- ldr r3, .L1342+8
- add r2, r2, #2640
+ ldr r2, .L1372+8
mov r1, #1
mov r0, #0
- str r3, [r2, #4]
- ldr r3, [r2, #-108]
- str r3, [r2, #88]
- ldr r3, [r2, #-104]
- str r3, [r2, #92]
- ldr r3, [r2, #-112]
- str r3, [r2, #8]
- ldr r3, [r2, #-124]
- str r3, [r2, #12]
- ldr r3, [r2, #-132]
- str r3, [r2, #16]
- ldr r3, [r2, #-116]
- str r3, [r2, #20]
- ldr r3, [r2, #-88]
- str r3, [r2, #28]
- ldr r3, [r2, #-80]
- str r3, [r2, #32]
- ldr r3, [r2, #-128]
- str r3, [r2, #36]
- ldr r3, [r2, #-120]
- str r3, [r2, #40]
- ldr r3, [r2, #-76]
- str r3, [r2, #44]
- ldr r3, [r2, #-72]
- str r3, [r2, #48]
+ str r2, [r3, #2648]
+ ldr r2, [r3, #2584]
+ str r2, [r3, #2732]
+ ldr r2, [r3, #2588]
+ str r2, [r3, #2736]
+ ldr r2, [r3, #2580]
+ str r2, [r3, #2652]
+ ldr r2, [r3, #2568]
+ str r2, [r3, #2656]
+ ldr r2, [r3, #2560]
+ str r2, [r3, #2660]
+ ldr r2, [r3, #2576]
+ str r2, [r3, #2664]
+ ldr r2, [r3, #2604]
+ str r2, [r3, #2672]
+ ldr r2, [r3, #2612]
+ str r2, [r3, #2676]
+ ldr r2, [r3, #2564]
+ str r2, [r3, #2680]
+ ldr r2, [r3, #2572]
+ str r2, [r3, #2684]
+ ldr r2, [r3, #2616]
+ str r2, [r3, #2688]
+ ldr r2, [r3, #2620]
+ str r2, [r3, #2692]
+ ldr r2, .L1372+12
bl FtlVendorPartWrite
ldmfd sp, {fp, sp, pc}
-.L1343:
+.L1373:
.align 2
-.L1342:
+.L1372:
.word .LANCHOR0
.word 1179929683
.word 1342177352
+ .word .LANCHOR0+2644
.size Ftl_save_ext_data, .-Ftl_save_ext_data
.align 2
.global FtlEctTblFlush
@@ -9142,7 +9430,7 @@ FtlEctTblFlush:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L1349
+ ldr r3, .L1379
movw r1, #3656
ldrh r2, [r3, r1]
cmp r2, #31
@@ -9151,22 +9439,22 @@ FtlEctTblFlush:
strhls r2, [r3, r1] @ movhi
movls r2, #1
cmp r0, #0
- bne .L1346
+ bne .L1376
ldr r1, [r3, #3352]
ldr r0, [r1, #20]
ldr r1, [r1, #16]
add r2, r2, r0
cmp r1, r2
- bcc .L1347
-.L1346:
+ bcc .L1377
+.L1376:
ldr r2, [r3, #3352]
mov r0, #64
ldr r1, [r2, #16]
str r1, [r2, #20]
- ldr r1, .L1349+4
+ ldr r1, .L1379+4
str r1, [r2]
ldr r2, [r3, #3352]
- ldr r3, .L1349+8
+ ldr r3, .L1379+8
ldrh r1, [r3]
lsl r3, r1, #9
str r3, [r2, #12]
@@ -9177,12 +9465,12 @@ FtlEctTblFlush:
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1347:
+.L1377:
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L1350:
+.L1380:
.align 2
-.L1349:
+.L1379:
.word .LANCHOR0
.word 1112818501
.word .LANCHOR0+3344
@@ -9200,51 +9488,53 @@ FtlVendorPartRead:
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #96
- mov r9, r2
- ldr r3, .L1361
- mov r6, r1
- add r1, r0, r1
- mov r7, r0
- ldrh r2, [r3, #96]
- mov r10, r3
- cmp r1, r2
- mvnhi r8, #0
- bhi .L1351
- ldrh r5, [r3, #108]
- mov r8, #0
- lsr r5, r0, r5
- lsl r3, r5, #2
+ mov r10, r2
+ ldr r5, .L1391
+ add r2, r0, r1
+ mov r8, r0
+ mov r7, r1
+ ldrh r3, [r5]
+ sub r5, r5, #300
+ cmp r2, r3
+ mvnhi r9, #0
+ bhi .L1381
+ add r3, r5, #312
+ mov r9, #0
+ ldrh r6, [r3]
+ lsr r6, r0, r6
+ lsl r3, r6, #2
str r3, [fp, #-128]
-.L1353:
- cmp r6, #0
- bne .L1359
-.L1351:
- mov r0, r8
+.L1383:
+ cmp r7, #0
+ bne .L1389
+.L1381:
+ mov r0, r9
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1359:
- ldr r3, [fp, #-128]
- mov r0, r7
- ldr r2, [r10, #3376]
- ldrh r4, [r10, #58]
- ldr ip, [r2, r3]
+.L1389:
+ ldr r2, [fp, #-128]
+ mov r0, r8
+ ldr r3, [r5, #3376]
+ ldr r3, [r3, r2]
+ str r3, [fp, #-136]
+ ldr r3, .L1391+4
+ ldrh r4, [r3]
mov r1, r4
- str ip, [fp, #-136]
bl __umodsi3
sub r4, r4, r0
- ldr ip, [fp, #-136]
+ ldr r3, [fp, #-136]
uxth r4, r4
str r0, [fp, #-132]
- cmp r6, r4
- uxthcc r4, r6
- cmp ip, #0
- lsl r3, r4, #9
- str r3, [fp, #-136]
- beq .L1355
- ldr r2, [r10, #3312]
+ cmp r7, r4
+ uxthcc r4, r7
+ cmp r3, #0
+ lsl r2, r4, #9
+ str r2, [fp, #-136]
+ beq .L1385
+ ldr r2, [r5, #3312]
sub r0, fp, #124
- str ip, [fp, #-120]
- str ip, [fp, #-136]
+ str r3, [fp, #-120]
+ str r3, [fp, #-136]
str r2, [fp, #-116]
sub r2, fp, #104
str r2, [fp, #-112]
@@ -9252,47 +9542,48 @@ FtlVendorPartRead:
mov r1, r2
bl FlashReadPages
ldr r2, [fp, #-124]
- ldr ip, [fp, #-136]
+ ldr r3, [fp, #-136]
cmn r2, #1
- ldr r2, [r10, #3456]
- mvneq r8, #0
+ ldr r2, [r5, #3456]
+ mvneq r9, #0
cmp r2, #256
- bne .L1357
- mov r2, ip
- mov r1, r5
- ldr r0, .L1361+4
+ bne .L1387
+ mov r2, r3
+ mov r1, r6
+ ldr r0, .L1391+8
bl sftl_printk
- ldr r2, [r10, #3312]
- mov r1, r5
- ldr r0, .L1361+8
+ ldr r2, [r5, #3312]
+ mov r1, r6
+ ldr r0, .L1391+12
bl FtlMapWritePage
-.L1357:
- ldr r1, [r10, #3312]
+.L1387:
+ ldr r1, [r5, #3312]
lsl r2, r4, #9
ldr r3, [fp, #-132]
- mov r0, r9
+ mov r0, r10
add r1, r1, r3, lsl #9
bl ftl_memcpy
-.L1358:
+.L1388:
ldr r3, [fp, #-128]
- add r5, r5, #1
- sub r6, r6, r4
- add r7, r7, r4
- add r9, r9, r4, lsl #9
+ add r6, r6, #1
+ sub r7, r7, r4
+ add r8, r8, r4
+ add r10, r10, r4, lsl #9
add r3, r3, #4
str r3, [fp, #-128]
- b .L1353
-.L1355:
+ b .L1383
+.L1385:
lsl r2, r4, #9
- mov r1, ip
- mov r0, r9
+ mov r1, r3
+ mov r0, r10
bl ftl_memset
- b .L1358
-.L1362:
+ b .L1388
+.L1392:
.align 2
-.L1361:
- .word .LANCHOR0
- .word .LC108
+.L1391:
+ .word .LANCHOR0+300
+ .word .LANCHOR0+262
+ .word .LC118
.word .LANCHOR0+3612
.size FtlVendorPartRead, .-FtlVendorPartRead
.align 2
@@ -9307,7 +9598,7 @@ FtlLoadEctTbl:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1365
+ ldr r4, .L1395
mov r0, #64
add r5, r4, #3344
ldr r2, [r4, #3352]
@@ -9315,27 +9606,27 @@ FtlLoadEctTbl:
bl FtlVendorPartRead
ldr r3, [r4, #3352]
ldr r2, [r3]
- ldr r3, .L1365+4
+ ldr r3, .L1395+4
cmp r2, r3
- beq .L1364
- ldr r1, .L1365+8
- ldr r0, .L1365+12
+ beq .L1394
+ ldr r1, .L1395+8
+ ldr r0, .L1395+12
bl sftl_printk
ldrh r2, [r5]
mov r1, #0
ldr r0, [r4, #3352]
lsl r2, r2, #9
bl ftl_memset
-.L1364:
+.L1394:
mov r0, #0
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1366:
+.L1396:
.align 2
-.L1365:
+.L1395:
.word .LANCHOR0
.word 1112818501
- .word .LC109
- .word .LC71
+ .word .LC119
+ .word .LC77
.size FtlLoadEctTbl, .-FtlLoadEctTbl
.align 2
.global Ftl_load_ext_data
@@ -9349,61 +9640,64 @@ Ftl_load_ext_data:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1370
+ ldr r4, .L1400
mov r1, #1
mov r0, #0
- ldr r5, .L1370+4
- add r2, r4, #2640
+ ldr r2, .L1400+4
bl FtlVendorPartRead
- ldr r3, [r4, #2640]
+ ldr r5, .L1400+8
+ ldr r3, [r4, #2644]
cmp r3, r5
- beq .L1368
+ beq .L1398
mov r1, #512
- add r0, r4, #2640
+ ldr r0, .L1400+4
bl __memzero
- str r5, [r4, #2640]
-.L1368:
- ldr r3, [r4, #2640]
+ str r5, [r4, #2644]
+.L1398:
+ ldr r3, [r4, #2644]
cmp r3, r5
- bne .L1369
- ldr r3, [r4, #2728]
- str r3, [r4, #2532]
+ bne .L1399
ldr r3, [r4, #2732]
- str r3, [r4, #2536]
- ldr r3, [r4, #2648]
- str r3, [r4, #2528]
+ str r3, [r4, #2584]
+ ldr r3, [r4, #2736]
+ str r3, [r4, #2588]
ldr r3, [r4, #2652]
- str r3, [r4, #2516]
+ str r3, [r4, #2580]
ldr r3, [r4, #2656]
- str r3, [r4, #2508]
+ str r3, [r4, #2568]
ldr r3, [r4, #2660]
- str r3, [r4, #2524]
- ldr r3, [r4, #2668]
- str r3, [r4, #2552]
- ldr r3, [r4, #2672]
str r3, [r4, #2560]
+ ldr r3, [r4, #2664]
+ str r3, [r4, #2576]
+ ldr r3, [r4, #2672]
+ str r3, [r4, #2604]
ldr r3, [r4, #2676]
- str r3, [r4, #2512]
+ str r3, [r4, #2612]
ldr r3, [r4, #2680]
- str r3, [r4, #2520]
- ldr r3, [r4, #2684]
str r3, [r4, #2564]
+ ldr r3, [r4, #2684]
+ str r3, [r4, #2572]
ldr r3, [r4, #2688]
- str r3, [r4, #2568]
-.L1369:
- ldrh r2, [r4, #92]
- ldr r3, [r4, #2552]
- ldr r0, [r4, #2548]
- ldrh r1, [r4, #40]
+ str r3, [r4, #2616]
+ ldr r3, [r4, #2692]
+ str r3, [r4, #2620]
+.L1399:
+ ldr r3, .L1400+12
+ ldr r0, [r4, #2600]
+ ldrh r1, [r4, #244]
+ ldrh r2, [r3]
+ ldr r3, [r4, #2604]
mla r0, r0, r2, r3
bl __udivsi3
- str r0, [r4, #2556]
+ str r0, [r4, #2608]
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1371:
+.L1401:
.align 2
-.L1370:
+.L1400:
.word .LANCHOR0
+ .word .LANCHOR0+2644
.word 1179929683
+ .word .LANCHOR0+296
.size Ftl_load_ext_data, .-Ftl_load_ext_data
.align 2
.global FtlMapBlkWriteDump_data
@@ -9424,7 +9718,7 @@ FtlMapBlkWriteDump_data:
mov r3, #0
ldrh r5, [r0, #6]
str r3, [r0, #36]
- ldr r3, .L1379
+ ldr r3, .L1409
ldr r2, [r0, #24]
sub r5, r5, #1
uxth r5, r5
@@ -9436,25 +9730,26 @@ FtlMapBlkWriteDump_data:
ldr r2, [r2, r5, lsl #2]
cmp r2, #0
str r2, [r3, #3460]
- beq .L1374
+ beq .L1404
mov r2, #1
add r0, r3, #3456
mov r1, r2
bl FlashReadPages
-.L1375:
+.L1405:
ldr r2, [r4, #3464]
mov r1, r5
mov r0, r6
bl FtlMapWritePage
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1374:
- ldrh r2, [r3, #110]
+.L1404:
+ movw r3, #314
mov r1, #255
+ ldrh r2, [r4, r3]
bl ftl_memset
- b .L1375
-.L1380:
+ b .L1405
+.L1410:
.align 2
-.L1379:
+.L1409:
.word .LANCHOR0
.size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
.align 2
@@ -9469,81 +9764,81 @@ FtlVpcTblFlush:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1390
+ ldr r4, .L1420
mov r5, #0
mov r1, #255
- ldr r10, .L1390+4
+ ldr r6, .L1420+4
ldr r3, [r4, #3304]
- add r6, r4, #2576
+ add r9, r4, #308
ldr r7, [r4, #3336]
- sub r8, r6, #308
- add r9, r4, #3456
+ mov r10, r9
+ sub r8, r6, #156
str r3, [r4, #3464]
- ldrh r3, [r6]
+ movw r3, #2628
+ ldrh r3, [r4, r3]
str r7, [r4, #3468]
str r5, [r7, #12]
strh r3, [r7, #2] @ movhi
- ldr r3, .L1390+8
+ ldr r3, .L1420+8
strh r3, [r7] @ movhi
- ldr r3, [r4, #2584]
+ ldr r3, [r4, #2636]
str r5, [r7, #8]
- ldrh r2, [r6, #-226]
+ ldrh r2, [r4, #30]
str r3, [r7, #4]
- ldr r3, .L1390+12
- str r3, [r4, #2268]
- ldr r3, .L1390+16
- str r3, [r4, #2272]
+ ldr r3, .L1420+12
+ str r3, [r4, #2472]
+ ldr r3, .L1420+16
+ str r3, [r4, #2476]
ldrh r3, [r6, #6]
- strh r3, [r8, #8] @ movhi
- ldrh r3, [r4, #54]
- strb r3, [r4, #2278]
- movw r3, #2348
+ strh r3, [r6, #-148] @ movhi
+ movw r3, #258
ldrh r3, [r4, r3]
- strh r3, [r8, #14] @ movhi
- ldrb r3, [r4, #2354] @ zero_extendqisi2
+ strb r3, [r4, #2482]
+ ldrh r3, [r4, #28]
+ strh r3, [r6, #-142] @ movhi
+ ldrb r3, [r4, #34] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- ldrh r2, [r6, #-178]
- strh r3, [r8, #16] @ movhi
- ldrb r3, [r4, #2356] @ zero_extendqisi2
- strb r3, [r4, #2279]
- movw r3, #2396
- ldrh r3, [r4, r3]
- strh r3, [r8, #18] @ movhi
- ldrb r3, [r4, #2402] @ zero_extendqisi2
+ ldrh r2, [r4, #82]
+ strh r3, [r6, #-140] @ movhi
+ ldrb r3, [r4, #36] @ zero_extendqisi2
+ strb r3, [r4, #2483]
+ ldrh r3, [r4, #80]
+ strh r3, [r6, #-138] @ movhi
+ ldrb r3, [r4, #86] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- strh r3, [r8, #20] @ movhi
- ldrb r3, [r4, #2404] @ zero_extendqisi2
- strb r3, [r4, #2280]
- movw r3, #2444
- ldrh r3, [r4, r3]
- strh r3, [r8, #22] @ movhi
- ldrh r2, [r6, #-130]
- ldrb r3, [r4, #2450] @ zero_extendqisi2
+ strh r3, [r6, #-136] @ movhi
+ ldrb r3, [r4, #88] @ zero_extendqisi2
+ strb r3, [r4, #2484]
+ ldrh r3, [r4, #128]
+ strh r3, [r6, #-134] @ movhi
+ ldrh r2, [r4, #130]
+ ldrb r3, [r4, #134] @ zero_extendqisi2
ldr r0, [r4, #3464]
orr r3, r3, r2, lsl #6
- ldrh r2, [r4, #110]
- strh r3, [r8, #24] @ movhi
- ldrb r3, [r4, #2452] @ zero_extendqisi2
- strb r3, [r4, #2281]
- ldr r3, [r4, #2548]
- str r3, [r4, #2300]
- ldr r3, [r4, #2540]
- str r3, [r4, #2308]
- ldr r3, [r4, #2544]
- str r3, [r4, #2304]
+ strh r3, [r6, #-132] @ movhi
+ ldrb r3, [r4, #136] @ zero_extendqisi2
+ strb r3, [r4, #2485]
+ ldr r3, [r4, #2600]
+ str r3, [r4, #2504]
+ ldr r3, [r4, #2592]
+ str r3, [r4, #2512]
+ ldr r3, [r4, #2596]
+ str r3, [r4, #2508]
+ movw r3, #314
+ ldrh r2, [r4, r3]
bl ftl_memset
mov r1, r8
mov r2, #48
ldr r0, [r4, #3464]
movw r8, #65535
bl ftl_memcpy
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
ldr r0, [r4, #3464]
- ldr r1, [r4, #2324]
+ ldr r1, [r4, #76]
lsl r2, r2, #1
add r0, r0, #48
bl ftl_memcpy
- ldrh r0, [r4, #40]
+ ldrh r0, [r4, #244]
ldr r3, [r4, #3464]
ldr r1, [r4, #24]
lsr r2, r0, #3
@@ -9555,7 +9850,7 @@ FtlVpcTblFlush:
bl ftl_memcpy
mov r0, r5
bl FtlUpdateVaildLpn
-.L1382:
+.L1412:
ldr r3, [r4, #3304]
ldrh r1, [r6, #2]
ldrh r2, [r6]
@@ -9564,33 +9859,34 @@ FtlVpcTblFlush:
str r3, [r4, #3468]
orr r3, r1, r2, lsl #10
str r3, [r4, #3460]
- ldrh r3, [r4, #104]
+ ldrh r3, [r9]
sub r3, r3, #1
cmp r1, r3
- blt .L1383
+ blt .L1413
mov r3, #0
ldrh r8, [r6, #4]
strh r3, [r6, #2] @ movhi
strh r2, [r6, #4] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, [r4, #2540]
+ ldr r3, [r4, #2592]
strh r0, [r6] @ movhi
add r2, r3, #1
- str r3, [r4, #2584]
- str r2, [r4, #2540]
+ str r3, [r4, #2636]
+ str r2, [r4, #2592]
lsl r2, r0, #10
str r2, [r4, #3460]
str r3, [r7, #4]
strh r0, [r7, #2] @ movhi
-.L1383:
- ldrh r1, [r4, #110]
+.L1413:
+ ldr r3, .L1420+20
ldr r0, [r4, #3304]
+ ldrh r1, [r3]
bl js_hash
mov r3, #1
str r0, [r7, #12]
mov r2, r3
mov r1, r3
- mov r0, r9
+ ldr r0, .L1420+24
bl FlashProgPages
ldrh r3, [r6, #2]
ldr r2, [r4, #3456]
@@ -9598,52 +9894,55 @@ FtlVpcTblFlush:
uxth r3, r3
cmn r2, #1
strh r3, [r6, #2] @ movhi
- bne .L1384
+ bne .L1414
cmp r3, #1
- bne .L1385
+ bne .L1415
movw r2, #1138
- mov r1, r10
- ldr r0, .L1390+20
+ ldr r1, .L1420+28
+ ldr r0, .L1420+32
bl sftl_printk
-.L1385:
+.L1415:
ldrh r3, [r6, #2]
add r5, r5, #1
uxth r5, r5
cmp r3, #1
- ldrheq r3, [r4, #104]
+ ldrheq r3, [r10]
subeq r3, r3, #1
strheq r3, [r6, #2] @ movhi
cmp r5, #3
- bls .L1382
+ bls .L1412
mov r2, r5
ldr r1, [r4, #3460]
- ldr r0, .L1390+24
+ ldr r0, .L1420+36
bl sftl_printk
-.L1388:
- b .L1388
-.L1384:
+.L1418:
+ b .L1418
+.L1414:
cmp r2, #256
cmpne r3, #1
- beq .L1382
+ beq .L1412
movw r3, #65535
cmp r8, r3
- beq .L1389
+ beq .L1419
mov r1, #1
mov r0, r8
bl FtlFreeSysBlkQueueIn
-.L1389:
+.L1419:
mov r0, #0
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1391:
+.L1421:
.align 2
-.L1390:
+.L1420:
.word .LANCHOR0
- .word .LANCHOR1+471
+ .word .LANCHOR0+2628
.word -3932
.word 1179929683
.word 1342177352
- .word .LC1
- .word .LC110
+ .word .LANCHOR0+314
+ .word .LANCHOR0+3456
+ .word .LANCHOR1+471
+ .word .LC8
+ .word .LC120
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.align 2
.global FtlSysFlush
@@ -9676,17 +9975,17 @@ sftl_deinit:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L1395
+ ldr r3, .L1425
ldr r3, [r3]
cmp r3, #1
- bne .L1394
+ bne .L1424
bl FtlSysFlush
-.L1394:
+.L1424:
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L1396:
+.L1426:
.align 2
-.L1395:
+.L1425:
.word .LANCHOR2
.size sftl_deinit, .-sftl_deinit
.align 2
@@ -9703,22 +10002,23 @@ sftl_discard:
sub fp, ip, #4
sub sp, sp, #8
add r2, r0, r1
- ldr r4, .L1412
+ ldr r4, .L1442
mov r8, r0
mov r6, r1
- ldr r3, [r4, #140]
+ ldr r3, [r4, #344]
cmp r2, r3
mvnhi r0, #0
- bhi .L1397
+ bhi .L1427
cmp r1, #31
- bhi .L1399
-.L1404:
+ bhi .L1429
+.L1434:
mov r0, #0
-.L1397:
+.L1427:
sub sp, fp, #32
ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L1399:
- ldrh r5, [r4, #58]
+.L1429:
+ movw r3, #262
+ ldrh r5, [r4, r3]
mov r1, r5
bl __udivsi3
smulbb r3, r0, r5
@@ -9726,59 +10026,62 @@ sftl_discard:
sub r8, r8, r3
uxth r8, r8
cmp r8, #0
- beq .L1400
+ beq .L1430
sub r5, r5, r8
add r7, r0, #1
cmp r5, r6
movcs r5, r6
uxth r5, r5
sub r6, r6, r5
-.L1400:
+.L1430:
+ ldr r5, .L1442+4
mvn r3, #0
str r3, [fp, #-36]
-.L1401:
- ldrh r3, [r4, #58]
+ mov r8, r5
+.L1431:
+ ldrh r3, [r5]
cmp r6, r3
- bcs .L1403
+ bcs .L1433
ldr r3, [r4, #3660]
cmp r3, #32
- bls .L1404
+ bls .L1434
mov r5, #0
str r5, [r4, #3660]
bl l2p_flush
bl FtlVpcTblFlush
- b .L1404
-.L1403:
+ b .L1434
+.L1433:
mov r2, #0
sub r1, fp, #40
mov r0, r7
bl log2phys
ldr r3, [fp, #-40]
cmn r3, #1
- beq .L1402
+ beq .L1432
ldr r3, [r4, #3660]
mov r2, #1
sub r1, fp, #36
mov r0, r7
add r3, r3, #1
str r3, [r4, #3660]
- ldr r3, [r4, #2512]
+ ldr r3, [r4, #2564]
add r3, r3, #1
- str r3, [r4, #2512]
+ str r3, [r4, #2564]
bl log2phys
ldr r0, [fp, #-40]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl decrement_vpc_count
-.L1402:
- ldrh r3, [r4, #58]
+.L1432:
+ ldrh r3, [r8]
add r7, r7, #1
sub r6, r6, r3
- b .L1401
-.L1413:
+ b .L1431
+.L1443:
.align 2
-.L1412:
+.L1442:
.word .LANCHOR0
+ .word .LANCHOR0+262
.size sftl_discard, .-sftl_discard
.align 2
.global FtlVpcCheckAndModify
@@ -9794,38 +10097,38 @@ FtlVpcCheckAndModify:
sub fp, ip, #4
sub sp, sp, #4
mov r5, #0
- ldr r4, .L1427
- ldr r1, .L1427+4
- ldr r0, .L1427+8
+ ldr r4, .L1457
+ ldr r1, .L1457+4
+ ldr r0, .L1457+8
bl sftl_printk
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, #0
ldr r0, [r4, #3356]
lsl r2, r2, #1
bl ftl_memset
-.L1415:
- ldr r3, [r4, #2504]
+.L1445:
+ ldr r3, [r4, #2556]
cmp r5, r3
- bcc .L1417
- ldr r9, .L1427+12
+ bcc .L1447
+ ldr r10, .L1457+12
mov r7, #0
- ldr r10, .L1427+16
-.L1418:
- ldrh r3, [r4, #40]
+ movw r9, #65535
+.L1448:
+ ldrh r3, [r4, #244]
uxth r6, r7
cmp r3, r6
- bhi .L1423
+ bhi .L1453
bl l2p_flush
bl FtlVpcTblFlush
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1417:
+.L1447:
mov r2, #0
sub r1, fp, #44
mov r0, r5
bl log2phys
ldr r0, [fp, #-44]
cmn r0, #1
- beq .L1416
+ beq .L1446
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r2, [r4, #3356]
@@ -9833,56 +10136,52 @@ FtlVpcCheckAndModify:
ldrh r3, [r2, r0]
add r3, r3, #1
strh r3, [r2, r0] @ movhi
-.L1416:
+.L1446:
add r5, r5, #1
- b .L1415
-.L1423:
+ b .L1445
+.L1453:
uxth r8, r7
- ldr r3, [r4, #2324]
- movw r1, #65535
+ ldr r3, [r4, #76]
lsl r5, r8, #1
ldrh r2, [r3, r5]
ldr r3, [r4, #3356]
ldrh r3, [r3, r5]
- cmp r2, r1
+ cmp r2, r9
cmpne r2, r3
- beq .L1420
+ beq .L1450
mov r1, r8
- mov r0, r9
+ mov r0, r10
bl sftl_printk
- ldrh r3, [r10]
+ ldrh r3, [r4, #28]
cmp r3, r6
- beq .L1420
- ldr r3, .L1427+20
- ldrh r2, [r3]
- cmp r2, r6
- beq .L1420
- ldrh r3, [r3, #-48]
+ beq .L1450
+ ldrh r3, [r4, #128]
+ cmp r3, r6
+ beq .L1450
+ ldrh r3, [r4, #80]
cmp r3, r6
- beq .L1420
- ldr r3, [r4, #2324]
+ beq .L1450
+ ldr r3, [r4, #76]
ldrh r2, [r3, r5]
cmp r2, #0
ldr r2, [r4, #3356]
ldrh r2, [r2, r5]
strh r2, [r3, r5] @ movhi
- bne .L1422
-.L1420:
+ bne .L1452
+.L1450:
add r7, r7, #1
- b .L1418
-.L1422:
+ b .L1448
+.L1452:
mov r0, r8
bl update_vpc_list
- b .L1420
-.L1428:
+ b .L1450
+.L1458:
.align 2
-.L1427:
+.L1457:
.word .LANCHOR0
.word .LANCHOR1+486
- .word .LC101
.word .LC111
- .word .LANCHOR0+2348
- .word .LANCHOR0+2444
+ .word .LC121
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 2
.global allocate_new_data_superblock
@@ -9896,49 +10195,49 @@ allocate_new_data_superblock:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1439
+ ldr r4, .L1469
mov r6, r0
ldrh r5, [r0]
- ldrh r3, [r4, #40]
+ ldrh r3, [r4, #244]
cmp r3, r5
- bcs .L1430
- movw r2, #2760
- ldr r1, .L1439+4
- ldr r0, .L1439+8
+ bcs .L1460
+ movw r2, #2755
+ ldr r1, .L1469+4
+ ldr r0, .L1469+8
bl sftl_printk
-.L1430:
+.L1460:
movw r3, #65535
cmp r5, r3
- beq .L1431
- ldr r2, [r4, #2324]
+ beq .L1461
+ ldr r2, [r4, #76]
lsl r3, r5, #1
mov r0, r5
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1432
+ beq .L1462
bl INSERT_DATA_LIST
-.L1431:
+.L1461:
mov r3, #1
strb r3, [r6, #8]
movw r3, #3442
ldrh r0, [r4, r3]
movw r3, #65535
cmp r0, r3
- beq .L1433
+ beq .L1463
cmp r5, r0
- bne .L1434
- ldr r2, [r4, #2324]
+ bne .L1464
+ ldr r2, [r4, #76]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1435
-.L1434:
+ beq .L1465
+.L1464:
bl update_vpc_list
-.L1435:
+.L1465:
mvn r2, #0
movw r3, #3442
strh r2, [r4, r3] @ movhi
-.L1433:
+.L1463:
mov r0, r6
bl allocate_data_superblock
bl l2p_flush
@@ -9947,15 +10246,15 @@ allocate_new_data_superblock:
bl FtlVpcTblFlush
mov r0, #0
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1432:
+.L1462:
bl INSERT_FREE_LIST
- b .L1431
-.L1440:
+ b .L1461
+.L1470:
.align 2
-.L1439:
+.L1469:
.word .LANCHOR0
.word .LANCHOR1+507
- .word .LC1
+ .word .LC8
.size allocate_new_data_superblock, .-allocate_new_data_superblock
.align 2
.global FtlProgPages
@@ -9964,127 +10263,109 @@ allocate_new_data_superblock:
.fpu softvfp
.type FtlProgPages, %function
FtlProgPages:
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #8
- mov r7, #0
- ldr r6, .L1455
- mov r4, r3
- ldr r10, .L1455+4
+ sub sp, sp, #4
+ mov r6, #0
+ ldr r8, .L1484
+ mov r5, r3
mov r2, #0
ldrb r3, [r3, #9] @ zero_extendqisi2
- mov r5, r0
+ mov r4, r0
mov r9, r1
bl FlashProgPages
-.L1442:
- cmp r7, r9
- beq .L1449
- mov r8, #0
- b .L1450
-.L1445:
- ldr r0, [r5, #4]
+.L1472:
+ cmp r6, r9
+ beq .L1478
+ ldr r7, .L1484+4
+ b .L1479
+.L1474:
+ ldr r1, [r4, #4]
+ mov r0, r7
+ bl sftl_printk
+ ldr r0, [r4, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldrh r3, [r4]
- cmp r3, r0
- bne .L1443
- ldr r1, [r6, #2324]
- lsl r3, r3, #1
- ldrh r0, [r4, #4]
- ldrh r2, [r1, r3]
- sub r2, r2, r0
- strh r2, [r1, r3] @ movhi
- ldrh r3, [r6, #102]
- strb r8, [r4, #6]
- strh r8, [r4, #4] @ movhi
- strh r3, [r4, #2] @ movhi
-.L1443:
- ldrh r3, [r4, #4]
+ bl decrement_vpc_count
+ ldrh r3, [r5, #4]
cmp r3, #0
- bne .L1444
- mov r0, r4
+ bne .L1473
+ mov r0, r5
bl allocate_new_data_superblock
-.L1444:
- ldr r3, [r6, #2736]
- add r3, r3, #1
- str r3, [r6, #2736]
- ldr r0, [r5, #4]
- ubfx r0, r0, #10, #16
- bl FtlGcMarkBadPhyBlk
- mov r0, r4
+.L1473:
+ mov r0, r5
bl get_new_active_ppa
mov r2, #0
- str r0, [r5, #4]
+ str r0, [r4, #4]
str r0, [fp, #-44]
mov r1, #1
- ldrb r3, [r4, #9] @ zero_extendqisi2
- mov r0, r5
+ ldrb r3, [r5, #9] @ zero_extendqisi2
+ mov r0, r4
bl FlashProgPages
-.L1450:
- ldr r3, [r5]
- cmn r3, #1
- beq .L1445
- ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r6, #32]
+.L1479:
+ ldr r2, [r4]
+ cmn r2, #1
+ cmpne r2, #256
+ beq .L1474
+ ldrb r2, [r5, #6] @ zero_extendqisi2
+ ldrh r3, [r8, #236]
cmp r2, r3
- bcc .L1446
- mov r2, #960
- mov r1, r10
- ldr r0, .L1455+8
+ bcc .L1475
+ movw r2, #982
+ ldr r1, .L1484+8
+ ldr r0, .L1484+12
bl sftl_printk
-.L1446:
- ldr r3, [r5, #4]
+.L1475:
+ ldr r3, [r4, #4]
sub r1, fp, #40
mov r2, #1
- ldr r0, [r5, #16]
+ ldr r0, [r4, #16]
str r3, [r1, #-4]!
bl log2phys
- ldr r3, [r5, #12]
- ldr r3, [r3, #12]
- ubfx r0, r3, #10, #16
- str r3, [fp, #-48]
+ ldr r3, [r4, #12]
+ ldr r10, [r3, #12]
+ ubfx r0, r10, #10, #16
bl P2V_block_in_plane
- ldr r3, [fp, #-48]
- mov r8, r0
- cmn r3, #1
- beq .L1447
- ldr r2, [r6, #2324]
+ cmn r10, #1
+ mov r7, r0
+ beq .L1476
+ ldr r2, [r8, #76]
lsl r3, r0, #1
ldrh r2, [r2, r3]
cmp r2, #0
- bne .L1448
+ bne .L1477
mov r1, r0
- ldr r0, .L1455+12
+ ldr r0, .L1484+16
bl sftl_printk
-.L1448:
- mov r0, r8
+.L1477:
+ mov r0, r7
bl decrement_vpc_count
-.L1447:
- add r7, r7, #1
- add r5, r5, #20
- b .L1442
-.L1449:
- ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r6, #32]
+.L1476:
+ add r6, r6, #1
+ add r4, r4, #20
+ b .L1472
+.L1478:
+ ldr r3, .L1484
+ ldrb r2, [r5, #6] @ zero_extendqisi2
+ ldrh r3, [r3, #236]
cmp r2, r3
- bcc .L1441
- movw r2, #975
- ldr r1, .L1455+4
- ldr r0, .L1455+8
+ ldmibcc sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+ movw r2, #997
+ ldr r1, .L1484+8
+ ldr r0, .L1484+12
bl sftl_printk
-.L1441:
- sub sp, fp, #40
- ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1456:
+ ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
+.L1485:
.align 2
-.L1455:
+.L1484:
.word .LANCHOR0
+ .word .LC122
.word .LANCHOR1+536
- .word .LC1
- .word .LC112
+ .word .LC8
+ .word .LC123
.size FtlProgPages, .-FtlProgPages
.align 2
.global FtlGcFreeTempBlock
@@ -10099,203 +10380,164 @@ FtlGcFreeTempBlock:
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
sub sp, sp, #4
- movw r3, #2444
- ldr r4, .L1483
- movw r2, #65535
- ldrh r5, [r4, r3]
- ldrh r1, [r4, #102]
- cmp r5, r2
- bne .L1458
-.L1468:
+ movw r3, #306
+ ldr r4, .L1510
+ ldrh r2, [r4, #128]
+ ldrh r1, [r4, r3]
+ movw r3, #65535
+ cmp r2, r3
+ bne .L1487
+.L1494:
+ ldrh r2, [r4, #128]
mov r3, #0
str r3, [r4, #3448]
- movw r3, #2444
- ldrh r2, [r4, r3]
movw r3, #65535
cmp r2, r3
- bne .L1481
-.L1459:
+ bne .L1507
+.L1488:
mov r0, #0
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1458:
+.L1487:
cmp r0, #0
- beq .L1461
- ldr r3, .L1483+4
- ldrh r0, [r3, #4]
- cmp r0, r2
- beq .L1462
-.L1463:
+ ldr r5, .L1510+4
+ beq .L1490
+ ldrh r2, [r5, #4]
+ cmp r2, r3
+ beq .L1491
+.L1492:
mov r1, #2
-.L1461:
- ldr r0, .L1483+8
+.L1490:
+ ldr r0, .L1510+8
bl FtlGcScanTempBlk
- cmn r0, #1
+ ldrh r2, [r5, #4]
+ movw r3, #65535
str r0, [fp, #-44]
- beq .L1464
- ldr r2, [r4, #2328]
- lsl r5, r5, #1
- ldrh r3, [r2, r5]
- cmp r3, #4
- bls .L1465
- sub r3, r3, #5
- mov r0, #1
- strh r3, [r2, r5] @ movhi
- bl FtlEctTblFlush
-.L1465:
- ldr r3, [r4, #3448]
- cmp r3, #0
- bne .L1466
- ldr r3, [r4, #2736]
- ldr r0, [fp, #-44]
- add r3, r3, #1
- ubfx r0, r0, #10, #16
- str r3, [r4, #2736]
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
-.L1466:
- mov r3, #0
- str r3, [r4, #3448]
-.L1477:
+ cmp r2, r3
+ beq .L1494
mov r0, #1
ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1462:
- mov r2, #0
- strh r2, [r3, #4] @ movhi
- movw r3, #2344
- ldrh r3, [r4, r3]
+.L1491:
+ mov r3, #0
+ strh r3, [r5, #4] @ movhi
+ ldrh r3, [r4, #228]
cmp r3, #17
- bhi .L1463
- b .L1461
-.L1464:
- ldr r3, .L1483+4
- ldrh r2, [r3, #4]
- movw r3, #65535
- cmp r2, r3
- bne .L1477
- b .L1468
-.L1481:
- movw r3, #3204
- ldrb r1, [r4, #2451] @ zero_extendqisi2
+ bhi .L1492
+ b .L1490
+.L1507:
+ movw r3, #3208
+ ldrb r1, [r4, #135] @ zero_extendqisi2
ldrh r2, [r4, r3]
- ldrh r3, [r4, #102]
+ movw r3, #306
+ ldrh r3, [r4, r3]
mul r3, r3, r1
cmp r2, r3
- beq .L1469
- mov r2, #162
- ldr r1, .L1483+12
- ldr r0, .L1483+16
+ beq .L1495
+ mov r2, #164
+ ldr r1, .L1510+12
+ ldr r0, .L1510+16
bl sftl_printk
-.L1469:
- ldrb r2, [r4, #2451] @ zero_extendqisi2
- movw r3, #2444
- ldrh r0, [r4, #102]
- mov r6, #0
- ldrh r3, [r4, r3]
- ldr r1, [r4, #2324]
- ldr r9, .L1483+20
+.L1495:
+ movw r0, #306
+ ldrb r2, [r4, #135] @ zero_extendqisi2
+ ldrh r0, [r4, r0]
+ mov r5, #0
+ ldrh r3, [r4, #128]
+ mov r9, #12
+ ldr r1, [r4, #76]
+ ldr r8, .L1510+20
smulbb r2, r2, r0
- ldr r10, .L1483+12
lsl r3, r3, #1
strh r2, [r1, r3] @ movhi
- movw r3, #3204
- ldr r2, [r4, #2528]
+ movw r3, #3208
+ ldr r2, [r4, #2580]
ldrh r3, [r4, r3]
add r3, r3, r2
- str r3, [r4, #2528]
-.L1470:
- ldrh r2, [r9]
- uxth r3, r6
+ str r3, [r4, #2580]
+.L1496:
+ ldrh r2, [r8]
+ uxth r3, r5
cmp r2, r3
- bhi .L1474
+ bhi .L1500
movw r0, #65535
bl decrement_vpc_count
- movw r3, #2444
- ldr r1, [r4, #2324]
- ldrh r0, [r4, r3]
- mov r5, r3
- lsl r2, r0, #1
- ldrh r2, [r1, r2]
- cmp r2, #0
- beq .L1475
+ ldrh r0, [r4, #128]
+ ldr r2, [r4, #76]
+ lsl r3, r0, #1
+ ldrh r3, [r2, r3]
+ cmp r3, #0
+ beq .L1501
bl INSERT_DATA_LIST
-.L1476:
- mvn r6, #0
- movw r3, #3204
- strh r6, [r4, r5] @ movhi
+.L1502:
+ ldr r6, .L1510+24
+ movw r3, #3208
+ mvn r7, #0
mov r5, #0
strh r5, [r4, r3] @ movhi
- movw r3, #3196
- strh r5, [r4, r3] @ movhi
+ strh r5, [r6] @ movhi
+ sub r6, r6, #576
+ strh r7, [r4, #128] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
- movw r2, #2344
- ldr r3, .L1483+24
- ldrh r1, [r4, r2]
- movw r2, #2572
- ldrh r2, [r4, r2]
- strh r6, [r3] @ movhi
- add r2, r2, r2, lsl #1
- cmp r1, r2, asr #2
- addgt r3, r3, #560
+ ldrh r3, [r6]
+ ldrh r2, [r4, #228]
+ strh r7, [r4, #176] @ movhi
+ add r3, r3, r3, lsl #1
+ cmp r2, r3, asr #2
movgt r2, #20
- strhgt r2, [r3] @ movhi
- b .L1459
-.L1474:
- uxth r3, r6
- mov r7, #12
- ldr r8, [r4, #3200]
- mul r7, r7, r3
- ldr r3, [r4, #2504]
- add r5, r8, r7
- ldr r2, [r5, #8]
- cmp r2, r3
- bcc .L1471
- mov r2, #168
- mov r1, r10
- ldr r0, .L1483+16
- bl sftl_printk
-.L1471:
+ movwgt r3, #3156
+ strhgt r2, [r4, r3] @ movhi
+ b .L1488
+.L1500:
+ uxth r7, r5
+ ldr r10, [r4, #3204]
+ ldr r3, [r4, #2556]
+ mul r7, r9, r7
+ add r6, r10, r7
+ ldr r0, [r6, #8]
+ cmp r0, r3
+ bcc .L1497
+.L1508:
+ ldrh r0, [r4, #128]
+ b .L1509
+.L1497:
mov r2, #0
sub r1, fp, #44
- ldr r0, [r5, #8]
bl log2phys
ldr r3, [fp, #-44]
- ldr r0, [r8, r7]
+ ldr r0, [r10, r7]
cmp r0, r3
- bne .L1472
+ bne .L1499
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
mov r2, #1
mov r7, r0
- add r1, r5, #4
- ldr r0, [r5, #8]
+ add r1, r6, #4
+ ldr r0, [r6, #8]
bl log2phys
mov r0, r7
-.L1482:
+.L1509:
bl decrement_vpc_count
-.L1473:
- add r6, r6, #1
- b .L1470
-.L1472:
- ldr r2, [r5, #4]
+ b .L1498
+.L1499:
+ ldr r2, [r6, #4]
cmp r3, r2
- beq .L1473
- ldr r3, .L1483+8
- ldrh r0, [r3]
- b .L1482
-.L1475:
+ bne .L1508
+.L1498:
+ add r5, r5, #1
+ b .L1496
+.L1501:
bl INSERT_FREE_LIST
- b .L1476
-.L1484:
+ b .L1502
+.L1511:
.align 2
-.L1483:
+.L1510:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR0+2444
+ .word .LANCHOR0+128
.word .LANCHOR1+549
- .word .LC1
- .word .LANCHOR0+3204
- .word .LANCHOR0+2592
+ .word .LC8
+ .word .LANCHOR0+3208
+ .word .LANCHOR0+3200
.size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
.align 2
.global FtlGcPageRecovery
@@ -10309,27 +10551,27 @@ FtlGcPageRecovery:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1487
- ldr r5, .L1487+4
- ldrh r1, [r4, #102]
- mov r0, r5
+ ldr r4, .L1514
+ movw r5, #306
+ ldrh r1, [r4, r5]
+ add r0, r4, #128
bl FtlGcScanTempBlk
- ldrh r2, [r5, #2]
- ldrh r3, [r4, #102]
+ ldrh r2, [r4, #130]
+ ldrh r3, [r4, r5]
cmp r2, r3
ldmfdcc sp, {r4, r5, fp, sp, pc}
- add r0, r5, #952
+ ldr r0, .L1514+4
bl FtlMapBlkWriteDump_data
mov r0, #0
bl FtlGcFreeTempBlock
mov r3, #0
str r3, [r4, #3448]
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1488:
+.L1515:
.align 2
-.L1487:
+.L1514:
.word .LANCHOR0
- .word .LANCHOR0+2444
+ .word .LANCHOR0+3396
.size FtlGcPageRecovery, .-FtlGcPageRecovery
.align 2
.global FtlPowerLostRecovery
@@ -10343,16 +10585,14 @@ FtlPowerLostRecovery:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1490
- mov r6, #0
- add r5, r4, #2336
- str r6, [r4, #3480]
- add r5, r5, #12
- add r4, r4, #2384
- mov r0, r5
- add r4, r4, #12
+ ldr r4, .L1517
+ mov r5, #0
+ add r6, r4, #28
+ str r5, [r4, #3480]
+ mov r0, r6
+ add r4, r4, #80
bl FtlRecoverySuperblock
- mov r0, r5
+ mov r0, r6
bl FtlSlcSuperblockCheck
mov r0, r4
bl FtlRecoverySuperblock
@@ -10361,11 +10601,11 @@ FtlPowerLostRecovery:
bl FtlGcPageRecovery
movw r0, #65535
bl decrement_vpc_count
- mov r0, r6
+ mov r0, r5
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1491:
+.L1518:
.align 2
-.L1490:
+.L1517:
.word .LANCHOR0
.size FtlPowerLostRecovery, .-FtlPowerLostRecovery
.align 2
@@ -10380,70 +10620,47 @@ Ftl_gc_temp_data_write_back:
mov ip, sp
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1499
+ ldr r4, .L1527
mov r3, #0
mov r5, #0
mov r6, #20
mov r2, r3
- ldr r1, [r4, #3168]
+ ldr r1, [r4, #3172]
ldr r0, [r4, #3296]
bl FlashProgPages
-.L1493:
- ldr r1, [r4, #3168]
+.L1520:
+ ldr r1, [r4, #3172]
uxth r3, r5
cmp r1, r3
- bhi .L1496
+ bhi .L1523
ldr r0, [r4, #3296]
bl FtlGcBufFree
- ldr r3, .L1499+4
+ ldrh r3, [r4, #132]
mov r0, #0
- str r0, [r4, #3168]
- ldrh r3, [r3, #4]
+ str r0, [r4, #3172]
cmp r3, r0
ldmfdne sp, {r4, r5, r6, fp, sp, pc}
mov r0, #1
bl FtlGcFreeTempBlock
- b .L1498
-.L1496:
+ mov r0, #1
+ ldmfd sp, {r4, r5, r6, fp, sp, pc}
+.L1523:
mul r3, r6, r3
ldr r2, [r4, #3296]
add r5, r5, #1
- ldr r0, [r2, r3]
add r1, r2, r3
- cmn r0, #1
- bne .L1494
- movw r1, #2444
- ldr ip, [r4, #2324]
- ldrh r2, [r4, r1]
- mov lr, #0
- lsl r2, r2, #1
- strh lr, [ip, r2] @ movhi
- ldr r2, [r4, #2736]
- strh r0, [r4, r1] @ movhi
- add r2, r2, #1
- str r2, [r4, #2736]
- ldr r2, [r4, #3296]
- add r3, r2, r3
- ldr r0, [r3, #4]
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- bl FtlGcPageVarInit
-.L1498:
- mov r0, #1
- ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1494:
- ldr r3, [r1, #12]
+ ldr r2, [r2, r3]
+ ldr r0, [r1, #12]
ldr r1, [r1, #4]
- ldr r2, [r3, #8]
- ldr r0, [r3, #12]
+ cmn r2, #1
+ ldrne r2, [r0, #8]
+ ldr r0, [r0, #12]
bl FtlGcUpdatePage
- b .L1493
-.L1500:
+ b .L1520
+.L1528:
.align 2
-.L1499:
+.L1527:
.word .LANCHOR0
- .word .LANCHOR0+2444
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
.align 2
.global Ftl_get_new_temp_ppa
@@ -10457,40 +10674,39 @@ Ftl_get_new_temp_ppa:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1504
- movw r3, #2444
- ldrh r2, [r4, r3]
+ ldr r4, .L1532
movw r3, #65535
+ ldrh r2, [r4, #128]
cmp r2, r3
- beq .L1502
- ldr r3, .L1504+4
- ldrh r3, [r3, #4]
+ beq .L1530
+ ldrh r3, [r4, #132]
cmp r3, #0
- bne .L1503
-.L1502:
+ bne .L1531
+.L1530:
mov r0, #0
mov r5, #0
bl FtlGcFreeTempBlock
- ldr r0, .L1504+4
- strb r5, [r4, #2452]
+ ldr r0, .L1532+4
+ strb r5, [r4, #136]
bl allocate_data_superblock
- movw r3, #3196
- strh r5, [r4, r3] @ movhi
- movw r3, #3204
+ ldr r3, .L1532+8
+ strh r5, [r3] @ movhi
+ movw r3, #3208
strh r5, [r4, r3] @ movhi
bl l2p_flush
mov r0, r5
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1503:
- ldr r0, .L1504+4
+.L1531:
+ ldr r0, .L1532+4
bl get_new_active_ppa
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1505:
+.L1533:
.align 2
-.L1504:
+.L1532:
.word .LANCHOR0
- .word .LANCHOR0+2444
+ .word .LANCHOR0+128
+ .word .LANCHOR0+3200
.size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
.align 2
.global rk_ftl_garbage_collect
@@ -10499,547 +10715,533 @@ Ftl_get_new_temp_ppa:
.fpu softvfp
.type rk_ftl_garbage_collect, %function
rk_ftl_garbage_collect:
- @ args = 0, pretend = 0, frame = 28
+ @ args = 0, pretend = 0, frame = 32
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #36
- ldr r3, .L1625
- str r0, [fp, #-60]
+ sub sp, sp, #40
+ ldr r3, .L1662
+ str r0, [fp, #-64]
ldr r0, [r3, #3276]
mov r4, r3
cmp r0, #0
movne r0, #0
- bne .L1506
- add r2, r3, #2336
- ldrh r2, [r2]
+ bne .L1534
+ movw r2, #2532
+ ldrh r2, [r3, r2]
cmp r2, #47
- bls .L1506
- ldr r2, .L1625+4
+ bls .L1534
+ ldr r2, .L1662+4
ldrh r1, [r2, #4]
movw r2, #65535
cmp r1, r2
- bne .L1508
-.L1511:
- movw r3, #3208
- movw r0, #65535
- ldrh r1, [r4, r3]
- cmp r1, r0
- bne .L1509
-.L1510:
+ bne .L1536
+.L1539:
+ ldrh r3, [r4, #224]
+ movw r2, #65535
+ cmp r3, r2
+ bne .L1537
+.L1538:
bl FtlReadRefresh
- ldr r3, [r4, #3156]
- movw r5, #65535
- ldr r2, [fp, #-60]
- ldr r7, .L1625+8
+ ldr r3, [r4, #3160]
+ movw r6, #65535
+ ldr r2, [fp, #-64]
add r3, r3, #1
add r3, r3, r2, lsl #7
- ldrh r2, [r7]
- str r3, [r4, #3156]
- cmp r2, r5
- bne .L1512
- movw r1, #2444
- ldrh r5, [r4, r1]
- cmp r5, r2
- movne r5, r2
- bne .L1512
- movw r2, #3206
- ldrh r6, [r4, r2]
- cmp r6, r5
- bne .L1512
- movw r10, #2344
- ldrh r2, [r4, r10]
+ ldrh r2, [r4, #176]
+ str r3, [r4, #3160]
+ cmp r2, r6
+ bne .L1540
+ ldrh r6, [r4, #128]
+ cmp r6, r2
+ movne r6, r2
+ bne .L1540
+ ldrh r5, [r4, #226]
+ cmp r5, r6
+ bne .L1540
+ ldrh r2, [r4, #228]
cmp r2, #24
movcc r2, #5120
movcs r2, #1024
cmp r3, r2
- movls r5, r6
- bls .L1512
- mov r9, #0
- add r3, r7, #1072
- str r9, [r4, #3156]
- strh r9, [r3] @ movhi
+ movls r6, r5
+ bls .L1540
+ ldr r3, .L1662+8
+ mov r8, #0
+ str r8, [r4, #3160]
+ strh r8, [r3] @ movhi
bl GetSwlReplaceBlock
- cmp r0, r6
- mov r5, r0
- movne r6, r0
- bne .L1514
- movw r8, #3154
- ldrh r2, [r4, r10]
- ldrh r3, [r4, r8]
+ cmp r0, r5
+ mov r6, r0
+ movne r5, r0
+ bne .L1542
+ movw r7, #3158
+ ldrh r2, [r4, #228]
+ ldrh r3, [r4, r7]
cmp r2, r3
- bcs .L1515
+ bcs .L1543
mov r0, #64
bl List_get_gc_head_node
uxth r3, r0
- cmp r3, r5
- beq .L1517
+ cmp r3, r6
+ beq .L1545
mov r0, r3
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
lsl r0, r0, #1
ldrh r3, [r3, r0]
cmp r3, #7
- bhi .L1518
- mov r0, r9
+ bhi .L1546
+ mov r0, r8
bl List_get_gc_head_node
- uxth r6, r0
+ uxth r5, r0
mov r3, #128
- strh r3, [r4, r8] @ movhi
- cmp r6, r5
- bne .L1514
-.L1517:
+ strh r3, [r4, r7] @ movhi
+ cmp r5, r6
+ bne .L1542
+.L1545:
bl FtlGcReFreshBadBlk
-.L1512:
+.L1540:
movw r1, #65535
- ldr r2, [fp, #-60]
- sub r3, r5, r1
+ ldr r2, [fp, #-64]
+ sub r3, r6, r1
clz r3, r3
lsr r3, r3, #5
cmp r2, #0
movne r2, #0
andeq r2, r3, #1
cmp r2, #0
- beq .L1520
- movw r3, #2344
- ldrh r3, [r4, r3]
+ beq .L1548
+ ldrh r3, [r4, #228]
cmp r3, #24
- movhi r6, #1
- bhi .L1521
- ldrh r6, [r4, #102]
+ movhi r5, #1
+ bhi .L1549
+ movw r2, #306
cmp r3, #16
- lsrhi r6, r6, #5
- bhi .L1521
+ ldrh r5, [r4, r2]
+ lsrhi r5, r5, #5
+ bhi .L1549
cmp r3, #12
- lsrhi r6, r6, #4
- bhi .L1521
+ lsrhi r5, r5, #4
+ bhi .L1549
cmp r3, #8
- lsrhi r6, r6, #2
-.L1521:
- ldr r1, .L1625+12
- ldrh r2, [r1]
- cmp r2, r3
- mov r2, r1
- bcs .L1525
- movw r3, #2444
- movw r0, #65535
- ldrh r3, [r4, r3]
- cmp r3, r0
- bne .L1526
- movw r0, #3206
- ldrh r0, [r4, r0]
- cmp r0, r3
- bne .L1526
- add r3, r1, #512
+ lsrhi r5, r5, #2
+.L1549:
+ movw r2, #3156
+ ldrh r1, [r4, r2]
+ cmp r1, r3
+ bcs .L1553
+ ldrh r3, [r4, #128]
+ movw r1, #65535
+ cmp r3, r1
+ bne .L1554
+ ldrh r1, [r4, #226]
+ cmp r1, r3
+ bne .L1554
+ ldr r3, .L1662+8
ldrh r0, [r3]
cmp r0, #0
- bne .L1527
- ldr r3, [r4, #2504]
- ldr ip, [r4, #2500]
+ bne .L1555
+ ldr r3, [r4, #2556]
+ ldr r1, [r4, #2552]
add r3, r3, r3, lsl #1
- cmp ip, r3, lsr #2
+ cmp r1, r3, lsr #2
movcs r3, #18
- strhcs r3, [r1] @ movhi
- bcs .L1529
-.L1527:
- movw r3, #2572
- ldrh r3, [r4, r3]
+ bcs .L1655
+.L1555:
+ ldr r3, .L1662+12
+ movw r2, #3156
+ ldrh r3, [r3]
add r3, r3, r3, lsl #1
asr r3, r3, #2
- strh r3, [r2] @ movhi
-.L1529:
+.L1655:
+ strh r3, [r4, r2] @ movhi
mov r3, #0
- str r3, [r4, #3164]
-.L1506:
+ str r3, [r4, #3168]
+.L1534:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1508:
- movw r1, #2444
- ldrh r3, [r3, r1]
+.L1536:
+ ldrh r3, [r3, #128]
cmp r3, r2
- beq .L1511
+ beq .L1539
mov r0, #1
bl FtlGcFreeTempBlock
cmp r0, #0
- beq .L1511
+ beq .L1539
mov r0, #1
- b .L1506
-.L1509:
- movw r2, #3206
- ldrh ip, [r4, r2]
- cmp ip, r0
- strheq r1, [r4, r2] @ movhi
- mvneq r2, #0
- strheq r2, [r4, r3] @ movhi
- b .L1510
-.L1518:
+ b .L1534
+.L1537:
+ ldrh r1, [r4, #226]
+ cmp r1, r2
+ strheq r3, [r4, #226] @ movhi
+ mvneq r3, #0
+ strheq r3, [r4, #224] @ movhi
+ b .L1538
+.L1546:
mov r3, #64
-.L1618:
- strh r3, [r4, r8] @ movhi
- b .L1517
-.L1515:
+.L1654:
+ strh r3, [r4, r7] @ movhi
+ b .L1545
+.L1543:
mov r3, #80
- b .L1618
-.L1514:
- ldr r0, .L1625+12
- lsl r1, r6, #1
- ldr r3, [r4, #2324]
- movw r2, #2344
- ldrh r2, [r4, r2]
- mov r5, r6
- ldrh r0, [r0]
+ b .L1654
+.L1542:
+ movw r0, #3156
+ ldr r3, [r4, #76]
+ ldrh r0, [r4, r0]
+ lsl r1, r5, #1
+ ldrh r2, [r4, #228]
+ mov r6, r5
ldrh r3, [r3, r1]
str r0, [sp, #4]
- ldr r0, [r4, #2328]
+ ldr r0, [r4, #2540]
ldrh r1, [r0, r1]
- ldr r0, .L1625+16
+ ldr r0, .L1662+16
str r1, [sp]
- mov r1, r6
+ mov r1, r5
bl sftl_printk
- b .L1517
-.L1526:
- movw r3, #2572
- ldrh r3, [r4, r3]
+ b .L1545
+.L1554:
+ ldr r3, .L1662+12
+ movw r2, #3156
+ ldrh r3, [r3]
add r3, r3, r3, lsl #1
asr r3, r3, #2
- strh r3, [r2] @ movhi
-.L1525:
+ strh r3, [r4, r2] @ movhi
+.L1553:
movw r3, #3210
- movw r5, #65535
+ movw r6, #65535
ldrh r3, [r4, r3]
cmp r3, #0
- addne r6, r6, #32
- uxthne r6, r6
-.L1531:
- ldrh r3, [r7]
+ addne r5, r5, #32
+ uxthne r5, r5
+.L1559:
+ ldrh r3, [r4, #176]
movw r2, #65535
cmp r3, r2
- bne .L1540
- cmp r5, r3
- strhne r5, [r7] @ movhi
- bne .L1542
- movw r2, #3206
- ldrh r3, [r4, r2]
- cmp r3, r5
- beq .L1542
- ldr r1, [r4, #2324]
+ bne .L1568
+ cmp r6, r3
+ strhne r6, [r4, #176] @ movhi
+ bne .L1570
+ ldrh r3, [r4, #226]
+ cmp r3, r6
+ beq .L1570
+ ldr r2, [r4, #76]
lsl r3, r3, #1
- ldrh r3, [r1, r3]
+ ldrh r3, [r2, r3]
cmp r3, #0
mvneq r3, #0
- strheq r3, [r4, r2] @ movhi
- movw r3, #3206
- ldrh r2, [r4, r3]
- strh r2, [r7] @ movhi
- mvn r2, #0
- strh r2, [r4, r3] @ movhi
-.L1542:
- ldrh r0, [r7]
+ strheq r3, [r4, #226] @ movhi
+ ldrh r3, [r4, #226]
+ strh r3, [r4, #176] @ movhi
+ mvn r3, #0
+ strh r3, [r4, #226] @ movhi
+.L1570:
+ ldrh r0, [r4, #176]
mov r3, #0
- strb r3, [r4, #2600]
+ strb r3, [r4, #184]
movw r3, #65535
cmp r0, r3
- beq .L1540
+ beq .L1568
bl IsBlkInGcList
cmp r0, #0
mvnne r3, #0
- strhne r3, [r7] @ movhi
+ strhne r3, [r4, #176] @ movhi
movw r3, #65535
- ldrh r2, [r7]
+ ldrh r2, [r4, #176]
cmp r2, r3
- beq .L1540
- ldr r0, .L1625+8
+ beq .L1568
+ ldr r0, .L1662+20
bl make_superblock
mov r3, #0
movw r2, #3666
strh r3, [r4, r2] @ movhi
- strh r3, [r7, #2] @ movhi
- strb r3, [r4, #2598]
- ldrh r3, [r7]
- ldr r2, [r4, #2324]
+ strh r3, [r4, #178] @ movhi
+ strb r3, [r4, #182]
+ ldrh r3, [r4, #176]
+ ldr r2, [r4, #76]
lsl r3, r3, #1
ldrh r2, [r2, r3]
movw r3, #3668
strh r2, [r4, r3] @ movhi
-.L1540:
- movw r2, #2348
- ldrh r3, [r7]
- ldrh r2, [r4, r2]
+.L1568:
+ ldrh r3, [r4, #176]
+ ldrh r2, [r4, #28]
cmp r2, r3
- beq .L1546
- movw r2, #2396
- ldrh r2, [r4, r2]
+ beq .L1574
+ ldrh r2, [r4, #80]
cmp r2, r3
- bne .L1547
-.L1546:
+ beq .L1574
+ ldrh r2, [r4, #128]
+ cmp r2, r3
+ bne .L1575
+.L1574:
mvn r3, #0
- strh r3, [r7] @ movhi
-.L1547:
- ldr r4, .L1625
- add r7, r4, #2592
-.L1576:
- ldrh r2, [r7]
+ strh r3, [r4, #176] @ movhi
+.L1575:
+ ldr r4, .L1662
+ mov r7, r4
+.L1609:
+ ldrh r2, [r4, #176]
movw r3, #65535
cmp r2, r3
- bne .L1548
- ldr r10, .L1625+20
+ bne .L1576
+ ldr r10, .L1662+24
mov r3, #0
- str r3, [r4, #3164]
+ str r3, [r4, #3168]
mov r9, r10
-.L1549:
+.L1577:
ldrh r8, [r10]
mov r0, r8
bl List_get_gc_head_node
uxth r2, r0
movw r3, #65535
cmp r2, r3
- strh r2, [r7] @ movhi
- bne .L1550
+ strh r2, [r7, #176] @ movhi
+ bne .L1578
mov r3, #0
mov r0, #8
strh r3, [r10] @ movhi
- b .L1506
-.L1520:
- movw r0, #2444
- ldrh r8, [r4, r0]
- cmp r8, r1
- bne .L1590
- movw r1, #3206
- ldrh r1, [r4, r1]
- cmp r1, r8
+ b .L1534
+.L1548:
+ ldrh r7, [r4, #128]
+ cmp r7, r1
+ bne .L1623
+ ldrh r1, [r4, #226]
+ cmp r1, r7
movne r3, #0
andeq r3, r3, #1
cmp r3, #0
- beq .L1590
- ldrh r3, [r7]
- cmp r3, r8
- beq .L1532
-.L1537:
- mov r5, r8
-.L1590:
- mov r6, #1
- b .L1531
-.L1532:
- ldr r5, .L1625+12
- movw r3, #2344
- str r2, [r4, #3164]
- ldrh r2, [r4, r3]
+ beq .L1623
+ ldrh r3, [r4, #176]
+ cmp r3, r7
+ beq .L1560
+.L1565:
+ mov r6, r7
+.L1623:
+ mov r5, #1
+ b .L1559
+.L1560:
+ str r2, [r4, #3168]
+ movw r2, #3156
+ ldrh r1, [r4, #228]
+ ldrh r3, [r4, r2]
+ ldr r5, .L1662+8
+ cmp r1, r3
+ bls .L1561
ldrh r3, [r5]
- add r6, r5, #512
- cmp r2, r3
- bls .L1533
- ldrh r3, [r6]
cmp r3, #0
- bne .L1534
- ldr r3, [r4, #2504]
- ldr r2, [r4, #2500]
+ bne .L1562
+ ldr r3, [r4, #2556]
+ ldr r1, [r4, #2552]
add r3, r3, r3, lsl #1
- cmp r2, r3, lsr #2
+ cmp r1, r3, lsr #2
movcs r3, #18
- bcs .L1619
-.L1534:
- movw r3, #2572
- ldrh r3, [r4, r3]
+ bcs .L1656
+.L1562:
+ ldr r3, .L1662+12
+ movw r2, #3156
+ ldrh r3, [r3]
add r3, r3, r3, lsl #1
asr r3, r3, #2
-.L1619:
- strh r3, [r5] @ movhi
+.L1656:
+ strh r3, [r4, r2] @ movhi
bl FtlReadRefresh
mov r0, #0
bl List_get_gc_head_node
uxth r0, r0
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
lsl r0, r0, #1
ldrh r3, [r3, r0]
cmp r3, #4
- bls .L1533
-.L1622:
- ldrh r0, [r6]
- b .L1506
-.L1533:
- ldrh r0, [r6]
+ bls .L1561
+.L1659:
+ ldrh r0, [r5]
+ b .L1534
+.L1561:
+ ldrh r0, [r5]
cmp r0, #0
- bne .L1537
- movw r3, #2572
- ldrh r9, [r4, r3]
- add r3, r9, r9, lsl #1
+ bne .L1565
+ ldr r3, .L1662+12
+ movw r2, #3156
+ ldrh r6, [r3]
+ add r3, r6, r6, lsl #1
asr r3, r3, #2
- strh r3, [r5] @ movhi
+ strh r3, [r4, r2] @ movhi
bl List_get_gc_head_node
uxth r0, r0
- ldr r3, [r4, #2324]
- ldrh r1, [r4, #104]
+ ldr r3, [r4, #76]
lsl r0, r0, #1
ldrh r2, [r3, r0]
- ldrh r3, [r4, #32]
+ ldr r3, .L1662+28
+ ldrh r1, [r3]
+ ldrh r3, [r4, #236]
mul r3, r3, r1
add r3, r3, r3, lsr #31
cmp r2, r3, asr #1
- ble .L1538
- movw r3, #2344
- sub r9, r9, #1
- ldrh r3, [r4, r3]
- cmp r3, r9
- blt .L1538
+ ble .L1566
+ ldrh r3, [r4, #228]
+ sub r6, r6, #1
+ cmp r3, r6
+ blt .L1566
bl FtlReadRefresh
- b .L1622
-.L1538:
+ b .L1659
+.L1566:
cmp r2, #0
- bne .L1537
+ bne .L1565
movw r0, #65535
bl decrement_vpc_count
- movw r3, #2344
- ldrh r0, [r4, r3]
+ ldrh r0, [r4, #228]
add r0, r0, #1
- b .L1506
-.L1550:
+ b .L1534
+.L1578:
uxth r3, r0
- str r2, [fp, #-52]
+ str r2, [fp, #-56]
add r8, r8, #1
mov r0, r3
- str r3, [fp, #-48]
+ str r3, [fp, #-52]
bl IsBlkInGcList
cmp r0, #0
- ldr r3, [fp, #-48]
- ldr r2, [fp, #-52]
+ ldr r3, [fp, #-52]
+ ldr r2, [fp, #-56]
strhne r8, [r10] @ movhi
- bne .L1549
+ bne .L1577
lsl r0, r3, #1
- ldrh lr, [r4, #32]
- ldrh r3, [r4, #102]
+ ldr r3, .L1662+32
+ ldrh lr, [r7, #236]
uxth r8, r8
- ldr r1, [r4, #2324]
+ ldr r1, [r7, #76]
+ ldrh r3, [r3]
strh r8, [r10] @ movhi
- mul r3, lr, r3
ldrh ip, [r1, r0]
+ mul r3, lr, r3
add lr, r3, r3, lsr #31
cmp ip, lr, asr #1
- bgt .L1553
+ bgt .L1581
cmp ip, #8
cmphi r8, #48
- bls .L1554
- ldr ip, .L1625+24
+ bls .L1582
+ ldr ip, .L1662+36
ldrh ip, [ip]
cmp ip, #35
- bhi .L1554
-.L1553:
+ bhi .L1582
+.L1581:
mov ip, #0
strh ip, [r9] @ movhi
-.L1554:
+.L1582:
ldrh r1, [r1, r0]
movw r0, #65535
cmp r3, r1
- cmple r5, r0
- bne .L1555
+ cmple r6, r0
+ bne .L1583
ldrh r3, [r9]
cmp r3, #3
- bhi .L1555
+ bhi .L1583
mvn r3, #0
- strh r3, [r7] @ movhi
+ strh r3, [r7, #176] @ movhi
mov r3, #0
strh r3, [r9] @ movhi
-.L1624:
- ldr r3, .L1625+28
- b .L1623
-.L1555:
+.L1661:
+ ldr r3, .L1662+8
+ b .L1660
+.L1583:
cmp r1, #0
- bne .L1556
+ bne .L1584
movw r0, #65535
bl decrement_vpc_count
ldrh r3, [r9]
add r3, r3, #1
strh r3, [r9] @ movhi
- b .L1549
-.L1556:
+ b .L1577
+.L1584:
mov r3, #0
- strb r3, [r4, #2600]
- ldr r3, .L1625+32
- ldrh r3, [r3]
+ strb r3, [r7, #184]
+ ldrh r3, [r7, #28]
cmp r3, r2
- bne .L1557
- mov r2, #700
- ldr r1, .L1625+36
- ldr r0, .L1625+40
+ bne .L1585
+ movw r2, #717
+ ldr r1, .L1662+40
+ ldr r0, .L1662+44
bl sftl_printk
-.L1557:
- ldr r3, .L1625+44
- ldrh r2, [r7]
- ldrh r3, [r3]
+.L1585:
+ ldrh r2, [r7, #176]
+ ldrh r3, [r7, #80]
cmp r2, r3
- bne .L1558
- movw r2, #701
- ldr r1, .L1625+36
- ldr r0, .L1625+40
+ bne .L1586
+ movw r2, #718
+ ldr r1, .L1662+40
+ ldr r0, .L1662+44
bl sftl_printk
-.L1558:
- ldr r3, .L1625+48
- ldrh r2, [r7]
- ldrh r3, [r3]
+.L1586:
+ ldrh r2, [r7, #176]
+ ldrh r3, [r7, #128]
cmp r2, r3
- bne .L1559
- movw r2, #702
- ldr r1, .L1625+36
- ldr r0, .L1625+40
+ bne .L1587
+ movw r2, #719
+ ldr r1, .L1662+40
+ ldr r0, .L1662+44
bl sftl_printk
-.L1559:
- ldr r0, .L1625+8
+.L1587:
+ ldr r0, .L1662+20
bl make_superblock
- ldrh r2, [r7]
+ ldrh r2, [r7, #176]
mov r3, #0
- ldr r1, .L1625+52
- ldr r0, [r4, #2324]
+ ldr r1, .L1662+48
+ ldr r0, [r7, #76]
lsl r2, r2, #1
strh r3, [r1] @ movhi
ldrh r2, [r0, r2]
- strh r3, [r7, #2] @ movhi
- strb r3, [r4, #2598]
+ strh r3, [r7, #178] @ movhi
+ strb r3, [r7, #182]
strh r2, [r1, #2] @ movhi
-.L1548:
+.L1576:
mov r3, #1
- str r3, [r4, #3276]
- ldrh r3, [r4, #102]
- str r3, [fp, #-48]
- ldr r3, [fp, #-60]
+ str r3, [r7, #3276]
+ ldr r3, .L1662+32
+ ldrh r3, [r3]
+ str r3, [fp, #-52]
+ ldr r3, [fp, #-64]
cmp r3, #0
- beq .L1560
- ldr r2, [fp, #-48]
- ldrh r3, [r4, #32]
- ldr r1, [r4, #2324]
+ beq .L1588
+ ldr r2, [fp, #-52]
+ ldrh r3, [r7, #236]
+ ldr r1, [r7, #76]
mul r3, r2, r3
- ldrh r2, [r7]
+ ldrh r2, [r7, #176]
lsl r2, r2, #1
ldrh r2, [r1, r2]
sub r3, r3, r2
add r2, r3, #3
cmp r3, #0
movlt r3, r2
- add r6, r6, r3, asr #2
- uxth r6, r6
-.L1560:
- ldrh r3, [r7, #2]
- ldr r1, [fp, #-48]
- add r2, r3, r6
+ add r5, r5, r3, asr #2
+ uxth r5, r5
+.L1588:
+ ldrh r3, [r7, #178]
+ ldr r1, [fp, #-52]
+ add r2, r3, r5
cmp r2, r1
movgt r2, r1
- subgt r6, r2, r3
+ subgt r5, r2, r3
mov r3, #0
- uxthgt r6, r6
-.L1621:
- str r3, [fp, #-56]
- ldrh r3, [fp, #-56]
- cmp r6, r3
- bls .L1570
- ldr r3, [fp, #-56]
- add ip, r7, #14
- ldrh r1, [r7, #2]
+ uxthgt r5, r5
+.L1658:
+ str r3, [fp, #-60]
+ ldrh r3, [fp, #-60]
+ cmp r5, r3
+ bls .L1598
+ ldr r3, [fp, #-60]
mov lr, #20
- ldrh r9, [r4, #32]
- ldr r0, [r4, #3184]
+ ldrh r1, [r4, #178]
+ ldrh r9, [r4, #236]
+ ldr r0, [r4, #3188]
add r1, r1, r3
mov r3, #0
+ ldr ip, .L1662+52
mov r8, r3
- b .L1571
-.L1564:
+ b .L1599
+.L1592:
ldrh r2, [ip, #2]!
movw r10, #65535
add r3, r3, #1
@@ -11049,185 +11251,225 @@ rk_ftl_garbage_collect:
orrne r2, r1, r2, lsl #10
uxthne r8, r8
strne r2, [r10, #4]
-.L1571:
+.L1599:
uxth r2, r3
cmp r9, r2
- bhi .L1564
- ldrb r2, [r4, #2600] @ zero_extendqisi2
+ bhi .L1592
+ ldrb r2, [r4, #184] @ zero_extendqisi2
mov r1, r8
bl FlashReadPages
mov r3, #0
-.L1620:
- str r3, [fp, #-52]
- ldrh r3, [fp, #-52]
+.L1657:
+ str r3, [fp, #-56]
+ ldrh r3, [fp, #-56]
cmp r8, r3
- ldrls r3, [fp, #-56]
+ ldrls r3, [fp, #-60]
addls r3, r3, #1
- bls .L1621
-.L1569:
- ldr r3, [fp, #-52]
+ bls .L1658
+.L1597:
+ ldr r3, [fp, #-56]
mov r9, #20
mul r9, r9, r3
- ldr r3, [r4, #3184]
+ ldr r3, [r4, #3188]
add r2, r3, r9
ldr r3, [r3, r9]
cmn r3, #1
- beq .L1566
+ beq .L1594
ldr r10, [r2, #12]
movw r2, #61589
ldrh r1, [r10]
cmp r1, r2
- bne .L1566
+ bne .L1594
ldr ip, [r10, #8]
cmn ip, #1
- bne .L1567
- mov r2, #736
- ldr r1, .L1625+36
- ldr r0, .L1625+40
- str ip, [fp, #-64]
+ bne .L1595
+ movw r2, #753
+ ldr r1, .L1662+40
+ ldr r0, .L1662+44
+ str ip, [fp, #-68]
bl sftl_printk
- ldr ip, [fp, #-64]
-.L1567:
+ ldr ip, [fp, #-68]
+.L1595:
mov r2, #0
- sub r1, fp, #44
+ sub r1, fp, #48
mov r0, ip
bl log2phys
- ldr r0, [r4, #3184]
- ldr r2, [fp, #-44]
- add r0, r0, r9
- ldr r1, [r0, #4]
- cmp r1, r2
- bne .L1566
- ldr r3, .L1625+52
- mov r1, #20
- ldr ip, [r4, #3168]
- ldr r0, [r0, #16]
- ldrh r2, [r3]
+ ldr r2, [r4, #3188]
+ ldr r1, [fp, #-48]
+ add r2, r2, r9
+ ldr r0, [r2, #4]
+ cmp r0, r1
+ bne .L1594
+ ldr r3, .L1662+48
+ mov ip, #20
+ ldr r0, [r4, #3172]
+ ldr r2, [r2, #16]
+ ldrh r1, [r3]
+ str ip, [fp, #-72]
+ add r1, r1, #1
+ strh r1, [r3] @ movhi
+ ldr r1, [r4, #3296]
+ mla r1, ip, r0, r1
+ str r2, [r1, #16]
str r1, [fp, #-68]
- add r2, r2, #1
- strh r2, [r3] @ movhi
- ldr r2, [r4, #3296]
- mla r2, r1, ip, r2
- str r0, [r2, #16]
- str r2, [fp, #-64]
bl Ftl_get_new_temp_ppa
- ldr r2, [fp, #-64]
ldr r1, [fp, #-68]
- str r0, [r2, #4]
- ldr r0, [r4, #3168]
ldr r2, [r4, #3296]
- mla r1, r1, r0, r2
- ldr r2, [r4, #3184]
- add r2, r2, r9
- ldr r0, [r2, #8]
- str r0, [r1, #8]
- ldr r2, [r2, #12]
- str r2, [r1, #12]
- ldr r2, [fp, #-44]
- str r2, [r10, #12]
- ldr r2, .L1625+48
- ldrh r1, [r2]
- str r2, [fp, #-64]
- strh r1, [r10, #2] @ movhi
- ldr r1, [r4, #2544]
- ldr r3, [r4, #3168]
- ldr r0, [r4, #3184]
- str r1, [r10, #4]
+ ldr ip, [fp, #-72]
+ str r0, [r1, #4]
+ ldr r1, [r4, #3172]
+ mla r2, ip, r1, r2
+ ldr r1, [r4, #3188]
+ add r1, r1, r9
+ ldr r0, [r1, #8]
+ str r0, [r2, #8]
+ ldr r1, [r1, #12]
+ str r1, [r2, #12]
mov r1, #1
+ ldr r2, [fp, #-48]
+ str r2, [r10, #12]
+ ldrh r2, [r4, #128]
+ strh r2, [r10, #2] @ movhi
+ ldr r2, [r4, #2596]
+ ldr r3, [r4, #3172]
+ ldr r0, [r4, #3188]
+ str r2, [r10, #4]
add r3, r3, #1
add r0, r0, r9
- str r3, [r4, #3168]
+ str r3, [r4, #3172]
bl FtlGcBufAlloc
- ldrb r1, [r4, #2451] @ zero_extendqisi2
- ldr r3, [r4, #3168]
- cmp r1, r3
- beq .L1568
- ldr r2, [fp, #-64]
- ldrh r3, [r2, #4]
+ ldrb r2, [r4, #135] @ zero_extendqisi2
+ ldr r3, [r4, #3172]
+ cmp r2, r3
+ beq .L1596
+ ldrh r3, [r4, #132]
cmp r3, #0
- bne .L1566
-.L1568:
+ bne .L1594
+.L1596:
bl Ftl_gc_temp_data_write_back
cmp r0, #0
- beq .L1566
- ldr r3, .L1625
+ beq .L1594
+ ldr r3, .L1662
mov r2, #0
+ mvn r1, #0
str r2, [r3, #3276]
+ strh r1, [r3, #176] @ movhi
+ strh r2, [r3, #178] @ movhi
add r3, r3, #3664
-.L1623:
+.L1660:
ldrh r0, [r3]
- b .L1506
-.L1566:
- ldr r3, [fp, #-52]
+ b .L1534
+.L1594:
+ ldr r3, [fp, #-56]
add r3, r3, #1
- b .L1620
-.L1570:
- ldrh r3, [r7, #2]
- add r6, r6, r3
- ldr r3, [fp, #-48]
- uxth r6, r6
- cmp r3, r6
- strh r6, [r7, #2] @ movhi
- bhi .L1572
- ldr r3, [r4, #3168]
+ b .L1657
+.L1598:
+ ldrh r3, [r4, #178]
+ add r5, r5, r3
+ ldr r3, [fp, #-52]
+ uxth r5, r5
+ cmp r3, r5
+ strh r5, [r4, #178] @ movhi
+ bhi .L1600
+ ldr r3, [r4, #3172]
cmp r3, #0
- beq .L1573
+ beq .L1601
bl Ftl_gc_temp_data_write_back
cmp r0, #0
movne r3, #0
strne r3, [r4, #3276]
- bne .L1624
-.L1573:
- ldr r3, .L1625+52
- ldrh r1, [r3]
- cmp r1, #0
- bne .L1574
- ldrh r3, [r7]
- ldr r2, [r4, #2324]
+ bne .L1661
+.L1601:
+ ldr r0, .L1662+48
+ ldrh r5, [r0]
+ cmp r5, #0
+ bne .L1602
+ ldrh r1, [r4, #176]
+ ldr r2, [r4, #76]
+ lsl r3, r1, #1
+ ldrh r3, [r2, r3]
+ cmp r3, #0
+ beq .L1602
+ ldrh r0, [r0, #2]
+ ldrh r2, [r4, #178]
+ str r3, [sp]
+ mov r3, r5
+ str r0, [sp, #4]
+ ldr r0, .L1662+56
+ bl sftl_printk
+.L1603:
+ ldr r3, [r4, #2556]
+ cmp r5, r3
+ bcs .L1605
+ mov r2, #0
+ sub r1, fp, #44
+ mov r0, r5
+ bl log2phys
+ ldr r8, [fp, #-44]
+ cmn r8, #1
+ beq .L1604
+ ubfx r0, r8, #10, #16
+ bl P2V_block_in_plane
+ ldrh r3, [r4, #176]
+ cmp r3, r0
+ bne .L1604
+ mov r2, r8
+ mov r1, r5
+ ldr r0, .L1662+60
+ bl sftl_printk
+.L1605:
+ ldr r3, [r4, #2556]
+ cmp r5, r3
+ bcc .L1602
+ ldrh r3, [r4, #176]
+ mov r1, #0
+ ldr r2, [r4, #76]
lsl r3, r3, #1
- ldrh r0, [r2, r3]
- cmp r0, #0
- beq .L1574
strh r1, [r2, r3] @ movhi
- ldrh r0, [r7]
+ ldrh r0, [r4, #176]
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L1574:
+.L1602:
mvn r3, #0
- strh r3, [r7] @ movhi
-.L1572:
+ strh r3, [r4, #176] @ movhi
+.L1600:
mov r3, #0
str r3, [r4, #3276]
- ldr r3, .L1625+56
- ldrh r3, [r3]
+ ldrh r3, [r4, #228]
cmp r3, #2
- ldrhls r6, [r4, #102]
- bls .L1576
-.L1575:
- ldr r2, .L1625+28
+ bhi .L1608
+ ldr r3, .L1662+32
+ ldrh r5, [r3]
+ b .L1609
+.L1604:
+ add r5, r5, #1
+ b .L1603
+.L1608:
+ ldr r2, .L1662+8
ldrh r0, [r2]
cmp r0, #0
addeq r0, r3, #1
- b .L1506
-.L1626:
+ b .L1534
+.L1663:
.align 2
-.L1625:
+.L1662:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR0+2592
- .word .LANCHOR0+3152
- .word .LC113
- .word .LANCHOR0+3160
- .word .LANCHOR0+3196
.word .LANCHOR0+3664
- .word .LANCHOR0+2348
+ .word .LANCHOR0+2624
+ .word .LC124
+ .word .LANCHOR0+176
+ .word .LANCHOR0+3164
+ .word .LANCHOR0+308
+ .word .LANCHOR0+306
+ .word .LANCHOR0+3200
.word .LANCHOR1+568
- .word .LC1
- .word .LANCHOR0+2396
- .word .LANCHOR0+2444
+ .word .LC8
.word .LANCHOR0+3666
- .word .LANCHOR0+2344
+ .word .LANCHOR0+190
+ .word .LC125
+ .word .LC126
.size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
.align 2
.global FtlRead
@@ -11247,37 +11489,38 @@ FtlRead:
str r2, [fp, #-52]
cmp r0, #16
mov r9, r3
- bne .L1628
+ bne .L1665
mov r2, r3
ldr r1, [fp, #-52]
add r0, r6, #256
bl FtlVendorPartRead
str r0, [fp, #-48]
-.L1627:
+.L1664:
ldr r0, [fp, #-48]
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1628:
+.L1665:
ldr r3, [fp, #-52]
- ldr r10, .L1662
+ ldr r10, .L1700
add r3, r1, r3
str r3, [fp, #-60]
ldr r2, [fp, #-60]
- ldr r3, [r10, #140]
+ ldr r3, [r10, #344]
cmp r2, r3
mvnhi r3, #0
strhi r3, [fp, #-48]
- bhi .L1627
- ldr r3, .L1662+4
+ bhi .L1664
+ ldr r3, .L1700+4
ldr r7, [r3]
cmn r7, #1
streq r7, [fp, #-48]
- beq .L1627
- ldrh r4, [r10, #58]
+ beq .L1664
+ movw r3, #262
mov r0, r6
+ ldrh r4, [r10, r3]
mov r8, #0
- mov r7, r10
mov r5, r8
+ mov r7, r10
mov r1, r4
bl __udivsi3
ldr r3, [fp, #-60]
@@ -11293,107 +11536,111 @@ FtlRead:
add r3, r3, r0
str r8, [fp, #-76]
str r3, [fp, #-56]
- ldr r3, [r10, #2536]
+ ldr r3, [r10, #2588]
str r8, [fp, #-72]
str r8, [fp, #-48]
add r3, r3, r2
ldr r2, [fp, #-56]
- str r3, [r10, #2536]
- ldr r3, [r10, #2508]
+ str r3, [r10, #2588]
+ ldr r3, [r10, #2560]
add r3, r3, r2
- str r3, [r10, #2508]
-.L1630:
+ str r3, [r10, #2560]
+.L1667:
ldr r3, [fp, #-56]
cmp r3, #0
- bne .L1647
- ldr r3, .L1662
+ bne .L1684
+ ldr r3, .L1700
movw r2, #3210
ldrh r2, [r3, r2]
cmp r2, #0
- bne .L1648
- movw r2, #2344
- ldrh r3, [r3, r2]
+ bne .L1685
+ ldrh r3, [r3, #228]
cmp r3, #31
- bhi .L1627
-.L1648:
+ bhi .L1664
+.L1685:
mov r1, #1
mov r0, #0
bl rk_ftl_garbage_collect
- b .L1627
-.L1647:
- sub r1, fp, #44
+ b .L1664
+.L1684:
mov r2, #0
+ sub r1, fp, #44
mov r0, r4
bl log2phys
- ldr r1, [fp, #-44]
- cmn r1, #1
+ ldr r2, [fp, #-44]
+ cmn r2, #1
moveq r10, #0
- beq .L1632
- ldr r2, [r7, #3292]
- mov r0, #20
+ ldreq r2, .L1700+8
+ beq .L1669
+ ldr r1, [r7, #3292]
+ mov r10, #20
ldr r3, [fp, #-64]
- ldrh r10, [r7, #58]
- mla r2, r0, r5, r2
+ mla r10, r10, r5, r1
cmp r4, r3
- str r1, [r2, #4]
- bne .L1636
- ldr r1, [r7, #3316]
+ str r2, [r10, #4]
+ ldr r2, .L1700+8
+ bne .L1673
+ ldrh r2, [r2]
mov r0, r6
- str r2, [fp, #-80]
- str r1, [r2, #8]
- mov r1, r10
+ ldr r1, [r7, #3316]
+ str r2, [fp, #-76]
+ str r1, [r10, #8]
+ mov r1, r2
bl __umodsi3
+ ldr r2, [fp, #-76]
ldr r3, [fp, #-52]
- sub r1, r10, r0
- ldr r2, [fp, #-80]
str r0, [fp, #-72]
+ sub r1, r2, r0
cmp r3, r1
movcs r3, r1
- cmp r3, r10
+ cmp r3, r2
str r3, [fp, #-76]
- streq r9, [r2, #8]
-.L1637:
- ldrh r1, [r7, #112]
- ldr r0, [r7, #3340]
- str r4, [r2, #16]
- mul r1, r5, r1
+ streq r9, [r10, #8]
+.L1674:
+ ldr r3, .L1700+12
+ ldr r1, [r7, #3340]
+ str r4, [r10, #16]
+ ldrh r2, [r3]
+ mul r2, r5, r2
add r5, r5, #1
- bic r1, r1, #3
- add r1, r0, r1
- str r1, [r2, #12]
- b .L1635
-.L1634:
+ bic r2, r2, #3
+ add r2, r1, r2
+ str r2, [r10, #12]
+ b .L1672
+.L1671:
mla r0, r0, r4, r10
- ldr r2, [fp, #-60]
- cmp r2, r0
- movhi r2, #1
- movls r2, #0
+ ldr r1, [fp, #-60]
+ cmp r1, r0
+ movhi r1, #1
+ movls r1, #0
cmp r6, r0
- movhi r2, #0
- cmp r2, #0
- beq .L1633
+ movhi r1, #0
+ cmp r1, #0
+ beq .L1670
sub r0, r0, r6
mov r1, #512
add r0, r9, r0, lsl #9
+ str r2, [fp, #-80]
bl __memzero
-.L1633:
+ ldr r2, [fp, #-80]
+.L1670:
add r10, r10, #1
-.L1632:
- ldrh r0, [r7, #58]
+.L1669:
+ ldrh r0, [r2]
cmp r10, r0
- bcc .L1634
-.L1635:
+ bcc .L1671
+.L1672:
ldr r3, [fp, #-56]
add r4, r4, #1
subs r3, r3, #1
str r3, [fp, #-56]
- beq .L1639
- ldrh r2, [r7, #32]
+ beq .L1676
+ ldrh r2, [r7, #236]
cmp r5, r2, lsl #2
- bne .L1630
-.L1639:
+ bne .L1667
+.L1676:
cmp r5, #0
- beq .L1630
+ beq .L1667
mov r2, #0
mov r1, r5
ldr r0, [r7, #3292]
@@ -11407,7 +11654,7 @@ FtlRead:
ldr r3, [fp, #-76]
lsl r3, r3, #9
str r3, [fp, #-84]
-.L1646:
+.L1683:
mov ip, #20
ldr r2, [r7, #3292]
mul ip, ip, r10
@@ -11415,88 +11662,90 @@ FtlRead:
add r2, r2, ip
ldr r1, [r2, #16]
cmp r3, r1
- bne .L1641
+ bne .L1678
ldr r1, [r2, #8]
ldr r2, [r7, #3316]
cmp r1, r2
- bne .L1642
+ bne .L1679
ldr r3, [fp, #-80]
mov r0, r9
ldr r2, [fp, #-84]
str ip, [fp, #-92]
add r1, r1, r3
-.L1661:
+.L1699:
bl ftl_memcpy
ldr ip, [fp, #-92]
-.L1642:
+.L1679:
ldr r1, [r7, #3292]
add r2, r1, ip
ldr r0, [r2, #12]
ldr lr, [r2, #16]
ldr r0, [r0, #8]
cmp lr, r0
- ldrne r0, [r7, #2712]
+ ldrne r0, [r7, #2716]
addne r0, r0, #1
- strne r0, [r7, #2712]
+ strne r0, [r7, #2716]
ldr lr, [r1, ip]
cmn lr, #1
- ldreq r0, [r7, #2712]
+ ldreq r0, [r7, #2716]
streq lr, [fp, #-48]
addeq r0, r0, #1
- streq r0, [r7, #2712]
+ streq r0, [r7, #2716]
ldr r1, [r1, ip]
cmp r1, #256
- bne .L1645
+ bne .L1682
ldr r0, [r2, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1645:
+.L1682:
add r10, r10, #1
cmp r5, r10
- bne .L1646
+ bne .L1683
mov r5, #0
- b .L1630
-.L1636:
+ b .L1667
+.L1673:
ldr r3, [fp, #-68]
cmp r4, r3
- bne .L1638
+ ldrhne r2, [r2]
+ mulne r2, r4, r2
+ bne .L1698
ldr r1, [r7, #3320]
ldr r3, [fp, #-60]
- str r1, [r2, #8]
- mul r1, r10, r4
- sub r8, r3, r1
- cmp r10, r8
- subeq r1, r1, r6
- addeq r1, r9, r1, lsl #9
- streq r1, [r2, #8]
- b .L1637
-.L1638:
- mul r10, r4, r10
- sub r10, r10, r6
- add r10, r9, r10, lsl #9
- str r10, [r2, #8]
- b .L1637
-.L1641:
+ str r1, [r10, #8]
+ ldrh r1, [r2]
+ mul r2, r1, r4
+ sub r8, r3, r2
+ cmp r1, r8
+ bne .L1674
+.L1698:
+ sub r2, r2, r6
+ add r2, r9, r2, lsl #9
+ str r2, [r10, #8]
+ b .L1674
+.L1678:
ldr r3, [fp, #-68]
cmp r3, r1
- bne .L1642
+ bne .L1679
ldr r1, [r2, #8]
ldr r2, [r7, #3320]
cmp r1, r2
- bne .L1642
- ldrh r0, [r7, #58]
+ bne .L1679
+ ldr r2, .L1700+8
str ip, [fp, #-92]
+ ldrh r0, [r2]
ldr r2, [fp, #-88]
mul r0, r3, r0
sub r0, r0, r6
add r0, r9, r0, lsl #9
- b .L1661
-.L1663:
+ b .L1699
+.L1701:
.align 2
-.L1662:
+.L1700:
.word .LANCHOR0
.word .LANCHOR2
+ .word .LANCHOR0+262
+ .word .LANCHOR0+316
.size FtlRead, .-FtlRead
.align 2
.global sftl_read
@@ -11554,30 +11803,31 @@ FtlWrite:
str r2, [fp, #-80]
cmp r0, #16
str r3, [fp, #-84]
- bne .L1667
+ bne .L1705
mov r2, r3
ldr r1, [fp, #-80]
add r0, r9, #256
bl FtlVendorPartWrite
-.L1666:
+.L1704:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1667:
+.L1705:
ldr r3, [fp, #-80]
- ldr r4, .L1718
+ ldr r4, .L1756
add r6, r1, r3
- ldr r3, [r4, #140]
+ ldr r3, [r4, #344]
cmp r6, r3
mvnhi r0, #0
- bhi .L1666
- ldr r5, .L1718+4
+ bhi .L1704
+ ldr r5, .L1756+4
ldr r0, [r5]
cmn r0, #1
- beq .L1666
- ldrh r7, [r4, #58]
+ beq .L1704
mov r3, #2048
- str r3, [r4, #3672]
mov r0, r9
+ str r3, [r4, #3672]
+ movw r3, #262
+ ldrh r7, [r4, r3]
mov r1, r7
bl __udivsi3
mov r1, r7
@@ -11591,76 +11841,77 @@ FtlWrite:
str r3, [fp, #-96]
add r3, r3, #1
str r3, [fp, #-72]
- ldr r3, [r4, #2532]
+ ldr r3, [r4, #2584]
add r3, r3, r2
ldr r2, [fp, #-72]
- str r3, [r4, #2532]
- ldr r3, [r4, #2516]
+ str r3, [r4, #2584]
+ ldr r3, [r4, #2568]
add r3, r3, r2
- str r3, [r4, #2516]
+ str r3, [r4, #2568]
ldr r3, [r5, #8]
- ldr r4, .L1718+8
cmp r3, #0
- beq .L1669
- ldrh r3, [r4, #4]
- add r0, r4, #48
+ addeq r4, r4, #28
+ beq .L1707
+ ldrh r3, [r4, #32]
cmp r3, #0
- moveq r4, r0
-.L1669:
- ldr r5, [fp, #-76]
- ldr r10, .L1718
-.L1670:
+ addne r4, r4, #28
+ addeq r4, r4, #80
+.L1707:
+ ldr r6, [fp, #-76]
+ ldr r10, .L1756
+.L1708:
ldr r3, [fp, #-72]
cmp r3, #0
- bne .L1698
+ bne .L1736
mov r0, r3
ldr r1, [fp, #-96]
bl rk_ftl_garbage_collect
- movw r3, #2344
- ldrh r3, [r10, r3]
+ ldrh r3, [r10, #228]
cmp r3, #5
- bls .L1699
-.L1701:
+ movls r4, #256
+ ldrls r5, .L1756+8
+ bls .L1740
+.L1739:
mov r0, #0
- b .L1666
-.L1698:
+ b .L1704
+.L1736:
ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r10, #32]
+ ldrh r3, [r10, #236]
cmp r2, r3
- bcc .L1671
- mov r2, #1016
- ldr r1, .L1718+12
- ldr r0, .L1718+16
+ bcc .L1709
+ movw r2, #1038
+ ldr r1, .L1756+12
+ ldr r0, .L1756+16
bl sftl_printk
-.L1671:
+.L1709:
ldrh r2, [r4, #4]
cmp r2, #0
- bne .L1672
- ldr r3, .L1718+8
- ldr r6, .L1718+4
+ bne .L1710
+ ldr r3, .L1756+20
+ ldr r5, .L1756+4
cmp r4, r3
- bne .L1673
- add r0, r4, #48
- ldrh r7, [r0, #4]
+ bne .L1711
+ ldrh r7, [r10, #84]
cmp r7, #0
- bne .L1674
+ bne .L1712
+ add r0, r4, #52
bl allocate_new_data_superblock
- str r7, [r6, #8]
-.L1674:
- ldr r0, .L1718+8
+ str r7, [r5, #8]
+.L1712:
+ ldr r0, .L1756+20
bl allocate_new_data_superblock
- ldr r4, .L1718+8
- ldr r3, [r6, #8]
- add r0, r4, #48
- cmp r3, #0
- movne r4, r0
-.L1675:
+ ldr r4, .L1756+20
+ ldr r2, [r5, #8]
+ add r3, r4, #52
+ cmp r2, #0
+ movne r4, r3
+.L1713:
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L1672
+ bne .L1710
mov r0, r4
bl allocate_new_data_superblock
-.L1672:
+.L1710:
ldrh r3, [r4, #4]
ldr r2, [fp, #-72]
cmp r3, r2
@@ -11671,22 +11922,22 @@ FtlWrite:
movcs r3, r2
ldrb r2, [r4, #6] @ zero_extendqisi2
str r3, [fp, #-108]
- ldrh r3, [r10, #32]
+ ldrh r3, [r10, #236]
cmp r2, r3
- bcc .L1676
- movw r2, #1049
- ldr r1, .L1718+12
- ldr r0, .L1718+16
+ bcc .L1714
+ movw r2, #1071
+ ldr r1, .L1756+12
+ ldr r0, .L1756+16
bl sftl_printk
-.L1676:
+.L1714:
mov r3, #0
-.L1717:
+.L1755:
str r3, [fp, #-68]
ldr r3, [fp, #-68]
ldr r2, [fp, #-108]
cmp r3, r2
- bne .L1696
-.L1678:
+ bne .L1734
+.L1716:
mov r3, r4
mov r2, #0
ldr r1, [fp, #-68]
@@ -11695,101 +11946,132 @@ FtlWrite:
ldr r3, [fp, #-68]
ldr r2, [fp, #-72]
cmp r3, r2
- bls .L1697
- movw r2, #1126
- ldr r1, .L1718+12
- ldr r0, .L1718+16
+ bls .L1735
+ movw r2, #1149
+ ldr r1, .L1756+12
+ ldr r0, .L1756+16
bl sftl_printk
-.L1697:
+.L1735:
ldr r3, [fp, #-72]
ldr r2, [fp, #-68]
sub r3, r3, r2
str r3, [fp, #-72]
- b .L1670
-.L1673:
- str r2, [r6, #8]
- ldrh r2, [r3, #4]
+ b .L1708
+.L1711:
+ str r2, [r5, #8]
+ ldrh r2, [r10, #32]
cmp r2, #0
movne r4, r3
- bne .L1672
+ bne .L1710
mov r0, r4
bl allocate_new_data_superblock
- b .L1675
-.L1696:
+ b .L1713
+.L1734:
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L1678
+ beq .L1716
mov r2, #0
sub r1, fp, #64
- mov r0, r5
+ mov r0, r6
mov r7, #20
bl log2phys
mov r0, r4
bl get_new_active_ppa
- ldrh r2, [r10, #112]
+ ldr r2, .L1756+24
ldr r1, [fp, #-68]
ldr r3, [fp, #-68]
- mul r1, r2, r1
+ ldrh r2, [r2]
mul r7, r7, r3
ldr r3, [r10, #3300]
- bic r1, r1, #3
- str r1, [fp, #-100]
+ mul r1, r2, r1
add r3, r3, r7
- ldr r1, [r10, #3340]
str r0, [r3, #4]
+ bic r1, r1, #3
+ str r6, [r3, #16]
+ str r1, [fp, #-100]
ldr r0, [fp, #-100]
- str r1, [fp, #-104]
- str r5, [r3, #16]
+ ldr r1, [r10, #3340]
add r8, r1, r0
- mov r1, #0
+ str r1, [fp, #-104]
str r8, [r3, #12]
+ mov r1, #0
mov r0, r8
bl ftl_memset
ldr r3, [fp, #-76]
ldr r2, [fp, #-92]
- ldrh r6, [r10, #58]
- cmp r5, r2
- cmpne r5, r3
- bne .L1679
- cmp r5, r3
- bne .L1680
- mov r1, r6
+ cmp r6, r2
+ cmpne r6, r3
+ ldr r3, .L1756+28
+ bne .L1717
+ ldr r2, [fp, #-76]
+ cmp r6, r2
+ bne .L1718
+ ldrh r5, [r3]
mov r0, r9
+ mov r1, r5
bl __umodsi3
ldr r3, [fp, #-80]
- sub r6, r6, r0
+ sub r5, r5, r0
str r0, [fp, #-88]
- cmp r6, r3
- movcs r6, r3
-.L1681:
- ldrh r3, [r10, #58]
- cmp r6, r3
- ldr r3, [fp, #-76]
- bne .L1682
cmp r5, r3
+ movcs r5, r3
+.L1719:
+ ldr r3, .L1756+28
+ ldrh r3, [r3]
+ cmp r5, r3
+ ldr r3, [fp, #-76]
+ bne .L1720
+ cmp r6, r3
ldr r3, [r10, #3300]
add r7, r3, r7
ldreq r3, [fp, #-84]
- streq r3, [r7, #8]
- beq .L1684
-.L1714:
- mul r6, r5, r6
+ beq .L1752
+ mul r5, r5, r6
ldr r3, [fp, #-84]
- sub r6, r6, r9
- add r6, r3, r6, lsl #9
- str r6, [r7, #8]
- b .L1684
-.L1680:
- ldr r3, [fp, #-80]
- add r2, r9, r3
- smulbb r3, r6, r5
- sub r6, r2, r3
+ sub r5, r5, r9
+ add r5, r3, r5, lsl #9
+ str r5, [r7, #8]
+.L1722:
+ ldrb r2, [r4, #6] @ zero_extendqisi2
+ ldrh r3, [r10, #236]
+ cmp r2, r3
+ bcc .L1731
+ movw r2, #1140
+ ldr r1, .L1756+12
+ ldr r0, .L1756+16
+ bl sftl_printk
+.L1731:
+ ldr r3, .L1756+32
+ ldr r2, [fp, #-104]
+ ldr r1, [fp, #-100]
+ strh r3, [r2, r1] @ movhi
+ ldr r3, [r10, #2596]
+ str r6, [r8, #8]
+ add r6, r6, #1
+ str r3, [r8, #4]
+ add r3, r3, #1
+ cmn r3, #1
+ moveq r3, #0
+ str r3, [r10, #2596]
+ ldr r3, [fp, #-64]
+ str r3, [r8, #12]
+ ldrh r3, [r4]
+ strh r3, [r8, #2] @ movhi
+ ldr r3, [fp, #-68]
+ add r3, r3, #1
+ b .L1755
+.L1718:
+ ldr r2, [fp, #-80]
+ add r5, r9, r2
+ ldrh r2, [r3]
mov r3, #0
- uxth r6, r6
str r3, [fp, #-88]
- b .L1681
-.L1682:
- cmp r5, r3
+ smulbb r2, r2, r6
+ sub r5, r5, r2
+ uxth r5, r5
+ b .L1719
+.L1720:
+ cmp r6, r3
ldr r3, [r10, #3300]
ldreq r2, [r10, #3316]
ldrne r2, [r10, #3320]
@@ -11797,12 +12079,12 @@ FtlWrite:
str r2, [r3, #8]
ldr r3, [fp, #-64]
cmn r3, #1
- beq .L1687
+ beq .L1725
str r3, [fp, #-56]
mov r1, #1
ldr r3, [r10, #3300]
sub r0, fp, #60
- str r5, [fp, #-44]
+ str r6, [fp, #-44]
add r3, r3, r7
ldr r2, [r3, #8]
ldr r3, [r3, #12]
@@ -11812,140 +12094,124 @@ FtlWrite:
bl FlashReadPages
ldr r3, [fp, #-60]
cmn r3, #1
- ldreq r3, [r10, #2712]
- addeq r3, r3, #1
- streq r3, [r10, #2712]
- beq .L1691
- ldr r3, [r8, #8]
- cmp r5, r3
- beq .L1690
- ldr r3, [r10, #2712]
- mov r2, r5
- ldr r0, .L1718+20
- add r3, r3, #1
- str r3, [r10, #2712]
+ bne .L1726
+ ldr r2, [r10, #2716]
+ ldr r0, .L1756+36
+ add r2, r2, #1
+ str r2, [r10, #2716]
+ mov r2, r6
ldr r1, [r8, #8]
bl sftl_printk
-.L1690:
- ldr r3, [r8, #8]
- cmp r5, r3
- beq .L1691
- movw r2, #1102
- ldr r1, .L1718+12
- ldr r0, .L1718+16
- bl sftl_printk
-.L1691:
+.L1729:
ldr r3, [fp, #-76]
- lsl r2, r6, #9
- cmp r5, r3
- bne .L1692
+ lsl r2, r5, #9
+ cmp r6, r3
+ bne .L1730
ldr r3, [r10, #3300]
ldr r1, [fp, #-84]
add r7, r3, r7
ldr r3, [fp, #-88]
ldr r0, [r7, #8]
add r0, r0, r3, lsl #9
-.L1715:
+.L1753:
bl ftl_memcpy
-.L1684:
- ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r10, #32]
- cmp r2, r3
- bcc .L1693
- movw r2, #1117
- ldr r1, .L1718+12
- ldr r0, .L1718+16
- bl sftl_printk
-.L1693:
- ldr r3, .L1718+24
- ldr r2, [fp, #-104]
- ldr r1, [fp, #-100]
- strh r3, [r2, r1] @ movhi
- ldr r3, [r10, #2544]
- str r5, [r8, #8]
- add r5, r5, #1
- str r3, [r8, #4]
- add r3, r3, #1
- cmn r3, #1
- moveq r3, #0
- str r3, [r10, #2544]
- ldr r3, [fp, #-64]
- str r3, [r8, #12]
- ldrh r3, [r4]
- strh r3, [r8, #2] @ movhi
- ldr r3, [fp, #-68]
+ b .L1722
+.L1726:
+ ldr r3, [r8, #8]
+ cmp r6, r3
+ beq .L1728
+ ldr r3, [r10, #2716]
+ mov r2, r6
+ ldr r0, .L1756+40
add r3, r3, #1
- b .L1717
-.L1687:
+ str r3, [r10, #2716]
+ ldr r1, [r8, #8]
+ bl sftl_printk
+.L1728:
+ ldr r3, [r8, #8]
+ cmp r6, r3
+ beq .L1729
+ movw r2, #1125
+ ldr r1, .L1756+12
+ ldr r0, .L1756+16
+ bl sftl_printk
+ b .L1729
+.L1725:
ldr r3, [r10, #3300]
mov r1, #0
- ldrh r2, [r10, #110]
+ ldr r2, .L1756+44
add r3, r3, r7
+ ldrh r2, [r2]
ldr r0, [r3, #8]
bl ftl_memset
- b .L1691
-.L1692:
- ldrh r1, [r10, #58]
+ b .L1729
+.L1730:
+ ldr r3, .L1756+28
+ ldrh r1, [r3]
ldr r3, [r10, #3300]
- mul r1, r5, r1
+ mul r1, r6, r1
add r7, r3, r7
ldr r3, [fp, #-84]
ldr r0, [r7, #8]
sub r1, r1, r9
add r1, r3, r1, lsl #9
- b .L1715
-.L1679:
- ldr r3, [r10, #3300]
- add r7, r3, r7
- b .L1714
-.L1699:
- ldr r5, .L1718+28
- mov r4, #256
- ldr r6, .L1718+32
-.L1702:
- ldrh r3, [r5]
+ b .L1753
+.L1717:
+ ldrh r3, [r3]
+ ldr r2, [r10, #3300]
+ mul r3, r6, r3
+ add r7, r2, r7
+ ldr r2, [fp, #-84]
+ sub r3, r3, r9
+ add r3, r2, r3, lsl #9
+.L1752:
+ str r3, [r7, #8]
+ b .L1722
+.L1740:
+ ldrh r3, [r10, #176]
movw r2, #65535
cmp r3, r2
- bne .L1700
- ldrh r2, [r6]
+ bne .L1738
+ ldrh r2, [r10, #226]
cmp r2, r3
- bne .L1700
+ bne .L1738
mov r0, #0
bl List_get_gc_head_node
uxth r0, r0
bl FtlGcRefreshBlock
-.L1700:
- ldr r3, .L1718+36
+.L1738:
+ ldr r2, .L1756+48
mov r1, #1
- mov r2, #128
+ mov r3, #128
mov r0, r1
- strh r2, [r3] @ movhi
- strh r2, [r3, #-2] @ movhi
+ strh r3, [r5] @ movhi
+ strh r3, [r2] @ movhi
bl rk_ftl_garbage_collect
mov r1, #1
mov r0, #0
bl rk_ftl_garbage_collect
- ldr r3, .L1718+40
- ldrh r3, [r3]
+ ldrh r3, [r10, #228]
cmp r3, #2
- bhi .L1701
+ bhi .L1739
subs r4, r4, #1
- bne .L1702
- b .L1701
-.L1719:
+ bne .L1740
+ b .L1739
+.L1757:
.align 2
-.L1718:
+.L1756:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR0+2348
+ .word .LANCHOR0+3158
.word .LANCHOR1+591
- .word .LC1
- .word .LC114
+ .word .LC8
+ .word .LANCHOR0+28
+ .word .LANCHOR0+316
+ .word .LANCHOR0+262
.word -3947
- .word .LANCHOR0+2592
- .word .LANCHOR0+3206
- .word .LANCHOR0+3154
- .word .LANCHOR0+2344
+ .word .LC127
+ .word .LC128
+ .word .LANCHOR0+314
+ .word .LANCHOR0+3156
.size FtlWrite, .-FtlWrite
.align 2
.global sftl_vendor_write
@@ -11990,71 +12256,73 @@ sftl_gc:
.fpu softvfp
.type FtlLoadSysInfo, %function
FtlLoadSysInfo:
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 4
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- sub sp, sp, #12
+ sub sp, sp, #16
mov r1, #0
- ldr r4, .L1749
+ ldr r4, .L1790
+ movw r7, #2628
+ ldr r6, .L1790+4
ldr r3, [r4, #3304]
- add r6, r4, #2576
- ldrh r2, [r4, #40]
- ldr r0, [r4, #2324]
+ ldrh r2, [r4, #244]
+ ldr r0, [r4, #76]
str r3, [r4, #3464]
ldr r3, [r4, #3336]
lsl r2, r2, #1
str r3, [r4, #3468]
bl ftl_memset
- ldrh r0, [r6]
+ ldrh r0, [r4, r7]
movw r3, #65535
cmp r0, r3
- bne .L1723
-.L1734:
+ bne .L1761
+.L1772:
mvn r0, #0
-.L1722:
+.L1760:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1723:
+.L1761:
mov r1, #1
- ldr r9, .L1749+4
+ ldr r9, .L1790+8
bl FtlGetLastWrittenPage
- ldrsh r7, [r6]
+ ldrsh r7, [r4, r7]
add r8, r4, #3456
sxth r5, r0
add r0, r0, #1
strh r0, [r6, #2] @ movhi
-.L1725:
+.L1763:
cmp r5, #0
- bge .L1731
+ bge .L1769
movw r2, #1465
- ldr r1, .L1749+8
- ldr r0, .L1749+12
+ ldr r1, .L1790+12
+ ldr r0, .L1790+16
bl sftl_printk
-.L1730:
- ldrh r3, [r4, #40]
- ldrh r2, [r4, #110]
+.L1768:
+ movw r2, #314
+ ldrh r3, [r4, #244]
+ ldrh r2, [r4, r2]
add r3, r3, #24
cmp r2, r3, lsl #1
- bcs .L1733
+ bcs .L1771
movw r2, #1467
- ldr r1, .L1749+8
- ldr r0, .L1749+12
+ ldr r1, .L1790+12
+ ldr r0, .L1790+16
bl sftl_printk
-.L1733:
- ldr r5, .L1749+16
+.L1771:
+ ldr r5, .L1790+20
mov r2, #48
ldr r1, [r4, #3464]
mov r0, r5
bl ftl_memcpy
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
ldr r1, [r4, #3464]
- ldr r0, [r4, #2324]
+ ldr r0, [r4, #76]
lsl r2, r2, #1
add r1, r1, #48
bl ftl_memcpy
- ldrh r1, [r4, #40]
+ ldrh r1, [r4, #244]
ldr r3, [r4, #3464]
ldr r0, [r4, #24]
lsr r2, r1, #3
@@ -12064,126 +12332,121 @@ FtlLoadSysInfo:
bic r1, r1, #3
add r1, r3, r1
bl ftl_memcpy
- ldr r2, [r4, #2268]
- ldr r3, .L1749+4
+ ldr r2, [r4, #2472]
+ ldr r3, .L1790+8
cmp r2, r3
- bne .L1734
- ldrb r2, [r4, #2278] @ zero_extendqisi2
- ldrh r3, [r4, #54]
+ bne .L1772
+ movw r3, #258
+ ldrb r2, [r4, #2482] @ zero_extendqisi2
+ ldrh r3, [r4, r3]
ldrh r7, [r5, #8]
cmp r2, r3
strh r7, [r6, #6] @ movhi
- bne .L1734
- ldrh r3, [r4, #102]
- ldrh r2, [r4, #58]
- ldr r6, [r4, #44]
- ldrh r0, [r4, #158]
- mul r3, r7, r3
+ bne .L1772
+ movw r3, #306
+ movw r2, #262
+ ldrh r3, [r4, r3]
+ ldrh r2, [r4, r2]
+ ldr r6, [r4, #248]
str r7, [r4, #3676]
- ldrh r1, [r4, #32]
+ mul r3, r7, r3
+ ldrh r1, [r4, #236]
+ str r3, [r4, #2556]
+ mul r3, r3, r2
+ str r3, [r4, #344]
+ ldr r3, .L1790+24
+ ldrh r0, [r3, #6]
sub r0, r6, r0
sub r0, r0, r7
- str r3, [r4, #2504]
- mul r3, r3, r2
- str r3, [r4, #140]
bl __udivsi3
cmp r7, r6
- movw r3, #2572
- strh r0, [r4, r3] @ movhi
- bls .L1735
+ strh r0, [r5, #152] @ movhi
+ bls .L1773
movw r2, #1489
- ldr r1, .L1749+8
- ldr r0, .L1749+12
+ ldr r1, .L1790+12
+ ldr r0, .L1790+16
bl sftl_printk
-.L1735:
- ldrh lr, [r5, #18]
- movw r1, #2396
- ldr r0, .L1749+20
- movw r3, #2348
- ldrh ip, [r5, #14]
- strh lr, [r4, r1] @ movhi
- ldrh r1, [r5, #20]
- strh ip, [r4, r3] @ movhi
+.L1773:
ldrh r3, [r5, #16]
- lsr lr, r1, #6
- and r1, r1, #63
- strb r1, [r4, #2402]
- ldrb r1, [r4, #2280] @ zero_extendqisi2
+ ldrh r1, [r5, #14]
lsr r2, r3, #6
- strh lr, [r0, #50] @ movhi
and r3, r3, #63
- ldrh lr, [r5, #22]
- strb r1, [r4, #2404]
- movw r1, #2444
- strb r3, [r4, #2354]
- strh lr, [r4, r1] @ movhi
- ldrh r1, [r5, #24]
- ldrb r3, [r4, #2279] @ zero_extendqisi2
- strh r2, [r0, #2] @ movhi
- mov r2, r0
- lsr lr, r1, #6
- and r1, r1, #63
- strb r1, [r4, #2450]
- ldrb r1, [r4, #2281] @ zero_extendqisi2
- strb r3, [r4, #2356]
+ strb r3, [r4, #34]
+ strh r2, [r4, #30] @ movhi
+ ldrh r2, [r5, #18]
+ ldrb r3, [r4, #2483] @ zero_extendqisi2
+ strh r1, [r4, #28] @ movhi
+ strh r2, [r4, #80] @ movhi
+ ldrh r2, [r5, #20]
+ strb r3, [r4, #36]
mvn r3, #0
- strh r3, [r2, #244]! @ movhi
+ strh r3, [r4, #176] @ movhi
mov r3, #0
- strb r1, [r4, #2452]
- mov r5, r2
- ldr r1, [r4, #2300]
- strh r3, [r2, #2] @ movhi
- strb r3, [r4, #2598]
- strb r3, [r4, #2600]
- str r3, [r4, #2528]
- str r3, [r4, #2516]
- str r3, [r4, #2508]
- str r3, [r4, #2524]
- str r1, [r4, #2548]
- str r3, [r4, #2552]
- strh lr, [r0, #98] @ movhi
- str r3, [r4, #2564]
- ldr r1, [r4, #2540]
- str r3, [r4, #2520]
- ldr r3, [r4, #2308]
- ldr r2, [r4, #2544]
- cmp r3, r1
- strhi r3, [r4, #2540]
- ldr r3, [r4, #2304]
+ strh r3, [r4, #178] @ movhi
+ lsr r0, r2, #6
+ and r2, r2, #63
+ strb r2, [r4, #86]
+ ldrb r2, [r4, #2484] @ zero_extendqisi2
+ strh r0, [r4, #82] @ movhi
+ strb r3, [r4, #182]
+ strb r2, [r4, #88]
+ ldrh r2, [r5, #22]
+ strb r3, [r4, #184]
+ str r3, [r4, #2580]
+ strh r2, [r4, #128] @ movhi
+ ldrh r2, [r5, #24]
+ str r3, [r4, #2568]
+ str r3, [r4, #2560]
+ str r3, [r4, #2576]
+ lsr r0, r2, #6
+ and r2, r2, #63
+ strb r2, [r4, #134]
+ ldrb r2, [r4, #2485] @ zero_extendqisi2
+ str r3, [r4, #2604]
+ strh r0, [r4, #130] @ movhi
+ strb r2, [r4, #136]
+ ldr r2, [r4, #2504]
+ str r2, [r4, #2600]
+ str r3, [r4, #2616]
+ ldr r2, [r4, #2592]
+ str r3, [r4, #2572]
+ ldr r3, [r4, #2512]
+ cmp r3, r2
+ ldr r2, [r4, #2596]
+ strhi r3, [r4, #2592]
+ ldr r3, [r4, #2508]
cmp r3, r2
- strhi r3, [r4, #2544]
+ strhi r3, [r4, #2596]
movw r3, #65535
- cmp ip, r3
- beq .L1738
- ldr r0, .L1749+20
+ cmp r1, r3
+ beq .L1776
+ ldr r0, .L1790+28
bl make_superblock
-.L1738:
- movw r3, #2396
- ldrh r2, [r4, r3]
+.L1776:
+ ldrh r2, [r4, #80]
movw r3, #65535
cmp r2, r3
- beq .L1739
- ldr r0, .L1749+24
+ beq .L1777
+ ldr r0, .L1790+32
bl make_superblock
-.L1739:
- movw r3, #2444
- ldrh r2, [r4, r3]
+.L1777:
+ ldrh r2, [r4, #128]
movw r3, #65535
cmp r2, r3
- beq .L1740
- ldr r0, .L1749+28
+ beq .L1778
+ ldr r0, .L1790+36
bl make_superblock
-.L1740:
- ldrh r2, [r5]
+.L1778:
+ ldrh r2, [r4, #176]
movw r3, #65535
cmp r2, r3
- beq .L1741
- ldr r0, .L1749+32
+ beq .L1779
+ ldr r0, .L1790+40
bl make_superblock
-.L1741:
+.L1779:
mov r0, #0
- b .L1722
-.L1731:
+ b .L1760
+.L1769:
orr r3, r5, r7, lsl #10
mov r2, #1
mov r1, r2
@@ -12193,63 +12456,72 @@ FtlLoadSysInfo:
str r3, [r4, #3464]
bl FlashReadPages
ldr r3, [r4, #3468]
- ldr r10, [r3, #12]
- cmp r10, #0
- beq .L1726
- ldrh r1, [r4, #110]
+ ldr r3, [r3, #12]
+ cmp r3, #0
+ str r3, [fp, #-44]
+ beq .L1764
+ ldr r2, [r4, #3456]
+ cmn r2, #1
+ beq .L1764
+ ldr r10, .L1790+44
ldr r0, [r4, #3464]
+ ldrh r1, [r10]
bl js_hash
- cmp r10, r0
- beq .L1726
+ ldr r3, [fp, #-44]
+ cmp r3, r0
+ beq .L1764
str r0, [sp, #8]
mov r2, r7
- str r10, [sp, #4]
+ str r3, [sp, #4]
ldrh r3, [r6, #4]
- ldr r1, .L1749+8
- ldr r0, .L1749+36
+ ldr r1, .L1790+12
+ ldr r0, .L1790+48
str r3, [sp]
mov r3, r5
bl sftl_printk
cmp r5, #0
- bne .L1727
+ bne .L1765
ldrh r3, [r6, #4]
cmp r7, r3
sxthne r7, r3
- ldrhne r5, [r4, #104]
- bne .L1729
-.L1727:
+ ldrhne r5, [r10, #-6]
+ bne .L1767
+.L1765:
mvn r3, #0
str r3, [r4, #3456]
-.L1726:
+.L1764:
ldr r3, [r4, #3456]
cmn r3, #1
- beq .L1729
+ beq .L1767
ldr r3, [r4, #3304]
ldr r3, [r3]
cmp r3, r9
- bne .L1729
+ bne .L1767
ldr r3, [r4, #3336]
ldrh r2, [r3]
movw r3, #61604
cmp r2, r3
- beq .L1730
-.L1729:
+ beq .L1768
+.L1767:
sub r5, r5, #1
sxth r5, r5
- b .L1725
-.L1750:
+ b .L1763
+.L1791:
.align 2
-.L1749:
+.L1790:
.word .LANCHOR0
+ .word .LANCHOR0+2628
.word 1179929683
.word .LANCHOR1+600
- .word .LC1
- .word .LANCHOR0+2268
- .word .LANCHOR0+2348
- .word .LANCHOR0+2396
- .word .LANCHOR0+2444
- .word .LANCHOR0+2592
- .word .LC115
+ .word .LC8
+ .word .LANCHOR0+2472
+ .word .LANCHOR0+356
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
+ .word .LANCHOR0+128
+ .word .LANCHOR0+176
+ .word .LANCHOR0+314
+ .word .LC129
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
.global FtlMapTblRecovery
@@ -12267,7 +12539,7 @@ FtlMapTblRecovery:
mov r1, #0
ldr r3, [r0, #24]
mov r4, r0
- ldr r9, .L1786
+ ldr r9, .L1833
mov r7, #0
ldr r8, [r0, #12]
str r3, [fp, #-44]
@@ -12292,23 +12564,23 @@ FtlMapTblRecovery:
mov r3, #1
str r7, [r4, #28]
str r3, [r4, #36]
-.L1752:
+.L1793:
ldr r3, [fp, #-52]
sxth r6, r7
cmp r6, r3
- bge .L1771
+ bge .L1812
ldr r3, [fp, #-52]
sub r3, r3, #1
cmp r6, r3
lsl r3, r6, #1
- bne .L1753
+ bne .L1794
add r2, r8, r3
ldrh r0, [r8, r3]
mov r1, #1
str r2, [fp, #-52]
bl FtlGetLastWrittenPage
sxth r3, r0
- ldr r9, .L1786
+ ldr r9, .L1833
add r0, r0, #1
strh r7, [r4] @ movhi
str r3, [fp, #-60]
@@ -12318,23 +12590,23 @@ FtlMapTblRecovery:
strh r0, [r4, #2] @ movhi
ldr r3, [r3, r6, lsl #2]
str r3, [r4, #28]
-.L1754:
+.L1795:
ldr r3, [fp, #-60]
sxth r8, r7
add r2, r3, #1
cmp r8, r2
- blt .L1757
-.L1771:
+ blt .L1798
+.L1812:
mov r0, r4
bl ftl_free_no_use_map_blk
- ldr r3, .L1786
+ ldr r3, .L1833+4
ldrh r2, [r4, #2]
- ldrh r3, [r3, #104]
+ ldrh r3, [r3]
cmp r2, r3
- bne .L1759
+ bne .L1800
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1759:
+.L1800:
mov r0, r4
bl ftl_map_blk_gc
mov r0, r4
@@ -12342,7 +12614,7 @@ FtlMapTblRecovery:
mov r0, #0
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1757:
+.L1798:
ldr r3, [fp, #-52]
mov r0, r10
ldrh r2, [r3]
@@ -12355,47 +12627,52 @@ FtlMapTblRecovery:
ldr r2, [r2, #12]
cmp r2, #0
str r2, [fp, #-56]
- beq .L1755
- ldrh r1, [r9, #110]
+ beq .L1796
+ ldr r1, [r9, #3456]
+ cmn r1, #1
+ beq .L1796
+ ldr r1, .L1833+8
ldr r0, [r9, #3464]
+ ldrh r1, [r1]
bl js_hash
ldr r2, [fp, #-56]
cmp r2, r0
- beq .L1755
+ beq .L1796
str r0, [sp, #4]
mov r3, r8
str r2, [sp]
mov r2, r6
- ldr r1, .L1786+4
- ldr r0, .L1786+8
+ ldr r1, .L1833+12
+ ldr r0, .L1833+16
bl sftl_printk
mvn r3, #0
str r3, [r9, #3456]
-.L1755:
+.L1796:
ldr r3, [r9, #3456]
cmn r3, #1
- beq .L1756
+ beq .L1797
ldrh r3, [r5, #8]
ldr r2, [fp, #-48]
cmp r2, r3
- bls .L1756
+ bls .L1797
ldrh r1, [r5]
ldrh r2, [r4, #4]
cmp r1, r2
ldreq r2, [r9, #3460]
ldreq r1, [fp, #-44]
streq r2, [r1, r3, lsl #2]
-.L1756:
+.L1797:
add r7, r7, #1
- b .L1754
-.L1753:
+ b .L1795
+.L1794:
ldr r2, [r9, #3304]
- ldr r0, .L1786+12
+ ldr r0, .L1833+20
str r2, [r9, #3464]
add r2, r8, r3
str r2, [fp, #-60]
ldrh r2, [r8, r3]
- ldrh r3, [r9, #104]
+ ldr r3, .L1833+4
+ ldrh r3, [r3]
sub r3, r3, #1
orr r3, r3, r2, lsl #10
mov r2, #1
@@ -12404,24 +12681,25 @@ FtlMapTblRecovery:
bl FlashReadPages
ldr r3, [r9, #3456]
cmn r3, #1
- beq .L1773
+ beq .L1814
ldrh r2, [r5]
ldrh r3, [r4, #4]
cmp r2, r3
- bne .L1773
+ bne .L1814
ldrh r2, [r5, #8]
movw r3, #64245
cmp r2, r3
- beq .L1761
-.L1773:
+ beq .L1802
+.L1814:
mov r10, #0
-.L1762:
- ldrh r2, [r9, #104]
+.L1803:
+ ldr r2, .L1833+4
sxth r3, r10
+ ldrh r2, [r2]
cmp r3, r2
- bge .L1769
+ bge .L1810
ldr r2, [fp, #-60]
- ldr r0, .L1786+12
+ ldr r0, .L1833+20
str r3, [fp, #-68]
ldrh r2, [r2]
orr r2, r3, r2, lsl #10
@@ -12433,72 +12711,79 @@ FtlMapTblRecovery:
ldr r2, [r2, #12]
cmp r2, #0
str r2, [fp, #-64]
- beq .L1766
- ldrh r1, [r9, #110]
+ beq .L1807
+ ldr r1, [r9, #3456]
+ cmn r1, #1
+ beq .L1807
+ ldr r1, .L1833+8
ldr r0, [r9, #3464]
+ ldrh r1, [r1]
bl js_hash
ldr r2, [fp, #-64]
cmp r2, r0
- beq .L1766
+ beq .L1807
str r0, [sp, #4]
str r2, [sp]
mov r2, r6
ldr r3, [fp, #-68]
- ldr r1, .L1786+4
- ldr r0, .L1786+16
+ ldr r1, .L1833+12
+ ldr r0, .L1833+24
bl sftl_printk
mvn r3, #0
str r3, [r9, #3456]
-.L1766:
+.L1807:
ldr r3, [r9, #3456]
cmn r3, #1
- beq .L1767
+ beq .L1808
ldrh r3, [r5, #8]
ldr r2, [fp, #-48]
cmp r2, r3
- bls .L1767
+ bls .L1808
ldrh r1, [r5]
ldrh r2, [r4, #4]
cmp r1, r2
ldreq r2, [r9, #3460]
ldreq r1, [fp, #-44]
streq r2, [r1, r3, lsl #2]
-.L1767:
+.L1808:
add r10, r10, #1
- b .L1762
-.L1761:
+ b .L1803
+.L1802:
+ ldr ip, .L1833+4
mov r1, #0
- mov ip, #4
-.L1763:
- ldrh r2, [r9, #104]
+ mov lr, #4
+.L1804:
+ ldrh r2, [ip]
sxth r3, r1
sub r2, r2, #1
cmp r3, r2
- blt .L1765
-.L1769:
+ blt .L1806
+.L1810:
add r7, r7, #1
- b .L1752
-.L1765:
+ b .L1793
+.L1806:
ldr r0, [r9, #3304]
add r1, r1, #1
- ldr r6, [fp, #-48]
+ ldr r10, [fp, #-48]
ldr r2, [r0, r3, lsl #3]
- uxth lr, r2
- cmp r6, lr
- addhi r3, ip, r3, lsl #3
- movhi r2, lr
+ uxth r6, r2
+ cmp r10, r6
+ addhi r3, lr, r3, lsl #3
+ movhi r2, r6
ldrhi r3, [r0, r3]
ldrhi r0, [fp, #-44]
strhi r3, [r0, r2, lsl #2]
- b .L1763
-.L1787:
+ b .L1804
+.L1834:
.align 2
-.L1786:
+.L1833:
.word .LANCHOR0
+ .word .LANCHOR0+308
+ .word .LANCHOR0+314
.word .LANCHOR1+615
- .word .LC116
+ .word .LC130
.word .LANCHOR0+3456
- .word .LC117
+ .word .LC131
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 2
.global FtlLoadVonderInfo
@@ -12512,18 +12797,21 @@ FtlLoadVonderInfo:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L1789
- ldrh r2, [r3, #120]
+ ldr r3, .L1836
+ add r2, r3, #324
add r0, r3, #3600
+ ldrh r2, [r2]
add r0, r0, #12
strh r2, [r0, #10] @ movhi
- ldr r2, .L1789+4
+ ldr r2, .L1836+4
strh r2, [r0, #4] @ movhi
- ldrh r2, [r3, #144]
+ add r2, r3, #348
+ ldrh r2, [r2]
strh r2, [r0, #8] @ movhi
- ldrh r2, [r3, #122]
+ movw r2, #326
+ ldrh r2, [r3, r2]
strh r2, [r0, #6] @ movhi
- ldr r2, [r3, #148]
+ ldr r2, [r3, #352]
str r2, [r3, #3624]
ldr r2, [r3, #3372]
str r2, [r3, #3628]
@@ -12534,9 +12822,9 @@ FtlLoadVonderInfo:
bl FtlMapTblRecovery
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L1790:
+.L1837:
.align 2
-.L1789:
+.L1836:
.word .LANCHOR0
.word -3962
.size FtlLoadVonderInfo, .-FtlLoadVonderInfo
@@ -12553,13 +12841,13 @@ FtlLoadMapInfo:
push {fp, ip, lr, pc}
sub fp, ip, #4
bl FtlL2PDataInit
- ldr r0, .L1792
+ ldr r0, .L1839
bl FtlMapTblRecovery
mov r0, #0
ldmfd sp, {fp, sp, pc}
-.L1793:
+.L1840:
.align 2
-.L1792:
+.L1839:
.word .LANCHOR0+3396
.size FtlLoadMapInfo, .-FtlLoadMapInfo
.align 2
@@ -12572,29 +12860,29 @@ FtlSysBlkInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
mov ip, sp
- push {r4, r5, r6, r7, r8, fp, ip, lr, pc}
+ push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1809
+ ldr r4, .L1857
mov r2, #0
movw r3, #3476
- ldrh r0, [r4, #36]
+ ldrh r0, [r4, #240]
strh r2, [r4, r3] @ movhi
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
- add r3, r4, #2576
- ldrh r2, [r3]
+ movw r3, #2628
+ ldrh r2, [r4, r3]
movw r3, #65535
cmp r2, r3
- bne .L1795
-.L1797:
- mvn r8, #0
-.L1794:
- mov r0, r8
- ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc}
-.L1795:
+ bne .L1842
+.L1844:
+ mvn r6, #0
+.L1841:
+ mov r0, r6
+ ldmfd sp, {r4, r5, r6, fp, sp, pc}
+.L1842:
bl FtlLoadSysInfo
- subs r8, r0, #0
- bne .L1797
+ subs r6, r0, #0
+ bne .L1844
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -12604,102 +12892,98 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
mov r0, #1
bl FtlUpdateVaildLpn
- ldrh r1, [r4, #138]
- mov r3, r8
- ldr r2, [r4, #2492]
+ ldr r2, [r4, #2544]
+ movw r3, #342
+ ldrh r1, [r4, r3]
mov r0, #12
-.L1798:
+ mov r3, r6
+.L1845:
cmp r3, r1
- bge .L1803
+ bge .L1850
mla ip, r0, r3, r2
ldr ip, [ip, #4]
cmp ip, #0
- bge .L1799
-.L1803:
- ldr r5, .L1809+4
+ bge .L1846
+.L1850:
+ ldr r5, .L1857+4
cmp r3, r1
ldrh r2, [r5, #28]
- add r6, r5, #80
add r2, r2, #1
strh r2, [r5, #28] @ movhi
- bge .L1808
-.L1800:
- ldr r7, .L1809+8
- ldr r0, .L1809+12
+ bge .L1856
+.L1847:
+ ldr r0, .L1857+8
bl FtlSuperblockPowerLostFix
- mov r0, r7
+ ldr r0, .L1857+12
bl FtlSuperblockPowerLostFix
- movw r3, #2348
- ldr r1, [r4, #2324]
- ldrh r3, [r4, r3]
- ldrh r0, [r6, #4]
+ ldrh r3, [r4, #28]
+ ldr r1, [r4, #76]
+ ldrh r0, [r4, #32]
lsl r3, r3, #1
ldrh r2, [r1, r3]
sub r2, r2, r0
+ movw r0, #306
strh r2, [r1, r3] @ movhi
- movw r2, #2396
- ldrh r2, [r4, r2]
- ldrh r3, [r4, #102]
- ldr r0, [r4, #2324]
- ldrh ip, [r7, #4]
+ ldrh r2, [r4, #80]
+ ldrh r3, [r4, r0]
+ ldr ip, [r4, #76]
+ ldrh lr, [r4, #84]
lsl r2, r2, #1
- strh r3, [r6, #2] @ movhi
+ strh r3, [r4, #30] @ movhi
mov r3, #0
- strb r3, [r4, #2354]
- strh r3, [r6, #4] @ movhi
- ldrh r1, [r0, r2]
- sub r1, r1, ip
- strh r1, [r0, r2] @ movhi
- strb r3, [r4, #2402]
- strh r3, [r7, #4] @ movhi
+ strb r3, [r4, #34]
+ strh r3, [r4, #32] @ movhi
+ ldrh r1, [ip, r2]
+ sub r1, r1, lr
+ strh r1, [ip, r2] @ movhi
+ strb r3, [r4, #86]
+ strh r3, [r4, #84] @ movhi
ldrh r3, [r5, #30]
- ldrh r2, [r4, #102]
+ ldrh r2, [r4, r0]
add r3, r3, #1
- strh r2, [r7, #2] @ movhi
+ strh r2, [r4, #82] @ movhi
strh r3, [r5, #30] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
- b .L1804
-.L1799:
+ b .L1851
+.L1846:
add r3, r3, #1
- b .L1798
-.L1808:
+ b .L1845
+.L1856:
movw r3, #3476
ldrh r3, [r4, r3]
cmp r3, #0
- bne .L1800
-.L1804:
- bl FtlVpcCheckAndModify
- movw r3, #2348
- ldrh r0, [r4, r3]
+ bne .L1847
+.L1851:
+ ldrh r0, [r4, #28]
movw r3, #65535
cmp r0, r3
- beq .L1794
- ldrh r3, [r6, #4]
+ beq .L1852
+ ldrh r3, [r4, #32]
cmp r3, #0
- bne .L1794
- ldr r5, .L1809+8
- ldrh r3, [r5, #4]
+ bne .L1852
+ ldrh r3, [r4, #84]
cmp r3, #0
- bne .L1794
+ bne .L1852
bl FtlGcRefreshBlock
- movw r3, #2396
- ldrh r0, [r4, r3]
+ ldrh r0, [r4, #80]
bl FtlGcRefreshBlock
bl FtlVpcTblFlush
- sub r0, r5, #48
+ ldr r0, .L1857+8
bl allocate_new_data_superblock
- mov r0, r5
+ ldr r0, .L1857+12
bl allocate_new_data_superblock
- b .L1794
-.L1810:
+.L1852:
+ bl FtlVpcCheckAndModify
+ b .L1841
+.L1858:
.align 2
-.L1809:
+.L1857:
.word .LANCHOR0
- .word .LANCHOR0+2268
- .word .LANCHOR0+2396
- .word .LANCHOR0+2348
+ .word .LANCHOR0+2472
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
.size FtlSysBlkInit, .-FtlSysBlkInit
.align 2
.global ftl_low_format
@@ -12713,145 +12997,145 @@ ftl_low_format:
mov ip, sp
push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1835
+ ldr r4, .L1883
mov r3, #0
- ldrh r0, [r4, #36]
- str r3, [r4, #2540]
- str r3, [r4, #2544]
+ ldrh r0, [r4, #240]
+ str r3, [r4, #2592]
+ str r3, [r4, #2596]
+ str r3, [r4, #2608]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
cmp r0, #0
- beq .L1812
+ beq .L1860
bl FtlMakeBbt
-.L1812:
- ldr r0, .L1835+4
+.L1860:
+ ldr r0, .L1883+4
mov r2, #0
-.L1813:
- ldrh r1, [r4, #58]
+ ldr ip, .L1883+8
+.L1861:
+ ldrh r1, [r0]
uxth r3, r2
add r2, r2, #1
cmp r3, r1, lsl #7
- blt .L1814
- ldrh r6, [r4, #40]
+ blt .L1862
+ ldrh r6, [r4, #244]
mov r5, #0
-.L1815:
- ldrh r3, [r4, #42]
+.L1863:
+ ldrh r3, [r4, #246]
cmp r3, r6
- bhi .L1816
- ldrh r1, [r4, #32]
+ bhi .L1864
+ ldrh r1, [r4, #236]
sub r3, r5, #3
cmp r3, r1, lsl #1
- bge .L1817
-.L1821:
+ bge .L1865
+.L1869:
mov r0, #0
- mov r6, r0
-.L1818:
- ldrh r2, [r4, #40]
+ mov r7, r0
+.L1866:
+ ldrh r2, [r4, #244]
uxth r3, r0
add r5, r0, #1
cmp r2, r3
- bhi .L1822
- ldrh r3, [r4, #42]
- movw r9, #2572
- ldrh r5, [r4, #32]
- ldr r10, [r4, #44]
+ bhi .L1870
+ ldrh r3, [r4, #246]
+ ldrh r5, [r4, #236]
+ ldr r10, [r4, #248]
str r3, [r4, #3288]
mov r1, r5
+ ldr r6, .L1883+12
mov r0, r10
bl __udivsi3
- ubfx r7, r0, #5, #16
- mov r8, r0
- add r3, r7, #36
- str r0, [r4, #2504]
- strh r3, [r4, r9] @ movhi
+ ubfx r8, r0, #5, #16
+ mov r9, r0
+ add r3, r8, #36
+ str r0, [r4, #2556]
+ strh r3, [r6] @ movhi
mov r3, #24
mul r3, r3, r5
- cmp r6, r3
- ble .L1823
+ cmp r7, r3
+ ble .L1871
mov r1, r5
- sub r0, r10, r6
+ sub r0, r10, r7
bl __udivsi3
- str r0, [r4, #2504]
+ str r0, [r4, #2556]
lsr r0, r0, #5
add r0, r0, #24
- strh r0, [r4, r9] @ movhi
-.L1823:
- ldrh r3, [r4, #94]
+ strh r0, [r6] @ movhi
+.L1871:
+ movw r3, #298
+ ldrh r3, [r4, r3]
cmp r3, #0
- beq .L1825
- movw r2, #2572
- ldrh r1, [r4, r2]
- add r1, r1, r3, lsr #1
- strh r1, [r4, r2] @ movhi
- mul r1, r5, r3
- cmp r6, r1
+ beq .L1873
+ ldrh r2, [r6]
+ add r2, r2, r3, lsr #1
+ strh r2, [r6] @ movhi
+ mul r2, r5, r3
+ cmp r7, r2
addlt r3, r3, #32
- strlt r8, [r4, #2504]
- addlt r3, r7, r3
- strhlt r3, [r4, r2] @ movhi
-.L1825:
- movw r3, #2572
- ldr r1, [r4, #2504]
+ strlt r9, [r4, #2556]
+ addlt r3, r8, r3
+ strhlt r3, [r6] @ movhi
+.L1873:
+ ldrh r2, [r6]
+ ldr r3, [r4, #2556]
+ ldr r6, .L1883+16
+ sub r3, r3, r2
+ mul r5, r5, r3
+ movw r3, #306
ldrh r3, [r4, r3]
- mvn r6, #0
- sub r1, r1, r3
- ldrh r3, [r4, #102]
- mul r1, r5, r1
- ldr r5, .L1835+8
- sub r5, r5, #244
- str r1, [r4, #3676]
- mul r1, r1, r3
- ldrh r3, [r4, #58]
- str r1, [r4, #2504]
- mul r1, r1, r3
- str r1, [r4, #140]
+ str r5, [r4, #3676]
+ mul r5, r5, r3
+ movw r3, #262
+ ldrh r3, [r4, r3]
+ str r5, [r4, #2556]
+ mul r5, r5, r3
+ str r5, [r4, #344]
+ mvn r5, #0
bl FtlBbmTblFlush
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, #0
- ldr r0, [r4, #2324]
+ ldr r0, [r4, #76]
lsl r2, r2, #1
bl ftl_memset
+ ldrh r2, [r4, #244]
mov r3, #0
- movw r2, #2348
- strh r3, [r4, r2] @ movhi
+ str r3, [r4, #2552]
mov r1, #255
- ldrh r2, [r4, #40]
- strh r3, [r5, #246] @ movhi
- strh r6, [r5, #244] @ movhi
- mov r7, r5
- str r3, [r4, #2500]
- strb r3, [r4, #2598]
+ strh r3, [r4, #178] @ movhi
+ strb r3, [r4, #182]
+ strb r3, [r4, #184]
lsr r2, r2, #3
- strb r3, [r4, #2600]
- strh r3, [r5, #2] @ movhi
- strb r3, [r4, #2354]
+ strh r3, [r4, #30] @ movhi
+ strb r3, [r4, #34]
+ strh r3, [r4, #28] @ movhi
mov r3, #1
ldr r0, [r4, #24]
- strb r3, [r4, #2356]
+ strh r5, [r4, #176] @ movhi
+ strb r3, [r4, #36]
bl ftl_memset
-.L1827:
- mov r0, r7
+.L1875:
+ mov r0, r6
bl make_superblock
- ldrb r3, [r4, #2355] @ zero_extendqisi2
+ ldrb r3, [r4, #35] @ zero_extendqisi2
cmp r3, #0
- ldrh r3, [r5]
- bne .L1828
- ldr r2, [r4, #2324]
+ ldrh r3, [r4, #28]
+ bne .L1876
+ ldr r2, [r4, #76]
lsl r3, r3, #1
- strh r6, [r2, r3] @ movhi
- ldrh r3, [r5]
+ strh r5, [r2, r3] @ movhi
+ ldrh r3, [r4, #28]
add r3, r3, #1
- strh r3, [r5] @ movhi
- b .L1827
-.L1814:
- ldr ip, [r4, #3316]
+ strh r3, [r4, #28] @ movhi
+ b .L1875
+.L1862:
+ ldr lr, [r4, #3316]
mvn r1, r3
orr r1, r3, r1, lsl #16
- str r1, [ip, r3, lsl #2]
+ str r1, [lr, r3, lsl #2]
ldr r1, [r4, #3320]
- str r0, [r1, r3, lsl #2]
- b .L1813
-.L1816:
+ str ip, [r1, r3, lsl #2]
+ b .L1861
+.L1864:
mov r0, r6
mov r1, #1
bl FtlLowFormatEraseBlock
@@ -12859,111 +13143,110 @@ ftl_low_format:
add r5, r5, r0
uxth r5, r5
uxth r6, r6
- b .L1815
-.L1817:
+ b .L1863
+.L1865:
mov r0, r5
bl __udivsi3
- ldr r3, [r4, #132]
+ ldr r3, [r4, #336]
add r0, r0, r3
uxth r0, r0
bl FtlSysBlkNumInit
- ldrh r0, [r4, #36]
+ ldrh r0, [r4, #240]
bl FtlFreeSysBlkQueueInit
- ldrh r5, [r4, #40]
-.L1819:
- ldrh r3, [r4, #42]
+ ldrh r5, [r4, #244]
+.L1867:
+ ldrh r3, [r4, #246]
cmp r3, r5
- bls .L1821
+ bls .L1869
mov r0, r5
mov r1, #1
add r5, r5, #1
bl FtlLowFormatEraseBlock
uxth r5, r5
- b .L1819
-.L1822:
+ b .L1867
+.L1870:
mov r1, #0
uxth r0, r0
bl FtlLowFormatEraseBlock
- add r6, r6, r0
+ add r7, r7, r0
mov r0, r5
- uxth r6, r6
- b .L1818
-.L1828:
- ldr r2, [r4, #2540]
+ uxth r7, r7
+ b .L1866
+.L1876:
+ ldr r2, [r4, #2592]
lsl r3, r3, #1
- ldrh r1, [r5, #4]
- mvn r6, #0
- str r2, [r4, #2360]
+ ldrh r1, [r4, #32]
+ mvn r5, #0
+ ldr r6, .L1883+20
+ str r2, [r4, #40]
add r2, r2, #1
- str r2, [r4, #2540]
- ldr r2, [r4, #2324]
+ str r2, [r4, #2592]
+ ldr r2, [r4, #76]
strh r1, [r2, r3] @ movhi
mov r3, #0
- ldr r2, .L1835+12
- movw r1, #2396
- strb r3, [r4, #2402]
- strh r3, [r2, #2] @ movhi
- mov r7, r2
- ldrh r3, [r5]
- mov r5, r2
+ strh r3, [r4, #82] @ movhi
+ strb r3, [r4, #86]
+ ldrh r3, [r4, #28]
add r3, r3, #1
- strh r3, [r4, r1] @ movhi
+ strh r3, [r4, #80] @ movhi
mov r3, #1
- strb r3, [r4, #2404]
-.L1829:
- mov r0, r7
+ strb r3, [r4, #88]
+.L1877:
+ mov r0, r6
bl make_superblock
- ldrb r3, [r4, #2403] @ zero_extendqisi2
+ ldrb r3, [r4, #87] @ zero_extendqisi2
cmp r3, #0
- ldrh r3, [r5]
- bne .L1830
- ldr r2, [r4, #2324]
+ ldrh r3, [r4, #80]
+ bne .L1878
+ ldr r2, [r4, #76]
lsl r3, r3, #1
- strh r6, [r2, r3] @ movhi
- ldrh r3, [r5]
+ strh r5, [r2, r3] @ movhi
+ ldrh r3, [r4, #80]
add r3, r3, #1
- strh r3, [r5] @ movhi
- b .L1829
-.L1830:
- ldr r2, [r4, #2540]
+ strh r3, [r4, #80] @ movhi
+ b .L1877
+.L1878:
+ ldr r2, [r4, #2592]
lsl r3, r3, #1
- ldrh r1, [r5, #4]
+ ldrh r1, [r4, #84]
mvn r5, #0
- str r2, [r4, #2408]
+ str r2, [r4, #92]
add r2, r2, #1
- str r2, [r4, #2540]
- ldr r2, [r4, #2324]
+ str r2, [r4, #2592]
+ ldr r2, [r4, #76]
strh r1, [r2, r3] @ movhi
- movw r3, #2444
- strh r5, [r4, r3] @ movhi
+ strh r5, [r4, #128] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, .L1835+16
+ ldr r3, .L1883+24
+ movw r2, #2628
+ strh r0, [r4, r2] @ movhi
mov r2, #0
strh r2, [r3, #2] @ movhi
ldr r2, [r4, #3676]
strh r5, [r3, #4] @ movhi
- strh r0, [r3] @ movhi
strh r2, [r3, #6] @ movhi
- ldr r3, [r4, #2540]
- str r3, [r4, #2584]
+ ldr r3, [r4, #2592]
+ str r3, [r4, #2636]
add r3, r3, #1
- str r3, [r4, #2540]
+ str r3, [r4, #2592]
bl FtlVpcTblFlush
bl FtlSysBlkInit
cmp r0, #0
mov r0, #0
- ldreq r3, .L1835+20
+ ldreq r3, .L1883+28
moveq r2, #1
streq r2, [r3]
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1836:
+.L1884:
.align 2
-.L1835:
+.L1883:
.word .LANCHOR0
+ .word .LANCHOR0+262
.word 168778952
- .word .LANCHOR0+2592
- .word .LANCHOR0+2396
- .word .LANCHOR0+2576
+ .word .LANCHOR0+2624
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
+ .word .LANCHOR0+2628
.word .LANCHOR2
.size ftl_low_format, .-ftl_low_format
.align 2
@@ -12978,48 +13261,47 @@ sftl_init:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r4, .L1843
+ ldr r4, .L1891
mvn r3, #0
- ldr r5, .L1843+4
- ldr r1, .L1843+8
- ldr r0, .L1843+12
+ ldr r5, .L1891+4
+ ldr r1, .L1891+8
+ ldr r0, .L1891+12
str r3, [r5]
bl sftl_printk
mov r0, r4
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh r0, [r4, #36]
+ ldrh r0, [r4, #240]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
cmp r0, #0
- bne .L1841
+ bne .L1889
bl FtlSysBlkInit
cmp r0, #0
- bne .L1841
+ bne .L1889
mov r3, #1
str r3, [r5]
- movw r3, #2344
- ldrh r3, [r4, r3]
+ ldrh r3, [r4, #228]
cmp r3, #15
- bhi .L1841
+ bhi .L1889
movw r4, #8129
-.L1840:
+.L1888:
mov r1, #1
mov r0, #0
bl rk_ftl_garbage_collect
subs r4, r4, #1
- bne .L1840
-.L1841:
+ bne .L1888
+.L1889:
mov r0, #0
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1844:
+.L1892:
.align 2
-.L1843:
+.L1891:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC70
- .word .LC71
+ .word .LC0
+ .word .LC77
.size sftl_init, .-sftl_init
.align 2
.global FtlWriteToIDB
@@ -13045,30 +13327,30 @@ FtlWriteToIDB:
orrcs r3, r3, #1
mov r7, r2
cmp r3, #0
- ldr r6, .L1907
- beq .L1846
+ ldr r6, .L1955
+ beq .L1894
ldr r3, [r6, #3680]
cmp r3, #0
- bne .L1847
-.L1906:
+ bne .L1895
+.L1954:
mov r4, #0
- b .L1845
-.L1847:
+ b .L1893
+.L1895:
ldr r3, [r6, #3684]
ldr r2, [r3]
str r3, [fp, #-112]
- ldr r3, .L1907+4
+ ldr r3, .L1955+4
cmp r2, r3
- bne .L1849
+ bne .L1897
ldr r3, [fp, #-112]
mov r2, #0
ldrh r1, [r6, #10]
add r0, r3, #262144
movw r3, #65535
-.L1853:
+.L1901:
ldr ip, [r0, #-4]
cmp ip, #0
- bne .L1850
+ bne .L1898
ldr ip, [fp, #-112]
sub r3, r3, #1
ldr ip, [ip, r2, lsl #2]
@@ -13077,18 +13359,18 @@ FtlWriteToIDB:
movhi r2, #0
cmp r3, #4096
str ip, [r0, #-4]!
- bne .L1853
+ bne .L1901
mov r3, #512
- b .L1904
-.L1850:
+ b .L1952
+.L1898:
add r3, r3, #127
lsr r3, r3, #7
-.L1904:
+.L1952:
str r3, [fp, #-116]
lsl r1, r1, #2
ldr r3, [fp, #-116]
uxth r1, r1
- ldr r4, .L1907
+ ldr r4, .L1955
add r0, r3, #4
bl __udivsi3
add r3, r0, #1
@@ -13100,7 +13382,7 @@ FtlWriteToIDB:
mov r3, #0
str r3, [fp, #-124]
str r3, [fp, #-108]
-.L1875:
+.L1923:
mov r1, #512
ldr r0, [r4, #3688]
bl __memzero
@@ -13110,32 +13392,32 @@ FtlWriteToIDB:
ldr r3, [r4, #3264]
cmp r3, #0
moveq r10, #6
- beq .L1854
+ beq .L1902
ldr r3, [r4, #3268]
cmp r3, #0
moveq r10, #6
movne r10, #9
-.L1854:
+.L1902:
ldr r3, [r6, #3252]
mov r1, r8
mov r0, #0
blx r3
ldr r3, [fp, #-120]
cmp r3, #1
- beq .L1855
+ beq .L1903
ldr r3, [r6, #3252]
add r1, r7, r8
mov r0, #0
blx r3
-.L1855:
+.L1903:
cmp r10, #9
movne r5, #0
- bne .L1856
+ bne .L1904
ldr r5, [r6, #3688]
mov r1, #1024
mov r0, r5
bl __memzero
- ldr r3, .L1907+8
+ ldr r3, .L1955+8
mov r1, #12
mov r2, #4
str r1, [r5, #4]
@@ -13153,7 +13435,7 @@ FtlWriteToIDB:
strh r3, [r5, #22] @ movhi
bl js_hash
str r0, [r5, #8]
-.L1856:
+.L1904:
ldr r3, [fp, #-120]
mov r9, r8
mul r3, r7, r3
@@ -13161,10 +13443,10 @@ FtlWriteToIDB:
str r3, [fp, #-136]
ldr r3, [fp, #-112]
str r3, [fp, #-128]
-.L1857:
+.L1905:
ldr r3, [fp, #-136]
cmp r7, r3
- beq .L1864
+ beq .L1912
cmp r10, #9
addne r3, r8, r7
addeq r3, r9, #1
@@ -13176,7 +13458,7 @@ FtlWriteToIDB:
movw r3, #61424
str r3, [fp, #-100]
movne r0, #0
- bne .L1860
+ bne .L1908
ldr r3, [r4, #3264]
mov r0, #70
blx r3
@@ -13192,8 +13474,8 @@ FtlWriteToIDB:
blx r2
ldr r3, [fp, #-140]
cmn r3, #1
- bne .L1861
-.L1864:
+ bne .L1909
+.L1912:
ldrb r3, [r4, #14] @ zero_extendqisi2
ldrh r10, [r4, #10]
ldr r7, [r4, #3688]
@@ -13203,23 +13485,23 @@ FtlWriteToIDB:
ldr r3, [r4, #3264]
cmp r3, #0
moveq r8, #6
- beq .L1863
+ beq .L1911
ldr r3, [r4, #3268]
cmp r3, #0
moveq r8, #6
movne r8, #9
-.L1863:
+.L1911:
ldr r3, [fp, #-120]
mov r5, #0
mul r10, r10, r3
-.L1866:
+.L1914:
cmp r5, r10
- beq .L1870
+ beq .L1918
cmp r5, #0
cmpeq r8, #9
moveq r0, #1
movne r0, #0
- bne .L1867
+ bne .L1915
ldr r3, [r4, #3264]
mov r0, #70
blx r3
@@ -13239,27 +13521,27 @@ FtlWriteToIDB:
ldrb r0, [r4, #22] @ zero_extendqisi2
blx r3
ldr r3, [r7]
- ldr r2, .L1907+8
+ ldr r2, .L1955+8
cmp r3, r2
- beq .L1868
-.L1870:
+ beq .L1916
+.L1918:
ldr r0, [r4, #3688]
mov r5, #0
ldr r3, [fp, #-112]
-.L1869:
+.L1917:
mov r8, r3
ldr r1, [r0, r5, lsl #2]
ldr r2, [r8]
lsl r7, r5, #2
add r3, r3, #4
cmp r1, r2
- beq .L1872
+ beq .L1920
mov r1, #512
bl __memzero
ldr r2, [r6, #3688]
ldr r1, [fp, #-108]
str r5, [sp]
- ldr r0, .L1907+12
+ ldr r0, .L1955+12
ldr r3, [r8]
ldr r2, [r2, r7]
bl sftl_printk
@@ -13269,21 +13551,21 @@ FtlWriteToIDB:
ldr r3, [r6, #3252]
mul r1, r2, r1
blx r3
-.L1873:
+.L1921:
ldr r3, [fp, #-108]
ldr r2, [fp, #-120]
add r3, r3, r2
cmp r3, #15
str r3, [fp, #-108]
- bls .L1875
+ bls .L1923
ldr r3, [fp, #-124]
cmp r3, #0
- bne .L1876
-.L1849:
+ bne .L1924
+.L1897:
mvn r3, #0
str r3, [fp, #-116]
-.L1876:
- ldr r5, .L1907
+.L1924:
+ ldr r5, .L1955
mov r3, #0
ldr r4, [fp, #-116]
ldr r0, [r5, #3684]
@@ -13291,55 +13573,55 @@ FtlWriteToIDB:
bl kfree
ldr r0, [r5, #3688]
bl kfree
-.L1845:
+.L1893:
mov r0, r4
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1860:
+.L1908:
ldr ip, [r4, #3256]
sub r3, fp, #104
ldr r2, [fp, #-128]
mov r1, r9
blx ip
cmn r0, #1
- beq .L1864
+ beq .L1912
ldr r3, [fp, #-128]
add r3, r3, #2048
str r3, [fp, #-128]
-.L1861:
+.L1909:
add r7, r7, #1
add r9, r9, #1
- b .L1857
-.L1867:
+ b .L1905
+.L1915:
ldr ip, [r4, #3260]
sub r3, fp, #104
mov r2, r7
add r1, r9, r5
blx ip
cmn r0, #1
- beq .L1870
+ beq .L1918
ldr r2, [fp, #-100]
movw r3, #61424
cmp r2, r3
- bne .L1870
+ bne .L1918
add r7, r7, #2048
-.L1868:
+.L1916:
add r5, r5, #1
- b .L1866
-.L1872:
+ b .L1914
+.L1920:
ldr r2, [fp, #-132]
add r5, r5, #1
cmp r5, r2
- bne .L1869
+ bne .L1917
ldr r3, [fp, #-124]
add r3, r3, #1
cmp r3, #5
str r3, [fp, #-124]
- bls .L1873
- b .L1876
-.L1846:
+ bls .L1921
+ b .L1924
+.L1894:
cmp r0, #64
- bne .L1877
+ bne .L1925
mov r0, #262144
bl ftl_malloc
str r0, [r6, #3684]
@@ -13349,24 +13631,24 @@ FtlWriteToIDB:
str r0, [r6, #3688]
cmp r3, #0
cmpne r0, #0
- beq .L1878
+ beq .L1926
mov r2, #1
mov r1, #262144
mov r0, r3
str r2, [r6, #3680]
bl __memzero
-.L1877:
+.L1925:
ldr r3, [r6, #3680]
cmp r3, #0
- beq .L1906
+ beq .L1954
cmp r5, #63
ldr r1, [r6, #3684]
- ldrhi r6, .L1907+16
+ ldrhi r6, .L1955+16
rsbls r5, r5, #64
subls r4, r4, r5
addls r7, r7, r5, lsl #9
movls r6, r1
- ldr r0, .L1907+20
+ ldr r0, .L1955+20
addhi r6, r5, r6
mov r2, #262144
addhi r6, r1, r6, lsl #9
@@ -13381,23 +13663,23 @@ FtlWriteToIDB:
mov r1, r7
mov r0, r6
bl ftl_memcpy
- b .L1906
-.L1878:
- ldr r1, .L1907+24
- ldr r0, .L1907+28
+ b .L1954
+.L1926:
+ ldr r1, .L1955+24
+ ldr r0, .L1955+28
bl sftl_printk
- b .L1877
-.L1908:
+ b .L1925
+.L1956:
.align 2
-.L1907:
+.L1955:
.word .LANCHOR0
.word -52655045
.word 1179535694
- .word .LC118
+ .word .LC132
.word 8388544
- .word .LC120
+ .word .LC134
.word .LANCHOR1+633
- .word .LC119
+ .word .LC133
.size FtlWriteToIDB, .-FtlWriteToIDB
.align 2
.global sftl_write
@@ -13434,7 +13716,7 @@ rk_sftl_vendor_dev_ops_register:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r2, .L1913
+ ldr r2, .L1961
ldr r3, [r2, #3692]
cmp r3, #0
streq r0, [r2, #3692]
@@ -13442,9 +13724,9 @@ rk_sftl_vendor_dev_ops_register:
streq r1, [r2, #3696]
mvnne r0, #0
ldmfd sp, {fp, sp, pc}
-.L1914:
+.L1962:
.align 2
-.L1913:
+.L1961:
.word .LANCHOR0
.size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
.align 2
@@ -13460,28 +13742,28 @@ rk_sftl_vendor_storage_init:
push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc}
sub fp, ip, #4
mov r0, #65536
- ldr r4, .L1924
+ ldr r4, .L1972
bl ftl_malloc
cmp r0, #0
str r0, [r4, #3700]
mvneq r9, #11
- beq .L1915
- ldr r8, .L1924+4
+ beq .L1963
+ ldr r8, .L1972+4
mov r6, #0
mov r5, r6
mov r7, r6
-.L1919:
+.L1967:
ldr r3, [r4, #3692]
mov r1, #128
ldr r2, [r4, #3700]
lsl r0, r7, #7
blx r3
subs r9, r0, #0
- bne .L1917
+ bne .L1965
ldr r2, [r4, #3700]
ldr r3, [r2]
cmp r3, r8
- bne .L1918
+ bne .L1966
add r1, r2, #61440
ldr r3, [r2, #4]
ldr r1, [r1, #4092]
@@ -13493,26 +13775,26 @@ rk_sftl_vendor_storage_init:
cmp r1, #0
movne r6, r7
movne r5, r3
-.L1918:
+.L1966:
add r7, r7, #1
cmp r7, #2
- bne .L1919
+ bne .L1967
cmp r5, #0
- beq .L1920
+ beq .L1968
ldr r3, [r4, #3692]
mov r1, #128
lsl r0, r6, #7
blx r3
subs r9, r0, #0
- beq .L1915
-.L1917:
+ beq .L1963
+.L1965:
ldr r0, [r4, #3700]
mvn r9, #0
bl kfree
mov r3, #0
str r3, [r4, #3700]
- b .L1915
-.L1920:
+ b .L1963
+.L1968:
mov r1, #65536
mov r0, r2
bl __memzero
@@ -13522,15 +13804,15 @@ rk_sftl_vendor_storage_init:
str r2, [r3, #4]
str r8, [r3]
str r2, [r1, #4092]
- ldr r2, .L1924+8
+ ldr r2, .L1972+8
strh r5, [r3, #12] @ movhi
strh r2, [r3, #14] @ movhi
-.L1915:
+.L1963:
mov r0, r9
ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc}
-.L1925:
+.L1973:
.align 2
-.L1924:
+.L1972:
.word .LANCHOR0
.word 1380668996
.word -1032
@@ -13547,26 +13829,26 @@ rk_sftl_vendor_read:
mov ip, sp
push {r4, r5, fp, ip, lr, pc}
sub fp, ip, #4
- ldr r3, .L1932
+ ldr r3, .L1980
mov r4, r0
mov r0, r1
ldr ip, [r3, #3700]
cmp ip, #0
ldrhne lr, [ip, #10]
movne r3, #0
- bne .L1928
-.L1931:
+ bne .L1976
+.L1979:
mvn r0, #0
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1929:
+.L1977:
add r3, r3, #1
-.L1928:
+.L1976:
cmp r3, lr
- bcs .L1931
+ bcs .L1979
add r1, ip, r3, lsl #3
ldrh r5, [r1, #16]
cmp r5, r4
- bne .L1929
+ bne .L1977
ldrh r4, [r1, #20]
ldrh r1, [r1, #18]
cmp r4, r2
@@ -13577,9 +13859,9 @@ rk_sftl_vendor_read:
bl memcpy
mov r0, r4
ldmfd sp, {r4, r5, fp, sp, pc}
-.L1933:
+.L1981:
.align 2
-.L1932:
+.L1980:
.word .LANCHOR0
.size rk_sftl_vendor_read, .-rk_sftl_vendor_read
.align 2
@@ -13596,23 +13878,23 @@ rk_sftl_vendor_write:
sub fp, ip, #4
sub sp, sp, #24
mov ip, r1
- ldr r8, .L1953
+ ldr r8, .L2001
mov r9, r2
ldr r4, [r8, #3700]
cmp r4, #0
- beq .L1949
+ beq .L1997
ldrh r2, [r4, #10]
add r7, r9, #63
ldrh r3, [r4, #8]
bic r7, r7, #63
mov r5, #0
str r3, [fp, #-44]
-.L1936:
+.L1984:
cmp r5, r2
- bcc .L1944
+ bcc .L1992
ldrh r1, [r4, #14]
cmp r7, r1
- bhi .L1949
+ bhi .L1997
add r3, r4, r2, lsl #3
uxth r7, r7
strh r0, [r3, #16] @ movhi
@@ -13644,31 +13926,31 @@ rk_sftl_vendor_write:
movhi r3, #0
strh r3, [r4, #8] @ movhi
ldr r3, [r8, #3696]
- b .L1952
-.L1944:
+ b .L2000
+.L1992:
add r6, r4, r5, lsl #3
ldrh r3, [r6, #16]
cmp r3, r0
str r3, [fp, #-48]
- bne .L1937
+ bne .L1985
ldrh r1, [r6, #20]
add r3, r4, #1024
add r1, r1, #63
bic r1, r1, #63
cmp r9, r1
str r1, [fp, #-52]
- bls .L1938
+ bls .L1986
ldrh r1, [r4, #14]
cmp r7, r1
- bhi .L1949
+ bhi .L1997
ldrh r8, [r6, #18]
sub r2, r2, #1
str r2, [fp, #-56]
-.L1939:
+.L1987:
ldr r2, [fp, #-56]
add r6, r6, #8
cmp r5, r2
- bcc .L1940
+ bcc .L1988
ldrh r2, [fp, #-48]
add r5, r4, r5, lsl #3
uxth r8, r8
@@ -13687,7 +13969,7 @@ rk_sftl_vendor_write:
strh r8, [r4, #12] @ movhi
add r7, r7, r3
strh r7, [r4, #14] @ movhi
-.L1941:
+.L1989:
ldr r3, [r4, #4]
add r2, r4, #61440
add r3, r3, #1
@@ -13699,19 +13981,19 @@ rk_sftl_vendor_write:
cmp r3, #1
movhi r3, #0
strh r3, [r4, #8] @ movhi
- ldr r3, .L1953
+ ldr r3, .L2001
ldr r3, [r3, #3696]
-.L1952:
+.L2000:
ldr r0, [fp, #-44]
mov r2, r4
mov r1, #128
lsl r0, r0, #7
blx r3
mov r0, #0
-.L1934:
+.L1982:
sub sp, fp, #40
ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc}
-.L1940:
+.L1988:
ldrh r10, [r6, #20]
add r0, r3, r8
ldrh r2, [r6, #16]
@@ -13730,8 +14012,8 @@ rk_sftl_vendor_write:
bl memcpy
ldr ip, [fp, #-64]
ldr r3, [fp, #-60]
- b .L1939
-.L1938:
+ b .L1987
+.L1986:
add r5, r4, r5, lsl #3
mov r2, r9
mov r1, ip
@@ -13739,16 +14021,16 @@ rk_sftl_vendor_write:
add r0, r3, r0
bl memcpy
strh r9, [r6, #20] @ movhi
- b .L1941
-.L1937:
+ b .L1989
+.L1985:
add r5, r5, #1
- b .L1936
-.L1949:
+ b .L1984
+.L1997:
mvn r0, #0
- b .L1934
-.L1954:
+ b .L1982
+.L2002:
.align 2
-.L1953:
+.L2001:
.word .LANCHOR0
.size rk_sftl_vendor_write, .-rk_sftl_vendor_write
.align 2
@@ -13764,139 +14046,164 @@ rk_sftl_vendor_storage_ioctl:
push {r4, r5, r6, fp, ip, lr, pc}
sub fp, ip, #4
mov r0, #4096
- mov r5, r2
+ mov r4, r2
mov r6, r1
bl ftl_malloc
- subs r4, r0, #0
- mvneq r5, #0
- beq .L1955
- ldr r3, .L1980
+ subs r5, r0, #0
+ mvneq r4, #0
+ beq .L2003
+ ldr r3, .L2031
cmp r6, r3
- beq .L1958
+ beq .L2006
add r3, r3, #1
cmp r6, r3
- beq .L1959
-.L1975:
- mvn r5, #13
- b .L1957
-.L1958:
- ldr r6, .L1980+4
+ beq .L2007
+.L2026:
+ mvn r4, #13
+ b .L2005
+.L2006:
+ ldr r6, .L2031+4
mov r3, sp
and r3, r3, r6
ldr r3, [r3, #72]
.syntax divided
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
+ adds r2, r4, #8; sbcccs r2, r2, r3; movcc r3, #0
@ 0 "" 2
.arm
.syntax unified
cmp r3, #0
- bne .L1965
+ bne .L2008
mov r2, #8
- mov r1, r5
+ mov r1, r4
bl arm_copy_from_user
cmp r0, #0
- bne .L1975
- ldr r2, [r4]
- ldr r3, .L1980+8
+ beq .L2027
+.L2009:
+ mov r2, r4
+ mov r1, #256
+.L2030:
+ ldr r0, .L2031+8
+ bl sftl_printk
+ b .L2026
+.L2008:
+ mov r1, #8
+ bl __memzero
+ b .L2009
+.L2027:
+ ldr r2, [r5]
+ ldr r3, .L2031+12
cmp r2, r3
- beq .L1963
-.L1964:
- mvn r5, #0
-.L1957:
- mov r0, r4
- bl kfree
-.L1955:
+ beq .L2011
+.L2012:
+ mvn r4, #0
+.L2005:
mov r0, r5
+ bl kfree
+.L2003:
+ mov r0, r4
ldmfd sp, {r4, r5, r6, fp, sp, pc}
-.L1963:
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
+.L2011:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
bl rk_sftl_vendor_read
cmn r0, #1
- beq .L1964
+ beq .L2012
mov r3, sp
uxth r2, r0
and r6, r6, r3
- strh r0, [r4, #6] @ movhi
+ strh r0, [r5, #6] @ movhi
add r2, r2, #8
ldr r3, [r6, #72]
.syntax divided
@ 573 "./arch/arm/include/asm/uaccess.h" 1
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
+ adds r1, r4, r2; sbcccs r1, r1, r3; movcc r3, #0
@ 0 "" 2
.arm
.syntax unified
cmp r3, #0
- bne .L1975
- mov r0, r5
- mov r1, r4
+ bne .L2026
+ mov r0, r4
+ mov r1, r5
bl arm_copy_to_user
- subs r5, r0, #0
- beq .L1957
- b .L1975
-.L1959:
- ldr r6, .L1980+4
+ subs r4, r0, #0
+ beq .L2005
+ b .L2026
+.L2007:
+ ldr r6, .L2031+4
mov r3, sp
and r3, r3, r6
ldr r3, [r3, #72]
.syntax divided
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
+ adds r2, r4, #8; sbcccs r2, r2, r3; movcc r3, #0
@ 0 "" 2
.arm
.syntax unified
cmp r3, #0
- bne .L1965
+ bne .L2014
mov r2, #8
- mov r1, r5
+ mov r1, r4
bl arm_copy_from_user
cmp r0, #0
- bne .L1975
- ldr r2, [r4]
- ldr r3, .L1980+8
+ beq .L2028
+.L2015:
+ mov r2, r4
+ mov r1, #276
+ b .L2030
+.L2014:
+ mov r1, #8
+ bl __memzero
+ b .L2015
+.L2028:
+ ldr r2, [r5]
+ ldr r3, .L2031+12
cmp r2, r3
- bne .L1964
- ldrh r2, [r4, #6]
+ bne .L2012
+ ldrh r2, [r5, #6]
movw r3, #4087
cmp r2, r3
- bhi .L1964
+ bhi .L2012
mov r3, sp
add r2, r2, #8
and r6, r6, r3
ldr r3, [r6, #72]
.syntax divided
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
+ adds r1, r4, r2; sbcccs r1, r1, r3; movcc r3, #0
@ 0 "" 2
.arm
.syntax unified
cmp r3, #0
- movne r1, r2
- movne r0, r4
- bne .L1979
- mov r1, r5
- mov r0, r4
+ bne .L2017
+ mov r1, r4
+ mov r0, r5
bl arm_copy_from_user
cmp r0, #0
- bne .L1975
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
- bl rk_sftl_vendor_write
- mov r5, r0
- b .L1957
-.L1965:
- mov r1, #8
-.L1979:
+ beq .L2029
+.L2018:
+ mov r2, r4
+ movw r1, #283
+ b .L2030
+.L2017:
+ mov r1, r2
+ mov r0, r5
bl __memzero
- b .L1975
-.L1981:
+ b .L2018
+.L2029:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
+ bl rk_sftl_vendor_write
+ mov r4, r0
+ b .L2005
+.L2032:
.align 2
-.L1980:
+.L2031:
.word 1074034177
.word -8192
+ .word .LC135
.word 1448232273
.size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl
.align 2
@@ -13911,12 +14218,12 @@ rk_sftl_vendor_register:
mov ip, sp
push {fp, ip, lr, pc}
sub fp, ip, #4
- ldr r0, .L1983
+ ldr r0, .L2034
bl misc_register
ldmfd sp, {fp, sp, pc}
-.L1984:
+.L2035:
.align 2
-.L1983:
+.L2034:
.word .LANCHOR2+12
.size rk_sftl_vendor_register, .-rk_sftl_vendor_register
.global g_nand_ops
@@ -14071,153 +14378,153 @@ rk_sftl_vendor_register:
.section .rodata
.align 2
.set .LANCHOR1,. + 0
- .type __func__.3964, %object
- .size __func__.3964, 17
-__func__.3964:
+ .type __func__.3968, %object
+ .size __func__.3968, 17
+__func__.3968:
.ascii "INSERT_DATA_LIST\000"
- .type __func__.3959, %object
- .size __func__.3959, 17
-__func__.3959:
+ .type __func__.3963, %object
+ .size __func__.3963, 17
+__func__.3963:
.ascii "INSERT_FREE_LIST\000"
- .type __func__.3995, %object
- .size __func__.3995, 17
-__func__.3995:
+ .type __func__.3999, %object
+ .size __func__.3999, 17
+__func__.3999:
.ascii "List_remove_node\000"
- .type __func__.4027, %object
- .size __func__.4027, 22
-__func__.4027:
+ .type __func__.4031, %object
+ .size __func__.4031, 22
+__func__.4031:
.ascii "List_update_data_list\000"
- .type __func__.4134, %object
- .size __func__.4134, 22
-__func__.4134:
+ .type __func__.4138, %object
+ .size __func__.4138, 22
+__func__.4138:
.ascii "select_l2p_ram_region\000"
- .type __func__.4461, %object
- .size __func__.4461, 16
-__func__.4461:
+ .type __func__.4465, %object
+ .size __func__.4465, 16
+__func__.4465:
.ascii "make_superblock\000"
- .type __func__.4636, %object
- .size __func__.4636, 19
-__func__.4636:
+ .type __func__.4640, %object
+ .size __func__.4640, 19
+__func__.4640:
.ascii "get_new_active_ppa\000"
- .type __func__.15051, %object
- .size __func__.15051, 17
-__func__.15051:
+ .type __func__.15063, %object
+ .size __func__.15063, 17
+__func__.15063:
.ascii "FlashEraseBlocks\000"
- .type __func__.4069, %object
- .size __func__.4069, 26
-__func__.4069:
+ .type __func__.4073, %object
+ .size __func__.4073, 26
+__func__.4073:
.ascii "ftl_map_blk_alloc_new_blk\000"
- .type __func__.3574, %object
- .size __func__.3574, 11
-__func__.3574:
+ .type __func__.3578, %object
+ .size __func__.3578, 11
+__func__.3578:
.ascii "FtlMemInit\000"
- .type __func__.3801, %object
- .size __func__.3801, 14
-__func__.3801:
+ .type __func__.3805, %object
+ .size __func__.3805, 14
+__func__.3805:
.ascii "FtlBbt2Bitmap\000"
- .type __func__.4482, %object
- .size __func__.4482, 18
-__func__.4482:
+ .type __func__.4486, %object
+ .size __func__.4486, 18
+__func__.4486:
.ascii "SupperBlkListInit\000"
- .type __func__.15008, %object
- .size __func__.15008, 15
-__func__.15008:
+ .type __func__.15020, %object
+ .size __func__.15020, 15
+__func__.15020:
.ascii "FlashReadPages\000"
- .type __func__.4246, %object
- .size __func__.4246, 14
-__func__.4246:
+ .type __func__.4250, %object
+ .size __func__.4250, 14
+__func__.4250:
.ascii "FtlScanSysBlk\000"
- .type __func__.3844, %object
- .size __func__.3844, 11
-__func__.3844:
+ .type __func__.3848, %object
+ .size __func__.3848, 11
+__func__.3848:
.ascii "FtlLoadBbt\000"
- .type __func__.15027, %object
- .size __func__.15027, 15
-__func__.15027:
+ .type __func__.15039, %object
+ .size __func__.15039, 15
+__func__.15039:
.ascii "FlashProgPages\000"
- .type __func__.4608, %object
- .size __func__.4608, 25
-__func__.4608:
+ .type __func__.4612, %object
+ .size __func__.4612, 25
+__func__.4612:
.ascii "allocate_data_superblock\000"
- .type __func__.4649, %object
- .size __func__.4649, 16
-__func__.4649:
+ .type __func__.4653, %object
+ .size __func__.4653, 16
+__func__.4653:
.ascii "update_vpc_list\000"
- .type __func__.4656, %object
- .size __func__.4656, 20
-__func__.4656:
+ .type __func__.4660, %object
+ .size __func__.4660, 20
+__func__.4660:
.ascii "decrement_vpc_count\000"
- .type __func__.4095, %object
- .size __func__.4095, 31
-__func__.4095:
+ .type __func__.4099, %object
+ .size __func__.4099, 31
+__func__.4099:
.ascii "Ftl_write_map_blk_to_last_page\000"
- .type __func__.4109, %object
- .size __func__.4109, 16
-__func__.4109:
+ .type __func__.4113, %object
+ .size __func__.4113, 16
+__func__.4113:
.ascii "FtlMapWritePage\000"
- .type __func__.4036, %object
- .size __func__.4036, 16
-__func__.4036:
+ .type __func__.4040, %object
+ .size __func__.4040, 16
+__func__.4040:
.ascii "load_l2p_region\000"
- .type __func__.4080, %object
- .size __func__.4080, 15
-__func__.4080:
+ .type __func__.4084, %object
+ .size __func__.4084, 15
+__func__.4084:
.ascii "ftl_map_blk_gc\000"
- .type __func__.4151, %object
- .size __func__.4151, 9
-__func__.4151:
+ .type __func__.4155, %object
+ .size __func__.4155, 9
+__func__.4155:
.ascii "log2phys\000"
- .type __func__.4370, %object
- .size __func__.4370, 16
-__func__.4370:
+ .type __func__.4374, %object
+ .size __func__.4374, 16
+__func__.4374:
.ascii "FtlReUsePrevPpa\000"
- .type __func__.4404, %object
- .size __func__.4404, 22
-__func__.4404:
+ .type __func__.4408, %object
+ .size __func__.4408, 22
+__func__.4408:
.ascii "FtlRecoverySuperblock\000"
- .type __func__.4523, %object
- .size __func__.4523, 14
-__func__.4523:
+ .type __func__.4527, %object
+ .size __func__.4527, 14
+__func__.4527:
.ascii "ftl_check_vpc\000"
- .type __func__.4224, %object
- .size __func__.4224, 15
-__func__.4224:
+ .type __func__.4228, %object
+ .size __func__.4228, 15
+__func__.4228:
.ascii "FtlVpcTblFlush\000"
- .type __func__.4507, %object
- .size __func__.4507, 21
-__func__.4507:
+ .type __func__.4511, %object
+ .size __func__.4511, 21
+__func__.4511:
.ascii "FtlVpcCheckAndModify\000"
- .type __func__.4629, %object
- .size __func__.4629, 29
-__func__.4629:
+ .type __func__.4633, %object
+ .size __func__.4633, 29
+__func__.4633:
.ascii "allocate_new_data_superblock\000"
- .type __func__.3698, %object
- .size __func__.3698, 13
-__func__.3698:
+ .type __func__.3702, %object
+ .size __func__.3702, 13
+__func__.3702:
.ascii "FtlProgPages\000"
- .type __func__.4726, %object
- .size __func__.4726, 19
-__func__.4726:
+ .type __func__.4730, %object
+ .size __func__.4730, 19
+__func__.4730:
.ascii "FtlGcFreeTempBlock\000"
- .type __func__.4837, %object
- .size __func__.4837, 23
-__func__.4837:
+ .type __func__.4843, %object
+ .size __func__.4843, 23
+__func__.4843:
.ascii "rk_ftl_garbage_collect\000"
- .type __func__.3726, %object
- .size __func__.3726, 9
-__func__.3726:
+ .type __func__.3730, %object
+ .size __func__.3730, 9
+__func__.3730:
.ascii "FtlWrite\000"
- .type __func__.4302, %object
- .size __func__.4302, 15
-__func__.4302:
+ .type __func__.4306, %object
+ .size __func__.4306, 15
+__func__.4306:
.ascii "FtlLoadSysInfo\000"
- .type __func__.4324, %object
- .size __func__.4324, 18
-__func__.4324:
+ .type __func__.4328, %object
+ .size __func__.4328, 18
+__func__.4328:
.ascii "FtlMapTblRecovery\000"
- .type __func__.15175, %object
- .size __func__.15175, 14
-__func__.15175:
+ .type __func__.15187, %object
+ .size __func__.15187, 14
+__func__.15187:
.ascii "FtlWriteToIDB\000"
.space 1
.type rk_sftl_vendor_storage_fops, %object
@@ -14247,7 +14554,7 @@ power_up_flag:
.size rkflash_vender_storage_dev, 40
rkflash_vender_storage_dev:
.word 255
- .word .LC121
+ .word .LC136
.word rk_sftl_vendor_storage_fops
.space 28
.bss
@@ -14261,6 +14568,39 @@ g_nand_phy_info:
.size p_blk_mode_table, 4
p_blk_mode_table:
.space 4
+ .type g_active_superblock, %object
+ .size g_active_superblock, 48
+g_active_superblock:
+ .space 48
+ .type p_valid_page_count_table, %object
+ .size p_valid_page_count_table, 4
+p_valid_page_count_table:
+ .space 4
+ .type g_buffer_superblock, %object
+ .size g_buffer_superblock, 48
+g_buffer_superblock:
+ .space 48
+ .type g_gc_temp_superblock, %object
+ .size g_gc_temp_superblock, 48
+g_gc_temp_superblock:
+ .space 48
+ .type g_gc_superblock, %object
+ .size g_gc_superblock, 48
+g_gc_superblock:
+ .space 48
+ .type g_gc_next_blk_1, %object
+ .size g_gc_next_blk_1, 2
+g_gc_next_blk_1:
+ .space 2
+ .type g_gc_next_blk, %object
+ .size g_gc_next_blk, 2
+g_gc_next_blk:
+ .space 2
+ .type g_num_free_superblocks, %object
+ .size g_num_free_superblocks, 2
+g_num_free_superblocks:
+ .space 2
+ .space 2
.type c_ftl_nand_sys_blks_per_plane, %object
.size c_ftl_nand_sys_blks_per_plane, 4
c_ftl_nand_sys_blks_per_plane:
@@ -14424,14 +14764,6 @@ p_data_block_list_table:
.size p_data_block_list_head, 4
p_data_block_list_head:
.space 4
- .type p_valid_page_count_table, %object
- .size p_valid_page_count_table, 4
-p_valid_page_count_table:
- .space 4
- .type p_erase_count_table, %object
- .size p_erase_count_table, 4
-p_erase_count_table:
- .space 4
.type p_data_block_list_tail, %object
.size p_data_block_list_tail, 4
p_data_block_list_tail:
@@ -14445,23 +14777,10 @@ g_num_data_superblocks:
.size p_free_data_block_list_head, 4
p_free_data_block_list_head:
.space 4
- .type g_num_free_superblocks, %object
- .size g_num_free_superblocks, 2
-g_num_free_superblocks:
- .space 2
- .space 2
- .type g_active_superblock, %object
- .size g_active_superblock, 48
-g_active_superblock:
- .space 48
- .type g_buffer_superblock, %object
- .size g_buffer_superblock, 48
-g_buffer_superblock:
- .space 48
- .type g_gc_temp_superblock, %object
- .size g_gc_temp_superblock, 48
-g_gc_temp_superblock:
- .space 48
+ .type p_erase_count_table, %object
+ .size p_erase_count_table, 4
+p_erase_count_table:
+ .space 4
.type p_l2p_ram_map, %object
.size p_l2p_ram_map, 4
p_l2p_ram_map:
@@ -14555,10 +14874,6 @@ c_ftl_nand_data_op_blks_per_plane:
.size gSysInfo, 16
gSysInfo:
.space 16
- .type g_gc_superblock, %object
- .size g_gc_superblock, 48
-g_gc_superblock:
- .space 48
.type g_sys_ext_data, %object
.size g_sys_ext_data, 512
g_sys_ext_data:
@@ -14625,14 +14940,6 @@ p_gc_page_info:
.size g_gc_page_offset, 2
g_gc_page_offset:
.space 2
- .type g_gc_next_blk, %object
- .size g_gc_next_blk, 2
-g_gc_next_blk:
- .space 2
- .type g_gc_next_blk_1, %object
- .size g_gc_next_blk_1, 2
-g_gc_next_blk_1:
- .space 2
.type g_gc_bad_block_temp_num, %object
.size g_gc_bad_block_temp_num, 2
g_gc_bad_block_temp_num:
@@ -14884,253 +15191,283 @@ gp_last_act_superblock:
.space 4
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
- .ascii "\000"
+ .ascii "SFTL version: 5.0.50 20190215\000"
.LC1:
- .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
+ .ascii "\012%s\012\000"
.LC2:
- .ascii "FLASH INFO:\012\000"
+ .ascii "act blk: %x %x %x %x %x %x\012\000"
.LC3:
- .ascii "Device Capacity: %d MB\012\000"
+ .ascii "buf blk: %x %x %x %x %x %x\012\000"
.LC4:
- .ascii "FTL INFO:\012\000"
+ .ascii "tmp blk: %x %x %x %x %x %x\012\000"
.LC5:
- .ascii "g_MaxLpn = 0x%x\012\000"
+ .ascii "gc blk: %x %x %x %x %x %x\012\000"
.LC6:
- .ascii "g_VaildLpn = 0x%x\012\000"
+ .ascii "free blk: %x %x %x\012\000"
.LC7:
- .ascii "read_page_count = 0x%x\012\000"
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
+ .ascii "\000"
.LC8:
- .ascii "discard_page_count = 0x%x\012\000"
+ .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
.LC9:
- .ascii "write_page_count = 0x%x\012\000"
+ .ascii "FLASH INFO:\012\000"
.LC10:
- .ascii "cache_write_count = 0x%x\012\000"
+ .ascii "Device Capacity: %d MB\012\000"
.LC11:
- .ascii "l2p_write_count = 0x%x\012\000"
+ .ascii "FTL INFO:\012\000"
.LC12:
- .ascii "gc_page_count = 0x%x\012\000"
+ .ascii "g_MaxLpn = 0x%x\012\000"
.LC13:
- .ascii "totle_write = %d MB\012\000"
+ .ascii "g_VaildLpn = 0x%x\012\000"
.LC14:
- .ascii "totle_read = %d MB\012\000"
+ .ascii "read_page_count = 0x%x\012\000"
.LC15:
- .ascii "GSV = 0x%x\012\000"
+ .ascii "discard_page_count = 0x%x\012\000"
.LC16:
- .ascii "GDV = 0x%x\012\000"
+ .ascii "write_page_count = 0x%x\012\000"
.LC17:
- .ascii "bad blk num = %d\012\000"
+ .ascii "cache_write_count = 0x%x\012\000"
.LC18:
- .ascii "free_superblocks = 0x%x\012\000"
+ .ascii "l2p_write_count = 0x%x\012\000"
.LC19:
- .ascii "mlc_EC = 0x%x\012\000"
+ .ascii "gc_page_count = 0x%x\012\000"
.LC20:
- .ascii "slc_EC = 0x%x\012\000"
+ .ascii "totle_write = %d MB\012\000"
.LC21:
- .ascii "avg_EC = 0x%x\012\000"
+ .ascii "totle_read = %d MB\012\000"
.LC22:
- .ascii "sys_EC = 0x%x\012\000"
+ .ascii "GSV = 0x%x\012\000"
.LC23:
- .ascii "max_EC = 0x%x\012\000"
+ .ascii "GDV = 0x%x\012\000"
.LC24:
- .ascii "min_EC = 0x%x\012\000"
+ .ascii "bad blk num = %d\012\000"
.LC25:
- .ascii "PLT = 0x%x\012\000"
+ .ascii "free_superblocks = 0x%x\012\000"
.LC26:
- .ascii "POT = 0x%x\012\000"
+ .ascii "mlc_EC = 0x%x\012\000"
.LC27:
- .ascii "MaxSector = 0x%x\012\000"
+ .ascii "slc_EC = 0x%x\012\000"
.LC28:
- .ascii "init_sys_blks_pp = 0x%x\012\000"
+ .ascii "avg_EC = 0x%x\012\000"
.LC29:
- .ascii "sys_blks_pp = 0x%x\012\000"
+ .ascii "sys_EC = 0x%x\012\000"
.LC30:
- .ascii "free sysblock = 0x%x\012\000"
+ .ascii "max_EC = 0x%x\012\000"
.LC31:
- .ascii "data_blks_pp = 0x%x\012\000"
+ .ascii "min_EC = 0x%x\012\000"
.LC32:
- .ascii "data_op_blks_pp = 0x%x\012\000"
+ .ascii "PLT = 0x%x\012\000"
.LC33:
- .ascii "max_data_blks = 0x%x\012\000"
+ .ascii "POT = 0x%x\012\000"
.LC34:
- .ascii "Sys.id = 0x%x\012\000"
+ .ascii "MaxSector = 0x%x\012\000"
.LC35:
- .ascii "Bbt.id = 0x%x\012\000"
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
.LC36:
- .ascii "ACT.page = 0x%x\012\000"
+ .ascii "sys_blks_pp = 0x%x\012\000"
.LC37:
- .ascii "ACT.plane = 0x%x\012\000"
+ .ascii "free sysblock = 0x%x\012\000"
.LC38:
- .ascii "ACT.id = 0x%x\012\000"
+ .ascii "data_blks_pp = 0x%x\012\000"
.LC39:
- .ascii "ACT.mode = 0x%x\012\000"
+ .ascii "data_op_blks_pp = 0x%x\012\000"
.LC40:
- .ascii "ACT.a_pages = 0x%x\012\000"
+ .ascii "max_data_blks = 0x%x\012\000"
.LC41:
- .ascii "ACT VPC = 0x%x\012\000"
+ .ascii "Sys.id = 0x%x\012\000"
.LC42:
- .ascii "BUF.page = 0x%x\012\000"
+ .ascii "Bbt.id = 0x%x\012\000"
.LC43:
- .ascii "BUF.plane = 0x%x\012\000"
+ .ascii "ACT.page = 0x%x\012\000"
.LC44:
- .ascii "BUF.id = 0x%x\012\000"
+ .ascii "ACT.plane = 0x%x\012\000"
.LC45:
- .ascii "BUF.mode = 0x%x\012\000"
+ .ascii "ACT.id = 0x%x\012\000"
.LC46:
- .ascii "BUF.a_pages = 0x%x\012\000"
+ .ascii "ACT.mode = 0x%x\012\000"
.LC47:
- .ascii "BUF VPC = 0x%x\012\000"
+ .ascii "ACT.a_pages = 0x%x\012\000"
.LC48:
- .ascii "TMP.page = 0x%x\012\000"
+ .ascii "ACT VPC = 0x%x\012\000"
.LC49:
- .ascii "TMP.plane = 0x%x\012\000"
+ .ascii "BUF.page = 0x%x\012\000"
.LC50:
- .ascii "TMP.id = 0x%x\012\000"
+ .ascii "BUF.plane = 0x%x\012\000"
.LC51:
- .ascii "TMP.mode = 0x%x\012\000"
+ .ascii "BUF.id = 0x%x\012\000"
.LC52:
- .ascii "TMP.a_pages = 0x%x\012\000"
+ .ascii "BUF.mode = 0x%x\012\000"
.LC53:
- .ascii "GC.page = 0x%x\012\000"
+ .ascii "BUF.a_pages = 0x%x\012\000"
.LC54:
- .ascii "GC.plane = 0x%x\012\000"
+ .ascii "BUF VPC = 0x%x\012\000"
.LC55:
- .ascii "GC.id = 0x%x\012\000"
+ .ascii "TMP.page = 0x%x\012\000"
.LC56:
- .ascii "GC.mode = 0x%x\012\000"
+ .ascii "TMP.plane = 0x%x\012\000"
.LC57:
- .ascii "GC.a_pages = 0x%x\012\000"
+ .ascii "TMP.id = 0x%x\012\000"
.LC58:
- .ascii "WR_CHK = %x %x %x\012\000"
+ .ascii "TMP.mode = 0x%x\012\000"
.LC59:
- .ascii "Read Err Cnt = 0x%x\012\000"
+ .ascii "TMP.a_pages = 0x%x\012\000"
.LC60:
- .ascii "Prog Err Cnt = 0x%x\012\000"
+ .ascii "GC.page = 0x%x\012\000"
.LC61:
- .ascii "gc_free_blk_th= 0x%x\012\000"
+ .ascii "GC.plane = 0x%x\012\000"
.LC62:
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
+ .ascii "GC.id = 0x%x\012\000"
.LC63:
- .ascii "gc_skip_write_count= 0x%x\012\000"
+ .ascii "GC.mode = 0x%x\012\000"
.LC64:
- .ascii "gc_blk_index= 0x%x\012\000"
+ .ascii "GC.a_pages = 0x%x\012\000"
.LC65:
- .ascii "free min EC= 0x%x\012\000"
+ .ascii "WR_CHK = %x %x %x\012\000"
.LC66:
- .ascii "free max EC= 0x%x\012\000"
+ .ascii "Read Err Cnt = 0x%x\012\000"
.LC67:
- .ascii "GC__SB VPC = 0x%x\012\000"
+ .ascii "Prog Err Cnt = 0x%x\012\000"
.LC68:
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+ .ascii "gc_free_blk_th= 0x%x\012\000"
.LC69:
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
.LC70:
- .ascii "SFTL version: 5.0.50 20181227\000"
+ .ascii "gc_skip_write_count= 0x%x\012\000"
.LC71:
- .ascii "%s\012\000"
+ .ascii "gc_blk_index= 0x%x\012\000"
.LC72:
+ .ascii "free min EC= 0x%x\012\000"
+.LC73:
+ .ascii "free max EC= 0x%x\012\000"
+.LC74:
+ .ascii "GC__SB VPC = 0x%x\012\000"
+.LC75:
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+.LC76:
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+.LC77:
+ .ascii "%s\012\000"
+.LC78:
.ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
.ascii "\012\000"
-.LC73:
+.LC79:
.ascii "FtlGcRefreshBlock 0x%x\012\000"
-.LC74:
+.LC80:
.ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
-.LC75:
+.LC81:
.ascii "%s %p + 0x%x:\000"
-.LC76:
+.LC82:
.ascii "0x%08x,\000"
-.LC77:
+.LC83:
.ascii "0x%04x,\000"
-.LC78:
+.LC84:
.ascii "0x%02x,\000"
-.LC79:
+.LC85:
.ascii "\012\000"
-.LC80:
+.LC86:
.ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
-.LC81:
+.LC87:
.ascii "not free: w: d:\000"
-.LC82:
+.LC88:
.ascii "not free: w: s:\000"
-.LC83:
+.LC89:
.ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
.ascii "\000"
-.LC84:
+.LC90:
.ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
-.LC85:
+.LC91:
.ascii "%s error allocating memory. return -1\012\000"
-.LC86:
+.LC92:
+ .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
+.LC93:
+ .ascii "data:\000"
+.LC94:
+ .ascii "spare:\000"
+.LC95:
.ascii "prog read error: = %x\012\000"
-.LC87:
+.LC96:
+ .ascii "prog read REFRESH: = %x\012\000"
+.LC97:
.ascii "prog read s error: = %x %x %x\012\000"
-.LC88:
+.LC98:
.ascii "prog read d error: = %x %x %x\012\000"
-.LC89:
+.LC99:
.ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
-.LC90:
+.LC100:
.ascii "FtlBbmTblFlush error:%x\012\000"
-.LC91:
+.LC101:
.ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
-.LC92:
+.LC102:
.ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
-.LC93:
+.LC103:
.ascii "decrement_vpc_count %x = %d\012\000"
-.LC94:
+.LC104:
.ascii "FtlMapWritePage error = %x \012\000"
-.LC95:
+.LC105:
.ascii "FtlMapWritePage error = %x error count = %d\012\000"
-.LC96:
+.LC106:
.ascii "region_id = %x phyAddr = %x\012\000"
-.LC97:
- .ascii "spare:\000"
-.LC98:
+.LC107:
.ascii "map_ppn:\000"
-.LC99:
+.LC108:
.ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
-.LC100:
+.LC109:
+ .ascii "data prev_ppa = %x error...................\012\000"
+.LC110:
.ascii "spuer block %x vpn is 0\012 \000"
-.LC101:
+.LC111:
.ascii "...%s enter...\012\000"
-.LC102:
+.LC112:
.ascii "FtlCheckVpc2 %x = %x %x\012\000"
-.LC103:
+.LC113:
.ascii "free blk vpc error %x = %x %x\012\000"
-.LC104:
+.LC114:
.ascii "ftl_scan_all_data = %x\012\000"
-.LC105:
+.LC115:
.ascii "scan lpa = %x ppa= %x\012\000"
-.LC106:
+.LC116:
.ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
.ascii "\000"
-.LC107:
+.LC117:
.ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
-.LC108:
+.LC118:
.ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
-.LC109:
+.LC119:
.ascii "no ect\000"
-.LC110:
+.LC120:
.ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
-.LC111:
+.LC121:
.ascii "FtlCheckVpc %x = %x %x\012\000"
-.LC112:
+.LC122:
+ .ascii "FtlProgPages error %x = %d\012\000"
+.LC123:
.ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
-.LC113:
+.LC124:
.ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
-.LC114:
+.LC125:
+ .ascii "g_gc_superblock_free %x %x %x %x %x\012\000"
+.LC126:
+ .ascii "lpa=%x, ppa=%x\012\000"
+.LC127:
+ .ascii "FtlWrite: ecc error:%x %x %x\012\000"
+.LC128:
.ascii "FtlWrite: lpa error:%x %x\012\000"
-.LC115:
+.LC129:
.ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
.ascii "=%x hash_r =%x\012\000"
-.LC116:
+.LC130:
.ascii "%s last blk_id =%x page =%x hash error hash =%x has"
.ascii "h_r =%x\012\000"
-.LC117:
+.LC131:
.ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
.ascii "h_r =%x\012\000"
-.LC118:
+.LC132:
.ascii "write_idblock fail! %x %x %x %x\012\000"
-.LC119:
+.LC133:
.ascii "%s idb buffer alloc fail\012\000"
-.LC120:
+.LC134:
.ascii "%p %x %p %x\012\000"
-.LC121:
+.LC135:
+ .ascii "copy_from_user error %d %p %p\012\000"
+.LC136:
.ascii "vendor_storage\000"
diff --git a/drivers/rkflash/rk_sftl_arm_v7_thumb.S b/drivers/rkflash/rk_sftl_arm_v7_thumb.S
index 13ebc06d213b..d71f076cf0ba 100644
--- a/drivers/rkflash/rk_sftl_arm_v7_thumb.S
+++ b/drivers/rkflash/rk_sftl_arm_v7_thumb.S
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
- * date: 2018-12-27
+ * date: 2019-02-20
*/
.arch armv7-a
.eabi_attribute 20, 1
@@ -88,6 +88,93 @@ ftl_set_blk_mode.part.6:
.fnend
.size ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6
.align 1
+ .global ftl_print_sblk_info
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type ftl_print_sblk_info, %function
+ftl_print_sblk_info:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r0, r1, r2, r3, r4, lr}
+ .save {r4, lr}
+ .pad #16
+ ldr r4, .L9
+ ldr r1, .L9+4
+ ldr r0, .L9+8
+ bl sftl_printk
+ ldrh r1, [r4, #28]
+ ldr r0, [r4, #76]
+ ldrb r3, [r4, #34] @ zero_extendqisi2
+ ldrh r2, [r4, #30]
+ ldrh r0, [r0, r1, lsl #1]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #32]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #36] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+12
+ bl sftl_printk
+ ldrh r1, [r4, #80]
+ ldr r0, [r4, #76]
+ ldrb r3, [r4, #86] @ zero_extendqisi2
+ ldrh r2, [r4, #82]
+ ldrh r0, [r0, r1, lsl #1]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #84]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #88] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+16
+ bl sftl_printk
+ ldrh r1, [r4, #128]
+ ldr r0, [r4, #76]
+ ldrb r3, [r4, #134] @ zero_extendqisi2
+ ldrh r2, [r4, #130]
+ ldrh r0, [r0, r1, lsl #1]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #132]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #136] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+20
+ bl sftl_printk
+ ldrh r1, [r4, #176]
+ ldr r0, [r4, #76]
+ ldrb r3, [r4, #182] @ zero_extendqisi2
+ ldrh r2, [r4, #178]
+ ldrh r0, [r0, r1, lsl #1]
+ str r0, [sp, #8]
+ ldrh r0, [r4, #180]
+ str r0, [sp, #4]
+ ldrb r0, [r4, #184] @ zero_extendqisi2
+ str r0, [sp]
+ ldr r0, .L9+24
+ bl sftl_printk
+ ldrh r3, [r4, #224]
+ ldrh r2, [r4, #226]
+ ldrh r1, [r4, #228]
+ ldr r0, .L9+28
+ add sp, sp, #16
+ @ sp needed
+ pop {r4, lr}
+ b sftl_printk
+.L10:
+ .align 2
+.L9:
+ .word .LANCHOR0
+ .word .LC0
+ .word .LC1
+ .word .LC2
+ .word .LC3
+ .word .LC4
+ .word .LC5
+ .word .LC6
+ .fnend
+ .size ftl_print_sblk_info, .-ftl_print_sblk_info
+ .align 1
.global Ftl_log2
.syntax unified
.thumb
@@ -101,17 +188,17 @@ Ftl_log2:
@ link register save eliminated.
movs r1, #0
movs r2, #1
-.L9:
+.L12:
cmp r2, r0
uxth r3, r1
add r1, r1, #1
- bls .L10
+ bls .L13
subs r0, r3, #1
uxth r0, r0
bx lr
-.L10:
+.L13:
lsls r2, r2, #1
- b .L9
+ b .L12
.fnend
.size Ftl_log2, .-Ftl_log2
.align 1
@@ -141,25 +228,25 @@ FtlSysBlkNumInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L13
+ ldr r3, .L16
cmp r0, #24
it cc
movcc r0, #24
- ldrh r2, [r3, #32]
- ldrh r1, [r3, #42]
- str r0, [r3, #28]
+ ldrh r2, [r3, #236]
+ ldrh r1, [r3, #246]
+ str r0, [r3, #232]
muls r2, r0, r2
subs r0, r1, r0
- ldr r1, [r3, #48]
- strh r0, [r3, #40] @ movhi
+ ldr r1, [r3, #252]
+ strh r0, [r3, #244] @ movhi
movs r0, #0
- str r2, [r3, #36]
+ str r2, [r3, #240]
subs r2, r1, r2
- str r2, [r3, #44]
+ str r2, [r3, #248]
bx lr
-.L14:
+.L17:
.align 2
-.L13:
+.L16:
.word .LANCHOR0
.fnend
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
@@ -180,128 +267,128 @@ FtlConstantsInit:
mov fp, r0
ldrh r3, [fp, #6]
ldrh r1, [fp, #14]
- ldr r4, .L25
+ ldr r4, .L28
ldrh r2, [r0]
cmp r1, #4
ldrh r6, [r0, #2]
- strh r3, [r4, #42] @ movhi
+ strh r3, [r4, #246] @ movhi
it eq
lsreq r3, r3, #1
- strh r1, [r4, #58] @ movhi
- ldr r1, .L25+4
+ strh r1, [r4, #262] @ movhi
+ ldr r1, .L28+4
itt eq
- strheq r3, [r4, #42] @ movhi
+ strheq r3, [r4, #246] @ movhi
moveq r3, #8
ldrh r0, [r0, #4]
it eq
- strheq r3, [r4, #58] @ movhi
+ strheq r3, [r4, #262] @ movhi
movs r3, #0
- strh r2, [r4, #52] @ movhi
- strh r6, [r4, #54] @ movhi
- strh r0, [r4, #56] @ movhi
-.L17:
+ strh r2, [r4, #256] @ movhi
+ strh r6, [r4, #258] @ movhi
+ strh r0, [r4, #260] @ movhi
+.L20:
strb r3, [r3, r1]
adds r3, r3, #1
cmp r3, #32
- bne .L17
- ldrh r5, [r4, #42]
+ bne .L20
+ ldrh r5, [r4, #246]
smulbb r6, r6, r0
movs r3, #5
cmp r2, #1
- strh r3, [r4, #92] @ movhi
+ strh r3, [r4, #296] @ movhi
uxth r6, r6
mov r3, #0
smulbb r0, r0, r5
mov r7, #640
it eq
- strheq r2, [r4, #92] @ movhi
- strh r3, [r4, #94] @ movhi
+ strheq r2, [r4, #296] @ movhi
+ strh r3, [r4, #298] @ movhi
uxth r0, r0
- strh r7, [r4, #96] @ movhi
- strh r6, [r4, #32] @ movhi
- strh r0, [r4, #98] @ movhi
+ strh r7, [r4, #300] @ movhi
+ strh r6, [r4, #236] @ movhi
+ strh r0, [r4, #302] @ movhi
bl Ftl_log2
ldrh r9, [fp, #12]
- ldrh r10, [r4, #58]
- strh r0, [r4, #100] @ movhi
- strh r9, [r4, #102] @ movhi
+ ldrh r10, [r4, #262]
+ strh r0, [r4, #304] @ movhi
+ strh r9, [r4, #306] @ movhi
smulbb r3, r6, r9
mov r0, r10
- strh r9, [r4, #104] @ movhi
- strh r3, [r4, #106] @ movhi
+ strh r9, [r4, #308] @ movhi
+ strh r3, [r4, #310] @ movhi
bl Ftl_log2
lsl r3, r10, #9
mov r8, r0
- strh r0, [r4, #108] @ movhi
+ strh r0, [r4, #312] @ movhi
mul r1, r9, r10
uxth r3, r3
mov r0, #5120
asr r7, r7, r8
- strh r3, [r4, #110] @ movhi
+ strh r3, [r4, #314] @ movhi
lsrs r3, r3, #8
add r8, r8, #9
- strh r3, [r4, #112] @ movhi
+ strh r3, [r4, #316] @ movhi
adds r7, r7, #2
ldrh r3, [fp, #20]
- strh r3, [r4, #114] @ movhi
+ strh r3, [r4, #318] @ movhi
mul r3, r5, r6
lsls r5, r5, #6
asr r5, r5, r8
- str r3, [r4, #48]
+ str r3, [r4, #252]
mul r3, r10, r3
mul r3, r9, r3
asrs r3, r3, #11
- str r3, [r4, #116]
+ str r3, [r4, #320]
bl __aeabi_idiv
uxth r0, r0
- strh r5, [r4, #124] @ movhi
+ strh r5, [r4, #328] @ movhi
uxth r5, r5
mov r1, r6
cmp r0, #4
- strh r7, [r4, #122] @ movhi
+ strh r7, [r4, #326] @ movhi
itet ls
movls r3, #4
- strhhi r0, [r4, #120] @ movhi
- strhls r3, [r4, #120] @ movhi
+ strhhi r0, [r4, #324] @ movhi
+ strhls r3, [r4, #324] @ movhi
mul r3, r6, r5
- ldrh r0, [r4, #120]
+ ldrh r0, [r4, #324]
adds r5, r5, #8
- str r3, [r4, #128]
+ str r3, [r4, #332]
bl __aeabi_uidiv
uxtah r0, r5, r0
cmp r6, #1
it eq
addeq r0, r0, #4
- str r0, [r4, #28]
- ldrh r0, [r4, #28]
+ str r0, [r4, #232]
+ ldrh r0, [r4, #232]
bl FtlSysBlkNumInit
- ldr r3, [r4, #28]
+ ldr r3, [r4, #232]
movs r0, #0
- str r0, [r4, #140]
- str r3, [r4, #132]
- ldr r3, [r4, #44]
+ str r0, [r4, #344]
+ str r3, [r4, #336]
+ ldr r3, [r4, #248]
lsls r2, r3, #2
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
muls r3, r2, r3
- ldrh r2, [r4, #108]
+ ldrh r2, [r4, #312]
adds r2, r2, #9
lsrs r3, r3, r2
adds r3, r3, #2
- strh r3, [r4, #136] @ movhi
+ strh r3, [r4, #340] @ movhi
movs r3, #32
- strh r3, [r4, #138] @ movhi
- ldrh r3, [r4, #120]
+ strh r3, [r4, #342] @ movhi
+ ldrh r3, [r4, #324]
adds r3, r3, #3
- strh r3, [r4, #120] @ movhi
- ldr r3, [r4, #128]
+ strh r3, [r4, #324] @ movhi
+ ldr r3, [r4, #332]
adds r3, r3, #3
- str r3, [r4, #128]
+ str r3, [r4, #332]
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L26:
+.L29:
.align 2
-.L25:
+.L28:
.word .LANCHOR0
- .word .LANCHOR0+60
+ .word .LANCHOR0+264
.fnend
.size FtlConstantsInit, .-FtlConstantsInit
.align 1
@@ -316,27 +403,27 @@ IsBlkInVendorPart:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L34
- ldrh r3, [r2, #144]
- cbz r3, .L33
- ldr r3, [r2, #148]
- ldrh r2, [r2, #120]
+ ldr r2, .L37
+ ldrh r3, [r2, #348]
+ cbz r3, .L36
+ ldr r3, [r2, #352]
+ ldrh r2, [r2, #324]
add r2, r3, r2, lsl #1
-.L29:
+.L32:
cmp r3, r2
- bne .L30
-.L33:
+ bne .L33
+.L36:
movs r0, #0
bx lr
-.L30:
+.L33:
ldrh r1, [r3], #2
cmp r0, r1
- bne .L29
+ bne .L32
movs r0, #1
bx lr
-.L35:
+.L38:
.align 2
-.L34:
+.L37:
.word .LANCHOR0
.fnend
.size IsBlkInVendorPart, .-IsBlkInVendorPart
@@ -368,12 +455,12 @@ sftl_get_density:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L38
- ldr r0, [r3, #140]
+ ldr r3, .L41
+ ldr r0, [r3, #344]
bx lr
-.L39:
+.L42:
.align 2
-.L38:
+.L41:
.word .LANCHOR0
.fnend
.size sftl_get_density, .-sftl_get_density
@@ -393,8 +480,8 @@ FtlBbmMapBadBlock:
.save {r4, r5, r6, r7, lr}
.pad #12
mov r5, r0
- ldr r4, .L41
- ldrh r7, [r4, #98]
+ ldr r4, .L44
+ ldrh r7, [r4, #302]
mov r1, r7
bl __aeabi_uidiv
uxth r6, r0
@@ -403,7 +490,7 @@ FtlBbmMapBadBlock:
bl __aeabi_uidivmod
add r2, r4, r6, lsl #2
uxth r3, r1
- ldr r2, [r2, #180]
+ ldr r2, [r2, #384]
lsrs r1, r3, #5
and r7, r3, #31
movs r0, #1
@@ -414,20 +501,20 @@ FtlBbmMapBadBlock:
mov r2, r6
str r0, [sp]
mov r1, r5
- ldr r0, .L41+4
+ ldr r0, .L44+4
bl sftl_printk
- ldrh r3, [r4, #158]
+ ldrh r3, [r4, #362]
movs r0, #0
adds r3, r3, #1
- strh r3, [r4, #158] @ movhi
+ strh r3, [r4, #362] @ movhi
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L42:
+.L45:
.align 2
-.L41:
+.L44:
.word .LANCHOR0
- .word .LC0
+ .word .LC7
.fnend
.size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
.align 1
@@ -444,8 +531,8 @@ FtlBbmIsBadBlock:
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r7, r0
- ldr r5, .L44
- ldrh r6, [r5, #98]
+ ldr r5, .L47
+ ldrh r6, [r5, #302]
mov r1, r6
bl __aeabi_uidivmod
mov r0, r7
@@ -456,14 +543,14 @@ FtlBbmIsBadBlock:
lsrs r2, r4, #5
add r5, r5, r0, lsl #2
and r4, r4, #31
- ldr r3, [r5, #180]
+ ldr r3, [r5, #384]
ldr r0, [r3, r2, lsl #2]
lsrs r0, r0, r4
and r0, r0, #1
pop {r3, r4, r5, r6, r7, pc}
-.L45:
+.L48:
.align 2
-.L44:
+.L47:
.word .LANCHOR0
.fnend
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
@@ -494,18 +581,18 @@ FtlBbtMemInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r0, .L48
+ ldr r0, .L51
movw r3, #65535
movs r2, #16
movs r1, #255
- strh r3, [r0, #152] @ movhi
+ strh r3, [r0, #356] @ movhi
movs r3, #0
- strh r3, [r0, #158] @ movhi
- adds r0, r0, #164
+ strh r3, [r0, #362] @ movhi
+ add r0, r0, #368
b memset
-.L49:
+.L52:
.align 2
-.L48:
+.L51:
.word .LANCHOR0
.fnend
.size FtlBbtMemInit, .-FtlBbtMemInit
@@ -520,31 +607,31 @@ FtlBbtCalcTotleCnt:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L57
+ ldr r3, .L60
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
mov r4, r5
- ldrh r2, [r3, #98]
- ldrh r6, [r3, #54]
+ ldrh r2, [r3, #302]
+ ldrh r6, [r3, #258]
muls r6, r2, r6
-.L51:
+.L54:
uxth r0, r5
cmp r0, r6
- blt .L53
+ blt .L56
mov r0, r4
pop {r4, r5, r6, pc}
-.L53:
+.L56:
bl FtlBbmIsBadBlock
- cbz r0, .L52
+ cbz r0, .L55
adds r4, r4, #1
uxth r4, r4
-.L52:
+.L55:
adds r5, r5, #1
- b .L51
-.L58:
+ b .L54
+.L61:
.align 2
-.L57:
+.L60:
.word .LANCHOR0
.fnend
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
@@ -562,12 +649,12 @@ V2P_block:
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r5, r1
- ldr r4, .L60
+ ldr r4, .L63
mov r7, r0
- ldrh r6, [r4, #56]
+ ldrh r6, [r4, #260]
mov r1, r6
bl __aeabi_uidiv
- ldrh r4, [r4, #98]
+ ldrh r4, [r4, #302]
smulbb r5, r6, r5
mov r1, r6
smulbb r4, r4, r0
@@ -577,9 +664,9 @@ V2P_block:
add r0, r0, r4
uxth r0, r0
pop {r3, r4, r5, r6, r7, pc}
-.L61:
+.L64:
.align 2
-.L60:
+.L63:
.word .LANCHOR0
.fnend
.size V2P_block, .-V2P_block
@@ -594,12 +681,12 @@ P2V_plane:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L63
+ ldr r3, .L66
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
- ldrh r5, [r3, #56]
- ldrh r1, [r3, #98]
+ ldrh r5, [r3, #260]
+ ldrh r1, [r3, #302]
bl __aeabi_uidiv
mov r1, r5
smulbb r4, r0, r5
@@ -608,9 +695,9 @@ P2V_plane:
add r1, r1, r4
uxth r0, r1
pop {r4, r5, r6, pc}
-.L64:
+.L67:
.align 2
-.L63:
+.L66:
.word .LANCHOR0
.fnend
.size P2V_plane, .-P2V_plane
@@ -627,17 +714,17 @@ P2V_block_in_plane:
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L66
- ldrh r1, [r4, #98]
+ ldr r4, .L69
+ ldrh r1, [r4, #302]
bl __aeabi_uidivmod
uxth r0, r1
- ldrh r1, [r4, #56]
+ ldrh r1, [r4, #260]
bl __aeabi_uidiv
uxth r0, r0
pop {r4, pc}
-.L67:
+.L70:
.align 2
-.L66:
+.L69:
.word .LANCHOR0
.fnend
.size P2V_block_in_plane, .-P2V_block_in_plane
@@ -654,14 +741,14 @@ ftl_cmp_data_ver:
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, r1
- bls .L69
+ bls .L72
subs r0, r0, r1
cmp r0, #-2147483648
ite hi
movhi r0, #0
movls r0, #1
bx lr
-.L69:
+.L72:
subs r0, r1, r0
cmp r0, #-2147483648
ite ls
@@ -681,22 +768,22 @@ FtlFreeSysBlkQueueInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L72
+ ldr r3, .L75
mov r1, #2048
push {r4, lr}
.save {r4, lr}
movs r4, #0
- strh r0, [r3, #212] @ movhi
- add r0, r3, #220
- strh r4, [r3, #214] @ movhi
- strh r4, [r3, #216] @ movhi
- strh r4, [r3, #218] @ movhi
+ strh r0, [r3, #416] @ movhi
+ add r0, r3, #424
+ strh r4, [r3, #418] @ movhi
+ strh r4, [r3, #420] @ movhi
+ strh r4, [r3, #422] @ movhi
bl __memzero
mov r0, r4
pop {r4, pc}
-.L73:
+.L76:
.align 2
-.L72:
+.L75:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
@@ -712,14 +799,14 @@ FtlFreeSysBlkQueueEmpty:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L75
- ldrh r0, [r3, #218]
+ ldr r3, .L78
+ ldrh r0, [r3, #422]
clz r0, r0
lsrs r0, r0, #5
bx lr
-.L76:
+.L79:
.align 2
-.L75:
+.L78:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
@@ -735,15 +822,15 @@ FtlFreeSysBlkQueueFull:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L78
- ldrh r0, [r3, #218]
+ ldr r3, .L81
+ ldrh r0, [r3, #422]
sub r3, r0, #1024
rsbs r0, r3, #0
adcs r0, r0, r3
bx lr
-.L79:
+.L82:
.align 2
-.L78:
+.L81:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
@@ -758,41 +845,41 @@ FtlFreeSysBLkSort:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L89
+ ldr r3, .L92
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- ldrh r2, [r3, #218]
- cbz r2, .L80
- ldrh r5, [r3, #2296]
+ ldrh r2, [r3, #422]
+ cbz r2, .L83
+ ldrh r5, [r3, #2500]
movs r0, #0
- ldrh r1, [r3, #214]
+ ldrh r1, [r3, #418]
mov r6, r0
- ldrh r2, [r3, #216]
+ ldrh r2, [r3, #420]
and r5, r5, #31
-.L82:
+.L85:
uxth r4, r0
adds r0, r0, #1
cmp r5, r4
- bgt .L83
- cbz r6, .L80
- strh r1, [r3, #214] @ movhi
- strh r2, [r3, #216] @ movhi
-.L80:
- pop {r4, r5, r6, pc}
+ bgt .L86
+ cbz r6, .L83
+ strh r1, [r3, #418] @ movhi
+ strh r2, [r3, #420] @ movhi
.L83:
+ pop {r4, r5, r6, pc}
+.L86:
add r4, r3, r1, lsl #1
adds r1, r1, #1
ubfx r1, r1, #0, #10
- ldrh r6, [r4, #220]
+ ldrh r6, [r4, #424]
add r4, r3, r2, lsl #1
- strh r6, [r4, #220] @ movhi
+ strh r6, [r4, #424] @ movhi
movs r6, #1
add r2, r2, r6
ubfx r2, r2, #0, #10
- b .L82
-.L90:
+ b .L85
+.L93:
.align 2
-.L89:
+.L92:
.word .LANCHOR0
.fnend
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
@@ -807,35 +894,35 @@ IsInFreeQueue:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L97
+ ldr r3, .L100
push {r4, r5, lr}
.save {r4, r5, lr}
- ldrh r4, [r3, #218]
+ ldrh r4, [r3, #422]
cmp r4, #1024
- beq .L95
- ldrh r5, [r3, #214]
+ beq .L98
+ ldrh r5, [r3, #418]
movs r1, #0
-.L93:
+.L96:
cmp r1, r4
- bcc .L94
-.L95:
+ bcc .L97
+.L98:
movs r0, #0
pop {r4, r5, pc}
-.L94:
+.L97:
adds r2, r1, r5
ubfx r2, r2, #0, #10
add r2, r3, r2, lsl #1
- ldrh r2, [r2, #220]
+ ldrh r2, [r2, #424]
cmp r2, r0
- beq .L96
+ beq .L99
adds r1, r1, #1
- b .L93
-.L96:
+ b .L96
+.L99:
movs r0, #1
pop {r4, r5, pc}
-.L98:
+.L101:
.align 2
-.L97:
+.L100:
.word .LANCHOR0
.fnend
.size IsInFreeQueue, .-IsInFreeQueue
@@ -853,112 +940,95 @@ insert_data_list:
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r2, .L114
- ldrh r3, [r2, #40]
- mov r5, r2
+ ldr r2, .L117
+ ldrh r3, [r2, #244]
+ mov r1, r2
cmp r3, r0
- bls .L101
- movs r4, #6
- ldr ip, [r2, #2316]
- muls r4, r0, r4
+ bls .L104
+ movs r5, #6
+ ldr lr, [r2, #2520]
+ muls r5, r0, r5
movw r3, #65535
- add r1, ip, r4
- strh r3, [r1, #2] @ movhi
- strh r3, [ip, r4] @ movhi
- ldr r3, [r2, #2320]
- cbnz r3, .L102
- str r1, [r2, #2320]
-.L101:
+ add r4, lr, r5
+ strh r3, [r4, #2] @ movhi
+ strh r3, [lr, r5] @ movhi
+ ldr r3, [r2, #2524]
+ cbnz r3, .L105
+ str r4, [r2, #2524]
+.L104:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L102:
- ldrh r6, [r1, #4]
- lsl r10, r0, #1
- ldr r8, [r2, #2324]
- ldrh r2, [r8, r0, lsl #1]
- cmp r6, #0
- beq .L112
- muls r6, r2, r6
-.L103:
- ldr lr, [r5, #2316]
- ldrh r7, [r5, #40]
- sub r2, r3, lr
- asr r9, r2, #1
- ldr r2, .L114+4
- str r7, [sp]
- mul r2, r2, r9
- ldr r9, [r5, #2328]
- add r5, r9, r10
+.L105:
+ ldrh r7, [r4, #4]
+ ldr r9, [r2, #76]
+ ldrh r2, [r9, r0, lsl #1]
+ cbz r7, .L112
+ muls r2, r7, r2
+.L116:
+ ldr r8, [r1, #2520]
+ movw r10, #65535
+ str r2, [sp]
+ sub r2, r3, r8
+ asrs r6, r2, #1
+ ldr r2, .L117+4
+ muls r2, r6, r2
+ ldrh r6, [r1, #244]
+ str r6, [sp, #4]
+ movs r6, #0
uxth r2, r2
- str r5, [sp, #4]
- movs r5, #0
.L110:
- adds r5, r5, #1
- ldr r7, [sp]
- uxth r5, r5
- cmp r5, r7
- bhi .L101
- cmp r0, r2
- beq .L101
- ldrh r7, [r3, #4]
- lsl r10, r2, #1
- ldrh fp, [r8, r2, lsl #1]
- cbz r7, .L113
- mul r7, r7, fp
-.L105:
- cmp r6, r7
- bne .L106
+ adds r6, r6, #1
ldr r7, [sp, #4]
- ldrh r10, [r9, r10]
- ldrh r7, [r7]
- cmp r10, r7
- bcc .L108
-.L107:
- strh r2, [ip, r4] @ movhi
- ldr r4, .L114
+ uxth r6, r6
+ cmp r6, r7
+ bhi .L104
+ cmp r0, r2
+ beq .L104
+ ldrh ip, [r3, #4]
+ cmp ip, #0
+ beq .L108
+ ldrh fp, [r9, r2, lsl #1]
+ ldr r7, [sp]
+ mul ip, ip, fp
+ cmp ip, r7
+ bcs .L108
+ ldrh ip, [r3]
+ cmp ip, r10
+ bne .L109
+ strh r2, [r4, #2] @ movhi
+ strh r0, [r3] @ movhi
+ str r4, [r1, #2528]
+ b .L104
+.L112:
+ mov r2, #-1
+ b .L116
+.L109:
+ movs r3, #6
+ mov r2, ip
+ mla r3, r3, ip, r8
+ b .L110
+.L108:
+ strh r2, [lr, r5] @ movhi
ldrh r2, [r3, #2]
- strh r2, [r1, #2] @ movhi
- ldr r2, [r4, #2320]
+ strh r2, [r4, #2] @ movhi
+ ldr r2, [r1, #2524]
cmp r3, r2
ittte ne
- ldrhne r5, [r3, #2]
+ ldrhne r4, [r3, #2]
movne r2, #6
- ldrne r1, [r4, #2316]
+ ldrne r1, [r1, #2520]
strheq r0, [r3, #2] @ movhi
iteee eq
- streq r1, [r4, #2320]
- mulne r2, r2, r5
+ streq r4, [r1, #2524]
+ mulne r2, r2, r4
strhne r0, [r1, r2] @ movhi
strhne r0, [r3, #2] @ movhi
- b .L101
-.L112:
- mov r6, #-1
- b .L103
-.L113:
- mov r7, #-1
- b .L105
-.L106:
- bcc .L107
-.L108:
- ldrh r7, [r3]
- movw r10, #65535
- cmp r7, r10
- bne .L109
- strh r2, [r1, #2] @ movhi
- strh r0, [r3] @ movhi
- ldr r3, .L114
- str r1, [r3, #2332]
- b .L101
-.L109:
- movs r3, #6
- mov r2, r7
- mla r3, r3, r7, lr
- b .L110
-.L115:
+ b .L104
+.L118:
.align 2
-.L114:
+.L117:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -977,27 +1047,27 @@ INSERT_DATA_LIST:
push {r3, lr}
.save {r3, lr}
bl insert_data_list
- ldr r2, .L118
- ldrh r3, [r2, #2336]
+ ldr r2, .L121
+ ldrh r3, [r2, #2532]
adds r3, r3, #1
uxth r3, r3
- strh r3, [r2, #2336] @ movhi
- ldrh r2, [r2, #40]
+ strh r3, [r2, #2532] @ movhi
+ ldrh r2, [r2, #244]
cmp r2, r3
- bcs .L116
+ bcs .L119
movs r2, #214
- ldr r1, .L118+4
- ldr r0, .L118+8
+ ldr r1, .L121+4
+ ldr r0, .L121+8
pop {r3, lr}
b sftl_printk
-.L116:
- pop {r3, pc}
.L119:
+ pop {r3, pc}
+.L122:
.align 2
-.L118:
+.L121:
.word .LANCHOR0
.word .LANCHOR1
- .word .LC1
+ .word .LC8
.fnend
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
.align 1
@@ -1015,65 +1085,65 @@ insert_free_list:
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movw r4, #65535
cmp r0, r4
- beq .L121
- ldr r2, .L127
+ beq .L124
+ ldr r2, .L130
movs r1, #6
mul r7, r1, r0
- ldr ip, [r2, #2316]
+ ldr ip, [r2, #2520]
mov r5, r2
add r6, ip, r7
strh r4, [r6, #2] @ movhi
strh r4, [ip, r7] @ movhi
- ldr r3, [r2, #2340]
- cbnz r3, .L122
- str r6, [r2, #2340]
-.L121:
+ ldr r3, [r2, #2536]
+ cbnz r3, .L125
+ str r6, [r2, #2536]
+.L124:
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L122:
- ldr lr, [r2, #2316]
- ldr r8, [r2, #2328]
+.L125:
+ ldr lr, [r2, #2520]
+ ldr r8, [r2, #2540]
sub r2, r3, lr
asr r10, r2, #1
- ldr r2, .L127+4
+ ldr r2, .L130+4
ldrh r9, [r8, r0, lsl #1]
mul r2, r2, r10
mov r10, r4
uxth r2, r2
-.L125:
+.L128:
ldrh r4, [r8, r2, lsl #1]
cmp r4, r9
- bcs .L123
+ bcs .L126
ldrh r4, [r3]
cmp r4, r10
- bne .L124
+ bne .L127
strh r2, [r6, #2] @ movhi
strh r0, [r3] @ movhi
- b .L121
-.L124:
+ b .L124
+.L127:
mla r3, r1, r4, lr
mov r2, r4
- b .L125
-.L123:
+ b .L128
+.L126:
ldrh r1, [r3, #2]
strh r1, [r6, #2] @ movhi
strh r2, [ip, r7] @ movhi
- ldr r2, [r5, #2340]
+ ldr r2, [r5, #2536]
cmp r3, r2
ittte ne
ldrhne r4, [r3, #2]
movne r2, #6
- ldrne r1, [r5, #2316]
+ ldrne r1, [r5, #2520]
strheq r0, [r3, #2] @ movhi
iteee eq
- streq r6, [r5, #2340]
+ streq r6, [r5, #2536]
mulne r2, r2, r4
strhne r0, [r1, r2] @ movhi
strhne r0, [r3, #2] @ movhi
- b .L121
-.L128:
+ b .L124
+.L131:
.align 2
-.L127:
+.L130:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1092,27 +1162,27 @@ INSERT_FREE_LIST:
push {r3, lr}
.save {r3, lr}
bl insert_free_list
- ldr r2, .L131
- ldrh r3, [r2, #2344]
+ ldr r2, .L134
+ ldrh r3, [r2, #228]
adds r3, r3, #1
uxth r3, r3
- strh r3, [r2, #2344] @ movhi
- ldrh r2, [r2, #40]
+ strh r3, [r2, #228] @ movhi
+ ldrh r2, [r2, #244]
cmp r2, r3
- bcs .L129
+ bcs .L132
movs r2, #207
- ldr r1, .L131+4
- ldr r0, .L131+8
+ ldr r1, .L134+4
+ ldr r0, .L134+8
pop {r3, lr}
b sftl_printk
-.L129:
- pop {r3, pc}
.L132:
+ pop {r3, pc}
+.L135:
.align 2
-.L131:
+.L134:
.word .LANCHOR0
.word .LANCHOR1+17
- .word .LC1
+ .word .LC8
.fnend
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
.align 1
@@ -1129,31 +1199,31 @@ List_remove_node:
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movs r6, #6
- ldr r4, .L139
+ ldr r4, .L142
muls r6, r1, r6
movw r3, #65535
mov r8, r0
- ldr r7, [r4, #2316]
+ ldr r7, [r4, #2520]
adds r5, r7, r6
ldrh r2, [r5, #2]
cmp r2, r3
- bne .L134
+ bne .L137
ldr r3, [r0]
cmp r5, r3
- beq .L134
+ beq .L137
mov r2, #372
- ldr r1, .L139+4
- ldr r0, .L139+8
+ ldr r1, .L142+4
+ ldr r0, .L142+8
bl sftl_printk
-.L134:
+.L137:
ldr r3, [r8]
movw r1, #65535
cmp r5, r3
ldrh r3, [r7, r6]
- bne .L135
+ bne .L138
cmp r3, r1
ittee ne
- ldrne r0, [r4, #2316]
+ ldrne r0, [r4, #2520]
movne r2, #6
moveq r3, #0
streq r3, [r8]
@@ -1161,40 +1231,40 @@ List_remove_node:
mlane r3, r2, r3, r0
strne r3, [r8]
strhne r1, [r3, #2] @ movhi
-.L137:
+.L140:
movw r3, #65535
movs r0, #0
strh r3, [r7, r6] @ movhi
strh r3, [r5, #2] @ movhi
pop {r4, r5, r6, r7, r8, pc}
-.L135:
+.L138:
cmp r3, r1
ldrh r1, [r5, #2]
- bne .L138
+ bne .L141
cmp r1, r3
- beq .L137
+ beq .L140
movs r2, #6
- ldr r0, [r4, #2316]
+ ldr r0, [r4, #2520]
muls r1, r2, r1
strh r3, [r0, r1] @ movhi
- b .L137
-.L138:
- ldr r0, [r4, #2316]
+ b .L140
+.L141:
+ ldr r0, [r4, #2520]
movs r2, #6
mla r3, r2, r3, r0
strh r1, [r3, #2] @ movhi
ldrh r0, [r5, #2]
ldrh r1, [r7, r6]
- ldr r3, [r4, #2316]
+ ldr r3, [r4, #2520]
muls r2, r0, r2
strh r1, [r3, r2] @ movhi
- b .L137
-.L140:
+ b .L140
+.L143:
.align 2
-.L139:
+.L142:
.word .LANCHOR0
.word .LANCHOR1+34
- .word .LC1
+ .word .LC8
.fnend
.size List_remove_node, .-List_remove_node
.align 1
@@ -1211,15 +1281,15 @@ List_pop_index_node:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r3, [r0]
- cbz r3, .L147
- ldr r2, .L148
+ cbz r3, .L150
+ ldr r2, .L151
movw r5, #65535
movs r6, #6
- ldr r2, [r2, #2316]
-.L143:
- cbnz r1, .L144
+ ldr r2, [r2, #2520]
.L146:
- ldr r4, .L148+4
+ cbnz r1, .L147
+.L149:
+ ldr r4, .L151+4
subs r3, r3, r2
asrs r3, r3, #1
muls r4, r3, r4
@@ -1227,20 +1297,20 @@ List_pop_index_node:
bl List_remove_node
uxth r0, r4
pop {r4, r5, r6, pc}
-.L144:
+.L147:
ldrh r4, [r3]
cmp r4, r5
- beq .L146
+ beq .L149
subs r1, r1, #1
mla r3, r6, r4, r2
uxth r1, r1
- b .L143
-.L147:
+ b .L146
+.L150:
movw r0, #65535
pop {r4, r5, r6, pc}
-.L149:
+.L152:
.align 2
-.L148:
+.L151:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1272,37 +1342,37 @@ List_get_gc_head_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L157
+ ldr r2, .L160
push {r4, lr}
.save {r4, lr}
- ldr r3, [r2, #2320]
- cbz r3, .L156
- ldr r1, [r2, #2316]
+ ldr r3, [r2, #2524]
+ cbz r3, .L159
+ ldr r1, [r2, #2520]
movs r4, #6
movw r2, #65535
-.L153:
- cbz r0, .L154
+.L156:
+ cbz r0, .L157
ldrh r3, [r3]
cmp r3, r2
- bne .L155
-.L156:
+ bne .L158
+.L159:
movw r0, #65535
pop {r4, pc}
-.L155:
+.L158:
subs r0, r0, #1
mla r3, r4, r3, r1
uxth r0, r0
- b .L153
-.L154:
- ldr r0, .L157+4
+ b .L156
+.L157:
+ ldr r0, .L160+4
subs r3, r3, r1
asrs r3, r3, #1
muls r3, r0, r3
uxth r0, r3
pop {r4, pc}
-.L158:
+.L161:
.align 2
-.L157:
+.L160:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1321,97 +1391,97 @@ List_update_data_list:
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
mov r5, r0
- ldr r4, .L170
- ldrh r3, [r4, #2348]
+ ldr r4, .L173
+ ldrh r3, [r4, #28]
cmp r3, r0
- beq .L161
- ldrh r3, [r4, #2396]
+ beq .L164
+ ldrh r3, [r4, #80]
cmp r3, r0
- beq .L161
- ldrh r3, [r4, #2444]
+ beq .L164
+ ldrh r3, [r4, #128]
cmp r3, r0
- beq .L161
+ beq .L164
movs r7, #6
- ldr r9, [r4, #2316]
+ ldr r9, [r4, #2520]
muls r7, r0, r7
- ldr r3, [r4, #2320]
+ ldr r3, [r4, #2524]
add r8, r9, r7
cmp r8, r3
- beq .L161
+ beq .L164
ldrh r6, [r8, #4]
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
ldrh r3, [r3, r0, lsl #1]
cmp r6, #0
- beq .L168
+ beq .L171
muls r6, r3, r6
-.L163:
+.L166:
ldrh r3, [r8, #2]
movw r2, #65535
cmp r3, r2
- bne .L164
+ bne .L167
ldrh r2, [r9, r7]
cmp r2, r3
- bne .L164
+ bne .L167
movw r2, #463
- ldr r1, .L170+4
- ldr r0, .L170+8
+ ldr r1, .L173+4
+ ldr r0, .L173+8
bl sftl_printk
-.L164:
+.L167:
ldrh r3, [r8, #2]
movw r2, #65535
cmp r3, r2
- bne .L165
+ bne .L168
ldrh r2, [r9, r7]
cmp r2, r3
- beq .L161
-.L165:
+ beq .L164
+.L168:
movs r2, #6
muls r2, r3, r2
- ldr r3, .L170+12
+ ldr r3, .L173+12
asrs r1, r2, #1
muls r3, r1, r3
- ldr r1, [r4, #2324]
+ ldr r1, [r4, #76]
ldrh r0, [r1, r3, lsl #1]
- ldr r1, [r4, #2316]
+ ldr r1, [r4, #2520]
add r2, r2, r1
ldrh r3, [r2, #4]
- cbz r3, .L169
+ cbz r3, .L172
muls r3, r0, r3
-.L166:
+.L169:
cmp r6, r3
- bcs .L161
+ bcs .L164
mov r1, r5
- ldr r0, .L170+16
+ ldr r0, .L173+16
bl List_remove_node
- ldrh r3, [r4, #2336]
- cbnz r3, .L167
+ ldrh r3, [r4, #2532]
+ cbnz r3, .L170
mov r2, #474
- ldr r1, .L170+4
- ldr r0, .L170+8
+ ldr r1, .L173+4
+ ldr r0, .L173+8
bl sftl_printk
-.L167:
- ldrh r3, [r4, #2336]
+.L170:
+ ldrh r3, [r4, #2532]
mov r0, r5
subs r3, r3, #1
- strh r3, [r4, #2336] @ movhi
+ strh r3, [r4, #2532] @ movhi
bl INSERT_DATA_LIST
-.L161:
+.L164:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L168:
+.L171:
mov r6, #-1
- b .L163
-.L169:
- mov r3, #-1
b .L166
-.L171:
+.L172:
+ mov r3, #-1
+ b .L169
+.L174:
.align 2
-.L170:
+.L173:
.word .LANCHOR0
.word .LANCHOR1+51
- .word .LC1
+ .word .LC8
.word -1431655765
- .word .LANCHOR0+2320
+ .word .LANCHOR0+2524
.fnend
.size List_update_data_list, .-List_update_data_list
.align 1
@@ -1428,80 +1498,80 @@ select_l2p_ram_region:
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movs r1, #0
- ldr r5, .L182
+ ldr r5, .L185
movs r0, #12
movw r6, #65535
- ldrh r2, [r5, #138]
- ldr r3, [r5, #2492]
-.L173:
+ ldrh r2, [r5, #342]
+ ldr r3, [r5, #2544]
+.L176:
uxth r4, r1
cmp r4, r2
- bcc .L175
+ bcc .L178
mov r4, r2
movs r1, #0
mov r7, #-2147483648
mov ip, #12
-.L176:
+.L179:
uxth r6, r1
cmp r6, r2
- bcc .L178
+ bcc .L181
cmp r4, r2
- bcc .L174
- ldrh r7, [r5, #2496]
+ bcc .L177
+ ldrh r7, [r5, #2548]
mov r4, r2
movs r1, #0
mov r0, #-1
-.L179:
+.L182:
uxth r5, r1
cmp r5, r2
- bcc .L181
+ bcc .L184
cmp r4, r2
- bcc .L174
+ bcc .L177
movw r2, #789
- ldr r1, .L182+4
- ldr r0, .L182+8
+ ldr r1, .L185+4
+ ldr r0, .L185+8
bl sftl_printk
- b .L174
-.L175:
+ b .L177
+.L178:
adds r1, r1, #1
mla r7, r0, r1, r3
ldrh r7, [r7, #-12]
cmp r7, r6
- bne .L173
-.L174:
+ bne .L176
+.L177:
mov r0, r4
pop {r3, r4, r5, r6, r7, pc}
-.L178:
+.L181:
mla r0, ip, r1, r3
ldr r0, [r0, #4]
cmp r0, #0
- blt .L177
+ blt .L180
cmp r7, r0
itt hi
movhi r7, r0
movhi r4, r6
-.L177:
+.L180:
adds r1, r1, #1
- b .L176
-.L181:
+ b .L179
+.L184:
ldr r6, [r3, #4]
cmp r0, r6
- bls .L180
+ bls .L183
ldrh ip, [r3]
cmp ip, r7
itt ne
movne r0, r6
movne r4, r5
-.L180:
+.L183:
adds r1, r1, #1
adds r3, r3, #12
- b .L179
-.L183:
+ b .L182
+.L186:
.align 2
-.L182:
+.L185:
.word .LANCHOR0
.word .LANCHOR1+73
- .word .LC1
+ .word .LC8
.fnend
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 1
@@ -1515,40 +1585,40 @@ FtlUpdateVaildLpn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L190
+ ldr r1, .L193
push {r4, r5, lr}
.save {r4, r5, lr}
mov r3, r1
- ldrh r2, [r1, #2498]
+ ldrh r2, [r1, #2550]
cmp r2, #4
- bhi .L185
- cbnz r0, .L185
+ bhi .L188
+ cbnz r0, .L188
adds r2, r2, #1
- strh r2, [r1, #2498] @ movhi
+ strh r2, [r1, #2550] @ movhi
pop {r4, r5, pc}
-.L185:
+.L188:
movs r2, #0
- ldrh r1, [r3, #40]
- strh r2, [r3, #2498] @ movhi
+ ldrh r1, [r3, #244]
+ strh r2, [r3, #2550] @ movhi
movw r5, #65535
- str r2, [r3, #2500]
- ldr r2, [r3, #2324]
+ str r2, [r3, #2552]
+ ldr r2, [r3, #76]
add r1, r2, r1, lsl #1
-.L186:
+.L189:
cmp r2, r1
- bne .L188
+ bne .L191
pop {r4, r5, pc}
-.L188:
+.L191:
ldrh r4, [r2], #2
cmp r4, r5
ittt ne
- ldrne r0, [r3, #2500]
+ ldrne r0, [r3, #2552]
addne r0, r0, r4
- strne r0, [r3, #2500]
- b .L186
-.L191:
+ strne r0, [r3, #2552]
+ b .L189
+.L194:
.align 2
-.L190:
+.L193:
.word .LANCHOR0
.fnend
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
@@ -1565,10 +1635,10 @@ ftl_set_blk_mode:
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, r0
- cbz r1, .L193
+ cbz r1, .L196
b ftl_set_blk_mode.part.6
-.L193:
- ldr r2, .L194
+.L196:
+ ldr r2, .L197
lsrs r0, r0, #5
and r3, r3, #31
ldr r1, [r2, #24]
@@ -1578,9 +1648,9 @@ ftl_set_blk_mode:
bic r2, r2, r3
str r2, [r1, r0, lsl #2]
bx lr
-.L195:
+.L198:
.align 2
-.L194:
+.L197:
.word .LANCHOR0
.fnend
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -1596,7 +1666,7 @@ ftl_get_blk_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L197
+ ldr r3, .L200
lsrs r2, r0, #5
and r0, r0, #31
ldr r3, [r3, #24]
@@ -1604,9 +1674,9 @@ ftl_get_blk_mode:
lsr r0, r3, r0
and r0, r0, #1
bx lr
-.L198:
+.L201:
.align 2
-.L197:
+.L200:
.word .LANCHOR0
.fnend
.size ftl_get_blk_mode, .-ftl_get_blk_mode
@@ -1627,25 +1697,25 @@ ftl_sb_update_avl_pages:
strh r3, [r0, #4] @ movhi
add r4, r0, r2, lsl #1
movw r7, #65535
- ldr r3, .L206
+ ldr r3, .L209
adds r4, r4, #14
- ldrh r5, [r3, #32]
-.L200:
+ ldrh r5, [r3, #236]
+.L203:
cmp r2, r5
- bcc .L202
- ldrh r3, [r3, #102]
+ bcc .L205
+ ldrh r3, [r3, #306]
add r4, r0, #16
movw r6, #65535
subs r3, r3, #1
subs r1, r3, r1
movs r3, #0
uxth r1, r1
-.L203:
+.L206:
uxth r2, r3
cmp r5, r2
- bhi .L205
+ bhi .L208
pop {r4, r5, r6, r7, pc}
-.L202:
+.L205:
ldrh r6, [r4, #2]!
adds r2, r2, #1
uxth r2, r2
@@ -1654,8 +1724,8 @@ ftl_sb_update_avl_pages:
ldrhne r6, [r0, #4]
addne r6, r6, #1
strhne r6, [r0, #4] @ movhi
- b .L200
-.L205:
+ b .L203
+.L208:
ldrh r2, [r4], #2
adds r3, r3, #1
cmp r2, r6
@@ -1663,10 +1733,10 @@ ftl_sb_update_avl_pages:
ldrhne r2, [r0, #4]
addne r2, r2, r1
strhne r2, [r0, #4] @ movhi
- b .L203
-.L207:
+ b .L206
+.L210:
.align 2
-.L206:
+.L209:
.word .LANCHOR0
.fnend
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
@@ -1684,24 +1754,24 @@ FtlSlcSuperblockCheck:
ldrh r3, [r0, #4]
push {r4, r5, lr}
.save {r4, r5, lr}
- cbz r3, .L208
+ cbz r3, .L211
ldrh r2, [r0]
movw r3, #65535
cmp r2, r3
- beq .L208
+ beq .L211
ldrb r2, [r0, #6] @ zero_extendqisi2
movs r5, #0
adds r2, r2, #8
ldrh r1, [r0, r2, lsl #1]
- ldr r2, .L214
- ldrh r4, [r2, #32]
+ ldr r2, .L217
+ ldrh r4, [r2, #236]
mov r2, r3
-.L211:
+.L214:
cmp r1, r2
- beq .L213
-.L208:
+ beq .L216
+.L211:
pop {r4, r5, pc}
-.L213:
+.L216:
ldrb r3, [r0, #6] @ zero_extendqisi2
adds r3, r3, #1
uxtb r3, r3
@@ -1715,10 +1785,10 @@ FtlSlcSuperblockCheck:
ldrb r3, [r0, #6] @ zero_extendqisi2
adds r3, r3, #8
ldrh r1, [r0, r3, lsl #1]
- b .L211
-.L215:
+ b .L214
+.L218:
.align 2
-.L214:
+.L217:
.word .LANCHOR0
.fnend
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
@@ -1736,57 +1806,65 @@ make_superblock:
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r4, r0
- ldr r6, .L221
+ ldr r6, .L225
ldrh r2, [r0]
- ldrh r3, [r6, #40]
+ ldrh r3, [r6, #244]
cmp r2, r3
- bcc .L217
- movw r2, #2156
- ldr r1, .L221+4
- ldr r0, .L221+8
+ bcc .L220
+ movw r2, #2148
+ ldr r1, .L225+4
+ ldr r0, .L225+8
bl sftl_printk
-.L217:
- ldrh r9, [r6, #32]
+.L220:
+ ldrh r9, [r6, #236]
add r7, r4, #16
- ldr r10, .L221+12
+ ldr r10, .L225+12
movw r8, #65535
movs r5, #0
strh r5, [r4, #4] @ movhi
strb r5, [r4, #7]
-.L218:
+.L221:
uxth r3, r5
+ ldrh r1, [r4]
cmp r9, r3
- bhi .L220
- ldrb r3, [r4, #7] @ zero_extendqisi2
+ bhi .L223
+ ldrh r2, [r6, #306]
movs r0, #0
- ldrh r2, [r6, #102]
- strb r0, [r4, #9]
+ ldrb r3, [r4, #7] @ zero_extendqisi2
smulbb r3, r3, r2
strh r3, [r4, #4] @ movhi
+ movs r3, #0
+ strb r3, [r4, #9]
+ ldr r3, [r6, #2540]
+ ldrh r2, [r3, r1, lsl #1]
+ movw r3, #10000
+ cmp r2, r3
+ itt hi
+ movhi r3, #1
+ strbhi r3, [r4, #9]
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L220:
- ldrh r1, [r4]
+.L223:
ldrb r0, [r10, r5] @ zero_extendqisi2
bl V2P_block
strh r8, [r7] @ movhi
mov fp, r0
bl FtlBbmIsBadBlock
- cbnz r0, .L219
+ cbnz r0, .L222
strh fp, [r7] @ movhi
ldrb r3, [r4, #7] @ zero_extendqisi2
adds r3, r3, #1
strb r3, [r4, #7]
-.L219:
+.L222:
adds r5, r5, #1
adds r7, r7, #2
- b .L218
-.L222:
+ b .L221
+.L226:
.align 2
-.L221:
+.L225:
.word .LANCHOR0
.word .LANCHOR1+95
- .word .LC1
- .word .LANCHOR0+60
+ .word .LC8
+ .word .LANCHOR0+264
.fnend
.size make_superblock, .-make_superblock
.align 1
@@ -1803,44 +1881,44 @@ update_multiplier_value:
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
- ldr r6, .L229
+ ldr r6, .L233
mov r7, r0
mov r4, r5
- ldrh r8, [r6, #32]
- add r10, r6, #60
- ldrh r9, [r6, #102]
-.L224:
+ ldrh r8, [r6, #236]
+ add r10, r6, #264
+ ldrh r9, [r6, #306]
+.L228:
uxth r3, r5
cmp r8, r3
- bhi .L226
- cbz r4, .L228
+ bhi .L230
+ cbz r4, .L232
mov r1, r4
mov r0, #32768
bl __aeabi_idiv
-.L227:
- ldr r1, [r6, #2316]
+.L231:
+ ldr r1, [r6, #2520]
movs r3, #6
mla r1, r3, r7, r1
strh r0, [r1, #4] @ movhi
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L226:
+.L230:
mov r1, r7
ldrb r0, [r10, r5] @ zero_extendqisi2
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz r0, .L225
+ cbnz r0, .L229
add r4, r4, r9
uxth r4, r4
-.L225:
+.L229:
adds r5, r5, #1
- b .L224
-.L228:
+ b .L228
+.L232:
mov r0, r4
- b .L227
-.L230:
+ b .L231
+.L234:
.align 2
-.L229:
+.L233:
.word .LANCHOR0
.fnend
.size update_multiplier_value, .-update_multiplier_value
@@ -1856,22 +1934,22 @@ GetFreeBlockMinEraseCount:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L234
- ldr r0, [r2, #2340]
- cbz r0, .L232
- ldr r3, [r2, #2316]
+ ldr r2, .L238
+ ldr r0, [r2, #2536]
+ cbz r0, .L236
+ ldr r3, [r2, #2520]
subs r0, r0, r3
- ldr r3, .L234+4
+ ldr r3, .L238+4
asrs r0, r0, #1
muls r0, r3, r0
- ldr r3, [r2, #2328]
+ ldr r3, [r2, #2540]
uxth r0, r0
ldrh r0, [r3, r0, lsl #1]
-.L232:
+.L236:
bx lr
-.L235:
+.L239:
.align 2
-.L234:
+.L238:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1887,14 +1965,14 @@ GetFreeBlockMaxEraseCount:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L244
+ ldr r1, .L248
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- ldr r3, [r1, #2340]
- cbz r3, .L242
- ldrh r2, [r1, #2344]
+ ldr r3, [r1, #2536]
+ cbz r3, .L246
+ ldrh r2, [r1, #228]
movs r6, #6
- ldr r4, [r1, #2316]
+ ldr r4, [r1, #2520]
movw r7, #65535
rsb r2, r2, r2, lsl #3
subs r3, r3, r4
@@ -1903,32 +1981,32 @@ GetFreeBlockMaxEraseCount:
cmp r0, r2
it gt
uxthgt r0, r2
- ldr r2, .L244+4
+ ldr r2, .L248+4
muls r3, r2, r3
movs r2, #0
uxth r3, r3
-.L239:
+.L243:
uxth r5, r2
cmp r0, r5
- bls .L241
+ bls .L245
mul r5, r6, r3
adds r2, r2, #1
ldrh r5, [r4, r5]
cmp r5, r7
- bne .L243
-.L241:
- ldr r2, [r1, #2328]
+ bne .L247
+.L245:
+ ldr r2, [r1, #2540]
ldrh r0, [r2, r3, lsl #1]
pop {r4, r5, r6, r7, pc}
-.L243:
+.L247:
mov r3, r5
- b .L239
-.L242:
+ b .L243
+.L246:
mov r0, r3
pop {r4, r5, r6, r7, pc}
-.L245:
+.L249:
.align 2
-.L244:
+.L248:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1947,353 +2025,346 @@ FtlPrintInfo2buf:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r6, r0
- ldr r5, .L258
+ ldr r5, .L262
add r4, r6, #12
.pad #20
sub sp, sp, #20
- ldr r1, .L258+4
+ ldr r1, .L262+4
bl strcpy
- ldr r3, [r5, #116]
+ ldr r3, [r5, #320]
movs r1, #64
- ldr r2, .L258+8
+ ldr r2, .L262+8
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r1, .L258+12
+ ldr r1, .L262+12
mov r0, r4
adds r4, r4, #10
bl strcpy
- ldr r3, [r5, #2504]
+ ldr r3, [r5, #2556]
movs r1, #64
- ldr r2, .L258+16
+ ldr r2, .L262+16
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2500]
- ldr r2, .L258+20
+ ldr r3, [r5, #2552]
+ ldr r2, .L262+20
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2508]
- ldr r2, .L258+24
+ ldr r3, [r5, #2560]
+ ldr r2, .L262+24
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2512]
- ldr r2, .L258+28
+ ldr r3, [r5, #2564]
+ ldr r2, .L262+28
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2516]
- ldr r2, .L258+32
+ ldr r3, [r5, #2568]
+ ldr r2, .L262+32
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2520]
- ldr r2, .L258+36
+ ldr r3, [r5, #2572]
+ ldr r2, .L262+36
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2524]
- ldr r2, .L258+40
+ ldr r3, [r5, #2576]
+ ldr r2, .L262+40
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2528]
- ldr r2, .L258+44
+ ldr r3, [r5, #2580]
+ ldr r2, .L262+44
movs r1, #64
mov r0, r4
bl snprintf
- ldr r3, [r5, #2532]
+ ldr r3, [r5, #2584]
add r4, r4, r0
- ldr r2, .L258+48
+ ldr r2, .L262+48
movs r1, #64
mov r0, r4
lsrs r3, r3, #11
bl snprintf
- ldr r3, [r5, #2536]
+ ldr r3, [r5, #2588]
add r4, r4, r0
- ldr r2, .L258+52
+ ldr r2, .L262+52
movs r1, #64
mov r0, r4
lsrs r3, r3, #11
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2540]
- ldr r2, .L258+56
+ ldr r3, [r5, #2592]
+ ldr r2, .L262+56
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2544]
- ldr r2, .L258+60
+ ldr r3, [r5, #2596]
+ ldr r2, .L262+60
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #158]
- ldr r2, .L258+64
+ ldrh r3, [r5, #362]
+ ldr r2, .L262+64
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2344]
- ldr r2, .L258+68
+ ldrh r3, [r5, #228]
+ ldr r2, .L262+68
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2548]
- ldr r2, .L258+72
+ ldr r3, [r5, #2600]
+ ldr r2, .L262+72
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2552]
- ldr r2, .L258+76
+ ldr r3, [r5, #2604]
+ ldr r2, .L262+76
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2556]
- ldr r2, .L258+80
+ ldr r3, [r5, #2608]
+ ldr r2, .L262+80
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2560]
- ldr r2, .L258+84
+ ldr r3, [r5, #2612]
+ ldr r2, .L262+84
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2564]
- ldr r2, .L258+88
+ ldr r3, [r5, #2616]
+ ldr r2, .L262+88
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2568]
- ldr r2, .L258+92
+ ldr r3, [r5, #2620]
+ ldr r2, .L262+92
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2298]
- ldr r2, .L258+96
+ ldrh r3, [r5, #2502]
+ ldr r2, .L262+96
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2296]
- ldr r2, .L258+100
+ ldrh r3, [r5, #2500]
+ ldr r2, .L262+100
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #140]
- ldr r2, .L258+104
+ ldr r3, [r5, #344]
+ ldr r2, .L262+104
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #132]
- ldr r2, .L258+108
+ ldr r3, [r5, #336]
+ ldr r2, .L262+108
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #28]
- ldr r2, .L258+112
+ ldr r3, [r5, #232]
+ ldr r2, .L262+112
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #218]
- ldr r2, .L258+116
+ ldrh r3, [r5, #422]
+ ldr r2, .L262+116
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #40]
- ldr r2, .L258+120
+ ldrh r3, [r5, #244]
+ ldr r2, .L262+120
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2572]
- ldr r2, .L258+124
+ ldrh r3, [r5, #2624]
+ ldr r2, .L262+124
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #44]
- ldr r2, .L258+128
+ ldr r3, [r5, #248]
+ ldr r2, .L262+128
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2576]
- ldr r2, .L258+132
+ ldrh r3, [r5, #2628]
+ ldr r2, .L262+132
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #152]
- ldr r2, .L258+136
+ ldrh r3, [r5, #356]
+ ldr r2, .L262+136
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2350]
- ldr r2, .L258+140
+ ldrh r3, [r5, #30]
+ ldr r2, .L262+140
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2354] @ zero_extendqisi2
- ldr r2, .L258+144
+ ldrb r3, [r5, #34] @ zero_extendqisi2
+ ldr r2, .L262+144
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2348]
- ldr r2, .L258+148
+ ldrh r3, [r5, #28]
+ ldr r2, .L262+148
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2356] @ zero_extendqisi2
- ldr r2, .L258+152
+ ldrb r3, [r5, #36] @ zero_extendqisi2
+ ldr r2, .L262+152
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2352]
- ldr r2, .L258+156
+ ldrh r3, [r5, #32]
+ ldr r2, .L262+156
movs r1, #64
mov r0, r4
bl snprintf
- ldrh r2, [r5, #2348]
+ ldrh r2, [r5, #28]
add r4, r4, r0
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
movs r1, #64
mov r0, r4
ldrh r3, [r3, r2, lsl #1]
- ldr r2, .L258+160
+ ldr r2, .L262+160
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2398]
- ldr r2, .L258+164
+ ldrh r3, [r5, #82]
+ ldr r2, .L262+164
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2402] @ zero_extendqisi2
- ldr r2, .L258+168
+ ldrb r3, [r5, #86] @ zero_extendqisi2
+ ldr r2, .L262+168
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2396]
- ldr r2, .L258+172
+ ldrh r3, [r5, #80]
+ ldr r2, .L262+172
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2404] @ zero_extendqisi2
- ldr r2, .L258+176
+ ldrb r3, [r5, #88] @ zero_extendqisi2
+ ldr r2, .L262+176
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2400]
- ldr r2, .L258+180
+ ldrh r3, [r5, #84]
+ ldr r2, .L262+180
movs r1, #64
mov r0, r4
bl snprintf
- ldrh r2, [r5, #2396]
+ ldrh r2, [r5, #80]
add r4, r4, r0
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
movs r1, #64
mov r0, r4
ldrh r3, [r3, r2, lsl #1]
- ldr r2, .L258+184
+ ldr r2, .L262+184
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2446]
- ldr r2, .L258+188
+ ldrh r3, [r5, #130]
+ ldr r2, .L262+188
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2450] @ zero_extendqisi2
- ldr r2, .L258+192
+ ldrb r3, [r5, #134] @ zero_extendqisi2
+ ldr r2, .L262+192
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2444]
- ldr r2, .L258+196
+ ldrh r3, [r5, #128]
+ ldr r2, .L262+196
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2452] @ zero_extendqisi2
- ldr r2, .L258+200
+ ldrb r3, [r5, #136] @ zero_extendqisi2
+ ldr r2, .L262+200
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2448]
- ldr r2, .L258+204
+ ldrh r3, [r5, #132]
+ ldr r2, .L262+204
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2594]
- ldr r2, .L258+208
+ ldrh r3, [r5, #178]
+ ldr r2, .L262+208
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2598] @ zero_extendqisi2
- ldr r2, .L258+212
+ ldrb r3, [r5, #182] @ zero_extendqisi2
+ ldr r2, .L262+212
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2592]
- ldr r2, .L258+216
+ ldrh r3, [r5, #176]
+ ldr r2, .L262+216
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #2600] @ zero_extendqisi2
- ldr r2, .L258+220
+ ldrb r3, [r5, #184] @ zero_extendqisi2
+ ldr r2, .L262+220
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2596]
- b .L259
-.L260:
+ ldrh r3, [r5, #180]
+ b .L263
+.L264:
.align 2
-.L258:
+.L262:
.word .LANCHOR0
- .word .LC2
- .word .LC3
- .word .LC4
- .word .LC5
- .word .LC6
- .word .LC7
- .word .LC8
.word .LC9
.word .LC10
.word .LC11
@@ -2342,149 +2413,156 @@ FtlPrintInfo2buf:
.word .LC54
.word .LC55
.word .LC56
-.L259:
- ldr r2, .L261
+ .word .LC57
+ .word .LC58
+ .word .LC59
+ .word .LC60
+ .word .LC61
+ .word .LC62
+ .word .LC63
+.L263:
+ ldr r2, .L265
movs r1, #64
mov r0, r4
bl snprintf
- ldr r3, [r5, #2716]
+ ldr r3, [r5, #2720]
add r4, r4, r0
- ldr r2, .L261+4
+ ldr r2, .L265+4
movs r1, #64
mov r0, r4
str r3, [sp, #4]
- ldr r3, [r5, #2724]
+ ldr r3, [r5, #2728]
str r3, [sp]
- ldr r3, [r5, #2720]
+ ldr r3, [r5, #2724]
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2712]
- ldr r2, .L261+8
+ ldr r3, [r5, #2716]
+ ldr r2, .L265+8
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2736]
- ldr r2, .L261+12
+ ldr r3, [r5, #2740]
+ ldr r2, .L265+12
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3152]
- ldr r2, .L261+16
+ ldrh r3, [r5, #3156]
+ ldr r2, .L265+16
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3154]
- ldr r2, .L261+20
+ ldrh r3, [r5, #3158]
+ ldr r2, .L265+20
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #3156]
- ldr r2, .L261+24
+ ldr r3, [r5, #3160]
+ ldr r2, .L265+24
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3160]
- ldr r2, .L261+28
+ ldrh r3, [r5, #3164]
+ ldr r2, .L265+28
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
bl GetFreeBlockMinEraseCount
- ldr r2, .L261+32
+ ldr r2, .L265+32
mov r3, r0
movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r0, [r5, #2344]
+ ldrh r0, [r5, #228]
bl GetFreeBlockMaxEraseCount
- ldr r2, .L261+36
+ ldr r2, .L265+36
mov r3, r0
movs r1, #64
mov r0, r4
bl snprintf
- ldr r3, .L261+40
+ ldr r3, .L265+40
add r4, r4, r0
ldr r3, [r3]
cmp r3, #1
- beq .L247
-.L252:
+ beq .L251
+.L256:
subs r0, r4, r6
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L247:
- ldrh r3, [r5, #2592]
+.L251:
+ ldrh r3, [r5, #176]
movw r2, #65535
cmp r3, r2
- beq .L249
- ldr r2, [r5, #2324]
+ beq .L253
+ ldr r2, [r5, #76]
mov r0, r4
movs r1, #64
ldrh r3, [r2, r3, lsl #1]
- ldr r2, .L261+44
+ ldr r2, .L265+44
bl snprintf
add r4, r4, r0
-.L249:
+.L253:
movs r0, #0
- ldr r9, .L261+52
+ ldr r9, .L265+52
bl List_get_gc_head_node
uxth r0, r0
movs r7, #0
movw fp, #65535
mov r10, #6
-.L251:
+.L255:
cmp r0, fp
- beq .L250
- ldr r3, [r5, #2328]
+ beq .L254
+ ldr r3, [r5, #2540]
mul r8, r10, r0
mov r2, r9
movs r1, #64
ldrh r3, [r3, r0, lsl #1]
str r3, [sp, #12]
- ldr r3, [r5, #2316]
+ ldr r3, [r5, #2520]
add r3, r3, r8
ldrh r3, [r3, #4]
str r3, [sp, #8]
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
ldrh r3, [r3, r0, lsl #1]
stm sp, {r0, r3}
mov r3, r7
mov r0, r4
adds r7, r7, #1
bl snprintf
- ldr r3, [r5, #2316]
+ ldr r3, [r5, #2520]
cmp r7, #16
add r4, r4, r0
ldrh r0, [r3, r8]
- bne .L251
-.L250:
- ldr r2, [r5, #2316]
+ bne .L255
+.L254:
+ ldr r2, [r5, #2520]
movs r7, #0
- ldr r3, [r5, #2340]
+ ldr r3, [r5, #2536]
movw r9, #65535
- ldr fp, .L261+56
+ ldr fp, .L265+56
mov r10, #6
subs r3, r3, r2
asrs r2, r3, #1
- ldr r3, .L261+48
+ ldr r3, .L265+48
muls r3, r2, r3
uxth r3, r3
-.L253:
+.L257:
cmp r3, r9
- beq .L252
- ldr r2, [r5, #2328]
+ beq .L256
+ ldr r2, [r5, #2540]
mul r8, r10, r3
mov r0, r4
movs r1, #64
ldrh r2, [r2, r3, lsl #1]
str r2, [sp, #8]
- ldr r2, [r5, #2316]
+ ldr r2, [r5, #2520]
add r2, r2, r8
ldrh r2, [r2, #4]
str r3, [sp]
@@ -2495,28 +2573,28 @@ FtlPrintInfo2buf:
bl snprintf
cmp r7, #4
add r4, r4, r0
- beq .L252
- ldr r3, [r5, #2316]
+ beq .L256
+ ldr r3, [r5, #2520]
ldrh r3, [r3, r8]
- b .L253
-.L262:
+ b .L257
+.L266:
.align 2
-.L261:
- .word .LC57
- .word .LC58
- .word .LC59
- .word .LC60
- .word .LC61
- .word .LC62
- .word .LC63
+.L265:
.word .LC64
.word .LC65
.word .LC66
- .word .LANCHOR2
.word .LC67
- .word -1431655765
.word .LC68
.word .LC69
+ .word .LC70
+ .word .LC71
+ .word .LC72
+ .word .LC73
+ .word .LANCHOR2
+ .word .LC74
+ .word -1431655765
+ .word .LC75
+ .word .LC76
.fnend
.size FtlPrintInfo2buf, .-FtlPrintInfo2buf
.align 1
@@ -2534,10 +2612,10 @@ rknand_proc_ftlread:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r1
- blt .L265
- ldr r3, .L266
+ blt .L269
+ ldr r3, .L270
movs r1, #64
- ldr r2, .L266+4
+ ldr r2, .L270+4
mov r0, r5
bl snprintf
adds r4, r5, r0
@@ -2546,14 +2624,14 @@ rknand_proc_ftlread:
add r0, r0, r4
subs r0, r0, r5
pop {r3, r4, r5, pc}
-.L265:
+.L269:
movs r0, #0
pop {r3, r4, r5, pc}
-.L267:
+.L271:
.align 2
-.L266:
- .word .LC70
- .word .LC71
+.L270:
+ .word .LC0
+ .word .LC77
.fnend
.size rknand_proc_ftlread, .-rknand_proc_ftlread
.align 1
@@ -2571,162 +2649,162 @@ GetSwlReplaceBlock:
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r4, .L292
- ldr r2, [r4, #2556]
- ldr r3, [r4, #2568]
+ ldr r4, .L296
+ ldr r2, [r4, #2608]
+ ldr r3, [r4, #2620]
cmp r2, r3
- bcs .L269
- ldrh r1, [r4, #40]
+ bcs .L273
+ ldrh r1, [r4, #244]
movs r3, #0
- ldr r0, [r4, #2328]
- str r3, [r4, #2548]
-.L270:
+ ldr r0, [r4, #2540]
+ str r3, [r4, #2600]
+.L274:
cmp r3, r1
- bcc .L271
- ldr r5, [r4, #2548]
+ bcc .L275
+ ldr r5, [r4, #2600]
mov r0, r5
bl __aeabi_uidiv
- str r0, [r4, #2556]
- ldr r0, [r4, #2552]
- ldrh r1, [r4, #92]
+ str r0, [r4, #2608]
+ ldr r0, [r4, #2604]
+ ldrh r1, [r4, #296]
subs r0, r5, r0
bl __aeabi_uidiv
- str r0, [r4, #2548]
-.L272:
- ldr r6, [r4, #2568]
- ldr r7, [r4, #2556]
+ str r0, [r4, #2600]
+.L276:
+ ldr r6, [r4, #2620]
+ ldr r7, [r4, #2608]
add r3, r6, #256
cmp r3, r7
- bls .L277
- ldr r2, [r4, #2564]
+ bls .L281
+ ldr r2, [r4, #2616]
add r3, r6, #768
cmp r3, r2
- bls .L277
-.L279:
+ bls .L281
+.L283:
movw r5, #65535
-.L278:
+.L282:
mov r0, r5
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L271:
+.L275:
ldrh r2, [r0, r3, lsl #1]
adds r3, r3, #1
- ldr r5, [r4, #2548]
+ ldr r5, [r4, #2600]
add r2, r2, r5
- str r2, [r4, #2548]
- b .L270
-.L269:
- ldr r3, [r4, #2564]
+ str r2, [r4, #2600]
+ b .L274
+.L273:
+ ldr r3, [r4, #2616]
cmp r2, r3
- bls .L272
+ bls .L276
adds r3, r3, #1
- str r3, [r4, #2564]
+ str r3, [r4, #2616]
movs r3, #0
-.L274:
- ldrh r2, [r4, #40]
+.L278:
+ ldrh r2, [r4, #244]
cmp r3, r2
- bcs .L272
- ldr r1, [r4, #2328]
+ bcs .L276
+ ldr r1, [r4, #2540]
ldrh r2, [r1, r3, lsl #1]
adds r2, r2, #1
strh r2, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
- b .L274
-.L277:
- ldrh r0, [r4, #2344]
+ b .L278
+.L281:
+ ldrh r0, [r4, #228]
add r0, r0, r0, lsl #1
ubfx r0, r0, #2, #16
bl GetFreeBlockMaxEraseCount
add r3, r6, #64
mov r9, r0
cmp r0, r3
- bcc .L279
- ldr r3, [r4, #2320]
+ bcc .L283
+ ldr r3, [r4, #2524]
cmp r3, #0
- beq .L279
- ldrh r2, [r4, #40]
+ beq .L283
+ ldrh r2, [r4, #244]
movw r1, #65535
- ldr lr, [r4, #2316]
+ ldr lr, [r4, #2520]
movs r0, #0
- ldr r8, [r4, #2328]
+ ldr r8, [r4, #2540]
mov r10, r1
str r2, [sp, #20]
mov fp, #6
mov r2, r1
-.L280:
+.L284:
ldrh ip, [r3]
cmp ip, r10
- bne .L283
+ bne .L287
mov r5, r2
-.L282:
+.L286:
movw r3, #65535
cmp r5, r3
- beq .L279
+ beq .L283
ldrh r10, [r8, r5, lsl #1]
lsl fp, r5, #1
cmp r6, r10
- bcs .L284
+ bcs .L288
bl GetFreeBlockMinEraseCount
cmp r6, r0
it cc
- strcc r1, [r4, #2568]
-.L284:
+ strcc r1, [r4, #2620]
+.L288:
cmp r7, r10
- bls .L279
+ bls .L283
add r3, r10, #128
cmp r9, r3
- ble .L279
+ ble .L283
add r3, r10, #256
cmp r7, r3
- bhi .L285
- ldr r3, [r4, #2564]
+ bhi .L289
+ ldr r3, [r4, #2616]
add r10, r10, #768
cmp r10, r3
- bcs .L279
-.L285:
+ bcs .L283
+.L289:
str r9, [sp, #8]
mov r2, r7
ldrh r3, [r8, fp]
mov r1, r5
- ldr r0, .L292+4
+ ldr r0, .L296+4
str r3, [sp, #4]
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
ldrh r3, [r3, fp]
str r3, [sp]
- ldr r3, [r4, #2564]
+ ldr r3, [r4, #2616]
bl sftl_printk
movs r3, #1
- str r3, [r4, #3164]
- b .L278
-.L283:
+ str r3, [r4, #3168]
+ b .L282
+.L287:
adds r0, r0, #1
ldr r5, [sp, #20]
uxth r0, r0
cmp r0, r5
- bhi .L279
+ bhi .L283
ldrh r5, [r3, #4]
- cbz r5, .L281
- ldr r5, .L292+8
+ cbz r5, .L285
+ ldr r5, .L296+8
sub r3, r3, lr
asrs r3, r3, #1
muls r3, r5, r3
uxth r5, r3
ldrh r3, [r8, r5, lsl #1]
cmp r6, r3
- bcs .L282
+ bcs .L286
cmp r1, r3
itt hi
movhi r1, r3
movhi r2, r5
-.L281:
+.L285:
mla r3, fp, ip, lr
- b .L280
-.L293:
+ b .L284
+.L297:
.align 2
-.L292:
+.L296:
.word .LANCHOR0
- .word .LC72
+ .word .LC78
.word -1431655765
.fnend
.size GetSwlReplaceBlock, .-GetSwlReplaceBlock
@@ -2745,18 +2823,18 @@ free_data_superblock:
push {r3, lr}
.save {r3, lr}
cmp r0, r2
- beq .L295
- ldr r2, .L296
+ beq .L299
+ ldr r2, .L300
movs r1, #0
- ldr r2, [r2, #2324]
+ ldr r2, [r2, #76]
strh r1, [r2, r0, lsl #1] @ movhi
bl INSERT_FREE_LIST
-.L295:
+.L299:
movs r0, #0
pop {r3, pc}
-.L297:
+.L301:
.align 2
-.L296:
+.L300:
.word .LANCHOR0
.fnend
.size free_data_superblock, .-free_data_superblock
@@ -2777,49 +2855,52 @@ get_new_active_ppa:
ldrh r2, [r0]
mov r4, r0
cmp r2, r3
- bne .L299
- movw r2, #2786
- ldr r1, .L312
- ldr r0, .L312+4
+ bne .L303
+ movw r2, #2781
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L299:
- ldr r5, .L312+8
+.L303:
+ ldr r6, .L317+8
ldrh r2, [r4, #2]
- ldrh r3, [r5, #102]
+ ldrh r3, [r6, #306]
cmp r2, r3
- bne .L300
- movw r2, #2787
- ldr r1, .L312
- ldr r0, .L312+4
+ bne .L304
+ movw r2, #2782
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L300:
+.L304:
ldrh r3, [r4, #4]
- cbnz r3, .L301
- movw r2, #2788
- ldr r1, .L312
- ldr r0, .L312+4
+ cbnz r3, .L305
+ movw r2, #2783
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L301:
+.L305:
ldrb r2, [r4, #6] @ zero_extendqisi2
movs r3, #0
- ldrh r1, [r5, #32]
- movw r6, #65535
+ ldrh r1, [r6, #236]
+ movw r5, #65535
strb r3, [r4, #10]
adds r2, r2, #8
ldrh r0, [r4, r2, lsl #1]
mov r2, r3
-.L302:
- cmp r0, r6
- ldrb r3, [r4, #6] @ zero_extendqisi2
- beq .L304
+.L306:
+ cmp r0, r5
+ beq .L308
+ ldrh r5, [r4, #2]
+ ldrh r6, [r6, #306]
+ cmp r5, r6
+ bcs .L312
ldrh r2, [r4, #4]
- ldrh r6, [r4, #2]
+ orr r5, r5, r0, lsl #10
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ movw r0, #65535
subs r2, r2, #1
uxth r2, r2
- orr r6, r6, r0, lsl #10
- movw r0, #65535
strh r2, [r4, #4] @ movhi
-.L306:
+.L311:
adds r3, r3, #1
uxtb r3, r3
cmp r1, r3
@@ -2831,21 +2912,21 @@ get_new_active_ppa:
add r7, r3, #8
ldrh r7, [r4, r7, lsl #1]
cmp r7, r0
- beq .L306
+ beq .L311
strb r3, [r4, #6]
- ldrh r1, [r4, #2]
- ldrh r3, [r5, #102]
- cmp r1, r3
- bne .L298
- cbz r2, .L298
- movw r2, #2809
- ldr r1, .L312
- ldr r0, .L312+4
+ ldrh r3, [r4, #2]
+ cmp r3, r6
+ bne .L302
+ cbz r2, .L302
+ movw r2, #2806
+ ldr r1, .L317
+ ldr r0, .L317+4
bl sftl_printk
-.L298:
- mov r0, r6
+.L302:
+ mov r0, r5
pop {r3, r4, r5, r6, r7, pc}
-.L304:
+.L308:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
adds r3, r3, #1
uxtb r3, r3
cmp r3, r1
@@ -2858,12 +2939,15 @@ get_new_active_ppa:
ldrb r3, [r4, #6] @ zero_extendqisi2
adds r3, r3, #8
ldrh r0, [r4, r3, lsl #1]
+ b .L306
+.L312:
+ movw r5, #65535
b .L302
-.L313:
+.L318:
.align 2
-.L312:
+.L317:
.word .LANCHOR1+111
- .word .LC1
+ .word .LC8
.word .LANCHOR0
.fnend
.size get_new_active_ppa, .-get_new_active_ppa
@@ -2878,7 +2962,7 @@ FtlGcBufInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L323
+ ldr r3, .L328
mov ip, #20
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
@@ -2886,38 +2970,38 @@ FtlGcBufInit:
movs r6, #1
movs r2, #0
mov r7, r3
- str r2, [r3, #3168]
-.L315:
- ldrh r1, [r3, #32]
+ str r2, [r3, #3172]
+.L320:
+ ldrh r1, [r3, #236]
uxth r0, r2
adds r4, r2, #1
cmp r0, r1
- bcc .L318
- ldr r7, .L323
+ bcc .L323
+ ldr r7, .L328
mov ip, #12
movs r6, #0
-.L319:
- ldr r2, [r3, #3188]
+.L324:
+ ldr r2, [r3, #3192]
cmp r1, r2
- bcc .L322
+ bcc .L327
pop {r4, r5, r6, r7, r8, r9, pc}
-.L318:
+.L323:
uxth r2, r2
- ldr r8, [r3, #3172]
+ ldr r8, [r3, #3176]
mul lr, r9, r2
add r1, r8, lr
str r6, [r1, #8]
- ldrh r1, [r3, #110]
+ ldrh r1, [r3, #314]
muls r1, r2, r1
it mi
addmi r1, r1, #3
bic r0, r1, #3
- ldr r1, [r3, #3176]
+ ldr r1, [r3, #3180]
add r1, r1, r0
str r1, [r8, lr]
- ldr r5, [r7, #3180]
- ldr r0, [r3, #3172]
- ldrh r1, [r3, #112]
+ ldr r5, [r7, #3184]
+ ldr r0, [r3, #3176]
+ ldrh r1, [r3, #316]
muls r1, r2, r1
it mi
addmi r1, r1, #3
@@ -2925,31 +3009,31 @@ FtlGcBufInit:
add r8, r0, lr
add r1, r1, r5
str r1, [r8, #4]
- ldr r1, [r3, #3184]
+ ldr r1, [r3, #3188]
mla r2, ip, r2, r1
ldr r1, [r0, lr]
str r1, [r2, #8]
ldr r1, [r8, #4]
str r1, [r2, #12]
mov r2, r4
- b .L315
-.L322:
+ b .L320
+.L327:
mul r0, ip, r1
- ldr r4, [r3, #3172]
- ldr r5, [r3, #3176]
+ ldr r4, [r3, #3176]
+ ldr r5, [r3, #3180]
adds r2, r4, r0
str r6, [r2, #8]
- ldrh r2, [r3, #110]
+ ldrh r2, [r3, #314]
muls r2, r1, r2
it mi
addmi r2, r2, #3
bic r2, r2, #3
add r2, r2, r5
str r2, [r4, r0]
- ldr r2, [r3, #3172]
- ldr r4, [r7, #3180]
+ ldr r2, [r3, #3176]
+ ldr r4, [r7, #3184]
add r0, r0, r2
- ldrh r2, [r3, #112]
+ ldrh r2, [r3, #316]
muls r2, r1, r2
it mi
addmi r2, r2, #3
@@ -2958,10 +3042,10 @@ FtlGcBufInit:
add r2, r2, r4
uxth r1, r1
str r2, [r0, #4]
- b .L319
-.L324:
+ b .L324
+.L329:
.align 2
-.L323:
+.L328:
.word .LANCHOR0
.fnend
.size FtlGcBufInit, .-FtlGcBufInit
@@ -2976,41 +3060,41 @@ FtlGcBufFree:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L332
+ ldr r3, .L337
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
mov r10, #20
mov lr, #12
mov r8, r5
- ldr ip, [r3, #3188]
- ldr r6, [r3, #3172]
-.L326:
+ ldr ip, [r3, #3192]
+ ldr r6, [r3, #3176]
+.L331:
uxth r3, r5
cmp r1, r3
- bls .L325
+ bls .L330
mla r4, r10, r3, r0
movs r2, #0
-.L327:
+.L332:
uxth r3, r2
cmp ip, r3
- bls .L328
+ bls .L333
mul r3, lr, r3
ldr r7, [r4, #8]
adds r2, r2, #1
add r9, r6, r3
ldr r3, [r6, r3]
cmp r3, r7
- bne .L327
+ bne .L332
str r8, [r9, #8]
-.L328:
+.L333:
adds r5, r5, #1
- b .L326
-.L325:
+ b .L331
+.L330:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L333:
+.L338:
.align 2
-.L332:
+.L337:
.word .LANCHOR0
.fnend
.size FtlGcBufFree, .-FtlGcBufFree
@@ -3025,43 +3109,43 @@ FtlGcBufAlloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L341
+ ldr r3, .L346
mov ip, #12
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
movs r4, #0
mov lr, #1
mov r8, #20
- ldr r5, [r3, #3188]
- ldr r6, [r3, #3172]
-.L335:
+ ldr r5, [r3, #3192]
+ ldr r6, [r3, #3176]
+.L340:
uxth r2, r4
cmp r1, r2
- bhi .L339
+ bhi .L344
pop {r4, r5, r6, r7, r8, r9, pc}
-.L339:
+.L344:
mov r9, #0
-.L336:
+.L341:
uxth r3, r9
cmp r5, r3
- bls .L337
+ bls .L342
mla r3, ip, r3, r6
add r9, r9, #1
ldr r7, [r3, #8]
cmp r7, #0
- bne .L336
+ bne .L341
mla r2, r8, r2, r0
ldr r7, [r3]
str lr, [r3, #8]
str r7, [r2, #8]
ldr r3, [r3, #4]
str r3, [r2, #12]
-.L337:
- adds r4, r4, #1
- b .L335
.L342:
+ adds r4, r4, #1
+ b .L340
+.L347:
.align 2
-.L341:
+.L346:
.word .LANCHOR0
.fnend
.size FtlGcBufAlloc, .-FtlGcBufAlloc
@@ -3077,24 +3161,24 @@ IsBlkInGcList:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L348
- ldr r3, [r2, #3192]
- ldrh r2, [r2, #3196]
+ ldr r2, .L353
+ ldr r3, [r2, #3196]
+ ldrh r2, [r2, #3200]
add r2, r3, r2, lsl #1
-.L344:
+.L349:
cmp r3, r2
- bne .L346
+ bne .L351
movs r0, #0
bx lr
-.L346:
+.L351:
ldrh r1, [r3], #2
cmp r1, r0
- bne .L344
+ bne .L349
movs r0, #1
bx lr
-.L349:
+.L354:
.align 2
-.L348:
+.L353:
.word .LANCHOR0
.fnend
.size IsBlkInGcList, .-IsBlkInGcList
@@ -3117,41 +3201,41 @@ FtlGcUpdatePage:
mov r7, r2
movs r4, #0
bl P2V_block_in_plane
- ldr r3, .L354
- ldrh r1, [r3, #3196]
- ldr r2, [r3, #3192]
-.L351:
+ ldr r3, .L359
+ ldrh r1, [r3, #3200]
+ ldr r2, [r3, #3196]
+.L356:
uxth ip, r4
cmp ip, r1
- bcc .L353
- bne .L352
+ bcc .L358
+ bne .L357
strh r0, [r2, ip, lsl #1] @ movhi
- ldrh r0, [r3, #3196]
+ ldrh r0, [r3, #3200]
adds r0, r0, #1
- strh r0, [r3, #3196] @ movhi
- b .L352
-.L353:
+ strh r0, [r3, #3200] @ movhi
+ b .L357
+.L358:
adds r4, r4, #1
add ip, r2, r4, lsl #1
ldrh ip, [ip, #-2]
cmp ip, r0
- bne .L351
-.L352:
- ldrh r2, [r3, #3204]
+ bne .L356
+.L357:
+ ldrh r2, [r3, #3208]
movs r0, #12
muls r0, r2, r0
- ldr r2, [r3, #3200]
+ ldr r2, [r3, #3204]
adds r1, r2, r0
str r6, [r1, #4]
str r7, [r1, #8]
str r5, [r2, r0]
- ldrh r2, [r3, #3204]
+ ldrh r2, [r3, #3208]
adds r2, r2, #1
- strh r2, [r3, #3204] @ movhi
+ strh r2, [r3, #3208] @ movhi
pop {r3, r4, r5, r6, r7, pc}
-.L355:
+.L360:
.align 2
-.L354:
+.L359:
.word .LANCHOR0
.fnend
.size FtlGcUpdatePage, .-FtlGcUpdatePage
@@ -3170,31 +3254,31 @@ FtlGcRefreshBlock:
.save {r4, lr}
mov r1, r0
mov r4, r0
- ldr r0, .L359
+ ldr r0, .L364
bl sftl_printk
- ldr r3, .L359+4
- ldrh r0, [r3, #3206]
+ ldr r3, .L364+4
+ ldrh r0, [r3, #226]
cmp r4, r0
- beq .L357
- ldrh r1, [r3, #3208]
+ beq .L362
+ ldrh r1, [r3, #224]
cmp r4, r1
- beq .L357
+ beq .L362
movw r2, #65535
cmp r0, r2
- bne .L358
- strh r4, [r3, #3206] @ movhi
-.L357:
+ bne .L363
+ strh r4, [r3, #226] @ movhi
+.L362:
movs r0, #0
pop {r4, pc}
-.L358:
+.L363:
cmp r1, r2
it eq
- strheq r4, [r3, #3208] @ movhi
- b .L357
-.L360:
+ strheq r4, [r3, #224] @ movhi
+ b .L362
+.L365:
.align 2
-.L359:
- .word .LC73
+.L364:
+ .word .LC79
.word .LANCHOR0
.fnend
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
@@ -3212,43 +3296,43 @@ FtlGcMarkBadPhyBlk:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
- ldr r4, .L365
+ ldr r4, .L370
bl P2V_block_in_plane
mov r2, r5
mov r6, r0
ldrh r1, [r4, #3210]
- ldr r0, .L365+4
+ ldr r0, .L370+4
bl sftl_printk
mov r0, r6
bl FtlGcRefreshBlock
ldrh r3, [r4, #3210]
movs r2, #0
addw r0, r4, #3212
-.L362:
+.L367:
uxth r1, r2
cmp r3, r1
- bhi .L364
+ bhi .L369
cmp r3, #15
itttt ls
addls r2, r3, #1
strhls r2, [r4, #3210] @ movhi
addls r4, r4, r3, lsl #1
strhls r5, [r4, #3212] @ movhi
- b .L363
-.L364:
+ b .L368
+.L369:
adds r2, r2, #1
add r1, r0, r2, lsl #1
ldrh r1, [r1, #-2]
cmp r1, r5
- bne .L362
-.L363:
+ bne .L367
+.L368:
movs r0, #0
pop {r4, r5, r6, pc}
-.L366:
+.L371:
.align 2
-.L365:
+.L370:
.word .LANCHOR0
- .word .LC74
+ .word .LC80
.fnend
.size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
.align 1
@@ -3264,13 +3348,13 @@ FtlGcReFreshBadBlk:
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L373
+ ldr r4, .L378
ldrh r3, [r4, #3210]
- cbz r3, .L368
- ldrh r1, [r4, #3206]
+ cbz r3, .L373
+ ldrh r1, [r4, #226]
movw r2, #65535
cmp r1, r2
- bne .L368
+ bne .L373
ldrh r2, [r4, #3246]
cmp r2, r3
itt cs
@@ -3284,12 +3368,12 @@ FtlGcReFreshBadBlk:
ldrh r3, [r4, #3246]
adds r3, r3, #1
strh r3, [r4, #3246] @ movhi
-.L368:
+.L373:
movs r0, #0
pop {r4, pc}
-.L374:
+.L379:
.align 2
-.L373:
+.L378:
.word .LANCHOR0
.fnend
.size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
@@ -3305,11 +3389,11 @@ ftl_malloc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r1, .L376
+ ldr r1, .L381
b __kmalloc
-.L377:
+.L382:
.align 2
-.L376:
+.L381:
.word 37748929
.fnend
.size ftl_malloc, .-ftl_malloc
@@ -3342,59 +3426,59 @@ rknand_print_hex:
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r6, #0
- ldr fp, .L388+16
+ ldr fp, .L393+16
mov r10, r0
mov r7, r1
mov r8, r2
mov r9, r3
mov r5, r6
mov r4, r6
-.L380:
+.L385:
cmp r4, r9
- bcc .L386
- ldr r0, .L388
+ bcc .L391
+ ldr r0, .L393
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
b sftl_printk
-.L386:
- cbnz r5, .L381
+.L391:
+ cbnz r5, .L386
mov r3, r6
mov r2, r7
mov r1, r10
- ldr r0, .L388+4
+ ldr r0, .L393+4
bl sftl_printk
-.L381:
+.L386:
cmp r8, #4
- bne .L382
+ bne .L387
ldr r1, [r7, r4, lsl #2]
- ldr r0, .L388+8
-.L387:
+ ldr r0, .L393+8
+.L392:
adds r5, r5, #1
bl sftl_printk
cmp r5, #15
- bls .L385
+ bls .L390
movs r5, #0
- ldr r0, .L388
+ ldr r0, .L393
bl sftl_printk
-.L385:
+.L390:
adds r4, r4, #1
add r6, r6, r8
- b .L380
-.L382:
+ b .L385
+.L387:
cmp r8, #2
ittee eq
ldrheq r1, [r7, r4, lsl #1]
moveq r0, fp
ldrbne r1, [r7, r4] @ zero_extendqisi2
- ldrne r0, .L388+12
- b .L387
-.L389:
+ ldrne r0, .L393+12
+ b .L392
+.L394:
.align 2
-.L388:
- .word .LC79
- .word .LC75
- .word .LC76
- .word .LC78
- .word .LC77
+.L393:
+ .word .LC85
+ .word .LC81
+ .word .LC82
+ .word .LC84
+ .word .LC83
.fnend
.size rknand_print_hex, .-rknand_print_hex
.align 1
@@ -3411,7 +3495,7 @@ FlashEraseBlocks:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r2
- ldr r5, .L406
+ ldr r5, .L411
mov r4, r0
mov fp, r0
movs r7, #0
@@ -3421,24 +3505,24 @@ FlashEraseBlocks:
ldrh r9, [r5, #12]
lsl r3, r9, #3
str r3, [sp, #4]
-.L391:
+.L396:
cmp r7, r8
- beq .L395
+ beq .L400
add r2, sp, #8
add r1, sp, #12
mov r0, fp
bl l2p_addr_tran
ldr r6, [sp, #8]
- cbnz r6, .L392
+ cbnz r6, .L397
ldr r2, [sp, #12]
ldr r3, [sp, #4]
cmp r3, r2
- bls .L392
- ldr r5, .L406+4
- ldr r7, .L406+8
- ldr r9, .L406+16
- b .L405
-.L394:
+ bls .L397
+ ldr r5, .L411+4
+ ldr r7, .L411+8
+ ldr r9, .L411+16
+ b .L410
+.L399:
mov r3, #-1
ldr r2, [sp, #12]
str r3, [r4, #-20]
@@ -3454,19 +3538,19 @@ FlashEraseBlocks:
movs r3, #4
ldr r1, [r4, #-8]
mov r2, r3
- ldr r0, .L406+12
+ ldr r0, .L411+12
bl rknand_print_hex
-.L405:
+.L410:
cmp r6, r8
add r4, r4, #20
- bne .L394
+ bne .L399
bl dump_stack
-.L395:
+.L400:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L392:
+.L397:
ldr r2, [r5, #3252]
uxtb r0, r6
ldr r1, [sp, #12]
@@ -3478,26 +3562,26 @@ FlashEraseBlocks:
str r2, [fp]
ldrh r2, [r5, #14]
cmp r2, #4
- bne .L399
+ bne .L404
ldr r1, [sp, #12]
ldr r2, [r5, #3252]
ldrb r0, [sp, #8] @ zero_extendqisi2
add r1, r1, r9
blx r2
- cbz r0, .L399
+ cbz r0, .L404
str r10, [fp]
-.L399:
+.L404:
adds r7, r7, #1
add fp, fp, #20
- b .L391
-.L407:
+ b .L396
+.L412:
.align 2
-.L406:
+.L411:
.word .LANCHOR0
.word .LANCHOR1+130
- .word .LC80
- .word .LC82
- .word .LC81
+ .word .LC86
+ .word .LC88
+ .word .LC87
.fnend
.size FlashEraseBlocks, .-FlashEraseBlocks
.align 1
@@ -3518,12 +3602,12 @@ FtlFreeSysBlkQueueIn:
.save {r4, r5, r6, lr}
mov r5, r0
cmp r3, r2
- bhi .L408
- ldr r4, .L417
- ldrh r3, [r4, #218]
+ bhi .L413
+ ldr r4, .L422
+ ldrh r3, [r4, #422]
cmp r3, #1024
- beq .L408
- cbz r1, .L410
+ beq .L413
+ cbz r1, .L415
bl P2V_block_in_plane
mov r6, r0
ldr r0, [r4, #3272]
@@ -3532,28 +3616,28 @@ FtlFreeSysBlkQueueIn:
mov r1, r2
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r2, [r4, #2328]
+ ldr r2, [r4, #2540]
ldrh r3, [r2, r6, lsl #1]
adds r3, r3, #1
strh r3, [r2, r6, lsl #1] @ movhi
- ldr r3, [r4, #2560]
+ ldr r3, [r4, #2612]
adds r3, r3, #1
- str r3, [r4, #2560]
-.L410:
- ldrh r3, [r4, #218]
+ str r3, [r4, #2612]
+.L415:
+ ldrh r3, [r4, #422]
adds r3, r3, #1
- strh r3, [r4, #218] @ movhi
- ldrh r3, [r4, #216]
+ strh r3, [r4, #422] @ movhi
+ ldrh r3, [r4, #420]
add r2, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
- strh r5, [r2, #220] @ movhi
- strh r3, [r4, #216] @ movhi
-.L408:
+ strh r5, [r2, #424] @ movhi
+ strh r3, [r4, #420] @ movhi
+.L413:
pop {r4, r5, r6, pc}
-.L418:
+.L423:
.align 2
-.L417:
+.L422:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
@@ -3570,49 +3654,49 @@ FtlFreeSysBlkQueueOut:
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r4, .L424
- ldrh r2, [r4, #218]
- cbz r2, .L423
- ldrh r3, [r4, #214]
+ ldr r4, .L429
+ ldrh r2, [r4, #422]
+ cbz r2, .L428
+ ldrh r3, [r4, #418]
subs r2, r2, #1
ldr r0, [r4, #3272]
- strh r2, [r4, #218] @ movhi
+ strh r2, [r4, #422] @ movhi
movs r2, #1
add r1, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
- ldrh r5, [r1, #220]
+ ldrh r5, [r1, #424]
mov r1, r2
- strh r3, [r4, #214] @ movhi
+ strh r3, [r4, #418] @ movhi
lsls r3, r5, #10
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r3, [r4, #2560]
+ ldr r3, [r4, #2612]
adds r3, r3, #1
- str r3, [r4, #2560]
-.L420:
+ str r3, [r4, #2612]
+.L425:
subs r3, r5, #1
movw r2, #65533
uxth r3, r3
cmp r3, r2
- bls .L421
- ldrh r2, [r4, #218]
+ bls .L426
+ ldrh r2, [r4, #422]
mov r1, r5
- ldr r0, .L424+4
+ ldr r0, .L429+4
bl sftl_printk
-.L422:
- b .L422
-.L423:
+.L427:
+ b .L427
+.L428:
movw r5, #65535
- b .L420
-.L421:
+ b .L425
+.L426:
mov r0, r5
pop {r3, r4, r5, pc}
-.L425:
+.L430:
.align 2
-.L424:
+.L429:
.word .LANCHOR0
- .word .LC83
+ .word .LC89
.fnend
.size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
.align 1
@@ -3632,16 +3716,16 @@ ftl_map_blk_alloc_new_blk:
ldrh r1, [r0, #10]
movs r3, #0
ldr r2, [r0, #12]
-.L427:
+.L432:
uxth r5, r3
cmp r5, r1
- bcs .L430
+ bcs .L435
mov r7, r2
adds r3, r3, #1
ldrh r6, [r7]
adds r2, r2, #2
cmp r6, #0
- bne .L427
+ bne .L432
bl FtlFreeSysBlkQueueOut
subs r3, r0, #1
movw r2, #65533
@@ -3649,14 +3733,14 @@ ftl_map_blk_alloc_new_blk:
mov r1, r0
strh r0, [r7] @ movhi
cmp r3, r2
- bls .L428
- ldr r3, .L434
- ldr r0, .L434+4
- ldrh r2, [r3, #218]
+ bls .L433
+ ldr r3, .L439
+ ldr r0, .L439+4
+ ldrh r2, [r3, #422]
bl sftl_printk
-.L429:
- b .L429
-.L428:
+.L434:
+ b .L434
+.L433:
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
strh r5, [r4] @ movhi
@@ -3665,24 +3749,24 @@ ftl_map_blk_alloc_new_blk:
ldrh r3, [r4, #8]
adds r3, r3, #1
strh r3, [r4, #8] @ movhi
-.L430:
+.L435:
ldrh r3, [r4, #10]
cmp r3, r5
- bhi .L432
+ bhi .L437
movw r2, #578
- ldr r1, .L434+8
- ldr r0, .L434+12
+ ldr r1, .L439+8
+ ldr r0, .L439+12
bl sftl_printk
-.L432:
+.L437:
movs r0, #0
pop {r3, r4, r5, r6, r7, pc}
-.L435:
+.L440:
.align 2
-.L434:
+.L439:
.word .LANCHOR0
- .word .LC84
+ .word .LC90
.word .LANCHOR1+147
- .word .LC1
+ .word .LC8
.fnend
.size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
.align 1
@@ -3699,7 +3783,7 @@ FlashGetBadBlockList:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r2, #256
- ldr r5, .L443
+ ldr r5, .L448
mov r4, r0
mov r6, r1
movs r1, #255
@@ -3710,31 +3794,31 @@ FlashGetBadBlockList:
blx r3
uxth r0, r0
cmp r0, #50
- bls .L437
+ bls .L442
mov r2, #256
movs r1, #255
mov r0, r4
bl memset
movs r0, #0
-.L437:
+.L442:
ldrh r3, [r5, #14]
cmp r3, #4
- bne .L442
+ bne .L447
add r1, r4, r0, lsl #1
mov r3, r4
-.L439:
+.L444:
cmp r3, r1
- bne .L440
-.L442:
+ bne .L445
+.L447:
pop {r4, r5, r6, pc}
-.L440:
+.L445:
ldrh r2, [r3]
lsrs r2, r2, #1
strh r2, [r3], #2 @ movhi
- b .L439
-.L444:
+ b .L444
+.L449:
.align 2
-.L443:
+.L448:
.word .LANCHOR0
.fnend
.size FlashGetBadBlockList, .-FlashGetBadBlockList
@@ -3752,9 +3836,9 @@ ftl_memset:
push {r4, lr}
.save {r4, lr}
mov r4, r0
- cbz r2, .L446
+ cbz r2, .L451
bl memset
-.L446:
+.L451:
mov r0, r4
pop {r4, pc}
.fnend
@@ -3773,47 +3857,47 @@ FtlMemInit:
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movw r3, #65535
- ldr r4, .L551
+ ldr r4, .L556
movs r5, #0
movs r7, #12
movs r6, #20
- ldrh r0, [r4, #106]
+ ldrh r0, [r4, #310]
str r3, [r4, #3280]
- strh r3, [r4, #3206] @ movhi
- strh r3, [r4, #3208] @ movhi
+ strh r3, [r4, #226] @ movhi
+ strh r3, [r4, #224] @ movhi
movs r3, #32
- strh r3, [r4, #3152] @ movhi
+ strh r3, [r4, #3156] @ movhi
lsls r0, r0, #1
movs r3, #128
- str r5, [r4, #2540]
- strh r3, [r4, #3154] @ movhi
- str r5, [r4, #2544]
- str r5, [r4, #2528]
- str r5, [r4, #2516]
- str r5, [r4, #2512]
- str r5, [r4, #2520]
- str r5, [r4, #2524]
- str r5, [r4, #2508]
- str r5, [r4, #2548]
- str r5, [r4, #2552]
- str r5, [r4, #2560]
- str r5, [r4, #2564]
+ str r5, [r4, #2592]
+ strh r3, [r4, #3158] @ movhi
+ str r5, [r4, #2596]
+ str r5, [r4, #2580]
str r5, [r4, #2568]
+ str r5, [r4, #2564]
+ str r5, [r4, #2572]
+ str r5, [r4, #2576]
+ str r5, [r4, #2560]
+ str r5, [r4, #2600]
+ str r5, [r4, #2604]
+ str r5, [r4, #2612]
+ str r5, [r4, #2616]
+ str r5, [r4, #2620]
str r5, [r4, #3276]
- str r5, [r4, #3164]
+ str r5, [r4, #3168]
str r5, [r4, #3284]
- str r5, [r4, #3156]
+ str r5, [r4, #3160]
str r5, [r4, #3288]
- strh r5, [r4, #3160] @ movhi
+ strh r5, [r4, #3164] @ movhi
strh r5, [r4, #3210] @ movhi
strh r5, [r4, #3246] @ movhi
bl ftl_malloc
- str r0, [r4, #3192]
- ldrh r0, [r4, #106]
+ str r0, [r4, #3196]
+ ldrh r0, [r4, #310]
muls r0, r7, r0
bl ftl_malloc
- ldrh r3, [r4, #32]
- str r0, [r4, #3200]
+ ldrh r3, [r4, #236]
+ str r0, [r4, #3204]
muls r6, r3, r6
lsl r8, r6, #2
mov r0, r8
@@ -3830,13 +3914,13 @@ FtlMemInit:
str r0, [r4, #3272]
mov r0, r6
bl ftl_malloc
- ldrh r3, [r4, #32]
- ldrh r6, [r4, #110]
- str r0, [r4, #3184]
+ ldrh r3, [r4, #236]
+ ldrh r6, [r4, #314]
+ str r0, [r4, #3188]
lsls r3, r3, #1
mov r0, r6
adds r3, r3, #1
- str r3, [r4, #3188]
+ str r3, [r4, #3192]
bl ftl_malloc
str r0, [r4, #3304]
mov r0, r6
@@ -3845,31 +3929,31 @@ FtlMemInit:
mov r0, r6
bl ftl_malloc
str r0, [r4, #3312]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
muls r0, r6, r0
bl ftl_malloc
- str r0, [r4, #3176]
+ str r0, [r4, #3180]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3316]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3320]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
muls r0, r7, r0
bl ftl_malloc
- str r0, [r4, #3172]
+ str r0, [r4, #3176]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3324]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3328]
- ldrh r0, [r4, #58]
+ ldrh r0, [r4, #262]
lsls r0, r0, #2
bl ftl_malloc
- ldrh r3, [r4, #112]
- ldrh r6, [r4, #32]
+ ldrh r3, [r4, #316]
+ ldrh r6, [r4, #236]
str r0, [r4, #3332]
muls r6, r3, r6
mov r0, r6
@@ -3877,37 +3961,37 @@ FtlMemInit:
str r0, [r4, #3336]
lsls r0, r6, #2
bl ftl_malloc
- ldrh r3, [r4, #112]
+ ldrh r3, [r4, #316]
str r0, [r4, #3340]
- ldr r0, [r4, #3188]
+ ldr r0, [r4, #3192]
muls r0, r3, r0
bl ftl_malloc
- str r0, [r4, #3180]
- ldrh r0, [r4, #42]
+ str r0, [r4, #3184]
+ ldrh r0, [r4, #246]
lsls r0, r0, #1
uxth r0, r0
strh r0, [r4, #3344] @ movhi
bl ftl_malloc
ldrh r3, [r4, #3344]
str r0, [r4, #3348]
- ldr r0, .L551+4
+ ldr r0, .L556+4
addw r3, r3, #547
lsrs r3, r3, #9
and r0, r0, r3, lsl #9
strh r3, [r4, #3344] @ movhi
bl ftl_malloc
- ldrh r6, [r4, #42]
+ ldrh r6, [r4, #246]
str r0, [r4, #3352]
adds r0, r0, #32
- str r0, [r4, #2328]
+ str r0, [r4, #2540]
lsls r6, r6, #1
mov r0, r6
bl ftl_malloc
str r0, [r4, #3356]
mov r0, r6
bl ftl_malloc
- ldr r6, [r4, #128]
- str r0, [r4, #2324]
+ ldr r6, [r4, #332]
+ str r0, [r4, #76]
lsls r6, r6, #1
mov r0, r6
bl ftl_malloc
@@ -3915,56 +3999,56 @@ FtlMemInit:
mov r0, r6
bl ftl_malloc
str r0, [r4, #3364]
- ldrh r0, [r4, #42]
+ ldrh r0, [r4, #246]
lsrs r0, r0, #3
adds r0, r0, #4
bl ftl_malloc
str r0, [r4, #24]
- ldrh r0, [r4, #120]
+ ldrh r0, [r4, #324]
lsls r0, r0, #1
bl ftl_malloc
- str r0, [r4, #148]
- ldrh r0, [r4, #120]
+ str r0, [r4, #352]
+ ldrh r0, [r4, #324]
lsls r0, r0, #1
bl ftl_malloc
str r0, [r4, #3368]
- ldrh r0, [r4, #120]
+ ldrh r0, [r4, #324]
lsls r0, r0, #2
bl ftl_malloc
str r0, [r4, #3372]
- ldrh r0, [r4, #122]
+ ldrh r0, [r4, #326]
lsls r0, r0, #2
bl ftl_malloc
- ldrh r2, [r4, #122]
+ ldrh r2, [r4, #326]
mov r1, r5
str r0, [r4, #3376]
- add r5, r4, #180
+ add r5, r4, #384
lsls r2, r2, #2
bl ftl_memset
- ldrh r0, [r4, #136]
+ ldrh r0, [r4, #340]
lsls r0, r0, #2
bl ftl_malloc
str r0, [r4, #3380]
- ldr r0, [r4, #128]
+ ldr r0, [r4, #332]
lsls r0, r0, #2
bl ftl_malloc
str r0, [r4, #3384]
- ldrh r0, [r4, #138]
+ ldrh r0, [r4, #342]
muls r0, r7, r0
bl ftl_malloc
- ldrh r3, [r4, #138]
- str r0, [r4, #2492]
- ldrh r0, [r4, #110]
+ ldrh r3, [r4, #342]
+ str r0, [r4, #2544]
+ ldrh r0, [r4, #314]
muls r0, r3, r0
bl ftl_malloc
- ldrh r3, [r4, #42]
+ ldrh r3, [r4, #246]
str r0, [r4, #3388]
movs r0, #6
muls r0, r3, r0
bl ftl_malloc
- str r0, [r4, #2316]
- ldrh r0, [r4, #98]
- ldrh r3, [r4, #54]
+ str r0, [r4, #2520]
+ ldrh r0, [r4, #302]
+ ldrh r3, [r4, #258]
adds r0, r0, #31
asrs r0, r0, #5
strh r0, [r4, #3392] @ movhi
@@ -3973,147 +4057,147 @@ FtlMemInit:
bl ftl_malloc
ldrh r2, [r4, #3392]
movs r3, #1
- ldrh r6, [r4, #54]
- str r0, [r4, #180]
+ ldrh r6, [r4, #258]
+ str r0, [r4, #384]
lsls r2, r2, #2
mov r1, r2
-.L451:
+.L456:
cmp r3, r6
- bcc .L452
- ldr r2, .L551+8
+ bcc .L457
+ ldr r2, .L556+8
movs r1, #0
add r3, r2, r3, lsl #2
adds r2, r2, #56
adds r3, r3, #24
-.L453:
+.L458:
cmp r2, r3
- bne .L454
+ bne .L459
ldr r3, [r4, #3360]
- cbnz r3, .L455
-.L457:
- ldr r1, .L551+12
- ldr r0, .L551+16
+ cbnz r3, .L460
+.L462:
+ ldr r1, .L556+12
+ ldr r0, .L556+16
bl sftl_printk
mov r0, #-1
pop {r4, r5, r6, r7, r8, pc}
-.L452:
- ldr r0, [r4, #180]
+.L457:
+ ldr r0, [r4, #384]
adds r3, r3, #1
add r0, r0, r1
add r1, r1, r2
str r0, [r5, #4]!
- b .L451
-.L454:
+ b .L456
+.L459:
str r1, [r3, #4]!
- b .L453
-.L552:
+ b .L458
+.L557:
.align 2
-.L551:
+.L556:
.word .LANCHOR0
.word 33553920
- .word .LANCHOR0+152
+ .word .LANCHOR0+356
.word .LANCHOR1+173
- .word .LC85
-.L455:
+ .word .LC91
+.L460:
ldr r3, [r4, #3364]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3380]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3384]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #2492]
+ beq .L462
+ ldr r3, [r4, #2544]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3388]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #2316]
+ beq .L462
+ ldr r3, [r4, #2520]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #180]
+ beq .L462
+ ldr r3, [r4, #384]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #2324]
+ beq .L462
+ ldr r3, [r4, #76]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3192]
+ beq .L462
+ ldr r3, [r4, #3196]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3200]
+ beq .L462
+ ldr r3, [r4, #3204]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3292]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3300]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3272]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3184]
+ beq .L462
+ ldr r3, [r4, #3188]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3296]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3304]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3308]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3312]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3176]
+ beq .L462
+ ldr r3, [r4, #3180]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3316]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3320]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3172]
+ beq .L462
+ ldr r3, [r4, #3176]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3336]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3340]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #3180]
+ beq .L462
+ ldr r3, [r4, #3184]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #2328]
+ beq .L462
+ ldr r3, [r4, #2540]
cmp r3, #0
- beq .L457
+ beq .L462
ldr r3, [r4, #3348]
cmp r3, #0
- beq .L457
- ldr r3, [r4, #148]
+ beq .L462
+ ldr r3, [r4, #352]
cmp r3, #0
- beq .L457
- ldr r3, .L553
+ beq .L462
+ ldr r3, .L558
ldr r2, [r3, #3368]
cmp r2, #0
- beq .L457
+ beq .L462
ldr r2, [r3, #3372]
cmp r2, #0
- beq .L457
+ beq .L462
ldr r3, [r3, #3376]
cmp r3, #0
- beq .L457
+ beq .L462
movs r0, #0
pop {r4, r5, r6, r7, r8, pc}
-.L554:
+.L559:
.align 2
-.L553:
+.L558:
.word .LANCHOR0
.fnend
.size FtlMemInit, .-FtlMemInit
@@ -4131,30 +4215,30 @@ FtlBbt2Bitmap:
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r5, r0
- ldr r6, .L561
+ ldr r6, .L566
mov r7, r1
subs r4, r5, #2
movw r8, #65535
- ldr r9, .L561+4
+ ldr r9, .L566+4
addw r5, r5, #1022
ldrh r2, [r6, #3392]
movs r1, #0
- ldr r10, .L561+8
+ ldr r10, .L566+8
mov r0, r7
lsls r2, r2, #2
bl ftl_memset
-.L558:
+.L563:
ldrh r3, [r4, #2]
cmp r3, r8
- beq .L555
- ldrh r2, [r6, #98]
+ beq .L560
+ ldrh r2, [r6, #302]
cmp r2, r3
- bhi .L557
+ bhi .L562
movs r2, #74
mov r1, r9
mov r0, r10
bl sftl_printk
-.L557:
+.L562:
ldrh r3, [r4, #2]!
movs r2, #1
cmp r5, r4
@@ -4164,15 +4248,15 @@ FtlBbt2Bitmap:
ldr r2, [r7, r1, lsl #2]
orr r2, r2, r3
str r2, [r7, r1, lsl #2]
- bne .L558
-.L555:
+ bne .L563
+.L560:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L562:
+.L567:
.align 2
-.L561:
+.L566:
.word .LANCHOR0
.word .LANCHOR1+184
- .word .LC1
+ .word .LC8
.fnend
.size FtlBbt2Bitmap, .-FtlBbt2Bitmap
.align 1
@@ -4198,86 +4282,86 @@ ftl_free_no_use_map_blk:
mov r0, r5
bl ftl_memset
movs r3, #0
-.L564:
+.L569:
ldrh r1, [r4, #6]
uxth r2, r3
cmp r1, r2
- bhi .L568
- ldr r3, .L583
+ bhi .L573
+ ldr r3, .L588
movs r6, #0
mov r9, r6
mov fp, r6
- ldrh r2, [r3, #104]
+ ldrh r2, [r3, #308]
ldrh r3, [r4]
strh r2, [r5, r3, lsl #1] @ movhi
ldrh r10, [r5]
-.L569:
+.L574:
ldrh r3, [r4, #10]
uxth r1, r6
cmp r3, r1
- bhi .L573
+ bhi .L578
mov r0, r9
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L568:
+.L573:
uxth r2, r3
ldr r1, [r6, r2, lsl #2]
movs r2, #0
ubfx r1, r1, #10, #16
-.L565:
+.L570:
ldrh ip, [r4, #10]
uxth r0, r2
cmp ip, r0
- bhi .L567
+ bhi .L572
adds r3, r3, #1
- b .L564
-.L567:
+ b .L569
+.L572:
uxth r0, r2
ldrh ip, [r7, r0, lsl #1]
cmp ip, r1
- bne .L566
- cbz r1, .L566
+ bne .L571
+ cbz r1, .L571
ldrh ip, [r5, r0, lsl #1]
add ip, ip, #1
strh ip, [r5, r0, lsl #1] @ movhi
-.L566:
+.L571:
adds r2, r2, #1
- b .L565
-.L573:
+ b .L570
+.L578:
uxth r2, r6
ldrh r3, [r5, r2, lsl #1]
lsl r8, r2, #1
cmp r10, r3
- bls .L570
+ bls .L575
ldrh r0, [r7, r2, lsl #1]
add r8, r8, r7
- cbnz r0, .L571
-.L572:
+ cbnz r0, .L576
+.L577:
adds r6, r6, #1
- b .L569
-.L570:
+ b .L574
+.L575:
cmp r3, #0
- bne .L572
+ bne .L577
ldrh r0, [r7, r2, lsl #1]
add r8, r8, r7
cmp r0, #0
- beq .L572
-.L574:
+ beq .L577
+.L579:
movs r1, #1
bl FtlFreeSysBlkQueueIn
strh fp, [r8] @ movhi
ldrh r3, [r4, #8]
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
- b .L572
-.L571:
+ b .L577
+.L576:
mov r9, r1
mov r10, r3
cmp r3, #0
- beq .L574
- b .L572
-.L584:
+ beq .L579
+ b .L577
+.L589:
.align 2
-.L583:
+.L588:
.word .LANCHOR0
.fnend
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
@@ -4295,15 +4379,15 @@ FtlL2PDataInit:
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movs r1, #0
- ldr r4, .L588
+ ldr r4, .L593
movs r6, #12
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
ldr r0, [r4, #3364]
lsls r2, r2, #1
bl ftl_memset
- ldrh r3, [r4, #110]
+ ldrh r3, [r4, #314]
movs r1, #255
- ldrh r2, [r4, #138]
+ ldrh r2, [r4, #342]
ldr r0, [r4, #3388]
muls r2, r3, r2
bl ftl_memset
@@ -4311,13 +4395,13 @@ FtlL2PDataInit:
mov r3, r4
movw r1, #65535
mov r7, r2
-.L586:
- ldrh r4, [r3, #138]
+.L591:
+ ldrh r4, [r3, #342]
uxth r0, r2
adds r5, r2, #1
cmp r4, r0
- bhi .L587
- ldr r2, [r3, #128]
+ bhi .L592
+ ldr r2, [r3, #332]
strh r1, [r3, #3398] @ movhi
strh r1, [r3, #3396] @ movhi
strh r2, [r3, #3406] @ movhi
@@ -4325,7 +4409,7 @@ FtlL2PDataInit:
strh r2, [r3, #3400] @ movhi
ldrh r2, [r3, #3440]
strh r2, [r3, #3404] @ movhi
- ldrh r2, [r3, #136]
+ ldrh r2, [r3, #340]
strh r2, [r3, #3402] @ movhi
ldr r2, [r3, #3360]
str r2, [r3, #3408]
@@ -4336,26 +4420,26 @@ FtlL2PDataInit:
ldr r2, [r3, #3380]
str r2, [r3, #3420]
pop {r3, r4, r5, r6, r7, pc}
-.L587:
+.L592:
uxth r2, r2
- ldr r0, [r3, #2492]
+ ldr r0, [r3, #2544]
mul r4, r6, r2
add ip, r0, r4
str r7, [ip, #4]
strh r1, [r0, r4] @ movhi
- ldr r0, [r3, #2492]
+ ldr r0, [r3, #2544]
add r0, r0, r4
- ldrh r4, [r3, #110]
+ ldrh r4, [r3, #314]
muls r2, r4, r2
ldr r4, [r3, #3388]
bic r2, r2, #3
add r2, r2, r4
str r2, [r0, #8]
mov r2, r5
- b .L586
-.L589:
+ b .L591
+.L594:
.align 2
-.L588:
+.L593:
.word .LANCHOR0
.fnend
.size FtlL2PDataInit, .-FtlL2PDataInit
@@ -4373,42 +4457,42 @@ FtlVariablesInit:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r5, #0
- ldr r4, .L591
+ ldr r4, .L596
movw r3, #65535
mov r1, r5
- ldrh r2, [r4, #120]
+ ldrh r2, [r4, #324]
strh r3, [r4, #3442] @ movhi
mov r3, #-1
- ldr r0, [r4, #148]
+ ldr r0, [r4, #352]
str r3, [r4, #3452]
lsls r2, r2, #1
str r5, [r4, #3444]
str r5, [r4, #3448]
- strh r5, [r4, #144] @ movhi
+ strh r5, [r4, #348] @ movhi
bl ftl_memset
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, r5
- ldr r0, [r4, #2328]
+ ldr r0, [r4, #2540]
lsls r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
mov r1, r5
ldr r0, [r4, #3348]
lsls r2, r2, #1
bl ftl_memset
- addw r0, r4, #2268
+ addw r0, r4, #2472
movs r1, #48
bl __memzero
- add r0, r4, #2640
+ addw r0, r4, #2644
mov r1, #512
bl __memzero
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r5
pop {r3, r4, r5, pc}
-.L592:
+.L597:
.align 2
-.L591:
+.L596:
.word .LANCHOR0
.fnend
.size FtlVariablesInit, .-FtlVariablesInit
@@ -4426,36 +4510,36 @@ SupperBlkListInit:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r5, #0
- ldr r4, .L604
+ ldr r4, .L609
movs r2, #6
mov r9, r5
mov r6, r5
movw fp, #65535
.pad #20
sub sp, sp, #20
- ldrh r3, [r4, #42]
- add r10, r4, #60
+ ldrh r3, [r4, #246]
+ add r10, r4, #264
movs r1, #0
- ldr r0, [r4, #2316]
+ ldr r0, [r4, #2520]
muls r2, r3, r2
bl ftl_memset
- str r5, [r4, #2340]
- str r5, [r4, #2320]
- str r5, [r4, #2332]
- strh r5, [r4, #2336] @ movhi
- strh r5, [r4, #2344] @ movhi
-.L594:
- ldrh r3, [r4, #40]
+ str r5, [r4, #2536]
+ str r5, [r4, #2524]
+ str r5, [r4, #2528]
+ strh r5, [r4, #2532] @ movhi
+ strh r5, [r4, #228] @ movhi
+.L599:
+ ldrh r3, [r4, #244]
uxth r8, r5
cmp r8, r3
- bcs .L601
- ldrh r3, [r4, #102]
- ldrh r2, [r4, #32]
+ bcs .L606
+ ldrh r3, [r4, #306]
+ ldrh r2, [r4, #236]
str r3, [sp, #4]
movs r3, #0
mov r7, r3
- b .L602
-.L596:
+ b .L607
+.L601:
ldrb r0, [r10, r3] @ zero_extendqisi2
mov r1, r8
str r2, [sp, #12]
@@ -4464,79 +4548,79 @@ SupperBlkListInit:
bl FtlBbmIsBadBlock
ldr r3, [sp, #8]
ldr r2, [sp, #12]
- cbnz r0, .L595
+ cbnz r0, .L600
ldr r1, [sp, #4]
add r7, r7, r1
uxth r7, r7
-.L595:
+.L600:
adds r3, r3, #1
-.L602:
+.L607:
uxth r1, r3
cmp r2, r1
- bhi .L596
+ bhi .L601
uxth r3, r5
- cbz r7, .L597
+ cbz r7, .L602
mov r1, r7
str r3, [sp, #4]
mov r0, #32768
bl __aeabi_idiv
ldr r3, [sp, #4]
uxth r7, r0
-.L598:
- ldr r1, [r4, #2316]
+.L603:
+ ldr r1, [r4, #2520]
movs r2, #6
mla r2, r2, r3, r1
strh r7, [r2, #4] @ movhi
- ldrh r2, [r4, #2348]
+ ldrh r2, [r4, #28]
cmp r2, r8
- beq .L599
- ldrh r2, [r4, #2396]
+ beq .L604
+ ldrh r2, [r4, #80]
cmp r2, r8
- beq .L599
- ldrh r2, [r4, #2444]
+ beq .L604
+ ldrh r2, [r4, #128]
cmp r2, r8
- beq .L599
- ldr r2, [r4, #2324]
+ beq .L604
+ ldr r2, [r4, #76]
ldrh r3, [r2, r3, lsl #1]
- cbnz r3, .L600
+ cbnz r3, .L605
add r9, r9, #1
mov r0, r8
uxth r9, r9
bl INSERT_FREE_LIST
-.L599:
+.L604:
adds r5, r5, #1
- b .L594
-.L597:
- ldr r2, [r4, #2324]
+ b .L599
+.L602:
+ ldr r2, [r4, #76]
strh fp, [r2, r3, lsl #1] @ movhi
- b .L598
-.L600:
+ b .L603
+.L605:
adds r6, r6, #1
mov r0, r8
uxth r6, r6
bl INSERT_DATA_LIST
- b .L599
-.L601:
- strh r6, [r4, #2336] @ movhi
+ b .L604
+.L606:
+ strh r6, [r4, #2532] @ movhi
add r6, r6, r9
cmp r6, r3
- strh r9, [r4, #2344] @ movhi
- ble .L603
- movw r2, #2216
- ldr r1, .L604+4
- ldr r0, .L604+8
+ strh r9, [r4, #228] @ movhi
+ ble .L608
+ movw r2, #2210
+ ldr r1, .L609+4
+ ldr r0, .L609+8
bl sftl_printk
-.L603:
+.L608:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L605:
+.L610:
.align 2
-.L604:
+.L609:
.word .LANCHOR0
.word .LANCHOR1+198
- .word .LC1
+ .word .LC8
.fnend
.size SupperBlkListInit, .-SupperBlkListInit
.align 1
@@ -4553,25 +4637,25 @@ FtlGcPageVarInit:
push {r4, lr}
.save {r4, lr}
movs r3, #0
- ldr r4, .L607
+ ldr r4, .L612
movs r1, #255
- ldrh r2, [r4, #106]
- ldr r0, [r4, #3192]
- strh r3, [r4, #3196] @ movhi
- strh r3, [r4, #3204] @ movhi
+ ldrh r2, [r4, #310]
+ ldr r0, [r4, #3196]
+ strh r3, [r4, #3200] @ movhi
+ strh r3, [r4, #3208] @ movhi
lsls r2, r2, #1
bl ftl_memset
- ldrh r3, [r4, #106]
+ ldrh r3, [r4, #310]
movs r2, #12
- ldr r0, [r4, #3200]
+ ldr r0, [r4, #3204]
movs r1, #255
muls r2, r3, r2
bl ftl_memset
pop {r4, lr}
b FtlGcBufInit
-.L608:
+.L613:
.align 2
-.L607:
+.L612:
.word .LANCHOR0
.fnend
.size FtlGcPageVarInit, .-FtlGcPageVarInit
@@ -4604,52 +4688,52 @@ FlashReadPages:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r1
- ldr r5, .L638
+ ldr r5, .L655
mov r4, r0
mov r8, #0
.pad #20
sub sp, sp, #20
- ldr r10, .L638+4
- ldr fp, .L638+8
+ ldr r10, .L655+16
+ ldr fp, .L655+20
ldrh r3, [r5, #12]
str r3, [sp, #4]
-.L611:
+.L616:
cmp r8, r9
- bne .L622
+ bne .L630
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L622:
+.L630:
ldr r3, [r4, #8]
- cbz r3, .L612
+ cbz r3, .L617
ldr r3, [r4, #12]
- cbnz r3, .L613
-.L612:
+ cbnz r3, .L618
+.L617:
movs r2, #96
- mov r1, r10
- mov r0, fp
+ ldr r1, .L655+4
+ mov r0, r10
bl sftl_printk
-.L613:
+.L618:
add r2, sp, #8
add r1, sp, #12
mov r0, r4
bl l2p_addr_tran
ldr r0, [sp, #8]
cmp r0, #3
- bls .L614
+ bls .L619
mov r3, #-1
str r3, [r4]
-.L615:
+.L620:
add r8, r8, #1
adds r4, r4, #20
- b .L611
-.L614:
+ b .L616
+.L619:
ldr r6, [r4, #8]
uxtb r0, r0
ldr r3, [r4, #12]
ldr r1, [sp, #12]
- lsls r2, r6, #26
+ lsls r7, r6, #26
ldr r7, [r5, #3260]
it ne
ldrne r6, [r5, #3324]
@@ -4658,7 +4742,7 @@ FlashReadPages:
str r0, [r4]
ldrh r3, [r5, #14]
cmp r3, #4
- bne .L618
+ bne .L623
ldr r0, [sp, #4]
add r2, r6, #2048
ldr r3, [r4, #12]
@@ -4668,46 +4752,73 @@ FlashReadPages:
add r1, r1, r0
ldrb r0, [sp, #8] @ zero_extendqisi2
blx r7
- adds r3, r0, #1
- beq .L619
+ adds r1, r0, #1
+ beq .L624
ldr r3, [r4, #12]
ldr r2, [r3, #12]
adds r2, r2, #1
- bne .L620
+ bne .L625
ldr r2, [r3, #8]
adds r2, r2, #1
- bne .L620
+ bne .L625
ldr r3, [r3]
adds r3, r3, #1
- beq .L620
-.L619:
+ beq .L625
+.L624:
mov r3, #-1
str r3, [r4]
-.L620:
+.L625:
ldr r3, [r4]
adds r3, r3, #1
- beq .L618
+ beq .L626
cmp r0, #256
it eq
streq r0, [r4]
-.L618:
+.L626:
+ ldr r3, [r4]
+ adds r2, r3, #1
+ beq .L627
+ cmp r3, #256
+ bne .L623
+.L627:
+ ldr r1, [r4, #4]
+ mov r0, fp
+ ldr r2, [sp, #12]
+ bl sftl_printk
+ ldr r1, [r4, #8]
+ cbz r1, .L629
+ movs r3, #4
+ ldr r0, .L655+8
+ mov r2, r3
+ bl rknand_print_hex
+.L629:
+ ldr r1, [r4, #12]
+ cbz r1, .L623
+ movs r3, #4
+ ldr r0, .L655+12
+ mov r2, r3
+ bl rknand_print_hex
+.L623:
ldr r3, [r5, #3324]
cmp r6, r3
- bne .L615
+ bne .L620
ldr r0, [r4, #8]
cmp r6, r0
- beq .L615
- ldrh r2, [r5, #58]
+ beq .L620
+ ldrh r2, [r5, #262]
mov r1, r6
lsls r2, r2, #9
bl ftl_memcpy
- b .L615
-.L639:
+ b .L620
+.L656:
.align 2
-.L638:
+.L655:
.word .LANCHOR0
.word .LANCHOR1+216
- .word .LC1
+ .word .LC93
+ .word .LC94
+ .word .LC8
+ .word .LC92
.fnend
.size FlashReadPages, .-FlashReadPages
.align 1
@@ -4724,31 +4835,31 @@ FtlLoadFactoryBbt:
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r6, #0
- ldr r4, .L650
+ ldr r4, .L667
movw r10, #61664
ldr r3, [r4, #3304]
- add r7, r4, #162
+ add r7, r4, #366
ldr r8, [r4, #3336]
add r9, r4, #3456
str r3, [r4, #3464]
str r8, [r4, #3468]
-.L641:
- ldrh r3, [r4, #54]
+.L658:
+ ldrh r3, [r4, #258]
cmp r6, r3
- bcc .L646
+ bcc .L663
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L646:
- ldrh r5, [r4, #98]
+.L663:
+ ldrh r5, [r4, #302]
movw r3, #65535
strh r3, [r7, #2]! @ movhi
-.L643:
- ldrh r3, [r4, #98]
+.L660:
+ ldrh r3, [r4, #302]
subs r5, r5, #1
uxth r5, r5
sub r2, r3, #16
cmp r5, r2
- ble .L644
+ ble .L661
mla r3, r6, r3, r5
movs r2, #1
mov r1, r2
@@ -4758,17 +4869,17 @@ FtlLoadFactoryBbt:
bl FlashReadPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L643
+ beq .L660
ldrh r3, [r8]
cmp r3, r10
- bne .L643
+ bne .L660
strh r5, [r7] @ movhi
-.L644:
+.L661:
adds r6, r6, #1
- b .L641
-.L651:
+ b .L658
+.L668:
.align 2
-.L650:
+.L667:
.word .LANCHOR0
.fnend
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
@@ -4783,7 +4894,7 @@ FtlGetLastWrittenPage:
.fnstart
@ args = 0, pretend = 0, frame = 88
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L663
+ ldr r3, .L680
cmp r1, #1
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
@@ -4793,10 +4904,10 @@ FtlGetLastWrittenPage:
mov r2, r1
mov r7, r1
it eq
- ldrheq r5, [r3, #104]
+ ldrheq r5, [r3, #308]
mov r1, #1
it ne
- ldrhne r5, [r3, #102]
+ ldrhne r5, [r3, #306]
add r0, sp, #4
ldr r3, [r3, #3328]
subs r5, r5, #1
@@ -4809,17 +4920,17 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #24]
adds r3, r3, #1
- bne .L655
+ bne .L672
mov r8, #0
-.L656:
+.L673:
cmp r8, r5
- ble .L659
-.L655:
+ ble .L676
+.L672:
mov r0, r5
add sp, sp, #88
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L659:
+.L676:
add r3, r8, r5
mov r2, r7
add r3, r3, r3, lsr #31
@@ -4832,23 +4943,23 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #24]
adds r3, r3, #1
- bne .L657
+ bne .L674
ldr r3, [sp, #28]
adds r3, r3, #1
- bne .L657
+ bne .L674
ldr r3, [sp, #4]
adds r3, r3, #1
- beq .L657
+ beq .L674
subs r4, r4, #1
sxth r5, r4
- b .L656
-.L657:
+ b .L673
+.L674:
adds r4, r4, #1
sxth r8, r4
- b .L656
-.L664:
+ b .L673
+.L681:
.align 2
-.L663:
+.L680:
.word .LANCHOR0
.fnend
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
@@ -4866,53 +4977,53 @@ FtlScanSysBlk:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r5, #0
- ldr r4, .L747
+ ldr r4, .L764
mov r1, r5
.pad #20
sub sp, sp, #20
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
ldr r0, [r4, #3384]
strh r5, [r4, #3440] @ movhi
- strh r5, [r4, #144] @ movhi
+ strh r5, [r4, #348] @ movhi
lsls r2, r2, #2
bl ftl_memset
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
mov r1, r5
ldr r0, [r4, #3360]
lsls r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #120]
+ ldrh r2, [r4, #324]
mov r1, r5
ldr r0, [r4, #3372]
lsls r2, r2, #2
bl ftl_memset
- ldrh r2, [r4, #120]
+ ldrh r2, [r4, #324]
mov r1, r5
- ldr r0, [r4, #148]
+ ldr r0, [r4, #352]
lsls r2, r2, #1
bl ftl_memset
movs r2, #16
movs r1, #255
- add r0, r4, #2576
+ addw r0, r4, #2628
bl memset
- ldrh r8, [r4, #40]
-.L666:
- ldrh r3, [r4, #42]
+ ldrh r8, [r4, #244]
+.L683:
+ ldrh r3, [r4, #246]
cmp r3, r8
- bls .L708
+ bls .L725
movs r5, #0
- ldrh fp, [r4, #32]
+ ldrh fp, [r4, #236]
ldr r9, [r4, #3292]
mov r7, r5
- ldr r3, [r4, #3176]
+ ldr r3, [r4, #3180]
mov r10, #20
- ldr r2, [r4, #3180]
- ldrh r6, [r4, #112]
- b .L709
-.L669:
+ ldr r2, [r4, #3184]
+ ldrh r6, [r4, #316]
+ b .L726
+.L686:
str r3, [sp, #8]
mov r1, r8
- ldr r3, .L747+4
+ ldr r3, .L764+4
str r2, [sp, #12]
ldrb r0, [r3, r5] @ zero_extendqisi2
bl V2P_block
@@ -4920,7 +5031,7 @@ FtlScanSysBlk:
bl FtlBbmIsBadBlock
ldr r3, [sp, #8]
ldr r2, [sp, #12]
- cbnz r0, .L667
+ cbnz r0, .L684
ldr r1, [sp, #4]
mla r0, r10, r7, r9
lsls r1, r1, #10
@@ -4935,27 +5046,27 @@ FtlScanSysBlk:
bic r1, r1, #3
add r1, r1, r2
str r1, [r0, #12]
-.L667:
+.L684:
adds r5, r5, #1
-.L709:
+.L726:
uxth r1, r5
cmp fp, r1
- bhi .L669
- cbnz r7, .L670
-.L707:
+ bhi .L686
+ cbnz r7, .L687
+.L724:
add r8, r8, #1
uxth r8, r8
- b .L666
-.L670:
+ b .L683
+.L687:
mov r0, r9
mov r9, #0
movs r2, #1
mov r1, r7
bl FlashReadPages
-.L671:
+.L688:
uxth r3, r9
cmp r7, r3
- bls .L707
+ bls .L724
movs r3, #20
mul r10, r3, r9
ldr r3, [r4, #3292]
@@ -4965,10 +5076,10 @@ FtlScanSysBlk:
ldr r6, [r2, #12]
adds r3, r3, #1
ubfx r5, r5, #10, #16
- bne .L674
+ bne .L691
mov fp, #16
movw r3, #65535
-.L676:
+.L693:
ldr r0, [r4, #3292]
str r3, [sp, #4]
add r0, r0, r10
@@ -4981,74 +5092,74 @@ FtlScanSysBlk:
ldrh r2, [r6]
ldr r3, [sp, #4]
cmp r2, r3
- bne .L673
+ bne .L690
ldr r3, [r4, #3292]
mov r2, #-1
str r2, [r3, r10]
ldr r3, [r4, #3292]
ldr r3, [r3, r10]
cmp r3, r2
- bne .L674
-.L675:
+ bne .L691
+.L692:
movs r1, #1
- b .L746
-.L673:
+ b .L763
+.L690:
ldr r2, [r4, #3292]
ldr r2, [r2, r10]
adds r2, r2, #1
- bne .L674
+ bne .L691
add fp, fp, #-1
uxth fp, fp
cmp fp, #0
- bne .L676
- b .L675
-.L674:
- ldr r2, [r4, #2540]
+ bne .L693
+ b .L692
+.L691:
+ ldr r2, [r4, #2592]
ldr r3, [r6, #4]
adds r1, r2, #1
- beq .L677
+ beq .L694
cmp r2, r3
- bhi .L678
-.L677:
+ bhi .L695
+.L694:
adds r2, r3, #1
itt ne
addne r2, r3, #1
- strne r2, [r4, #2540]
-.L678:
+ strne r2, [r4, #2592]
+.L695:
ldrh r2, [r6]
movw r1, #61604
cmp r2, r1
- beq .L680
- bhi .L681
+ beq .L697
+ bhi .L698
movw r3, #61574
cmp r2, r3
- beq .L682
-.L679:
+ beq .L699
+.L696:
add r9, r9, #1
- b .L671
-.L681:
+ b .L688
+.L698:
movw r3, #61634
cmp r2, r3
- beq .L683
+ beq .L700
movw r3, #65535
cmp r2, r3
- bne .L679
+ bne .L696
movs r1, #0
-.L746:
+.L763:
mov r0, r5
bl FtlFreeSysBlkQueueIn
- b .L679
-.L683:
+ b .L696
+.L700:
ldrh r2, [r4, #3440]
- ldr r3, [r4, #128]
+ ldr r3, [r4, #332]
cmp r2, r3
- bls .L685
+ bls .L702
movw r2, #1225
- ldr r1, .L747+8
- ldr r0, .L747+12
+ ldr r1, .L764+8
+ ldr r0, .L764+12
bl sftl_printk
-.L685:
- ldr r1, [r4, #128]
+.L702:
+ ldr r1, [r4, #332]
ldrh r0, [r4, #3440]
ldr r10, [r4, #3384]
uxth ip, r1
@@ -5057,58 +5168,58 @@ FtlScanSysBlk:
add ip, ip, #-1
sxth r3, r3
sxth ip, ip
-.L686:
+.L703:
cmp r3, ip
- bgt .L692
+ bgt .L709
cmp r3, #0
- bge .L724
- b .L679
-.L692:
+ bge .L741
+ b .L696
+.L709:
ldr r2, [r6, #4]
lsl fp, r3, #2
mov lr, r2
ldr r2, [r10, r3, lsl #2]
cmp lr, r2
- bls .L687
+ bls .L704
ldr r2, [r10]
- cbnz r2, .L688
+ cbnz r2, .L705
cmp r1, r0
itt ne
addne r0, r0, #1
strhne r0, [r4, #3440] @ movhi
-.L688:
+.L705:
uxth ip, r3
movs r2, #0
-.L689:
+.L706:
uxth r0, r2
sxth r1, r2
cmp ip, r0
- bhi .L690
+ bhi .L707
ldr r2, [r4, #3384]
cmp r3, #0
ldr r1, [r6, #4]
str r1, [r2, fp]
ldr r2, [r4, #3360]
strh r5, [r2, r3, lsl #1] @ movhi
- blt .L679
+ blt .L696
ldrh r0, [r4, #3440]
- ldr r2, [r4, #128]
+ ldr r2, [r4, #332]
subs r2, r2, r0
subs r2, r2, #1
sxth r2, r2
cmp r3, r2
- bgt .L679
-.L724:
+ bgt .L696
+.L741:
ldr r2, [r4, #3384]
adds r0, r0, #1
ldr r1, [r6, #4]
strh r0, [r4, #3440] @ movhi
str r1, [r2, r3, lsl #2]
ldr r2, [r4, #3360]
-.L744:
+.L761:
strh r5, [r2, r3, lsl #1] @ movhi
- b .L679
-.L690:
+ b .L696
+.L707:
ldr r0, [r4, #3384]
adds r2, r2, #1
add lr, r0, r1, lsl #2
@@ -5118,163 +5229,163 @@ FtlScanSysBlk:
add lr, r0, r1, lsl #1
ldrh lr, [lr, #2]
strh lr, [r0, r1, lsl #1] @ movhi
- b .L689
-.L687:
+ b .L706
+.L704:
subs r3, r3, #1
sxth r3, r3
- b .L686
-.L748:
+ b .L703
+.L765:
.align 2
-.L747:
+.L764:
.word .LANCHOR0
- .word .LANCHOR0+60
+ .word .LANCHOR0+264
.word .LANCHOR1+231
- .word .LC1
-.L682:
- ldrh r2, [r4, #144]
- ldrh r3, [r4, #120]
+ .word .LC8
+.L699:
+ ldrh r2, [r4, #348]
+ ldrh r3, [r4, #324]
cmp r2, r3
- bls .L695
+ bls .L712
movw r2, #1266
- ldr r1, .L749
- ldr r0, .L749+4
+ ldr r1, .L766
+ ldr r0, .L766+4
bl sftl_printk
-.L695:
- ldrh lr, [r4, #120]
- ldrh r0, [r4, #144]
+.L712:
+ ldrh lr, [r4, #324]
+ ldrh r0, [r4, #348]
ldr r10, [r4, #3372]
add ip, lr, #-1
sxth r3, ip
sub ip, ip, r0
-.L696:
+.L713:
cmp r3, ip
- ble .L701
+ ble .L718
ldr r2, [r6, #4]
lsl fp, r3, #2
ldr r1, [r10, r3, lsl #2]
cmp r2, r1
- bls .L697
+ bls .L714
ldr r2, [r10]
- cbnz r2, .L698
+ cbnz r2, .L715
cmp lr, r0
itt ne
addne r0, r0, #1
- strhne r0, [r4, #144] @ movhi
-.L698:
+ strhne r0, [r4, #348] @ movhi
+.L715:
uxth ip, r3
movs r2, #0
-.L699:
+.L716:
uxth r0, r2
sxth r1, r2
cmp ip, r0
- bhi .L700
+ bhi .L717
ldr r2, [r4, #3372]
ldr r1, [r6, #4]
str r1, [r2, fp]
- ldr r2, [r4, #148]
+ ldr r2, [r4, #352]
strh r5, [r2, r3, lsl #1] @ movhi
-.L701:
+.L718:
cmp r3, #0
- blt .L679
- ldrh r2, [r4, #120]
- ldrh r1, [r4, #144]
+ blt .L696
+ ldrh r2, [r4, #324]
+ ldrh r1, [r4, #348]
subs r2, r2, #1
subs r2, r2, r1
sxth r2, r2
cmp r3, r2
- bgt .L679
+ bgt .L696
adds r1, r1, #1
ldr r2, [r4, #3372]
- strh r1, [r4, #144] @ movhi
+ strh r1, [r4, #348] @ movhi
ldr r1, [r6, #4]
str r1, [r2, r3, lsl #2]
- ldr r2, [r4, #148]
- b .L744
-.L700:
+ ldr r2, [r4, #352]
+ b .L761
+.L717:
ldr r0, [r4, #3372]
adds r2, r2, #1
add lr, r0, r1, lsl #2
ldr lr, [lr, #4]
str lr, [r0, r1, lsl #2]
- ldr r0, [r4, #148]
+ ldr r0, [r4, #352]
add lr, r0, r1, lsl #1
ldrh lr, [lr, #2]
strh lr, [r0, r1, lsl #1] @ movhi
- b .L699
-.L697:
+ b .L716
+.L714:
subs r3, r3, #1
sxth r3, r3
- b .L696
-.L680:
- ldrh r1, [r4, #2576]
+ b .L713
+.L697:
+ ldrh r1, [r4, #2628]
movw r2, #65535
cmp r1, r2
- bne .L703
- strh r5, [r4, #2576] @ movhi
-.L745:
- str r3, [r4, #2584]
- b .L679
-.L703:
- ldrh r0, [r4, #2580]
+ bne .L720
+ strh r5, [r4, #2628] @ movhi
+.L762:
+ str r3, [r4, #2636]
+ b .L696
+.L720:
+ ldrh r0, [r4, #2632]
cmp r0, r2
- beq .L704
+ beq .L721
movs r1, #1
bl FtlFreeSysBlkQueueIn
-.L704:
- ldr r2, [r4, #2584]
+.L721:
+ ldr r2, [r4, #2636]
ldr r3, [r6, #4]
cmp r2, r3
- bcs .L705
- ldrh r3, [r4, #2576]
- strh r5, [r4, #2576] @ movhi
- strh r3, [r4, #2580] @ movhi
+ bcs .L722
+ ldrh r3, [r4, #2628]
+ strh r5, [r4, #2628] @ movhi
+ strh r3, [r4, #2632] @ movhi
ldr r3, [r6, #4]
- b .L745
-.L705:
- strh r5, [r4, #2580] @ movhi
- b .L679
-.L708:
+ b .L762
+.L722:
+ strh r5, [r4, #2632] @ movhi
+ b .L696
+.L725:
ldr r1, [r4, #3360]
ldrh r3, [r1]
- cbz r3, .L710
-.L713:
- ldr r1, [r4, #148]
+ cbz r3, .L727
+.L730:
+ ldr r1, [r4, #352]
ldrh r2, [r1]
cmp r2, #0
- beq .L711
-.L712:
+ beq .L728
+.L729:
ldrh r2, [r4, #3440]
- ldr r3, [r4, #128]
+ ldr r3, [r4, #332]
cmp r2, r3
- bls .L743
+ bls .L760
movw r2, #1391
- ldr r1, .L749
- ldr r0, .L749+4
+ ldr r1, .L766
+ ldr r0, .L766+4
bl sftl_printk
-.L743:
+.L760:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L710:
+.L727:
ldrh r2, [r4, #3440]
cmp r2, #0
- beq .L713
- ldr r0, [r4, #128]
-.L714:
+ beq .L730
+ ldr r0, [r4, #332]
+.L731:
sxth r2, r3
cmp r2, r0
- bcs .L713
+ bcs .L730
ldrh r5, [r1, r2, lsl #1]
adds r3, r3, #1
cmp r5, #0
- beq .L714
+ beq .L731
mov r3, r2
movs r5, #0
-.L715:
- ldr r1, [r4, #128]
+.L732:
+ ldr r1, [r4, #332]
cmp r3, r1
- bcs .L713
+ bcs .L730
ldr r1, [r4, #3360]
subs r0, r3, r2
ldrh r6, [r1, r3, lsl #1]
@@ -5286,43 +5397,43 @@ FtlScanSysBlk:
strh r5, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
sxth r3, r3
- b .L715
-.L711:
- ldrh r3, [r4, #144]
+ b .L732
+.L728:
+ ldrh r3, [r4, #348]
cmp r3, #0
- beq .L712
- ldrh r0, [r4, #120]
-.L720:
+ beq .L729
+ ldrh r0, [r4, #324]
+.L737:
sxth r3, r2
cmp r3, r0
mov r5, r3
- bge .L712
+ bge .L729
ldrh r6, [r1, r3, lsl #1]
adds r2, r2, #1
cmp r6, #0
- beq .L720
+ beq .L737
movs r0, #0
-.L721:
- ldrh r2, [r4, #120]
+.L738:
+ ldrh r2, [r4, #324]
cmp r3, r2
- bge .L712
- ldr r2, [r4, #148]
+ bge .L729
+ ldr r2, [r4, #352]
subs r1, r3, r5
ldrh r6, [r2, r3, lsl #1]
strh r6, [r2, r1, lsl #1] @ movhi
ldr r2, [r4, #3372]
ldr r6, [r2, r3, lsl #2]
str r6, [r2, r1, lsl #2]
- ldr r2, [r4, #148]
+ ldr r2, [r4, #352]
strh r0, [r2, r3, lsl #1] @ movhi
adds r3, r3, #1
sxth r3, r3
- b .L721
-.L750:
+ b .L738
+.L767:
.align 2
-.L749:
+.L766:
.word .LANCHOR1+231
- .word .LC1
+ .word .LC8
.fnend
.size FtlScanSysBlk, .-FtlScanSysBlk
.align 1
@@ -5339,21 +5450,21 @@ FtlLoadBbt:
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movw r8, #61649
- ldr r4, .L780
+ ldr r4, .L797
ldr r3, [r4, #3304]
add r7, r4, #3456
ldr r6, [r4, #3336]
str r3, [r4, #3464]
str r6, [r4, #3468]
bl FtlBbtMemInit
- ldrh r5, [r4, #98]
+ ldrh r5, [r4, #302]
subs r5, r5, #1
uxth r5, r5
-.L752:
- ldrh r3, [r4, #98]
+.L769:
+ ldrh r3, [r4, #302]
subs r3, r3, #16
cmp r5, r3
- ble .L755
+ ble .L772
lsls r3, r5, #10
movs r2, #1
mov r1, r2
@@ -5362,7 +5473,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- bne .L753
+ bne .L770
ldr r3, [r4, #3460]
movs r2, #1
mov r1, r2
@@ -5370,96 +5481,96 @@ FtlLoadBbt:
adds r3, r3, #1
str r3, [r4, #3460]
bl FlashReadPages
-.L753:
+.L770:
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L754
+ beq .L771
ldrh r3, [r6]
cmp r3, r8
- bne .L754
+ bne .L771
ldr r3, [r6, #4]
- strh r5, [r4, #152] @ movhi
- str r3, [r4, #160]
+ strh r5, [r4, #356] @ movhi
+ str r3, [r4, #364]
ldrh r3, [r6, #8]
- strh r3, [r4, #156] @ movhi
-.L755:
- ldrh r3, [r4, #152]
+ strh r3, [r4, #360] @ movhi
+.L772:
+ ldrh r3, [r4, #356]
movw r2, #65535
cmp r3, r2
- beq .L769
- ldrh r3, [r4, #156]
+ beq .L786
+ ldrh r3, [r4, #360]
cmp r3, r2
- beq .L759
+ beq .L776
lsls r3, r3, #10
movs r2, #1
mov r1, r2
- ldr r0, .L780+4
+ ldr r0, .L797+4
str r3, [r4, #3460]
bl FlashReadPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L759
+ beq .L776
ldrh r2, [r6]
movw r3, #61649
cmp r2, r3
- bne .L759
+ bne .L776
ldr r3, [r6, #4]
- ldr r2, [r4, #160]
+ ldr r2, [r4, #364]
cmp r3, r2
- bls .L759
- ldrh r2, [r4, #156]
- str r3, [r4, #160]
+ bls .L776
+ ldrh r2, [r4, #360]
+ str r3, [r4, #364]
ldrh r3, [r6, #8]
- strh r2, [r4, #152] @ movhi
- strh r3, [r4, #156] @ movhi
-.L759:
- ldr r7, .L780+4
+ strh r2, [r4, #356] @ movhi
+ strh r3, [r4, #360] @ movhi
+.L776:
+ ldr r7, .L797+4
movs r1, #1
- ldrh r0, [r4, #152]
+ ldrh r0, [r4, #356]
movw r8, #61649
bl FtlGetLastWrittenPage
sxth r5, r0
adds r0, r0, #1
- strh r0, [r4, #154] @ movhi
-.L761:
+ strh r0, [r4, #358] @ movhi
+.L778:
cmp r5, #0
- bge .L764
- movs r2, #253
- ldr r1, .L780+8
- ldr r0, .L780+12
+ bge .L781
+ movs r2, #251
+ ldr r1, .L797+8
+ ldr r0, .L797+12
bl sftl_printk
-.L763:
+.L780:
ldrh r3, [r6, #10]
ldrh r0, [r6, #12]
- strh r3, [r4, #158] @ movhi
+ strh r3, [r4, #362] @ movhi
movw r3, #65535
cmp r0, r3
- beq .L766
- ldr r2, [r4, #28]
+ beq .L783
+ ldr r2, [r4, #232]
cmp r0, r2
- beq .L766
- ldrh r3, [r4, #42]
+ beq .L783
+ ldrh r3, [r4, #246]
lsrs r3, r3, #2
cmp r2, r3
- bcs .L766
+ bcs .L783
cmp r0, r3
- bcs .L766
+ bcs .L783
bl FtlSysBlkNumInit
-.L766:
- ldr r6, .L780+16
+.L783:
+ ldr r6, .L797+16
movs r5, #0
-.L767:
- ldrh r3, [r4, #54]
+.L784:
+ ldrh r3, [r4, #258]
cmp r5, r3
- bcc .L768
+ bcc .L785
movs r0, #0
pop {r4, r5, r6, r7, r8, pc}
-.L754:
+.L771:
subs r5, r5, #1
uxth r5, r5
- b .L752
-.L764:
- ldrh r3, [r4, #152]
+ b .L769
+.L781:
+ ldrh r3, [r4, #356]
movs r2, #1
mov r1, r2
mov r0, r7
@@ -5470,15 +5581,15 @@ FtlLoadBbt:
bl FlashReadPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L762
+ beq .L779
ldrh r3, [r6]
cmp r3, r8
- beq .L763
-.L762:
+ beq .L780
+.L779:
subs r5, r5, #1
sxth r5, r5
- b .L761
-.L768:
+ b .L778
+.L785:
ldrh r2, [r4, #3392]
ldr r1, [r4, #3464]
ldr r0, [r6, #4]!
@@ -5486,18 +5597,18 @@ FtlLoadBbt:
mla r1, r5, r2, r1
adds r5, r5, #1
bl ftl_memcpy
- b .L767
-.L769:
+ b .L784
+.L786:
mov r0, #-1
pop {r4, r5, r6, r7, r8, pc}
-.L781:
+.L798:
.align 2
-.L780:
+.L797:
.word .LANCHOR0
.word .LANCHOR0+3456
.word .LANCHOR1+245
- .word .LC1
- .word .LANCHOR0+176
+ .word .LC8
+ .word .LANCHOR0+380
.fnend
.size FtlLoadBbt, .-FtlLoadBbt
.align 1
@@ -5515,7 +5626,7 @@ FlashProgPages:
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #52
sub sp, sp, #52
- ldr r6, .L820
+ ldr r6, .L838
mov fp, r1
mov r4, r0
mov r5, r0
@@ -5527,50 +5638,50 @@ FlashProgPages:
str r3, [sp]
lsls r3, r3, #3
str r3, [sp, #4]
-.L783:
+.L800:
cmp r10, fp
- bne .L797
+ bne .L814
ldr r3, [sp, #12]
cmp r3, #0
- beq .L791
+ beq .L808
movs r5, #0
- ldr r7, .L820+4
- ldr r8, .L820+24
- ldr r9, .L820+28
- b .L798
-.L797:
+ ldr r7, .L838+4
+ ldr r8, .L838+28
+ ldr r9, .L838+32
+ b .L815
+.L814:
ldr r3, [r5, #8]
- cbz r3, .L784
+ cbz r3, .L801
ldr r3, [r5, #12]
- cbnz r3, .L785
-.L784:
- movs r2, #140
- ldr r1, .L820+8
- ldr r0, .L820+12
+ cbnz r3, .L802
+.L801:
+ movs r2, #148
+ ldr r1, .L838+8
+ ldr r0, .L838+12
bl sftl_printk
-.L785:
+.L802:
add r2, sp, #20
add r1, sp, #24
mov r0, r5
bl l2p_addr_tran
ldr r7, [sp, #20]
cmp r7, #3
- bls .L786
-.L819:
+ bls .L803
+.L837:
mov r3, #-1
str r3, [r5]
- b .L787
-.L786:
- cbnz r7, .L788
+ b .L804
+.L803:
+ cbnz r7, .L805
ldr r3, [sp, #24]
ldr r2, [sp, #4]
cmp r2, r3
- bls .L788
- ldr r5, .L820+8
- ldr r6, .L820+16
- ldr r8, .L820+32
- b .L818
-.L790:
+ bls .L805
+ ldr r5, .L838+8
+ ldr r6, .L838+16
+ ldr r8, .L838+36
+ b .L836
+.L807:
mov r3, #-1
ldr r2, [r4, #-16]
str r3, [r4, #-20]
@@ -5586,42 +5697,42 @@ FlashProgPages:
movs r3, #4
ldr r1, [r4, #-8]
mov r2, r3
- ldr r0, .L820+20
+ ldr r0, .L838+20
bl rknand_print_hex
-.L818:
+.L836:
cmp r7, fp
add r4, r4, #20
- bne .L790
+ bne .L807
bl dump_stack
-.L791:
+.L808:
movs r0, #0
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L788:
+.L805:
ldr r1, [r5, #8]
lsls r3, r1, #26
- beq .L804
+ beq .L822
ldr r9, [r8, #3324]
cmp r1, r9
- beq .L792
- ldrh r2, [r8, #58]
+ beq .L809
+ ldrh r2, [r8, #262]
mov r0, r9
lsls r2, r2, #9
bl ftl_memcpy
-.L792:
+.L809:
ldr r3, [r5, #12]
mov r2, r9
ldr r1, [sp, #24]
ldrb r0, [sp, #20] @ zero_extendqisi2
ldr r7, [r8, #3256]
blx r7
- cbnz r0, .L793
+ cbnz r0, .L810
str r0, [r5]
-.L794:
+.L811:
ldrh r3, [r8, #14]
cmp r3, #4
- bne .L787
+ bne .L804
ldr r0, [sp]
add r2, r9, #2048
ldr r3, [r5, #12]
@@ -5632,19 +5743,19 @@ FlashProgPages:
ldrb r0, [sp, #20] @ zero_extendqisi2
blx r7
cmp r0, #0
- bne .L819
-.L787:
+ bne .L837
+.L804:
add r10, r10, #1
adds r5, r5, #20
- b .L783
-.L804:
+ b .L800
+.L822:
mov r9, r1
- b .L792
-.L793:
+ b .L809
+.L810:
mov r3, #-1
str r3, [r5]
- b .L794
-.L802:
+ b .L811
+.L820:
ldr r2, [r6, #3324]
movs r3, #0
movs r1, #1
@@ -5662,56 +5773,65 @@ FlashProgPages:
bl FlashReadPages
ldr fp, [sp, #28]
cmp fp, #-1
- bne .L799
+ bne .L816
ldr r1, [r4, #4]
mov r0, r7
bl sftl_printk
str fp, [r4]
-.L799:
+.L816:
+ ldr fp, [sp, #28]
+ cmp fp, #256
+ bne .L817
+ ldr r1, [r4, #4]
+ mov r0, r8
+ bl sftl_printk
+ str fp, [r4]
+.L817:
ldr r3, [r4, #12]
- cbz r3, .L800
+ cbz r3, .L818
ldr r2, [r3]
ldr r3, [r6, #3332]
ldr r3, [r3]
cmp r2, r3
- beq .L800
+ beq .L818
ldr r1, [r4, #4]
- mov r0, r8
+ mov r0, r9
bl sftl_printk
mov r3, #-1
str r3, [r4]
-.L800:
+.L818:
ldr r3, [r4, #8]
- cbz r3, .L801
+ cbz r3, .L819
ldr r2, [r3]
ldr r3, [r6, #3324]
ldr r3, [r3]
cmp r2, r3
- beq .L801
+ beq .L819
ldr r1, [r4, #4]
- mov r0, r9
+ ldr r0, .L838+24
bl sftl_printk
mov r3, #-1
str r3, [r4]
-.L801:
+.L819:
adds r5, r5, #1
adds r4, r4, #20
-.L798:
+.L815:
cmp r10, r5
- bne .L802
- b .L791
-.L821:
+ bne .L820
+ b .L808
+.L839:
.align 2
-.L820:
+.L838:
.word .LANCHOR0
- .word .LC86
+ .word .LC95
.word .LANCHOR1+256
- .word .LC1
- .word .LC80
- .word .LC82
- .word .LC87
+ .word .LC8
+ .word .LC86
.word .LC88
- .word .LC81
+ .word .LC98
+ .word .LC96
+ .word .LC97
+ .word .LC87
.fnend
.size FlashProgPages, .-FlashProgPages
.align 1
@@ -5728,7 +5848,7 @@ FtlLowFormatEraseBlock:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, #0
- ldr r4, .L867
+ ldr r4, .L885
mov r7, r1
mov r6, r10
mov r5, r10
@@ -5738,76 +5858,76 @@ FtlLowFormatEraseBlock:
mov fp, r4
str r0, [sp, #4]
str r0, [r4, #3288]
-.L823:
- ldrh r1, [r4, #32]
+.L841:
+ ldrh r1, [r4, #236]
uxth r3, r10
cmp r1, r3
- bhi .L828
+ bhi .L846
cmp r6, #0
- beq .L822
+ beq .L840
mov r8, #0
mov r9, #20
mov r2, r6
movs r1, #0
ldr r0, [r4, #3272]
bl FlashEraseBlocks
-.L831:
+.L849:
uxth r3, r8
cmp r6, r3
- bhi .L833
+ bhi .L851
cmp r7, #0
- beq .L850
- ldrh r3, [r4, #104]
+ beq .L868
+ ldrh r3, [r4, #308]
mov r10, #1
str r3, [sp, #8]
-.L834:
+.L852:
mov r8, #0
mov fp, #20
-.L844:
+.L862:
mov r9, #0
mov r6, r9
-.L835:
- ldrh r1, [r4, #32]
+.L853:
+ ldrh r1, [r4, #236]
uxth r3, r9
cmp r1, r3
- bhi .L839
- cbz r6, .L822
+ bhi .L857
+ cbz r6, .L840
mov r9, #0
movs r3, #1
mov r2, r10
mov r1, r6
ldr r0, [r4, #3272]
bl FlashProgPages
-.L841:
+.L859:
uxth r3, r9
cmp r6, r3
- bhi .L843
+ bhi .L861
add r8, r8, #1
ldr r2, [sp, #8]
uxth r3, r8
cmp r2, r3
- bhi .L844
+ bhi .L862
mov r8, #0
mov r9, #20
-.L845:
+.L863:
uxth r3, r8
cmp r6, r3
- bhi .L847
+ bhi .L865
ldr r3, [sp, #4]
cmp r3, #63
- bls .L848
- cbz r7, .L822
-.L848:
+ bls .L866
+ cbz r7, .L840
+.L866:
mov r2, r6
mov r1, r10
ldr r0, [r4, #3272]
bl FlashEraseBlocks
-.L822:
+.L840:
mov r0, r5
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L828:
+.L846:
uxth r3, r10
ldr r0, [r4, #3272]
movs r2, #0
@@ -5815,16 +5935,16 @@ FtlLowFormatEraseBlock:
add r3, r3, r4
str r2, [r0, r1]
ldr r1, [sp, #4]
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
mov r8, r0
- cbz r7, .L824
+ cbz r7, .L842
bl IsBlkInVendorPart
- cbnz r0, .L825
-.L824:
+ cbnz r0, .L843
+.L842:
mov r0, r8
bl FtlBbmIsBadBlock
- cbnz r0, .L826
+ cbnz r0, .L844
ldr r1, [r4, #3272]
lsl r3, r8, #10
ldr r0, [fp, #3340]
@@ -5832,7 +5952,7 @@ FtlLowFormatEraseBlock:
str r3, [r1, #4]
ldr r3, [r4, #3320]
str r3, [r1, #8]
- ldrh r3, [r4, #112]
+ ldrh r3, [r4, #316]
muls r3, r6, r3
add r6, r6, #1
it mi
@@ -5841,34 +5961,34 @@ FtlLowFormatEraseBlock:
bic r3, r3, #3
add r3, r3, r0
str r3, [r1, #12]
-.L825:
+.L843:
add r10, r10, #1
- b .L823
-.L826:
+ b .L841
+.L844:
adds r5, r5, #1
uxth r5, r5
- b .L825
-.L833:
+ b .L843
+.L851:
mul r3, r9, r8
ldr r2, [r4, #3272]
adds r1, r2, r3
ldr r3, [r2, r3]
adds r3, r3, #1
- bne .L832
+ bne .L850
ldr r0, [r1, #4]
adds r5, r5, #1
uxth r5, r5
ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
-.L832:
- add r8, r8, #1
- b .L831
.L850:
+ add r8, r8, #1
+ b .L849
+.L868:
movs r3, #2
mov r10, r7
str r3, [sp, #8]
- b .L834
-.L839:
+ b .L852
+.L857:
uxth r3, r9
ldr r0, [r4, #3272]
movs r2, #0
@@ -5876,26 +5996,26 @@ FtlLowFormatEraseBlock:
add r3, r3, r4
str r2, [r0, r1]
ldr r1, [sp, #4]
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
str r0, [sp, #12]
- cbz r7, .L836
+ cbz r7, .L854
bl IsBlkInVendorPart
- cbnz r0, .L837
-.L836:
+ cbnz r0, .L855
+.L854:
ldr r0, [sp, #12]
bl FtlBbmIsBadBlock
- cbnz r0, .L837
+ cbnz r0, .L855
ldr r1, [r4, #3272]
ldr r3, [sp, #12]
- ldr r2, .L867
+ ldr r2, .L885
mla r1, fp, r6, r1
ldr r0, [r2, #3320]
add r3, r8, r3, lsl #10
str r3, [r1, #4]
ldr r3, [r4, #3316]
str r3, [r1, #8]
- ldrh r3, [r4, #112]
+ ldrh r3, [r4, #316]
muls r3, r6, r3
add r6, r6, #1
it mi
@@ -5904,40 +6024,40 @@ FtlLowFormatEraseBlock:
bic r3, r3, #3
add r3, r3, r0
str r3, [r1, #12]
-.L837:
+.L855:
add r9, r9, #1
- b .L835
-.L843:
+ b .L853
+.L861:
mul r3, fp, r9
ldr r2, [r4, #3272]
adds r1, r2, r3
ldr r3, [r2, r3]
- cbz r3, .L842
+ cbz r3, .L860
ldr r0, [r1, #4]
adds r5, r5, #1
uxth r5, r5
ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
-.L842:
+.L860:
add r9, r9, #1
- b .L841
-.L847:
- cbz r7, .L846
+ b .L859
+.L865:
+ cbz r7, .L864
mul r3, r9, r8
ldr r2, [r4, #3272]
adds r1, r2, r3
ldr r3, [r2, r3]
- cbnz r3, .L846
+ cbnz r3, .L864
ldr r0, [r1, #4]
movs r1, #1
ubfx r0, r0, #10, #16
bl FtlFreeSysBlkQueueIn
-.L846:
+.L864:
add r8, r8, #1
- b .L845
-.L868:
+ b .L863
+.L886:
.align 2
-.L867:
+.L885:
.word .LANCHOR0
.fnend
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
@@ -5958,8 +6078,8 @@ FlashTestBlk:
mov r5, r0
.pad #92
sub sp, sp, #92
- bls .L872
- ldr r3, .L874
+ bls .L890
+ ldr r3, .L892
add r0, sp, #24
movs r2, #32
movs r1, #165
@@ -5982,7 +6102,7 @@ FlashTestBlk:
mov r1, r3
bl FlashProgPages
ldr r3, [sp, #4]
- cbnz r3, .L873
+ cbnz r3, .L891
adds r3, r5, #1
add r0, sp, #4
str r3, [sp, #8]
@@ -5995,26 +6115,26 @@ FlashTestBlk:
it ne
movne r4, #1
negs r4, r4
-.L871:
+.L889:
movs r2, #1
movs r1, #0
add r0, sp, #4
str r5, [sp, #8]
bl FlashEraseBlocks
-.L869:
+.L887:
mov r0, r4
add sp, sp, #92
@ sp needed
pop {r4, r5, pc}
-.L873:
+.L891:
mov r4, #-1
- b .L871
-.L872:
+ b .L889
+.L890:
movs r4, #0
- b .L869
-.L875:
+ b .L887
+.L893:
.align 2
-.L874:
+.L892:
.word .LANCHOR0
.fnend
.size FlashTestBlk, .-FlashTestBlk
@@ -6033,45 +6153,47 @@ FtlBbmTblFlush:
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
movs r5, #0
- ldr r4, .L885
+ ldr r4, .L906
movs r1, #0
ldr r0, [r4, #3304]
- add r6, r4, #176
+ add r6, r4, #380
ldr r3, [r4, #3336]
- ldrh r2, [r4, #110]
+ ldrh r2, [r4, #314]
str r0, [r4, #3464]
str r3, [r4, #3468]
bl ftl_memset
-.L877:
- ldrh r3, [r4, #54]
+.L895:
+ ldrh r3, [r4, #258]
cmp r5, r3
- blt .L878
+ blt .L896
ldr r6, [r4, #3468]
movs r2, #16
movs r1, #255
- ldr r8, .L885+12
- ldr r9, .L885+16
+ ldr r8, .L906+12
+ ldr r9, .L906+16
movs r5, #0
mov r0, r6
mov r7, r5
bl memset
movw r3, #61649
strh r3, [r6] @ movhi
- ldr r3, [r4, #160]
+ ldr r3, [r4, #364]
str r3, [r6, #4]
- ldrh r3, [r4, #152]
+ ldrh r3, [r4, #356]
strh r3, [r6, #2] @ movhi
- ldrh r3, [r4, #156]
+ ldrh r3, [r4, #360]
strh r3, [r6, #8] @ movhi
- ldrh r3, [r4, #158]
+ ldrh r3, [r4, #362]
strh r3, [r6, #10] @ movhi
- ldr r3, [r4, #28]
+ ldr r3, [r4, #232]
strh r3, [r6, #12] @ movhi
-.L879:
+ ldr r3, [r4, #2608]
+ strh r3, [r6, #14] @ movhi
+.L897:
ldr r3, [r4, #3304]
mov r10, #0
- ldrh r2, [r4, #154]
- ldrh r1, [r4, #152]
+ ldrh r2, [r4, #358]
+ ldrh r1, [r4, #356]
str r3, [r4, #3464]
ldr r3, [r4, #3336]
str r10, [r4, #3456]
@@ -6079,58 +6201,58 @@ FtlBbmTblFlush:
orr r3, r2, r1, lsl #10
ldrh r0, [r6, #10]
str r3, [r4, #3460]
- ldrh r3, [r4, #156]
+ ldrh r3, [r4, #360]
str r0, [sp]
mov r0, r8
bl sftl_printk
- ldrh r3, [r4, #104]
- ldrh r2, [r4, #154]
+ ldrh r3, [r4, #308]
+ ldrh r2, [r4, #358]
subs r3, r3, #1
cmp r2, r3
- blt .L880
- ldr r3, [r4, #160]
- ldrh r2, [r4, #152]
+ blt .L898
+ ldr r3, [r4, #364]
+ ldrh r2, [r4, #356]
ldr r0, [r4, #3272]
adds r3, r3, #1
- strh r10, [r4, #154] @ movhi
- str r3, [r4, #160]
+ strh r10, [r4, #358] @ movhi
+ str r3, [r4, #364]
str r3, [r6, #4]
- ldrh r3, [r4, #156]
+ ldrh r3, [r4, #360]
strh r2, [r6, #8] @ movhi
- strh r2, [r4, #156] @ movhi
+ strh r2, [r4, #360] @ movhi
movs r2, #1
- strh r3, [r4, #152] @ movhi
+ strh r3, [r4, #356] @ movhi
mov r1, r2
lsls r3, r3, #10
str r3, [r4, #3460]
str r3, [r0, #4]
bl FlashEraseBlocks
-.L880:
+.L898:
movs r3, #1
mov r0, r9
mov r2, r3
mov r1, r3
bl FlashProgPages
- ldrh r3, [r4, #154]
+ ldrh r3, [r4, #358]
adds r3, r3, #1
- strh r3, [r4, #154] @ movhi
+ strh r3, [r4, #358] @ movhi
ldr r3, [r4, #3456]
- adds r3, r3, #1
- bne .L881
+ adds r2, r3, #1
+ bne .L899
adds r5, r5, #1
ldr r1, [r4, #3460]
uxth r5, r5
- ldr r0, .L885+4
+ ldr r0, .L906+4
bl sftl_printk
cmp r5, #3
- bls .L879
+ bls .L897
mov r2, r5
ldr r1, [r4, #3460]
- ldr r0, .L885+8
+ ldr r0, .L906+8
bl sftl_printk
-.L883:
- b .L883
-.L878:
+.L901:
+ b .L901
+.L896:
ldrh r2, [r4, #3392]
ldr r3, [r4, #3464]
ldr r1, [r6, #4]!
@@ -6139,24 +6261,27 @@ FtlBbmTblFlush:
adds r5, r5, #1
add r0, r3, r0, lsl #2
bl ftl_memcpy
- b .L877
-.L884:
+ b .L895
+.L902:
movs r7, #1
- b .L879
-.L881:
- cmp r7, #0
- beq .L884
+ b .L897
+.L899:
+ adds r7, r7, #1
+ cmp r7, #1
+ ble .L902
+ cmp r3, #256
+ beq .L897
movs r0, #0
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L886:
+.L907:
.align 2
-.L885:
+.L906:
.word .LANCHOR0
- .word .LC90
- .word .LC91
- .word .LC89
+ .word .LC100
+ .word .LC101
+ .word .LC99
.word .LANCHOR0+3456
.fnend
.size FtlBbmTblFlush, .-FtlBbmTblFlush
@@ -6174,169 +6299,169 @@ allocate_data_superblock:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, r0
- ldr r4, .L923
+ ldr r4, .L944
.pad #20
sub sp, sp, #20
- ldr r9, .L923+20
-.L888:
- ldr r3, .L923
- ldr r2, .L923
- ldrh r3, [r3, #2344]
- ldrh r2, [r2, #2336]
+ ldr r9, .L944+20
+.L909:
+ ldr r3, .L944
+ ldr r2, .L944
+ ldrh r3, [r3, #228]
+ ldrh r2, [r2, #2532]
add r3, r3, r2
- ldr r2, .L923
- ldrh r2, [r2, #40]
+ ldr r2, .L944
+ ldrh r2, [r2, #244]
cmp r3, r2
- ble .L889
- movw r2, #2661
+ ble .L910
+ mov r2, #2656
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
-.L889:
- ldr r3, .L923+8
+.L910:
+ ldr r3, .L944+8
cmp r5, r3
- bne .L915
- ldrh r3, [r4, #2344]
- ldr r1, [r4, #3164]
+ bne .L936
+ ldrh r3, [r4, #228]
+ ldr r1, [r4, #3168]
mul r2, r1, r3
lsrs r1, r3, #1
adds r1, r1, #1
add r1, r1, r2, lsr #2
uxth r1, r1
- cbz r1, .L890
+ cbz r1, .L911
subs r1, r1, #1
uxth r1, r1
-.L890:
- ldr r0, .L923+12
+.L911:
+ ldr r0, .L944+12
bl List_pop_index_node
- ldrh r3, [r4, #2344]
+ ldrh r3, [r4, #228]
mov r6, r0
uxth r8, r0
- cbnz r3, .L891
- movw r2, #2670
+ cbnz r3, .L912
+ movw r2, #2665
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
-.L891:
- ldrh r3, [r4, #2344]
+.L912:
+ ldrh r3, [r4, #228]
subs r3, r3, #1
- strh r3, [r4, #2344] @ movhi
- ldrh r3, [r4, #40]
+ strh r3, [r4, #228] @ movhi
+ ldrh r3, [r4, #244]
cmp r3, r8
- bls .L888
- ldr r3, [r4, #2324]
+ bls .L909
+ ldr r3, [r4, #76]
uxth r6, r6
ldrh r7, [r3, r6, lsl #1]
cmp r7, #0
- bne .L888
+ bne .L909
strh r8, [r5] @ movhi
mov r0, r5
bl make_superblock
ldrb r3, [r5, #7] @ zero_extendqisi2
- cbnz r3, .L893
- ldr r3, [r4, #2324]
+ cbnz r3, .L914
+ ldr r3, [r4, #76]
movw r2, #65535
mov r0, r8
strh r2, [r3, r6, lsl #1] @ movhi
bl INSERT_DATA_LIST
- ldrh r2, [r4, #2336]
- ldrh r3, [r4, #2344]
+ ldrh r2, [r4, #2532]
+ ldrh r3, [r4, #228]
add r3, r3, r2
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
cmp r3, r2
- ble .L888
- movw r2, #2684
+ ble .L909
+ movw r2, #2679
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
- b .L888
-.L915:
+ b .L909
+.L936:
movs r1, #0
- b .L890
-.L893:
- ldrh r2, [r4, #2336]
- ldrh r3, [r4, #2344]
+ b .L911
+.L914:
+ ldrh r2, [r4, #2532]
+ ldrh r3, [r4, #228]
add r3, r3, r2
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
cmp r3, r2
- ble .L895
- movw r2, #2687
+ ble .L916
+ movw r2, #2682
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
-.L895:
+.L916:
ldr r1, [r4, #3272]
mov r10, #20
- ldrh r2, [r4, #32]
+ ldrh r2, [r4, #236]
add fp, r5, #16
mov r0, fp
mov ip, #0
mov r3, r1
mla r2, r10, r2, r1
str r2, [sp, #4]
-.L896:
+.L917:
ldr r2, [sp, #4]
cmp r2, r3
- bne .L898
- cbnz r7, .L899
- movw r2, #2698
+ bne .L919
+ cbnz r7, .L920
+ movw r2, #2693
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
-.L899:
- ldrh r3, [r4, #2592]
+.L920:
+ ldrh r3, [r4, #176]
cmp r3, r8
- bne .L900
- movw r2, #2700
+ bne .L921
+ movw r2, #2695
mov r1, r9
- ldr r0, .L923+4
+ ldr r0, .L944+4
bl sftl_printk
-.L900:
+.L921:
ldrb r3, [r5, #8] @ zero_extendqisi2
- ldr r2, [r4, #2328]
+ ldr r2, [r4, #2540]
cmp r3, #0
- bne .L901
+ bne .L922
ldrh r3, [r2, r6, lsl #1]
cmp r3, #0
- beq .L902
- ldrh r1, [r4, #92]
+ beq .L923
+ ldrh r1, [r4, #296]
add r3, r3, r1
-.L922:
+.L943:
strh r3, [r2, r6, lsl #1] @ movhi
movs r1, #0
- ldr r3, [r4, #2548]
+ ldr r3, [r4, #2600]
mov r0, r8
adds r3, r3, #1
- str r3, [r4, #2548]
+ str r3, [r4, #2600]
bl ftl_set_blk_mode
-.L904:
- ldr r3, [r4, #2328]
- ldr r2, [r4, #2564]
- ldrh r0, [r4, #92]
+.L925:
+ ldr r3, [r4, #2540]
+ ldr r2, [r4, #2616]
+ ldrh r0, [r4, #296]
ldrh r3, [r3, r6, lsl #1]
- ldrh r1, [r4, #40]
+ ldrh r1, [r4, #244]
cmp r3, r2
- ldr r2, [r4, #2548]
+ ldr r2, [r4, #2600]
it hi
- strhi r3, [r4, #2564]
- ldr r3, [r4, #2552]
+ strhi r3, [r4, #2616]
+ ldr r3, [r4, #2604]
mla r0, r2, r0, r3
bl __aeabi_uidiv
ldr r2, [r4, #3352]
ldr r1, [r4, #3272]
- str r0, [r4, #2556]
+ str r0, [r4, #2608]
ldr r3, [r2, #16]
- ldr r0, .L923+16
+ ldr r0, .L944+16
adds r3, r3, #1
str r3, [r2, #16]
movs r2, #20
mla r2, r2, r7, r1
adds r3, r1, #4
adds r2, r2, #24
-.L906:
+.L927:
adds r3, r3, #20
cmp r2, r3
- bne .L907
+ bne .L928
ldrb r1, [r5, #8] @ zero_extendqisi2
mov r2, r7
ldr r0, [r4, #3272]
@@ -6344,63 +6469,63 @@ allocate_data_superblock:
bl FlashEraseBlocks
mov r3, r10
movs r1, #20
-.L908:
+.L929:
uxth r2, r10
cmp r7, r2
- bhi .L910
+ bhi .L931
cmp r3, #0
- ble .L911
+ ble .L932
mov r0, r8
bl update_multiplier_value
bl FtlBbmTblFlush
-.L911:
+.L932:
ldrb r2, [r5, #7] @ zero_extendqisi2
cmp r2, #0
- bne .L912
- ldr r3, [r4, #2324]
+ bne .L933
+ ldr r3, [r4, #76]
movw r2, #65535
strh r2, [r3, r6, lsl #1] @ movhi
- b .L888
-.L898:
+ b .L909
+.L919:
str ip, [r3, #8]
movw lr, #65535
str ip, [r3, #12]
ldrh r2, [r0], #2
cmp r2, lr
- beq .L897
+ beq .L918
mla lr, r10, r7, r1
adds r7, r7, #1
lsls r2, r2, #10
uxth r7, r7
str r2, [lr, #4]
-.L897:
+.L918:
adds r3, r3, #20
- b .L896
-.L902:
+ b .L917
+.L923:
movs r3, #2
- b .L922
-.L901:
+ b .L943
+.L922:
ldrh r3, [r2, r6, lsl #1]
mov r0, r8
adds r3, r3, #1
strh r3, [r2, r6, lsl #1] @ movhi
- ldr r3, [r4, #2552]
+ ldr r3, [r4, #2604]
adds r3, r3, #1
- str r3, [r4, #2552]
+ str r3, [r4, #2604]
bl ftl_set_blk_mode.part.6
- b .L904
-.L907:
+ b .L925
+.L928:
ldr r1, [r3, #-20]
ands r1, r1, r0
str r1, [r3, #-20]
- b .L906
-.L910:
+ b .L927
+.L931:
mul r2, r1, r10
ldr r0, [r4, #3272]
add ip, r0, r2
ldr r2, [r0, r2]
adds r0, r2, #1
- bne .L909
+ bne .L930
ldr r0, [ip, #4]
adds r3, r3, #1
str r1, [sp, #12]
@@ -6415,47 +6540,47 @@ allocate_data_superblock:
ldrb r2, [r5, #7] @ zero_extendqisi2
subs r2, r2, #1
strb r2, [r5, #7]
-.L909:
+.L930:
add r10, r10, #1
add fp, fp, #2
- b .L908
-.L912:
- ldrh r3, [r4, #102]
+ b .L929
+.L933:
+ ldrh r3, [r4, #306]
strh r8, [r5] @ movhi
smulbb r3, r3, r2
movs r2, #0
strh r2, [r5, #2] @ movhi
strb r2, [r5, #6]
- ldr r2, [r4, #2540]
+ ldr r2, [r4, #2592]
uxth r3, r3
strh r3, [r5, #4] @ movhi
str r2, [r5, #12]
adds r2, r2, #1
- str r2, [r4, #2540]
- ldr r2, [r4, #2324]
+ str r2, [r4, #2592]
+ ldr r2, [r4, #76]
ldrh r1, [r5]
strh r3, [r2, r1, lsl #1] @ movhi
ldrh r3, [r5, #4]
- cbz r3, .L913
+ cbz r3, .L934
ldrb r3, [r5, #7] @ zero_extendqisi2
- cbnz r3, .L914
-.L913:
- movw r2, #2753
- ldr r1, .L923+20
- ldr r0, .L923+4
+ cbnz r3, .L935
+.L934:
+ movw r2, #2748
+ ldr r1, .L944+20
+ ldr r0, .L944+4
bl sftl_printk
-.L914:
+.L935:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L924:
+.L945:
.align 2
-.L923:
+.L944:
.word .LANCHOR0
- .word .LC1
- .word .LANCHOR0+2444
- .word .LANCHOR0+2340
+ .word .LC8
+ .word .LANCHOR0+128
+ .word .LANCHOR0+2536
.word -1024
.word .LANCHOR1+271
.fnend
@@ -6474,67 +6599,67 @@ FtlGcFreeBadSuperBlk:
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r0
- ldr r4, .L937
+ ldr r4, .L958
ldrh r3, [r4, #3210]
- cbz r3, .L926
+ cbz r3, .L947
movs r7, #0
addw r10, r4, #3212
-.L927:
- ldrh r2, [r4, #32]
+.L948:
+ ldrh r2, [r4, #236]
uxth r3, r7
cmp r2, r3
- bhi .L933
+ bhi .L954
bl FtlGcReFreshBadBlk
-.L926:
+.L947:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L933:
+.L954:
uxtah r3, r4, r7
mov r1, r8
mov fp, #0
- ldrb r0, [r3, #60] @ zero_extendqisi2
+ ldrb r0, [r3, #264] @ zero_extendqisi2
bl V2P_block
mov r9, r0
-.L928:
+.L949:
ldrh r3, [r4, #3210]
uxth r5, fp
cmp r3, r5
- bhi .L932
+ bhi .L953
adds r7, r7, #1
- b .L927
-.L932:
+ b .L948
+.L953:
uxth r6, fp
add r3, r4, r6, lsl #1
ldrh r3, [r3, #3212]
cmp r3, r9
- bne .L929
+ bne .L950
mov r1, r9
- ldr r0, .L937+4
+ ldr r0, .L958+4
bl sftl_printk
mov r0, r9
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
ldrh r1, [r4, #3210]
add r3, r10, r6, lsl #1
-.L930:
+.L951:
cmp r5, r1
- bcc .L931
+ bcc .L952
subs r1, r1, #1
strh r1, [r4, #3210] @ movhi
-.L929:
+.L950:
add fp, fp, #1
- b .L928
-.L931:
+ b .L949
+.L952:
ldrh r0, [r3, #2]!
adds r5, r5, #1
uxth r5, r5
strh r0, [r3, #-2] @ movhi
- b .L930
-.L938:
+ b .L951
+.L959:
.align 2
-.L937:
+.L958:
.word .LANCHOR0
- .word .LC92
+ .word .LC102
.fnend
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
.align 1
@@ -6548,75 +6673,83 @@ update_vpc_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L949
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r0
- mov r4, r2
- ldr r3, [r2, #2324]
+ ldr r4, .L972
+ ldr r3, [r4, #76]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #0
- bne .L940
- ldrh r1, [r2, #2592]
- cmp r1, r0
- bne .L941
+ bne .L961
+ ldrh r3, [r4, #226]
+ cmp r3, r0
+ itt eq
+ movweq r3, #65535
+ strheq r3, [r4, #226] @ movhi
+ ldrh r3, [r4, #224]
+ cmp r3, r0
+ itt eq
+ movweq r3, #65535
+ strheq r3, [r4, #224] @ movhi
+ ldrh r3, [r4, #176]
+ cmp r3, r0
+ bne .L964
movw r3, #65535
- strh r3, [r2, #2592] @ movhi
-.L942:
+ strh r3, [r4, #176] @ movhi
+.L965:
mov r1, r5
- ldr r0, .L949+4
+ ldr r0, .L972+4
bl List_remove_node
- ldrh r3, [r4, #2336]
- cbnz r3, .L944
- movw r2, #2823
- ldr r1, .L949+8
- ldr r0, .L949+12
+ ldrh r3, [r4, #2532]
+ cbnz r3, .L967
+ movw r2, #2824
+ ldr r1, .L972+8
+ ldr r0, .L972+12
bl sftl_printk
-.L944:
- ldrh r3, [r4, #2336]
+.L967:
+ ldrh r3, [r4, #2532]
mov r0, r5
subs r3, r3, #1
- strh r3, [r4, #2336] @ movhi
+ strh r3, [r4, #2532] @ movhi
bl free_data_superblock
mov r0, r5
bl FtlGcFreeBadSuperBlk
- ldrh r2, [r4, #2336]
- ldrh r3, [r4, #2344]
+ ldrh r2, [r4, #2532]
+ ldrh r3, [r4, #228]
add r3, r3, r2
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
cmp r3, r2
- ble .L948
- movw r2, #2826
- ldr r1, .L949+8
- ldr r0, .L949+12
+ ble .L971
+ movw r2, #2827
+ ldr r1, .L972+8
+ ldr r0, .L972+12
bl sftl_printk
-.L948:
- movs r3, #1
- b .L939
-.L941:
- ldrh r1, [r2, #2348]
- cmp r1, r0
- beq .L939
- ldrh r1, [r2, #2396]
- cmp r1, r0
- beq .L939
- ldrh r2, [r2, #2444]
- cmp r2, r0
- bne .L942
-.L939:
- mov r0, r3
+.L971:
+ movs r0, #1
+ pop {r3, r4, r5, pc}
+.L964:
+ ldrh r3, [r4, #28]
+ cmp r3, r0
+ beq .L970
+ ldrh r3, [r4, #80]
+ cmp r3, r0
+ beq .L970
+ ldrh r3, [r4, #128]
+ cmp r3, r0
+ bne .L965
+.L970:
+ movs r0, #0
pop {r3, r4, r5, pc}
-.L940:
+.L961:
bl List_update_data_list
- movs r3, #0
- b .L939
-.L950:
+ b .L970
+.L973:
.align 2
-.L949:
+.L972:
.word .LANCHOR0
- .word .LANCHOR0+2320
+ .word .LANCHOR0+2524
.word .LANCHOR1+296
- .word .LC1
+ .word .LC8
.fnend
.size update_vpc_list, .-update_vpc_list
.align 1
@@ -6635,69 +6768,69 @@ decrement_vpc_count:
.save {r4, r5, r6, lr}
cmp r0, r3
mov r4, r0
- ldr r5, .L960
- beq .L952
- ldr r3, [r5, #2324]
+ ldr r5, .L983
+ beq .L975
+ ldr r3, [r5, #76]
ldrh r2, [r3, r0, lsl #1]
- cbnz r2, .L953
+ cbnz r2, .L976
mov r1, r0
- ldr r0, .L960+4
+ ldr r0, .L983+4
bl sftl_printk
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
ldrh r6, [r3, r4, lsl #1]
- cbz r6, .L954
-.L958:
+ cbz r6, .L977
+.L981:
movs r6, #0
-.L951:
+.L974:
mov r0, r6
pop {r4, r5, r6, pc}
-.L954:
- movw r2, #2841
-.L959:
- ldr r1, .L960+8
- ldr r0, .L960+12
+.L977:
+ movw r2, #2842
+.L982:
+ ldr r1, .L983+8
+ ldr r0, .L983+12
bl sftl_printk
- b .L951
-.L953:
+ b .L974
+.L976:
subs r2, r2, #1
strh r2, [r3, r0, lsl #1] @ movhi
-.L952:
+.L975:
ldrh r0, [r5, #3442]
movw r3, #65535
cmp r0, r3
- bne .L956
+ bne .L979
strh r4, [r5, #3442] @ movhi
- b .L958
-.L956:
+ b .L981
+.L979:
cmp r4, r0
- beq .L958
+ beq .L981
bl update_vpc_list
- ldr r2, [r5, #2316]
+ ldr r2, [r5, #2520]
adds r6, r0, #0
- ldr r3, [r5, #2320]
+ ldr r3, [r5, #2524]
it ne
movne r6, #1
strh r4, [r5, #3442] @ movhi
subs r3, r3, r2
asrs r2, r3, #1
- ldr r3, .L960+16
+ ldr r3, .L983+16
muls r3, r2, r3
- ldr r2, [r5, #2324]
+ ldr r2, [r5, #76]
uxth r1, r3
ldrh r2, [r2, r1, lsl #1]
cmp r2, #0
- bne .L951
+ bne .L974
cmp r4, r1
- beq .L951
- movw r2, #2857
- b .L959
-.L961:
+ beq .L974
+ movw r2, #2858
+ b .L982
+.L984:
.align 2
-.L960:
+.L983:
.word .LANCHOR0
- .word .LC93
+ .word .LC103
.word .LANCHOR1+312
- .word .LC1
+ .word .LC8
.word -1431655765
.fnend
.size decrement_vpc_count, .-decrement_vpc_count
@@ -6716,7 +6849,7 @@ FtlSuperblockPowerLostFix:
.save {r4, r5, r6, r7, r8, lr}
.pad #24
sub sp, sp, #24
- ldr r5, .L975
+ ldr r5, .L998
mov r3, #-1
movs r7, #0
movw r1, #61589
@@ -6745,17 +6878,17 @@ FtlSuperblockPowerLostFix:
ite eq
moveq r8, #6
movne r8, #7
-.L968:
+.L991:
ldrh r3, [r4, #4]
- cbnz r3, .L964
-.L965:
- ldr r2, [r5, #2324]
+ cbnz r3, .L987
+.L988:
+ ldr r2, [r5, #76]
ldrh r1, [r4]
ldrh r0, [r4, #4]
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldrh r3, [r5, #102]
+ ldrh r3, [r5, #306]
strh r3, [r4, #2] @ movhi
movs r3, #0
strb r3, [r4, #6]
@@ -6763,13 +6896,13 @@ FtlSuperblockPowerLostFix:
add sp, sp, #24
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L964:
+.L987:
mov r0, r4
bl get_new_active_ppa
str r0, [sp, #8]
adds r0, r0, #1
- beq .L965
- ldr r3, [r5, #2544]
+ beq .L988
+ ldr r3, [r5, #2596]
movs r1, #1
add r0, sp, #4
str r3, [r6, #4]
@@ -6777,18 +6910,18 @@ FtlSuperblockPowerLostFix:
adds r2, r3, #1
it eq
moveq r3, r7
- str r3, [r5, #2544]
+ str r3, [r5, #2596]
movs r3, #0
mov r2, r3
bl FlashProgPages
ldrh r0, [r4]
bl decrement_vpc_count
subs r8, r8, #1
- bne .L968
- b .L965
-.L976:
+ bne .L991
+ b .L988
+.L999:
.align 2
-.L975:
+.L998:
.word .LANCHOR0
.fnend
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
@@ -6806,47 +6939,47 @@ FtlMakeBbt:
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, #0
- ldr r9, .L996+4
+ ldr r9, .L1019+4
bl FtlBbtMemInit
- sub r5, r9, #180
+ sub r5, r9, #384
sub r10, r9, #18
mov r4, r5
bl FtlLoadFactoryBbt
-.L978:
- ldrh r3, [r5, #54]
+.L1001:
+ ldrh r3, [r5, #258]
cmp r8, r3
- bcc .L984
+ bcc .L1007
movs r5, #0
-.L985:
- ldrh r3, [r4, #114]
+.L1008:
+ ldrh r3, [r4, #318]
uxth r0, r5
adds r5, r5, #1
cmp r3, r0
- bhi .L986
- ldrh r5, [r4, #164]
+ bhi .L1009
+ ldrh r5, [r4, #368]
movw r6, #65535
subs r5, r5, #1
uxth r5, r5
-.L987:
- ldrh r3, [r4, #164]
+.L1010:
+ ldrh r3, [r4, #368]
subs r3, r3, #48
cmp r5, r3
- ble .L991
+ ble .L1014
mov r0, r5
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L988
+ beq .L1011
mov r0, r5
bl FlashTestBlk
cmp r0, #0
- beq .L989
+ beq .L1012
mov r0, r5
bl FtlBbmMapBadBlock
-.L988:
+.L1011:
subs r5, r5, #1
uxth r5, r5
- b .L987
-.L984:
+ b .L1010
+.L1007:
ldrh r3, [r10, #2]!
movw r2, #65535
ldr r0, [r5, #3304]
@@ -6854,44 +6987,44 @@ FtlMakeBbt:
cmp r3, r2
str r0, [r5, #3464]
str fp, [r5, #3468]
- beq .L979
- ldrh r7, [r5, #98]
+ beq .L1002
+ ldrh r7, [r5, #302]
movs r2, #1
mov r1, r2
- ldr r0, .L996
+ ldr r0, .L1019
mla r7, r8, r7, r3
lsls r3, r7, #10
str r3, [r5, #3460]
bl FlashReadPages
- ldrh r2, [r5, #98]
+ ldrh r2, [r5, #302]
ldr r1, [r5, #3464]
ldr r0, [r9]
adds r2, r2, #7
asrs r2, r2, #3
bl ftl_memcpy
-.L980:
+.L1003:
uxth r0, r7
add r8, r8, #1
add r9, r9, #4
bl FtlBbmMapBadBlock
- b .L978
-.L979:
+ b .L1001
+.L1002:
mov r1, r8
bl FlashGetBadBlockList
ldr r1, [r9]
ldr r0, [r5, #3464]
bl FtlBbt2Bitmap
- ldrh r6, [r5, #98]
-.L982:
+ ldrh r6, [r5, #302]
+.L1005:
subs r6, r6, #1
uxth r6, r6
-.L981:
- ldrh r0, [r4, #98]
+.L1004:
+ ldrh r0, [r4, #302]
smlabb r0, r0, r8, r6
uxth r0, r0
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L982
+ beq .L1005
movs r1, #16
ldr r0, [r4, #3336]
strh r6, [r10] @ movhi
@@ -6904,7 +7037,7 @@ FtlMakeBbt:
movs r3, #0
str r3, [fp, #4]
ldrh r3, [r10]
- ldrh r7, [r4, #98]
+ ldrh r7, [r4, #302]
ldrh r2, [r4, #3392]
strh r3, [fp, #2] @ movhi
ldrh r3, [r10]
@@ -6916,66 +7049,66 @@ FtlMakeBbt:
str r3, [r4, #3460]
bl ftl_memcpy
movs r2, #1
- ldr r0, .L996
+ ldr r0, .L1019
mov r1, r2
bl FlashEraseBlocks
movs r3, #1
- ldr r0, .L996
+ ldr r0, .L1019
mov r2, r3
mov r1, r3
bl FlashProgPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- bne .L980
+ bne .L1003
uxth r0, r7
bl FtlBbmMapBadBlock
- b .L981
-.L986:
+ b .L1004
+.L1009:
bl FtlBbmMapBadBlock
- b .L985
-.L989:
- ldrh r3, [r4, #152]
+ b .L1008
+.L1012:
+ ldrh r3, [r4, #356]
cmp r3, r6
- bne .L990
- strh r5, [r4, #152] @ movhi
- b .L988
-.L990:
- strh r5, [r4, #156] @ movhi
-.L991:
- ldrh r3, [r4, #152]
+ bne .L1013
+ strh r5, [r4, #356] @ movhi
+ b .L1011
+.L1013:
+ strh r5, [r4, #360] @ movhi
+.L1014:
+ ldrh r3, [r4, #356]
movs r5, #0
ldr r0, [r4, #3272]
movs r1, #1
- str r5, [r4, #160]
+ str r5, [r4, #364]
movs r2, #2
- strh r5, [r4, #154] @ movhi
+ strh r5, [r4, #358] @ movhi
lsls r3, r3, #10
str r3, [r0, #4]
- ldrh r3, [r4, #156]
+ ldrh r3, [r4, #360]
lsls r3, r3, #10
str r3, [r0, #24]
bl FlashEraseBlocks
- ldrh r0, [r4, #152]
+ ldrh r0, [r4, #356]
bl FtlBbmMapBadBlock
- ldrh r0, [r4, #156]
+ ldrh r0, [r4, #360]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldr r3, [r4, #160]
- ldrh r2, [r4, #156]
- strh r5, [r4, #154] @ movhi
+ ldr r3, [r4, #364]
+ ldrh r2, [r4, #360]
+ strh r5, [r4, #358] @ movhi
adds r3, r3, #1
- str r3, [r4, #160]
- ldrh r3, [r4, #152]
- strh r2, [r4, #152] @ movhi
- strh r3, [r4, #156] @ movhi
+ str r3, [r4, #364]
+ ldrh r3, [r4, #356]
+ strh r2, [r4, #356] @ movhi
+ strh r3, [r4, #360] @ movhi
bl FtlBbmTblFlush
mov r0, r5
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L997:
+.L1020:
.align 2
-.L996:
+.L1019:
.word .LANCHOR0+3456
- .word .LANCHOR0+180
+ .word .LANCHOR0+384
.fnend
.size FtlMakeBbt, .-FtlMakeBbt
.align 1
@@ -7004,25 +7137,25 @@ js_hash:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1002
+ ldr r3, .L1025
add r1, r1, r0
push {r4, lr}
.save {r4, lr}
-.L1000:
+.L1023:
cmp r0, r1
- bne .L1001
+ bne .L1024
mov r0, r3
pop {r4, pc}
-.L1001:
+.L1024:
lsrs r2, r3, #2
ldrb r4, [r0], #1 @ zero_extendqisi2
add r2, r2, r3, lsl #5
add r2, r2, r4
eors r3, r3, r2
- b .L1000
-.L1003:
+ b .L1023
+.L1026:
.align 2
-.L1002:
+.L1025:
.word 1204201446
.fnend
.size js_hash, .-js_hash
@@ -7044,14 +7177,14 @@ Ftl_write_map_blk_to_last_page:
mov r4, r0
ldr r5, [r0, #12]
cmp r3, r2
- bne .L1005
+ bne .L1028
ldrh r3, [r0, #8]
- cbz r3, .L1006
+ cbz r3, .L1029
movw r2, #641
- ldr r1, .L1014
- ldr r0, .L1014+4
+ ldr r1, .L1037
+ ldr r0, .L1037+4
bl sftl_printk
-.L1006:
+.L1029:
ldrh r3, [r4, #8]
adds r3, r3, #1
strh r3, [r4, #8] @ movhi
@@ -7063,14 +7196,14 @@ Ftl_write_map_blk_to_last_page:
ldr r3, [r4, #28]
adds r3, r3, #1
str r3, [r4, #28]
-.L1007:
+.L1030:
movs r0, #0
pop {r4, r5, r6, r7, r8, pc}
-.L1005:
+.L1028:
ldrh r7, [r5, r3, lsl #1]
movs r1, #255
ldrh r3, [r0, #2]
- ldr r5, .L1014+8
+ ldr r5, .L1037+8
ldr r8, [r0, #24]
orr r3, r3, r7, lsl #10
ldr r6, [r5, #3336]
@@ -7085,37 +7218,37 @@ Ftl_write_map_blk_to_last_page:
ldrh r3, [r0, #4]
strh r7, [r6, #2] @ movhi
strh r3, [r6] @ movhi
- ldrh r2, [r5, #104]
+ ldrh r2, [r5, #308]
ldr r0, [r5, #3304]
lsls r2, r2, #3
bl ftl_memset
movs r2, #0
mov r3, r2
-.L1008:
+.L1031:
ldrh r0, [r4, #6]
uxth r1, r2
cmp r0, r1
- bhi .L1010
- ldrh r1, [r5, #110]
+ bhi .L1033
+ ldrh r1, [r5, #314]
ldr r0, [r5, #3464]
bl js_hash
movs r2, #1
str r0, [r6, #12]
movs r3, #0
mov r1, r2
- ldr r0, .L1014+12
+ ldr r0, .L1037+12
bl FlashProgPages
ldrh r3, [r4, #2]
mov r0, r4
adds r3, r3, #1
strh r3, [r4, #2] @ movhi
bl ftl_map_blk_gc
- b .L1007
-.L1010:
+ b .L1030
+.L1033:
uxth r0, r2
ldr r1, [r8, r0, lsl #2]
cmp r7, r1, lsr #10
- bne .L1009
+ bne .L1032
ldr r1, [r5, #3304]
adds r3, r3, #1
uxth r3, r3
@@ -7124,14 +7257,14 @@ Ftl_write_map_blk_to_last_page:
ldr r0, [r8, r0, lsl #2]
add r1, r1, r3, lsl #3
str r0, [r1, #4]
-.L1009:
+.L1032:
adds r2, r2, #1
- b .L1008
-.L1015:
+ b .L1031
+.L1038:
.align 2
-.L1014:
+.L1037:
.word .LANCHOR1+332
- .word .LC1
+ .word .LC8
.word .LANCHOR0
.word .LANCHOR0+3456
.fnend
@@ -7151,47 +7284,47 @@ FtlMapWritePage:
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r4, r0
- ldr r7, .L1040
+ ldr r7, .L1063
mov r8, r1
movs r6, #0
- ldr r9, .L1040+20
+ ldr r9, .L1063+20
mov r5, r7
str r2, [sp, #4]
-.L1017:
- ldr r3, [r7, #2524]
+.L1040:
+ ldr r3, [r7, #2576]
adds r3, r3, #1
- str r3, [r7, #2524]
- ldrh r3, [r7, #104]
+ str r3, [r7, #2576]
+ ldrh r3, [r7, #308]
ldrh r2, [r4, #2]
subs r3, r3, #1
cmp r2, r3
- bge .L1018
+ bge .L1041
ldrh r2, [r4]
movw r3, #65535
cmp r2, r3
- bne .L1019
-.L1018:
+ bne .L1042
+.L1041:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L1019:
+.L1042:
ldrh r2, [r4]
ldr r3, [r4, #12]
ldrh r3, [r3, r2, lsl #1]
- cbnz r3, .L1020
+ cbnz r3, .L1043
mov r2, #700
mov r1, r9
- ldr r0, .L1040+4
+ ldr r0, .L1063+4
bl sftl_printk
-.L1020:
+.L1043:
ldrh r2, [r4]
ldrh r3, [r4, #10]
cmp r2, r3
- bcc .L1021
+ bcc .L1044
movw r2, #701
mov r1, r9
- ldr r0, .L1040+4
+ ldr r0, .L1063+4
bl sftl_printk
-.L1021:
+.L1044:
ldrh r2, [r4]
movs r1, #16
ldr r3, [r4, #12]
@@ -7211,14 +7344,14 @@ FtlMapWritePage:
ldrh r3, [r4, #4]
strh r10, [fp, #2] @ movhi
strh r3, [fp] @ movhi
- ldrh r1, [r5, #110]
+ ldrh r1, [r5, #314]
ldr r0, [r5, #3464]
bl js_hash
movs r3, #1
str r0, [fp, #12]
mov r2, r3
mov r1, r3
- ldr r0, .L1040+8
+ ldr r0, .L1063+8
bl FlashProgPages
ldrh r3, [r4, #2]
adds r3, r3, #1
@@ -7226,58 +7359,58 @@ FtlMapWritePage:
strh r3, [r4, #2] @ movhi
ldr r2, [r5, #3456]
adds r1, r2, #1
- bne .L1022
+ bne .L1045
ldr r1, [r5, #3460]
adds r6, r6, #1
- ldr r0, .L1040+12
+ ldr r0, .L1063+12
uxth r6, r6
bl sftl_printk
ldrh r3, [r4, #2]
cmp r3, #2
ittt ls
- ldrhls r3, [r5, #104]
+ ldrhls r3, [r5, #308]
addls r3, r3, #-1
strhls r3, [r4, #2] @ movhi
cmp r6, #3
- bls .L1024
+ bls .L1047
mov r2, r6
ldr r1, [r5, #3460]
- ldr r0, .L1040+16
+ ldr r0, .L1063+16
bl sftl_printk
-.L1025:
- b .L1025
-.L1024:
+.L1048:
+ b .L1048
+.L1047:
ldr r3, [r4, #32]
cmp r3, #0
- beq .L1017
-.L1039:
- b .L1039
-.L1022:
+ beq .L1040
+.L1062:
+ b .L1062
+.L1045:
cmp r3, #1
- beq .L1028
+ beq .L1051
cmp r2, #256
- beq .L1028
+ beq .L1051
ldr r0, [r4, #36]
- cbz r0, .L1029
-.L1028:
+ cbz r0, .L1052
+.L1051:
movs r3, #0
str r3, [r4, #36]
- b .L1017
-.L1029:
+ b .L1040
+.L1052:
ldr r2, [r5, #3460]
ldr r3, [r4, #24]
str r2, [r3, r8, lsl #2]
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1041:
+.L1064:
.align 2
-.L1040:
+.L1063:
.word .LANCHOR0
- .word .LC1
+ .word .LC8
.word .LANCHOR0+3456
- .word .LC94
- .word .LC95
+ .word .LC104
+ .word .LC105
.word .LANCHOR1+363
.fnend
.size FtlMapWritePage, .-FtlMapWritePage
@@ -7295,40 +7428,40 @@ load_l2p_region:
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r6, r0
- ldr r4, .L1049
+ ldr r4, .L1072
mov r8, r1
- ldrh r3, [r4, #136]
+ ldrh r3, [r4, #340]
cmp r3, r0
- bcs .L1043
+ bcs .L1066
movw r2, #485
- ldr r1, .L1049+4
- ldr r0, .L1049+8
+ ldr r1, .L1072+4
+ ldr r0, .L1072+8
bl sftl_printk
-.L1043:
+.L1066:
ldr r3, [r4, #3380]
movs r5, #12
ldr r7, [r3, r6, lsl #2]
- cbnz r7, .L1044
+ cbnz r7, .L1067
mul r5, r5, r8
- ldr r3, [r4, #2492]
- ldrh r2, [r4, #110]
+ ldr r3, [r4, #2544]
+ ldrh r2, [r4, #314]
movs r1, #255
add r3, r3, r5
ldr r0, [r3, #8]
bl ftl_memset
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
strh r6, [r3, r5] @ movhi
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
add r5, r5, r3
str r7, [r5, #4]
-.L1045:
+.L1068:
movs r0, #0
pop {r4, r5, r6, r7, r8, pc}
-.L1044:
+.L1067:
mul r5, r5, r8
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
movs r2, #1
- ldr r0, .L1049+12
+ ldr r0, .L1072+12
mov r1, r2
str r7, [r4, #3460]
add r3, r3, r5
@@ -7340,62 +7473,62 @@ load_l2p_region:
ldr r8, [r4, #3468]
ldrh r3, [r8, #8]
cmp r3, r6
- beq .L1046
+ beq .L1069
mov r2, r7
mov r1, r6
- ldr r0, .L1049+16
+ ldr r0, .L1072+16
bl sftl_printk
movs r3, #4
ldr r1, [r4, #3468]
mov r2, r3
- ldr r0, .L1049+20
+ ldr r0, .L1072+20
bl rknand_print_hex
- ldrh r3, [r4, #136]
+ ldrh r3, [r4, #340]
movs r2, #4
ldr r1, [r4, #3380]
- ldr r0, .L1049+24
+ ldr r0, .L1072+24
bl rknand_print_hex
-.L1047:
+.L1070:
ldrh r3, [r8, #8]
cmp r3, r6
- beq .L1048
+ beq .L1071
mov r2, #508
- ldr r1, .L1049+4
- ldr r0, .L1049+8
+ ldr r1, .L1072+4
+ ldr r0, .L1072+8
bl sftl_printk
-.L1048:
- ldr r3, [r4, #2492]
+.L1071:
+ ldr r3, [r4, #2544]
movs r1, #0
adds r2, r3, r5
str r1, [r2, #4]
strh r6, [r3, r5] @ movhi
- b .L1045
-.L1046:
+ b .L1068
+.L1069:
ldr r3, [r4, #3456]
cmp r3, #256
- bne .L1047
+ bne .L1070
mov r2, r7
mov r1, r6
- ldr r0, .L1049+28
+ ldr r0, .L1072+28
bl sftl_printk
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
mov r1, r6
- ldr r0, .L1049+32
+ ldr r0, .L1072+32
add r3, r3, r5
ldr r2, [r3, #8]
bl FtlMapWritePage
- b .L1047
-.L1050:
+ b .L1070
+.L1073:
.align 2
-.L1049:
+.L1072:
.word .LANCHOR0
.word .LANCHOR1+379
- .word .LC1
+ .word .LC8
.word .LANCHOR0+3456
- .word .LC96
- .word .LC97
- .word .LC98
- .word .LC99
+ .word .LC106
+ .word .LC94
+ .word .LC107
+ .word .LC108
.word .LANCHOR0+3396
.fnend
.size load_l2p_region, .-load_l2p_region
@@ -7419,16 +7552,16 @@ ftl_map_blk_gc:
bl ftl_free_no_use_map_blk
ldrh r3, [r4, #10]
ldrh r2, [r4, #8]
- ldr r5, .L1067
+ ldr r5, .L1090
subs r3, r3, #5
cmp r2, r3
- blt .L1052
+ blt .L1075
uxth r0, r0
ldrh r9, [r6, r0, lsl #1]
cmp r9, #0
- beq .L1052
+ beq .L1075
ldr r3, [r4, #32]
- cbnz r3, .L1052
+ cbnz r3, .L1075
movs r2, #1
str r2, [r4, #32]
strh r3, [r6, r0, lsl #1] @ movhi
@@ -7436,45 +7569,45 @@ ftl_map_blk_gc:
ldrh r2, [r4, #2]
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
- ldrh r3, [r5, #104]
+ ldrh r3, [r5, #308]
cmp r2, r3
- bcc .L1053
+ bcc .L1076
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1053:
+.L1076:
movs r6, #0
-.L1054:
+.L1077:
ldrh r2, [r4, #6]
uxth fp, r6
cmp r2, fp
- bhi .L1061
+ bhi .L1084
movs r1, #1
mov r0, r9
bl FtlFreeSysBlkQueueIn
movs r3, #0
str r3, [r4, #32]
-.L1052:
+.L1075:
ldrh r2, [r4, #2]
- ldrh r3, [r5, #104]
+ ldrh r3, [r5, #308]
cmp r2, r3
- bcc .L1062
+ bcc .L1085
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1062:
+.L1085:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1061:
+.L1084:
uxth r7, r6
ldr r2, [r10, r7, lsl #2]
add r3, r10, r7, lsl #2
str r3, [sp, #4]
cmp r9, r2, lsr #10
- bne .L1055
+ bne .L1078
ldr r2, [r5, #3308]
ldr r8, [r5, #3336]
- ldr r0, .L1067+4
+ ldr r0, .L1090+4
str r2, [r5, #3464]
str r8, [r5, #3468]
ldr r2, [r10, r7, lsl #2]
@@ -7484,43 +7617,43 @@ ftl_map_blk_gc:
bl FlashReadPages
ldrh r2, [r8, #8]
cmp r2, fp
- beq .L1056
+ beq .L1079
movw r2, #611
- ldr r1, .L1067+8
- ldr r0, .L1067+12
+ ldr r1, .L1090+8
+ ldr r0, .L1090+12
bl sftl_printk
-.L1056:
+.L1079:
ldr r2, [r5, #3456]
adds r2, r2, #1
- bne .L1057
-.L1059:
+ bne .L1080
+.L1082:
ldr r2, [sp, #4]
movs r3, #0
str r3, [r2]
-.L1058:
- b .L1058
-.L1057:
+.L1081:
+ b .L1081
+.L1080:
ldrh r2, [r8, #8]
cmp r2, fp
- bne .L1059
+ bne .L1082
ldrh r2, [r8]
ldrh r3, [r4, #4]
cmp r2, r3
- bne .L1059
+ bne .L1082
ldr r2, [r5, #3464]
mov r1, r7
mov r0, r4
bl FtlMapWritePage
-.L1055:
+.L1078:
adds r6, r6, #1
- b .L1054
-.L1068:
+ b .L1077
+.L1091:
.align 2
-.L1067:
+.L1090:
.word .LANCHOR0
.word .LANCHOR0+3456
.word .LANCHOR1+395
- .word .LC1
+ .word .LC8
.fnend
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 1
@@ -7537,24 +7670,24 @@ flush_l2p_region:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r4, #12
- ldr r5, .L1070
+ ldr r5, .L1093
muls r4, r0, r4
- ldr r3, [r5, #2492]
+ ldr r3, [r5, #2544]
addw r0, r5, #3396
adds r2, r3, r4
ldrh r1, [r3, r4]
ldr r2, [r2, #8]
bl FtlMapWritePage
- ldr r3, [r5, #2492]
+ ldr r3, [r5, #2544]
movs r0, #0
add r4, r4, r3
ldr r3, [r4, #4]
bic r3, r3, #-2147483648
str r3, [r4, #4]
pop {r3, r4, r5, pc}
-.L1071:
+.L1094:
.align 2
-.L1070:
+.L1093:
.word .LANCHOR0
.fnend
.size flush_l2p_region, .-flush_l2p_region
@@ -7572,107 +7705,107 @@ log2phys:
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r0
- ldr r4, .L1085
+ ldr r4, .L1108
mov r5, r1
mov r7, r2
- ldr r3, [r4, #2504]
- ldrh r10, [r4, #108]
+ ldr r3, [r4, #2556]
+ ldrh r10, [r4, #312]
cmp r0, r3
- bcc .L1073
+ bcc .L1096
movw r2, #813
- ldr r1, .L1085+4
- ldr r0, .L1085+8
+ ldr r1, .L1108+4
+ ldr r0, .L1108+8
bl sftl_printk
-.L1073:
- ldr r3, [r4, #2504]
+.L1096:
+ ldr r3, [r4, #2556]
cmp r9, r3
- bcs .L1074
+ bcs .L1097
add r10, r10, #7
- ldrh r2, [r4, #138]
+ ldrh r2, [r4, #342]
lsr r6, r9, r10
- ldr r1, [r4, #2492]
+ ldr r1, [r4, #2544]
movs r3, #0
uxth r6, r6
mov fp, #12
-.L1075:
+.L1098:
uxth r8, r3
cmp r8, r2
- bcc .L1080
+ bcc .L1103
bl select_l2p_ram_region
mul fp, fp, r0
- ldr r3, [r4, #2492]
+ ldr r3, [r4, #2544]
mov r8, r0
ldrh r1, [r3, fp]
add r2, r3, fp
movw r3, #65535
cmp r1, r3
- beq .L1081
+ beq .L1104
ldr r3, [r2, #4]
cmp r3, #0
- bge .L1081
+ bge .L1104
bl flush_l2p_region
-.L1081:
+.L1104:
mov r1, r8
mov r0, r6
bl load_l2p_region
- b .L1077
-.L1074:
+ b .L1100
+.L1097:
mov r0, #-1
- cbnz r7, .L1072
+ cbnz r7, .L1095
str r0, [r5]
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1080:
+.L1103:
adds r3, r3, #1
mla r0, fp, r3, r1
ldrh r0, [r0, #-12]
cmp r0, r6
- bne .L1075
-.L1077:
+ bne .L1098
+.L1100:
movs r0, #1
movs r3, #12
lsl r0, r0, r10
subs r0, r0, #1
and r0, r0, r9
uxth r0, r0
- cbnz r7, .L1078
- ldr r2, [r4, #2492]
+ cbnz r7, .L1101
+ ldr r2, [r4, #2544]
mla r3, r3, r8, r2
ldr r3, [r3, #8]
ldr r3, [r3, r0, lsl #2]
str r3, [r5]
-.L1079:
- ldr r2, [r4, #2492]
+.L1102:
+ ldr r2, [r4, #2544]
movs r3, #12
mla r8, r3, r8, r2
ldr r3, [r8, #4]
adds r2, r3, #1
- beq .L1083
+ beq .L1106
adds r3, r3, #1
str r3, [r8, #4]
-.L1083:
+.L1106:
movs r0, #0
-.L1072:
+.L1095:
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1078:
+.L1101:
mul r3, r3, r8
- ldr r2, [r4, #2492]
+ ldr r2, [r4, #2544]
ldr r1, [r5]
add r2, r2, r3
ldr r2, [r2, #8]
str r1, [r2, r0, lsl #2]
- ldr r2, [r4, #2492]
- strh r6, [r4, #2496] @ movhi
+ ldr r2, [r4, #2544]
+ strh r6, [r4, #2548] @ movhi
add r3, r3, r2
ldr r2, [r3, #4]
orr r2, r2, #-2147483648
str r2, [r3, #4]
- b .L1079
-.L1086:
+ b .L1102
+.L1109:
.align 2
-.L1085:
+.L1108:
.word .LANCHOR0
.word .LANCHOR1+410
- .word .LC1
+ .word .LC8
.fnend
.size log2phys, .-log2phys
.align 1
@@ -7690,24 +7823,24 @@ FtlWriteDump_data:
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #24
sub sp, sp, #24
- ldr r4, .L1105
- ldrh r2, [r4, #2352]
+ ldr r4, .L1128
+ ldrh r2, [r4, #32]
cmp r2, #0
- beq .L1088
- ldrb r3, [r4, #2356] @ zero_extendqisi2
+ beq .L1111
+ ldrb r3, [r4, #36] @ zero_extendqisi2
cmp r3, #0
- bne .L1088
- ldrb r1, [r4, #2355] @ zero_extendqisi2
- ldrh r3, [r4, #102]
+ bne .L1111
+ ldrb r1, [r4, #35] @ zero_extendqisi2
+ ldrh r3, [r4, #306]
muls r3, r1, r3
cmp r2, r3
- beq .L1088
- ldrb r7, [r4, #2358] @ zero_extendqisi2
- cbnz r7, .L1087
- ldr r6, [r4, #2504]
+ beq .L1111
+ ldrb r7, [r4, #38] @ zero_extendqisi2
+ cbnz r7, .L1110
+ ldr r6, [r4, #2556]
mov r2, r7
mov r1, sp
- ldrh r8, [r4, #32]
+ ldrh r8, [r4, #236]
subs r6, r6, #1
mov r0, r6
bl log2phys
@@ -7720,47 +7853,47 @@ FtlWriteDump_data:
str r0, [sp, #12]
str r5, [sp, #16]
str r7, [r5, #4]
- beq .L1090
+ beq .L1113
mov r2, r7
movs r1, #1
add r0, sp, #4
bl FlashReadPages
-.L1091:
- ldr r9, .L1105+4
+.L1114:
+ ldr r9, .L1128+4
movs r7, #0
lsl r8, r8, #2
mov r10, r7
movw r3, #61589
strh r3, [r5] @ movhi
-.L1092:
+.L1115:
cmp r8, r7
- bne .L1096
-.L1093:
+ bne .L1119
+.L1116:
movs r3, #1
-.L1104:
- strb r3, [r4, #2358]
-.L1087:
+.L1127:
+ strb r3, [r4, #38]
+.L1110:
add sp, sp, #24
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1090:
- ldrh r2, [r4, #110]
+.L1113:
+ ldrh r2, [r4, #314]
movs r1, #255
bl ftl_memset
- b .L1091
-.L1096:
- ldrh r3, [r4, #2352]
+ b .L1114
+.L1119:
+ ldrh r3, [r4, #32]
cmp r3, #0
- beq .L1093
+ beq .L1116
ldr r3, [sp, #8]
mov r0, r9
str r6, [r5, #8]
adds r7, r7, #1
str r3, [r5, #12]
- ldrh r3, [r4, #2348]
+ ldrh r3, [r4, #28]
strh r3, [r5, #2] @ movhi
bl get_new_active_ppa
- ldr r3, [r4, #2544]
+ ldr r3, [r4, #2596]
movs r1, #1
str r0, [sp, #8]
add r0, sp, #4
@@ -7769,21 +7902,21 @@ FtlWriteDump_data:
adds r2, r3, #1
it eq
moveq r3, r10
- str r3, [r4, #2544]
+ str r3, [r4, #2596]
movs r3, #0
mov r2, r3
bl FlashProgPages
- ldrh r0, [r4, #2348]
+ ldrh r0, [r4, #28]
bl decrement_vpc_count
- b .L1092
-.L1088:
+ b .L1115
+.L1111:
movs r3, #0
- b .L1104
-.L1106:
+ b .L1127
+.L1129:
.align 2
-.L1105:
+.L1128:
.word .LANCHOR0
- .word .LANCHOR0+2348
+ .word .LANCHOR0+28
.fnend
.size FtlWriteDump_data, .-FtlWriteDump_data
.align 1
@@ -7801,59 +7934,59 @@ FtlReUsePrevPpa:
.save {r4, r5, r6, r7, lr}
.pad #12
mov r6, r0
- ldr r5, .L1117
+ ldr r5, .L1140
ubfx r0, r1, #10, #16
str r1, [sp, #4]
bl P2V_block_in_plane
- ldr r2, [r5, #2324]
+ ldr r2, [r5, #76]
mov r7, r0
ldrh r3, [r2, r0, lsl #1]
- cbnz r3, .L1108
- ldr r4, [r5, #2340]
- cbz r4, .L1109
- ldr r1, [r5, #2316]
+ cbnz r3, .L1131
+ ldr r4, [r5, #2536]
+ cbz r4, .L1132
+ ldr r1, [r5, #2520]
mov ip, #6
- ldr r2, .L1117+4
+ ldr r2, .L1140+4
movw lr, #65535
- ldrh r0, [r5, #2344]
+ ldrh r0, [r5, #228]
subs r4, r4, r1
asrs r4, r4, #1
muls r4, r2, r4
uxth r4, r4
-.L1110:
+.L1133:
uxth r2, r3
cmp r0, r2
- bls .L1109
+ bls .L1132
cmp r4, r7
- bne .L1111
+ bne .L1134
mov r1, r4
- ldr r0, .L1117+8
+ ldr r0, .L1140+8
bl List_remove_node
- ldrh r3, [r5, #2344]
- cbnz r3, .L1112
+ ldrh r3, [r5, #228]
+ cbnz r3, .L1135
movw r2, #1733
- ldr r1, .L1117+12
- ldr r0, .L1117+16
+ ldr r1, .L1140+12
+ ldr r0, .L1140+16
bl sftl_printk
-.L1112:
- ldrh r3, [r5, #2344]
+.L1135:
+ ldrh r3, [r5, #228]
mov r0, r4
subs r3, r3, #1
- strh r3, [r5, #2344] @ movhi
+ strh r3, [r5, #228] @ movhi
bl INSERT_DATA_LIST
- ldr r2, [r5, #2324]
+ ldr r2, [r5, #76]
ldrh r3, [r2, r7, lsl #1]
-.L1108:
+.L1131:
adds r3, r3, #1
strh r3, [r2, r7, lsl #1] @ movhi
- b .L1109
-.L1111:
+ b .L1132
+.L1134:
mul r4, ip, r4
adds r3, r3, #1
ldrh r4, [r1, r4]
cmp r4, lr
- bne .L1110
-.L1109:
+ bne .L1133
+.L1132:
movs r2, #1
add r1, sp, #4
mov r0, r6
@@ -7861,14 +7994,14 @@ FtlReUsePrevPpa:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L1118:
+.L1141:
.align 2
-.L1117:
+.L1140:
.word .LANCHOR0
.word -1431655765
- .word .LANCHOR0+2340
+ .word .LANCHOR0+2536
.word .LANCHOR1+419
- .word .LC1
+ .word .LC8
.fnend
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
.align 1
@@ -7888,138 +8021,137 @@ FtlRecoverySuperblock:
ldrh r3, [r0]
.pad #52
sub sp, sp, #52
- mov fp, r0
+ mov r10, r0
cmp r3, r2
- beq .L1243
+ beq .L1270
ldrh r3, [r0, #2]
- ldr r4, .L1252
- str r3, [sp, #4]
+ ldr r4, .L1278
+ str r3, [sp]
ldrb r3, [r0, #6] @ zero_extendqisi2
- ldr r1, [sp, #4]
+ ldr r1, [sp]
str r3, [sp, #20]
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
cmp r3, r1
mov r3, #0
- bne .L1122
+ bne .L1145
strh r3, [r0, #4] @ movhi
-.L1250:
- strb r3, [fp, #6]
-.L1243:
+.L1276:
+ strb r3, [r10, #6]
+.L1270:
movs r0, #0
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1122:
+.L1145:
ldrh r0, [r0, #16]
-.L1123:
+.L1146:
cmp r0, r2
uxth r6, r3
add r3, r3, #1
- beq .L1124
+ beq .L1147
movs r1, #1
bl FtlGetLastWrittenPage
adds r7, r0, #1
mov r5, r0
- beq .L1125
- ldr r3, [r4, #3176]
+ beq .L1148
+ ldr r3, [r4, #3180]
movs r2, #0
- ldrh lr, [r4, #32]
+ ldrh fp, [r4, #236]
movw r9, #65535
ldr r0, [r4, #3292]
- mov r10, #20
- str r3, [sp]
- ldrh r3, [r4, #110]
- ldr r8, [r4, #3180]
- ldrh r7, [r4, #112]
+ mov lr, #20
+ str r3, [sp, #4]
+ ldrh r3, [r4, #314]
+ ldr r8, [r4, #3184]
+ ldrh r7, [r4, #316]
mov r4, r2
str r3, [sp, #8]
- add r3, fp, #16
+ add r3, r10, #16
mov ip, r3
str r3, [sp, #16]
-.L1126:
+.L1149:
uxth r3, r2
- cmp lr, r3
- bhi .L1132
- ldr r6, .L1252
+ cmp fp, r3
+ bhi .L1155
+ ldr r6, .L1278
movs r2, #0
mov r1, r4
movw r9, #65535
bl FlashReadPages
- ldr r3, [r6, #2544]
+ ldr r3, [r6, #2596]
uxth r2, r5
ldr r8, [r6, #3292]
str r2, [sp, #8]
- subs r3, r3, #1
- str r3, [sp]
- mov r7, r8
+ add fp, r3, #-1
movs r3, #0
-.L1133:
+ mov r7, r8
+.L1156:
uxth r2, r3
cmp r4, r2
- bhi .L1138
- bne .L1136
+ bhi .L1161
+ bne .L1159
adds r3, r5, #1
uxth r3, r3
- str r3, [sp, #12]
-.L1244:
+ str r3, [sp, #8]
+.L1271:
ldr r0, [r8, #4]
ubfx r0, r0, #10, #16
bl P2V_plane
- ldrh r3, [r6, #102]
- ldr r2, [sp, #12]
- str r0, [sp, #8]
+ ldrh r3, [r6, #306]
+ ldr r2, [sp, #8]
+ str r0, [sp, #4]
cmp r3, r2
- bne .L1140
- ldrh r3, [sp, #12]
- strh r3, [fp, #2] @ movhi
+ bne .L1163
+ ldrh r3, [sp, #8]
+ strh r3, [r10, #2] @ movhi
movs r3, #0
- strb r3, [fp, #6]
- strh r3, [fp, #4] @ movhi
-.L1140:
- ldr r3, [sp, #12]
- ldr r2, [sp, #4]
- cmp r3, r2
- bne .L1141
+ strb r3, [r10, #6]
+ strh r3, [r10, #4] @ movhi
+.L1163:
ldr r3, [sp, #8]
+ ldr r2, [sp]
+ cmp r3, r2
+ bne .L1164
+ ldr r3, [sp, #4]
ldr r2, [sp, #20]
cmp r3, r2
- bne .L1141
- ldr r1, [sp, #12]
+ bne .L1164
+ ldr r1, [sp, #8]
mov r2, r3
-.L1251:
- mov r0, fp
+.L1277:
+ mov r0, r10
bl ftl_sb_update_avl_pages
- b .L1243
-.L1124:
+ b .L1270
+.L1147:
uxth r1, r3
adds r1, r1, #8
- ldrh r0, [fp, r1, lsl #1]
- b .L1123
-.L1125:
- ldr r3, [sp, #4]
- cbz r3, .L1127
+ ldrh r0, [r10, r1, lsl #1]
+ b .L1146
+.L1148:
+ ldr r3, [sp]
+ cbz r3, .L1150
mov r2, #1800
- ldr r1, .L1252+4
- ldr r0, .L1252+8
+ ldr r1, .L1278+4
+ ldr r0, .L1278+8
bl sftl_printk
-.L1127:
+.L1150:
ldr r3, [sp, #20]
- cbz r3, .L1128
+ cbz r3, .L1151
cmp r6, r3
- beq .L1128
+ beq .L1151
movw r2, #1801
- ldr r1, .L1252+4
- ldr r0, .L1252+8
+ ldr r1, .L1278+4
+ ldr r0, .L1278+8
bl sftl_printk
-.L1128:
+.L1151:
movs r3, #0
- strh r3, [fp, #2] @ movhi
- b .L1250
-.L1132:
+ strh r3, [r10, #2] @ movhi
+ b .L1276
+.L1155:
ldrh r3, [ip], #2
cmp r3, r9
- beq .L1129
- mla r1, r10, r4, r0
+ beq .L1152
+ mla r1, lr, r4, r0
orr r3, r5, r3, lsl #10
str r3, [r1, #4]
ldr r3, [sp, #8]
@@ -8028,7 +8160,7 @@ FtlRecoverySuperblock:
addmi r3, r3, #3
bic r3, r3, #3
mov r6, r3
- ldr r3, [sp]
+ ldr r3, [sp, #4]
add r6, r6, r3
mov r3, r7
muls r3, r4, r3
@@ -8040,437 +8172,429 @@ FtlRecoverySuperblock:
str r6, [r1, #8]
add r3, r3, r8
str r3, [r1, #12]
-.L1129:
+.L1152:
adds r2, r2, #1
- b .L1126
-.L1138:
+ b .L1149
+.L1161:
ldr r2, [r7]
- cbnz r2, .L1134
- ldr r10, [r7, #12]
- ldr r2, [r10, #4]
+ cbnz r2, .L1157
+ ldr r2, [r7, #12]
+ str r2, [sp, #4]
+ ldr r2, [r2, #4]
adds r0, r2, #1
- beq .L1135
- ldr r1, [r6, #2544]
+ beq .L1158
+ ldr r1, [r6, #2596]
mov r0, r2
bl ftl_cmp_data_ver
- cbz r0, .L1135
+ cbz r0, .L1158
adds r2, r2, #1
- str r2, [r6, #2544]
-.L1135:
- ldr r2, [r10]
+ str r2, [r6, #2596]
+.L1158:
+ ldr r2, [sp, #4]
+ ldr r2, [r2]
adds r2, r2, #1
- bne .L1137
-.L1136:
+ bne .L1160
+.L1159:
uxth r2, r5
uxth r3, r3
- str r2, [sp, #12]
+ str r2, [sp, #8]
movs r2, #20
mla r8, r2, r3, r8
- b .L1244
-.L1134:
+ b .L1271
+.L1157:
ldr r9, [sp, #8]
-.L1137:
+.L1160:
adds r3, r3, #1
adds r7, r7, #20
- b .L1133
-.L1141:
+ b .L1156
+.L1164:
movw r3, #65535
cmp r9, r3
- bne .L1142
- ldrb r3, [fp, #8] @ zero_extendqisi2
+ bne .L1165
+ ldrb r3, [r10, #8] @ zero_extendqisi2
cmp r3, #0
- bne .L1143
-.L1142:
+ bne .L1166
+.L1165:
ldr r3, [r6, #3452]
uxth r7, r5
uxth r5, r5
movw r8, #65535
adds r3, r3, #1
- itt eq
- ldreq r3, [sp]
- streq r3, [r6, #3452]
- ldr r3, [sp, #4]
- ldr r6, .L1252
+ ldr r3, [sp]
+ it eq
+ streq fp, [r6, #3452]
+ ldr r6, .L1278
adds r3, r3, #7
cmp r5, r3
itet gt
subgt r4, r7, #7
- ldrle r4, [sp, #4]
+ ldrle r4, [sp]
uxthgt r4, r4
-.L1146:
+.L1169:
cmp r4, r7
- bhi .L1153
+ bhi .L1176
movs r3, #0
- ldrh lr, [r6, #32]
+ ldrh lr, [r6, #236]
ldr r0, [r6, #3292]
mov r5, r3
ldr r1, [sp, #16]
mov ip, #20
- b .L1154
-.L1148:
+ b .L1177
+.L1171:
ldrh r2, [r1], #2
cmp r2, r8
- beq .L1147
+ beq .L1170
mla r9, ip, r5, r0
adds r5, r5, #1
orr r2, r4, r2, lsl #10
uxth r5, r5
str r2, [r9, #4]
-.L1147:
+.L1170:
adds r3, r3, #1
-.L1154:
+.L1177:
uxth r2, r3
cmp lr, r2
- bhi .L1148
+ bhi .L1171
movs r2, #0
mov r1, r5
bl FlashReadPages
ldr r3, [r6, #3292]
movs r2, #20
mla r5, r2, r5, r3
-.L1149:
+.L1172:
cmp r5, r3
- bne .L1152
+ bne .L1175
adds r4, r4, #1
uxth r4, r4
- b .L1146
-.L1152:
+ b .L1169
+.L1175:
ldr r2, [r3]
- cbnz r2, .L1143
+ cbnz r2, .L1166
ldr r2, [r3, #12]
ldrh r1, [r2]
cmp r1, r8
- beq .L1151
+ beq .L1174
ldr r2, [r2, #4]
adds r1, r2, #1
it ne
strne r2, [r6, #3452]
-.L1151:
+.L1174:
adds r3, r3, #20
- b .L1149
-.L1153:
+ b .L1172
+.L1176:
mov r3, #-1
str r3, [r6, #3452]
-.L1143:
- ldr r10, .L1252
+.L1166:
+ ldr r8, .L1278
movs r3, #1
- ldr r5, [sp, #4]
- mov r4, r10
- strh r3, [r10, #3476] @ movhi
-.L1155:
- ldrh r6, [r4, #32]
- movs r3, #0
+ ldr r5, [sp]
+ mov r4, r8
+ strh r3, [r8, #3476] @ movhi
+.L1178:
+ ldrh r6, [r4, #236]
+ movw r9, #65535
ldr r0, [r4, #3292]
- mov r9, r3
- ldr r1, [sp, #16]
- movw r7, #65535
mov ip, #20
-.L1156:
+ ldr r1, [sp, #16]
+ movs r3, #0
+ str r3, [sp, #12]
+.L1179:
uxth r2, r3
cmp r6, r2
- bhi .L1158
+ bhi .L1181
movs r2, #0
- mov r1, r9
+ ldr r1, [sp, #12]
bl FlashReadPages
movs r3, #0
-.L1249:
+.L1275:
str r3, [sp, #24]
+ ldr r2, [sp, #12]
ldrh r3, [sp, #24]
- cmp r9, r3
- bhi .L1190
+ cmp r2, r3
+ bhi .L1211
adds r5, r5, #1
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
uxth r5, r5
cmp r3, r5
- bne .L1155
- ldrh r2, [r4, #32]
+ bne .L1178
+ ldrh r2, [r4, #236]
movw r0, #65535
movs r3, #0
- strh r5, [fp, #2] @ movhi
- strh r3, [fp, #4] @ movhi
-.L1191:
+ strh r5, [r10, #2] @ movhi
+ strh r3, [r10, #4] @ movhi
+.L1212:
uxth r1, r3
cmp r1, r2
- bcs .L1243
+ bcs .L1270
ldr r1, [sp, #16]
ldrh r4, [r1], #2
cmp r4, r0
str r1, [sp, #16]
add r1, r3, #1
- bne .L1250
+ bne .L1276
mov r3, r1
- b .L1191
-.L1158:
+ b .L1212
+.L1181:
ldrh r2, [r1], #2
- cmp r2, r7
- beq .L1157
- mla lr, ip, r9, r0
+ cmp r2, r9
+ beq .L1180
+ ldr r7, [sp, #12]
orr r2, r5, r2, lsl #10
+ mla lr, ip, r7, r0
str r2, [lr, #4]
- add r2, r9, #1
- uxth r9, r2
-.L1157:
+ mov r2, r7
+ adds r2, r2, #1
+ uxth r2, r2
+ str r2, [sp, #12]
+.L1180:
adds r3, r3, #1
- b .L1156
-.L1253:
+ b .L1179
+.L1279:
.align 2
-.L1252:
+.L1278:
.word .LANCHOR0
.word .LANCHOR1+435
- .word .LC1
-.L1190:
+ .word .LC8
+.L1211:
ldr r3, [sp, #24]
movs r7, #20
muls r7, r3, r7
ldr r3, [r4, #3292]
str r3, [sp, #28]
- add r8, r3, r7
- ldr r6, [r8, #4]
+ add r9, r3, r7
+ ldr r6, [r9, #4]
ubfx r0, r6, #10, #16
str r6, [sp, #44]
bl P2V_plane
- ldr r3, [sp, #4]
+ ldr r3, [sp]
cmp r5, r3
- bcc .L1160
+ bcc .L1183
ldr r3, [sp, #28]
- bne .L1161
+ bne .L1184
ldr r2, [sp, #20]
cmp r2, r0
- bhi .L1160
-.L1161:
- ldr r2, [sp, #12]
- cmp r5, r2
- bne .L1162
+ bhi .L1183
+.L1184:
ldr r2, [sp, #8]
+ cmp r5, r2
+ bne .L1185
+ ldr r2, [sp, #4]
cmp r2, r0
- beq .L1163
-.L1162:
+ beq .L1186
+.L1185:
ldr r3, [r3, r7]
adds r3, r3, #1
- beq .L1164
- ldr r8, [r8, #12]
+ beq .L1187
+ ldr r9, [r9, #12]
movw r3, #61589
- ldrh r2, [r8]
+ ldrh r2, [r9]
cmp r2, r3
- beq .L1165
- ldrh r0, [fp]
-.L1247:
+ beq .L1188
+ ldrh r0, [r10]
+.L1272:
bl decrement_vpc_count
- b .L1160
-.L1165:
- ldr r3, [r8, #4]
- adds r6, r3, #1
- str r3, [sp]
- beq .L1166
- ldr r1, [r4, #2544]
- mov r0, r3
+ b .L1183
+.L1188:
+ ldr fp, [r9, #4]
+ cmp fp, #-1
+ beq .L1189
+ ldr r1, [r4, #2596]
+ mov r0, fp
bl ftl_cmp_data_ver
- cbz r0, .L1166
- ldr r3, [sp]
- adds r3, r3, #1
- str r3, [r4, #2544]
-.L1166:
- ldrh r2, [r8]
+ cbz r0, .L1189
+ add r3, fp, #1
+ str r3, [r4, #2596]
+.L1189:
+ ldrh r2, [r9]
movw r3, #61589
cmp r2, r3
- beq .L1167
+ beq .L1190
mov r2, #1952
- ldr r1, .L1254
- ldr r0, .L1254+4
+ ldr r1, .L1280
+ ldr r0, .L1280+4
bl sftl_printk
-.L1167:
- ldr r6, [r8, #8]
+.L1190:
+ ldr r6, [r9, #8]
add r1, sp, #40
- ldr r3, [r8, #12]
+ ldr r3, [r9, #12]
movs r2, #0
mov r0, r6
str r3, [sp, #36]
bl log2phys
ldr r1, [r4, #3452]
adds r0, r1, #1
- beq .L1168
- ldr r0, [sp]
+ beq .L1191
+ mov r0, fp
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1168
+ beq .L1191
ldr r3, [sp, #36]
adds r2, r3, #1
- beq .L1169
+ beq .L1192
ldr r0, [r4, #3292]
movs r2, #0
movs r1, #1
add r0, r0, r7
str r3, [r0, #4]
- ldr r8, [r0, #12]
+ ldr r9, [r0, #12]
bl FlashReadPages
ldr r2, [r4, #3292]
ldr r1, [r2, r7]
adds r3, r2, r7
adds r1, r1, #1
- bne .L1170
-.L1171:
+ bne .L1193
+.L1194:
mov r3, #-1
str r3, [sp, #36]
-.L1178:
+.L1201:
ldr r0, [sp, #36]
adds r1, r0, #1
- beq .L1160
-.L1194:
+ beq .L1183
+.L1215:
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldrh r3, [r4, #40]
+ ldrh r3, [r4, #244]
mov r6, r0
cmp r3, r0
- bhi .L1186
- movw r2, #2065
- ldr r1, .L1254
- ldr r0, .L1254+4
+ bhi .L1207
+ movw r2, #2057
+ ldr r1, .L1280
+ ldr r0, .L1280+4
bl sftl_printk
-.L1186:
- ldr r3, [r10, #2324]
+.L1207:
+ ldr r3, [r8, #76]
ldrh r3, [r3, r6, lsl #1]
cmp r3, #0
- beq .L1187
+ beq .L1208
mov r0, r6
- b .L1247
-.L1169:
+ b .L1272
+.L1192:
ldr r3, [sp, #44]
ldr r2, [sp, #40]
cmp r2, r3
- bne .L1160
+ bne .L1183
movs r2, #1
add r1, sp, #36
mov r0, r6
bl log2phys
-.L1160:
+.L1183:
ldr r3, [sp, #24]
adds r3, r3, #1
- b .L1249
-.L1170:
- ldr r1, [r8, #8]
+ b .L1275
+.L1193:
+ ldr r1, [r9, #8]
cmp r6, r1
- bne .L1171
- ldr r1, [r8, #4]
+ bne .L1194
+ ldr r1, [r9, #4]
ldr r0, [r4, #3452]
str r1, [sp, #28]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1171
+ beq .L1194
ldr r1, [sp, #40]
ldr r0, [sp, #44]
cmp r1, r0
- bne .L1173
-.L1176:
+ bne .L1196
+.L1199:
ldr r1, [sp, #36]
mov r0, r6
bl FtlReUsePrevPpa
- b .L1171
-.L1173:
+ b .L1194
+.L1196:
ldr r0, [sp, #36]
cmp r1, r0
- beq .L1171
+ beq .L1194
adds r0, r1, #1
- beq .L1174
+ beq .L1197
str r1, [r3, #4]
movs r2, #0
movs r1, #1
mov r0, r3
- ldr r8, [r3, #12]
+ ldr r9, [r3, #12]
bl FlashReadPages
-.L1175:
+.L1198:
ldr r3, [r4, #3292]
ldr r3, [r3, r7]
adds r3, r3, #1
- beq .L1176
- ldr r3, [r8, #4]
+ beq .L1199
+ ldr r3, [r9, #4]
ldr r0, [r4, #3452]
mov r1, r3
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1176
+ beq .L1199
mov r1, r3
ldr r0, [sp, #28]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1171
- b .L1176
-.L1174:
+ beq .L1194
+ b .L1199
+.L1197:
str r1, [r2, r7]
- b .L1175
-.L1168:
+ b .L1198
+.L1191:
ldr r3, [sp, #44]
ldr r2, [sp, #40]
cmp r2, r3
- beq .L1178
- ldr r3, [sp, #36]
- ldr r2, [r4, #48]
- cmp r2, r3, lsr #10
- bhi .L1180
- adds r3, r3, #1
-.L1246:
- bne .L1160
+ beq .L1201
+ ldr r1, [sp, #36]
+ adds r0, r1, #1
+ beq .L1203
+ ldr r3, [r8, #252]
+ cmp r3, r1, lsr #10
+ bhi .L1203
+ ldr r0, .L1280+8
+.L1274:
+ bl sftl_printk
+ b .L1183
+.L1203:
movs r2, #1
add r1, sp, #44
mov r0, r6
bl log2phys
- ldr r8, [sp, #40]
- cmp r8, #-1
- beq .L1178
+ ldr r9, [sp, #40]
+ cmp r9, #-1
+ beq .L1201
ldr r3, [sp, #36]
- cmp r8, r3
- beq .L1184
- ubfx r0, r8, #10, #16
+ cmp r9, r3
+ beq .L1205
+ ubfx r0, r9, #10, #16
bl P2V_block_in_plane
- ldrh r3, [r4, #2348]
+ ldrh r3, [r4, #28]
cmp r3, r0
- beq .L1185
- ldrh r3, [r4, #2396]
+ beq .L1206
+ ldrh r3, [r4, #80]
cmp r3, r0
- beq .L1185
- ldrh r3, [r4, #2444]
+ beq .L1206
+ ldrh r3, [r4, #128]
cmp r3, r0
- bne .L1178
-.L1185:
- ldr r0, [r10, #3292]
+ bne .L1201
+.L1206:
+ ldr r0, [r8, #3292]
movs r2, #0
movs r1, #1
- str r8, [r0, #4]
+ str r9, [r0, #4]
ldr r7, [r0, #12]
bl FlashReadPages
- ldr r3, [r10, #3292]
+ ldr r3, [r8, #3292]
ldr r3, [r3]
adds r3, r3, #1
- beq .L1178
+ beq .L1201
ldr r1, [r7, #4]
- ldr r0, [sp]
+ mov r0, fp
bl ftl_cmp_data_ver
cmp r0, #0
- bne .L1178
+ bne .L1201
movs r2, #1
add r1, sp, #40
mov r0, r6
bl log2phys
- b .L1178
-.L1180:
- ldr r0, [r4, #3292]
- movs r2, #0
- movs r1, #1
- ldr r7, [r0, #12]
- str r3, [r0, #4]
- bl FlashReadPages
- ldr r3, [r7, #8]
- cmp r6, r3
- bne .L1160
- ldrh r2, [r7]
- movw r3, #61589
- cmp r2, r3
- b .L1246
-.L1187:
+ b .L1201
+.L1208:
mov r1, r6
- ldr r0, .L1254+8
- bl sftl_printk
- b .L1160
-.L1164:
+ ldr r0, .L1280+12
+ b .L1274
+.L1187:
ldr r3, [r4, #3480]
cmp r3, #31
itttt ls
@@ -8478,37 +8602,35 @@ FtlRecoverySuperblock:
addls r3, r3, #1
strls r3, [r4, #3480]
strls r6, [r2, #3484]
- ldrh r0, [fp]
+ ldrh r0, [r10]
bl decrement_vpc_count
ldr r3, [r4, #3452]
adds r2, r3, #1
- bne .L1189
- ldr r3, [sp]
-.L1248:
- str r3, [r4, #3452]
- b .L1160
-.L1189:
- ldr r2, [sp]
- cmp r2, r3
- bcs .L1160
- mov r3, r2
- b .L1248
-.L1163:
- ldrb r3, [sp, #8] @ zero_extendqisi2
+ bne .L1210
+.L1273:
+ str fp, [r4, #3452]
+ b .L1183
+.L1210:
+ cmp fp, r3
+ bcs .L1183
+ b .L1273
+.L1186:
+ ldrb r3, [sp, #4] @ zero_extendqisi2
mov r1, r5
- strh r5, [fp, #2] @ movhi
- ldr r2, [sp, #8]
- strb r3, [fp, #6]
- b .L1251
-.L1184:
- mov r0, r8
- b .L1194
-.L1255:
+ strh r5, [r10, #2] @ movhi
+ ldr r2, [sp, #4]
+ strb r3, [r10, #6]
+ b .L1277
+.L1205:
+ mov r0, r9
+ b .L1215
+.L1281:
.align 2
-.L1254:
+.L1280:
.word .LANCHOR1+435
- .word .LC1
- .word .LC100
+ .word .LC8
+ .word .LC109
+ .word .LC110
.fnend
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 1
@@ -8526,120 +8648,120 @@ ftl_check_vpc:
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
movs r4, #0
- ldr r6, .L1280
- ldr r7, .L1280+4
- ldr r1, .L1280+8
+ ldr r6, .L1306
+ ldr r7, .L1306+4
+ ldr r1, .L1306+8
mov r5, r6
- ldr r0, .L1280+12
+ ldr r0, .L1306+12
bl sftl_printk
mov r1, #8192
- ldr r0, .L1280+4
+ ldr r0, .L1306+4
bl __memzero
-.L1257:
- ldr r3, [r6, #2504]
+.L1283:
+ ldr r3, [r6, #2556]
cmp r4, r3
- bcc .L1259
- ldr r8, .L1280+4
+ bcc .L1285
+ ldr r8, .L1306+4
movs r4, #0
- ldr r10, .L1280+24
+ ldr r10, .L1306+24
mov r7, r4
movw r9, #65535
-.L1260:
- ldrh r2, [r5, #40]
+.L1286:
+ ldrh r2, [r5, #244]
uxth r3, r4
cmp r2, r3
- bhi .L1262
- ldr r4, [r5, #2340]
- cbz r4, .L1263
- ldr r3, [r5, #2316]
+ bhi .L1288
+ ldr r4, [r5, #2536]
+ cbz r4, .L1289
+ ldr r3, [r5, #2520]
movs r6, #0
- ldrh r8, [r5, #2344]
+ ldrh r8, [r5, #228]
mov fp, #6
- ldr r9, .L1280+4
+ ldr r9, .L1306+4
subs r4, r4, r3
- ldr r3, .L1280+16
+ ldr r3, .L1306+16
asrs r4, r4, #1
- ldr r10, .L1280+28
+ ldr r10, .L1306+28
muls r4, r3, r4
uxth r4, r4
-.L1264:
+.L1290:
uxth r3, r6
cmp r8, r3
- bls .L1263
- ldr r3, [r5, #2324]
+ bls .L1289
+ ldr r3, [r5, #76]
ldrh r2, [r3, r4, lsl #1]
- cbz r2, .L1265
+ cbz r2, .L1291
movs r7, #1
ldrh r3, [r9, r4, lsl #1]
mov r1, r4
mov r0, r10
bl sftl_printk
-.L1265:
+.L1291:
mul r4, fp, r4
- ldr r3, [r5, #2316]
+ ldr r3, [r5, #2520]
adds r6, r6, #1
ldrh r4, [r3, r4]
movw r3, #65535
cmp r4, r3
- bne .L1264
-.L1263:
- cbz r7, .L1256
- movw r2, #2389
- ldr r1, .L1280+8
- ldr r0, .L1280+20
+ bne .L1290
+.L1289:
+ cbz r7, .L1282
+ movw r2, #2383
+ ldr r1, .L1306+8
+ ldr r0, .L1306+20
bl sftl_printk
-.L1256:
+.L1282:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1259:
+.L1285:
movs r2, #0
add r1, sp, #4
mov r0, r4
bl log2phys
ldr r0, [sp, #4]
adds r3, r0, #1
- beq .L1258
+ beq .L1284
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r7, r0, lsl #1]
adds r3, r3, #1
strh r3, [r7, r0, lsl #1] @ movhi
-.L1258:
+.L1284:
adds r4, r4, #1
- b .L1257
-.L1262:
- ldr r3, [r5, #2324]
+ b .L1283
+.L1288:
+ ldr r3, [r5, #76]
uxth r6, r4
ldrh r2, [r3, r6, lsl #1]
ldrh r3, [r8, r6, lsl #1]
cmp r2, r3
- beq .L1261
+ beq .L1287
mov r1, r6
mov r0, r10
bl sftl_printk
- ldr r3, [r5, #2324]
+ ldr r3, [r5, #76]
ldrh r3, [r3, r6, lsl #1]
cmp r3, r9
- beq .L1261
+ beq .L1287
ldrh r2, [r8, r6, lsl #1]
cmp r2, r3
it hi
movhi r7, #1
-.L1261:
+.L1287:
adds r4, r4, #1
- b .L1260
-.L1281:
+ b .L1286
+.L1307:
.align 2
-.L1280:
+.L1306:
.word .LANCHOR0
.word check_vpc_table
.word .LANCHOR1+457
- .word .LC101
+ .word .LC111
.word -1431655765
- .word .LC1
- .word .LC102
- .word .LC103
+ .word .LC8
+ .word .LC112
+ .word .LC113
.fnend
.size ftl_check_vpc, .-ftl_check_vpc
.align 1
@@ -8656,42 +8778,42 @@ ftl_scan_all_data:
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movs r5, #0
- ldr r6, .L1296
+ ldr r6, .L1322
.pad #32
sub sp, sp, #32
movs r1, #0
- ldr r8, .L1296+16
+ ldr r8, .L1322+16
mov r4, r6
- ldr r0, .L1296+4
+ ldr r0, .L1322+4
bl sftl_printk
-.L1283:
- ldr r3, [r6, #2504]
+.L1309:
+ ldr r3, [r6, #2556]
cmp r5, r3
- bcc .L1289
+ bcc .L1315
add sp, sp, #32
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L1289:
+.L1315:
movs r2, #0
add r1, sp, #28
mov r0, r5
bl log2phys
ubfx r3, r5, #0, #11
- cbnz r3, .L1284
+ cbnz r3, .L1310
ldr r2, [sp, #28]
mov r1, r5
mov r0, r8
bl sftl_printk
-.L1284:
+.L1310:
ldr r3, [sp, #28]
adds r2, r3, #1
- beq .L1286
+ beq .L1312
str r3, [r4, #3460]
movs r2, #0
ldr r3, [r4, #3304]
movs r1, #1
ldr r7, [r4, #3336]
- ldr r0, .L1296+8
+ ldr r0, .L1322+8
str r3, [r4, #3464]
str r5, [r4, #3472]
str r7, [r4, #3468]
@@ -8699,16 +8821,16 @@ ftl_scan_all_data:
bl FlashReadPages
ldr r3, [r4, #3456]
cmp r3, #256
- beq .L1287
+ beq .L1313
adds r3, r3, #1
- beq .L1287
+ beq .L1313
ldr r3, [r7, #8]
cmp r5, r3
- beq .L1286
-.L1287:
+ beq .L1312
+.L1313:
ldr r2, [r4, #3464]
ldr r3, [r4, #3468]
- ldr r0, .L1296+12
+ ldr r0, .L1322+12
ldr r1, [r2, #4]
str r1, [sp, #16]
mov r1, r5
@@ -8723,17 +8845,17 @@ ftl_scan_all_data:
ldr r3, [r3]
ldr r2, [r4, #3460]
bl sftl_printk
-.L1286:
+.L1312:
adds r5, r5, #1
- b .L1283
-.L1297:
+ b .L1309
+.L1323:
.align 2
-.L1296:
+.L1322:
.word .LANCHOR0
- .word .LC104
+ .word .LC114
.word .LANCHOR0+3456
- .word .LC106
- .word .LC105
+ .word .LC116
+ .word .LC115
.fnend
.size ftl_scan_all_data, .-ftl_scan_all_data
.align 1
@@ -8745,84 +8867,80 @@ ftl_scan_all_data:
.type FtlGcScanTempBlk, %function
FtlGcScanTempBlk:
.fnstart
- @ args = 0, pretend = 0, frame = 48
+ @ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1333
+ ldr r3, .L1361
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #52
- sub sp, sp, #52
+ .pad #44
+ sub sp, sp, #44
mov r5, r0
- str r1, [sp, #12]
+ str r1, [sp, #4]
ldrh r6, [r3, #4]
movw r3, #65535
cmp r6, r3
- beq .L1325
- cbnz r6, .L1299
-.L1300:
+ beq .L1351
+ cbnz r6, .L1325
+.L1326:
bl FtlGcPageVarInit
- b .L1301
-.L1325:
+ b .L1327
+.L1351:
movs r6, #0
-.L1299:
- ldr r3, .L1333+4
- ldr r2, [sp, #12]
- ldrh r3, [r3, #102]
+.L1325:
+ ldr r3, .L1361+4
+ ldr r2, [sp, #4]
+ ldrh r3, [r3, #306]
cmp r3, r2
- beq .L1300
-.L1301:
- movw r9, #65535
- movs r3, #0
- str r3, [sp, #4]
-.L1302:
+ beq .L1326
+.L1327:
+ mov fp, #0
+.L1345:
+ ldrh r2, [r5]
movs r3, #0
strb r3, [r5, #8]
- ldrh r3, [r5]
- cmp r3, r9
- beq .L1303
- ldr r4, .L1333+4
-.L1322:
+ movw r3, #65535
+ cmp r2, r3
+ beq .L1328
+ ldr r4, .L1361+4
+.L1348:
ldr r3, [r4, #3292]
movs r2, #0
- ldrh ip, [r4, #32]
+ ldrh ip, [r4, #236]
add lr, r5, #16
- ldrh fp, [r4, #110]
+ ldrh r10, [r4, #314]
mov r7, r2
+ str r3, [sp]
+ movw r8, #65535
+ ldr r3, [r4, #3180]
+ ldr r9, [r4, #3184]
str r3, [sp, #8]
- mov r8, #20
- ldr r3, [r4, #3176]
- ldr r10, [r4, #3180]
- str r3, [sp, #16]
- ldrh r3, [r4, #112]
- str r3, [sp, #20]
-.L1304:
+ ldrh r3, [r4, #316]
+ str r3, [sp, #12]
+.L1329:
uxth r3, r2
cmp ip, r3
- bhi .L1308
- mov fp, #0
+ bhi .L1333
+ mov r10, #0
movs r2, #0
mov r1, r7
- ldr r0, [sp, #8]
+ ldr r0, [sp]
bl FlashReadPages
-.L1309:
- uxth r3, fp
+.L1334:
+ uxth r3, r10
cmp r7, r3
- bhi .L1320
+ bhi .L1346
ldr r3, [sp, #4]
+ add fp, fp, #1
adds r6, r6, #1
uxth r6, r6
- adds r3, r3, #1
- str r3, [sp, #4]
- ldr r2, [sp, #4]
- ldr r3, [sp, #12]
- cmp r3, r2
- bls .L1321
-.L1323:
- ldrh r3, [r4, #102]
+ cmp r3, fp
+ bls .L1347
+.L1349:
+ ldrh r3, [r4, #306]
cmp r3, r6
- bhi .L1322
-.L1303:
- ldr r3, .L1333
+ bhi .L1348
+.L1328:
+ ldr r3, .L1361
movw r2, #65535
strh r6, [r5, #2] @ movhi
mov r1, r6
@@ -8831,24 +8949,25 @@ FtlGcScanTempBlk:
movs r2, #0
strb r2, [r5, #6]
bl ftl_sb_update_avl_pages
- b .L1324
-.L1308:
+ b .L1350
+.L1333:
ldrh r3, [lr], #2
- cmp r3, r9
- beq .L1305
- ldr r1, [sp, #8]
+ cmp r3, r8
+ beq .L1330
+ ldr r0, [sp]
+ movs r1, #20
orr r3, r6, r3, lsl #10
- mla r1, r8, r7, r1
+ mla r1, r1, r7, r0
str r3, [r1, #4]
- mov r3, fp
+ mov r3, r10
muls r3, r7, r3
it mi
addmi r3, r3, #3
bic r3, r3, #3
mov r0, r3
- ldr r3, [sp, #16]
+ ldr r3, [sp, #8]
add r0, r0, r3
- ldr r3, [sp, #20]
+ ldr r3, [sp, #12]
muls r3, r7, r3
add r7, r7, #1
it mi
@@ -8856,114 +8975,121 @@ FtlGcScanTempBlk:
uxth r7, r7
bic r3, r3, #3
str r0, [r1, #8]
- add r3, r3, r10
+ add r3, r3, r9
str r3, [r1, #12]
-.L1305:
+.L1330:
adds r2, r2, #1
- b .L1304
-.L1320:
+ b .L1329
+.L1346:
movs r3, #20
- ldr r1, [r4, #3292]
- mul r3, r3, fp
- adds r2, r1, r3
- ldr r8, [r1, r3]
- ldr r0, [r2, #4]
- str r0, [sp, #8]
+ ldr r2, [r4, #3292]
+ mul r3, r3, r10
+ adds r1, r2, r3
+ ldr r8, [r2, r3]
+ ldr r0, [r1, #4]
+ ldr r9, [r1, #12]
+ str r0, [sp]
cmp r8, #0
- bne .L1310
- ldr r10, [r2, #12]
- ldrh r2, [r10]
- cmp r2, r9
- bne .L1311
-.L1310:
+ bne .L1335
+ ldrh r1, [r9]
+ movw r2, #65535
+ cmp r1, r2
+ bne .L1336
+.L1359:
ldrh r2, [r5]
movs r1, #0
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
movs r6, #0
strh r1, [r3, r2, lsl #1] @ movhi
ldrh r0, [r5]
bl INSERT_FREE_LIST
- strh r9, [r5] @ movhi
+ movw r3, #65535
+ strh r3, [r5] @ movhi
+ strh r3, [r4, #176] @ movhi
bl FtlGcPageVarInit
- b .L1302
-.L1311:
- ldr r0, [r10, #8]
- ldr r2, [r4, #2504]
- str r3, [sp, #16]
+ b .L1345
+.L1336:
+ ldr r0, [r9, #8]
+ ldr r2, [r4, #2556]
+ str r3, [sp, #8]
cmp r0, r2
- bhi .L1310
+ bhi .L1359
mov r2, r8
- add r1, sp, #24
+ add r1, sp, #16
bl log2phys
- ldr r2, [r10, #12]
- ldr r1, [sp, #24]
- ldr r3, [sp, #16]
+ ldr r2, [r9, #12]
+ ldr r1, [sp, #16]
+ ldr r3, [sp, #8]
cmp r2, r1
- beq .L1314
-.L1315:
- ldr r2, [r10, #8]
- add fp, fp, #1
- ldr r1, [sp, #8]
- ldr r0, [r10, #12]
+ beq .L1339
+.L1341:
+ ldr r2, [r9, #8]
+.L1360:
+ ldr r1, [sp]
+ add r10, r10, #1
+ ldr r0, [r9, #12]
bl FtlGcUpdatePage
- b .L1309
-.L1314:
- str r3, [sp, #16]
+ b .L1334
+.L1339:
+ str r3, [sp, #8]
adds r3, r2, #1
- beq .L1315
- str r2, [sp, #32]
+ beq .L1341
+ str r2, [sp, #24]
movs r1, #1
ldr r2, [r4, #3320]
- add r0, sp, #28
- str r2, [sp, #36]
+ add r0, sp, #20
+ str r2, [sp, #28]
ldr r2, [r4, #3340]
- str r2, [sp, #40]
+ str r2, [sp, #32]
mov r2, r8
bl FlashReadPages
- ldrh r2, [r4, #58]
+ ldrh r2, [r4, #262]
ldr r1, [r4, #3292]
- ldr r3, [sp, #16]
- ldr r0, [sp, #36]
+ ldr r3, [sp, #8]
+ ldr r0, [sp, #28]
lsls r2, r2, #7
add ip, r3, r1
-.L1316:
+.L1342:
cmp r8, r2
- beq .L1315
+ beq .L1341
ldr r1, [ip, #8]
ldr r3, [r0, r8, lsl #2]
ldr r1, [r1, r8, lsl #2]
cmp r1, r3
- beq .L1317
- ldr r2, [sp, #32]
+ beq .L1343
+ ldr r2, [sp, #24]
ldrh r1, [r5]
- ldr r0, .L1333+8
+ ldr r0, .L1361+8
bl sftl_printk
- b .L1310
-.L1317:
+ b .L1359
+.L1343:
add r8, r8, #1
- b .L1316
-.L1321:
- ldr r2, .L1333
+ b .L1342
+.L1335:
+ mov r2, #-1
+ b .L1360
+.L1347:
+ ldr r2, .L1361
+ movw r1, #65535
ldrh r3, [r2, #4]
- cmp r3, r9
- beq .L1323
- ldr r1, [sp, #4]
- add r3, r3, r1
+ cmp r3, r1
+ beq .L1349
+ add r3, r3, fp
strh r3, [r2, #4] @ movhi
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
cmp r3, r6
- bls .L1323
-.L1324:
+ bls .L1349
+.L1350:
mov r0, #-1
- add sp, sp, #52
+ add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1334:
+.L1362:
.align 2
-.L1333:
+.L1361:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC107
+ .word .LC117
.fnend
.size FtlGcScanTempBlk, .-FtlGcScanTempBlk
.align 1
@@ -8977,37 +9103,44 @@ FtlReadRefresh:
.fnstart
@ args = 0, pretend = 0, frame = 88
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1348
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- .pad #88
- sub sp, sp, #88
- mov r4, r3
- ldr r0, [r3, #2720]
- cmp r0, #0
- beq .L1336
- ldr r1, [r3, #2724]
- ldr r2, [r3, #2504]
- cmp r1, r2
- bcs .L1337
- mov r5, #2048
-.L1342:
- ldr r0, [r4, #2724]
- ldr r3, [r4, #2504]
+ push {r4, r5, r6, r7, r8, r9, lr}
+ .save {r4, r5, r6, r7, r8, r9, lr}
+ .pad #92
+ sub sp, sp, #92
+ ldr r6, .L1379
+ ldr r9, [r6, #2724]
+ mov r5, r6
+ cmp r9, #0
+ beq .L1364
+ ldr r2, [r6, #2728]
+ ldr r3, [r6, #2556]
+ cmp r2, r3
+ bcs .L1365
+ mov r4, #2048
+.L1370:
+ ldr r0, [r5, #2728]
+ ldr r3, [r5, #2556]
cmp r0, r3
- bcs .L1339
+ bcc .L1366
+.L1369:
+ mov r0, #-1
+.L1363:
+ add sp, sp, #92
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, pc}
+.L1366:
movs r2, #0
mov r1, sp
bl log2phys
ldr r2, [sp]
- ldr r3, [r4, #2724]
+ ldr r3, [r5, #2728]
adds r1, r2, #1
add r3, r3, #1
- str r3, [r4, #2724]
- beq .L1340
+ str r3, [r5, #2728]
+ beq .L1368
str r3, [sp, #20]
add r0, sp, #88
- ldr r3, [r4, #3328]
+ ldr r3, [r5, #3328]
movs r1, #1
str r2, [sp, #8]
movs r2, #0
@@ -9018,54 +9151,65 @@ FtlReadRefresh:
bl FlashReadPages
ldr r3, [sp, #4]
cmp r3, #256
- bne .L1339
+ bne .L1369
ldr r0, [sp]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1339:
- mov r0, #-1
-.L1335:
- add sp, sp, #88
- @ sp needed
- pop {r4, r5, r6, pc}
-.L1340:
- subs r5, r5, #1
- bne .L1342
- b .L1339
-.L1337:
- ldr r2, [r3, #2508]
+ b .L1369
+.L1368:
+ subs r4, r4, #1
+ bne .L1370
+ b .L1369
+.L1365:
+ ldr r3, [r6, #2560]
movs r0, #0
- str r0, [r3, #2720]
- str r0, [r3, #2724]
- str r2, [r3, #2716]
- b .L1335
-.L1336:
- ldr r1, [r3, #2508]
- ldr r6, [r3, #2716]
- add r2, r1, #1048576
- cmp r6, r2
- bhi .L1345
- ldr r2, [r3, #2564]
- lsrs r5, r2, #10
- mov r2, #33554432
- asrs r2, r2, r5
- add r2, r2, r6
- cmp r1, r2
- bhi .L1345
- ldrb r3, [r3, #2296] @ zero_extendqisi2
- cmp r3, #0
- bne .L1335
-.L1345:
- movs r3, #1
+ str r0, [r6, #2724]
+ str r0, [r6, #2728]
+ str r3, [r6, #2720]
+ b .L1363
+.L1364:
+ ldr r8, [r6, #2560]
+ movw r4, #10000
+ ldr r1, [r6, #2616]
+ ldr r7, [r6, #2720]
+ add r3, r8, #1048576
+ cmp r1, r4
+ ite hi
+ movhi r4, #31
+ movls r4, #63
+ cmp r7, r3
+ bhi .L1374
+ ldr r3, [r6, #2556]
+ lsrs r1, r1, #10
+ mov r0, #1000
+ adds r1, r1, #1
+ muls r0, r3, r0
+ bl __aeabi_uidiv
+ add r0, r0, r7
+ cmp r8, r0
+ bhi .L1374
+ ldrh r3, [r6, #2500]
+ ands r0, r4, r3
+ bne .L1376
+ ldr r2, [r6, #2744]
+ cmp r3, r2
+ beq .L1363
+.L1374:
+ ldrh r3, [r5, #2500]
movs r0, #0
- str r3, [r4, #2720]
- str r0, [r4, #2724]
- str r1, [r4, #2716]
- b .L1335
-.L1349:
+ str r0, [r5, #2728]
+ str r8, [r5, #2720]
+ str r3, [r5, #2744]
+ movs r3, #1
+ str r3, [r5, #2724]
+ b .L1363
+.L1376:
+ mov r0, r9
+ b .L1363
+.L1380:
.align 2
-.L1348:
+.L1379:
.word .LANCHOR0
.fnend
.size FtlReadRefresh, .-FtlReadRefresh
@@ -9083,30 +9227,30 @@ l2p_flush:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r4, #0
- ldr r5, .L1354
+ ldr r5, .L1385
movs r6, #12
bl FtlWriteDump_data
-.L1351:
- ldrh r3, [r5, #138]
+.L1382:
+ ldrh r3, [r5, #342]
uxth r0, r4
cmp r3, r0
- bhi .L1353
+ bhi .L1384
movs r0, #0
pop {r4, r5, r6, pc}
-.L1353:
- ldr r2, [r5, #2492]
+.L1384:
+ ldr r2, [r5, #2544]
uxth r3, r4
mla r3, r6, r3, r2
ldr r3, [r3, #4]
cmp r3, #0
- bge .L1352
+ bge .L1383
bl flush_l2p_region
-.L1352:
+.L1383:
adds r4, r4, #1
- b .L1351
-.L1355:
+ b .L1382
+.L1386:
.align 2
-.L1354:
+.L1385:
.word .LANCHOR0
.fnend
.size l2p_flush, .-l2p_flush
@@ -9124,31 +9268,31 @@ FtlVendorPartWrite:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r2
- ldr r4, .L1368
+ ldr r4, .L1399
adds r2, r0, r1
.pad #108
sub sp, sp, #108
mov r8, r0
mov r6, r1
- ldrh r3, [r4, #96]
+ ldrh r3, [r4, #300]
cmp r2, r3
- bhi .L1364
- ldrh r7, [r4, #108]
+ bhi .L1395
+ ldrh r7, [r4, #312]
mov r9, #0
lsr r7, r0, r7
lsl fp, r7, #2
-.L1358:
- cbnz r6, .L1363
-.L1356:
+.L1389:
+ cbnz r6, .L1394
+.L1387:
mov r0, r9
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1363:
+.L1394:
ldr r3, [r4, #3376]
mov r0, r8
ldr r2, [r3, fp]
- ldrh r3, [r4, #58]
+ ldrh r3, [r4, #262]
str r2, [sp, #12]
mov r1, r3
str r3, [sp, #8]
@@ -9161,9 +9305,9 @@ FtlVendorPartWrite:
cmp r6, r5
it cc
uxthcc r5, r6
- cbz r2, .L1360
+ cbz r2, .L1391
cmp r5, r3
- beq .L1360
+ beq .L1391
ldr r3, [r4, #3312]
add r0, sp, #20
str r2, [sp, #24]
@@ -9173,7 +9317,7 @@ FtlVendorPartWrite:
add r3, sp, #40
str r3, [sp, #32]
bl FlashReadPages
-.L1361:
+.L1392:
lsls r3, r5, #9
ldr r0, [r4, #3312]
mov r1, r10
@@ -9187,7 +9331,7 @@ FtlVendorPartWrite:
bl ftl_memcpy
mov r1, r7
ldr r2, [r4, #3312]
- ldr r0, .L1368+4
+ ldr r0, .L1399+4
adds r7, r7, #1
bl FtlMapWritePage
ldr r3, [sp, #8]
@@ -9195,19 +9339,19 @@ FtlVendorPartWrite:
it eq
moveq r9, #-1
add r10, r10, r3
- b .L1358
-.L1360:
- ldrh r2, [r4, #110]
+ b .L1389
+.L1391:
+ ldrh r2, [r4, #314]
movs r1, #0
ldr r0, [r4, #3312]
bl ftl_memset
- b .L1361
-.L1364:
+ b .L1392
+.L1395:
mov r9, #-1
- b .L1356
-.L1369:
+ b .L1387
+.L1400:
.align 2
-.L1368:
+.L1399:
.word .LANCHOR0
.word .LANCHOR0+3612
.fnend
@@ -9224,46 +9368,46 @@ Ftl_save_ext_data:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L1372
- ldr r3, .L1372+4
- ldr r1, [r2, #2640]
+ ldr r2, .L1403
+ ldr r3, .L1403+4
+ ldr r1, [r2, #2644]
cmp r1, r3
- bne .L1370
- ldr r3, .L1372+8
- add r2, r2, #2640
+ bne .L1401
+ ldr r3, .L1403+8
+ addw r2, r2, #2644
movs r1, #1
movs r0, #0
str r3, [r2, #4]
- ldr r3, [r2, #-108]
+ ldr r3, [r2, #-60]
str r3, [r2, #88]
- ldr r3, [r2, #-104]
+ ldr r3, [r2, #-56]
str r3, [r2, #92]
- ldr r3, [r2, #-112]
+ ldr r3, [r2, #-64]
str r3, [r2, #8]
- ldr r3, [r2, #-124]
+ ldr r3, [r2, #-76]
str r3, [r2, #12]
- ldr r3, [r2, #-132]
+ ldr r3, [r2, #-84]
str r3, [r2, #16]
- ldr r3, [r2, #-116]
+ ldr r3, [r2, #-68]
str r3, [r2, #20]
- ldr r3, [r2, #-88]
+ ldr r3, [r2, #-40]
str r3, [r2, #28]
- ldr r3, [r2, #-80]
+ ldr r3, [r2, #-32]
str r3, [r2, #32]
- ldr r3, [r2, #-128]
+ ldr r3, [r2, #-80]
str r3, [r2, #36]
- ldr r3, [r2, #-120]
+ ldr r3, [r2, #-72]
str r3, [r2, #40]
- ldr r3, [r2, #-76]
+ ldr r3, [r2, #-28]
str r3, [r2, #44]
- ldr r3, [r2, #-72]
+ ldr r3, [r2, #-24]
str r3, [r2, #48]
b FtlVendorPartWrite
-.L1370:
+.L1401:
bx lr
-.L1373:
+.L1404:
.align 2
-.L1372:
+.L1403:
.word .LANCHOR0
.word 1179929683
.word 1342177352
@@ -9282,7 +9426,7 @@ FtlEctTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, lr}
.save {r3, lr}
- ldr r3, .L1379
+ ldr r3, .L1410
ldrh r2, [r3, #3656]
cmp r2, #31
itett ls
@@ -9290,19 +9434,19 @@ FtlEctTblFlush:
movhi r2, #32
strhls r2, [r3, #3656] @ movhi
movls r2, #1
- cbnz r0, .L1376
+ cbnz r0, .L1407
ldr r1, [r3, #3352]
ldr r0, [r1, #20]
ldr r1, [r1, #16]
add r2, r2, r0
cmp r1, r2
- bcc .L1377
-.L1376:
+ bcc .L1408
+.L1407:
ldr r2, [r3, #3352]
movs r0, #64
ldr r1, [r2, #16]
str r1, [r2, #20]
- ldr r1, .L1379+4
+ ldr r1, .L1410+4
str r1, [r2]
ldrh r1, [r3, #3344]
ldr r2, [r3, #3352]
@@ -9315,12 +9459,12 @@ FtlEctTblFlush:
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1377:
+.L1408:
movs r0, #0
pop {r3, pc}
-.L1380:
+.L1411:
.align 2
-.L1379:
+.L1410:
.word .LANCHOR0
.word 1112818501
.fnend
@@ -9355,30 +9499,30 @@ FtlVendorPartRead:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r2
- ldr r4, .L1392
+ ldr r4, .L1423
adds r2, r0, r1
.pad #108
sub sp, sp, #108
mov r8, r0
mov r7, r1
- ldrh r3, [r4, #96]
+ ldrh r3, [r4, #300]
cmp r2, r3
- bhi .L1391
- ldrh r6, [r4, #108]
+ bhi .L1422
+ ldrh r6, [r4, #312]
mov r9, #0
lsr r6, r0, r6
lsl fp, r6, #2
-.L1384:
- cbnz r7, .L1390
-.L1382:
+.L1415:
+ cbnz r7, .L1421
+.L1413:
mov r0, r9
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1390:
+.L1421:
ldr r3, [r4, #3376]
mov r0, r8
- ldrh r5, [r4, #58]
+ ldrh r5, [r4, #262]
ldr r3, [r3, fp]
mov r1, r5
str r3, [sp, #8]
@@ -9392,7 +9536,7 @@ FtlVendorPartRead:
uxthcc r5, r7
lsls r2, r5, #9
str r2, [sp, #8]
- cbz r3, .L1386
+ cbz r3, .L1417
ldr r2, [r4, #3312]
add r0, sp, #20
str r3, [sp, #24]
@@ -9410,44 +9554,44 @@ FtlVendorPartRead:
it eq
moveq r9, #-1
cmp r2, #256
- bne .L1388
+ bne .L1419
mov r2, r3
mov r1, r6
- ldr r0, .L1392+4
+ ldr r0, .L1423+4
bl sftl_printk
ldr r2, [r4, #3312]
mov r1, r6
- ldr r0, .L1392+8
+ ldr r0, .L1423+8
bl FtlMapWritePage
-.L1388:
+.L1419:
ldr r1, [r4, #3312]
lsls r2, r5, #9
ldr r3, [sp, #4]
mov r0, r10
add r1, r1, r3, lsl #9
bl ftl_memcpy
-.L1389:
+.L1420:
ldr r3, [sp, #8]
adds r6, r6, #1
subs r7, r7, r5
add r8, r8, r5
add fp, fp, #4
add r10, r10, r3
- b .L1384
-.L1386:
+ b .L1415
+.L1417:
lsls r2, r5, #9
mov r1, r3
mov r0, r10
bl ftl_memset
- b .L1389
-.L1391:
+ b .L1420
+.L1422:
mov r9, #-1
- b .L1382
-.L1393:
+ b .L1413
+.L1424:
.align 2
-.L1392:
+.L1423:
.word .LANCHOR0
- .word .LC108
+ .word .LC118
.word .LANCHOR0+3612
.fnend
.size FtlVendorPartRead, .-FtlVendorPartRead
@@ -9465,33 +9609,33 @@ FtlLoadEctTbl:
push {r4, lr}
.save {r4, lr}
movs r0, #64
- ldr r4, .L1396
+ ldr r4, .L1427
ldr r2, [r4, #3352]
ldrh r1, [r4, #3344]
bl FtlVendorPartRead
ldr r3, [r4, #3352]
ldr r2, [r3]
- ldr r3, .L1396+4
+ ldr r3, .L1427+4
cmp r2, r3
- beq .L1395
- ldr r1, .L1396+8
- ldr r0, .L1396+12
+ beq .L1426
+ ldr r1, .L1427+8
+ ldr r0, .L1427+12
bl sftl_printk
ldrh r2, [r4, #3344]
movs r1, #0
ldr r0, [r4, #3352]
lsls r2, r2, #9
bl ftl_memset
-.L1395:
+.L1426:
movs r0, #0
pop {r4, pc}
-.L1397:
+.L1428:
.align 2
-.L1396:
+.L1427:
.word .LANCHOR0
.word 1112818501
- .word .LC109
- .word .LC71
+ .word .LC119
+ .word .LC77
.fnend
.size FtlLoadEctTbl, .-FtlLoadEctTbl
.align 1
@@ -9508,58 +9652,58 @@ Ftl_load_ext_data:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r1, #1
- ldr r4, .L1401
+ ldr r4, .L1432
movs r0, #0
- ldr r5, .L1401+4
- add r2, r4, #2640
+ ldr r5, .L1432+4
+ addw r2, r4, #2644
bl FtlVendorPartRead
- ldr r3, [r4, #2640]
+ ldr r3, [r4, #2644]
cmp r3, r5
- beq .L1399
+ beq .L1430
mov r1, #512
- add r0, r4, #2640
+ addw r0, r4, #2644
bl __memzero
- str r5, [r4, #2640]
-.L1399:
- ldr r3, [r4, #2640]
+ str r5, [r4, #2644]
+.L1430:
+ ldr r3, [r4, #2644]
cmp r3, r5
- bne .L1400
- ldr r3, [r4, #2728]
- str r3, [r4, #2532]
+ bne .L1431
ldr r3, [r4, #2732]
- str r3, [r4, #2536]
- ldr r3, [r4, #2648]
- str r3, [r4, #2528]
+ str r3, [r4, #2584]
+ ldr r3, [r4, #2736]
+ str r3, [r4, #2588]
ldr r3, [r4, #2652]
- str r3, [r4, #2516]
+ str r3, [r4, #2580]
ldr r3, [r4, #2656]
- str r3, [r4, #2508]
+ str r3, [r4, #2568]
ldr r3, [r4, #2660]
- str r3, [r4, #2524]
- ldr r3, [r4, #2668]
- str r3, [r4, #2552]
- ldr r3, [r4, #2672]
str r3, [r4, #2560]
+ ldr r3, [r4, #2664]
+ str r3, [r4, #2576]
+ ldr r3, [r4, #2672]
+ str r3, [r4, #2604]
ldr r3, [r4, #2676]
- str r3, [r4, #2512]
+ str r3, [r4, #2612]
ldr r3, [r4, #2680]
- str r3, [r4, #2520]
- ldr r3, [r4, #2684]
str r3, [r4, #2564]
+ ldr r3, [r4, #2684]
+ str r3, [r4, #2572]
ldr r3, [r4, #2688]
- str r3, [r4, #2568]
-.L1400:
- ldrh r2, [r4, #92]
- ldr r3, [r4, #2552]
- ldr r0, [r4, #2548]
- ldrh r1, [r4, #40]
+ str r3, [r4, #2616]
+ ldr r3, [r4, #2692]
+ str r3, [r4, #2620]
+.L1431:
+ ldrh r2, [r4, #296]
+ ldr r3, [r4, #2604]
+ ldr r0, [r4, #2600]
+ ldrh r1, [r4, #244]
mla r0, r0, r2, r3
bl __aeabi_uidiv
- str r0, [r4, #2556]
+ str r0, [r4, #2608]
pop {r3, r4, r5, pc}
-.L1402:
+.L1433:
.align 2
-.L1401:
+.L1432:
.word .LANCHOR0
.word 1179929683
.fnend
@@ -9595,10 +9739,10 @@ FtlMapBlkWriteDump_data:
.save {r4, r5, r6, lr}
mov r6, r0
ldr r3, [r0, #36]
- cbz r3, .L1404
+ cbz r3, .L1435
ldrh r5, [r0, #6]
movs r3, #0
- ldr r4, .L1408
+ ldr r4, .L1439
ldr r2, [r0, #24]
str r3, [r0, #36]
subs r5, r5, #1
@@ -9609,27 +9753,27 @@ FtlMapBlkWriteDump_data:
str r1, [r4, #3468]
ldr r2, [r2, r5, lsl #2]
str r2, [r4, #3460]
- cbz r2, .L1406
+ cbz r2, .L1437
movs r2, #1
add r0, r4, #3456
mov r1, r2
bl FlashReadPages
-.L1407:
+.L1438:
ldr r2, [r4, #3464]
mov r1, r5
mov r0, r6
pop {r4, r5, r6, lr}
b FtlMapWritePage
-.L1406:
- ldrh r2, [r4, #110]
+.L1437:
+ ldrh r2, [r4, #314]
movs r1, #255
bl ftl_memset
- b .L1407
-.L1404:
+ b .L1438
+.L1435:
pop {r4, r5, r6, pc}
-.L1409:
+.L1440:
.align 2
-.L1408:
+.L1439:
.word .LANCHOR0
.fnend
.size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
@@ -9647,76 +9791,76 @@ FtlVpcTblFlush:
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
- ldr r4, .L1425
+ ldr r4, .L1456
movs r1, #255
movw r7, #65535
- ldr r9, .L1425+16
+ ldr r9, .L1456+16
ldr r3, [r4, #3304]
add r8, r4, #3456
ldr r6, [r4, #3336]
- ldr r10, .L1425+20
+ ldr r10, .L1456+20
str r3, [r4, #3464]
- ldrh r3, [r4, #2576]
+ ldrh r3, [r4, #2628]
str r6, [r4, #3468]
str r5, [r6, #12]
strh r3, [r6, #2] @ movhi
movw r3, #61604
strh r3, [r6] @ movhi
- ldr r3, [r4, #2584]
+ ldr r3, [r4, #2636]
str r5, [r6, #8]
- ldrh r2, [r4, #2350]
+ ldrh r2, [r4, #30]
str r3, [r6, #4]
- ldr r3, .L1425+4
- str r3, [r4, #2268]
- ldr r3, .L1425+8
- str r3, [r4, #2272]
- ldrh r3, [r4, #2582]
- strh r3, [r4, #2276] @ movhi
- ldrh r3, [r4, #54]
- strb r3, [r4, #2278]
- ldrh r3, [r4, #2348]
- strh r3, [r4, #2282] @ movhi
- ldrb r3, [r4, #2354] @ zero_extendqisi2
+ ldr r3, .L1456+4
+ str r3, [r4, #2472]
+ ldr r3, .L1456+8
+ str r3, [r4, #2476]
+ ldrh r3, [r4, #2634]
+ strh r3, [r4, #2480] @ movhi
+ ldrh r3, [r4, #258]
+ strb r3, [r4, #2482]
+ ldrh r3, [r4, #28]
+ strh r3, [r4, #2486] @ movhi
+ ldrb r3, [r4, #34] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- ldrh r2, [r4, #2398]
- strh r3, [r4, #2284] @ movhi
- ldrb r3, [r4, #2356] @ zero_extendqisi2
- strb r3, [r4, #2279]
- ldrh r3, [r4, #2396]
- strh r3, [r4, #2286] @ movhi
- ldrb r3, [r4, #2402] @ zero_extendqisi2
+ ldrh r2, [r4, #82]
+ strh r3, [r4, #2488] @ movhi
+ ldrb r3, [r4, #36] @ zero_extendqisi2
+ strb r3, [r4, #2483]
+ ldrh r3, [r4, #80]
+ strh r3, [r4, #2490] @ movhi
+ ldrb r3, [r4, #86] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- strh r3, [r4, #2288] @ movhi
- ldrb r3, [r4, #2404] @ zero_extendqisi2
- strb r3, [r4, #2280]
- ldrh r3, [r4, #2444]
- ldrh r2, [r4, #2446]
+ strh r3, [r4, #2492] @ movhi
+ ldrb r3, [r4, #88] @ zero_extendqisi2
+ strb r3, [r4, #2484]
+ ldrh r3, [r4, #128]
+ ldrh r2, [r4, #130]
ldr r0, [r4, #3464]
- strh r3, [r4, #2290] @ movhi
- ldrb r3, [r4, #2450] @ zero_extendqisi2
+ strh r3, [r4, #2494] @ movhi
+ ldrb r3, [r4, #134] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- ldrh r2, [r4, #110]
- strh r3, [r4, #2292] @ movhi
- ldrb r3, [r4, #2452] @ zero_extendqisi2
- strb r3, [r4, #2281]
- ldr r3, [r4, #2548]
- str r3, [r4, #2300]
- ldr r3, [r4, #2540]
- str r3, [r4, #2308]
- ldr r3, [r4, #2544]
- str r3, [r4, #2304]
+ ldrh r2, [r4, #314]
+ strh r3, [r4, #2496] @ movhi
+ ldrb r3, [r4, #136] @ zero_extendqisi2
+ strb r3, [r4, #2485]
+ ldr r3, [r4, #2600]
+ str r3, [r4, #2504]
+ ldr r3, [r4, #2592]
+ str r3, [r4, #2512]
+ ldr r3, [r4, #2596]
+ str r3, [r4, #2508]
bl ftl_memset
movs r2, #48
- addw r1, r4, #2268
+ addw r1, r4, #2472
ldr r0, [r4, #3464]
bl ftl_memcpy
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
ldr r0, [r4, #3464]
- ldr r1, [r4, #2324]
+ ldr r1, [r4, #76]
lsls r2, r2, #1
adds r0, r0, #48
bl ftl_memcpy
- ldrh r0, [r4, #40]
+ ldrh r0, [r4, #244]
ldr r3, [r4, #3464]
ldr r1, [r4, #24]
lsrs r2, r0, #3
@@ -9728,35 +9872,35 @@ FtlVpcTblFlush:
bl ftl_memcpy
mov r0, r5
bl FtlUpdateVaildLpn
-.L1411:
+.L1442:
ldr r3, [r4, #3304]
- ldrh r1, [r4, #2578]
- ldrh r2, [r4, #2576]
+ ldrh r1, [r4, #2630]
+ ldrh r2, [r4, #2628]
str r3, [r4, #3464]
ldr r3, [r4, #3336]
str r3, [r4, #3468]
orr r3, r1, r2, lsl #10
str r3, [r4, #3460]
- ldrh r3, [r4, #104]
+ ldrh r3, [r4, #308]
subs r3, r3, #1
cmp r1, r3
- blt .L1412
+ blt .L1443
movs r3, #0
- ldrh r7, [r4, #2580]
- strh r3, [r4, #2578] @ movhi
- strh r2, [r4, #2580] @ movhi
+ ldrh r7, [r4, #2632]
+ strh r3, [r4, #2630] @ movhi
+ strh r2, [r4, #2632] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, [r4, #2540]
- strh r0, [r4, #2576] @ movhi
+ ldr r3, [r4, #2592]
+ strh r0, [r4, #2628] @ movhi
adds r2, r3, #1
- str r3, [r4, #2584]
- str r2, [r4, #2540]
+ str r3, [r4, #2636]
+ str r2, [r4, #2592]
lsls r2, r0, #10
str r2, [r4, #3460]
str r3, [r6, #4]
strh r0, [r6, #2] @ movhi
-.L1412:
- ldrh r1, [r4, #110]
+.L1443:
+ ldrh r1, [r4, #314]
ldr r0, [r4, #3304]
bl js_hash
movs r3, #1
@@ -9765,59 +9909,59 @@ FtlVpcTblFlush:
mov r1, r3
mov r0, r8
bl FlashProgPages
- ldrh r3, [r4, #2578]
+ ldrh r3, [r4, #2630]
ldr r2, [r4, #3456]
adds r3, r3, #1
uxth r3, r3
adds r1, r2, #1
- strh r3, [r4, #2578] @ movhi
- bne .L1413
+ strh r3, [r4, #2630] @ movhi
+ bne .L1444
cmp r3, #1
- bne .L1414
+ bne .L1445
movw r2, #1138
mov r1, r9
mov r0, r10
bl sftl_printk
-.L1414:
- ldrh r3, [r4, #2578]
+.L1445:
+ ldrh r3, [r4, #2630]
adds r5, r5, #1
uxth r5, r5
cmp r3, #1
ittt eq
- ldrheq r3, [r4, #104]
+ ldrheq r3, [r4, #308]
addeq r3, r3, #-1
- strheq r3, [r4, #2578] @ movhi
+ strheq r3, [r4, #2630] @ movhi
cmp r5, #3
- bls .L1411
+ bls .L1442
mov r2, r5
ldr r1, [r4, #3460]
- ldr r0, .L1425+12
+ ldr r0, .L1456+12
bl sftl_printk
-.L1417:
- b .L1417
-.L1413:
+.L1448:
+ b .L1448
+.L1444:
cmp r3, #1
- beq .L1411
+ beq .L1442
cmp r2, #256
- beq .L1411
+ beq .L1442
movw r3, #65535
cmp r7, r3
- beq .L1418
+ beq .L1449
movs r1, #1
mov r0, r7
bl FtlFreeSysBlkQueueIn
-.L1418:
+.L1449:
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1426:
+.L1457:
.align 2
-.L1425:
+.L1456:
.word .LANCHOR0
.word 1179929683
.word 1342177352
- .word .LC110
+ .word .LC120
.word .LANCHOR1+471
- .word .LC1
+ .word .LC8
.fnend
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.align 1
@@ -9854,17 +9998,17 @@ sftl_deinit:
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, lr}
.save {r3, lr}
- ldr r3, .L1430
+ ldr r3, .L1461
ldr r3, [r3]
cmp r3, #1
- bne .L1429
+ bne .L1460
bl FtlSysFlush
-.L1429:
+.L1460:
movs r0, #0
pop {r3, pc}
-.L1431:
+.L1462:
.align 2
-.L1430:
+.L1461:
.word .LANCHOR2
.fnend
.size sftl_deinit, .-sftl_deinit
@@ -9883,29 +10027,29 @@ sftl_discard:
.save {r4, r5, r6, r7, r8, lr}
.pad #8
adds r2, r0, r1
- ldr r4, .L1447
+ ldr r4, .L1478
mov r8, r0
mov r6, r1
- ldr r3, [r4, #140]
+ ldr r3, [r4, #344]
cmp r2, r3
- bhi .L1440
+ bhi .L1471
cmp r1, #31
- bhi .L1434
-.L1439:
+ bhi .L1465
+.L1470:
movs r0, #0
-.L1432:
+.L1463:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L1434:
- ldrh r5, [r4, #58]
+.L1465:
+ ldrh r5, [r4, #262]
mov r1, r5
bl __aeabi_uidiv
smulbb r3, r0, r5
mov r7, r0
sub r8, r8, r3
uxth r3, r8
- cbz r3, .L1435
+ cbz r3, .L1466
subs r5, r5, r3
adds r7, r7, #1
cmp r5, r6
@@ -9913,54 +10057,54 @@ sftl_discard:
movcs r5, r6
uxth r5, r5
subs r6, r6, r5
-.L1435:
+.L1466:
mov r3, #-1
str r3, [sp, #4]
-.L1436:
- ldrh r3, [r4, #58]
+.L1467:
+ ldrh r3, [r4, #262]
cmp r6, r3
- bcs .L1438
+ bcs .L1469
ldr r3, [r4, #3660]
cmp r3, #32
- bls .L1439
+ bls .L1470
movs r5, #0
str r5, [r4, #3660]
bl l2p_flush
bl FtlVpcTblFlush
- b .L1439
-.L1438:
+ b .L1470
+.L1469:
movs r2, #0
mov r1, sp
mov r0, r7
bl log2phys
ldr r3, [sp]
adds r3, r3, #1
- beq .L1437
+ beq .L1468
ldr r3, [r4, #3660]
movs r2, #1
add r1, sp, #4
mov r0, r7
adds r3, r3, #1
str r3, [r4, #3660]
- ldr r3, [r4, #2512]
+ ldr r3, [r4, #2564]
adds r3, r3, #1
- str r3, [r4, #2512]
+ str r3, [r4, #2564]
bl log2phys
ldr r0, [sp]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl decrement_vpc_count
-.L1437:
- ldrh r3, [r4, #58]
+.L1468:
+ ldrh r3, [r4, #262]
adds r7, r7, #1
subs r6, r6, r3
- b .L1436
-.L1440:
+ b .L1467
+.L1471:
mov r0, #-1
- b .L1432
-.L1448:
+ b .L1463
+.L1479:
.align 2
-.L1447:
+.L1478:
.word .LANCHOR0
.fnend
.size sftl_discard, .-sftl_discard
@@ -9979,94 +10123,94 @@ FtlVpcCheckAndModify:
.save {r4, r5, r6, r7, r8, r9, lr}
.pad #12
movs r5, #0
- ldr r4, .L1462
- ldr r1, .L1462+4
- ldr r0, .L1462+8
+ ldr r4, .L1493
+ ldr r1, .L1493+4
+ ldr r0, .L1493+8
bl sftl_printk
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
movs r1, #0
ldr r0, [r4, #3356]
lsls r2, r2, #1
bl ftl_memset
-.L1450:
- ldr r3, [r4, #2504]
+.L1481:
+ ldr r3, [r4, #2556]
cmp r5, r3
- bcc .L1452
- ldr r9, .L1462+12
+ bcc .L1483
+ ldr r9, .L1493+12
movs r7, #0
movw r8, #65535
-.L1453:
- ldrh r3, [r4, #40]
+.L1484:
+ ldrh r3, [r4, #244]
uxth r6, r7
cmp r3, r6
- bhi .L1458
+ bhi .L1489
bl l2p_flush
bl FtlVpcTblFlush
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
-.L1452:
+.L1483:
movs r2, #0
add r1, sp, #4
mov r0, r5
bl log2phys
ldr r0, [sp, #4]
adds r3, r0, #1
- beq .L1451
+ beq .L1482
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r2, [r4, #3356]
ldrh r3, [r2, r0, lsl #1]
adds r3, r3, #1
strh r3, [r2, r0, lsl #1] @ movhi
-.L1451:
+.L1482:
adds r5, r5, #1
- b .L1450
-.L1458:
- ldr r3, [r4, #2324]
+ b .L1481
+.L1489:
+ ldr r3, [r4, #76]
uxth r5, r7
ldrh r2, [r3, r5, lsl #1]
ldr r3, [r4, #3356]
ldrh r3, [r3, r5, lsl #1]
cmp r2, r3
- beq .L1455
+ beq .L1486
cmp r2, r8
- beq .L1455
+ beq .L1486
mov r1, r5
mov r0, r9
bl sftl_printk
- ldrh r3, [r4, #2348]
+ ldrh r3, [r4, #28]
cmp r3, r6
- beq .L1455
- ldrh r3, [r4, #2444]
+ beq .L1486
+ ldrh r3, [r4, #128]
cmp r3, r6
- beq .L1455
- ldrh r3, [r4, #2396]
+ beq .L1486
+ ldrh r3, [r4, #80]
cmp r3, r6
- beq .L1455
- ldr r3, [r4, #2324]
+ beq .L1486
+ ldr r3, [r4, #76]
ldrh r2, [r3, r5, lsl #1]
- cbnz r2, .L1457
+ cbnz r2, .L1488
ldr r2, [r4, #3356]
ldrh r2, [r2, r5, lsl #1]
strh r2, [r3, r5, lsl #1] @ movhi
-.L1455:
+.L1486:
adds r7, r7, #1
- b .L1453
-.L1457:
+ b .L1484
+.L1488:
ldr r2, [r4, #3356]
mov r0, r6
ldrh r2, [r2, r5, lsl #1]
strh r2, [r3, r5, lsl #1] @ movhi
bl update_vpc_list
- b .L1455
-.L1463:
+ b .L1486
+.L1494:
.align 2
-.L1462:
+.L1493:
.word .LANCHOR0
.word .LANCHOR1+486
- .word .LC101
.word .LC111
+ .word .LC121
.fnend
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 1
@@ -10083,42 +10227,42 @@ allocate_new_data_superblock:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
- ldr r4, .L1474
+ ldr r4, .L1505
ldrh r5, [r0]
- ldrh r3, [r4, #40]
+ ldrh r3, [r4, #244]
cmp r3, r5
- bcs .L1465
- movw r2, #2760
- ldr r1, .L1474+4
- ldr r0, .L1474+8
+ bcs .L1496
+ movw r2, #2755
+ ldr r1, .L1505+4
+ ldr r0, .L1505+8
bl sftl_printk
-.L1465:
+.L1496:
movw r3, #65535
cmp r5, r3
- beq .L1466
- ldr r3, [r4, #2324]
+ beq .L1497
+ ldr r3, [r4, #76]
mov r0, r5
ldrh r3, [r3, r5, lsl #1]
- cbz r3, .L1467
+ cbz r3, .L1498
bl INSERT_DATA_LIST
-.L1466:
+.L1497:
ldrh r0, [r4, #3442]
movs r3, #1
strb r3, [r6, #8]
movw r3, #65535
cmp r0, r3
- beq .L1468
+ beq .L1499
cmp r5, r0
- bne .L1469
- ldr r3, [r4, #2324]
+ bne .L1500
+ ldr r3, [r4, #76]
ldrh r3, [r3, r0, lsl #1]
- cbz r3, .L1470
-.L1469:
+ cbz r3, .L1501
+.L1500:
bl update_vpc_list
-.L1470:
+.L1501:
movw r3, #65535
strh r3, [r4, #3442] @ movhi
-.L1468:
+.L1499:
mov r0, r6
bl allocate_data_superblock
bl l2p_flush
@@ -10127,15 +10271,15 @@ allocate_new_data_superblock:
bl FtlVpcTblFlush
movs r0, #0
pop {r4, r5, r6, pc}
-.L1467:
+.L1498:
bl INSERT_FREE_LIST
- b .L1466
-.L1475:
+ b .L1497
+.L1506:
.align 2
-.L1474:
+.L1505:
.word .LANCHOR0
.word .LANCHOR1+507
- .word .LC1
+ .word .LC8
.fnend
.size allocate_new_data_superblock, .-allocate_new_data_superblock
.align 1
@@ -10147,125 +10291,107 @@ allocate_new_data_superblock:
.type FtlProgPages, %function
FtlProgPages:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r7, #0
- ldr r6, .L1490
- .pad #20
- sub sp, sp, #20
- mov r4, r3
+ .pad #12
+ movs r6, #0
+ ldr r10, .L1526+16
+ mov r5, r3
movs r2, #0
- ldr r10, .L1490+8
- mov r5, r0
- ldr fp, .L1490+12
+ mov r4, r0
+ ldr r8, .L1526
mov r9, r1
ldrb r3, [r3, #9] @ zero_extendqisi2
bl FlashProgPages
-.L1477:
- cmp r7, r9
- beq .L1484
- mov r8, #0
- b .L1485
-.L1480:
- ldr r0, [r5, #4]
+.L1508:
+ cmp r6, r9
+ bne .L1515
+ ldr r3, .L1526
+ ldrb r2, [r5, #6] @ zero_extendqisi2
+ ldrh r3, [r3, #236]
+ cmp r2, r3
+ bcc .L1507
+ movw r2, #997
+ ldr r1, .L1526+4
+ ldr r0, .L1526+8
+ bl sftl_printk
+.L1507:
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1510:
+ ldr r1, [r4, #4]
+ mov r0, r10
+ bl sftl_printk
+ ldr r0, [r4, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldrh r3, [r4]
- cmp r3, r0
- bne .L1478
- ldr r1, [r6, #2324]
- ldrh r0, [r4, #4]
- ldrh r2, [r1, r3, lsl #1]
- subs r2, r2, r0
- strh r2, [r1, r3, lsl #1] @ movhi
- ldrh r3, [r6, #102]
- strb r8, [r4, #6]
- strh r8, [r4, #4] @ movhi
- strh r3, [r4, #2] @ movhi
-.L1478:
- ldrh r3, [r4, #4]
- cbnz r3, .L1479
- mov r0, r4
+ bl decrement_vpc_count
+ ldrh r3, [r5, #4]
+ cbnz r3, .L1509
+ mov r0, r5
bl allocate_new_data_superblock
-.L1479:
- ldr r3, [r6, #2736]
- adds r3, r3, #1
- str r3, [r6, #2736]
- ldr r0, [r5, #4]
- ubfx r0, r0, #10, #16
- bl FtlGcMarkBadPhyBlk
- mov r0, r4
+.L1509:
+ mov r0, r5
bl get_new_active_ppa
movs r2, #0
- str r0, [r5, #4]
- str r0, [sp, #12]
+ str r0, [r4, #4]
+ str r0, [sp, #4]
movs r1, #1
- ldrb r3, [r4, #9] @ zero_extendqisi2
- mov r0, r5
+ ldrb r3, [r5, #9] @ zero_extendqisi2
+ mov r0, r4
bl FlashProgPages
-.L1485:
- ldr r3, [r5]
- adds r3, r3, #1
- beq .L1480
- ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r6, #32]
+.L1515:
+ ldr r2, [r4]
+ adds r3, r2, #1
+ beq .L1510
+ cmp r2, #256
+ beq .L1510
+ ldrb r2, [r5, #6] @ zero_extendqisi2
+ ldrh r3, [r8, #236]
cmp r2, r3
- bcc .L1481
- mov r2, #960
- mov r1, r10
- mov r0, fp
+ bcc .L1511
+ movw r2, #982
+ ldr r1, .L1526+4
+ ldr r0, .L1526+8
bl sftl_printk
-.L1481:
- ldr r3, [r5, #4]
- add r1, sp, #16
+.L1511:
+ ldr r3, [r4, #4]
+ add r1, sp, #8
movs r2, #1
- ldr r0, [r5, #16]
+ ldr r0, [r4, #16]
str r3, [r1, #-4]!
bl log2phys
- ldr r3, [r5, #12]
- ldr r3, [r3, #12]
- ubfx r0, r3, #10, #16
- str r3, [sp, #4]
+ ldr r3, [r4, #12]
+ ldr fp, [r3, #12]
+ ubfx r0, fp, #10, #16
bl P2V_block_in_plane
- ldr r3, [sp, #4]
- mov r8, r0
- adds r3, r3, #1
- beq .L1482
- ldr r3, [r6, #2324]
+ cmp fp, #-1
+ mov r7, r0
+ beq .L1512
+ ldr r3, [r8, #76]
ldrh r2, [r3, r0, lsl #1]
- cbnz r2, .L1483
+ cbnz r2, .L1513
mov r1, r0
- ldr r0, .L1490+4
+ ldr r0, .L1526+12
bl sftl_printk
-.L1483:
- mov r0, r8
+.L1513:
+ mov r0, r7
bl decrement_vpc_count
-.L1482:
- adds r7, r7, #1
- adds r5, r5, #20
- b .L1477
-.L1484:
- ldrb r2, [r4, #6] @ zero_extendqisi2
- ldrh r3, [r6, #32]
- cmp r2, r3
- bcc .L1476
- movw r2, #975
- ldr r1, .L1490+8
- ldr r0, .L1490+12
- bl sftl_printk
-.L1476:
- add sp, sp, #20
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1491:
+.L1512:
+ adds r6, r6, #1
+ adds r4, r4, #20
+ b .L1508
+.L1527:
.align 2
-.L1490:
+.L1526:
.word .LANCHOR0
- .word .LC112
.word .LANCHOR1+536
- .word .LC1
+ .word .LC8
+ .word .LC123
+ .word .LC122
.fnend
.size FtlProgPages, .-FtlProgPages
.align 1
@@ -10279,188 +10405,156 @@ FtlGcFreeTempBlock:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
+ .save {r4, r5, r6, r7, r8, r9, lr}
.pad #12
- movw r2, #65535
- ldr r4, .L1518
- ldrh r5, [r4, #2444]
- ldrh r1, [r4, #102]
- cmp r5, r2
- bne .L1493
-.L1503:
- ldrh r2, [r4, #2444]
+ movw r3, #65535
+ ldr r4, .L1552
+ ldrh r2, [r4, #128]
+ ldrh r1, [r4, #306]
+ cmp r2, r3
+ bne .L1529
+.L1536:
+ ldrh r2, [r4, #128]
movs r3, #0
str r3, [r4, #3448]
movw r3, #65535
cmp r2, r3
- bne .L1516
-.L1494:
+ bne .L1549
+.L1530:
movs r0, #0
-.L1492:
+.L1528:
add sp, sp, #12
@ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1493:
- cbz r0, .L1496
- ldr r3, .L1518+4
- ldrh r0, [r3, #4]
- cmp r0, r2
- beq .L1497
-.L1498:
+ pop {r4, r5, r6, r7, r8, r9, pc}
+.L1529:
+ ldr r5, .L1552+4
+ cbz r0, .L1532
+ ldrh r2, [r5, #4]
+ cmp r2, r3
+ beq .L1533
+.L1534:
movs r1, #2
-.L1496:
- ldr r0, .L1518+8
+.L1532:
+ ldr r0, .L1552+8
bl FtlGcScanTempBlk
+ ldrh r2, [r5, #4]
+ movw r3, #65535
str r0, [sp, #4]
- adds r0, r0, #1
- beq .L1499
- ldr r2, [r4, #2328]
- ldrh r3, [r2, r5, lsl #1]
- cmp r3, #4
- bls .L1500
- subs r3, r3, #5
+ cmp r2, r3
+ beq .L1536
movs r0, #1
- strh r3, [r2, r5, lsl #1] @ movhi
- bl FtlEctTblFlush
-.L1500:
- ldr r3, [r4, #3448]
- cbnz r3, .L1501
- ldr r3, [r4, #2736]
- ldr r0, [sp, #4]
- adds r3, r3, #1
- ubfx r0, r0, #10, #16
- str r3, [r4, #2736]
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
-.L1501:
+ b .L1528
+.L1533:
movs r3, #0
- str r3, [r4, #3448]
-.L1512:
- movs r0, #1
- b .L1492
-.L1497:
- movs r2, #0
- strh r2, [r3, #4] @ movhi
- ldrh r3, [r4, #2344]
+ strh r3, [r5, #4] @ movhi
+ ldrh r3, [r4, #228]
cmp r3, #17
- bhi .L1498
- b .L1496
-.L1499:
- ldr r3, .L1518+4
- ldrh r2, [r3, #4]
- movw r3, #65535
- cmp r2, r3
- bne .L1512
- b .L1503
-.L1516:
- ldrb r1, [r4, #2451] @ zero_extendqisi2
- ldrh r3, [r4, #102]
- ldrh r2, [r4, #3204]
+ bhi .L1534
+ b .L1532
+.L1549:
+ ldrb r1, [r4, #135] @ zero_extendqisi2
+ ldrh r3, [r4, #306]
+ ldrh r2, [r4, #3208]
muls r3, r1, r3
cmp r2, r3
- beq .L1504
- movs r2, #162
- ldr r1, .L1518+12
- ldr r0, .L1518+16
+ beq .L1537
+ movs r2, #164
+ ldr r1, .L1552+12
+ ldr r0, .L1552+16
bl sftl_printk
-.L1504:
- ldrb r3, [r4, #2451] @ zero_extendqisi2
- movs r6, #0
- ldrh r0, [r4, #102]
- mov r9, #12
- ldr r2, [r4, #2324]
- ldrh r1, [r4, #2444]
- ldr r10, .L1518+12
+.L1537:
+ ldrb r3, [r4, #135] @ zero_extendqisi2
+ movs r5, #0
+ ldrh r0, [r4, #306]
+ mov r8, #12
+ ldr r2, [r4, #76]
+ ldrh r1, [r4, #128]
smulbb r3, r3, r0
- ldr fp, .L1518+16
strh r3, [r2, r1, lsl #1] @ movhi
- ldr r2, [r4, #2528]
- ldrh r3, [r4, #3204]
+ ldr r2, [r4, #2580]
+ ldrh r3, [r4, #3208]
add r3, r3, r2
- str r3, [r4, #2528]
-.L1505:
- ldrh r2, [r4, #3204]
- uxth r3, r6
+ str r3, [r4, #2580]
+.L1538:
+ ldrh r2, [r4, #3208]
+ uxth r3, r5
cmp r2, r3
- bhi .L1509
+ bhi .L1542
movw r0, #65535
bl decrement_vpc_count
- ldrh r0, [r4, #2444]
- ldr r3, [r4, #2324]
+ ldrh r0, [r4, #128]
+ ldr r3, [r4, #76]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #0
- beq .L1510
+ beq .L1543
bl INSERT_DATA_LIST
-.L1511:
+.L1544:
movw r6, #65535
movs r5, #0
- strh r6, [r4, #2444] @ movhi
- strh r5, [r4, #3204] @ movhi
- strh r5, [r4, #3196] @ movhi
+ strh r6, [r4, #128] @ movhi
+ strh r5, [r4, #3208] @ movhi
+ strh r5, [r4, #3200] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
- ldrh r3, [r4, #2572]
- ldrh r2, [r4, #2344]
- strh r6, [r4, #2592] @ movhi
+ ldrh r3, [r4, #2624]
+ ldrh r2, [r4, #228]
+ strh r6, [r4, #176] @ movhi
add r3, r3, r3, lsl #1
cmp r2, r3, asr #2
- ble .L1494
+ ble .L1530
movs r3, #20
- strh r3, [r4, #3152] @ movhi
- b .L1494
-.L1509:
- uxth r7, r6
- ldr r8, [r4, #3200]
- ldr r3, [r4, #2504]
- mul r7, r9, r7
- add r5, r8, r7
- ldr r2, [r5, #8]
- cmp r2, r3
- bcc .L1506
- movs r2, #168
- mov r1, r10
- mov r0, fp
- bl sftl_printk
-.L1506:
+ strh r3, [r4, #3156] @ movhi
+ b .L1530
+.L1542:
+ uxth r7, r5
+ ldr r9, [r4, #3204]
+ ldr r3, [r4, #2556]
+ mul r7, r8, r7
+ add r6, r9, r7
+ ldr r0, [r6, #8]
+ cmp r0, r3
+ bcc .L1539
+.L1550:
+ ldrh r0, [r4, #128]
+ b .L1551
+.L1539:
movs r2, #0
add r1, sp, #4
- ldr r0, [r5, #8]
bl log2phys
- ldr r0, [r8, r7]
+ ldr r0, [r9, r7]
ldr r3, [sp, #4]
cmp r0, r3
- bne .L1507
+ bne .L1541
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
movs r2, #1
mov r7, r0
- adds r1, r5, #4
- ldr r0, [r5, #8]
+ adds r1, r6, #4
+ ldr r0, [r6, #8]
bl log2phys
mov r0, r7
-.L1517:
+.L1551:
bl decrement_vpc_count
-.L1508:
- adds r6, r6, #1
- b .L1505
-.L1507:
- ldr r2, [r5, #4]
+ b .L1540
+.L1541:
+ ldr r2, [r6, #4]
cmp r3, r2
- beq .L1508
- ldrh r0, [r4, #2444]
- b .L1517
-.L1510:
+ bne .L1550
+.L1540:
+ adds r5, r5, #1
+ b .L1538
+.L1543:
bl INSERT_FREE_LIST
- b .L1511
-.L1519:
+ b .L1544
+.L1553:
.align 2
-.L1518:
+.L1552:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR0+2444
+ .word .LANCHOR0+128
.word .LANCHOR1+549
- .word .LC1
+ .word .LC8
.fnend
.size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
.align 1
@@ -10476,25 +10570,25 @@ FtlGcPageRecovery:
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L1522
- ldrh r1, [r4, #102]
- addw r0, r4, #2444
+ ldr r4, .L1556
+ ldrh r1, [r4, #306]
+ add r0, r4, #128
bl FtlGcScanTempBlk
- ldrh r2, [r4, #2446]
- ldrh r3, [r4, #102]
+ ldrh r2, [r4, #130]
+ ldrh r3, [r4, #306]
cmp r2, r3
- bcc .L1520
+ bcc .L1554
addw r0, r4, #3396
bl FtlMapBlkWriteDump_data
movs r0, #0
bl FtlGcFreeTempBlock
movs r3, #0
str r3, [r4, #3448]
-.L1520:
+.L1554:
pop {r4, pc}
-.L1523:
+.L1557:
.align 2
-.L1522:
+.L1556:
.word .LANCHOR0
.fnend
.size FtlGcPageRecovery, .-FtlGcPageRecovery
@@ -10512,11 +10606,11 @@ FtlPowerLostRecovery:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
- ldr r4, .L1525
- addw r6, r4, #2348
+ ldr r4, .L1559
+ add r6, r4, #28
str r5, [r4, #3480]
mov r0, r6
- addw r4, r4, #2396
+ adds r4, r4, #80
bl FtlRecoverySuperblock
mov r0, r6
bl FtlSlcSuperblockCheck
@@ -10529,9 +10623,9 @@ FtlPowerLostRecovery:
bl decrement_vpc_count
mov r0, r5
pop {r4, r5, r6, pc}
-.L1526:
+.L1560:
.align 2
-.L1525:
+.L1559:
.word .LANCHOR0
.fnend
.size FtlPowerLostRecovery, .-FtlPowerLostRecovery
@@ -10549,64 +10643,46 @@ Ftl_gc_temp_data_write_back:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r3, #0
- ldr r4, .L1534
+ ldr r4, .L1569
movs r5, #0
movs r6, #20
mov r2, r3
- ldr r1, [r4, #3168]
+ ldr r1, [r4, #3172]
ldr r0, [r4, #3296]
bl FlashProgPages
-.L1528:
- ldr r1, [r4, #3168]
+.L1562:
+ ldr r1, [r4, #3172]
uxth r3, r5
cmp r1, r3
- bhi .L1531
+ bhi .L1565
ldr r0, [r4, #3296]
bl FtlGcBufFree
- ldrh r3, [r4, #2448]
+ ldrh r3, [r4, #132]
movs r0, #0
- str r0, [r4, #3168]
- cbnz r3, .L1527
+ str r0, [r4, #3172]
+ cbnz r3, .L1561
movs r0, #1
bl FtlGcFreeTempBlock
- b .L1533
-.L1531:
+ movs r0, #1
+.L1561:
+ pop {r4, r5, r6, pc}
+.L1565:
muls r3, r6, r3
ldr r2, [r4, #3296]
adds r5, r5, #1
adds r1, r2, r3
ldr r2, [r2, r3]
- adds r0, r2, #1
- bne .L1529
- ldrh r0, [r4, #2444]
- movs r5, #0
- ldr r1, [r4, #2324]
- strh r5, [r1, r0, lsl #1] @ movhi
- strh r2, [r4, #2444] @ movhi
- ldr r2, [r4, #2736]
- adds r2, r2, #1
- str r2, [r4, #2736]
- ldr r2, [r4, #3296]
- add r3, r3, r2
- ldr r0, [r3, #4]
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- bl FtlGcPageVarInit
-.L1533:
- movs r0, #1
-.L1527:
- pop {r4, r5, r6, pc}
-.L1529:
- ldr r3, [r1, #12]
+ ldr r0, [r1, #12]
ldr r1, [r1, #4]
- ldr r2, [r3, #8]
- ldr r0, [r3, #12]
+ adds r3, r2, #1
+ it ne
+ ldrne r2, [r0, #8]
+ ldr r0, [r0, #12]
bl FtlGcUpdatePage
- b .L1528
-.L1535:
+ b .L1562
+.L1570:
.align 2
-.L1534:
+.L1569:
.word .LANCHOR0
.fnend
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
@@ -10624,34 +10700,34 @@ Ftl_get_new_temp_ppa:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movw r3, #65535
- ldr r4, .L1539
- ldrh r2, [r4, #2444]
+ ldr r4, .L1574
+ ldrh r2, [r4, #128]
cmp r2, r3
- beq .L1537
- ldrh r3, [r4, #2448]
- cbnz r3, .L1538
-.L1537:
+ beq .L1572
+ ldrh r3, [r4, #132]
+ cbnz r3, .L1573
+.L1572:
movs r0, #0
movs r5, #0
bl FtlGcFreeTempBlock
- ldr r0, .L1539+4
- strb r5, [r4, #2452]
+ ldr r0, .L1574+4
+ strb r5, [r4, #136]
bl allocate_data_superblock
- strh r5, [r4, #3196] @ movhi
- strh r5, [r4, #3204] @ movhi
+ strh r5, [r4, #3200] @ movhi
+ strh r5, [r4, #3208] @ movhi
bl l2p_flush
mov r0, r5
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1538:
- ldr r0, .L1539+4
+.L1573:
+ ldr r0, .L1574+4
pop {r3, r4, r5, lr}
b get_new_active_ppa
-.L1540:
+.L1575:
.align 2
-.L1539:
+.L1574:
.word .LANCHOR0
- .word .LANCHOR0+2444
+ .word .LANCHOR0+128
.fnend
.size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
.align 1
@@ -10665,7 +10741,7 @@ rk_ftl_garbage_collect:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1663
+ ldr r3, .L1706
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r0
@@ -10674,340 +10750,343 @@ rk_ftl_garbage_collect:
mov r4, r3
ldr r0, [r3, #3276]
cmp r0, #0
- bne .L1618
- ldrh r2, [r3, #2336]
+ bne .L1658
+ ldrh r2, [r3, #2532]
cmp r2, #47
- bls .L1541
- ldr r2, .L1663+4
+ bls .L1576
+ ldr r2, .L1706+4
ldrh r1, [r2, #4]
movw r2, #65535
cmp r1, r2
- bne .L1543
-.L1546:
- ldrh r2, [r4, #3208]
+ bne .L1578
+.L1581:
+ ldrh r2, [r4, #224]
movw r1, #65535
cmp r2, r1
- bne .L1544
-.L1545:
+ bne .L1579
+.L1580:
bl FtlReadRefresh
- ldr r3, [r4, #3156]
- movw r6, #65535
- ldrh r1, [r4, #2592]
+ ldr r3, [r4, #3160]
+ movw r7, #65535
+ ldrh r1, [r4, #176]
adds r3, r3, #1
add r3, r3, r9, lsl #7
- cmp r1, r6
- str r3, [r4, #3156]
- bne .L1547
- ldrh r2, [r4, #2444]
+ cmp r1, r7
+ str r3, [r4, #3160]
+ bne .L1582
+ ldrh r2, [r4, #128]
cmp r2, r1
- bne .L1548
- ldrh r7, [r4, #3206]
- cmp r7, r2
- bne .L1549
- ldrh r2, [r4, #2344]
+ bne .L1583
+ ldrh r6, [r4, #226]
+ cmp r6, r2
+ bne .L1584
+ ldrh r2, [r4, #228]
cmp r2, #24
ite cc
movcc r2, #5120
movcs r2, #1024
cmp r3, r2
- bls .L1549
+ bls .L1584
movs r5, #0
- str r5, [r4, #3156]
+ str r5, [r4, #3160]
strh r5, [r4, #3664] @ movhi
bl GetSwlReplaceBlock
- cmp r0, r7
- mov r6, r0
- bne .L1622
- ldrh r2, [r4, #2344]
- ldrh r3, [r4, #3154]
+ cmp r0, r6
+ mov r7, r0
+ bne .L1662
+ ldrh r2, [r4, #228]
+ ldrh r3, [r4, #3158]
cmp r2, r3
- bcs .L1552
+ bcs .L1587
movs r0, #64
bl List_get_gc_head_node
uxth r3, r0
- cmp r3, r6
- beq .L1554
+ cmp r3, r7
+ beq .L1589
mov r0, r3
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #7
- bhi .L1555
+ bhi .L1590
mov r0, r5
bl List_get_gc_head_node
uxth r5, r0
movs r3, #128
- strh r3, [r4, #3154] @ movhi
- cmp r5, r6
- bne .L1551
-.L1554:
+ strh r3, [r4, #3158] @ movhi
+ cmp r5, r7
+ bne .L1586
+.L1589:
bl FtlGcReFreshBadBlk
cmp r9, #0
- bne .L1557
+ bne .L1592
movw r3, #65535
- cmp r6, r3
- bne .L1557
-.L1616:
- ldrh r3, [r4, #2344]
+ cmp r7, r3
+ bne .L1592
+.L1656:
+ ldrh r3, [r4, #228]
cmp r3, #24
- bhi .L1623
+ bhi .L1663
cmp r3, #16
- ldrh r5, [r4, #102]
- bls .L1559
- lsrs r5, r5, #5
-.L1558:
- ldrh r2, [r4, #3152]
+ ldrh r6, [r4, #306]
+ bls .L1594
+ lsrs r6, r6, #5
+.L1593:
+ ldrh r2, [r4, #3156]
cmp r2, r3
- bcs .L1562
- ldrh r3, [r4, #2444]
+ bcs .L1597
+ ldrh r3, [r4, #128]
movw r2, #65535
cmp r3, r2
- bne .L1563
- ldrh r2, [r4, #3206]
+ bne .L1598
+ ldrh r2, [r4, #226]
cmp r2, r3
- bne .L1563
+ bne .L1598
ldrh r0, [r4, #3664]
- cbnz r0, .L1564
- ldr r3, [r4, #2504]
- ldr r2, [r4, #2500]
+ cbnz r0, .L1599
+ ldr r3, [r4, #2556]
+ ldr r2, [r4, #2552]
add r3, r3, r3, lsl #1
cmp r2, r3, lsr #2
- bcs .L1565
-.L1564:
- ldrh r3, [r4, #2572]
+ bcs .L1600
+.L1599:
+ ldrh r3, [r4, #2624]
add r3, r3, r3, lsl #1
asrs r3, r3, #2
-.L1659:
- strh r3, [r4, #3152] @ movhi
+.L1702:
+ strh r3, [r4, #3156] @ movhi
movs r3, #0
- str r3, [r4, #3164]
-.L1541:
+ str r3, [r4, #3168]
+.L1576:
add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1543:
- ldrh r3, [r3, #2444]
+.L1578:
+ ldrh r3, [r3, #128]
cmp r3, r2
- beq .L1546
+ beq .L1581
movs r0, #1
bl FtlGcFreeTempBlock
cmp r0, #0
- beq .L1546
+ beq .L1581
movs r0, #1
- b .L1541
-.L1544:
- ldrh r3, [r4, #3206]
+ b .L1576
+.L1579:
+ ldrh r3, [r4, #226]
cmp r3, r1
itt eq
- strheq r2, [r4, #3206] @ movhi
- strheq r3, [r4, #3208] @ movhi
- b .L1545
-.L1555:
+ strheq r2, [r4, #226] @ movhi
+ strheq r3, [r4, #224] @ movhi
+ b .L1580
+.L1590:
movs r3, #64
-.L1658:
- strh r3, [r4, #3154] @ movhi
- b .L1554
-.L1552:
+.L1701:
+ strh r3, [r4, #3158] @ movhi
+ b .L1589
+.L1587:
movs r3, #80
- b .L1658
-.L1622:
+ b .L1701
+.L1662:
mov r5, r0
-.L1551:
- ldr r3, [r4, #2324]
- mov r6, r5
- ldrh r1, [r4, #3152]
- ldrh r2, [r4, #2344]
+.L1586:
+ ldr r3, [r4, #76]
+ mov r7, r5
+ ldrh r1, [r4, #3156]
+ ldrh r2, [r4, #228]
ldrh r3, [r3, r5, lsl #1]
str r1, [sp, #4]
- ldr r1, [r4, #2328]
- ldr r0, .L1663+8
+ ldr r1, [r4, #2540]
+ ldr r0, .L1706+8
ldrh r1, [r1, r5, lsl #1]
str r1, [sp]
mov r1, r5
bl sftl_printk
- b .L1554
-.L1559:
+ b .L1589
+.L1594:
cmp r3, #12
- bls .L1560
- lsrs r5, r5, #4
- b .L1558
-.L1560:
+ bls .L1595
+ lsrs r6, r6, #4
+ b .L1593
+.L1595:
cmp r3, #8
- bls .L1558
- lsrs r5, r5, #2
- b .L1558
-.L1623:
- movs r5, #1
- b .L1558
-.L1565:
+ bls .L1593
+ lsrs r6, r6, #2
+ b .L1593
+.L1663:
+ movs r6, #1
+ b .L1593
+.L1600:
movs r3, #18
- b .L1659
-.L1563:
- ldrh r3, [r4, #2572]
+ b .L1702
+.L1598:
+ ldrh r3, [r4, #2624]
add r3, r3, r3, lsl #1
asrs r3, r3, #2
- strh r3, [r4, #3152] @ movhi
-.L1562:
+ strh r3, [r4, #3156] @ movhi
+.L1597:
ldrh r3, [r4, #3210]
- cbz r3, .L1624
- adds r5, r5, #32
- uxth r5, r5
-.L1624:
- movw r6, #65535
-.L1568:
- ldrh r3, [r4, #2592]
+ cbz r3, .L1664
+ adds r6, r6, #32
+ uxth r6, r6
+.L1664:
+ movw r7, #65535
+.L1603:
+ ldrh r3, [r4, #176]
movw r2, #65535
cmp r3, r2
- bne .L1577
- cmp r6, r3
- beq .L1578
- strh r6, [r4, #2592] @ movhi
-.L1579:
- ldrh r0, [r4, #2592]
- movw r7, #65535
+ bne .L1612
+ cmp r7, r3
+ beq .L1613
+ strh r7, [r4, #176] @ movhi
+.L1614:
+ ldrh r0, [r4, #176]
+ movw r5, #65535
movs r3, #0
- strb r3, [r4, #2600]
- cmp r0, r7
- beq .L1577
+ strb r3, [r4, #184]
+ cmp r0, r5
+ beq .L1612
bl IsBlkInGcList
- cbz r0, .L1582
- strh r7, [r4, #2592] @ movhi
-.L1582:
- ldrh r2, [r4, #2592]
+ cbz r0, .L1617
+ strh r5, [r4, #176] @ movhi
+.L1617:
+ ldrh r2, [r4, #176]
movw r3, #65535
cmp r2, r3
- beq .L1577
- ldr r0, .L1663+12
+ beq .L1612
+ ldr r0, .L1706+12
bl make_superblock
movs r3, #0
- ldrh r2, [r4, #2592]
- strh r3, [r4, #2594] @ movhi
- strb r3, [r4, #2598]
+ ldrh r2, [r4, #176]
+ strh r3, [r4, #178] @ movhi
+ strb r3, [r4, #182]
strh r3, [r4, #3666] @ movhi
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
ldrh r3, [r3, r2, lsl #1]
strh r3, [r4, #3668] @ movhi
-.L1577:
- ldrh r3, [r4, #2592]
- ldrh r2, [r4, #2348]
+.L1612:
+ ldrh r3, [r4, #176]
+ ldrh r2, [r4, #28]
cmp r2, r3
- beq .L1583
- ldrh r2, [r4, #2396]
+ beq .L1618
+ ldrh r2, [r4, #80]
cmp r2, r3
- bne .L1584
-.L1583:
+ beq .L1618
+ ldrh r2, [r4, #128]
+ cmp r2, r3
+ bne .L1619
+.L1618:
movw r3, #65535
- strh r3, [r4, #2592] @ movhi
-.L1584:
- ldr r7, .L1663
- mov r4, r7
-.L1614:
- ldrh r10, [r7, #2592]
+ strh r3, [r4, #176] @ movhi
+.L1619:
+ ldr r5, .L1706
+ mov r4, r5
+.L1654:
+ ldrh r10, [r5, #176]
movw r3, #65535
cmp r10, r3
- bne .L1585
+ bne .L1620
movs r3, #0
mov fp, r3
- str r3, [r7, #3164]
-.L1586:
- ldrh r8, [r4, #3160]
+ str r3, [r5, #3168]
+.L1621:
+ ldrh r8, [r4, #3164]
mov r0, r8
bl List_get_gc_head_node
uxth r2, r0
cmp r2, r10
- strh r2, [r4, #2592] @ movhi
- bne .L1587
+ strh r2, [r4, #176] @ movhi
+ bne .L1622
movs r3, #0
movs r0, #8
- strh r3, [r4, #3160] @ movhi
- b .L1541
-.L1569:
+ strh r3, [r4, #3164] @ movhi
+ b .L1576
+.L1604:
movs r3, #0
- ldrh r2, [r4, #2344]
- str r3, [r4, #3164]
- ldrh r3, [r4, #3152]
+ ldrh r2, [r4, #228]
+ str r3, [r4, #3168]
+ ldrh r3, [r4, #3156]
cmp r2, r3
- bls .L1570
+ bls .L1605
ldrh r3, [r4, #3664]
- cbnz r3, .L1571
- ldr r3, [r4, #2504]
- ldr r2, [r4, #2500]
+ cbnz r3, .L1606
+ ldr r3, [r4, #2556]
+ ldr r2, [r4, #2552]
add r3, r3, r3, lsl #1
cmp r2, r3, lsr #2
- bcs .L1572
-.L1571:
- ldrh r3, [r4, #2572]
+ bcs .L1607
+.L1606:
+ ldrh r3, [r4, #2624]
add r3, r3, r3, lsl #1
asrs r3, r3, #2
-.L1660:
- strh r3, [r4, #3152] @ movhi
+.L1703:
+ strh r3, [r4, #3156] @ movhi
bl FtlReadRefresh
movs r0, #0
bl List_get_gc_head_node
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
uxth r0, r0
ldrh r3, [r3, r0, lsl #1]
cmp r3, #4
- bls .L1570
-.L1662:
+ bls .L1605
+.L1705:
ldrh r0, [r4, #3664]
- b .L1541
-.L1572:
+ b .L1576
+.L1607:
movs r3, #18
- b .L1660
-.L1570:
+ b .L1703
+.L1605:
ldrh r0, [r4, #3664]
cmp r0, #0
- bne .L1574
- ldrh r5, [r4, #2572]
+ bne .L1609
+ ldrh r5, [r4, #2624]
add r3, r5, r5, lsl #1
asrs r3, r3, #2
- strh r3, [r4, #3152] @ movhi
+ strh r3, [r4, #3156] @ movhi
bl List_get_gc_head_node
- ldr r3, [r4, #2324]
+ ldr r3, [r4, #76]
uxth r0, r0
- ldrh r1, [r4, #104]
+ ldrh r1, [r4, #308]
ldrh r2, [r3, r0, lsl #1]
- ldrh r3, [r4, #32]
+ ldrh r3, [r4, #236]
muls r3, r1, r3
add r3, r3, r3, lsr #31
cmp r2, r3, asr #1
- ble .L1575
- ldrh r3, [r4, #2344]
+ ble .L1610
+ ldrh r3, [r4, #228]
subs r5, r5, #1
cmp r3, r5
- blt .L1575
+ blt .L1610
bl FtlReadRefresh
- b .L1662
-.L1575:
+ b .L1705
+.L1610:
cmp r2, #0
- bne .L1574
+ bne .L1609
movw r0, #65535
bl decrement_vpc_count
- ldrh r0, [r4, #2344]
+ ldrh r0, [r4, #228]
adds r0, r0, #1
- b .L1541
-.L1664:
+ b .L1576
+.L1707:
.align 2
-.L1663:
+.L1706:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC113
- .word .LANCHOR0+2592
-.L1578:
- ldrh r3, [r4, #3206]
- cmp r3, r6
- beq .L1579
- ldr r2, [r4, #2324]
+ .word .LC124
+ .word .LANCHOR0+176
+.L1613:
+ ldrh r3, [r4, #226]
+ cmp r3, r7
+ beq .L1614
+ ldr r2, [r4, #76]
ldrh r3, [r2, r3, lsl #1]
- cbnz r3, .L1580
- strh r6, [r4, #3206] @ movhi
-.L1580:
- ldrh r3, [r4, #3206]
- strh r3, [r4, #2592] @ movhi
+ cbnz r3, .L1615
+ strh r7, [r4, #226] @ movhi
+.L1615:
+ ldrh r3, [r4, #226]
+ strh r3, [r4, #176] @ movhi
movw r3, #65535
- strh r3, [r4, #3206] @ movhi
- b .L1579
-.L1587:
+ strh r3, [r4, #226] @ movhi
+ b .L1614
+.L1622:
str r0, [sp, #16]
mov r0, r2
str r2, [sp, #12]
@@ -11015,142 +11094,142 @@ rk_ftl_garbage_collect:
bl IsBlkInGcList
ldr r2, [sp, #12]
ldr r3, [sp, #16]
- cbz r0, .L1588
- strh r8, [r4, #3160] @ movhi
- b .L1586
-.L1588:
- ldrh lr, [r4, #32]
+ cbz r0, .L1623
+ strh r8, [r4, #3164] @ movhi
+ b .L1621
+.L1623:
+ ldrh lr, [r4, #236]
uxth r8, r8
- ldrh r1, [r4, #102]
+ ldrh r1, [r4, #306]
uxth r3, r3
- ldr r0, [r4, #2324]
- strh r8, [r4, #3160] @ movhi
+ ldr r0, [r4, #76]
+ strh r8, [r4, #3164] @ movhi
mul r1, lr, r1
ldrh ip, [r0, r3, lsl #1]
add lr, r1, r1, lsr #31
cmp ip, lr, asr #1
- bgt .L1590
+ bgt .L1625
cmp r8, #48
- bls .L1591
+ bls .L1626
cmp ip, #8
- bls .L1591
- ldrh ip, [r4, #3196]
+ bls .L1626
+ ldrh ip, [r4, #3200]
cmp ip, #35
- bhi .L1591
-.L1590:
- strh fp, [r4, #3160] @ movhi
-.L1591:
+ bhi .L1626
+.L1625:
+ strh fp, [r4, #3164] @ movhi
+.L1626:
ldrh r3, [r0, r3, lsl #1]
cmp r1, r3
- bgt .L1592
- cmp r6, r10
- bne .L1592
- ldrh r1, [r4, #3160]
+ bgt .L1627
+ cmp r7, r10
+ bne .L1627
+ ldrh r1, [r4, #3164]
cmp r1, #3
- bhi .L1592
+ bhi .L1627
movs r3, #0
- strh r6, [r4, #2592] @ movhi
- strh r3, [r4, #3160] @ movhi
- b .L1662
-.L1592:
- cbnz r3, .L1593
+ strh r7, [r4, #176] @ movhi
+ strh r3, [r4, #3164] @ movhi
+ b .L1705
+.L1627:
+ cbnz r3, .L1628
movw r0, #65535
bl decrement_vpc_count
- ldrh r3, [r4, #3160]
+ ldrh r3, [r4, #3164]
adds r3, r3, #1
- strh r3, [r4, #3160] @ movhi
- b .L1586
-.L1593:
+ strh r3, [r4, #3164] @ movhi
+ b .L1621
+.L1628:
movs r3, #0
- strb r3, [r4, #2600]
- ldrh r3, [r4, #2348]
+ strb r3, [r4, #184]
+ ldrh r3, [r4, #28]
cmp r3, r2
- bne .L1594
- mov r2, #700
- ldr r1, .L1665
- ldr r0, .L1665+4
+ bne .L1629
+ movw r2, #717
+ ldr r1, .L1708
+ ldr r0, .L1708+4
bl sftl_printk
-.L1594:
- ldrh r2, [r4, #2592]
- ldrh r3, [r4, #2396]
+.L1629:
+ ldrh r2, [r4, #176]
+ ldrh r3, [r4, #80]
cmp r2, r3
- bne .L1595
- movw r2, #701
- ldr r1, .L1665
- ldr r0, .L1665+4
+ bne .L1630
+ movw r2, #718
+ ldr r1, .L1708
+ ldr r0, .L1708+4
bl sftl_printk
-.L1595:
- ldrh r2, [r4, #2592]
- ldrh r3, [r4, #2444]
+.L1630:
+ ldrh r2, [r4, #176]
+ ldrh r3, [r4, #128]
cmp r2, r3
- bne .L1596
- movw r2, #702
- ldr r1, .L1665
- ldr r0, .L1665+4
+ bne .L1631
+ movw r2, #719
+ ldr r1, .L1708
+ ldr r0, .L1708+4
bl sftl_printk
-.L1596:
- ldr r0, .L1665+8
+.L1631:
+ ldr r0, .L1708+8
bl make_superblock
- ldrh r1, [r4, #2592]
+ ldrh r1, [r4, #176]
movs r3, #0
- ldr r2, [r4, #2324]
+ ldr r2, [r4, #76]
strh r3, [r4, #3666] @ movhi
ldrh r2, [r2, r1, lsl #1]
- strh r3, [r4, #2594] @ movhi
- strb r3, [r4, #2598]
+ strh r3, [r4, #178] @ movhi
+ strb r3, [r4, #182]
strh r2, [r4, #3668] @ movhi
-.L1585:
+.L1620:
movs r3, #1
str r3, [r4, #3276]
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
str r3, [sp, #16]
cmp r9, #0
- beq .L1597
+ beq .L1632
ldr r2, [sp, #16]
- ldrh r3, [r4, #32]
- ldrh r1, [r4, #2592]
+ ldrh r3, [r4, #236]
+ ldrh r1, [r4, #176]
muls r3, r2, r3
- ldr r2, [r4, #2324]
+ ldr r2, [r4, #76]
ldrh r2, [r2, r1, lsl #1]
subs r3, r3, r2
it mi
addmi r3, r3, #3
- add r5, r5, r3, asr #2
- uxth r5, r5
-.L1597:
- ldrh r3, [r4, #2594]
+ add r6, r6, r3, asr #2
+ uxth r6, r6
+.L1632:
+ ldrh r3, [r4, #178]
ldr r1, [sp, #16]
- adds r2, r3, r5
+ adds r2, r3, r6
cmp r2, r1
itt gt
movgt r2, r1
- subgt r5, r2, r3
+ subgt r6, r2, r3
mov r3, #0
it gt
- uxthgt r5, r5
-.L1661:
+ uxthgt r6, r6
+.L1704:
str r3, [sp, #20]
ldrh r3, [sp, #20]
- cmp r5, r3
- bls .L1608
+ cmp r6, r3
+ bls .L1643
ldr r3, [sp, #20]
movw r10, #65535
- ldrh r8, [r7, #2594]
+ ldrh r8, [r5, #178]
mov fp, #20
- ldrh ip, [r7, #32]
- ldr r0, [r7, #3184]
+ ldrh ip, [r5, #236]
+ ldr r0, [r5, #3188]
add r8, r8, r3
- ldr r3, .L1665+12
+ ldr r3, .L1708+12
str r3, [sp, #24]
movs r3, #0
str r3, [sp, #12]
- b .L1609
-.L1602:
+ b .L1644
+.L1637:
ldr r1, [sp, #24]
ldrh r2, [r1, #2]!
cmp r2, r10
str r1, [sp, #24]
- beq .L1601
+ beq .L1636
ldr r1, [sp, #12]
orr r2, r8, r2, lsl #10
mla lr, fp, r1, r0
@@ -11159,60 +11238,60 @@ rk_ftl_garbage_collect:
adds r2, r2, #1
uxth r2, r2
str r2, [sp, #12]
-.L1601:
+.L1636:
adds r3, r3, #1
-.L1609:
+.L1644:
uxth r2, r3
cmp ip, r2
- bhi .L1602
+ bhi .L1637
mov fp, #0
- ldrb r2, [r7, #2600] @ zero_extendqisi2
+ ldrb r2, [r5, #184] @ zero_extendqisi2
ldr r1, [sp, #12]
bl FlashReadPages
-.L1603:
+.L1638:
ldr r2, [sp, #12]
uxth r3, fp
cmp r2, r3
- bhi .L1607
+ bhi .L1642
ldr r3, [sp, #20]
adds r3, r3, #1
- b .L1661
-.L1607:
+ b .L1704
+.L1642:
mov r8, #20
- ldr r3, [r7, #3184]
+ ldr r3, [r5, #3188]
mul r8, r8, fp
add r2, r3, r8
ldr r3, [r3, r8]
adds r3, r3, #1
- beq .L1604
+ beq .L1639
ldr r10, [r2, #12]
movw r3, #61589
ldrh r2, [r10]
cmp r2, r3
- bne .L1604
+ bne .L1639
ldr r3, [r10, #8]
adds r2, r3, #1
- bne .L1605
- mov r2, #736
- ldr r1, .L1665
- ldr r0, .L1665+4
+ bne .L1640
+ movw r2, #753
+ ldr r1, .L1708
+ ldr r0, .L1708+4
str r3, [sp, #24]
bl sftl_printk
ldr r3, [sp, #24]
-.L1605:
+.L1640:
movs r2, #0
mov r0, r3
- add r1, sp, #36
+ add r1, sp, #32
bl log2phys
- ldr r0, [r4, #3184]
- ldr r3, [sp, #36]
+ ldr r0, [r4, #3188]
+ ldr r3, [sp, #32]
add r0, r0, r8
ldr r2, [r0, #4]
cmp r2, r3
- bne .L1604
+ bne .L1639
ldrh r3, [r4, #3666]
movs r2, #20
- ldr r1, [r4, #3168]
+ ldr r1, [r4, #3172]
str r2, [sp, #28]
adds r3, r3, #1
strh r3, [r4, #3666] @ movhi
@@ -11226,132 +11305,175 @@ rk_ftl_garbage_collect:
ldr r1, [r4, #3296]
ldr r2, [sp, #28]
str r0, [r3, #4]
- ldr r3, [r4, #3168]
+ ldr r3, [r4, #3172]
mla r3, r2, r3, r1
- ldr r2, [r4, #3184]
+ ldr r2, [r4, #3188]
add r2, r2, r8
ldr r1, [r2, #8]
str r1, [r3, #8]
movs r1, #1
ldr r2, [r2, #12]
str r2, [r3, #12]
- ldr r3, [sp, #36]
+ ldr r3, [sp, #32]
str r3, [r10, #12]
- ldrh r3, [r4, #2444]
+ ldrh r3, [r4, #128]
strh r3, [r10, #2] @ movhi
- ldr r3, [r4, #2544]
- ldr r0, [r4, #3184]
+ ldr r3, [r4, #2596]
+ ldr r0, [r4, #3188]
str r3, [r10, #4]
- ldr r3, [r4, #3168]
+ ldr r3, [r4, #3172]
add r0, r0, r8
adds r3, r3, #1
- str r3, [r4, #3168]
+ str r3, [r4, #3172]
bl FtlGcBufAlloc
- ldrb r2, [r4, #2451] @ zero_extendqisi2
- ldr r3, [r4, #3168]
+ ldrb r2, [r4, #135] @ zero_extendqisi2
+ ldr r3, [r4, #3172]
cmp r2, r3
- beq .L1606
- ldrh r3, [r4, #2448]
- cbnz r3, .L1604
-.L1606:
+ beq .L1641
+ ldrh r3, [r4, #132]
+ cbnz r3, .L1639
+.L1641:
bl Ftl_gc_temp_data_write_back
- cbz r0, .L1604
- ldr r3, .L1665+16
+ cbz r0, .L1639
+ ldr r3, .L1708+16
movs r2, #0
+ movw r1, #65535
str r2, [r3, #3276]
+ strh r1, [r3, #176] @ movhi
+ strh r2, [r3, #178] @ movhi
ldrh r0, [r3, #3664]
- b .L1541
-.L1604:
+ b .L1576
+.L1639:
add fp, fp, #1
- b .L1603
-.L1608:
- ldrh r3, [r7, #2594]
- add r5, r5, r3
+ b .L1638
+.L1643:
+ ldrh r3, [r5, #178]
+ add r6, r6, r3
ldr r3, [sp, #16]
- uxth r5, r5
- cmp r3, r5
- strh r5, [r7, #2594] @ movhi
- bhi .L1610
- ldr r3, [r7, #3168]
- cbz r3, .L1611
+ uxth r6, r6
+ cmp r3, r6
+ strh r6, [r5, #178] @ movhi
+ bhi .L1645
+ ldr r3, [r5, #3172]
+ cbz r3, .L1646
bl Ftl_gc_temp_data_write_back
- cbz r0, .L1611
+ cbz r0, .L1646
movs r3, #0
- ldrh r0, [r7, #3664]
- str r3, [r7, #3276]
- b .L1541
-.L1611:
- ldrh r1, [r7, #3666]
- cbnz r1, .L1612
- ldrh r2, [r7, #2592]
- ldr r3, [r7, #2324]
- ldrh r0, [r3, r2, lsl #1]
- cbz r0, .L1612
+ ldrh r0, [r5, #3664]
+ str r3, [r5, #3276]
+ b .L1576
+.L1646:
+ ldrh r6, [r5, #3666]
+ cmp r6, #0
+ bne .L1647
+ ldrh r1, [r5, #176]
+ ldr r3, [r5, #76]
+ ldrh r3, [r3, r1, lsl #1]
+ cbz r3, .L1647
+ ldrh r0, [r5, #3668]
+ ldrh r2, [r5, #178]
+ str r3, [sp]
+ mov r3, r6
+ str r0, [sp, #4]
+ ldr r0, .L1708+20
+ bl sftl_printk
+.L1648:
+ ldr r3, [r5, #2556]
+ cmp r6, r3
+ bcs .L1650
+ movs r2, #0
+ add r1, sp, #36
+ mov r0, r6
+ bl log2phys
+ ldr r8, [sp, #36]
+ cmp r8, #-1
+ beq .L1649
+ ubfx r0, r8, #10, #16
+ bl P2V_block_in_plane
+ ldrh r3, [r5, #176]
+ cmp r3, r0
+ bne .L1649
+ mov r2, r8
+ mov r1, r6
+ ldr r0, .L1708+24
+ bl sftl_printk
+.L1650:
+ ldr r3, [r5, #2556]
+ cmp r6, r3
+ bcc .L1647
+ ldrh r2, [r5, #176]
+ movs r1, #0
+ ldr r3, [r5, #76]
strh r1, [r3, r2, lsl #1] @ movhi
- ldrh r0, [r7, #2592]
+ ldrh r0, [r5, #176]
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L1612:
+.L1647:
movw r3, #65535
- strh r3, [r7, #2592] @ movhi
-.L1610:
+ strh r3, [r5, #176] @ movhi
+.L1645:
movs r3, #0
- str r3, [r7, #3276]
- ldrh r3, [r7, #2344]
+ str r3, [r5, #3276]
+ ldrh r3, [r5, #228]
cmp r3, #2
- bhi .L1613
- ldrh r5, [r7, #102]
- b .L1614
-.L1613:
- ldrh r0, [r7, #3664]
+ bhi .L1653
+ ldrh r6, [r5, #306]
+ b .L1654
+.L1649:
+ adds r6, r6, #1
+ b .L1648
+.L1653:
+ ldrh r0, [r5, #3664]
cmp r0, #0
- bne .L1541
+ bne .L1576
adds r0, r3, #1
- b .L1541
-.L1618:
+ b .L1576
+.L1658:
movs r0, #0
- b .L1541
-.L1547:
+ b .L1576
+.L1709:
+ .align 2
+.L1708:
+ .word .LANCHOR1+568
+ .word .LC8
+ .word .LANCHOR0+176
+ .word .LANCHOR0+190
+ .word .LANCHOR0
+ .word .LC125
+ .word .LC126
+.L1582:
cmp r9, #0
- beq .L1616
-.L1557:
- ldrh r2, [r4, #2444]
+ beq .L1656
+.L1592:
+ ldrh r2, [r4, #128]
movw r3, #65535
cmp r2, r3
- bne .L1627
-.L1617:
- ldrh r3, [r4, #3206]
+ bne .L1667
+.L1657:
+ ldrh r3, [r4, #226]
movw r2, #65535
cmp r3, r2
- bne .L1627
- cmp r6, r3
- bne .L1627
- ldrh r3, [r4, #2592]
- cmp r3, r6
- beq .L1569
-.L1574:
- movw r6, #65535
-.L1627:
- movs r5, #1
- b .L1568
-.L1549:
+ bne .L1667
+ cmp r7, r3
+ bne .L1667
+ ldrh r3, [r4, #176]
+ cmp r3, r7
+ beq .L1604
+.L1609:
+ movw r7, #65535
+.L1667:
+ movs r6, #1
+ b .L1603
+.L1584:
cmp r9, #0
- beq .L1616
- movw r6, #65535
- b .L1617
-.L1548:
+ beq .L1656
+ movw r7, #65535
+ b .L1657
+.L1583:
cmp r9, #0
- bne .L1574
- b .L1616
-.L1666:
- .align 2
-.L1665:
- .word .LANCHOR1+568
- .word .LC1
- .word .LANCHOR0+2592
- .word .LANCHOR0+2606
- .word .LANCHOR0
+ bne .L1609
+ b .L1656
.fnend
.size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
.align 1
@@ -11373,31 +11495,31 @@ FtlRead:
mov r7, r1
mov r10, r3
str r2, [sp, #20]
- bne .L1668
+ bne .L1711
mov r2, r3
ldr r1, [sp, #20]
add r0, r7, #256
bl FtlVendorPartRead
mov r8, r0
-.L1667:
+.L1710:
mov r0, r8
add sp, sp, #60
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1668:
+.L1711:
ldr r3, [sp, #20]
- ldr r4, .L1700
+ ldr r4, .L1743
adds r3, r1, r3
str r3, [sp, #8]
ldr r2, [sp, #8]
- ldr r3, [r4, #140]
+ ldr r3, [r4, #344]
cmp r2, r3
- bhi .L1689
- ldr r3, .L1700+4
+ bhi .L1732
+ ldr r3, .L1743+4
ldr r3, [r3]
adds r5, r3, #1
- beq .L1690
- ldrh r5, [r4, #58]
+ beq .L1733
+ ldrh r5, [r4, #262]
mov r0, r7
mov r9, #0
mov r6, r9
@@ -11417,53 +11539,53 @@ FtlRead:
add r3, r3, r0
str r9, [sp, #28]
str r3, [sp, #4]
- ldr r3, [r4, #2536]
+ ldr r3, [r4, #2588]
str r9, [sp, #24]
add r3, r3, r2
ldr r2, [sp, #4]
- str r3, [r4, #2536]
- ldr r3, [r4, #2508]
+ str r3, [r4, #2588]
+ ldr r3, [r4, #2560]
add r3, r3, r2
- str r3, [r4, #2508]
-.L1670:
+ str r3, [r4, #2560]
+.L1713:
ldr r3, [sp, #4]
- cbnz r3, .L1687
- ldr r3, .L1700
+ cbnz r3, .L1730
+ ldr r3, .L1743
ldrh r2, [r3, #3210]
- cbnz r2, .L1688
- ldrh r3, [r3, #2344]
+ cbnz r2, .L1731
+ ldrh r3, [r3, #228]
cmp r3, #31
- bhi .L1667
-.L1688:
+ bhi .L1710
+.L1731:
movs r1, #1
movs r0, #0
bl rk_ftl_garbage_collect
- b .L1667
-.L1687:
+ b .L1710
+.L1730:
movs r2, #0
add r1, sp, #52
mov r0, r5
bl log2phys
ldr r2, [sp, #52]
adds r0, r2, #1
- bne .L1671
+ bne .L1714
mov fp, #0
-.L1672:
- ldrh r0, [r4, #58]
+.L1715:
+ ldrh r0, [r4, #262]
cmp fp, r0
- bcc .L1674
-.L1675:
+ bcc .L1717
+.L1718:
ldr r3, [sp, #4]
adds r5, r5, #1
subs r3, r3, #1
str r3, [sp, #4]
- beq .L1679
- ldrh r3, [r4, #32]
+ beq .L1722
+ ldrh r3, [r4, #236]
cmp r6, r3, lsl #2
- bne .L1670
-.L1679:
+ bne .L1713
+.L1722:
cmp r6, #0
- beq .L1670
+ beq .L1713
movs r2, #0
mov r1, r6
ldr r0, [r4, #3292]
@@ -11477,7 +11599,7 @@ FtlRead:
ldr r3, [sp, #28]
lsls r3, r3, #9
str r3, [sp, #36]
-.L1686:
+.L1729:
movs r3, #20
ldr r2, [r4, #3292]
mul r3, r3, fp
@@ -11485,20 +11607,20 @@ FtlRead:
add r2, r2, r3
ldr r1, [r2, #16]
cmp r0, r1
- bne .L1681
+ bne .L1724
ldr r1, [r2, #8]
ldr r2, [r4, #3316]
cmp r1, r2
- bne .L1682
+ bne .L1725
str r3, [sp, #44]
mov r0, r10
ldr r3, [sp, #32]
ldr r2, [sp, #36]
add r1, r1, r3
-.L1699:
+.L1742:
bl ftl_memcpy
ldr r3, [sp, #44]
-.L1682:
+.L1725:
ldr ip, [r4, #3292]
add r2, ip, r3
ldr r0, [r2, #12]
@@ -11506,52 +11628,52 @@ FtlRead:
ldr r0, [r0, #8]
cmp r1, r0
ittt ne
- ldrne r1, [r4, #2712]
+ ldrne r1, [r4, #2716]
addne r1, r1, #1
- strne r1, [r4, #2712]
+ strne r1, [r4, #2716]
ldr r0, [ip, r3]
adds r1, r0, #1
itttt eq
- ldreq r1, [r4, #2712]
+ ldreq r1, [r4, #2716]
moveq r8, r0
addeq r1, r1, #1
- streq r1, [r4, #2712]
+ streq r1, [r4, #2716]
ldr r3, [ip, r3]
cmp r3, #256
- bne .L1685
+ bne .L1728
ldr r0, [r2, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1685:
+.L1728:
add fp, fp, #1
cmp r6, fp
- bne .L1686
+ bne .L1729
movs r6, #0
- b .L1670
-.L1674:
+ b .L1713
+.L1717:
mla r0, r0, r5, fp
cmp r7, r0
- bhi .L1673
+ bhi .L1716
ldr r3, [sp, #8]
cmp r3, r0
- bls .L1673
+ bls .L1716
subs r0, r0, r7
mov r1, #512
add r0, r10, r0, lsl #9
bl __memzero
-.L1673:
+.L1716:
add fp, fp, #1
- b .L1672
-.L1671:
+ b .L1715
+.L1714:
ldr r3, [r4, #3292]
movs r1, #20
- ldrh fp, [r4, #58]
+ ldrh fp, [r4, #262]
mla r3, r1, r6, r3
str r2, [r3, #4]
ldr r2, [sp, #12]
cmp r5, r2
- bne .L1676
+ bne .L1719
ldr r2, [r4, #3316]
mov r1, fp
mov r0, r7
@@ -11568,10 +11690,10 @@ FtlRead:
cmp r3, fp
str r3, [sp, #28]
ldr r3, [sp, #32]
- bne .L1677
+ bne .L1720
str r10, [r3, #8]
-.L1677:
- ldrh r2, [r4, #112]
+.L1720:
+ ldrh r2, [r4, #316]
ldr r1, [r4, #3340]
str r5, [r3, #16]
muls r2, r6, r2
@@ -11579,51 +11701,51 @@ FtlRead:
bic r2, r2, #3
add r2, r2, r1
str r2, [r3, #12]
- b .L1675
-.L1676:
+ b .L1718
+.L1719:
ldr r2, [sp, #16]
cmp r5, r2
- bne .L1678
+ bne .L1721
ldr r2, [r4, #3320]
ldr r1, [sp, #8]
str r2, [r3, #8]
mul r2, fp, r5
sub r9, r1, r2
cmp fp, r9
- bne .L1677
-.L1698:
+ bne .L1720
+.L1741:
subs r2, r2, r7
add r2, r10, r2, lsl #9
str r2, [r3, #8]
- b .L1677
-.L1678:
+ b .L1720
+.L1721:
mul r2, r5, fp
- b .L1698
-.L1681:
+ b .L1741
+.L1724:
ldr r0, [sp, #16]
cmp r0, r1
- bne .L1682
+ bne .L1725
ldr r1, [r2, #8]
ldr r2, [r4, #3320]
cmp r1, r2
- bne .L1682
+ bne .L1725
str r3, [sp, #44]
- ldrh r0, [r4, #58]
+ ldrh r0, [r4, #262]
ldr r3, [sp, #16]
ldr r2, [sp, #40]
muls r0, r3, r0
subs r0, r0, r7
add r0, r10, r0, lsl #9
- b .L1699
-.L1689:
+ b .L1742
+.L1732:
mov r8, #-1
- b .L1667
-.L1690:
+ b .L1710
+.L1733:
mov r8, r3
- b .L1667
-.L1701:
+ b .L1710
+.L1744:
.align 2
-.L1700:
+.L1743:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -11666,27 +11788,27 @@ FtlWrite:
mov r10, r1
str r2, [sp, #12]
str r3, [sp, #8]
- bne .L1704
+ bne .L1747
mov r2, r3
ldr r1, [sp, #12]
add r0, r10, #256
bl FtlVendorPartWrite
-.L1703:
+.L1746:
add sp, sp, #68
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1704:
+.L1747:
ldr r3, [sp, #12]
- ldr r5, .L1755
+ ldr r5, .L1798
adds r6, r1, r3
- ldr r3, [r5, #140]
+ ldr r3, [r5, #344]
cmp r6, r3
- bhi .L1741
- ldr r4, .L1755+4
+ bhi .L1784
+ ldr r4, .L1798+4
ldr r0, [r4]
adds r7, r0, #1
- beq .L1703
- ldrh r7, [r5, #58]
+ beq .L1746
+ ldrh r7, [r5, #262]
mov r3, #2048
str r3, [r5, #3672]
mov r0, r10
@@ -11703,76 +11825,76 @@ FtlWrite:
str r3, [sp, #24]
adds r3, r3, #1
str r3, [sp]
- ldr r3, [r5, #2532]
+ ldr r3, [r5, #2584]
add r3, r3, r2
ldr r2, [sp]
- str r3, [r5, #2532]
- ldr r3, [r5, #2516]
+ str r3, [r5, #2584]
+ ldr r3, [r5, #2568]
add r3, r3, r2
- str r3, [r5, #2516]
+ str r3, [r5, #2568]
ldr r3, [r4, #8]
- cbz r3, .L1743
- ldrh r2, [r5, #2352]
- addw r3, r5, #2348
- addw r5, r5, #2396
+ cbz r3, .L1786
+ ldrh r2, [r5, #32]
+ add r3, r5, #28
+ adds r5, r5, #80
cmp r2, #0
it ne
movne r5, r3
-.L1706:
+.L1749:
ldr r7, [sp, #4]
- ldr r4, .L1755
-.L1707:
+ ldr r4, .L1798
+.L1750:
ldr r3, [sp]
- cbnz r3, .L1736
+ cbnz r3, .L1779
mov r0, r3
ldr r1, [sp, #24]
bl rk_ftl_garbage_collect
- ldrh r3, [r4, #2344]
+ ldrh r3, [r4, #228]
cmp r3, #5
- bls .L1737
-.L1739:
+ bls .L1780
+.L1782:
movs r0, #0
- b .L1703
-.L1743:
- addw r5, r5, #2348
- b .L1706
-.L1736:
+ b .L1746
+.L1786:
+ adds r5, r5, #28
+ b .L1749
+.L1779:
ldrb r2, [r5, #6] @ zero_extendqisi2
- ldrh r3, [r4, #32]
+ ldrh r3, [r4, #236]
cmp r2, r3
- bcc .L1708
- mov r2, #1016
- ldr r1, .L1755+8
- ldr r0, .L1755+12
+ bcc .L1751
+ movw r2, #1038
+ ldr r1, .L1798+8
+ ldr r0, .L1798+12
bl sftl_printk
-.L1708:
+.L1751:
ldrh r2, [r5, #4]
- cbnz r2, .L1709
- ldr r3, .L1755+16
- ldr r6, .L1755+4
+ cbnz r2, .L1752
+ ldr r3, .L1798+16
+ ldr r6, .L1798+4
cmp r5, r3
- bne .L1710
- ldrh r8, [r4, #2400]
+ bne .L1753
+ ldrh r8, [r4, #84]
cmp r8, #0
- bne .L1711
- add r0, r5, #48
+ bne .L1754
+ add r0, r5, #52
bl allocate_new_data_superblock
str r8, [r6, #8]
-.L1711:
- ldr r5, .L1755+16
- ldr r0, .L1755+16
+.L1754:
+ ldr r5, .L1798+16
+ ldr r0, .L1798+16
bl allocate_new_data_superblock
ldr r2, [r6, #8]
- add r3, r5, #48
+ add r3, r5, #52
cmp r2, #0
it ne
movne r5, r3
-.L1712:
+.L1755:
ldrh r3, [r5, #4]
- cbnz r3, .L1709
+ cbnz r3, .L1752
mov r0, r5
bl allocate_new_data_superblock
-.L1709:
+.L1752:
ldrh r2, [r5, #4]
ldr r3, [sp]
cmp r2, r3
@@ -11783,22 +11905,22 @@ FtlWrite:
cmp r2, r3
it cs
movcs r2, r3
- ldrh r3, [r4, #32]
+ ldrh r3, [r4, #236]
str r2, [sp, #36]
ldrb r2, [r5, #6] @ zero_extendqisi2
cmp r2, r3
- bcc .L1713
- movw r2, #1049
- ldr r1, .L1755+8
- ldr r0, .L1755+12
+ bcc .L1756
+ movw r2, #1071
+ ldr r1, .L1798+8
+ ldr r0, .L1798+12
bl sftl_printk
-.L1713:
+.L1756:
mov fp, #0
-.L1714:
+.L1757:
ldr r3, [sp, #36]
cmp fp, r3
- bne .L1734
-.L1715:
+ bne .L1777
+.L1758:
mov r3, r5
movs r2, #0
mov r1, fp
@@ -11806,30 +11928,30 @@ FtlWrite:
bl FtlProgPages
ldr r3, [sp]
cmp fp, r3
- bls .L1735
- movw r2, #1126
- ldr r1, .L1755+8
- ldr r0, .L1755+12
+ bls .L1778
+ movw r2, #1149
+ ldr r1, .L1798+8
+ ldr r0, .L1798+12
bl sftl_printk
-.L1735:
+.L1778:
ldr r3, [sp]
sub r3, r3, fp
str r3, [sp]
- b .L1707
-.L1710:
+ b .L1750
+.L1753:
str r2, [r6, #8]
- ldrh r2, [r4, #2352]
- cbnz r2, .L1746
+ ldrh r2, [r4, #32]
+ cbnz r2, .L1789
mov r0, r5
bl allocate_new_data_superblock
- b .L1712
-.L1746:
+ b .L1755
+.L1789:
mov r5, r3
- b .L1709
-.L1734:
+ b .L1752
+.L1777:
ldrh r3, [r5, #4]
cmp r3, #0
- beq .L1715
+ beq .L1758
movs r2, #0
add r1, sp, #40
mov r0, r7
@@ -11838,7 +11960,7 @@ FtlWrite:
mov r0, r5
mul r8, r8, fp
bl get_new_active_ppa
- ldrh r2, [r4, #112]
+ ldrh r2, [r4, #316]
ldr r3, [r4, #3300]
mul r1, r2, fp
add r3, r3, r8
@@ -11856,11 +11978,11 @@ FtlWrite:
bl ftl_memset
ldr r3, [sp, #4]
cmp r7, r3
- beq .L1716
+ beq .L1759
ldr r3, [sp, #20]
cmp r7, r3
- bne .L1751
- ldrh r2, [r4, #58]
+ bne .L1794
+ ldrh r2, [r4, #262]
ldr r3, [sp, #12]
smulbb r2, r2, r7
add r6, r10, r3
@@ -11868,9 +11990,9 @@ FtlWrite:
str r3, [sp, #16]
subs r6, r6, r2
uxth r6, r6
- b .L1719
-.L1716:
- ldrh r6, [r4, #58]
+ b .L1762
+.L1759:
+ ldrh r6, [r4, #262]
mov r0, r10
mov r1, r6
bl __aeabi_uidivmod
@@ -11880,11 +12002,11 @@ FtlWrite:
cmp r6, r3
it cs
movcs r6, r3
-.L1719:
- ldrh r3, [r4, #58]
+.L1762:
+ ldrh r3, [r4, #262]
cmp r6, r3
ldr r3, [sp, #4]
- bne .L1720
+ bne .L1763
cmp r7, r3
ldr r3, [r4, #3300]
itte ne
@@ -11897,22 +12019,22 @@ FtlWrite:
streq r2, [r3, #8]
addne r6, r2, r6, lsl #9
strne r6, [r3, #8]
-.L1722:
+.L1765:
ldrb r2, [r5, #6] @ zero_extendqisi2
- ldrh r3, [r4, #32]
+ ldrh r3, [r4, #236]
cmp r2, r3
- bcc .L1731
- movw r2, #1117
- ldr r1, .L1755+8
- ldr r0, .L1755+12
+ bcc .L1774
+ movw r2, #1140
+ ldr r1, .L1798+8
+ ldr r0, .L1798+12
bl sftl_printk
-.L1731:
+.L1774:
ldr r2, [sp, #32]
movw r3, #61589
ldr r1, [sp, #28]
add fp, fp, #1
strh r3, [r2, r1] @ movhi
- ldr r3, [r4, #2544]
+ ldr r3, [r4, #2596]
str r7, [r9, #8]
adds r7, r7, #1
str r3, [r9, #4]
@@ -11920,13 +12042,13 @@ FtlWrite:
adds r2, r3, #1
it eq
moveq r3, #0
- str r3, [r4, #2544]
+ str r3, [r4, #2596]
ldr r3, [sp, #40]
str r3, [r9, #12]
ldrh r3, [r5]
strh r3, [r9, #2] @ movhi
- b .L1714
-.L1720:
+ b .L1757
+.L1763:
cmp r7, r3
ldr r3, [r4, #3300]
ite eq
@@ -11935,8 +12057,8 @@ FtlWrite:
add r3, r3, r8
str r2, [r3, #8]
ldr r3, [sp, #40]
- adds r1, r3, #1
- beq .L1725
+ adds r0, r3, #1
+ beq .L1768
str r3, [sp, #48]
movs r1, #1
ldr r3, [r4, #3300]
@@ -11950,63 +12072,68 @@ FtlWrite:
str r3, [sp, #56]
bl FlashReadPages
ldr r3, [sp, #44]
- adds r3, r3, #1
- bne .L1726
- ldr r3, [r4, #2712]
- adds r3, r3, #1
- str r3, [r4, #2712]
-.L1729:
+ adds r1, r3, #1
+ bne .L1769
+ ldr r2, [r4, #2716]
+ ldr r0, .L1798+20
+ adds r2, r2, #1
+ str r2, [r4, #2716]
+ mov r2, r7
+ ldr r1, [r9, #8]
+ bl sftl_printk
+.L1772:
ldr r3, [sp, #4]
lsls r2, r6, #9
cmp r7, r3
- bne .L1730
+ bne .L1773
ldr r3, [r4, #3300]
ldr r1, [sp, #8]
add r3, r3, r8
ldr r0, [r3, #8]
ldr r3, [sp, #16]
add r0, r0, r3, lsl #9
-.L1753:
+.L1796:
bl ftl_memcpy
- b .L1722
-.L1756:
+ b .L1765
+.L1799:
.align 2
-.L1755:
+.L1798:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR1+591
- .word .LC1
- .word .LANCHOR0+2348
-.L1726:
+ .word .LC8
+ .word .LANCHOR0+28
+ .word .LC127
+.L1769:
ldr r3, [r9, #8]
cmp r7, r3
- beq .L1728
- ldr r3, [r4, #2712]
+ beq .L1771
+ ldr r3, [r4, #2716]
mov r2, r7
- ldr r0, .L1757
+ ldr r0, .L1800
adds r3, r3, #1
- str r3, [r4, #2712]
+ str r3, [r4, #2716]
ldr r1, [r9, #8]
bl sftl_printk
-.L1728:
+.L1771:
ldr r3, [r9, #8]
cmp r7, r3
- beq .L1729
- movw r2, #1102
- ldr r1, .L1757+4
- ldr r0, .L1757+8
+ beq .L1772
+ movw r2, #1125
+ ldr r1, .L1800+4
+ ldr r0, .L1800+8
bl sftl_printk
- b .L1729
-.L1725:
+ b .L1772
+.L1768:
ldr r3, [r4, #3300]
movs r1, #0
- ldrh r2, [r4, #110]
+ ldrh r2, [r4, #314]
add r3, r3, r8
ldr r0, [r3, #8]
bl ftl_memset
- b .L1729
-.L1730:
- ldrh r1, [r4, #58]
+ b .L1772
+.L1773:
+ ldrh r1, [r4, #262]
ldr r0, [sp, #8]
ldr r3, [r4, #3300]
muls r1, r7, r1
@@ -12014,56 +12141,56 @@ FtlWrite:
sub r1, r1, r10
add r1, r0, r1, lsl #9
ldr r0, [r3, #8]
- b .L1753
-.L1751:
+ b .L1796
+.L1794:
ldr r3, [r4, #3300]
ldr r2, [sp, #8]
add r8, r8, r3
- ldrh r3, [r4, #58]
+ ldrh r3, [r4, #262]
muls r3, r7, r3
sub r3, r3, r10
add r3, r2, r3, lsl #9
str r3, [r8, #8]
- b .L1722
-.L1737:
+ b .L1765
+.L1780:
mov r5, #256
movw r6, #65535
-.L1740:
- ldrh r3, [r4, #2592]
+.L1783:
+ ldrh r3, [r4, #176]
cmp r3, r6
- bne .L1738
- ldrh r3, [r4, #3206]
+ bne .L1781
+ ldrh r3, [r4, #226]
cmp r3, r6
- bne .L1738
+ bne .L1781
movs r0, #0
bl List_get_gc_head_node
uxth r0, r0
bl FtlGcRefreshBlock
-.L1738:
+.L1781:
movs r1, #1
movs r3, #128
mov r0, r1
- strh r3, [r4, #3154] @ movhi
- strh r3, [r4, #3152] @ movhi
+ strh r3, [r4, #3158] @ movhi
+ strh r3, [r4, #3156] @ movhi
bl rk_ftl_garbage_collect
movs r1, #1
movs r0, #0
bl rk_ftl_garbage_collect
- ldrh r3, [r4, #2344]
+ ldrh r3, [r4, #228]
cmp r3, #2
- bhi .L1739
+ bhi .L1782
subs r5, r5, #1
- bne .L1740
- b .L1739
-.L1741:
+ bne .L1783
+ b .L1782
+.L1784:
mov r0, #-1
- b .L1703
-.L1758:
+ b .L1746
+.L1801:
.align 2
-.L1757:
- .word .LC114
+.L1800:
+ .word .LC128
.word .LANCHOR1+591
- .word .LC1
+ .word .LC8
.fnend
.size FtlWrite, .-FtlWrite
.align 1
@@ -12098,44 +12225,44 @@ FtlLoadSysInfo:
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #16
movs r1, #0
- ldr r4, .L1787
+ ldr r4, .L1833
ldr r3, [r4, #3304]
- ldrh r2, [r4, #40]
- ldr r0, [r4, #2324]
+ ldrh r2, [r4, #244]
+ ldr r0, [r4, #76]
str r3, [r4, #3464]
ldr r3, [r4, #3336]
lsls r2, r2, #1
str r3, [r4, #3468]
bl ftl_memset
- ldrh r0, [r4, #2576]
+ ldrh r0, [r4, #2628]
movw r3, #65535
cmp r0, r3
- bne .L1761
-.L1772:
+ bne .L1804
+.L1815:
mov r0, #-1
-.L1760:
+.L1803:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1761:
+.L1804:
movs r1, #1
- ldr r8, .L1787+20
+ ldr r8, .L1833+20
bl FtlGetLastWrittenPage
- ldr r9, .L1787+4
+ ldr r9, .L1833+4
add r7, r4, #3456
- ldrsh r6, [r4, #2576]
+ ldrsh r6, [r4, #2628]
sxth r5, r0
adds r0, r0, #1
- strh r0, [r4, #2578] @ movhi
-.L1763:
+ strh r0, [r4, #2630] @ movhi
+.L1806:
cmp r5, #0
- bge .L1769
+ bge .L1812
movw r2, #1465
- ldr r1, .L1787+4
- ldr r0, .L1787+8
+ ldr r1, .L1833+4
+ ldr r0, .L1833+8
bl sftl_printk
- b .L1768
-.L1769:
+ b .L1811
+.L1812:
orr r3, r5, r6, lsl #10
movs r2, #1
mov r1, r2
@@ -12147,69 +12274,72 @@ FtlLoadSysInfo:
ldr r3, [r4, #3468]
ldr r10, [r3, #12]
cmp r10, #0
- beq .L1764
- ldrh r1, [r4, #110]
+ beq .L1807
+ ldr r3, [r4, #3456]
+ adds r3, r3, #1
+ beq .L1807
+ ldrh r1, [r4, #314]
ldr r0, [r4, #3464]
bl js_hash
cmp r10, r0
- beq .L1764
- ldrh r3, [r4, #2580]
+ beq .L1807
+ ldrh r3, [r4, #2632]
mov r2, r6
str r0, [sp, #8]
mov r1, r9
str r10, [sp, #4]
str r3, [sp]
mov r3, r5
- ldr r0, .L1787+12
+ ldr r0, .L1833+12
bl sftl_printk
- cbnz r5, .L1765
- ldrh r3, [r4, #2580]
+ cbnz r5, .L1808
+ ldrh r3, [r4, #2632]
cmp r6, r3
- beq .L1765
- ldrh r5, [r4, #104]
+ beq .L1808
+ ldrh r5, [r4, #308]
sxth r6, r3
-.L1767:
+.L1810:
subs r5, r5, #1
sxth r5, r5
- b .L1763
-.L1765:
+ b .L1806
+.L1808:
mov r3, #-1
str r3, [r4, #3456]
-.L1764:
+.L1807:
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L1767
+ beq .L1810
ldr r3, [r4, #3304]
ldr r3, [r3]
cmp r3, r8
- bne .L1767
+ bne .L1810
ldr r3, [r4, #3336]
ldrh r2, [r3]
movw r3, #61604
cmp r2, r3
- bne .L1767
-.L1768:
- ldrh r3, [r4, #40]
- ldrh r2, [r4, #110]
+ bne .L1810
+.L1811:
+ ldrh r3, [r4, #244]
+ ldrh r2, [r4, #314]
adds r3, r3, #24
cmp r2, r3, lsl #1
- bcs .L1771
+ bcs .L1814
movw r2, #1467
- ldr r1, .L1787+4
- ldr r0, .L1787+8
+ ldr r1, .L1833+4
+ ldr r0, .L1833+8
bl sftl_printk
-.L1771:
+.L1814:
movs r2, #48
ldr r1, [r4, #3464]
- ldr r0, .L1787+16
+ ldr r0, .L1833+16
bl ftl_memcpy
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
ldr r1, [r4, #3464]
- ldr r0, [r4, #2324]
+ ldr r0, [r4, #76]
lsls r2, r2, #1
adds r1, r1, #48
bl ftl_memcpy
- ldrh r1, [r4, #40]
+ ldrh r1, [r4, #244]
ldr r3, [r4, #3464]
ldr r0, [r4, #24]
lsrs r2, r1, #3
@@ -12219,131 +12349,131 @@ FtlLoadSysInfo:
bic r1, r1, #3
add r1, r1, r3
bl ftl_memcpy
- ldr r2, [r4, #2268]
- ldr r3, .L1787+20
+ ldr r2, [r4, #2472]
+ ldr r3, .L1833+20
cmp r2, r3
- bne .L1772
- ldrb r2, [r4, #2278] @ zero_extendqisi2
- ldrh r3, [r4, #54]
- ldrh r5, [r4, #2276]
+ bne .L1815
+ ldrb r2, [r4, #2482] @ zero_extendqisi2
+ ldrh r3, [r4, #258]
+ ldrh r5, [r4, #2480]
cmp r2, r3
- strh r5, [r4, #2582] @ movhi
- bne .L1772
- ldrh r3, [r4, #102]
- ldrh r2, [r4, #58]
- ldr r6, [r4, #44]
- ldrh r0, [r4, #158]
+ strh r5, [r4, #2634] @ movhi
+ bne .L1815
+ ldrh r3, [r4, #306]
+ ldrh r2, [r4, #262]
+ ldr r6, [r4, #248]
+ ldrh r0, [r4, #362]
muls r3, r5, r3
str r5, [r4, #3676]
- ldrh r1, [r4, #32]
+ ldrh r1, [r4, #236]
subs r0, r6, r0
subs r0, r0, r5
- str r3, [r4, #2504]
+ str r3, [r4, #2556]
muls r3, r2, r3
- str r3, [r4, #140]
+ str r3, [r4, #344]
bl __aeabi_uidiv
cmp r5, r6
- strh r0, [r4, #2572] @ movhi
- bls .L1773
+ strh r0, [r4, #2624] @ movhi
+ bls .L1816
movw r2, #1489
- ldr r1, .L1787+4
- ldr r0, .L1787+8
+ ldr r1, .L1833+4
+ ldr r0, .L1833+8
bl sftl_printk
-.L1773:
- ldrh r3, [r4, #2284]
- ldrh r1, [r4, #2282]
+.L1816:
+ ldrh r3, [r4, #2488]
+ ldrh r1, [r4, #2486]
lsrs r2, r3, #6
and r3, r3, #63
- strb r3, [r4, #2354]
- strh r2, [r4, #2350] @ movhi
- ldrh r2, [r4, #2286]
- ldrb r3, [r4, #2279] @ zero_extendqisi2
- strh r1, [r4, #2348] @ movhi
- strh r2, [r4, #2396] @ movhi
- ldrh r2, [r4, #2288]
- strb r3, [r4, #2356]
+ strb r3, [r4, #34]
+ strh r2, [r4, #30] @ movhi
+ ldrh r2, [r4, #2490]
+ ldrb r3, [r4, #2483] @ zero_extendqisi2
+ strh r1, [r4, #28] @ movhi
+ strh r2, [r4, #80] @ movhi
+ ldrh r2, [r4, #2492]
+ strb r3, [r4, #36]
movw r3, #65535
- strh r3, [r4, #2592] @ movhi
+ strh r3, [r4, #176] @ movhi
movs r3, #0
- strh r3, [r4, #2594] @ movhi
+ strh r3, [r4, #178] @ movhi
lsrs r0, r2, #6
and r2, r2, #63
- strb r2, [r4, #2402]
- ldrb r2, [r4, #2280] @ zero_extendqisi2
- strh r0, [r4, #2398] @ movhi
- strb r3, [r4, #2598]
- strb r2, [r4, #2404]
- ldrh r2, [r4, #2290]
- strb r3, [r4, #2600]
- str r3, [r4, #2528]
- strh r2, [r4, #2444] @ movhi
- ldrh r2, [r4, #2292]
- str r3, [r4, #2516]
- str r3, [r4, #2508]
- str r3, [r4, #2524]
+ strb r2, [r4, #86]
+ ldrb r2, [r4, #2484] @ zero_extendqisi2
+ strh r0, [r4, #82] @ movhi
+ strb r3, [r4, #182]
+ strb r2, [r4, #88]
+ ldrh r2, [r4, #2494]
+ strb r3, [r4, #184]
+ str r3, [r4, #2580]
+ strh r2, [r4, #128] @ movhi
+ ldrh r2, [r4, #2496]
+ str r3, [r4, #2568]
+ str r3, [r4, #2560]
+ str r3, [r4, #2576]
lsrs r0, r2, #6
and r2, r2, #63
- strb r2, [r4, #2450]
- ldrb r2, [r4, #2281] @ zero_extendqisi2
- str r3, [r4, #2552]
- strh r0, [r4, #2446] @ movhi
- strb r2, [r4, #2452]
- ldr r2, [r4, #2300]
- str r2, [r4, #2548]
- str r3, [r4, #2564]
- ldr r2, [r4, #2540]
- str r3, [r4, #2520]
- ldr r3, [r4, #2308]
+ strb r2, [r4, #134]
+ ldrb r2, [r4, #2485] @ zero_extendqisi2
+ str r3, [r4, #2604]
+ strh r0, [r4, #130] @ movhi
+ strb r2, [r4, #136]
+ ldr r2, [r4, #2504]
+ str r2, [r4, #2600]
+ str r3, [r4, #2616]
+ ldr r2, [r4, #2592]
+ str r3, [r4, #2572]
+ ldr r3, [r4, #2512]
cmp r3, r2
- ldr r2, [r4, #2544]
+ ldr r2, [r4, #2596]
it hi
- strhi r3, [r4, #2540]
- ldr r3, [r4, #2304]
+ strhi r3, [r4, #2592]
+ ldr r3, [r4, #2508]
cmp r3, r2
it hi
- strhi r3, [r4, #2544]
+ strhi r3, [r4, #2596]
movw r3, #65535
cmp r1, r3
- beq .L1776
- ldr r0, .L1787+24
+ beq .L1819
+ ldr r0, .L1833+24
bl make_superblock
-.L1776:
- ldrh r2, [r4, #2396]
+.L1819:
+ ldrh r2, [r4, #80]
movw r3, #65535
cmp r2, r3
- beq .L1777
- ldr r0, .L1787+28
+ beq .L1820
+ ldr r0, .L1833+28
bl make_superblock
-.L1777:
- ldrh r2, [r4, #2444]
+.L1820:
+ ldrh r2, [r4, #128]
movw r3, #65535
cmp r2, r3
- beq .L1778
- ldr r0, .L1787+32
+ beq .L1821
+ ldr r0, .L1833+32
bl make_superblock
-.L1778:
- ldrh r2, [r4, #2592]
+.L1821:
+ ldrh r2, [r4, #176]
movw r3, #65535
cmp r2, r3
- beq .L1779
- ldr r0, .L1787+36
+ beq .L1822
+ ldr r0, .L1833+36
bl make_superblock
-.L1779:
+.L1822:
movs r0, #0
- b .L1760
-.L1788:
+ b .L1803
+.L1834:
.align 2
-.L1787:
+.L1833:
.word .LANCHOR0
.word .LANCHOR1+600
- .word .LC1
- .word .LC115
- .word .LANCHOR0+2268
+ .word .LC8
+ .word .LC129
+ .word .LANCHOR0+2472
.word 1179929683
- .word .LANCHOR0+2348
- .word .LANCHOR0+2396
- .word .LANCHOR0+2444
- .word .LANCHOR0+2592
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
+ .word .LANCHOR0+128
+ .word .LANCHOR0+176
.fnend
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 1
@@ -12367,7 +12497,7 @@ FtlMapTblRecovery:
ldrh r10, [r0, #6]
str r3, [sp, #8]
ldr r3, [r0, #16]
- ldr r4, .L1824
+ ldr r4, .L1876
ldr r9, [r0, #12]
lsl r2, r10, #2
str r3, [sp, #16]
@@ -12388,16 +12518,16 @@ FtlMapTblRecovery:
mov r8, r3
str r3, [r5, #32]
str r3, [r5, #28]
-.L1790:
+.L1836:
ldr r3, [sp, #12]
sxth r6, r8
cmp r6, r3
- bge .L1809
+ bge .L1855
ldr r3, [sp, #12]
lsls r7, r6, #1
subs r3, r3, #1
cmp r6, r3
- bne .L1791
+ bne .L1837
movs r1, #1
ldrh r0, [r9, r6, lsl #1]
bl FtlGetLastWrittenPage
@@ -12411,22 +12541,22 @@ FtlMapTblRecovery:
strh r0, [r5, #2] @ movhi
ldr r3, [r3, r6, lsl #2]
str r3, [r5, #28]
-.L1792:
+.L1838:
ldr r3, [sp, #12]
sxth r9, r8
adds r2, r3, #1
cmp r9, r2
- blt .L1795
-.L1809:
+ blt .L1841
+.L1855:
mov r0, r5
bl ftl_free_no_use_map_blk
ldrh r2, [r5, #2]
- ldrh r3, [r4, #104]
+ ldrh r3, [r4, #308]
cmp r2, r3
- bne .L1797
+ bne .L1843
mov r0, r5
bl ftl_map_blk_alloc_new_blk
-.L1797:
+.L1843:
mov r0, r5
bl ftl_map_blk_gc
mov r0, r5
@@ -12435,9 +12565,9 @@ FtlMapTblRecovery:
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1795:
+.L1841:
ldrh r2, [r7]
- ldr r0, .L1824+4
+ ldr r0, .L1876+4
orr r2, r9, r2, lsl #10
str r2, [r4, #3460]
movs r2, #1
@@ -12446,29 +12576,32 @@ FtlMapTblRecovery:
ldr r2, [r4, #3468]
ldr r2, [r2, #12]
str r2, [sp, #16]
- cbz r2, .L1793
- ldrh r1, [r4, #110]
+ cbz r2, .L1839
+ ldr r1, [r4, #3456]
+ adds r1, r1, #1
+ beq .L1839
+ ldrh r1, [r4, #314]
ldr r0, [r4, #3464]
bl js_hash
ldr r2, [sp, #16]
cmp r2, r0
- beq .L1793
+ beq .L1839
str r0, [sp, #4]
mov r3, r9
str r2, [sp]
mov r2, r6
- ldr r1, .L1824+8
- ldr r0, .L1824+12
+ ldr r1, .L1876+8
+ ldr r0, .L1876+12
bl sftl_printk
mov r3, #-1
str r3, [r4, #3456]
-.L1793:
+.L1839:
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L1794
+ beq .L1840
ldrh r3, [fp, #8]
cmp r10, r3
- bls .L1794
+ bls .L1840
ldrh r1, [fp]
ldrh r2, [r5, #4]
cmp r1, r2
@@ -12476,17 +12609,17 @@ FtlMapTblRecovery:
ldreq r2, [r4, #3460]
ldreq r1, [sp, #8]
streq r2, [r1, r3, lsl #2]
-.L1794:
+.L1840:
add r8, r8, #1
- b .L1792
-.L1791:
+ b .L1838
+.L1837:
ldr r3, [r4, #3304]
- ldr r0, .L1824+4
+ ldr r0, .L1876+4
str r3, [r4, #3464]
add r3, r9, r7
ldrh r2, [r9, r6, lsl #1]
str r3, [sp, #20]
- ldrh r3, [r4, #104]
+ ldrh r3, [r4, #308]
subs r3, r3, #1
orr r3, r3, r2, lsl #10
movs r2, #1
@@ -12495,24 +12628,24 @@ FtlMapTblRecovery:
bl FlashReadPages
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L1811
+ beq .L1857
ldrh r2, [fp]
ldrh r3, [r5, #4]
cmp r2, r3
- bne .L1811
+ bne .L1857
ldrh r2, [fp, #8]
movw r3, #64245
cmp r2, r3
- beq .L1799
-.L1811:
+ beq .L1845
+.L1857:
movs r7, #0
-.L1800:
- ldrh r2, [r4, #104]
+.L1846:
+ ldrh r2, [r4, #308]
sxth r3, r7
cmp r3, r2
- bge .L1807
+ bge .L1853
ldr r2, [sp, #20]
- ldr r0, .L1824+4
+ ldr r0, .L1876+4
str r3, [sp, #28]
ldrh r2, [r2]
orr r2, r3, r2, lsl #10
@@ -12523,29 +12656,32 @@ FtlMapTblRecovery:
ldr r2, [r4, #3468]
ldr r2, [r2, #12]
str r2, [sp, #24]
- cbz r2, .L1804
- ldrh r1, [r4, #110]
+ cbz r2, .L1850
+ ldr r1, [r4, #3456]
+ adds r1, r1, #1
+ beq .L1850
+ ldrh r1, [r4, #314]
ldr r0, [r4, #3464]
bl js_hash
ldr r2, [sp, #24]
cmp r2, r0
- beq .L1804
+ beq .L1850
str r0, [sp, #4]
str r2, [sp]
mov r2, r6
ldr r3, [sp, #28]
- ldr r1, .L1824+8
- ldr r0, .L1824+16
+ ldr r1, .L1876+8
+ ldr r0, .L1876+16
bl sftl_printk
mov r3, #-1
str r3, [r4, #3456]
-.L1804:
+.L1850:
ldr r3, [r4, #3456]
adds r3, r3, #1
- beq .L1805
+ beq .L1851
ldrh r3, [fp, #8]
cmp r10, r3
- bls .L1805
+ bls .L1851
ldrh r1, [fp]
ldrh r2, [r5, #4]
cmp r1, r2
@@ -12553,42 +12689,42 @@ FtlMapTblRecovery:
ldreq r2, [r4, #3460]
ldreq r1, [sp, #8]
streq r2, [r1, r3, lsl #2]
-.L1805:
+.L1851:
adds r7, r7, #1
- b .L1800
-.L1799:
+ b .L1846
+.L1845:
movs r1, #0
movs r0, #4
-.L1801:
- ldrh r2, [r4, #104]
+.L1847:
+ ldrh r2, [r4, #308]
sxth r3, r1
subs r2, r2, #1
cmp r3, r2
- blt .L1803
-.L1807:
+ blt .L1849
+.L1853:
add r8, r8, #1
- b .L1790
-.L1803:
+ b .L1836
+.L1849:
ldr r6, [r4, #3304]
ldr r2, [r6, r3, lsl #3]
uxth r7, r2
cmp r10, r7
- bls .L1802
+ bls .L1848
add r3, r0, r3, lsl #3
ldr r3, [r6, r3]
ldr r6, [sp, #8]
str r3, [r6, r7, lsl #2]
-.L1802:
+.L1848:
adds r1, r1, #1
- b .L1801
-.L1825:
+ b .L1847
+.L1877:
.align 2
-.L1824:
+.L1876:
.word .LANCHOR0
.word .LANCHOR0+3456
.word .LANCHOR1+615
- .word .LC116
- .word .LC117
+ .word .LC130
+ .word .LC131
.fnend
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 1
@@ -12602,18 +12738,18 @@ FtlLoadVonderInfo:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r0, .L1827
+ ldr r0, .L1879
push {r3, lr}
.save {r3, lr}
- ldrh r3, [r0, #120]
+ ldrh r3, [r0, #324]
strh r3, [r0, #3622] @ movhi
movw r3, #61574
strh r3, [r0, #3616] @ movhi
- ldrh r3, [r0, #144]
+ ldrh r3, [r0, #348]
strh r3, [r0, #3620] @ movhi
- ldrh r3, [r0, #122]
+ ldrh r3, [r0, #326]
strh r3, [r0, #3618] @ movhi
- ldr r3, [r0, #148]
+ ldr r3, [r0, #352]
addw r0, r0, #3612
str r3, [r0, #12]
ldr r3, [r0, #-240]
@@ -12625,9 +12761,9 @@ FtlLoadVonderInfo:
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L1828:
+.L1880:
.align 2
-.L1827:
+.L1879:
.word .LANCHOR0
.fnend
.size FtlLoadVonderInfo, .-FtlLoadVonderInfo
@@ -12645,13 +12781,13 @@ FtlLoadMapInfo:
push {r3, lr}
.save {r3, lr}
bl FtlL2PDataInit
- ldr r0, .L1830
+ ldr r0, .L1882
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L1831:
+.L1883:
.align 2
-.L1830:
+.L1882:
.word .LANCHOR0+3396
.fnend
.size FtlLoadMapInfo, .-FtlLoadMapInfo
@@ -12669,25 +12805,25 @@ FtlSysBlkInit:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r3, #0
- ldr r4, .L1847
- ldrh r0, [r4, #36]
+ ldr r4, .L1900
+ ldrh r0, [r4, #240]
strh r3, [r4, #3476] @ movhi
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
- ldrh r2, [r4, #2576]
+ ldrh r2, [r4, #2628]
movw r3, #65535
cmp r2, r3
- bne .L1833
-.L1835:
+ bne .L1885
+.L1887:
mov r5, #-1
-.L1832:
+.L1884:
mov r0, r5
pop {r4, r5, r6, pc}
-.L1833:
+.L1885:
bl FtlLoadSysInfo
mov r5, r0
cmp r0, #0
- bne .L1835
+ bne .L1887
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -12697,90 +12833,89 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
movs r0, #1
bl FtlUpdateVaildLpn
- ldrh r1, [r4, #138]
+ ldrh r1, [r4, #342]
mov r3, r5
- ldr r2, [r4, #2492]
+ ldr r2, [r4, #2544]
movs r0, #12
-.L1836:
+.L1888:
cmp r3, r1
- bge .L1841
+ bge .L1893
mla r6, r0, r3, r2
ldr r6, [r6, #4]
cmp r6, #0
- bge .L1837
-.L1841:
- ldrh r2, [r4, #2296]
+ bge .L1889
+.L1893:
+ ldrh r2, [r4, #2500]
cmp r3, r1
add r2, r2, #1
- strh r2, [r4, #2296] @ movhi
- bge .L1846
-.L1838:
- ldr r0, .L1847+4
+ strh r2, [r4, #2500] @ movhi
+ bge .L1899
+.L1890:
+ ldr r0, .L1900+4
bl FtlSuperblockPowerLostFix
- ldr r0, .L1847+8
+ ldr r0, .L1900+8
bl FtlSuperblockPowerLostFix
- ldrh r1, [r4, #2348]
- ldr r2, [r4, #2324]
- ldrh r0, [r4, #2352]
+ ldrh r1, [r4, #28]
+ ldr r2, [r4, #76]
+ ldrh r0, [r4, #32]
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldrh r3, [r4, #102]
- ldr r1, [r4, #2324]
- ldrh r0, [r4, #2396]
- strh r3, [r4, #2350] @ movhi
+ ldrh r3, [r4, #306]
+ ldr r1, [r4, #76]
+ ldrh r0, [r4, #80]
+ strh r3, [r4, #30] @ movhi
movs r3, #0
- strb r3, [r4, #2354]
- strh r3, [r4, #2352] @ movhi
- ldrh r6, [r4, #2400]
+ strb r3, [r4, #34]
+ strh r3, [r4, #32] @ movhi
+ ldrh r6, [r4, #84]
ldrh r2, [r1, r0, lsl #1]
subs r2, r2, r6
strh r2, [r1, r0, lsl #1] @ movhi
- strb r3, [r4, #2402]
- strh r3, [r4, #2400] @ movhi
- ldrh r3, [r4, #2298]
- ldrh r2, [r4, #102]
+ strb r3, [r4, #86]
+ strh r3, [r4, #84] @ movhi
+ ldrh r3, [r4, #2502]
+ ldrh r2, [r4, #306]
adds r3, r3, #1
- strh r2, [r4, #2398] @ movhi
- strh r3, [r4, #2298] @ movhi
+ strh r2, [r4, #82] @ movhi
+ strh r3, [r4, #2502] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
- b .L1842
-.L1837:
+ b .L1894
+.L1889:
adds r3, r3, #1
- b .L1836
-.L1846:
+ b .L1888
+.L1899:
ldrh r3, [r4, #3476]
cmp r3, #0
- bne .L1838
-.L1842:
- bl FtlVpcCheckAndModify
- ldrh r0, [r4, #2348]
+ bne .L1890
+.L1894:
+ ldrh r0, [r4, #28]
movw r3, #65535
cmp r0, r3
- beq .L1832
- ldrh r3, [r4, #2352]
- cmp r3, #0
- bne .L1832
- ldrh r3, [r4, #2400]
- cmp r3, #0
- bne .L1832
+ beq .L1895
+ ldrh r3, [r4, #32]
+ cbnz r3, .L1895
+ ldrh r3, [r4, #84]
+ cbnz r3, .L1895
bl FtlGcRefreshBlock
- ldrh r0, [r4, #2396]
+ ldrh r0, [r4, #80]
bl FtlGcRefreshBlock
bl FtlVpcTblFlush
- ldr r0, .L1847+4
+ ldr r0, .L1900+4
bl allocate_new_data_superblock
- ldr r0, .L1847+8
+ ldr r0, .L1900+8
bl allocate_new_data_superblock
- b .L1832
-.L1848:
+.L1895:
+ bl FtlVpcCheckAndModify
+ b .L1884
+.L1901:
.align 2
-.L1847:
+.L1900:
.word .LANCHOR0
- .word .LANCHOR0+2348
- .word .LANCHOR0+2396
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
.fnend
.size FtlSysBlkInit, .-FtlSysBlkInit
.align 1
@@ -12797,45 +12932,46 @@ ftl_low_format:
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
movs r3, #0
- ldr r4, .L1873
- ldrh r0, [r4, #36]
- str r3, [r4, #2540]
- str r3, [r4, #2544]
+ ldr r4, .L1926
+ ldrh r0, [r4, #240]
+ str r3, [r4, #2592]
+ str r3, [r4, #2596]
+ str r3, [r4, #2608]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz r0, .L1850
+ cbz r0, .L1903
bl FtlMakeBbt
-.L1850:
- ldr r0, .L1873+4
+.L1903:
+ ldr r0, .L1926+4
movs r2, #0
-.L1851:
- ldrh r1, [r4, #58]
+.L1904:
+ ldrh r1, [r4, #262]
uxth r3, r2
adds r2, r2, #1
cmp r3, r1, lsl #7
- blt .L1852
- ldrh r6, [r4, #40]
+ blt .L1905
+ ldrh r6, [r4, #244]
movs r5, #0
-.L1853:
- ldrh r3, [r4, #42]
+.L1906:
+ ldrh r3, [r4, #246]
cmp r3, r6
- bhi .L1854
- ldrh r1, [r4, #32]
+ bhi .L1907
+ ldrh r1, [r4, #236]
subs r3, r5, #3
cmp r3, r1, lsl #1
- bge .L1855
-.L1859:
+ bge .L1908
+.L1912:
movs r5, #0
mov r6, r5
-.L1856:
- ldrh r3, [r4, #40]
+.L1909:
+ ldrh r3, [r4, #244]
uxth r0, r5
adds r5, r5, #1
cmp r3, r0
- bhi .L1860
- ldrh r3, [r4, #42]
- ldrh r5, [r4, #32]
- ldr r9, [r4, #44]
+ bhi .L1913
+ ldrh r3, [r4, #246]
+ ldrh r5, [r4, #236]
+ ldr r9, [r4, #248]
str r3, [r4, #3288]
mov r1, r5
mov r0, r9
@@ -12843,90 +12979,90 @@ ftl_low_format:
ubfx r7, r0, #5, #16
mov r8, r0
add r3, r7, #36
- str r0, [r4, #2504]
- strh r3, [r4, #2572] @ movhi
+ str r0, [r4, #2556]
+ strh r3, [r4, #2624] @ movhi
movs r3, #24
muls r3, r5, r3
cmp r6, r3
- ble .L1861
+ ble .L1914
mov r1, r5
sub r0, r9, r6
bl __aeabi_uidiv
- str r0, [r4, #2504]
+ str r0, [r4, #2556]
lsrs r0, r0, #5
adds r0, r0, #24
- strh r0, [r4, #2572] @ movhi
-.L1861:
- ldrh r3, [r4, #94]
- cbz r3, .L1863
- ldrh r2, [r4, #2572]
+ strh r0, [r4, #2624] @ movhi
+.L1914:
+ ldrh r3, [r4, #298]
+ cbz r3, .L1916
+ ldrh r2, [r4, #2624]
add r2, r2, r3, lsr #1
- strh r2, [r4, #2572] @ movhi
+ strh r2, [r4, #2624] @ movhi
mul r2, r5, r3
cmp r6, r2
itttt lt
addlt r3, r3, #32
- strlt r8, [r4, #2504]
+ strlt r8, [r4, #2556]
addlt r3, r3, r7
- strhlt r3, [r4, #2572] @ movhi
-.L1863:
- ldrh r2, [r4, #2572]
- ldr r3, [r4, #2504]
- ldr r6, .L1873+8
+ strhlt r3, [r4, #2624] @ movhi
+.L1916:
+ ldrh r2, [r4, #2624]
+ ldr r3, [r4, #2556]
+ ldr r6, .L1926+8
subs r3, r3, r2
muls r5, r3, r5
- ldrh r3, [r4, #102]
+ ldrh r3, [r4, #306]
str r5, [r4, #3676]
muls r5, r3, r5
- ldrh r3, [r4, #58]
- str r5, [r4, #2504]
+ ldrh r3, [r4, #262]
+ str r5, [r4, #2556]
muls r5, r3, r5
- str r5, [r4, #140]
+ str r5, [r4, #344]
movw r5, #65535
bl FtlBbmTblFlush
- ldrh r2, [r4, #42]
+ ldrh r2, [r4, #246]
movs r1, #0
- ldr r0, [r4, #2324]
+ ldr r0, [r4, #76]
lsls r2, r2, #1
bl ftl_memset
- ldrh r2, [r4, #40]
+ ldrh r2, [r4, #244]
movs r3, #0
- str r3, [r4, #2500]
+ str r3, [r4, #2552]
movs r1, #255
- strh r3, [r4, #2594] @ movhi
- strb r3, [r4, #2598]
- strb r3, [r4, #2600]
+ strh r3, [r4, #178] @ movhi
+ strb r3, [r4, #182]
+ strb r3, [r4, #184]
lsrs r2, r2, #3
- strh r3, [r4, #2350] @ movhi
- strb r3, [r4, #2354]
- strh r3, [r4, #2348] @ movhi
+ strh r3, [r4, #30] @ movhi
+ strb r3, [r4, #34]
+ strh r3, [r4, #28] @ movhi
movs r3, #1
ldr r0, [r4, #24]
- strh r5, [r4, #2592] @ movhi
- strb r3, [r4, #2356]
+ strh r5, [r4, #176] @ movhi
+ strb r3, [r4, #36]
bl ftl_memset
-.L1865:
+.L1918:
mov r0, r6
bl make_superblock
- ldrb r3, [r4, #2355] @ zero_extendqisi2
- ldrh r2, [r4, #2348]
+ ldrb r3, [r4, #35] @ zero_extendqisi2
+ ldrh r2, [r4, #28]
cmp r3, #0
- bne .L1866
- ldr r3, [r4, #2324]
+ bne .L1919
+ ldr r3, [r4, #76]
strh r5, [r3, r2, lsl #1] @ movhi
- ldrh r3, [r4, #2348]
+ ldrh r3, [r4, #28]
adds r3, r3, #1
- strh r3, [r4, #2348] @ movhi
- b .L1865
-.L1852:
+ strh r3, [r4, #28] @ movhi
+ b .L1918
+.L1905:
ldr r5, [r4, #3316]
mvns r1, r3
orr r1, r3, r1, lsl #16
str r1, [r5, r3, lsl #2]
ldr r1, [r4, #3320]
str r0, [r1, r3, lsl #2]
- b .L1851
-.L1854:
+ b .L1904
+.L1907:
mov r0, r6
movs r1, #1
bl FtlLowFormatEraseBlock
@@ -12934,100 +13070,100 @@ ftl_low_format:
add r5, r5, r0
uxth r5, r5
uxth r6, r6
- b .L1853
-.L1855:
+ b .L1906
+.L1908:
mov r0, r5
bl __aeabi_uidiv
- ldr r3, [r4, #132]
+ ldr r3, [r4, #336]
add r0, r0, r3
uxth r0, r0
bl FtlSysBlkNumInit
- ldrh r0, [r4, #36]
+ ldrh r0, [r4, #240]
bl FtlFreeSysBlkQueueInit
- ldrh r5, [r4, #40]
-.L1857:
- ldrh r3, [r4, #42]
+ ldrh r5, [r4, #244]
+.L1910:
+ ldrh r3, [r4, #246]
cmp r3, r5
- bls .L1859
+ bls .L1912
mov r0, r5
movs r1, #1
adds r5, r5, #1
bl FtlLowFormatEraseBlock
uxth r5, r5
- b .L1857
-.L1860:
+ b .L1910
+.L1913:
movs r1, #0
bl FtlLowFormatEraseBlock
add r6, r6, r0
uxth r6, r6
- b .L1856
-.L1866:
- ldr r3, [r4, #2540]
+ b .L1909
+.L1919:
+ ldr r3, [r4, #2592]
movw r5, #65535
- ldrh r1, [r4, #2352]
- ldr r6, .L1873+12
- str r3, [r4, #2360]
+ ldrh r1, [r4, #32]
+ ldr r6, .L1926+12
+ str r3, [r4, #40]
adds r3, r3, #1
- str r3, [r4, #2540]
- ldr r3, [r4, #2324]
+ str r3, [r4, #2592]
+ ldr r3, [r4, #76]
strh r1, [r3, r2, lsl #1] @ movhi
movs r3, #0
- strh r3, [r4, #2398] @ movhi
- strb r3, [r4, #2402]
- ldrh r3, [r4, #2348]
+ strh r3, [r4, #82] @ movhi
+ strb r3, [r4, #86]
+ ldrh r3, [r4, #28]
adds r3, r3, #1
- strh r3, [r4, #2396] @ movhi
+ strh r3, [r4, #80] @ movhi
movs r3, #1
- strb r3, [r4, #2404]
-.L1867:
+ strb r3, [r4, #88]
+.L1920:
mov r0, r6
bl make_superblock
- ldrb r3, [r4, #2403] @ zero_extendqisi2
- ldrh r2, [r4, #2396]
- cbnz r3, .L1868
- ldr r3, [r4, #2324]
+ ldrb r3, [r4, #87] @ zero_extendqisi2
+ ldrh r2, [r4, #80]
+ cbnz r3, .L1921
+ ldr r3, [r4, #76]
strh r5, [r3, r2, lsl #1] @ movhi
- ldrh r3, [r4, #2396]
+ ldrh r3, [r4, #80]
adds r3, r3, #1
- strh r3, [r4, #2396] @ movhi
- b .L1867
-.L1868:
- ldr r3, [r4, #2540]
+ strh r3, [r4, #80] @ movhi
+ b .L1920
+.L1921:
+ ldr r3, [r4, #2592]
movw r5, #65535
- ldrh r1, [r4, #2400]
- str r3, [r4, #2408]
+ ldrh r1, [r4, #84]
+ str r3, [r4, #92]
adds r3, r3, #1
- str r3, [r4, #2540]
- ldr r3, [r4, #2324]
+ str r3, [r4, #2592]
+ ldr r3, [r4, #76]
strh r1, [r3, r2, lsl #1] @ movhi
- strh r5, [r4, #2444] @ movhi
+ strh r5, [r4, #128] @ movhi
bl FtlFreeSysBlkQueueOut
movs r3, #0
- strh r0, [r4, #2576] @ movhi
- strh r3, [r4, #2578] @ movhi
+ strh r0, [r4, #2628] @ movhi
+ strh r3, [r4, #2630] @ movhi
ldr r3, [r4, #3676]
- strh r5, [r4, #2580] @ movhi
- strh r3, [r4, #2582] @ movhi
- ldr r3, [r4, #2540]
- str r3, [r4, #2584]
+ strh r5, [r4, #2632] @ movhi
+ strh r3, [r4, #2634] @ movhi
+ ldr r3, [r4, #2592]
+ str r3, [r4, #2636]
adds r3, r3, #1
- str r3, [r4, #2540]
+ str r3, [r4, #2592]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz r0, .L1869
- ldr r3, .L1873+16
+ cbnz r0, .L1922
+ ldr r3, .L1926+16
movs r2, #1
str r2, [r3]
-.L1869:
+.L1922:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1874:
+.L1927:
.align 2
-.L1873:
+.L1926:
.word .LANCHOR0
.word 168778952
- .word .LANCHOR0+2348
- .word .LANCHOR0+2396
+ .word .LANCHOR0+28
+ .word .LANCHOR0+80
.word .LANCHOR2
.fnend
.size ftl_low_format, .-ftl_low_format
@@ -13045,44 +13181,44 @@ sftl_init:
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r3, #-1
- ldr r4, .L1881
- ldr r5, .L1881+4
- ldr r1, .L1881+8
- ldr r0, .L1881+12
+ ldr r4, .L1934
+ ldr r5, .L1934+4
+ ldr r1, .L1934+8
+ ldr r0, .L1934+12
str r3, [r5]
bl sftl_printk
mov r0, r4
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh r0, [r4, #36]
+ ldrh r0, [r4, #240]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbnz r0, .L1879
+ cbnz r0, .L1932
bl FtlSysBlkInit
- cbnz r0, .L1879
+ cbnz r0, .L1932
movs r3, #1
str r3, [r5]
- ldrh r3, [r4, #2344]
+ ldrh r3, [r4, #228]
cmp r3, #15
- bhi .L1879
+ bhi .L1932
movw r4, #8129
-.L1878:
+.L1931:
movs r1, #1
movs r0, #0
bl rk_ftl_garbage_collect
subs r4, r4, #1
- bne .L1878
-.L1879:
+ bne .L1931
+.L1932:
movs r0, #0
pop {r3, r4, r5, pc}
-.L1882:
+.L1935:
.align 2
-.L1881:
+.L1934:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC70
- .word .LC71
+ .word .LC0
+ .word .LC77
.fnend
.size sftl_init, .-sftl_init
.align 1
@@ -13106,31 +13242,31 @@ FtlWriteToIDB:
mov r4, r0
mov r6, r1
mov r9, r2
- ldr r5, .L1953
- bls .L1884
+ ldr r5, .L2006
+ bls .L1937
cmp r0, #576
- bcc .L1885
-.L1884:
+ bcc .L1938
+.L1937:
ldr r3, [r5, #3680]
- cbnz r3, .L1886
-.L1952:
+ cbnz r3, .L1939
+.L2005:
movs r4, #0
- b .L1883
-.L1886:
+ b .L1936
+.L1939:
ldr r3, [r5, #3684]
ldr r2, [r3]
str r3, [sp, #8]
- ldr r3, .L1953+4
+ ldr r3, .L2006+4
cmp r2, r3
- bne .L1888
+ bne .L1941
ldr r3, [sp, #8]
movs r2, #0
ldrh r1, [r5, #10]
add r0, r3, #262144
movw r3, #65535
-.L1892:
+.L1945:
ldr r4, [r0, #-4]
- cbnz r4, .L1889
+ cbnz r4, .L1942
ldr r4, [sp, #8]
subs r3, r3, #1
ldr r4, [r4, r2, lsl #2]
@@ -13140,18 +13276,18 @@ FtlWriteToIDB:
movhi r2, #0
cmp r3, #4096
str r4, [r0, #-4]!
- bne .L1892
+ bne .L1945
mov r3, #512
- b .L1949
-.L1889:
+ b .L2002
+.L1942:
adds r3, r3, #127
lsrs r3, r3, #7
-.L1949:
+.L2002:
str r3, [sp, #12]
lsls r1, r1, #2
ldr r3, [sp, #12]
uxth r1, r1
- ldr r4, .L1953
+ ldr r4, .L2006
adds r0, r3, #4
bl __aeabi_uidiv
adds r3, r0, #1
@@ -13162,7 +13298,7 @@ FtlWriteToIDB:
movs r3, #0
mov fp, r3
str r3, [sp, #16]
-.L1914:
+.L1967:
mov r1, #512
ldr r0, [r4, #3688]
bl __memzero
@@ -13170,41 +13306,41 @@ FtlWriteToIDB:
ldr r3, [r4, #3264]
mul r9, fp, r7
cmp r3, #0
- beq .L1922
+ beq .L1975
ldr r3, [r4, #3268]
cmp r3, #0
ite eq
moveq r3, #6
movne r3, #9
-.L1950:
+.L2003:
str r3, [sp, #24]
mov r1, r9
- ldr r3, .L1953
+ ldr r3, .L2006
movs r0, #0
ldr r3, [r3, #3252]
blx r3
ldr r3, [sp, #20]
cmp r3, #1
- beq .L1894
- ldr r3, .L1953
+ beq .L1947
+ ldr r3, .L2006
add r1, r7, r9
movs r0, #0
ldr r3, [r3, #3252]
blx r3
-.L1894:
+.L1947:
ldr r3, [sp, #24]
cmp r3, #9
- bne .L1924
- ldr r3, .L1953
+ bne .L1977
+ ldr r3, .L2006
mov r1, #1024
ldr r5, [r3, #3688]
mov r0, r5
bl __memzero
movs r2, #4
- ldr r3, .L1953+8
+ ldr r3, .L2006+8
strb r2, [r5, #17]
movs r1, #12
- ldr r2, .L1953
+ ldr r2, .L2006
adds r0, r5, r1
str r3, [r5]
movs r3, #0
@@ -13219,17 +13355,17 @@ FtlWriteToIDB:
strh r3, [r5, #22] @ movhi
bl js_hash
str r0, [r5, #8]
-.L1895:
+.L1948:
ldr r3, [sp, #20]
mov r10, r9
mov r8, #0
muls r3, r7, r3
ldr r7, [sp, #8]
str r3, [sp, #32]
-.L1896:
+.L1949:
ldr r3, [sp, #32]
cmp r8, r3
- beq .L1903
+ beq .L1956
ldr r3, [sp, #24]
cmp r3, #9
itet ne
@@ -13240,10 +13376,10 @@ FtlWriteToIDB:
movw r3, #61424
str r3, [sp, #44]
cmp r8, #0
- bne .L1899
+ bne .L1952
ldr r3, [sp, #24]
cmp r3, #9
- bne .L1899
+ bne .L1952
ldr r3, [r4, #3264]
movs r0, #70
blx r3
@@ -13259,8 +13395,8 @@ FtlWriteToIDB:
blx r3
ldr r2, [sp, #36]
adds r2, r2, #1
- bne .L1900
-.L1903:
+ bne .L1953
+.L1956:
ldrb r3, [r4, #14] @ zero_extendqisi2
ldr r2, [r4, #3264]
ldr r8, [r4, #3688]
@@ -13268,19 +13404,19 @@ FtlWriteToIDB:
ldrh r3, [r4, #10]
mul r10, fp, r3
cmp r2, #0
- bne .L1901
+ bne .L1954
mov r9, #6
-.L1902:
+.L1955:
ldr r2, [sp, #20]
movs r7, #0
mul r5, r3, r2
-.L1905:
+.L1958:
cmp r7, r5
- beq .L1909
+ beq .L1962
cmp r7, #0
- bne .L1906
+ bne .L1959
cmp r9, #9
- bne .L1906
+ bne .L1959
ldr r3, [r4, #3264]
movs r0, #70
blx r3
@@ -13300,49 +13436,49 @@ FtlWriteToIDB:
ldrb r0, [r4, #22] @ zero_extendqisi2
blx r3
ldr r3, [r8]
- ldr r2, .L1953+8
+ ldr r2, .L2006+8
cmp r3, r2
- beq .L1907
-.L1909:
+ beq .L1960
+.L1962:
ldr r0, [r4, #3688]
movs r5, #0
ldr r1, [sp, #8]
-.L1908:
+.L1961:
mov r8, r1
ldr r2, [r0, r5, lsl #2]
ldr r3, [r8]
lsls r7, r5, #2
adds r1, r1, #4
cmp r2, r3
- beq .L1911
+ beq .L1964
mov r1, #512
bl __memzero
- ldr r3, .L1953
+ ldr r3, .L2006
mov r1, fp
- ldr r0, .L1953+12
+ ldr r0, .L2006+12
ldr r2, [r3, #3688]
str r5, [sp]
ldr r3, [r8]
ldr r2, [r2, r7]
bl sftl_printk
- ldr r3, .L1953
+ ldr r3, .L2006
movs r0, #0
ldrh r1, [r3, #10]
ldr r3, [r3, #3252]
mul r1, fp, r1
blx r3
-.L1912:
+.L1965:
ldr r3, [sp, #20]
add fp, fp, r3
cmp fp, #15
- bls .L1914
+ bls .L1967
ldr r3, [sp, #16]
- cbnz r3, .L1915
-.L1888:
+ cbnz r3, .L1968
+.L1941:
mov r3, #-1
str r3, [sp, #12]
-.L1915:
- ldr r5, .L1953
+.L1968:
+ ldr r5, .L2006
movs r3, #0
ldr r4, [sp, #12]
ldr r0, [r5, #3684]
@@ -13350,18 +13486,18 @@ FtlWriteToIDB:
bl kfree
ldr r0, [r5, #3688]
bl kfree
-.L1883:
+.L1936:
mov r0, r4
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1922:
+.L1975:
movs r3, #6
- b .L1950
-.L1924:
+ b .L2003
+.L1977:
movs r5, #0
- b .L1895
-.L1899:
+ b .L1948
+.L1952:
add r3, sp, #40
mov r2, r7
mov r1, r10
@@ -13369,20 +13505,20 @@ FtlWriteToIDB:
ldr r6, [r4, #3256]
blx r6
adds r0, r0, #1
- beq .L1903
+ beq .L1956
add r7, r7, #2048
-.L1900:
+.L1953:
add r8, r8, #1
add r10, r10, #1
- b .L1896
-.L1901:
+ b .L1949
+.L1954:
ldr r2, [r4, #3268]
cmp r2, #0
ite eq
moveq r9, #6
movne r9, #9
- b .L1902
-.L1906:
+ b .L1955
+.L1959:
add r3, sp, #40
mov r2, r8
add r1, r10, r7
@@ -13390,36 +13526,36 @@ FtlWriteToIDB:
ldr r6, [r4, #3260]
blx r6
adds r0, r0, #1
- beq .L1909
+ beq .L1962
ldr r2, [sp, #44]
movw r3, #61424
cmp r2, r3
- bne .L1909
+ bne .L1962
add r8, r8, #2048
-.L1907:
+.L1960:
adds r7, r7, #1
- b .L1905
-.L1911:
+ b .L1958
+.L1964:
ldr r3, [sp, #28]
adds r5, r5, #1
cmp r5, r3
- bne .L1908
+ bne .L1961
ldr r3, [sp, #16]
adds r3, r3, #1
cmp r3, #5
str r3, [sp, #16]
- bls .L1912
- b .L1915
-.L1954:
+ bls .L1965
+ b .L1968
+.L2007:
.align 2
-.L1953:
+.L2006:
.word .LANCHOR0
.word -52655045
.word 1179535694
- .word .LC118
-.L1885:
+ .word .LC132
+.L1938:
cmp r0, #64
- bne .L1916
+ bne .L1969
mov r0, #262144
bl ftl_malloc
str r0, [r5, #3684]
@@ -13427,27 +13563,27 @@ FtlWriteToIDB:
bl ftl_malloc
ldr r3, [r5, #3684]
str r0, [r5, #3688]
- cbz r3, .L1917
- cbz r0, .L1917
+ cbz r3, .L1970
+ cbz r0, .L1970
movs r2, #1
mov r1, #262144
mov r0, r3
str r2, [r5, #3680]
bl __memzero
-.L1916:
+.L1969:
ldr r3, [r5, #3680]
cmp r3, #0
- beq .L1952
+ beq .L2005
cmp r4, #63
ldr r1, [r5, #3684]
iteee hi
- ldrhi r5, .L1955
+ ldrhi r5, .L2008
rsbls r4, r4, #64
subls r6, r6, r4
addls r9, r9, r4, lsl #9
it ls
movls r5, r1
- ldr r0, .L1955+4
+ ldr r0, .L2008+4
it hi
addhi r5, r5, r4
mov r2, #262144
@@ -13464,19 +13600,19 @@ FtlWriteToIDB:
mov r1, r9
mov r0, r5
bl ftl_memcpy
- b .L1952
-.L1917:
- ldr r1, .L1955+8
- ldr r0, .L1955+12
+ b .L2005
+.L1970:
+ ldr r1, .L2008+8
+ ldr r0, .L2008+12
bl sftl_printk
- b .L1916
-.L1956:
+ b .L1969
+.L2009:
.align 2
-.L1955:
+.L2008:
.word 8388544
- .word .LC120
+ .word .LC134
.word .LANCHOR1+633
- .word .LC119
+ .word .LC133
.fnend
.size FtlWriteToIDB, .-FtlWriteToIDB
.align 1
@@ -13516,19 +13652,19 @@ rk_sftl_vendor_dev_ops_register:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L1961
+ ldr r2, .L2014
ldr r3, [r2, #3692]
- cbnz r3, .L1960
+ cbnz r3, .L2013
str r0, [r2, #3692]
mov r0, r3
str r1, [r2, #3696]
bx lr
-.L1960:
+.L2013:
mov r0, #-1
bx lr
-.L1962:
+.L2015:
.align 2
-.L1961:
+.L2014:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
@@ -13546,55 +13682,55 @@ rk_sftl_vendor_storage_init:
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
mov r0, #65536
- ldr r4, .L1971
+ ldr r4, .L2024
bl ftl_malloc
str r0, [r4, #3700]
cmp r0, #0
- beq .L1969
- ldr r8, .L1971+4
+ beq .L2022
+ ldr r8, .L2024+4
mov r9, #0
mov r7, r9
mov r6, r9
-.L1967:
+.L2020:
ldr r3, [r4, #3692]
movs r1, #128
ldr r2, [r4, #3700]
lsls r0, r6, #7
blx r3
mov r5, r0
- cbnz r0, .L1965
+ cbnz r0, .L2018
ldr r2, [r4, #3700]
ldr r3, [r2]
cmp r3, r8
- bne .L1966
+ bne .L2019
movw r3, #65532
ldr r1, [r2, r3]
ldr r3, [r2, #4]
cmp r1, r3
- bne .L1966
+ bne .L2019
cmp r1, r7
itt hi
movhi r9, r6
movhi r7, r1
-.L1966:
+.L2019:
adds r6, r6, #1
cmp r6, #2
- bne .L1967
- cbz r7, .L1968
+ bne .L2020
+ cbz r7, .L2021
ldr r3, [r4, #3692]
movs r1, #128
lsl r0, r9, #7
blx r3
mov r5, r0
- cbz r0, .L1963
-.L1965:
+ cbz r0, .L2016
+.L2018:
ldr r0, [r4, #3700]
mov r5, #-1
bl kfree
movs r3, #0
str r3, [r4, #3700]
- b .L1963
-.L1968:
+ b .L2016
+.L2021:
mov r1, #65536
mov r0, r2
bl __memzero
@@ -13607,15 +13743,15 @@ rk_sftl_vendor_storage_init:
movw r2, #64504
strh r7, [r3, #12] @ movhi
strh r2, [r3, #14] @ movhi
-.L1963:
+.L2016:
mov r0, r5
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1969:
+.L2022:
mvn r5, #11
- b .L1963
-.L1972:
+ b .L2016
+.L2025:
.align 2
-.L1971:
+.L2024:
.word .LANCHOR0
.word 1380668996
.fnend
@@ -13634,23 +13770,23 @@ rk_sftl_vendor_read:
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r7, r0
- ldr r3, .L1979
+ ldr r3, .L2032
mov r0, r1
ldr r5, [r3, #3700]
- cbz r5, .L1978
+ cbz r5, .L2031
ldrh r6, [r5, #10]
movs r3, #0
-.L1975:
+.L2028:
cmp r3, r6
- bcc .L1977
-.L1978:
+ bcc .L2030
+.L2031:
mov r0, #-1
pop {r3, r4, r5, r6, r7, pc}
-.L1977:
+.L2030:
add r1, r5, r3, lsl #3
ldrh r4, [r1, #16]
cmp r4, r7
- bne .L1976
+ bne .L2029
ldrh r4, [r1, #20]
ldrh r1, [r1, #18]
cmp r4, r2
@@ -13662,12 +13798,12 @@ rk_sftl_vendor_read:
bl memcpy
mov r0, r4
pop {r3, r4, r5, r6, r7, pc}
-.L1976:
+.L2029:
adds r3, r3, #1
- b .L1975
-.L1980:
+ b .L2028
+.L2033:
.align 2
-.L1979:
+.L2032:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_read, .-rk_sftl_vendor_read
@@ -13685,26 +13821,26 @@ rk_sftl_vendor_write:
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r2
- ldr r2, .L2000
+ ldr r2, .L2053
.pad #28
sub sp, sp, #28
mov r3, r1
ldr r4, [r2, #3700]
mov r9, r2
cmp r4, #0
- beq .L1996
+ beq .L2049
ldrh r2, [r4, #10]
add r6, r8, #63
ldrh r1, [r4, #8]
bic r6, r6, #63
movs r7, #0
str r1, [sp, #4]
-.L1983:
+.L2036:
cmp r7, r2
- bcc .L1991
+ bcc .L2044
ldrh r1, [r4, #14]
cmp r6, r1
- bhi .L1996
+ bhi .L2049
add r2, r4, r2, lsl #3
uxth r6, r6
strh r0, [r2, #16] @ movhi
@@ -13737,31 +13873,31 @@ rk_sftl_vendor_write:
movhi r3, #0
strh r3, [r4, #8] @ movhi
ldr r3, [r9, #3696]
- b .L1999
-.L1991:
+ b .L2052
+.L2044:
add r5, r4, r7, lsl #3
ldrh r1, [r5, #16]
cmp r1, r0
str r1, [sp, #8]
- bne .L1984
+ bne .L2037
ldrh r1, [r5, #20]
add fp, r4, #1024
adds r1, r1, #63
bic r1, r1, #63
cmp r8, r1
str r1, [sp, #12]
- bls .L1985
+ bls .L2038
ldrh r1, [r4, #14]
cmp r6, r1
- bhi .L1996
+ bhi .L2049
ldrh r10, [r5, #18]
subs r2, r2, #1
str r2, [sp, #16]
-.L1986:
+.L2039:
ldr r2, [sp, #16]
adds r5, r5, #8
cmp r7, r2
- bcc .L1987
+ bcc .L2040
ldrh r2, [sp, #8]
add r7, r4, r7, lsl #3
uxth r5, r10
@@ -13780,7 +13916,7 @@ rk_sftl_vendor_write:
strh r5, [r4, #12] @ movhi
add r6, r6, r3
strh r6, [r4, #14] @ movhi
-.L1988:
+.L2041:
ldr r3, [r4, #4]
movw r2, #65532
adds r3, r3, #1
@@ -13793,20 +13929,20 @@ rk_sftl_vendor_write:
it hi
movhi r3, #0
strh r3, [r4, #8] @ movhi
- ldr r3, .L2000
+ ldr r3, .L2053
ldr r3, [r3, #3696]
-.L1999:
+.L2052:
ldr r0, [sp, #4]
mov r2, r4
movs r1, #128
lsls r0, r0, #7
blx r3
movs r0, #0
-.L1981:
+.L2034:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1987:
+.L2040:
ldrh r9, [r5, #20]
add r0, fp, r10
ldrh r2, [r5, #16]
@@ -13823,24 +13959,24 @@ rk_sftl_vendor_write:
add r10, r10, r9
bl memcpy
ldr r3, [sp, #20]
- b .L1986
-.L1985:
+ b .L2039
+.L2038:
ldrh r0, [r5, #18]
mov r2, r8
mov r1, r3
add r0, r0, fp
bl memcpy
strh r8, [r5, #20] @ movhi
- b .L1988
-.L1984:
+ b .L2041
+.L2037:
adds r7, r7, #1
- b .L1983
-.L1996:
+ b .L2036
+.L2049:
mov r0, #-1
- b .L1981
-.L2001:
+ b .L2034
+.L2054:
.align 2
-.L2000:
+.L2053:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_write, .-rk_sftl_vendor_write
@@ -13859,142 +13995,161 @@ rk_sftl_vendor_storage_ioctl:
.save {r4, r5, r6, lr}
mov r0, #4096
mov r6, r1
- mov r5, r2
+ mov r4, r2
bl ftl_malloc
- mov r4, r0
+ mov r5, r0
cmp r0, #0
- beq .L2016
- ldr r3, .L2028
+ beq .L2072
+ ldr r3, .L2083
cmp r6, r3
- beq .L2005
+ beq .L2058
adds r3, r3, #1
cmp r6, r3
- beq .L2006
-.L2027:
- mvn r5, #13
- b .L2004
-.L2005:
- ldr r6, .L2028+4
+ beq .L2059
+.L2078:
+ mvn r4, #13
+ b .L2057
+.L2058:
+ ldr r6, .L2083+4
mov r3, sp
ands r3, r3, r6
ldr r3, [r3, #72]
.syntax unified
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
+ adds r2, r4, #8; sbcccs r2, r2, r3; movcc r3, #0
@ 0 "" 2
.thumb
.syntax unified
- cmp r3, #0
- bne .L2012
+ cbnz r3, .L2060
movs r2, #8
- mov r1, r5
+ mov r1, r4
bl arm_copy_from_user
- cmp r0, #0
- bne .L2027
- ldr r2, [r4]
- ldr r3, .L2028+8
+ cbz r0, .L2079
+.L2061:
+ mov r2, r4
+ mov r1, #256
+.L2082:
+ ldr r0, .L2083+8
+ bl sftl_printk
+ b .L2078
+.L2060:
+ movs r1, #8
+ bl __memzero
+ b .L2061
+.L2079:
+ ldr r2, [r5]
+ ldr r3, .L2083+12
cmp r2, r3
- beq .L2010
-.L2011:
- mov r5, #-1
-.L2004:
- mov r0, r4
- bl kfree
-.L2002:
+ beq .L2063
+.L2064:
+ mov r4, #-1
+.L2057:
mov r0, r5
+ bl kfree
+.L2055:
+ mov r0, r4
pop {r4, r5, r6, pc}
-.L2010:
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
+.L2063:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
bl rk_sftl_vendor_read
adds r3, r0, #1
- beq .L2011
+ beq .L2064
mov r3, sp
uxth r2, r0
ands r6, r6, r3
- strh r0, [r4, #6] @ movhi
+ strh r0, [r5, #6] @ movhi
adds r2, r2, #8
ldr r3, [r6, #72]
.syntax unified
@ 573 "./arch/arm/include/asm/uaccess.h" 1
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
+ adds r1, r4, r2; sbcccs r1, r1, r3; movcc r3, #0
@ 0 "" 2
.thumb
.syntax unified
cmp r3, #0
- bne .L2027
- mov r1, r4
- mov r0, r5
+ bne .L2078
+ mov r1, r5
+ mov r0, r4
bl arm_copy_to_user
cmp r0, #0
- bne .L2027
-.L2018:
- mov r5, r0
- b .L2004
-.L2006:
- ldr r6, .L2028+4
+ bne .L2078
+.L2074:
+ mov r4, r0
+ b .L2057
+.L2059:
+ ldr r6, .L2083+4
mov r3, sp
ands r3, r3, r6
ldr r3, [r3, #72]
.syntax unified
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
+ adds r2, r4, #8; sbcccs r2, r2, r3; movcc r3, #0
@ 0 "" 2
.thumb
.syntax unified
- cbnz r3, .L2012
+ cbnz r3, .L2066
movs r2, #8
- mov r1, r5
+ mov r1, r4
bl arm_copy_from_user
- cmp r0, #0
- bne .L2027
- ldr r2, [r4]
- ldr r3, .L2028+8
+ cbz r0, .L2080
+.L2067:
+ mov r2, r4
+ mov r1, #276
+ b .L2082
+.L2066:
+ movs r1, #8
+ bl __memzero
+ b .L2067
+.L2080:
+ ldr r2, [r5]
+ ldr r3, .L2083+12
cmp r2, r3
- bne .L2011
- ldrh r2, [r4, #6]
+ bne .L2064
+ ldrh r2, [r5, #6]
movw r3, #4087
cmp r2, r3
- bhi .L2011
+ bhi .L2064
mov r3, sp
adds r2, r2, #8
ands r6, r6, r3
ldr r3, [r6, #72]
.syntax unified
@ 564 "./arch/arm/include/asm/uaccess.h" 1
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
+ adds r1, r4, r2; sbcccs r1, r1, r3; movcc r3, #0
@ 0 "" 2
.thumb
.syntax unified
- cbnz r3, .L2014
- mov r1, r5
- mov r0, r4
+ cbnz r3, .L2069
+ mov r1, r4
+ mov r0, r5
bl arm_copy_from_user
- cmp r0, #0
- bne .L2027
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
- bl rk_sftl_vendor_write
- b .L2018
-.L2012:
- movs r1, #8
-.L2026:
- bl __memzero
- b .L2027
-.L2014:
+ cbz r0, .L2081
+.L2070:
+ mov r2, r4
+ movw r1, #283
+ b .L2082
+.L2069:
mov r1, r2
- mov r0, r4
- b .L2026
-.L2016:
- mov r5, #-1
- b .L2002
-.L2029:
+ mov r0, r5
+ bl __memzero
+ b .L2070
+.L2081:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
+ bl rk_sftl_vendor_write
+ b .L2074
+.L2072:
+ mov r4, #-1
+ b .L2055
+.L2084:
.align 2
-.L2028:
+.L2083:
.word 1074034177
.word -8192
+ .word .LC135
.word 1448232273
.fnend
.size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl
@@ -14010,11 +14165,11 @@ rk_sftl_vendor_register:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r0, .L2031
+ ldr r0, .L2086
b misc_register
-.L2032:
+.L2087:
.align 2
-.L2031:
+.L2086:
.word .LANCHOR2+12
.fnend
.size rk_sftl_vendor_register, .-rk_sftl_vendor_register
@@ -14170,153 +14325,153 @@ rk_sftl_vendor_register:
.section .rodata
.align 2
.set .LANCHOR1,. + 0
- .type __func__.6703, %object
- .size __func__.6703, 17
-__func__.6703:
+ .type __func__.6707, %object
+ .size __func__.6707, 17
+__func__.6707:
.ascii "INSERT_DATA_LIST\000"
- .type __func__.6698, %object
- .size __func__.6698, 17
-__func__.6698:
+ .type __func__.6702, %object
+ .size __func__.6702, 17
+__func__.6702:
.ascii "INSERT_FREE_LIST\000"
- .type __func__.6734, %object
- .size __func__.6734, 17
-__func__.6734:
+ .type __func__.6738, %object
+ .size __func__.6738, 17
+__func__.6738:
.ascii "List_remove_node\000"
- .type __func__.6766, %object
- .size __func__.6766, 22
-__func__.6766:
+ .type __func__.6770, %object
+ .size __func__.6770, 22
+__func__.6770:
.ascii "List_update_data_list\000"
- .type __func__.6873, %object
- .size __func__.6873, 22
-__func__.6873:
+ .type __func__.6877, %object
+ .size __func__.6877, 22
+__func__.6877:
.ascii "select_l2p_ram_region\000"
- .type __func__.7200, %object
- .size __func__.7200, 16
-__func__.7200:
+ .type __func__.7204, %object
+ .size __func__.7204, 16
+__func__.7204:
.ascii "make_superblock\000"
- .type __func__.7375, %object
- .size __func__.7375, 19
-__func__.7375:
+ .type __func__.7379, %object
+ .size __func__.7379, 19
+__func__.7379:
.ascii "get_new_active_ppa\000"
- .type __func__.17790, %object
- .size __func__.17790, 17
-__func__.17790:
+ .type __func__.17802, %object
+ .size __func__.17802, 17
+__func__.17802:
.ascii "FlashEraseBlocks\000"
- .type __func__.6808, %object
- .size __func__.6808, 26
-__func__.6808:
+ .type __func__.6812, %object
+ .size __func__.6812, 26
+__func__.6812:
.ascii "ftl_map_blk_alloc_new_blk\000"
- .type __func__.6313, %object
- .size __func__.6313, 11
-__func__.6313:
+ .type __func__.6317, %object
+ .size __func__.6317, 11
+__func__.6317:
.ascii "FtlMemInit\000"
- .type __func__.6540, %object
- .size __func__.6540, 14
-__func__.6540:
+ .type __func__.6544, %object
+ .size __func__.6544, 14
+__func__.6544:
.ascii "FtlBbt2Bitmap\000"
- .type __func__.7221, %object
- .size __func__.7221, 18
-__func__.7221:
+ .type __func__.7225, %object
+ .size __func__.7225, 18
+__func__.7225:
.ascii "SupperBlkListInit\000"
- .type __func__.17747, %object
- .size __func__.17747, 15
-__func__.17747:
+ .type __func__.17759, %object
+ .size __func__.17759, 15
+__func__.17759:
.ascii "FlashReadPages\000"
- .type __func__.6985, %object
- .size __func__.6985, 14
-__func__.6985:
+ .type __func__.6989, %object
+ .size __func__.6989, 14
+__func__.6989:
.ascii "FtlScanSysBlk\000"
- .type __func__.6583, %object
- .size __func__.6583, 11
-__func__.6583:
+ .type __func__.6587, %object
+ .size __func__.6587, 11
+__func__.6587:
.ascii "FtlLoadBbt\000"
- .type __func__.17766, %object
- .size __func__.17766, 15
-__func__.17766:
+ .type __func__.17778, %object
+ .size __func__.17778, 15
+__func__.17778:
.ascii "FlashProgPages\000"
- .type __func__.7347, %object
- .size __func__.7347, 25
-__func__.7347:
+ .type __func__.7351, %object
+ .size __func__.7351, 25
+__func__.7351:
.ascii "allocate_data_superblock\000"
- .type __func__.7388, %object
- .size __func__.7388, 16
-__func__.7388:
+ .type __func__.7392, %object
+ .size __func__.7392, 16
+__func__.7392:
.ascii "update_vpc_list\000"
- .type __func__.7395, %object
- .size __func__.7395, 20
-__func__.7395:
+ .type __func__.7399, %object
+ .size __func__.7399, 20
+__func__.7399:
.ascii "decrement_vpc_count\000"
- .type __func__.6834, %object
- .size __func__.6834, 31
-__func__.6834:
+ .type __func__.6838, %object
+ .size __func__.6838, 31
+__func__.6838:
.ascii "Ftl_write_map_blk_to_last_page\000"
- .type __func__.6848, %object
- .size __func__.6848, 16
-__func__.6848:
+ .type __func__.6852, %object
+ .size __func__.6852, 16
+__func__.6852:
.ascii "FtlMapWritePage\000"
- .type __func__.6775, %object
- .size __func__.6775, 16
-__func__.6775:
+ .type __func__.6779, %object
+ .size __func__.6779, 16
+__func__.6779:
.ascii "load_l2p_region\000"
- .type __func__.6819, %object
- .size __func__.6819, 15
-__func__.6819:
+ .type __func__.6823, %object
+ .size __func__.6823, 15
+__func__.6823:
.ascii "ftl_map_blk_gc\000"
- .type __func__.6890, %object
- .size __func__.6890, 9
-__func__.6890:
+ .type __func__.6894, %object
+ .size __func__.6894, 9
+__func__.6894:
.ascii "log2phys\000"
- .type __func__.7109, %object
- .size __func__.7109, 16
-__func__.7109:
+ .type __func__.7113, %object
+ .size __func__.7113, 16
+__func__.7113:
.ascii "FtlReUsePrevPpa\000"
- .type __func__.7143, %object
- .size __func__.7143, 22
-__func__.7143:
+ .type __func__.7147, %object
+ .size __func__.7147, 22
+__func__.7147:
.ascii "FtlRecoverySuperblock\000"
- .type __func__.7262, %object
- .size __func__.7262, 14
-__func__.7262:
+ .type __func__.7266, %object
+ .size __func__.7266, 14
+__func__.7266:
.ascii "ftl_check_vpc\000"
- .type __func__.6963, %object
- .size __func__.6963, 15
-__func__.6963:
+ .type __func__.6967, %object
+ .size __func__.6967, 15
+__func__.6967:
.ascii "FtlVpcTblFlush\000"
- .type __func__.7246, %object
- .size __func__.7246, 21
-__func__.7246:
+ .type __func__.7250, %object
+ .size __func__.7250, 21
+__func__.7250:
.ascii "FtlVpcCheckAndModify\000"
- .type __func__.7368, %object
- .size __func__.7368, 29
-__func__.7368:
+ .type __func__.7372, %object
+ .size __func__.7372, 29
+__func__.7372:
.ascii "allocate_new_data_superblock\000"
- .type __func__.6437, %object
- .size __func__.6437, 13
-__func__.6437:
+ .type __func__.6441, %object
+ .size __func__.6441, 13
+__func__.6441:
.ascii "FtlProgPages\000"
- .type __func__.7465, %object
- .size __func__.7465, 19
-__func__.7465:
+ .type __func__.7469, %object
+ .size __func__.7469, 19
+__func__.7469:
.ascii "FtlGcFreeTempBlock\000"
- .type __func__.7576, %object
- .size __func__.7576, 23
-__func__.7576:
+ .type __func__.7582, %object
+ .size __func__.7582, 23
+__func__.7582:
.ascii "rk_ftl_garbage_collect\000"
- .type __func__.6465, %object
- .size __func__.6465, 9
-__func__.6465:
+ .type __func__.6469, %object
+ .size __func__.6469, 9
+__func__.6469:
.ascii "FtlWrite\000"
- .type __func__.7041, %object
- .size __func__.7041, 15
-__func__.7041:
+ .type __func__.7045, %object
+ .size __func__.7045, 15
+__func__.7045:
.ascii "FtlLoadSysInfo\000"
- .type __func__.7063, %object
- .size __func__.7063, 18
-__func__.7063:
+ .type __func__.7067, %object
+ .size __func__.7067, 18
+__func__.7067:
.ascii "FtlMapTblRecovery\000"
- .type __func__.17914, %object
- .size __func__.17914, 14
-__func__.17914:
+ .type __func__.17926, %object
+ .size __func__.17926, 14
+__func__.17926:
.ascii "FtlWriteToIDB\000"
.space 1
.type rk_sftl_vendor_storage_fops, %object
@@ -14346,7 +14501,7 @@ power_up_flag:
.size rkflash_vender_storage_dev, 40
rkflash_vender_storage_dev:
.word 255
- .word .LC121
+ .word .LC136
.word rk_sftl_vendor_storage_fops
.space 28
.bss
@@ -14360,6 +14515,39 @@ g_nand_phy_info:
.size p_blk_mode_table, 4
p_blk_mode_table:
.space 4
+ .type g_active_superblock, %object
+ .size g_active_superblock, 48
+g_active_superblock:
+ .space 48
+ .type p_valid_page_count_table, %object
+ .size p_valid_page_count_table, 4
+p_valid_page_count_table:
+ .space 4
+ .type g_buffer_superblock, %object
+ .size g_buffer_superblock, 48
+g_buffer_superblock:
+ .space 48
+ .type g_gc_temp_superblock, %object
+ .size g_gc_temp_superblock, 48
+g_gc_temp_superblock:
+ .space 48
+ .type g_gc_superblock, %object
+ .size g_gc_superblock, 48
+g_gc_superblock:
+ .space 48
+ .type g_gc_next_blk_1, %object
+ .size g_gc_next_blk_1, 2
+g_gc_next_blk_1:
+ .space 2
+ .type g_gc_next_blk, %object
+ .size g_gc_next_blk, 2
+g_gc_next_blk:
+ .space 2
+ .type g_num_free_superblocks, %object
+ .size g_num_free_superblocks, 2
+g_num_free_superblocks:
+ .space 2
+ .space 2
.type c_ftl_nand_sys_blks_per_plane, %object
.size c_ftl_nand_sys_blks_per_plane, 4
c_ftl_nand_sys_blks_per_plane:
@@ -14523,14 +14711,6 @@ p_data_block_list_table:
.size p_data_block_list_head, 4
p_data_block_list_head:
.space 4
- .type p_valid_page_count_table, %object
- .size p_valid_page_count_table, 4
-p_valid_page_count_table:
- .space 4
- .type p_erase_count_table, %object
- .size p_erase_count_table, 4
-p_erase_count_table:
- .space 4
.type p_data_block_list_tail, %object
.size p_data_block_list_tail, 4
p_data_block_list_tail:
@@ -14544,23 +14724,10 @@ g_num_data_superblocks:
.size p_free_data_block_list_head, 4
p_free_data_block_list_head:
.space 4
- .type g_num_free_superblocks, %object
- .size g_num_free_superblocks, 2
-g_num_free_superblocks:
- .space 2
- .space 2
- .type g_active_superblock, %object
- .size g_active_superblock, 48
-g_active_superblock:
- .space 48
- .type g_buffer_superblock, %object
- .size g_buffer_superblock, 48
-g_buffer_superblock:
- .space 48
- .type g_gc_temp_superblock, %object
- .size g_gc_temp_superblock, 48
-g_gc_temp_superblock:
- .space 48
+ .type p_erase_count_table, %object
+ .size p_erase_count_table, 4
+p_erase_count_table:
+ .space 4
.type p_l2p_ram_map, %object
.size p_l2p_ram_map, 4
p_l2p_ram_map:
@@ -14654,10 +14821,6 @@ c_ftl_nand_data_op_blks_per_plane:
.size gSysInfo, 16
gSysInfo:
.space 16
- .type g_gc_superblock, %object
- .size g_gc_superblock, 48
-g_gc_superblock:
- .space 48
.type g_sys_ext_data, %object
.size g_sys_ext_data, 512
g_sys_ext_data:
@@ -14724,14 +14887,6 @@ p_gc_page_info:
.size g_gc_page_offset, 2
g_gc_page_offset:
.space 2
- .type g_gc_next_blk, %object
- .size g_gc_next_blk, 2
-g_gc_next_blk:
- .space 2
- .type g_gc_next_blk_1, %object
- .size g_gc_next_blk_1, 2
-g_gc_next_blk_1:
- .space 2
.type g_gc_bad_block_temp_num, %object
.size g_gc_bad_block_temp_num, 2
g_gc_bad_block_temp_num:
@@ -14983,253 +15138,283 @@ gp_last_act_superblock:
.space 4
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
- .ascii "\000"
+ .ascii "SFTL version: 5.0.50 20190215\000"
.LC1:
- .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
+ .ascii "\012%s\012\000"
.LC2:
- .ascii "FLASH INFO:\012\000"
+ .ascii "act blk: %x %x %x %x %x %x\012\000"
.LC3:
- .ascii "Device Capacity: %d MB\012\000"
+ .ascii "buf blk: %x %x %x %x %x %x\012\000"
.LC4:
- .ascii "FTL INFO:\012\000"
+ .ascii "tmp blk: %x %x %x %x %x %x\012\000"
.LC5:
- .ascii "g_MaxLpn = 0x%x\012\000"
+ .ascii "gc blk: %x %x %x %x %x %x\012\000"
.LC6:
- .ascii "g_VaildLpn = 0x%x\012\000"
+ .ascii "free blk: %x %x %x\012\000"
.LC7:
- .ascii "read_page_count = 0x%x\012\000"
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
+ .ascii "\000"
.LC8:
- .ascii "discard_page_count = 0x%x\012\000"
+ .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
.LC9:
- .ascii "write_page_count = 0x%x\012\000"
+ .ascii "FLASH INFO:\012\000"
.LC10:
- .ascii "cache_write_count = 0x%x\012\000"
+ .ascii "Device Capacity: %d MB\012\000"
.LC11:
- .ascii "l2p_write_count = 0x%x\012\000"
+ .ascii "FTL INFO:\012\000"
.LC12:
- .ascii "gc_page_count = 0x%x\012\000"
+ .ascii "g_MaxLpn = 0x%x\012\000"
.LC13:
- .ascii "totle_write = %d MB\012\000"
+ .ascii "g_VaildLpn = 0x%x\012\000"
.LC14:
- .ascii "totle_read = %d MB\012\000"
+ .ascii "read_page_count = 0x%x\012\000"
.LC15:
- .ascii "GSV = 0x%x\012\000"
+ .ascii "discard_page_count = 0x%x\012\000"
.LC16:
- .ascii "GDV = 0x%x\012\000"
+ .ascii "write_page_count = 0x%x\012\000"
.LC17:
- .ascii "bad blk num = %d\012\000"
+ .ascii "cache_write_count = 0x%x\012\000"
.LC18:
- .ascii "free_superblocks = 0x%x\012\000"
+ .ascii "l2p_write_count = 0x%x\012\000"
.LC19:
- .ascii "mlc_EC = 0x%x\012\000"
+ .ascii "gc_page_count = 0x%x\012\000"
.LC20:
- .ascii "slc_EC = 0x%x\012\000"
+ .ascii "totle_write = %d MB\012\000"
.LC21:
- .ascii "avg_EC = 0x%x\012\000"
+ .ascii "totle_read = %d MB\012\000"
.LC22:
- .ascii "sys_EC = 0x%x\012\000"
+ .ascii "GSV = 0x%x\012\000"
.LC23:
- .ascii "max_EC = 0x%x\012\000"
+ .ascii "GDV = 0x%x\012\000"
.LC24:
- .ascii "min_EC = 0x%x\012\000"
+ .ascii "bad blk num = %d\012\000"
.LC25:
- .ascii "PLT = 0x%x\012\000"
+ .ascii "free_superblocks = 0x%x\012\000"
.LC26:
- .ascii "POT = 0x%x\012\000"
+ .ascii "mlc_EC = 0x%x\012\000"
.LC27:
- .ascii "MaxSector = 0x%x\012\000"
+ .ascii "slc_EC = 0x%x\012\000"
.LC28:
- .ascii "init_sys_blks_pp = 0x%x\012\000"
+ .ascii "avg_EC = 0x%x\012\000"
.LC29:
- .ascii "sys_blks_pp = 0x%x\012\000"
+ .ascii "sys_EC = 0x%x\012\000"
.LC30:
- .ascii "free sysblock = 0x%x\012\000"
+ .ascii "max_EC = 0x%x\012\000"
.LC31:
- .ascii "data_blks_pp = 0x%x\012\000"
+ .ascii "min_EC = 0x%x\012\000"
.LC32:
- .ascii "data_op_blks_pp = 0x%x\012\000"
+ .ascii "PLT = 0x%x\012\000"
.LC33:
- .ascii "max_data_blks = 0x%x\012\000"
+ .ascii "POT = 0x%x\012\000"
.LC34:
- .ascii "Sys.id = 0x%x\012\000"
+ .ascii "MaxSector = 0x%x\012\000"
.LC35:
- .ascii "Bbt.id = 0x%x\012\000"
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
.LC36:
- .ascii "ACT.page = 0x%x\012\000"
+ .ascii "sys_blks_pp = 0x%x\012\000"
.LC37:
- .ascii "ACT.plane = 0x%x\012\000"
+ .ascii "free sysblock = 0x%x\012\000"
.LC38:
- .ascii "ACT.id = 0x%x\012\000"
+ .ascii "data_blks_pp = 0x%x\012\000"
.LC39:
- .ascii "ACT.mode = 0x%x\012\000"
+ .ascii "data_op_blks_pp = 0x%x\012\000"
.LC40:
- .ascii "ACT.a_pages = 0x%x\012\000"
+ .ascii "max_data_blks = 0x%x\012\000"
.LC41:
- .ascii "ACT VPC = 0x%x\012\000"
+ .ascii "Sys.id = 0x%x\012\000"
.LC42:
- .ascii "BUF.page = 0x%x\012\000"
+ .ascii "Bbt.id = 0x%x\012\000"
.LC43:
- .ascii "BUF.plane = 0x%x\012\000"
+ .ascii "ACT.page = 0x%x\012\000"
.LC44:
- .ascii "BUF.id = 0x%x\012\000"
+ .ascii "ACT.plane = 0x%x\012\000"
.LC45:
- .ascii "BUF.mode = 0x%x\012\000"
+ .ascii "ACT.id = 0x%x\012\000"
.LC46:
- .ascii "BUF.a_pages = 0x%x\012\000"
+ .ascii "ACT.mode = 0x%x\012\000"
.LC47:
- .ascii "BUF VPC = 0x%x\012\000"
+ .ascii "ACT.a_pages = 0x%x\012\000"
.LC48:
- .ascii "TMP.page = 0x%x\012\000"
+ .ascii "ACT VPC = 0x%x\012\000"
.LC49:
- .ascii "TMP.plane = 0x%x\012\000"
+ .ascii "BUF.page = 0x%x\012\000"
.LC50:
- .ascii "TMP.id = 0x%x\012\000"
+ .ascii "BUF.plane = 0x%x\012\000"
.LC51:
- .ascii "TMP.mode = 0x%x\012\000"
+ .ascii "BUF.id = 0x%x\012\000"
.LC52:
- .ascii "TMP.a_pages = 0x%x\012\000"
+ .ascii "BUF.mode = 0x%x\012\000"
.LC53:
- .ascii "GC.page = 0x%x\012\000"
+ .ascii "BUF.a_pages = 0x%x\012\000"
.LC54:
- .ascii "GC.plane = 0x%x\012\000"
+ .ascii "BUF VPC = 0x%x\012\000"
.LC55:
- .ascii "GC.id = 0x%x\012\000"
+ .ascii "TMP.page = 0x%x\012\000"
.LC56:
- .ascii "GC.mode = 0x%x\012\000"
+ .ascii "TMP.plane = 0x%x\012\000"
.LC57:
- .ascii "GC.a_pages = 0x%x\012\000"
+ .ascii "TMP.id = 0x%x\012\000"
.LC58:
- .ascii "WR_CHK = %x %x %x\012\000"
+ .ascii "TMP.mode = 0x%x\012\000"
.LC59:
- .ascii "Read Err Cnt = 0x%x\012\000"
+ .ascii "TMP.a_pages = 0x%x\012\000"
.LC60:
- .ascii "Prog Err Cnt = 0x%x\012\000"
+ .ascii "GC.page = 0x%x\012\000"
.LC61:
- .ascii "gc_free_blk_th= 0x%x\012\000"
+ .ascii "GC.plane = 0x%x\012\000"
.LC62:
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
+ .ascii "GC.id = 0x%x\012\000"
.LC63:
- .ascii "gc_skip_write_count= 0x%x\012\000"
+ .ascii "GC.mode = 0x%x\012\000"
.LC64:
- .ascii "gc_blk_index= 0x%x\012\000"
+ .ascii "GC.a_pages = 0x%x\012\000"
.LC65:
- .ascii "free min EC= 0x%x\012\000"
+ .ascii "WR_CHK = %x %x %x\012\000"
.LC66:
- .ascii "free max EC= 0x%x\012\000"
+ .ascii "Read Err Cnt = 0x%x\012\000"
.LC67:
- .ascii "GC__SB VPC = 0x%x\012\000"
+ .ascii "Prog Err Cnt = 0x%x\012\000"
.LC68:
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+ .ascii "gc_free_blk_th= 0x%x\012\000"
.LC69:
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
.LC70:
- .ascii "SFTL version: 5.0.50 20181227\000"
+ .ascii "gc_skip_write_count= 0x%x\012\000"
.LC71:
- .ascii "%s\012\000"
+ .ascii "gc_blk_index= 0x%x\012\000"
.LC72:
+ .ascii "free min EC= 0x%x\012\000"
+.LC73:
+ .ascii "free max EC= 0x%x\012\000"
+.LC74:
+ .ascii "GC__SB VPC = 0x%x\012\000"
+.LC75:
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+.LC76:
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+.LC77:
+ .ascii "%s\012\000"
+.LC78:
.ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
.ascii "\012\000"
-.LC73:
+.LC79:
.ascii "FtlGcRefreshBlock 0x%x\012\000"
-.LC74:
+.LC80:
.ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
-.LC75:
+.LC81:
.ascii "%s %p + 0x%x:\000"
-.LC76:
+.LC82:
.ascii "0x%08x,\000"
-.LC77:
+.LC83:
.ascii "0x%04x,\000"
-.LC78:
+.LC84:
.ascii "0x%02x,\000"
-.LC79:
+.LC85:
.ascii "\012\000"
-.LC80:
+.LC86:
.ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
-.LC81:
+.LC87:
.ascii "not free: w: d:\000"
-.LC82:
+.LC88:
.ascii "not free: w: s:\000"
-.LC83:
+.LC89:
.ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
.ascii "\000"
-.LC84:
+.LC90:
.ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
-.LC85:
+.LC91:
.ascii "%s error allocating memory. return -1\012\000"
-.LC86:
+.LC92:
+ .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
+.LC93:
+ .ascii "data:\000"
+.LC94:
+ .ascii "spare:\000"
+.LC95:
.ascii "prog read error: = %x\012\000"
-.LC87:
+.LC96:
+ .ascii "prog read REFRESH: = %x\012\000"
+.LC97:
.ascii "prog read s error: = %x %x %x\012\000"
-.LC88:
+.LC98:
.ascii "prog read d error: = %x %x %x\012\000"
-.LC89:
+.LC99:
.ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
-.LC90:
+.LC100:
.ascii "FtlBbmTblFlush error:%x\012\000"
-.LC91:
+.LC101:
.ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
-.LC92:
+.LC102:
.ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
-.LC93:
+.LC103:
.ascii "decrement_vpc_count %x = %d\012\000"
-.LC94:
+.LC104:
.ascii "FtlMapWritePage error = %x \012\000"
-.LC95:
+.LC105:
.ascii "FtlMapWritePage error = %x error count = %d\012\000"
-.LC96:
+.LC106:
.ascii "region_id = %x phyAddr = %x\012\000"
-.LC97:
- .ascii "spare:\000"
-.LC98:
+.LC107:
.ascii "map_ppn:\000"
-.LC99:
+.LC108:
.ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
-.LC100:
+.LC109:
+ .ascii "data prev_ppa = %x error...................\012\000"
+.LC110:
.ascii "spuer block %x vpn is 0\012 \000"
-.LC101:
+.LC111:
.ascii "...%s enter...\012\000"
-.LC102:
+.LC112:
.ascii "FtlCheckVpc2 %x = %x %x\012\000"
-.LC103:
+.LC113:
.ascii "free blk vpc error %x = %x %x\012\000"
-.LC104:
+.LC114:
.ascii "ftl_scan_all_data = %x\012\000"
-.LC105:
+.LC115:
.ascii "scan lpa = %x ppa= %x\012\000"
-.LC106:
+.LC116:
.ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
.ascii "\000"
-.LC107:
+.LC117:
.ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
-.LC108:
+.LC118:
.ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
-.LC109:
+.LC119:
.ascii "no ect\000"
-.LC110:
+.LC120:
.ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
-.LC111:
+.LC121:
.ascii "FtlCheckVpc %x = %x %x\012\000"
-.LC112:
+.LC122:
+ .ascii "FtlProgPages error %x = %d\012\000"
+.LC123:
.ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
-.LC113:
+.LC124:
.ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
-.LC114:
+.LC125:
+ .ascii "g_gc_superblock_free %x %x %x %x %x\012\000"
+.LC126:
+ .ascii "lpa=%x, ppa=%x\012\000"
+.LC127:
+ .ascii "FtlWrite: ecc error:%x %x %x\012\000"
+.LC128:
.ascii "FtlWrite: lpa error:%x %x\012\000"
-.LC115:
+.LC129:
.ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
.ascii "=%x hash_r =%x\012\000"
-.LC116:
+.LC130:
.ascii "%s last blk_id =%x page =%x hash error hash =%x has"
.ascii "h_r =%x\012\000"
-.LC117:
+.LC131:
.ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
.ascii "h_r =%x\012\000"
-.LC118:
+.LC132:
.ascii "write_idblock fail! %x %x %x %x\012\000"
-.LC119:
+.LC133:
.ascii "%s idb buffer alloc fail\012\000"
-.LC120:
+.LC134:
.ascii "%p %x %p %x\012\000"
-.LC121:
+.LC135:
+ .ascii "copy_from_user error %d %p %p\012\000"
+.LC136:
.ascii "vendor_storage\000"
diff --git a/drivers/rkflash/rk_sftl_arm_v8.S b/drivers/rkflash/rk_sftl_arm_v8.S
index 973506e2b34a..608ab8160391 100644
--- a/drivers/rkflash/rk_sftl_arm_v8.S
+++ b/drivers/rkflash/rk_sftl_arm_v8.S
@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
- * date: 2018-12-27
+ * date: 2019-02-20
*/
.arch armv8-a
.file "rk_sftl.c"
@@ -62,21 +62,89 @@ ftl_set_blk_mode.part.7:
ret
.size ftl_set_blk_mode.part.7, .-ftl_set_blk_mode.part.7
.align 2
+ .global ftl_print_sblk_info
+ .type ftl_print_sblk_info, %function
+ftl_print_sblk_info:
+ stp x29, x30, [sp, -32]!
+ adrp x1, .LC0
+ adrp x0, .LC1
+ add x1, x1, :lo12:.LC0
+ add x29, sp, 0
+ str x19, [sp, 16]
+ adrp x19, .LANCHOR0
+ add x19, x19, :lo12:.LANCHOR0
+ add x0, x0, :lo12:.LC1
+ bl sftl_printk
+ adrp x0, .LC2
+ add x0, x0, :lo12:.LC2
+ ldrh w1, [x19, 32]
+ ldr x3, [x19, 80]
+ ldrh w5, [x19, 36]
+ ubfiz x2, x1, 1, 16
+ ldrb w4, [x19, 40]
+ ldrh w6, [x3, x2]
+ ldrb w3, [x19, 38]
+ ldrh w2, [x19, 34]
+ bl sftl_printk
+ ldrh w1, [x19, 88]
+ adrp x0, .LC3
+ ldr x3, [x19, 80]
+ add x0, x0, :lo12:.LC3
+ ldrh w5, [x19, 92]
+ ubfiz x2, x1, 1, 16
+ ldrb w4, [x19, 96]
+ ldrh w6, [x3, x2]
+ ldrb w3, [x19, 94]
+ ldrh w2, [x19, 90]
+ bl sftl_printk
+ ldrh w1, [x19, 136]
+ adrp x0, .LC4
+ ldr x3, [x19, 80]
+ add x0, x0, :lo12:.LC4
+ ldrh w5, [x19, 140]
+ ubfiz x2, x1, 1, 16
+ ldrb w4, [x19, 144]
+ ldrh w6, [x3, x2]
+ ldrb w3, [x19, 142]
+ ldrh w2, [x19, 138]
+ bl sftl_printk
+ ldrh w1, [x19, 184]
+ adrp x0, .LC5
+ ldr x3, [x19, 80]
+ add x0, x0, :lo12:.LC5
+ ldrh w5, [x19, 188]
+ ubfiz x2, x1, 1, 16
+ ldrb w4, [x19, 192]
+ ldrh w6, [x3, x2]
+ ldrb w3, [x19, 190]
+ ldrh w2, [x19, 186]
+ bl sftl_printk
+ ldrh w3, [x19, 232]
+ adrp x0, .LC6
+ ldrh w2, [x19, 234]
+ add x0, x0, :lo12:.LC6
+ ldrh w1, [x19, 236]
+ bl sftl_printk
+ ldr x19, [sp, 16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size ftl_print_sblk_info, .-ftl_print_sblk_info
+ .align 2
.global Ftl_log2
.type Ftl_log2, %function
Ftl_log2:
mov w2, 1
mov w1, 0
-.L5:
+.L7:
cmp w2, w0
- bls .L6
+ bls .L8
sub w0, w1, #1
ret
-.L6:
+.L8:
add w1, w1, 1
lsl w2, w2, 1
and w1, w1, 65535
- b .L5
+ b .L7
.size Ftl_log2, .-Ftl_log2
.align 2
.global FtlPrintInfo
@@ -95,17 +163,17 @@ FtlSysBlkNumInit:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
and w0, w0, 65535
- ldrh w2, [x1, 36]
- ldrh w3, [x1, 46]
- str w0, [x1, 32]
+ ldrh w2, [x1, 244]
+ ldrh w3, [x1, 254]
+ str w0, [x1, 240]
mul w2, w2, w0
sub w0, w3, w0
- strh w0, [x1, 44]
- ldr w0, [x1, 52]
- str w2, [x1, 40]
+ strh w0, [x1, 252]
+ ldr w0, [x1, 260]
+ str w2, [x1, 248]
sub w2, w0, w2
mov w0, 0
- str w2, [x1, 48]
+ str w2, [x1, 256]
ret
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
.align 2
@@ -123,126 +191,126 @@ FtlConstantsInit:
ldrh w0, [x0, 4]
ldrh w2, [x7, 6]
cmp w5, 4
- strh w3, [x1, 56]
- strh w6, [x1, 58]
- strh w0, [x1, 60]
- strh w2, [x1, 46]
- strh w5, [x1, 62]
- bne .L10
+ strh w3, [x1, 264]
+ strh w6, [x1, 266]
+ strh w0, [x1, 268]
+ strh w2, [x1, 254]
+ strh w5, [x1, 270]
+ bne .L12
lsr w2, w2, 1
- strh w2, [x1, 46]
+ strh w2, [x1, 254]
mov w2, 8
- strh w2, [x1, 62]
-.L10:
+ strh w2, [x1, 270]
+.L12:
add x2, x4, :lo12:.LANCHOR0
mov x1, 0
- add x5, x2, 64
-.L11:
+ add x5, x2, 272
+.L13:
strb w1, [x1, x5]
add x1, x1, 1
cmp x1, 32
- bne .L11
+ bne .L13
mov w1, 5
- strh wzr, [x2, 98]
- strh w1, [x2, 96]
+ strh wzr, [x2, 306]
+ strh w1, [x2, 304]
cmp w3, 1
- bne .L12
- strh w3, [x2, 96]
-.L12:
+ bne .L14
+ strh w3, [x2, 304]
+.L14:
add x3, x4, :lo12:.LANCHOR0
mul w6, w6, w0
mov w1, 640
and w6, w6, 65535
- ldrh w5, [x3, 46]
- strh w1, [x3, 100]
- strh w6, [x3, 36]
+ ldrh w5, [x3, 254]
+ strh w1, [x3, 308]
+ strh w6, [x3, 244]
mul w0, w0, w5
and w0, w0, 65535
- strh w0, [x3, 102]
+ strh w0, [x3, 310]
bl Ftl_log2
ldrh w9, [x7, 12]
- ldrh w8, [x3, 62]
- strh w0, [x3, 104]
- strh w9, [x3, 106]
+ ldrh w8, [x3, 270]
+ strh w0, [x3, 312]
+ strh w9, [x3, 314]
mul w0, w6, w9
- strh w9, [x3, 108]
- strh w0, [x3, 110]
+ strh w9, [x3, 316]
+ strh w0, [x3, 318]
mov w0, w8
bl Ftl_log2
and w2, w0, 65535
- strh w0, [x3, 112]
+ strh w0, [x3, 320]
ubfiz w0, w8, 9, 7
- strh w0, [x3, 114]
+ strh w0, [x3, 322]
ubfx w0, w0, 8, 8
- strh w0, [x3, 116]
+ strh w0, [x3, 324]
ldrh w0, [x7, 20]
- strh w0, [x3, 118]
+ strh w0, [x3, 326]
mul w0, w6, w5
- str w0, [x3, 52]
+ str w0, [x3, 260]
mul w0, w0, w8
mul w8, w8, w9
mul w0, w0, w9
asr w0, w0, 11
- str w0, [x3, 120]
+ str w0, [x3, 328]
mov w0, 5120
sdiv w0, w0, w8
and w0, w0, 65535
cmp w0, 4
- bls .L13
-.L19:
+ bls .L15
+.L21:
add x1, x4, :lo12:.LANCHOR0
- strh w0, [x3, 124]
+ strh w0, [x3, 332]
mov w0, 640
lsl w5, w5, 6
asr w0, w0, w2
add w2, w2, 9
add w0, w0, 2
- strh w0, [x1, 126]
+ strh w0, [x1, 334]
asr w5, w5, w2
- strh w5, [x1, 128]
+ strh w5, [x1, 336]
and w5, w5, 65535
cmp w6, 1
mul w0, w5, w6
add w5, w5, 8
- str w0, [x1, 132]
- ldrh w0, [x1, 124]
+ str w0, [x1, 340]
+ ldrh w0, [x1, 332]
udiv w0, w0, w6
add w5, w0, w5
- beq .L15
-.L20:
+ beq .L17
+.L22:
add x4, x4, :lo12:.LANCHOR0
- str w5, [x1, 32]
- ldrh w0, [x4, 32]
+ str w5, [x1, 240]
+ ldrh w0, [x4, 240]
bl FtlSysBlkNumInit
- ldr w0, [x4, 32]
- str w0, [x4, 136]
- ldr w0, [x4, 48]
- ldrh w1, [x4, 106]
- str wzr, [x4, 144]
+ ldr w0, [x4, 240]
+ str w0, [x4, 344]
+ ldr w0, [x4, 256]
+ ldrh w1, [x4, 314]
+ str wzr, [x4, 352]
lsl w0, w0, 2
mul w0, w0, w1
- ldrh w1, [x4, 112]
+ ldrh w1, [x4, 320]
add w1, w1, 9
lsr w0, w0, w1
add w0, w0, 2
- strh w0, [x4, 140]
+ strh w0, [x4, 348]
mov w0, 32
- strh w0, [x4, 142]
- ldrh w0, [x4, 124]
+ strh w0, [x4, 350]
+ ldrh w0, [x4, 332]
add w0, w0, 3
- strh w0, [x4, 124]
- ldr w0, [x4, 132]
+ strh w0, [x4, 332]
+ ldr w0, [x4, 340]
add w0, w0, 3
- str w0, [x4, 132]
+ str w0, [x4, 340]
mov w0, 0
ldp x29, x30, [sp], 16
ret
-.L13:
- mov w0, 4
- b .L19
.L15:
+ mov w0, 4
+ b .L21
+.L17:
add w5, w5, 4
- b .L20
+ b .L22
.size FtlConstantsInit, .-FtlConstantsInit
.align 2
.global IsBlkInVendorPart
@@ -251,23 +319,23 @@ IsBlkInVendorPart:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
and w0, w0, 65535
- ldrh w2, [x1, 148]
- cbz w2, .L25
- ldrh w2, [x1, 124]
- ldr x3, [x1, 152]
+ ldrh w2, [x1, 356]
+ cbz w2, .L27
+ ldrh w2, [x1, 332]
+ ldr x3, [x1, 360]
mov x1, 0
-.L23:
- cmp w2, w1, uxth
- bhi .L24
.L25:
+ cmp w2, w1, uxth
+ bhi .L26
+.L27:
mov w0, 0
ret
-.L24:
+.L26:
add x1, x1, 1
add x4, x3, x1, lsl 1
ldrh w4, [x4, -2]
cmp w4, w0
- bne .L23
+ bne .L25
mov w0, 1
ret
.size IsBlkInVendorPart, .-IsBlkInVendorPart
@@ -282,8 +350,8 @@ FtlCacheWriteBack:
.global sftl_get_density
.type sftl_get_density, %function
sftl_get_density:
- adrp x0, .LANCHOR0+144
- ldr w0, [x0, #:lo12:.LANCHOR0+144]
+ adrp x0, .LANCHOR0+352
+ ldr w0, [x0, #:lo12:.LANCHOR0+352]
ret
.size sftl_get_density, .-sftl_get_density
.align 2
@@ -297,7 +365,7 @@ FtlBbmMapBadBlock:
str x19, [sp, 16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x19, x19, 160
+ add x19, x19, 368
ldrh w0, [x19, -58]
udiv w3, w1, w0
and w2, w3, 65535
@@ -311,8 +379,8 @@ FtlBbmMapBadBlock:
ldr w6, [x0, x5]
orr w4, w4, w6
str w4, [x0, x5]
- adrp x0, .LC0
- add x0, x0, :lo12:.LC0
+ adrp x0, .LC7
+ add x0, x0, :lo12:.LC7
bl sftl_printk
ldrh w0, [x19, 6]
add w0, w0, 1
@@ -329,12 +397,12 @@ FtlBbmIsBadBlock:
adrp x2, .LANCHOR0
add x3, x2, :lo12:.LANCHOR0
and w0, w0, 65535
- ldrh w1, [x3, 102]
+ ldrh w1, [x3, 310]
udiv w2, w0, w1
msub w0, w2, w1, w0
add x2, x3, x2, uxth 3
and w0, w0, 65535
- ldr x1, [x2, 192]
+ ldr x1, [x2, 400]
ubfx x3, x0, 5, 11
ldr w1, [x1, x3, lsl 2]
lsr w0, w1, w0
@@ -355,27 +423,27 @@ FtlBbtCalcTotleCnt:
add x0, x0, :lo12:.LANCHOR0
mov w4, 0
mov w5, 0
- ldrh w6, [x0, 102]
- ldrh w0, [x0, 58]
+ ldrh w6, [x0, 310]
+ ldrh w0, [x0, 266]
mul w6, w6, w0
cmp w4, w6
- blt .L43
+ blt .L45
mov w0, w5
ret
-.L43:
+.L45:
stp x29, x30, [sp, -16]!
add x29, sp, 0
-.L36:
+.L38:
mov w0, w4
bl FtlBbmIsBadBlock
- cbz w0, .L35
+ cbz w0, .L37
add w5, w5, 1
and w5, w5, 65535
-.L35:
+.L37:
add w4, w4, 1
and w4, w4, 65535
cmp w4, w6
- blt .L36
+ blt .L38
mov w0, w5
ldp x29, x30, [sp], 16
ret
@@ -388,8 +456,8 @@ V2P_block:
add x4, x4, :lo12:.LANCHOR0
and w0, w0, 65535
and w1, w1, 65535
- ldrh w2, [x4, 60]
- ldrh w4, [x4, 102]
+ ldrh w2, [x4, 268]
+ ldrh w4, [x4, 310]
udiv w3, w0, w2
msub w0, w3, w2, w0
madd w2, w2, w1, w0
@@ -403,8 +471,8 @@ P2V_plane:
adrp x2, .LANCHOR0
add x2, x2, :lo12:.LANCHOR0
and w3, w0, 65535
- ldrh w1, [x2, 60]
- ldrh w2, [x2, 102]
+ ldrh w1, [x2, 268]
+ ldrh w2, [x2, 310]
udiv w0, w3, w1
udiv w2, w3, w2
msub w0, w0, w1, w3
@@ -418,8 +486,8 @@ P2V_block_in_plane:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
and w3, w0, 65535
- ldrh w2, [x1, 102]
- ldrh w1, [x1, 60]
+ ldrh w2, [x1, 310]
+ ldrh w1, [x1, 268]
udiv w0, w3, w2
msub w0, w0, w2, w3
and w0, w0, 65535
@@ -432,12 +500,12 @@ P2V_block_in_plane:
ftl_cmp_data_ver:
cmp w0, w1
mov w2, -2147483648
- bls .L48
+ bls .L50
sub w1, w0, w1
cmp w1, w2
cset w0, ls
ret
-.L48:
+.L50:
sub w1, w1, w0
cmp w1, w2
cset w0, hi
@@ -447,8 +515,8 @@ ftl_cmp_data_ver:
.global FtlFreeSysBlkQueueEmpty
.type FtlFreeSysBlkQueueEmpty, %function
FtlFreeSysBlkQueueEmpty:
- adrp x0, .LANCHOR0+262
- ldrh w0, [x0, #:lo12:.LANCHOR0+262]
+ adrp x0, .LANCHOR0+470
+ ldrh w0, [x0, #:lo12:.LANCHOR0+470]
cmp w0, 0
cset w0, eq
ret
@@ -457,8 +525,8 @@ FtlFreeSysBlkQueueEmpty:
.global FtlFreeSysBlkQueueFull
.type FtlFreeSysBlkQueueFull, %function
FtlFreeSysBlkQueueFull:
- adrp x0, .LANCHOR0+262
- ldrh w0, [x0, #:lo12:.LANCHOR0+262]
+ adrp x0, .LANCHOR0+470
+ ldrh w0, [x0, #:lo12:.LANCHOR0+470]
cmp w0, 1024
cset w0, eq
ret
@@ -469,25 +537,25 @@ FtlFreeSysBlkQueueFull:
FtlFreeSysBLkSort:
adrp x0, .LANCHOR0
add x2, x0, :lo12:.LANCHOR0
- add x1, x2, 256
+ add x1, x2, 464
ldrh w3, [x1, 6]
- cbz w3, .L52
- ldrh w5, [x2, 2340]
+ cbz w3, .L54
+ ldrh w5, [x2, 2548]
mov w6, 0
ldrh w3, [x1, 2]
mov w4, 0
ldrh w2, [x1, 4]
and w5, w5, 31
-.L54:
+.L56:
cmp w5, w4
- bgt .L55
- cbz w6, .L52
+ bgt .L57
+ cbz w6, .L54
add x0, x0, :lo12:.LANCHOR0
- strh w3, [x0, 258]
- strh w2, [x0, 260]
-.L52:
+ strh w3, [x0, 466]
+ strh w2, [x0, 468]
+.L54:
ret
-.L55:
+.L57:
add x6, x1, x3, sxtw 1
add w4, w4, 1
add w3, w3, 1
@@ -499,7 +567,7 @@ FtlFreeSysBLkSort:
mov w6, 1
add w2, w2, w6
and w2, w2, 1023
- b .L54
+ b .L56
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 2
.global IsInFreeQueue
@@ -507,29 +575,29 @@ FtlFreeSysBLkSort:
IsInFreeQueue:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- add x1, x1, 256
+ add x1, x1, 464
and w0, w0, 65535
ldrh w4, [x1, 6]
cmp w4, 1024
- beq .L65
+ beq .L67
ldrh w5, [x1, 2]
mov w3, 0
-.L63:
- cmp w3, w4
- bcc .L64
.L65:
+ cmp w3, w4
+ bcc .L66
+.L67:
mov w0, 0
ret
-.L64:
+.L66:
add w2, w3, w5
ubfiz x2, x2, 1, 10
add x2, x1, x2
ldrh w2, [x2, 8]
cmp w2, w0
- beq .L66
+ beq .L68
add w3, w3, 1
- b .L63
-.L66:
+ b .L65
+.L68:
mov w0, 1
ret
.size IsInFreeQueue, .-IsInFreeQueue
@@ -540,103 +608,86 @@ insert_data_list:
adrp x2, .LANCHOR0
add x3, x2, :lo12:.LANCHOR0
and w0, w0, 65535
- ldrh w1, [x3, 44]
+ mov x4, x2
+ ldrh w1, [x3, 252]
cmp w1, w0
- bls .L83
- mov w7, 6
- ldr x12, [x3, 2360]
+ bls .L71
+ mov w6, 6
+ ldr x8, [x3, 2568]
mov w1, -1
- umull x11, w0, w7
- add x5, x12, x11
- strh w1, [x5, 2]
- strh w1, [x12, x11]
- ldr x1, [x3, 2368]
- cbnz x1, .L70
- str x5, [x3, 2368]
-.L83:
+ umull x7, w0, w6
+ add x13, x8, x7
+ strh w1, [x13, 2]
+ strh w1, [x8, x7]
+ ldr x1, [x3, 2576]
+ cbnz x1, .L72
+ str x13, [x3, 2576]
+.L71:
mov w0, 0
ret
-.L70:
- stp x29, x30, [sp, -16]!
- ubfiz x8, x0, 1, 16
- mov x4, x2
+.L72:
+ ldr x11, [x3, 80]
+ ubfiz x2, x0, 1, 16
+ ldr x10, [x3, 2568]
mov x9, -6148914691236517206
- add x29, sp, 0
- ldr x14, [x3, 2376]
movk x9, 0xaaab, lsl 0
- ldrh w2, [x5, 4]
- mov w10, -1
- ldr x13, [x3, 2360]
- mov w30, 65535
- cmp w2, 0
- ldr x15, [x3, 2384]
- ldrh w6, [x14, x8]
- ldrh w18, [x3, 44]
+ ldrh w14, [x3, 252]
+ mov w15, 65535
mov w3, 0
- mul w6, w6, w2
- sub x2, x1, x13
+ ldrh w5, [x11, x2]
+ ldrh w2, [x13, 4]
+ cmp w2, 0
+ mul w5, w5, w2
+ sub x2, x1, x10
asr x2, x2, 1
- csel w6, w6, w10, ne
+ csinv w5, w5, wzr, ne
mul x2, x2, x9
- add x9, x15, x8
- mov w8, w7
and w2, w2, 65535
-.L78:
+.L77:
add w3, w3, 1
and w3, w3, 65535
- cmp w3, w18
- bhi .L69
+ cmp w3, w14
+ bhi .L71
cmp w0, w2
- beq .L69
- ubfiz x16, x2, 1, 16
- ldrh w17, [x1, 4]
- cmp w17, 0
- ldrh w7, [x14, x16]
- mul w7, w7, w17
- csel w7, w7, w10, ne
- cmp w6, w7
- bne .L74
- ldrh w16, [x15, x16]
- ldrh w7, [x9]
- cmp w16, w7
- bcc .L76
+ beq .L71
+ ldrh w12, [x1, 4]
+ cbz w12, .L75
+ ubfiz x9, x2, 1, 16
+ ldrh w9, [x11, x9]
+ mul w9, w9, w12
+ cmp w9, w5
+ bcs .L75
+ ldrh w9, [x1]
+ cmp w9, w15
+ bne .L76
+ strh w2, [x13, 2]
+ add x2, x4, :lo12:.LANCHOR0
+ strh w0, [x1]
+ str x13, [x2, 2584]
+ b .L71
+.L76:
+ umaddl x1, w9, w6, x10
+ mov w2, w9
+ b .L77
.L75:
- strh w2, [x12, x11]
+ strh w2, [x8, x7]
ldrh w2, [x1, 2]
- strh w2, [x5, 2]
+ strh w2, [x13, 2]
add x2, x4, :lo12:.LANCHOR0
- ldr x3, [x2, 2368]
+ ldr x3, [x2, 2576]
cmp x1, x3
- bne .L79
+ bne .L78
strh w0, [x1, 2]
- str x5, [x2, 2368]
- b .L69
-.L74:
- bcc .L75
-.L76:
- ldrh w7, [x1]
- cmp w7, w30
- bne .L77
- strh w2, [x5, 2]
- add x2, x4, :lo12:.LANCHOR0
- strh w0, [x1]
- str x5, [x2, 2392]
-.L69:
- mov w0, 0
- ldp x29, x30, [sp], 16
- ret
-.L77:
- umaddl x1, w7, w8, x13
- mov w2, w7
- b .L78
-.L79:
+ str x13, [x2, 2576]
+ b .L71
+.L78:
ldrh w3, [x1, 2]
mov w4, 6
- ldr x2, [x2, 2360]
+ ldr x2, [x2, 2568]
umull x3, w3, w4
strh w0, [x2, x3]
strh w0, [x1, 2]
- b .L69
+ b .L71
.size insert_data_list, .-insert_data_list
.align 2
.global INSERT_DATA_LIST
@@ -647,20 +698,20 @@ INSERT_DATA_LIST:
bl insert_data_list
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrh w0, [x1, 2400]
+ ldrh w0, [x1, 2592]
add w0, w0, 1
and w0, w0, 65535
- strh w0, [x1, 2400]
- ldrh w1, [x1, 44]
+ strh w0, [x1, 2592]
+ ldrh w1, [x1, 252]
cmp w1, w0
- bcs .L85
+ bcs .L83
adrp x1, .LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 214
add x1, x1, :lo12:.LANCHOR1
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L85:
+.L83:
ldp x29, x30, [sp], 16
ret
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
@@ -671,27 +722,27 @@ insert_free_list:
and w0, w0, 65535
mov w7, 65535
cmp w0, w7
- beq .L89
+ beq .L87
adrp x2, .LANCHOR0
add x5, x2, :lo12:.LANCHOR0
mov w6, 6
mov w1, -1
mov x3, x2
- ldr x9, [x5, 2360]
+ ldr x9, [x5, 2568]
umull x8, w0, w6
add x4, x9, x8
strh w1, [x4, 2]
strh w1, [x9, x8]
- ldr x1, [x5, 2408]
- cbnz x1, .L90
- str x4, [x5, 2408]
-.L89:
+ ldr x1, [x5, 2600]
+ cbnz x1, .L88
+ str x4, [x5, 2600]
+.L87:
mov w0, 0
ret
-.L90:
- ldr x11, [x5, 2384]
+.L88:
+ ldr x11, [x5, 2608]
ubfiz x2, x0, 1, 16
- ldr x10, [x5, 2360]
+ ldr x10, [x5, 2568]
mov x5, -6148914691236517206
movk x5, 0xaaab, lsl 0
ldrh w12, [x11, x2]
@@ -699,40 +750,40 @@ insert_free_list:
asr x2, x2, 1
mul x2, x2, x5
and w2, w2, 65535
-.L93:
+.L91:
ubfiz x5, x2, 1, 16
ldrh w5, [x11, x5]
cmp w5, w12
- bcs .L91
+ bcs .L89
ldrh w5, [x1]
cmp w5, w7
- bne .L92
+ bne .L90
strh w2, [x4, 2]
strh w0, [x1]
- b .L89
-.L92:
+ b .L87
+.L90:
umaddl x1, w5, w6, x10
mov w2, w5
- b .L93
-.L91:
+ b .L91
+.L89:
ldrh w5, [x1, 2]
strh w5, [x4, 2]
strh w2, [x9, x8]
add x2, x3, :lo12:.LANCHOR0
- ldr x3, [x2, 2408]
+ ldr x3, [x2, 2600]
cmp x1, x3
- bne .L94
+ bne .L92
strh w0, [x1, 2]
- str x4, [x2, 2408]
- b .L89
-.L94:
+ str x4, [x2, 2600]
+ b .L87
+.L92:
ldrh w3, [x1, 2]
mov w4, 6
- ldr x2, [x2, 2360]
+ ldr x2, [x2, 2568]
umull x3, w3, w4
strh w0, [x2, x3]
strh w0, [x1, 2]
- b .L89
+ b .L87
.size insert_free_list, .-insert_free_list
.align 2
.global INSERT_FREE_LIST
@@ -743,21 +794,21 @@ INSERT_FREE_LIST:
bl insert_free_list
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrh w0, [x1, 2416]
+ ldrh w0, [x1, 236]
add w0, w0, 1
and w0, w0, 65535
- strh w0, [x1, 2416]
- ldrh w1, [x1, 44]
+ strh w0, [x1, 236]
+ ldrh w1, [x1, 252]
cmp w1, w0
- bcs .L95
+ bcs .L93
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 207
add x1, x1, 24
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L95:
+.L93:
ldp x29, x30, [sp], 16
ret
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
@@ -776,32 +827,32 @@ List_remove_node:
add x0, x19, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
umull x21, w1, w2
- ldr x22, [x0, 2360]
+ ldr x22, [x0, 2568]
mov w0, 65535
add x20, x22, x21
ldrh w1, [x20, 2]
cmp w1, w0
- bne .L99
+ bne .L97
ldr x0, [x23]
cmp x20, x0
- beq .L99
+ beq .L97
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 372
add x1, x1, 48
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L99:
+.L97:
ldr x0, [x23]
mov w1, 65535
cmp x20, x0
ldrh w0, [x22, x21]
- bne .L100
+ bne .L98
cmp w0, w1
- bne .L101
+ bne .L99
str xzr, [x23]
-.L102:
+.L100:
mov w0, -1
strh w0, [x22, x21]
strh w0, [x20, 2]
@@ -811,58 +862,58 @@ List_remove_node:
ldr x23, [sp, 48]
ldp x29, x30, [sp], 64
ret
-.L101:
+.L99:
add x19, x19, :lo12:.LANCHOR0
mov w2, 6
- ldr x1, [x19, 2360]
+ ldr x1, [x19, 2568]
umaddl x0, w0, w2, x1
mov w1, -1
str x0, [x23]
strh w1, [x0, 2]
- b .L102
-.L100:
+ b .L100
+.L98:
cmp w0, w1
ldrh w1, [x20, 2]
- bne .L103
+ bne .L101
cmp w1, w0
- beq .L102
+ beq .L100
add x19, x19, :lo12:.LANCHOR0
mov w0, 6
mov w2, -1
umull x1, w1, w0
- ldr x0, [x19, 2360]
+ ldr x0, [x19, 2568]
strh w2, [x0, x1]
- b .L102
-.L103:
+ b .L100
+.L101:
add x19, x19, :lo12:.LANCHOR0
mov w2, 6
- ldr x3, [x19, 2360]
+ ldr x3, [x19, 2568]
umaddl x0, w0, w2, x3
strh w1, [x0, 2]
ldrh w0, [x20, 2]
- ldr x1, [x19, 2360]
+ ldr x1, [x19, 2568]
ldrh w3, [x22, x21]
umull x0, w0, w2
strh w3, [x1, x0]
- b .L102
+ b .L100
.size List_remove_node, .-List_remove_node
.align 2
.global List_pop_index_node
.type List_pop_index_node, %function
List_pop_index_node:
ldr x2, [x0]
- cbz x2, .L111
+ cbz x2, .L109
stp x29, x30, [sp, -32]!
- adrp x3, .LANCHOR0+2360
+ adrp x3, .LANCHOR0+2568
and w1, w1, 65535
mov w4, 65535
add x29, sp, 0
str x19, [sp, 16]
mov w5, 6
- ldr x19, [x3, #:lo12:.LANCHOR0+2360]
-.L107:
- cbnz w1, .L108
-.L110:
+ ldr x19, [x3, #:lo12:.LANCHOR0+2568]
+.L105:
+ cbnz w1, .L106
+.L108:
sub x19, x2, x19
mov x2, -6148914691236517206
asr x19, x19, 1
@@ -875,15 +926,15 @@ List_pop_index_node:
ldr x19, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L108:
+.L106:
ldrh w3, [x2]
cmp w3, w4
- beq .L110
+ beq .L108
sub w1, w1, #1
umaddl x2, w3, w5, x19
and w1, w1, 65535
- b .L107
-.L111:
+ b .L105
+.L109:
mov w0, 65535
ret
.size List_pop_index_node, .-List_pop_index_node
@@ -905,26 +956,26 @@ List_get_gc_head_node:
and w2, w0, 65535
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldr x1, [x0, 2368]
- cbz x1, .L123
- ldr x3, [x0, 2360]
+ ldr x1, [x0, 2576]
+ cbz x1, .L121
+ ldr x3, [x0, 2568]
mov w4, 6
mov w0, 65535
-.L120:
- cbz w2, .L121
+.L118:
+ cbz w2, .L119
ldrh w1, [x1]
cmp w1, w0
- bne .L122
+ bne .L120
ret
-.L122:
+.L120:
sub w2, w2, #1
umaddl x1, w1, w4, x3
and w2, w2, 65535
- b .L120
-.L123:
+ b .L118
+.L121:
mov w0, 65535
ret
-.L121:
+.L119:
sub x0, x1, x3
mov x1, -6148914691236517206
asr x0, x0, 1
@@ -945,23 +996,23 @@ List_update_data_list:
add x0, x19, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
stp x23, x24, [sp, 48]
- ldrh w1, [x0, 2424]
+ ldrh w1, [x0, 32]
cmp w1, w20
- beq .L126
- ldrh w1, [x0, 2472]
+ beq .L124
+ ldrh w1, [x0, 88]
cmp w1, w20
- beq .L126
- ldrh w1, [x0, 2520]
+ beq .L124
+ ldrh w1, [x0, 136]
cmp w1, w20
- beq .L126
+ beq .L124
mov w22, 6
- ldr x24, [x0, 2360]
- ldr x1, [x0, 2368]
+ ldr x24, [x0, 2568]
+ ldr x1, [x0, 2576]
umull x22, w20, w22
add x23, x24, x22
cmp x23, x1
- beq .L126
- ldr x2, [x0, 2376]
+ beq .L124
+ ldr x2, [x0, 80]
ubfiz x1, x20, 1, 16
ldrh w0, [x23, 4]
cmp w0, 0
@@ -971,26 +1022,26 @@ List_update_data_list:
ldrh w0, [x23, 2]
csinv w21, w21, wzr, ne
cmp w0, w1
- bne .L129
+ bne .L127
ldrh w1, [x24, x22]
cmp w1, w0
- bne .L129
+ bne .L127
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 463
add x1, x1, 72
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L129:
+.L127:
ldrh w0, [x23, 2]
mov w1, 65535
cmp w0, w1
- bne .L130
+ bne .L128
ldrh w1, [x24, x22]
cmp w1, w0
- beq .L126
-.L130:
+ beq .L124
+.L128:
mov w1, 6
add x22, x19, :lo12:.LANCHOR0
mov x2, -6148914691236517206
@@ -998,36 +1049,36 @@ List_update_data_list:
movk x2, 0xaaab, lsl 0
asr x1, x0, 1
mul x1, x1, x2
- ldr x2, [x22, 2376]
+ ldr x2, [x22, 80]
ldrh w1, [x2, x1, lsl 1]
- ldr x2, [x22, 2360]
+ ldr x2, [x22, 2568]
add x0, x2, x0
ldrh w2, [x0, 4]
cmp w2, 0
mul w0, w1, w2
csinv w0, w0, wzr, ne
cmp w21, w0
- bcs .L126
+ bcs .L124
mov w1, w20
- add x0, x22, 2368
+ add x0, x22, 2576
bl List_remove_node
- ldrh w0, [x22, 2400]
- cbnz w0, .L132
+ ldrh w0, [x22, 2592]
+ cbnz w0, .L130
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 474
add x1, x1, 72
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L132:
+.L130:
add x19, x19, :lo12:.LANCHOR0
- ldrh w0, [x19, 2400]
+ ldrh w0, [x19, 2592]
sub w0, w0, #1
- strh w0, [x19, 2400]
+ strh w0, [x19, 2592]
mov w0, w20
bl INSERT_DATA_LIST
-.L126:
+.L124:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -1046,75 +1097,75 @@ select_l2p_ram_region:
add x29, sp, 0
str x19, [sp, 16]
mov w4, 65535
- ldrh w2, [x0, 142]
- ldr x0, [x0, 2568]
-.L137:
+ ldrh w2, [x0, 350]
+ ldr x0, [x0, 2616]
+.L135:
and w19, w3, 65535
cmp w19, w2
- bcc .L139
+ bcc .L137
add x4, x0, 4
mov w19, w2
mov w6, -2147483648
mov w3, 0
-.L140:
+.L138:
cmp w3, w2
- bne .L142
+ bne .L140
cmp w19, w2
- bcc .L138
+ bcc .L136
add x1, x1, :lo12:.LANCHOR0
mov w19, w2
mov w3, -1
- ldrh w4, [x1, 2576]
+ ldrh w4, [x1, 2624]
mov w1, 0
-.L143:
+.L141:
cmp w1, w2
- bne .L145
+ bne .L143
cmp w19, w1
- bcc .L138
+ bcc .L136
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
mov w2, 789
add x1, x1, 96
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L138
-.L139:
+ b .L136
+.L137:
add x3, x3, 1
add x5, x0, x3, lsl 4
ldrh w5, [x5, -16]
cmp w5, w4
- bne .L137
-.L138:
+ bne .L135
+.L136:
mov w0, w19
ldr x19, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L142:
+.L140:
ldr w5, [x4]
- tbnz w5, #31, .L141
+ tbnz w5, #31, .L139
cmp w6, w5
- bls .L141
+ bls .L139
mov w6, w5
mov w19, w3
-.L141:
+.L139:
add w3, w3, 1
add x4, x4, 16
and w3, w3, 65535
- b .L140
-.L145:
+ b .L138
+.L143:
ldr w6, [x0, 4]
cmp w3, w6
- bls .L144
+ bls .L142
ldrh w5, [x0]
cmp w5, w4
csel w3, w3, w6, eq
csel w19, w19, w1, eq
-.L144:
+.L142:
add w1, w1, 1
add x0, x0, 16
and w1, w1, 65535
- b .L143
+ b .L141
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
.global FtlUpdateVaildLpn
@@ -1122,48 +1173,48 @@ select_l2p_ram_region:
FtlUpdateVaildLpn:
adrp x1, .LANCHOR0
add x3, x1, :lo12:.LANCHOR0
- ldrh w2, [x3, 2578]
+ ldrh w2, [x3, 2626]
cmp w2, 4
- bhi .L148
- cbnz w0, .L148
+ bhi .L146
+ cbnz w0, .L146
add w2, w2, 1
- strh w2, [x3, 2578]
+ strh w2, [x3, 2626]
ret
-.L148:
+.L146:
add x0, x1, :lo12:.LANCHOR0
mov w6, 65535
mov x1, 0
- ldrh w4, [x0, 44]
- ldr x5, [x0, 2376]
- strh wzr, [x0, 2578]
- str wzr, [x0, 2580]
-.L149:
+ ldrh w4, [x0, 252]
+ ldr x5, [x0, 80]
+ strh wzr, [x0, 2626]
+ str wzr, [x0, 2628]
+.L147:
cmp w4, w1, uxth
- bhi .L151
+ bhi .L149
ret
-.L151:
+.L149:
ldrh w3, [x5, x1, lsl 1]
cmp w3, w6
- beq .L150
- ldr w2, [x0, 2580]
+ beq .L148
+ ldr w2, [x0, 2628]
add w2, w2, w3
- str w2, [x0, 2580]
-.L150:
+ str w2, [x0, 2628]
+.L148:
add x1, x1, 1
- b .L149
+ b .L147
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 2
.global ftl_set_blk_mode
.type ftl_set_blk_mode, %function
ftl_set_blk_mode:
and w0, w0, 65535
- cbz w1, .L154
+ cbz w1, .L152
stp x29, x30, [sp, -16]!
add x29, sp, 0
bl ftl_set_blk_mode.part.7
ldp x29, x30, [sp], 16
ret
-.L154:
+.L152:
adrp x1, .LANCHOR0+24
ubfx x2, x0, 5, 11
lsl x2, x2, 2
@@ -1197,84 +1248,84 @@ ftl_sb_update_avl_pages:
add x1, x4, :lo12:.LANCHOR0
and w2, w2, 65535
strh wzr, [x0, 4]
- ldrh w3, [x1, 36]
+ ldrh w3, [x1, 244]
mov w1, 65535
-.L162:
+.L160:
cmp w3, w2, uxth
- bhi .L164
+ bhi .L162
add x4, x4, :lo12:.LANCHOR0
ubfiz x3, x3, 1, 16
add x3, x3, 16
add x2, x0, 16
add x3, x0, x3
mov w5, 65535
- ldrh w1, [x4, 106]
+ ldrh w1, [x4, 314]
sub w1, w1, #1
and w1, w1, 65535
sub w1, w1, w6
-.L165:
+.L163:
cmp x2, x3
- bne .L167
+ bne .L165
ret
-.L164:
+.L162:
add x5, x0, x2, sxtw 1
ldrh w5, [x5, 16]
cmp w5, w1
- beq .L163
+ beq .L161
ldrh w5, [x0, 4]
add w5, w5, 1
strh w5, [x0, 4]
-.L163:
+.L161:
add w2, w2, 1
- b .L162
-.L167:
+ b .L160
+.L165:
ldrh w4, [x2]
cmp w4, w5
- beq .L166
+ beq .L164
ldrh w4, [x0, 4]
add w4, w1, w4
strh w4, [x0, 4]
-.L166:
+.L164:
add x2, x2, 2
- b .L165
+ b .L163
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 2
.global FtlSlcSuperblockCheck
.type FtlSlcSuperblockCheck, %function
FtlSlcSuperblockCheck:
ldrh w1, [x0, 4]
- cbz w1, .L168
+ cbz w1, .L166
ldrh w2, [x0]
mov w1, 65535
cmp w2, w1
- beq .L168
+ beq .L166
ldrb w2, [x0, 6]
add x2, x2, 8
ldrh w3, [x0, x2, lsl 1]
- adrp x2, .LANCHOR0+36
- ldrh w4, [x2, #:lo12:.LANCHOR0+36]
+ adrp x2, .LANCHOR0+244
+ ldrh w4, [x2, #:lo12:.LANCHOR0+244]
mov w2, w1
-.L171:
+.L169:
cmp w3, w2
- beq .L173
-.L168:
+ beq .L171
+.L166:
ret
-.L173:
+.L171:
ldrb w1, [x0, 6]
add w1, w1, 1
and w1, w1, 255
strb w1, [x0, 6]
cmp w1, w4
- bne .L172
+ bne .L170
ldrh w1, [x0, 2]
strb wzr, [x0, 6]
add w1, w1, 1
strh w1, [x0, 2]
-.L172:
+.L170:
ldrb w1, [x0, 6]
add x1, x1, 8
ldrh w3, [x0, x1, lsl 1]
- b .L171
+ b .L169
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 2
.global make_superblock
@@ -1287,54 +1338,63 @@ make_superblock:
adrp x20, .LANCHOR0
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x19]
- ldrh w0, [x0, 44]
+ ldrh w0, [x0, 252]
cmp w1, w0
- bcc .L175
+ bcc .L173
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2156
+ adrp x0, .LC8
+ mov w2, 2148
add x1, x1, 120
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L175:
+.L173:
add x0, x20, :lo12:.LANCHOR0
add x6, x19, 16
- add x7, x0, 64
+ add x7, x0, 272
strh wzr, [x19, 4]
strb wzr, [x19, 7]
mov x5, 0
- ldrh w8, [x0, 36]
+ ldrh w8, [x0, 244]
mov w9, -1
-.L176:
+.L174:
cmp w8, w5, uxth
- bhi .L178
+ bhi .L176
add x20, x20, :lo12:.LANCHOR0
ldrb w0, [x19, 7]
strb wzr, [x19, 9]
- ldrh w1, [x20, 106]
+ ldrh w1, [x20, 314]
mul w0, w0, w1
+ ldrh w1, [x19]
strh w0, [x19, 4]
+ ldr x0, [x20, 2608]
+ ldrh w1, [x0, x1, lsl 1]
+ mov w0, 10000
+ cmp w1, w0
+ bls .L177
+ mov w0, 1
+ strb w0, [x19, 9]
+.L177:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L178:
+.L176:
ldrh w1, [x19]
ldrb w0, [x7, x5]
bl V2P_block
mov w4, w0
strh w9, [x6]
bl FtlBbmIsBadBlock
- cbnz w0, .L177
+ cbnz w0, .L175
strh w4, [x6]
ldrb w0, [x19, 7]
add w0, w0, 1
strb w0, [x19, 7]
-.L177:
+.L175:
add x5, x5, 1
add x6, x6, 2
- b .L176
+ b .L174
.size make_superblock, .-make_superblock
.align 2
.global update_multiplier_value
@@ -1346,50 +1406,50 @@ update_multiplier_value:
mov x9, 0
mov w6, 0
mov x5, x0
- add x7, x1, 64
- ldrh w10, [x1, 36]
- ldrh w11, [x1, 106]
+ add x7, x1, 272
+ ldrh w10, [x1, 244]
+ ldrh w11, [x1, 314]
cmp w10, w9, uxth
- bhi .L192
- cbz w6, .L190
+ bhi .L191
+ cbz w6, .L189
mov w0, 32768
sdiv w6, w0, w6
-.L191:
+.L190:
add x0, x5, :lo12:.LANCHOR0
mov w1, 6
- ldr x0, [x0, 2360]
+ ldr x0, [x0, 2568]
umaddl x8, w8, w1, x0
mov w0, 0
strh w6, [x8, 4]
ret
-.L185:
+.L184:
mov w6, 0
- b .L184
-.L190:
+ b .L183
+.L189:
mov w6, 0
- b .L191
-.L192:
+ b .L190
+.L191:
stp x29, x30, [sp, -16]!
add x29, sp, 0
-.L183:
+.L182:
ldrb w0, [x7, x9]
mov w1, w8
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz w0, .L182
+ cbnz w0, .L181
add w6, w6, w11
and w6, w6, 65535
-.L182:
+.L181:
add x9, x9, 1
cmp w10, w9, uxth
- bhi .L183
- cbz w6, .L185
+ bhi .L182
+ cbz w6, .L184
mov w0, 32768
sdiv w6, w0, w6
-.L184:
+.L183:
add x0, x5, :lo12:.LANCHOR0
mov w1, 6
- ldr x0, [x0, 2360]
+ ldr x0, [x0, 2568]
umaddl x8, w8, w1, x0
mov w0, 0
strh w6, [x8, 4]
@@ -1402,10 +1462,10 @@ update_multiplier_value:
GetFreeBlockMinEraseCount:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldr x0, [x1, 2408]
- cbz x0, .L195
- ldr x2, [x1, 2360]
- ldr x1, [x1, 2384]
+ ldr x0, [x1, 2600]
+ cbz x0, .L194
+ ldr x2, [x1, 2568]
+ ldr x1, [x1, 2608]
sub x0, x0, x2
mov x2, -6148914691236517206
asr x0, x0, 1
@@ -1414,7 +1474,7 @@ GetFreeBlockMinEraseCount:
and x0, x0, 65535
ldrh w0, [x1, x0, lsl 1]
ret
-.L195:
+.L194:
mov w0, 0
ret
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
@@ -1425,11 +1485,11 @@ GetFreeBlockMaxEraseCount:
adrp x2, .LANCHOR0
add x4, x2, :lo12:.LANCHOR0
and w0, w0, 65535
- ldr x1, [x4, 2408]
- cbz x1, .L203
- ldrh w3, [x4, 2416]
+ ldr x1, [x4, 2600]
+ cbz x1, .L202
+ ldrh w3, [x4, 236]
mov w5, 7
- ldr x4, [x4, 2360]
+ ldr x4, [x4, 2568]
mov w6, 6
mov w7, 65535
sub x1, x1, x4
@@ -1443,25 +1503,25 @@ GetFreeBlockMaxEraseCount:
mul x1, x1, x3
mov w3, 0
and w1, w1, 65535
-.L199:
+.L198:
cmp w0, w3
- beq .L202
+ beq .L201
umull x5, w1, w6
ldrh w5, [x4, x5]
cmp w5, w7
- bne .L200
-.L202:
+ bne .L199
+.L201:
add x2, x2, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
- ldr x0, [x2, 2384]
+ ldr x0, [x2, 2608]
ldrh w0, [x0, x1]
ret
-.L200:
+.L199:
add w3, w3, 1
mov w1, w5
and w3, w3, 65535
- b .L199
-.L203:
+ b .L198
+.L202:
mov w0, 0
ret
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
@@ -1470,8 +1530,8 @@ GetFreeBlockMaxEraseCount:
.type FtlPrintInfo2buf, %function
FtlPrintInfo2buf:
stp x29, x30, [sp, -96]!
- adrp x1, .LC2
- add x1, x1, :lo12:.LC2
+ adrp x1, .LC9
+ add x1, x1, :lo12:.LC9
add x29, sp, 0
stp x21, x22, [sp, 32]
mov x22, x0
@@ -1483,442 +1543,442 @@ FtlPrintInfo2buf:
add x20, x0, 12
str x27, [sp, 80]
bl strcpy
- ldr w3, [x21, 120]
- adrp x2, .LC3
- add x2, x2, :lo12:.LC3
+ ldr w3, [x21, 328]
+ adrp x2, .LC10
+ add x2, x2, :lo12:.LC10
mov x1, 64
mov x0, x20
bl snprintf
add x20, x20, x0, sxtw
mov x0, x20
- adrp x1, .LC4
- add x1, x1, :lo12:.LC4
+ adrp x1, .LC11
+ add x1, x1, :lo12:.LC11
bl strcpy
- ldr w3, [x21, 2584]
+ ldr w3, [x21, 2632]
add x20, x20, 10
mov x1, 64
mov x0, x20
- adrp x2, .LC5
- add x2, x2, :lo12:.LC5
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2580]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC6
- add x2, x2, :lo12:.LC6
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2588]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC7
- add x2, x2, :lo12:.LC7
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2592]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC8
- add x2, x2, :lo12:.LC8
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2596]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC9
- add x2, x2, :lo12:.LC9
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2600]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC10
- add x2, x2, :lo12:.LC10
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2604]
- mov x1, 64
- mov x0, x20
- adrp x2, .LC11
- add x2, x2, :lo12:.LC11
- bl snprintf
- add x20, x20, x0, sxtw
- ldr w3, [x21, 2608]
- mov x1, 64
- mov x0, x20
adrp x2, .LC12
add x2, x2, :lo12:.LC12
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2612]
+ ldr w3, [x21, 2628]
mov x1, 64
mov x0, x20
adrp x2, .LC13
add x2, x2, :lo12:.LC13
- lsr w3, w3, 11
bl snprintf
- ldr w3, [x21, 2616]
add x20, x20, x0, sxtw
+ ldr w3, [x21, 2636]
mov x1, 64
mov x0, x20
adrp x2, .LC14
add x2, x2, :lo12:.LC14
- lsr w3, w3, 11
bl snprintf
- ldr w3, [x21, 2620]
add x20, x20, x0, sxtw
+ ldr w3, [x21, 2640]
mov x1, 64
mov x0, x20
adrp x2, .LC15
add x2, x2, :lo12:.LC15
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2624]
+ ldr w3, [x21, 2644]
mov x1, 64
mov x0, x20
adrp x2, .LC16
add x2, x2, :lo12:.LC16
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 166]
+ ldr w3, [x21, 2648]
mov x1, 64
mov x0, x20
adrp x2, .LC17
add x2, x2, :lo12:.LC17
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2416]
+ ldr w3, [x21, 2652]
mov x1, 64
mov x0, x20
adrp x2, .LC18
add x2, x2, :lo12:.LC18
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2628]
+ ldr w3, [x21, 2656]
mov x1, 64
mov x0, x20
adrp x2, .LC19
add x2, x2, :lo12:.LC19
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2632]
+ ldr w3, [x21, 2660]
mov x1, 64
mov x0, x20
adrp x2, .LC20
add x2, x2, :lo12:.LC20
+ lsr w3, w3, 11
bl snprintf
+ ldr w3, [x21, 2664]
add x20, x20, x0, sxtw
- ldr w3, [x21, 2636]
mov x1, 64
mov x0, x20
adrp x2, .LC21
add x2, x2, :lo12:.LC21
+ lsr w3, w3, 11
bl snprintf
+ ldr w3, [x21, 2668]
add x20, x20, x0, sxtw
- ldr w3, [x21, 2640]
mov x1, 64
mov x0, x20
adrp x2, .LC22
add x2, x2, :lo12:.LC22
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2644]
+ ldr w3, [x21, 2672]
mov x1, 64
mov x0, x20
adrp x2, .LC23
add x2, x2, :lo12:.LC23
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 2648]
+ ldrh w3, [x21, 374]
mov x1, 64
mov x0, x20
adrp x2, .LC24
add x2, x2, :lo12:.LC24
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2342]
+ ldrh w3, [x21, 236]
mov x1, 64
mov x0, x20
adrp x2, .LC25
add x2, x2, :lo12:.LC25
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2340]
+ ldr w3, [x21, 2676]
mov x1, 64
mov x0, x20
adrp x2, .LC26
add x2, x2, :lo12:.LC26
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 144]
+ ldr w3, [x21, 2680]
mov x1, 64
mov x0, x20
adrp x2, .LC27
add x2, x2, :lo12:.LC27
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 136]
+ ldr w3, [x21, 2684]
mov x1, 64
mov x0, x20
adrp x2, .LC28
add x2, x2, :lo12:.LC28
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 32]
+ ldr w3, [x21, 2688]
mov x1, 64
mov x0, x20
adrp x2, .LC29
add x2, x2, :lo12:.LC29
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 262]
+ ldr w3, [x21, 2692]
mov x1, 64
mov x0, x20
adrp x2, .LC30
add x2, x2, :lo12:.LC30
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 44]
+ ldr w3, [x21, 2696]
mov x1, 64
mov x0, x20
adrp x2, .LC31
add x2, x2, :lo12:.LC31
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2652]
+ ldrh w3, [x21, 2550]
mov x1, 64
mov x0, x20
adrp x2, .LC32
add x2, x2, :lo12:.LC32
bl snprintf
add x20, x20, x0, sxtw
- ldr w3, [x21, 48]
+ ldrh w3, [x21, 2548]
mov x1, 64
mov x0, x20
adrp x2, .LC33
add x2, x2, :lo12:.LC33
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2656]
+ ldr w3, [x21, 352]
mov x1, 64
mov x0, x20
adrp x2, .LC34
add x2, x2, :lo12:.LC34
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 160]
+ ldr w3, [x21, 344]
mov x1, 64
mov x0, x20
adrp x2, .LC35
add x2, x2, :lo12:.LC35
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2426]
+ ldr w3, [x21, 240]
mov x1, 64
mov x0, x20
adrp x2, .LC36
add x2, x2, :lo12:.LC36
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2430]
+ ldrh w3, [x21, 470]
mov x1, 64
mov x0, x20
adrp x2, .LC37
add x2, x2, :lo12:.LC37
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2424]
+ ldrh w3, [x21, 252]
mov x1, 64
mov x0, x20
adrp x2, .LC38
add x2, x2, :lo12:.LC38
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2432]
+ ldrh w3, [x21, 2700]
mov x1, 64
mov x0, x20
adrp x2, .LC39
add x2, x2, :lo12:.LC39
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2428]
+ ldr w3, [x21, 256]
mov x1, 64
mov x0, x20
adrp x2, .LC40
add x2, x2, :lo12:.LC40
bl snprintf
add x20, x20, x0, sxtw
- ldrh w1, [x21, 2424]
- adrp x2, .LC41
- ldr x0, [x21, 2376]
- add x2, x2, :lo12:.LC41
- ldrh w3, [x0, x1, lsl 1]
+ ldrh w3, [x21, 2704]
mov x1, 64
mov x0, x20
+ adrp x2, .LC41
+ add x2, x2, :lo12:.LC41
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2474]
+ ldrh w3, [x21, 368]
mov x1, 64
mov x0, x20
adrp x2, .LC42
add x2, x2, :lo12:.LC42
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2478]
+ ldrh w3, [x21, 34]
mov x1, 64
mov x0, x20
adrp x2, .LC43
add x2, x2, :lo12:.LC43
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2472]
+ ldrb w3, [x21, 38]
mov x1, 64
mov x0, x20
adrp x2, .LC44
add x2, x2, :lo12:.LC44
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2480]
+ ldrh w3, [x21, 32]
mov x1, 64
mov x0, x20
adrp x2, .LC45
add x2, x2, :lo12:.LC45
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2476]
+ ldrb w3, [x21, 40]
mov x1, 64
mov x0, x20
adrp x2, .LC46
add x2, x2, :lo12:.LC46
bl snprintf
add x20, x20, x0, sxtw
- ldrh w1, [x21, 2472]
- adrp x2, .LC47
- ldr x0, [x21, 2376]
- add x2, x2, :lo12:.LC47
- ldrh w3, [x0, x1, lsl 1]
+ ldrh w3, [x21, 36]
mov x1, 64
mov x0, x20
+ adrp x2, .LC47
+ add x2, x2, :lo12:.LC47
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2522]
- mov x1, 64
- mov x0, x20
+ ldrh w1, [x21, 32]
adrp x2, .LC48
+ ldr x0, [x21, 80]
add x2, x2, :lo12:.LC48
+ ldrh w3, [x0, x1, lsl 1]
+ mov x1, 64
+ mov x0, x20
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2526]
+ ldrh w3, [x21, 90]
mov x1, 64
mov x0, x20
adrp x2, .LC49
add x2, x2, :lo12:.LC49
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2520]
+ ldrb w3, [x21, 94]
mov x1, 64
mov x0, x20
adrp x2, .LC50
add x2, x2, :lo12:.LC50
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2528]
+ ldrh w3, [x21, 88]
mov x1, 64
mov x0, x20
adrp x2, .LC51
add x2, x2, :lo12:.LC51
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2524]
+ ldrb w3, [x21, 96]
mov x1, 64
mov x0, x20
adrp x2, .LC52
add x2, x2, :lo12:.LC52
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2674]
+ ldrh w3, [x21, 92]
mov x1, 64
mov x0, x20
adrp x2, .LC53
add x2, x2, :lo12:.LC53
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2678]
- mov x1, 64
- mov x0, x20
+ ldrh w1, [x21, 88]
adrp x2, .LC54
+ ldr x0, [x21, 80]
add x2, x2, :lo12:.LC54
+ ldrh w3, [x0, x1, lsl 1]
+ mov x1, 64
+ mov x0, x20
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2672]
+ ldrh w3, [x21, 138]
mov x1, 64
mov x0, x20
adrp x2, .LC55
add x2, x2, :lo12:.LC55
bl snprintf
add x20, x20, x0, sxtw
- ldrb w3, [x21, 2680]
+ ldrb w3, [x21, 142]
mov x1, 64
mov x0, x20
adrp x2, .LC56
add x2, x2, :lo12:.LC56
bl snprintf
add x20, x20, x0, sxtw
- ldrh w3, [x21, 2676]
+ ldrh w3, [x21, 136]
mov x1, 64
mov x0, x20
adrp x2, .LC57
add x2, x2, :lo12:.LC57
bl snprintf
add x20, x20, x0, sxtw
+ ldrb w3, [x21, 144]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC58
+ add x2, x2, :lo12:.LC58
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrh w3, [x21, 140]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC59
+ add x2, x2, :lo12:.LC59
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrh w3, [x21, 186]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC60
+ add x2, x2, :lo12:.LC60
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrb w3, [x21, 190]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC61
+ add x2, x2, :lo12:.LC61
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrh w3, [x21, 184]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC62
+ add x2, x2, :lo12:.LC62
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrb w3, [x21, 192]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC63
+ add x2, x2, :lo12:.LC63
+ bl snprintf
+ add x20, x20, x0, sxtw
+ ldrh w3, [x21, 188]
+ mov x1, 64
+ mov x0, x20
+ adrp x2, .LC64
+ add x2, x2, :lo12:.LC64
+ bl snprintf
+ add x20, x20, x0, sxtw
ldr w5, [x21, 2796]
mov x1, 64
ldr w4, [x21, 2804]
- adrp x2, .LC58
+ adrp x2, .LC65
ldr w3, [x21, 2800]
- add x2, x2, :lo12:.LC58
+ add x2, x2, :lo12:.LC65
mov x0, x20
bl snprintf
add x19, x20, x0, sxtw
ldr w3, [x21, 2792]
mov x1, 64
mov x0, x19
- adrp x2, .LC59
- add x2, x2, :lo12:.LC59
+ adrp x2, .LC66
+ add x2, x2, :lo12:.LC66
bl snprintf
add x19, x19, x0, sxtw
ldr w3, [x21, 2816]
mov x1, 64
mov x0, x19
- adrp x2, .LC60
- add x2, x2, :lo12:.LC60
+ adrp x2, .LC67
+ add x2, x2, :lo12:.LC67
bl snprintf
add x19, x19, x0, sxtw
ldrh w3, [x21, 3232]
mov x1, 64
mov x0, x19
- adrp x2, .LC61
- add x2, x2, :lo12:.LC61
+ adrp x2, .LC68
+ add x2, x2, :lo12:.LC68
bl snprintf
add x19, x19, x0, sxtw
ldrh w3, [x21, 3234]
mov x1, 64
mov x0, x19
- adrp x2, .LC62
- add x2, x2, :lo12:.LC62
+ adrp x2, .LC69
+ add x2, x2, :lo12:.LC69
bl snprintf
add x19, x19, x0, sxtw
ldr w3, [x21, 3236]
mov x1, 64
mov x0, x19
- adrp x2, .LC63
- add x2, x2, :lo12:.LC63
+ adrp x2, .LC70
+ add x2, x2, :lo12:.LC70
bl snprintf
add x19, x19, x0, sxtw
ldrh w3, [x21, 3240]
- adrp x2, .LC64
- add x2, x2, :lo12:.LC64
+ adrp x2, .LC71
+ add x2, x2, :lo12:.LC71
mov x1, 64
mov x0, x19
bl snprintf
@@ -1927,24 +1987,24 @@ FtlPrintInfo2buf:
and w3, w0, 65535
mov x1, 64
mov x0, x19
- adrp x2, .LC65
- add x2, x2, :lo12:.LC65
+ adrp x2, .LC72
+ add x2, x2, :lo12:.LC72
bl snprintf
add x19, x19, x0, sxtw
- ldrh w0, [x21, 2416]
+ ldrh w0, [x21, 236]
bl GetFreeBlockMaxEraseCount
and w3, w0, 65535
- adrp x2, .LC66
+ adrp x2, .LC73
mov x0, x19
- add x2, x2, :lo12:.LC66
+ add x2, x2, :lo12:.LC73
mov x1, 64
bl snprintf
add x19, x19, x0, sxtw
adrp x0, .LANCHOR2
ldr w0, [x0, #:lo12:.LANCHOR2]
cmp w0, 1
- beq .L205
-.L210:
+ beq .L204
+.L209:
sub w0, w19, w22
ldr x27, [sp, 80]
ldp x19, x20, [sp, 16]
@@ -1953,38 +2013,38 @@ FtlPrintInfo2buf:
ldp x25, x26, [sp, 64]
ldp x29, x30, [sp], 96
ret
-.L205:
- ldrh w0, [x21, 2672]
+.L204:
+ ldrh w0, [x21, 184]
mov w1, 65535
cmp w0, w1
- beq .L207
- ldr x1, [x21, 2376]
+ beq .L206
+ ldr x1, [x21, 80]
ubfiz x0, x0, 1, 16
- adrp x2, .LC67
- add x2, x2, :lo12:.LC67
+ adrp x2, .LC74
+ add x2, x2, :lo12:.LC74
ldrh w3, [x1, x0]
mov x0, x19
mov x1, 64
bl snprintf
add x19, x19, x0, sxtw
-.L207:
+.L206:
mov w0, 0
- adrp x24, .LC68
+ adrp x24, .LC75
bl List_get_gc_head_node
add x21, x23, :lo12:.LANCHOR0
and w4, w0, 65535
- add x24, x24, :lo12:.LC68
+ add x24, x24, :lo12:.LC75
mov w20, 0
mov w27, 65535
mov w26, 6
-.L209:
+.L208:
cmp w4, w27
- beq .L208
+ beq .L207
umull x25, w4, w26
- ldr x0, [x21, 2360]
- ldr x2, [x21, 2376]
+ ldr x0, [x21, 2568]
+ ldr x2, [x21, 80]
ubfiz x1, x4, 1, 16
- ldr x3, [x21, 2384]
+ ldr x3, [x21, 2608]
add x0, x0, x25
ldrh w5, [x2, x1]
mov x2, x24
@@ -1996,31 +2056,31 @@ FtlPrintInfo2buf:
add w20, w20, 1
bl snprintf
add x19, x19, x0, sxtw
- ldr x0, [x21, 2360]
+ ldr x0, [x21, 2568]
cmp w20, 16
ldrh w4, [x0, x25]
- bne .L209
-.L208:
+ bne .L208
+.L207:
add x23, x23, :lo12:.LANCHOR0
- adrp x21, .LC69
- add x21, x21, :lo12:.LC69
+ adrp x21, .LC76
+ add x21, x21, :lo12:.LC76
mov w20, 0
mov w25, 65535
mov w26, 6
- ldr x0, [x23, 2360]
- ldr x4, [x23, 2408]
+ ldr x0, [x23, 2568]
+ ldr x4, [x23, 2600]
sub x4, x4, x0
mov x0, -6148914691236517206
asr x4, x4, 1
movk x0, 0xaaab, lsl 0
mul x4, x4, x0
and w4, w4, 65535
-.L211:
+.L210:
cmp w4, w25
- beq .L210
+ beq .L209
umull x24, w4, w26
- ldr x0, [x23, 2360]
- ldr x2, [x23, 2384]
+ ldr x0, [x23, 2568]
+ ldr x2, [x23, 2608]
ubfiz x1, x4, 1, 16
add x0, x0, x24
mov w3, w20
@@ -2033,23 +2093,23 @@ FtlPrintInfo2buf:
bl snprintf
add x19, x19, x0, sxtw
cmp w20, 4
- beq .L210
- ldr x0, [x23, 2360]
+ beq .L209
+ ldr x0, [x23, 2568]
ldrh w4, [x0, x24]
- b .L211
+ b .L210
.size FtlPrintInfo2buf, .-FtlPrintInfo2buf
.align 2
.global rknand_proc_ftlread
.type rknand_proc_ftlread, %function
rknand_proc_ftlread:
cmp w0, 2047
- ble .L219
+ ble .L218
stp x29, x30, [sp, -32]!
- adrp x3, .LC70
- adrp x2, .LC71
- add x3, x3, :lo12:.LC70
+ adrp x3, .LC0
+ adrp x2, .LC77
+ add x3, x3, :lo12:.LC0
add x29, sp, 0
- add x2, x2, :lo12:.LC71
+ add x2, x2, :lo12:.LC77
stp x19, x20, [sp, 16]
mov x20, x1
mov x1, 64
@@ -2063,7 +2123,7 @@ rknand_proc_ftlread:
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L219:
+.L218:
mov w0, 0
ret
.size rknand_proc_ftlread, .-rknand_proc_ftlread
@@ -2076,144 +2136,144 @@ GetSwlReplaceBlock:
add x0, x8, :lo12:.LANCHOR0
add x29, sp, 0
stp x19, x20, [sp, 16]
- ldr w2, [x0, 2636]
- ldr w1, [x0, 2648]
+ ldr w2, [x0, 2684]
+ ldr w1, [x0, 2696]
cmp w2, w1
- bcs .L225
- ldrh w2, [x0, 44]
+ bcs .L224
+ ldrh w2, [x0, 252]
mov x1, 0
- ldr x4, [x0, 2384]
- str wzr, [x0, 2628]
-.L226:
+ ldr x4, [x0, 2608]
+ str wzr, [x0, 2676]
+.L225:
cmp w2, w1
- bhi .L227
+ bhi .L226
add x1, x8, :lo12:.LANCHOR0
- ldr w0, [x1, 2628]
+ ldr w0, [x1, 2676]
udiv w2, w0, w2
- str w2, [x1, 2636]
- ldr w2, [x1, 2632]
+ str w2, [x1, 2684]
+ ldr w2, [x1, 2680]
sub w0, w0, w2
- ldrh w2, [x1, 96]
+ ldrh w2, [x1, 304]
udiv w0, w0, w2
- str w0, [x1, 2628]
-.L228:
+ str w0, [x1, 2676]
+.L227:
add x1, x8, :lo12:.LANCHOR0
- ldr w9, [x1, 2648]
- ldr w11, [x1, 2636]
+ ldr w9, [x1, 2696]
+ ldr w11, [x1, 2684]
add w0, w9, 256
cmp w0, w11
- bls .L233
- ldr w1, [x1, 2644]
+ bls .L232
+ ldr w1, [x1, 2692]
add w0, w9, 768
cmp w0, w1
- bls .L233
-.L235:
- mov w20, 65535
+ bls .L232
.L234:
+ mov w20, 65535
+.L233:
mov w0, w20
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L227:
+.L226:
ldrh w3, [x4, x1, lsl 1]
add x1, x1, 1
- ldr w5, [x0, 2628]
+ ldr w5, [x0, 2676]
add w3, w3, w5
- str w3, [x0, 2628]
- b .L226
-.L225:
- ldr w1, [x0, 2644]
+ str w3, [x0, 2676]
+ b .L225
+.L224:
+ ldr w1, [x0, 2692]
cmp w2, w1
- bls .L228
+ bls .L227
add w1, w1, 1
- str w1, [x0, 2644]
+ str w1, [x0, 2692]
mov w1, 0
-.L230:
- ldrh w2, [x0, 44]
+.L229:
+ ldrh w2, [x0, 252]
cmp w1, w2
- bcs .L228
- ldr x4, [x0, 2384]
+ bcs .L227
+ ldr x4, [x0, 2608]
ubfiz x3, x1, 1, 32
add w1, w1, 1
ldrh w2, [x4, x3]
add w2, w2, 1
strh w2, [x4, x3]
- b .L230
-.L233:
+ b .L229
+.L232:
add x10, x8, :lo12:.LANCHOR0
- ldrh w0, [x10, 2416]
+ ldrh w0, [x10, 236]
add w0, w0, w0, lsl 1
lsr w0, w0, 2
bl GetFreeBlockMaxEraseCount
and w6, w0, 65535
add w0, w9, 64
cmp w6, w0
- bcc .L235
- ldr x0, [x10, 2368]
- cbz x0, .L235
+ bcc .L234
+ ldr x0, [x10, 2576]
+ cbz x0, .L234
mov w4, 65535
- ldrh w12, [x10, 44]
+ ldrh w12, [x10, 252]
mov x13, -6148914691236517206
- ldr x7, [x10, 2360]
- ldr x5, [x10, 2384]
+ ldr x7, [x10, 2568]
+ ldr x5, [x10, 2608]
mov w2, w4
mov w10, w4
mov w1, 0
movk x13, 0xaaab, lsl 0
mov w14, 6
-.L236:
+.L235:
ldrh w3, [x0]
cmp w3, w10
- bne .L239
+ bne .L238
mov w20, w2
-.L238:
+.L237:
mov w0, 65535
cmp w20, w0
- beq .L235
+ beq .L234
ubfiz x7, x20, 1, 32
ldrh w3, [x5, x7]
cmp w9, w3
- bcs .L240
+ bcs .L239
bl GetFreeBlockMinEraseCount
cmp w9, w0, uxth
- bcs .L240
+ bcs .L239
add x0, x8, :lo12:.LANCHOR0
- str w4, [x0, 2648]
-.L240:
+ str w4, [x0, 2696]
+.L239:
cmp w11, w3
- bls .L235
+ bls .L234
add w0, w3, 128
cmp w6, w0
- ble .L235
+ ble .L234
add w0, w3, 256
cmp w11, w0
- bhi .L241
+ bhi .L240
add x0, x8, :lo12:.LANCHOR0
add w3, w3, 768
- ldr w0, [x0, 2644]
+ ldr w0, [x0, 2692]
cmp w3, w0
- bcs .L235
-.L241:
+ bcs .L234
+.L240:
add x19, x8, :lo12:.LANCHOR0
ldrh w5, [x5, x7]
mov w2, w11
mov w1, w20
- ldr x0, [x19, 2376]
- ldr w3, [x19, 2644]
+ ldr x0, [x19, 80]
+ ldr w3, [x19, 2692]
ldrh w4, [x0, x7]
- adrp x0, .LC72
- add x0, x0, :lo12:.LC72
+ adrp x0, .LC78
+ add x0, x0, :lo12:.LC78
bl sftl_printk
mov w0, 1
str w0, [x19, 3244]
- b .L234
-.L239:
+ b .L233
+.L238:
add w1, w1, 1
and w1, w1, 65535
cmp w1, w12
- bhi .L235
+ bhi .L234
ldrh w15, [x0, 4]
- cbz w15, .L237
+ cbz w15, .L236
sub x0, x0, x7
asr x0, x0, 1
mul x0, x0, x13
@@ -2221,14 +2281,14 @@ GetSwlReplaceBlock:
and x0, x0, 65535
ldrh w0, [x5, x0, lsl 1]
cmp w9, w0
- bcs .L238
+ bcs .L237
cmp w4, w0
- bls .L237
+ bls .L236
mov w4, w0
mov w2, w20
-.L237:
+.L236:
umaddl x0, w3, w14, x7
- b .L236
+ b .L235
.size GetSwlReplaceBlock, .-GetSwlReplaceBlock
.align 2
.global free_data_superblock
@@ -2237,18 +2297,18 @@ free_data_superblock:
and w0, w0, 65535
mov w1, 65535
cmp w0, w1
- beq .L252
+ beq .L251
stp x29, x30, [sp, -16]!
- adrp x2, .LANCHOR0+2376
+ adrp x2, .LANCHOR0+80
ubfiz x1, x0, 1, 16
add x29, sp, 0
- ldr x2, [x2, #:lo12:.LANCHOR0+2376]
+ ldr x2, [x2, #:lo12:.LANCHOR0+80]
strh wzr, [x2, x1]
bl INSERT_FREE_LIST
mov w0, 0
ldp x29, x30, [sp], 16
ret
-.L252:
+.L251:
mov w0, 0
ret
.size free_data_superblock, .-free_data_superblock
@@ -2256,115 +2316,118 @@ free_data_superblock:
.global get_new_active_ppa
.type get_new_active_ppa, %function
get_new_active_ppa:
- stp x29, x30, [sp, -48]!
+ stp x29, x30, [sp, -32]!
add x29, sp, 0
stp x19, x20, [sp, 16]
mov x19, x0
- str x21, [sp, 32]
ldrh w1, [x0]
mov w0, 65535
cmp w1, w0
- bne .L256
+ bne .L255
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2786
+ adrp x0, .LC8
+ mov w2, 2781
add x1, x1, 136
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L256:
+.L255:
adrp x20, .LANCHOR0
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x19, 2]
- ldrh w0, [x0, 106]
+ ldrh w0, [x0, 314]
cmp w1, w0
- bne .L257
+ bne .L256
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2787
+ adrp x0, .LC8
+ mov w2, 2782
add x1, x1, 136
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L257:
+.L256:
ldrh w0, [x19, 4]
- cbnz w0, .L258
+ cbnz w0, .L257
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2788
+ adrp x0, .LC8
+ mov w2, 2783
add x1, x1, 136
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L258:
+.L257:
ldrb w0, [x19, 6]
add x1, x20, :lo12:.LANCHOR0
strb wzr, [x19, 10]
add x0, x0, 8
- ldrh w2, [x1, 36]
+ ldrh w3, [x1, 244]
mov w1, 65535
ldrh w0, [x19, x0, lsl 1]
-.L259:
+.L258:
cmp w0, w1
- beq .L261
- ldrh w21, [x19, 2]
- mov w3, 65535
+ beq .L260
+ add x20, x20, :lo12:.LANCHOR0
+ ldrh w1, [x19, 2]
+ ldrh w2, [x20, 314]
+ cmp w1, w2
+ bcs .L264
+ orr w20, w1, w0, lsl 10
ldrh w1, [x19, 4]
- orr w21, w21, w0, lsl 10
ldrb w0, [x19, 6]
+ mov w4, 65535
sub w1, w1, #1
and w1, w1, 65535
strh w1, [x19, 4]
.L263:
add w0, w0, 1
and w0, w0, 255
- cmp w2, w0
+ cmp w3, w0
bne .L262
ldrh w0, [x19, 2]
add w0, w0, 1
strh w0, [x19, 2]
mov w0, 0
.L262:
- add x4, x19, x0, sxtw 1
- ldrh w4, [x4, 16]
- cmp w4, w3
+ add x5, x19, x0, sxtw 1
+ ldrh w5, [x5, 16]
+ cmp w5, w4
beq .L263
- add x20, x20, :lo12:.LANCHOR0
strb w0, [x19, 6]
- ldrh w2, [x19, 2]
- ldrh w0, [x20, 106]
- cmp w2, w0
- bne .L255
- cbz w1, .L255
+ ldrh w0, [x19, 2]
+ cmp w0, w2
+ bne .L254
+ cbz w1, .L254
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2809
+ adrp x0, .LC8
+ mov w2, 2806
add x1, x1, 136
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L255:
- mov w0, w21
- ldr x21, [sp, 32]
+.L254:
+ mov w0, w20
ldp x19, x20, [sp, 16]
- ldp x29, x30, [sp], 48
+ ldp x29, x30, [sp], 32
ret
-.L261:
+.L260:
ldrb w0, [x19, 6]
add w0, w0, 1
and w0, w0, 255
strb w0, [x19, 6]
- cmp w0, w2
- bne .L260
+ cmp w0, w3
+ bne .L259
ldrh w0, [x19, 2]
strb wzr, [x19, 6]
add w0, w0, 1
strh w0, [x19, 2]
-.L260:
+.L259:
ldrb w0, [x19, 6]
add x0, x0, 8
ldrh w0, [x19, x0, lsl 1]
- b .L259
+ b .L258
+.L264:
+ mov w20, 65535
+ b .L254
.size get_new_active_ppa, .-get_new_active_ppa
.align 2
.global FtlGcBufInit
@@ -2378,7 +2441,7 @@ FtlGcBufInit:
mov w5, 4
str wzr, [x1, 3248]
.L271:
- ldrh w2, [x1, 36]
+ ldrh w2, [x1, 244]
cmp w3, w2
bcc .L272
add x0, x0, :lo12:.LANCHOR0
@@ -2395,12 +2458,12 @@ FtlGcBufInit:
ldr x7, [x1, 3264]
add x2, x6, x4
str w9, [x2, 16]
- ldrh w2, [x1, 114]
+ ldrh w2, [x1, 322]
mul w2, w2, w3
sdiv w2, w2, w5
add x2, x7, x2, sxtw 2
str x2, [x6, x4]
- ldrh w2, [x1, 116]
+ ldrh w2, [x1, 324]
ldr x7, [x1, 3256]
ldr x10, [x1, 3272]
add x6, x7, x4
@@ -2424,12 +2487,12 @@ FtlGcBufInit:
ldr x7, [x0, 3264]
add x1, x3, x4
str wzr, [x1, 16]
- ldrh w1, [x0, 114]
+ ldrh w1, [x0, 322]
mul w1, w1, w2
sdiv w1, w1, w5
add x1, x7, x1, sxtw 2
str x1, [x3, x4]
- ldrh w1, [x0, 116]
+ ldrh w1, [x0, 324]
ldr x3, [x0, 3256]
add x3, x3, x4
ldr x4, [x0, 3272]
@@ -2603,21 +2666,21 @@ FtlGcRefreshBlock:
str x19, [sp, 16]
and w19, w0, 65535
mov w1, w19
- adrp x0, .LC73
- add x0, x0, :lo12:.LC73
+ adrp x0, .LC79
+ add x0, x0, :lo12:.LC79
bl sftl_printk
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrh w3, [x0, 3320]
+ ldrh w3, [x0, 234]
cmp w19, w3
beq .L300
- ldrh w2, [x0, 3322]
+ ldrh w2, [x0, 232]
cmp w19, w2
beq .L300
mov w1, 65535
cmp w3, w1
bne .L301
- strh w19, [x0, 3320]
+ strh w19, [x0, 234]
.L300:
mov w0, 0
ldr x19, [sp, 16]
@@ -2626,7 +2689,7 @@ FtlGcRefreshBlock:
.L301:
cmp w2, w1
bne .L300
- strh w19, [x0, 3322]
+ strh w19, [x0, 232]
b .L300
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
.align 2
@@ -2643,15 +2706,15 @@ FtlGcMarkBadPhyBlk:
add x20, x20, 3328
mov w0, w21
bl P2V_block_in_plane
- ldrh w1, [x20, -4]
+ ldrh w1, [x20, -8]
mov w2, w21
mov w22, w0
- adrp x0, .LC74
- add x0, x0, :lo12:.LC74
+ adrp x0, .LC80
+ add x0, x0, :lo12:.LC80
bl sftl_printk
mov w0, w22
bl FtlGcRefreshBlock
- ldrh w0, [x20, -4]
+ ldrh w0, [x20, -8]
mov x1, 0
.L304:
cmp w0, w1, uxth
@@ -2661,7 +2724,7 @@ FtlGcMarkBadPhyBlk:
add x19, x19, :lo12:.LANCHOR0
add w1, w0, 1
add x19, x19, 3328
- strh w1, [x19, -4]
+ strh w1, [x19, -8]
strh w21, [x19, w0, sxtw 1]
b .L305
.L306:
@@ -2686,9 +2749,9 @@ FtlGcReFreshBadBlk:
str x19, [sp, 16]
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 3324]
+ ldrh w1, [x0, 3320]
cbz w1, .L309
- ldrh w3, [x0, 3320]
+ ldrh w3, [x0, 234]
mov w2, 65535
cmp w3, w2
bne .L309
@@ -2744,25 +2807,25 @@ rknand_print_hex:
stp x21, x22, [sp, 32]
mov x21, x1
stp x23, x24, [sp, 48]
- adrp x24, .LC75
+ adrp x24, .LC81
stp x25, x26, [sp, 64]
mov w23, w2
stp x27, x28, [sp, 80]
- adrp x25, .LC78
+ adrp x25, .LC84
mov x27, x0
mov w26, w3
- add x24, x24, :lo12:.LC75
- add x25, x25, :lo12:.LC78
+ add x24, x24, :lo12:.LC81
+ add x25, x25, :lo12:.LC84
stp x19, x20, [sp, 16]
mov w22, 0
mov x19, 0
mov w20, 0
- adrp x28, .LC77
+ adrp x28, .LC83
.L320:
cmp w26, w19
bhi .L326
- adrp x0, .LC79
- add x0, x0, :lo12:.LC79
+ adrp x0, .LC85
+ add x0, x0, :lo12:.LC85
bl sftl_printk
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -2782,16 +2845,16 @@ rknand_print_hex:
cmp w23, 4
bne .L322
ldr w1, [x21, x19, lsl 2]
- adrp x0, .LC76
- add x0, x0, :lo12:.LC76
+ adrp x0, .LC82
+ add x0, x0, :lo12:.LC82
.L328:
bl sftl_printk
add w20, w20, 1
cmp w20, 15
bls .L325
mov w20, 0
- adrp x0, .LC79
- add x0, x0, :lo12:.LC79
+ adrp x0, .LC85
+ add x0, x0, :lo12:.LC85
bl sftl_printk
.L325:
add x19, x19, 1
@@ -2801,7 +2864,7 @@ rknand_print_hex:
cmp w23, 2
bne .L324
ldrh w1, [x21, x19, lsl 1]
- add x0, x28, :lo12:.LC77
+ add x0, x28, :lo12:.LC83
b .L328
.L324:
ldrb w1, [x21, x19]
@@ -2844,9 +2907,9 @@ FlashEraseBlocks:
add x22, x20, x22
adrp x20, .LANCHOR1
add x20, x20, :lo12:.LANCHOR1
- adrp x21, .LC80
+ adrp x21, .LC86
add x20, x20, 160
- add x21, x21, :lo12:.LC80
+ add x21, x21, :lo12:.LC86
.L332:
cmp x19, x22
bne .L333
@@ -2870,14 +2933,14 @@ FlashEraseBlocks:
ldr x1, [x19, -24]
mov w3, 16
mov w2, 4
- adrp x0, .LC81
- add x0, x0, :lo12:.LC81
+ adrp x0, .LC87
+ add x0, x0, :lo12:.LC87
bl rknand_print_hex
ldr x1, [x19, -16]
mov w3, 4
- adrp x0, .LC82
+ adrp x0, .LC88
mov w2, w3
- add x0, x0, :lo12:.LC82
+ add x0, x0, :lo12:.LC88
bl rknand_print_hex
b .L332
.L331:
@@ -2917,7 +2980,7 @@ FtlFreeSysBlkQueueIn:
adrp x0, .LANCHOR0
add x20, x0, :lo12:.LANCHOR0
mov x19, x0
- ldrh w2, [x20, 262]
+ ldrh w2, [x20, 470]
cmp w2, 1024
beq .L345
and w1, w1, 65535
@@ -2932,17 +2995,17 @@ FtlFreeSysBlkQueueIn:
mov w1, w2
ldr x0, [x20, 3416]
bl FlashEraseBlocks
- ldr x2, [x20, 2384]
+ ldr x2, [x20, 2608]
ubfiz x0, x22, 1, 16
ldrh w1, [x2, x0]
add w1, w1, 1
strh w1, [x2, x0]
- ldr w0, [x20, 2640]
+ ldr w0, [x20, 2688]
add w0, w0, 1
- str w0, [x20, 2640]
+ str w0, [x20, 2688]
.L347:
add x0, x19, :lo12:.LANCHOR0
- add x0, x0, 256
+ add x0, x0, 464
ldrh w1, [x0, 6]
add w1, w1, 1
strh w1, [x0, 6]
@@ -2969,17 +3032,17 @@ FtlFreeSysBlkQueueOut:
add x21, x0, :lo12:.LANCHOR0
stp x19, x20, [sp, 16]
mov x19, x0
- ldrh w2, [x21, 262]
+ ldrh w2, [x21, 470]
cbz w2, .L359
- ldrh w0, [x21, 258]
- add x1, x21, 256
+ ldrh w0, [x21, 466]
+ add x1, x21, 464
sub w2, w2, #1
- strh w2, [x21, 262]
+ strh w2, [x21, 470]
mov w2, 1
add x3, x1, x0, sxtw 1
add w0, w0, 1
and w0, w0, 1023
- strh w0, [x21, 258]
+ strh w0, [x21, 466]
ldr x0, [x21, 3416]
ldrh w20, [x3, 8]
lsl w1, w20, 10
@@ -2987,9 +3050,9 @@ FtlFreeSysBlkQueueOut:
mov w1, w2
ldr x0, [x21, 3416]
bl FlashEraseBlocks
- ldr w0, [x21, 2640]
+ ldr w0, [x21, 2688]
add w0, w0, 1
- str w0, [x21, 2640]
+ str w0, [x21, 2688]
.L356:
sub w0, w20, #1
mov w1, 65533
@@ -2997,9 +3060,9 @@ FtlFreeSysBlkQueueOut:
bcs .L357
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
- ldrh w2, [x0, 262]
- adrp x0, .LC83
- add x0, x0, :lo12:.LC83
+ ldrh w2, [x0, 470]
+ adrp x0, .LC89
+ add x0, x0, :lo12:.LC89
bl sftl_printk
.L358:
b .L358
@@ -3038,10 +3101,10 @@ ftl_map_blk_alloc_new_blk:
mov w0, 65533
cmp w0, w2, uxth
bcs .L364
- adrp x0, .LANCHOR0+262
- ldrh w2, [x0, #:lo12:.LANCHOR0+262]
- adrp x0, .LC84
- add x0, x0, :lo12:.LC84
+ adrp x0, .LANCHOR0+470
+ ldrh w2, [x0, #:lo12:.LANCHOR0+470]
+ adrp x0, .LC90
+ add x0, x0, :lo12:.LC90
bl sftl_printk
.L365:
b .L365
@@ -3060,10 +3123,10 @@ ftl_map_blk_alloc_new_blk:
bhi .L368
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 578
add x1, x1, 184
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
.L368:
mov w0, 0
@@ -3102,37 +3165,37 @@ FtlMemInit:
add x2, x19, 2560
add x3, x19, 3328
strh wzr, [x19, 3240]
- strh wzr, [x19, 3324]
- stp wzr, wzr, [x1, 28]
- stp wzr, wzr, [x1, 36]
- str wzr, [x19, 2604]
- str wzr, [x19, 2608]
- stp wzr, wzr, [x2, 60]
- stp wzr, wzr, [x2, 68]
- str wzr, [x19, 2640]
- str wzr, [x19, 2644]
- str wzr, [x19, 2648]
+ strh wzr, [x19, 3320]
+ stp wzr, wzr, [x1, 76]
+ stp wzr, wzr, [x1, 84]
+ str wzr, [x19, 2652]
+ str wzr, [x19, 2656]
+ stp wzr, wzr, [x2, 108]
+ stp wzr, wzr, [x2, 116]
+ str wzr, [x19, 2688]
+ str wzr, [x19, 2692]
+ str wzr, [x19, 2696]
str wzr, [x19, 3236]
str wzr, [x19, 3244]
stp wzr, w0, [x3, 96]
mov w0, -1
stp wzr, wzr, [x3, 104]
- strh w0, [x19, 3320]
- strh w0, [x19, 3322]
+ strh w0, [x19, 234]
+ strh w0, [x19, 232]
mov w0, 32
strh w0, [x19, 3232]
mov w0, 128
strh w0, [x19, 3234]
strh wzr, [x19, 3362]
- ldrh w0, [x19, 110]
+ ldrh w0, [x19, 318]
lsl w0, w0, 1
bl ftl_malloc
- ldrh w1, [x19, 110]
+ ldrh w1, [x19, 318]
str x0, [x19, 3296]
mov w0, 12
mul w0, w1, w0
bl ftl_malloc
- ldrh w21, [x19, 36]
+ ldrh w21, [x19, 244]
str x0, [x19, 3312]
lsl w22, w21, 5
lsl w21, w21, 7
@@ -3151,8 +3214,8 @@ FtlMemInit:
mov w0, w22
bl ftl_malloc
str x0, [x19, 3280]
- ldrh w0, [x19, 36]
- ldrh w21, [x19, 114]
+ ldrh w0, [x19, 244]
+ ldrh w21, [x19, 322]
lsl w0, w0, 1
add w0, w0, 1
str w0, [x19, 3288]
@@ -3186,12 +3249,12 @@ FtlMemInit:
mov w0, w21
bl ftl_malloc
str x0, [x19, 3512]
- ldrh w0, [x19, 62]
+ ldrh w0, [x19, 270]
lsl w0, w0, 2
bl ftl_malloc
- ldrh w21, [x19, 116]
+ ldrh w21, [x19, 324]
str x0, [x19, 3520]
- ldrh w0, [x19, 36]
+ ldrh w0, [x19, 244]
mul w21, w21, w0
mov w0, w21
bl ftl_malloc
@@ -3199,12 +3262,12 @@ FtlMemInit:
lsl w0, w21, 2
bl ftl_malloc
str x0, [x19, 3536]
- ldrh w1, [x19, 116]
+ ldrh w1, [x19, 324]
ldr w0, [x19, 3288]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19, 3272]
- ldrh w0, [x19, 46]
+ ldrh w0, [x19, 254]
ubfiz w0, w0, 1, 15
strh w0, [x19, 3544]
and w0, w0, 65534
@@ -3216,18 +3279,18 @@ FtlMemInit:
strh w0, [x19, 3544]
lsl w0, w0, 9
bl ftl_malloc
- ldrh w21, [x19, 46]
+ ldrh w21, [x19, 254]
str x0, [x19, 3560]
add x0, x0, 32
- str x0, [x19, 2384]
+ str x0, [x19, 2608]
lsl w21, w21, 1
mov w0, w21
bl ftl_malloc
str x0, [x19, 3568]
mov w0, w21
bl ftl_malloc
- ldr w21, [x19, 132]
- str x0, [x19, 2376]
+ ldr w21, [x19, 340]
+ str x0, [x19, 80]
lsl w21, w21, 1
mov w0, w21
bl ftl_malloc
@@ -3235,55 +3298,55 @@ FtlMemInit:
mov w0, w21
bl ftl_malloc
str x0, [x19, 3584]
- ldrh w0, [x19, 46]
+ ldrh w0, [x19, 254]
lsr w0, w0, 3
add w0, w0, 4
bl ftl_malloc
str x0, [x19, 24]
- ldrh w0, [x19, 124]
+ ldrh w0, [x19, 332]
lsl w0, w0, 1
bl ftl_malloc
- str x0, [x19, 152]
- ldrh w0, [x19, 124]
+ str x0, [x19, 360]
+ ldrh w0, [x19, 332]
lsl w0, w0, 1
bl ftl_malloc
str x0, [x19, 3592]
- ldrh w0, [x19, 124]
+ ldrh w0, [x19, 332]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19, 3600]
- ldrh w0, [x19, 126]
+ ldrh w0, [x19, 334]
lsl w0, w0, 2
bl ftl_malloc
- ldrh w2, [x19, 126]
+ ldrh w2, [x19, 334]
mov w1, 0
str x0, [x19, 3608]
lsl w2, w2, 2
bl ftl_memset
- ldrh w0, [x19, 140]
+ ldrh w0, [x19, 348]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19, 3616]
- ldr w0, [x19, 132]
+ ldr w0, [x19, 340]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19, 3624]
- ldrh w0, [x19, 142]
+ ldrh w0, [x19, 350]
lsl w0, w0, 4
bl ftl_malloc
- ldrh w1, [x19, 142]
- str x0, [x19, 2568]
- ldrh w0, [x19, 114]
+ ldrh w1, [x19, 350]
+ str x0, [x19, 2616]
+ ldrh w0, [x19, 322]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19, 3632]
- ldrh w1, [x19, 46]
+ ldrh w1, [x19, 254]
mov w0, 6
mul w0, w1, w0
bl ftl_malloc
- str x0, [x19, 2360]
- ldrh w0, [x19, 102]
- ldrh w1, [x19, 58]
+ str x0, [x19, 2568]
+ ldrh w0, [x19, 310]
+ ldrh w1, [x19, 266]
add w0, w0, 31
asr w0, w0, 5
strh w0, [x19, 3640]
@@ -3291,10 +3354,10 @@ FtlMemInit:
lsl w0, w0, 2
bl ftl_malloc
ldrh w4, [x19, 3640]
- add x5, x19, 200
- ldrh w6, [x19, 58]
+ add x5, x19, 408
+ ldrh w6, [x19, 266]
mov x1, 1
- str x0, [x19, 192]
+ str x0, [x19, 400]
mov w2, w4
mov x0, x20
.L373:
@@ -3303,7 +3366,7 @@ FtlMemInit:
mov w2, 8
add x4, x0, :lo12:.LANCHOR0
sub w2, w2, w1
- add x4, x4, 160
+ add x4, x4, 368
add x2, x2, 1
mov x3, 0
.L375:
@@ -3317,8 +3380,8 @@ FtlMemInit:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 216
- adrp x0, .LC85
- add x0, x0, :lo12:.LC85
+ adrp x0, .LC91
+ add x0, x0, :lo12:.LC91
bl sftl_printk
mov w0, -1
.L372:
@@ -3327,7 +3390,7 @@ FtlMemInit:
ldp x29, x30, [sp], 48
ret
.L374:
- ldr x3, [x19, 192]
+ ldr x3, [x19, 400]
add w1, w1, 1
add x3, x3, x2, uxtw 2
add w2, w2, w4
@@ -3345,15 +3408,15 @@ FtlMemInit:
cbz x2, .L379
ldr x2, [x1, 3624]
cbz x2, .L379
- ldr x2, [x1, 2568]
+ ldr x2, [x1, 2616]
cbz x2, .L379
ldr x2, [x1, 3632]
cbz x2, .L379
- ldr x2, [x1, 2360]
+ ldr x2, [x1, 2568]
cbz x2, .L379
- ldr x2, [x1, 192]
+ ldr x2, [x1, 400]
cbz x2, .L379
- ldr x1, [x1, 2376]
+ ldr x1, [x1, 80]
cbz x1, .L379
add x1, x0, :lo12:.LANCHOR0
ldr x2, [x1, 3296]
@@ -3391,11 +3454,11 @@ FtlMemInit:
cbz x1, .L379
ldr x1, [x0, 3272]
cbz x1, .L379
- ldr x1, [x0, 2384]
+ ldr x1, [x0, 2608]
cbz x1, .L379
ldr x1, [x0, 3552]
cbz x1, .L379
- ldr x0, [x0, 152]
+ ldr x0, [x0, 360]
cbz x0, .L379
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
@@ -3422,10 +3485,10 @@ FtlBbt2Bitmap:
stp x19, x20, [sp, 16]
adrp x20, .LANCHOR1
add x20, x20, :lo12:.LANCHOR1
- adrp x24, .LC1
+ adrp x24, .LC8
add x20, x20, 232
ldrh w2, [x0, 3640]
- add x24, x24, :lo12:.LC1
+ add x24, x24, :lo12:.LC8
mov x19, 0
mov x22, x1
mov x0, x22
@@ -3438,7 +3501,7 @@ FtlBbt2Bitmap:
cmp w0, w1
beq .L474
add x1, x21, :lo12:.LANCHOR0
- ldrh w1, [x1, 102]
+ ldrh w1, [x1, 310]
cmp w1, w0
bhi .L476
mov w2, 74
@@ -3474,7 +3537,7 @@ FtlBbtMemInit:
mov w1, -1
add x29, sp, 0
mov w2, 16
- add x0, x0, 172
+ add x0, x0, 380
strh w1, [x0, -12]
mov w1, 255
strh wzr, [x0, -6]
@@ -3492,11 +3555,11 @@ FtlFreeSysBlkQueueInit:
mov w2, 2048
add x29, sp, 0
mov w1, 0
- strh w0, [x3, 256]
- add x0, x3, 264
- strh wzr, [x3, 258]
- strh wzr, [x3, 260]
- strh wzr, [x3, 262]
+ strh w0, [x3, 464]
+ add x0, x3, 472
+ strh wzr, [x3, 466]
+ strh wzr, [x3, 468]
+ strh wzr, [x3, 470]
bl ftl_memset
mov w0, 0
ldp x29, x30, [sp], 16
@@ -3525,10 +3588,10 @@ ftl_free_no_use_map_blk:
ldrh w1, [x19, 6]
cmp w1, w0
bhi .L490
- adrp x0, .LANCHOR0+108
+ adrp x0, .LANCHOR0+316
mov w23, 0
mov w20, 0
- ldrh w1, [x0, #:lo12:.LANCHOR0+108]
+ ldrh w1, [x0, #:lo12:.LANCHOR0+316]
ldrh w0, [x19]
strh w1, [x21, x0, lsl 1]
ldrh w24, [x21]
@@ -3613,12 +3676,12 @@ FtlL2PDataInit:
str x19, [sp, 16]
add x19, x0, :lo12:.LANCHOR0
ldr x0, [x19, 3584]
- ldr w2, [x19, 132]
+ ldr w2, [x19, 340]
lsl w2, w2, 1
bl ftl_memset
- ldrh w0, [x19, 142]
+ ldrh w0, [x19, 350]
mov w1, 255
- ldrh w2, [x19, 114]
+ ldrh w2, [x19, 322]
mul w2, w2, w0
ldr x0, [x19, 3632]
bl ftl_memset
@@ -3626,20 +3689,20 @@ FtlL2PDataInit:
mov w1, 0
mov w5, -1
.L507:
- ldrh w2, [x0, 142]
+ ldrh w2, [x0, 350]
cmp w2, w1
bhi .L508
mov w2, -1
strh w2, [x0, 3650]
strh w2, [x0, 3648]
add x1, x0, 3648
- ldr w2, [x0, 132]
+ ldr w2, [x0, 340]
strh w2, [x0, 3658]
mov w2, -3902
strh w2, [x0, 3652]
ldrh w2, [x0, 3712]
strh w2, [x0, 3656]
- ldrh w2, [x0, 140]
+ ldrh w2, [x0, 348]
strh w2, [x0, 3654]
ldr x2, [x0, 3576]
str x2, [x0, 3664]
@@ -3653,16 +3716,16 @@ FtlL2PDataInit:
ldp x29, x30, [sp], 32
ret
.L508:
- ldr x3, [x0, 2568]
+ ldr x3, [x0, 2616]
ubfiz x2, x1, 4, 16
add x3, x3, x2
str wzr, [x3, 4]
- ldr x3, [x0, 2568]
+ ldr x3, [x0, 2616]
strh w5, [x3, x2]
- ldr x3, [x0, 2568]
+ ldr x3, [x0, 2616]
ldr x4, [x0, 3632]
add x3, x3, x2
- ldrh w2, [x0, 114]
+ ldrh w2, [x0, 322]
mul w2, w2, w1
add w1, w1, 1
and w1, w1, 65535
@@ -3686,26 +3749,26 @@ FtlVariablesInit:
strh w0, [x19, 3714]
mov w0, -1
str w0, [x19, 3724]
- ldr x0, [x19, 152]
- ldrh w2, [x19, 124]
- strh wzr, [x19, 148]
+ ldr x0, [x19, 360]
+ ldrh w2, [x19, 332]
+ strh wzr, [x19, 356]
str wzr, [x19, 3716]
lsl w2, w2, 1
str wzr, [x19, 3720]
bl ftl_memset
- ldr x0, [x19, 2384]
+ ldr x0, [x19, 2608]
mov w1, 0
- ldrh w2, [x19, 46]
+ ldrh w2, [x19, 254]
lsl w2, w2, 1
bl ftl_memset
ldr x0, [x19, 3552]
mov w1, 0
- ldrh w2, [x19, 46]
+ ldrh w2, [x19, 254]
lsl w2, w2, 1
bl ftl_memset
mov w2, 48
mov w1, 0
- add x0, x19, 2312
+ add x0, x19, 2520
bl ftl_memset
mov w2, 512
mov w1, 0
@@ -3730,27 +3793,27 @@ SupperBlkListInit:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
str x23, [sp, 48]
- add x23, x19, 64
+ add x23, x19, 272
stp x21, x22, [sp, 32]
mov w20, 0
mov w22, 0
- ldrh w2, [x19, 46]
+ ldrh w2, [x19, 254]
mov w21, 0
mul w2, w2, w0
- ldr x0, [x19, 2360]
+ ldr x0, [x19, 2568]
bl ftl_memset
- strh wzr, [x19, 2400]
- strh wzr, [x19, 2416]
- str xzr, [x19, 2368]
- str xzr, [x19, 2392]
- str xzr, [x19, 2408]
+ strh wzr, [x19, 2592]
+ strh wzr, [x19, 236]
+ str xzr, [x19, 2576]
+ str xzr, [x19, 2584]
+ str xzr, [x19, 2600]
.L513:
- ldrh w0, [x19, 44]
+ ldrh w0, [x19, 252]
cmp w20, w0
bcs .L520
- ldrh w8, [x19, 36]
+ ldrh w8, [x19, 244]
mov x6, 0
- ldrh w7, [x19, 106]
+ ldrh w7, [x19, 314]
mov w5, 0
b .L521
.L515:
@@ -3770,20 +3833,20 @@ SupperBlkListInit:
mov w0, 32768
sdiv w5, w0, w5
.L517:
- ldr x1, [x19, 2360]
+ ldr x1, [x19, 2568]
mov w0, 6
umaddl x0, w20, w0, x1
strh w5, [x0, 4]
- ldrh w0, [x19, 2424]
+ ldrh w0, [x19, 32]
cmp w0, w20
beq .L518
- ldrh w0, [x19, 2472]
+ ldrh w0, [x19, 88]
cmp w0, w20
beq .L518
- ldrh w0, [x19, 2520]
+ ldrh w0, [x19, 136]
cmp w0, w20
beq .L518
- ldr x1, [x19, 2376]
+ ldr x1, [x19, 80]
ubfiz x0, x20, 1, 16
ldrh w0, [x1, x0]
cbnz w0, .L519
@@ -3796,7 +3859,7 @@ SupperBlkListInit:
and w20, w20, 65535
b .L513
.L516:
- ldr x1, [x19, 2376]
+ ldr x1, [x19, 80]
ubfiz x0, x20, 1, 16
mov w2, -1
strh w2, [x1, x0]
@@ -3808,17 +3871,17 @@ SupperBlkListInit:
bl INSERT_DATA_LIST
b .L518
.L520:
- strh w21, [x19, 2400]
+ strh w21, [x19, 2592]
add w21, w21, w22
- strh w22, [x19, 2416]
+ strh w22, [x19, 236]
cmp w21, w0
ble .L522
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2216
+ adrp x0, .LC8
+ mov w2, 2210
add x1, x1, 248
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
.L522:
mov w0, 0
@@ -3839,12 +3902,12 @@ FtlGcPageVarInit:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
ldr x0, [x19, 3296]
- ldrh w2, [x19, 110]
+ ldrh w2, [x19, 318]
strh wzr, [x19, 3292]
strh wzr, [x19, 3304]
lsl w2, w2, 1
bl ftl_memset
- ldrh w2, [x19, 110]
+ ldrh w2, [x19, 318]
mov w0, 12
mov w1, 255
mul w2, w2, w0
@@ -3930,15 +3993,15 @@ FlashReadPages:
stp x25, x26, [sp, 64]
add x22, x22, :lo12:.LANCHOR1
str x27, [sp, 80]
- adrp x23, .LC1
+ adrp x24, .LC8
mov x19, x0
- add x24, x0, x1
+ add x23, x0, x1
ldrh w25, [x2, 12]
add x22, x22, 272
- add x23, x23, :lo12:.LC1
+ add x24, x24, :lo12:.LC8
.L536:
- cmp x24, x19
- bne .L547
+ cmp x23, x19
+ bne .L549
ldp x19, x20, [sp, 16]
mov w0, 0
ldp x21, x22, [sp, 32]
@@ -3947,7 +4010,7 @@ FlashReadPages:
ldr x27, [sp, 80]
ldp x29, x30, [sp], 112
ret
-.L547:
+.L549:
ldr x0, [x19, 8]
cbz x0, .L537
ldr x0, [x19, 16]
@@ -3955,7 +4018,7 @@ FlashReadPages:
.L537:
mov w2, 96
mov x1, x22
- mov x0, x23
+ mov x0, x24
bl sftl_printk
.L538:
ldr w0, [x19, 4]
@@ -3997,14 +4060,14 @@ FlashReadPages:
blr x4
cmn w0, #1
beq .L544
- ldr x2, [x19, 16]
- ldr w1, [x2, 12]
- cmn w1, #1
+ ldr x1, [x19, 16]
+ ldr w2, [x1, 12]
+ cmn w2, #1
bne .L545
- ldr w1, [x2, 8]
- cmn w1, #1
+ ldr w2, [x1, 8]
+ cmn w2, #1
bne .L545
- ldr w1, [x2]
+ ldr w1, [x1]
cmn w1, #1
beq .L545
.L544:
@@ -4013,10 +4076,35 @@ FlashReadPages:
.L545:
ldr w1, [x19]
cmn w1, #1
- beq .L543
+ beq .L546
cmp w0, 256
- bne .L543
+ bne .L546
str w0, [x19]
+.L546:
+ ldr w3, [x19]
+ cmp w3, 256
+ ccmn w3, #1, 4, ne
+ bne .L543
+ ldr w1, [x19, 4]
+ adrp x0, .LC92
+ ldr w2, [x29, 108]
+ add x0, x0, :lo12:.LC92
+ bl sftl_printk
+ ldr x1, [x19, 8]
+ cbz x1, .L548
+ mov w3, 4
+ adrp x0, .LC93
+ mov w2, w3
+ add x0, x0, :lo12:.LC93
+ bl rknand_print_hex
+.L548:
+ ldr x1, [x19, 16]
+ cbz x1, .L543
+ mov w3, 4
+ adrp x0, .LC94
+ mov w2, w3
+ add x0, x0, :lo12:.LC94
+ bl rknand_print_hex
.L543:
add x1, x21, :lo12:.LANCHOR0
ldr x0, [x1, 3504]
@@ -4025,7 +4113,7 @@ FlashReadPages:
ldr x0, [x19, 8]
cmp x20, x0
beq .L540
- ldrh w2, [x1, 62]
+ ldrh w2, [x1, 270]
mov x1, x20
lsl w2, w2, 9
bl ftl_memcpy
@@ -4040,7 +4128,7 @@ FtlLoadFactoryBbt:
add x0, x0, :lo12:.LANCHOR0
add x29, sp, 0
stp x21, x22, [sp, 32]
- add x22, x0, 172
+ add x22, x0, 380
stp x25, x26, [sp, 64]
mov w21, 0
stp x19, x20, [sp, 16]
@@ -4052,10 +4140,10 @@ FtlLoadFactoryBbt:
ldr x1, [x0, 3464]
ldr x24, [x0, 3528]
stp x1, x24, [x23, 8]
-.L565:
- ldrh w0, [x19, 58]
+.L576:
+ ldrh w0, [x19, 266]
cmp w21, w0
- bcc .L570
+ bcc .L581
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -4063,17 +4151,17 @@ FtlLoadFactoryBbt:
ldp x25, x26, [sp, 64]
ldp x29, x30, [sp], 80
ret
-.L570:
- ldrh w20, [x19, 102]
+.L581:
+ ldrh w20, [x19, 310]
mov w0, -1
strh w0, [x22]
-.L567:
- ldrh w0, [x19, 102]
+.L578:
+ ldrh w0, [x19, 310]
sub w20, w20, #1
and w20, w20, 65535
sub w1, w0, #16
cmp w20, w1
- ble .L568
+ ble .L579
madd w0, w0, w21, w20
mov w2, 1
mov w1, w2
@@ -4083,15 +4171,15 @@ FtlLoadFactoryBbt:
bl FlashReadPages
ldr w0, [x25]
cmn w0, #1
- beq .L567
+ beq .L578
ldrh w0, [x24]
cmp w0, w26
- bne .L567
+ bne .L578
strh w20, [x22]
-.L568:
+.L579:
add w21, w21, 1
add x22, x22, 2
- b .L565
+ b .L576
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
.align 2
.global FtlGetLastWrittenPage
@@ -4106,9 +4194,9 @@ FtlGetLastWrittenPage:
adrp x1, .LANCHOR0
stp x21, x22, [sp, 32]
add x2, x1, :lo12:.LANCHOR0
- bne .L576
- ldrh w19, [x2, 108]
-.L577:
+ bne .L587
+ ldrh w19, [x2, 316]
+.L588:
add x1, x1, :lo12:.LANCHOR0
sub w19, w19, #1
sxth w19, w19
@@ -4125,23 +4213,23 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x29, 96]
cmn w0, #1
- bne .L578
+ bne .L589
mov w22, 0
mov w24, 2
-.L579:
+.L590:
cmp w22, w19
- ble .L582
-.L578:
+ ble .L593
+.L589:
mov w0, w19
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
ldp x29, x30, [sp], 160
ret
-.L576:
- ldrh w19, [x2, 106]
- b .L577
-.L582:
+.L587:
+ ldrh w19, [x2, 314]
+ b .L588
+.L593:
add w20, w22, w19
mov w2, w23
mov w1, 1
@@ -4153,20 +4241,20 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x29, 96]
cmn w0, #1
- bne .L580
+ bne .L591
ldr w0, [x29, 100]
cmn w0, #1
- bne .L580
+ bne .L591
ldr w0, [x29, 64]
cmn w0, #1
- beq .L580
+ beq .L591
sub w19, w20, #1
sxth w19, w19
- b .L579
-.L580:
+ b .L590
+.L591:
add w20, w20, 1
sxth w22, w20
- b .L579
+ b .L590
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
.align 2
.global FtlScanSysBlk
@@ -4186,49 +4274,49 @@ FtlScanSysBlk:
add x25, x25, :lo12:.LANCHOR1
ldr x0, [x19, 3624]
add x25, x25, 288
- ldr w2, [x19, 132]
+ ldr w2, [x19, 340]
strh wzr, [x19, 3712]
- strh wzr, [x19, 148]
+ strh wzr, [x19, 356]
lsl w2, w2, 2
bl ftl_memset
ldr x0, [x19, 3576]
mov w1, 0
- ldr w2, [x19, 132]
+ ldr w2, [x19, 340]
lsl w2, w2, 1
bl ftl_memset
ldr x0, [x19, 3600]
mov w1, 0
- ldrh w2, [x19, 124]
+ ldrh w2, [x19, 332]
lsl w2, w2, 2
bl ftl_memset
- ldr x0, [x19, 152]
+ ldr x0, [x19, 360]
mov w1, 0
- ldrh w2, [x19, 124]
+ ldrh w2, [x19, 332]
lsl w2, w2, 1
bl ftl_memset
mov w2, 16
mov w1, 255
- add x0, x19, 2656
+ add x0, x19, 2704
bl ftl_memset
- ldrh w24, [x19, 44]
-.L588:
- ldrh w0, [x19, 46]
+ ldrh w24, [x19, 252]
+.L599:
+ ldrh w0, [x19, 254]
cmp w0, w24
- bls .L628
- ldrh w9, [x19, 36]
+ bls .L639
+ ldrh w9, [x19, 244]
mov x5, 0
- ldrh w8, [x19, 116]
+ ldrh w8, [x19, 324]
mov w20, 0
- add x7, x19, 64
+ add x7, x19, 272
mov w6, 4
- b .L629
-.L590:
+ b .L640
+.L601:
ldrb w0, [x7, x5]
mov w1, w24
bl V2P_block
and w4, w0, 65535
bl FtlBbmIsBadBlock
- cbnz w0, .L589
+ cbnz w0, .L600
ldr x0, [x19, 3440]
ubfiz x2, x20, 5, 16
lsl w4, w4, 10
@@ -4245,25 +4333,25 @@ FtlScanSysBlk:
sdiv w0, w0, w6
add x0, x2, x0, sxtw 2
str x0, [x1, 16]
-.L589:
+.L600:
add x5, x5, 1
-.L629:
+.L640:
cmp w9, w5, uxth
- bhi .L590
- cbnz w20, .L591
-.L627:
+ bhi .L601
+ cbnz w20, .L602
+.L638:
add w24, w24, 1
and w24, w24, 65535
- b .L588
-.L591:
+ b .L599
+.L602:
ldr x0, [x19, 3440]
mov w1, w20
mov w2, 1
ubfiz x20, x20, 5, 16
mov x23, 0
- add x27, x19, 2656
+ add x27, x19, 2704
bl FlashReadPages
-.L626:
+.L637:
ldr x0, [x19, 3440]
add x1, x0, x23
ldr w0, [x0, x23]
@@ -4271,10 +4359,10 @@ FtlScanSysBlk:
cmn w0, #1
ldr x26, [x1, 16]
ubfx x22, x22, 10, 16
- bne .L594
+ bne .L605
mov w28, 16
mov w3, 65535
-.L596:
+.L607:
ldr x0, [x19, 3440]
mov w2, 1
str w3, [x29, 108]
@@ -4290,74 +4378,74 @@ FtlScanSysBlk:
ldr w3, [x29, 108]
cmp w0, w3
ldr x0, [x19, 3440]
- bne .L593
+ bne .L604
mov w1, -1
str w1, [x0, x23]
ldr x0, [x19, 3440]
ldr w0, [x0, x23]
cmp w0, w1
- bne .L594
-.L595:
+ bne .L605
+.L606:
mov w1, 1
- b .L666
-.L593:
+ b .L677
+.L604:
ldr w0, [x0, x23]
cmn w0, #1
- bne .L594
+ bne .L605
sub w28, w28, #1
ands w28, w28, 65535
- bne .L596
- b .L595
-.L594:
- ldr w1, [x19, 2620]
+ bne .L607
+ b .L606
+.L605:
+ ldr w1, [x19, 2668]
ldr w0, [x26, 4]
cmn w1, #1
- beq .L597
+ beq .L608
cmp w1, w0
- bhi .L598
-.L597:
+ bhi .L609
+.L608:
cmn w0, #1
- beq .L598
+ beq .L609
add w1, w0, 1
- str w1, [x19, 2620]
-.L598:
+ str w1, [x19, 2668]
+.L609:
ldrh w1, [x26]
mov w2, 61604
cmp w1, w2
- beq .L600
- bhi .L601
+ beq .L611
+ bhi .L612
mov w0, 61574
cmp w1, w0
- beq .L602
-.L599:
+ beq .L613
+.L610:
add x23, x23, 32
cmp x20, x23
- bne .L626
- b .L627
-.L601:
+ bne .L637
+ b .L638
+.L612:
mov w0, 61634
cmp w1, w0
- beq .L603
+ beq .L614
mov w0, 65535
cmp w1, w0
- bne .L599
+ bne .L610
mov w1, 0
-.L666:
+.L677:
mov w0, w22
bl FtlFreeSysBlkQueueIn
- b .L599
-.L603:
+ b .L610
+.L614:
ldrh w1, [x19, 3712]
- ldr w0, [x19, 132]
+ ldr w0, [x19, 340]
cmp w1, w0
- bls .L605
- adrp x0, .LC1
+ bls .L616
+ adrp x0, .LC8
mov w2, 1225
mov x1, x25
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L605:
- ldr w3, [x19, 132]
+.L616:
+ ldr w3, [x19, 340]
ldrh w1, [x19, 3712]
and w2, w3, 65535
ldr x4, [x19, 3624]
@@ -4366,52 +4454,52 @@ FtlScanSysBlk:
sub w2, w2, #1
sxth x0, w0
sxth w2, w2
-.L606:
+.L617:
cmp w0, w2
- bgt .L612
- tbz w0, #31, .L646
- b .L599
-.L612:
+ bgt .L623
+ tbz w0, #31, .L657
+ b .L610
+.L623:
sxtw x5, w0
ldr w8, [x26, 4]
lsl x6, x5, 2
ldr w7, [x4, x6]
cmp w8, w7
- bls .L607
+ bls .L618
ldr w2, [x4]
- cbnz w2, .L608
+ cbnz w2, .L619
cmp w3, w1
- beq .L608
+ beq .L619
add w1, w1, 1
strh w1, [x19, 3712]
-.L608:
+.L619:
mov w1, 0
-.L609:
+.L620:
cmp w1, w0
- bne .L610
+ bne .L621
ldr x1, [x19, 3624]
ldr w2, [x26, 4]
str w2, [x1, x6]
ldr x1, [x19, 3576]
strh w22, [x1, x5, lsl 1]
- tbnz w0, #31, .L599
+ tbnz w0, #31, .L610
ldrh w1, [x19, 3712]
- ldr w2, [x19, 132]
+ ldr w2, [x19, 340]
sub w2, w2, w1
sub w2, w2, #1
cmp w0, w2, sxth
- bgt .L599
-.L646:
+ bgt .L610
+.L657:
add w1, w1, 1
strh w1, [x19, 3712]
ldr x1, [x19, 3624]
ldr w2, [x26, 4]
str w2, [x1, x0, lsl 2]
ldr x1, [x19, 3576]
-.L664:
+.L675:
strh w22, [x1, x0, lsl 1]
- b .L599
-.L610:
+ b .L610
+.L621:
ldr x4, [x19, 3624]
sxtw x2, w1
lsl x3, x2, 2
@@ -4425,69 +4513,69 @@ FtlScanSysBlk:
add x4, x3, x2
ldrh w4, [x4, 2]
strh w4, [x3, x2]
- b .L609
-.L607:
+ b .L620
+.L618:
sub w0, w0, #1
sxth x0, w0
- b .L606
-.L602:
- ldrh w1, [x19, 148]
- ldrh w0, [x19, 124]
+ b .L617
+.L613:
+ ldrh w1, [x19, 356]
+ ldrh w0, [x19, 332]
cmp w1, w0
- bls .L615
- adrp x0, .LC1
+ bls .L626
+ adrp x0, .LC8
mov w2, 1266
mov x1, x25
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L615:
- ldrh w3, [x19, 124]
- ldrh w1, [x19, 148]
+.L626:
+ ldrh w3, [x19, 332]
+ ldrh w1, [x19, 356]
sub w2, w3, #1
ldr x4, [x19, 3600]
sxth x0, w2
sub w2, w2, w1
-.L616:
+.L627:
cmp w0, w2
- ble .L621
+ ble .L632
sxtw x5, w0
ldr w8, [x26, 4]
lsl x6, x5, 2
ldr w7, [x4, x6]
cmp w8, w7
- bls .L617
+ bls .L628
ldr w2, [x4]
- cbnz w2, .L618
+ cbnz w2, .L629
cmp w3, w1
- beq .L618
+ beq .L629
add w1, w1, 1
- strh w1, [x19, 148]
-.L618:
+ strh w1, [x19, 356]
+.L629:
mov w1, 0
-.L619:
+.L630:
cmp w1, w0
- bne .L620
+ bne .L631
ldr x1, [x19, 3600]
ldr w2, [x26, 4]
str w2, [x1, x6]
- ldr x1, [x19, 152]
+ ldr x1, [x19, 360]
strh w22, [x1, x5, lsl 1]
-.L621:
- tbnz w0, #31, .L599
- ldrh w1, [x19, 124]
- ldrh w2, [x19, 148]
+.L632:
+ tbnz w0, #31, .L610
+ ldrh w1, [x19, 332]
+ ldrh w2, [x19, 356]
sub w1, w1, #1
sub w1, w1, w2
cmp w0, w1, sxth
- bgt .L599
+ bgt .L610
ldr x1, [x19, 3600]
add w2, w2, 1
- strh w2, [x19, 148]
+ strh w2, [x19, 356]
ldr w2, [x26, 4]
str w2, [x1, x0, lsl 2]
- ldr x1, [x19, 152]
- b .L664
-.L620:
+ ldr x1, [x19, 360]
+ b .L675
+.L631:
ldr x4, [x19, 3600]
sxtw x2, w1
lsl x3, x2, 2
@@ -4497,66 +4585,66 @@ FtlScanSysBlk:
sxth w1, w1
ldr w7, [x7, 4]
str w7, [x4, x3]
- ldr x3, [x19, 152]
+ ldr x3, [x19, 360]
add x4, x3, x2
ldrh w4, [x4, 2]
strh w4, [x3, x2]
- b .L619
-.L617:
+ b .L630
+.L628:
sub w0, w0, #1
sxth x0, w0
- b .L616
-.L600:
+ b .L627
+.L611:
ldrh w2, [x27]
mov w1, 65535
cmp w2, w1
- bne .L623
+ bne .L634
strh w22, [x27]
-.L665:
+.L676:
str w0, [x27, 8]
- b .L599
-.L623:
+ b .L610
+.L634:
ldrh w0, [x27, 4]
cmp w0, w1
- beq .L624
+ beq .L635
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L624:
+.L635:
ldr w0, [x26, 4]
ldr w1, [x27, 8]
cmp w1, w0
- bcs .L625
+ bcs .L636
ldrh w0, [x27]
strh w0, [x27, 4]
strh w22, [x27]
ldr w0, [x26, 4]
- b .L665
-.L625:
+ b .L676
+.L636:
strh w22, [x27, 4]
- b .L599
-.L628:
+ b .L610
+.L639:
ldr x1, [x19, 3576]
ldrh w0, [x1]
- cbz w0, .L630
-.L633:
+ cbz w0, .L641
+.L644:
add x0, x21, :lo12:.LANCHOR0
- ldr x1, [x0, 152]
+ ldr x1, [x0, 360]
ldrh w2, [x1]
- cbz w2, .L631
-.L632:
+ cbz w2, .L642
+.L643:
add x21, x21, :lo12:.LANCHOR0
ldrh w1, [x21, 3712]
- ldr w0, [x21, 132]
+ ldr w0, [x21, 340]
cmp w1, w0
- bls .L662
+ bls .L673
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1391
add x1, x1, 288
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L662:
+.L673:
ldp x19, x20, [sp, 16]
mov w0, 0
ldp x21, x22, [sp, 32]
@@ -4565,22 +4653,22 @@ FtlScanSysBlk:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 112
ret
-.L630:
+.L641:
ldrh w0, [x19, 3712]
- cbz w0, .L633
- ldr w2, [x19, 132]
+ cbz w0, .L644
+ ldr w2, [x19, 340]
mov w0, 0
-.L634:
+.L645:
cmp w0, w2
- bcs .L633
+ bcs .L644
ldrh w3, [x1, w0, sxtw 1]
- cbz w3, .L635
+ cbz w3, .L646
mov w1, w0
add x2, x21, :lo12:.LANCHOR0
-.L636:
- ldr w3, [x2, 132]
+.L647:
+ ldr w3, [x2, 340]
cmp w1, w3
- bcs .L633
+ bcs .L644
ldr x5, [x2, 3576]
sxtw x6, w1
lsl x4, x6, 1
@@ -4595,28 +4683,28 @@ FtlScanSysBlk:
str w6, [x5, x3, lsl 2]
ldr x3, [x2, 3576]
strh wzr, [x3, x4]
- b .L636
-.L635:
+ b .L647
+.L646:
add w0, w0, 1
sxth w0, w0
- b .L634
-.L631:
- ldrh w2, [x0, 148]
- cbz w2, .L632
- ldrh w2, [x0, 124]
+ b .L645
+.L642:
+ ldrh w2, [x0, 356]
+ cbz w2, .L643
+ ldrh w2, [x0, 332]
mov w0, 0
-.L641:
+.L652:
mov w6, w0
cmp w0, w2
- bge .L632
+ bge .L643
ldrh w3, [x1, w0, sxtw 1]
- cbz w3, .L642
+ cbz w3, .L653
add x1, x21, :lo12:.LANCHOR0
-.L643:
- ldrh w2, [x1, 124]
+.L654:
+ ldrh w2, [x1, 332]
cmp w0, w2
- bge .L632
- ldr x4, [x1, 152]
+ bge .L643
+ ldr x4, [x1, 360]
sxtw x5, w0
lsl x3, x5, 1
sub w2, w0, w6
@@ -4628,13 +4716,13 @@ FtlScanSysBlk:
ldr x4, [x1, 3600]
ldr w5, [x4, x5, lsl 2]
str w5, [x4, x2, lsl 2]
- ldr x2, [x1, 152]
+ ldr x2, [x1, 360]
strh wzr, [x2, x3]
- b .L643
-.L642:
+ b .L654
+.L653:
add w0, w0, 1
sxth w0, w0
- b .L641
+ b .L652
.size FtlScanSysBlk, .-FtlScanSysBlk
.align 2
.global FtlLoadBbt
@@ -4653,14 +4741,14 @@ FtlLoadBbt:
ldr x22, [x23, 3528]
stp x0, x22, [x21, 8]
bl FtlBbtMemInit
- ldrh w20, [x23, 102]
+ ldrh w20, [x23, 310]
sub w20, w20, #1
and w20, w20, 65535
-.L668:
- ldrh w0, [x23, 102]
+.L679:
+ ldrh w0, [x23, 310]
sub w0, w0, #16
cmp w20, w0
- ble .L671
+ ble .L682
lsl w0, w20, 10
mov w2, 1
str w0, [x21, 4]
@@ -4669,7 +4757,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- bne .L669
+ bne .L680
ldr w0, [x21, 4]
mov w2, 1
mov w1, w2
@@ -4677,27 +4765,27 @@ FtlLoadBbt:
str w0, [x21, 4]
mov x0, x21
bl FlashReadPages
-.L669:
+.L680:
ldr w0, [x21]
cmn w0, #1
- beq .L670
+ beq .L681
ldrh w0, [x22]
cmp w0, w24
- bne .L670
+ bne .L681
ldr w1, [x22, 4]
- str w1, [x23, 168]
- strh w20, [x23, 160]
+ str w1, [x23, 376]
+ strh w20, [x23, 368]
ldrh w1, [x22, 8]
- strh w1, [x23, 164]
-.L671:
+ strh w1, [x23, 372]
+.L682:
add x21, x19, :lo12:.LANCHOR0
mov w0, 65535
- ldrh w1, [x21, 160]
+ ldrh w1, [x21, 368]
cmp w1, w0
- beq .L685
- ldrh w1, [x21, 164]
+ beq .L696
+ ldrh w1, [x21, 372]
cmp w1, w0
- beq .L675
+ beq .L686
add x0, x21, 3728
lsl w1, w1, 10
mov w2, 1
@@ -4706,78 +4794,78 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21, 3728]
cmn w0, #1
- beq .L675
+ beq .L686
ldrh w1, [x22]
mov w0, 61649
cmp w1, w0
- bne .L675
- ldr w1, [x21, 168]
+ bne .L686
+ ldr w1, [x21, 376]
ldr w0, [x22, 4]
cmp w0, w1
- bls .L675
- str w0, [x21, 168]
- ldrh w1, [x21, 164]
+ bls .L686
+ str w0, [x21, 376]
+ ldrh w1, [x21, 372]
ldrh w0, [x22, 8]
- strh w1, [x21, 160]
- strh w0, [x21, 164]
-.L675:
+ strh w1, [x21, 368]
+ strh w0, [x21, 372]
+.L686:
add x20, x19, :lo12:.LANCHOR0
mov w1, 1
add x23, x20, 3728
mov w24, 61649
- ldrh w0, [x20, 160]
+ ldrh w0, [x20, 368]
bl FtlGetLastWrittenPage
sxth w21, w0
add w0, w0, 1
- strh w0, [x20, 162]
-.L677:
- tbz w21, #31, .L680
+ strh w0, [x20, 370]
+.L688:
+ tbz w21, #31, .L691
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 253
+ adrp x0, .LC8
+ mov w2, 251
add x1, x1, 304
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L679:
+.L690:
add x1, x19, :lo12:.LANCHOR0
ldrh w0, [x22, 10]
mov w2, 65535
- strh w0, [x1, 166]
+ strh w0, [x1, 374]
ldrh w0, [x22, 12]
cmp w0, w2
- beq .L682
- ldr w2, [x1, 32]
+ beq .L693
+ ldr w2, [x1, 240]
cmp w0, w2
- beq .L682
- ldrh w1, [x1, 46]
+ beq .L693
+ ldrh w1, [x1, 254]
lsr w1, w1, 2
cmp w2, w1
- bcs .L682
+ bcs .L693
cmp w0, w1
- bcs .L682
+ bcs .L693
bl FtlSysBlkNumInit
-.L682:
+.L693:
add x19, x19, :lo12:.LANCHOR0
mov w20, 0
- add x21, x19, 192
-.L683:
- ldrh w0, [x19, 58]
+ add x21, x19, 400
+.L694:
+ ldrh w0, [x19, 266]
cmp w20, w0
- bcc .L684
+ bcc .L695
mov w0, 0
-.L667:
+.L678:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
ldp x29, x30, [sp], 64
ret
-.L670:
+.L681:
sub w20, w20, #1
and w20, w20, 65535
- b .L668
-.L680:
- ldrh w0, [x20, 160]
+ b .L679
+.L691:
+ ldrh w0, [x20, 368]
mov w2, 1
mov w1, w2
orr w0, w21, w0, lsl 10
@@ -4788,15 +4876,15 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x23]
cmn w0, #1
- beq .L678
+ beq .L689
ldrh w0, [x22]
cmp w0, w24
- beq .L679
-.L678:
+ beq .L690
+.L689:
sub w21, w21, #1
sxth w21, w21
- b .L677
-.L684:
+ b .L688
+.L695:
ldrh w2, [x19, 3640]
ldr x0, [x19, 3736]
mul w1, w2, w20
@@ -4805,10 +4893,10 @@ FtlLoadBbt:
add x1, x0, x1, lsl 2
ldr x0, [x21], 8
bl ftl_memcpy
- b .L683
-.L685:
+ b .L694
+.L696:
mov w0, -1
- b .L667
+ b .L678
.size FtlLoadBbt, .-FtlLoadBbt
.align 2
.global FlashProgPages
@@ -4828,57 +4916,57 @@ FlashProgPages:
stp x27, x28, [sp, 80]
add x23, x23, :lo12:.LANCHOR1
stp x25, x26, [sp, 64]
- adrp x24, .LC1
+ adrp x24, .LC8
mov w27, w3
mov x19, x0
ldrh w25, [x2, 12]
mov x20, x0
add x23, x23, 320
- add x24, x24, :lo12:.LC1
+ add x24, x24, :lo12:.LC8
lsl w28, w25, 3
-.L698:
+.L709:
cmp x20, x22
- bne .L712
- cbz w27, .L706
- adrp x20, .LC86
- adrp x23, .LC87
- add x20, x20, :lo12:.LC86
- add x23, x23, :lo12:.LC87
- b .L733
-.L712:
+ bne .L723
+ cbz w27, .L717
+ adrp x20, .LC95
+ adrp x23, .LC96
+ add x20, x20, :lo12:.LC95
+ add x23, x23, :lo12:.LC96
+ b .L745
+.L723:
ldr x0, [x20, 8]
- cbz x0, .L699
+ cbz x0, .L710
ldr x0, [x20, 16]
- cbnz x0, .L700
-.L699:
- mov w2, 140
+ cbnz x0, .L711
+.L710:
+ mov w2, 148
mov x1, x23
mov x0, x24
bl sftl_printk
-.L700:
+.L711:
ldr w0, [x20, 4]
add x2, x29, 120
add x1, x29, 124
bl l2p_addr_tran.isra.0
ldr w0, [x29, 120]
cmp w0, 3
- bls .L701
-.L735:
+ bls .L712
+.L747:
mov w0, -1
str w0, [x20]
- b .L702
-.L701:
- cbnz w0, .L703
+ b .L713
+.L712:
+ cbnz w0, .L714
ldr w0, [x29, 124]
cmp w28, w0
- bls .L703
+ bls .L714
adrp x20, .LANCHOR1
add x20, x20, :lo12:.LANCHOR1
- adrp x21, .LC80
+ adrp x21, .LC86
add x20, x20, 320
- add x21, x21, :lo12:.LC80
- b .L732
-.L705:
+ add x21, x21, :lo12:.LC86
+ b .L744
+.L716:
ldr w2, [x19, 4]
mov w0, -1
str w0, [x19]
@@ -4889,20 +4977,20 @@ FlashProgPages:
ldr x1, [x19, -24]
mov w3, 16
mov w2, 4
- adrp x0, .LC81
- add x0, x0, :lo12:.LC81
+ adrp x0, .LC87
+ add x0, x0, :lo12:.LC87
bl rknand_print_hex
ldr x1, [x19, -16]
mov w3, 4
- adrp x0, .LC82
+ adrp x0, .LC88
mov w2, w3
- add x0, x0, :lo12:.LC82
+ add x0, x0, :lo12:.LC88
bl rknand_print_hex
-.L732:
+.L744:
cmp x19, x22
- bne .L705
+ bne .L716
bl dump_stack
-.L706:
+.L717:
ldp x19, x20, [sp, 16]
mov w0, 0
ldp x21, x22, [sp, 32]
@@ -4911,19 +4999,19 @@ FlashProgPages:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 160
ret
-.L703:
+.L714:
ldr x1, [x20, 8]
tst x1, 63
- beq .L719
+ beq .L731
add x0, x21, :lo12:.LANCHOR0
ldr x26, [x0, 3504]
cmp x1, x26
- beq .L707
- ldrh w2, [x0, 62]
+ beq .L718
+ ldrh w2, [x0, 270]
mov x0, x26
lsl w2, w2, 9
bl ftl_memcpy
-.L707:
+.L718:
add x0, x21, :lo12:.LANCHOR0
ldr w1, [x29, 124]
ldr x3, [x20, 16]
@@ -4931,13 +5019,13 @@ FlashProgPages:
ldr x5, [x0, 3384]
ldrb w0, [x29, 120]
blr x5
- cbnz w0, .L708
+ cbnz w0, .L719
str wzr, [x20]
-.L709:
+.L720:
add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x0, 14]
cmp w1, 4
- bne .L702
+ bne .L713
ldr x5, [x0, 3384]
add x2, x26, 2048
ldrb w0, [x29, 120]
@@ -4946,18 +5034,18 @@ FlashProgPages:
add w1, w25, w1
add x3, x3, 8
blr x5
- cbnz w0, .L735
-.L702:
+ cbnz w0, .L747
+.L713:
add x20, x20, 32
- b .L698
-.L719:
+ b .L709
+.L731:
mov x26, x1
- b .L707
-.L708:
+ b .L718
+.L719:
mov w0, -1
str w0, [x20]
- b .L709
-.L717:
+ b .L720
+.L729:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29, 108]
ldr x1, [x0, 3504]
@@ -4974,46 +5062,55 @@ FlashProgPages:
bl FlashReadPages
ldr w24, [x29, 128]
cmn w24, #1
- bne .L714
+ bne .L725
ldr w1, [x19, 4]
mov x0, x20
bl sftl_printk
str w24, [x19]
-.L714:
+.L725:
+ ldr w24, [x29, 128]
+ cmp w24, 256
+ bne .L726
+ ldr w1, [x19, 4]
+ mov x0, x23
+ bl sftl_printk
+ str w24, [x19]
+.L726:
ldr x0, [x19, 16]
- cbz x0, .L715
+ cbz x0, .L727
ldr w2, [x0]
add x0, x21, :lo12:.LANCHOR0
ldr x0, [x0, 3520]
ldr w3, [x0]
cmp w2, w3
- beq .L715
+ beq .L727
ldr w1, [x19, 4]
- mov x0, x23
+ adrp x0, .LC97
+ add x0, x0, :lo12:.LC97
bl sftl_printk
mov w0, -1
str w0, [x19]
-.L715:
+.L727:
ldr x0, [x19, 8]
- cbz x0, .L716
+ cbz x0, .L728
ldr w2, [x0]
add x0, x21, :lo12:.LANCHOR0
ldr x0, [x0, 3504]
ldr w3, [x0]
cmp w2, w3
- beq .L716
+ beq .L728
ldr w1, [x19, 4]
- adrp x0, .LC88
- add x0, x0, :lo12:.LC88
+ adrp x0, .LC98
+ add x0, x0, :lo12:.LC98
bl sftl_printk
mov w0, -1
str w0, [x19]
-.L716:
+.L728:
add x19, x19, 32
-.L733:
+.L745:
cmp x19, x22
- bne .L717
- b .L706
+ bne .L729
+ b .L717
.size FlashProgPages, .-FlashProgPages
.align 2
.global FtlLowFormatEraseBlock
@@ -5030,17 +5127,17 @@ FtlLowFormatEraseBlock:
stp x23, x24, [sp, 48]
and w22, w1, 255
stp x25, x26, [sp, 64]
- add x8, x5, 64
+ add x8, x5, 272
stp x27, x28, [sp, 80]
and w23, w0, 65535
mov w20, 0
mov w19, 0
str w23, [x5, 3436]
-.L737:
- ldrh w0, [x5, 36]
+.L749:
+ ldrh w0, [x5, 244]
cmp w0, w10
- bhi .L741
- cbz w20, .L736
+ bhi .L753
+ cbz w20, .L748
ldr x0, [x5, 3416]
mov w2, w20
mov w1, 0
@@ -5048,38 +5145,38 @@ FtlLowFormatEraseBlock:
mov x24, 0
add x25, x21, :lo12:.LANCHOR0
bl FlashEraseBlocks
-.L745:
+.L757:
ldr x0, [x25, 3416]
add x1, x0, x24
ldr w0, [x0, x24]
cmn w0, #1
- bne .L744
+ bne .L756
ldr w0, [x1, 4]
add w19, w19, 1
and w19, w19, 65535
lsr w0, w0, 10
bl FtlBbmMapBadBlock
-.L744:
+.L756:
add x24, x24, 32
cmp x24, x20
- bne .L745
- cbz w22, .L758
+ bne .L757
+ cbz w22, .L770
add x0, x21, :lo12:.LANCHOR0
mov w25, 1
- ldrh w26, [x0, 108]
-.L746:
+ ldrh w26, [x0, 316]
+.L758:
add x28, x21, :lo12:.LANCHOR0
mov w24, 0
- add x0, x28, 64
+ add x0, x28, 272
str x0, [x29, 104]
-.L754:
+.L766:
mov w5, 0
mov w20, 0
-.L747:
- ldrh w0, [x28, 36]
+.L759:
+ ldrh w0, [x28, 244]
cmp w0, w5
- bhi .L750
- cbz w20, .L736
+ bhi .L762
+ cbz w20, .L748
ldr x0, [x28, 3416]
mov w1, w20
mov w3, 1
@@ -5087,11 +5184,11 @@ FtlLowFormatEraseBlock:
mov x27, 0
bl FlashProgPages
ubfiz x1, x20, 5, 16
-.L753:
+.L765:
ldr x0, [x28, 3416]
add x3, x0, x27
ldr w0, [x0, x27]
- cbz w0, .L752
+ cbz w0, .L764
ldr w0, [x3, 4]
add w19, w19, 1
str x1, [x29, 96]
@@ -5099,38 +5196,38 @@ FtlLowFormatEraseBlock:
lsr w0, w0, 10
bl FtlBbmMapBadBlock
ldr x1, [x29, 96]
-.L752:
+.L764:
add x27, x27, 32
cmp x1, x27
- bne .L753
+ bne .L765
add w24, w24, 1
cmp w26, w24, uxth
- bhi .L754
+ bhi .L766
add x26, x21, :lo12:.LANCHOR0
mov x24, 0
-.L756:
- cbz w22, .L755
+.L768:
+ cbz w22, .L767
ldr x0, [x26, 3416]
add x1, x0, x24
ldr w0, [x0, x24]
- cbnz w0, .L755
+ cbnz w0, .L767
ldr w0, [x1, 4]
mov w1, 1
lsr w0, w0, 10
bl FtlFreeSysBlkQueueIn
-.L755:
+.L767:
add x24, x24, 32
cmp x24, x27
- bne .L756
+ bne .L768
cmp w23, 63
ccmp w22, 0, 0, hi
- beq .L736
+ beq .L748
add x21, x21, :lo12:.LANCHOR0
mov w2, w20
mov w1, w25
ldr x0, [x21, 3416]
bl FlashEraseBlocks
-.L736:
+.L748:
mov w0, w19
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -5139,7 +5236,7 @@ FtlLowFormatEraseBlock:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 112
ret
-.L741:
+.L753:
ldr x1, [x5, 3416]
ubfiz x0, x10, 5, 16
str wzr, [x1, x0]
@@ -5148,13 +5245,13 @@ FtlLowFormatEraseBlock:
bl V2P_block
and w6, w0, 65535
mov w7, w6
- cbz w22, .L738
+ cbz w22, .L750
bl IsBlkInVendorPart
- cbnz w0, .L739
-.L738:
+ cbnz w0, .L751
+.L750:
mov w0, w7
bl FtlBbmIsBadBlock
- cbnz w0, .L740
+ cbnz w0, .L752
ldr x0, [x5, 3416]
ubfiz x2, x20, 5, 16
lsl w6, w6, 10
@@ -5165,26 +5262,26 @@ FtlLowFormatEraseBlock:
add x1, x1, x2
ldr x2, [x5, 3536]
str x0, [x1, 8]
- ldrh w0, [x5, 116]
+ ldrh w0, [x5, 324]
mul w0, w0, w20
add w20, w20, 1
and w20, w20, 65535
sdiv w0, w0, w9
add x0, x2, x0, sxtw 2
str x0, [x1, 16]
-.L739:
+.L751:
add w10, w10, 1
and w10, w10, 65535
- b .L737
-.L740:
+ b .L749
+.L752:
add w19, w19, 1
and w19, w19, 65535
- b .L739
-.L758:
+ b .L751
+.L770:
mov w25, 0
mov w26, 2
- b .L746
-.L750:
+ b .L758
+.L762:
ldr x1, [x28, 3416]
ubfiz x0, x5, 5, 16
str wzr, [x1, x0]
@@ -5194,13 +5291,13 @@ FtlLowFormatEraseBlock:
bl V2P_block
and w6, w0, 65535
mov w7, w6
- cbz w22, .L748
+ cbz w22, .L760
bl IsBlkInVendorPart
- cbnz w0, .L749
-.L748:
+ cbnz w0, .L761
+.L760:
mov w0, w7
bl FtlBbmIsBadBlock
- cbnz w0, .L749
+ cbnz w0, .L761
ldr x0, [x28, 3416]
ubfiz x2, x20, 5, 16
add w6, w24, w6, lsl 10
@@ -5211,7 +5308,7 @@ FtlLowFormatEraseBlock:
add x1, x1, x2
mov w2, 4
str x0, [x1, 8]
- ldrh w0, [x28, 116]
+ ldrh w0, [x28, 324]
mul w0, w0, w20
add w20, w20, 1
and w20, w20, 65535
@@ -5219,10 +5316,10 @@ FtlLowFormatEraseBlock:
ldr x2, [x28, 3496]
add x0, x2, x0, sxtw 2
str x0, [x1, 16]
-.L749:
+.L761:
add w5, w5, 1
and w5, w5, 65535
- b .L747
+ b .L759
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
.align 2
.global FlashTestBlk
@@ -5233,7 +5330,7 @@ FlashTestBlk:
stp x19, x20, [sp, 16]
and w19, w0, 65535
cmp w19, 11
- bls .L782
+ bls .L794
adrp x20, .LANCHOR0
add x20, x20, :lo12:.LANCHOR0
mov w2, 32
@@ -5259,7 +5356,7 @@ FlashTestBlk:
mov w1, w3
bl FlashProgPages
ldr w0, [x29, 32]
- cbnz w0, .L783
+ cbnz w0, .L795
add w0, w19, 1
mov w3, 1
str w0, [x29, 36]
@@ -5270,23 +5367,23 @@ FlashTestBlk:
ldr w0, [x29, 32]
cmp w0, 0
csetm w20, ne
-.L781:
+.L793:
mov w2, 1
mov w1, 0
add x0, x29, 32
str w19, [x29, 36]
bl FlashEraseBlocks
-.L779:
+.L791:
mov w0, w20
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 128
ret
-.L783:
+.L795:
mov w20, -1
- b .L781
-.L782:
+ b .L793
+.L794:
mov w20, 0
- b .L779
+ b .L791
.size FlashTestBlk, .-FlashTestBlk
.align 2
.global FtlBbmTblFlush
@@ -5302,43 +5399,45 @@ FtlBbmTblFlush:
add x20, x25, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
stp x23, x24, [sp, 48]
- add x21, x20, 192
+ add x21, x20, 400
ldr x2, [x20, 3528]
ldr x0, [x20, 3464]
str x2, [x20, 3744]
- ldrh w2, [x20, 114]
+ ldrh w2, [x20, 322]
str x0, [x20, 3736]
bl ftl_memset
-.L786:
- ldrh w0, [x20, 58]
+.L798:
+ ldrh w0, [x20, 266]
add x1, x20, 3728
cmp w19, w0
- blt .L787
+ blt .L799
ldr x26, [x1, 16]
- add x19, x20, 160
+ add x19, x20, 368
mov w2, 16
mov w1, 255
mov x0, x26
bl ftl_memset
mov w0, -3887
- adrp x22, .LC89
+ adrp x23, .LC99
strh w0, [x26]
add x25, x25, :lo12:.LANCHOR0
- add x22, x22, :lo12:.LC89
+ add x23, x23, :lo12:.LC99
mov w21, 0
ldr w0, [x19, 8]
- mov w23, 0
+ mov w22, 0
str w0, [x26, 4]
- adrp x24, .LC90
- ldrh w0, [x20, 160]
+ adrp x24, .LC100
+ ldrh w0, [x20, 368]
strh w0, [x26, 2]
ldrh w0, [x19, 4]
strh w0, [x26, 8]
ldrh w0, [x19, 6]
strh w0, [x26, 10]
- ldr w0, [x20, 32]
+ ldr w0, [x20, 240]
strh w0, [x26, 12]
-.L788:
+ ldr w0, [x20, 2684]
+ strh w0, [x26, 14]
+.L800:
ldr x0, [x25, 3464]
str x0, [x25, 3736]
ldr x0, [x25, 3528]
@@ -5350,13 +5449,13 @@ FtlBbmTblFlush:
orr w0, w2, w1, lsl 10
str wzr, [x25, 3728]
str w0, [x25, 3732]
- mov x0, x22
+ mov x0, x23
bl sftl_printk
- ldrh w0, [x25, 108]
+ ldrh w0, [x25, 316]
ldrh w1, [x19, 2]
sub w0, w0, #1
cmp w1, w0
- blt .L789
+ blt .L801
ldr w0, [x19, 8]
mov w2, 1
ldrh w1, [x19]
@@ -5375,7 +5474,7 @@ FtlBbmTblFlush:
mov w1, w2
ldr x0, [x25, 3416]
bl FlashEraseBlocks
-.L789:
+.L801:
add x20, x25, 3728
mov w3, 1
mov x0, x20
@@ -5387,22 +5486,22 @@ FtlBbmTblFlush:
strh w0, [x19, 2]
ldr w0, [x25, 3728]
cmn w0, #1
- bne .L790
+ bne .L802
ldr w1, [x25, 3732]
add w21, w21, 1
- add x0, x24, :lo12:.LC90
+ add x0, x24, :lo12:.LC100
and w21, w21, 65535
bl sftl_printk
cmp w21, 3
- bls .L788
+ bls .L800
ldr w1, [x25, 3732]
- adrp x0, .LC91
+ adrp x0, .LC101
mov w2, w21
- add x0, x0, :lo12:.LC91
+ add x0, x0, :lo12:.LC101
bl sftl_printk
-.L792:
- b .L792
-.L787:
+.L804:
+ b .L804
+.L799:
ldrh w2, [x20, 3640]
ldr x0, [x1, 8]
ldr x1, [x21], 8
@@ -5411,12 +5510,16 @@ FtlBbmTblFlush:
add w19, w19, 1
add x0, x0, x3, sxtw 2
bl ftl_memcpy
- b .L786
-.L793:
- mov w23, 1
- b .L788
-.L790:
- cbz w23, .L793
+ b .L798
+.L805:
+ mov w22, 1
+ b .L800
+.L802:
+ add w22, w22, 1
+ cmp w22, 1
+ ble .L805
+ cmp w0, 256
+ beq .L800
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -5438,235 +5541,235 @@ allocate_data_superblock:
stp x23, x24, [sp, 48]
mov x20, x0
mov x19, x22
- add x23, x22, 2520
+ add x23, x22, 136
stp x25, x26, [sp, 64]
stp x27, x28, [sp, 80]
-.L796:
- ldrh w1, [x22, 2400]
- ldrh w0, [x22, 2416]
+.L811:
+ ldrh w1, [x22, 2592]
+ ldrh w0, [x22, 236]
add w0, w0, w1
- ldrh w1, [x22, 44]
+ ldrh w1, [x22, 252]
cmp w0, w1
- ble .L797
+ ble .L812
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2661
+ adrp x0, .LC8
+ mov w2, 2656
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L797:
+.L812:
cmp x20, x23
- bne .L823
- ldrh w0, [x19, 2416]
+ bne .L838
+ ldrh w0, [x19, 236]
ldr w1, [x19, 3244]
mul w1, w0, w1
lsr w0, w0, 1
add w0, w0, 1
add w1, w0, w1, lsr 2
ands w1, w1, 65535
- beq .L798
+ beq .L813
sub w1, w1, #1
and w1, w1, 65535
-.L798:
- add x0, x19, 2408
+.L813:
+ add x0, x19, 2600
bl List_pop_index_node
and w25, w0, 65535
- ldrh w0, [x19, 2416]
- cbnz w0, .L799
+ ldrh w0, [x19, 236]
+ cbnz w0, .L814
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2670
+ adrp x0, .LC8
+ mov w2, 2665
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L799:
- ldrh w0, [x19, 2416]
+.L814:
+ ldrh w0, [x19, 236]
sub w0, w0, #1
- strh w0, [x19, 2416]
- ldrh w0, [x19, 44]
+ strh w0, [x19, 236]
+ ldrh w0, [x19, 252]
cmp w0, w25
- bls .L796
- ldr x0, [x19, 2376]
+ bls .L811
+ ldr x0, [x19, 80]
ubfiz x26, x25, 1, 16
ldrh w24, [x0, x26]
- cbnz w24, .L796
+ cbnz w24, .L811
strh w25, [x20]
mov x0, x20
bl make_superblock
ldrb w0, [x20, 7]
- cbnz w0, .L801
- ldr x0, [x19, 2376]
+ cbnz w0, .L816
+ ldr x0, [x19, 80]
mov w1, -1
strh w1, [x0, x26]
mov w0, w25
bl INSERT_DATA_LIST
- ldrh w1, [x19, 2400]
- ldrh w0, [x19, 2416]
+ ldrh w1, [x19, 2592]
+ ldrh w0, [x19, 236]
add w0, w0, w1
- ldrh w1, [x19, 44]
+ ldrh w1, [x19, 252]
cmp w0, w1
- ble .L796
+ ble .L811
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- mov w2, 2684
+ mov w2, 2679
add x1, x1, 336
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L796
-.L823:
+ b .L811
+.L838:
mov w1, 0
- b .L798
-.L801:
- ldrh w1, [x19, 2400]
- ldrh w0, [x19, 2416]
+ b .L813
+.L816:
+ ldrh w1, [x19, 2592]
+ ldrh w0, [x19, 236]
add w0, w0, w1
- ldrh w1, [x19, 44]
+ ldrh w1, [x19, 252]
cmp w0, w1
- ble .L803
+ ble .L818
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2687
+ adrp x0, .LC8
+ mov w2, 2682
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L803:
+.L818:
add x27, x20, 16
- ldrh w4, [x19, 36]
+ ldrh w4, [x19, 244]
mov x3, x27
mov x0, 0
mov w5, 65535
-.L804:
+.L819:
cmp w4, w0, uxth
- bhi .L806
- cbnz w24, .L807
+ bhi .L821
+ cbnz w24, .L822
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2698
+ adrp x0, .LC8
+ mov w2, 2693
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L807:
- ldrh w0, [x19, 2672]
+.L822:
+ ldrh w0, [x19, 184]
cmp w0, w25
- bne .L808
+ bne .L823
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2700
+ adrp x0, .LC8
+ mov w2, 2695
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L808:
+.L823:
ldrb w0, [x20, 8]
- ldr x1, [x19, 2384]
- cbnz w0, .L809
+ ldr x1, [x19, 2608]
+ cbnz w0, .L824
ldrh w0, [x1, x26]
- cbz w0, .L810
- ldrh w2, [x19, 96]
+ cbz w0, .L825
+ ldrh w2, [x19, 304]
add w0, w0, w2
-.L831:
+.L846:
strh w0, [x1, x26]
mov w1, 0
- ldr w0, [x19, 2628]
+ ldr w0, [x19, 2676]
add w0, w0, 1
- str w0, [x19, 2628]
+ str w0, [x19, 2676]
mov w0, w25
bl ftl_set_blk_mode
-.L812:
- ldr x0, [x19, 2384]
- ldr w1, [x19, 2644]
+.L827:
+ ldr x0, [x19, 2608]
+ ldr w1, [x19, 2692]
ldrh w0, [x0, x26]
cmp w0, w1
- bls .L813
- str w0, [x19, 2644]
-.L813:
- ldr w1, [x19, 2632]
+ bls .L828
+ str w0, [x19, 2692]
+.L828:
+ ldr w1, [x19, 2680]
ubfiz x3, x24, 5, 16
- ldrh w0, [x19, 96]
- ldr w2, [x19, 2628]
+ ldrh w0, [x19, 304]
+ ldr w2, [x19, 2676]
madd w0, w0, w2, w1
- ldrh w1, [x19, 44]
+ ldrh w1, [x19, 252]
udiv w0, w0, w1
ldr x1, [x19, 3560]
- str w0, [x19, 2636]
+ str w0, [x19, 2684]
ldr w0, [x1, 16]
add w0, w0, 1
str w0, [x1, 16]
mov x0, 0
-.L814:
+.L829:
cmp x3, x0
- bne .L815
+ bne .L830
ldrb w1, [x20, 8]
mov w2, w24
ldr x0, [x19, 3416]
mov x28, 0
bl FlashEraseBlocks
mov w1, 0
-.L816:
+.L831:
cmp w24, w28, uxth
- bhi .L818
+ bhi .L833
cmp w1, 0
- ble .L819
+ ble .L834
mov w0, w25
bl update_multiplier_value
bl FtlBbmTblFlush
-.L819:
+.L834:
ldrb w0, [x20, 7]
- cbnz w0, .L820
- ldr x0, [x19, 2376]
+ cbnz w0, .L835
+ ldr x0, [x19, 80]
mov w1, -1
strh w1, [x0, x26]
- b .L796
-.L806:
+ b .L811
+.L821:
ldr x1, [x19, 3416]
add x2, x1, x0, lsl 5
stp xzr, xzr, [x2, 8]
ldrh w2, [x3]
cmp w2, w5
- beq .L805
+ beq .L820
ubfiz x6, x24, 5, 16
add w24, w24, 1
add x1, x1, x6
and w24, w24, 65535
lsl w2, w2, 10
str w2, [x1, 4]
-.L805:
+.L820:
add x0, x0, 1
add x3, x3, 2
- b .L804
-.L810:
+ b .L819
+.L825:
mov w0, 2
- b .L831
-.L809:
+ b .L846
+.L824:
ldrh w0, [x1, x26]
add w0, w0, 1
strh w0, [x1, x26]
- ldr w0, [x19, 2632]
+ ldr w0, [x19, 2680]
add w0, w0, 1
- str w0, [x19, 2632]
+ str w0, [x19, 2680]
mov w0, w25
bl ftl_set_blk_mode.part.7
- b .L812
-.L815:
+ b .L827
+.L830:
ldr x1, [x19, 3416]
add x1, x1, x0
add x0, x0, 32
ldr w2, [x1, 4]
and w2, w2, -1024
str w2, [x1, 4]
- b .L814
-.L818:
+ b .L829
+.L833:
ldr x2, [x19, 3416]
lsl x0, x28, 5
add x3, x2, x0
ldr w2, [x2, x0]
cmn w2, #1
- bne .L817
+ bne .L832
add w1, w1, 1
ldr w0, [x3, 4]
stp w2, w1, [x29, 104]
@@ -5677,39 +5780,39 @@ allocate_data_superblock:
ldrb w0, [x20, 7]
sub w0, w0, #1
strb w0, [x20, 7]
-.L817:
+.L832:
add x28, x28, 1
add x27, x27, 2
- b .L816
-.L820:
+ b .L831
+.L835:
add x21, x21, :lo12:.LANCHOR0
strh wzr, [x20, 2]
strb wzr, [x20, 6]
- ldrh w1, [x21, 106]
+ ldrh w1, [x21, 314]
strh w25, [x20]
mul w0, w0, w1
- ldr w1, [x21, 2620]
+ ldr w1, [x21, 2668]
str w1, [x20, 12]
and w0, w0, 65535
add w1, w1, 1
strh w0, [x20, 4]
- str w1, [x21, 2620]
- ldr x1, [x21, 2376]
+ str w1, [x21, 2668]
+ ldr x1, [x21, 80]
ldrh w2, [x20]
strh w0, [x1, x2, lsl 1]
ldrh w0, [x20, 4]
- cbz w0, .L821
+ cbz w0, .L836
ldrb w0, [x20, 7]
- cbnz w0, .L822
-.L821:
+ cbnz w0, .L837
+.L836:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2753
+ adrp x0, .LC8
+ mov w2, 2748
add x1, x1, 336
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L822:
+.L837:
ldp x19, x20, [sp, 16]
mov w0, 0
ldp x21, x22, [sp, 32]
@@ -5732,18 +5835,18 @@ FtlGcFreeBadSuperBlk:
and w22, w0, 65535
stp x23, x24, [sp, 48]
stp x25, x26, [sp, 64]
- ldrh w0, [x19, 3324]
+ ldrh w0, [x19, 3320]
str x27, [sp, 80]
- cbz w0, .L833
- add x23, x19, 64
+ cbz w0, .L848
+ add x23, x19, 272
add x24, x19, 3328
mov w21, 0
-.L834:
- ldrh w0, [x19, 36]
+.L849:
+ ldrh w0, [x19, 244]
cmp w0, w21
- bhi .L840
+ bhi .L855
bl FtlGcReFreshBadBlk
-.L833:
+.L848:
mov w0, 0
ldr x27, [sp, 80]
ldp x19, x20, [sp, 16]
@@ -5752,50 +5855,50 @@ FtlGcFreeBadSuperBlk:
ldp x25, x26, [sp, 64]
ldp x29, x30, [sp], 96
ret
-.L840:
+.L855:
ldrb w0, [x23, w21, sxtw]
mov w1, w22
- adrp x26, .LC92
- add x26, x26, :lo12:.LC92
+ adrp x26, .LC102
+ add x26, x26, :lo12:.LC102
mov w20, 0
bl V2P_block
and w25, w0, 65535
-.L835:
- ldrh w0, [x19, 3324]
+.L850:
+ ldrh w0, [x19, 3320]
cmp w0, w20
- bhi .L839
+ bhi .L854
add w21, w21, 1
and w21, w21, 65535
- b .L834
-.L839:
+ b .L849
+.L854:
ldrh w0, [x24, w20, sxtw 1]
add w27, w20, 1
cmp w0, w25
- bne .L836
+ bne .L851
mov w1, w25
mov x0, x26
bl sftl_printk
mov w0, w25
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldrh w0, [x19, 3324]
+ ldrh w0, [x19, 3320]
mov w1, w27
-.L837:
+.L852:
cmp w20, w0
- bcc .L838
+ bcc .L853
sub w0, w0, #1
- strh w0, [x19, 3324]
-.L836:
+ strh w0, [x19, 3320]
+.L851:
and w20, w27, 65535
- b .L835
-.L838:
+ b .L850
+.L853:
sub w2, w1, #1
ldrh w3, [x24, w1, sxtw 1]
add w20, w20, 1
add w1, w1, 1
and w20, w20, 65535
strh w3, [x24, w2, sxtw 1]
- b .L837
+ b .L852
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
.align 2
.global update_vpc_list
@@ -5804,79 +5907,93 @@ update_vpc_list:
stp x29, x30, [sp, -48]!
add x29, sp, 0
stp x19, x20, [sp, 16]
- and w19, w0, 65535
- adrp x20, .LANCHOR0
- add x0, x20, :lo12:.LANCHOR0
+ and w20, w0, 65535
+ adrp x19, .LANCHOR0
+ add x0, x19, :lo12:.LANCHOR0
str x21, [sp, 32]
- ubfiz x1, x19, 1, 16
- ldr x2, [x0, 2376]
+ ubfiz x1, x20, 1, 16
+ ldr x2, [x0, 80]
ldrh w1, [x2, x1]
- cbnz w1, .L846
- ldrh w1, [x0, 2672]
- cmp w1, w19
- bne .L847
+ cbnz w1, .L861
+ ldrh w1, [x0, 234]
+ cmp w1, w20
+ bne .L862
mov w1, -1
- strh w1, [x0, 2672]
-.L848:
- add x21, x20, :lo12:.LANCHOR0
- mov w1, w19
- add x0, x21, 2368
+ strh w1, [x0, 234]
+.L862:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w1, [x0, 232]
+ cmp w1, w20
+ bne .L863
+ mov w1, -1
+ strh w1, [x0, 232]
+.L863:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w1, [x0, 184]
+ cmp w1, w20
+ bne .L864
+ mov w1, -1
+ strh w1, [x0, 184]
+.L865:
+ add x21, x19, :lo12:.LANCHOR0
+ mov w1, w20
+ add x0, x21, 2576
bl List_remove_node
- ldrh w0, [x21, 2400]
- cbnz w0, .L850
+ ldrh w0, [x21, 2592]
+ cbnz w0, .L867
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2823
+ adrp x0, .LC8
+ mov w2, 2824
add x1, x1, 368
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L850:
- add x20, x20, :lo12:.LANCHOR0
- ldrh w0, [x20, 2400]
+.L867:
+ add x19, x19, :lo12:.LANCHOR0
+ ldrh w0, [x19, 2592]
sub w0, w0, #1
- strh w0, [x20, 2400]
- mov w0, w19
+ strh w0, [x19, 2592]
+ mov w0, w20
bl free_data_superblock
- mov w0, w19
+ mov w0, w20
bl FtlGcFreeBadSuperBlk
- ldrh w1, [x20, 2400]
- ldrh w0, [x20, 2416]
+ ldrh w1, [x19, 2592]
+ ldrh w0, [x19, 236]
add w0, w0, w1
- ldrh w1, [x20, 44]
+ ldrh w1, [x19, 252]
cmp w0, w1
- ble .L854
+ ble .L871
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2826
+ adrp x0, .LC8
+ mov w2, 2827
add x1, x1, 368
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L854:
+.L871:
mov w0, 1
- b .L845
-.L847:
- ldrh w1, [x0, 2424]
- cmp w1, w19
- beq .L853
- ldrh w1, [x0, 2472]
- cmp w1, w19
- beq .L853
- ldrh w0, [x0, 2520]
- cmp w0, w19
- bne .L848
-.L853:
+ b .L860
+.L864:
+ ldrh w1, [x0, 32]
+ cmp w1, w20
+ beq .L870
+ ldrh w1, [x0, 88]
+ cmp w1, w20
+ beq .L870
+ ldrh w0, [x0, 136]
+ cmp w0, w20
+ bne .L865
+.L870:
mov w0, 0
-.L845:
+.L860:
ldp x19, x20, [sp, 16]
ldr x21, [sp, 32]
ldp x29, x30, [sp], 48
ret
-.L846:
- mov w0, w19
+.L861:
+ mov w0, w20
bl List_update_data_list
- b .L853
+ b .L870
.size update_vpc_list, .-update_vpc_list
.align 2
.global decrement_vpc_count
@@ -5890,76 +6007,76 @@ decrement_vpc_count:
mov w0, 65535
adrp x19, .LANCHOR0
cmp w20, w0
- beq .L857
+ beq .L874
add x22, x19, :lo12:.LANCHOR0
ubfiz x21, x20, 1, 16
- ldr x1, [x22, 2376]
+ ldr x1, [x22, 80]
ldrh w0, [x1, x21]
- cbnz w0, .L858
+ cbnz w0, .L875
mov w2, 0
mov w1, w20
- adrp x0, .LC93
- add x0, x0, :lo12:.LC93
+ adrp x0, .LC103
+ add x0, x0, :lo12:.LC103
bl sftl_printk
- ldr x0, [x22, 2376]
+ ldr x0, [x22, 80]
ldrh w0, [x0, x21]
- cbz w0, .L859
-.L864:
+ cbz w0, .L876
+.L881:
mov w21, 0
-.L856:
+.L873:
mov w0, w21
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x29, x30, [sp], 48
ret
-.L859:
+.L876:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- mov w2, 2841
+ mov w2, 2842
add x1, x1, 384
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L864
-.L858:
+ b .L881
+.L875:
sub w0, w0, #1
strh w0, [x1, x21]
-.L857:
+.L874:
add x19, x19, :lo12:.LANCHOR0
mov w1, 65535
ldrh w0, [x19, 3714]
cmp w0, w1
- bne .L861
+ bne .L878
strh w20, [x19, 3714]
- b .L864
-.L861:
+ b .L881
+.L878:
cmp w20, w0
- beq .L864
+ beq .L881
bl update_vpc_list
cmp w0, 0
- ldr x1, [x19, 2360]
+ ldr x1, [x19, 2568]
cset w21, ne
- ldr x0, [x19, 2368]
+ ldr x0, [x19, 2576]
strh w20, [x19, 3714]
sub x0, x0, x1
mov x1, -6148914691236517206
asr x0, x0, 1
movk x1, 0xaaab, lsl 0
mul x0, x0, x1
- ldr x1, [x19, 2376]
+ ldr x1, [x19, 80]
and x2, x0, 65535
ldrh w1, [x1, x2, lsl 1]
- cbnz w1, .L856
+ cbnz w1, .L873
cmp w20, w0, uxth
- beq .L856
+ beq .L873
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- mov w2, 2857
+ mov w2, 2858
add x1, x1, 384
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L856
+ b .L873
.size decrement_vpc_count, .-decrement_vpc_count
.align 2
.global FtlSuperblockPowerLostFix
@@ -5996,20 +6113,20 @@ FtlSuperblockPowerLostFix:
ldrh w22, [x19, 4]
and w22, w22, 1
add w22, w22, 6
-.L871:
+.L888:
ldrh w0, [x19, 4]
- cbnz w0, .L867
-.L868:
+ cbnz w0, .L884
+.L885:
add x21, x21, :lo12:.LANCHOR0
ldrh w0, [x19]
ldrh w3, [x19, 4]
- ldr x2, [x21, 2376]
+ ldr x2, [x21, 80]
lsl x0, x0, 1
ldrh w1, [x2, x0]
sub w1, w1, w3
strh w1, [x2, x0]
strb wzr, [x19, 6]
- ldrh w0, [x21, 106]
+ ldrh w0, [x21, 314]
strh w0, [x19, 2]
strh wzr, [x19, 4]
ldp x19, x20, [sp, 16]
@@ -6017,13 +6134,13 @@ FtlSuperblockPowerLostFix:
ldr x23, [sp, 48]
ldp x29, x30, [sp], 96
ret
-.L867:
+.L884:
mov x0, x19
bl get_new_active_ppa
str w0, [x29, 68]
cmn w0, #1
- beq .L868
- ldr w0, [x20, 2624]
+ beq .L885
+ ldr w0, [x20, 2672]
mov w3, 0
str w0, [x23, 4]
mov w2, 0
@@ -6031,14 +6148,14 @@ FtlSuperblockPowerLostFix:
mov w1, 1
cmn w0, #1
csel w0, w0, wzr, ne
- str w0, [x20, 2624]
+ str w0, [x20, 2672]
add x0, x29, 64
bl FlashProgPages
ldrh w0, [x19]
bl decrement_vpc_count
subs w22, w22, #1
- bne .L871
- b .L868
+ bne .L888
+ b .L885
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
.align 2
.global FtlMakeBbt
@@ -6058,52 +6175,52 @@ FtlMakeBbt:
bl FtlLoadFactoryBbt
mov w28, -3872
add x0, x19, :lo12:.LANCHOR0
- add x26, x0, 192
- add x25, x0, 172
+ add x26, x0, 400
+ add x25, x0, 380
mov x19, x0
add x20, x0, 3728
-.L880:
- ldrh w0, [x19, 58]
+.L897:
+ ldrh w0, [x19, 266]
cmp w24, w0
- bcc .L886
+ bcc .L903
add x20, x21, :lo12:.LANCHOR0
mov w19, 0
-.L887:
- ldrh w0, [x20, 118]
+.L904:
+ ldrh w0, [x20, 326]
cmp w0, w19
- bhi .L888
- add x20, x20, 160
+ bhi .L905
+ add x20, x20, 368
ldrh w19, [x20, 12]
mov w22, 65535
sub w19, w19, #1
and w19, w19, 65535
-.L889:
+.L906:
ldrh w0, [x20, 12]
sub w0, w0, #48
cmp w19, w0
- ble .L893
+ ble .L910
mov w0, w19
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L890
+ beq .L907
mov w0, w19
bl FlashTestBlk
- cbz w0, .L891
+ cbz w0, .L908
mov w0, w19
bl FtlBbmMapBadBlock
-.L890:
+.L907:
sub w19, w19, #1
and w19, w19, 65535
- b .L889
-.L886:
+ b .L906
+.L903:
ldr x0, [x19, 3464]
mov w2, 65535
ldr x27, [x19, 3528]
ldrh w1, [x25]
stp x0, x27, [x20, 8]
cmp w1, w2
- beq .L881
- ldrh w23, [x19, 102]
+ beq .L898
+ ldrh w23, [x19, 310]
mov w2, 1
madd w23, w23, w24, w1
mov w1, w2
@@ -6113,33 +6230,33 @@ FtlMakeBbt:
bl FlashReadPages
ldr x1, [x20, 8]
ldr x0, [x26]
- ldrh w2, [x19, 102]
+ ldrh w2, [x19, 310]
add w2, w2, 7
lsr w2, w2, 3
bl ftl_memcpy
-.L882:
+.L899:
mov w0, w23
add w24, w24, 1
bl FtlBbmMapBadBlock
add x26, x26, 8
add x25, x25, 2
- b .L880
-.L881:
+ b .L897
+.L898:
mov w1, w24
bl FlashGetBadBlockList
ldr x0, [x20, 8]
ldr x1, [x26]
bl FtlBbt2Bitmap
- ldrh w22, [x19, 102]
-.L884:
+ ldrh w22, [x19, 310]
+.L901:
sub w22, w22, #1
and w22, w22, 65535
-.L883:
- ldrh w0, [x19, 102]
+.L900:
+ ldrh w0, [x19, 310]
madd w0, w24, w0, w22
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L884
+ beq .L901
ldr x0, [x19, 3528]
mov w2, 16
strh w22, [x25]
@@ -6151,7 +6268,7 @@ FtlMakeBbt:
bl ftl_memset
strh w28, [x27]
str wzr, [x27, 4]
- ldrh w23, [x19, 102]
+ ldrh w23, [x19, 310]
ldrh w0, [x25]
strh w0, [x27, 2]
ldrh w2, [x19, 3640]
@@ -6174,52 +6291,52 @@ FtlMakeBbt:
bl FlashProgPages
ldr w0, [x20]
cmn w0, #1
- bne .L882
+ bne .L899
mov w0, w23
bl FtlBbmMapBadBlock
- b .L883
-.L888:
+ b .L900
+.L905:
mov w0, w19
add w19, w19, 1
bl FtlBbmMapBadBlock
and w19, w19, 65535
- b .L887
-.L891:
+ b .L904
+.L908:
ldrh w0, [x20]
cmp w0, w22
- bne .L892
+ bne .L909
strh w19, [x20]
- b .L890
-.L892:
+ b .L907
+.L909:
strh w19, [x20, 4]
-.L893:
+.L910:
add x21, x21, :lo12:.LANCHOR0
mov w2, 2
ldr x1, [x21, 3416]
- ldrh w0, [x21, 160]
- str wzr, [x21, 168]
- strh wzr, [x21, 162]
+ ldrh w0, [x21, 368]
+ str wzr, [x21, 376]
+ strh wzr, [x21, 370]
lsl w0, w0, 10
str w0, [x1, 4]
ldr x0, [x21, 3416]
- ldrh w1, [x21, 164]
+ ldrh w1, [x21, 372]
lsl w1, w1, 10
str w1, [x0, 36]
mov w1, 1
bl FlashEraseBlocks
- ldrh w0, [x21, 160]
+ ldrh w0, [x21, 368]
bl FtlBbmMapBadBlock
- ldrh w0, [x21, 164]
+ ldrh w0, [x21, 372]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- strh wzr, [x21, 162]
- ldr w0, [x21, 168]
- ldrh w1, [x21, 164]
+ strh wzr, [x21, 370]
+ ldr w0, [x21, 376]
+ ldrh w1, [x21, 372]
add w0, w0, 1
- str w0, [x21, 168]
- ldrh w0, [x21, 160]
- strh w0, [x21, 164]
- strh w1, [x21, 160]
+ str w0, [x21, 376]
+ ldrh w0, [x21, 368]
+ strh w0, [x21, 372]
+ strh w1, [x21, 368]
bl FtlBbmTblFlush
mov w0, 0
ldp x19, x20, [sp, 16]
@@ -6249,18 +6366,18 @@ js_hash:
mov w0, 42982
mov x3, 0
movk w0, 0x47c6, lsl 16
-.L902:
+.L919:
cmp w1, w3
- bhi .L903
+ bhi .L920
ret
-.L903:
+.L920:
lsr w2, w0, 2
ldrb w5, [x4, x3]
add w2, w2, w0, lsl 5
add x3, x3, 1
add w2, w2, w5
eor w0, w0, w2
- b .L902
+ b .L919
.size js_hash, .-js_hash
.align 2
.global Ftl_write_map_blk_to_last_page
@@ -6276,17 +6393,17 @@ Ftl_write_map_blk_to_last_page:
ldr x20, [x0, 16]
ldrh w0, [x0]
cmp w0, w1
- bne .L905
+ bne .L922
ldrh w0, [x19, 8]
- cbz w0, .L906
+ cbz w0, .L923
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 641
add x1, x1, 408
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L906:
+.L923:
ldrh w0, [x19, 8]
add w0, w0, 1
strh w0, [x19, 8]
@@ -6297,14 +6414,14 @@ Ftl_write_map_blk_to_last_page:
strh wzr, [x19]
add w0, w0, 1
str w0, [x19, 48]
-.L907:
+.L924:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
ldp x29, x30, [sp], 64
ret
-.L905:
+.L922:
ubfiz x0, x0, 1, 16
adrp x21, .LANCHOR0
ldrh w1, [x19, 2]
@@ -6325,19 +6442,19 @@ Ftl_write_map_blk_to_last_page:
ldrh w0, [x19, 4]
strh w0, [x22]
strh w23, [x22, 2]
- ldrh w2, [x20, 108]
+ ldrh w2, [x20, 316]
ldr x0, [x20, 3464]
lsl w2, w2, 3
bl ftl_memset
mov w1, 0
mov w0, 0
-.L908:
+.L925:
ldrh w2, [x19, 6]
cmp w2, w0
- bhi .L910
+ bhi .L927
add x21, x21, :lo12:.LANCHOR0
add x6, x21, 3728
- ldrh w1, [x21, 114]
+ ldrh w1, [x21, 322]
ldr x0, [x21, 3736]
bl js_hash
str w0, [x22, 12]
@@ -6351,12 +6468,12 @@ Ftl_write_map_blk_to_last_page:
strh w0, [x19, 2]
mov x0, x19
bl ftl_map_blk_gc
- b .L907
-.L910:
+ b .L924
+.L927:
ubfiz x2, x0, 2, 16
ldr w3, [x24, x2]
cmp w23, w3, lsr 10
- bne .L909
+ bne .L926
add w1, w1, 1
ldr x4, [x20, 3464]
and w1, w1, 65535
@@ -6366,10 +6483,10 @@ Ftl_write_map_blk_to_last_page:
ldr x2, [x20, 3464]
add x2, x2, x3
str w4, [x2, 4]
-.L909:
+.L926:
add w0, w0, 1
and w0, w0, 65535
- b .L908
+ b .L925
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 2
.global FtlMapWritePage
@@ -6392,44 +6509,44 @@ FtlMapWritePage:
mov x25, x24
add x23, x23, :lo12:.LANCHOR1
add x20, x22, 3728
-.L916:
+.L933:
add x0, x24, :lo12:.LANCHOR0
- ldr w1, [x0, 2604]
+ ldr w1, [x0, 2652]
add w1, w1, 1
- str w1, [x0, 2604]
- ldrh w0, [x0, 108]
+ str w1, [x0, 2652]
+ ldrh w0, [x0, 316]
ldrh w1, [x19, 2]
sub w0, w0, #1
cmp w1, w0
- bge .L917
+ bge .L934
ldrh w1, [x19]
mov w0, 65535
cmp w1, w0
- bne .L918
-.L917:
+ bne .L935
+.L934:
mov x0, x19
bl Ftl_write_map_blk_to_last_page
-.L918:
+.L935:
ldrh w1, [x19]
ldr x0, [x19, 16]
ldrh w0, [x0, x1, lsl 1]
- cbnz w0, .L919
- adrp x0, .LC1
+ cbnz w0, .L936
+ adrp x0, .LC8
mov w2, 700
add x1, x23, 440
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L919:
+.L936:
ldrh w1, [x19]
ldrh w0, [x19, 10]
cmp w1, w0
- bcc .L920
- adrp x0, .LC1
+ bcc .L937
+ adrp x0, .LC8
mov w2, 701
add x1, x23, 440
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L920:
+.L937:
ldrh w1, [x19]
mov w2, 16
ldr x0, [x19, 16]
@@ -6449,7 +6566,7 @@ FtlMapWritePage:
ldrh w0, [x19, 4]
strh w0, [x6]
strh w28, [x6, 2]
- ldrh w1, [x22, 114]
+ ldrh w1, [x22, 322]
ldr x0, [x20, 8]
bl js_hash
str w0, [x6, 12]
@@ -6464,46 +6581,46 @@ FtlMapWritePage:
strh w0, [x19, 2]
ldr w1, [x20]
cmn w1, #1
- bne .L921
+ bne .L938
ldr w1, [x20, 4]
- adrp x0, .LC94
- add x0, x0, :lo12:.LC94
+ adrp x0, .LC104
+ add x0, x0, :lo12:.LC104
add w21, w21, 1
and w21, w21, 65535
bl sftl_printk
ldrh w0, [x19, 2]
cmp w0, 2
- bhi .L922
- ldrh w0, [x22, 108]
+ bhi .L939
+ ldrh w0, [x22, 316]
sub w0, w0, #1
strh w0, [x19, 2]
-.L922:
+.L939:
cmp w21, 3
- bls .L923
+ bls .L940
add x25, x25, :lo12:.LANCHOR0
- adrp x0, .LC95
+ adrp x0, .LC105
mov w2, w21
- add x0, x0, :lo12:.LC95
+ add x0, x0, :lo12:.LC105
ldr w1, [x25, 3732]
bl sftl_printk
-.L924:
- b .L924
-.L923:
+.L941:
+ b .L941
+.L940:
ldr w0, [x19, 52]
- cbz w0, .L916
+ cbz w0, .L933
+.L955:
+ b .L955
.L938:
- b .L938
-.L921:
cmp w0, 1
- beq .L927
+ beq .L944
cmp w1, 256
- beq .L927
+ beq .L944
ldr w0, [x19, 56]
- cbz w0, .L928
-.L927:
+ cbz w0, .L945
+.L944:
str wzr, [x19, 56]
- b .L916
-.L928:
+ b .L933
+.L945:
ldr x0, [x19, 40]
ldr w1, [x20, 4]
str w1, [x0, w26, uxtw 2]
@@ -6530,35 +6647,35 @@ load_l2p_region:
and x19, x1, 65535
stp x23, x24, [sp, 48]
str x25, [sp, 64]
- ldrh w0, [x0, 140]
+ ldrh w0, [x0, 348]
cmp w0, w22
- bcs .L941
+ bcs .L958
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 485
add x1, x1, 456
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L941:
+.L958:
add x20, x21, :lo12:.LANCHOR0
ubfiz x0, x22, 2, 16
ldr x1, [x20, 3616]
ldr w24, [x1, x0]
- cbnz w24, .L942
- ldr x0, [x20, 2568]
+ cbnz w24, .L959
+ ldr x0, [x20, 2616]
lsl x19, x19, 4
- ldrh w2, [x20, 114]
+ ldrh w2, [x20, 322]
mov w1, 255
add x0, x0, x19
ldr x0, [x0, 8]
bl ftl_memset
- ldr x0, [x20, 2568]
+ ldr x0, [x20, 2616]
strh w22, [x0, x19]
- ldr x0, [x20, 2568]
+ ldr x0, [x20, 2616]
add x19, x0, x19
str wzr, [x19, 4]
-.L943:
+.L960:
mov w0, 0
ldr x25, [sp, 64]
ldp x19, x20, [sp, 16]
@@ -6566,8 +6683,8 @@ load_l2p_region:
ldp x23, x24, [sp, 48]
ldp x29, x30, [sp], 80
ret
-.L942:
- ldr x0, [x20, 2568]
+.L959:
+ ldr x0, [x20, 2616]
lsl x19, x19, 4
add x23, x20, 3728
mov w2, 1
@@ -6583,59 +6700,59 @@ load_l2p_region:
ldr x25, [x20, 3744]
ldrh w0, [x25, 8]
cmp w0, w22
- beq .L944
+ beq .L961
mov w2, w24
mov w1, w22
- adrp x0, .LC96
- add x0, x0, :lo12:.LC96
+ adrp x0, .LC106
+ add x0, x0, :lo12:.LC106
bl sftl_printk
ldr x1, [x20, 3744]
mov w3, 4
- adrp x0, .LC97
+ adrp x0, .LC94
mov w2, w3
- add x0, x0, :lo12:.LC97
+ add x0, x0, :lo12:.LC94
bl rknand_print_hex
- ldrh w3, [x20, 140]
- adrp x0, .LC98
+ ldrh w3, [x20, 348]
+ adrp x0, .LC107
ldr x1, [x20, 3616]
mov w2, 4
- add x0, x0, :lo12:.LC98
+ add x0, x0, :lo12:.LC107
bl rknand_print_hex
-.L945:
+.L962:
ldrh w0, [x25, 8]
cmp w0, w22
- beq .L946
+ beq .L963
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 508
add x1, x1, 456
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L946:
+.L963:
add x21, x21, :lo12:.LANCHOR0
- ldr x0, [x21, 2568]
+ ldr x0, [x21, 2616]
add x0, x0, x19
str wzr, [x0, 4]
- ldr x0, [x21, 2568]
+ ldr x0, [x21, 2616]
strh w22, [x0, x19]
- b .L943
-.L944:
+ b .L960
+.L961:
ldr w0, [x20, 3728]
cmp w0, 256
- bne .L945
+ bne .L962
mov w2, w24
mov w1, w22
- adrp x0, .LC99
- add x0, x0, :lo12:.LC99
+ adrp x0, .LC108
+ add x0, x0, :lo12:.LC108
bl sftl_printk
- ldr x0, [x20, 2568]
+ ldr x0, [x20, 2616]
mov w1, w22
add x0, x0, x19
ldr x2, [x0, 8]
add x0, x20, 3648
bl FtlMapWritePage
- b .L945
+ b .L962
.size load_l2p_region, .-load_l2p_region
.align 2
.global ftl_map_blk_gc
@@ -6657,12 +6774,12 @@ ftl_map_blk_gc:
ldrh w2, [x19, 8]
sub w1, w1, #5
cmp w2, w1
- blt .L949
+ blt .L966
ubfiz x0, x0, 1, 16
ldrh w26, [x20, x0]
- cbz w26, .L949
+ cbz w26, .L966
ldr w1, [x19, 52]
- cbnz w1, .L949
+ cbnz w1, .L966
mov w1, 1
str w1, [x19, 52]
strh wzr, [x20, x0]
@@ -6671,35 +6788,35 @@ ftl_map_blk_gc:
sub w0, w0, #1
strh w0, [x19, 8]
add x0, x22, :lo12:.LANCHOR0
- ldrh w0, [x0, 108]
+ ldrh w0, [x0, 316]
cmp w1, w0
- bcc .L950
+ bcc .L967
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L950:
+.L967:
add x27, x22, :lo12:.LANCHOR0
adrp x23, .LANCHOR1
add x23, x23, :lo12:.LANCHOR1
add x21, x27, 3728
add x23, x23, 472
mov w20, 0
-.L951:
+.L968:
ldrh w0, [x19, 6]
cmp w0, w20
- bhi .L958
+ bhi .L975
mov w1, 1
mov w0, w26
bl FtlFreeSysBlkQueueIn
str wzr, [x19, 52]
-.L949:
+.L966:
add x22, x22, :lo12:.LANCHOR0
ldrh w1, [x19, 2]
- ldrh w0, [x22, 108]
+ ldrh w0, [x22, 316]
cmp w1, w0
- bcc .L959
+ bcc .L976
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L959:
+.L976:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -6708,12 +6825,12 @@ ftl_map_blk_gc:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 96
ret
-.L958:
+.L975:
ubfiz x0, x20, 2, 16
add x28, x25, x0
ldr w1, [x25, x0]
cmp w26, w1, lsr 10
- bne .L952
+ bne .L969
ldr x1, [x27, 3472]
mov w2, 1
ldr x24, [x27, 3528]
@@ -6725,36 +6842,36 @@ ftl_map_blk_gc:
bl FlashReadPages
ldrh w0, [x24, 8]
cmp w0, w20
- beq .L953
- adrp x0, .LC1
+ beq .L970
+ adrp x0, .LC8
mov w2, 611
mov x1, x23
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L953:
+.L970:
ldr w0, [x21]
cmn w0, #1
- bne .L954
-.L956:
+ bne .L971
+.L973:
str wzr, [x28]
-.L955:
- b .L955
-.L954:
+.L972:
+ b .L972
+.L971:
ldrh w0, [x24, 8]
cmp w0, w20
- bne .L956
+ bne .L973
ldrh w1, [x24]
ldrh w0, [x19, 4]
cmp w1, w0
- bne .L956
+ bne .L973
ldr x2, [x21, 8]
mov w1, w20
mov x0, x19
bl FtlMapWritePage
-.L952:
+.L969:
add w20, w20, 1
and w20, w20, 65535
- b .L951
+ b .L968
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 2
.global flush_l2p_region
@@ -6766,13 +6883,13 @@ flush_l2p_region:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
ubfiz x20, x0, 4, 16
- ldr x0, [x19, 2568]
+ ldr x0, [x19, 2616]
add x1, x0, x20
ldr x2, [x1, 8]
ldrh w1, [x0, x20]
add x0, x19, 3648
bl FtlMapWritePage
- ldr x0, [x19, 2568]
+ ldr x0, [x19, 2616]
add x0, x0, x20
ldr w1, [x0, 4]
and w1, w1, 2147483647
@@ -6797,108 +6914,108 @@ log2phys:
stp x23, x24, [sp, 48]
mov x22, x1
mov w23, w2
- ldrh w24, [x0, 112]
- ldr w0, [x0, 2584]
+ ldrh w24, [x0, 320]
+ ldr w0, [x0, 2632]
cmp w25, w0
- bcc .L968
+ bcc .L985
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 813
add x1, x1, 488
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L968:
+.L985:
add x0, x20, :lo12:.LANCHOR0
- ldr w1, [x0, 2584]
+ ldr w1, [x0, 2632]
cmp w25, w1
- bcs .L969
+ bcs .L986
add w24, w24, 7
- ldrh w1, [x0, 142]
- ldr x2, [x0, 2568]
+ ldrh w1, [x0, 350]
+ ldr x2, [x0, 2616]
mov x0, 0
lsr w21, w25, w24
and w21, w21, 65535
-.L970:
+.L987:
and x19, x0, 65535
cmp w19, w1
- bcc .L975
+ bcc .L992
bl select_l2p_ram_region
and x19, x0, 65535
add x2, x20, :lo12:.LANCHOR0
ubfiz x1, x19, 4, 16
mov w26, w0
- ldr x2, [x2, 2568]
+ ldr x2, [x2, 2616]
add x3, x2, x1
ldrh w2, [x2, x1]
mov w1, 65535
cmp w2, w1
- beq .L976
+ beq .L993
ldr w1, [x3, 4]
- tbz w1, #31, .L976
+ tbz w1, #31, .L993
bl flush_l2p_region
-.L976:
+.L993:
mov w1, w26
mov w0, w21
bl load_l2p_region
- b .L972
-.L969:
+ b .L989
+.L986:
mov w0, -1
- cbnz w23, .L967
+ cbnz w23, .L984
str w0, [x22]
-.L967:
+.L984:
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
-.L975:
+.L992:
add x0, x0, 1
add x3, x2, x0, lsl 4
ldrh w3, [x3, -16]
cmp w3, w21
- bne .L970
-.L972:
+ bne .L987
+.L989:
mov x0, 1
lsl x0, x0, x24
sub w0, w0, #1
and w0, w0, w25
and x0, x0, 65535
- cbnz w23, .L973
+ cbnz w23, .L990
add x1, x20, :lo12:.LANCHOR0
- ldr x1, [x1, 2568]
+ ldr x1, [x1, 2616]
add x1, x1, x19, lsl 4
ldr x1, [x1, 8]
ldr w0, [x1, x0, lsl 2]
str w0, [x22]
-.L974:
+.L991:
add x20, x20, :lo12:.LANCHOR0
- ldr x0, [x20, 2568]
+ ldr x0, [x20, 2616]
add x19, x0, x19, lsl 4
ldr w0, [x19, 4]
cmn w0, #1
- beq .L978
+ beq .L995
add w0, w0, 1
str w0, [x19, 4]
-.L978:
+.L995:
mov w0, 0
- b .L967
-.L973:
+ b .L984
+.L990:
add x2, x20, :lo12:.LANCHOR0
lsl x1, x19, 4
ldr w4, [x22]
- ldr x3, [x2, 2568]
+ ldr x3, [x2, 2616]
add x3, x3, x1
ldr x3, [x3, 8]
str w4, [x3, x0, lsl 2]
- strh w21, [x2, 2576]
- ldr x0, [x2, 2568]
+ strh w21, [x2, 2624]
+ ldr x0, [x2, 2616]
add x0, x0, x1
ldr w1, [x0, 4]
orr w1, w1, -2147483648
str w1, [x0, 4]
- b .L974
+ b .L991
.size log2phys, .-log2phys
.align 2
.global FtlWriteDump_data
@@ -6912,20 +7029,20 @@ FtlWriteDump_data:
stp x21, x22, [sp, 32]
stp x23, x24, [sp, 48]
str x25, [sp, 64]
- ldrh w2, [x20, 2428]
- cbz w2, .L982
- ldrb w1, [x20, 2432]
- cbnz w1, .L982
- ldrb w1, [x20, 2431]
- ldrh w3, [x20, 106]
+ ldrh w2, [x20, 36]
+ cbz w2, .L999
+ ldrb w1, [x20, 40]
+ cbnz w1, .L999
+ ldrb w1, [x20, 39]
+ ldrh w3, [x20, 314]
mul w1, w1, w3
cmp w2, w1
- beq .L982
- ldrb w0, [x20, 2434]
- cbnz w0, .L981
- ldr w22, [x20, 2584]
+ beq .L999
+ ldrb w0, [x20, 42]
+ cbnz w0, .L998
+ ldr w22, [x20, 2632]
add x1, x29, 92
- ldrh w24, [x20, 36]
+ ldrh w24, [x20, 244]
mov w2, 0
sub w22, w22, #1
mov w0, w22
@@ -6938,41 +7055,41 @@ FtlWriteDump_data:
stp x1, x21, [x29, 104]
str w22, [x29, 120]
str wzr, [x21, 4]
- beq .L984
+ beq .L1001
mov w2, 0
mov w1, 1
add x0, x29, 96
bl FlashReadPages
-.L985:
+.L1002:
add x25, x19, :lo12:.LANCHOR0
lsl w24, w24, 2
- add x20, x25, 2424
+ add x20, x25, 32
mov w0, -3947
mov w23, 0
strh w0, [x21]
-.L986:
+.L1003:
cmp w24, w23
- bne .L990
-.L987:
+ bne .L1007
+.L1004:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
- strb w0, [x19, 2434]
-.L981:
+ strb w0, [x19, 42]
+.L998:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
ldr x25, [sp, 64]
ldp x29, x30, [sp], 128
ret
-.L984:
- ldrh w2, [x20, 114]
+.L1001:
+ ldrh w2, [x20, 322]
mov w1, 255
ldr x0, [x20, 3464]
bl ftl_memset
- b .L985
-.L990:
+ b .L1002
+.L1007:
ldrh w0, [x20, 4]
- cbz w0, .L987
+ cbz w0, .L1004
ldr w0, [x29, 100]
add w23, w23, 1
stp w22, w0, [x21, 8]
@@ -6981,7 +7098,7 @@ FtlWriteDump_data:
mov x0, x20
bl get_new_active_ppa
str w0, [x29, 100]
- ldr w0, [x25, 2624]
+ ldr w0, [x25, 2672]
mov w3, 0
str w0, [x21, 4]
mov w2, 0
@@ -6989,16 +7106,16 @@ FtlWriteDump_data:
mov w1, 1
cmn w0, #1
csel w0, w0, wzr, ne
- str w0, [x25, 2624]
+ str w0, [x25, 2672]
add x0, x29, 96
bl FlashProgPages
ldrh w0, [x20]
bl decrement_vpc_count
- b .L986
-.L982:
+ b .L1003
+.L999:
add x19, x19, :lo12:.LANCHOR0
- strb wzr, [x19, 2434]
- b .L981
+ strb wzr, [x19, 42]
+ b .L998
.size FtlWriteDump_data, .-FtlWriteDump_data
.align 2
.global FtlReUsePrevPpa
@@ -7017,14 +7134,14 @@ FtlReUsePrevPpa:
add x2, x22, :lo12:.LANCHOR0
and w0, w0, 65535
ubfiz x20, x0, 1, 16
- ldr x3, [x2, 2376]
+ ldr x3, [x2, 80]
ldrh w1, [x3, x20]
- cbnz w1, .L1000
- ldr x19, [x2, 2408]
- cbz x19, .L1001
- ldrh w3, [x2, 2416]
+ cbnz w1, .L1017
+ ldr x19, [x2, 2600]
+ cbz x19, .L1018
+ ldrh w3, [x2, 236]
mov x4, -6148914691236517206
- ldr x2, [x2, 2360]
+ ldr x2, [x2, 2568]
movk x4, 0xaaab, lsl 0
mov w5, 65535
sub x19, x19, x2
@@ -7032,36 +7149,36 @@ FtlReUsePrevPpa:
mul x19, x19, x4
mov w4, 6
and w19, w19, 65535
-.L1002:
+.L1019:
cmp w1, w3
- beq .L1001
+ beq .L1018
cmp w19, w0
- bne .L1003
+ bne .L1020
add x23, x22, :lo12:.LANCHOR0
mov w1, w19
- add x0, x23, 2408
+ add x0, x23, 2600
bl List_remove_node
- ldrh w0, [x23, 2416]
- cbnz w0, .L1004
+ ldrh w0, [x23, 236]
+ cbnz w0, .L1021
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1733
add x1, x1, 504
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1004:
+.L1021:
add x22, x22, :lo12:.LANCHOR0
- ldrh w0, [x22, 2416]
+ ldrh w0, [x22, 236]
sub w0, w0, #1
- strh w0, [x22, 2416]
+ strh w0, [x22, 236]
mov w0, w19
bl INSERT_DATA_LIST
- ldr x1, [x22, 2376]
+ ldr x1, [x22, 80]
ldrh w0, [x1, x20]
add w0, w0, 1
strh w0, [x1, x20]
-.L1001:
+.L1018:
add x1, x29, 76
mov w2, 1
mov w0, w21
@@ -7071,18 +7188,18 @@ FtlReUsePrevPpa:
ldr x23, [sp, 48]
ldp x29, x30, [sp], 80
ret
-.L1003:
+.L1020:
umull x19, w19, w4
ldrh w19, [x2, x19]
cmp w19, w5
- beq .L1001
+ beq .L1018
add w1, w1, 1
and w1, w1, 65535
- b .L1002
-.L1000:
+ b .L1019
+.L1017:
add w1, w1, 1
strh w1, [x3, x20]
- b .L1001
+ b .L1018
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
.align 2
.global FtlRecoverySuperblock
@@ -7099,19 +7216,19 @@ FtlRecoverySuperblock:
stp x27, x28, [sp, 80]
ldrh w0, [x0]
cmp w0, w1
- beq .L1127
+ beq .L1148
ldrb w0, [x20, 6]
adrp x19, .LANCHOR0
str w0, [x29, 140]
add x0, x19, :lo12:.LANCHOR0
ldrh w26, [x20, 2]
- ldrh w0, [x0, 106]
+ ldrh w0, [x0, 314]
cmp w0, w26
- bne .L1013
+ bne .L1030
strh wzr, [x20, 4]
-.L1135:
+.L1155:
strb wzr, [x20, 6]
-.L1127:
+.L1148:
ldp x19, x20, [sp, 16]
mov w0, 0
ldp x21, x22, [sp, 32]
@@ -7120,105 +7237,105 @@ FtlRecoverySuperblock:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 160
ret
-.L1013:
+.L1030:
ldrh w0, [x20, 16]
mov w21, 0
-.L1014:
+.L1031:
cmp w0, w1
- beq .L1015
+ beq .L1032
mov w1, 1
bl FtlGetLastWrittenPage
mov w23, w0
cmn w0, #1
- beq .L1016
+ beq .L1033
add x0, x19, :lo12:.LANCHOR0
add x28, x20, 16
mov x3, x28
mov w22, 0
mov w10, 65535
mov w6, 4
- ldrh w1, [x0, 36]
- ldrh w8, [x0, 114]
+ ldrh w1, [x0, 244]
+ ldrh w8, [x0, 322]
add x1, x1, 8
- ldrh w9, [x0, 116]
+ ldrh w9, [x0, 324]
add x1, x20, x1, lsl 1
-.L1017:
+.L1034:
cmp x1, x3
- bne .L1021
+ bne .L1038
add x24, x19, :lo12:.LANCHOR0
mov w2, 0
mov w1, w22
ldr x0, [x24, 3440]
bl FlashReadPages
- ldr w21, [x24, 2624]
+ ldr w21, [x24, 2672]
ldr x4, [x24, 3440]
and w9, w23, 65535
sub w21, w21, #1
mov w7, 65535
mov x6, x4
mov w3, 0
-.L1022:
+.L1039:
cmp w22, w3
- bne .L1027
+ bne .L1044
add w22, w23, 1
ldr w0, [x4, 4]
and w22, w22, 65535
-.L1129:
+.L1150:
lsr w0, w0, 10
bl P2V_plane
and w27, w0, 65535
add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0, 106]
+ ldrh w0, [x0, 314]
cmp w0, w22
- bne .L1029
+ bne .L1046
strh w22, [x20, 2]
strb wzr, [x20, 6]
strh wzr, [x20, 4]
-.L1029:
+.L1046:
ldr w0, [x29, 140]
cmp w22, w26
ccmp w27, w0, 0, eq
- bne .L1030
-.L1136:
+ bne .L1047
+.L1156:
mov w2, w27
mov w1, w22
mov x0, x20
bl ftl_sb_update_avl_pages
- b .L1127
-.L1015:
+ b .L1148
+.L1032:
add w21, w21, 1
and w21, w21, 65535
add x0, x20, x21, sxtw 1
ldrh w0, [x0, 16]
- b .L1014
-.L1016:
- cbz w26, .L1018
+ b .L1031
+.L1033:
+ cbz w26, .L1035
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1800
add x1, x1, 520
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1018:
+.L1035:
ldr w0, [x29, 140]
cmp w0, 0
ccmp w21, w0, 4, ne
- beq .L1019
+ beq .L1036
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1801
add x1, x1, 520
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1019:
+.L1036:
strh wzr, [x20, 2]
- b .L1135
-.L1021:
+ b .L1155
+.L1038:
ldrh w2, [x3]
cmp w2, w10
- beq .L1020
+ beq .L1037
ldr x5, [x0, 3440]
ubfiz x7, x22, 5, 16
orr w2, w23, w2, lsl 10
@@ -7238,76 +7355,76 @@ FtlRecoverySuperblock:
sdiv w2, w2, w6
add x2, x5, x2, sxtw 2
str x2, [x4, 16]
-.L1020:
+.L1037:
add x3, x3, 2
- b .L1017
-.L1027:
+ b .L1034
+.L1044:
ldr w0, [x6]
- cbnz w0, .L1023
+ cbnz w0, .L1040
ldr x8, [x6, 16]
ldr w5, [x8, 4]
cmn w5, #1
- beq .L1024
- ldr w1, [x24, 2624]
+ beq .L1041
+ ldr w1, [x24, 2672]
mov w0, w5
bl ftl_cmp_data_ver
- cbz w0, .L1024
+ cbz w0, .L1041
add w5, w5, 1
- str w5, [x24, 2624]
-.L1024:
+ str w5, [x24, 2672]
+.L1041:
ldr w0, [x8]
cmn w0, #1
- bne .L1026
+ bne .L1043
ubfiz x3, x3, 5, 16
and w22, w23, 65535
add x3, x4, x3
ldr w0, [x3, 4]
- b .L1129
-.L1023:
+ b .L1150
+.L1040:
mov w7, w9
-.L1026:
+.L1043:
add w3, w3, 1
add x6, x6, 32
and w3, w3, 65535
- b .L1022
-.L1030:
+ b .L1039
+.L1047:
mov w0, 65535
cmp w7, w0
- bne .L1031
+ bne .L1048
ldrb w0, [x20, 8]
- cbnz w0, .L1032
-.L1031:
+ cbnz w0, .L1049
+.L1048:
add x0, x19, :lo12:.LANCHOR0
and w3, w23, 65535
ldr w1, [x0, 3724]
cmn w1, #1
- bne .L1033
+ bne .L1050
str w21, [x0, 3724]
-.L1033:
+.L1050:
add w0, w26, 7
cmp w0, w23, uxth
- bge .L1083
+ bge .L1098
sub w24, w3, #7
and w24, w24, 65535
-.L1034:
+.L1051:
add x25, x19, :lo12:.LANCHOR0
mov w4, 65535
-.L1035:
+.L1052:
cmp w24, w3
- bhi .L1042
- ldrh w0, [x25, 36]
+ bhi .L1059
+ ldrh w0, [x25, 244]
mov x1, x28
mov w23, 0
add x0, x0, 8
add x0, x20, x0, lsl 1
- b .L1043
-.L1083:
+ b .L1060
+.L1098:
mov w24, w26
- b .L1034
-.L1037:
+ b .L1051
+.L1054:
ldrh w2, [x1]
cmp w2, w4
- beq .L1036
+ beq .L1053
ldr x5, [x25, 3440]
ubfiz x6, x23, 5, 16
add w23, w23, 1
@@ -7315,11 +7432,11 @@ FtlRecoverySuperblock:
add x5, x5, x6
and w23, w23, 65535
str w2, [x5, 4]
-.L1036:
+.L1053:
add x1, x1, 2
-.L1043:
+.L1060:
cmp x0, x1
- bne .L1037
+ bne .L1054
ldr x0, [x25, 3440]
mov w1, w23
str w4, [x29, 120]
@@ -7333,47 +7450,47 @@ FtlRecoverySuperblock:
ldr w3, [x29, 128]
add x0, x1, 16
add x23, x1, x23
-.L1038:
+.L1055:
cmp x23, x0
- bne .L1041
+ bne .L1058
add w24, w24, 1
and w24, w24, 65535
- b .L1035
-.L1041:
+ b .L1052
+.L1058:
ldr w1, [x0, -16]
- cbnz w1, .L1032
+ cbnz w1, .L1049
ldr x1, [x0]
ldrh w2, [x1]
cmp w2, w4
- beq .L1040
+ beq .L1057
ldr w1, [x1, 4]
cmn w1, #1
- beq .L1040
+ beq .L1057
str w1, [x25, 3724]
-.L1040:
+.L1057:
add x0, x0, 32
- b .L1038
-.L1042:
+ b .L1055
+.L1059:
add x0, x19, :lo12:.LANCHOR0
mov w1, -1
str w1, [x0, 3724]
-.L1032:
+.L1049:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
- mov w25, w26
+ mov w24, w26
strh w0, [x19, 3760]
add x0, x19, 3768
str x0, [x29, 104]
-.L1044:
- ldrh w0, [x19, 36]
+.L1061:
+ ldrh w0, [x19, 244]
mov x1, x28
mov w23, 0
mov w4, 65535
add x0, x0, 8
add x0, x20, x0, lsl 1
-.L1045:
+.L1062:
cmp x0, x1
- bne .L1047
+ bne .L1064
ldr x0, [x19, 3440]
mov w1, w23
mov w2, 0
@@ -7385,43 +7502,43 @@ FtlRecoverySuperblock:
add x0, x0, 520
mov x23, 0
str x0, [x29, 120]
-.L1048:
+.L1065:
ldr x0, [x29, 112]
cmp x0, x23
- bne .L1077
- add w25, w25, 1
- ldrh w0, [x19, 106]
- and w25, w25, 65535
- cmp w0, w25
- bne .L1044
- ldrh w1, [x19, 36]
+ bne .L1092
+ add w24, w24, 1
+ ldrh w0, [x19, 314]
+ and w24, w24, 65535
+ cmp w0, w24
+ bne .L1061
+ ldrh w1, [x19, 244]
mov w0, 0
- strh w25, [x20, 2]
+ strh w24, [x20, 2]
mov w2, 65535
strh wzr, [x20, 4]
-.L1078:
+.L1093:
cmp w0, w1
- beq .L1127
+ beq .L1148
ldrh w3, [x28], 2
cmp w3, w2
- beq .L1079
+ beq .L1094
strb w0, [x20, 6]
- b .L1127
-.L1047:
+ b .L1148
+.L1064:
ldrh w2, [x1]
cmp w2, w4
- beq .L1046
+ beq .L1063
ldr x3, [x19, 3440]
ubfiz x5, x23, 5, 16
add w23, w23, 1
- orr w2, w25, w2, lsl 10
+ orr w2, w24, w2, lsl 10
add x3, x3, x5
and w23, w23, 65535
str w2, [x3, 4]
-.L1046:
+.L1063:
add x1, x1, 2
- b .L1045
-.L1077:
+ b .L1062
+.L1092:
ldr x4, [x19, 3440]
add x4, x4, x23
ldr w5, [x4, 4]
@@ -7429,66 +7546,66 @@ FtlRecoverySuperblock:
lsr w0, w5, 10
bl P2V_plane
and w0, w0, 65535
- cmp w25, w26
- bcc .L1049
+ cmp w24, w26
+ bcc .L1066
ldr w1, [x29, 140]
ccmp w1, w0, 0, eq
- bhi .L1049
- cmp w25, w22
+ bhi .L1066
+ cmp w24, w22
ccmp w27, w0, 0, eq
- beq .L1050
+ beq .L1067
ldr w0, [x4]
cmn w0, #1
- beq .L1051
+ beq .L1068
ldr x3, [x4, 16]
mov w0, 61589
ldrh w1, [x3]
cmp w1, w0
- beq .L1052
+ beq .L1069
ldrh w0, [x20]
-.L1133:
+.L1152:
bl decrement_vpc_count
- b .L1049
-.L1052:
+ b .L1066
+.L1069:
ldr w21, [x3, 4]
cmn w21, #1
- beq .L1053
- ldr w1, [x19, 2624]
+ beq .L1070
+ ldr w1, [x19, 2672]
mov w0, w21
str x3, [x29, 128]
bl ftl_cmp_data_ver
ldr x3, [x29, 128]
- cbz w0, .L1053
+ cbz w0, .L1070
add w0, w21, 1
- str w0, [x19, 2624]
-.L1053:
+ str w0, [x19, 2672]
+.L1070:
ldrh w1, [x3]
mov w0, 61589
cmp w1, w0
- beq .L1054
+ beq .L1071
ldr x1, [x29, 120]
mov w2, 1952
str x3, [x29, 128]
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
ldr x3, [x29, 128]
-.L1054:
- ldp w24, w0, [x3, 8]
+.L1071:
+ ldp w25, w0, [x3, 8]
add x1, x29, 152
str w0, [x29, 148]
mov w2, 0
- mov w0, w24
+ mov w0, w25
bl log2phys
ldr w1, [x19, 3724]
ldr w3, [x29, 148]
cmn w1, #1
- beq .L1055
+ beq .L1072
mov w0, w21
bl ftl_cmp_data_ver
- cbz w0, .L1055
+ cbz w0, .L1072
cmn w3, #1
- beq .L1056
+ beq .L1073
ldr x0, [x19, 3440]
mov w2, 0
mov w1, 1
@@ -7504,72 +7621,72 @@ FtlRecoverySuperblock:
add x3, x0, x23
ldr w0, [x0, x23]
cmn w0, #1
- bne .L1057
-.L1058:
+ bne .L1074
+.L1075:
mov w0, -1
str w0, [x29, 148]
-.L1065:
+.L1082:
ldr w4, [x29, 148]
cmn w4, #1
- beq .L1049
-.L1082:
+ beq .L1066
+.L1097:
lsr w0, w4, 10
bl P2V_block_in_plane
- and w24, w0, 65535
- ldrh w0, [x19, 44]
- mov w3, w24
- cmp w0, w24
- bhi .L1073
+ and w25, w0, 65535
+ ldrh w0, [x19, 252]
+ mov w3, w25
+ cmp w0, w25
+ bhi .L1088
ldr x1, [x29, 120]
- mov w2, 2065
- adrp x0, .LC1
- str w24, [x29, 128]
- add x0, x0, :lo12:.LC1
+ mov w2, 2057
+ adrp x0, .LC8
+ str w25, [x29, 128]
+ add x0, x0, :lo12:.LC8
bl sftl_printk
ldr w3, [x29, 128]
-.L1073:
- ldr x1, [x19, 2376]
- ubfiz x0, x24, 1, 16
+.L1088:
+ ldr x1, [x19, 80]
+ ubfiz x0, x25, 1, 16
ldrh w0, [x1, x0]
- cbz w0, .L1074
+ cbz w0, .L1089
mov w0, w3
- b .L1133
-.L1056:
+ b .L1152
+.L1073:
ldp w1, w0, [x29, 152]
cmp w1, w0
- bne .L1049
+ bne .L1066
mov w2, 1
add x1, x29, 148
- mov w0, w24
+ mov w0, w25
bl log2phys
-.L1049:
+.L1066:
add x23, x23, 32
- b .L1048
-.L1057:
+ b .L1065
+.L1074:
ldr w0, [x4, 8]
- cmp w24, w0
- bne .L1058
+ cmp w25, w0
+ bne .L1075
ldr w0, [x4, 4]
str w0, [x29, 128]
str x4, [x29, 96]
uxtw x1, w0
ldr w0, [x19, 3724]
bl ftl_cmp_data_ver
- cbz w0, .L1058
+ cbz w0, .L1075
ldp w0, w1, [x29, 152]
ldr x4, [x29, 96]
cmp w0, w1
ldr w1, [x29, 148]
- bne .L1060
-.L1130:
- mov w0, w24
+ bne .L1077
+.L1151:
+ mov w0, w25
bl FtlReUsePrevPpa
- b .L1058
-.L1060:
+ b .L1075
+.L1077:
cmp w0, w1
- beq .L1058
+ beq .L1075
cmn w0, #1
- beq .L1061
+ beq .L1078
ldr x4, [x3, 16]
mov w2, 0
str w0, [x3, 4]
@@ -7579,61 +7696,67 @@ FtlRecoverySuperblock:
add x0, x0, x23
bl FlashReadPages
ldr x4, [x29, 96]
-.L1062:
+.L1079:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldr x1, [x0, 3440]
ldr w1, [x1, x23]
cmn w1, #1
- beq .L1063
+ beq .L1080
ldr w3, [x4, 4]
ldr w0, [x0, 3724]
mov w1, w3
bl ftl_cmp_data_ver
- cbz w0, .L1063
+ cbz w0, .L1080
ldr w0, [x29, 128]
mov w1, w3
bl ftl_cmp_data_ver
- cbz w0, .L1058
-.L1063:
+ cbz w0, .L1075
+.L1080:
ldr w1, [x29, 148]
- b .L1130
-.L1061:
+ b .L1151
+.L1078:
str w0, [x3]
- b .L1062
-.L1055:
+ b .L1079
+.L1072:
ldp w1, w0, [x29, 152]
cmp w1, w0
- beq .L1065
- ldr w0, [x19, 52]
- cmp w0, w3, lsr 10
- bhi .L1067
+ beq .L1082
cmn w3, #1
-.L1132:
- bne .L1049
+ beq .L1084
+ ldr w0, [x19, 260]
+ cmp w0, w3, lsr 10
+ bhi .L1084
+ adrp x0, .LC109
+ mov w1, w3
+ add x0, x0, :lo12:.LC109
+.L1154:
+ bl sftl_printk
+ b .L1066
+.L1084:
mov w2, 1
add x1, x29, 156
- mov w0, w24
+ mov w0, w25
bl log2phys
ldr w4, [x29, 152]
cmn w4, #1
- beq .L1065
+ beq .L1082
ldr w0, [x29, 148]
cmp w4, w0
- beq .L1082
+ beq .L1097
lsr w0, w4, 10
bl P2V_block_in_plane
- ldrh w1, [x19, 2424]
+ ldrh w1, [x19, 32]
and w0, w0, 65535
cmp w1, w0
- beq .L1072
- ldrh w1, [x19, 2472]
+ beq .L1087
+ ldrh w1, [x19, 88]
cmp w1, w0
- beq .L1072
- ldrh w1, [x19, 2520]
+ beq .L1087
+ ldrh w1, [x19, 136]
cmp w1, w0
- bne .L1065
-.L1072:
+ bne .L1082
+.L1087:
ldr x0, [x19, 3440]
mov w2, 0
mov w1, 1
@@ -7645,77 +7768,59 @@ FtlRecoverySuperblock:
ldr x0, [x19, 3440]
ldr w0, [x0]
cmn w0, #1
- beq .L1065
+ beq .L1082
ldr x3, [x29, 128]
mov w0, w21
ldr w1, [x3, 4]
bl ftl_cmp_data_ver
- cbnz w0, .L1065
+ cbnz w0, .L1082
mov w2, 1
add x1, x29, 152
- mov w0, w24
+ mov w0, w25
bl log2phys
- b .L1065
-.L1067:
- ldr x0, [x19, 3440]
- mov w2, 0
- mov w1, 1
- str w3, [x0, 4]
- ldr x4, [x0, 16]
- ldr x0, [x19, 3440]
- str x4, [x29, 128]
- bl FlashReadPages
- ldr x4, [x29, 128]
- ldr w0, [x4, 8]
- cmp w24, w0
- bne .L1049
- ldrh w1, [x4]
- mov w0, 61589
- cmp w1, w0
- b .L1132
-.L1074:
- mov w1, w24
- adrp x0, .LC100
- add x0, x0, :lo12:.LC100
- bl sftl_printk
- b .L1049
-.L1051:
+ b .L1082
+.L1089:
+ adrp x0, .LC110
+ mov w1, w25
+ add x0, x0, :lo12:.LC110
+ b .L1154
+.L1068:
ldr w0, [x19, 3764]
cmp w0, 31
- bhi .L1075
+ bhi .L1090
ldr x1, [x29, 104]
str w5, [x1, w0, uxtw 2]
add w0, w0, 1
str w0, [x19, 3764]
-.L1075:
+.L1090:
ldrh w0, [x20]
bl decrement_vpc_count
ldr w0, [x19, 3724]
cmn w0, #1
- bne .L1076
-.L1134:
+ bne .L1091
+.L1153:
str w21, [x19, 3724]
- b .L1049
-.L1076:
+ b .L1066
+.L1091:
cmp w21, w0
- bcs .L1049
- b .L1134
-.L1079:
+ bcs .L1066
+ b .L1153
+.L1094:
add w0, w0, 1
and w0, w0, 65535
- b .L1078
-.L1050:
+ b .L1093
+.L1067:
strb w27, [x20, 6]
strh w22, [x20, 2]
- b .L1136
+ b .L1156
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 2
.global ftl_check_vpc
.type ftl_check_vpc, %function
ftl_check_vpc:
stp x29, x30, [sp, -128]!
- adrp x0, .LC101
- add x0, x0, :lo12:.LC101
+ adrp x0, .LC111
+ add x0, x0, :lo12:.LC111
add x29, sp, 0
stp x19, x20, [sp, 16]
adrp x20, .LANCHOR0
@@ -7735,49 +7840,49 @@ ftl_check_vpc:
mov w1, 0
mov x0, x19
bl ftl_memset
-.L1138:
- ldr w0, [x24, 2584]
+.L1158:
+ ldr w0, [x24, 2632]
cmp w23, w0
- bcc .L1140
- adrp x25, .LC102
+ bcc .L1160
+ adrp x25, .LC112
add x23, x20, :lo12:.LANCHOR0
add x26, x22, :lo12:check_vpc_table
- add x25, x25, :lo12:.LC102
+ add x25, x25, :lo12:.LC112
mov w24, 0
mov w19, 0
mov w4, 65535
-.L1141:
- ldrh w0, [x23, 44]
+.L1161:
+ ldrh w0, [x23, 252]
cmp w0, w19
- bhi .L1143
- ldr x19, [x23, 2408]
- cbz x19, .L1144
- ldr x0, [x23, 2360]
- adrp x25, .LC103
+ bhi .L1163
+ ldr x19, [x23, 2600]
+ cbz x19, .L1164
+ ldr x0, [x23, 2568]
+ adrp x25, .LC113
add x20, x20, :lo12:.LANCHOR0
add x22, x22, :lo12:check_vpc_table
sub x19, x19, x0
mov x0, -6148914691236517206
asr x19, x19, 1
movk x0, 0xaaab, lsl 0
- add x25, x25, :lo12:.LC103
- ldrh w26, [x23, 2416]
+ add x25, x25, :lo12:.LC113
+ ldrh w26, [x23, 236]
mov w27, 6
mov w23, 0
mul x19, x19, x0
and w19, w19, 65535
-.L1145:
+.L1165:
cmp w23, w26
- bne .L1147
-.L1144:
- cbz w24, .L1137
+ bne .L1167
+.L1164:
+ cbz w24, .L1157
add x1, x21, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2389
+ adrp x0, .LC8
+ mov w2, 2383
add x1, x1, 544
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1137:
+.L1157:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
@@ -7785,76 +7890,76 @@ ftl_check_vpc:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 128
ret
-.L1140:
+.L1160:
mov w2, 0
add x1, x29, 124
mov w0, w23
bl log2phys
ldr w0, [x29, 124]
cmn w0, #1
- beq .L1139
+ beq .L1159
lsr w0, w0, 10
bl P2V_block_in_plane
and x0, x0, 65535
ldrh w1, [x19, x0, lsl 1]
add w1, w1, 1
strh w1, [x19, x0, lsl 1]
-.L1139:
+.L1159:
add w23, w23, 1
- b .L1138
-.L1143:
- ldr x0, [x23, 2376]
+ b .L1158
+.L1163:
+ ldr x0, [x23, 80]
ubfiz x28, x19, 1, 16
sxtw x27, w19
ldrh w2, [x0, x28]
ldrh w3, [x26, x27, lsl 1]
cmp w2, w3
- beq .L1142
+ beq .L1162
mov x0, x25
str w4, [x29, 108]
mov w1, w19
bl sftl_printk
- ldr x0, [x23, 2376]
+ ldr x0, [x23, 80]
ldr w4, [x29, 108]
ldrh w0, [x0, x28]
cmp w0, w4
- beq .L1142
+ beq .L1162
ldrh w1, [x26, x27, lsl 1]
cmp w1, w0
csinc w24, w24, wzr, ls
-.L1142:
+.L1162:
add w19, w19, 1
and w19, w19, 65535
- b .L1141
-.L1147:
- ldr x1, [x20, 2376]
+ b .L1161
+.L1167:
+ ldr x1, [x20, 80]
ubfiz x0, x19, 1, 16
ldrh w2, [x1, x0]
- cbz w2, .L1146
+ cbz w2, .L1166
ldrh w3, [x22, w19, sxtw 1]
mov w24, 1
mov w1, w19
mov x0, x25
bl sftl_printk
-.L1146:
- ldr x0, [x20, 2360]
+.L1166:
+ ldr x0, [x20, 2568]
umull x19, w19, w27
ldrh w19, [x0, x19]
mov w0, 65535
cmp w19, w0
- beq .L1144
+ beq .L1164
add w23, w23, 1
and w23, w23, 65535
- b .L1145
+ b .L1165
.size ftl_check_vpc, .-ftl_check_vpc
.align 2
.global ftl_scan_all_data
.type ftl_scan_all_data, %function
ftl_scan_all_data:
sub sp, sp, #96
- adrp x0, .LC104
+ adrp x0, .LC114
mov w1, 0
- add x0, x0, :lo12:.LC104
+ add x0, x0, :lo12:.LC114
stp x29, x30, [sp, 16]
add x29, sp, 16
stp x21, x22, [sp, 48]
@@ -7865,33 +7970,33 @@ ftl_scan_all_data:
mov w20, 0
add x19, x21, 3728
bl sftl_printk
-.L1163:
+.L1183:
add x0, x22, :lo12:.LANCHOR0
- ldr w0, [x0, 2584]
+ ldr w0, [x0, 2632]
cmp w20, w0
- bcc .L1169
+ bcc .L1189
ldp x19, x20, [sp, 32]
ldp x21, x22, [sp, 48]
ldp x29, x30, [sp, 16]
ldr x23, [sp, 64]
add sp, sp, 96
ret
-.L1169:
+.L1189:
mov w2, 0
add x1, x29, 76
mov w0, w20
bl log2phys
tst x20, 2047
- bne .L1164
+ bne .L1184
ldr w2, [x29, 76]
- adrp x0, .LC105
+ adrp x0, .LC115
mov w1, w20
- add x0, x0, :lo12:.LC105
+ add x0, x0, :lo12:.LC115
bl sftl_printk
-.L1164:
+.L1184:
ldr w0, [x29, 76]
cmn w0, #1
- beq .L1166
+ beq .L1186
ldr x23, [x21, 3528]
mov w2, 0
stp wzr, w0, [x19]
@@ -7905,25 +8010,25 @@ ftl_scan_all_data:
ldr w0, [x19]
cmp w0, 256
ccmn w0, #1, 4, ne
- beq .L1167
+ beq .L1187
ldr w0, [x23, 8]
cmp w20, w0
- beq .L1166
-.L1167:
+ beq .L1186
+.L1187:
ldp x1, x0, [x19, 8]
ldr w2, [x1, 4]
str w2, [sp]
ldp w3, w4, [x0]
ldp w5, w6, [x0, 8]
- adrp x0, .LC106
+ adrp x0, .LC116
ldr w7, [x1]
- add x0, x0, :lo12:.LC106
+ add x0, x0, :lo12:.LC116
ldr w2, [x19, 4]
mov w1, w20
bl sftl_printk
-.L1166:
+.L1186:
add w20, w20, 1
- b .L1163
+ b .L1183
.size ftl_scan_all_data, .-ftl_scan_all_data
.align 2
.global FtlGcScanTempBlk
@@ -7932,195 +8037,202 @@ FtlGcScanTempBlk:
stp x29, x30, [sp, -160]!
add x29, sp, 0
stp x19, x20, [sp, 16]
- mov x19, x0
- stp x23, x24, [sp, 48]
- adrp x23, .LANCHOR2
- add x0, x23, :lo12:.LANCHOR2
- stp x25, x26, [sp, 64]
+ mov x20, x0
stp x21, x22, [sp, 32]
+ adrp x22, .LANCHOR2
+ add x0, x22, :lo12:.LANCHOR2
+ stp x25, x26, [sp, 64]
+ stp x23, x24, [sp, 48]
mov w25, w1
stp x27, x28, [sp, 80]
- ldrh w21, [x0, 4]
+ ldrh w28, [x0, 4]
mov w0, 65535
- cmp w21, w0
- beq .L1195
- cbnz w21, .L1172
-.L1173:
+ cmp w28, w0
+ beq .L1215
+ cbnz w28, .L1192
+.L1193:
bl FtlGcPageVarInit
- b .L1174
-.L1195:
- mov w21, 0
-.L1172:
- adrp x0, .LANCHOR0+106
- ldrh w0, [x0, #:lo12:.LANCHOR0+106]
+ b .L1194
+.L1215:
+ mov w28, 0
+.L1192:
+ adrp x0, .LANCHOR0+314
+ ldrh w0, [x0, #:lo12:.LANCHOR0+314]
cmp w0, w25
- beq .L1173
-.L1174:
+ beq .L1193
+.L1194:
adrp x26, .LANCHOR0
- add x20, x26, :lo12:.LANCHOR0
+ add x19, x26, :lo12:.LANCHOR0
mov w24, 0
-.L1175:
- ldrh w1, [x19]
+.L1209:
+ ldrh w1, [x20]
mov w0, 65535
- strb wzr, [x19, 8]
+ strb wzr, [x20, 8]
cmp w1, w0
- beq .L1176
-.L1192:
+ beq .L1195
+.L1212:
add x0, x26, :lo12:.LANCHOR0
- add x2, x19, 16
- mov w22, 0
- mov w9, 65535
- mov w5, 4
- ldrh w7, [x0, 114]
- ldrh w8, [x0, 116]
- ldrh w0, [x0, 36]
+ add x2, x20, 16
+ mov w21, 0
+ mov w10, 65535
+ mov w6, 4
+ ldrh w8, [x0, 322]
+ ldrh w9, [x0, 324]
+ ldrh w0, [x0, 244]
add x0, x0, 8
- add x0, x19, x0, lsl 1
-.L1177:
+ add x0, x20, x0, lsl 1
+.L1196:
cmp x0, x2
- bne .L1179
- ldr x0, [x20, 3440]
- mov w1, w22
+ bne .L1198
+ ldr x0, [x19, 3440]
mov w2, 0
- ubfiz x22, x22, 5, 16
- mov x27, 0
+ mov w1, w21
+ mov x23, 0
bl FlashReadPages
-.L1180:
- cmp x22, x27
- bne .L1190
- add w21, w21, 1
+ ubfiz x0, x21, 5, 16
+ str x0, [x29, 104]
+.L1199:
+ ldr x0, [x29, 104]
+ cmp x0, x23
+ bne .L1210
+ add w3, w28, 1
add w24, w24, 1
- and w21, w21, 65535
+ and w28, w3, 65535
cmp w25, w24
- bls .L1191
-.L1193:
- ldrh w0, [x20, 106]
- cmp w0, w21
- bhi .L1192
-.L1176:
- add x23, x23, :lo12:.LANCHOR2
- strh w21, [x19, 2]
- strb wzr, [x19, 6]
+ bls .L1211
+.L1213:
+ ldrh w0, [x19, 314]
+ cmp w0, w28
+ bhi .L1212
+.L1195:
+ add x22, x22, :lo12:.LANCHOR2
+ strh w28, [x20, 2]
+ strb wzr, [x20, 6]
mov w0, -1
mov w2, 0
- mov w1, w21
- strh w0, [x23, 4]
- mov x0, x19
+ mov w1, w28
+ strh w0, [x22, 4]
+ mov x0, x20
bl ftl_sb_update_avl_pages
- b .L1194
-.L1179:
+ b .L1214
+.L1198:
ldrh w1, [x2]
- cmp w1, w9
- beq .L1178
- ldr x4, [x20, 3440]
- ubfiz x6, x22, 5, 16
- orr w1, w21, w1, lsl 10
- add x4, x4, x6
- str w1, [x4, 4]
- mul w1, w22, w7
- ldr x3, [x20, 3440]
- ldr x4, [x20, 3264]
- sdiv w1, w1, w5
- add x3, x3, x6
- add x1, x4, x1, sxtw 2
- str x1, [x3, 8]
- mul w1, w22, w8
- ldr x4, [x20, 3272]
- add w22, w22, 1
- and w22, w22, 65535
- sdiv w1, w1, w5
- add x1, x4, x1, sxtw 2
- str x1, [x3, 16]
-.L1178:
+ cmp w1, w10
+ beq .L1197
+ ldr x5, [x19, 3440]
+ ubfiz x7, x21, 5, 16
+ orr w1, w28, w1, lsl 10
+ add x5, x5, x7
+ str w1, [x5, 4]
+ mul w1, w21, w8
+ ldr x4, [x19, 3440]
+ ldr x5, [x19, 3264]
+ sdiv w1, w1, w6
+ add x4, x4, x7
+ add x1, x5, x1, sxtw 2
+ str x1, [x4, 8]
+ mul w1, w21, w9
+ ldr x5, [x19, 3272]
+ add w21, w21, 1
+ and w21, w21, 65535
+ sdiv w1, w1, w6
+ add x1, x5, x1, sxtw 2
+ str x1, [x4, 16]
+.L1197:
add x2, x2, 2
- b .L1177
-.L1190:
- ldr x1, [x20, 3440]
- add x0, x1, x27
- ldr w1, [x1, x27]
- ldr w2, [x0, 4]
- str w2, [x29, 108]
- cbnz w1, .L1181
- ldr x28, [x0, 16]
+ b .L1196
+.L1210:
+ ldr x0, [x19, 3440]
+ add x1, x0, x23
+ ldr w0, [x0, x23]
+ ldr w27, [x1, 4]
+ ldr x21, [x1, 16]
+ cbnz w0, .L1200
+ ldrh w0, [x21]
mov w1, 65535
- ldrh w0, [x28]
cmp w0, w1
- bne .L1182
-.L1181:
- ldrh w1, [x19]
- mov w21, 0
- ldr x0, [x20, 2376]
+ bne .L1201
+.L1225:
+ ldrh w1, [x20]
+ mov w28, 0
+ ldr x0, [x19, 80]
strh wzr, [x0, x1, lsl 1]
- ldrh w0, [x19]
+ ldrh w0, [x20]
bl INSERT_FREE_LIST
mov w0, -1
- strh w0, [x19]
+ strh w0, [x20]
+ strh w0, [x19, 184]
bl FtlGcPageVarInit
- b .L1175
-.L1182:
- ldr w1, [x20, 2584]
- ldr w0, [x28, 8]
+ b .L1209
+.L1201:
+ ldr w1, [x19, 2632]
+ ldr w0, [x21, 8]
cmp w0, w1
- bhi .L1181
+ bhi .L1225
add x1, x29, 124
mov w2, 0
bl log2phys
- ldr w0, [x28, 12]
+ ldr w0, [x21, 12]
ldr w1, [x29, 124]
cmp w0, w1
- beq .L1185
-.L1186:
- ldp w2, w0, [x28, 8]
- add x27, x27, 32
- ldr w1, [x29, 108]
+ beq .L1204
+.L1206:
+ ldr w2, [x21, 8]
+.L1226:
+ ldr w0, [x21, 12]
+ mov w1, w27
+ add x23, x23, 32
bl FtlGcUpdatePage
- b .L1180
-.L1185:
+ b .L1199
+.L1204:
cmn w0, #1
- beq .L1186
+ beq .L1206
str w0, [x29, 132]
mov w2, 0
- ldr x0, [x20, 3496]
+ ldr x0, [x19, 3496]
mov w1, 1
str x0, [x29, 136]
- ldr x0, [x20, 3536]
+ ldr x0, [x19, 3536]
str x0, [x29, 144]
add x0, x29, 128
bl FlashReadPages
- ldrh w1, [x20, 62]
+ ldrh w1, [x19, 270]
mov x0, 0
- ldr x2, [x20, 3440]
+ ldr x2, [x19, 3440]
ldr x5, [x29, 136]
ubfiz x1, x1, 9, 16
- add x2, x2, x27
-.L1187:
+ add x2, x2, x23
+.L1207:
cmp x0, x1
- beq .L1186
+ beq .L1206
ldr x6, [x2, 8]
ldr w7, [x6, x0]
add x0, x0, 4
add x6, x5, x0
ldr w6, [x6, -4]
cmp w7, w6
- beq .L1187
- ldrh w1, [x19]
- adrp x0, .LC107
+ beq .L1207
+ ldrh w1, [x20]
+ adrp x0, .LC117
ldr w2, [x29, 132]
- add x0, x0, :lo12:.LC107
+ add x0, x0, :lo12:.LC117
bl sftl_printk
- b .L1181
-.L1191:
- add x1, x23, :lo12:.LANCHOR2
+ b .L1225
+.L1200:
+ mov w2, -1
+ b .L1226
+.L1211:
+ add x1, x22, :lo12:.LANCHOR2
mov w2, 65535
ldrh w0, [x1, 4]
cmp w0, w2
- beq .L1193
+ beq .L1213
add w0, w0, w24
strh w0, [x1, 4]
- ldrh w0, [x20, 106]
- cmp w0, w21
- bls .L1193
-.L1194:
+ ldrh w0, [x19, 314]
+ cmp w0, w28
+ bls .L1213
+.L1214:
ldp x19, x20, [sp, 16]
mov w0, -1
ldp x21, x22, [sp, 32]
@@ -8138,31 +8250,39 @@ FtlReadRefresh:
add x0, x1, :lo12:.LANCHOR0
add x2, x0, 2720
ldr w3, [x2, 80]
- cbz w3, .L1206
- ldr w1, [x0, 2584]
+ cbz w3, .L1228
+ ldr w1, [x0, 2632]
ldr w3, [x2, 84]
cmp w3, w1
- bcs .L1207
+ bcs .L1229
stp x29, x30, [sp, -160]!
add x29, sp, 0
stp x19, x20, [sp, 16]
mov x19, x0
mov w20, 2048
str x21, [sp, 32]
-.L1212:
- ldr w1, [x19, 2584]
- ldr w0, [x19, 2804]
+.L1234:
+ add x21, x19, 2720
+ ldr w1, [x19, 2632]
+ ldr w0, [x21, 84]
cmp w0, w1
- bcs .L1209
+ bcc .L1230
+.L1233:
+ ldp x19, x20, [sp, 16]
+ mov w0, -1
+ ldr x21, [sp, 32]
+ ldp x29, x30, [sp], 160
+ ret
+.L1230:
add x1, x29, 60
mov w2, 0
bl log2phys
- ldr w0, [x19, 2804]
+ ldr w0, [x21, 84]
ldr w1, [x29, 60]
add w0, w0, 1
- str w0, [x19, 2804]
+ str w0, [x21, 84]
cmn w1, #1
- beq .L1210
+ beq .L1232
str w0, [x29, 88]
mov w2, 0
ldr x0, [x19, 3512]
@@ -8176,50 +8296,60 @@ FtlReadRefresh:
bl FlashReadPages
ldr w0, [x29, 64]
cmp w0, 256
- bne .L1209
+ bne .L1233
ldr w0, [x29, 60]
lsr w0, w0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1209:
- ldp x19, x20, [sp, 16]
- mov w0, -1
- ldr x21, [sp, 32]
- ldp x29, x30, [sp], 160
- ret
-.L1210:
+ b .L1233
+.L1232:
subs w20, w20, #1
- bne .L1212
- b .L1209
-.L1207:
- ldr w0, [x0, 2588]
+ bne .L1234
+ b .L1233
+.L1229:
+ ldr w0, [x0, 2636]
stp w0, wzr, [x2, 76]
str wzr, [x2, 84]
-.L1216:
+.L1241:
mov w0, 0
ret
-.L1206:
- ldr w3, [x0, 2588]
- ldr w5, [x2, 76]
- add w2, w3, 1048576
- cmp w5, w2
- bhi .L1215
- ldr w2, [x0, 2644]
- lsr w4, w2, 10
- mov w2, 33554432
- asr w2, w2, w4
- add w2, w2, w5
- cmp w3, w2
- bhi .L1215
- ldrb w0, [x0, 2340]
- cbnz w0, .L1216
-.L1215:
+.L1228:
+ ldr w4, [x0, 2692]
+ mov w3, 10000
+ ldr w5, [x0, 2636]
+ mov w6, 31
+ cmp w4, w3
+ ldr w7, [x2, 76]
+ mov w3, 63
+ csel w6, w6, w3, hi
+ add w3, w5, 1048576
+ cmp w7, w3
+ bhi .L1238
+ ldr w3, [x0, 2632]
+ mov w8, 1000
+ lsr w4, w4, 10
+ add w4, w4, 1
+ mul w3, w3, w8
+ udiv w3, w3, w4
+ add w3, w3, w7
+ cmp w5, w3
+ bhi .L1238
+ ldrh w0, [x0, 2548]
+ tst w6, w0
+ bne .L1241
+ ldr w2, [x2, 100]
+ cmp w0, w2
+ beq .L1241
+.L1238:
add x0, x1, :lo12:.LANCHOR0
- mov w1, 1
- str w3, [x0, 2796]
- str w1, [x0, 2800]
- str wzr, [x0, 2804]
- b .L1216
+ add x1, x0, 2720
+ ldrh w0, [x0, 2548]
+ str w0, [x1, 100]
+ str w5, [x1, 76]
+ mov w0, 1
+ str wzr, [x1, 84]
+ str w0, [x1, 80]
+ b .L1241
.size FtlReadRefresh, .-FtlReadRefresh
.align 2
.global l2p_flush
@@ -8232,26 +8362,26 @@ l2p_flush:
add x20, x20, :lo12:.LANCHOR0
mov w19, 0
bl FtlWriteDump_data
-.L1223:
- ldrh w0, [x20, 142]
+.L1248:
+ ldrh w0, [x20, 350]
cmp w0, w19
- bhi .L1225
+ bhi .L1250
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L1225:
- ldr x1, [x20, 2568]
+.L1250:
+ ldr x1, [x20, 2616]
ubfiz x0, x19, 4, 16
add x0, x1, x0
ldr w0, [x0, 4]
- tbz w0, #31, .L1224
+ tbz w0, #31, .L1249
mov w0, w19
bl flush_l2p_region
-.L1224:
+.L1249:
add w19, w19, 1
and w19, w19, 65535
- b .L1223
+ b .L1248
.size l2p_flush, .-l2p_flush
.align 2
.global FtlVendorPartWrite
@@ -8268,19 +8398,19 @@ FtlVendorPartWrite:
mov w28, w0
add w1, w0, w1
stp x23, x24, [sp, 48]
- ldrh w0, [x19, 100]
+ ldrh w0, [x19, 308]
stp x25, x26, [sp, 64]
cmp w1, w0
- bhi .L1235
- ldrh w23, [x19, 112]
+ bhi .L1260
+ ldrh w23, [x19, 320]
mov x25, x2
add x26, x29, 144
add x27, x19, 3896
mov w24, 0
lsr w23, w28, w23
-.L1229:
- cbnz w22, .L1234
-.L1227:
+.L1254:
+ cbnz w22, .L1259
+.L1252:
mov w0, w24
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -8289,8 +8419,8 @@ FtlVendorPartWrite:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 208
ret
-.L1234:
- ldrh w1, [x19, 62]
+.L1259:
+ ldrh w1, [x19, 270]
ldr x0, [x19, 3608]
udiv w21, w28, w1
ldr w2, [x0, w23, uxtw 2]
@@ -8300,9 +8430,9 @@ FtlVendorPartWrite:
and w20, w20, 65535
cmp w22, w20
csel w20, w0, w20, cc
- cbz w2, .L1231
+ cbz w2, .L1256
cmp w20, w1
- beq .L1231
+ beq .L1256
ldr x0, [x19, 3480]
str w2, [x29, 116]
mov w2, 1
@@ -8310,7 +8440,7 @@ FtlVendorPartWrite:
mov w1, w2
add x0, x29, 112
bl FlashReadPages
-.L1232:
+.L1257:
lsl w3, w20, 9
ldr x0, [x19, 3480]
lsl w21, w21, 9
@@ -8331,16 +8461,16 @@ FtlVendorPartWrite:
ldr w3, [x29, 108]
csinv w24, w24, wzr, ne
add x25, x25, x3, sxtw
- b .L1229
-.L1231:
- ldrh w2, [x19, 114]
+ b .L1254
+.L1256:
+ ldrh w2, [x19, 322]
mov w1, 0
ldr x0, [x19, 3480]
bl ftl_memset
- b .L1232
-.L1235:
+ b .L1257
+.L1260:
mov w24, -1
- b .L1227
+ b .L1252
.size FtlVendorPartWrite, .-FtlVendorPartWrite
.align 2
.global Ftl_save_ext_data
@@ -8352,42 +8482,42 @@ Ftl_save_ext_data:
movk w1, 0x4654, lsl 16
ldr w3, [x0, 2720]
cmp w3, w1
- bne .L1243
+ bne .L1268
stp x29, x30, [sp, -16]!
add x2, x0, 2720
mov w1, 72
add x29, sp, 0
movk w1, 0x5000, lsl 16
str w1, [x2, 4]
- ldr w1, [x0, 2612]
+ ldr w1, [x0, 2660]
str w1, [x2, 88]
- ldr w1, [x0, 2616]
+ ldr w1, [x0, 2664]
str w1, [x2, 92]
- ldr w1, [x0, 2608]
+ ldr w1, [x0, 2656]
str w1, [x2, 8]
- ldr w1, [x0, 2596]
+ ldr w1, [x0, 2644]
str w1, [x2, 12]
- ldr w1, [x0, 2588]
+ ldr w1, [x0, 2636]
str w1, [x2, 16]
- ldr w1, [x0, 2604]
+ ldr w1, [x0, 2652]
str w1, [x2, 20]
- ldr w1, [x0, 2632]
+ ldr w1, [x0, 2680]
str w1, [x2, 28]
- ldr w1, [x0, 2640]
+ ldr w1, [x0, 2688]
str w1, [x2, 32]
- ldr w1, [x0, 2592]
+ ldr w1, [x0, 2640]
str w1, [x2, 36]
- ldr w1, [x0, 2600]
+ ldr w1, [x0, 2648]
str w1, [x2, 40]
- ldr w1, [x0, 2644]
- ldr w0, [x0, 2648]
+ ldr w1, [x0, 2692]
+ ldr w0, [x0, 2696]
stp w1, w0, [x2, 44]
mov w1, 1
mov w0, 0
bl FtlVendorPartWrite
ldp x29, x30, [sp], 16
ret
-.L1243:
+.L1268:
ret
.size Ftl_save_ext_data, .-Ftl_save_ext_data
.align 2
@@ -8398,20 +8528,20 @@ FtlEctTblFlush:
add x3, x1, :lo12:.LANCHOR0
ldrh w2, [x3, 3960]
cmp w2, 31
- bhi .L1250
+ bhi .L1275
add w2, w2, 1
strh w2, [x3, 3960]
mov w2, 1
-.L1247:
- cbnz w0, .L1248
+.L1272:
+ cbnz w0, .L1273
add x0, x1, :lo12:.LANCHOR0
ldr x0, [x0, 3560]
ldr w3, [x0, 20]
ldr w0, [x0, 16]
add w2, w2, w3
cmp w0, w2
- bcc .L1252
-.L1248:
+ bcc .L1277
+.L1273:
add x0, x1, :lo12:.LANCHOR0
stp x29, x30, [sp, -16]!
add x29, sp, 0
@@ -8436,10 +8566,10 @@ FtlEctTblFlush:
mov w0, 0
ldp x29, x30, [sp], 16
ret
-.L1250:
+.L1275:
mov w2, 32
- b .L1247
-.L1252:
+ b .L1272
+.L1277:
mov w0, 0
ret
.size FtlEctTblFlush, .-FtlEctTblFlush
@@ -8470,19 +8600,19 @@ FtlVendorPartRead:
mov w23, w0
stp x25, x26, [sp, 64]
stp x27, x28, [sp, 80]
- ldrh w0, [x3, 100]
+ ldrh w0, [x3, 308]
cmp w1, w0
- bhi .L1265
- ldrh w21, [x3, 112]
- adrp x26, .LC108
+ bhi .L1290
+ ldrh w21, [x3, 320]
+ adrp x26, .LC118
mov x25, x2
mov x28, x3
- add x26, x26, :lo12:.LC108
+ add x26, x26, :lo12:.LC118
mov w24, 0
lsr w21, w23, w21
-.L1258:
- cbnz w22, .L1264
-.L1256:
+.L1283:
+ cbnz w22, .L1289
+.L1281:
mov w0, w24
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -8491,8 +8621,8 @@ FtlVendorPartRead:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 208
ret
-.L1264:
- ldrh w19, [x28, 62]
+.L1289:
+ ldrh w19, [x28, 270]
ldr x0, [x28, 3608]
udiv w20, w23, w19
ldr w4, [x0, w21, uxtw 2]
@@ -8503,7 +8633,7 @@ FtlVendorPartRead:
cmp w22, w19
csel w19, w0, w19, cc
lsl w27, w19, 9
- cbz w4, .L1260
+ cbz w4, .L1285
ldr x0, [x28, 3480]
mov w2, 1
str x0, [x29, 120]
@@ -8519,7 +8649,7 @@ FtlVendorPartRead:
ldr w0, [x28, 3728]
csinv w24, w24, wzr, ne
cmp w0, 256
- bne .L1262
+ bne .L1287
mov w2, w4
mov w1, w21
mov x0, x26
@@ -8528,7 +8658,7 @@ FtlVendorPartRead:
mov w1, w21
add x0, x28, 3896
bl FtlMapWritePage
-.L1262:
+.L1287:
ldr x1, [x28, 3480]
lsl w20, w20, 9
asr w20, w20, 2
@@ -8536,21 +8666,21 @@ FtlVendorPartRead:
mov x0, x25
add x1, x1, x20, sxtw 2
bl ftl_memcpy
-.L1263:
+.L1288:
add w21, w21, 1
sub w22, w22, w19
add w23, w23, w19
add x25, x25, x27, sxtw
- b .L1258
-.L1260:
+ b .L1283
+.L1285:
mov w2, w27
mov w1, 0
mov x0, x25
bl ftl_memset
- b .L1263
-.L1265:
+ b .L1288
+.L1290:
mov w24, -1
- b .L1256
+ b .L1281
.size FtlVendorPartRead, .-FtlVendorPartRead
.align 2
.global FtlLoadEctTbl
@@ -8570,18 +8700,18 @@ FtlLoadEctTbl:
mov w0, 17221
movk w0, 0x4254, lsl 16
cmp w1, w0
- beq .L1268
- adrp x1, .LC109
- adrp x0, .LC71
- add x1, x1, :lo12:.LC109
- add x0, x0, :lo12:.LC71
+ beq .L1293
+ adrp x1, .LC119
+ adrp x0, .LC77
+ add x1, x1, :lo12:.LC119
+ add x0, x0, :lo12:.LC77
bl sftl_printk
ldr x0, [x19, 3560]
mov w1, 0
ldrh w2, [x19, 3544]
lsl w2, w2, 9
bl ftl_memset
-.L1268:
+.L1293:
mov w0, 0
ldr x19, [sp, 16]
ldp x29, x30, [sp], 32
@@ -8606,52 +8736,52 @@ Ftl_load_ext_data:
ldr w0, [x20, 2720]
movk w21, 0x4654, lsl 16
cmp w0, w21
- beq .L1271
+ beq .L1296
mov w2, 512
mov w1, 0
mov x0, x22
bl ftl_memset
str w21, [x20, 2720]
-.L1271:
+.L1296:
add x0, x19, :lo12:.LANCHOR0
mov w2, 19539
movk w2, 0x4654, lsl 16
ldr w3, [x0, 2720]
cmp w3, w2
- bne .L1272
+ bne .L1297
ldr w2, [x0, 2808]
- str w2, [x0, 2612]
+ str w2, [x0, 2660]
ldr w2, [x0, 2812]
- str w2, [x0, 2616]
+ str w2, [x0, 2664]
ldr w2, [x0, 2728]
- str w2, [x0, 2608]
+ str w2, [x0, 2656]
ldr w2, [x0, 2732]
- str w2, [x0, 2596]
+ str w2, [x0, 2644]
ldr w2, [x0, 2736]
- str w2, [x0, 2588]
+ str w2, [x0, 2636]
ldr w2, [x0, 2740]
- str w2, [x0, 2604]
+ str w2, [x0, 2652]
ldr w2, [x0, 2748]
- str w2, [x0, 2632]
+ str w2, [x0, 2680]
ldr w2, [x0, 2752]
- str w2, [x0, 2640]
+ str w2, [x0, 2688]
ldr w2, [x0, 2756]
- str w2, [x0, 2592]
+ str w2, [x0, 2640]
ldr w2, [x0, 2760]
ldr w1, [x0, 2768]
- str w2, [x0, 2600]
+ str w2, [x0, 2648]
ldr w2, [x0, 2764]
- str w1, [x0, 2648]
- str w2, [x0, 2644]
-.L1272:
+ str w1, [x0, 2696]
+ str w2, [x0, 2692]
+.L1297:
add x0, x19, :lo12:.LANCHOR0
- ldr w2, [x0, 2632]
- ldrh w1, [x0, 96]
- ldr w3, [x0, 2628]
+ ldr w2, [x0, 2680]
+ ldrh w1, [x0, 304]
+ ldr w3, [x0, 2676]
madd w1, w1, w3, w2
- ldrh w2, [x0, 44]
+ ldrh w2, [x0, 252]
udiv w1, w1, w2
- str w1, [x0, 2636]
+ str w1, [x0, 2684]
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x29, x30, [sp], 48
@@ -8673,7 +8803,7 @@ sftl_vendor_read:
.type FtlMapBlkWriteDump_data, %function
FtlMapBlkWriteDump_data:
ldr w1, [x0, 56]
- cbz w1, .L1284
+ cbz w1, .L1309
stp x29, x30, [sp, -48]!
adrp x1, .LANCHOR0
add x2, x1, :lo12:.LANCHOR0
@@ -8694,11 +8824,11 @@ FtlMapBlkWriteDump_data:
str wzr, [x19, 56]
ldr w4, [x5, x4]
str w4, [x0, 4]
- cbz w4, .L1278
+ cbz w4, .L1303
mov w2, 1
mov w1, w2
bl FlashReadPages
-.L1279:
+.L1304:
add x1, x21, :lo12:.LANCHOR0
mov x0, x19
ldr x2, [x1, 3736]
@@ -8708,13 +8838,13 @@ FtlMapBlkWriteDump_data:
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 48
ret
-.L1278:
- ldrh w2, [x2, 114]
+.L1303:
+ ldrh w2, [x2, 322]
mov w1, 255
mov x0, x3
bl ftl_memset
- b .L1279
-.L1284:
+ b .L1304
+.L1309:
ret
.size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
.align 2
@@ -8729,63 +8859,63 @@ FtlVpcTblFlush:
add x19, x23, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
stp x25, x26, [sp, 64]
- add x20, x19, 2312
- add x25, x19, 2656
+ add x20, x19, 2520
+ add x25, x19, 2704
mov w22, 0
ldr x21, [x19, 3528]
mov w24, 65535
ldr x0, [x19, 3464]
str x0, [x19, 3736]
- ldrh w0, [x19, 2656]
+ ldrh w0, [x19, 2704]
str x21, [x19, 3744]
strh w0, [x21, 2]
mov w0, -3932
strh w0, [x21]
str wzr, [x21, 12]
- ldr w0, [x19, 2664]
+ ldr w0, [x19, 2712]
stp w0, wzr, [x21, 4]
mov w0, 19539
- ldrh w1, [x19, 2424]
+ ldrh w1, [x19, 32]
movk w0, 0x4654, lsl 16
- str w0, [x19, 2312]
+ str w0, [x19, 2520]
mov w0, 72
- ldrb w2, [x19, 2430]
- strh w1, [x19, 2326]
+ ldrb w2, [x19, 38]
+ strh w1, [x19, 2534]
movk w0, 0x5000, lsl 16
- ldrh w1, [x19, 2426]
- str w0, [x19, 2316]
- ldrh w0, [x19, 2662]
- strh w0, [x19, 2320]
+ ldrh w1, [x19, 34]
+ str w0, [x19, 2524]
+ ldrh w0, [x19, 2710]
+ strh w0, [x19, 2528]
orr w1, w2, w1, lsl 6
- ldrh w0, [x19, 58]
- strb w0, [x19, 2322]
- strh w1, [x19, 2328]
- ldrh w1, [x19, 2472]
- ldrb w2, [x19, 2478]
- strh w1, [x19, 2330]
- ldrh w1, [x19, 2474]
- ldrb w0, [x19, 2432]
- strb w0, [x19, 2323]
+ ldrh w0, [x19, 266]
+ strb w0, [x19, 2530]
+ strh w1, [x19, 2536]
+ ldrh w1, [x19, 88]
+ ldrb w2, [x19, 94]
+ strh w1, [x19, 2538]
+ ldrh w1, [x19, 90]
+ ldrb w0, [x19, 40]
+ strb w0, [x19, 2531]
orr w1, w2, w1, lsl 6
- ldrb w0, [x19, 2480]
- strh w1, [x19, 2332]
- strb w0, [x19, 2324]
- ldrh w1, [x19, 2520]
- ldrb w0, [x19, 2528]
- ldrb w2, [x19, 2526]
- strh w1, [x19, 2334]
- strb w0, [x19, 2325]
- ldrh w1, [x19, 2522]
- ldr w0, [x19, 2628]
- str w0, [x19, 2344]
- ldr w0, [x19, 2620]
+ ldrb w0, [x19, 96]
+ strh w1, [x19, 2540]
+ strb w0, [x19, 2532]
+ ldrh w1, [x19, 136]
+ ldrb w0, [x19, 144]
+ ldrb w2, [x19, 142]
+ strh w1, [x19, 2542]
+ strb w0, [x19, 2533]
+ ldrh w1, [x19, 138]
+ ldr w0, [x19, 2676]
+ str w0, [x19, 2552]
+ ldr w0, [x19, 2668]
orr w1, w2, w1, lsl 6
- str w0, [x19, 2352]
- ldr w0, [x19, 2624]
- ldrh w2, [x19, 114]
- str w0, [x19, 2348]
+ str w0, [x19, 2560]
+ ldr w0, [x19, 2672]
+ ldrh w2, [x19, 322]
+ str w0, [x19, 2556]
ldr x0, [x19, 3736]
- strh w1, [x19, 2336]
+ strh w1, [x19, 2544]
mov w1, 255
bl ftl_memset
ldr x0, [x19, 3736]
@@ -8796,13 +8926,13 @@ FtlVpcTblFlush:
add x25, x25, :lo12:.LANCHOR1
add x25, x25, 560
bl ftl_memcpy
- ldr x1, [x19, 2376]
- ldrh w2, [x19, 44]
+ ldr x1, [x19, 80]
+ ldrh w2, [x19, 252]
ldr x0, [x19, 3736]
lsl w2, w2, 1
add x0, x0, 48
bl ftl_memcpy
- ldrh w0, [x19, 44]
+ ldrh w0, [x19, 252]
ldr x3, [x19, 3736]
ldr x1, [x19, 24]
lsr w2, w0, 3
@@ -8814,7 +8944,7 @@ FtlVpcTblFlush:
bl ftl_memcpy
mov w0, 0
bl FtlUpdateVaildLpn
-.L1288:
+.L1313:
ldrh w2, [x20, 2]
ldrh w1, [x20]
ldr x0, [x19, 3464]
@@ -8823,25 +8953,25 @@ FtlVpcTblFlush:
str x0, [x19, 3744]
orr w0, w2, w1, lsl 10
str w0, [x19, 3732]
- ldrh w0, [x19, 108]
+ ldrh w0, [x19, 316]
sub w0, w0, #1
cmp w2, w0
- blt .L1289
+ blt .L1314
ldrh w24, [x20, 4]
strh wzr, [x20, 2]
strh w1, [x20, 4]
bl FtlFreeSysBlkQueueOut
- ldr w1, [x19, 2620]
+ ldr w1, [x19, 2668]
str w1, [x20, 8]
add w2, w1, 1
- str w2, [x19, 2620]
+ str w2, [x19, 2668]
ubfiz w2, w0, 10, 16
str w2, [x19, 3732]
strh w0, [x20]
strh w0, [x21, 2]
str w1, [x21, 4]
-.L1289:
- ldrh w1, [x19, 114]
+.L1314:
+ ldrh w1, [x19, 322]
ldr x0, [x19, 3464]
bl js_hash
str w0, [x21, 12]
@@ -8856,46 +8986,46 @@ FtlVpcTblFlush:
and w0, w0, 65535
strh w0, [x20, 2]
cmn w1, #1
- bne .L1290
+ bne .L1315
cmp w0, 1
- bne .L1291
- adrp x0, .LC1
+ bne .L1316
+ adrp x0, .LC8
mov w2, 1138
mov x1, x25
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1291:
+.L1316:
ldrh w0, [x20, 2]
cmp w0, 1
- bne .L1292
- ldrh w0, [x19, 108]
+ bne .L1317
+ ldrh w0, [x19, 316]
sub w0, w0, #1
strh w0, [x20, 2]
-.L1292:
+.L1317:
add w22, w22, 1
and w22, w22, 65535
cmp w22, 3
- bls .L1288
+ bls .L1313
add x23, x23, :lo12:.LANCHOR0
- adrp x0, .LC110
+ adrp x0, .LC120
mov w2, w22
- add x0, x0, :lo12:.LC110
+ add x0, x0, :lo12:.LC120
ldr w1, [x23, 3732]
bl sftl_printk
-.L1294:
- b .L1294
-.L1290:
+.L1319:
+ b .L1319
+.L1315:
cmp w0, 1
- beq .L1288
+ beq .L1313
cmp w1, 256
- beq .L1288
+ beq .L1313
mov w0, 65535
cmp w24, w0
- beq .L1295
+ beq .L1320
mov w1, 1
mov w0, w24
bl FtlFreeSysBlkQueueIn
-.L1295:
+.L1320:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -8925,14 +9055,14 @@ sftl_deinit:
adrp x0, .LANCHOR2
ldr w0, [x0, #:lo12:.LANCHOR2]
cmp w0, 1
- bne .L1308
+ bne .L1333
stp x29, x30, [sp, -16]!
add x29, sp, 0
bl FtlSysFlush
mov w0, 0
ldp x29, x30, [sp], 16
ret
-.L1308:
+.L1333:
mov w0, 0
ret
.size sftl_deinit, .-sftl_deinit
@@ -8948,74 +9078,74 @@ sftl_discard:
adrp x19, .LANCHOR0
add x1, x19, :lo12:.LANCHOR0
str x21, [sp, 32]
- ldr w2, [x1, 144]
+ ldr w2, [x1, 352]
cmp w3, w2
- bhi .L1319
+ bhi .L1344
cmp w20, 31
- bhi .L1313
-.L1327:
+ bhi .L1338
+.L1352:
mov w0, 0
-.L1311:
+.L1336:
ldp x19, x20, [sp, 16]
ldr x21, [sp, 32]
ldp x29, x30, [sp], 64
ret
-.L1313:
- ldrh w1, [x1, 62]
+.L1338:
+ ldrh w1, [x1, 270]
udiv w21, w0, w1
msub w0, w1, w21, w0
ands w0, w0, 65535
- beq .L1314
+ beq .L1339
sub w1, w1, w0
add w21, w21, 1
cmp w1, w20
csel w1, w1, w20, ls
sub w20, w20, w1, uxth
-.L1314:
+.L1339:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
str w0, [x29, 60]
-.L1315:
- ldrh w0, [x19, 62]
+.L1340:
+ ldrh w0, [x19, 270]
cmp w20, w0
- bcs .L1317
+ bcs .L1342
ldr w0, [x19, 3964]
cmp w0, 32
- bls .L1327
+ bls .L1352
str wzr, [x19, 3964]
bl l2p_flush
bl FtlVpcTblFlush
- b .L1327
-.L1317:
+ b .L1352
+.L1342:
mov w2, 0
add x1, x29, 56
mov w0, w21
bl log2phys
ldr w0, [x29, 56]
cmn w0, #1
- beq .L1316
+ beq .L1341
ldr w0, [x19, 3964]
mov w2, 1
add x1, x29, 60
add w0, w0, 1
str w0, [x19, 3964]
- ldr w0, [x19, 2592]
+ ldr w0, [x19, 2640]
add w0, w0, 1
- str w0, [x19, 2592]
+ str w0, [x19, 2640]
mov w0, w21
bl log2phys
ldr w0, [x29, 56]
lsr w0, w0, 10
bl P2V_block_in_plane
bl decrement_vpc_count
-.L1316:
- ldrh w0, [x19, 62]
+.L1341:
+ ldrh w0, [x19, 270]
add w21, w21, 1
sub w20, w20, w0
- b .L1315
-.L1319:
+ b .L1340
+.L1344:
mov w0, -1
- b .L1311
+ b .L1336
.size sftl_discard, .-sftl_discard
.align 2
.global FtlVpcCheckAndModify
@@ -9024,35 +9154,35 @@ FtlVpcCheckAndModify:
stp x29, x30, [sp, -80]!
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC101
+ adrp x0, .LC111
add x29, sp, 0
stp x19, x20, [sp, 16]
adrp x20, .LANCHOR0
add x19, x20, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
add x1, x1, 576
- add x0, x0, :lo12:.LC101
+ add x0, x0, :lo12:.LC111
str x23, [sp, 48]
bl sftl_printk
ldr x0, [x19, 3568]
mov w21, 0
- ldrh w2, [x19, 46]
+ ldrh w2, [x19, 254]
mov w1, 0
lsl w2, w2, 1
bl ftl_memset
-.L1329:
- ldr w0, [x19, 2584]
+.L1354:
+ ldr w0, [x19, 2632]
cmp w21, w0
- bcc .L1331
- adrp x22, .LC111
+ bcc .L1356
+ adrp x22, .LC121
add x20, x20, :lo12:.LANCHOR0
- add x22, x22, :lo12:.LC111
+ add x22, x22, :lo12:.LC121
mov w19, 0
mov w23, 65535
-.L1332:
- ldrh w0, [x20, 44]
+.L1357:
+ ldrh w0, [x20, 252]
cmp w0, w19
- bhi .L1337
+ bhi .L1362
bl l2p_flush
bl FtlVpcTblFlush
ldr x23, [sp, 48]
@@ -9060,14 +9190,14 @@ FtlVpcCheckAndModify:
ldp x21, x22, [sp, 32]
ldp x29, x30, [sp], 80
ret
-.L1331:
+.L1356:
mov w2, 0
add x1, x29, 76
mov w0, w21
bl log2phys
ldr w0, [x29, 76]
cmn w0, #1
- beq .L1330
+ beq .L1355
lsr w0, w0, 10
bl P2V_block_in_plane
ldr x2, [x19, 3568]
@@ -9075,48 +9205,48 @@ FtlVpcCheckAndModify:
ldrh w1, [x2, x0]
add w1, w1, 1
strh w1, [x2, x0]
-.L1330:
+.L1355:
add w21, w21, 1
- b .L1329
-.L1337:
- ldr x0, [x20, 2376]
+ b .L1354
+.L1362:
+ ldr x0, [x20, 80]
ubfiz x21, x19, 1, 16
ldrh w2, [x0, x21]
ldr x0, [x20, 3568]
ldrh w3, [x0, x21]
cmp w2, w3
- beq .L1334
+ beq .L1359
cmp w2, w23
- beq .L1334
+ beq .L1359
mov x0, x22
mov w1, w19
bl sftl_printk
- ldrh w0, [x20, 2424]
+ ldrh w0, [x20, 32]
cmp w0, w19
- beq .L1334
- ldrh w0, [x20, 2520]
+ beq .L1359
+ ldrh w0, [x20, 136]
cmp w0, w19
- beq .L1334
- ldrh w0, [x20, 2472]
+ beq .L1359
+ ldrh w0, [x20, 88]
cmp w0, w19
- beq .L1334
- ldr x0, [x20, 2376]
+ beq .L1359
+ ldr x0, [x20, 80]
ldrh w1, [x0, x21]
- cbnz w1, .L1336
+ cbnz w1, .L1361
ldr x1, [x20, 3568]
ldrh w1, [x1, x21]
strh w1, [x0, x21]
-.L1334:
+.L1359:
add w19, w19, 1
and w19, w19, 65535
- b .L1332
-.L1336:
+ b .L1357
+.L1361:
ldr x1, [x20, 3568]
ldrh w1, [x1, x21]
strh w1, [x0, x21]
mov w0, w19
bl update_vpc_list
- b .L1334
+ b .L1359
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 2
.global allocate_new_data_superblock
@@ -9130,48 +9260,48 @@ allocate_new_data_superblock:
mov x21, x0
ldrh w20, [x0]
add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0, 44]
+ ldrh w0, [x0, 252]
cmp w0, w20
- bcs .L1343
+ bcs .L1368
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 2760
+ adrp x0, .LC8
+ mov w2, 2755
add x1, x1, 600
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1343:
+.L1368:
mov w0, 65535
cmp w20, w0
- beq .L1344
+ beq .L1369
add x1, x19, :lo12:.LANCHOR0
ubfiz x0, x20, 1, 16
- ldr x1, [x1, 2376]
+ ldr x1, [x1, 80]
ldrh w0, [x1, x0]
- cbz w0, .L1345
+ cbz w0, .L1370
mov w0, w20
bl INSERT_DATA_LIST
-.L1344:
+.L1369:
add x2, x19, :lo12:.LANCHOR0
mov w0, 1
strb w0, [x21, 8]
mov w1, 65535
ldrh w0, [x2, 3714]
cmp w0, w1
- beq .L1346
+ beq .L1371
cmp w20, w0
- bne .L1347
- ldr x2, [x2, 2376]
+ bne .L1372
+ ldr x2, [x2, 80]
ubfiz x1, x0, 1, 16
ldrh w1, [x2, x1]
- cbz w1, .L1348
-.L1347:
+ cbz w1, .L1373
+.L1372:
bl update_vpc_list
-.L1348:
+.L1373:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
strh w0, [x19, 3714]
-.L1346:
+.L1371:
mov x0, x21
bl allocate_data_superblock
bl l2p_flush
@@ -9183,10 +9313,10 @@ allocate_new_data_superblock:
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 48
ret
-.L1345:
+.L1370:
mov w0, w20
bl INSERT_FREE_LIST
- b .L1344
+ b .L1369
.size allocate_new_data_superblock, .-allocate_new_data_superblock
.align 2
.global FtlProgPages
@@ -9196,120 +9326,108 @@ FtlProgPages:
mov w2, 0
add x29, sp, 0
stp x19, x20, [sp, 16]
- mov x19, x3
+ mov x20, x3
+ stp x23, x24, [sp, 48]
+ adrp x23, .LC122
stp x21, x22, [sp, 32]
+ adrp x24, .LANCHOR0
+ str x25, [sp, 64]
mov w21, w1
- stp x23, x24, [sp, 48]
+ add x23, x23, :lo12:.LC122
+ add x25, x24, :lo12:.LANCHOR0
+ ldrb w3, [x3, 9]
ubfiz x21, x21, 5, 32
- str x25, [sp, 64]
add x21, x21, 4
- add x24, x0, x21
- adrp x22, .LANCHOR0
- ldrb w3, [x3, 9]
- adrp x25, .LANCHOR1
- add x21, x22, :lo12:.LANCHOR0
- add x25, x25, :lo12:.LANCHOR1
- add x20, x0, 4
+ add x19, x0, 4
+ add x21, x0, x21
bl FlashProgPages
-.L1354:
- cmp x20, x24
- beq .L1361
- sub x23, x20, #4
- b .L1362
-.L1357:
- ldr w0, [x20]
+.L1379:
+ cmp x21, x19
+ beq .L1385
+ sub x22, x19, #4
+ b .L1386
+.L1381:
+ ldr w1, [x19]
+ mov x0, x23
+ bl sftl_printk
+ ldr w0, [x19]
lsr w0, w0, 10
bl P2V_block_in_plane
- ldrh w1, [x19]
- cmp w1, w0, uxth
- bne .L1355
- ldr x2, [x21, 2376]
- ubfiz x1, x1, 1, 16
- ldrh w3, [x19, 4]
- ldrh w0, [x2, x1]
- sub w0, w0, w3
- strh w0, [x2, x1]
- strb wzr, [x19, 6]
- ldrh w0, [x21, 106]
- strh w0, [x19, 2]
- strh wzr, [x19, 4]
-.L1355:
- ldrh w0, [x19, 4]
- cbnz w0, .L1356
- mov x0, x19
+ bl decrement_vpc_count
+ ldrh w0, [x20, 4]
+ cbnz w0, .L1380
+ mov x0, x20
bl allocate_new_data_superblock
-.L1356:
- ldr w0, [x21, 2816]
- add w0, w0, 1
- str w0, [x21, 2816]
- ldr w0, [x20]
- lsr w0, w0, 10
- bl FtlGcMarkBadPhyBlk
- mov x0, x19
+.L1380:
+ mov x0, x20
bl get_new_active_ppa
- str w0, [x20]
+ str w0, [x19]
mov w2, 0
str w0, [x29, 92]
mov w1, 1
- ldrb w3, [x19, 9]
- mov x0, x23
+ ldrb w3, [x20, 9]
+ mov x0, x22
bl FlashProgPages
-.L1362:
- ldr w0, [x20, -4]
- cmn w0, #1
- beq .L1357
- ldrb w1, [x19, 6]
- ldrh w0, [x21, 36]
+.L1386:
+ ldr w2, [x19, -4]
+ cmp w2, 256
+ ccmn w2, #1, 4, ne
+ beq .L1381
+ ldrb w1, [x20, 6]
+ ldrh w0, [x25, 244]
cmp w1, w0
- bcc .L1358
- adrp x0, .LC1
- mov w2, 960
- add x1, x25, 632
- add x0, x0, :lo12:.LC1
+ bcc .L1382
+ adrp x1, .LANCHOR1
+ add x1, x1, :lo12:.LANCHOR1
+ adrp x0, .LC8
+ mov w2, 982
+ add x1, x1, 632
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1358:
+.L1382:
add x1, x29, 96
- ldr w0, [x23, 4]
+ ldr w0, [x22, 4]
mov w2, 1
str w0, [x1, -4]!
- ldr w0, [x23, 24]
+ ldr w0, [x22, 24]
bl log2phys
- ldr x0, [x23, 16]
+ ldr x0, [x22, 16]
ldr w4, [x0, 12]
lsr w0, w4, 10
bl P2V_block_in_plane
and w1, w0, 65535
- mov w23, w1
+ mov w22, w1
cmn w4, #1
- beq .L1359
- ldr x2, [x21, 2376]
+ beq .L1383
+ add x2, x24, :lo12:.LANCHOR0
ubfiz x0, x1, 1, 16
+ ldr x2, [x2, 80]
ldrh w0, [x2, x0]
- cbnz w0, .L1360
- adrp x0, .LC112
+ cbnz w0, .L1384
+ adrp x0, .LC123
mov w2, 0
- add x0, x0, :lo12:.LC112
+ add x0, x0, :lo12:.LC123
bl sftl_printk
-.L1360:
- mov w0, w23
+.L1384:
+ mov w0, w22
bl decrement_vpc_count
-.L1359:
- add x20, x20, 32
- b .L1354
-.L1361:
- add x22, x22, :lo12:.LANCHOR0
- ldrb w1, [x19, 6]
- ldrh w0, [x22, 36]
+.L1383:
+ add x19, x19, 32
+ b .L1379
+.L1385:
+ adrp x0, .LANCHOR0+244
+ ldrb w1, [x20, 6]
+ ldrh w0, [x0, #:lo12:.LANCHOR0+244]
cmp w1, w0
- bcc .L1353
+ bcc .L1378
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 975
+ adrp x0, .LC8
+ mov w2, 997
add x1, x1, 632
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1353:
+.L1378:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
@@ -9329,191 +9447,154 @@ FtlGcFreeTempBlock:
add x2, x19, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
stp x23, x24, [sp, 48]
- stp x25, x26, [sp, 64]
- ldrh w20, [x2, 2520]
- ldrh w1, [x2, 106]
- cmp w20, w3
- bne .L1369
-.L1379:
+ str x25, [sp, 64]
+ ldrh w4, [x2, 136]
+ ldrh w1, [x2, 314]
+ cmp w4, w3
+ bne .L1393
+.L1400:
add x0, x19, :lo12:.LANCHOR0
mov w2, 65535
- add x1, x0, 2520
- ldrh w3, [x0, 2520]
+ add x1, x0, 136
+ ldrh w3, [x0, 136]
str wzr, [x0, 3720]
cmp w3, w2
- bne .L1392
-.L1395:
+ bne .L1413
+.L1417:
mov w0, 0
-.L1368:
+.L1392:
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], 96
ret
-.L1369:
- cbz w0, .L1372
- adrp x0, .LANCHOR2
- add x0, x0, :lo12:.LANCHOR2
+.L1393:
+ adrp x20, .LANCHOR2
+ cbz w0, .L1396
+ add x0, x20, :lo12:.LANCHOR2
ldrh w4, [x0, 4]
cmp w4, w3
- beq .L1373
-.L1374:
+ beq .L1397
+.L1398:
mov w1, 2
-.L1372:
- add x21, x19, :lo12:.LANCHOR0
- add x0, x21, 2520
+.L1396:
+ add x20, x20, :lo12:.LANCHOR2
+ add x0, x19, :lo12:.LANCHOR0
+ add x0, x0, 136
bl FtlGcScanTempBlk
str w0, [x29, 92]
- cmn w0, #1
- beq .L1375
- ldr x1, [x21, 2384]
- ubfiz x20, x20, 1, 16
- ldrh w0, [x1, x20]
- cmp w0, 4
- bls .L1376
- sub w0, w0, #5
- strh w0, [x1, x20]
- mov w0, 1
- bl FtlEctTblFlush
-.L1376:
- add x0, x19, :lo12:.LANCHOR0
- ldr w1, [x0, 3720]
- cbnz w1, .L1377
- ldr w1, [x0, 2816]
- add w1, w1, 1
- str w1, [x0, 2816]
- ldr w0, [x29, 92]
- lsr w0, w0, 10
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
-.L1377:
- add x19, x19, :lo12:.LANCHOR0
- str wzr, [x19, 3720]
-.L1388:
+ mov w0, 65535
+ ldrh w1, [x20, 4]
+ cmp w1, w0
+ beq .L1400
mov w0, 1
- b .L1368
-.L1373:
+ b .L1392
+.L1397:
strh wzr, [x0, 4]
- ldrh w0, [x2, 2416]
+ ldrh w0, [x2, 236]
cmp w0, 17
- bhi .L1374
- b .L1372
-.L1375:
- adrp x0, .LANCHOR2+4
- ldrh w1, [x0, #:lo12:.LANCHOR2+4]
- mov w0, 65535
- cmp w1, w0
- bne .L1388
- b .L1379
-.L1392:
+ bhi .L1398
+ b .L1396
+.L1413:
ldrh w2, [x0, 3304]
ldrb w1, [x1, 7]
- ldrh w0, [x0, 106]
+ ldrh w0, [x0, 314]
mul w0, w1, w0
cmp w2, w0
- beq .L1380
+ beq .L1401
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
- mov w2, 162
+ adrp x0, .LC8
+ mov w2, 164
add x1, x1, 648
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1380:
+.L1401:
add x0, x19, :lo12:.LANCHOR0
- adrp x22, .LANCHOR1
- add x22, x22, :lo12:.LANCHOR1
- adrp x25, .LC1
- add x22, x22, 648
- add x25, x25, :lo12:.LC1
- ldrb w1, [x0, 2527]
- mov w20, 0
- ldrh w4, [x0, 106]
- ldr x2, [x0, 2376]
- ldrh w3, [x0, 2520]
+ mov w21, 0
+ mov x20, x0
+ mov w25, 12
+ ldrb w1, [x0, 143]
+ ldrh w4, [x0, 314]
+ ldr x2, [x0, 80]
+ ldrh w3, [x0, 136]
mul w1, w1, w4
strh w1, [x2, x3, lsl 1]
- ldr w2, [x0, 2608]
+ ldr w2, [x0, 2656]
ldrh w1, [x0, 3304]
add w1, w1, w2
- str w1, [x0, 2608]
-.L1381:
- add x21, x19, :lo12:.LANCHOR0
- ldrh w0, [x21, 3304]
- cmp w0, w20
- bhi .L1385
+ str w1, [x0, 2656]
+.L1402:
+ ldrh w0, [x20, 3304]
+ cmp w0, w21
+ bhi .L1406
mov w0, -1
bl decrement_vpc_count
- ldrh w0, [x21, 2520]
- ldr x2, [x21, 2376]
+ ldrh w0, [x20, 136]
+ ldr x2, [x20, 80]
ubfiz x1, x0, 1, 16
ldrh w1, [x2, x1]
- cbz w1, .L1386
+ cbz w1, .L1407
bl INSERT_DATA_LIST
-.L1387:
+.L1408:
add x19, x19, :lo12:.LANCHOR0
mov w20, -1
strh wzr, [x19, 3304]
- strh w20, [x19, 2520]
+ strh w20, [x19, 136]
strh wzr, [x19, 3292]
bl l2p_flush
bl FtlVpcTblFlush
- strh w20, [x19, 2672]
- ldrh w0, [x19, 2652]
- ldrh w1, [x19, 2416]
+ strh w20, [x19, 184]
+ ldrh w0, [x19, 2700]
+ ldrh w1, [x19, 236]
add w0, w0, w0, lsl 1
cmp w1, w0, lsr 2
- ble .L1395
+ ble .L1417
mov w0, 20
strh w0, [x19, 3232]
- b .L1395
-.L1385:
- mov w24, 12
- ldr x26, [x21, 3312]
- ldr w0, [x21, 2584]
- umull x24, w20, w24
- add x23, x26, x24
- ldr w1, [x23, 8]
- cmp w1, w0
- bcc .L1382
- mov w2, 168
- mov x1, x22
- mov x0, x25
- bl sftl_printk
-.L1382:
- ldr w0, [x23, 8]
+ b .L1417
+.L1406:
+ umull x23, w21, w25
+ ldr x24, [x20, 3312]
+ ldr w1, [x20, 2632]
+ add x22, x24, x23
+ ldr w0, [x22, 8]
+ cmp w0, w1
+ bcc .L1403
+.L1415:
+ ldrh w0, [x20, 136]
+ b .L1416
+.L1403:
add x1, x29, 92
mov w2, 0
bl log2phys
- ldr w0, [x26, x24]
+ ldr w0, [x24, x23]
ldr w1, [x29, 92]
cmp w0, w1
- bne .L1383
+ bne .L1405
lsr w0, w0, 10
bl P2V_block_in_plane
- mov w21, w0
- ldr w0, [x23, 8]
+ mov w23, w0
+ ldr w0, [x22, 8]
mov w2, 1
- add x1, x23, 4
+ add x1, x22, 4
bl log2phys
- mov w0, w21
-.L1394:
+ mov w0, w23
+.L1416:
bl decrement_vpc_count
-.L1384:
- add w20, w20, 1
- and w20, w20, 65535
- b .L1381
-.L1383:
- ldr w0, [x23, 4]
+ b .L1404
+.L1405:
+ ldr w0, [x22, 4]
cmp w1, w0
- beq .L1384
- add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0, 2520]
- b .L1394
-.L1386:
+ bne .L1415
+.L1404:
+ add w21, w21, 1
+ and w21, w21, 65535
+ b .L1402
+.L1407:
bl INSERT_FREE_LIST
- b .L1387
+ b .L1408
.size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
.align 2
.global FtlGcPageRecovery
@@ -9524,20 +9605,20 @@ FtlGcPageRecovery:
stp x19, x20, [sp, 16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x20, x19, 2520
+ add x20, x19, 136
mov x0, x20
- ldrh w1, [x19, 106]
+ ldrh w1, [x19, 314]
bl FtlGcScanTempBlk
- ldrh w1, [x19, 2522]
- ldrh w0, [x19, 106]
+ ldrh w1, [x19, 138]
+ ldrh w0, [x19, 314]
cmp w1, w0
- bcc .L1396
+ bcc .L1418
add x0, x19, 3648
bl FtlMapBlkWriteDump_data
mov w0, 0
bl FtlGcFreeTempBlock
str wzr, [x19, 3720]
-.L1396:
+.L1418:
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
ret
@@ -9551,10 +9632,10 @@ FtlPowerLostRecovery:
stp x19, x20, [sp, 16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x20, x19, 2424
- add x19, x19, 2472
+ add x20, x19, 32
+ add x19, x19, 88
mov x0, x20
- str wzr, [x19, 1292]
+ str wzr, [x19, 3676]
bl FtlRecoverySuperblock
mov x0, x20
bl FtlSlcSuperblockCheck
@@ -9585,56 +9666,43 @@ Ftl_gc_temp_data_write_back:
ldr x0, [x19, 3448]
bl FlashProgPages
mov w10, 0
-.L1402:
+.L1424:
ldr w1, [x19, 3248]
cmp w10, w1
- bcc .L1405
+ bcc .L1427
ldr x0, [x19, 3448]
bl FtlGcBufFree
str wzr, [x19, 3248]
- ldrh w0, [x19, 2524]
- cbnz w0, .L1406
+ ldrh w0, [x19, 140]
+ cbnz w0, .L1429
mov w0, 1
bl FtlGcFreeTempBlock
- b .L1408
-.L1405:
- ldr x0, [x19, 3448]
- ubfiz x1, x10, 5, 16
- add x3, x0, x1
- ldr w0, [x0, x1]
- cmn w0, #1
- bne .L1403
- ldrh w3, [x19, 2520]
- ldr x2, [x19, 2376]
- strh wzr, [x2, x3, lsl 1]
- strh w0, [x19, 2520]
- ldr w0, [x19, 2816]
- add w0, w0, 1
- str w0, [x19, 2816]
- ldr x0, [x19, 3448]
- add x0, x0, x1
- ldr w0, [x0, 4]
- lsr w0, w0, 10
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- bl FtlGcPageVarInit
-.L1408:
mov w0, 1
-.L1401:
+.L1423:
ldr x19, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L1403:
- ldr x0, [x3, 16]
- ldr w1, [x3, 4]
- ldp w2, w0, [x0, 8]
+.L1427:
+ ldr x2, [x19, 3448]
+ ubfiz x0, x10, 5, 16
+ add x1, x2, x0
+ ldr w2, [x2, x0]
+ ldr x3, [x1, 16]
+ cmn w2, #1
+ bne .L1425
+.L1431:
+ ldr w1, [x1, 4]
+ ldr w0, [x3, 12]
bl FtlGcUpdatePage
add w10, w10, 1
and w10, w10, 65535
- b .L1402
-.L1406:
+ b .L1424
+.L1425:
+ ldr w2, [x3, 8]
+ b .L1431
+.L1429:
mov w0, 0
- b .L1401
+ b .L1423
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
.align 2
.global Ftl_get_new_temp_ppa
@@ -9645,18 +9713,18 @@ Ftl_get_new_temp_ppa:
stp x19, x20, [sp, 16]
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
- add x1, x0, 2520
- ldrh w2, [x0, 2520]
+ add x1, x0, 136
+ ldrh w2, [x0, 136]
mov w0, 65535
cmp w2, w0
- beq .L1410
+ beq .L1433
ldrh w0, [x1, 4]
- cbnz w0, .L1411
-.L1410:
+ cbnz w0, .L1434
+.L1433:
add x20, x19, :lo12:.LANCHOR0
mov w0, 0
bl FtlGcFreeTempBlock
- add x0, x20, 2520
+ add x0, x20, 136
strb wzr, [x0, 8]
bl allocate_data_superblock
strh wzr, [x20, 3292]
@@ -9665,9 +9733,9 @@ Ftl_get_new_temp_ppa:
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1411:
+.L1434:
add x0, x19, :lo12:.LANCHOR0
- add x0, x0, 2520
+ add x0, x0, 136
bl get_new_active_ppa
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
@@ -9687,117 +9755,117 @@ rk_ftl_garbage_collect:
stp x25, x26, [sp, 64]
stp x27, x28, [sp, 80]
ldr w2, [x1, 3424]
- cbnz w2, .L1486
- ldrh w2, [x1, 2400]
+ cbnz w2, .L1514
+ ldrh w2, [x1, 2592]
cmp w2, 47
- bls .L1486
+ bls .L1514
mov w23, w0
adrp x0, .LANCHOR2+4
ldrh w2, [x0, #:lo12:.LANCHOR2+4]
mov w0, 65535
cmp w2, w0
- bne .L1415
-.L1418:
+ bne .L1438
+.L1441:
add x0, x19, :lo12:.LANCHOR0
mov w2, 65535
- ldrh w1, [x0, 3322]
+ ldrh w1, [x0, 232]
cmp w1, w2
- bne .L1416
-.L1417:
+ bne .L1439
+.L1440:
add x20, x19, :lo12:.LANCHOR0
bl FtlReadRefresh
mov w21, 65535
ldr w0, [x20, 3236]
- ldrh w1, [x20, 2672]
+ ldrh w1, [x20, 184]
add w0, w0, 1
add w0, w0, w23, lsl 7
str w0, [x20, 3236]
cmp w1, w21
- bne .L1419
- ldrh w21, [x20, 2520]
+ bne .L1442
+ ldrh w21, [x20, 136]
cmp w21, w1
- bne .L1489
- ldrh w22, [x20, 3320]
+ bne .L1517
+ ldrh w22, [x20, 234]
cmp w22, w21
- bne .L1419
- ldrh w1, [x20, 2416]
+ bne .L1442
+ ldrh w1, [x20, 236]
mov w2, 1024
cmp w1, 24
mov w1, 5120
csel w1, w1, w2, cc
cmp w0, w1
- bls .L1492
+ bls .L1520
strh wzr, [x20, 3968]
str wzr, [x20, 3236]
bl GetSwlReplaceBlock
and w21, w0, 65535
cmp w21, w22
- bne .L1493
- ldrh w1, [x20, 2416]
+ bne .L1521
+ ldrh w1, [x20, 236]
ldrh w0, [x20, 3234]
cmp w1, w0
- bcs .L1422
+ bcs .L1445
mov w0, 64
bl List_get_gc_head_node
and w0, w0, 65535
cmp w0, w21
- beq .L1424
- ldr x1, [x20, 2376]
+ beq .L1447
+ ldr x1, [x20, 80]
ubfiz x0, x0, 1, 16
ldrh w0, [x1, x0]
cmp w0, 7
- bhi .L1425
+ bhi .L1448
mov w0, 0
bl List_get_gc_head_node
and w22, w0, 65535
mov w0, 128
strh w0, [x20, 3234]
cmp w22, w21
- bne .L1421
-.L1424:
+ bne .L1444
+.L1447:
bl FtlGcReFreshBadBlk
-.L1419:
+.L1442:
cmp w23, 0
mov w0, 65535
add x1, x19, :lo12:.LANCHOR0
ccmp w21, w0, 0, eq
- bne .L1427
- ldrh w0, [x1, 2416]
+ bne .L1450
+ ldrh w0, [x1, 236]
cmp w0, 24
- bhi .L1494
+ bhi .L1522
cmp w0, 16
- ldrh w20, [x1, 106]
- bls .L1429
+ ldrh w20, [x1, 314]
+ bls .L1452
lsr w20, w20, 5
-.L1428:
+.L1451:
add x1, x19, :lo12:.LANCHOR0
ldrh w2, [x1, 3232]
cmp w2, w0
- bcs .L1432
- ldrh w0, [x1, 2520]
+ bcs .L1455
+ ldrh w0, [x1, 136]
mov w2, 65535
cmp w0, w2
- bne .L1433
- ldrh w2, [x1, 3320]
+ bne .L1456
+ ldrh w2, [x1, 234]
cmp w2, w0
- bne .L1433
+ bne .L1456
ldrh w0, [x1, 3968]
- cbnz w0, .L1434
- ldr w2, [x1, 2584]
- ldr w3, [x1, 2580]
+ cbnz w0, .L1457
+ ldr w2, [x1, 2632]
+ ldr w3, [x1, 2628]
add w2, w2, w2, lsl 1
cmp w3, w2, lsr 2
- bcs .L1435
-.L1434:
+ bcs .L1458
+.L1457:
add x2, x19, :lo12:.LANCHOR0
- ldrh w1, [x2, 2652]
+ ldrh w1, [x2, 2700]
add w1, w1, w1, lsl 1
asr w1, w1, 2
strh w1, [x2, 3232]
-.L1436:
+.L1459:
add x19, x19, :lo12:.LANCHOR0
str wzr, [x19, 3244]
-.L1413:
+.L1436:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
@@ -9805,364 +9873,367 @@ rk_ftl_garbage_collect:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 128
ret
-.L1415:
- ldrh w1, [x1, 2520]
+.L1438:
+ ldrh w1, [x1, 136]
cmp w1, w0
- beq .L1418
+ beq .L1441
mov w0, 1
bl FtlGcFreeTempBlock
- cbz w0, .L1418
+ cbz w0, .L1441
mov w0, 1
- b .L1413
-.L1416:
- ldrh w3, [x0, 3320]
+ b .L1436
+.L1439:
+ ldrh w3, [x0, 234]
cmp w3, w2
- bne .L1417
- strh w1, [x0, 3320]
+ bne .L1440
+ strh w1, [x0, 234]
mov w1, -1
- strh w1, [x0, 3322]
- b .L1417
-.L1425:
+ strh w1, [x0, 232]
+ b .L1440
+.L1448:
mov w0, 64
-.L1521:
+.L1552:
strh w0, [x20, 3234]
- b .L1424
-.L1422:
+ b .L1447
+.L1445:
mov w0, 80
- b .L1521
-.L1493:
+ b .L1552
+.L1521:
mov w22, w21
-.L1421:
+.L1444:
add x0, x19, :lo12:.LANCHOR0
ubfiz x1, x22, 1, 32
mov w21, w22
- ldr x2, [x0, 2376]
- ldr x3, [x0, 2384]
+ ldr x2, [x0, 80]
+ ldr x3, [x0, 2608]
ldrh w5, [x0, 3232]
ldrh w4, [x3, x1]
ldrh w3, [x2, x1]
mov w1, w22
- ldrh w2, [x0, 2416]
- adrp x0, .LC113
- add x0, x0, :lo12:.LC113
+ ldrh w2, [x0, 236]
+ adrp x0, .LC124
+ add x0, x0, :lo12:.LC124
bl sftl_printk
- b .L1424
-.L1489:
+ b .L1447
+.L1517:
mov w21, w1
- b .L1419
-.L1492:
+ b .L1442
+.L1520:
mov w21, w22
- b .L1419
-.L1429:
+ b .L1442
+.L1452:
cmp w0, 12
- bls .L1430
+ bls .L1453
lsr w20, w20, 4
- b .L1428
-.L1430:
+ b .L1451
+.L1453:
mov w1, w20
cmp w0, 9
lsr w20, w20, 2
csel w20, w20, w1, cs
- b .L1428
-.L1494:
+ b .L1451
+.L1522:
mov w20, 1
- b .L1428
-.L1435:
+ b .L1451
+.L1458:
mov w2, 18
strh w2, [x1, 3232]
- b .L1436
-.L1433:
+ b .L1459
+.L1456:
add x1, x19, :lo12:.LANCHOR0
- ldrh w0, [x1, 2652]
+ ldrh w0, [x1, 2700]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1, 3232]
-.L1432:
+.L1455:
add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0, 3324]
- cbz w0, .L1495
+ ldrh w0, [x0, 3320]
+ cbz w0, .L1523
add w20, w20, 32
and w20, w20, 65535
-.L1495:
+.L1523:
mov w21, 65535
-.L1438:
+.L1461:
add x0, x19, :lo12:.LANCHOR0
mov w2, 65535
- ldrh w1, [x0, 2672]
+ ldrh w1, [x0, 184]
cmp w1, w2
- bne .L1447
+ bne .L1470
cmp w21, w1
- beq .L1448
- strh w21, [x0, 2672]
-.L1449:
+ beq .L1471
+ strh w21, [x0, 184]
+.L1472:
add x5, x19, :lo12:.LANCHOR0
mov w1, 65535
- ldrh w0, [x5, 2672]
- strb wzr, [x5, 2680]
+ ldrh w0, [x5, 184]
+ strb wzr, [x5, 192]
cmp w0, w1
- beq .L1447
+ beq .L1470
bl IsBlkInGcList
- cbz w0, .L1452
+ cbz w0, .L1475
mov w0, -1
- strh w0, [x5, 2672]
-.L1452:
+ strh w0, [x5, 184]
+.L1475:
add x22, x19, :lo12:.LANCHOR0
mov w0, 65535
- add x24, x22, 2672
- ldrh w1, [x22, 2672]
+ add x24, x22, 184
+ ldrh w1, [x22, 184]
cmp w1, w0
- beq .L1447
+ beq .L1470
mov x0, x24
bl make_superblock
- ldrh w1, [x22, 2672]
- ldr x0, [x22, 2376]
- strh wzr, [x22, 2674]
- strb wzr, [x22, 2678]
+ ldrh w1, [x22, 184]
+ ldr x0, [x22, 80]
+ strh wzr, [x22, 186]
+ strb wzr, [x22, 190]
strh wzr, [x22, 3970]
ldrh w0, [x0, x1, lsl 1]
strh w0, [x22, 3972]
-.L1447:
+.L1470:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 2672]
- ldrh w2, [x0, 2424]
+ ldrh w1, [x0, 184]
+ ldrh w2, [x0, 32]
+ cmp w2, w1
+ beq .L1476
+ ldrh w2, [x0, 88]
cmp w2, w1
- beq .L1453
- ldrh w0, [x0, 2472]
+ beq .L1476
+ ldrh w0, [x0, 136]
cmp w0, w1
- bne .L1454
-.L1453:
+ bne .L1477
+.L1476:
add x0, x19, :lo12:.LANCHOR0
mov w1, -1
- strh w1, [x0, 2672]
-.L1454:
- adrp x25, .LANCHOR1
- add x25, x25, :lo12:.LANCHOR1
- add x25, x25, 672
-.L1483:
+ strh w1, [x0, 184]
+.L1477:
+ adrp x24, .LANCHOR1
+ add x24, x24, :lo12:.LANCHOR1
+ add x24, x24, 672
+.L1511:
add x22, x19, :lo12:.LANCHOR0
mov w0, 65535
- ldrh w24, [x22, 2672]
- cmp w24, w0
- bne .L1455
+ ldrh w25, [x22, 184]
+ cmp w25, w0
+ bne .L1478
mov w26, 2
str wzr, [x22, 3244]
-.L1456:
+.L1479:
ldrh w5, [x22, 3240]
mov w0, w5
bl List_get_gc_head_node
and w6, w0, 65535
- strh w6, [x22, 2672]
- cmp w6, w24
- bne .L1457
+ strh w6, [x22, 184]
+ cmp w6, w25
+ bne .L1480
strh wzr, [x22, 3240]
mov w0, 8
- b .L1413
-.L1427:
- ldrh w2, [x1, 2520]
+ b .L1436
+.L1450:
+ ldrh w2, [x1, 136]
cmp w2, w0
- bne .L1498
- ldrh w0, [x1, 3320]
+ bne .L1526
+ ldrh w0, [x1, 234]
cmp w0, w2
- bne .L1498
+ bne .L1526
cmp w21, w0
- bne .L1498
- ldrh w0, [x1, 2672]
+ bne .L1526
+ ldrh w0, [x1, 184]
cmp w0, w21
- beq .L1439
-.L1498:
+ beq .L1462
+.L1526:
mov w20, 1
- b .L1438
-.L1439:
- ldrh w2, [x1, 2416]
+ b .L1461
+.L1462:
+ ldrh w2, [x1, 236]
ldrh w0, [x1, 3232]
str wzr, [x1, 3244]
cmp w2, w0
- bls .L1440
+ bls .L1463
ldrh w0, [x1, 3968]
- cbnz w0, .L1441
- ldr w0, [x1, 2584]
- ldr w2, [x1, 2580]
+ cbnz w0, .L1464
+ ldr w0, [x1, 2632]
+ ldr w2, [x1, 2628]
add w0, w0, w0, lsl 1
cmp w2, w0, lsr 2
- bcs .L1442
-.L1441:
+ bcs .L1465
+.L1464:
add x1, x19, :lo12:.LANCHOR0
- ldrh w0, [x1, 2652]
+ ldrh w0, [x1, 2700]
add w0, w0, w0, lsl 1
asr w0, w0, 2
-.L1522:
+.L1553:
strh w0, [x1, 3232]
bl FtlReadRefresh
mov w0, 0
bl List_get_gc_head_node
add x1, x19, :lo12:.LANCHOR0
ubfiz x0, x0, 1, 16
- ldr x2, [x1, 2376]
+ ldr x2, [x1, 80]
ldrh w0, [x2, x0]
cmp w0, 4
- bls .L1440
+ bls .L1463
ldrh w0, [x1, 3968]
- b .L1413
-.L1442:
+ b .L1436
+.L1465:
mov w0, 18
- b .L1522
-.L1440:
+ b .L1553
+.L1463:
add x20, x19, :lo12:.LANCHOR0
ldrh w0, [x20, 3968]
- cbnz w0, .L1498
- ldrh w5, [x20, 2652]
+ cbnz w0, .L1526
+ ldrh w5, [x20, 2700]
add w0, w5, w5, lsl 1
asr w0, w0, 2
strh w0, [x20, 3232]
mov w0, 0
bl List_get_gc_head_node
- ldr x1, [x20, 2376]
+ ldr x1, [x20, 80]
ubfiz x0, x0, 1, 16
- ldrh w2, [x20, 36]
+ ldrh w2, [x20, 244]
ldrh w1, [x1, x0]
- ldrh w0, [x20, 108]
+ ldrh w0, [x20, 316]
mul w0, w0, w2
mov w2, 2
sdiv w0, w0, w2
cmp w1, w0
- ble .L1445
- ldrh w0, [x20, 2416]
+ ble .L1468
+ ldrh w0, [x20, 236]
sub w5, w5, #1
cmp w0, w5
- blt .L1445
+ blt .L1468
bl FtlReadRefresh
ldrh w0, [x20, 3968]
- b .L1413
-.L1445:
- cbnz w1, .L1498
+ b .L1436
+.L1468:
+ cbnz w1, .L1526
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
bl decrement_vpc_count
- ldrh w0, [x19, 2416]
+ ldrh w0, [x19, 236]
add w0, w0, 1
- b .L1413
-.L1448:
- ldrh w1, [x0, 3320]
+ b .L1436
+.L1471:
+ ldrh w1, [x0, 234]
cmp w1, w21
- beq .L1449
- ldr x2, [x0, 2376]
+ beq .L1472
+ ldr x2, [x0, 80]
ubfiz x1, x1, 1, 16
ldrh w1, [x2, x1]
- cbnz w1, .L1450
+ cbnz w1, .L1473
mov w1, -1
- strh w1, [x0, 3320]
-.L1450:
+ strh w1, [x0, 234]
+.L1473:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 3320]
- strh w1, [x0, 2672]
+ ldrh w1, [x0, 234]
+ strh w1, [x0, 184]
mov w1, -1
- strh w1, [x0, 3320]
- b .L1449
-.L1457:
+ strh w1, [x0, 234]
+ b .L1472
+.L1480:
mov w0, w6
bl IsBlkInGcList
add w5, w5, 1
- cbz w0, .L1458
+ cbz w0, .L1481
strh w5, [x22, 3240]
- b .L1456
-.L1458:
- ldrh w4, [x22, 36]
+ b .L1479
+.L1481:
+ ldrh w4, [x22, 244]
ubfiz x1, x6, 1, 16
- ldrh w0, [x22, 106]
+ ldrh w0, [x22, 314]
and w5, w5, 65535
- ldr x2, [x22, 2376]
+ ldr x2, [x22, 80]
strh w5, [x22, 3240]
mul w0, w0, w4
ldrh w3, [x2, x1]
sdiv w4, w0, w26
cmp w3, w4
- bgt .L1460
+ bgt .L1483
cmp w5, 48
- bls .L1461
+ bls .L1484
cmp w3, 8
- bls .L1461
+ bls .L1484
ldrh w3, [x22, 3292]
cmp w3, 35
- bhi .L1461
-.L1460:
+ bhi .L1484
+.L1483:
strh wzr, [x22, 3240]
-.L1461:
+.L1484:
ldrh w1, [x2, x1]
cmp w0, w1
- bgt .L1462
- cmp w21, w24
- bne .L1462
+ bgt .L1485
+ cmp w21, w25
+ bne .L1485
ldrh w0, [x22, 3240]
cmp w0, 3
- bhi .L1462
+ bhi .L1485
mov w0, -1
strh wzr, [x22, 3240]
- strh w0, [x22, 2672]
-.L1523:
+ strh w0, [x22, 184]
+.L1554:
ldrh w0, [x22, 3968]
- b .L1413
-.L1462:
- cbnz w1, .L1463
+ b .L1436
+.L1485:
+ cbnz w1, .L1486
mov w0, -1
bl decrement_vpc_count
ldrh w0, [x22, 3240]
add w0, w0, 1
strh w0, [x22, 3240]
- b .L1456
-.L1463:
+ b .L1479
+.L1486:
add x0, x19, :lo12:.LANCHOR0
- strb wzr, [x0, 2680]
- ldrh w0, [x0, 2424]
+ strb wzr, [x0, 192]
+ ldrh w0, [x0, 32]
cmp w0, w6
- bne .L1464
- adrp x0, .LC1
- mov w2, 700
- mov x1, x25
- add x0, x0, :lo12:.LC1
+ bne .L1487
+ adrp x0, .LC8
+ mov w2, 717
+ mov x1, x24
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1464:
+.L1487:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 2672]
- ldrh w0, [x0, 2472]
+ ldrh w1, [x0, 184]
+ ldrh w0, [x0, 88]
cmp w1, w0
- bne .L1465
- adrp x0, .LC1
- mov w2, 701
- mov x1, x25
- add x0, x0, :lo12:.LC1
+ bne .L1488
+ adrp x0, .LC8
+ mov w2, 718
+ mov x1, x24
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1465:
+.L1488:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 2672]
- ldrh w0, [x0, 2520]
+ ldrh w1, [x0, 184]
+ ldrh w0, [x0, 136]
cmp w1, w0
- bne .L1466
- adrp x0, .LC1
- mov w2, 702
- mov x1, x25
- add x0, x0, :lo12:.LC1
+ bne .L1489
+ adrp x0, .LC8
+ mov w2, 719
+ mov x1, x24
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1466:
+.L1489:
add x22, x19, :lo12:.LANCHOR0
- add x24, x22, 2672
- mov x0, x24
+ add x25, x22, 184
+ mov x0, x25
bl make_superblock
- ldrh w1, [x22, 2672]
- ldr x0, [x22, 2376]
+ ldrh w1, [x22, 184]
+ ldr x0, [x22, 80]
strh wzr, [x22, 3970]
ldrh w0, [x0, x1, lsl 1]
strh w0, [x22, 3972]
- strh wzr, [x22, 2674]
- strb wzr, [x22, 2678]
-.L1455:
+ strh wzr, [x22, 186]
+ strb wzr, [x22, 190]
+.L1478:
add x1, x19, :lo12:.LANCHOR0
mov w0, 1
str w0, [x1, 3424]
- ldrh w26, [x1, 106]
- cbz w23, .L1467
- ldrh w0, [x1, 36]
- ldrh w2, [x1, 2672]
- ldr x1, [x1, 2376]
+ ldrh w26, [x1, 314]
+ cbz w23, .L1490
+ ldrh w0, [x1, 244]
+ ldrh w2, [x1, 184]
+ ldr x1, [x1, 80]
mul w0, w0, w26
ldrh w1, [x1, x2, lsl 1]
sub w0, w0, w1
@@ -10170,92 +10241,92 @@ rk_ftl_garbage_collect:
sdiv w0, w0, w1
add w20, w20, w0
and w20, w20, 65535
-.L1467:
+.L1490:
add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0, 2674]
+ ldrh w0, [x0, 186]
add w1, w0, w20
cmp w1, w26
- ble .L1468
+ ble .L1491
sub w20, w26, w0
and w20, w20, 65535
-.L1468:
+.L1491:
mov w27, 0
-.L1469:
+.L1492:
cmp w20, w27, uxth
- bls .L1477
+ bls .L1500
add x0, x19, :lo12:.LANCHOR0
- mov w24, 0
- add x3, x0, 2688
+ mov w25, 0
+ add x3, x0, 200
mov w1, 0
mov w6, 65535
- ldrh w4, [x0, 2674]
- ldrh w7, [x0, 36]
+ ldrh w4, [x0, 186]
+ ldrh w7, [x0, 244]
add w4, w4, w27
- b .L1478
-.L1471:
+ b .L1501
+.L1494:
ldrh w2, [x3]
cmp w2, w6
- beq .L1470
+ beq .L1493
ldr x5, [x0, 3280]
- ubfiz x8, x24, 5, 16
- add w24, w24, 1
+ ubfiz x8, x25, 5, 16
+ add w25, w25, 1
orr w2, w4, w2, lsl 10
add x5, x5, x8
- and w24, w24, 65535
+ and w25, w25, 65535
str w2, [x5, 4]
-.L1470:
+.L1493:
add w1, w1, 1
add x3, x3, 2
and w1, w1, 65535
-.L1478:
+.L1501:
cmp w1, w7
- bne .L1471
+ bne .L1494
add x22, x19, :lo12:.LANCHOR0
- mov w1, w24
+ mov w1, w25
mov x28, 0
- ldrb w2, [x22, 2680]
+ ldrb w2, [x22, 192]
ldr x0, [x22, 3280]
bl FlashReadPages
- ubfiz x0, x24, 5, 16
+ ubfiz x0, x25, 5, 16
str x0, [x29, 104]
-.L1472:
+.L1495:
ldr x0, [x29, 104]
cmp x0, x28
- bne .L1476
+ bne .L1499
add w27, w27, 1
- b .L1469
-.L1476:
+ b .L1492
+.L1499:
ldr x0, [x22, 3280]
add x1, x0, x28
ldr w0, [x0, x28]
cmn w0, #1
- beq .L1473
- ldr x24, [x1, 16]
+ beq .L1496
+ ldr x25, [x1, 16]
mov w0, 61589
- ldrh w1, [x24]
+ ldrh w1, [x25]
cmp w1, w0
- bne .L1473
- ldr w4, [x24, 8]
+ bne .L1496
+ ldr w4, [x25, 8]
cmn w4, #1
- bne .L1474
+ bne .L1497
str w4, [x29, 96]
- mov w2, 736
- mov x1, x25
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ mov w2, 753
+ mov x1, x24
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
ldr w4, [x29, 96]
-.L1474:
+.L1497:
mov w2, 0
- add x1, x29, 124
+ add x1, x29, 120
mov w0, w4
bl log2phys
ldr x0, [x22, 3280]
- ldr w1, [x29, 124]
+ ldr w1, [x29, 120]
add x0, x0, x28
ldr w2, [x0, 4]
cmp w2, w1
- bne .L1473
+ bne .L1496
ldrh w1, [x22, 3970]
ldr x2, [x22, 3448]
add w1, w1, 1
@@ -10277,83 +10348,124 @@ rk_ftl_garbage_collect:
str x2, [x0, 8]
ldr x1, [x1, 16]
str x1, [x0, 16]
- ldr w0, [x29, 124]
+ ldr w0, [x29, 120]
mov w1, 1
- str w0, [x24, 12]
- ldrh w0, [x22, 2520]
- strh w0, [x24, 2]
- ldr w0, [x22, 2624]
- str w0, [x24, 4]
+ str w0, [x25, 12]
+ ldrh w0, [x22, 136]
+ strh w0, [x25, 2]
+ ldr w0, [x22, 2672]
+ str w0, [x25, 4]
ldr w0, [x22, 3248]
add w0, w0, 1
str w0, [x22, 3248]
ldr x0, [x22, 3280]
add x0, x0, x28
bl FtlGcBufAlloc
- ldrb w1, [x22, 2527]
+ ldrb w1, [x22, 143]
ldr w0, [x22, 3248]
cmp w1, w0
- beq .L1475
- ldrh w0, [x22, 2524]
- cbnz w0, .L1473
-.L1475:
+ beq .L1498
+ ldrh w0, [x22, 140]
+ cbnz w0, .L1496
+.L1498:
bl Ftl_gc_temp_data_write_back
- cbz w0, .L1473
+ cbz w0, .L1496
add x19, x19, :lo12:.LANCHOR0
- ldrh w0, [x19, 3968]
+ mov w0, -1
+ strh wzr, [x19, 186]
+ strh w0, [x19, 184]
str wzr, [x19, 3424]
- b .L1413
-.L1473:
+ ldrh w0, [x19, 3968]
+ b .L1436
+.L1496:
add x28, x28, 32
- b .L1472
-.L1477:
+ b .L1495
+.L1500:
add x22, x19, :lo12:.LANCHOR0
- ldrh w0, [x22, 2674]
+ ldrh w0, [x22, 186]
add w20, w20, w0
and w20, w20, 65535
- strh w20, [x22, 2674]
+ strh w20, [x22, 186]
cmp w26, w20
- bhi .L1479
+ bhi .L1502
ldr w0, [x22, 3248]
- cbz w0, .L1480
+ cbz w0, .L1503
bl Ftl_gc_temp_data_write_back
- cbz w0, .L1480
+ cbz w0, .L1503
str wzr, [x22, 3424]
- b .L1523
-.L1480:
+ b .L1554
+.L1503:
+ add x20, x19, :lo12:.LANCHOR0
+ ldrh w0, [x20, 3970]
+ cbnz w0, .L1504
+ ldrh w1, [x20, 184]
+ ldr x3, [x20, 80]
+ ubfiz x2, x1, 1, 16
+ ldrh w4, [x3, x2]
+ cbz w4, .L1504
+ ldrh w5, [x20, 3972]
+ mov w22, 0
+ ldrh w2, [x20, 186]
+ mov w3, 0
+ adrp x0, .LC125
+ add x0, x0, :lo12:.LC125
+ bl sftl_printk
+.L1505:
+ ldr w0, [x20, 2632]
+ cmp w22, w0
+ bcs .L1507
+ mov w2, 0
+ add x1, x29, 124
+ mov w0, w22
+ bl log2phys
+ ldr w4, [x29, 124]
+ cmn w4, #1
+ beq .L1506
+ lsr w0, w4, 10
+ bl P2V_block_in_plane
+ ldrh w1, [x20, 184]
+ cmp w1, w0, uxth
+ bne .L1506
+ adrp x0, .LC126
+ mov w2, w4
+ mov w1, w22
+ add x0, x0, :lo12:.LC126
+ bl sftl_printk
+.L1507:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 3970]
- cbnz w1, .L1481
- ldrh w1, [x0, 2672]
- ldr x2, [x0, 2376]
- lsl x1, x1, 1
- ldrh w3, [x2, x1]
- cbz w3, .L1481
- strh wzr, [x2, x1]
- ldrh w0, [x0, 2672]
+ ldr w1, [x0, 2632]
+ cmp w22, w1
+ bcc .L1504
+ ldrh w2, [x0, 184]
+ ldr x1, [x0, 80]
+ strh wzr, [x1, x2, lsl 1]
+ ldrh w0, [x0, 184]
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L1481:
+.L1504:
add x0, x19, :lo12:.LANCHOR0
mov w1, -1
- strh w1, [x0, 2672]
-.L1479:
+ strh w1, [x0, 184]
+.L1502:
add x0, x19, :lo12:.LANCHOR0
- ldrh w1, [x0, 2416]
+ ldrh w1, [x0, 236]
str wzr, [x0, 3424]
cmp w1, 2
- bhi .L1482
- ldrh w20, [x0, 106]
- b .L1483
-.L1482:
+ bhi .L1510
+ ldrh w20, [x0, 314]
+ b .L1511
+.L1506:
+ add w22, w22, 1
+ b .L1505
+.L1510:
ldrh w0, [x0, 3968]
cmp w0, 0
csinc w0, w0, w1, ne
- b .L1413
-.L1486:
+ b .L1436
+.L1514:
mov w0, 0
- b .L1413
+ b .L1436
.size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
.align 2
.global FtlRead
@@ -10371,13 +10483,13 @@ FtlRead:
mov w25, w2
stp x21, x22, [sp, 32]
stp x27, x28, [sp, 80]
- bne .L1525
+ bne .L1556
mov x2, x3
mov w1, w25
add w0, w19, 256
bl FtlVendorPartRead
mov w21, w0
-.L1524:
+.L1555:
mov w0, w21
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -10386,21 +10498,21 @@ FtlRead:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 160
ret
-.L1525:
+.L1556:
add w0, w1, w2
str w0, [x29, 128]
adrp x0, .LANCHOR0
add x3, x0, :lo12:.LANCHOR0
add w2, w1, w2
str x0, [x29, 96]
- ldr w1, [x3, 144]
+ ldr w1, [x3, 352]
cmp w2, w1
- bhi .L1546
+ bhi .L1577
adrp x0, .LANCHOR2
ldr w21, [x0, #:lo12:.LANCHOR2]
cmn w21, #1
- beq .L1524
- ldrh w0, [x3, 62]
+ beq .L1555
+ ldrh w0, [x3, 270]
sub w24, w2, #1
mov x26, x3
mov w28, 0
@@ -10409,51 +10521,51 @@ FtlRead:
str wzr, [x29, 140]
udiv w27, w19, w0
udiv w24, w24, w0
- ldr w0, [x3, 2616]
+ ldr w0, [x3, 2664]
add w0, w0, w25
- str w0, [x3, 2616]
- ldr w0, [x3, 2588]
+ str w0, [x3, 2664]
+ ldr w0, [x3, 2636]
mov w20, w27
sub w22, w24, w27
add w22, w22, 1
add w0, w0, w22
- str w0, [x3, 2588]
-.L1527:
- cbnz w22, .L1544
+ str w0, [x3, 2636]
+.L1558:
+ cbnz w22, .L1575
ldr x0, [x29, 96]
add x0, x0, :lo12:.LANCHOR0
- ldrh w1, [x0, 3324]
- cbnz w1, .L1545
- ldrh w0, [x0, 2416]
+ ldrh w1, [x0, 3320]
+ cbnz w1, .L1576
+ ldrh w0, [x0, 236]
cmp w0, 31
- bhi .L1524
-.L1545:
+ bhi .L1555
+.L1576:
mov w1, 1
mov w0, 0
bl rk_ftl_garbage_collect
- b .L1524
-.L1544:
+ b .L1555
+.L1575:
add x1, x29, 156
mov w2, 0
mov w0, w20
bl log2phys
ldr w1, [x29, 156]
cmn w1, #1
- bne .L1528
+ bne .L1559
mov w5, 0
-.L1529:
- ldrh w0, [x26, 62]
+.L1560:
+ ldrh w0, [x26, 270]
cmp w5, w0
- bcc .L1531
-.L1532:
+ bcc .L1562
+.L1563:
add w20, w20, 1
subs w22, w22, #1
- beq .L1536
- ldrh w0, [x26, 36]
+ beq .L1567
+ ldrh w0, [x26, 244]
cmp w28, w0, lsl 2
- bne .L1527
-.L1536:
- cbz w28, .L1527
+ bne .L1558
+.L1567:
+ cbz w28, .L1558
ldr x0, [x26, 3440]
mov w1, w28
mov w2, 0
@@ -10470,63 +10582,63 @@ FtlRead:
ubfiz x0, x28, 5, 32
mov x28, 0
str x0, [x29, 104]
-.L1543:
+.L1574:
ldr x0, [x26, 3440]
add x0, x0, x28
ldr w1, [x0, 24]
cmp w27, w1
- bne .L1538
+ bne .L1569
ldr x1, [x0, 8]
ldr x0, [x26, 3488]
cmp x1, x0
- bne .L1539
+ bne .L1570
ldr x0, [x29, 120]
ldr w2, [x29, 116]
add x1, x1, x0
mov x0, x23
-.L1556:
+.L1587:
bl ftl_memcpy
-.L1539:
+.L1570:
ldr x0, [x26, 3440]
add x0, x0, x28
ldr x1, [x0, 16]
ldr w2, [x0, 24]
ldr w1, [x1, 8]
cmp w2, w1
- beq .L1540
+ beq .L1571
ldr w1, [x26, 2792]
add w1, w1, 1
str w1, [x26, 2792]
-.L1540:
+.L1571:
ldr w2, [x0]
cmn w2, #1
- bne .L1541
+ bne .L1572
ldr w1, [x26, 2792]
mov w21, w2
add w1, w1, 1
str w1, [x26, 2792]
-.L1541:
+.L1572:
ldr w1, [x0]
cmp w1, 256
- bne .L1542
+ bne .L1573
ldr w0, [x0, 4]
lsr w0, w0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1542:
+.L1573:
ldr x0, [x29, 104]
add x28, x28, 32
cmp x0, x28
- bne .L1543
+ bne .L1574
mov w28, 0
- b .L1527
-.L1531:
+ b .L1558
+.L1562:
madd w0, w20, w0, w5
cmp w19, w0
- bhi .L1530
+ bhi .L1561
ldr w1, [x29, 128]
cmp w1, w0
- bls .L1530
+ bls .L1561
sub w0, w0, w19
str w5, [x29, 120]
lsl w0, w0, 9
@@ -10535,17 +10647,17 @@ FtlRead:
add x0, x23, x0
bl ftl_memset
ldr w5, [x29, 120]
-.L1530:
+.L1561:
add w5, w5, 1
- b .L1529
-.L1528:
+ b .L1560
+.L1559:
ldr x0, [x26, 3440]
ubfiz x2, x28, 5, 32
cmp w20, w27
add x0, x0, x2
str w1, [x0, 4]
- ldrh w0, [x26, 62]
- bne .L1533
+ ldrh w0, [x26, 270]
+ bne .L1564
ldr x1, [x26, 3440]
ldr x5, [x26, 3488]
add x1, x1, x2
@@ -10558,23 +10670,23 @@ FtlRead:
csel w3, w25, w5, ls
str w3, [x29, 136]
cmp w3, w0
- bne .L1534
+ bne .L1565
str x23, [x1, 8]
-.L1534:
+.L1565:
ldr x0, [x26, 3440]
ldr x1, [x26, 3536]
add x2, x0, x2
- ldrh w0, [x26, 116]
+ ldrh w0, [x26, 324]
str w20, [x2, 24]
mul w0, w0, w28
add w28, w28, 1
and x0, x0, 4294967292
add x0, x1, x0
str x0, [x2, 16]
- b .L1532
-.L1533:
+ b .L1563
+.L1564:
cmp w20, w24
- bne .L1535
+ bne .L1566
ldr x5, [x26, 3440]
ldr x1, [x26, 3496]
add x5, x5, x2
@@ -10584,13 +10696,13 @@ FtlRead:
sub w3, w3, w1
str w3, [x29, 132]
cmp w0, w3
- bne .L1534
+ bne .L1565
sub w1, w1, w19
lsl w1, w1, 9
add x1, x23, x1
str x1, [x5, 8]
- b .L1534
-.L1535:
+ b .L1565
+.L1566:
ldr x1, [x26, 3440]
mul w0, w0, w20
add x1, x1, x2
@@ -10598,24 +10710,24 @@ FtlRead:
lsl w0, w0, 9
add x0, x23, x0
str x0, [x1, 8]
- b .L1534
-.L1538:
+ b .L1565
+.L1569:
cmp w24, w1
- bne .L1539
+ bne .L1570
ldr x1, [x0, 8]
ldr x0, [x26, 3496]
cmp x1, x0
- bne .L1539
- ldrh w0, [x26, 62]
+ bne .L1570
+ ldrh w0, [x26, 270]
ldr w2, [x29, 112]
mul w0, w0, w24
sub w0, w0, w19
lsl w0, w0, 9
add x0, x23, x0
- b .L1556
-.L1546:
+ b .L1587
+.L1577:
mov w21, -1
- b .L1524
+ b .L1555
.size FtlRead, .-FtlRead
.align 2
.global sftl_read
@@ -10647,12 +10759,12 @@ FtlWrite:
stp x21, x22, [sp, 32]
stp x27, x28, [sp, 80]
str w2, [x29, 172]
- bne .L1560
+ bne .L1591
add w0, w1, 256
ldr w1, [x29, 172]
mov x2, x3
bl FtlVendorPartWrite
-.L1559:
+.L1590:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
@@ -10660,27 +10772,27 @@ FtlWrite:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 224
ret
-.L1560:
+.L1591:
ldr w0, [x29, 172]
adrp x19, .LANCHOR0
add x1, x19, :lo12:.LANCHOR0
add w0, w23, w0
str w0, [x29, 148]
- ldr w0, [x1, 144]
+ ldr w0, [x1, 352]
ldr w2, [x29, 148]
cmp w2, w0
- bhi .L1596
+ bhi .L1627
adrp x2, .LANCHOR2
str x2, [x29, 136]
add x3, x2, :lo12:.LANCHOR2
ldr w0, [x2, #:lo12:.LANCHOR2]
cmn w0, #1
- beq .L1559
+ beq .L1590
mov w0, 2048
ldr w2, [x29, 148]
str w0, [x1, 3976]
- add x20, x1, 2424
- ldrh w0, [x1, 62]
+ add x20, x1, 32
+ ldrh w0, [x1, 270]
sub w2, w2, #1
udiv w25, w23, w0
udiv w0, w2, w0
@@ -10689,65 +10801,65 @@ FtlWrite:
sub w0, w0, w25
add w24, w0, 1
str w0, [x29, 132]
- ldr w0, [x1, 2612]
+ ldr w0, [x1, 2660]
add w0, w0, w2
- str w0, [x1, 2612]
- ldr w0, [x1, 2596]
+ str w0, [x1, 2660]
+ ldr w0, [x1, 2644]
add w0, w0, w24
- str w0, [x1, 2596]
+ str w0, [x1, 2644]
ldr w0, [x3, 8]
- cbz w0, .L1562
+ cbz w0, .L1593
ldrh w0, [x20, 4]
- add x1, x1, 2472
+ add x1, x1, 88
cmp w0, 0
csel x20, x1, x20, eq
-.L1562:
+.L1593:
adrp x0, .LANCHOR1
mov w21, w25
add x0, x0, :lo12:.LANCHOR1
add x0, x0, 696
str x0, [x29, 160]
-.L1563:
- cbnz w24, .L1591
+.L1594:
+ cbnz w24, .L1622
ldr w1, [x29, 132]
add x19, x19, :lo12:.LANCHOR0
mov w0, 0
bl rk_ftl_garbage_collect
- ldrh w0, [x19, 2416]
+ ldrh w0, [x19, 236]
cmp w0, 5
- bls .L1592
-.L1594:
+ bls .L1623
+.L1625:
mov w0, 0
- b .L1559
-.L1591:
+ b .L1590
+.L1622:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x20, 6]
- ldrh w0, [x0, 36]
+ ldrh w0, [x0, 244]
cmp w1, w0
- bcc .L1564
+ bcc .L1595
ldr x1, [x29, 160]
- adrp x0, .LC1
- mov w2, 1016
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ mov w2, 1038
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1564:
+.L1595:
ldrh w0, [x20, 4]
- cbnz w0, .L1565
+ cbnz w0, .L1596
add x0, x19, :lo12:.LANCHOR0
- add x1, x0, 2424
+ add x1, x0, 32
cmp x20, x1
- bne .L1566
- add x0, x0, 2472
+ bne .L1597
+ add x0, x0, 88
ldrh w1, [x0, 4]
- cbnz w1, .L1567
+ cbnz w1, .L1598
bl allocate_new_data_superblock
ldr x0, [x29, 136]
add x0, x0, :lo12:.LANCHOR2
str wzr, [x0, 8]
-.L1567:
+.L1598:
add x20, x19, :lo12:.LANCHOR0
- add x22, x20, 2424
- add x20, x20, 2472
+ add x22, x20, 32
+ add x20, x20, 88
mov x0, x22
bl allocate_new_data_superblock
ldr x0, [x29, 136]
@@ -10755,12 +10867,12 @@ FtlWrite:
ldr w0, [x0, 8]
cmp w0, 0
csel x20, x20, x22, ne
-.L1568:
+.L1599:
ldrh w0, [x20, 4]
- cbnz w0, .L1565
+ cbnz w0, .L1596
mov x0, x20
bl allocate_new_data_superblock
-.L1565:
+.L1596:
ldrh w0, [x20, 4]
ldrb w1, [x20, 7]
cmp w0, w24
@@ -10771,23 +10883,23 @@ FtlWrite:
str w0, [x29, 128]
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x20, 6]
- ldrh w0, [x0, 36]
+ ldrh w0, [x0, 244]
cmp w1, w0
- bcc .L1569
+ bcc .L1600
ldr x1, [x29, 160]
- adrp x0, .LC1
- mov w2, 1049
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ mov w2, 1071
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1569:
+.L1600:
mov x28, 0
-.L1570:
+.L1601:
ldr w0, [x29, 128]
mov w22, w28
cmp w28, w0
- bcc .L1589
+ bcc .L1620
mov x22, x0
-.L1571:
+.L1602:
add x0, x19, :lo12:.LANCHOR0
mov x3, x20
mov w2, 0
@@ -10795,30 +10907,30 @@ FtlWrite:
ldr x0, [x0, 3456]
bl FtlProgPages
cmp w24, w22
- bcs .L1590
+ bcs .L1621
ldr x1, [x29, 160]
- adrp x0, .LC1
- mov w2, 1126
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ mov w2, 1149
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1590:
+.L1621:
sub w24, w24, w22
- b .L1563
-.L1566:
+ b .L1594
+.L1597:
ldr x0, [x29, 136]
add x0, x0, :lo12:.LANCHOR2
str wzr, [x0, 8]
ldrh w0, [x1, 4]
- cbnz w0, .L1601
+ cbnz w0, .L1632
mov x0, x20
bl allocate_new_data_superblock
- b .L1568
-.L1601:
+ b .L1599
+.L1632:
mov x20, x1
- b .L1565
-.L1589:
+ b .L1596
+.L1620:
ldrh w0, [x20, 4]
- cbz w0, .L1571
+ cbz w0, .L1602
add x1, x29, 188
mov w2, 0
mov w0, w21
@@ -10826,18 +10938,18 @@ FtlWrite:
mov x0, x20
lsl x27, x28, 5
bl get_new_active_ppa
- add x4, x19, :lo12:.LANCHOR0
- str x4, [x29, 152]
- ldr x1, [x4, 3456]
- ldrh w2, [x4, 116]
+ add x3, x19, :lo12:.LANCHOR0
+ str x3, [x29, 152]
+ ldr x1, [x3, 3456]
+ ldrh w2, [x3, 324]
add x1, x1, x27
str w0, [x1, 4]
mul w22, w22, w2
- ldr x0, [x4, 3456]
+ ldr x0, [x3, 3456]
and x1, x22, 4294967292
str x1, [x29, 120]
add x0, x0, x27
- ldr x1, [x4, 3536]
+ ldr x1, [x3, 3536]
ldr x3, [x29, 120]
str x1, [x29, 112]
add x22, x1, x3
@@ -10848,12 +10960,12 @@ FtlWrite:
bl ftl_memset
ldr w0, [x29, 144]
cmp w21, w25
- ldr x4, [x29, 152]
+ ldr x3, [x29, 152]
ccmp w21, w0, 4, ne
- bne .L1572
+ bne .L1603
cmp w21, w25
- bne .L1573
- ldrh w2, [x4, 62]
+ bne .L1604
+ ldrh w2, [x3, 270]
udiv w0, w23, w2
msub w0, w0, w2, w23
str w0, [x29, 168]
@@ -10862,173 +10974,178 @@ FtlWrite:
cmp w2, w0
csel w0, w2, w0, ls
str w0, [x29, 152]
-.L1574:
+.L1605:
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x29, 152]
- ldrh w1, [x0, 62]
+ ldrh w1, [x0, 270]
cmp w2, w1
- bne .L1575
+ bne .L1606
ldr x0, [x0, 3456]
cmp w21, w25
- add x3, x0, x27
- bne .L1576
- str x26, [x3, 8]
-.L1577:
+ add x4, x0, x27
+ bne .L1607
+ str x26, [x4, 8]
+.L1608:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x20, 6]
- ldrh w0, [x0, 36]
+ ldrh w0, [x0, 244]
cmp w1, w0
- bcc .L1586
+ bcc .L1617
ldr x1, [x29, 160]
- adrp x0, .LC1
- mov w2, 1117
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ mov w2, 1140
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1586:
+.L1617:
ldp x1, x2, [x29, 112]
mov w0, -3947
add x28, x28, 1
strh w0, [x1, x2]
add x1, x19, :lo12:.LANCHOR0
- ldr w0, [x1, 2624]
+ ldr w0, [x1, 2672]
stp w0, w21, [x22, 4]
add w21, w21, 1
add w0, w0, 1
cmn w0, #1
csel w0, w0, wzr, ne
- str w0, [x1, 2624]
+ str w0, [x1, 2672]
ldr w0, [x29, 188]
str w0, [x22, 12]
ldrh w0, [x20]
strh w0, [x22, 2]
- b .L1570
-.L1573:
+ b .L1601
+.L1604:
ldr w0, [x29, 148]
- ldrh w2, [x4, 62]
+ ldrh w2, [x3, 270]
str wzr, [x29, 168]
msub w2, w21, w2, w0
and w0, w2, 65535
str w0, [x29, 152]
- b .L1574
-.L1576:
+ b .L1605
+.L1607:
ldr w0, [x29, 152]
-.L1608:
+.L1639:
mul w0, w0, w21
sub w0, w0, w23
lsl w0, w0, 9
add x0, x26, x0
- str x0, [x3, 8]
- b .L1577
-.L1575:
+ str x0, [x4, 8]
+ b .L1608
+.L1606:
ldr x1, [x0, 3456]
cmp w21, w25
add x1, x1, x27
- bne .L1578
+ bne .L1609
ldr x0, [x0, 3488]
-.L1607:
+.L1638:
str x0, [x1, 8]
ldr w0, [x29, 188]
cmn w0, #1
- beq .L1580
- add x4, x19, :lo12:.LANCHOR0
+ beq .L1611
+ add x5, x19, :lo12:.LANCHOR0
str w0, [x29, 196]
str w21, [x29, 216]
mov w2, 0
- str x4, [x29, 104]
- ldr x0, [x4, 3456]
+ str x5, [x29, 104]
+ ldr x0, [x5, 3456]
add x0, x0, x27
ldp x1, x0, [x0, 8]
stp x1, x0, [x29, 200]
mov w1, 1
add x0, x29, 192
bl FlashReadPages
- ldr w0, [x29, 192]
- ldr x4, [x29, 104]
- cmn w0, #1
- bne .L1581
- ldr w0, [x4, 2792]
+ ldr w3, [x29, 192]
+ ldr x5, [x29, 104]
+ cmn w3, #1
+ bne .L1612
+ ldr w0, [x5, 2792]
+ mov w2, w21
add w0, w0, 1
- str w0, [x4, 2792]
-.L1584:
+ str w0, [x5, 2792]
+ adrp x0, .LC127
+ add x0, x0, :lo12:.LC127
+ ldr w1, [x22, 8]
+ bl sftl_printk
+.L1615:
ldr w0, [x29, 152]
cmp w21, w25
lsl w2, w0, 9
add x0, x19, :lo12:.LANCHOR0
- bne .L1585
+ bne .L1616
ldr x0, [x0, 3456]
mov x1, x26
- add x3, x0, x27
+ add x4, x0, x27
ldr w0, [x29, 168]
- ldr x3, [x3, 8]
+ ldr x3, [x4, 8]
lsl w0, w0, 9
add x0, x3, x0
-.L1609:
+.L1640:
bl ftl_memcpy
- b .L1577
-.L1578:
+ b .L1608
+.L1609:
ldr x0, [x0, 3496]
- b .L1607
-.L1581:
+ b .L1638
+.L1612:
ldr w0, [x22, 8]
cmp w21, w0
- beq .L1583
- ldr w0, [x4, 2792]
+ beq .L1614
+ ldr w0, [x5, 2792]
mov w2, w21
add w0, w0, 1
- str w0, [x4, 2792]
- adrp x0, .LC114
- add x0, x0, :lo12:.LC114
+ str w0, [x5, 2792]
+ adrp x0, .LC128
+ add x0, x0, :lo12:.LC128
ldr w1, [x22, 8]
bl sftl_printk
-.L1583:
+.L1614:
ldr w0, [x22, 8]
cmp w21, w0
- beq .L1584
+ beq .L1615
ldr x1, [x29, 160]
- mov w2, 1102
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ mov w2, 1125
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L1584
-.L1580:
+ b .L1615
+.L1611:
add x1, x19, :lo12:.LANCHOR0
ldr x0, [x1, 3456]
- ldrh w2, [x1, 114]
+ ldrh w2, [x1, 322]
mov w1, 0
add x0, x0, x27
ldr x0, [x0, 8]
bl ftl_memset
- b .L1584
-.L1585:
- ldrh w1, [x0, 62]
+ b .L1615
+.L1616:
+ ldrh w1, [x0, 270]
ldr x0, [x0, 3456]
- add x3, x0, x27
+ add x4, x0, x27
mul w1, w1, w21
sub w1, w1, w23
- ldr x0, [x3, 8]
+ ldr x0, [x4, 8]
lsl w1, w1, 9
add x1, x26, x1
- b .L1609
-.L1572:
- ldr x0, [x4, 3456]
- add x3, x0, x27
- ldrh w0, [x4, 62]
- b .L1608
-.L1592:
+ b .L1640
+.L1603:
+ ldr x0, [x3, 3456]
+ add x4, x0, x27
+ ldrh w0, [x3, 270]
+ b .L1639
+.L1623:
mov w20, 256
mov w21, 65535
mov w22, 128
-.L1595:
- ldrh w0, [x19, 2672]
+.L1626:
+ ldrh w0, [x19, 184]
cmp w0, w21
- bne .L1593
- ldrh w0, [x19, 3320]
+ bne .L1624
+ ldrh w0, [x19, 234]
cmp w0, w21
- bne .L1593
+ bne .L1624
mov w0, 0
bl List_get_gc_head_node
bl FtlGcRefreshBlock
-.L1593:
+.L1624:
mov w1, 1
strh w22, [x19, 3234]
mov w0, w1
@@ -11037,15 +11154,15 @@ FtlWrite:
mov w1, 1
mov w0, 0
bl rk_ftl_garbage_collect
- ldrh w0, [x19, 2416]
+ ldrh w0, [x19, 236]
cmp w0, 2
- bhi .L1594
+ bhi .L1625
subs w20, w20, #1
- bne .L1595
- b .L1594
-.L1596:
+ bne .L1626
+ b .L1625
+.L1627:
mov w0, -1
- b .L1559
+ b .L1590
.size FtlWrite, .-FtlWrite
.align 2
.global sftl_gc
@@ -11077,25 +11194,25 @@ FtlLoadSysInfo:
str x0, [x20, 8]
ldr x0, [x21, 3528]
str x0, [x20, 16]
- ldr x0, [x21, 2376]
- ldrh w2, [x21, 44]
+ ldr x0, [x21, 80]
+ ldrh w2, [x21, 252]
lsl w2, w2, 1
bl ftl_memset
- ldrh w0, [x21, 2656]
+ ldrh w0, [x21, 2704]
mov w1, 65535
cmp w0, w1
- bne .L1613
-.L1624:
+ bne .L1644
+.L1655:
mov w0, -1
-.L1612:
+.L1643:
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
-.L1613:
- add x23, x21, 2656
+.L1644:
+ add x23, x21, 2704
mov w1, 1
bl FtlGetLastWrittenPage
sxth w19, w0
@@ -11103,19 +11220,19 @@ FtlLoadSysInfo:
add w0, w0, 1
add x1, x1, :lo12:.LANCHOR1
strh w0, [x23, 2]
- ldrsh w23, [x21, 2656]
+ ldrsh w23, [x21, 2704]
add x24, x1, 712
-.L1615:
- tbz w19, #31, .L1621
+.L1646:
+ tbz w19, #31, .L1652
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
mov w2, 1465
add x1, x1, 712
- adrp x0, .LC1
- add x0, x0, :lo12:.LC1
+ adrp x0, .LC8
+ add x0, x0, :lo12:.LC8
bl sftl_printk
- b .L1620
-.L1621:
+ b .L1651
+.L1652:
orr w0, w19, w23, lsl 10
str w0, [x20, 4]
ldr x0, [x21, 3464]
@@ -11126,77 +11243,80 @@ FtlLoadSysInfo:
bl FlashReadPages
ldr x0, [x20, 16]
ldr w7, [x0, 12]
- cbz w7, .L1616
- ldrh w1, [x21, 114]
+ cbz w7, .L1647
+ ldr w0, [x20]
+ cmn w0, #1
+ beq .L1647
+ ldrh w1, [x21, 322]
ldr x0, [x20, 8]
bl js_hash
cmp w7, w0
- beq .L1616
- ldrh w4, [x21, 2660]
+ beq .L1647
+ ldrh w4, [x21, 2708]
mov w6, w0
mov w5, w7
- adrp x0, .LC115
+ adrp x0, .LC129
mov w3, w19
mov w2, w23
mov x1, x24
- add x0, x0, :lo12:.LC115
+ add x0, x0, :lo12:.LC129
bl sftl_printk
- cbnz w19, .L1617
- ldrh w0, [x21, 2660]
+ cbnz w19, .L1648
+ ldrh w0, [x21, 2708]
cmp w23, w0
- beq .L1617
- ldrh w19, [x21, 108]
+ beq .L1648
+ ldrh w19, [x21, 316]
sxth w23, w0
-.L1619:
+.L1650:
sub w19, w19, #1
sxth w19, w19
- b .L1615
-.L1617:
+ b .L1646
+.L1648:
mov w0, -1
str w0, [x20]
-.L1616:
+.L1647:
ldr w0, [x20]
cmn w0, #1
- beq .L1619
+ beq .L1650
ldr x0, [x21, 3464]
ldr w1, [x0]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- bne .L1619
+ bne .L1650
ldr x0, [x21, 3528]
ldrh w1, [x0]
mov w0, 61604
cmp w1, w0
- bne .L1619
-.L1620:
+ bne .L1650
+.L1651:
add x1, x22, :lo12:.LANCHOR0
- ldrh w0, [x1, 44]
- ldrh w1, [x1, 114]
+ ldrh w0, [x1, 252]
+ ldrh w1, [x1, 322]
add x0, x0, 24
cmp x1, x0, lsl 1
- bcs .L1623
+ bcs .L1654
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1467
add x1, x1, 712
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1623:
+.L1654:
add x19, x22, :lo12:.LANCHOR0
mov w2, 48
- add x20, x19, 2312
+ add x20, x19, 2520
mov x0, x20
ldr x1, [x19, 3736]
bl ftl_memcpy
- ldr x0, [x19, 2376]
- ldrh w2, [x19, 44]
+ ldr x0, [x19, 80]
+ ldrh w2, [x19, 252]
ldr x1, [x19, 3736]
lsl w2, w2, 1
add x1, x1, 48
bl ftl_memcpy
- ldrh w1, [x19, 44]
+ ldrh w1, [x19, 252]
ldr x0, [x19, 3736]
lsr w2, w1, 3
ubfiz x1, x1, 1, 16
@@ -11206,129 +11326,129 @@ FtlLoadSysInfo:
add x1, x0, x1
ldr x0, [x19, 24]
bl ftl_memcpy
- ldr w1, [x19, 2312]
+ ldr w1, [x19, 2520]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- bne .L1624
- ldrh w1, [x19, 2320]
- ldrb w2, [x19, 2322]
- ldrh w0, [x19, 58]
- strh w1, [x19, 2662]
+ bne .L1655
+ ldrh w1, [x19, 2528]
+ ldrb w2, [x19, 2530]
+ ldrh w0, [x19, 266]
+ strh w1, [x19, 2710]
cmp w2, w0
- bne .L1624
- ldrh w0, [x19, 106]
- ldrh w2, [x19, 62]
- ldrh w3, [x19, 36]
+ bne .L1655
+ ldrh w0, [x19, 314]
+ ldrh w2, [x19, 270]
+ ldrh w3, [x19, 244]
str w1, [x19, 3980]
mul w0, w0, w1
- str w0, [x19, 2584]
+ str w0, [x19, 2632]
mul w0, w2, w0
- ldr w2, [x19, 48]
- str w0, [x19, 144]
- ldrh w0, [x19, 166]
+ ldr w2, [x19, 256]
+ str w0, [x19, 352]
+ ldrh w0, [x19, 374]
cmp w1, w2
sub w0, w2, w0
sub w0, w0, w1
udiv w0, w0, w3
- strh w0, [x19, 2652]
- bls .L1625
+ strh w0, [x19, 2700]
+ bls .L1656
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- adrp x0, .LC1
+ adrp x0, .LC8
mov w2, 1489
add x1, x1, 712
- add x0, x0, :lo12:.LC1
+ add x0, x0, :lo12:.LC8
bl sftl_printk
-.L1625:
+.L1656:
add x0, x22, :lo12:.LANCHOR0
mov w3, -1
- ldrh w2, [x0, 2328]
- ldrh w4, [x0, 2326]
- strh w4, [x0, 2424]
+ ldrh w2, [x0, 2536]
+ ldrh w4, [x0, 2534]
+ strh w4, [x0, 32]
lsr w5, w2, 6
and w2, w2, 63
- strb w2, [x0, 2430]
- ldrb w2, [x0, 2323]
- strb w2, [x0, 2432]
- ldrh w2, [x0, 2330]
- strh w2, [x0, 2472]
- ldrh w2, [x0, 2332]
- strh w5, [x0, 2426]
- strh w3, [x0, 2672]
+ strb w2, [x0, 38]
+ ldrb w2, [x0, 2531]
+ strb w2, [x0, 40]
+ ldrh w2, [x0, 2538]
+ strh w2, [x0, 88]
+ ldrh w2, [x0, 2540]
+ strh w5, [x0, 34]
+ strh w3, [x0, 184]
lsr w5, w2, 6
and w2, w2, 63
- strb w2, [x0, 2478]
- ldrb w2, [x0, 2324]
- strb w2, [x0, 2480]
- ldrh w2, [x0, 2334]
- strh w2, [x0, 2520]
- ldrh w2, [x0, 2336]
- strh w5, [x0, 2474]
- strh wzr, [x0, 2674]
+ strb w2, [x0, 94]
+ ldrb w2, [x0, 2532]
+ strb w2, [x0, 96]
+ ldrh w2, [x0, 2542]
+ strh w2, [x0, 136]
+ ldrh w2, [x0, 2544]
+ strh w5, [x0, 90]
+ strh wzr, [x0, 186]
lsr w5, w2, 6
and w2, w2, 63
- strb w2, [x0, 2526]
- ldrb w2, [x0, 2325]
- strb w2, [x0, 2528]
- ldr w2, [x0, 2344]
- str w2, [x0, 2628]
- strb wzr, [x0, 2678]
- strb wzr, [x0, 2680]
- strh w5, [x0, 2522]
- str wzr, [x0, 2588]
- str wzr, [x0, 2596]
- str wzr, [x0, 2604]
- str wzr, [x0, 2608]
- str wzr, [x0, 2632]
+ strb w2, [x0, 142]
+ ldrb w2, [x0, 2533]
+ strb w2, [x0, 144]
+ ldr w2, [x0, 2552]
+ str w2, [x0, 2676]
+ strb wzr, [x0, 190]
+ strb wzr, [x0, 192]
+ strh w5, [x0, 138]
+ str wzr, [x0, 2636]
str wzr, [x0, 2644]
- ldr w1, [x0, 2352]
- ldr w2, [x0, 2620]
- str wzr, [x0, 2600]
+ str wzr, [x0, 2652]
+ str wzr, [x0, 2656]
+ str wzr, [x0, 2680]
+ str wzr, [x0, 2692]
+ ldr w1, [x0, 2560]
+ ldr w2, [x0, 2668]
+ str wzr, [x0, 2648]
cmp w1, w2
- bls .L1626
- str w1, [x0, 2620]
-.L1626:
+ bls .L1657
+ str w1, [x0, 2668]
+.L1657:
add x0, x22, :lo12:.LANCHOR0
- ldr w1, [x0, 2348]
- ldr w2, [x0, 2624]
+ ldr w1, [x0, 2556]
+ ldr w2, [x0, 2672]
cmp w1, w2
- bls .L1627
- str w1, [x0, 2624]
-.L1627:
+ bls .L1658
+ str w1, [x0, 2672]
+.L1658:
mov w0, 65535
cmp w4, w0
- beq .L1628
+ beq .L1659
add x0, x22, :lo12:.LANCHOR0
- add x0, x0, 2424
+ add x0, x0, 32
bl make_superblock
-.L1628:
+.L1659:
add x1, x22, :lo12:.LANCHOR0
- add x0, x1, 2472
- ldrh w2, [x1, 2472]
+ add x0, x1, 88
+ ldrh w2, [x1, 88]
mov w1, 65535
cmp w2, w1
- beq .L1629
+ beq .L1660
bl make_superblock
-.L1629:
+.L1660:
add x1, x22, :lo12:.LANCHOR0
- add x0, x1, 2520
- ldrh w2, [x1, 2520]
+ add x0, x1, 136
+ ldrh w2, [x1, 136]
mov w1, 65535
cmp w2, w1
- beq .L1630
+ beq .L1661
bl make_superblock
-.L1630:
+.L1661:
add x22, x22, :lo12:.LANCHOR0
mov w1, 65535
- add x0, x22, 2672
- ldrh w2, [x22, 2672]
+ add x0, x22, 184
+ ldrh w2, [x22, 184]
cmp w2, w1
- beq .L1631
+ beq .L1662
bl make_superblock
-.L1631:
+.L1662:
mov w0, 0
- b .L1612
+ b .L1643
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
.global FtlMapTblRecovery
@@ -11373,14 +11493,14 @@ FtlMapTblRecovery:
add x0, x0, :lo12:.LANCHOR1
add x0, x0, 728
str x0, [x29, 104]
-.L1641:
+.L1675:
ldr w0, [x29, 136]
cmp w20, w0
- bge .L1660
+ bge .L1694
ldr w0, [x29, 116]
sxtw x28, w20
cmp w20, w0
- bne .L1642
+ bne .L1676
lsl x0, x28, 1
mov w26, 0
add x1, x24, x0
@@ -11401,22 +11521,22 @@ FtlMapTblRecovery:
add x28, x21, :lo12:.LANCHOR0
add x27, x28, 3728
str w0, [x19, 48]
-.L1643:
+.L1677:
ldr w0, [x29, 120]
add w0, w0, 1
cmp w26, w0
- blt .L1646
-.L1660:
+ blt .L1680
+.L1694:
add x21, x21, :lo12:.LANCHOR0
mov x0, x19
bl ftl_free_no_use_map_blk
ldrh w1, [x19, 2]
- ldrh w0, [x21, 108]
+ ldrh w0, [x21, 316]
cmp w1, w0
- bne .L1648
+ bne .L1682
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L1648:
+.L1682:
mov x0, x19
bl ftl_map_blk_gc
mov x0, x19
@@ -11429,7 +11549,7 @@ FtlMapTblRecovery:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 144
ret
-.L1646:
+.L1680:
ldr x0, [x29, 136]
mov w2, 1
mov w1, w2
@@ -11440,41 +11560,44 @@ FtlMapTblRecovery:
bl FlashReadPages
ldr x0, [x27, 16]
ldr w8, [x0, 12]
- cbz w8, .L1644
- ldrh w1, [x28, 114]
+ cbz w8, .L1678
+ ldr w0, [x27]
+ cmn w0, #1
+ beq .L1678
+ ldrh w1, [x28, 322]
ldr x0, [x27, 8]
bl js_hash
cmp w8, w0
- beq .L1644
+ beq .L1678
mov w5, w0
mov w4, w8
mov w3, w26
mov w2, w20
mov x1, x24
- adrp x0, .LC116
- add x0, x0, :lo12:.LC116
+ adrp x0, .LC130
+ add x0, x0, :lo12:.LC130
bl sftl_printk
mov w0, -1
str w0, [x27]
-.L1644:
+.L1678:
ldr w0, [x27]
cmn w0, #1
- beq .L1645
+ beq .L1679
ldrh w0, [x22, 8]
cmp w25, w0
- bls .L1645
+ bls .L1679
ldrh w2, [x22]
ldrh w1, [x19, 4]
cmp w2, w1
- bne .L1645
+ bne .L1679
ubfiz x0, x0, 2, 16
ldr w1, [x27, 4]
str w1, [x23, x0]
-.L1645:
- add w6, w26, 1
- sxth w26, w6
- b .L1643
-.L1642:
+.L1679:
+ add w7, w26, 1
+ sxth w26, w7
+ b .L1677
+.L1676:
add x26, x21, :lo12:.LANCHOR0
lsl x2, x28, 1
add x0, x26, 3728
@@ -11483,7 +11606,7 @@ FtlMapTblRecovery:
add x1, x24, x2
str x1, [x29, 120]
ldrh w1, [x24, x2]
- ldrh w2, [x26, 108]
+ ldrh w2, [x26, 316]
sub w2, w2, #1
orr w1, w2, w1, lsl 10
mov w2, 1
@@ -11492,23 +11615,23 @@ FtlMapTblRecovery:
bl FlashReadPages
ldr w0, [x26, 3728]
cmn w0, #1
- beq .L1662
+ beq .L1696
ldrh w1, [x22]
ldrh w0, [x19, 4]
cmp w1, w0
- bne .L1662
+ bne .L1696
ldrh w1, [x22, 8]
mov w0, 64245
cmp w1, w0
- beq .L1650
-.L1662:
+ beq .L1684
+.L1696:
add x26, x21, :lo12:.LANCHOR0
mov w27, 0
add x28, x26, 3728
-.L1651:
- ldrh w0, [x26, 108]
+.L1685:
+ ldrh w0, [x26, 316]
cmp w27, w0
- bge .L1658
+ bge .L1692
ldr x0, [x29, 120]
mov w2, 1
mov w1, w2
@@ -11519,65 +11642,68 @@ FtlMapTblRecovery:
bl FlashReadPages
ldr x0, [x28, 16]
ldr w7, [x0, 12]
- cbz w7, .L1655
- ldrh w1, [x26, 114]
+ cbz w7, .L1689
+ ldr w0, [x28]
+ cmn w0, #1
+ beq .L1689
+ ldrh w1, [x26, 322]
ldr x0, [x28, 8]
bl js_hash
cmp w7, w0
- beq .L1655
+ beq .L1689
ldr x1, [x29, 104]
mov w5, w0
mov w4, w7
mov w3, w27
mov w2, w20
- adrp x0, .LC117
- add x0, x0, :lo12:.LC117
+ adrp x0, .LC131
+ add x0, x0, :lo12:.LC131
bl sftl_printk
mov w0, -1
str w0, [x28]
-.L1655:
+.L1689:
ldr w0, [x28]
cmn w0, #1
- beq .L1656
+ beq .L1690
ldrh w0, [x22, 8]
cmp w25, w0
- bls .L1656
+ bls .L1690
ldrh w2, [x22]
ldrh w1, [x19, 4]
cmp w2, w1
- bne .L1656
+ bne .L1690
ubfiz x0, x0, 2, 16
ldr w1, [x28, 4]
str w1, [x23, x0]
-.L1656:
+.L1690:
add w6, w27, 1
sxth w27, w6
- b .L1651
-.L1650:
+ b .L1685
+.L1684:
mov w0, 0
-.L1652:
- ldrh w1, [x26, 108]
+.L1686:
+ ldrh w1, [x26, 316]
sub w1, w1, #1
cmp w0, w1
- blt .L1654
-.L1658:
+ blt .L1688
+.L1692:
add w20, w20, 1
sxth w20, w20
- b .L1641
-.L1654:
+ b .L1675
+.L1688:
ldr x2, [x26, 3464]
sbfiz x3, x0, 3, 32
ldrh w1, [x2, x3]
cmp w25, w1
- bls .L1653
+ bls .L1687
add x2, x2, x3
ubfiz x1, x1, 2, 16
ldr w2, [x2, 4]
str w2, [x23, x1]
-.L1653:
+.L1687:
add w0, w0, 1
sxth w0, w0
- b .L1652
+ b .L1686
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 2
.global FtlLoadVonderInfo
@@ -11588,15 +11714,15 @@ FtlLoadVonderInfo:
stp x29, x30, [sp, -16]!
add x0, x1, 3896
add x29, sp, 0
- ldrh w2, [x1, 124]
+ ldrh w2, [x1, 332]
strh w2, [x0, 10]
mov w2, -3962
strh w2, [x0, 4]
- ldrh w2, [x1, 148]
+ ldrh w2, [x1, 356]
strh w2, [x0, 8]
- ldrh w2, [x1, 126]
+ ldrh w2, [x1, 334]
strh w2, [x0, 6]
- ldr x2, [x1, 152]
+ ldr x2, [x1, 360]
str x2, [x0, 16]
ldr x2, [x1, 3600]
str x2, [x0, 24]
@@ -11634,27 +11760,27 @@ FtlSysBlkInit:
stp x21, x22, [sp, 32]
add x21, x20, :lo12:.LANCHOR0
str x23, [sp, 48]
- ldrh w0, [x21, 40]
+ ldrh w0, [x21, 248]
strh wzr, [x21, 3760]
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
- ldrh w1, [x21, 2656]
+ ldrh w1, [x21, 2704]
mov w0, 65535
cmp w1, w0
- bne .L1681
-.L1683:
+ bne .L1721
+.L1723:
mov w23, -1
-.L1680:
+.L1720:
mov w0, w23
ldr x23, [sp, 48]
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x29, x30, [sp], 64
ret
-.L1681:
+.L1721:
bl FtlLoadSysInfo
mov w23, w0
- cbnz w0, .L1683
+ cbnz w0, .L1723
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -11664,87 +11790,88 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
mov w0, 1
bl FtlUpdateVaildLpn
- ldr x1, [x21, 2568]
+ ldr x1, [x21, 2616]
mov w0, 0
- ldrh w3, [x21, 142]
+ ldrh w3, [x21, 350]
add x1, x1, 4
-.L1684:
+.L1724:
cmp w0, w3
- bge .L1689
+ bge .L1729
ldr w2, [x1], 16
- tbz w2, #31, .L1685
-.L1689:
+ tbz w2, #31, .L1725
+.L1729:
add x2, x20, :lo12:.LANCHOR0
cmp w0, w3
- ldrh w1, [x2, 2340]
+ ldrh w1, [x2, 2548]
add w1, w1, 1
- strh w1, [x2, 2340]
- bge .L1694
-.L1686:
+ strh w1, [x2, 2548]
+ bge .L1735
+.L1726:
add x19, x20, :lo12:.LANCHOR0
- add x22, x19, 2424
- add x21, x19, 2472
+ add x22, x19, 32
+ add x21, x19, 88
mov x0, x22
bl FtlSuperblockPowerLostFix
mov x0, x21
bl FtlSuperblockPowerLostFix
- ldrh w0, [x19, 2424]
- ldr x2, [x19, 2376]
- ldrh w3, [x19, 2428]
+ ldrh w0, [x19, 32]
+ ldr x2, [x19, 80]
+ ldrh w3, [x19, 36]
lsl x0, x0, 1
ldrh w1, [x2, x0]
sub w1, w1, w3
strh w1, [x2, x0]
- strb wzr, [x19, 2430]
- ldrh w0, [x19, 106]
- strh w0, [x19, 2426]
- ldrh w0, [x19, 2472]
- ldr x2, [x19, 2376]
- strh wzr, [x19, 2428]
+ strb wzr, [x19, 38]
+ ldrh w0, [x19, 314]
+ strh w0, [x19, 34]
+ ldrh w0, [x19, 88]
+ ldr x2, [x19, 80]
+ strh wzr, [x19, 36]
lsl x0, x0, 1
- ldrh w3, [x19, 2476]
+ ldrh w3, [x19, 92]
ldrh w1, [x2, x0]
sub w1, w1, w3
strh w1, [x2, x0]
- strb wzr, [x19, 2478]
- ldrh w0, [x19, 106]
- strh w0, [x19, 2474]
- ldrh w0, [x19, 2342]
- strh wzr, [x19, 2476]
+ strb wzr, [x19, 94]
+ ldrh w0, [x19, 314]
+ strh w0, [x19, 90]
+ ldrh w0, [x19, 2550]
+ strh wzr, [x19, 92]
add w0, w0, 1
- strh w0, [x19, 2342]
+ strh w0, [x19, 2550]
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
- b .L1690
-.L1685:
+ b .L1730
+.L1725:
add w0, w0, 1
- b .L1684
-.L1694:
+ b .L1724
+.L1735:
ldrh w0, [x2, 3760]
- cbnz w0, .L1686
-.L1690:
+ cbnz w0, .L1726
+.L1730:
add x19, x20, :lo12:.LANCHOR0
- bl FtlVpcCheckAndModify
mov w1, 65535
- add x21, x19, 2424
- ldrh w0, [x19, 2424]
+ add x21, x19, 32
+ ldrh w0, [x19, 32]
cmp w0, w1
- beq .L1680
- ldrh w1, [x19, 2428]
- cbnz w1, .L1680
- ldrh w1, [x19, 2476]
- add x20, x19, 2472
- cbnz w1, .L1680
+ beq .L1731
+ ldrh w1, [x19, 36]
+ cbnz w1, .L1731
+ ldrh w1, [x19, 92]
+ add x20, x19, 88
+ cbnz w1, .L1731
bl FtlGcRefreshBlock
- ldrh w0, [x19, 2472]
+ ldrh w0, [x19, 88]
bl FtlGcRefreshBlock
bl FtlVpcTblFlush
mov x0, x21
bl allocate_new_data_superblock
mov x0, x20
bl allocate_new_data_superblock
- b .L1680
+.L1731:
+ bl FtlVpcCheckAndModify
+ b .L1720
.size FtlSysBlkInit, .-FtlSysBlkInit
.align 2
.global ftl_low_format
@@ -11756,124 +11883,125 @@ ftl_low_format:
adrp x20, .LANCHOR0
add x0, x20, :lo12:.LANCHOR0
stp x21, x22, [sp, 32]
- str wzr, [x0, 2620]
- str wzr, [x0, 2624]
- ldrh w0, [x0, 40]
+ str wzr, [x0, 2668]
+ str wzr, [x0, 2672]
+ str wzr, [x0, 2684]
+ ldrh w0, [x0, 248]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L1697
+ cbz w0, .L1738
bl FtlMakeBbt
-.L1697:
+.L1738:
mov w4, 23752
add x1, x20, :lo12:.LANCHOR0
mov w0, 0
movk w4, 0xa0f, lsl 16
-.L1698:
- ldrh w2, [x1, 62]
+.L1739:
+ ldrh w2, [x1, 270]
cmp w0, w2, lsl 7
- blt .L1699
- ldrh w21, [x1, 44]
+ blt .L1740
+ ldrh w21, [x1, 252]
add x22, x20, :lo12:.LANCHOR0
mov w19, 0
-.L1700:
- ldrh w0, [x22, 46]
+.L1741:
+ ldrh w0, [x22, 254]
cmp w0, w21
- bhi .L1701
- ldrh w0, [x22, 36]
+ bhi .L1742
+ ldrh w0, [x22, 244]
sub w1, w19, #3
cmp w1, w0, lsl 1
- bge .L1702
-.L1706:
+ bge .L1743
+.L1747:
add x19, x20, :lo12:.LANCHOR0
mov w21, 0
mov w22, 0
-.L1703:
- ldrh w0, [x19, 44]
+.L1744:
+ ldrh w0, [x19, 252]
cmp w0, w22
- bhi .L1707
- ldrh w2, [x19, 36]
- ldr w1, [x19, 48]
- ldrh w0, [x19, 46]
+ bhi .L1748
+ ldrh w2, [x19, 244]
+ ldr w1, [x19, 256]
+ ldrh w0, [x19, 254]
str w0, [x19, 3436]
udiv w4, w1, w2
ubfx x3, x4, 5, 16
- str w4, [x19, 2584]
+ str w4, [x19, 2632]
add w0, w3, 36
- strh w0, [x19, 2652]
+ strh w0, [x19, 2700]
mov w0, 24
mul w0, w2, w0
cmp w21, w0
- ble .L1708
+ ble .L1749
sub w1, w1, w21
udiv w1, w1, w2
- str w1, [x19, 2584]
+ str w1, [x19, 2632]
lsr w1, w1, 5
add w1, w1, 24
- strh w1, [x19, 2652]
-.L1708:
+ strh w1, [x19, 2700]
+.L1749:
add x0, x20, :lo12:.LANCHOR0
- ldrh w1, [x0, 98]
- cbz w1, .L1710
- ldrh w5, [x0, 2652]
+ ldrh w1, [x0, 306]
+ cbz w1, .L1751
+ ldrh w5, [x0, 2700]
add w5, w5, w1, lsr 1
- strh w5, [x0, 2652]
+ strh w5, [x0, 2700]
mul w5, w1, w2
cmp w21, w5
- bge .L1710
+ bge .L1751
add w1, w1, 32
- str w4, [x0, 2584]
+ str w4, [x0, 2632]
add w1, w3, w1
- strh w1, [x0, 2652]
-.L1710:
+ strh w1, [x0, 2700]
+.L1751:
add x19, x20, :lo12:.LANCHOR0
mov w22, -1
- add x21, x19, 2424
- ldrh w1, [x19, 2652]
- ldr w0, [x19, 2584]
+ add x21, x19, 32
+ ldrh w1, [x19, 2700]
+ ldr w0, [x19, 2632]
sub w0, w0, w1
- ldrh w1, [x19, 106]
+ ldrh w1, [x19, 314]
mul w0, w0, w2
str w0, [x19, 3980]
mul w0, w1, w0
- ldrh w1, [x19, 62]
- str w0, [x19, 2584]
+ ldrh w1, [x19, 270]
+ str w0, [x19, 2632]
mul w0, w1, w0
- str w0, [x19, 144]
+ str w0, [x19, 352]
bl FtlBbmTblFlush
- ldr x0, [x19, 2376]
+ ldr x0, [x19, 80]
mov w1, 0
- ldrh w2, [x19, 46]
+ ldrh w2, [x19, 254]
lsl w2, w2, 1
bl ftl_memset
mov w0, 1
strb w0, [x21, 8]
ldr x0, [x19, 24]
mov w1, 255
- ldrh w2, [x19, 44]
- strh w22, [x19, 2672]
- strh wzr, [x19, 2674]
- strb wzr, [x19, 2678]
+ ldrh w2, [x19, 252]
+ strh w22, [x19, 184]
+ strh wzr, [x19, 186]
+ strb wzr, [x19, 190]
lsr w2, w2, 3
- strb wzr, [x19, 2680]
+ strb wzr, [x19, 192]
strh wzr, [x21, 2]
strb wzr, [x21, 6]
- strh wzr, [x19, 2424]
- str wzr, [x19, 2580]
+ strh wzr, [x19, 32]
+ str wzr, [x19, 2628]
bl ftl_memset
-.L1712:
+.L1753:
mov x0, x21
bl make_superblock
ldrb w1, [x21, 7]
ldrh w0, [x21]
- cbnz w1, .L1713
- ldr x1, [x19, 2376]
+ cbnz w1, .L1754
+ ldr x1, [x19, 80]
ubfiz x0, x0, 1, 16
strh w22, [x1, x0]
ldrh w0, [x21]
add w0, w0, 1
strh w0, [x21]
- b .L1712
-.L1699:
+ b .L1753
+.L1740:
ldr x5, [x1, 3488]
ubfiz x3, x0, 2, 16
mvn w2, w0
@@ -11883,8 +12011,8 @@ ftl_low_format:
str w2, [x5, x3]
ldr x2, [x1, 3496]
str w4, [x2, x3]
- b .L1698
-.L1701:
+ b .L1739
+.L1742:
mov w0, w21
mov w1, 1
add w21, w21, 1
@@ -11892,27 +12020,27 @@ ftl_low_format:
add w19, w19, w0
and w21, w21, 65535
and w19, w19, 65535
- b .L1700
-.L1702:
+ b .L1741
+.L1743:
udiv w0, w19, w0
- ldr w19, [x22, 136]
+ ldr w19, [x22, 344]
add x21, x20, :lo12:.LANCHOR0
add w0, w0, w19
bl FtlSysBlkNumInit
- ldrh w0, [x22, 40]
+ ldrh w0, [x22, 248]
bl FtlFreeSysBlkQueueInit
- ldrh w19, [x22, 44]
-.L1704:
- ldrh w0, [x21, 46]
+ ldrh w19, [x22, 252]
+.L1745:
+ ldrh w0, [x21, 254]
cmp w0, w19
- bls .L1706
+ bls .L1747
mov w0, w19
add w19, w19, 1
mov w1, 1
and w19, w19, 65535
bl FtlLowFormatEraseBlock
- b .L1704
-.L1707:
+ b .L1745
+.L1748:
mov w0, w22
mov w1, 0
add w22, w22, 1
@@ -11920,68 +12048,68 @@ ftl_low_format:
add w21, w21, w0
and w22, w22, 65535
and w21, w21, 65535
- b .L1703
-.L1713:
- ldr w1, [x19, 2620]
+ b .L1744
+.L1754:
+ ldr w1, [x19, 2668]
ubfiz x0, x0, 1, 16
str w1, [x21, 12]
add w1, w1, 1
- str w1, [x19, 2620]
- ldr x1, [x19, 2376]
+ str w1, [x19, 2668]
+ ldr x1, [x19, 80]
ldrh w2, [x21, 4]
strh w2, [x1, x0]
- add x0, x19, 2472
- strh wzr, [x19, 2474]
+ add x0, x19, 88
+ strh wzr, [x19, 90]
ldrh w1, [x21]
mov w21, -1
- strb wzr, [x19, 2478]
+ strb wzr, [x19, 94]
add w1, w1, 1
- strh w1, [x19, 2472]
+ strh w1, [x19, 88]
mov w1, 1
- strb w1, [x19, 2480]
+ strb w1, [x19, 96]
add x19, x20, :lo12:.LANCHOR0
mov x20, x0
-.L1714:
+.L1755:
mov x0, x20
bl make_superblock
ldrb w1, [x20, 7]
ldrh w0, [x20]
- cbnz w1, .L1715
- ldr x1, [x19, 2376]
+ cbnz w1, .L1756
+ ldr x1, [x19, 80]
ubfiz x0, x0, 1, 16
strh w21, [x1, x0]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L1714
-.L1715:
- ldr w1, [x19, 2620]
+ b .L1755
+.L1756:
+ ldr w1, [x19, 2668]
ubfiz x0, x0, 1, 16
str w1, [x20, 12]
add w1, w1, 1
- str w1, [x19, 2620]
- ldr x1, [x19, 2376]
+ str w1, [x19, 2668]
+ ldr x1, [x19, 80]
ldrh w2, [x20, 4]
mov w20, -1
strh w2, [x1, x0]
- strh w20, [x19, 2520]
+ strh w20, [x19, 136]
bl FtlFreeSysBlkQueueOut
- strh w0, [x19, 2656]
+ strh w0, [x19, 2704]
ldr w0, [x19, 3980]
- strh w0, [x19, 2662]
- ldr w0, [x19, 2620]
- str w0, [x19, 2664]
+ strh w0, [x19, 2710]
+ ldr w0, [x19, 2668]
+ str w0, [x19, 2712]
add w0, w0, 1
- strh wzr, [x19, 2658]
- strh w20, [x19, 2660]
- str w0, [x19, 2620]
+ strh wzr, [x19, 2706]
+ strh w20, [x19, 2708]
+ str w0, [x19, 2668]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz w0, .L1716
+ cbnz w0, .L1757
adrp x0, .LANCHOR2
mov w1, 1
str w1, [x0, #:lo12:.LANCHOR2]
-.L1716:
+.L1757:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -11993,8 +12121,8 @@ ftl_low_format:
.type sftl_init, %function
sftl_init:
stp x29, x30, [sp, -32]!
- adrp x1, .LC70
- add x1, x1, :lo12:.LC70
+ adrp x1, .LC0
+ add x1, x1, :lo12:.LC0
mov w0, -1
add x29, sp, 0
stp x19, x20, [sp, 16]
@@ -12002,32 +12130,32 @@ sftl_init:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
str w0, [x20, #:lo12:.LANCHOR2]
- adrp x0, .LC71
- add x0, x0, :lo12:.LC71
+ adrp x0, .LC77
+ add x0, x0, :lo12:.LC77
bl sftl_printk
mov x0, x19
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh w0, [x19, 40]
+ ldrh w0, [x19, 248]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbnz w0, .L1725
+ cbnz w0, .L1766
bl FtlSysBlkInit
- cbnz w0, .L1725
+ cbnz w0, .L1766
mov w0, 1
str w0, [x20, #:lo12:.LANCHOR2]
- ldrh w0, [x19, 2416]
+ ldrh w0, [x19, 236]
cmp w0, 15
- bhi .L1725
+ bhi .L1766
mov w19, 8129
-.L1724:
+.L1765:
mov w1, 1
mov w0, 0
bl rk_ftl_garbage_collect
subs w19, w19, #1
- bne .L1724
-.L1725:
+ bne .L1765
+.L1766:
mov w0, 0
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 32
@@ -12048,33 +12176,33 @@ FtlWriteToIDB:
stp x19, x20, [sp, 16]
cmp w25, 63
stp x27, x28, [sp, 80]
- bls .L1729
+ bls .L1770
mov w19, w0
cmp w0, 575
- bls .L1730
-.L1729:
+ bls .L1771
+.L1770:
add x0, x21, :lo12:.LANCHOR0
ldr w1, [x0, 3984]
- cbnz w1, .L1731
-.L1797:
+ cbnz w1, .L1772
+.L1838:
mov w20, 0
- b .L1728
-.L1731:
+ b .L1769
+.L1772:
ldr x26, [x0, 3992]
mov w1, 35899
movk w1, 0xfcdc, lsl 16
ldr w2, [x26]
cmp w2, w1
- bne .L1733
+ bne .L1774
ldrh w1, [x0, 10]
mov x0, 262140
mov w20, 65535
add x2, x26, x0
mov w3, 4097
mov w0, 0
-.L1737:
+.L1778:
ldr w4, [x2]
- cbnz w4, .L1734
+ cbnz w4, .L1775
ldr w4, [x26, w0, uxtw 2]
add w0, w0, 1
str w4, [x2], -4
@@ -12082,13 +12210,13 @@ FtlWriteToIDB:
sub w20, w20, #1
csel w0, w0, wzr, cc
cmp w20, 4096
- bne .L1737
+ bne .L1778
mov w20, 512
- b .L1736
-.L1734:
+ b .L1777
+.L1775:
add w20, w20, 127
lsr w20, w20, 7
-.L1736:
+.L1777:
ubfiz w0, w1, 2, 14
add w22, w20, 4
add x19, x21, :lo12:.LANCHOR0
@@ -12098,7 +12226,7 @@ FtlWriteToIDB:
lsl w0, w20, 7
str w0, [x29, 128]
add w22, w22, 1
-.L1759:
+.L1800:
ldr x0, [x19, 4000]
mov w1, 0
mov x2, 512
@@ -12106,26 +12234,26 @@ FtlWriteToIDB:
ldrh w28, [x19, 10]
ldr x1, [x19, 3400]
mul w24, w28, w23
- cbz x1, .L1767
+ cbz x1, .L1808
ldr x0, [x19, 3408]
mov w25, 6
cmp x0, 0
mov w0, 9
csel w25, w25, w0, eq
-.L1738:
+.L1779:
ldr x3, [x19, 3376]
mov w1, w24
mov w0, 0
blr x3
cmp w22, 1
- beq .L1739
+ beq .L1780
ldr x2, [x19, 3376]
add w1, w28, w24
mov w0, 0
blr x2
-.L1739:
+.L1780:
cmp w25, 9
- bne .L1769
+ bne .L1810
ldr x27, [x19, 4000]
mov w2, 1024
mov w1, 0
@@ -12148,29 +12276,29 @@ FtlWriteToIDB:
str wzr, [x27, 12]
bl js_hash
str w0, [x27, 8]
-.L1740:
+.L1781:
mul w0, w22, w28
mov x6, x26
str w0, [x29, 136]
mov x28, 0
add w0, w24, 1
str w0, [x29, 132]
-.L1741:
+.L1782:
ldr w0, [x29, 136]
mov w1, w28
cmp w28, w0
- bcs .L1748
+ bcs .L1789
cmp w25, 9
- bne .L1742
+ bne .L1783
ldr w0, [x29, 132]
add w0, w0, w1
-.L1795:
+.L1836:
str w0, [x29, 144]
mov w0, 61424
str w0, [x29, 148]
cmp w1, 0
ccmp w25, 9, 0, eq
- bne .L1744
+ bne .L1785
ldr x1, [x19, 3400]
add x7, x19, 3368
str x6, [x29, 104]
@@ -12194,8 +12322,8 @@ FtlWriteToIDB:
ldr w1, [x29, 120]
ldr x6, [x29, 104]
cmn w1, #1
- bne .L1745
-.L1748:
+ bne .L1786
+.L1789:
ldrb w0, [x19, 14]
str w0, [x29, 120]
ldrh w0, [x19, 10]
@@ -12204,23 +12332,23 @@ FtlWriteToIDB:
str w1, [x29, 136]
add x1, x19, 3368
ldr x2, [x1, 32]
- cbnz x2, .L1746
+ cbnz x2, .L1787
mov w1, 6
-.L1796:
+.L1837:
mul w0, w22, w0
mov x28, 0
mov w27, 61424
str w0, [x29, 112]
str w1, [x29, 132]
-.L1750:
+.L1791:
ldr w0, [x29, 112]
mov w1, w28
cmp w28, w0
- bcs .L1754
+ bcs .L1795
ldr w0, [x29, 132]
cmp w28, 0
ccmp w0, 9, 0, eq
- bne .L1751
+ bne .L1792
ldr x1, [x19, 3400]
mov w0, 70
blr x1
@@ -12243,13 +12371,13 @@ FtlWriteToIDB:
mov w1, 18766
movk w1, 0x464e, lsl 16
cmp w0, w1
- beq .L1752
-.L1754:
+ beq .L1793
+.L1795:
ldr x0, [x19, 4000]
mov x1, x26
mov w24, 0
mov x2, x0
-.L1753:
+.L1794:
mov x25, x2
mov x28, x1
add x2, x2, 4
@@ -12257,7 +12385,7 @@ FtlWriteToIDB:
ldr w4, [x25]
ldr w3, [x28]
cmp w4, w3
- beq .L1756
+ beq .L1797
mov x2, 512
mov w1, 0
bl memset
@@ -12265,30 +12393,30 @@ FtlWriteToIDB:
mov w1, w23
ldr w3, [x28]
mov w4, w24
- adrp x0, .LC118
- add x0, x0, :lo12:.LC118
+ adrp x0, .LC132
+ add x0, x0, :lo12:.LC132
bl sftl_printk
ldrh w1, [x19, 10]
mov w0, 0
ldr x2, [x19, 3376]
mul w1, w1, w23
blr x2
-.L1757:
+.L1798:
add w23, w23, w22
cmp w23, 15
- bls .L1759
+ bls .L1800
ldr w0, [x29, 140]
- cbnz w0, .L1760
-.L1733:
+ cbnz w0, .L1801
+.L1774:
mov w20, -1
-.L1760:
+.L1801:
add x21, x21, :lo12:.LANCHOR0
ldr x0, [x21, 3992]
str wzr, [x21, 3984]
bl kfree
ldr x0, [x21, 4000]
bl kfree
-.L1728:
+.L1769:
mov w0, w20
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -12297,17 +12425,17 @@ FtlWriteToIDB:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 208
ret
-.L1767:
+.L1808:
mov w25, 6
- b .L1738
-.L1769:
+ b .L1779
+.L1810:
mov x27, 0
- b .L1740
-.L1742:
+ b .L1781
+.L1783:
add w0, w1, w24
lsl w0, w0, 2
- b .L1795
-.L1744:
+ b .L1836
+.L1785:
ldr x7, [x19, 3384]
add x3, x29, 144
mov x2, x6
@@ -12316,20 +12444,20 @@ FtlWriteToIDB:
str x6, [x29, 120]
blr x7
cmn w0, #1
- beq .L1748
+ beq .L1789
ldr x6, [x29, 120]
add x6, x6, 2048
-.L1745:
+.L1786:
add x28, x28, 1
- b .L1741
-.L1746:
+ b .L1782
+.L1787:
ldr x1, [x1, 40]
mov w24, 6
cmp x1, 0
mov w1, 9
csel w1, w24, w1, eq
- b .L1796
-.L1751:
+ b .L1837
+.L1792:
ldr x6, [x19, 3392]
add x3, x29, 144
ldr w0, [x29, 136]
@@ -12338,30 +12466,30 @@ FtlWriteToIDB:
mov w0, 0
blr x6
cmn w0, #1
- beq .L1754
+ beq .L1795
ldr w0, [x29, 148]
cmp w0, w27
- bne .L1754
+ bne .L1795
add x25, x25, 2048
-.L1752:
+.L1793:
add x28, x28, 1
- b .L1750
-.L1756:
+ b .L1791
+.L1797:
ldr w3, [x29, 128]
add w24, w24, 1
cmp w24, w3
- bne .L1753
+ bne .L1794
ldr w0, [x29, 140]
add w0, w0, 1
str w0, [x29, 140]
cmp w0, 5
- bls .L1757
- b .L1760
-.L1730:
+ bls .L1798
+ b .L1801
+.L1771:
mov w22, w1
mov x23, x2
cmp w0, 64
- bne .L1761
+ bne .L1802
add x20, x21, :lo12:.LANCHOR0
mov w0, 262144
bl ftl_malloc
@@ -12371,56 +12499,56 @@ FtlWriteToIDB:
mov x1, x0
ldr x0, [x20, 3992]
str x1, [x20, 4000]
- cbz x0, .L1762
- cbz x1, .L1762
+ cbz x0, .L1803
+ cbz x1, .L1803
mov w1, 1
mov w2, 262144
str w1, [x20, 3984]
mov w1, 0
bl ftl_memset
-.L1761:
+.L1802:
add x21, x21, :lo12:.LANCHOR0
ldr w0, [x21, 3984]
- cbz w0, .L1797
+ cbz w0, .L1838
cmp w19, 63
ldr x1, [x21, 3992]
- bhi .L1764
+ bhi .L1805
mov w0, 64
sub w19, w0, w19
sub w22, w22, w19
ubfiz x19, x19, 9, 25
add x23, x23, x19
mov x20, x1
-.L1765:
+.L1806:
cmp w25, 575
- bls .L1766
+ bls .L1807
sub w22, w22, w24
sub w22, w22, #446
-.L1766:
+.L1807:
mov w4, w22
mov x3, x20
mov w2, 262144
- adrp x0, .LC120
- add x0, x0, :lo12:.LC120
+ adrp x0, .LC134
+ add x0, x0, :lo12:.LC134
bl sftl_printk
lsl w2, w22, 9
mov x1, x23
mov x0, x20
bl ftl_memcpy
- b .L1797
-.L1762:
+ b .L1838
+.L1803:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 752
- adrp x0, .LC119
- add x0, x0, :lo12:.LC119
+ adrp x0, .LC133
+ add x0, x0, :lo12:.LC133
bl sftl_printk
- b .L1761
-.L1764:
+ b .L1802
+.L1805:
lsl w20, w19, 7
sub w20, w20, #8192
add x20, x1, x20, lsl 2
- b .L1765
+ b .L1806
.size FtlWriteToIDB, .-FtlWriteToIDB
.align 2
.global sftl_write
@@ -12451,12 +12579,12 @@ rk_sftl_vendor_dev_ops_register:
adrp x2, .LANCHOR0
add x2, x2, :lo12:.LANCHOR0
ldr x3, [x2, 4008]
- cbnz x3, .L1802
+ cbnz x3, .L1843
str x0, [x2, 4008]
mov w0, 0
str x1, [x2, 4016]
ret
-.L1802:
+.L1843:
mov w0, -1
ret
.size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
@@ -12475,38 +12603,38 @@ rk_sftl_vendor_storage_init:
stp x25, x26, [sp, 64]
bl ftl_malloc
str x0, [x22, 4024]
- cbz x0, .L1809
+ cbz x0, .L1850
mov w26, 22084
mov w25, 0
mov w24, 0
mov w23, 0
movk w26, 0x524b, lsl 16
-.L1807:
+.L1848:
ldr x3, [x22, 4008]
mov w1, 128
ldr x2, [x22, 4024]
lsl w0, w23, 7
blr x3
mov w21, w0
- cbnz w0, .L1805
+ cbnz w0, .L1846
ldr x19, [x22, 4024]
ldr w0, [x19]
cmp w0, w26
- bne .L1806
+ bne .L1847
add x0, x19, 61440
ldr w1, [x19, 4]
ldr w0, [x0, 4092]
cmp w0, w1
- bne .L1806
+ bne .L1847
cmp w0, w24
- bls .L1806
+ bls .L1847
mov w25, w23
mov w24, w0
-.L1806:
+.L1847:
add w23, w23, 1
cmp w23, 2
- bne .L1807
- cbz w24, .L1808
+ bne .L1848
+ cbz w24, .L1849
add x0, x20, :lo12:.LANCHOR0
mov x2, x19
mov w1, 128
@@ -12514,15 +12642,15 @@ rk_sftl_vendor_storage_init:
lsl w0, w25, 7
blr x3
mov w21, w0
- cbz w0, .L1803
-.L1805:
+ cbz w0, .L1844
+.L1846:
add x20, x20, :lo12:.LANCHOR0
mov w21, -1
ldr x0, [x20, 4024]
bl kfree
str xzr, [x20, 4024]
- b .L1803
-.L1808:
+ b .L1844
+.L1849:
mov w1, 0
mov x2, 65536
mov x0, x19
@@ -12535,7 +12663,7 @@ rk_sftl_vendor_storage_init:
str w0, [x1, 4092]
mov w0, -1032
strh w0, [x19, 14]
-.L1803:
+.L1844:
mov w0, w21
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
@@ -12543,9 +12671,9 @@ rk_sftl_vendor_storage_init:
ldp x25, x26, [sp, 64]
ldp x29, x30, [sp], 80
ret
-.L1809:
+.L1850:
mov w21, -12
- b .L1803
+ b .L1844
.size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init
.align 2
.global rk_sftl_vendor_read
@@ -12553,20 +12681,20 @@ rk_sftl_vendor_storage_init:
rk_sftl_vendor_read:
adrp x3, .LANCHOR0+4024
ldr x4, [x3, #:lo12:.LANCHOR0+4024]
- cbz x4, .L1817
+ cbz x4, .L1858
ldrh w6, [x4, 10]
add x5, x4, 16
mov w3, 0
-.L1814:
+.L1855:
cmp w3, w6
- bcc .L1816
-.L1817:
+ bcc .L1857
+.L1858:
mov w0, -1
ret
-.L1816:
+.L1857:
ldrh w7, [x5], 8
cmp w7, w0
- bne .L1815
+ bne .L1856
stp x29, x30, [sp, -32]!
add x3, x4, x3, uxtw 3
mov x0, x1
@@ -12584,9 +12712,9 @@ rk_sftl_vendor_read:
ldr x19, [sp, 16]
ldp x29, x30, [sp], 32
ret
-.L1815:
+.L1856:
add w3, w3, 1
- b .L1814
+ b .L1855
.size rk_sftl_vendor_read, .-rk_sftl_vendor_read
.align 2
.global rk_sftl_vendor_write
@@ -12602,7 +12730,7 @@ rk_sftl_vendor_write:
stp x25, x26, [sp, 64]
stp x27, x28, [sp, 80]
ldr x19, [x3, 4024]
- cbz x19, .L1837
+ cbz x19, .L1878
add w21, w2, 63
ldrh w3, [x19, 10]
ldrh w24, [x19, 8]
@@ -12611,12 +12739,12 @@ rk_sftl_vendor_write:
and w21, w21, -64
add x1, x19, 16
mov w20, 0
-.L1824:
+.L1865:
cmp w20, w3
- bcc .L1832
+ bcc .L1873
ldrh w1, [x19, 14]
cmp w21, w1
- bhi .L1837
+ bhi .L1878
add x3, x19, x3, uxth 3
and w21, w21, 65535
uxtw x2, w28
@@ -12636,11 +12764,11 @@ rk_sftl_vendor_write:
ldrh w0, [x19, 10]
add w0, w0, 1
strh w0, [x19, 10]
- b .L1839
-.L1832:
+ b .L1880
+.L1873:
ldrh w6, [x1], 8
cmp w6, w0
- bne .L1825
+ bne .L1866
uxtw x27, w20
add x5, x19, 1024
add x22, x19, x27, lsl 3
@@ -12648,17 +12776,17 @@ rk_sftl_vendor_write:
add w25, w25, 63
and w25, w25, -64
cmp w28, w25
- bls .L1826
+ bls .L1867
ldrh w0, [x19, 14]
cmp w21, w0
- bhi .L1837
+ bhi .L1878
add x27, x27, 2
ldrh w22, [x22, 18]
add x27, x19, x27, lsl 3
sub w26, w3, #1
-.L1827:
+.L1868:
cmp w20, w26
- bcc .L1828
+ bcc .L1869
add x20, x19, x20, uxtw 3
and w22, w22, 65535
add x0, x5, x22, uxth
@@ -12675,7 +12803,7 @@ rk_sftl_vendor_write:
sub w21, w0, w21
add w25, w21, w25
strh w25, [x19, 14]
-.L1839:
+.L1880:
ldr w0, [x19, 4]
add x1, x19, 61440
add x23, x23, :lo12:.LANCHOR0
@@ -12694,7 +12822,7 @@ rk_sftl_vendor_write:
lsl w0, w24, 7
blr x3
mov w0, 0
-.L1822:
+.L1863:
ldp x19, x20, [sp, 16]
ldp x21, x22, [sp, 32]
ldp x23, x24, [sp, 48]
@@ -12702,7 +12830,7 @@ rk_sftl_vendor_write:
ldp x27, x28, [sp, 80]
ldp x29, x30, [sp], 128
ret
-.L1828:
+.L1869:
add w20, w20, 1
str x4, [x29, 104]
add x0, x19, x20, uxtw 3
@@ -12726,21 +12854,21 @@ rk_sftl_vendor_write:
ldr x4, [x29, 104]
add w22, w22, w3
ldr x5, [x29, 120]
- b .L1827
-.L1826:
+ b .L1868
+.L1867:
ldrh w0, [x22, 18]
uxtw x2, w28
mov x1, x4
add x0, x5, x0
bl memcpy
strh w28, [x22, 20]
- b .L1839
-.L1825:
+ b .L1880
+.L1866:
add w20, w20, 1
- b .L1824
-.L1837:
+ b .L1865
+.L1878:
mov w0, -1
- b .L1822
+ b .L1863
.size rk_sftl_vendor_write, .-rk_sftl_vendor_write
.align 2
.global rk_sftl_vendor_storage_ioctl
@@ -12754,19 +12882,19 @@ rk_sftl_vendor_storage_ioctl:
str x21, [sp, 32]
mov w21, w1
bl ftl_malloc
- cbz x0, .L1854
+ cbz x0, .L1898
mov w1, 30209
mov x19, x0
movk w1, 0x4004, lsl 16
cmp w21, w1
- beq .L1843
+ beq .L1884
add w1, w1, 1
cmp w21, w1
- beq .L1844
-.L1864:
+ beq .L1885
+.L1908:
mov x20, -14
- b .L1842
-.L1843:
+ b .L1883
+.L1884:
#APP
// 21 "./arch/arm64/include/asm/current.h" 1
mrs x21, sp_el0
@@ -12779,34 +12907,46 @@ rk_sftl_vendor_storage_ioctl:
adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls
// 0 "" 2
#NO_APP
- cbz x3, .L1850
+ cbz x3, .L1886
mov x2, 8
mov x1, x20
bl __arch_copy_from_user
- cbnz x0, .L1864
+ cbz x0, .L1909
+.L1887:
+ mov x2, x20
+ mov w1, 256
+.L1913:
+ adrp x0, .LC135
+ add x0, x0, :lo12:.LC135
+ bl sftl_printk
+ b .L1908
+.L1886:
+ str xzr, [x0]
+ b .L1887
+.L1909:
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- beq .L1848
-.L1849:
+ beq .L1889
+.L1890:
mov x20, -1
-.L1842:
+.L1883:
mov x0, x19
bl kfree
-.L1840:
+.L1881:
mov x0, x20
ldr x21, [sp, 32]
ldp x19, x20, [sp, 16]
ldp x29, x30, [sp], 48
ret
-.L1848:
+.L1889:
ldrh w2, [x19, 6]
add x1, x19, 8
ldrh w0, [x19, 4]
bl rk_sftl_vendor_read
cmn w0, #1
- beq .L1849
+ beq .L1890
strh w0, [x19, 6]
and x2, x0, 65535
add x2, x2, 8
@@ -12817,14 +12957,14 @@ rk_sftl_vendor_storage_ioctl:
adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls
// 0 "" 2
#NO_APP
- cbz x3, .L1864
+ cbz x3, .L1908
mov x0, x20
mov x1, x19
mov x20, 0
bl __arch_copy_to_user
- cbz x0, .L1842
- b .L1864
-.L1844:
+ cbz x0, .L1883
+ b .L1908
+.L1885:
#APP
// 21 "./arch/arm64/include/asm/current.h" 1
mrs x21, sp_el0
@@ -12837,19 +12977,27 @@ rk_sftl_vendor_storage_ioctl:
adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls
// 0 "" 2
#NO_APP
- cbz x3, .L1850
+ cbz x3, .L1892
mov x2, 8
mov x1, x20
bl __arch_copy_from_user
- cbnz x0, .L1864
+ cbz x0, .L1910
+.L1893:
+ mov x2, x20
+ mov w1, 276
+ b .L1913
+.L1892:
+ str xzr, [x0]
+ b .L1893
+.L1910:
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- bne .L1849
+ bne .L1890
ldrh w2, [x19, 6]
cmp w2, 4087
- bhi .L1849
+ bhi .L1890
add w2, w2, 8
mov x0, x20
sxtw x2, w2
@@ -12859,28 +13007,30 @@ rk_sftl_vendor_storage_ioctl:
adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls
// 0 "" 2
#NO_APP
- cbz x3, .L1852
+ cbz x3, .L1895
mov x1, x20
mov x0, x19
bl __arch_copy_from_user
- cbnz x0, .L1864
+ cbz x0, .L1911
+.L1896:
+ mov x2, x20
+ mov w1, 283
+ b .L1913
+.L1895:
+ mov w1, 0
+ mov x0, x19
+ bl memset
+ b .L1896
+.L1911:
ldrh w2, [x19, 6]
add x1, x19, 8
ldrh w0, [x19, 4]
bl rk_sftl_vendor_write
sxtw x20, w0
- b .L1842
-.L1850:
- str xzr, [x19]
- b .L1864
-.L1852:
- mov w1, 0
- mov x0, x19
- bl memset
- b .L1864
-.L1854:
+ b .L1883
+.L1898:
mov x20, -1
- b .L1840
+ b .L1881
.size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl
.align 2
.global rk_sftl_vendor_register
@@ -13047,184 +13197,184 @@ rk_sftl_vendor_register:
.section .rodata
.align 3
.set .LANCHOR1,. + 0
- .type __func__.3799, %object
- .size __func__.3799, 17
-__func__.3799:
+ .type __func__.3803, %object
+ .size __func__.3803, 17
+__func__.3803:
.string "INSERT_DATA_LIST"
.zero 7
- .type __func__.3794, %object
- .size __func__.3794, 17
-__func__.3794:
+ .type __func__.3798, %object
+ .size __func__.3798, 17
+__func__.3798:
.string "INSERT_FREE_LIST"
.zero 7
- .type __func__.3830, %object
- .size __func__.3830, 17
-__func__.3830:
+ .type __func__.3834, %object
+ .size __func__.3834, 17
+__func__.3834:
.string "List_remove_node"
.zero 7
- .type __func__.3862, %object
- .size __func__.3862, 22
-__func__.3862:
+ .type __func__.3866, %object
+ .size __func__.3866, 22
+__func__.3866:
.string "List_update_data_list"
.zero 2
- .type __func__.3969, %object
- .size __func__.3969, 22
-__func__.3969:
+ .type __func__.3973, %object
+ .size __func__.3973, 22
+__func__.3973:
.string "select_l2p_ram_region"
.zero 2
- .type __func__.4296, %object
- .size __func__.4296, 16
-__func__.4296:
+ .type __func__.4300, %object
+ .size __func__.4300, 16
+__func__.4300:
.string "make_superblock"
- .type __func__.4471, %object
- .size __func__.4471, 19
-__func__.4471:
+ .type __func__.4475, %object
+ .size __func__.4475, 19
+__func__.4475:
.string "get_new_active_ppa"
.zero 5
- .type __func__.16134, %object
- .size __func__.16134, 17
-__func__.16134:
+ .type __func__.16146, %object
+ .size __func__.16146, 17
+__func__.16146:
.string "FlashEraseBlocks"
.zero 7
- .type __func__.3904, %object
- .size __func__.3904, 26
-__func__.3904:
+ .type __func__.3908, %object
+ .size __func__.3908, 26
+__func__.3908:
.string "ftl_map_blk_alloc_new_blk"
.zero 6
- .type __func__.3409, %object
- .size __func__.3409, 11
-__func__.3409:
+ .type __func__.3413, %object
+ .size __func__.3413, 11
+__func__.3413:
.string "FtlMemInit"
.zero 5
- .type __func__.3636, %object
- .size __func__.3636, 14
-__func__.3636:
+ .type __func__.3640, %object
+ .size __func__.3640, 14
+__func__.3640:
.string "FtlBbt2Bitmap"
.zero 2
- .type __func__.4317, %object
- .size __func__.4317, 18
-__func__.4317:
+ .type __func__.4321, %object
+ .size __func__.4321, 18
+__func__.4321:
.string "SupperBlkListInit"
.zero 6
- .type __func__.16091, %object
- .size __func__.16091, 15
-__func__.16091:
+ .type __func__.16103, %object
+ .size __func__.16103, 15
+__func__.16103:
.string "FlashReadPages"
.zero 1
- .type __func__.4081, %object
- .size __func__.4081, 14
-__func__.4081:
+ .type __func__.4085, %object
+ .size __func__.4085, 14
+__func__.4085:
.string "FtlScanSysBlk"
.zero 2
- .type __func__.3679, %object
- .size __func__.3679, 11
-__func__.3679:
+ .type __func__.3683, %object
+ .size __func__.3683, 11
+__func__.3683:
.string "FtlLoadBbt"
.zero 5
- .type __func__.16110, %object
- .size __func__.16110, 15
-__func__.16110:
+ .type __func__.16122, %object
+ .size __func__.16122, 15
+__func__.16122:
.string "FlashProgPages"
.zero 1
- .type __func__.4443, %object
- .size __func__.4443, 25
-__func__.4443:
+ .type __func__.4447, %object
+ .size __func__.4447, 25
+__func__.4447:
.string "allocate_data_superblock"
.zero 7
- .type __func__.4484, %object
- .size __func__.4484, 16
-__func__.4484:
+ .type __func__.4488, %object
+ .size __func__.4488, 16
+__func__.4488:
.string "update_vpc_list"
- .type __func__.4491, %object
- .size __func__.4491, 20
-__func__.4491:
+ .type __func__.4495, %object
+ .size __func__.4495, 20
+__func__.4495:
.string "decrement_vpc_count"
.zero 4
- .type __func__.3930, %object
- .size __func__.3930, 31
-__func__.3930:
+ .type __func__.3934, %object
+ .size __func__.3934, 31
+__func__.3934:
.string "Ftl_write_map_blk_to_last_page"
.zero 1
- .type __func__.3944, %object
- .size __func__.3944, 16
-__func__.3944:
+ .type __func__.3948, %object
+ .size __func__.3948, 16
+__func__.3948:
.string "FtlMapWritePage"
- .type __func__.3871, %object
- .size __func__.3871, 16
-__func__.3871:
+ .type __func__.3875, %object
+ .size __func__.3875, 16
+__func__.3875:
.string "load_l2p_region"
- .type __func__.3915, %object
- .size __func__.3915, 15
-__func__.3915:
+ .type __func__.3919, %object
+ .size __func__.3919, 15
+__func__.3919:
.string "ftl_map_blk_gc"
.zero 1
- .type __func__.3986, %object
- .size __func__.3986, 9
-__func__.3986:
+ .type __func__.3990, %object
+ .size __func__.3990, 9
+__func__.3990:
.string "log2phys"
.zero 7
- .type __func__.4205, %object
- .size __func__.4205, 16
-__func__.4205:
+ .type __func__.4209, %object
+ .size __func__.4209, 16
+__func__.4209:
.string "FtlReUsePrevPpa"
- .type __func__.4239, %object
- .size __func__.4239, 22
-__func__.4239:
+ .type __func__.4243, %object
+ .size __func__.4243, 22
+__func__.4243:
.string "FtlRecoverySuperblock"
.zero 2
- .type __func__.4358, %object
- .size __func__.4358, 14
-__func__.4358:
+ .type __func__.4362, %object
+ .size __func__.4362, 14
+__func__.4362:
.string "ftl_check_vpc"
.zero 2
- .type __func__.4059, %object
- .size __func__.4059, 15
-__func__.4059:
+ .type __func__.4063, %object
+ .size __func__.4063, 15
+__func__.4063:
.string "FtlVpcTblFlush"
.zero 1
- .type __func__.4342, %object
- .size __func__.4342, 21
-__func__.4342:
+ .type __func__.4346, %object
+ .size __func__.4346, 21
+__func__.4346:
.string "FtlVpcCheckAndModify"
.zero 3
- .type __func__.4464, %object
- .size __func__.4464, 29
-__func__.4464:
+ .type __func__.4468, %object
+ .size __func__.4468, 29
+__func__.4468:
.string "allocate_new_data_superblock"
.zero 3
- .type __func__.3533, %object
- .size __func__.3533, 13
-__func__.3533:
+ .type __func__.3537, %object
+ .size __func__.3537, 13
+__func__.3537:
.string "FtlProgPages"
.zero 3
- .type __func__.4561, %object
- .size __func__.4561, 19
-__func__.4561:
+ .type __func__.4565, %object
+ .size __func__.4565, 19
+__func__.4565:
.string "FtlGcFreeTempBlock"
.zero 5
- .type __func__.4672, %object
- .size __func__.4672, 23
-__func__.4672:
+ .type __func__.4678, %object
+ .size __func__.4678, 23
+__func__.4678:
.string "rk_ftl_garbage_collect"
.zero 1
- .type __func__.3561, %object
- .size __func__.3561, 9
-__func__.3561:
+ .type __func__.3565, %object
+ .size __func__.3565, 9
+__func__.3565:
.string "FtlWrite"
.zero 7
- .type __func__.4137, %object
- .size __func__.4137, 15
-__func__.4137:
+ .type __func__.4141, %object
+ .size __func__.4141, 15
+__func__.4141:
.string "FtlLoadSysInfo"
.zero 1
- .type __func__.4159, %object
- .size __func__.4159, 18
-__func__.4159:
+ .type __func__.4163, %object
+ .size __func__.4163, 18
+__func__.4163:
.string "FtlMapTblRecovery"
.zero 6
- .type __func__.16249, %object
- .size __func__.16249, 14
-__func__.16249:
+ .type __func__.16261, %object
+ .size __func__.16261, 14
+__func__.16261:
.string "FtlWriteToIDB"
.zero 2
.type rk_sftl_vendor_storage_fops, %object
@@ -13256,7 +13406,7 @@ power_up_flag:
rkflash_vender_storage_dev:
.word 255
.zero 4
- .xword .LC121
+ .xword .LC136
.xword rk_sftl_vendor_storage_fops
.zero 56
.bss
@@ -13270,6 +13420,39 @@ g_nand_phy_info:
.size p_blk_mode_table, 8
p_blk_mode_table:
.zero 8
+ .type g_active_superblock, %object
+ .size g_active_superblock, 48
+g_active_superblock:
+ .zero 48
+ .type p_valid_page_count_table, %object
+ .size p_valid_page_count_table, 8
+p_valid_page_count_table:
+ .zero 8
+ .type g_buffer_superblock, %object
+ .size g_buffer_superblock, 48
+g_buffer_superblock:
+ .zero 48
+ .type g_gc_temp_superblock, %object
+ .size g_gc_temp_superblock, 48
+g_gc_temp_superblock:
+ .zero 48
+ .type g_gc_superblock, %object
+ .size g_gc_superblock, 48
+g_gc_superblock:
+ .zero 48
+ .type g_gc_next_blk_1, %object
+ .size g_gc_next_blk_1, 2
+g_gc_next_blk_1:
+ .zero 2
+ .type g_gc_next_blk, %object
+ .size g_gc_next_blk, 2
+g_gc_next_blk:
+ .zero 2
+ .type g_num_free_superblocks, %object
+ .size g_num_free_superblocks, 2
+g_num_free_superblocks:
+ .zero 2
+ .zero 2
.type c_ftl_nand_sys_blks_per_plane, %object
.size c_ftl_nand_sys_blks_per_plane, 4
c_ftl_nand_sys_blks_per_plane:
@@ -13433,14 +13616,6 @@ p_data_block_list_table:
.size p_data_block_list_head, 8
p_data_block_list_head:
.zero 8
- .type p_valid_page_count_table, %object
- .size p_valid_page_count_table, 8
-p_valid_page_count_table:
- .zero 8
- .type p_erase_count_table, %object
- .size p_erase_count_table, 8
-p_erase_count_table:
- .zero 8
.type p_data_block_list_tail, %object
.size p_data_block_list_tail, 8
p_data_block_list_tail:
@@ -13454,23 +13629,10 @@ g_num_data_superblocks:
.size p_free_data_block_list_head, 8
p_free_data_block_list_head:
.zero 8
- .type g_num_free_superblocks, %object
- .size g_num_free_superblocks, 2
-g_num_free_superblocks:
- .zero 2
- .zero 6
- .type g_active_superblock, %object
- .size g_active_superblock, 48
-g_active_superblock:
- .zero 48
- .type g_buffer_superblock, %object
- .size g_buffer_superblock, 48
-g_buffer_superblock:
- .zero 48
- .type g_gc_temp_superblock, %object
- .size g_gc_temp_superblock, 48
-g_gc_temp_superblock:
- .zero 48
+ .type p_erase_count_table, %object
+ .size p_erase_count_table, 8
+p_erase_count_table:
+ .zero 8
.type p_l2p_ram_map, %object
.size p_l2p_ram_map, 8
p_l2p_ram_map:
@@ -13564,10 +13726,6 @@ c_ftl_nand_data_op_blks_per_plane:
.size gSysInfo, 16
gSysInfo:
.zero 16
- .type g_gc_superblock, %object
- .size g_gc_superblock, 48
-g_gc_superblock:
- .zero 48
.type g_sys_ext_data, %object
.size g_sys_ext_data, 512
g_sys_ext_data:
@@ -13636,19 +13794,11 @@ g_gc_page_offset:
.size p_gc_page_info, 8
p_gc_page_info:
.zero 8
- .type g_gc_next_blk, %object
- .size g_gc_next_blk, 2
-g_gc_next_blk:
- .zero 2
- .type g_gc_next_blk_1, %object
- .size g_gc_next_blk_1, 2
-g_gc_next_blk_1:
- .zero 2
.type g_gc_bad_block_temp_num, %object
.size g_gc_bad_block_temp_num, 2
g_gc_bad_block_temp_num:
.zero 2
- .zero 2
+ .zero 6
.type g_gc_bad_block_temp_tbl, %object
.size g_gc_bad_block_temp_tbl, 34
g_gc_bad_block_temp_tbl:
@@ -13898,246 +14048,276 @@ gp_last_act_superblock:
.zero 8
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
- .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
+ .string "SFTL version: 5.0.50 20190215"
.LC1:
- .string "\n!!!!! error @ func:%s - line:%d\n"
+ .string "\n%s\n"
.LC2:
- .string "FLASH INFO:\n"
+ .string "act blk: %x %x %x %x %x %x\n"
.LC3:
- .string "Device Capacity: %d MB\n"
+ .string "buf blk: %x %x %x %x %x %x\n"
.LC4:
- .string "FTL INFO:\n"
+ .string "tmp blk: %x %x %x %x %x %x\n"
.LC5:
- .string "g_MaxLpn = 0x%x\n"
+ .string "gc blk: %x %x %x %x %x %x\n"
.LC6:
- .string "g_VaildLpn = 0x%x\n"
+ .string "free blk: %x %x %x\n"
.LC7:
- .string "read_page_count = 0x%x\n"
+ .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n"
.LC8:
- .string "discard_page_count = 0x%x\n"
+ .string "\n!!!!! error @ func:%s - line:%d\n"
.LC9:
- .string "write_page_count = 0x%x\n"
+ .string "FLASH INFO:\n"
.LC10:
- .string "cache_write_count = 0x%x\n"
+ .string "Device Capacity: %d MB\n"
.LC11:
- .string "l2p_write_count = 0x%x\n"
+ .string "FTL INFO:\n"
.LC12:
- .string "gc_page_count = 0x%x\n"
+ .string "g_MaxLpn = 0x%x\n"
.LC13:
- .string "totle_write = %d MB\n"
+ .string "g_VaildLpn = 0x%x\n"
.LC14:
- .string "totle_read = %d MB\n"
+ .string "read_page_count = 0x%x\n"
.LC15:
- .string "GSV = 0x%x\n"
+ .string "discard_page_count = 0x%x\n"
.LC16:
- .string "GDV = 0x%x\n"
+ .string "write_page_count = 0x%x\n"
.LC17:
- .string "bad blk num = %d\n"
+ .string "cache_write_count = 0x%x\n"
.LC18:
- .string "free_superblocks = 0x%x\n"
+ .string "l2p_write_count = 0x%x\n"
.LC19:
- .string "mlc_EC = 0x%x\n"
+ .string "gc_page_count = 0x%x\n"
.LC20:
- .string "slc_EC = 0x%x\n"
+ .string "totle_write = %d MB\n"
.LC21:
- .string "avg_EC = 0x%x\n"
+ .string "totle_read = %d MB\n"
.LC22:
- .string "sys_EC = 0x%x\n"
+ .string "GSV = 0x%x\n"
.LC23:
- .string "max_EC = 0x%x\n"
+ .string "GDV = 0x%x\n"
.LC24:
- .string "min_EC = 0x%x\n"
+ .string "bad blk num = %d\n"
.LC25:
- .string "PLT = 0x%x\n"
+ .string "free_superblocks = 0x%x\n"
.LC26:
- .string "POT = 0x%x\n"
+ .string "mlc_EC = 0x%x\n"
.LC27:
- .string "MaxSector = 0x%x\n"
+ .string "slc_EC = 0x%x\n"
.LC28:
- .string "init_sys_blks_pp = 0x%x\n"
+ .string "avg_EC = 0x%x\n"
.LC29:
- .string "sys_blks_pp = 0x%x\n"
+ .string "sys_EC = 0x%x\n"
.LC30:
- .string "free sysblock = 0x%x\n"
+ .string "max_EC = 0x%x\n"
.LC31:
- .string "data_blks_pp = 0x%x\n"
+ .string "min_EC = 0x%x\n"
.LC32:
- .string "data_op_blks_pp = 0x%x\n"
+ .string "PLT = 0x%x\n"
.LC33:
- .string "max_data_blks = 0x%x\n"
+ .string "POT = 0x%x\n"
.LC34:
- .string "Sys.id = 0x%x\n"
+ .string "MaxSector = 0x%x\n"
.LC35:
- .string "Bbt.id = 0x%x\n"
+ .string "init_sys_blks_pp = 0x%x\n"
.LC36:
- .string "ACT.page = 0x%x\n"
+ .string "sys_blks_pp = 0x%x\n"
.LC37:
- .string "ACT.plane = 0x%x\n"
+ .string "free sysblock = 0x%x\n"
.LC38:
- .string "ACT.id = 0x%x\n"
+ .string "data_blks_pp = 0x%x\n"
.LC39:
- .string "ACT.mode = 0x%x\n"
+ .string "data_op_blks_pp = 0x%x\n"
.LC40:
- .string "ACT.a_pages = 0x%x\n"
+ .string "max_data_blks = 0x%x\n"
.LC41:
- .string "ACT VPC = 0x%x\n"
+ .string "Sys.id = 0x%x\n"
.LC42:
- .string "BUF.page = 0x%x\n"
+ .string "Bbt.id = 0x%x\n"
.LC43:
- .string "BUF.plane = 0x%x\n"
+ .string "ACT.page = 0x%x\n"
.LC44:
- .string "BUF.id = 0x%x\n"
+ .string "ACT.plane = 0x%x\n"
.LC45:
- .string "BUF.mode = 0x%x\n"
+ .string "ACT.id = 0x%x\n"
.LC46:
- .string "BUF.a_pages = 0x%x\n"
+ .string "ACT.mode = 0x%x\n"
.LC47:
- .string "BUF VPC = 0x%x\n"
+ .string "ACT.a_pages = 0x%x\n"
.LC48:
- .string "TMP.page = 0x%x\n"
+ .string "ACT VPC = 0x%x\n"
.LC49:
- .string "TMP.plane = 0x%x\n"
+ .string "BUF.page = 0x%x\n"
.LC50:
- .string "TMP.id = 0x%x\n"
+ .string "BUF.plane = 0x%x\n"
.LC51:
- .string "TMP.mode = 0x%x\n"
+ .string "BUF.id = 0x%x\n"
.LC52:
- .string "TMP.a_pages = 0x%x\n"
+ .string "BUF.mode = 0x%x\n"
.LC53:
- .string "GC.page = 0x%x\n"
+ .string "BUF.a_pages = 0x%x\n"
.LC54:
- .string "GC.plane = 0x%x\n"
+ .string "BUF VPC = 0x%x\n"
.LC55:
- .string "GC.id = 0x%x\n"
+ .string "TMP.page = 0x%x\n"
.LC56:
- .string "GC.mode = 0x%x\n"
+ .string "TMP.plane = 0x%x\n"
.LC57:
- .string "GC.a_pages = 0x%x\n"
+ .string "TMP.id = 0x%x\n"
.LC58:
- .string "WR_CHK = %x %x %x\n"
+ .string "TMP.mode = 0x%x\n"
.LC59:
- .string "Read Err Cnt = 0x%x\n"
+ .string "TMP.a_pages = 0x%x\n"
.LC60:
- .string "Prog Err Cnt = 0x%x\n"
+ .string "GC.page = 0x%x\n"
.LC61:
- .string "gc_free_blk_th= 0x%x\n"
+ .string "GC.plane = 0x%x\n"
.LC62:
- .string "gc_merge_free_blk_th= 0x%x\n"
+ .string "GC.id = 0x%x\n"
.LC63:
- .string "gc_skip_write_count= 0x%x\n"
+ .string "GC.mode = 0x%x\n"
.LC64:
- .string "gc_blk_index= 0x%x\n"
+ .string "GC.a_pages = 0x%x\n"
.LC65:
- .string "free min EC= 0x%x\n"
+ .string "WR_CHK = %x %x %x\n"
.LC66:
- .string "free max EC= 0x%x\n"
+ .string "Read Err Cnt = 0x%x\n"
.LC67:
- .string "GC__SB VPC = 0x%x\n"
+ .string "Prog Err Cnt = 0x%x\n"
.LC68:
- .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
+ .string "gc_free_blk_th= 0x%x\n"
.LC69:
- .string "free %d. [0x%x] 0x%x 0x%x\n"
+ .string "gc_merge_free_blk_th= 0x%x\n"
.LC70:
- .string "SFTL version: 5.0.50 20181227"
+ .string "gc_skip_write_count= 0x%x\n"
.LC71:
- .string "%s\n"
+ .string "gc_blk_index= 0x%x\n"
.LC72:
- .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
+ .string "free min EC= 0x%x\n"
.LC73:
- .string "FtlGcRefreshBlock 0x%x\n"
+ .string "free max EC= 0x%x\n"
.LC74:
- .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
+ .string "GC__SB VPC = 0x%x\n"
.LC75:
- .string "%s %p + 0x%x:"
+ .string "%d. [0x%x]=0x%x 0x%x 0x%x\n"
.LC76:
- .string "0x%08x,"
+ .string "free %d. [0x%x] 0x%x 0x%x\n"
.LC77:
- .string "0x%04x,"
+ .string "%s\n"
.LC78:
- .string "0x%02x,"
+ .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
.LC79:
- .string "\n"
+ .string "FtlGcRefreshBlock 0x%x\n"
.LC80:
- .string "%s: addr: %x is in id block!!!!!!!!!!\n"
+ .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
.LC81:
- .string "not free: w: d:"
+ .string "%s %p + 0x%x:"
.LC82:
- .string "not free: w: s:"
+ .string "0x%08x,"
.LC83:
- .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
+ .string "0x%04x,"
.LC84:
- .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n"
+ .string "0x%02x,"
.LC85:
- .string "%s error allocating memory. return -1\n"
+ .string "\n"
.LC86:
- .string "prog read error: = %x\n"
+ .string "%s: addr: %x is in id block!!!!!!!!!!\n"
.LC87:
- .string "prog read s error: = %x %x %x\n"
+ .string "not free: w: d:"
.LC88:
- .string "prog read d error: = %x %x %x\n"
+ .string "not free: w: s:"
.LC89:
- .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
+ .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n"
.LC90:
- .string "FtlBbmTblFlush error:%x\n"
+ .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n"
.LC91:
- .string "FtlBbmTblFlush error = %x error count = %d\n"
+ .string "%s error allocating memory. return -1\n"
.LC92:
- .string "FtlGcFreeBadSuperBlk 0x%x\n"
+ .string "FlashReadPages %x %x error_ecc_bits %d\n"
.LC93:
- .string "decrement_vpc_count %x = %d\n"
+ .string "data:"
.LC94:
- .string "FtlMapWritePage error = %x \n"
+ .string "spare:"
.LC95:
- .string "FtlMapWritePage error = %x error count = %d\n"
+ .string "prog read error: = %x\n"
.LC96:
- .string "region_id = %x phyAddr = %x\n"
+ .string "prog read REFRESH: = %x\n"
.LC97:
- .string "spare:"
+ .string "prog read s error: = %x %x %x\n"
.LC98:
- .string "map_ppn:"
+ .string "prog read d error: = %x %x %x\n"
.LC99:
- .string "load_l2p_region refresh = %x phyAddr = %x\n"
+ .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
.LC100:
- .string "spuer block %x vpn is 0\n "
+ .string "FtlBbmTblFlush error:%x\n"
.LC101:
- .string "...%s enter...\n"
+ .string "FtlBbmTblFlush error = %x error count = %d\n"
.LC102:
- .string "FtlCheckVpc2 %x = %x %x\n"
+ .string "FtlGcFreeBadSuperBlk 0x%x\n"
.LC103:
- .string "free blk vpc error %x = %x %x\n"
+ .string "decrement_vpc_count %x = %d\n"
.LC104:
- .string "ftl_scan_all_data = %x\n"
+ .string "FtlMapWritePage error = %x \n"
.LC105:
- .string "scan lpa = %x ppa= %x\n"
+ .string "FtlMapWritePage error = %x error count = %d\n"
.LC106:
- .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
+ .string "region_id = %x phyAddr = %x\n"
.LC107:
- .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
+ .string "map_ppn:"
.LC108:
- .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
+ .string "load_l2p_region refresh = %x phyAddr = %x\n"
.LC109:
- .string "no ect"
+ .string "data prev_ppa = %x error...................\n"
.LC110:
- .string "FtlVpcTblFlush error = %x error count = %d\n"
+ .string "spuer block %x vpn is 0\n "
.LC111:
- .string "FtlCheckVpc %x = %x %x\n"
+ .string "...%s enter...\n"
.LC112:
- .string "Ftlwrite decrement_vpc_count %x = %d\n"
+ .string "FtlCheckVpc2 %x = %x %x\n"
.LC113:
- .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+ .string "free blk vpc error %x = %x %x\n"
.LC114:
- .string "FtlWrite: lpa error:%x %x\n"
+ .string "ftl_scan_all_data = %x\n"
.LC115:
- .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n"
+ .string "scan lpa = %x ppa= %x\n"
.LC116:
- .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
+ .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC117:
- .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
+ .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
.LC118:
- .string "write_idblock fail! %x %x %x %x\n"
+ .string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
.LC119:
- .string "%s idb buffer alloc fail\n"
+ .string "no ect"
.LC120:
- .string "%p %x %p %x\n"
+ .string "FtlVpcTblFlush error = %x error count = %d\n"
.LC121:
+ .string "FtlCheckVpc %x = %x %x\n"
+.LC122:
+ .string "FtlProgPages error %x = %d\n"
+.LC123:
+ .string "Ftlwrite decrement_vpc_count %x = %d\n"
+.LC124:
+ .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+.LC125:
+ .string "g_gc_superblock_free %x %x %x %x %x\n"
+.LC126:
+ .string "lpa=%x, ppa=%x\n"
+.LC127:
+ .string "FtlWrite: ecc error:%x %x %x\n"
+.LC128:
+ .string "FtlWrite: lpa error:%x %x\n"
+.LC129:
+ .string "%s hash error this.id =%x page =%x pre_id =%x hash =%x hash_r =%x\n"
+.LC130:
+ .string "%s last blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
+.LC131:
+ .string "%s scan blk_id =%x page =%x hash error hash =%x hash_r =%x\n"
+.LC132:
+ .string "write_idblock fail! %x %x %x %x\n"
+.LC133:
+ .string "%s idb buffer alloc fail\n"
+.LC134:
+ .string "%p %x %p %x\n"
+.LC135:
+ .string "copy_from_user error %d %p %p\n"
+.LC136:
.string "vendor_storage"