diff options
author | Jon Lin <jon.lin@rock-chips.com> | 2019-01-24 10:40:10 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2019-03-08 12:01:45 +0800 |
commit | cb508201ffb58249b09e4b157eb65cc0a9d5bbab (patch) | |
tree | 89b0248cadb2e72a5479702aa26809e9845380a9 /drivers/rkflash | |
parent | 281b14365e78eb30ad46cdbbbb14c066b0000573 (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.c | 73 | ||||
-rw-r--r-- | drivers/rkflash/flash.h | 1 | ||||
-rw-r--r-- | drivers/rkflash/flash_com.h | 5 | ||||
-rw-r--r-- | drivers/rkflash/rk_sftl_arm_v7.S | 11871 | ||||
-rw-r--r-- | drivers/rkflash/rk_sftl_arm_v7_thumb.S | 10339 | ||||
-rw-r--r-- | drivers/rkflash/rk_sftl_arm_v8.S | 8332 |
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" |