/* * Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * date: 2021-01-07 */ .arch armv8-a .file "rk_zftl_arm_v8.S" .section .text.flash_mem_cmp8,"ax",@progbits .align 2 .type flash_mem_cmp8, %function flash_mem_cmp8: mov x3, 0 .L2: mov w4, w3 cmp w3, w2 bcc .L4 mov w0, 0 ret .L4: ldrb w5, [x0, x3] add x3, x3, 1 add x6, x1, x3 ldrb w6, [x6, -1] cmp w6, w5 beq .L2 add w0, w4, 1 ret .size flash_mem_cmp8, .-flash_mem_cmp8 .section .text.slc_phy_page_address_calc,"ax",@progbits .align 2 .type slc_phy_page_address_calc, %function slc_phy_page_address_calc: adrp x1, .LANCHOR0 adrp x2, .LANCHOR1 ldrb w1, [x1, #:lo12:.LANCHOR0] cbz w1, .L7 ldrb w1, [x2, #:lo12:.LANCHOR1] cbz w1, .L8 .L7: adrp x1, .LANCHOR2 ldrb w2, [x2, #:lo12:.LANCHOR1] ldrh w3, [x1, #:lo12:.LANCHOR2] udiv w1, w0, w3 mul w1, w1, w3 sub w0, w0, w1 cbz w2, .L9 add w0, w1, w0, lsl 1 ret .L9: adrp x2, .LANCHOR3 add x2, x2, :lo12:.LANCHOR3 ldrh w0, [x2, w0, uxtw 1] add w0, w0, w1 .L8: ret .size slc_phy_page_address_calc, .-slc_phy_page_address_calc .section .text._list_remove_node,"ax",@progbits .align 2 .type _list_remove_node, %function _list_remove_node: stp x29, x30, [sp, -64]! and w1, w1, 65535 mov w3, 6 add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR4 stp x19, x20, [sp, 16] umull x20, w1, w3 stp x23, x24, [sp, 48] mov w1, 65535 ldr x24, [x21, #:lo12:.LANCHOR4] add x19, x24, x20 ldrh w4, [x24, x20] ldrh w3, [x19, 2] cmp w4, w1 ldr x1, [x0] bne .L17 cmp w3, w4 bne .L17 cmp x19, x1 bne .L16 .L17: mov x22, x0 mov x23, x2 mov w0, 65535 cmp w3, w0 bne .L19 cmp x19, x1 beq .L19 adrp x1, .LANCHOR5 adrp x0, .LC0 mov w2, 202 add x1, x1, :lo12:.LANCHOR5 add x0, x0, :lo12:.LC0 bl printf .L19: ldr x0, [x22] ldrh w3, [x24, x20] cmp x19, x0 mov w0, 65535 bne .L20 cmp w3, w0 bne .L21 str xzr, [x22] .L22: mov w0, -1 strh w0, [x24, x20] strh w0, [x19, 2] ldrh w0, [x23] sub w0, w0, #1 strh w0, [x23] .L16: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .L21: ldr x0, [x21, #:lo12:.LANCHOR4] mov w1, 6 umaddl x3, w3, w1, x0 mov w0, -1 str x3, [x22] strh w0, [x3, 2] b .L22 .L20: cmp w3, w0 ldrh w0, [x19, 2] bne .L23 cmp w0, w3 beq .L22 mov w1, 6 mov w2, -1 umull x0, w0, w1 ldr x1, [x21, #:lo12:.LANCHOR4] strh w2, [x1, x0] b .L22 .L23: ldr x1, [x21, #:lo12:.LANCHOR4] mov w2, 6 umaddl x4, w3, w2, x1 strh w0, [x4, 2] ldrh w0, [x19, 2] umull x0, w0, w2 strh w3, [x1, x0] b .L22 .size _list_remove_node, .-_list_remove_node .section .text.hynix_set_rr_para,"ax",@progbits .align 2 .type hynix_set_rr_para, %function hynix_set_rr_para: stp x29, x30, [sp, -64]! adrp x2, .LANCHOR6 and w1, w1, 255 adrp x3, .LANCHOR7 add x29, sp, 0 ldr x2, [x2, #:lo12:.LANCHOR6] and w0, w0, 255 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] add x21, x2, 112 str x23, [sp, 48] add x23, x2, 128 ldr x19, [x3, #:lo12:.LANCHOR7] ldrb w22, [x2, 113] ldrb w2, [x2, 112] cmp w2, 8 mov x2, 32 umaddl x1, w1, w22, x2 beq .L26 mov w2, 160 umaddl x1, w2, w0, x1 .L26: ubfiz x0, x0, 8, 8 add x21, x21, x1 add x19, x19, x0 mov x20, 0 mov w0, 54 str w0, [x19, 2056] .L28: cmp w22, w20, uxtb bhi .L29 ldp x21, x22, [sp, 32] mov w0, 22 ldr x23, [sp, 48] str w0, [x19, 2056] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 64 ret .L29: ldrb w0, [x23, x20] str w0, [x19, 2052] mov x0, 1 bl udelay ldrsb w0, [x21, x20] add x20, x20, 1 str w0, [x19, 2048] b .L28 .size hynix_set_rr_para, .-hynix_set_rr_para .section .text._insert_free_list,"ax",@progbits .align 2 .type _insert_free_list, %function _insert_free_list: adrp x3, .LANCHOR8 and w1, w1, 65535 ldrh w3, [x3, #:lo12:.LANCHOR8] cmp w3, w1 bls .L31 ldrh w3, [x2] mov w8, 6 ldr x7, [x0] add w3, w3, 1 strh w3, [x2] adrp x2, .LANCHOR4 umull x12, w1, w8 ldr x5, [x2, #:lo12:.LANCHOR4] mov w2, -1 add x6, x5, x12 strh w2, [x6, 2] strh w2, [x5, x12] cbnz x7, .L33 .L38: str x6, [x0] ret .L33: adrp x2, .LANCHOR9 adrp x3, .LANCHOR10 mov w10, w8 mov w15, 65535 ldr x11, [x2, #:lo12:.LANCHOR9] ubfiz x2, x1, 2, 16 ldrh w14, [x3, #:lo12:.LANCHOR10] mov x3, -6148914691236517206 movk x3, 0xaaab, lsl 0 ldr w4, [x11, x2] ldrh w2, [x11, x2] ubfx x4, x4, 11, 8 and w2, w2, 2047 madd w4, w14, w4, w2 sub x2, x7, x5 asr x2, x2, 1 and w4, w4, 65535 mul x2, x2, x3 mov x3, x7 and w2, w2, 65535 .L36: ubfiz x13, x2, 2, 16 ldr w8, [x11, x13] ldrh w13, [x11, x13] ubfx x8, x8, 11, 8 and w13, w13, 2047 madd w8, w14, w8, w13 cmp w4, w8, uxth bls .L34 ldrh w8, [x3] cmp w8, w15 bne .L35 strh w2, [x6, 2] strh w1, [x3] ret .L35: umaddl x3, w8, w10, x5 mov w2, w8 b .L36 .L34: ldrh w4, [x3, 2] cmp x7, x3 strh w4, [x6, 2] strh w2, [x5, x12] bne .L37 strh w1, [x7, 2] b .L38 .L37: ldrh w0, [x3, 2] mov w2, 6 umull x0, w0, w2 strh w1, [x5, x0] strh w1, [x3, 2] .L31: ret .size _insert_free_list, .-_insert_free_list .section .text._insert_data_list,"ax",@progbits .align 2 .type _insert_data_list, %function _insert_data_list: adrp x3, .LANCHOR8 and w1, w1, 65535 ldrh w4, [x3, #:lo12:.LANCHOR8] cmp w4, w1 bls .L61 mov x5, x3 ldrh w3, [x2] mov w13, 6 ldr x12, [x0] add w3, w3, 1 strh w3, [x2] adrp x2, .LANCHOR4 umull x13, w1, w13 ldr x10, [x2, #:lo12:.LANCHOR4] mov w2, -1 add x11, x10, x13 strh w2, [x11, 2] strh w2, [x10, x13] cbnz x12, .L42 str x11, [x0] ret .L42: stp x29, x30, [sp, -32]! adrp x2, .LANCHOR11 uxtw x3, w1 adrp x6, .LANCHOR10 add x29, sp, 0 ldr x15, [x2, #:lo12:.LANCHOR11] adrp x2, .LANCHOR9 ldrh w4, [x11, 4] ldr x14, [x2, #:lo12:.LANCHOR9] stp x19, x20, [sp, 16] ldrh w8, [x15, x3, lsl 1] lsl x3, x3, 2 ldrh w16, [x6, #:lo12:.LANCHOR10] ldr w2, [x14, x3] mul w8, w8, w4 ldrh w3, [x14, x3] ubfx x2, x2, 11, 8 and w3, w3, 2047 cbz w8, .L43 madd w2, w16, w2, w3 add w8, w8, w2, uxth .L43: sub x2, x12, x10 mov x3, -6148914691236517206 asr x2, x2, 1 movk x3, 0xaaab, lsl 0 cmp w4, 0 ldrh w19, [x5, #:lo12:.LANCHOR8] csinv w8, w8, wzr, ne mov x7, x12 mul x2, x2, x3 mov w4, 0 mov w20, 65535 mov w30, 6 and w2, w2, 65535 .L49: add w4, w4, 1 and w4, w4, 65535 cmp w4, w19 bhi .L39 cmp w1, w2 beq .L39 uxtw x6, w2 ldrh w17, [x7, 4] ldrh w3, [x15, x6, lsl 1] lsl x6, x6, 2 ldr w5, [x14, x6] mul w3, w3, w17 ldrh w6, [x14, x6] ubfx x5, x5, 11, 8 and w6, w6, 2047 cbz w3, .L46 madd w5, w16, w5, w6 add w3, w3, w5, uxth .L46: cbz w17, .L47 cmp w8, w3 bls .L47 ldrh w3, [x7] cmp w3, w20 bne .L48 strh w2, [x11, 2] strh w1, [x7] .L39: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L48: umaddl x7, w3, w30, x10 mov w2, w3 b .L49 .L47: ldrh w3, [x7, 2] cmp x12, x7 strh w3, [x11, 2] strh w2, [x10, x13] bne .L50 strh w1, [x12, 2] str x11, [x0] b .L39 .L50: ldrh w0, [x7, 2] mov w2, 6 umull x0, w0, w2 strh w1, [x10, x0] strh w1, [x7, 2] b .L39 .L61: ret .size _insert_data_list, .-_insert_data_list .section .text._list_update_data_list,"ax",@progbits .align 2 .type _list_update_data_list, %function _list_update_data_list: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w1, 65535 adrp x1, .LANCHOR12 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] ldr x1, [x1, #:lo12:.LANCHOR12] ldrh w3, [x1, 16] str x25, [sp, 64] cmp w3, w19 beq .L63 ldrh w3, [x1, 48] cmp w3, w19 beq .L63 ldrh w1, [x1, 80] cmp w1, w19 beq .L63 adrp x1, .LANCHOR4 mov w22, 6 ldr x3, [x0] mov x25, x1 umull x22, w19, w22 ldr x24, [x1, #:lo12:.LANCHOR4] add x23, x24, x22 cmp x23, x3 beq .L63 mov x20, x0 ldrh w0, [x23, 2] mov w1, 65535 mov x21, x2 cmp w0, w1 bne .L67 ldrh w1, [x24, x22] cmp w1, w0 bne .L67 adrp x1, .LANCHOR13 adrp x0, .LC0 mov w2, 273 add x1, x1, :lo12:.LANCHOR13 add x0, x0, :lo12:.LC0 bl printf .L67: ldrh w1, [x23, 2] mov w0, 65535 cmp w1, w0 bne .L68 ldrh w0, [x24, x22] cmp w0, w1 beq .L63 .L68: adrp x0, .LANCHOR11 ubfiz x2, x19, 1, 16 mov x5, -6148914691236517206 mov w4, -1 ldr x0, [x0, #:lo12:.LANCHOR11] movk x5, 0xaaab, lsl 0 ldrh w3, [x0, x2] ldrh w2, [x23, 4] cmp w2, 0 mul w3, w3, w2 mov w2, 6 umull x1, w1, w2 csel w3, w3, w4, ne asr x2, x1, 1 mul x2, x2, x5 ldrh w0, [x0, x2, lsl 1] ldr x2, [x25, #:lo12:.LANCHOR4] add x1, x2, x1 ldrh w1, [x1, 4] cmp w1, 0 mul w0, w0, w1 csel w0, w0, w4, ne cmp w3, w0 bcs .L63 mov x2, x21 mov w1, w19 mov x0, x20 bl _list_remove_node mov x2, x21 mov w1, w19 mov x0, x20 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 b _insert_data_list .L63: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldr x25, [sp, 64] ldp x29, x30, [sp], 80 ret .size _list_update_data_list, .-_list_update_data_list .section .text.nandc_de_cs.constprop.32,"ax",@progbits .align 2 .type nandc_de_cs.constprop.32, %function nandc_de_cs.constprop.32: adrp x0, .LANCHOR7 ldr x1, [x0, #:lo12:.LANCHOR7] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 str w0, [x1] ret .size nandc_de_cs.constprop.32, .-nandc_de_cs.constprop.32 .section .text.flash_read_status,"ax",@progbits .align 2 .global flash_read_status .type flash_read_status, %function flash_read_status: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] mov x19, x0 mov w0, 112 str w0, [x19, 8] mov x0, 1 bl udelay ldr w0, [x19] ldr x19, [sp, 16] and w0, w0, 255 ldp x29, x30, [sp], 32 ret .size flash_read_status, .-flash_read_status .section .text.toshiba_set_rr_para,"ax",@progbits .align 2 .global toshiba_set_rr_para .type toshiba_set_rr_para, %function toshiba_set_rr_para: stp x29, x30, [sp, -96]! add x29, sp, 0 str x27, [sp, 80] and w27, w1, 255 add w2, w27, 1 stp x21, x22, [sp, 32] mov x21, x0 mov w0, 5 stp x19, x20, [sp, 16] adrp x20, .LANCHOR14 umull x2, w2, w0 stp x23, x24, [sp, 48] adrp x0, .LANCHOR15 add x20, x20, :lo12:.LANCHOR14 add x24, x0, :lo12:.LANCHOR15 stp x25, x26, [sp, 64] adrp x23, .LANCHOR18 adrp x25, .LANCHOR16 adrp x26, .LANCHOR17 add x23, x23, :lo12:.LANCHOR18 add x25, x25, :lo12:.LANCHOR16 add x26, x26, :lo12:.LANCHOR17 add x20, x20, x2 add x24, x24, x2 mov x22, x0 mov x19, 0 .L78: ldrb w0, [x23] cmp w0, w19 bhi .L82 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret .L82: mov w0, 85 str w0, [x21, 8] add x0, x22, :lo12:.LANCHOR15 ldrsb w0, [x19, x0] str w0, [x21, 4] mov x0, 1 bl udelay ldrb w0, [x25] cmp w0, 34 bne .L79 ldrsb w0, [x24, x19] .L84: add x19, x19, 1 str w0, [x21] b .L78 .L79: cmp w0, 35 bne .L81 ldrsb w0, [x20, x19] b .L84 .L81: ldrsb w0, [x26, w27, sxtw] b .L84 .size toshiba_set_rr_para, .-toshiba_set_rr_para .section .text.hynix_reconfig_rr_para,"ax",@progbits .align 2 .global hynix_reconfig_rr_para .type hynix_reconfig_rr_para, %function hynix_reconfig_rr_para: adrp x1, .LANCHOR16 ldrb w1, [x1, #:lo12:.LANCHOR16] sub w1, w1, #1 and w1, w1, 255 cmp w1, 7 bhi .L91 stp x29, x30, [sp, -32]! and w0, w0, 255 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR6 sxtw x19, w0 ldr x1, [x20, #:lo12:.LANCHOR6] add x1, x1, x19 ldrb w1, [x1, 120] cbz w1, .L85 mov w1, 0 bl hynix_set_rr_para ldr x0, [x20, #:lo12:.LANCHOR6] add x0, x0, x19 strb wzr, [x0, 120] .L85: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L91: ret .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para .section .text.nand_flash_print_info,"ax",@progbits .align 2 .global nand_flash_print_info .type nand_flash_print_info, %function nand_flash_print_info: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] adrp x19, .LANCHOR19 ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L95 adrp x1, .LANCHOR20 adrp x0, .LC1 add x1, x1, :lo12:.LANCHOR20 add x0, x0, :lo12:.LC1 bl printf .L95: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L96 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w6, [x0, 6] ldrb w5, [x0, 5] ldrb w4, [x0, 4] ldrb w3, [x0, 3] ldrb w2, [x0, 2] ldrb w1, [x0, 1] adrp x0, .LC2 add x0, x0, :lo12:.LC2 bl printf .L96: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L97 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 8] adrp x0, .LC3 add x0, x0, :lo12:.LC3 bl printf .L97: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L98 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 9] adrp x0, .LC4 add x0, x0, :lo12:.LC4 bl printf .L98: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L99 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 10] adrp x0, .LC5 add x0, x0, :lo12:.LC5 bl printf .L99: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L100 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 12] adrp x0, .LC6 add x0, x0, :lo12:.LC6 bl printf .L100: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L101 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 13] adrp x0, .LC7 add x0, x0, :lo12:.LC7 bl printf .L101: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L102 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 14] adrp x0, .LC8 add x0, x0, :lo12:.LC8 bl printf .L102: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L103 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 23] adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl printf .L103: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L104 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 18] adrp x0, .LC10 add x0, x0, :lo12:.LC10 bl printf .L104: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L105 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 19] adrp x0, .LC11 add x0, x0, :lo12:.LC11 bl printf .L105: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L106 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 20] adrp x0, .LC12 add x0, x0, :lo12:.LC12 bl printf .L106: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L107 adrp x0, .LANCHOR22 ldrb w1, [x0, #:lo12:.LANCHOR22] adrp x0, .LC13 add x0, x0, :lo12:.LC13 bl printf .L107: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L108 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 22] adrp x0, .LC14 add x0, x0, :lo12:.LC14 bl printf .L108: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L109 adrp x0, .LANCHOR23 ldrb w1, [x0, #:lo12:.LANCHOR23] adrp x0, .LC15 add x0, x0, :lo12:.LC15 bl printf .L109: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L110 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 16] adrp x0, .LC16 add x0, x0, :lo12:.LC16 and w1, w1, 1 bl printf .L110: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L111 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC17 add x0, x0, :lo12:.LC17 ubfx x1, x1, 1, 1 bl printf .L111: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L112 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC18 add x0, x0, :lo12:.LC18 ubfx x1, x1, 2, 1 bl printf .L112: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L113 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC19 add x0, x0, :lo12:.LC19 ubfx x1, x1, 3, 1 bl printf .L113: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L114 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC20 add x0, x0, :lo12:.LC20 ubfx x1, x1, 4, 1 bl printf .L114: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L115 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC21 add x0, x0, :lo12:.LC21 ubfx x1, x1, 5, 1 bl printf .L115: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L116 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC22 add x0, x0, :lo12:.LC22 ubfx x1, x1, 6, 1 bl printf .L116: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L117 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC23 add x0, x0, :lo12:.LC23 ubfx x1, x1, 7, 1 bl printf .L117: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L118 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w1, [x0, 17] adrp x0, .LC24 add x0, x0, :lo12:.LC24 and w1, w1, 1 bl printf .L118: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L119 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC25 add x0, x0, :lo12:.LC25 ubfx x1, x1, 9, 1 bl printf .L119: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L120 adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrh w1, [x0, 16] adrp x0, .LC26 add x0, x0, :lo12:.LC26 ubfx x1, x1, 10, 1 bl printf .L120: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L121 adrp x0, .LANCHOR24 ldrb w2, [x0, #:lo12:.LANCHOR24] adrp x0, .LANCHOR0 ldrb w1, [x0, #:lo12:.LANCHOR0] adrp x0, .LC27 add x0, x0, :lo12:.LC27 bl printf .L121: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L122 adrp x0, .LANCHOR25 add x0, x0, :lo12:.LANCHOR25 ldrb w2, [x0, 11] ldrb w1, [x0, 10] adrp x0, .LC28 add x0, x0, :lo12:.LC28 bl printf .L122: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L123 adrp x0, .LANCHOR25 add x0, x0, :lo12:.LANCHOR25 ldrb w2, [x0, 9] ldrb w1, [x0, 8] adrp x0, .LC29 add x0, x0, :lo12:.LC29 bl printf .L123: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L94 adrp x0, .LANCHOR26 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ldrb w1, [x0, #:lo12:.LANCHOR26] adrp x0, .LC30 add x0, x0, :lo12:.LC30 b printf .L94: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size nand_flash_print_info, .-nand_flash_print_info .section .text.timer_delay_ns,"ax",@progbits .align 2 .global timer_delay_ns .type timer_delay_ns, %function timer_delay_ns: uxtw x0, w0 mov x1, 1000 add x0, x0, 999 udiv x0, x0, x1 b udelay .size timer_delay_ns, .-timer_delay_ns .section .text.nandc_set_ddr_para,"ax",@progbits .align 2 .global nandc_set_ddr_para .type nandc_set_ddr_para, %function nandc_set_ddr_para: adrp x1, .LANCHOR27 and w0, w0, 255 adrp x2, .LANCHOR7 ldrb w1, [x1, #:lo12:.LANCHOR27] ldr x2, [x2, #:lo12:.LANCHOR7] cmp w1, 9 lsl w1, w0, 16 lsl w0, w0, 8 orr w1, w1, w0 orr w1, w1, 3 bne .L215 str w1, [x2, 80] ret .L215: str w1, [x2, 304] ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .section .text.nandc_get_ddr_para,"ax",@progbits .align 2 .global nandc_get_ddr_para .type nandc_get_ddr_para, %function nandc_get_ddr_para: adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 adrp x0, .LANCHOR7 ldr x0, [x0, #:lo12:.LANCHOR7] bne .L218 ldr w0, [x0, 80] .L220: ubfx x0, x0, 8, 8 ret .L218: ldr w0, [x0, 304] b .L220 .size nandc_get_ddr_para, .-nandc_get_ddr_para .section .text.nandc_set_if_mode,"ax",@progbits .align 2 .global nandc_set_if_mode .type nandc_set_if_mode, %function nandc_set_if_mode: adrp x1, .LANCHOR7 and w0, w0, 255 tst w0, 6 ldr x2, [x1, #:lo12:.LANCHOR7] ldr w1, [x2] beq .L222 tst x0, 4 orr w1, w1, 24576 adrp x0, .LANCHOR27 and w1, w1, -32769 orr w1, w1, 196608 ldrb w0, [x0, #:lo12:.LANCHOR27] orr w3, w1, 32768 csel w1, w3, w1, ne cmp w0, 9 mov w0, 4099 movk w0, 0x10, lsl 16 bne .L224 mov w3, 8321 str w3, [x2, 8] str w0, [x2, 80] mov w0, 38 str w0, [x2, 84] mov w0, 39 str w0, [x2, 84] .L225: str w1, [x2] ret .L224: mov w3, 8322 str w3, [x2, 344] str w0, [x2, 304] mov w0, 38 str w0, [x2, 308] mov w0, 39 str w0, [x2, 308] b .L225 .L222: and w1, w1, -8193 b .L225 .size nandc_set_if_mode, .-nandc_set_if_mode .section .text.nandc_cs,"ax",@progbits .align 2 .global nandc_cs .type nandc_cs, %function nandc_cs: adrp x1, .LANCHOR7 mov w2, 1 lsl w0, w2, w0 ldr x3, [x1, #:lo12:.LANCHOR7] ldr w1, [x3] bfi w1, w0, 0, 8 str w1, [x3] ret .size nandc_cs, .-nandc_cs .section .text.flash_wait_device_ready_raw,"ax",@progbits .align 2 .global flash_wait_device_ready_raw .type flash_wait_device_ready_raw, %function flash_wait_device_ready_raw: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 255 adrp x0, .LANCHOR23 stp x25, x26, [sp, 64] stp x21, x22, [sp, 32] mov w20, w1 ldrb w0, [x0, #:lo12:.LANCHOR23] mov w26, w2 stp x23, x24, [sp, 48] str x27, [sp, 80] cmp w0, w19 bhi .L230 adrp x1, .LANCHOR28 adrp x0, .LC0 mov w2, 812 add x1, x1, :lo12:.LANCHOR28 add x0, x0, :lo12:.LC0 bl printf .L230: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 lsr w23, w20, 8 lsr w24, w20, 16 lsr w25, w20, 24 adrp x21, .LANCHOR30 ldrb w22, [x0, w19, sxtw] adrp x0, .LANCHOR7 and w20, w20, 255 add x21, x21, :lo12:.LANCHOR30 ldr x19, [x0, #:lo12:.LANCHOR7] mov w27, 120 ubfiz x0, x22, 8, 8 add x19, x19, x0 .L236: mov w0, w22 bl nandc_cs str w27, [x19, 2056] str w20, [x19, 2052] ldrb w0, [x21] str w23, [x19, 2052] str w24, [x19, 2052] cbz w0, .L231 str w25, [x19, 2052] .L231: mov x0, 1 bl udelay ldr w2, [x19, 2048] and w2, w2, 255 bl nandc_de_cs.constprop.32 bics wzr, w26, w2 bne .L236 cmp w2, 255 beq .L236 mov w0, w2 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw .section .text.flash_wait_device_ready,"ax",@progbits .align 2 .global flash_wait_device_ready .type flash_wait_device_ready, %function flash_wait_device_ready: mov w2, w1 adrp x1, .LANCHOR31 mov w5, 24 mov w4, 1 ldrb w6, [x1, #:lo12:.LANCHOR31] tst x0, 50331648 sub w5, w5, w6 lsl w3, w4, w5 sub w3, w3, #1 lsl w4, w4, w6 sub w4, w4, #1 asr w5, w0, w5 and w4, w4, w5 and w1, w3, w0 and w4, w4, 255 bne .L241 adrp x0, .LANCHOR0 adrp x5, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L242 ldrb w0, [x5, #:lo12:.LANCHOR1] cbz w0, .L241 .L242: adrp x0, .LANCHOR2 ldrh w3, [x0, #:lo12:.LANCHOR2] udiv w0, w1, w3 mul w0, w0, w3 sub w3, w1, w0 ldrb w1, [x5, #:lo12:.LANCHOR1] cbz w1, .L243 add w1, w0, w3, lsl 1 .L241: mov w0, w4 b flash_wait_device_ready_raw .L243: adrp x5, .LANCHOR3 add x5, x5, :lo12:.LANCHOR3 ldrh w3, [x5, w3, uxtw 1] add w1, w3, w0 b .L241 .size flash_wait_device_ready, .-flash_wait_device_ready .section .text.nandc_de_cs,"ax",@progbits .align 2 .global nandc_de_cs .type nandc_de_cs, %function nandc_de_cs: adrp x0, .LANCHOR7 ldr x1, [x0, #:lo12:.LANCHOR7] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 str w0, [x1] ret .size nandc_de_cs, .-nandc_de_cs .section .text.nandc_wait_flash_ready_no_delay,"ax",@progbits .align 2 .global nandc_wait_flash_ready_no_delay .type nandc_wait_flash_ready_no_delay, %function nandc_wait_flash_ready_no_delay: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, 34464 movk w19, 0x1, lsl 16 adrp x20, .LANCHOR7 .L253: ldr x0, [x20, #:lo12:.LANCHOR7] ldr w0, [x0] str w0, [x29, 40] ldr w0, [x29, 40] tbnz x0, 9, .L254 mov x0, 1 bl udelay subs w19, w19, #1 bne .L253 mov w0, -1 .L251: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .L254: mov w0, 0 b .L251 .size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay .section .text.zftl_flash_enter_slc_mode,"ax",@progbits .align 2 .global zftl_flash_enter_slc_mode .type zftl_flash_enter_slc_mode, %function zftl_flash_enter_slc_mode: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] and x19, x0, 255 adrp x0, .LANCHOR0 stp x21, x22, [sp, 32] ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L257 adrp x1, .LANCHOR7 cmp w0, 1 ldr x20, [x1, #:lo12:.LANCHOR7] bne .L260 adrp x0, .LANCHOR32+29 ldrb w0, [x0, #:lo12:.LANCHOR32+29] cbz w0, .L257 .L276: add x19, x19, 8 add x19, x20, x19, lsl 8 str w0, [x19, 8] .L257: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L260: cmp w0, 2 bne .L262 adrp x0, .LANCHOR33 add x0, x0, :lo12:.LANCHOR33 ldrb w1, [x0, x19] cbz w1, .L257 adrp x21, .LANCHOR32 add x21, x21, :lo12:.LANCHOR32 strb wzr, [x0, x19] ldrb w0, [x21, 29] cbz w0, .L257 bl nandc_wait_flash_ready_no_delay ldrb w0, [x21, 29] b .L276 .L262: cmp w0, 3 bne .L257 adrp x21, .LANCHOR33 sxtw x22, w19 add x21, x21, :lo12:.LANCHOR33 ldrb w0, [x21, x22] cbz w0, .L257 ubfiz x19, x19, 8, 8 bl nandc_wait_flash_ready_no_delay add x19, x20, x19 mov w0, 239 strb wzr, [x21, x22] str w0, [x19, 2056] mov w0, 145 str w0, [x19, 2052] mov x0, 1 bl udelay str wzr, [x19, 2048] mov w0, 1 str w0, [x19, 2048] str wzr, [x19, 2048] mov x0, 1 str wzr, [x19, 2048] bl udelay bl nandc_wait_flash_ready_no_delay mov w0, 218 ldp x21, x22, [sp, 32] str w0, [x19, 2056] ldp x19, x20, [sp, 16] mov x0, 1 ldp x29, x30, [sp], 48 b udelay .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode .section .text.zftl_flash_exit_slc_mode,"ax",@progbits .align 2 .global zftl_flash_exit_slc_mode .type zftl_flash_exit_slc_mode, %function zftl_flash_exit_slc_mode: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] and x19, x0, 255 adrp x0, .LANCHOR0 stp x21, x22, [sp, 32] str x23, [sp, 48] ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L277 adrp x1, .LANCHOR7 cmp w0, 1 ldr x20, [x1, #:lo12:.LANCHOR7] bne .L280 adrp x0, .LANCHOR32+30 ldrb w0, [x0, #:lo12:.LANCHOR32+30] cbz w0, .L277 .L298: add x19, x19, 8 add x19, x20, x19, lsl 8 str w0, [x19, 8] .L277: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .L280: cmp w0, 2 bne .L282 adrp x0, .LANCHOR33 add x0, x0, :lo12:.LANCHOR33 ldrb w1, [x0, x19] cbnz w1, .L277 adrp x21, .LANCHOR32 add x21, x21, :lo12:.LANCHOR32 mov w2, 4 ldrb w1, [x21, 12] cmp w1, 2 csel w1, w1, w2, eq strb w1, [x0, x19] ldrb w0, [x21, 30] cbz w0, .L277 bl nandc_wait_flash_ready_no_delay ldrb w0, [x21, 30] b .L298 .L282: cmp w0, 3 bne .L277 adrp x21, .LANCHOR33 sxtw x23, w19 add x21, x21, :lo12:.LANCHOR33 ldrb w0, [x21, x23] cbnz w0, .L277 adrp x22, .LANCHOR32 add x22, x22, :lo12:.LANCHOR32 bl nandc_wait_flash_ready_no_delay ubfiz x19, x19, 8, 8 add x19, x20, x19 mov w1, 4 ldrb w0, [x22, 12] cmp w0, 2 csel w0, w0, w1, eq strb w0, [x21, x23] mov w0, 239 str w0, [x19, 2056] mov w0, 145 str w0, [x19, 2052] mov x0, 1 bl udelay ldrb w0, [x22, 7] cmp w0, 9 mov w0, 1 bne .L285 str w0, [x19, 2048] .L286: str w0, [x19, 2048] mov x0, 1 str wzr, [x19, 2048] str wzr, [x19, 2048] bl udelay bl nandc_wait_flash_ready_no_delay ldr x23, [sp, 48] ldp x21, x22, [sp, 32] mov w0, 223 str w0, [x19, 2056] mov x0, 1 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 64 b udelay .L285: ldrb w1, [x21, x23] str w1, [x19, 2048] b .L286 .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode .section .text.flash_start_page_read,"ax",@progbits .align 2 .global flash_start_page_read .type flash_start_page_read, %function flash_start_page_read: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR31 stp x19, x20, [sp, 16] str x23, [sp, 48] mov w19, 24 ldrb w0, [x0, #:lo12:.LANCHOR31] mov w20, 1 mov w22, w1 sub w23, w19, w0 lsl w20, w20, w0 sub w20, w20, #1 lsr w0, w1, w23 and w20, w20, w0 adrp x0, .LANCHOR23 and w20, w20, 255 mov x19, x0 ldrb w1, [x0, #:lo12:.LANCHOR23] cmp w1, w20 bhi .L300 adrp x1, .LANCHOR34 adrp x0, .LC0 mov w2, 1013 add x1, x1, :lo12:.LANCHOR34 add x0, x0, :lo12:.LC0 bl printf .L300: ldrb w0, [x19, #:lo12:.LANCHOR23] cmp w0, w20 bls .L299 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 mov w19, 1 ubfx x4, x22, 24, 2 lsl w19, w19, w23 sub w19, w19, #1 and w19, w19, w22 ldrb w22, [x0, w20, sxtw] adrp x0, .LANCHOR7 adrp x23, .LANCHOR21 ldr x20, [x0, #:lo12:.LANCHOR7] mov w0, w22 bl nandc_cs cbnz w4, .L302 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L303 mov w0, w22 bl zftl_flash_enter_slc_mode .L303: ldr x0, [x23, #:lo12:.LANCHOR21] ldrb w1, [x0, 7] cmp w1, 1 bne .L305 ldrb w0, [x0, 12] cmp w0, 2 bne .L305 sxtw x0, w22 mov w1, 38 add x0, x0, 8 add x0, x20, x0, lsl 8 str w1, [x0, 8] .L305: ubfiz x0, x22, 8, 8 and w1, w19, 255 add x0, x20, x0 str wzr, [x0, 2056] str wzr, [x0, 2052] str wzr, [x0, 2052] str w1, [x0, 2052] lsr w1, w19, 8 str w1, [x0, 2052] lsr w1, w19, 16 str w1, [x0, 2052] adrp x1, .LANCHOR30 ldrb w1, [x1, #:lo12:.LANCHOR30] cbz w1, .L306 lsr w19, w19, 24 str w19, [x0, 2052] .L306: str w21, [x0, 2056] .L299: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .L302: ldr x0, [x23, #:lo12:.LANCHOR21] ldrb w0, [x0, 12] cmp w0, 3 bne .L304 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L304 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L304 sxtw x0, w22 add x0, x0, 8 add x0, x20, x0, lsl 8 str w4, [x0, 8] b .L303 .L304: mov w0, w22 bl zftl_flash_exit_slc_mode b .L303 .size flash_start_page_read, .-flash_start_page_read .section .text.nandc_wait_flash_ready,"ax",@progbits .align 2 .global nandc_wait_flash_ready .type nandc_wait_flash_ready, %function nandc_wait_flash_ready: stp x29, x30, [sp, -48]! mov x0, 1 add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, 34464 movk w19, 0x1, lsl 16 adrp x20, .LANCHOR7 bl udelay .L316: ldr x0, [x20, #:lo12:.LANCHOR7] ldr w0, [x0] str w0, [x29, 40] ldr w0, [x29, 40] tbnz x0, 9, .L317 mov x0, 1 bl udelay subs w19, w19, #1 bne .L316 mov w0, -1 .L314: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .L317: mov w0, 0 b .L314 .size nandc_wait_flash_ready, .-nandc_wait_flash_ready .section .text.sandisk_set_rr_para,"ax",@progbits .align 2 .global sandisk_set_rr_para .type sandisk_set_rr_para, %function sandisk_set_rr_para: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x0 mov w0, 239 and w19, w1, 255 str w0, [x20, 8] mov w0, 17 str w0, [x20, 4] mov x0, 1 bl udelay adrp x0, .LANCHOR18 add w1, w19, 1 adrp x2, .LANCHOR14 add x2, x2, :lo12:.LANCHOR14 ldrb w3, [x0, #:lo12:.LANCHOR18] adrp x0, .LANCHOR16 ldrb w4, [x0, #:lo12:.LANCHOR16] mov w0, 5 umull x1, w1, w0 adrp x0, .LANCHOR15 add x0, x0, :lo12:.LANCHOR15 add x2, x2, x1 add x1, x0, x1 mov x0, 0 .L321: cmp w3, w0 bhi .L324 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 b nandc_wait_flash_ready .L324: cmp w4, 67 bne .L322 ldrsb w5, [x1, x0] .L326: add x0, x0, 1 str w5, [x20] b .L321 .L322: ldrsb w5, [x2, x0] b .L326 .size sandisk_set_rr_para, .-sandisk_set_rr_para .section .text.toshiba_3d_set_tlc_rr_para,"ax",@progbits .align 2 .global toshiba_3d_set_tlc_rr_para .type toshiba_3d_set_tlc_rr_para, %function toshiba_3d_set_tlc_rr_para: stp x29, x30, [sp, -48]! and x2, x1, 255 mov x1, 7 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 str x21, [sp, 32] mov w21, 213 madd x1, x2, x1, x1 mov w0, -119 str w21, [x19, 8] str wzr, [x19, 4] str w0, [x19, 4] adrp x0, .LANCHOR37 add x0, x0, :lo12:.LANCHOR37 add x20, x0, x1 ldrsb w0, [x0, x1] str w0, [x19] ldrsb w0, [x20, 1] str w0, [x19] ldrsb w0, [x20, 2] str w0, [x19] ldrsb w0, [x20, 3] str w0, [x19] bl nandc_wait_flash_ready str w21, [x19, 8] str wzr, [x19, 4] mov w0, -118 str w0, [x19, 4] ldrsb w0, [x20, 4] ldr x21, [sp, 32] str w0, [x19] ldrsb w0, [x20, 5] str w0, [x19] ldrsb w0, [x20, 6] str w0, [x19] str wzr, [x19] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b nandc_wait_flash_ready .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para .section .text.toshiba_3d_set_slc_rr_para,"ax",@progbits .align 2 .global toshiba_3d_set_slc_rr_para .type toshiba_3d_set_slc_rr_para, %function toshiba_3d_set_slc_rr_para: mov w2, 213 str w2, [x0, 8] str wzr, [x0, 4] mov w2, -117 str w2, [x0, 4] adrp x2, .LANCHOR38 add x2, x2, :lo12:.LANCHOR38 add x1, x2, x1, uxtb ldrsb w1, [x1, 1] str w1, [x0] str wzr, [x0] str wzr, [x0] str wzr, [x0] b nandc_wait_flash_ready .size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para .section .text.toshiba_tlc_set_rr_para,"ax",@progbits .align 2 .global toshiba_tlc_set_rr_para .type toshiba_tlc_set_rr_para, %function toshiba_tlc_set_rr_para: stp x29, x30, [sp, -48]! uxtw x1, w1 add x29, sp, 0 str x21, [sp, 32] mov w21, 239 stp x19, x20, [sp, 16] cbz w2, .L331 mov x19, x0 mov x2, 7 mov w0, 18 mul x1, x1, x2 str w21, [x19, 8] str w0, [x19, 4] adrp x0, .LANCHOR39 add x0, x0, :lo12:.LANCHOR39 add x20, x0, x1 ldrb w0, [x0, x1] str w0, [x19] ldrb w0, [x20, 1] str w0, [x19] ldrb w0, [x20, 2] str w0, [x19] ldrb w0, [x20, 3] str w0, [x19] bl nandc_wait_flash_ready str w21, [x19, 8] mov w0, 19 str w0, [x19, 4] ldrb w0, [x20, 4] str w0, [x19] ldrb w0, [x20, 5] str w0, [x19] ldrb w0, [x20, 6] str w0, [x19] str wzr, [x19] .L332: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 b nandc_wait_flash_ready .L331: str w21, [x0, 8] mov w2, 20 str w2, [x0, 4] adrp x2, .LANCHOR40 add x2, x2, :lo12:.LANCHOR40 ldrb w1, [x2, x1] str w1, [x0] str wzr, [x0] str wzr, [x0] str wzr, [x0] b .L332 .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para .section .text.ymtc_3d_set_tlc_rr_para,"ax",@progbits .align 2 .global ymtc_3d_set_tlc_rr_para .type ymtc_3d_set_tlc_rr_para, %function ymtc_3d_set_tlc_rr_para: stp x29, x30, [sp, -48]! and x1, x1, 255 mov x2, 7 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 str x21, [sp, 32] mul x1, x1, x2 mov w21, 239 mov w0, 160 str w21, [x19, 8] str w0, [x19, 4] adrp x0, .LANCHOR41 add x0, x0, :lo12:.LANCHOR41 add x20, x0, x1 ldrsb w0, [x0, x1] str w0, [x19] ldrsb w0, [x20, 4] str w0, [x19] str wzr, [x19] str wzr, [x19] bl nandc_wait_flash_ready str w21, [x19, 8] mov w0, 161 str w0, [x19, 4] ldrsb w0, [x20, 1] str w0, [x19] ldrsb w0, [x20, 3] str w0, [x19] ldrsb w0, [x20, 5] str w0, [x19] str wzr, [x19] bl nandc_wait_flash_ready str w21, [x19, 8] mov w0, 162 str w0, [x19, 4] ldrsb w0, [x20, 2] ldr x21, [sp, 32] str w0, [x19] ldrsb w0, [x20, 6] str w0, [x19] str wzr, [x19] str wzr, [x19] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b nandc_wait_flash_ready .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para .section .text.ymtc_3d_set_slc_rr_para,"ax",@progbits .align 2 .global ymtc_3d_set_slc_rr_para .type ymtc_3d_set_slc_rr_para, %function ymtc_3d_set_slc_rr_para: mov w2, 239 str w2, [x0, 8] mov w2, 163 and x1, x1, 255 str w2, [x0, 4] adrp x2, .LANCHOR42 add x2, x2, :lo12:.LANCHOR42 ldrsb w1, [x2, x1] str w1, [x0] str wzr, [x0] str wzr, [x0] str wzr, [x0] b nandc_wait_flash_ready .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para .section .text.flash_erase_duplane_block,"ax",@progbits .align 2 .global flash_erase_duplane_block .type flash_erase_duplane_block, %function flash_erase_duplane_block: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w0, 255 adrp x0, .LANCHOR23 stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] and w24, w1, 255 str x25, [sp, 64] mov w21, w2 ldrb w1, [x0, #:lo12:.LANCHOR23] mov w20, w3 mov x19, x0 cmp w1, w22 bhi .L338 adrp x1, .LANCHOR43 adrp x0, .LC0 mov w2, 695 add x1, x1, :lo12:.LANCHOR43 add x0, x0, :lo12:.LC0 bl printf .L338: ldrb w0, [x19, #:lo12:.LANCHOR23] cmp w0, w22 bls .L347 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w22, [x0, w22, sxtw] adrp x0, .LANCHOR7 ldr x25, [x0, #:lo12:.LANCHOR7] adrp x0, .LANCHOR19 and x19, x22, 255 ldr w0, [x0, #:lo12:.LANCHOR19] add x23, x19, 8 add x23, x25, x23, lsl 8 tbz x0, 4, .L340 adrp x0, .LC31 mov w3, w20 mov w2, w21 mov w1, w22 add x0, x0, :lo12:.LC31 bl printf .L340: bl nandc_wait_flash_ready mov w0, w22 bl nandc_cs mov w0, w22 cbnz w24, .L341 bl zftl_flash_enter_slc_mode .L342: add x19, x25, x19, lsl 8 mov w0, 96 str w0, [x19, 2056] and w0, w21, 255 str w0, [x19, 2052] lsr w0, w21, 8 str w0, [x19, 2052] lsr w0, w21, 16 str w0, [x19, 2052] adrp x0, .LANCHOR30 mov x24, x0 ldrb w1, [x0, #:lo12:.LANCHOR30] cbz w1, .L343 lsr w0, w21, 24 str w0, [x19, 2052] .L343: adrp x0, .LANCHOR44 ldrb w0, [x0, #:lo12:.LANCHOR44] cbnz w0, .L348 mov w0, 208 str w0, [x19, 2056] mov w22, 5 bl nandc_wait_flash_ready mov x0, x23 bl flash_read_status and w22, w0, w22 .L344: mov w0, 96 str w0, [x19, 2056] and w0, w20, 255 str w0, [x19, 2052] lsr w0, w20, 8 str w0, [x19, 2052] lsr w0, w20, 16 str w0, [x19, 2052] ldrb w0, [x24, #:lo12:.LANCHOR30] cbz w0, .L345 lsr w20, w20, 24 str w20, [x19, 2052] .L345: mov w0, 208 str w0, [x19, 2056] mov w19, 5 bl nandc_wait_flash_ready mov x0, x23 bl flash_read_status mov w2, w0 bl nandc_de_cs.constprop.32 and w19, w2, w19 orr w19, w19, w22 cbz w19, .L346 adrp x0, .LC32 mov w1, w21 add x0, x0, :lo12:.LC32 bl printf .L346: mov w0, w19 .L337: 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 .L341: bl zftl_flash_exit_slc_mode b .L342 .L348: mov w22, 0 b .L344 .L347: mov w0, -1 b .L337 .size flash_erase_duplane_block, .-flash_erase_duplane_block .section .text.flash_erase_block_en,"ax",@progbits .align 2 .global flash_erase_block_en .type flash_erase_block_en, %function flash_erase_block_en: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w0, 255 adrp x0, .LANCHOR31 stp x19, x20, [sp, 16] mov w19, 24 stp x23, x24, [sp, 48] ldrb w0, [x0, #:lo12:.LANCHOR31] and w24, w1, 255 stp x25, x26, [sp, 64] mov w23, w2 sub w0, w19, w0 mov w19, 1 lsl w19, w19, w0 adrp x0, .LANCHOR23 sub w19, w19, #1 mov x20, x0 ldrb w1, [x0, #:lo12:.LANCHOR23] and w19, w19, w2 cmp w1, w22 bhi .L363 adrp x1, .LANCHOR45 adrp x0, .LC0 mov w2, 757 add x1, x1, :lo12:.LANCHOR45 add x0, x0, :lo12:.LC0 bl printf .L363: ldrb w0, [x20, #:lo12:.LANCHOR23] cmp w0, w22 bls .L370 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w21, [x0, w22, sxtw] adrp x0, .LANCHOR7 ldr x26, [x0, #:lo12:.LANCHOR7] adrp x0, .LANCHOR19 and x20, x21, 255 ldr w0, [x0, #:lo12:.LANCHOR19] add x25, x20, 8 add x25, x26, x25, lsl 8 tbz x0, 4, .L365 adrp x0, .LC33 mov w3, w24 mov w2, w23 mov w1, w21 add x0, x0, :lo12:.LC33 bl printf .L365: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 cbnz w24, .L366 bl zftl_flash_enter_slc_mode .L367: add x0, x26, x20, lsl 8 mov w1, 96 str w1, [x0, 2056] and w1, w19, 255 str w1, [x0, 2052] lsr w1, w19, 8 str w1, [x0, 2052] lsr w1, w19, 16 str w1, [x0, 2052] adrp x1, .LANCHOR30 ldrb w1, [x1, #:lo12:.LANCHOR30] cbz w1, .L368 lsr w19, w19, 24 str w19, [x0, 2052] .L368: mov w1, 208 str w1, [x0, 2056] bl nandc_wait_flash_ready mov x0, x25 bl flash_read_status mov w3, w0 bl nandc_de_cs.constprop.32 mov w0, 5 ands w3, w3, w0 beq .L369 adrp x0, .LANCHOR2 mov w1, w22 ldrh w2, [x0, #:lo12:.LANCHOR2] adrp x0, .LC34 add x0, x0, :lo12:.LC34 udiv w2, w23, w2 bl printf mov w3, -1 .L369: mov w0, w3 .L362: 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 .L366: bl zftl_flash_exit_slc_mode b .L367 .L370: mov w0, -1 b .L362 .size flash_erase_block_en, .-flash_erase_block_en .section .text.flash_erase_block,"ax",@progbits .align 2 .global flash_erase_block .type flash_erase_block, %function flash_erase_block: mov w2, w1 mov w1, 0 b flash_erase_block_en .size flash_erase_block, .-flash_erase_block .section .text.flash_erase_all,"ax",@progbits .align 2 .global flash_erase_all .type flash_erase_all, %function flash_erase_all: stp x29, x30, [sp, -80]! adrp x0, .LANCHOR32 add x0, x0, :lo12:.LANCHOR32 add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, 0 stp x23, x24, [sp, 48] adrp x23, .LANCHOR2 stp x21, x22, [sp, 32] add x23, x23, :lo12:.LANCHOR2 ldrh w20, [x0, 14] adrp x22, .LANCHOR23 str x25, [sp, 64] add x22, x22, :lo12:.LANCHOR23 adrp x24, .LANCHOR29 ldrb w1, [x0, 13] mul w20, w20, w1 and w20, w20, 65535 .L383: ldrb w0, [x22] cmp w0, w19 bhi .L386 ldp x19, x20, [sp, 16] mov w1, 0 ldp x21, x22, [sp, 32] adrp x0, .LC35 ldp x23, x24, [sp, 48] add x0, x0, :lo12:.LC35 ldr x25, [sp, 64] ldp x29, x30, [sp], 80 b printf .L386: add x0, x24, :lo12:.LANCHOR29 mov w21, 0 ldrb w25, [x0, w19, sxtw] .L384: cmp w20, w21, uxth bhi .L385 add w19, w19, 1 and w19, w19, 65535 b .L383 .L385: ldrh w1, [x23] mov w0, w25 mul w1, w1, w21 add w21, w21, 1 bl flash_erase_block b .L384 .size flash_erase_all, .-flash_erase_all .section .text.flash_start_plane_read,"ax",@progbits .align 2 .global flash_start_plane_read .type flash_start_plane_read, %function flash_start_plane_read: stp x29, x30, [sp, -96]! adrp x2, .LANCHOR31 mov w3, 24 add x29, sp, 0 stp x19, x20, [sp, 16] ldrb w19, [x2, #:lo12:.LANCHOR31] mov w2, 1 stp x21, x22, [sp, 32] ubfx x22, x0, 24, 2 sub w3, w3, w19 stp x23, x24, [sp, 48] lsl w19, w2, w19 sub w19, w19, #1 lsl w20, w2, w3 sub w20, w20, #1 and w23, w20, w0 lsr w3, w0, w3 adrp x0, .LANCHOR23 and w19, w19, w3 stp x25, x26, [sp, 64] and w19, w19, 255 ldrb w0, [x0, #:lo12:.LANCHOR23] and w20, w20, w1 stp x27, x28, [sp, 80] cmp w0, w19 bhi .L389 adrp x1, .LANCHOR46 adrp x0, .LC0 mov w2, 1148 add x1, x1, :lo12:.LANCHOR46 add x0, x0, :lo12:.LC0 bl printf .L389: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 adrp x25, .LANCHOR21 ldrb w21, [x0, w19, sxtw] adrp x0, .LANCHOR7 ldr x24, [x0, #:lo12:.LANCHOR7] mov w0, w21 bl nandc_cs cbnz w22, .L390 mov w0, w23 bl slc_phy_page_address_calc mov w23, w0 mov w0, w20 bl slc_phy_page_address_calc mov w20, w0 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L391 mov w0, w21 bl zftl_flash_enter_slc_mode .L391: adrp x0, .LANCHOR25 add x1, x0, :lo12:.LANCHOR25 and x19, x21, 255 and w4, w23, 255 lsr w3, w23, 8 and w28, w20, 255 ldrb w2, [x1, 16] lsr w27, w20, 8 lsr w26, w20, 16 cmp w2, 1 lsr w2, w23, 16 bne .L393 add x19, x24, x19, lsl 8 ldrb w1, [x1, 8] str w1, [x19, 2056] adrp x1, .LANCHOR30 str wzr, [x19, 2052] mov x21, x1 str wzr, [x19, 2052] str w4, [x19, 2052] str w3, [x19, 2052] str w2, [x19, 2052] ldrb w2, [x1, #:lo12:.LANCHOR30] cbz w2, .L394 lsr w23, w23, 24 str w23, [x19, 2052] .L394: add x0, x0, :lo12:.LANCHOR25 ldrb w0, [x0, 9] str w0, [x19, 2056] bl nandc_wait_flash_ready ldr x0, [x25, #:lo12:.LANCHOR21] ldrb w0, [x0, 12] cmp w0, 3 bne .L395 cbz w22, .L395 str w22, [x19, 2056] .L395: str wzr, [x19, 2056] str wzr, [x19, 2052] str wzr, [x19, 2052] str w28, [x19, 2052] ldrb w0, [x21, #:lo12:.LANCHOR30] str w27, [x19, 2052] str w26, [x19, 2052] cbz w0, .L416 lsr w20, w20, 24 str w20, [x19, 2052] .L416: ldp x21, x22, [sp, 32] mov w0, 48 ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] str w0, [x19, 2056] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 96 ret .L390: ldr x0, [x25, #:lo12:.LANCHOR21] ldrb w0, [x0, 12] cmp w0, 3 bne .L392 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L392 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L392 sxtw x0, w21 add x0, x0, 8 add x0, x24, x0, lsl 8 str w22, [x0, 8] b .L391 .L392: mov w0, w21 bl zftl_flash_exit_slc_mode b .L391 .L393: ldr x1, [x25, #:lo12:.LANCHOR21] ldrb w5, [x1, 7] cmp w5, 1 bne .L398 ldrb w5, [x1, 12] cmp w5, 2 bne .L398 add x21, x21, 8 mov w5, 38 add x21, x24, x21, lsl 8 str w5, [x21, 8] .L398: add x5, x0, :lo12:.LANCHOR25 add x19, x24, x19, lsl 8 ldrb w5, [x5, 8] str w5, [x19, 2056] str w4, [x19, 2052] str w3, [x19, 2052] str w2, [x19, 2052] ldrb w1, [x1, 12] cmp w1, 3 bne .L399 cbz w22, .L399 str w22, [x19, 2056] .L399: add x0, x0, :lo12:.LANCHOR25 ldrb w0, [x0, 9] str w0, [x19, 2056] str w28, [x19, 2052] str w27, [x19, 2052] str w26, [x19, 2052] b .L416 .size flash_start_plane_read, .-flash_start_plane_read .section .text.flash_set_interface_mode,"ax",@progbits .align 2 .global flash_set_interface_mode .type flash_set_interface_mode, %function flash_set_interface_mode: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR47 stp x19, x20, [sp, 16] adrp x21, .LANCHOR19 stp x23, x24, [sp, 48] adrp x20, .LANCHOR48 mov w23, w0 add x22, x22, :lo12:.LANCHOR47 add x20, x20, :lo12:.LANCHOR48 add x21, x21, :lo12:.LANCHOR19 str x25, [sp, 64] mov x25, 0 .L430: adrp x0, .LANCHOR7 ldr x19, [x0, #:lo12:.LANCHOR7] lsl x0, x25, 3 ldrb w24, [x0, x22] cmp w24, 69 beq .L418 add w0, w24, 119 cmp w24, 44 and w1, w0, 255 cset w2, eq cmp w1, 18 bhi .L431 mov x0, 32769 movk x0, 0x4, lsl 16 lsr x0, x0, x1 mvn x0, x0 .L419: and w0, w0, 1 eor w0, w0, 1 orr w0, w2, w0 cbz w0, .L420 .L418: ldrb w1, [x20] cmp w23, 1 bne .L421 tbz x1, 0, .L420 ldr w0, [x21] tbz x0, 12, .L422 adrp x0, .LC36 add x0, x0, :lo12:.LC36 bl printf .L422: add x0, x19, x25, lsl 8 mov w1, 239 cmp w24, 44 str w1, [x0, 2056] mov w1, 137 ccmp w24, w1, 4, ne mov w1, 1 bne .L423 .L454: str w1, [x0, 2052] mov w1, 5 .L453: str w1, [x0, 2048] .L428: str wzr, [x0, 2048] str wzr, [x0, 2048] str wzr, [x0, 2048] .L420: add x25, x25, 1 cmp x25, 4 bne .L430 bl nandc_wait_flash_ready ldr x25, [sp, 64] mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .L431: mov x0, 1 b .L419 .L423: cmp w24, 155 beq .L454 mov w2, 128 str w2, [x0, 2052] b .L453 .L421: tbz x1, 2, .L420 ldr w0, [x21] tbz x0, 12, .L426 adrp x0, .LC37 add x0, x0, :lo12:.LC37 bl printf .L426: add x0, x19, x25, lsl 8 mov w1, 239 cmp w24, 44 str w1, [x0, 2056] mov w1, 137 ccmp w24, w1, 4, ne bne .L427 mov w1, 1 str w1, [x0, 2052] mov w1, 35 b .L453 .L427: cmp w24, 155 bne .L429 mov w1, 1 str w1, [x0, 2052] mov w1, 37 b .L453 .L429: mov w1, 128 str w1, [x0, 2052] str wzr, [x0, 2048] b .L428 .size flash_set_interface_mode, .-flash_set_interface_mode .section .text.mt_auto_read_calibration_config,"ax",@progbits .align 2 .type mt_auto_read_calibration_config, %function mt_auto_read_calibration_config: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w20, w1 and w19, w0, 255 bl nandc_wait_flash_ready adrp x1, .LANCHOR7 ubfiz x0, x19, 8, 8 ldr x19, [x1, #:lo12:.LANCHOR7] add x19, x19, x0 mov w0, 239 str w0, [x19, 2056] mov w0, 150 str w0, [x19, 2052] mov x0, 1 bl udelay str w20, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config .section .text.flash_reset,"ax",@progbits .align 2 .global flash_reset .type flash_reset, %function flash_reset: adrp x1, .LANCHOR7 ubfiz x0, x0, 8, 8 add x0, x0, 2048 ldr x1, [x1, #:lo12:.LANCHOR7] add x1, x1, x0 mov w0, 255 str w0, [x1, 8] b nandc_wait_flash_ready .size flash_reset, .-flash_reset .section .text.flash_read_id,"ax",@progbits .align 2 .global flash_read_id .type flash_read_id, %function flash_read_id: stp x29, x30, [sp, -48]! add x29, sp, 0 str x21, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR7 stp x19, x20, [sp, 16] mov x19, x1 ldr x20, [x0, #:lo12:.LANCHOR7] mov w0, w21 bl flash_reset mov w0, w21 bl nandc_cs ubfiz x0, x21, 8, 8 add x20, x20, x0 mov w0, 144 str w0, [x20, 2056] mov x0, 1 str wzr, [x20, 2052] bl udelay ldr w0, [x20, 2048] strb w0, [x19] ldr w0, [x20, 2048] strb w0, [x19, 1] ldr w0, [x20, 2048] strb w0, [x19, 2] ldr w0, [x20, 2048] strb w0, [x19, 3] ldr w0, [x20, 2048] strb w0, [x19, 4] ldr w0, [x20, 2048] strb w0, [x19, 5] ldr w0, [x20, 2048] strb w0, [x19, 6] ldr w0, [x20, 2048] strb w0, [x19, 7] bl nandc_de_cs.constprop.32 ldrb w2, [x19] sub w0, w2, #1 and w0, w0, 255 cmp w0, 253 bhi .L458 ldrb w7, [x19, 5] add w1, w21, 1 ldrb w6, [x19, 4] adrp x0, .LC38 ldrb w5, [x19, 3] add x0, x0, :lo12:.LC38 ldrb w4, [x19, 2] ldrb w3, [x19, 1] ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b printf .L458: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size flash_read_id, .-flash_read_id .section .text.flash_read_spare,"ax",@progbits .align 2 .global flash_read_spare .type flash_read_spare, %function flash_read_spare: stp x29, x30, [sp, -32]! ubfiz x0, x0, 8, 8 add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x2 adrp x2, .LANCHOR32+9 ldrb w3, [x2, #:lo12:.LANCHOR32+9] adrp x2, .LANCHOR7 ldr x19, [x2, #:lo12:.LANCHOR7] lsl w3, w3, 9 add x19, x19, x0 and w0, w1, 255 str wzr, [x19, 2056] str w3, [x19, 2052] lsr w3, w3, 8 str w3, [x19, 2052] str w0, [x19, 2052] lsr w0, w1, 8 str w0, [x19, 2052] lsr w1, w1, 16 str w1, [x19, 2052] mov w0, 48 str w0, [x19, 2056] bl nandc_wait_flash_ready ldr w0, [x19, 2048] strb w0, [x20] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size flash_read_spare, .-flash_read_spare .section .text.flash_read_otp_data,"ax",@progbits .align 2 .global flash_read_otp_data .type flash_read_otp_data, %function flash_read_otp_data: stp x29, x30, [sp, -48]! and w4, w0, 255 adrp x0, .LANCHOR7 add x29, sp, 0 stp x19, x20, [sp, 16] mov w20, w1 ldr x19, [x0, #:lo12:.LANCHOR7] mov w0, w4 stp x21, x22, [sp, 32] mov x22, x2 bl nandc_cs ubfiz x4, x4, 8, 8 add x19, x19, x4 mov w0, 239 mov w21, 144 str w0, [x19, 2056] mov x0, 1 str w21, [x19, 2052] bl udelay mov w0, 1 str w0, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] bl nandc_wait_flash_ready mov w0, 238 str w0, [x19, 2056] str w21, [x19, 2052] mov w1, w20 adrp x0, .LC39 add x0, x0, :lo12:.LC39 ldr w2, [x19, 2048] ldr w3, [x19, 2048] ldr w4, [x19, 2048] bl printf bl nandc_wait_flash_ready str wzr, [x19, 2056] str wzr, [x19, 2052] and w0, w20, 255 str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w20, 8 str w0, [x19, 2052] lsr w20, w20, 16 str w20, [x19, 2052] mov w0, 48 str w0, [x19, 2056] bl nandc_wait_flash_ready mov x0, 0 .L464: ldr w1, [x19, 2048] strb w1, [x22, x0] add x0, x0, 1 cmp x0, 16384 bne .L464 mov w0, 239 str w0, [x19, 2056] mov w0, 144 str w0, [x19, 2052] mov x0, 1 bl udelay ldp x21, x22, [sp, 32] str wzr, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] str wzr, [x19, 2048] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b nandc_de_cs.constprop.32 .size flash_read_otp_data, .-flash_read_otp_data .section .text.sandisk_prog_test_bad_block,"ax",@progbits .align 2 .global sandisk_prog_test_bad_block .type sandisk_prog_test_bad_block, %function sandisk_prog_test_bad_block: stp x29, x30, [sp, -48]! and x2, x0, 255 mov x0, x2 add x2, x2, 8 add x29, sp, 0 stp x21, x22, [sp, 32] mov w22, w1 adrp x1, .LANCHOR7 stp x19, x20, [sp, 16] adrp x20, .LANCHOR32 ldr x19, [x1, #:lo12:.LANCHOR7] add x1, x20, :lo12:.LANCHOR32 ldrb w1, [x1, 29] add x2, x19, x2, lsl 8 cbz w1, .L468 .L483: ubfiz x0, x0, 8, 8 str w1, [x2, 8] add x19, x19, x0 mov w0, 128 str w0, [x19, 2056] and w0, w22, 255 str wzr, [x19, 2052] str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w22, 8 str w0, [x19, 2052] lsr w0, w22, 16 str w0, [x19, 2052] mov w0, 16 str w0, [x19, 2056] bl nandc_wait_flash_ready mov w0, 112 str w0, [x19, 2056] mov x0, 1 bl udelay ldr w2, [x19, 2048] cmp w2, 255 bne .L470 ldr w2, [x19, 2048] .L470: mov w0, 5 ands w21, w2, w0 beq .L471 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L471 adrp x0, .LC40 mov w1, w22 add x0, x0, :lo12:.LC40 bl printf .L471: add x20, x20, :lo12:.LANCHOR32 ldrb w0, [x20, 30] cbz w0, .L467 str w0, [x19, 2056] .L467: mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L468: mov w1, 162 b .L483 .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .section .text.nandc_rdy_status,"ax",@progbits .align 2 .global nandc_rdy_status .type nandc_rdy_status, %function nandc_rdy_status: adrp x0, .LANCHOR7 sub sp, sp, #16 ldr x0, [x0, #:lo12:.LANCHOR7] ldr w0, [x0] str w0, [sp, 8] ldr w0, [sp, 8] add sp, sp, 16 ubfx x0, x0, 9, 1 ret .size nandc_rdy_status, .-nandc_rdy_status .section .text.nandc_bch_sel,"ax",@progbits .align 2 .global nandc_bch_sel .type nandc_bch_sel, %function nandc_bch_sel: sub sp, sp, #16 str wzr, [sp, 8] ldr w1, [sp, 8] orr w1, w1, 1 str w1, [sp, 8] adrp x1, .LANCHOR49 strb w0, [x1, #:lo12:.LANCHOR49] adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 adrp x1, .LANCHOR7 bne .L487 ldr x1, [x1, #:lo12:.LANCHOR7] cmp w0, 70 ldr w2, [sp, 8] str w2, [x1, 16] beq .L493 cmp w0, 60 beq .L494 cmp w0, 40 cset w0, eq add w0, w0, 1 .L488: str wzr, [sp] ldr w2, [sp] bfi w2, w0, 25, 3 str w2, [sp] ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] str w0, [x1, 32] .L486: add sp, sp, 16 ret .L493: mov w0, 0 b .L488 .L494: mov w0, 3 b .L488 .L487: ldr x2, [x1, #:lo12:.LANCHOR7] mov w3, 16 ldr w1, [sp, 8] cmp w0, w3 str w1, [x2, 8] str wzr, [sp] ldr w1, [sp] bfi w1, w3, 8, 8 str w1, [sp] ldr w1, [sp] and w1, w1, -262145 str w1, [sp] bne .L490 .L497: ldr w0, [sp] and w0, w0, -17 b .L498 .L490: cmp w0, 24 bne .L492 ldr w0, [sp] orr w0, w0, 16 .L498: str w0, [sp] b .L491 .L492: ldr w1, [sp] cmp w0, 40 orr w1, w1, 262144 str w1, [sp] ldr w1, [sp] orr w1, w1, 16 str w1, [sp] beq .L497 .L491: ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] str w0, [x2, 12] b .L486 .size nandc_bch_sel, .-nandc_bch_sel .section .text.zftl_nandc_get_irq_status,"ax",@progbits .align 2 .global zftl_nandc_get_irq_status .type zftl_nandc_get_irq_status, %function zftl_nandc_get_irq_status: adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 bne .L500 ldr w0, [x0, 296] ret .L500: ldr w0, [x0, 372] ret .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status .section .text.rk_nandc_flash_ready,"ax",@progbits .align 2 .global rk_nandc_flash_ready .type rk_nandc_flash_ready, %function rk_nandc_flash_ready: ret .size rk_nandc_flash_ready, .-rk_nandc_flash_ready .section .text.nandc_iqr_wait_flash_ready,"ax",@progbits .align 2 .global nandc_iqr_wait_flash_ready .type nandc_iqr_wait_flash_ready, %function nandc_iqr_wait_flash_ready: ret .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready .section .text.rk_nandc_flash_xfer_completed,"ax",@progbits .align 2 .global rk_nandc_flash_xfer_completed .type rk_nandc_flash_xfer_completed, %function rk_nandc_flash_xfer_completed: ret .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed .section .text.nandc_xfer_start,"ax",@progbits .align 2 .global nandc_xfer_start .type nandc_xfer_start, %function nandc_xfer_start: stp x29, x30, [sp, -80]! and w1, w1, 255 adrp x4, .LANCHOR52 add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 adrp x0, .LANCHOR27 str x21, [sp, 32] and w6, w20, 1 adrp x21, .LANCHOR7 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 add w0, w1, 1 bne .L506 str wzr, [x29, 56] mov w5, 1 ubfx x0, x0, 1, 6 ldr w1, [x29, 56] bfi w1, w6, 1, 1 str w1, [x29, 56] ldr w1, [x29, 56] orr w1, w1, 8 str w1, [x29, 56] ldr w1, [x29, 56] bfi w1, w5, 5, 2 str w1, [x29, 56] ldr w1, [x29, 56] orr w1, w1, 536870912 str w1, [x29, 56] ldr w1, [x29, 56] orr w1, w1, 1024 str w1, [x29, 56] ldr w1, [x29, 56] and w1, w1, -17 str w1, [x29, 56] ldr w1, [x29, 56] bfi w1, w0, 22, 6 str w1, [x29, 56] ldr w0, [x29, 56] orr w0, w0, 128 str w0, [x29, 56] adrp x0, .LANCHOR50 ldrb w0, [x0, #:lo12:.LANCHOR50] cbz w0, .L507 adrp x0, .LANCHOR51 ldrb w0, [x0, #:lo12:.LANCHOR51] cbz w0, .L507 ldr w0, [x29, 56] orr w0, w0, 512 str w0, [x29, 56] .L507: ldr w0, [x29, 56] add x19, x4, :lo12:.LANCHOR52 add x1, x2, 63 and x1, x1, -64 ubfx x0, x0, 22, 6 stp x2, x3, [x19, 8] ubfiz x0, x0, 10, 6 stp w2, w3, [x19, 24] add x1, x1, x0 and x0, x2, -64 bl flush_dcache_range ldr x0, [x19, 16] add x1, x0, 63 and x0, x0, -64 and x1, x1, -64 add x1, x1, 64 bl flush_dcache_range mov w0, 1 str w0, [x19, 32] ldr x0, [x21, #:lo12:.LANCHOR7] mov w2, 16 ldr w1, [x19, 24] cmp w20, 0 str w1, [x0, 52] ldr w1, [x19, 28] str w1, [x0, 56] ldr w1, [x0, 48] str w1, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 9, 5 str w1, [x29, 64] mov w2, 2 ldr w1, [x29, 64] orr w1, w1, 448 str w1, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 3, 3 str w1, [x29, 64] cset w2, eq ldr w1, [x29, 64] orr w1, w1, 4 str w1, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 1, 1 str w1, [x29, 64] ldr w1, [x29, 64] orr w1, w1, 1 str w1, [x29, 64] adrp x1, .LANCHOR53 ldrh w2, [x1, #:lo12:.LANCHOR53] ldr w1, [x29, 64] bfi w1, w2, 16, 11 str w1, [x29, 64] ldr w1, [x29, 64] str w1, [x0, 48] ldr w1, [x29, 56] str w1, [x0, 16] ldr w1, [x29, 56] orr w1, w1, 4 str w1, [x29, 56] ldr w1, [x29, 56] str w1, [x0, 16] .L505: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 80 ret .L506: ldr x5, [x21, #:lo12:.LANCHOR7] mov w7, 16 ubfx x0, x0, 1, 6 ldr w5, [x5, 12] str w5, [x29, 72] ldr w5, [x29, 72] bfi w5, w7, 8, 8 str w5, [x29, 72] ldr w5, [x29, 72] and w5, w5, -9 str w5, [x29, 72] ldr w5, [x29, 72] and w5, w5, -225 str w5, [x29, 72] str wzr, [x29, 56] ldr w5, [x29, 56] bfi w5, w6, 1, 1 str w5, [x29, 56] mov w6, 1 ldr w5, [x29, 56] orr w5, w5, 8 str w5, [x29, 56] ldr w5, [x29, 56] bfi w5, w6, 5, 2 str w5, [x29, 56] ldr w5, [x29, 56] orr w5, w5, 536870912 str w5, [x29, 56] ldr w5, [x29, 56] orr w5, w5, 1024 str w5, [x29, 56] ldr w5, [x29, 56] and w5, w5, -17 str w5, [x29, 56] ldr w5, [x29, 56] bfi w5, w0, 22, 6 str w5, [x29, 56] cbz w20, .L509 adrp x0, .LANCHOR49 ubfx x1, x1, 1, 7 ldr x8, [x4, #:lo12:.LANCHOR52] add x1, x3, x1, lsl 2 ldrb w0, [x0, #:lo12:.LANCHOR49] mov w5, 64 cmp w0, 25 mov w0, 128 csel w5, w5, w0, cc mov w0, 0 .L511: add w7, w5, w0 cmp x3, x1 bne .L512 .L513: add x19, x4, :lo12:.LANCHOR52 ldr x0, [x4, #:lo12:.LANCHOR52] add x1, x2, 63 and x1, x1, -64 stp x2, x0, [x19, 8] stp w2, w0, [x19, 24] ldr w0, [x29, 56] ubfx x0, x0, 22, 6 ubfiz x0, x0, 10, 6 add x1, x1, x0 and x0, x2, -64 bl flush_dcache_range ldr x0, [x19, 16] ldr w1, [x29, 56] add x2, x0, 63 and x0, x0, -64 and x2, x2, -64 ubfx x1, x1, 22, 6 ubfiz x1, x1, 7, 6 add x1, x2, x1 bl flush_dcache_range mov w0, 1 str w0, [x19, 32] ldr x0, [x21, #:lo12:.LANCHOR7] mov w2, 16 ldr w1, [x19, 24] cmp w20, 0 str w1, [x0, 20] ldr w1, [x19, 28] str w1, [x0, 24] str wzr, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 9, 5 str w1, [x29, 64] mov w2, 2 ldr w1, [x29, 64] orr w1, w1, 448 str w1, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 3, 3 str w1, [x29, 64] cset w2, eq ldr w1, [x29, 64] orr w1, w1, 4 str w1, [x29, 64] ldr w1, [x29, 64] bfi w1, w2, 1, 1 str w1, [x29, 64] ldr w1, [x29, 64] orr w1, w1, 1 str w1, [x29, 64] ldr w1, [x29, 64] str w1, [x0, 16] ldr w1, [x29, 72] str w1, [x0, 12] ldr w1, [x29, 56] str w1, [x0, 8] ldr w1, [x29, 56] orr w1, w1, 4 str w1, [x29, 56] ldr w1, [x29, 56] str w1, [x0, 8] b .L505 .L512: ldrh w10, [x3] and x0, x0, 4294967292 ldrh w6, [x3, 2] add x3, x3, 4 orr x6, x10, x6, lsl 16 str w6, [x8, x0] mov w0, w7 b .L511 .L509: ldr x0, [x4, #:lo12:.LANCHOR52] str w6, [x0] b .L513 .size nandc_xfer_start, .-nandc_xfer_start .section .text.nandc_set_seed,"ax",@progbits .align 2 .global nandc_set_seed .type nandc_set_seed, %function nandc_set_seed: and x0, x0, 127 adrp x1, .LANCHOR54 add x1, x1, :lo12:.LANCHOR54 ldrh w0, [x1, x0, lsl 1] adrp x1, .LANCHOR51 ldrb w2, [x1, #:lo12:.LANCHOR51] orr w1, w0, -1073741824 cmp w2, 0 csel w0, w1, w0, ne adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 adrp x1, .LANCHOR7 ldr x1, [x1, #:lo12:.LANCHOR7] bne .L524 str w0, [x1, 520] ret .L524: str w0, [x1, 336] ret .size nandc_set_seed, .-nandc_set_seed .section .text.zftl_flash_de_init,"ax",@progbits .align 2 .global zftl_flash_de_init .type zftl_flash_de_init, %function zftl_flash_de_init: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] bl nandc_wait_flash_ready adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L529 adrp x0, .LANCHOR24 ldrb w0, [x0, #:lo12:.LANCHOR24] cbnz w0, .L529 adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 beq .L529 mov w0, 0 bl zftl_flash_exit_slc_mode .L529: adrp x19, .LANCHOR26 mov w0, 0 bl hynix_reconfig_rr_para ldrb w0, [x19, #:lo12:.LANCHOR26] cbz w0, .L530 adrp x0, .LANCHOR48 ldrb w0, [x0, #:lo12:.LANCHOR48] tbz x0, 0, .L530 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode strb wzr, [x19, #:lo12:.LANCHOR26] .L530: adrp x3, .LANCHOR51 ldrb w0, [x3, #:lo12:.LANCHOR51] cbz w0, .L531 mov w0, 0 strb wzr, [x3, #:lo12:.LANCHOR51] bl nandc_set_seed mov w0, 1 strb w0, [x3, #:lo12:.LANCHOR51] .L531: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size zftl_flash_de_init, .-zftl_flash_de_init .section .text.nandc_randomizer_enable,"ax",@progbits .align 2 .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: adrp x1, .LANCHOR51 strb w0, [x1, #:lo12:.LANCHOR51] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .section .text.nandc_get_chip_if,"ax",@progbits .align 2 .global nandc_get_chip_if .type nandc_get_chip_if, %function nandc_get_chip_if: adrp x1, .LANCHOR7 ubfiz x0, x0, 8, 8 add x0, x0, 2048 ldr x1, [x1, #:lo12:.LANCHOR7] add x0, x1, x0 ret .size nandc_get_chip_if, .-nandc_get_chip_if .section .text.buf_reinit,"ax",@progbits .align 2 .global buf_reinit .type buf_reinit, %function buf_reinit: adrp x0, .LANCHOR55 add x1, x0, :lo12:.LANCHOR55 mov w2, 0 .L551: and w3, w2, 255 strb wzr, [x1, 2] add w4, w3, 1 strb w3, [x1, 1] strb w4, [x1] add w2, w2, 1 str xzr, [x1, 16] cmp w2, 32 add x1, x1, 64 bne .L551 add x0, x0, :lo12:.LANCHOR55 mov w1, -1 strb w1, [x0, 1984] adrp x0, .LANCHOR56 strb wzr, [x0, #:lo12:.LANCHOR56] adrp x0, .LANCHOR57 strb w2, [x0, #:lo12:.LANCHOR57] ret .size buf_reinit, .-buf_reinit .section .text.buf_add_tail,"ax",@progbits .align 2 .global buf_add_tail .type buf_add_tail, %function buf_add_tail: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 str x21, [sp, 32] mov w0, -1 strb w0, [x1] mov x20, x1 ldrb w1, [x19] cmp w1, 255 bne .L559 ldrb w0, [x20, 1] cmp w0, 255 bne .L555 adrp x1, .LANCHOR58 adrp x0, .LC0 mov w2, 74 add x1, x1, :lo12:.LANCHOR58 add x0, x0, :lo12:.LC0 bl printf .L555: ldrb w0, [x20, 1] strb w0, [x19] .L553: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .L559: adrp x0, .LANCHOR55 add x2, x0, :lo12:.LANCHOR55 mov x19, x0 .L560: sbfiz x0, x1, 6, 32 mov w21, w1 ldrb w1, [x2, x0] cmp w1, 255 bne .L560 ldrb w0, [x20, 1] cmp w0, 255 bne .L557 adrp x1, .LANCHOR58 adrp x0, .LC0 mov w2, 81 add x1, x1, :lo12:.LANCHOR58 add x0, x0, :lo12:.LC0 bl printf .L557: add x0, x19, :lo12:.LANCHOR55 sbfiz x21, x21, 6, 32 ldrb w1, [x20, 1] strb w1, [x0, x21] b .L553 .size buf_add_tail, .-buf_add_tail .section .text.queue_read_cmd,"ax",@progbits .align 2 .type queue_read_cmd, %function queue_read_cmd: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] mov x19, x0 mov w0, 48 ldr w1, [x19, 40] bl flash_start_page_read strb wzr, [x19, 59] mov w0, 1 strb w0, [x19, 58] mov w0, -1 strb w0, [x19] mov x1, x19 adrp x0, .LANCHOR59 ldr x19, [sp, 16] add x0, x0, :lo12:.LANCHOR59 ldp x29, x30, [sp], 32 b buf_add_tail .size queue_read_cmd, .-queue_read_cmd .section .text.zbuf_free,"ax",@progbits .align 2 .global zbuf_free .type zbuf_free, %function zbuf_free: ldrb w1, [x0, 2] adrp x2, .LANCHOR56 and w1, w1, 8 strb w1, [x0, 2] cbz w1, .L565 ldr w1, [x0, 36] cmn w1, #1 beq .L565 stp x29, x30, [sp, -16]! mov x1, x0 add x0, x2, :lo12:.LANCHOR56 add x29, sp, 0 bl buf_add_tail adrp x1, .LANCHOR57 ldp x29, x30, [sp], 16 ldrb w0, [x1, #:lo12:.LANCHOR57] add w0, w0, 1 strb w0, [x1, #:lo12:.LANCHOR57] ret .L565: ldrb w1, [x2, #:lo12:.LANCHOR56] strb w1, [x0] adrp x1, .LANCHOR57 ldrb w0, [x0, 1] strb w0, [x2, #:lo12:.LANCHOR56] ldrb w0, [x1, #:lo12:.LANCHOR57] add w0, w0, 1 strb w0, [x1, #:lo12:.LANCHOR57] ret .size zbuf_free, .-zbuf_free .section .text.buf_alloc,"ax",@progbits .align 2 .global buf_alloc .type buf_alloc, %function buf_alloc: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR57 and w20, w0, 255 ldrb w0, [x19, #:lo12:.LANCHOR57] cbz w0, .L578 .L581: adrp x2, .LANCHOR56 adrp x1, .LANCHOR55 add x0, x1, :lo12:.LANCHOR55 ldrb w3, [x2, #:lo12:.LANCHOR56] ubfiz x4, x3, 6, 8 add x0, x0, x4 mov x4, x2 cbz w20, .L579 .L580: add x1, x1, :lo12:.LANCHOR55 sbfiz x3, x3, 6, 32 add x2, x1, x3 ldrb w5, [x1, x3] strb w5, [x4, #:lo12:.LANCHOR56] ldrb w4, [x19, #:lo12:.LANCHOR57] strh wzr, [x2, 50] sub w4, w4, #1 strb w4, [x19, #:lo12:.LANCHOR57] mov w4, 1 strb wzr, [x2, 56] strb w4, [x2, 2] mov w4, -1 strb wzr, [x2, 57] strb w4, [x1, x3] mov w1, -1 str xzr, [x2, 16] str w1, [x2, 36] b .L577 .L578: mov w2, 121 adrp x1, .LANCHOR60 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR60 add x0, x0, :lo12:.LC0 bl printf ldrb w0, [x19, #:lo12:.LANCHOR57] cbnz w0, .L581 .L583: mov x0, 0 .L577: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L579: ldrb w2, [x19, #:lo12:.LANCHOR57] cmp w2, 1 bne .L580 b .L583 .size buf_alloc, .-buf_alloc .section .text.buf_remove_buf,"ax",@progbits .align 2 .global buf_remove_buf .type buf_remove_buf, %function buf_remove_buf: ldrb w4, [x1, 1] ldrb w2, [x0] cmp w4, w2 bne .L591 ldrb w1, [x1] strb w1, [x0] .L595: mov w0, 1 ret .L592: mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0, x2] cmp w4, w2 bne .L593 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0, x3] mov w0, -1 strb w0, [x1] b .L595 .L591: adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 .L593: cmp w2, 255 bne .L592 mov w0, 0 ret .size buf_remove_buf, .-buf_remove_buf .section .text.buf_remove_free,"ax",@progbits .align 2 .global buf_remove_free .type buf_remove_free, %function buf_remove_free: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR57 mov x20, x0 ldrb w0, [x19, #:lo12:.LANCHOR57] cbnz w0, .L597 adrp x1, .LANCHOR61 adrp x0, .LC0 mov w2, 172 add x1, x1, :lo12:.LANCHOR61 add x0, x0, :lo12:.LC0 bl printf .L597: ldrb w0, [x19, #:lo12:.LANCHOR57] cbz w0, .L596 mov x1, x20 adrp x0, .LANCHOR56 add x0, x0, :lo12:.LANCHOR56 bl buf_remove_buf cmp w0, 1 bne .L596 ldrb w0, [x19, #:lo12:.LANCHOR57] sub w0, w0, #1 strb w0, [x19, #:lo12:.LANCHOR57] ldrb w0, [x20, 2] orr w0, w0, 1 strb w0, [x20, 2] .L596: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size buf_remove_free, .-buf_remove_free .section .text.dump_buf_info,"ax",@progbits .align 2 .global dump_buf_info .type dump_buf_info, %function dump_buf_info: sub sp, sp, #64 adrp x0, .LANCHOR59 stp x29, x30, [sp, 16] add x29, sp, 16 ldrb w1, [x0, #:lo12:.LANCHOR59] stp x19, x20, [sp, 32] adrp x0, .LC41 str x21, [sp, 48] add x0, x0, :lo12:.LC41 adrp x19, .LANCHOR55 add x19, x19, :lo12:.LANCHOR55 bl printf adrp x20, .LC47 adrp x0, .LANCHOR62 add x20, x20, :lo12:.LC47 add x21, x19, 2048 ldrb w1, [x0, #:lo12:.LANCHOR62] adrp x0, .LC42 add x0, x0, :lo12:.LC42 bl printf adrp x0, .LANCHOR63 ldrb w1, [x0, #:lo12:.LANCHOR63] adrp x0, .LC43 add x0, x0, :lo12:.LC43 bl printf adrp x0, .LANCHOR64 ldrb w1, [x0, #:lo12:.LANCHOR64] adrp x0, .LC44 add x0, x0, :lo12:.LC44 bl printf adrp x0, .LANCHOR56 ldrb w1, [x0, #:lo12:.LANCHOR56] adrp x0, .LC45 add x0, x0, :lo12:.LC45 bl printf adrp x0, .LANCHOR57 ldrb w1, [x0, #:lo12:.LANCHOR57] adrp x0, .LC46 add x0, x0, :lo12:.LC46 bl printf .L603: ldp w7, w0, [x19, 36] str w0, [sp] ldrb w5, [x19, 58] mov x0, x20 ldrh w4, [x19, 50] add x19, x19, 64 ldrb w3, [x19, -62] ldrb w2, [x19, -64] ldrb w1, [x19, -63] ldr w6, [x19, -12] bl printf cmp x19, x21 bne .L603 ldp x19, x20, [sp, 32] ldp x29, x30, [sp, 16] ldr x21, [sp, 48] add sp, sp, 64 ret .size dump_buf_info, .-dump_buf_info .section .text.flash_check_bad_block,"ax",@progbits .align 2 .global flash_check_bad_block .type flash_check_bad_block, %function flash_check_bad_block: adrp x3, .LANCHOR32 add x3, x3, :lo12:.LANCHOR32 and w5, w0, 255 lsr w4, w1, 5 and w1, w1, 31 ldrb w0, [x3, 13] ldrh w2, [x3, 14] mul w2, w2, w0 mov x0, 912 and w2, w2, 65535 add w2, w2, 31 asr w2, w2, 5 lsl w2, w2, 2 umaddl x0, w2, w5, x0 adrp x2, .LANCHOR6 ldr x2, [x2, #:lo12:.LANCHOR6] add x0, x0, x4, uxtw 2 ldr w0, [x2, x0] lsr w0, w0, w1 and w0, w0, 1 ret .size flash_check_bad_block, .-flash_check_bad_block .section .text.flash_mask_bad_block,"ax",@progbits .align 2 .global flash_mask_bad_block .type flash_mask_bad_block, %function flash_mask_bad_block: stp x29, x30, [sp, -48]! mov w2, w1 add x29, sp, 0 str x21, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR32 add x0, x0, :lo12:.LANCHOR32 stp x19, x20, [sp, 16] mov w20, w1 ldrh w19, [x0, 14] ldrb w1, [x0, 13] adrp x0, .LC48 add x0, x0, :lo12:.LC48 mul w19, w19, w1 mov w1, w21 bl printf and w19, w19, 65535 lsr w0, w20, 5 add w1, w19, 31 mov x19, 912 asr w1, w1, 5 and w20, w20, 31 lsl w1, w1, 2 umaddl x1, w1, w21, x19 ldr x21, [sp, 32] add x1, x1, x0, uxtw 2 adrp x0, .LANCHOR6 ldr x2, [x0, #:lo12:.LANCHOR6] mov w0, 1 lsl w0, w0, w20 ldr w20, [x2, x1] orr w20, w20, w0 str w20, [x2, x1] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size flash_mask_bad_block, .-flash_mask_bad_block .section .text.ftl_gc_write_buf,"ax",@progbits .align 2 .global ftl_gc_write_buf .type ftl_gc_write_buf, %function ftl_gc_write_buf: stp x29, x30, [sp, -16]! add x29, sp, 0 ldrb w1, [x0, 2] orr w1, w1, 2 strb w1, [x0, 2] mov x1, x0 adrp x0, .LANCHOR65 add x0, x0, :lo12:.LANCHOR65 bl buf_add_tail adrp x1, .LANCHOR66 ldp x29, x30, [sp], 16 ldrb w0, [x1, #:lo12:.LANCHOR66] add w0, w0, 1 and w0, w0, 255 strb w0, [x1, #:lo12:.LANCHOR66] ret .size ftl_gc_write_buf, .-ftl_gc_write_buf .section .text.zftl_cache_flush,"ax",@progbits .align 2 .global zftl_cache_flush .type zftl_cache_flush, %function zftl_cache_flush: ret .size zftl_cache_flush, .-zftl_cache_flush .section .text.zftl_get_density,"ax",@progbits .align 2 .global zftl_get_density .type zftl_get_density, %function zftl_get_density: cbnz w0, .L613 adrp x0, .LANCHOR67 ldr w0, [x0, #:lo12:.LANCHOR67] ret .L613: cmp w0, 4 cset w0, cc lsl w0, w0, 13 ret .size zftl_get_density, .-zftl_get_density .section .text.gc_hook,"ax",@progbits .align 2 .global gc_hook .type gc_hook, %function gc_hook: ret .size gc_hook, .-gc_hook .section .text.vpn_check,"ax",@progbits .align 2 .global vpn_check .type vpn_check, %function vpn_check: ret .size vpn_check, .-vpn_check .section .text.ftl_scan_all_data,"ax",@progbits .align 2 .global ftl_scan_all_data .type ftl_scan_all_data, %function ftl_scan_all_data: ret .size ftl_scan_all_data, .-ftl_scan_all_data .section .text.FtlGetCurEraseBlock,"ax",@progbits .align 2 .global FtlGetCurEraseBlock .type FtlGetCurEraseBlock, %function FtlGetCurEraseBlock: adrp x0, .LANCHOR68 ldrh w0, [x0, #:lo12:.LANCHOR68] ret .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock .section .text.FtlGetAllBlockNum,"ax",@progbits .align 2 .global FtlGetAllBlockNum .type FtlGetAllBlockNum, %function FtlGetAllBlockNum: adrp x0, .LANCHOR8 ldrh w0, [x0, #:lo12:.LANCHOR8] ret .size FtlGetAllBlockNum, .-FtlGetAllBlockNum .section .text.FtlLowFormat,"ax",@progbits .align 2 .global FtlLowFormat .type FtlLowFormat, %function FtlLowFormat: mov w0, 0 ret .size FtlLowFormat, .-FtlLowFormat .section .text.gc_add_sblk,"ax",@progbits .align 2 .global gc_add_sblk .type gc_add_sblk, %function gc_add_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR19 stp x19, x20, [sp, 16] and w19, w0, 65535 ldr w0, [x21, #:lo12:.LANCHOR19] and w22, w1, 65535 stp x23, x24, [sp, 48] and w23, w2, 65535 tbz x0, 8, .L623 adrp x1, .LANCHOR11 uxtw x0, w19 mov w3, w23 ldr x2, [x1, #:lo12:.LANCHOR11] adrp x1, .LANCHOR9 ldr x1, [x1, #:lo12:.LANCHOR9] ldrh w5, [x2, x0, lsl 1] mov w2, w22 add x1, x1, x0, lsl 2 adrp x0, .LC49 add x0, x0, :lo12:.LC49 ldrb w4, [x1, 2] adrp x1, .LANCHOR69 ldrh w7, [x1, #:lo12:.LANCHOR69] adrp x1, .LANCHOR70+56 ubfx x4, x4, 5, 3 ldrh w6, [x1, #:lo12:.LANCHOR70+56] mov w1, w19 bl printf .L623: adrp x0, .LANCHOR8 mov x20, x0 ldrh w1, [x0, #:lo12:.LANCHOR8] cmp w1, w19 bhi .L624 adrp x1, .LANCHOR71 adrp x0, .LC0 mov w2, 543 add x1, x1, :lo12:.LANCHOR71 add x0, x0, :lo12:.LC0 bl printf .L624: ldrh w0, [x20, #:lo12:.LANCHOR8] cmp w0, w19 bhi .L625 ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 10, .L647 adrp x0, .LC50 mov w3, w23 mov w2, w22 mov w1, w19 add x0, x0, :lo12:.LC50 bl printf .L647: mov w0, 0 b .L622 .L625: adrp x1, .LANCHOR11 uxtw x0, w19 ldr x1, [x1, #:lo12:.LANCHOR11] ldrh w3, [x1, x0, lsl 1] adrp x1, .LANCHOR9 ldr x1, [x1, #:lo12:.LANCHOR9] add x0, x1, x0, lsl 2 ldrb w2, [x0, 2] tst w2, 224 bne .L627 cbz w3, .L647 mov w2, 553 adrp x1, .LANCHOR71 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR71 add x0, x0, :lo12:.LC0 bl printf b .L647 .L627: adrp x0, .LANCHOR70 add x1, x0, :lo12:.LANCHOR70 ldrh w0, [x0, #:lo12:.LANCHOR70] cmp w0, w19 beq .L647 adrp x24, .LANCHOR12 ldr x0, [x24, #:lo12:.LANCHOR12] ldrh w4, [x0, 48] cmp w4, w19 beq .L647 ldrh w4, [x0, 16] cmp w4, w19 beq .L647 ldrh w4, [x0, 80] cmp w4, w19 beq .L647 ldrh w5, [x1, 56] add x1, x1, 58 mov w4, 0 .L628: cmp w4, w5 bcc .L629 cbnz w22, .L633 adrp x1, .LANCHOR72 ldrh w6, [x1, #:lo12:.LANCHOR72] cmp w19, w6 beq .L647 adrp x4, .LANCHOR73 add x4, x4, :lo12:.LANCHOR73 mov x1, 0 .L632: ldrh w7, [x1, x4] cmp w19, w7 bne .L631 ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 8, .L647 mov w5, w6 mov w4, w19 ubfx x2, x2, 5, 3 mov w1, w19 adrp x0, .LC51 add x0, x0, :lo12:.LC51 bl printf b .L647 .L629: ldrh w6, [x1], 2 cmp w6, w19 beq .L647 add w4, w4, 1 b .L628 .L631: add x1, x1, 2 cmp x1, 16 bne .L632 ubfiz x20, x23, 7, 16 add x20, x20, 136 add x20, x0, x20 .L634: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 8, .L635 adrp x0, .LANCHOR69 mov w4, w3 mov w1, w19 ubfx x3, x2, 5, 3 ldrh w6, [x0, #:lo12:.LANCHOR69] mov w2, w22 adrp x0, .LC52 add x0, x0, :lo12:.LC52 bl printf .L635: mov x0, x20 add x1, x20, 128 mov w2, 65535 .L638: ldrh w3, [x0] cmp w3, w2 bne .L636 strh w19, [x0] cbz w22, .L637 ldr x1, [x24, #:lo12:.LANCHOR12] ldrh w0, [x1, 124] add w0, w0, 1 strh w0, [x1, 124] .L657: mov w0, 1 .L622: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .L633: add x20, x0, 392 b .L634 .L637: ldr x0, [x24, #:lo12:.LANCHOR12] add x23, x0, x23, uxth 1 ldrh w0, [x23, 120] add w0, w0, 1 strh w0, [x23, 120] b .L657 .L636: add x0, x0, 2 cmp x1, x0 bne .L638 b .L657 .size gc_add_sblk, .-gc_add_sblk .section .text.gc_mark_bad_ppa,"ax",@progbits .align 2 .global gc_mark_bad_ppa .type gc_mark_bad_ppa, %function gc_mark_bad_ppa: stp x29, x30, [sp, -64]! adrp x1, .LANCHOR74 adrp x3, .LANCHOR31 add x29, sp, 0 ldrh w1, [x1, #:lo12:.LANCHOR74] ldrb w3, [x3, #:lo12:.LANCHOR31] stp x19, x20, [sp, 16] mov w19, 24 sub w19, w19, w3 lsr w2, w0, w1 sub w19, w19, w1 adrp x1, .LANCHOR75 str x23, [sp, 48] mov w23, 1 ldrb w1, [x1, #:lo12:.LANCHOR75] lsl w19, w23, w19 sub w19, w19, #1 stp x21, x22, [sp, 32] and w19, w19, w2 adrp x20, .LANCHOR70 add x21, x20, :lo12:.LANCHOR70 mov w3, w0 and w22, w2, 65535 adrp x0, .LC53 udiv w19, w19, w1 mov w2, w22 ldr w1, [x21, 2200] add x0, x0, :lo12:.LC53 and w19, w19, 65535 bl printf mov w1, w23 mov w2, 0 mov w0, w19 bl gc_add_sblk ldr w0, [x21, 2200] mov w1, 0 .L659: cmp w1, w0 bcc .L661 cmp w0, 5 bhi .L660 add x20, x20, :lo12:.LANCHOR70 add w1, w0, 1 str w1, [x20, 2200] add x20, x20, x0, uxtw 1 strh w22, [x20, 2204] .L660: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .L661: add x2, x21, x1, sxtw 1 ldrh w2, [x2, 2204] cmp w2, w22 beq .L660 add w1, w1, 1 and w1, w1, 65535 b .L659 .size gc_mark_bad_ppa, .-gc_mark_bad_ppa .section .text.gc_get_src_ppa_from_index,"ax",@progbits .align 2 .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: adrp x1, .LANCHOR76 ubfiz x0, x0, 2, 16 ldr x1, [x1, #:lo12:.LANCHOR76] ldr w0, [x1, x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index .section .text.gc_write_completed,"ax",@progbits .align 2 .global gc_write_completed .type gc_write_completed, %function gc_write_completed: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR63 stp x23, x24, [sp, 48] add x22, x22, :lo12:.LANCHOR63 stp x25, x26, [sp, 64] adrp x23, .LANCHOR55 add x25, x23, :lo12:.LANCHOR55 stp x19, x20, [sp, 16] str x27, [sp, 80] .L665: ldrb w0, [x22] cmp w0, 255 bne .L678 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret .L678: sxtw x20, w0 add x1, x23, :lo12:.LANCHOR55 lsl x3, x20, 6 add x2, x1, x3 ldrb w0, [x1, x3] ldr w1, [x2, 52] strb w0, [x22] ldrh w24, [x2, 48] cbz w1, .L666 ldr w2, [x2, 40] adrp x0, .LANCHOR70 add x0, x0, :lo12:.LANCHOR70 mov w3, 1 str w2, [x0, 2196] strh w3, [x0, 2194] adrp x0, .LC54 add x0, x0, :lo12:.LC54 bl printf adrp x1, .LANCHOR77 adrp x0, .LC0 mov w2, 956 add x1, x1, :lo12:.LANCHOR77 add x0, x0, :lo12:.LC0 bl printf .L666: adrp x0, .LANCHOR78 mov x26, x0 ldrb w1, [x0, #:lo12:.LANCHOR78] cmp w1, 3 bne .L667 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L667 adrp x0, .LANCHOR12 adrp x1, .LANCHOR79 ldr x0, [x0, #:lo12:.LANCHOR12] ldrb w1, [x1, #:lo12:.LANCHOR79] ldrb w0, [x0, 89] mov w19, w0 cmp w1, w0 bhi .L679 cmp w0, 2 mov w0, 2 csel w19, w19, w0, ls .L668: add w19, w19, w19, lsl 1 .L669: adrp x1, .LANCHOR82 and x21, x24, 65535 add x0, x25, x20, lsl 6 mov x27, x1 ldr x2, [x1, #:lo12:.LANCHOR82] ldrb w0, [x0, 1] ldrb w2, [x2, x21] cmp w2, w0 beq .L670 adrp x1, .LANCHOR77 adrp x0, .LC0 mov w2, 976 add x1, x1, :lo12:.LANCHOR77 add x0, x0, :lo12:.LC0 bl printf .L670: add x0, x25, x20, lsl 6 ldrb w0, [x0, 61] cmp w0, 3 beq .L671 ldrb w0, [x26, #:lo12:.LANCHOR78] cmp w0, 3 bne .L671 adrp x0, .LANCHOR83 ldrb w0, [x0, #:lo12:.LANCHOR83] cbnz w0, .L671 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L671 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L671 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L672 adrp x0, .LANCHOR81 ldrb w0, [x0, #:lo12:.LANCHOR81] cbnz w0, .L671 .L672: ldr x1, [x27, #:lo12:.LANCHOR82] mov x0, 0 add x21, x1, x21 .L673: cmp w19, w0, uxth bls .L665 ldrb w1, [x21, x0] add x0, x0, 1 add x1, x25, x1, lsl 6 strb wzr, [x1, 61] b .L673 .L679: mov w19, 1 b .L668 .L667: adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L680 adrp x0, .LANCHOR81 ldrb w0, [x0, #:lo12:.LANCHOR81] cmp w0, 0 cset w19, ne add w19, w19, 1 b .L669 .L680: mov w19, 1 b .L669 .L671: adrp x20, .LANCHOR70 add x20, x20, :lo12:.LANCHOR70 add x19, x21, x19, uxth strh w24, [x20, 2108] mov w24, -1 .L674: cmp x21, x19 beq .L665 ldr x1, [x27, #:lo12:.LANCHOR82] ldrb w0, [x1, x21] strb w24, [x1, x21] add x21, x21, 1 sbfiz x1, x0, 6, 32 ubfiz x0, x0, 6, 8 add x1, x25, x1 add x0, x25, x0 strb wzr, [x1, 61] bl zbuf_free ldrb w0, [x20, 7] sub w0, w0, #1 strb w0, [x20, 7] b .L674 .size gc_write_completed, .-gc_write_completed .section .text.gc_get_src_blk,"ax",@progbits .align 2 .global gc_get_src_blk .type gc_get_src_blk, %function gc_get_src_blk: adrp x0, .LANCHOR12 ldr x2, [x0, #:lo12:.LANCHOR12] adrp x0, .LANCHOR84 ldrb w3, [x0, #:lo12:.LANCHOR84] ldrh w0, [x2, 124] cbz w0, .L693 add x1, x2, 392 mov w4, 1 .L694: add x5, x1, 128 mov w6, 65535 .L698: ldrh w0, [x1] cmp w0, w6 beq .L696 mov w5, -1 strh w5, [x1] cbz w4, .L697 ldrh w1, [x2, 124] sub w1, w1, #1 strh w1, [x2, 124] ret .L693: add x0, x2, x3, sxtw 1 ldrh w0, [x0, 120] cbz w0, .L699 ubfiz x1, x3, 7, 8 mov w4, 0 add x1, x1, 136 add x1, x2, x1 b .L694 .L697: add x2, x2, x3, uxtb 1 ldrh w1, [x2, 120] sub w1, w1, #1 strh w1, [x2, 120] ret .L696: add x1, x1, 2 cmp x1, x5 bne .L698 ret .L699: mov w0, 65535 ret .size gc_get_src_blk, .-gc_get_src_blk .section .text.gc_free_temp_buf,"ax",@progbits .align 2 .global gc_free_temp_buf .type gc_free_temp_buf, %function gc_free_temp_buf: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR70 add x0, x20, :lo12:.LANCHOR70 stp x21, x22, [sp, 32] ldrb w1, [x0, 7] cbz w1, .L708 adrp x1, .LANCHOR57 ldrb w1, [x1, #:lo12:.LANCHOR57] cmp w1, 1 bhi .L708 ldrh w19, [x0, 2108] adrp x2, .LANCHOR79 adrp x0, .LANCHOR85 adrp x21, .LANCHOR82 ldrb w2, [x2, #:lo12:.LANCHOR79] add w1, w19, 24 ldrh w0, [x0, #:lo12:.LANCHOR85] ldr x4, [x21, #:lo12:.LANCHOR82] mul w0, w0, w2 cmp w0, w1 csel w1, w0, w1, ls adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 .L703: cmp w19, w1 bcc .L706 .L708: mov w0, 0 b .L701 .L706: uxtw x22, w19 ldrb w2, [x4, x22] cmp w2, 255 beq .L704 sbfiz x3, x2, 6, 32 add x3, x0, x3 ldrb w3, [x3, 61] cbnz w3, .L704 ubfiz x2, x2, 6, 8 add x0, x0, x2 bl zbuf_free adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L705 ldr x0, [x21, #:lo12:.LANCHOR82] mov w1, w19 ldrb w2, [x0, x22] adrp x0, .LC55 add x0, x0, :lo12:.LC55 bl printf .L705: ldr x0, [x21, #:lo12:.LANCHOR82] add x20, x20, :lo12:.LANCHOR70 mov w1, -1 strb w1, [x0, x22] ldrb w0, [x20, 7] sub w0, w0, #1 strb w0, [x20, 7] mov w0, 1 .L701: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L704: add w19, w19, 1 b .L703 .size gc_free_temp_buf, .-gc_free_temp_buf .section .text.get_ink_scaned_blk,"ax",@progbits .align 2 .global get_ink_scaned_blk .type get_ink_scaned_blk, %function get_ink_scaned_blk: adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 ldrh w2, [x1, 2112] cbz w2, .L718 sub w2, w2, #1 strh w2, [x1, 2112] add x0, x1, x2, sxtw 1 ldrh w0, [x0, 2114] ret .L718: mov w0, 65535 ret .size get_ink_scaned_blk, .-get_ink_scaned_blk .section .text.print_gc_debug_info,"ax",@progbits .align 2 .global print_gc_debug_info .type print_gc_debug_info, %function print_gc_debug_info: adrp x2, .LANCHOR86 adrp x1, .LANCHOR70 add x0, x1, :lo12:.LANCHOR70 ldrh w6, [x2, #:lo12:.LANCHOR86] adrp x2, .LANCHOR57 ldrh w1, [x1, #:lo12:.LANCHOR70] ldrb w5, [x0, 7] ldrb w4, [x2, #:lo12:.LANCHOR57] ldrh w3, [x0, 2106] ldrh w2, [x0, 2] adrp x0, .LC56 add x0, x0, :lo12:.LC56 b printf .size print_gc_debug_info, .-print_gc_debug_info .section .text._list_pop_index_node,"ax",@progbits .align 2 .global _list_pop_index_node .type _list_pop_index_node, %function _list_pop_index_node: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] ldr x20, [x0] cbz x20, .L726 adrp x3, .LANCHOR4 and w1, w1, 65535 mov w4, 65535 mov w5, 6 ldr x19, [x3, #:lo12:.LANCHOR4] .L722: cbnz w1, .L723 .L725: sub x19, x20, x19 mov x1, -6148914691236517206 asr x19, x19, 1 movk x1, 0xaaab, lsl 0 mul x19, x19, x1 and w19, w19, 65535 mov w1, w19 bl _list_remove_node mov w0, -1 strh w0, [x20] strh w0, [x20, 2] mov w0, w19 .L720: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L723: ldrh w3, [x20] cmp w3, w4 beq .L725 sub w1, w1, #1 umaddl x20, w3, w5, x19 and w1, w1, 65535 b .L722 .L726: mov w0, 65535 b .L720 .size _list_pop_index_node, .-_list_pop_index_node .section .text._list_get_gc_head_node,"ax",@progbits .align 2 .global _list_get_gc_head_node .type _list_get_gc_head_node, %function _list_get_gc_head_node: ldr x0, [x0] and w1, w1, 65535 cbz x0, .L733 adrp x2, .LANCHOR4 mov w3, 65535 mov w4, 6 ldr x2, [x2, #:lo12:.LANCHOR4] .L730: cbz w1, .L731 ldrh w0, [x0] cmp w0, w3 bne .L732 ret .L732: sub w1, w1, #1 umaddl x0, w0, w4, x2 and w1, w1, 65535 b .L730 .L733: mov w0, 65535 ret .L731: sub x0, x0, x2 mov x1, -6148914691236517206 asr x0, x0, 1 movk x1, 0xaaab, lsl 0 mul x0, x0, x1 and w0, w0, 65535 ret .size _list_get_gc_head_node, .-_list_get_gc_head_node .section .text.gc_search_src_blk,"ax",@progbits .align 2 .global gc_search_src_blk .type gc_search_src_blk, %function gc_search_src_blk: stp x29, x30, [sp, -176]! add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w0, 255 and w0, w1, 255 stp x19, x20, [sp, 16] str w0, [x29, 160] adrp x0, .LANCHOR12 and w19, w2, 255 stp x23, x24, [sp, 48] ldr x2, [x0, #:lo12:.LANCHOR12] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] add x0, x2, x22, sxtw 1 ldrh w21, [x0, 120] cbz w21, .L736 mov w0, w21 .L735: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret .L736: adrp x0, .LANCHOR70 add x1, x0, :lo12:.LANCHOR70 ldrh w1, [x1, 56] cmp w1, 1 bhi .L738 adrp x3, .LANCHOR87 strh wzr, [x3, #:lo12:.LANCHOR87] adrp x3, .LANCHOR88 strh wzr, [x3, #:lo12:.LANCHOR88] adrp x3, .LANCHOR89 strh wzr, [x3, #:lo12:.LANCHOR89] .L738: cbnz w22, .L739 adrp x26, .LANCHOR88 adrp x25, .LANCHOR90 add x23, x26, :lo12:.LANCHOR88 add x25, x25, :lo12:.LANCHOR90 mov w24, 0 mov w20, 0 mov w27, 65535 .L740: cmp w19, w20 blt .L745 ldrh w6, [x23] mov x0, x25 mov w1, w6 bl _list_get_gc_head_node add w2, w6, 1 and w2, w2, 65535 strh w2, [x23] and w1, w0, 65535 mov w28, w1 cmp w1, w27 beq .L741 adrp x0, .LANCHOR19 adrp x6, .LANCHOR11 uxtw x4, w1 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L742 ldr x0, [x6, #:lo12:.LANCHOR11] stp x6, x4, [x29, 144] ldrh w3, [x0, x4, lsl 1] adrp x0, .LC57 add x0, x0, :lo12:.LC57 bl printf ldp x6, x4, [x29, 144] .L742: ldr x0, [x6, #:lo12:.LANCHOR11] ldrh w1, [x0, x4, lsl 1] adrp x0, .LANCHOR69 ldrh w0, [x0, #:lo12:.LANCHOR69] cmp w1, w0 bcs .L743 mov w2, 0 mov w1, 0 mov w0, w28 bl gc_add_sblk cbz w0, .L744 add w5, w24, 1 and w24, w5, 65535 cmp w24, w19 bcc .L744 .L745: ldr x0, [x29, 160] tbz x0, 1, .L747 adrp x0, .LANCHOR91 ldrh w0, [x0, #:lo12:.LANCHOR91] cmp w0, 32 bls .L747 adrp x23, .LANCHOR93 adrp x20, .LANCHOR89 adrp x26, .LANCHOR92 add x20, x20, :lo12:.LANCHOR89 add x26, x26, :lo12:.LANCHOR92 add x27, x23, :lo12:.LANCHOR93 mov w25, 0 .L748: cmp w19, w25 blt .L752 ldrh w6, [x20] mov x0, x26 mov w1, w6 bl _list_get_gc_head_node add w6, w6, 1 strh w6, [x20] and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L749 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR11] ldrh w2, [x2, x1] ldrh w1, [x27] cmp w2, w1 bcs .L749 mov w2, 0 mov w1, 0 bl gc_add_sblk cbz w0, .L751 add w5, w24, 1 and w24, w5, 65535 cmp w24, w19 bcc .L751 .L752: cmp w24, w19 adrp x0, .LANCHOR94 bcs .L754 ldrh w1, [x0, #:lo12:.LANCHOR94] adrp x3, .LANCHOR79 adrp x0, .LANCHOR85 ldrh w2, [x23, #:lo12:.LANCHOR93] ldrb w3, [x3, #:lo12:.LANCHOR79] ldrh w0, [x0, #:lo12:.LANCHOR85] mul w0, w0, w3 sub w0, w0, w1, lsr 2 cmp w2, w0 bge .L747 add w1, w2, w1, lsr 3 strh w1, [x23, #:lo12:.LANCHOR93] .L747: ldr x0, [x29, 160] tbz x0, 0, .L755 and w23, w19, 65535 cmp w24, w23 bcs .L755 adrp x20, .LANCHOR87 adrp x25, .LANCHOR95 add x20, x20, :lo12:.LANCHOR87 add x25, x25, :lo12:.LANCHOR95 mov w26, 65535 .L760: ldrh w6, [x20] mov x0, x25 mov w1, w6 bl _list_get_gc_head_node add w6, w6, 1 strh w6, [x20] cmp w26, w0, uxth beq .L756 mov w2, 0 mov w1, 0 bl gc_add_sblk cbz w0, .L757 add w5, w24, 1 and w24, w5, 65535 cmp w23, w24 bhi .L757 .L758: adrp x0, .LANCHOR94 adrp x1, .LANCHOR69 ldrh w0, [x0, #:lo12:.LANCHOR94] ldrh w2, [x1, #:lo12:.LANCHOR69] cmp w2, w0, lsr 1 bls .L755 sub w0, w2, w0, lsr 3 b .L846 .L743: strh wzr, [x26, #:lo12:.LANCHOR88] b .L745 .L741: strh wzr, [x23] b .L745 .L744: add w20, w20, 1 and w20, w20, 65535 b .L740 .L749: strh wzr, [x20] b .L752 .L751: add w25, w25, 1 and w25, w25, 65535 b .L748 .L754: ldrh w1, [x23, #:lo12:.LANCHOR93] ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w1, w0 bls .L747 sub w0, w1, w0, lsr 3 strh w0, [x23, #:lo12:.LANCHOR93] b .L747 .L756: strh wzr, [x20] .L759: cmp w24, w23 bcs .L758 adrp x1, .LANCHOR69 adrp x0, .LANCHOR94 ldrh w2, [x1, #:lo12:.LANCHOR69] ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w2, w0 bcs .L755 add w0, w2, w0, lsr 3 .L846: strh w0, [x1, #:lo12:.LANCHOR69] .L755: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L791 ldr w2, [x29, 160] adrp x0, .LC58 mov w4, w19 mov w3, w24 mov w1, w22 add x0, x0, :lo12:.LC58 bl printf .L791: mov w0, w24 b .L735 .L757: add w21, w21, 1 and w21, w21, 65535 cmp w23, w21 bhi .L760 b .L759 .L739: adrp x23, .LANCHOR79 adrp x25, .LANCHOR85 stp x25, x23, [x29, 144] cmp w19, 1 ldrb w20, [x23, #:lo12:.LANCHOR79] ldrh w3, [x25, #:lo12:.LANCHOR85] mul w20, w20, w3 and w20, w20, 65535 bne .L761 cbz w1, .L761 ldrh w3, [x2, 80] mov w2, 65535 cmp w3, w2 beq .L794 add x2, x0, :lo12:.LANCHOR70 ldrh w2, [x2, 2106] sub w20, w20, w2 and w20, w20, 65535 .L794: mov w19, 8 .L761: add x0, x0, :lo12:.LANCHOR70 strh wzr, [x0, 2192] adrp x0, .LANCHOR96 strh wzr, [x0, #:lo12:.LANCHOR96] ldr w0, [x29, 160] and w0, w0, 1 str w0, [x29, 128] ldr x0, [x29, 160] tbz x0, 0, .L795 adrp x2, .LANCHOR98 adrp x26, .LANCHOR97 str x2, [x29, 120] ldrh w0, [x26, #:lo12:.LANCHOR97] ldrh w3, [x2, #:lo12:.LANCHOR98] cmp w0, w3, lsr 2 bhi .L763 adrp x2, .LANCHOR99 ldrh w2, [x2, #:lo12:.LANCHOR99] cmp w2, w0 bcs .L796 .L763: cmp w1, 1 adrp x25, .LANCHOR87 adrp x28, .LANCHOR95 bls .L765 .L767: mov w24, 0 .L766: add x0, x28, :lo12:.LANCHOR95 add x25, x25, :lo12:.LANCHOR87 adrp x28, .LANCHOR99 add x28, x28, :lo12:.LANCHOR99 mov w23, 0 mov w27, 64 str x0, [x29, 136] .L770: ldrh w7, [x25] ldr x0, [x29, 136] mov w1, w7 bl _list_get_gc_head_node and w6, w0, 65535 str w6, [x29, 112] mov w1, 65535 cmp w6, w1 beq .L768 add w7, w7, 1 mov w2, w22 strh w7, [x25] mov w1, 0 bl gc_add_sblk cbz w0, .L769 adrp x0, .LANCHOR11 ldr w6, [x29, 112] add w5, w24, 1 ldr x0, [x0, #:lo12:.LANCHOR11] and w24, w5, 65535 ubfiz x6, x6, 1, 16 cmp w24, w19 ldrh w0, [x0, x6] add w3, w23, w0 and w23, w3, 65535 bcs .L764 cmp w20, w23 bcc .L764 ldrh w0, [x28] ldrh w1, [x26, #:lo12:.LANCHOR97] cmp w0, w1, lsl 1 ble .L769 .L764: adrp x0, .LANCHOR99 ldrh w1, [x0, #:lo12:.LANCHOR99] ldr x0, [x29, 120] ldrh w0, [x0, #:lo12:.LANCHOR98] cmp w1, w0, lsr 2 bhi .L792 ldrh w0, [x26, #:lo12:.LANCHOR97] add w0, w0, 8 cmp w1, w0 ble .L762 .L792: cmp w20, w23 bls .L762 adrp x7, .LANCHOR88 and w25, w19, 65535 add x28, x7, :lo12:.LANCHOR88 adrp x0, .LANCHOR90 mov w26, 64 add x0, x0, :lo12:.LANCHOR90 adrp x27, .LANCHOR11 str x0, [x29, 136] .L773: ldrh w6, [x28] ldr x0, [x29, 136] mov w1, w6 bl _list_get_gc_head_node and w4, w0, 65535 str w4, [x29, 120] mov w1, 65535 cmp w4, w1 beq .L771 add w6, w6, 1 mov w2, w22 strh w6, [x28] mov w1, 0 bl gc_add_sblk cbz w0, .L772 ldr w4, [x29, 120] add w5, w24, 1 ldr x0, [x27, #:lo12:.LANCHOR11] and w24, w5, 65535 cmp w24, w25 ubfiz x4, x4, 1, 16 ldrh w0, [x0, x4] add w3, w23, w0 and w23, w3, 65535 bcs .L762 cmp w20, w23 bcs .L772 .L762: ldr x0, [x29, 160] tbz x0, 1, .L774 adrp x0, .LANCHOR91 str x0, [x29, 112] ldrh w1, [x0, #:lo12:.LANCHOR91] cmp w1, 32 bls .L774 cmp w23, w20 bcs .L774 adrp x25, .LANCHOR89 adrp x0, .LANCHOR92 add x28, x25, :lo12:.LANCHOR89 add x0, x0, :lo12:.LANCHOR92 adrp x27, .LANCHOR100 str x0, [x29, 120] mov w26, 64 add x0, x27, :lo12:.LANCHOR100 str x0, [x29, 136] .L780: ldrh w6, [x28] ldr x0, [x29, 120] mov w1, w6 bl _list_get_gc_head_node and w8, w0, 65535 mov w1, 65535 cmp w8, w1 beq .L775 add w6, w6, 1 strh w6, [x28] cmp w19, 1 bne .L776 ldp x2, x1, [x29, 144] ldrb w1, [x1, #:lo12:.LANCHOR79] ldrh w2, [x2, #:lo12:.LANCHOR85] mul w2, w1, w2 adrp x1, .LANCHOR94 ldrh w1, [x1, #:lo12:.LANCHOR94] sub w1, w2, w1, lsr 3 ldr x2, [x29, 136] strh w1, [x2] .L776: ubfiz x6, x8, 1, 16 adrp x8, .LANCHOR11 stp x8, x6, [x29, 96] ldr x1, [x8, #:lo12:.LANCHOR11] ldrh w2, [x1, x6] ldr x1, [x29, 136] ldrh w1, [x1] cmp w2, w1 bcs .L777 mov w2, w22 mov w1, 0 bl gc_add_sblk cbz w0, .L778 ldp x8, x6, [x29, 96] add w5, w24, 1 add w21, w21, 1 and w24, w5, 65535 and w21, w21, 65535 cmp w24, w19 ldr x0, [x8, #:lo12:.LANCHOR11] ldrh w0, [x0, x6] add w3, w23, w0 and w23, w3, 65535 bcs .L779 cmp w20, w23 bcs .L778 .L779: cmp w24, w19 adrp x0, .LANCHOR94 bcc .L781 cbnz w21, .L782 ldr x1, [x29, 112] ldrh w2, [x1, #:lo12:.LANCHOR91] adrp x1, .LANCHOR101 ldrh w1, [x1, #:lo12:.LANCHOR101] cmp w2, w1 bls .L782 .L781: ldrh w2, [x0, #:lo12:.LANCHOR94] ldp x0, x3, [x29, 144] ldrh w1, [x27, #:lo12:.LANCHOR100] lsr w2, w2, 3 ldrh w0, [x0, #:lo12:.LANCHOR85] ldrb w6, [x3, #:lo12:.LANCHOR79] mul w0, w0, w6 sub w0, w0, w2 cmp w1, w0 bge .L774 add w1, w1, w2 strh w1, [x27, #:lo12:.LANCHOR100] .L774: ldr w0, [x29, 128] cbz w0, .L755 and w27, w19, 65535 cmp w24, w27 bcs .L755 cmp w23, w20 bcs .L755 adrp x26, .LANCHOR90 adrp x4, .LANCHOR88 add x0, x26, :lo12:.LANCHOR90 add x28, x4, :lo12:.LANCHOR88 adrp x21, .LANCHOR102 str x0, [x29, 144] mov w25, 64 add x0, x21, :lo12:.LANCHOR102 adrp x26, .LANCHOR11 str x0, [x29, 136] .L790: ldrh w6, [x28] ldr x0, [x29, 144] mov w1, w6 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L784 add w6, w6, 1 strh w6, [x28] ubfiz x6, x1, 1, 16 ldr x1, [x26, #:lo12:.LANCHOR11] ldrh w2, [x1, x6] ldr x1, [x29, 136] ldrh w1, [x1] cmp w2, w1 bcs .L785 adrp x1, .LANCHOR98 ldrh w2, [x1, #:lo12:.LANCHOR98] adrp x1, .LANCHOR99 ldrh w1, [x1, #:lo12:.LANCHOR99] cmp w1, w2, lsr 1 bls .L786 .L785: mov w2, w22 mov w1, 0 str x6, [x29, 128] bl gc_add_sblk cbz w0, .L787 adrp x0, .LANCHOR11 ldr x6, [x29, 128] add w5, w24, 1 ldr x0, [x0, #:lo12:.LANCHOR11] and w24, w5, 65535 cmp w27, w24 ldrh w0, [x0, x6] add w3, w23, w0 and w23, w3, 65535 bls .L788 cmp w20, w23 bcs .L787 .L789: adrp x0, .LANCHOR94 ldrh w1, [x21, #:lo12:.LANCHOR102] ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w1, w0, lsr 1 bls .L755 sub w0, w1, w0, lsr 3 strh w0, [x21, #:lo12:.LANCHOR102] b .L755 .L765: lsr w0, w0, 2 mov w1, 0 strh w0, [x25, #:lo12:.LANCHOR87] add x0, x28, :lo12:.LANCHOR95 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L767 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x3, [x2, #:lo12:.LANCHOR11] adrp x2, .LANCHOR94 ldrh w2, [x2, #:lo12:.LANCHOR94] ldrh w1, [x3, x1] cmp w1, w2, lsr 2 bcs .L767 mov w1, 1 mov w2, w22 strh w1, [x25, #:lo12:.LANCHOR87] mov w1, 0 bl gc_add_sblk cmp w0, 0 cset w24, ne b .L766 .L768: strh wzr, [x25] b .L764 .L769: sub w27, w27, #1 ands w27, w27, 65535 bne .L770 b .L764 .L771: cmp w6, 64 bls .L762 strh wzr, [x28] b .L762 .L772: sub w26, w26, #1 ands w26, w26, 65535 bne .L773 b .L762 .L795: mov w23, 0 mov w24, 0 b .L762 .L777: strh wzr, [x25, #:lo12:.LANCHOR89] b .L779 .L775: strh wzr, [x28] b .L779 .L778: sub w26, w26, #1 ands w26, w26, 65535 bne .L780 b .L779 .L782: ldr x1, [x29, 152] ldrh w0, [x0, #:lo12:.LANCHOR94] ldrh w2, [x27, #:lo12:.LANCHOR100] ldrb w1, [x1, #:lo12:.LANCHOR79] mul w1, w1, w0 cmp w2, w1 ble .L755 sub w0, w2, w0, lsr 3 strh w0, [x27, #:lo12:.LANCHOR100] b .L755 .L784: cmp w6, 64 bls .L786 strh wzr, [x28] .L786: cmp w24, w27 bcc .L789 .L788: adrp x0, .LANCHOR94 ldrh w2, [x21, #:lo12:.LANCHOR102] ldrh w1, [x0, #:lo12:.LANCHOR94] ldr x0, [x29, 152] ldrb w0, [x0, #:lo12:.LANCHOR79] mul w0, w0, w1 sub w0, w0, #32 cmp w2, w0 bge .L755 add w1, w2, w1, lsr 3 strh w1, [x21, #:lo12:.LANCHOR102] b .L755 .L787: sub w25, w25, #1 ands w25, w25, 65535 bne .L790 b .L786 .L796: mov w23, 0 mov w24, 0 b .L764 .size gc_search_src_blk, .-gc_search_src_blk .section .text.zftl_get_gc_node,"ax",@progbits .align 2 .global zftl_get_gc_node .type zftl_get_gc_node, %function zftl_get_gc_node: and w1, w1, 65535 and w0, w0, 65535 cmp w1, 5 bne .L848 mov w1, w0 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 .L850: b _list_get_gc_head_node .L848: cmp w1, 2 mov w1, w0 bne .L849 adrp x0, .LANCHOR95 add x0, x0, :lo12:.LANCHOR95 b .L850 .L849: adrp x0, .LANCHOR90 add x0, x0, :lo12:.LANCHOR90 b .L850 .size zftl_get_gc_node, .-zftl_get_gc_node .section .text.zftl_insert_free_list,"ax",@progbits .align 2 .global zftl_insert_free_list .type zftl_insert_free_list, %function zftl_insert_free_list: and w1, w0, 65535 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x1, uxth 2 ldrb w0, [x0, 2] ands w0, w0, 24 bne .L852 adrp x2, .LANCHOR103 adrp x0, .LANCHOR104 add x2, x2, :lo12:.LANCHOR103 add x0, x0, :lo12:.LANCHOR104 .L854: b _insert_free_list .L852: cmp w0, 16 bne .L853 adrp x2, .LANCHOR105 adrp x0, .LANCHOR106 add x2, x2, :lo12:.LANCHOR105 add x0, x0, :lo12:.LANCHOR106 b .L854 .L853: adrp x2, .LANCHOR107 adrp x0, .LANCHOR108 add x2, x2, :lo12:.LANCHOR107 add x0, x0, :lo12:.LANCHOR108 b .L854 .size zftl_insert_free_list, .-zftl_insert_free_list .section .text.zftl_insert_data_list,"ax",@progbits .align 2 .global zftl_insert_data_list .type zftl_insert_data_list, %function zftl_insert_data_list: and w1, w0, 65535 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x1, uxth 2 ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 bne .L856 adrp x2, .LANCHOR97 adrp x0, .LANCHOR95 add x2, x2, :lo12:.LANCHOR97 add x0, x0, :lo12:.LANCHOR95 .L859: b _insert_data_list .L856: cmp w2, 96 bne .L857 adrp x2, .LANCHOR99 adrp x0, .LANCHOR90 add x2, x2, :lo12:.LANCHOR99 add x0, x0, :lo12:.LANCHOR90 b .L859 .L857: cmp w2, 160 bne .L855 adrp x2, .LANCHOR91 adrp x0, .LANCHOR92 add x2, x2, :lo12:.LANCHOR91 add x0, x0, :lo12:.LANCHOR92 b .L859 .L855: ret .size zftl_insert_data_list, .-zftl_insert_data_list .section .text.zftl_gc_get_free_sblk,"ax",@progbits .align 2 .global zftl_gc_get_free_sblk .type zftl_gc_get_free_sblk, %function zftl_gc_get_free_sblk: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR12 stp x21, x22, [sp, 32] and w21, w0, 65535 ldr x0, [x20, #:lo12:.LANCHOR12] and w22, w1, 65535 ldrh w19, [x0, 588] mov w0, 65535 cmp w19, w0 beq .L861 cbnz w21, .L861 mov w1, w19 adrp x0, .LC59 add x0, x0, :lo12:.LC59 bl printf ldr x0, [x20, #:lo12:.LANCHOR12] mov w1, -1 strh w1, [x0, 588] .L862: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L861: adrp x2, .LANCHOR105 adrp x20, .LANCHOR107 ldrh w0, [x2, #:lo12:.LANCHOR105] ldrh w1, [x20, #:lo12:.LANCHOR107] cmp w0, w1 bcc .L863 adrp x3, .LANCHOR103 ldrh w3, [x3, #:lo12:.LANCHOR103] cmp w3, w0 bls .L864 cbz w1, .L864 .L863: cbnz w21, .L865 lsr w1, w1, 2 .L866: adrp x0, .LANCHOR108 add x2, x20, :lo12:.LANCHOR107 add x0, x0, :lo12:.LANCHOR108 .L881: bl _list_pop_index_node and w19, w0, 65535 mov w0, 65535 cmp w19, w0 bne .L869 adrp x0, .LANCHOR103 ldrh w5, [x20, #:lo12:.LANCHOR107] mov w2, w22 mov w1, w19 ldrh w4, [x0, #:lo12:.LANCHOR103] adrp x0, .LANCHOR104 ldr x3, [x0, #:lo12:.LANCHOR104] adrp x0, .LC60 add x0, x0, :lo12:.LC60 bl printf .L869: cbz w21, .L862 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L862 adrp x4, .LANCHOR11 adrp x1, .LANCHOR9 uxtw x3, w19 ldr x1, [x1, #:lo12:.LANCHOR9] lsl x0, x3, 2 ldr x6, [x4, #:lo12:.LANCHOR11] add x2, x1, x0 ldr w4, [x1, x0] ldrh w6, [x6, x3, lsl 1] ldrb w2, [x2, 2] ldrh w5, [x1, x0] ubfx x4, x4, 11, 8 mov w1, w19 adrp x0, .LC61 ubfx x3, x2, 3, 2 and w5, w5, 2047 ubfx x2, x2, 5, 3 add x0, x0, :lo12:.LC61 bl printf b .L862 .L865: mov w1, 7 mul w1, w0, w1 lsr w1, w1, 3 b .L866 .L864: lsr w1, w0, 3 cmp w21, 0 adrp x0, .LANCHOR106 csel w1, w1, wzr, ne add x2, x2, :lo12:.LANCHOR105 add x0, x0, :lo12:.LANCHOR106 b .L881 .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk .section .text.zftl_get_free_sblk,"ax",@progbits .align 2 .global zftl_get_free_sblk .type zftl_get_free_sblk, %function zftl_get_free_sblk: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w1, 65535 str x21, [sp, 32] cmp w20, 5 bne .L883 adrp x2, .LANCHOR105 adrp x0, .LANCHOR107 ldrh w3, [x2, #:lo12:.LANCHOR105] ldrh w1, [x0, #:lo12:.LANCHOR107] cmp w3, w1 bcc .L884 adrp x4, .LANCHOR103 ldrh w4, [x4, #:lo12:.LANCHOR103] cmp w4, w3 bls .L885 cbz w1, .L885 .L884: add x2, x0, :lo12:.LANCHOR107 lsr w1, w1, 1 .L904: adrp x0, .LANCHOR108 add x0, x0, :lo12:.LANCHOR108 b .L903 .L885: adrp x0, .LANCHOR106 add x2, x2, :lo12:.LANCHOR105 add x0, x0, :lo12:.LANCHOR106 mov w1, 0 .L903: bl _list_pop_index_node and w19, w0, 65535 mov w0, 65535 cmp w19, w0 bne .L888 adrp x0, .LANCHOR107 mov w2, w20 mov w1, w19 ldrh w5, [x0, #:lo12:.LANCHOR107] adrp x0, .LANCHOR103 ldrh w4, [x0, #:lo12:.LANCHOR103] adrp x0, .LANCHOR104 ldr x3, [x0, #:lo12:.LANCHOR104] adrp x0, .LC60 add x0, x0, :lo12:.LC60 bl printf b .L888 .L883: adrp x21, .LANCHOR12 and w3, w0, 65535 ldr x0, [x21, #:lo12:.LANCHOR12] ldrh w19, [x0, 590] mov w0, 65535 cmp w19, w0 beq .L887 cmp w20, 1 beq .L887 mov w1, w19 adrp x0, .LC62 add x0, x0, :lo12:.LC62 bl printf ldr x0, [x21, #:lo12:.LANCHOR12] mov w1, -1 strh w1, [x0, 590] .L888: mov w0, w19 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .L887: adrp x2, .LANCHOR103 adrp x4, .LANCHOR107 ldrh w0, [x2, #:lo12:.LANCHOR103] ldrh w1, [x4, #:lo12:.LANCHOR107] cmp w0, w1 bcc .L889 adrp x5, .LANCHOR105 ldrh w5, [x5, #:lo12:.LANCHOR105] cmp w5, w0 bls .L890 cbz w1, .L890 .L889: bl get_ink_scaned_blk and w19, w0, 65535 mov w0, 65535 cmp w19, w0 bne .L888 cmp w20, 1 bne .L891 ldrh w3, [x4, #:lo12:.LANCHOR107] lsr w3, w3, 1 .L891: add x2, x4, :lo12:.LANCHOR107 mov w1, w3 b .L904 .L890: lsr w0, w0, 1 cmp w20, 1 csel w3, w0, w3, eq add x2, x2, :lo12:.LANCHOR103 adrp x0, .LANCHOR104 mov w1, w3 add x0, x0, :lo12:.LANCHOR104 b .L903 .size zftl_get_free_sblk, .-zftl_get_free_sblk .section .text.zftl_remove_data_node,"ax",@progbits .align 2 .global zftl_remove_data_node .type zftl_remove_data_node, %function zftl_remove_data_node: and w1, w0, 65535 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x1, uxth 2 ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 bne .L906 adrp x2, .LANCHOR97 adrp x0, .LANCHOR95 add x2, x2, :lo12:.LANCHOR97 add x0, x0, :lo12:.LANCHOR95 .L909: b _list_remove_node .L906: cmp w2, 96 bne .L907 adrp x2, .LANCHOR99 adrp x0, .LANCHOR90 add x2, x2, :lo12:.LANCHOR99 add x0, x0, :lo12:.LANCHOR90 b .L909 .L907: cmp w2, 160 bne .L905 adrp x2, .LANCHOR91 adrp x0, .LANCHOR92 add x2, x2, :lo12:.LANCHOR91 add x0, x0, :lo12:.LANCHOR92 b .L909 .L905: ret .size zftl_remove_data_node, .-zftl_remove_data_node .section .text.zftl_remove_free_node,"ax",@progbits .align 2 .global zftl_remove_free_node .type zftl_remove_free_node, %function zftl_remove_free_node: and w1, w0, 65535 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x1, uxth 2 ldrb w0, [x0, 2] ands w0, w0, 24 bne .L911 adrp x2, .LANCHOR103 adrp x0, .LANCHOR104 add x2, x2, :lo12:.LANCHOR103 add x0, x0, :lo12:.LANCHOR104 .L913: b _list_remove_node .L911: cmp w0, 16 bne .L912 adrp x2, .LANCHOR105 adrp x0, .LANCHOR106 add x2, x2, :lo12:.LANCHOR105 add x0, x0, :lo12:.LANCHOR106 b .L913 .L912: adrp x2, .LANCHOR107 adrp x0, .LANCHOR108 add x2, x2, :lo12:.LANCHOR107 add x0, x0, :lo12:.LANCHOR108 b .L913 .size zftl_remove_free_node, .-zftl_remove_free_node .section .text.zftl_list_update_data_list,"ax",@progbits .align 2 .global zftl_list_update_data_list .type zftl_list_update_data_list, %function zftl_list_update_data_list: and w1, w0, 65535 adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x1, uxth 2 ldrb w2, [x0, 2] and w2, w2, 224 cmp w2, 64 bne .L915 adrp x2, .LANCHOR97 adrp x0, .LANCHOR95 add x2, x2, :lo12:.LANCHOR97 add x0, x0, :lo12:.LANCHOR95 .L918: b _list_update_data_list .L915: cmp w2, 96 bne .L916 adrp x2, .LANCHOR99 adrp x0, .LANCHOR90 add x2, x2, :lo12:.LANCHOR99 add x0, x0, :lo12:.LANCHOR90 b .L918 .L916: cmp w2, 160 bne .L914 adrp x2, .LANCHOR91 adrp x0, .LANCHOR92 add x2, x2, :lo12:.LANCHOR91 add x0, x0, :lo12:.LANCHOR92 b .L918 .L914: ret .size zftl_list_update_data_list, .-zftl_list_update_data_list .section .text.print_list_info,"ax",@progbits .align 2 .global print_list_info .type print_list_info, %function print_list_info: sub sp, sp, #96 stp x29, x30, [sp, 32] add x29, sp, 32 ldrh w2, [x1] ldr x1, [x0] stp x19, x20, [sp, 48] mov x19, x0 stp x21, x22, [sp, 64] adrp x0, .LC63 stp x23, x24, [sp, 80] add x0, x0, :lo12:.LC63 bl printf ldr x19, [x19] cbz x19, .L919 mov x24, -6148914691236517206 adrp x22, .LC64 adrp x21, .LANCHOR109 add x22, x22, :lo12:.LC64 add x21, x21, :lo12:.LANCHOR109 mov w20, 0 adrp x23, .LANCHOR4 movk x24, 0xaaab, lsl 0 .L923: ldr x2, [x23, #:lo12:.LANCHOR4] adrp x1, .LANCHOR9 adrp x8, .LANCHOR11 ldrh w5, [x19, 4] sub x2, x19, x2 ldr x1, [x1, #:lo12:.LANCHOR9] asr x2, x2, 1 ldr x8, [x8, #:lo12:.LANCHOR11] ldrh w4, [x19, 2] mul x2, x2, x24 and x7, x2, 65535 and w2, w2, 65535 lsl x0, x7, 2 add x3, x1, x0 ldrh w7, [x8, x7, lsl 1] ldrb w6, [x3, 2] ldrh w3, [x19] str w7, [sp, 16] ldrh w7, [x1, x0] and w7, w7, 2047 str w7, [sp, 8] ubfx x7, x6, 3, 2 ubfx x6, x6, 5, 3 ldr w0, [x1, x0] mov w1, w20 ubfx x0, x0, 11, 8 str w0, [sp] mov x0, x22 bl printf ldrh w19, [x19] mov w0, 65535 cmp w19, w0 beq .L919 ldr x0, [x23, #:lo12:.LANCHOR4] mov w1, 6 add w20, w20, 1 and w20, w20, 65535 umaddl x19, w19, w1, x0 ldrh w0, [x21] cmp w0, w20 bcs .L923 .L919: ldp x19, x20, [sp, 48] ldp x21, x22, [sp, 64] ldp x23, x24, [sp, 80] ldp x29, x30, [sp, 32] add sp, sp, 96 ret .size print_list_info, .-print_list_info .section .text.dump_all_list_info,"ax",@progbits .align 2 .global dump_all_list_info .type dump_all_list_info, %function dump_all_list_info: stp x29, x30, [sp, -16]! adrp x1, .LANCHOR103 adrp x0, .LANCHOR104 add x1, x1, :lo12:.LANCHOR103 add x29, sp, 0 add x0, x0, :lo12:.LANCHOR104 bl print_list_info adrp x1, .LANCHOR105 adrp x0, .LANCHOR106 add x1, x1, :lo12:.LANCHOR105 add x0, x0, :lo12:.LANCHOR106 bl print_list_info adrp x1, .LANCHOR107 adrp x0, .LANCHOR108 add x1, x1, :lo12:.LANCHOR107 add x0, x0, :lo12:.LANCHOR108 bl print_list_info adrp x1, .LANCHOR97 adrp x0, .LANCHOR95 add x1, x1, :lo12:.LANCHOR97 add x0, x0, :lo12:.LANCHOR95 bl print_list_info adrp x1, .LANCHOR99 adrp x0, .LANCHOR90 add x1, x1, :lo12:.LANCHOR99 add x0, x0, :lo12:.LANCHOR90 bl print_list_info ldp x29, x30, [sp], 16 adrp x1, .LANCHOR91 adrp x0, .LANCHOR92 add x1, x1, :lo12:.LANCHOR91 add x0, x0, :lo12:.LANCHOR92 b print_list_info .size dump_all_list_info, .-dump_all_list_info .section .text.ftl_tmp_into_update,"ax",@progbits .align 2 .global ftl_tmp_into_update .type ftl_tmp_into_update, %function ftl_tmp_into_update: adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w1, [x0, 16] cmp w1, 2048 bls .L928 ldr w2, [x0, 20] add w2, w2, w1, lsr 11 and w1, w1, 2047 stp w1, w2, [x0, 16] .L928: ldr w1, [x0, 24] cmp w1, 2048 bls .L929 ldr w2, [x0, 28] add w2, w2, w1, lsr 11 and w1, w1, 2047 stp w1, w2, [x0, 24] .L929: ldr w1, [x0, 32] cmp w1, 1024 bls .L930 ldr w2, [x0, 36] add w2, w2, w1, lsr 10 and w1, w1, 1023 stp w1, w2, [x0, 32] .L930: ldr w1, [x0, 40] cmp w1, 1024 bls .L927 ldr w2, [x0, 44] add w2, w2, w1, lsr 10 and w1, w1, 1023 stp w1, w2, [x0, 40] .L927: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .section .text.ftl_get_blk_list_in_sblk,"ax",@progbits .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: adrp x2, .LANCHOR9 and w0, w0, 65535 mov w7, 24 adrp x8, .LANCHOR74 ldr x2, [x2, #:lo12:.LANCHOR9] add x8, x8, :lo12:.LANCHOR74 mov w3, 0 add x2, x2, x0, uxth 2 ldrb w13, [x2, 3] adrp x2, .LANCHOR79 ldrb w11, [x2, #:lo12:.LANCHOR79] adrp x2, .LANCHOR75 ldrb w6, [x2, #:lo12:.LANCHOR75] adrp x2, .LANCHOR31 ldrb w2, [x2, #:lo12:.LANCHOR31] sub w7, w7, w2 and w2, w6, 65535 mul w0, w0, w2 sub w2, w2, #1 sxth w5, w2 and w4, w0, 65535 mov w0, 0 .L933: cmp w3, w11 blt .L937 sxtw x2, w0 mov w3, -1 .L938: cmp w11, w2 bgt .L939 ret .L937: asr w2, w13, w3 tbnz x2, 0, .L934 sdiv w2, w3, w6 ldrh w10, [x8] sbfiz x12, x0, 1, 32 cmp w6, 1 sub w10, w7, w10 lsl w2, w2, w10 add w2, w4, w2 and w2, w2, 65535 bhi .L935 .L940: add w0, w0, 1 strh w2, [x1, x12] .L934: add w3, w3, 1 b .L933 .L935: and w10, w5, w3 add w2, w2, w10 b .L940 .L939: strh w3, [x1, x2, lsl 1] add x2, x2, 1 b .L938 .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .section .text.ftl_erase_phy_blk,"ax",@progbits .align 2 .global ftl_erase_phy_blk .type ftl_erase_phy_blk, %function ftl_erase_phy_blk: stp x29, x30, [sp, -48]! and w0, w0, 65535 add x29, sp, 0 stp x21, x22, [sp, 32] mov w21, w1 adrp x1, .LANCHOR31 stp x19, x20, [sp, 16] adrp x22, .LANCHOR111 ldrb w19, [x1, #:lo12:.LANCHOR31] mov w1, 24 sub w19, w1, w19 adrp x1, .LANCHOR74 ldrh w1, [x1, #:lo12:.LANCHOR74] sub w1, w19, w1 mov w19, 1 lsl w19, w19, w1 sub w19, w19, #1 and w19, w19, w0 asr w20, w0, w1 adrp x0, .LANCHOR80 sxth w19, w19 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L942 adrp x0, .LANCHOR81 ldrb w0, [x0, #:lo12:.LANCHOR81] cbnz w0, .L942 ldrh w2, [x22, #:lo12:.LANCHOR111] cmp w21, 0 cset w1, eq mov w0, w20 mul w2, w2, w19 bl flash_erase_block_en .L942: ldrh w2, [x22, #:lo12:.LANCHOR111] mov w1, w21 mov w0, w20 ldp x21, x22, [sp, 32] mul w2, w2, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b flash_erase_block_en .size ftl_erase_phy_blk, .-ftl_erase_phy_blk .section .text.ftl_erase_sblk,"ax",@progbits .align 2 .global ftl_erase_sblk .type ftl_erase_sblk, %function ftl_erase_sblk: stp x29, x30, [sp, -176]! add x29, sp, 0 stp x23, x24, [sp, 48] adrp x23, .LANCHOR9 stp x25, x26, [sp, 64] and w26, w0, 65535 ldr x0, [x23, #:lo12:.LANCHOR9] adrp x25, .LANCHOR112 stp x21, x22, [sp, 32] ubfiz x22, x26, 2, 16 add x0, x0, x22 stp x27, x28, [sp, 80] stp x19, x20, [sp, 16] adrp x24, .LANCHOR75 mov w20, w1 add x25, x25, :lo12:.LANCHOR112 ldrb w28, [x0, 3] add x24, x24, :lo12:.LANCHOR75 add x27, x29, 112 mov w19, 0 .L948: ldrb w0, [x25] cmp w19, w0 bge .L959 ldrb w1, [x24] adrp x0, .LANCHOR111 mov w21, 0 ldrh w3, [x0, #:lo12:.LANCHOR111] sub w4, w1, #1 mov w0, 0 mul w6, w19, w1 mul w5, w26, w1 b .L960 .L950: add w2, w0, w6 asr w2, w28, w2 tbnz x2, 0, .L949 and w2, w0, w4 add w2, w2, w5 mul w2, w2, w3 str w2, [x27, w21, sxtw 2] add w21, w21, 1 .L949: add w0, w0, 1 .L960: cmp w0, w1 blt .L950 cmp w1, 4 bne .L951 mov x3, 0 .L952: cmp w21, w3 bgt .L953 .L954: add w19, w19, 1 b .L948 .L953: ldr w2, [x27, x3, lsl 2] mov w1, w20 str x3, [x29, 104] mov w0, w19 bl flash_erase_block_en ldr x3, [x29, 104] add x3, x3, 1 b .L952 .L951: cmp w21, 2 bne .L955 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L956 adrp x0, .LANCHOR81 ldrb w0, [x0, #:lo12:.LANCHOR81] cbnz w0, .L956 ldp w2, w3, [x29, 112] cmp w20, 0 cset w1, eq mov w0, w19 bl flash_erase_duplane_block .L956: ldp w2, w3, [x29, 112] mov w1, w20 mov w0, w19 bl flash_erase_duplane_block b .L954 .L955: cmp w21, 1 bne .L954 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L958 adrp x0, .LANCHOR81 ldrb w0, [x0, #:lo12:.LANCHOR81] cbnz w0, .L958 ldr w2, [x29, 112] cmp w20, 0 cset w1, eq mov w0, w19 bl flash_erase_block_en .L958: ldr w2, [x29, 112] mov w1, w20 mov w0, w19 bl flash_erase_block_en b .L954 .L959: adrp x2, .LANCHOR110 ldr x3, [x23, #:lo12:.LANCHOR9] cbnz w20, .L961 ldrh w1, [x3, x22] add w0, w1, 1 and w0, w0, 2047 bfi w1, w0, 0, 11 strh w1, [x3, x22] ldr x1, [x2, #:lo12:.LANCHOR110] ldr w2, [x1, 84] add w2, w2, 1 str w2, [x1, 84] ldrh w2, [x1, 96] cmp w2, w0 bge .L963 strh w0, [x1, 96] .L963: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret .L961: ldr w1, [x3, x22] ubfx x0, x1, 11, 8 add w0, w0, 1 and w0, w0, 255 bfi w1, w0, 11, 8 str w1, [x3, x22] and w0, w0, 65535 ldr x1, [x2, #:lo12:.LANCHOR110] ldr w2, [x1, 80] add w2, w2, 1 str w2, [x1, 80] ldrh w2, [x1, 98] cmp w2, w0 bcs .L963 strh w0, [x1, 98] b .L963 .size ftl_erase_sblk, .-ftl_erase_sblk .section .text.ftl_alloc_sys_blk,"ax",@progbits .align 2 .global ftl_alloc_sys_blk .type ftl_alloc_sys_blk, %function ftl_alloc_sys_blk: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR110 add x29, sp, 0 ldr x1, [x0, #:lo12:.LANCHOR110] ldrh w2, [x1, 136] str x19, [sp, 16] mov x19, x0 cmp w2, 63 bls .L973 strh wzr, [x1, 136] .L973: ldrh w0, [x1, 112] cbnz w0, .L974 adrp x1, .LANCHOR113 adrp x0, .LC0 mov w2, 1359 add x1, x1, :lo12:.LANCHOR113 add x0, x0, :lo12:.LC0 bl printf .L974: ldr x1, [x19, #:lo12:.LANCHOR110] mov w5, 65535 .L977: ldrh w2, [x1, 136] .L975: mov w3, w2 cmp w2, 63 ble .L976 strh wzr, [x1, 136] b .L977 .L976: add x4, x2, 1 add x0, x1, x4, lsl 1 ldrh w0, [x0, 158] cmp w0, w5 bne .L980 mov x2, x4 b .L975 .L980: add x3, x1, x3, sxtw 1 mov w4, -1 ldr x19, [sp, 16] strh w4, [x3, 160] strh w2, [x1, 136] ldrh w2, [x1, 112] sub w2, w2, #1 strh w2, [x1, 112] ldp x29, x30, [sp], 32 ret .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk .section .text.ftl_free_sys_blk,"ax",@progbits .align 2 .global ftl_free_sys_blk .type ftl_free_sys_blk, %function ftl_free_sys_blk: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 65535 adrp x0, .LANCHOR110 mov x19, x0 ldr x1, [x0, #:lo12:.LANCHOR110] ldrh w2, [x1, 138] cmp w2, 63 bls .L983 strh wzr, [x1, 138] .L983: ldrh w0, [x1, 112] cmp w0, 63 bls .L984 adrp x1, .LANCHOR114 adrp x0, .LC0 mov w2, 1386 add x1, x1, :lo12:.LANCHOR114 add x0, x0, :lo12:.LC0 bl printf .L984: ldr x0, [x19, #:lo12:.LANCHOR110] mov w4, 65535 .L987: ldrh w1, [x0, 138] .L985: mov w2, w1 cmp w1, 63 ble .L986 strh wzr, [x0, 138] b .L987 .L986: add x3, x1, 1 add x5, x0, x3, lsl 1 ldrh w5, [x5, 158] cmp w5, w4 bne .L988 add x2, x0, x2, sxtw 1 strh w20, [x2, 160] strh w1, [x0, 138] ldrh w1, [x0, 112] ldp x19, x20, [sp, 16] add w1, w1, 1 strh w1, [x0, 112] ldp x29, x30, [sp], 32 ret .L988: mov x1, x3 b .L985 .size ftl_free_sys_blk, .-ftl_free_sys_blk .section .text.ftl_info_data_recovery,"ax",@progbits .align 2 .global ftl_info_data_recovery .type ftl_info_data_recovery, %function ftl_info_data_recovery: ldrh w2, [x0] mov w1, 65535 cmp w2, w1 beq .L1001 stp x29, x30, [sp, -48]! adrp x1, .LANCHOR9 add x29, sp, 0 stp x19, x20, [sp, 16] ubfiz x19, x2, 2, 16 ldr x20, [x1, #:lo12:.LANCHOR9] str x21, [sp, 32] add x21, x20, x19 ldrb w1, [x21, 2] tst w1, 224 bne .L991 ldrb w0, [x0, 4] bfi w1, w0, 5, 3 strb w1, [x21, 2] mov w0, w2 bl zftl_remove_free_node ldrb w0, [x21, 2] adrp x1, .LANCHOR110 ldr x3, [x1, #:lo12:.LANCHOR110] tbz x0, 3, .L995 ldrh w2, [x3, 116] sub w2, w2, #1 strh w2, [x3, 116] .L996: and w0, w0, 224 cmp w0, 160 bne .L998 ldr w0, [x20, x19] ldr x1, [x1, #:lo12:.LANCHOR110] ubfx x2, x0, 11, 8 add w2, w2, 1 bfi w0, w2, 11, 8 str w0, [x20, x19] ldrh w0, [x1, 120] sub w0, w0, #1 strh w0, [x1, 120] .L991: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .L995: tst w0, 24 bne .L997 ldrh w2, [x3, 114] sub w2, w2, #1 strh w2, [x3, 114] b .L996 .L997: ldrh w2, [x3, 118] sub w2, w2, #1 strh w2, [x3, 118] b .L996 .L998: ldrh w2, [x20, x19] cmp w0, 64 add w3, w2, 1 bfi w2, w3, 0, 11 strh w2, [x20, x19] bne .L999 ldr x1, [x1, #:lo12:.LANCHOR110] ldrh w0, [x1, 122] sub w0, w0, #1 strh w0, [x1, 122] b .L991 .L999: cmp w0, 96 bne .L991 ldr x1, [x1, #:lo12:.LANCHOR110] ldrh w0, [x1, 124] sub w0, w0, #1 strh w0, [x1, 124] b .L991 .L1001: ret .size ftl_info_data_recovery, .-ftl_info_data_recovery .section .text.ftl_get_ppa_from_index,"ax",@progbits .align 2 .global ftl_get_ppa_from_index .type ftl_get_ppa_from_index, %function ftl_get_ppa_from_index: stp x29, x30, [sp, -32]! adrp x1, .LANCHOR12 adrp x3, .LANCHOR79 and w0, w0, 65535 add x29, sp, 0 ldr x2, [x1, #:lo12:.LANCHOR12] adrp x1, .LANCHOR94 ldrb w3, [x3, #:lo12:.LANCHOR79] ldrh w1, [x1, #:lo12:.LANCHOR94] stp x19, x20, [sp, 16] mul w1, w1, w3 cmp w0, w1 bge .L1005 add x2, x2, 16 .L1006: ldrb w1, [x2, 9] sdiv w19, w0, w1 msub w0, w19, w1, w0 add x0, x2, x0, uxth 1 ldrh w20, [x0, 16] mov w0, 65535 cmp w20, w0 bne .L1007 adrp x1, .LANCHOR115 adrp x0, .LC0 mov w2, 1945 add x1, x1, :lo12:.LANCHOR115 add x0, x0, :lo12:.LC0 bl printf .L1007: adrp x0, .LANCHOR111 ldrh w0, [x0, #:lo12:.LANCHOR111] madd w0, w0, w20, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L1005: sub w0, w0, w1 add x2, x2, 48 and w0, w0, 65535 b .L1006 .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index .section .text.lpa_hash_get_ppa,"ax",@progbits .align 2 .global lpa_hash_get_ppa .type lpa_hash_get_ppa, %function lpa_hash_get_ppa: and x2, x0, 255 adrp x1, .LANCHOR116 add x1, x1, :lo12:.LANCHOR116 mov w3, 65535 ldrh w1, [x1, x2, lsl 1] adrp x2, .LANCHOR117 ldr x4, [x2, #:lo12:.LANCHOR117] adrp x2, .LANCHOR118 ldr x5, [x2, #:lo12:.LANCHOR118] .L1010: cmp w1, w3 bne .L1012 mov w0, -1 ret .L1012: uxtw x2, w1 ldr w6, [x4, x2, lsl 2] cmp w0, w6 bne .L1011 mov w0, w1 b ftl_get_ppa_from_index .L1011: ldrh w1, [x5, x2, lsl 1] b .L1010 .size lpa_hash_get_ppa, .-lpa_hash_get_ppa .section .text.ftl_get_new_free_page,"ax",@progbits .align 2 .global ftl_get_new_free_page .type ftl_get_new_free_page, %function ftl_get_new_free_page: stp x29, x30, [sp, -32]! add x29, sp, 0 ldrh w1, [x0] str x19, [sp, 16] mov x19, x0 mov w0, 65535 cmp w1, w0 bne .L1014 adrp x1, .LANCHOR119 adrp x0, .LC0 mov w2, 2088 add x1, x1, :lo12:.LANCHOR119 add x0, x0, :lo12:.LC0 bl printf .L1014: adrp x0, .LANCHOR94 ldrh w1, [x19, 2] ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w1, w0 bne .L1015 adrp x1, .LANCHOR119 adrp x0, .LC0 mov w2, 2089 add x1, x1, :lo12:.LANCHOR119 add x0, x0, :lo12:.LC0 bl printf .L1015: ldrh w0, [x19, 6] cbnz w0, .L1016 adrp x1, .LANCHOR119 adrp x0, .LC0 mov w2, 2090 add x1, x1, :lo12:.LANCHOR119 add x0, x0, :lo12:.LC0 bl printf .L1016: ldrb w0, [x19, 5] mov w2, 65535 add x0, x0, 8 ldrh w3, [x19, x0, lsl 1] adrp x0, .LANCHOR79 ldrb w4, [x0, #:lo12:.LANCHOR79] .L1017: cmp w3, w2 ldrb w1, [x19, 5] beq .L1019 adrp x0, .LANCHOR111 add w1, w1, 1 and w1, w1, 255 ldrh w2, [x19, 2] ldrh w0, [x0, #:lo12:.LANCHOR111] cmp w4, w1 strb w1, [x19, 5] mul w0, w0, w3 ldrh w3, [x19, 6] sub w3, w3, #1 strh w3, [x19, 6] ldrh w3, [x19, 10] orr w0, w0, w2 add w3, w3, 1 strh w3, [x19, 10] bne .L1013 add w2, w2, 1 strb wzr, [x19, 5] strh w2, [x19, 2] .L1013: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .L1019: add w1, w1, 1 and w1, w1, 255 strb w1, [x19, 5] cmp w1, w4 bne .L1018 ldrh w0, [x19, 2] strb wzr, [x19, 5] add w0, w0, 1 strh w0, [x19, 2] .L1018: ldrb w0, [x19, 5] add x0, x0, 8 ldrh w3, [x19, x0, lsl 1] b .L1017 .size ftl_get_new_free_page, .-ftl_get_new_free_page .section .text.ftl_ext_alloc_new_blk,"ax",@progbits .align 2 .global ftl_ext_alloc_new_blk .type ftl_ext_alloc_new_blk, %function ftl_ext_alloc_new_blk: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] bl ftl_alloc_sys_blk and w0, w0, 65535 mov w1, 65533 mov w19, w0 sub w0, w0, #1 cmp w1, w0, uxth bcs .L1023 adrp x1, .LANCHOR120 adrp x0, .LC0 mov w2, 2125 add x1, x1, :lo12:.LANCHOR120 add x0, x0, :lo12:.LC0 bl printf .L1023: adrp x20, .LANCHOR110 mov w1, 0 mov w0, w19 bl ftl_erase_phy_blk ldr x0, [x20, #:lo12:.LANCHOR110] ldrh w0, [x0, 130] bl ftl_free_sys_blk ldr x0, [x20, #:lo12:.LANCHOR110] strh w19, [x0, 130] strh wzr, [x0, 140] mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk .section .text.ftl_total_vpn_update,"ax",@progbits .align 2 .global ftl_total_vpn_update .type ftl_total_vpn_update, %function ftl_total_vpn_update: adrp x2, .LANCHOR121 mov x3, x2 ldrh w1, [x2, #:lo12:.LANCHOR121] cmp w1, 4 bhi .L1026 cbnz w0, .L1026 add w1, w1, 1 strh w1, [x2, #:lo12:.LANCHOR121] ret .L1026: adrp x0, .LANCHOR8 strh wzr, [x3, #:lo12:.LANCHOR121] mov x1, 0 mov w2, 0 ldrh w5, [x0, #:lo12:.LANCHOR8] adrp x0, .LANCHOR11 mov w8, 65535 ldr x6, [x0, #:lo12:.LANCHOR11] adrp x0, .LANCHOR9 ldr x7, [x0, #:lo12:.LANCHOR9] mov w0, 0 .L1028: cmp w5, w1, uxth bhi .L1031 adrp x1, .LANCHOR12 ldr x1, [x1, #:lo12:.LANCHOR12] str w2, [x1, 524] adrp x2, .LANCHOR110 str w0, [x1, 528] ldr x2, [x2, #:lo12:.LANCHOR110] ldrh w2, [x2, 120] cbz w2, .L1025 udiv w0, w0, w2 str w0, [x1, 532] .L1025: ret .L1031: ldrh w3, [x6, x1, lsl 1] cmp w3, w8 beq .L1029 add x4, x7, x1, lsl 2 ldrb w4, [x4, 2] and w4, w4, 224 cmp w4, 160 bne .L1030 add w0, w0, w3 .L1029: add x1, x1, 1 b .L1028 .L1030: add w2, w2, w3 b .L1029 .size ftl_total_vpn_update, .-ftl_total_vpn_update .section .text.ftl_vpn_update,"ax",@progbits .align 2 .global ftl_vpn_update .type ftl_vpn_update, %function ftl_vpn_update: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] and w19, w0, 65535 mov w0, w19 bl zftl_list_update_data_list adrp x0, .LANCHOR11 ubfiz x19, x19, 1, 16 ldr x0, [x0, #:lo12:.LANCHOR11] ldrh w0, [x0, x19] cbnz w0, .L1038 adrp x1, .LANCHOR122 mov w0, 1 str w0, [x1, #:lo12:.LANCHOR122] .L1036: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .L1038: mov w0, 0 b .L1036 .size ftl_vpn_update, .-ftl_vpn_update .section .text.ftl_vpn_decrement,"ax",@progbits .align 2 .global ftl_vpn_decrement .type ftl_vpn_decrement, %function ftl_vpn_decrement: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 65535 mov w0, 65535 cmp w19, w0 beq .L1041 adrp x0, .LANCHOR11 uxtw x1, w19 lsl x2, x1, 1 ldr x3, [x0, #:lo12:.LANCHOR11] ldrh w0, [x3, x2] cbnz w0, .L1042 adrp x0, .LANCHOR9 mov w2, 0 ldr x0, [x0, #:lo12:.LANCHOR9] add x1, x0, x1, lsl 2 adrp x0, .LC65 add x0, x0, :lo12:.LC65 ldrb w3, [x1, 2] mov w1, w19 ubfx x3, x3, 5, 3 bl printf .L1047: mov w0, 0 b .L1040 .L1042: sub w0, w0, #1 strh w0, [x3, x2] .L1041: adrp x20, .LANCHOR72 ldrh w0, [x20, #:lo12:.LANCHOR72] cmp w19, w0 beq .L1047 mov w1, 65535 cmp w0, w1 bne .L1044 strh w19, [x20, #:lo12:.LANCHOR72] b .L1047 .L1044: bl ftl_vpn_update cmp w0, 0 adrp x1, .LANCHOR123 cset w0, ne ldrh w3, [x20, #:lo12:.LANCHOR72] ldrh w2, [x1, #:lo12:.LANCHOR123] strh w19, [x20, #:lo12:.LANCHOR72] add w2, w2, 1 and w2, w2, 65535 cmp w2, 7 csel w2, w2, wzr, ls strh w2, [x1, #:lo12:.LANCHOR123] and x2, x2, 65535 adrp x1, .LANCHOR73 add x1, x1, :lo12:.LANCHOR73 strh w3, [x1, x2, lsl 1] .L1040: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_vpn_decrement, .-ftl_vpn_decrement .section .text.lpa_hash_update_ppa,"ax",@progbits .align 2 .global lpa_hash_update_ppa .type lpa_hash_update_ppa, %function lpa_hash_update_ppa: adrp x3, .LANCHOR116 and x5, x0, 255 add x4, x3, :lo12:.LANCHOR116 mov w7, 65535 and w2, w2, 65535 mov w12, w7 ldrh w6, [x4, x5, lsl 1] adrp x4, .LANCHOR117 ldr x8, [x4, #:lo12:.LANCHOR117] adrp x4, .LANCHOR118 ldr x4, [x4, #:lo12:.LANCHOR118] .L1050: cmp w6, w12 beq .L1054 uxtw x11, w6 lsl x10, x11, 2 add x13, x8, x10 ldr w10, [x8, x10] cmp w0, w10 lsl x10, x11, 1 bne .L1051 mov w6, -1 str w6, [x13] cmp w7, w12 bne .L1052 add x6, x3, :lo12:.LANCHOR116 ldrh w7, [x4, x10] strh w7, [x6, x5, lsl 1] .L1053: mov w6, -1 strh w6, [x4, x11, lsl 1] .L1054: uxtw x6, w2 add x3, x3, :lo12:.LANCHOR116 cmn w1, #1 str w0, [x8, x6, lsl 2] ldrh w0, [x3, x5, lsl 1] strh w2, [x3, x5, lsl 1] strh w0, [x4, x6, lsl 1] beq .L1061 stp x29, x30, [sp, -16]! adrp x0, .LANCHOR74 add x29, sp, 0 ldrh w3, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR31 ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 lsr w1, w1, w3 sub w0, w0, w2 sub w2, w0, w3 mov w0, 1 lsl w0, w0, w2 sub w0, w0, #1 and w1, w0, w1 adrp x0, .LANCHOR75 ldrb w0, [x0, #:lo12:.LANCHOR75] udiv w0, w1, w0 bl ftl_vpn_decrement mov w0, -1 ldp x29, x30, [sp], 16 ret .L1052: ldrh w6, [x4, x10] strh w6, [x4, w7, uxtw 1] b .L1053 .L1051: mov w7, w6 ldrh w6, [x4, x10] b .L1050 .L1061: mov w0, -1 ret .size lpa_hash_update_ppa, .-lpa_hash_update_ppa .section .text.ftl_mask_bad_block,"ax",@progbits .align 2 .global ftl_mask_bad_block .type ftl_mask_bad_block, %function ftl_mask_bad_block: stp x29, x30, [sp, -32]! adrp x1, .LANCHOR31 mov w6, 24 mov w4, 1 add x29, sp, 0 ldrb w1, [x1, #:lo12:.LANCHOR31] stp x19, x20, [sp, 16] sub w6, w6, w1 lsl w1, w4, w1 sub w1, w1, #1 lsr w2, w0, w6 and w1, w1, w2 adrp x2, .LANCHOR75 and w1, w1, 255 ldrb w5, [x2, #:lo12:.LANCHOR75] cmp w5, 1 mul w2, w1, w5 and w19, w2, 255 adrp x2, .LANCHOR74 ldrh w3, [x2, #:lo12:.LANCHOR74] lsr w0, w0, w3 sub w3, w6, w3 lsl w3, w4, w3 sub w3, w3, #1 and w3, w3, w0 and w4, w3, 65535 udiv w3, w3, w5 and w20, w3, 65535 bls .L1065 sub w2, w5, #1 and w2, w2, w4 add w2, w19, w2 and w19, w2, 255 .L1065: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 14, .L1066 adrp x0, .LC66 and w3, w3, 65535 mov w2, w19 add x0, x0, :lo12:.LC66 bl printf .L1066: adrp x0, .LANCHOR8 ldrh w0, [x0, #:lo12:.LANCHOR8] cmp w0, w20 bls .L1064 adrp x0, .LANCHOR9 mov w2, 1 lsl w2, w2, w19 ldr x0, [x0, #:lo12:.LANCHOR9] add x20, x0, x20, uxth 2 ldrb w19, [x20, 3] orr w2, w2, w19 strb w2, [x20, 3] .L1064: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_mask_bad_block, .-ftl_mask_bad_block .section .text.gc_free_bad_sblk,"ax",@progbits .align 2 .global gc_free_bad_sblk .type gc_free_bad_sblk, %function gc_free_bad_sblk: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x23, x24, [sp, 48] and w23, w0, 65535 str x27, [sp, 80] adrp x27, .LANCHOR70 add x0, x27, :lo12:.LANCHOR70 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] ldr w0, [x0, 2200] cbz w0, .L1087 adrp x22, .LC67 mov w24, 20041 add x22, x22, :lo12:.LC67 mov w26, 0 movk w24, 0x444b, lsl 16 .L1074: adrp x0, .LANCHOR79 ldrb w0, [x0, #:lo12:.LANCHOR79] cmp w0, w26 bhi .L1084 .L1087: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .L1084: adrp x0, .LANCHOR75 adrp x1, .LANCHOR31 adrp x21, .LANCHOR74 ldrb w2, [x0, #:lo12:.LANCHOR75] ldrb w3, [x1, #:lo12:.LANCHOR31] mov w1, 24 and w0, w2, 65535 cmp w2, 1 sub w1, w1, w3 ldrh w3, [x21, #:lo12:.LANCHOR74] sdiv w19, w26, w2 sub w1, w1, w3 lsl w19, w19, w1 madd w19, w23, w0, w19 and w19, w19, 65535 bls .L1075 sub w0, w0, #1 and w0, w0, w26 add w19, w19, w0 and w19, w19, 65535 .L1075: adrp x25, .LANCHOR124 add x25, x25, :lo12:.LANCHOR124 mov w20, 0 .L1076: add x0, x27, :lo12:.LANCHOR70 ldr w1, [x0, 2200] cmp w20, w1 bcc .L1083 add w26, w26, 1 and w26, w26, 65535 b .L1074 .L1083: add x0, x0, x20, sxtw 1 ldrh w0, [x0, 2204] cmp w0, w19 bne .L1077 mov w1, w19 mov x0, x22 bl printf ldrb w0, [x25] cbnz w0, .L1078 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L1079 .L1078: adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w0, [x0, 156] cmp w0, w24 beq .L1080 .L1079: ldrh w0, [x21, #:lo12:.LANCHOR74] lsl w0, w19, w0 bl ftl_mask_bad_block .L1080: add x1, x27, :lo12:.LANCHOR70 mov w0, w20 ldr w2, [x1, 2200] .L1081: cmp w0, w2 bcc .L1082 add x0, x27, :lo12:.LANCHOR70 sub w2, w2, #1 str w2, [x0, 2200] .L1077: add w20, w20, 1 and w20, w20, 65535 b .L1076 .L1082: add w3, w0, 1 add x0, x1, x0, sxtw 1 add x4, x1, x3, sxtw 1 ldrh w4, [x4, 2204] strh w4, [x0, 2204] and w0, w3, 65535 b .L1081 .size gc_free_bad_sblk, .-gc_free_bad_sblk .section .text.ftl_free_sblk,"ax",@progbits .align 2 .global ftl_free_sblk .type ftl_free_sblk, %function ftl_free_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x23, x24, [sp, 48] adrp x23, .LANCHOR9 and x24, x0, 65535 stp x19, x20, [sp, 16] ldr x3, [x23, #:lo12:.LANCHOR9] lsl x19, x24, 2 stp x21, x22, [sp, 32] mov x21, x24 add x20, x3, x19 ldrb w0, [x20, 2] ubfx x22, x0, 5, 3 tbz x0, 3, .L1094 adrp x2, .LANCHOR110 ldrh w1, [x3, x19] adrp x8, .LANCHOR125 ldr x7, [x2, #:lo12:.LANCHOR110] and w1, w1, 2047 ldr w2, [x3, x19] ldrh w8, [x8, #:lo12:.LANCHOR125] ldrh w4, [x7, 74] ubfx x5, x2, 11, 8 adrp x2, .LANCHOR10 add w4, w1, w4 ldrh w2, [x2, #:lo12:.LANCHOR10] and w6, w4, 65535 ldrh w4, [x7, 72] add w4, w5, w4 udiv w7, w6, w2 and w4, w4, 65535 add w7, w7, w4 cmp w7, w8 ble .L1095 adrp x4, .LANCHOR101 adrp x7, .LANCHOR105 ldrh w6, [x4, #:lo12:.LANCHOR101] adrp x4, .LANCHOR91 ldrh w7, [x7, #:lo12:.LANCHOR105] ldrh w4, [x4, #:lo12:.LANCHOR91] add w6, w6, 7 add w4, w4, w7 cmp w6, w4 blt .L1096 .L1101: mov w4, 2 bfi w0, w4, 3, 2 b .L1112 .L1096: adrp x4, .LANCHOR98 adrp x7, .LANCHOR103 ldrh w6, [x4, #:lo12:.LANCHOR98] adrp x4, .LANCHOR97 ldrh w7, [x7, #:lo12:.LANCHOR103] ldrh w4, [x4, #:lo12:.LANCHOR97] add w6, w6, 7 add w4, w4, w7 adrp x7, .LANCHOR99 ldrh w7, [x7, #:lo12:.LANCHOR99] add w4, w4, w7 cmp w6, w4 blt .L1101 .L1114: and w0, w0, -25 .L1112: strb w0, [x20, 2] .L1097: ldrb w0, [x20, 2] ands w0, w0, 24 bne .L1102 mul w2, w5, w2 ldrh w0, [x3, x19] add w2, w2, w2, lsl 1 add w1, w1, w2, lsr 2 lsr w2, w5, 3 bfi w0, w1, 0, 11 strh w0, [x3, x19] ldr w0, [x3, x19] bfi w0, w2, 11, 8 str w0, [x3, x19] .L1103: mov w0, w21 bl zftl_remove_data_node ldr x0, [x23, #:lo12:.LANCHOR9] add w22, w22, 6 and w22, w22, 7 add x19, x0, x19 cmp w22, 4 ldrb w0, [x19, 2] and w0, w0, 31 strb w0, [x19, 2] adrp x0, .LANCHOR11 ldr x0, [x0, #:lo12:.LANCHOR11] strh wzr, [x0, x24, lsl 1] bhi .L1106 mov w0, w21 bl gc_free_bad_sblk .L1106: ldrb w0, [x20, 2] tbz x0, 3, .L1107 adrp x0, .LANCHOR12 ldr x0, [x0, #:lo12:.LANCHOR12] ldrh w1, [x0, 586] cmp w1, w21 bne .L1107 mov w1, -1 ldrh w2, [x0, 590] strh w1, [x0, 586] mov w1, 65535 cmp w2, w1 bne .L1107 strh w21, [x0, 590] mov w1, w21 ldp x19, x20, [sp, 16] adrp x0, .LC68 ldp x21, x22, [sp, 32] add x0, x0, :lo12:.LC68 ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 b printf .L1095: madd w4, w2, w4, w6 adrp x6, .LANCHOR126 ldrh w6, [x6, #:lo12:.LANCHOR126] cmp w4, w6 ble .L1097 adrp x4, .LANCHOR98 adrp x7, .LANCHOR103 ldrh w6, [x4, #:lo12:.LANCHOR98] adrp x4, .LANCHOR97 ldrh w7, [x7, #:lo12:.LANCHOR103] ldrh w4, [x4, #:lo12:.LANCHOR97] add w4, w4, w7 adrp x7, .LANCHOR99 ldrh w7, [x7, #:lo12:.LANCHOR99] add w4, w4, w7 add w7, w6, 7 cmp w7, w4 bge .L1114 adrp x7, .LANCHOR101 adrp x10, .LANCHOR105 ldrh w8, [x7, #:lo12:.LANCHOR101] adrp x7, .LANCHOR91 ldrh w10, [x10, #:lo12:.LANCHOR105] ldrh w7, [x7, #:lo12:.LANCHOR91] add w8, w8, 7 add w7, w7, w10 cmp w8, w7 bge .L1101 add w6, w6, 23 cmp w4, w6 bgt .L1101 b .L1114 .L1102: cmp w0, 16 bne .L1103 sdiv w2, w1, w2 ldr w0, [x3, x19] add w2, w2, w2, lsl 1 add w2, w5, w2, lsr 2 .L1113: bfi w0, w2, 11, 8 asr w1, w1, 5 str w0, [x3, x19] bfi w0, w1, 0, 11 strh w0, [x3, x19] b .L1103 .L1094: tst w0, 24 bne .L1103 adrp x1, .LANCHOR107 ldrh w1, [x1, #:lo12:.LANCHOR107] cbnz w1, .L1103 adrp x1, .LANCHOR105 ldrh w4, [x1, #:lo12:.LANCHOR105] cmp w4, 15 bhi .L1103 adrp x1, .LANCHOR97 adrp x2, .LANCHOR103 ldrh w1, [x1, #:lo12:.LANCHOR97] ldrh w2, [x2, #:lo12:.LANCHOR103] add w1, w1, w2 adrp x2, .LANCHOR99 ldrh w2, [x2, #:lo12:.LANCHOR99] add w1, w1, w2 adrp x2, .LANCHOR98 ldrh w2, [x2, #:lo12:.LANCHOR98] add w2, w2, 16 cmp w1, w2 ble .L1103 adrp x1, .LANCHOR101 ldrh w2, [x1, #:lo12:.LANCHOR101] adrp x1, .LANCHOR91 ldrh w1, [x1, #:lo12:.LANCHOR91] add w2, w2, 7 add w1, w1, w4 cmp w2, w1 blt .L1103 mov w1, 2 bfi w0, w1, 3, 2 strb w0, [x20, 2] adrp x0, .LANCHOR10 ldrh w1, [x3, x19] ldrh w0, [x0, #:lo12:.LANCHOR10] and w1, w1, 2047 sdiv w0, w1, w0 add w2, w0, w0, lsl 1 ldr w0, [x3, x19] ubfx x4, x0, 11, 8 add w2, w4, w2, lsr 2 b .L1113 .L1107: mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 b zftl_insert_free_list .size ftl_free_sblk, .-ftl_free_sblk .section .text.gc_free_src_blk,"ax",@progbits .align 2 .global gc_free_src_blk .type gc_free_src_blk, %function gc_free_src_blk: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR70 stp x23, x24, [sp, 48] adrp x22, .LC69 adrp x23, .LANCHOR11 add x21, x21, :lo12:.LANCHOR70 mov x24, x23 add x22, x22, :lo12:.LC69 stp x19, x20, [sp, 16] mov w20, 0 stp x25, x26, [sp, 64] .L1116: ldrh w0, [x21, 56] cmp w0, w20 bhi .L1130 strh wzr, [x21, 56] 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 .L1130: add x0, x21, x20, sxtw 1 ldrh w25, [x0, 58] ldr x0, [x23, #:lo12:.LANCHOR11] mov x19, x25 lsl x26, x25, 1 ldrh w2, [x0, x26] cbz w2, .L1117 mov w1, w25 mov x0, x22 bl printf .L1117: ldr x0, [x24, #:lo12:.LANCHOR11] strh wzr, [x0, x26] adrp x0, .LANCHOR9 ldr x0, [x0, #:lo12:.LANCHOR9] add x25, x0, x25, lsl 2 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L1118 ldrb w2, [x25, 2] adrp x0, .LC70 mov w1, w19 add x0, x0, :lo12:.LC70 ubfx x2, x2, 5, 3 bl printf .L1118: ldrb w0, [x25, 2] and w1, w0, 224 cmp w1, 224 beq .L1119 tst w0, 192 bne .L1120 .L1119: adrp x1, .LANCHOR127 adrp x0, .LC0 mov w2, 1363 add x1, x1, :lo12:.LANCHOR127 add x0, x0, :lo12:.LC0 bl printf .L1120: mov w0, w19 bl ftl_free_sblk adrp x0, .LANCHOR12 ldr x0, [x0, #:lo12:.LANCHOR12] ldrh w2, [x0, 124] cbz w2, .L1121 add x3, x0, 392 mov w1, 0 .L1123: ldrh w4, [x3] cmp w4, w19 bne .L1122 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 392] strh w2, [x0, 124] .L1121: ldrh w2, [x0, 120] cbz w2, .L1124 add x3, x0, 136 mov w1, 0 .L1126: ldrh w4, [x3] cmp w4, w19 bne .L1125 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 136] strh w2, [x0, 120] .L1124: ldrh w2, [x0, 122] cbz w2, .L1127 add x3, x0, 264 mov w1, 0 .L1129: ldrh w4, [x3] cmp w4, w19 bne .L1128 add x1, x0, x1, sxtw 1 mov w3, -1 sub w2, w2, #1 strh w3, [x1, 264] strh w2, [x0, 122] .L1127: add w20, w20, 1 and w20, w20, 65535 b .L1116 .L1122: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 bne .L1123 b .L1121 .L1125: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 bne .L1126 b .L1124 .L1128: add w1, w1, 1 add x3, x3, 2 cmp w1, 64 bne .L1129 b .L1127 .size gc_free_src_blk, .-gc_free_src_blk .section .text.print_ftl_debug_info,"ax",@progbits .align 2 .global print_ftl_debug_info .type print_ftl_debug_info, %function print_ftl_debug_info: sub sp, sp, #64 adrp x2, .LANCHOR99 adrp x8, .LANCHOR128 stp x29, x30, [sp, 32] add x29, sp, 32 ldrh w7, [x2, #:lo12:.LANCHOR99] adrp x2, .LANCHOR97 stp x19, x20, [sp, 48] adrp x19, .LANCHOR110 adrp x20, .LANCHOR12 ldrh w6, [x2, #:lo12:.LANCHOR97] adrp x2, .LANCHOR107 ldr x1, [x19, #:lo12:.LANCHOR110] ldrh w5, [x2, #:lo12:.LANCHOR107] adrp x2, .LANCHOR105 ldr x0, [x20, #:lo12:.LANCHOR12] ldrh w4, [x2, #:lo12:.LANCHOR105] adrp x2, .LANCHOR103 ldr w8, [x8, #:lo12:.LANCHOR128] ldrh w3, [x2, #:lo12:.LANCHOR103] ldrh w2, [x1, 146] ldrh w1, [x1, 148] str w8, [sp, 24] ldr w8, [x0, 528] str w8, [sp, 16] ldr w0, [x0, 524] str w0, [sp, 8] adrp x0, .LANCHOR91 ldrh w0, [x0, #:lo12:.LANCHOR91] str w0, [sp] adrp x0, .LC71 add x0, x0, :lo12:.LC71 bl printf ldr x0, [x19, #:lo12:.LANCHOR110] adrp x1, .LANCHOR129 ldrb w3, [x1, #:lo12:.LANCHOR129] ldr w4, [x0, 8] ldr w5, [x0, 64] ldr w1, [x0, 20] ldr w2, [x0, 28] adrp x0, .LC72 add x0, x0, :lo12:.LC72 bl printf ldr x0, [x19, #:lo12:.LANCHOR110] ldr w1, [x0, 52] ldr w2, [x0, 60] ldr w3, [x0, 16] adrp x0, .LC73 add x0, x0, :lo12:.LC73 lsr w3, w3, 11 bl printf ldr x0, [x19, #:lo12:.LANCHOR110] ldrh w2, [x0, 98] ldrh w6, [x0, 72] ldrh w5, [x0, 96] ldrh w4, [x0, 92] ldrh w3, [x0, 88] ldrh w1, [x0, 74] str w2, [sp, 16] ldrh w2, [x0, 94] str w2, [sp, 8] ldrh w2, [x0, 90] str w2, [sp] ldp w7, w2, [x0, 80] adrp x0, .LC74 add x0, x0, :lo12:.LC74 bl printf adrp x0, .LANCHOR86 ldrh w5, [x0, #:lo12:.LANCHOR86] adrp x0, .LANCHOR93 ldrh w4, [x0, #:lo12:.LANCHOR93] adrp x0, .LANCHOR69 ldrh w3, [x0, #:lo12:.LANCHOR69] adrp x0, .LANCHOR102 ldrh w2, [x0, #:lo12:.LANCHOR102] adrp x0, .LANCHOR100 ldrh w1, [x0, #:lo12:.LANCHOR100] adrp x0, .LC75 add x0, x0, :lo12:.LC75 bl printf ldr x0, [x20, #:lo12:.LANCHOR12] ldr x1, [x19, #:lo12:.LANCHOR110] ldp x29, x30, [sp, 32] ldrh w4, [x0, 590] ldrh w6, [x1, 150] ldrh w3, [x0, 588] ldrh w2, [x0, 586] ldp x19, x20, [sp, 48] add sp, sp, 64 ldr w5, [x1, 156] ldrh w1, [x0, 584] adrp x0, .LC76 add x0, x0, :lo12:.LC76 b printf .size print_ftl_debug_info, .-print_ftl_debug_info .section .text.ftl_write_buf,"ax",@progbits .align 2 .global ftl_write_buf .type ftl_write_buf, %function ftl_write_buf: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] str x21, [sp, 32] cbnz x0, .L1156 adrp x1, .LANCHOR130 add x1, x1, :lo12:.LANCHOR130 mov w2, 808 adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf bl print_ftl_debug_info mov w0, -1 .L1155: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .L1159: mov x1, x19 adrp x0, .LANCHOR65 add x0, x0, :lo12:.LANCHOR65 bl buf_add_tail adrp x1, .LANCHOR110 ldrb w3, [x19, 56] ldrb w0, [x21, #:lo12:.LANCHOR66] ldr x1, [x1, #:lo12:.LANCHOR110] add w0, w0, 1 and w0, w0, 255 strb w0, [x21, #:lo12:.LANCHOR66] ldr w2, [x1, 16] add w2, w2, w3 str w2, [x1, 16] ldr w2, [x1, 32] add w2, w2, 1 str w2, [x1, 32] b .L1155 .L1156: mov x19, x0 adrp x0, .LANCHOR131 mov x20, x0 ldrb w1, [x0, #:lo12:.LANCHOR131] ldrb w2, [x19, 56] cmp w2, w1 bls .L1161 adrp x1, .LANCHOR130 adrp x0, .LC0 mov w2, 815 add x1, x1, :lo12:.LANCHOR130 add x0, x0, :lo12:.LC0 bl printf .L1161: ldrb w0, [x19, 56] adrp x21, .LANCHOR66 cbz w0, .L1158 ldrb w1, [x20, #:lo12:.LANCHOR131] cmp w1, w0 bcs .L1159 .L1158: mov x0, x19 bl zbuf_free ldrb w0, [x21, #:lo12:.LANCHOR66] b .L1155 .size ftl_write_buf, .-ftl_write_buf .section .text.ftl_write_completed,"ax",@progbits .align 2 .global ftl_write_completed .type ftl_write_completed, %function ftl_write_completed: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR55 stp x19, x20, [sp, 16] add x22, x21, :lo12:.LANCHOR55 stp x23, x24, [sp, 48] adrp x20, .LANCHOR64 mov w23, 20041 add x20, x20, :lo12:.LANCHOR64 str x25, [sp, 64] movk w23, 0x444b, lsl 16 mov w25, 0 .L1167: ldrb w0, [x20] cmp w0, 255 bne .L1178 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 .L1178: add x1, x21, :lo12:.LANCHOR55 lsl x2, x0, 6 add x24, x1, x2 ubfiz x19, x0, 6, 8 add x19, x1, x19 ldrb w1, [x1, x2] strb w1, [x20] ldr w1, [x24, 52] cmn w1, #1 bne .L1168 adrp x1, .LANCHOR124 ldrb w1, [x1, #:lo12:.LANCHOR124] cbnz w1, .L1169 adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbz w1, .L1170 .L1169: adrp x1, .LANCHOR110 ldr x1, [x1, #:lo12:.LANCHOR110] ldr w1, [x1, 156] cmp w1, w23 beq .L1171 .L1170: add x1, x22, x0, lsl 6 mov w2, 24 mov w5, 65535 ldr w3, [x1, 40] adrp x1, .LANCHOR74 ldrh w4, [x1, #:lo12:.LANCHOR74] adrp x1, .LANCHOR31 ldrb w1, [x1, #:lo12:.LANCHOR31] sub w1, w2, w1 sub w2, w1, w4 mov w1, 1 lsr w4, w3, w4 lsl w1, w1, w2 adrp x2, .LANCHOR75 sub w1, w1, #1 ldrb w2, [x2, #:lo12:.LANCHOR75] and w1, w1, w4 udiv w1, w1, w2 adrp x2, .LANCHOR12 mov x24, x2 ldr x4, [x2, #:lo12:.LANCHOR12] and w25, w1, 65535 and w1, w1, w5 ldr w6, [x4, 560] cmp w6, w5 bne .L1172 str w1, [x4, 560] str w3, [x4, 564] .L1172: add x0, x22, x0, lsl 6 ldr w2, [x0, 36] adrp x0, .LC77 add x0, x0, :lo12:.LC77 bl printf ldr x0, [x24, #:lo12:.LANCHOR12] ldr w1, [x0, 556] add w1, w1, 1 str w1, [x0, 556] ldrh w1, [x0, 16] cmp w1, w25 bne .L1173 strh wzr, [x0, 22] .L1171: mov x0, x19 mov w25, 1 bl ftl_write_buf b .L1167 .L1173: ldrh w1, [x0, 48] cmp w1, w25 bne .L1171 strh wzr, [x0, 54] b .L1171 .L1168: cbz w25, .L1176 ldp w1, w2, [x24, 36] adrp x0, .LC78 add x0, x0, :lo12:.LC78 bl printf mov x0, x19 bl ftl_write_buf b .L1167 .L1176: ldrh w2, [x24, 48] ldr w0, [x24, 36] ldr w1, [x24, 44] bl lpa_hash_update_ppa ldrb w0, [x24, 2] tbz x0, 2, .L1177 and w0, w0, -3 strb w0, [x24, 2] b .L1167 .L1177: mov x0, x19 bl zbuf_free b .L1167 .size ftl_write_completed, .-ftl_write_completed .section .text.zftl_add_read_buf,"ax",@progbits .align 2 .global zftl_add_read_buf .type zftl_add_read_buf, %function zftl_add_read_buf: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] cbnz x0, .L1184 mov w2, 1148 adrp x1, .LANCHOR132 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR132 add x0, x0, :lo12:.LC0 bl printf ldr x19, [sp, 16] ldp x29, x30, [sp], 32 b print_ftl_debug_info .L1184: ldrb w1, [x0, 56] mov x19, x0 adrp x0, .LANCHOR131 ldrb w0, [x0, #:lo12:.LANCHOR131] cmp w1, w0 bls .L1186 adrp x1, .LANCHOR132 adrp x0, .LC0 mov w2, 1155 add x1, x1, :lo12:.LANCHOR132 add x0, x0, :lo12:.LC0 bl printf .L1186: mov x1, x19 adrp x0, .LANCHOR133 add x0, x0, :lo12:.LANCHOR133 bl buf_add_tail adrp x1, .LANCHOR134 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ldrb w0, [x1, #:lo12:.LANCHOR134] add w0, w0, 1 strb w0, [x1, #:lo12:.LANCHOR134] ret .size zftl_add_read_buf, .-zftl_add_read_buf .section .text.sblk_init,"ax",@progbits .align 2 .global sblk_init .type sblk_init, %function sblk_init: adrp x1, .LANCHOR59 mov w0, -1 strb w0, [x1, #:lo12:.LANCHOR59] adrp x1, .LANCHOR64 strb w0, [x1, #:lo12:.LANCHOR64] adrp x1, .LANCHOR62 strb w0, [x1, #:lo12:.LANCHOR62] adrp x1, .LANCHOR63 strb w0, [x1, #:lo12:.LANCHOR63] mov w0, 0 ret .size sblk_init, .-sblk_init .section .text.dump_sblk_queue,"ax",@progbits .align 2 .global dump_sblk_queue .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! adrp x0, .LC79 add x0, x0, :lo12:.LC79 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR59 str x21, [sp, 32] ldrb w1, [x19, #:lo12:.LANCHOR59] bl printf ldrb w19, [x19, #:lo12:.LANCHOR59] cmp w19, 255 beq .L1190 adrp x1, .LANCHOR55 ubfiz x19, x19, 6, 8 add x1, x1, :lo12:.LANCHOR55 adrp x21, .LC80 add x19, x1, x19 add x21, x21, :lo12:.LC80 mov x20, x1 .L1192: ldrb w2, [x19, 58] mov x0, x21 ldrb w1, [x19, 1] ldr w3, [x19, 40] bl printf ldrb w19, [x19] cmp w19, 255 beq .L1190 ubfiz x19, x19, 6, 8 add x19, x20, x19 b .L1192 .L1190: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size dump_sblk_queue, .-dump_sblk_queue .section .text.queue_lun_state,"ax",@progbits .align 2 .global queue_lun_state .type queue_lun_state, %function queue_lun_state: adrp x2, .LANCHOR59 ldrb w2, [x2, #:lo12:.LANCHOR59] cmp w2, 255 beq .L1208 adrp x3, .LANCHOR31 mov w8, 24 adrp x10, .LANCHOR55 add x10, x10, :lo12:.LANCHOR55 ldrb w4, [x3, #:lo12:.LANCHOR31] mov w3, 1 adrp x13, .L1204 mov x15, x10 sub w8, w8, w4 add x13, x13, :lo12:.L1204 lsl w4, w3, w4 sub w4, w4, #1 and w6, w4, 65535 adrp x4, .LANCHOR74 asr w11, w0, w8 and w11, w11, w6 ldrh w12, [x4, #:lo12:.LANCHOR74] sub w4, w8, w12 lsl w3, w3, w4 sub w3, w3, #1 and w7, w3, 65535 adrp x3, .LANCHOR75 ldrb w5, [x3, #:lo12:.LANCHOR75] asr w3, w0, w12 sub w5, w5, #1 and w5, w5, 65535 and w3, w3, w5 and w3, w3, w7 .L1207: add x14, x10, x2, lsl 6 ldr w4, [x14, 40] lsr w0, w4, w8 and w0, w6, w0 cmp w11, w0 bne .L1202 lsr w4, w4, w12 and w4, w5, w4 and w4, w7, w4 ldrb w0, [x14, 58] cmp w3, w4 bne .L1203 cmp w1, 1 bne .L1200 cmp w0, 7 ccmp w0, 9, 4, ne beq .L1202 ret .L1203: cmp w1, 3 bhi .L1202 ldrb w4, [x13,w1,uxtw] adr x14, .Lrtx1204 add x4, x14, w4, sxtb #2 br x4 .Lrtx1204: .section .rodata.queue_lun_state,"a",@progbits .align 0 .align 2 .L1204: .byte (.L1200 - .Lrtx1204) / 4 .byte (.L1205 - .Lrtx1204) / 4 .byte (.L1206 - .Lrtx1204) / 4 .byte (.L1200 - .Lrtx1204) / 4 .section .text.queue_lun_state .L1205: cmp w0, 7 ccmp w0, 9, 4, ne beq .L1202 ret .L1206: cmp w0, 11 bne .L1200 .L1202: lsl x2, x2, 6 ldrb w2, [x15, x2] cmp w2, 255 bne .L1207 .L1208: mov w0, 0 .L1200: ret .size queue_lun_state, .-queue_lun_state .section .text.queue_remove_completed_req,"ax",@progbits .align 2 .global queue_remove_completed_req .type queue_remove_completed_req, %function queue_remove_completed_req: adrp x4, .LANCHOR64 adrp x8, .LANCHOR63 adrp x1, .LANCHOR59 adrp x7, .LANCHOR62 adrp x3, .LANCHOR55 ldrb w14, [x4, #:lo12:.LANCHOR64] add x5, x3, :lo12:.LANCHOR55 ldrb w2, [x1, #:lo12:.LANCHOR59] ldrb w12, [x8, #:lo12:.LANCHOR63] mov x11, x5 ldrb w13, [x7, #:lo12:.LANCHOR62] add x16, x8, :lo12:.LANCHOR63 add x7, x7, :lo12:.LANCHOR62 add x10, x4, :lo12:.LANCHOR64 mov w6, 0 mov w15, -1 .L1211: cmp w2, 255 beq .L1212 sbfiz x8, x2, 6, 32 sxtw x0, w2 add x4, x5, x8 ldrb w4, [x4, 58] sub w4, w4, #12 and w4, w4, 255 cmp w4, 1 bls .L1213 cbz w6, .L1210 strb w2, [x1, #:lo12:.LANCHOR59] ret .L1213: lsl x6, x0, 6 ldrb w2, [x5, x8] add x4, x5, x6 strb w15, [x5, x6] ldrb w6, [x4, 59] cmp w6, 1 bne .L1216 ldrh w4, [x4, 50] cbnz w4, .L1224 mov w4, w14 mov x6, x10 .L1217: cmp w4, 255 bne .L1222 add x3, x3, :lo12:.LANCHOR55 strb w2, [x1, #:lo12:.LANCHOR59] add x0, x3, x0, lsl 6 ldrb w0, [x0, 1] strb w0, [x6] ret .L1216: cbnz w6, .L1218 ldr w4, [x4, 36] cmn w4, #1 beq .L1218 mov w4, w13 mov x6, x7 b .L1217 .L1224: mov w4, w12 mov x6, x16 b .L1217 .L1222: mov w6, w4 sbfiz x4, x4, 6, 32 ldrb w4, [x11, x4] cmp w4, 255 bne .L1222 add x0, x11, x0, lsl 6 sbfiz x6, x6, 6, 32 ldrb w0, [x0, 1] strb w0, [x11, x6] .L1218: mov w6, 1 b .L1211 .L1212: cbz w6, .L1210 mov w0, -1 strb w0, [x1, #:lo12:.LANCHOR59] .L1210: ret .size queue_remove_completed_req, .-queue_remove_completed_req .section .text.pm_select_ram_region,"ax",@progbits .align 2 .global pm_select_ram_region .type pm_select_ram_region, %function pm_select_ram_region: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR135 add x0, x0, :lo12:.LANCHOR135 mov x1, 0 add x29, sp, 0 mov w2, 65535 str x19, [sp, 16] .L1236: lsl x3, x1, 4 and w19, w1, 65535 ldrh w3, [x3, x0] cmp w3, w2 beq .L1235 add x1, x1, 1 cmp x1, 32 bne .L1236 add x0, x0, 2 mov w19, w1 mov x2, x0 mov w4, 32768 mov w1, 0 .L1238: ldrh w3, [x2] tbnz x3, 15, .L1237 cmp w3, w4 bcs .L1237 mov w4, w3 mov w19, w1 .L1237: add w1, w1, 1 add x2, x2, 16 and w1, w1, 65535 cmp w1, 32 bne .L1238 cmp w19, 32 bne .L1235 adrp x1, .LANCHOR136 mov w2, -1 ldrb w3, [x1, #:lo12:.LANCHOR136] mov w1, 0 .L1240: ldrh w5, [x0] cmp w5, w2 bcs .L1239 ldrh w4, [x0, -2] cmp w4, w3 csel w2, w2, w5, eq csel w19, w19, w1, eq .L1239: add w1, w1, 1 add x0, x0, 16 and w1, w1, 65535 cmp w1, 32 bne .L1240 cmp w19, 32 bne .L1235 adrp x1, .LANCHOR137 adrp x0, .LC0 mov w2, 377 add x1, x1, :lo12:.LANCHOR137 add x0, x0, :lo12:.LC0 bl printf .L1235: mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_select_ram_region, .-pm_select_ram_region .section .text.idb_init,"ax",@progbits .align 2 .global idb_init .type idb_init, %function idb_init: adrp x0, .LANCHOR138 str xzr, [x0, #:lo12:.LANCHOR138] adrp x0, .LANCHOR139 str wzr, [x0, #:lo12:.LANCHOR139] adrp x0, .LANCHOR140 strb wzr, [x0, #:lo12:.LANCHOR140] adrp x0, .LANCHOR141 str xzr, [x0, #:lo12:.LANCHOR141] mov w0, 0 ret .size idb_init, .-idb_init .section .text.ftl_memset,"ax",@progbits .align 2 .global ftl_memset .type ftl_memset, %function ftl_memset: uxtw x2, w2 b memset .size ftl_memset, .-ftl_memset .section .text.flash_lsb_page_tbl_build,"ax",@progbits .align 2 .global flash_lsb_page_tbl_build .type flash_lsb_page_tbl_build, %function flash_lsb_page_tbl_build: stp x29, x30, [sp, -48]! adrp x1, .LANCHOR21 add x29, sp, 0 ldr x1, [x1, #:lo12:.LANCHOR21] stp x19, x20, [sp, 16] mov w20, 1024 str x21, [sp, 32] adrp x19, .LANCHOR3 ldrb w1, [x1, 12] sdiv w20, w20, w1 cbnz w0, .L1248 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 .L1249: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 512 bne .L1249 .L1255: adrp x21, .LANCHOR142 add x21, x21, :lo12:.LANCHOR142 mov w2, 2048 mov w1, 255 mov x0, x21 add x19, x19, :lo12:.LANCHOR3 bl ftl_memset mov x0, 0 .L1250: ldrh w1, [x19, x0, lsl 1] add x0, x0, 1 cmp w20, w0, uxth strh w1, [x21, w1, sxtw 1] bhi .L1250 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .L1248: cmp w0, 1 bne .L1251 add x3, x19, :lo12:.LANCHOR3 mov x1, 0 .L1254: and w0, w1, 65535 cmp x1, 3 bls .L1252 ubfiz w2, w0, 1, 15 and w0, w0, 1 add w0, w0, 2 sub w0, w2, w0 and w0, w0, 65535 .L1252: strh w0, [x3, x1, lsl 1] add x1, x1, 1 cmp x1, 512 bne .L1254 b .L1255 .L1251: cmp w0, 2 bne .L1256 add x3, x19, :lo12:.LANCHOR3 mov w1, 65535 mov x0, 0 .L1258: cmp x0, 2 and w2, w0, 65535 csel w2, w2, w1, cc strh w2, [x3, x0, lsl 1] add w1, w1, 2 add x0, x0, 1 and w1, w1, 65535 cmp x0, 512 bne .L1258 b .L1255 .L1256: cmp w0, 3 bne .L1259 add x3, x19, :lo12:.LANCHOR3 mov x1, 0 .L1262: and w0, w1, 65535 cmp x1, 5 bls .L1260 ubfiz w2, w0, 1, 15 and w0, w0, 1 add w0, w0, 4 sub w0, w2, w0 and w0, w0, 65535 .L1260: strh w0, [x3, x1, lsl 1] add x1, x1, 1 cmp x1, 512 bne .L1262 b .L1255 .L1259: cmp w0, 4 bne .L1263 add x1, x19, :lo12:.LANCHOR3 mov w2, 1 add x1, x1, 16 strh wzr, [x19, #:lo12:.LANCHOR3] strh w0, [x1, -8] mov w0, 5 strh w2, [x1, -14] mov w2, 2 strh w0, [x1, -6] mov w0, 7 strh w2, [x1, -12] mov w2, 3 strh w0, [x1, -4] mov w0, 8 strh w2, [x1, -10] strh w0, [x1, -2] mov w0, 8 .L1265: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w3, w3, 6 add w0, w0, 1 sub w2, w2, w3 strh w2, [x1], 2 and w0, w0, 65535 cmp w0, 512 bne .L1265 b .L1255 .L1263: cmp w0, 5 bne .L1266 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 .L1267: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 16 bne .L1267 add x1, x1, 32 .L1268: strh w0, [x1], 2 add w0, w0, 2 and w0, w0, 65535 cmp w0, 1008 bne .L1268 b .L1255 .L1266: cmp w0, 8 bne .L1269 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 .L1270: strh w0, [x0, x1] add x0, x0, 2 cmp x0, 1024 bne .L1270 b .L1255 .L1269: cmp w0, 9 bne .L1271 add x0, x19, :lo12:.LANCHOR3 mov w1, 1 add x0, x0, 6 strh wzr, [x19, #:lo12:.LANCHOR3] strh w1, [x0, -4] mov w1, 2 strh w1, [x0, -2] mov w1, 3 .L1272: strh w1, [x0], 2 add w1, w1, 2 and w1, w1, 65535 cmp w1, 1021 bne .L1272 b .L1255 .L1271: cmp w0, 10 bne .L1273 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 .L1274: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 63 bne .L1274 add x1, x1, 126 .L1275: strh w0, [x1], 2 add w0, w0, 2 and w0, w0, 65535 cmp w0, 961 bne .L1275 b .L1255 .L1273: cmp w0, 11 bne .L1276 add x1, x19, :lo12:.LANCHOR3 mov x0, 0 .L1277: strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 8 bne .L1277 add x1, x1, 16 .L1279: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w3, w3, 6 add w0, w0, 1 sub w2, w2, w3 strh w2, [x1], 2 and w0, w0, 65535 cmp w0, 512 bne .L1279 b .L1255 .L1276: cmp w0, 13 bne .L1255 add x2, x19, :lo12:.LANCHOR3 mov x1, 0 mov w0, 0 .L1280: strh w0, [x1, x2] add w0, w0, 3 and w0, w0, 65535 add x1, x1, 2 cmp w0, 1536 bne .L1280 b .L1255 .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .section .text.flash_die_info_init,"ax",@progbits .align 2 .global flash_die_info_init .type flash_die_info_init, %function flash_die_info_init: stp x29, x30, [sp, -112]! adrp x0, .LANCHOR19 add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR19] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] tbz x0, 12, .L1303 adrp x1, .LANCHOR143 adrp x0, .LC1 add x1, x1, :lo12:.LANCHOR143 add x0, x0, :lo12:.LC1 bl printf .L1303: adrp x19, .LANCHOR32 add x23, x19, :lo12:.LANCHOR32 adrp x25, .LANCHOR2 adrp x20, .LANCHOR23 mov w2, 8 adrp x22, .LANCHOR29 ldrh w0, [x23, 26] adrp x21, .LANCHOR145 ldrb w1, [x23, 12] adrp x26, .LANCHOR33 strh w0, [x25, #:lo12:.LANCHOR2] add x26, x26, :lo12:.LANCHOR33 ldrh w0, [x23, 10] add x28, x23, 1 strb wzr, [x20, #:lo12:.LANCHOR23] adrp x24, .LANCHOR47 mov x27, 0 sdiv w0, w0, w1 adrp x1, .LANCHOR144 strh w0, [x1, #:lo12:.LANCHOR144] mov w1, 0 add x0, x22, :lo12:.LANCHOR29 bl ftl_memset mov w2, 32 mov w1, 0 add x0, x21, :lo12:.LANCHOR145 bl ftl_memset add x0, x24, :lo12:.LANCHOR47 str x0, [x29, 104] .L1305: mov w0, 2 ldrb w2, [x23] strb w0, [x27, x26] ldr x0, [x29, 104] add x1, x0, x27, lsl 3 mov x0, x28 bl flash_mem_cmp8 cbnz w0, .L1304 ldrb w2, [x20, #:lo12:.LANCHOR23] add x1, x21, :lo12:.LANCHOR145 add w0, w2, 1 strb w0, [x20, #:lo12:.LANCHOR23] and w0, w27, 255 str wzr, [x1, x2, lsl 2] add x1, x22, :lo12:.LANCHOR29 strb w0, [x1, x2] bl zftl_flash_enter_slc_mode .L1304: add x27, x27, 1 cmp x27, 4 bne .L1305 add x0, x19, :lo12:.LANCHOR32 ldrb w1, [x0, 8] cmp w1, 2 beq .L1306 .L1310: add x19, x19, :lo12:.LANCHOR32 ldrb w0, [x20, #:lo12:.LANCHOR23] ldp x21, x22, [sp, 32] ldrb w1, [x19, 13] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] mul w0, w0, w1 ldrh w1, [x19, 14] ldp x27, x28, [sp, 80] ldp x19, x20, [sp, 16] mul w0, w0, w1 adrp x1, .LANCHOR146 strh w0, [x1, #:lo12:.LANCHOR146] ldp x29, x30, [sp], 112 ret .L1306: ldrh w1, [x25, #:lo12:.LANCHOR2] add x24, x24, :lo12:.LANCHOR47 ldrb w8, [x0, 13] add x7, x0, 1 ldrb w12, [x19, #:lo12:.LANCHOR32] add x11, x20, :lo12:.LANCHOR23 ldrb w13, [x0, 23] add x21, x21, :lo12:.LANCHOR145 add x22, x22, :lo12:.LANCHOR29 mov x10, 0 mul w8, w8, w1 ldrh w1, [x0, 14] and w1, w1, 65280 mul w8, w8, w1 lsl w14, w8, 1 .L1309: mov w2, w12 add x1, x24, x10, lsl 3 mov x0, x7 bl flash_mem_cmp8 cbnz w0, .L1307 ldrb w1, [x11] cmp w13, 0 csel w2, w8, w14, eq add w0, w1, 1 strb w0, [x11] str w2, [x21, x1, lsl 2] strb w10, [x22, x1] .L1307: add x10, x10, 1 cmp x10, 4 bne .L1309 b .L1310 .size flash_die_info_init, .-flash_die_info_init .section .text.lpa_hash_init,"ax",@progbits .align 2 .global lpa_hash_init .type lpa_hash_init, %function lpa_hash_init: stp x29, x30, [sp, -16]! mov w2, 512 mov w1, 255 adrp x0, .LANCHOR116 add x29, sp, 0 add x0, x0, :lo12:.LANCHOR116 bl ftl_memset adrp x0, .LANCHOR94 mov w1, 255 ldp x29, x30, [sp], 16 ldrh w2, [x0, #:lo12:.LANCHOR94] adrp x0, .LANCHOR79 ldrb w0, [x0, #:lo12:.LANCHOR79] mul w2, w2, w0 adrp x0, .LANCHOR118 ldr x0, [x0, #:lo12:.LANCHOR118] lsl w2, w2, 2 b ftl_memset .size lpa_hash_init, .-lpa_hash_init .section .text.lpa_rebuild_hash,"ax",@progbits .align 2 .global lpa_rebuild_hash .type lpa_rebuild_hash, %function lpa_rebuild_hash: stp x29, x30, [sp, -48]! adrp x0, .LANCHOR19 add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR19] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] tbz x0, 12, .L1323 adrp x1, .LANCHOR147 adrp x0, .LC81 mov w3, 0 mov w2, 239 add x1, x1, :lo12:.LANCHOR147 add x0, x0, :lo12:.LC81 bl printf .L1323: adrp x20, .LANCHOR94 adrp x22, .LANCHOR79 adrp x19, .LANCHOR116 add x19, x19, :lo12:.LANCHOR116 mov w2, 512 mov w1, 255 mov x0, x19 bl ftl_memset ldrh w2, [x20, #:lo12:.LANCHOR94] adrp x21, .LANCHOR118 ldrb w0, [x22, #:lo12:.LANCHOR79] mov w1, 255 add x20, x20, :lo12:.LANCHOR94 mul w2, w2, w0 ldr x0, [x21, #:lo12:.LANCHOR118] lsl w2, w2, 2 bl ftl_memset adrp x0, .LANCHOR117 ldrb w3, [x22, #:lo12:.LANCHOR79] ldr x5, [x21, #:lo12:.LANCHOR118] mov w1, 0 ldr x4, [x0, #:lo12:.LANCHOR117] .L1324: ldrh w0, [x20] mul w0, w0, w3 cmp w1, w0, lsl 1 blt .L1326 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L1326: uxtw x2, w1 ldr w0, [x4, x2, lsl 2] cmn w0, #1 beq .L1325 and x0, x0, 255 ldrh w6, [x19, x0, lsl 1] strh w1, [x19, x0, lsl 1] strh w6, [x5, x2, lsl 1] .L1325: add w1, w1, 1 and w1, w1, 65535 b .L1324 .size lpa_rebuild_hash, .-lpa_rebuild_hash .section .text.zftl_read_flash_info,"ax",@progbits .align 2 .global zftl_read_flash_info .type zftl_read_flash_info, %function zftl_read_flash_info: stp x29, x30, [sp, -32]! mov w2, 11 mov w1, 0 add x29, sp, 0 str x19, [sp, 16] mov x19, x0 bl ftl_memset adrp x1, .LANCHOR32 add x1, x1, :lo12:.LANCHOR32 adrp x0, .LANCHOR2 adrp x3, .LANCHOR67 strb wzr, [x19, 10] mov w4, 1 ldrb w2, [x1, 9] ldrh w0, [x0, #:lo12:.LANCHOR2] mul w0, w2, w0 strb w0, [x19, 4] ubfx x0, x0, 8, 8 strb w0, [x19, 5] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] strb w0, [x19, 7] add x0, x3, :lo12:.LANCHOR67 ldrb w3, [x3, #:lo12:.LANCHOR67] strb w3, [x19] ldrb w3, [x0, 1] strb w3, [x19, 1] ldrb w3, [x0, 2] ldrb w0, [x0, 3] strb w3, [x19, 2] strb w0, [x19, 3] mov w0, 32 strb w2, [x19, 6] adrp x2, .LANCHOR29 strb w0, [x19, 8] add x2, x2, :lo12:.LANCHOR29 ldrb w0, [x1, 7] mov x1, 0 strb w0, [x19, 9] adrp x0, .LANCHOR23 ldrb w3, [x0, #:lo12:.LANCHOR23] .L1335: cmp w3, w1, uxtb bhi .L1336 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .L1336: ldrb w0, [x1, x2] add x1, x1, 1 ldrb w5, [x19, 10] lsl w0, w4, w0 orr w0, w0, w5 strb w0, [x19, 10] b .L1335 .size zftl_read_flash_info, .-zftl_read_flash_info .section .text.gc_static_wearleveling,"ax",@progbits .align 2 .global gc_static_wearleveling .type gc_static_wearleveling, %function gc_static_wearleveling: stp x29, x30, [sp, -160]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR110 stp x19, x20, [sp, 16] ldr x0, [x22, #:lo12:.LANCHOR110] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] ldr w1, [x0, 32] mov w0, 10240 cmp w1, w0 bls .L1339 bl ftl_tmp_into_update .L1339: adrp x19, .LANCHOR12 mov w3, 36000 ldr x0, [x19, #:lo12:.LANCHOR12] ldr w1, [x0, 568] ldr w2, [x0, 12] add w3, w1, w3 cmp w2, w3 bcs .L1340 ldr x4, [x22, #:lo12:.LANCHOR110] ldr w3, [x0, 572] add w3, w3, 256 ldr w4, [x4, 36] cmp w4, w3 bcc .L1392 .L1340: add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 bhi .L1342 ldr x3, [x22, #:lo12:.LANCHOR110] ldr w1, [x0, 572] add w1, w1, 32 ldr w3, [x3, 36] cmp w3, w1 bls .L1393 .L1342: ldr x1, [x22, #:lo12:.LANCHOR110] mov w20, 65535 adrp x8, .LANCHOR19 mov w21, w20 add x8, x8, :lo12:.LANCHOR19 mov w27, 0 mov w25, 0 mov w26, 0 ldr w3, [x1, 36] mov w23, 0 ldrh w28, [x1, 134] adrp x24, .LANCHOR9 str w2, [x0, 568] str w3, [x0, 572] adrp x0, .LANCHOR8 add x10, x0, :lo12:.LANCHOR8 str wzr, [x29, 128] str wzr, [x29, 136] stp wzr, wzr, [x29, 144] .L1344: ldrh w0, [x10] cmp w0, w28 bhi .L1353 ldr x0, [x19, #:lo12:.LANCHOR12] mov w2, 128 mov w1, 255 add x0, x0, 264 strh wzr, [x0, -142] bl ftl_memset ldr x0, [x19, #:lo12:.LANCHOR12] adrp x2, .LANCHOR19 ldr x8, [x24, #:lo12:.LANCHOR9] ldr w3, [x2, #:lo12:.LANCHOR19] str x2, [x29, 152] ldrh w0, [x0, 586] mov x1, x0 lsl x28, x0, 2 add x10, x8, x28 tbz x3, 10, .L1354 adrp x2, .LANCHOR11 ldrb w6, [x10, 3] ldrb w4, [x10, 2] ldr x5, [x2, #:lo12:.LANCHOR11] ldr w3, [x8, x28] ldrh w2, [x8, x28] stp x8, x10, [x29, 112] ldrh w7, [x5, x0, lsl 1] ubfx x3, x3, 11, 8 ubfx x5, x4, 5, 3 and w2, w2, 2047 ubfx x4, x4, 3, 2 adrp x0, .LC83 add x0, x0, :lo12:.LC83 bl printf ldp x8, x10, [x29, 112] .L1354: ldrb w0, [x10, 2] and w3, w0, 224 cmp w3, 32 bne .L1355 ldr x1, [x22, #:lo12:.LANCHOR110] ldrh w1, [x1, 688] cmp w1, 2 bls .L1355 adrp x1, .LANCHOR148 mov w2, 1 str w2, [x1, #:lo12:.LANCHOR148] .L1355: ldrb w1, [x10, 2] tbz x1, 3, .L1356 ldr x1, [x22, #:lo12:.LANCHOR110] ldrh w2, [x8, x28] and w2, w2, 2047 ldrh w4, [x1, 96] adrp x1, .LANCHOR149 ldrh w1, [x1, #:lo12:.LANCHOR149] add w1, w2, w1, lsr 2 cmp w4, w1 ble .L1356 and w0, w0, 192 cmp w0, 64 bne .L1357 ldr x0, [x19, #:lo12:.LANCHOR12] mov w1, 0 mov w2, 1 ldrh w0, [x0, 586] bl gc_add_sblk adrp x0, .LANCHOR70+2192 mov w1, 1 strh w1, [x0, #:lo12:.LANCHOR70+2192] .L1356: ldr x0, [x19, #:lo12:.LANCHOR12] ldr x2, [x29, 152] ldr x11, [x24, #:lo12:.LANCHOR9] ldrh w0, [x0, 584] ldr w2, [x2, #:lo12:.LANCHOR19] mov x1, x0 lsl x10, x0, 2 add x28, x11, x10 tbz x2, 10, .L1358 adrp x2, .LANCHOR11 ldrb w6, [x28, 3] ldrb w4, [x28, 2] ldr x5, [x2, #:lo12:.LANCHOR11] ldr w3, [x11, x10] ldrh w2, [x11, x10] stp x10, x11, [x29, 112] ldrh w7, [x5, x0, lsl 1] ubfx x3, x3, 11, 8 ubfx x5, x4, 5, 3 and w2, w2, 2047 ubfx x4, x4, 3, 2 adrp x0, .LC84 add x0, x0, :lo12:.LC84 bl printf ldp x10, x11, [x29, 112] .L1358: ldrb w0, [x28, 2] tbz x0, 3, .L1359 ldr x0, [x22, #:lo12:.LANCHOR110] ldr w1, [x11, x10] ldrh w2, [x0, 98] adrp x0, .LANCHOR150 ubfx x1, x1, 11, 8 ldrh w0, [x0, #:lo12:.LANCHOR150] add w0, w1, w0, lsr 2 cmp w2, w0 ble .L1359 ldrb w0, [x28, 2] and w1, w0, 192 cmp w1, 64 bne .L1360 ldr x0, [x19, #:lo12:.LANCHOR12] mov w1, 0 mov w2, 1 ldrh w0, [x0, 584] bl gc_add_sblk adrp x0, .LANCHOR70+2192 mov w1, 1 strh w1, [x0, #:lo12:.LANCHOR70+2192] .L1359: ldr x0, [x29, 152] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1361 adrp x2, .LANCHOR11 ldr x1, [x24, #:lo12:.LANCHOR9] uxtw x6, w27 lsl x0, x6, 2 ldr x7, [x2, #:lo12:.LANCHOR11] add x5, x1, x0 ldr w3, [x1, x0] ldrh w7, [x7, x6, lsl 1] ldrb w6, [x5, 3] ldrb w4, [x5, 2] ubfx x3, x3, 11, 8 ldrh w2, [x1, x0] adrp x0, .LC85 mov w1, w27 add x0, x0, :lo12:.LC85 ubfx x5, x4, 5, 3 and w2, w2, 2047 ubfx x4, x4, 3, 2 bl printf .L1361: ldr x0, [x29, 152] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1362 ldr w6, [x29, 128] adrp x2, .LANCHOR11 ldr x1, [x24, #:lo12:.LANCHOR9] ldr x7, [x2, #:lo12:.LANCHOR11] lsl x0, x6, 2 add x5, x1, x0 ldr w3, [x1, x0] ldrh w2, [x1, x0] adrp x0, .LC86 ldrh w7, [x7, x6, lsl 1] add x0, x0, :lo12:.LC86 ldrb w6, [x5, 3] ubfx x3, x3, 11, 8 ldr w1, [x29, 128] and w2, w2, 2047 ldrb w4, [x5, 2] ubfx x5, x4, 5, 3 ubfx x4, x4, 3, 2 bl printf .L1362: ldr x0, [x22, #:lo12:.LANCHOR110] ldrh w1, [x29, 148] strh w1, [x0, 96] ldr w1, [x29, 136] strh w23, [x0, 98] strh w20, [x0, 92] strh w21, [x0, 94] udiv w3, w1, w26 ldr w1, [x29, 144] udiv w4, w1, w25 strh w3, [x0, 88] strh w4, [x0, 90] ldr x0, [x29, 152] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1363 adrp x0, .LC87 and w4, w4, 65535 and w3, w3, 65535 mov w2, w25 mov w1, w26 add x0, x0, :lo12:.LC87 bl printf .L1363: ldr x0, [x29, 152] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1364 adrp x0, .LANCHOR150 ldr w3, [x29, 148] mov w4, w23 mov w2, w21 ldrh w6, [x0, #:lo12:.LANCHOR150] adrp x0, .LANCHOR149 mov w1, w20 ldrh w5, [x0, #:lo12:.LANCHOR149] adrp x0, .LC88 add x0, x0, :lo12:.LC88 bl printf .L1364: sub w0, w23, w21 str w0, [x29, 144] adrp x0, .LANCHOR150 ldr w1, [x29, 144] ldrh w0, [x0, #:lo12:.LANCHOR150] cmp w1, w0 bgt .L1365 adrp x1, .LANCHOR149 ldr w0, [x29, 148] ldrh w1, [x1, #:lo12:.LANCHOR149] sub w0, w0, w20 cmp w0, w1 ble .L1394 .L1365: ldr x0, [x19, #:lo12:.LANCHOR12] adrp x26, .LANCHOR70 add x26, x26, :lo12:.LANCHOR70 mov w25, 0 mov w23, 0 ldrh w28, [x0, 580] ldr x0, [x22, #:lo12:.LANCHOR110] ldrh w27, [x0, 134] adrp x0, .LANCHOR8 add x0, x0, :lo12:.LANCHOR8 str x0, [x29, 136] adrp x0, .LANCHOR149 add x0, x0, :lo12:.LANCHOR149 str x0, [x29, 128] .L1367: ldr x0, [x29, 136] ldrh w0, [x0] cmp w27, w0 bcc .L1377 .L1376: ldr x0, [x19, #:lo12:.LANCHOR12] str w28, [x0, 580] .L1366: cbz w21, .L1379 ldr x2, [x22, #:lo12:.LANCHOR110] adrp x0, .LANCHOR8 ldrh w5, [x0, #:lo12:.LANCHOR8] ldr x0, [x24, #:lo12:.LANCHOR9] ldrh w1, [x2, 134] add x0, x0, x1, uxth 2 .L1380: cmp w1, w5 bcc .L1382 ldrh w0, [x2, 72] add w0, w21, w0 strh w0, [x2, 72] ldrh w0, [x2, 98] cmp w21, w0 bcs .L1379 sub w21, w0, w21 strh w21, [x2, 98] .L1379: cbz w20, .L1385 ldr x2, [x22, #:lo12:.LANCHOR110] adrp x0, .LANCHOR8 ldrh w6, [x0, #:lo12:.LANCHOR8] ldr x0, [x24, #:lo12:.LANCHOR9] ldrh w1, [x2, 134] add x0, x0, x1, uxth 2 .L1386: cmp w1, w6 bcc .L1388 ldrh w0, [x2, 74] add w0, w20, w0 strh w0, [x2, 74] ldrh w0, [x2, 96] cmp w20, w0 bcs .L1385 sub w20, w0, w20 strh w20, [x2, 96] .L1385: mov w1, 0 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L1343 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x3, [x2, #:lo12:.LANCHOR11] adrp x2, .LANCHOR94 ldrh w2, [x2, #:lo12:.LANCHOR94] ldrh w1, [x3, x1] cmp w1, w2, lsr 1 bhi .L1343 add w23, w23, 1 mov w2, 1 mov w1, 0 bl gc_add_sblk .L1343: add w0, w23, w25 .L1338: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 160 ret .L1353: uxtw x7, w28 ldr x6, [x24, #:lo12:.LANCHOR9] lsl x2, x7, 2 add x11, x6, x2 ldrb w0, [x11, 2] and w1, w0, 224 cmp w1, 224 beq .L1345 ubfx x4, x0, 3, 2 tbz x4, 0, .L1346 ldr w0, [x6, x2] ldrh w1, [x6, x2] ubfx x0, x0, 11, 8 and w1, w1, 2047 .L1347: ldr w3, [x29, 136] add w26, w26, 1 and w26, w26, 65535 cmp w20, w1 add w3, w3, w1 str w3, [x29, 136] bls .L1391 ldr x3, [x19, #:lo12:.LANCHOR12] mov w20, w1 strh w28, [x3, 586] .L1391: ldr w3, [x29, 148] cmp w3, w1 bcs .L1350 mov w27, w28 str w1, [x29, 148] .L1350: mov w3, 65535 cmp w0, w3 bne .L1349 .L1351: cmp w0, 9 ccmp w1, 9, 0, hi bhi .L1345 ldr w0, [x8] tbz x0, 8, .L1345 adrp x0, .LANCHOR11 ldr w3, [x6, x2] ldrh w2, [x6, x2] mov w1, w28 ldr x0, [x0, #:lo12:.LANCHOR11] ldrb w6, [x11, 3] ubfx x3, x3, 11, 8 ldrb w5, [x11, 2] and w2, w2, 2047 str x8, [x29, 120] ldrh w7, [x0, x7, lsl 1] adrp x0, .LC82 str x10, [x29, 152] ubfx x5, x5, 5, 3 add x0, x0, :lo12:.LC82 bl printf ldr x8, [x29, 120] ldr x10, [x29, 152] .L1345: add w28, w28, 1 and w28, w28, 65535 b .L1344 .L1346: tst w0, 24 bne .L1348 ldrh w1, [x6, x2] mov w0, 65535 and w1, w1, 2047 b .L1347 .L1348: ldr w0, [x6, x2] mov w1, 65535 ubfx x0, x0, 11, 8 .L1349: ldr w3, [x29, 144] add w25, w25, 1 and w25, w25, 65535 cmp w21, w0 add w3, w3, w0 str w3, [x29, 144] bls .L1352 ldr x3, [x19, #:lo12:.LANCHOR12] mov w21, w0 strh w28, [x3, 584] .L1352: cmp w23, w0 bcs .L1351 mov w23, w0 str w28, [x29, 128] b .L1351 .L1357: cbnz w3, .L1356 ldr x1, [x19, #:lo12:.LANCHOR12] mov w0, 65535 ldrh w2, [x1, 590] cmp w2, w0 bne .L1356 ldrh w0, [x1, 586] ldrh w1, [x1, 588] cmp w1, w0 beq .L1356 bl zftl_remove_free_node ldr x0, [x19, #:lo12:.LANCHOR12] ldrh w1, [x0, 586] strh w1, [x0, 590] mov w1, -1 strh w1, [x0, 586] b .L1356 .L1360: and w0, w0, 248 cmp w0, 16 bne .L1359 ldr x1, [x19, #:lo12:.LANCHOR12] mov w0, 65535 ldrh w2, [x1, 588] cmp w2, w0 bne .L1359 ldrh w0, [x1, 584] ldrh w1, [x1, 590] cmp w1, w0 beq .L1359 bl zftl_remove_free_node ldr x0, [x19, #:lo12:.LANCHOR12] ldrh w1, [x0, 584] strh w1, [x0, 588] mov w1, -1 strh w1, [x0, 584] b .L1359 .L1377: add w7, w28, 1 ldr x4, [x24, #:lo12:.LANCHOR9] and w28, w7, 65535 cmp w0, w28 csel w28, w28, wzr, hi uxtw x8, w28 lsl x3, x8, 2 add x0, x4, x3 ldrb w0, [x0, 2] tst w0, 192 beq .L1369 and w2, w0, 224 cmp w2, 224 beq .L1369 ubfx x0, x0, 3, 2 and w1, w0, 1 tbz x0, 0, .L1370 cmp w2, 160 .L1457: bne .L1372 adrp x0, .LANCHOR150 ldr w2, [x29, 144] ldrh w0, [x0, #:lo12:.LANCHOR150] cmp w2, w0 ble .L1373 ldr w0, [x4, x3] ubfx x0, x0, 11, 8 cmp w0, w21 bls .L1374 cbz w1, .L1373 ldrh w0, [x4, x3] and w0, w0, 2047 cmp w0, w20 bgt .L1373 .L1374: stp x4, x8, [x29, 104] mov w2, 1 str x3, [x29, 120] mov w1, 0 mov w0, w28 bl gc_add_sblk mov w0, 1 strh w0, [x26, 2192] ldr x0, [x29, 152] add w23, w23, 1 ldp x4, x8, [x29, 104] ldr x3, [x29, 120] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1373 adrp x0, .LANCHOR11 ldr w6, [x4, x3] ldrh w5, [x4, x3] ldr x1, [x0, #:lo12:.LANCHOR11] ldr x0, [x24, #:lo12:.LANCHOR9] ubfx x6, x6, 11, 8 ldrh w4, [x26, 56] and w5, w5, 2047 add x3, x0, x3 adrp x0, .LC89 add x0, x0, :lo12:.LC89 ldrb w2, [x3, 2] ldrh w3, [x1, x8, lsl 1] mov w1, w28 ubfx x2, x2, 5, 3 .L1458: bl printf .L1373: cmp w23, 4 ccmp w25, 4, 2, ls bhi .L1376 .L1369: add w27, w27, 1 and w27, w27, 65535 b .L1367 .L1370: cmp w0, 2 b .L1457 .L1372: ldr x2, [x29, 128] ldr w0, [x29, 148] sub w0, w0, w20 ldrh w2, [x2] cmp w0, w2 ble .L1373 ldrh w0, [x4, x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 ble .L1375 cbz w1, .L1373 ldr w0, [x4, x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 bgt .L1373 .L1375: stp x4, x8, [x29, 104] mov w2, 1 str x3, [x29, 120] mov w1, 0 mov w0, w28 bl gc_add_sblk mov w0, 1 strh w0, [x26, 2192] ldr x0, [x29, 152] add w25, w25, 1 ldp x4, x8, [x29, 104] ldr x3, [x29, 120] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L1373 adrp x0, .LANCHOR11 ldr w6, [x4, x3] ldrh w5, [x4, x3] ldr x1, [x0, #:lo12:.LANCHOR11] ldr x0, [x24, #:lo12:.LANCHOR9] ubfx x6, x6, 11, 8 and w5, w5, 2047 ldrh w4, [x26, 56] add x3, x0, x3 adrp x0, .LC90 add x0, x0, :lo12:.LC90 ldrb w2, [x3, 2] ldrh w3, [x1, x8, lsl 1] mov w1, w28 ubfx x2, x2, 5, 3 b .L1458 .L1394: mov w25, 0 mov w23, 0 b .L1366 .L1382: ldr w3, [x0] ubfx x4, x3, 11, 8 cmp w21, w4 bhi .L1381 ldrb w6, [x0, 2] tst w6, 24 beq .L1381 sub w4, w4, w21 bfi w3, w4, 11, 8 str w3, [x0] .L1381: add w1, w1, 1 add x0, x0, 4 and w1, w1, 65535 b .L1380 .L1388: ldrh w3, [x0] and w4, w3, 2047 cmp w4, w20 blt .L1387 ldrb w5, [x0, 2] and w5, w5, 24 cmp w5, 16 beq .L1387 sub w4, w4, w20 bfi w3, w4, 0, 11 strh w3, [x0] .L1387: add w1, w1, 1 add x0, x0, 4 and w1, w1, 65535 b .L1386 .L1393: mov w25, 0 mov w23, 0 b .L1343 .L1392: mov w0, 0 b .L1338 .size gc_static_wearleveling, .-gc_static_wearleveling .section .text.zftl_sblk_list_init,"ax",@progbits .align 2 .global zftl_sblk_list_init .type zftl_sblk_list_init, %function zftl_sblk_list_init: stp x29, x30, [sp, -208]! adrp x8, .LANCHOR4 mov w0, 6 mov w1, 0 add x29, sp, 0 stp x27, x28, [sp, 80] adrp x28, .LANCHOR8 stp x19, x20, [sp, 16] adrp x20, .LANCHOR99 ldrh w2, [x28, #:lo12:.LANCHOR8] mov w27, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR97 stp x23, x24, [sp, 48] adrp x21, .LANCHOR91 stp x25, x26, [sp, 64] adrp x26, .LANCHOR110 mul w2, w2, w0 ldr x0, [x8, #:lo12:.LANCHOR4] str x8, [x29, 192] adrp x25, .LANCHOR103 adrp x24, .LANCHOR105 adrp x23, .LANCHOR107 bl ftl_memset strh wzr, [x25, #:lo12:.LANCHOR103] adrp x0, .LANCHOR109 adrp x3, .LANCHOR79 adrp x2, .LANCHOR85 mov w1, 32 strh w1, [x0, #:lo12:.LANCHOR109] adrp x11, .LANCHOR104 ldrb w0, [x3, #:lo12:.LANCHOR79] adrp x10, .LANCHOR106 ldrh w1, [x2, #:lo12:.LANCHOR85] adrp x7, .LANCHOR108 adrp x6, .LANCHOR90 adrp x5, .LANCHOR95 adrp x4, .LANCHOR92 ldr x8, [x29, 192] str xzr, [x11, #:lo12:.LANCHOR104] mul w1, w0, w1 mov w0, 32768 str xzr, [x10, #:lo12:.LANCHOR106] str xzr, [x7, #:lo12:.LANCHOR108] str xzr, [x6, #:lo12:.LANCHOR90] sdiv w0, w0, w1 str xzr, [x5, #:lo12:.LANCHOR95] str xzr, [x4, #:lo12:.LANCHOR92] strh wzr, [x24, #:lo12:.LANCHOR105] strh wzr, [x23, #:lo12:.LANCHOR107] sxth w0, w0 str w0, [x29, 204] ldr x0, [x26, #:lo12:.LANCHOR110] strh wzr, [x22, #:lo12:.LANCHOR97] strh wzr, [x21, #:lo12:.LANCHOR91] strh wzr, [x20, #:lo12:.LANCHOR99] strh wzr, [x0, 146] ldrsh w19, [x0, 134] add x0, x28, :lo12:.LANCHOR8 str x0, [x29, 192] adrp x0, .LANCHOR151 add x0, x0, :lo12:.LANCHOR151 adrp x28, .LC0 str x0, [x29, 112] add x0, x28, :lo12:.LC0 stp x2, x3, [x29, 120] stp x4, x5, [x29, 136] stp x6, x7, [x29, 152] stp x10, x11, [x29, 168] str x8, [x29, 184] str x0, [x29, 104] .L1460: ldr x0, [x29, 192] ldrh w0, [x0] cmp w19, w0 blt .L1477 ldr x0, [x26, #:lo12:.LANCHOR110] ldrh w1, [x25, #:lo12:.LANCHOR103] ldp x27, x28, [sp, 80] strh w1, [x0, 114] ldrh w1, [x24, #:lo12:.LANCHOR105] strh w1, [x0, 118] ldrh w1, [x23, #:lo12:.LANCHOR107] strh w1, [x0, 116] ldrh w1, [x22, #:lo12:.LANCHOR97] strh w1, [x0, 122] ldrh w1, [x21, #:lo12:.LANCHOR91] strh w1, [x0, 120] ldrh w1, [x20, #:lo12:.LANCHOR99] strh w1, [x0, 124] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 208 ret .L1477: adrp x0, .LANCHOR9 sxtw x2, w19 ldr x3, [x0, #:lo12:.LANCHOR9] add x28, x3, x2, lsl 2 ldrb w5, [x28, 3] cbz w5, .L1478 ldr x0, [x29, 128] mov w1, 0 ldr x6, [x26, #:lo12:.LANCHOR110] ldrb w7, [x0, #:lo12:.LANCHOR79] ldr x0, [x29, 120] ldrh w8, [x0, #:lo12:.LANCHOR85] mov w0, 0 .L1462: cmp w1, w7 blt .L1465 cbz w0, .L1466 mov w1, 32768 sdiv w0, w1, w0 add w0, w0, 1 sxth w0, w0 .L1461: ldr x3, [x29, 184] mov w1, 6 smull x1, w19, w1 ldr x4, [x3, #:lo12:.LANCHOR4] add x5, x4, x1 strh w0, [x5, 4] mov w0, -1 strh w0, [x5, 2] strh w0, [x4, x1] mov w1, 224 ldrb w0, [x28, 2] and w0, w0, 224 cmp w0, 32 ccmp w0, w1, 4, ne beq .L1467 adrp x1, .LANCHOR12 ldr x1, [x1, #:lo12:.LANCHOR12] ldrh w4, [x1, 16] cmp w19, w4 beq .L1467 ldrh w4, [x1, 48] cmp w19, w4 beq .L1467 ldrh w1, [x1, 80] cmp w19, w1 beq .L1467 cmp w0, 64 bne .L1468 ldr x0, [x29, 144] add x2, x22, :lo12:.LANCHOR97 mov w1, w19 add x0, x0, :lo12:.LANCHOR95 .L1484: bl _insert_data_list .L1467: add w19, w19, 1 sxth w19, w19 b .L1460 .L1465: asr w4, w5, w1 tbnz x4, 0, .L1463 add w0, w8, w0 sxth w0, w0 .L1464: add w1, w1, 1 b .L1462 .L1463: ldrh w4, [x6, 146] add w4, w4, 1 strh w4, [x6, 146] b .L1464 .L1466: ldrb w1, [x28, 2] mov w4, -1 orr w1, w1, -32 strb w1, [x28, 2] adrp x1, .LANCHOR11 ldr x1, [x1, #:lo12:.LANCHOR11] strh w4, [x1, x2, lsl 1] b .L1461 .L1478: ldr w0, [x29, 204] b .L1461 .L1468: cmp w0, 96 bne .L1469 ldr x0, [x29, 152] add x2, x20, :lo12:.LANCHOR99 mov w1, w19 add x0, x0, :lo12:.LANCHOR90 b .L1484 .L1469: cmp w0, 160 bne .L1470 ldr x0, [x29, 136] add x2, x21, :lo12:.LANCHOR91 mov w1, w19 add x0, x0, :lo12:.LANCHOR92 b .L1484 .L1470: cbnz w0, .L1467 adrp x0, .LANCHOR11 ldr x0, [x0, #:lo12:.LANCHOR11] ldrh w2, [x0, x2, lsl 1] cbz w2, .L1471 cmp w27, 2 bgt .L1472 mov w1, w19 adrp x0, .LC91 add x0, x0, :lo12:.LC91 bl printf ldrb w0, [x28, 2] add w27, w27, 1 sxth w27, w27 tbz x0, 4, .L1473 mov w1, 5 .L1483: bfi w0, w1, 5, 3 strb w0, [x28, 2] mov w2, 0 mov w1, 1 mov w0, w19 bl gc_add_sblk b .L1467 .L1473: mov w1, 2 b .L1483 .L1472: ldp x0, x1, [x29, 104] mov w2, 656 bl printf .L1471: ldrb w0, [x28, 2] ands w0, w0, 24 bne .L1475 ldr x0, [x29, 176] add x2, x25, :lo12:.LANCHOR103 mov w1, w19 add x0, x0, :lo12:.LANCHOR104 .L1485: bl _insert_free_list b .L1467 .L1475: cmp w0, 16 bne .L1476 ldr x0, [x29, 168] add x2, x24, :lo12:.LANCHOR105 mov w1, w19 add x0, x0, :lo12:.LANCHOR106 b .L1485 .L1476: ldr x0, [x29, 160] add x2, x23, :lo12:.LANCHOR107 mov w1, w19 add x0, x0, :lo12:.LANCHOR108 b .L1485 .size zftl_sblk_list_init, .-zftl_sblk_list_init .section .text.pm_free_sblk,"ax",@progbits .align 2 .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: stp x29, x30, [sp, -384]! adrp x0, .LANCHOR152 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 ldrh w1, [x0, #:lo12:.LANCHOR152] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w1, 128 stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] bls .L1487 adrp x1, .LANCHOR153 adrp x0, .LC0 mov w2, 94 add x1, x1, :lo12:.LANCHOR153 add x0, x0, :lo12:.LC0 bl printf .L1487: adrp x5, .LANCHOR110 mov x26, x5 ldrh w3, [x19, #:lo12:.LANCHOR152] mov w1, 0 ldr x0, [x5, #:lo12:.LANCHOR110] mov w19, 0 mov w4, 65535 add x0, x0, 416 ldrh w2, [x0, 272] .L1490: ldrh w6, [x0] cmp w6, w4 beq .L1488 add w1, w1, 1 and w1, w1, 65535 .L1488: cmp w1, w2 bcs .L1489 cmp w1, w3 bcs .L1489 add w19, w19, 1 add x0, x0, 2 and w19, w19, 65535 cmp w19, 128 bne .L1490 .L1489: add w19, w19, 1 mov w0, 128 and w19, w19, 65535 add x22, x29, 128 cmp w19, 129 mov w2, 256 csel w19, w19, w0, ne mov w1, 0 mov x0, x22 adrp x23, .LANCHOR75 bl ftl_memset adrp x0, .LANCHOR74 ldr x6, [x26, #:lo12:.LANCHOR110] mov w2, 24 ldrb w11, [x23, #:lo12:.LANCHOR75] ldrh w10, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR31 add x4, x6, 704 ldrb w0, [x0, #:lo12:.LANCHOR31] ldrh w1, [x6, 698] sub w2, w2, w0 sub w0, w2, w10 add x1, x1, 176 mov w2, 1 add x1, x6, x1, lsl 2 lsl w2, w2, w0 sub w2, w2, #1 .L1492: cmp x1, x4 bne .L1495 adrp x24, .LANCHOR79 adrp x25, .LANCHOR94 adrp x27, .LC92 adrp x28, .LANCHOR19 ldrb w21, [x24, #:lo12:.LANCHOR79] add x23, x23, :lo12:.LANCHOR75 ldrh w0, [x25, #:lo12:.LANCHOR94] add x27, x27, :lo12:.LC92 add x28, x28, :lo12:.LANCHOR19 mov x20, 0 mov w7, 65535 str wzr, [x29, 124] mul w21, w21, w0 and w21, w21, 65535 .L1501: ldr x0, [x26, #:lo12:.LANCHOR110] and w6, w20, 65535 ldrb w2, [x23] mov w8, w20 add x1, x0, x20, sxtw 1 ldrh w3, [x1, 416] ldrh w1, [x0, 692] sdiv w1, w1, w2 cmp w1, w3 bne .L1496 ldrb w1, [x24, #:lo12:.LANCHOR79] ldrh w2, [x25, #:lo12:.LANCHOR94] mul w1, w1, w2 strh w1, [x22, x20, lsl 1] .L1496: ldrh w2, [x22, x20, lsl 1] cmp w2, w21 bcs .L1497 cmp w2, 0 ldr w1, [x29, 124] csel w21, w21, w2, eq csel w1, w1, w6, eq str w1, [x29, 124] .L1497: ldrh w1, [x0, 74] cmp w1, 2 bls .L1498 mov w1, 65535 cmp w3, w1 beq .L1498 adrp x4, .LANCHOR9 ubfiz x1, x3, 2, 16 ldrh w0, [x0, 92] ldr x4, [x4, #:lo12:.LANCHOR9] add w0, w0, 4 ldrh w4, [x4, x1] and w4, w4, 2047 cmp w4, w0 bgt .L1498 mov w1, w8 str w6, [x29, 104] str w8, [x29, 112] mov x0, x27 bl printf ldr w6, [x29, 104] ldr w8, [x29, 112] mov w7, w6 .L1498: ldrh w0, [x22, x20, lsl 1] cbnz w0, .L1499 ldr x0, [x26, #:lo12:.LANCHOR110] sxtw x6, w8 add x1, x6, 208 ldrh w3, [x0, x1, lsl 1] mov w1, 65535 cmp w3, w1 beq .L1499 ldr w1, [x28] tbz x1, 12, .L1500 ldrh w4, [x0, 688] mov w2, 0 str x6, [x29, 104] mov w1, w8 str w7, [x29, 112] adrp x0, .LC93 add x0, x0, :lo12:.LC93 bl printf ldr w7, [x29, 112] ldr x6, [x29, 104] .L1500: ldr x0, [x26, #:lo12:.LANCHOR110] add x6, x6, 208 str w7, [x29, 104] str x6, [x29, 112] ldrh w0, [x0, x6, lsl 1] bl ftl_free_sblk ldr x0, [x26, #:lo12:.LANCHOR110] mov w1, -1 ldr x6, [x29, 112] ldr w7, [x29, 104] strh w1, [x0, x6, lsl 1] ldrh w1, [x0, 688] sub w1, w1, #1 strh w1, [x0, 688] .L1499: add x20, x20, 1 cmp w19, w20, uxth bhi .L1501 mov w0, 65535 cmp w7, w0 ldr w0, [x29, 124] ldp x19, x20, [sp, 16] csel w0, w0, w7, eq ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 384 ret .L1495: ldr w0, [x4] add x7, x6, 416 mov x3, 0 lsr w0, w0, w10 and w0, w0, w2 udiv w0, w0, w11 and w0, w0, 65535 .L1494: ldrh w8, [x7] cmp w8, w0 bne .L1493 ldrh w8, [x22, x3, lsl 1] add w8, w8, 1 strh w8, [x22, x3, lsl 1] .L1493: add x3, x3, 1 add x7, x7, 2 cmp w19, w3, uxth bhi .L1494 add x4, x4, 4 b .L1492 .size pm_free_sblk, .-pm_free_sblk .section .text.ftl_memcpy,"ax",@progbits .align 2 .global ftl_memcpy .type ftl_memcpy, %function ftl_memcpy: uxtw x2, w2 b memcpy .size ftl_memcpy, .-ftl_memcpy .section .text.flash_info_data_init,"ax",@progbits .align 2 .global flash_info_data_init .type flash_info_data_init, %function flash_info_data_init: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR19 add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR19] str x19, [sp, 16] tbz x0, 12, .L1514 adrp x2, .LANCHOR154 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR154 mov w1, 120 add x0, x0, :lo12:.LC94 bl printf .L1514: adrp x19, .LANCHOR6 mov w2, 2048 mov w1, 0 ldr x0, [x19, #:lo12:.LANCHOR6] bl ftl_memset ldr x0, [x19, #:lo12:.LANCHOR6] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w2, 32 add x0, x0, 80 str w1, [x0, -80] mov w1, 2032 str w1, [x0, -72] mov w1, 1 strh w1, [x0, -64] adrp x1, .LANCHOR25 add x1, x1, :lo12:.LANCHOR25 bl ftl_memcpy ldr x0, [x19, #:lo12:.LANCHOR6] mov w2, 32 ldr x19, [sp, 16] adrp x1, .LANCHOR32 ldp x29, x30, [sp], 32 add x1, x1, :lo12:.LANCHOR32 add x0, x0, 48 b ftl_memcpy .size flash_info_data_init, .-flash_info_data_init .section .text.ftl_memcpy32,"ax",@progbits .align 2 .global ftl_memcpy32 .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 .L1520: cmp w2, w3 bhi .L1521 ret .L1521: ldr w4, [x1, x3, lsl 2] str w4, [x0, x3, lsl 2] add x3, x3, 1 b .L1520 .size ftl_memcpy32, .-ftl_memcpy32 .section .text.ftl_memcmp,"ax",@progbits .align 2 .global ftl_memcmp .type ftl_memcmp, %function ftl_memcmp: uxtw x2, w2 b memcmp .size ftl_memcmp, .-ftl_memcmp .section .text.rknand_get_clk_rate,"ax",@progbits .align 2 .global rknand_get_clk_rate .type rknand_get_clk_rate, %function rknand_get_clk_rate: mov w0, 19712 movk w0, 0x8d2, lsl 16 ret .size rknand_get_clk_rate, .-rknand_get_clk_rate .section .text.ftl_malloc,"ax",@progbits .align 2 .global ftl_malloc .type ftl_malloc, %function ftl_malloc: mov w1, 0 sxtw x0, w0 b kmalloc .size ftl_malloc, .-ftl_malloc .section .text.nandc_init,"ax",@progbits .align 2 .global nandc_init .type nandc_init, %function nandc_init: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR19 stp x19, x20, [sp, 16] mov x19, x0 ldr w0, [x21, #:lo12:.LANCHOR19] str wzr, [x29, 56] tbz x0, 12, .L1526 adrp x1, .LANCHOR155 adrp x0, .LC95 mov x2, x19 add x1, x1, :lo12:.LANCHOR155 add x0, x0, :lo12:.LC95 bl printf .L1526: adrp x20, .LANCHOR27 mov w0, 6 ldr w2, [x19, 352] mov w1, 12336 strb w0, [x20, #:lo12:.LANCHOR27] adrp x0, .LANCHOR7 movk w1, 0x5638, lsl 16 mov x22, x0 str x19, [x0, #:lo12:.LANCHOR7] cmp w2, w1 bne .L1527 mov w0, 8 strb w0, [x20, #:lo12:.LANCHOR27] .L1527: ldr w1, [x19, 128] mov w0, 12336 movk w0, 0x5639, lsl 16 cmp w1, w0 bne .L1528 mov w0, 9 strb w0, [x20, #:lo12:.LANCHOR27] .L1528: ldrb w0, [x20, #:lo12:.LANCHOR27] cmp w0, 9 adrp x0, .LANCHOR50 bne .L1529 mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR50] ldr w0, [x29, 56] mov w1, 2 orr w0, w0, 256 str w0, [x29, 56] ldr w0, [x29, 56] bfi w0, w1, 18, 3 str w0, [x29, 56] ldr w0, [x29, 56] str w0, [x19] str wzr, [x19, 520] mov w0, 4161 str w0, [x19, 4] mov w0, 8321 str w0, [x19, 8] mov w0, 4099 movk w0, 0x10, lsl 16 str w0, [x19, 80] mov w0, 38 str w0, [x19, 84] mov w0, 39 str w0, [x19, 84] ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L1531 ldr w1, [x19] ldr w2, [x19, 8] ldr w3, [x19, 80] ldr w4, [x19, 84] ldr w5, [x19, 88] .L1544: adrp x0, .LC96 add x0, x0, :lo12:.LC96 bl printf .L1531: adrp x0, .LANCHOR51 mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR51] adrp x0, .LANCHOR53 strh wzr, [x0, #:lo12:.LANCHOR53] adrp x0, .LANCHOR49 strb wzr, [x0, #:lo12:.LANCHOR49] ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L1525 ldrb w1, [x20, #:lo12:.LANCHOR27] adrp x0, .LC97 add x0, x0, :lo12:.LC97 bl printf .L1525: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .L1529: strb wzr, [x0, #:lo12:.LANCHOR50] mov w1, 1 ldr w0, [x29, 56] orr w0, w0, 256 str w0, [x29, 56] ldr w0, [x29, 56] bfi w0, w1, 24, 3 str w0, [x29, 56] ldr w0, [x29, 56] str w0, [x19] str wzr, [x19, 336] mov w0, 4193 str w0, [x19, 4] mov w0, 8321 str w0, [x19, 344] mov w0, 4099 movk w0, 0x10, lsl 16 str w0, [x19, 304] mov w0, 38 str w0, [x19, 308] mov w0, 39 str w0, [x19, 308] mov w0, 2048 bl ftl_malloc adrp x1, .LANCHOR52 str x0, [x1, #:lo12:.LANCHOR52] ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L1531 ldr x0, [x22, #:lo12:.LANCHOR7] ldr w1, [x0] ldr w2, [x0, 344] ldr w3, [x0, 304] ldr w4, [x0, 308] ldr w5, [x0, 312] b .L1544 .size nandc_init, .-nandc_init .section .text.zbuf_init,"ax",@progbits .align 2 .global zbuf_init .type zbuf_init, %function zbuf_init: stp x29, x30, [sp, -48]! adrp x0, .LANCHOR55 add x29, sp, 0 stp x19, x20, [sp, 16] add x19, x0, :lo12:.LANCHOR55 stp x21, x22, [sp, 32] mov x20, x0 adrp x22, .LANCHOR131 add x22, x22, :lo12:.LANCHOR131 mov w21, 0 .L1546: and w0, w21, 255 strb w0, [x19, 1] add w1, w0, 1 ldrb w0, [x22] strb w1, [x19] add w21, w21, 1 strb wzr, [x19, 2] add x19, x19, 64 str xzr, [x19, -48] lsl w0, w0, 9 bl ftl_malloc str x0, [x19, -56] mov w0, 64 bl ftl_malloc str x0, [x19, -40] cmp w21, 32 bne .L1546 add x0, x20, :lo12:.LANCHOR55 mov w1, -1 strb w1, [x0, 1984] adrp x0, .LANCHOR56 strb wzr, [x0, #:lo12:.LANCHOR56] adrp x0, .LANCHOR57 ldp x19, x20, [sp, 16] strb w21, [x0, #:lo12:.LANCHOR57] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size zbuf_init, .-zbuf_init .section .text.gc_init,"ax",@progbits .align 2 .global gc_init .type gc_init, %function gc_init: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR84 mov w2, 2216 mov w1, 0 add x29, sp, 0 strb wzr, [x0, #:lo12:.LANCHOR84] adrp x0, .LANCHOR156 stp x19, x20, [sp, 16] adrp x20, .LANCHOR70 strb wzr, [x0, #:lo12:.LANCHOR156] adrp x0, .LANCHOR157 add x19, x20, :lo12:.LANCHOR70 str wzr, [x0, #:lo12:.LANCHOR157] adrp x0, .LANCHOR96 strh wzr, [x0, #:lo12:.LANCHOR96] mov x0, x19 bl ftl_memset str xzr, [x19, 8] mov w0, -1 strh w0, [x20, #:lo12:.LANCHOR70] adrp x0, .LANCHOR94 adrp x4, .LANCHOR102 adrp x20, .LANCHOR85 ldrh w1, [x0, #:lo12:.LANCHOR94] lsr w2, w1, 1 lsr w0, w1, 2 strh w2, [x19, 38] adrp x2, .LANCHOR87 strh w0, [x19, 36] adrp x19, .LANCHOR79 strh wzr, [x2, #:lo12:.LANCHOR87] adrp x2, .LANCHOR88 ldrb w3, [x19, #:lo12:.LANCHOR79] strh wzr, [x2, #:lo12:.LANCHOR88] adrp x2, .LANCHOR89 strh wzr, [x2, #:lo12:.LANCHOR89] mul w2, w1, w3 and w2, w2, 65535 sub w5, w2, #32 strh w5, [x4, #:lo12:.LANCHOR102] adrp x4, .LANCHOR100 strh w2, [x4, #:lo12:.LANCHOR100] adrp x2, .LANCHOR93 strh w1, [x2, #:lo12:.LANCHOR93] adrp x1, .LANCHOR158 mov w2, 4 strh w2, [x1, #:lo12:.LANCHOR158] adrp x1, .LANCHOR69 strh w0, [x1, #:lo12:.LANCHOR69] ldrh w0, [x20, #:lo12:.LANCHOR85] mul w0, w0, w3 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR159 str x0, [x1, #:lo12:.LANCHOR159] ldrb w1, [x19, #:lo12:.LANCHOR79] ldrh w0, [x20, #:lo12:.LANCHOR85] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR160 str x0, [x1, #:lo12:.LANCHOR160] ldrh w1, [x20, #:lo12:.LANCHOR85] ldrb w0, [x19, #:lo12:.LANCHOR79] mul w0, w1, w0 bl ftl_malloc adrp x1, .LANCHOR82 str x0, [x1, #:lo12:.LANCHOR82] ldrb w1, [x19, #:lo12:.LANCHOR79] ldrh w0, [x20, #:lo12:.LANCHOR85] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR76 str x0, [x1, #:lo12:.LANCHOR76] ldrb w1, [x19, #:lo12:.LANCHOR79] ldrh w0, [x20, #:lo12:.LANCHOR85] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR161 ldp x19, x20, [sp, 16] str x0, [x1, #:lo12:.LANCHOR161] adrp x0, .LANCHOR98 adrp x1, .LANCHOR86 ldp x29, x30, [sp], 32 ldrh w0, [x0, #:lo12:.LANCHOR98] lsr w0, w0, 2 strh w0, [x1, #:lo12:.LANCHOR86] ret .size gc_init, .-gc_init .section .text.ftl_free,"ax",@progbits .align 2 .global ftl_free .type ftl_free, %function ftl_free: b free .size ftl_free, .-ftl_free .section .text.js_hash,"ax",@progbits .align 2 .global js_hash .type js_hash, %function js_hash: mov x4, x0 mov w0, 42982 mov x3, 0 movk w0, 0x47c6, lsl 16 .L1553: cmp w1, w3 bhi .L1554 ret .L1554: 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 .L1553 .size js_hash, .-js_hash .section .text.ftl_debug_info_fill,"ax",@progbits .align 2 .global ftl_debug_info_fill .type ftl_debug_info_fill, %function ftl_debug_info_fill: adrp x3, .LANCHOR131 ldrb w3, [x3, #:lo12:.LANCHOR131] cmp w3, 8 bls .L1559 and w0, w0, 255 cmp x2, 0 ccmp w0, 2, 0, ne bne .L1557 stp x29, x30, [sp, -16]! mov x6, x1 mov w1, 21320 mov x0, x2 add x29, sp, 0 movk w1, 0x4841, lsl 16 str w1, [x6] mov w1, 1024 bl js_hash str w0, [x6, 4] mov w0, 0 ldp x29, x30, [sp], 16 ret .L1557: stp wzr, wzr, [x1] .L1559: mov w0, 0 ret .size ftl_debug_info_fill, .-ftl_debug_info_fill .section .text.timer_get_time,"ax",@progbits .align 2 .global timer_get_time .type timer_get_time, %function timer_get_time: mov w0, 0 ret .size timer_get_time, .-timer_get_time .section .text.FlashCs123Init,"ax",@progbits .align 2 .global FlashCs123Init .type FlashCs123Init, %function FlashCs123Init: ret .size FlashCs123Init, .-FlashCs123Init .section .text.rk_nand_de_init,"ax",@progbits .align 2 .global rk_nand_de_init .type rk_nand_de_init, %function rk_nand_de_init: b zftl_flash_de_init .size rk_nand_de_init, .-rk_nand_de_init .section .text.ftl_get_density,"ax",@progbits .align 2 .global ftl_get_density .type ftl_get_density, %function ftl_get_density: and w0, w0, 255 b zftl_get_density .size ftl_get_density, .-ftl_get_density .section .text.ftl_get_capacity,"ax",@progbits .align 2 .global ftl_get_capacity .type ftl_get_capacity, %function ftl_get_capacity: adrp x0, .LANCHOR67 ldr w0, [x0, #:lo12:.LANCHOR67] ret .size ftl_get_capacity, .-ftl_get_capacity .section .text.rknand_print_hex,"ax",@progbits .align 2 .global rknand_print_hex .type rknand_print_hex, %function rknand_print_hex: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LC99 stp x23, x24, [sp, 48] mov x22, x1 stp x25, x26, [sp, 64] mov w24, w2 stp x27, x28, [sp, 80] adrp x25, .LC98 mov x27, x0 uxtw x26, w3 add x25, x25, :lo12:.LC98 add x21, x21, :lo12:.LC99 stp x19, x20, [sp, 16] mov w23, 0 mov x19, 0 mov w20, 0 adrp x28, .LC100 .L1568: cmp x26, x19 bne .L1574 ldp x19, x20, [sp, 16] adrp x1, .LC100 ldp x21, x22, [sp, 32] add x1, x1, :lo12:.LC100 ldp x23, x24, [sp, 48] adrp x0, .LC101 ldp x25, x26, [sp, 64] add x0, x0, :lo12:.LC101 ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 b printf .L1574: cbnz w20, .L1569 mov w3, w23 mov x2, x22 mov x1, x27 mov x0, x25 bl printf .L1569: cmp w24, 4 bne .L1570 ldr w1, [x22, x19, lsl 2] .L1576: mov x0, x21 add w20, w20, 1 bl printf cmp w20, 15 bls .L1573 mov w20, 0 add x1, x28, :lo12:.LC100 adrp x0, .LC101 add x0, x0, :lo12:.LC101 bl printf .L1573: add x19, x19, 1 add w23, w23, w24 b .L1568 .L1570: cmp w24, 2 bne .L1572 ldrsh w1, [x22, x19, lsl 1] b .L1576 .L1572: ldrb w1, [x22, x19] b .L1576 .size rknand_print_hex, .-rknand_print_hex .section .text.hynix_get_read_retry_default,"ax",@progbits .align 2 .global hynix_get_read_retry_default .type hynix_get_read_retry_default, %function hynix_get_read_retry_default: stp x29, x30, [sp, -144]! mov w2, -83 mov w1, -82 add x29, sp, 0 stp x25, x26, [sp, 64] mov w25, w0 adrp x0, .LANCHOR6 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w25, 2 ldr x26, [x0, #:lo12:.LANCHOR6] mov w0, -84 stp x19, x20, [sp, 16] stp x27, x28, [sp, 80] add x24, x26, 128 add x21, x26, 112 strb w0, [x26, 128] mov w0, -81 strb w25, [x26, 112] strb w2, [x26, 129] strb w1, [x26, 130] strb w0, [x26, 131] bne .L1578 mov w0, -89 strb w0, [x21, 16] adrp x0, .LANCHOR162+17 mov w1, -9 strb w1, [x0, #:lo12:.LANCHOR162+17] .L1642: mov w27, 7 b .L1685 .L1578: cmp w25, 3 bne .L1580 mov x5, 0 .L1581: sub w0, w5, #80 strb w0, [x24, x5] add x5, x5, 1 cmp x5, 8 bne .L1581 mov w27, w5 mov w28, w5 .L1579: sub w0, w25, #1 cmp w0, 1 bhi .L1587 adrp x25, .LANCHOR23 adrp x26, .LANCHOR29 add x25, x25, :lo12:.LANCHOR23 add x26, x26, :lo12:.LANCHOR29 mov w23, 0 mov w5, 55 .L1588: ldrb w0, [x25] cmp w0, w23 bhi .L1594 .L1595: strb w28, [x21, 1] strb w27, [x21, 2] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret .L1580: cmp w25, 4 bne .L1582 mov w5, -52 strb w5, [x26, 128] mov w5, -65 strb w5, [x26, 129] mov w5, -86 strb w5, [x26, 130] mov w5, -85 mov w27, 8 strb w5, [x26, 131] mov w28, w27 mov w5, -51 strb w2, [x26, 133] strb w5, [x26, 132] strb w1, [x26, 134] strb w0, [x26, 135] b .L1579 .L1582: cmp w25, 5 bne .L1583 mov w0, 56 strb w0, [x26, 128] mov w0, 57 strb w0, [x26, 129] mov w0, 58 mov w27, 8 strb w0, [x26, 130] mov w0, 59 strb w0, [x26, 131] .L1685: mov w28, 4 b .L1579 .L1583: cmp w25, 6 bne .L1584 mov w0, 14 strb w0, [x26, 128] mov w0, 15 strb w0, [x26, 129] mov w0, 16 mov w27, 12 strb w0, [x26, 130] mov w0, 17 strb w0, [x26, 131] b .L1685 .L1584: cmp w25, 7 bne .L1585 mov x0, 0 .L1586: sub w1, w0, #80 strb w1, [x24, x0] add x0, x0, 1 cmp x0, 8 bne .L1586 mov w0, -44 mov w27, 12 strb w0, [x26, 136] mov w28, 10 mov w0, -43 strb w0, [x26, 137] b .L1579 .L1585: cmp w25, 8 bne .L1642 mov w0, 6 strb w0, [x26, 128] mov w0, 7 strb w0, [x26, 129] mov w0, 9 strb w25, [x26, 130] strb w0, [x26, 131] mov w27, 50 mov w0, 10 mov w28, 5 strb w0, [x26, 132] b .L1579 .L1594: ldrb w0, [x26, w23, sxtw] mov x1, 32 mov w19, 160 mov x20, 0 umaddl x19, w19, w0, x1 adrp x1, .LANCHOR7 ubfiz x0, x0, 8, 8 ldr x22, [x1, #:lo12:.LANCHOR7] add x19, x21, x19 add x22, x22, x0 .L1589: str w5, [x22, 2056] str w5, [x29, 136] ldrb w0, [x24, x20] str w0, [x22, 2052] mov x0, 1 bl udelay ldr w0, [x22, 2048] strb w0, [x19, x20] add x20, x20, 1 cmp w28, w20, uxtb ldr w5, [x29, 136] bhi .L1589 adrp x2, .LANCHOR162 add x2, x2, :lo12:.LANCHOR162 mov x0, 0 .L1592: add x7, x19, x0 add x4, x2, x0 mov x1, 1 .L1591: lsl x3, x1, 2 lsl x8, x1, 3 ldrb w10, [x19, x0] add x1, x1, 1 cmp x1, 7 ldrb w3, [x4, x3] add w3, w3, w10 strb w3, [x7, x8] bne .L1591 add x0, x0, 1 cmp x0, 4 bne .L1592 add w23, w23, 1 strb wzr, [x19, 16] strb wzr, [x19, 24] and w23, w23, 255 strb wzr, [x19, 32] strb wzr, [x19, 40] strb wzr, [x19, 48] strb wzr, [x19, 41] strb wzr, [x19, 49] b .L1588 .L1587: sub w0, w25, #3 cmp w0, 5 bhi .L1595 mul w24, w27, w28 sub w22, w28, #1 and x22, x22, 255 mov w20, 0 asr w23, w24, 1 lsl w0, w24, 4 str w0, [x29, 128] lsl w0, w23, 1 str w0, [x29, 132] sbfiz x0, x23, 1, 32 sub w24, w25, #5 str x0, [x29, 136] adrp x0, .LANCHOR23 add x0, x0, :lo12:.LANCHOR23 str x0, [x29, 120] add x0, x22, 1 str x0, [x29, 112] .L1596: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, w20 bls .L1595 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 mov w19, 160 ldrb w22, [x0, w20, sxtw] mov w0, w22 bl zftl_flash_exit_slc_mode mov x0, 32 ubfiz x2, x22, 8, 8 mov w1, 255 str w1, [x29, 108] nop // between mem op and mult-accumulate umaddl x19, w19, w22, x0 adrp x0, .LANCHOR7 ldr x0, [x0, #:lo12:.LANCHOR7] add x19, x21, x19 add x22, x0, x2 str w1, [x22, 2056] bl nandc_wait_flash_ready cmp w25, 8 ldr w1, [x29, 108] bne .L1597 mov w0, 120 str w0, [x22, 2056] str wzr, [x22, 2052] mov w0, 23 str wzr, [x22, 2052] mov w1, 25 str wzr, [x22, 2052] add x19, x26, 144 str w0, [x22, 2056] mov w0, 4 str w0, [x22, 2056] str w1, [x22, 2056] mov w1, 218 str w1, [x22, 2056] mov w1, 21 str wzr, [x22, 2056] str wzr, [x22, 2052] str wzr, [x22, 2052] str w1, [x22, 2052] .L1688: str w0, [x22, 2052] mov w0, 48 str wzr, [x22, 2052] str w0, [x22, 2056] bl nandc_wait_flash_ready cmp w24, 1 ccmp w25, 8, 4, hi beq .L1643 cmp w25, 7 mov w0, 32 mov w1, 2 csel w1, w1, w0, ne .L1604: adrp x8, .LANCHOR163 mov x7, 0 ldr x0, [x8, #:lo12:.LANCHOR163] .L1605: ldr w10, [x22, 2048] strb w10, [x0, x7] add x7, x7, 1 cmp w1, w7, uxtb bhi .L1605 cmp w25, 8 bne .L1606 mov w1, 0 .L1608: ldrb w7, [x0] cmp w7, 50 beq .L1607 ldrb w7, [x0, 1] cmp w7, 5 beq .L1607 add w1, w1, 1 add x0, x0, 4 and w1, w1, 255 cmp w1, 8 bne .L1608 .L1609: adrp x0, .LC102 mov w1, 0 add x0, x0, :lo12:.LC102 bl printf .L1611: b .L1611 .L1597: mov w0, 54 str w0, [x22, 2056] cmp w25, 4 bne .L1599 mov w0, 64 str w1, [x22, 2052] str w0, [x22, 2048] mov w0, 204 .L1686: str w0, [x22, 2052] mov w0, 77 b .L1687 .L1599: cmp w24, 1 bhi .L1601 ldrb w0, [x26, 128] str w0, [x22, 2052] mov w0, 82 .L1687: str w0, [x22, 2048] .L1600: mov w0, 22 str w0, [x22, 2056] mov w0, 23 str w0, [x22, 2056] mov w0, 4 str w0, [x22, 2056] mov w0, 25 str w0, [x22, 2056] str wzr, [x22, 2056] cmp w25, 6 str wzr, [x22, 2052] str wzr, [x22, 2052] bne .L1602 mov w0, 31 str w0, [x22, 2052] .L1603: mov w0, 2 b .L1688 .L1601: cmp w25, 7 bne .L1600 mov w0, 174 str w0, [x22, 2052] str wzr, [x22, 2048] mov w0, 176 b .L1686 .L1602: str wzr, [x22, 2052] b .L1603 .L1643: mov w1, 16 b .L1604 .L1607: cmp w1, 6 bhi .L1609 .L1610: ldr x7, [x8, #:lo12:.LANCHOR163] mov x0, 0 .L1620: ldr w1, [x29, 128] cmp w1, w0 bgt .L1621 ldr x1, [x8, #:lo12:.LANCHOR163] mov w10, 8 ldr x0, [x29, 136] add x8, x1, x0 .L1623: mov x0, 0 .L1622: ldrh w11, [x8, x0, lsl 1] mvn w11, w11 strh w11, [x8, x0, lsl 1] add x0, x0, 1 cmp w23, w0 bgt .L1622 ldr w0, [x29, 132] subs w10, w10, #1 add x8, x8, x0, uxtw 1 bne .L1623 mov x10, x1 mov w11, 0 mov w16, 1 .L1624: mov w0, 0 mov w8, 0 .L1628: mov x14, x10 lsl w15, w16, w8 mov w13, 16 mov w12, 0 .L1626: ldrh w17, [x14] ldr x2, [x29, 136] bics wzr, w15, w17 cinc w12, w12, eq add x14, x14, x2 subs w13, w13, #1 bne .L1626 cmp w12, 8 bls .L1627 orr w0, w0, w15 and w0, w0, 65535 .L1627: add w8, w8, 1 cmp w8, 16 bne .L1628 strh w0, [x10], 2 add w11, w11, 1 cmp w23, w11 bgt .L1624 mov x0, 0 mov w8, 0 .L1631: ldr w10, [x1, x0] add x0, x0, 4 cmp w10, 0 cinc w8, w8, eq cmp x0, 32 bne .L1631 cmp w8, 7 ble .L1632 mov w3, 1024 mov w2, 1 adrp x0, .LC103 add x0, x0, :lo12:.LC103 bl rknand_print_hex adrp x0, .LC102 mov w1, 0 add x0, x0, :lo12:.LC102 bl printf .L1633: b .L1633 .L1606: cmp w25, 7 bne .L1612 mov w1, 0 .L1614: ldrb w7, [x0] cmp w7, 12 beq .L1613 ldrb w7, [x0, 1] cmp w7, 10 beq .L1613 add w1, w1, 1 add x0, x0, 4 and w1, w1, 255 cmp w1, 8 bne .L1614 .L1615: adrp x0, .LC102 mov w1, 0 add x0, x0, :lo12:.LC102 bl printf .L1616: b .L1616 .L1613: cmp w1, 6 bls .L1610 b .L1615 .L1612: cmp w25, 6 bne .L1610 mov x1, 0 .L1617: ldrb w7, [x0, x1] cmp w7, 12 beq .L1610 add x7, x0, x1 ldrb w7, [x7, 8] cmp w7, 4 beq .L1610 add x1, x1, 1 cmp x1, 8 bne .L1617 adrp x0, .LC102 mov w1, 0 add x0, x0, :lo12:.LC102 bl printf .L1619: b .L1619 .L1621: ldr w1, [x22, 2048] strb w1, [x7, x0] add x0, x0, 1 b .L1620 .L1632: cmp w25, 6 beq .L1645 cmp w25, 7 beq .L1646 cmp w25, 8 mov x1, 5 mov x0, 8 csel x0, x0, x1, ne .L1634: mov w8, 0 .L1635: mov x1, 0 .L1636: ldrb w10, [x7, x1] strb w10, [x19, x1] add x1, x1, 1 cmp w28, w1, uxtb bhi .L1636 ldr x1, [x29, 112] add w8, w8, 1 add x19, x19, x0 cmp w27, w8 add x7, x7, x1 bgt .L1635 mov w19, 255 str w19, [x22, 2056] bl nandc_wait_flash_ready cmp w24, 1 bhi .L1638 mov w0, 54 str w0, [x22, 2056] ldrb w0, [x26, 128] str w0, [x22, 2052] str wzr, [x22, 2048] mov w0, 22 str w0, [x22, 2056] mov w0, 48 str wzr, [x22, 2056] str wzr, [x22, 2052] str wzr, [x22, 2052] str w19, [x22, 2052] str w19, [x22, 2052] str w19, [x22, 2052] .L1689: str w0, [x22, 2056] add w20, w20, 1 and w20, w20, 255 bl nandc_wait_flash_ready b .L1596 .L1645: mov x0, 4 b .L1634 .L1646: mov x0, 10 b .L1634 .L1638: cmp w25, 8 bne .L1640 mov w0, 190 b .L1689 .L1640: mov w0, 56 b .L1689 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .section .text.flash_get_read_retry_tbl,"ax",@progbits .align 2 .global flash_get_read_retry_tbl .type flash_get_read_retry_tbl, %function flash_get_read_retry_tbl: adrp x0, .LANCHOR32+19 ldrb w0, [x0, #:lo12:.LANCHOR32+19] sub w1, w0, #1 and w1, w1, 255 cmp w1, 7 bhi .L1690 b hynix_get_read_retry_default .L1690: ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl .section .text.nandc_xfer_done,"ax",@progbits .align 2 .global nandc_xfer_done .type nandc_xfer_done, %function nandc_xfer_done: stp x29, x30, [sp, -80]! adrp x0, .LANCHOR164 adrp x1, .LANCHOR27 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR7 ldrb w1, [x1, #:lo12:.LANCHOR27] stp x21, x22, [sp, 32] strb wzr, [x0, #:lo12:.LANCHOR164] cmp w1, 9 str x23, [sp, 48] bne .L1693 ldr x20, [x19, #:lo12:.LANCHOR7] mov x21, x0 ldr w0, [x20, 16] str w0, [x29, 64] ldr w0, [x20, 48] tbnz x0, 1, .L1694 adrp x22, .LC106 adrp x23, .LC107 add x22, x22, :lo12:.LC106 add x23, x23, :lo12:.LC107 mov w21, 0 .L1695: ldr w0, [x29, 64] tbnz x0, 20, .L1697 ldr x0, [x19, #:lo12:.LANCHOR7] add w21, w21, 1 tst x21, 16777215 ldr w0, [x0, 16] str w0, [x29, 64] bne .L1695 ldr w2, [x29, 64] mov w1, w21 ldr w3, [x20, 64] mov x0, x22 ubfx x3, x3, 16, 6 bl printf ldr x1, [x19, #:lo12:.LANCHOR7] mov w3, 64 mov w2, 4 mov x0, x23 bl rknand_print_hex b .L1695 .L1696: ldr w0, [x29, 64] add w1, w1, 1 ubfx x0, x0, 22, 6 cmp w1, w0, lsl 12 bne .L1698 ldr w2, [x20, 64] adrp x0, .LC105 ldr w3, [x29, 64] add x0, x0, :lo12:.LC105 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printf ldr w0, [x29, 72] mov w0, 1 strb w0, [x21, #:lo12:.LANCHOR164] .L1697: adrp x0, .LANCHOR52+32 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] str wzr, [x0, #:lo12:.LANCHOR52+32] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 80 ret .L1694: mov w1, 0 .L1698: ldr w2, [x20, 64] ldr w0, [x29, 64] ubfx x2, x2, 16, 6 ubfx x0, x0, 22, 6 cmp w2, w0 bge .L1697 ldr w0, [x20] str w0, [x29, 72] ldr w0, [x29, 72] tbz x0, 13, .L1696 ldr w0, [x29, 72] tbz x0, 17, .L1696 ldr w1, [x29, 72] adrp x0, .LC104 add x0, x0, :lo12:.LC104 ubfx x1, x1, 17, 1 .L1727: bl printf b .L1697 .L1693: ldr x20, [x19, #:lo12:.LANCHOR7] mov w21, 0 ldr w0, [x20, 8] str w0, [x29, 64] ldr w0, [x20, 16] tbnz x0, 1, .L1703 adrp x22, .LC106 adrp x23, .LC107 add x22, x22, :lo12:.LC106 add x23, x23, :lo12:.LC107 .L1704: ldr w0, [x29, 64] tbnz x0, 20, .L1697 ldr x0, [x19, #:lo12:.LANCHOR7] add w21, w21, 1 tst x21, 16777215 ldr w0, [x0, 8] str w0, [x29, 64] bne .L1704 ldr w2, [x29, 64] mov w1, w21 ldr w3, [x20, 28] mov x0, x22 ubfx x3, x3, 16, 5 bl printf ldr x1, [x19, #:lo12:.LANCHOR7] mov w3, 64 mov w2, 4 mov x0, x23 bl rknand_print_hex b .L1704 .L1703: adrp x22, .LC105 adrp x23, .LC107 add x22, x22, :lo12:.LC105 add x23, x23, :lo12:.LC107 .L1705: ldr w1, [x20, 28] ldr w0, [x29, 64] ubfx x1, x1, 16, 5 ubfx x0, x0, 22, 6 cmp w1, w0 bge .L1697 ldr x0, [x19, #:lo12:.LANCHOR7] ldr w0, [x0] str w0, [x29, 72] ldr w0, [x29, 72] tbz x0, 13, .L1706 ldr w0, [x29, 72] tbz x0, 17, .L1706 adrp x0, .LC108 ldr w1, [x29, 72] add x0, x0, :lo12:.LC108 b .L1727 .L1706: add w21, w21, 1 tst x21, 16777215 bne .L1705 ldr w2, [x20, 28] mov w1, w21 ldr w3, [x29, 64] mov x0, x22 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printf ldr x1, [x19, #:lo12:.LANCHOR7] mov w3, 64 mov w2, 4 mov x0, x23 bl rknand_print_hex b .L1705 .size nandc_xfer_done, .-nandc_xfer_done .section .text.nandc_xfer,"ax",@progbits .align 2 .global nandc_xfer .type nandc_xfer, %function nandc_xfer: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w2, 255 mov x20, x3 stp x21, x22, [sp, 32] mov x3, x4 and w22, w1, 255 mov x2, x20 mov w1, w19 mov w0, w22 mov x21, x4 bl nandc_xfer_start mov w0, w22 bl nandc_xfer_done cbnz w22, .L1747 adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 bne .L1730 adrp x22, .LANCHOR7 lsr w19, w19, 2 mov w3, 1 mov w2, 0 ldr x5, [x22, #:lo12:.LANCHOR7] mov w0, 0 .L1731: cmp w2, w19 bcc .L1735 ldr w19, [x5] cmp w3, 0 mov w1, 512 csel w0, w0, w1, eq mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w19, w1 cmp w1, 139264 bne .L1737 mov w1, w19 adrp x0, .LC109 add x0, x0, :lo12:.LC109 bl printf ldr x0, [x22, #:lo12:.LANCHOR7] orr w19, w19, 131072 str w19, [x0] mov w0, -1 .L1737: tbz x19, 13, .L1738 adrp x1, .LANCHOR164 ldrb w1, [x1, #:lo12:.LANCHOR164] cbz w1, .L1738 mov w1, w19 adrp x0, .LC110 add x0, x0, :lo12:.LC110 bl printf ldr x0, [x22, #:lo12:.LANCHOR7] mov w1, 1 str w1, [x0, 16] .L1766: mov w0, -1 .L1729: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .L1735: uxtw x1, w2 add x1, x1, 84 ldr w1, [x5, x1, lsl 2] str w1, [x29, 56] ldr w1, [x29, 56] ldr w4, [x29, 56] ubfx x4, x4, 26, 1 and w1, w4, w1, lsr 10 and w3, w3, w1 ldr w1, [x29, 56] tbnz x1, 2, .L1749 ldr w1, [x29, 56] tbnz x1, 18, .L1749 ldr w4, [x29, 56] ldr w1, [x29, 56] ubfx x4, x4, 3, 7 ubfx x1, x1, 19, 7 cmp w4, w1 ldr w1, [x29, 56] ble .L1733 ubfx x1, x1, 3, 7 .L1734: cmp w0, w1 csel w0, w0, w1, cs .L1732: add w2, w2, 1 b .L1731 .L1733: ubfx x1, x1, 19, 7 b .L1734 .L1749: mov w0, -1 b .L1732 .L1730: adrp x0, .LANCHOR49 lsr w4, w19, 1 mov w3, 64 mov w1, 1 ldrb w0, [x0, #:lo12:.LANCHOR49] mov w2, 0 adrp x6, .LANCHOR52 cmp w0, 25 mov w0, 128 csel w3, w3, w0, cc mov w0, 0 .L1740: add w5, w3, w0 cmp w2, w4 bcc .L1741 adrp x22, .LANCHOR7 lsr w19, w19, 2 mov w3, 0 mov w0, 0 ldr x4, [x22, #:lo12:.LANCHOR7] .L1742: cmp w3, w19 bcc .L1746 str wzr, [x4, 16] mov w1, 8192 movk w1, 0x2, lsl 16 ldr w19, [x4] and w1, w19, w1 cmp w1, 139264 bne .L1738 mov w1, w19 adrp x0, .LC111 add x0, x0, :lo12:.LC111 bl printf ldr x0, [x22, #:lo12:.LANCHOR7] orr w19, w19, 131072 str w19, [x0] b .L1766 .L1741: ldr x7, [x6, #:lo12:.LANCHOR52] and x0, x0, 4294967292 ldr w0, [x7, x0] lsl w7, w2, 2 add w2, w2, 1 strb w0, [x21, x7] lsr w7, w0, 8 strb w7, [x21, w1, uxtw] add w7, w1, 1 lsr w8, w0, 16 lsr w0, w0, 24 strb w8, [x21, x7] add w7, w1, 2 add w1, w1, 4 strb w0, [x21, x7] mov w0, w5 b .L1740 .L1746: uxtw x1, w3 add x1, x1, 8 ldr w1, [x4, x1, lsl 2] str w1, [x29, 56] ldr w1, [x29, 56] tbnz x1, 2, .L1752 ldr w1, [x29, 56] tbnz x1, 15, .L1752 ldr w2, [x29, 56] ubfx x6, x2, 3, 5 ldr w2, [x29, 56] ldr w1, [x29, 56] ubfx x2, x2, 27, 1 ubfx x5, x1, 16, 5 ldr w1, [x29, 56] orr w2, w6, w2, lsl 5 ubfx x1, x1, 29, 1 orr w1, w5, w1, lsl 5 cmp w2, w1 ldr w1, [x29, 56] bls .L1744 ubfx x2, x1, 3, 5 ldr w1, [x29, 56] ubfx x1, x1, 27, 1 .L1765: orr w1, w2, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs .L1743: add w3, w3, 1 b .L1742 .L1744: ubfx x2, x1, 16, 5 ldr w1, [x29, 56] ubfx x1, x1, 29, 1 b .L1765 .L1752: mov w0, -1 b .L1743 .L1738: cmn w0, #1 beq .L1729 ldr w1, [x21] cmn w1, #1 bne .L1729 ldr w1, [x21, 4] cmn w1, #1 bne .L1729 ldr w1, [x20] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne b .L1729 .L1747: mov w0, 0 b .L1729 .size nandc_xfer, .-nandc_xfer .section .text.flash_read_page,"ax",@progbits .align 2 .global flash_read_page .type flash_read_page, %function flash_read_page: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR7 stp x19, x20, [sp, 16] mov w19, 24 stp x23, x24, [sp, 48] ldr x20, [x0, #:lo12:.LANCHOR7] adrp x0, .LANCHOR31 stp x25, x26, [sp, 64] mov x24, x2 ldrb w0, [x0, #:lo12:.LANCHOR31] mov x25, x3 mov w23, w4 ubfx x22, x1, 24, 2 sub w0, w19, w0 mov w19, 1 adrp x26, .LANCHOR21 lsl w19, w19, w0 sub w19, w19, #1 and w19, w19, w1 bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs cbnz w22, .L1768 mov w0, w21 bl zftl_flash_enter_slc_mode .L1769: ldr x1, [x26, #:lo12:.LANCHOR21] ldrb w0, [x1, 7] cmp w0, 1 bne .L1771 ldrb w0, [x1, 12] cmp w0, 2 bne .L1771 sxtw x0, w21 mov w2, 38 add x0, x0, 8 add x0, x20, x0, lsl 8 str w2, [x0, 8] .L1771: ubfiz x0, x21, 8, 8 add x20, x20, x0 and w0, w19, 255 str wzr, [x20, 2056] str wzr, [x20, 2052] str wzr, [x20, 2052] str w0, [x20, 2052] lsr w0, w19, 8 str w0, [x20, 2052] lsr w0, w19, 16 str w0, [x20, 2052] adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] cbz w0, .L1772 lsr w0, w19, 24 str w0, [x20, 2052] .L1772: mov w0, 48 str w0, [x20, 2056] ldrb w0, [x1, 12] cmp w0, 3 bne .L1773 cbz w22, .L1773 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L1773 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L1773 add w19, w19, w19, lsl 1 sub w0, w19, #1 add w0, w0, w22 .L1782: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 str w0, [x20, 2056] str wzr, [x20, 2052] mov w0, 224 str wzr, [x20, 2052] mov w2, w23 str w0, [x20, 2056] mov x4, x25 mov x3, x24 mov w1, 0 mov w0, w21 bl nandc_xfer mov w2, w0 bl nandc_de_cs.constprop.32 mov w0, w2 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 .L1768: ldr x0, [x26, #:lo12:.LANCHOR21] ldrb w0, [x0, 12] cmp w0, 3 bne .L1770 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L1770 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L1770 sxtw x0, w21 add x0, x0, 8 add x0, x20, x0, lsl 8 str w22, [x0, 8] b .L1769 .L1770: mov w0, w21 bl zftl_flash_exit_slc_mode b .L1769 .L1773: mov w0, w19 b .L1782 .size flash_read_page, .-flash_read_page .section .text.micron_read_retrial,"ax",@progbits .align 2 .global micron_read_retrial .type micron_read_retrial, %function micron_read_retrial: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 adrp x0, .LANCHOR49 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] mov w24, w1 stp x21, x22, [sp, 32] mov x25, x2 ldrb w21, [x0, #:lo12:.LANCHOR49] mov x26, x3 stp x27, x28, [sp, 80] mov w23, 0 str w4, [x29, 124] bl nandc_wait_flash_ready adrp x0, .LANCHOR7 add w21, w21, w21, lsl 1 asr w21, w21, 2 ldr x19, [x0, #:lo12:.LANCHOR7] adrp x0, .LANCHOR166 add x0, x0, :lo12:.LANCHOR166 str x0, [x29, 112] ubfiz x0, x20, 8, 8 add x19, x19, x0 .L1784: mov w0, w20 bl zftl_flash_enter_slc_mode mov w0, w20 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR19 mov w22, 0 add x0, x0, :lo12:.LANCHOR19 mov w28, -1 str x0, [x29, 104] .L1785: ldr x0, [x29, 112] ldrb w0, [x0] cmp w22, w0 bcc .L1790 .L1789: mov w0, 239 str w0, [x19, 2056] mov w0, 137 str w0, [x19, 2052] mov x0, 1 bl udelay str wzr, [x19, 2048] str wzr, [x19, 2048] cmp w28, w21 str wzr, [x19, 2048] str wzr, [x19, 2048] bcc .L1791 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq .L1791: cmn w28, #1 cset w27, eq cmp w28, 256 cset w0, eq orr w0, w27, w0 cbz w0, .L1792 mov w4, w28 mov w3, w22 mov w2, w24 mov w1, w20 adrp x0, .LC113 add x0, x0, :lo12:.LC113 bl printf eor w0, w23, 1 tst w27, w0 beq .L1793 mov w1, 3 mov w0, w20 mov w23, 1 bl mt_auto_read_calibration_config b .L1784 .L1790: mov w0, 239 str w0, [x19, 2056] mov w0, 137 str w0, [x19, 2052] add w27, w22, 1 mov x0, 1 bl udelay str w27, [x19, 2048] str wzr, [x19, 2048] mov x3, x26 ldr w4, [x29, 124] mov x2, x25 str wzr, [x19, 2048] mov w1, w24 str wzr, [x19, 2048] mov w0, w20 bl flash_read_page mov w6, w0 ldr x0, [x29, 104] ldr w0, [x0] tbz x0, 12, .L1786 mov w4, w6 str w6, [x29, 120] mov w3, w28 mov w2, w24 mov w1, w22 adrp x0, .LC112 add x0, x0, :lo12:.LC112 bl printf ldr w6, [x29, 120] .L1786: cmn w6, #1 beq .L1787 adrp x0, .LANCHOR163 cmn w28, #1 csel w28, w28, w6, ne cmp w6, w21 ldr x25, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x26, [x0, #:lo12:.LANCHOR165] bcc .L1796 .L1787: mov w22, w27 b .L1785 .L1796: mov w28, w6 b .L1789 .L1793: cbz w23, .L1794 mov w0, w20 mov w1, 0 bl mt_auto_read_calibration_config cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq .L1794: bl nandc_wait_flash_ready mov w0, w28 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L1792: cbz w23, .L1794 mov w1, 0 mov w0, w20 mov w28, 256 bl mt_auto_read_calibration_config b .L1794 .size micron_read_retrial, .-micron_read_retrial .section .text.toshiba_3d_read_retrial,"ax",@progbits .align 2 .global toshiba_3d_read_retrial .type toshiba_3d_read_retrial, %function toshiba_3d_read_retrial: stp x29, x30, [sp, -144]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR16 stp x23, x24, [sp, 48] mov w24, w1 stp x25, x26, [sp, 64] and w23, w0, 255 stp x27, x28, [sp, 80] mov x26, x2 stp x19, x20, [sp, 16] mov x27, x3 mov w28, w4 bl nandc_wait_flash_ready adrp x0, .LANCHOR7 mov w1, 46 mov w2, 56 ubfx x19, x24, 24, 2 ldr x25, [x0, #:lo12:.LANCHOR7] and x0, x23, 255 add x21, x0, 8 str x0, [x29, 128] ldrb w0, [x22, #:lo12:.LANCHOR16] add x21, x25, x21, lsl 8 cmp w0, 36 mov w0, 26 csel w1, w2, w1, ne str w1, [x29, 120] mov w1, 10 csel w0, w1, w0, ne str w0, [x29, 136] cbnz w19, .L1814 add x0, x22, :lo12:.LANCHOR16 str x0, [x29, 120] sxtw x0, w23 mov w19, -1 add x0, x0, 8 mov w20, 1 add x0, x25, x0, lsl 8 str x0, [x29, 112] .L1821: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, 36 bne .L1815 mov w1, w20 mov x0, x21 mov w2, 0 bl toshiba_tlc_set_rr_para ldr x1, [x29, 112] mov w0, 93 str w0, [x1, 8] .L1816: mov w4, w28 mov x3, x27 mov x2, x26 mov w1, w24 mov w0, w23 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 4, .L1817 mov w3, w4 str w4, [x29, 108] mov w2, w24 mov w1, w20 adrp x0, .LC114 add x0, x0, :lo12:.LC114 bl printf ldr w4, [x29, 108] .L1817: cmn w4, #1 beq .L1818 adrp x0, .LANCHOR163 cmn w19, #1 csel w19, w19, w4, ne ldr x26, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x27, [x0, #:lo12:.LANCHOR165] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1836 .L1818: ldr w0, [x29, 136] add w20, w20, 1 cmp w0, w20 bne .L1821 .L1820: ldrb w0, [x22, #:lo12:.LANCHOR16] cmp w0, 36 bne .L1822 mov w2, 0 .L1859: mov w1, 0 mov x0, x21 bl toshiba_tlc_set_rr_para b .L1823 .L1815: mov w1, w20 mov x0, x21 bl toshiba_3d_set_slc_rr_para b .L1816 .L1836: mov w19, w4 b .L1820 .L1822: mov w1, 0 mov x0, x21 bl toshiba_3d_set_slc_rr_para .L1823: ldrb w0, [x22, #:lo12:.LANCHOR16] cmp w0, 36 bne .L1832 ldr x0, [x29, 128] add x25, x25, x0, lsl 8 mov w0, 85 str w0, [x25, 2056] mov w0, 255 str wzr, [x25, 2052] str wzr, [x25, 2048] str w0, [x25, 2056] .L1832: adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 bcc .L1833 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq .L1833: cmp w19, 256 ccmn w19, #1, 4, ne bne .L1834 adrp x0, .LC116 mov w4, w19 mov w3, w20 mov w2, w24 mov w1, w23 add x0, x0, :lo12:.LC116 bl printf .L1834: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret .L1814: add x0, x22, :lo12:.LANCHOR16 str x0, [x29, 112] sxtw x0, w23 mov w19, -1 add x0, x0, 8 mov w20, 1 add x0, x25, x0, lsl 8 str x0, [x29, 136] .L1830: ldr x0, [x29, 112] ldrb w0, [x0] cmp w0, 36 bne .L1824 mov x0, x21 mov w2, 1 mov w1, w20 bl toshiba_tlc_set_rr_para mov w0, 93 .L1858: ldr x1, [x29, 136] mov w4, w28 mov x3, x27 mov x2, x26 str w0, [x1, 8] mov w1, w24 mov w0, w23 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 4, .L1826 mov w3, w4 str w4, [x29, 108] mov w2, w24 mov w1, w20 adrp x0, .LC115 add x0, x0, :lo12:.LC115 bl printf ldr w4, [x29, 108] .L1826: cmn w4, #1 beq .L1827 adrp x0, .LANCHOR163 cmn w19, #1 csel w19, w19, w4, ne ldr x26, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x27, [x0, #:lo12:.LANCHOR165] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1837 .L1827: ldr w0, [x29, 120] add w20, w20, 1 cmp w0, w20 bne .L1830 .L1829: ldrb w0, [x22, #:lo12:.LANCHOR16] cmp w0, 36 bne .L1831 mov w2, 1 b .L1859 .L1824: mov x0, x21 mov w1, w20 bl toshiba_3d_set_tlc_rr_para mov w0, 38 b .L1858 .L1837: mov w19, w4 b .L1829 .L1831: mov w1, 0 mov x0, x21 bl toshiba_3d_set_tlc_rr_para b .L1823 .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial .section .text.toshiba_read_retrial,"ax",@progbits .align 2 .global toshiba_read_retrial .type toshiba_read_retrial, %function toshiba_read_retrial: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] mov w25, w1 mov x26, x2 str w4, [x29, 116] stp x19, x20, [sp, 16] and w19, w0, 255 stp x27, x28, [sp, 80] mov x27, x3 stp x23, x24, [sp, 48] bl nandc_wait_flash_ready mov w0, w19 bl zftl_flash_enter_slc_mode mov w0, w19 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR7 adrp x1, .LANCHOR16 str x1, [x29, 120] ldr x22, [x0, #:lo12:.LANCHOR7] and x0, x19, 255 add x21, x0, 8 str x0, [x29, 104] ldrb w0, [x1, #:lo12:.LANCHOR16] add x21, x22, x21, lsl 8 sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 bls .L1878 adrp x0, .LANCHOR26 ldrb w0, [x0, #:lo12:.LANCHOR26] cbz w0, .L1879 mov w23, 1 mov w0, 1 bl nandc_set_if_mode .L1862: and x0, x19, 255 mov w1, 92 add x0, x22, x0, lsl 8 str w1, [x0, 2056] mov w1, 197 str w1, [x0, 2056] .L1861: sxtw x0, w19 mov w20, 1 add x0, x0, 8 mov w24, -1 add x0, x22, x0, lsl 8 str x0, [x29, 96] .L1863: adrp x0, .LANCHOR166 ldrb w0, [x0, #:lo12:.LANCHOR166] add w0, w0, 1 cmp w20, w0 bcc .L1872 mov w28, w24 .L1871: ldr x0, [x29, 120] mov w1, 0 ldrb w0, [x0, #:lo12:.LANCHOR16] sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 mov x0, x21 bhi .L1873 bl sandisk_set_rr_para .L1874: sxtw x19, w19 mov w0, 255 add x19, x19, 8 add x22, x22, x19, lsl 8 str w0, [x22, 8] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 bcc .L1875 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq .L1875: cmp w28, 256 ccmn w28, #1, 4, ne bne .L1876 adrp x0, .LC116 mov w4, w28 mov w3, w20 mov w2, w25 mov w1, w20 add x0, x0, :lo12:.LC116 bl printf .L1876: bl nandc_wait_flash_ready cbz w23, .L1860 mov w0, 4 bl nandc_set_if_mode .L1860: mov w0, w28 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L1879: mov w23, 0 b .L1862 .L1878: mov w23, 0 b .L1861 .L1872: ldr x0, [x29, 120] mov w1, w20 ldrb w0, [x0, #:lo12:.LANCHOR16] sub w0, w0, #67 and w0, w0, 255 cmp w0, 1 mov x0, x21 bhi .L1864 bl sandisk_set_rr_para .L1865: ldr x0, [x29, 120] ldrb w0, [x0, #:lo12:.LANCHOR16] cmp w0, 34 bne .L1866 adrp x0, .LANCHOR166 ldrb w0, [x0, #:lo12:.LANCHOR166] sub w0, w0, #3 cmp w20, w0 bne .L1866 ldr x1, [x29, 96] mov w0, 179 str w0, [x1, 8] .L1866: ldr x0, [x29, 104] mov w1, 38 ldr w4, [x29, 116] mov x3, x27 mov x2, x26 add x0, x22, x0, lsl 8 str w1, [x0, 2056] mov w1, 93 str w1, [x0, 2056] mov w1, w25 mov w0, w19 bl flash_read_page mov w28, w0 cmn w0, #1 beq .L1869 cmn w24, #1 csel w24, w24, w0, ne adrp x0, .LANCHOR163 ldr x26, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x27, [x0, #:lo12:.LANCHOR165] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 bcc .L1871 .L1869: add w20, w20, 1 b .L1863 .L1864: bl toshiba_set_rr_para b .L1865 .L1873: bl toshiba_set_rr_para b .L1874 .size toshiba_read_retrial, .-toshiba_read_retrial .section .text.ymtc_3d_read_retrial,"ax",@progbits .align 2 .global ymtc_3d_read_retrial .type ymtc_3d_read_retrial, %function ymtc_3d_read_retrial: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, -1 stp x21, x22, [sp, 32] and w22, w0, 255 stp x23, x24, [sp, 48] mov w23, w1 stp x25, x26, [sp, 64] mov x24, x2 stp x27, x28, [sp, 80] mov x25, x3 mov w26, w4 bl nandc_wait_flash_ready mov w0, w22 bl zftl_flash_enter_slc_mode mov w0, w22 bl zftl_flash_exit_slc_mode adrp x1, .LANCHOR7 ubfiz x21, x22, 8, 8 add x0, x21, 2048 adrp x27, .LANCHOR49 ldr x21, [x1, #:lo12:.LANCHOR7] mov w20, 1 adrp x28, .LANCHOR163 adrp x5, .LANCHOR165 add x21, x21, x0 add x27, x27, :lo12:.LANCHOR49 tst x23, 50331648 bne .L1902 .L1897: str x5, [x29, 104] mov w1, w20 mov x0, x21 bl ymtc_3d_set_slc_rr_para mov w4, w26 mov x3, x25 mov x2, x24 mov w1, w23 mov w0, w22 bl flash_read_page ldr x5, [x29, 104] cmn w0, #1 beq .L1894 ldrb w1, [x27] cmn w19, #1 csel w19, w19, w0, ne ldr x24, [x28, #:lo12:.LANCHOR163] ldr x25, [x5, #:lo12:.LANCHOR165] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 bcc .L1905 .L1894: add w20, w20, 1 cmp w20, 10 bne .L1897 .L1896: mov w1, 0 mov x0, x21 bl ymtc_3d_set_slc_rr_para .L1898: adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 bcc .L1903 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq .L1903: cmp w19, 256 ccmn w19, #1, 4, ne bne .L1904 adrp x0, .LC117 mov w4, w19 mov w3, w20 mov w2, w23 mov w1, w20 add x0, x0, :lo12:.LC117 bl printf .L1904: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L1905: mov w19, w0 b .L1896 .L1902: str x5, [x29, 104] mov w1, w20 mov x0, x21 bl ymtc_3d_set_tlc_rr_para mov w4, w26 mov x3, x25 mov x2, x24 mov w1, w23 mov w0, w22 bl flash_read_page ldr x5, [x29, 104] cmn w0, #1 beq .L1899 ldrb w1, [x27] cmn w19, #1 csel w19, w19, w0, ne ldr x24, [x28, #:lo12:.LANCHOR163] ldr x25, [x5, #:lo12:.LANCHOR165] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 bcc .L1906 .L1899: add w20, w20, 1 cmp w20, 51 bne .L1902 .L1901: mov w1, 0 mov x0, x21 bl ymtc_3d_set_tlc_rr_para b .L1898 .L1906: mov w19, w0 b .L1901 .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial .section .text.samsung_read_retrial,"ax",@progbits .align 2 .global samsung_read_retrial .type samsung_read_retrial, %function samsung_read_retrial: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 mov x22, x2 stp x19, x20, [sp, 16] str w4, [x29, 108] mov w20, w1 stp x23, x24, [sp, 48] mov x23, x3 stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] bl nandc_wait_flash_ready mov w0, w21 bl zftl_flash_enter_slc_mode mov w0, w21 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR7 tst x20, 50331648 and x5, x21, 255 ldr x0, [x0, #:lo12:.LANCHOR7] bne .L1922 adrp x24, .LANCHOR167 adrp x27, .LC118 add x28, x0, x5, lsl 8 add x24, x24, :lo12:.LANCHOR167 add x27, x27, :lo12:.LC118 mov x26, 0 mov w25, -1 .L1927: mov w0, 239 str w0, [x28, 2056] mov w0, 141 str w0, [x28, 2052] add x0, x24, x26 add w19, w26, 1 ldrsb w0, [x0, 1] str w0, [x28, 2048] str wzr, [x28, 2048] str wzr, [x28, 2048] str wzr, [x28, 2048] bl nandc_wait_flash_ready ldr w4, [x29, 108] mov x3, x23 mov x2, x22 mov w1, w20 mov w0, w21 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 4, .L1923 mov w3, w4 str w4, [x29, 104] mov w2, w20 mov w1, w19 mov x0, x27 bl printf ldr w4, [x29, 104] .L1923: cmn w4, #1 beq .L1924 adrp x0, .LANCHOR163 cmn w25, #1 csel w25, w25, w4, ne ldr x22, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x23, [x0, #:lo12:.LANCHOR165] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1936 .L1924: add x26, x26, 1 cmp x26, 25 bne .L1927 mov w19, 26 .L1926: mov w0, 239 str w0, [x28, 2056] mov w0, 141 str w0, [x28, 2052] str wzr, [x28, 2048] str wzr, [x28, 2048] str wzr, [x28, 2048] str wzr, [x28, 2048] .L1958: bl nandc_wait_flash_ready adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w25, w0, lsr 2 bcc .L1934 cmn w25, #1 mov w0, 256 csel w25, w25, w0, eq .L1934: cmp w25, 256 ccmn w25, #1, 4, ne bne .L1935 adrp x0, .LC120 mov w4, w25 mov w3, w19 mov w2, w20 mov w1, w19 add x0, x0, :lo12:.LC120 bl printf .L1935: bl nandc_wait_flash_ready mov w0, w25 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L1936: mov w25, w4 b .L1926 .L1922: adrp x7, .LANCHOR168 add x7, x7, :lo12:.LANCHOR168 adrp x24, .LC119 add x28, x7, 4 add x27, x0, x5, lsl 8 add x24, x24, :lo12:.LC119 mov w25, -1 mov w19, 1 mov w26, 137 .L1933: mov w0, 239 str w0, [x27, 2056] str w26, [x27, 2052] ldrb w0, [x28] str w0, [x27, 2048] ldrb w0, [x28, 1] str w0, [x27, 2048] ldrb w0, [x28, 2] str w0, [x27, 2048] ldrb w0, [x28, 3] str w0, [x27, 2048] bl nandc_wait_flash_ready ldr w4, [x29, 108] mov x3, x23 mov x2, x22 mov w1, w20 mov w0, w21 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 4, .L1929 mov w3, w4 str w4, [x29, 104] mov w2, w20 mov w1, w19 mov x0, x24 bl printf ldr w4, [x29, 104] .L1929: cmn w4, #1 beq .L1930 adrp x0, .LANCHOR163 cmn w25, #1 csel w25, w25, w4, ne ldr x22, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x23, [x0, #:lo12:.LANCHOR165] adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 bcc .L1937 .L1930: add w19, w19, 1 add x28, x28, 4 cmp w19, 26 bne .L1933 .L1932: mov w0, 239 str w0, [x27, 2056] mov w0, 137 str w0, [x27, 2052] str wzr, [x27, 2048] str wzr, [x27, 2048] str wzr, [x27, 2048] str wzr, [x27, 2048] b .L1958 .L1937: mov w25, w4 b .L1932 .size samsung_read_retrial, .-samsung_read_retrial .section .text.hynix_read_retrial,"ax",@progbits .align 2 .global hynix_read_retrial .type hynix_read_retrial, %function hynix_read_retrial: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x23, x24, [sp, 48] and x23, x0, 255 adrp x0, .LANCHOR6 stp x27, x28, [sp, 80] stp x21, x22, [sp, 32] mov w27, w4 ldr x28, [x0, #:lo12:.LANCHOR6] mov w22, w1 stp x25, x26, [sp, 64] mov x25, x2 add x28, x28, 112 stp x19, x20, [sp, 16] add x0, x28, x23 mov x26, x3 mov x21, x23 mov w19, -1 ldrb w24, [x28, 2] ldrb w20, [x0, 8] bl nandc_wait_flash_ready mov w0, w23 bl zftl_flash_enter_slc_mode mov w0, w23 bl zftl_flash_exit_slc_mode adrp x6, .LANCHOR49 add x6, x6, :lo12:.LANCHOR49 mov w5, 0 adrp x7, .LANCHOR163 adrp x8, .LANCHOR165 .L1960: cmp w5, w24 bcc .L1965 .L1964: adrp x0, .LANCHOR49 add x23, x28, x23 ldrb w0, [x0, #:lo12:.LANCHOR49] strb w20, [x23, 8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 bcc .L1966 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq .L1966: cmp w19, 256 ccmn w19, #1, 4, ne bne .L1967 adrp x0, .LC121 mov w4, w19 mov w3, w5 mov w2, w22 mov w1, w5 add x0, x0, :lo12:.LC121 bl printf .L1967: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L1965: add w20, w20, 1 stp x6, x8, [x29, 96] and w20, w20, 255 str x7, [x29, 112] cmp w24, w20 str w5, [x29, 124] csel w20, w20, wzr, hi mov w0, w21 mov w1, w20 bl hynix_set_rr_para mov w4, w27 mov x3, x26 mov x2, x25 mov w1, w22 mov w0, w21 bl flash_read_page ldr w5, [x29, 124] cmn w0, #1 ldp x6, x8, [x29, 96] ldr x7, [x29, 112] beq .L1962 ldrb w1, [x6] cmn w19, #1 csel w19, w19, w0, ne ldr x25, [x7, #:lo12:.LANCHOR163] ldr x26, [x8, #:lo12:.LANCHOR165] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 bcc .L1968 .L1962: add w5, w5, 1 b .L1960 .L1968: mov w19, w0 b .L1964 .size hynix_read_retrial, .-hynix_read_retrial .section .text.flash_ddr_tuning_read,"ax",@progbits .align 2 .global flash_ddr_tuning_read .type flash_ddr_tuning_read, %function flash_ddr_tuning_read: stp x29, x30, [sp, -144]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 stp x21, x22, [sp, 32] mov w22, w1 stp x23, x24, [sp, 48] mov x23, x2 stp x25, x26, [sp, 64] mov x24, x3 stp x27, x28, [sp, 80] adrp x25, .LANCHOR49 str w4, [x29, 136] bl nandc_get_ddr_para add x25, x25, :lo12:.LANCHOR49 str w0, [x29, 132] adrp x0, .LANCHOR19 add x0, x0, :lo12:.LANCHOR19 mov w28, 0 str x0, [x29, 120] mov w26, 0 adrp x0, .LC122 mov w27, 0 add x0, x0, :lo12:.LC122 mov w19, 1024 mov w21, -1 mov w7, 6 str wzr, [x29, 140] str x0, [x29, 112] .L1984: mov w0, w7 str w7, [x29, 128] bl nandc_set_ddr_para ldr w4, [x29, 136] mov x3, x24 mov x2, x23 mov w1, w22 mov w0, w20 bl flash_read_page mov w4, w0 ldr x0, [x29, 120] ldr w7, [x29, 128] ldr w0, [x0] tbz x0, 4, .L1979 ldr x0, [x29, 112] mov w3, w4 mov w1, w7 str w4, [x29, 108] str w7, [x29, 128] mov w2, w22 bl printf ldr w4, [x29, 108] ldr w7, [x29, 128] .L1979: add w0, w19, 1 cmp w4, w0 bhi .L1980 adrp x0, .LANCHOR163 ldr x23, [x0, #:lo12:.LANCHOR163] adrp x0, .LANCHOR165 ldr x24, [x0, #:lo12:.LANCHOR165] ldrb w0, [x25] cmp w4, w0, lsr 2 bcs .L1990 add w27, w27, 1 cmp w27, 7 bls .L1990 sub w28, w7, w27 mov w19, w4 mov w21, 0 .L1982: ldr w0, [x29, 140] cmp w27, w26 csel w28, w28, w0, cs .L1983: cbz w28, .L1985 adrp x0, .LANCHOR49 mov w1, 3 ldrb w0, [x0, #:lo12:.LANCHOR49] udiv w0, w0, w1 cmp w0, w19 bls .L1985 mov w1, w28 adrp x0, .LC123 add x0, x0, :lo12:.LC123 bl printf mov w0, w28 .L2004: bl nandc_set_ddr_para cbz w21, .L1978 adrp x25, .LANCHOR48 ldrb w0, [x25, #:lo12:.LANCHOR48] tbz x0, 0, .L1978 mov w2, w22 mov w1, w20 adrp x0, .LC124 add x0, x0, :lo12:.LC124 bl printf mov w0, w20 bl flash_reset mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode adrp x0, .LANCHOR33 add x0, x0, :lo12:.LANCHOR33 mov w1, 2 strb w1, [x0, w20, sxtw] mov w0, w20 bl zftl_flash_enter_slc_mode ldr w4, [x29, 136] mov x3, x24 mov x2, x23 mov w1, w22 mov w0, w20 bl flash_read_page mov w19, w0 mov w3, w0 mov w2, w22 mov w1, w20 adrp x0, .LC125 add x0, x0, :lo12:.LC125 bl printf adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] cmp w19, w0 bhi .L1992 adrp x1, .LANCHOR169 ldr w0, [x1, #:lo12:.LANCHOR169] add w0, w0, 1 str w0, [x1, #:lo12:.LANCHOR169] cmp w0, 100 bls .L1988 adrp x0, .LANCHOR26 strb wzr, [x0, #:lo12:.LANCHOR26] .L1978: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret .L1980: cmp w27, w26 bls .L1991 sub w0, w28, w27 str w0, [x29, 140] cmp w27, 7 bhi .L1983 mov w26, w27 .L1991: mov w27, 0 b .L1981 .L1990: mov w28, w7 mov w19, w4 mov w21, 0 .L1981: add w7, w7, 2 cmp w7, 50 bne .L1984 b .L1982 .L1985: ldrb w0, [x29, 132] b .L2004 .L1992: mov w19, w21 .L1988: ldrb w0, [x25, #:lo12:.LANCHOR48] bl flash_set_interface_mode ldrb w0, [x25, #:lo12:.LANCHOR48] bl nandc_set_if_mode b .L1978 .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .section .text.flash_read_page_en,"ax",@progbits .align 2 .global flash_read_page_en .type flash_read_page_en, %function flash_read_page_en: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 adrp x0, .LANCHOR23 stp x23, x24, [sp, 48] stp x21, x22, [sp, 32] mov w19, w1 str x25, [sp, 64] mov x22, x2 ldrb w1, [x0, #:lo12:.LANCHOR23] mov x23, x3 mov w24, w4 mov x25, x0 cmp w1, w20 bhi .L2006 adrp x1, .LANCHOR170 adrp x0, .LC0 mov w2, 431 add x1, x1, :lo12:.LANCHOR170 add x0, x0, :lo12:.LC0 bl printf .L2006: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w4, [x25, #:lo12:.LANCHOR23] ldrb w21, [x0, w20, sxtw] cmp w20, w4 bcc .L2007 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbnz x0, 6, .L2008 .L2032: mov w0, -1 .L2005: 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 .L2008: mov w3, w19 mov w2, w20 mov w1, w21 adrp x0, .LC126 add x0, x0, :lo12:.LC126 bl printf b .L2032 .L2007: tst x19, 50331648 bne .L2010 adrp x0, .LANCHOR0 adrp x1, .LANCHOR1 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L2011 ldrb w0, [x1, #:lo12:.LANCHOR1] cbz w0, .L2010 .L2011: adrp x0, .LANCHOR2 ldrb w1, [x1, #:lo12:.LANCHOR1] ldrh w2, [x0, #:lo12:.LANCHOR2] udiv w0, w19, w2 mul w0, w0, w2 sub w19, w19, w0 cbz w1, .L2012 add w19, w0, w19, lsl 1 .L2010: mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 mov w0, w21 bl flash_read_page cmn w0, #1 bne .L2005 adrp x20, .LANCHOR51 ldrb w25, [x20, #:lo12:.LANCHOR51] cbnz w25, .L2013 .L2016: adrp x0, .LANCHOR171 ldr x5, [x0, #:lo12:.LANCHOR171] cbnz x5, .L2014 .L2015: ldrb w4, [x20, #:lo12:.LANCHOR51] mov w3, -1 mov w2, w19 mov w1, 0 adrp x0, .LC127 add x0, x0, :lo12:.LC127 bl printf adrp x0, .LANCHOR26 ldrb w0, [x0, #:lo12:.LANCHOR26] cbz w0, .L2032 mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 mov w0, w21 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 b flash_ddr_tuning_read .L2012: adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 ldrh w19, [x1, w19, uxtw 1] add w19, w19, w0 b .L2010 .L2013: strb wzr, [x20, #:lo12:.LANCHOR51] mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 mov w0, w21 bl flash_read_page strb w25, [x20, #:lo12:.LANCHOR51] cmn w0, #1 beq .L2016 b .L2005 .L2014: mov w4, w24 mov x3, x23 mov x2, x22 mov w1, w19 mov w0, w21 blr x5 cmn w0, #1 beq .L2015 b .L2005 .size flash_read_page_en, .-flash_read_page_en .section .text.flash_get_last_written_page,"ax",@progbits .align 2 .global flash_get_last_written_page .type flash_get_last_written_page, %function flash_get_last_written_page: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x23, x24, [sp, 48] and w23, w0, 255 adrp x0, .LANCHOR144 stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] mov x24, x2 ldrh w19, [x0, #:lo12:.LANCHOR144] adrp x0, .LANCHOR32+26 stp x21, x22, [sp, 32] and w21, w1, 65535 ldrh w26, [x0, #:lo12:.LANCHOR32+26] sub w19, w19, #1 sxth w19, w19 stp x27, x28, [sp, 80] mov x22, x3 mov w25, w4 mov w0, w23 mul w26, w26, w21 add w1, w19, w26 bl flash_read_page_en cmp w0, 512 bne .L2034 mov w27, 0 mov w28, 2 .L2035: cmp w27, w19 ble .L2038 .L2034: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2039 ldr w3, [x22] adrp x0, .LC128 mov w2, w19 mov w1, w21 add x0, x0, :lo12:.LC128 bl printf .L2039: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .L2038: add w20, w27, w19 mov w4, w25 mov x3, x22 mov x2, x24 mov w0, w23 sdiv w20, w20, w28 add w1, w26, w20, sxth bl flash_read_page_en cmp w0, 512 bne .L2036 sub w19, w20, #1 sxth w19, w19 b .L2035 .L2036: add w20, w20, 1 sxth w27, w20 b .L2035 .size flash_get_last_written_page, .-flash_get_last_written_page .section .text.flash_get_last_written_page_ext,"ax",@progbits .align 2 .global flash_get_last_written_page_ext .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: adrp x4, .LANCHOR31 mov w5, 24 and w0, w0, 65535 mov w6, 1 ldrb w4, [x4, #:lo12:.LANCHOR31] sub w5, w5, w4 adrp x4, .LANCHOR74 ldrh w4, [x4, #:lo12:.LANCHOR74] sub w5, w5, w4 mov w4, w3 mov x3, x2 mov x2, x1 lsl w6, w6, w5 sub w6, w6, #1 and w1, w6, w0 asr w0, w0, w5 b flash_get_last_written_page .size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext .section .text.flash_ddr_para_scan,"ax",@progbits .align 2 .global flash_ddr_para_scan .type flash_ddr_para_scan, %function flash_ddr_para_scan: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR48 stp x21, x22, [sp, 32] and w22, w0, 255 ldrb w0, [x20, #:lo12:.LANCHOR48] adrp x19, .LANCHOR26 stp x23, x24, [sp, 48] mov w21, 1 mov w23, w1 str x25, [sp, 64] strb w21, [x19, #:lo12:.LANCHOR26] adrp x24, .LANCHOR173 bl flash_set_interface_mode adrp x25, .LANCHOR172 ldrb w0, [x20, #:lo12:.LANCHOR48] bl nandc_set_if_mode ldr x3, [x25, #:lo12:.LANCHOR172] mov w4, 4 ldr x2, [x24, #:lo12:.LANCHOR173] mov w1, w23 mov w0, w22 bl flash_ddr_tuning_read ldr x3, [x25, #:lo12:.LANCHOR172] mov w4, 4 ldr x2, [x24, #:lo12:.LANCHOR173] mov w1, w23 mov w0, w22 bl flash_read_page cmn w0, #1 mov x0, x19 bne .L2046 ldrb w1, [x20, #:lo12:.LANCHOR48] tbz x1, 0, .L2046 mov w0, 1 bl flash_set_interface_mode mov w0, w21 bl nandc_set_if_mode strb wzr, [x19, #:lo12:.LANCHOR26] .L2047: mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .L2046: mov w1, 1 strb w1, [x0, #:lo12:.LANCHOR26] b .L2047 .size flash_ddr_para_scan, .-flash_ddr_para_scan .section .text.flash_prog_page,"ax",@progbits .align 2 .global flash_prog_page .type flash_prog_page, %function flash_prog_page: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR7 stp x25, x26, [sp, 64] stp x19, x20, [sp, 16] mov w20, 24 ldr x26, [x0, #:lo12:.LANCHOR7] adrp x0, .LANCHOR31 mov w22, w1 stp x23, x24, [sp, 48] ldrb w0, [x0, #:lo12:.LANCHOR31] mov x24, x2 mov x25, x3 and x19, x21, 255 sub w0, w20, w0 mov w20, 1 add x23, x19, 8 lsl w20, w20, w0 sub w20, w20, #1 and w20, w20, w1 bl nandc_wait_flash_ready mov w0, w21 bl hynix_reconfig_rr_para mov w0, w21 bl nandc_cs add x23, x26, x23, lsl 8 mov w0, w21 tst x22, 50331648 bne .L2053 bl zftl_flash_enter_slc_mode .L2054: add x19, x26, x19, lsl 8 mov w0, 128 str w0, [x19, 2056] and w0, w20, 255 str wzr, [x19, 2052] str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w20, 8 str w0, [x19, 2052] lsr w0, w20, 16 str w0, [x19, 2052] adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] cbz w0, .L2055 lsr w0, w20, 24 str w0, [x19, 2052] .L2055: mov w0, w20 bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x25 mov x3, x24 mov w1, 1 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w21 bl nandc_xfer mov w0, 16 str w0, [x19, 2056] bl nandc_wait_flash_ready mov x0, x23 bl flash_read_status mov w3, w0 bl nandc_de_cs.constprop.32 and w2, w3, 4 tbz x3, 2, .L2052 mov w1, w22 adrp x0, .LC129 add x0, x0, :lo12:.LC129 bl printf mov w2, -1 .L2052: mov w0, w2 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 .L2053: bl zftl_flash_exit_slc_mode b .L2054 .size flash_prog_page, .-flash_prog_page .section .text.flash_test_blk,"ax",@progbits .align 2 .global flash_test_blk .type flash_test_blk, %function flash_test_blk: stp x29, x30, [sp, -64]! mov w2, 32 add x29, sp, 0 stp x21, x22, [sp, 32] adrp x22, .LANCHOR163 stp x19, x20, [sp, 16] and w20, w0, 255 ldr x0, [x22, #:lo12:.LANCHOR163] adrp x21, .LANCHOR165 and w19, w1, 65535 str x23, [sp, 48] mov w1, 165 bl ftl_memset ldr x0, [x21, #:lo12:.LANCHOR165] mov w2, 8 mov w1, 90 bl ftl_memset adrp x0, .LANCHOR2 ldrh w0, [x0, #:lo12:.LANCHOR2] mul w19, w0, w19 mov w0, w20 mov w1, w19 bl flash_erase_block cmn w0, #1 bne .L2065 .L2067: mov w21, -1 .L2066: mov w1, w19 mov w0, w20 bl flash_erase_block ldr x23, [sp, 48] mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .L2065: adrp x23, .LANCHOR32 add x23, x23, :lo12:.LANCHOR32 ldr x3, [x21, #:lo12:.LANCHOR165] mov w1, w19 ldr x2, [x22, #:lo12:.LANCHOR163] mov w0, w20 ldrb w4, [x23, 9] bl flash_prog_page cmn w0, #1 beq .L2067 ldrb w4, [x23, 9] mov w1, w19 ldr x3, [x21, #:lo12:.LANCHOR165] mov w0, w20 ldr x2, [x22, #:lo12:.LANCHOR163] bl flash_read_page_en cmn w0, #1 beq .L2067 ldr x0, [x22, #:lo12:.LANCHOR163] ldr w1, [x0] mov w0, 42405 movk w0, 0xa5a5, lsl 16 cmp w1, w0 bne .L2067 ldr x0, [x21, #:lo12:.LANCHOR165] ldr w1, [x0] mov w0, 23130 movk w0, 0x5a5a, lsl 16 cmp w1, w0 csetm w21, ne b .L2066 .size flash_test_blk, .-flash_test_blk .section .text.id_block_prog_msb_ff_data,"ax",@progbits .align 2 .global id_block_prog_msb_ff_data .type id_block_prog_msb_ff_data, %function id_block_prog_msb_ff_data: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w0, 255 adrp x0, .LANCHOR24 stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] ldrb w0, [x0, #:lo12:.LANCHOR24] str x25, [sp, 64] cbnz w0, .L2075 adrp x20, .LANCHOR32 add x20, x20, :lo12:.LANCHOR32 ldrb w0, [x20, 19] sub w0, w0, #5 and w3, w0, 255 cmp w3, 63 bhi .L2075 and w19, w2, 65535 mov x2, 16391 movk x2, 0x4000, lsl 16 movk x2, 0x8000, lsl 48 lsr x0, x2, x3 tbz x0, 0, .L2075 adrp x21, .LANCHOR142 mov w23, w1 add x21, x21, :lo12:.LANCHOR142 mov w25, 65535 adrp x24, .LANCHOR163 .L2077: ldrh w0, [x20, 10] cmp w0, w19 bhi .L2078 .L2075: 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 .L2078: ldrh w0, [x21, w19, sxtw 1] cmp w0, w25 bne .L2075 ldr x0, [x24, #:lo12:.LANCHOR163] mov w2, 16384 mov w1, 255 bl ftl_memset ldr x3, [x24, #:lo12:.LANCHOR163] add w1, w19, w23 ldrb w4, [x20, 9] add w19, w19, 1 mov x2, x3 mov w0, w22 and w19, w19, 65535 bl flash_prog_page b .L2077 .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data .section .text.flash_start_one_pass_page_prog,"ax",@progbits .align 2 .global flash_start_one_pass_page_prog .type flash_start_one_pass_page_prog, %function flash_start_one_pass_page_prog: stp x29, x30, [sp, -32]! and w8, w0, 255 and w7, w3, 255 adrp x0, .LANCHOR7 add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w2, 255 ldr x19, [x0, #:lo12:.LANCHOR7] mov w0, w7 bl nandc_cs cbz w8, .L2081 sxtw x0, w7 add x0, x0, 8 add x0, x19, x0, lsl 8 str w8, [x0, 8] .L2081: ubfiz x0, x7, 8, 8 add x19, x19, x0 mov w0, 128 str w0, [x19, 2056] and w0, w4, 255 str wzr, [x19, 2052] str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w4, 8 str w0, [x19, 2052] lsr w0, w4, 16 str w0, [x19, 2052] adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] cbz w0, .L2082 lsr w0, w4, 24 str w0, [x19, 2052] .L2082: mov w0, w4 bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x6 mov x3, x5 mov w1, 1 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w7 bl nandc_xfer str w20, [x19, 2056] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog .section .text.flash_dual_page_prog,"ax",@progbits .align 2 .global flash_dual_page_prog .type flash_dual_page_prog, %function flash_dual_page_prog: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 stp x25, x26, [sp, 64] mov x25, x2 adrp x2, .LANCHOR7 stp x21, x22, [sp, 32] ubfiz x22, x20, 8, 8 stp x27, x28, [sp, 80] add x0, x22, 2048 ldr x22, [x2, #:lo12:.LANCHOR7] mov w19, 24 adrp x27, .LANCHOR19 add x22, x22, x0 adrp x0, .LANCHOR31 stp x23, x24, [sp, 48] mov w21, w1 ldrb w0, [x0, #:lo12:.LANCHOR31] mov x26, x3 mov x23, x4 mov x24, x5 sub w0, w19, w0 mov w19, 1 ubfx x28, x21, 24, 2 lsl w19, w19, w0 ldr w0, [x27, #:lo12:.LANCHOR19] sub w19, w19, #1 and w19, w19, w1 tbz x0, 4, .L2091 adrp x0, .LC130 mov w3, w6 mov w2, w28 add x0, x0, :lo12:.LC130 bl printf .L2091: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 cbnz w28, .L2092 bl zftl_flash_enter_slc_mode .L2093: mov x6, x26 mov x5, x25 mov w4, w19 mov w3, w20 mov w2, 16 mov w1, 0 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready mov x6, x24 mov x5, x23 add w4, w19, 1 mov w3, w20 mov w2, 16 mov w1, 0 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready mov x0, x22 bl flash_read_status mov w3, w0 bl nandc_de_cs.constprop.32 and w2, w3, 4 tbz x3, 2, .L2090 ldr w0, [x27, #:lo12:.LANCHOR19] tbz x0, 12, .L2095 adrp x0, .LC129 mov w1, w21 add x0, x0, :lo12:.LC129 bl printf .L2095: mov w2, -1 .L2090: mov w0, w2 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .L2092: bl zftl_flash_exit_slc_mode b .L2093 .size flash_dual_page_prog, .-flash_dual_page_prog .section .text.ymtc_flash_tlc_page_prog,"ax",@progbits .align 2 .global ymtc_flash_tlc_page_prog .type ymtc_flash_tlc_page_prog, %function ymtc_flash_tlc_page_prog: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] and w20, w0, 255 str x25, [sp, 64] mov w25, w1 adrp x1, .LANCHOR7 stp x21, x22, [sp, 32] ubfiz x22, x20, 8, 8 mov w19, 24 add x0, x22, 2048 ldr x22, [x1, #:lo12:.LANCHOR7] mov w21, 1 stp x23, x24, [sp, 48] add x22, x22, x0 adrp x0, .LANCHOR31 mov x23, x2 mov x24, x3 ldrb w0, [x0, #:lo12:.LANCHOR31] sub w19, w19, w0 bl nandc_wait_flash_ready lsl w19, w21, w19 mov w0, w20 sub w19, w19, #1 bl nandc_cs and w19, w19, w25 mov w0, w20 bl zftl_flash_exit_slc_mode mov x6, x24 mov x5, x23 mov w4, w19 mov w3, w20 mov w1, w21 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready mov x6, x24 mov x5, x23 add w4, w19, w21 mov w3, w20 mov w1, w21 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready mov x6, x24 mov x5, x23 add w4, w19, 2 mov w3, w20 mov w1, w21 mov w2, 16 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready mov x0, x22 bl flash_read_status mov w3, w0 bl nandc_de_cs.constprop.32 and w2, w3, 4 tbz x3, 2, .L2103 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2105 adrp x0, .LC131 mov w1, w25 add x0, x0, :lo12:.LC131 bl printf .L2105: mov w2, -1 .L2103: mov w0, w2 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog .section .text.fw_flash_page_prog.constprop.29,"ax",@progbits .align 2 .type fw_flash_page_prog.constprop.29, %function fw_flash_page_prog.constprop.29: stp x29, x30, [sp, -64]! adrp x4, .LANCHOR32 add x4, x4, :lo12:.LANCHOR32 add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x1 stp x21, x22, [sp, 32] mov x21, x2 str x23, [sp, 48] ldrb w19, [x4, 9] udiv w19, w0, w19 adrp x0, .LANCHOR49 ldrb w23, [x0, #:lo12:.LANCHOR49] adrp x0, .LANCHOR22 ldrb w0, [x0, #:lo12:.LANCHOR22] bl nandc_bch_sel ldrb w0, [x4, 7] cmp w0, 9 bne .L2111 adrp x0, .LANCHOR24 ldrb w0, [x0, #:lo12:.LANCHOR24] cbnz w0, .L2111 ldrb w0, [x4, 12] cmp w0, 3 bne .L2112 mov x3, x21 mov x2, x20 mov w1, w19 mov w0, 0 bl ymtc_flash_tlc_page_prog .L2115: mov w4, w0 mov w0, w23 bl nandc_bch_sel ldr x23, [sp, 48] mov w0, w4 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .L2112: adrp x22, .LANCHOR163 mov w2, 16384 mov w1, 255 ldr x0, [x22, #:lo12:.LANCHOR163] bl ftl_memset ldr x5, [x22, #:lo12:.LANCHOR163] mov w6, 4 mov x3, x21 mov x2, x20 mov x4, x5 mov w1, w19 mov w0, 0 bl flash_dual_page_prog b .L2115 .L2111: mov w4, 4 mov x3, x21 mov x2, x20 mov w1, w19 mov w0, 0 bl flash_prog_page b .L2115 .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 .section .text.idb_write_data,"ax",@progbits .align 2 .global idb_write_data .type idb_write_data, %function idb_write_data: stp x29, x30, [sp, -272]! cmp w1, 64 add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w1 stp x21, x22, [sp, 32] mov w20, w3 stp x23, x24, [sp, 48] adrp x22, .LANCHOR140 stp x25, x26, [sp, 64] mov x24, x2 stp x27, x28, [sp, 80] bne .L2117 ldr w0, [x2] mov w1, 35899 movk w1, 0xfcdc, lsl 16 cmp w0, w1 mov w1, 19282 movk w1, 0x534e, lsl 16 ccmp w0, w1, 4, ne beq .L2118 add w1, w1, 327680 cmp w0, w1 bne .L2117 .L2118: adrp x21, .LANCHOR138 mov w1, 1 strb w1, [x22, #:lo12:.LANCHOR140] ldr x0, [x21, #:lo12:.LANCHOR138] cbnz x0, .L2119 mov w0, 262144 bl ftl_malloc str x0, [x21, #:lo12:.LANCHOR138] .L2119: adrp x0, .LANCHOR174 mov w1, 64 str w1, [x0, #:lo12:.LANCHOR174] .L2117: ldrb w0, [x22, #:lo12:.LANCHOR140] cbz w0, .L2185 adrp x0, .LANCHOR138 mov x23, x0 ldr x21, [x0, #:lo12:.LANCHOR138] cbz x21, .L2185 add w0, w19, w20 str w0, [x29, 140] cmp w0, 63 bls .L2121 cmp w19, 575 bhi .L2122 adrp x21, .LANCHOR141 ldr x0, [x21, #:lo12:.LANCHOR141] cbz x0, .L2123 .L2126: adrp x1, .LANCHOR139 mov w2, 1 ldr x0, [x23, #:lo12:.LANCHOR138] cmp w19, 64 str w2, [x1, #:lo12:.LANCHOR139] bhi .L2238 mov w4, 64 sub w4, w4, w19 sub w2, w20, w4 ubfiz x4, x4, 9, 25 lsl w2, w2, 9 add x1, x24, x4 .L2244: bl ftl_memcpy .L2127: adrp x0, .LANCHOR174 ldr w0, [x0, #:lo12:.LANCHOR174] cmp w19, w0 beq .L2181 strb wzr, [x22, #:lo12:.LANCHOR140] b .L2181 .L2123: mov w0, 262144 bl ftl_malloc str x0, [x21, #:lo12:.LANCHOR141] cbnz x0, .L2126 mov w0, -1 b .L2116 .L2238: mov w2, 576 sub w2, w2, w19 cmp w20, w2 sub w3, w19, #64 csel w2, w20, w2, ls ubfiz x3, x3, 9, 25 lsl w2, w2, 9 mov x1, x24 add x0, x0, x3 b .L2244 .L2121: cmp w19, 575 bls .L2127 .L2122: adrp x0, .LANCHOR139 ldr w0, [x0, #:lo12:.LANCHOR139] cbz w0, .L2127 ldr w0, [x21] mov w1, 35899 movk w1, 0xfcdc, lsl 16 cmp w0, w1 mov w1, 19282 movk w1, 0x534e, lsl 16 ccmp w0, w1, 4, ne beq .L2128 add w1, w1, 327680 cmp w0, w1 bne .L2129 .L2128: adrp x0, .LANCHOR0 mov x20, x0 ldrb w1, [x0, #:lo12:.LANCHOR0] str w1, [x29, 176] adrp x1, .LANCHOR24 mov x24, x1 ldr w0, [x29, 176] ldrb w2, [x1, #:lo12:.LANCHOR24] str w2, [x29, 204] cbz w0, .L2130 ldrh w0, [x29, 176] str w0, [x29, 172] uxtw x0, w2 cmp w0, 0 cset w0, eq .L2241: adrp x23, .LANCHOR32 add x23, x23, :lo12:.LANCHOR32 str w0, [x29, 200] mov w0, 0 ldrb w19, [x23, 9] ldrh w22, [x23, 26] bl zftl_flash_exit_slc_mode ldrb w0, [x24, #:lo12:.LANCHOR24] add x1, x21, 258048 strb w0, [x20, #:lo12:.LANCHOR0] mov w4, 16981 ldrh w20, [x23, 10] add x1, x1, 2044 ldrb w0, [x23, 12] mov w2, 65023 movk w4, 0x4f4f, lsl 16 mov w3, 4098 lsl w20, w20, 2 sdiv w20, w20, w0 mov w0, 512 cmp w20, 512 csel w20, w20, w0, lt mov w0, 0 .L2137: ldr w5, [x1] cbnz w5, .L2133 cbnz w0, .L2134 str w4, [x1, 2048] .L2135: add w0, w0, 1 sub w2, w2, #1 cmp w0, w3 sub x1, x1, #4 csel w0, w0, wzr, ls cmp w2, 4096 bne .L2137 .L2133: ldr w1, [x21, w2, uxtw 2] mov w3, w20 adrp x0, .LC132 add x0, x0, :lo12:.LC132 bl printf str wzr, [x29, 180] mul w0, w22, w19 str wzr, [x29, 192] str w0, [x29, 128] adrp x0, .LANCHOR51 add x0, x0, :lo12:.LANCHOR51 str x0, [x29, 184] .L2176: adrp x23, .LANCHOR141 mov w1, 0 mov w2, 512 ldr x0, [x23, #:lo12:.LANCHOR141] bl ftl_memset str x23, [x29, 160] adrp x0, .LANCHOR6 ldr w1, [x29, 192] ldr x0, [x0, #:lo12:.LANCHOR6] add x0, x0, x1, uxtw ldrb w19, [x0, 32] cmp w19, 255 beq .L2138 ldr w0, [x29, 128] mul w19, w19, w0 ldr w0, [x29, 200] cbz w0, .L2139 and w0, w1, -3 adrp x24, .LANCHOR0 cmp w0, 1 adrp x22, .LANCHOR24 beq .L2140 ldr w0, [x29, 200] cmp w0, 3 bne .L2141 .L2140: ldrb w0, [x29, 172] strb w0, [x24, #:lo12:.LANCHOR0] strb w0, [x22, #:lo12:.LANCHOR24] .L2139: adrp x22, .LANCHOR32 add x27, x22, :lo12:.LANCHOR32 ldr x0, [x29, 184] ldrb w24, [x27, 9] ldrh w25, [x27, 26] ldrb w0, [x0] str w0, [x29, 136] udiv w1, w19, w24 ldr x0, [x29, 184] mul w25, w25, w24 strb wzr, [x0] mov w0, 0 bl flash_erase_block udiv w0, w19, w25 ldrb w1, [x27, 12] msub w0, w0, w25, w19 str w0, [x29, 168] sub w26, w19, w0 ldrh w0, [x27, 10] cmp w19, w26 lsl w0, w0, 2 sdiv w0, w0, w1 str w0, [x29, 156] bne .L2191 adrp x0, .LANCHOR27 ldrb w0, [x0, #:lo12:.LANCHOR27] cmp w0, 9 bne .L2191 ldr x0, [x29, 160] mov w2, 1024 mov w1, 0 ldr x25, [x0, #:lo12:.LANCHOR141] mov x0, x25 bl ftl_memset mov w0, 18766 movk w0, 0x464e, lsl 16 str w0, [x25] mov w0, 12 str w0, [x25, 4] adrp x0, .LANCHOR24 strb wzr, [x25, 16] str wzr, [x25, 12] ldrb w0, [x0, #:lo12:.LANCHOR24] cbz w0, .L2143 ldrb w0, [x27, 29] strb w0, [x25, 16] .L2143: add x1, x22, :lo12:.LANCHOR32 mov w0, 4 strb w0, [x25, 17] cmp w24, 8 strb wzr, [x25, 20] ldrh w0, [x1, 10] ldrb w1, [x1, 12] strh wzr, [x25, 22] sdiv w0, w0, w1 mov w1, 16 strh w0, [x25, 18] mov w0, 70 csel w0, w0, w1, hi strb w0, [x25, 21] mov w1, 12 add x0, x25, 12 bl js_hash str w0, [x25, 8] sub w0, w20, #4 str w0, [x29, 196] .L2142: adrp x27, .LANCHOR3 mov x23, x21 add x27, x27, :lo12:.LANCHOR3 adrp x0, .LANCHOR24 mov w28, 0 add x0, x0, :lo12:.LANCHOR24 str x0, [x29, 144] .L2145: ldr w0, [x29, 156] cmp w0, w28 bhi .L2156 ldr x0, [x29, 160] add x22, x22, :lo12:.LANCHOR32 mov w24, 4 mov w25, 0 mov w28, 0 ldr x23, [x0, #:lo12:.LANCHOR141] ldrb w0, [x22, 9] str w0, [x29, 144] ldrh w0, [x22, 26] ldr w1, [x29, 144] mul w0, w0, w1 adrp x1, .LANCHOR51 strb wzr, [x1, #:lo12:.LANCHOR51] udiv w1, w19, w0 msub w0, w1, w0, w19 str w0, [x29, 168] sub w0, w19, w0 str w0, [x29, 152] ldr w0, [x29, 168] and w0, w0, 3 str w0, [x29, 160] ldr w0, [x29, 196] str w0, [x29, 156] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 str x0, [x29, 112] .L2157: ldr w0, [x29, 156] cmp w25, w0 bcc .L2171 ldr x0, [x29, 184] ldrb w1, [x29, 136] strb w1, [x0] ldr w0, [x29, 200] cbz w0, .L2172 mov w0, 0 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR0 strb wzr, [x0, #:lo12:.LANCHOR0] adrp x0, .LANCHOR24 strb wzr, [x0, #:lo12:.LANCHOR24] .L2172: ldr w0, [x29, 196] mov x2, 0 lsl w1, w0, 7 adrp x0, .LANCHOR141 ldr x0, [x0, #:lo12:.LANCHOR141] .L2173: mov w22, w2 cmp w2, w1 bcc .L2174 ldr w0, [x29, 180] add w0, w0, 1 str w0, [x29, 180] cmp w0, 5 bls .L2138 b .L2183 .L2130: ldr w0, [x29, 204] cmp w0, 3 beq .L2187 cmp w0, 2 mov w0, 2 csel w0, wzr, w0, ne str w0, [x29, 172] ldr w0, [x29, 204] cmp w0, 2 mov w0, 3 csel w0, wzr, w0, ne b .L2241 .L2187: ldr w0, [x29, 204] str w0, [x29, 172] mov w0, 2 b .L2241 .L2134: ldr w5, [x21, w0, uxtw 2] str w5, [x1, 2048] b .L2135 .L2141: mov w0, 0 bl zftl_flash_exit_slc_mode strb wzr, [x24, #:lo12:.LANCHOR0] strb wzr, [x22, #:lo12:.LANCHOR24] b .L2139 .L2191: mov x25, 0 str w20, [x29, 196] b .L2142 .L2156: ldr w0, [x29, 168] adrp x2, .LANCHOR24 add w4, w0, w28 ldrb w2, [x2, #:lo12:.LANCHOR24] ubfx x4, x4, 2, 16 add w1, w4, 1 ldrh w0, [x27, w1, sxtw 1] cbz w2, .L2147 adrp x0, .LANCHOR1 ldrb w7, [x0, #:lo12:.LANCHOR1] lsl w0, w1, 1 cmp w7, 0 csel w0, w0, w1, ne .L2147: adrp x1, .LANCHOR27 ldrb w1, [x1, #:lo12:.LANCHOR27] cmp w1, 9 bne .L2149 .L2242: str w0, [x29, 208] mov w0, 61424 str w0, [x29, 212] ldrh w0, [x27, w4, sxtw 1] cbnz w2, .L2151 mov w4, w0 .L2152: mul w0, w24, w4 cbnz x25, .L2153 str w4, [x29, 152] add x2, x29, 208 mov x1, x23 add w0, w0, w26 bl fw_flash_page_prog.constprop.29 ldr x0, [x29, 144] ldr w4, [x29, 152] ldrb w0, [x0] cbnz w0, .L2154 udiv w1, w26, w24 add w2, w4, 1 bl id_block_prog_msb_ff_data .L2154: ldr w0, [x29, 196] add x23, x23, 2048 add w0, w0, 16 cmp w28, w0 bcc .L2155 ldr w0, [x29, 196] add w1, w0, 20 add x0, x21, 2048 cmp w28, w1 csel x23, x0, x23, cc .L2155: add w5, w28, 4 mov x25, 0 and w28, w5, 65535 b .L2145 .L2149: sub w0, w0, #1 lsl w0, w0, 2 b .L2242 .L2151: adrp x0, .LANCHOR1 ldrb w1, [x0, #:lo12:.LANCHOR1] lsl w0, w4, 1 cmp w1, 0 csel w4, w0, w4, ne b .L2152 .L2153: add x2, x29, 208 mov x1, x25 add w0, w0, w26 bl fw_flash_page_prog.constprop.29 b .L2155 .L2171: ldr w0, [x29, 160] adrp x1, .LANCHOR24 sub w27, w24, w0 ldr w0, [x29, 168] ldrb w1, [x1, #:lo12:.LANCHOR24] and w27, w27, 65535 add w22, w0, w25 ldr x0, [x29, 112] udiv w22, w22, w24 and w22, w22, 65535 ldrh w0, [x0, w22, sxtw 1] cbnz w1, .L2158 mov w22, w0 .L2159: adrp x0, .LANCHOR22 ldr w1, [x29, 152] ldrb w26, [x0, #:lo12:.LANCHOR22] ldr w0, [x29, 160] add w0, w0, w1 ldr w1, [x29, 144] madd w22, w1, w22, w0 adrp x0, .LANCHOR32+9 ldrb w0, [x0, #:lo12:.LANCHOR32+9] udiv w22, w22, w0 adrp x0, .LANCHOR49 ldrb w0, [x0, #:lo12:.LANCHOR49] str w0, [x29, 132] mov w0, w26 bl nandc_bch_sel adrp x0, .LANCHOR26 add x0, x0, :lo12:.LANCHOR26 str x0, [x29, 120] .L2160: mov w4, w24 add x3, x29, 208 mov x2, x23 mov w1, w22 mov w0, 0 bl flash_read_page mov w5, w0 cmn w0, #1 bne .L2161 ldr x0, [x29, 184] ldrb w6, [x0] cbnz w6, .L2162 .L2165: adrp x0, .LANCHOR171 ldr x6, [x0, #:lo12:.LANCHOR171] cbnz x6, .L2163 .L2164: ldr x0, [x29, 120] ldrb w0, [x0] cbz w0, .L2161 mov w4, w24 add x3, x29, 208 mov x2, x23 mov w1, w22 mov w0, 0 bl flash_ddr_tuning_read b .L2243 .L2158: adrp x0, .LANCHOR1 ldrb w1, [x0, #:lo12:.LANCHOR1] lsl w0, w22, 1 cmp w1, 0 csel w22, w0, w22, ne b .L2159 .L2162: ldr x0, [x29, 184] mov w1, w22 stp w6, w5, [x29, 104] mov w4, w24 add x3, x29, 208 mov x2, x23 strb wzr, [x0] mov w0, 0 bl flash_read_page cmn w0, #1 ldr x1, [x29, 184] ldp w6, w5, [x29, 104] strb w6, [x1] beq .L2165 .L2243: mov w5, w0 .L2161: cmn w5, #1 cset w4, eq cmp w26, 16 cset w0, ne tst w4, w0 beq .L2167 mov w0, 16 mov w26, 16 bl nandc_bch_sel b .L2160 .L2163: str w5, [x29, 108] mov w4, w24 add x3, x29, 208 mov x2, x23 mov w1, w22 mov w0, 0 blr x6 cmn w0, #1 ldr w5, [x29, 108] beq .L2164 b .L2243 .L2167: ldr w0, [x29, 132] bl nandc_bch_sel cmp w4, 0 ldr w0, [x29, 152] csinv w28, w28, wzr, eq cmp w25, 0 ccmp w19, w0, 0, eq bne .L2169 cbnz w28, .L2169 ldr w1, [x23] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 bne .L2169 ldr w0, [x29, 156] ldrb w24, [x23, 17] add w0, w0, w27 str w0, [x29, 156] .L2170: add w25, w27, w25 and w25, w25, 65535 b .L2157 .L2169: ubfiz x0, x27, 9, 16 str wzr, [x29, 160] add x23, x23, x0 b .L2170 .L2174: ldr w4, [x0, x2, lsl 2] add x2, x2, 1 add x3, x21, x2, lsl 2 ldr w3, [x3, -4] cmp w4, w3 beq .L2173 mov w2, 512 mov w1, 0 bl ftl_memset mov w1, w22 adrp x0, .LC133 add x0, x0, :lo12:.LC133 bl printf mov w1, w19 mov w0, 0 bl flash_erase_block .L2138: ldr w0, [x29, 192] add w0, w0, 1 str w0, [x29, 192] cmp w0, 4 bne .L2176 .L2183: mov w0, 0 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR0 ldrb w1, [x29, 176] strb w1, [x0, #:lo12:.LANCHOR0] ldr w0, [x29, 200] cbz w0, .L2177 adrp x0, .LANCHOR24 ldrb w1, [x29, 204] strb w1, [x0, #:lo12:.LANCHOR24] .L2177: mov w1, 2 adrp x0, .LANCHOR33 strb w1, [x0, #:lo12:.LANCHOR33] mov w0, 0 bl zftl_flash_enter_slc_mode ldr w0, [x29, 180] cbnz w0, .L2129 adrp x0, .LC134 mov w1, 0 add x0, x0, :lo12:.LC134 bl printf .L2129: adrp x0, .LANCHOR139 adrp x19, .LANCHOR138 str wzr, [x0, #:lo12:.LANCHOR139] adrp x0, .LANCHOR140 strb wzr, [x0, #:lo12:.LANCHOR140] ldr x0, [x19, #:lo12:.LANCHOR138] cbz x0, .L2179 bl free str xzr, [x19, #:lo12:.LANCHOR138] .L2179: adrp x19, .LANCHOR141 ldr x0, [x19, #:lo12:.LANCHOR141] cbz x0, .L2181 bl free str xzr, [x19, #:lo12:.LANCHOR141] .L2181: adrp x0, .LANCHOR174 ldr w1, [x29, 140] str w1, [x0, #:lo12:.LANCHOR174] .L2185: mov w0, 0 .L2116: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 272 ret .size idb_write_data, .-idb_write_data .section .text.flash_start_tlc_page_prog,"ax",@progbits .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x25, x26, [sp, 64] and w25, w0, 255 adrp x0, .LANCHOR23 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] and w21, w1, 255 stp x23, x24, [sp, 48] and w26, w3, 255 ldrb w1, [x0, #:lo12:.LANCHOR23] and w22, w2, 255 mov w20, w4 mov x23, x5 mov x24, x6 cmp w1, w26 mov x19, x0 bhi .L2246 adrp x1, .LANCHOR175 adrp x0, .LC0 mov w2, 868 add x1, x1, :lo12:.LANCHOR175 add x0, x0, :lo12:.LC0 bl printf .L2246: ldrb w0, [x19, #:lo12:.LANCHOR23] cmp w0, w26 bls .L2245 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w5, [x0, w26, sxtw] adrp x0, .LANCHOR7 ldr x19, [x0, #:lo12:.LANCHOR7] mov w0, w5 bl nandc_cs cbz w25, .L2248 sxtw x0, w5 add x0, x0, 8 add x0, x19, x0, lsl 8 str w25, [x0, 8] .L2248: ubfiz x0, x5, 8, 8 add x19, x19, x0 mov w0, 128 str w21, [x19, 2056] str w0, [x19, 2056] and w0, w20, 255 str wzr, [x19, 2052] str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w20, 8 str w0, [x19, 2052] lsr w0, w20, 16 add w20, w20, w20, lsl 1 str w0, [x19, 2052] sub w0, w20, #1 add w0, w0, w21 bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x24 mov x3, x23 mov w1, 1 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w5 bl nandc_xfer ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] str w22, [x19, 2056] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 80 b nandc_de_cs.constprop.32 .L2245: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog .section .text.queue_tlc_prog_cmd,"ax",@progbits .align 2 .type queue_tlc_prog_cmd, %function queue_tlc_prog_cmd: stp x29, x30, [sp, -64]! mov w2, 24 add x29, sp, 0 stp x21, x22, [sp, 32] mov x21, x0 ldr x7, [x0] adrp x0, .LANCHOR31 mov w22, 1 stp x19, x20, [sp, 16] ldrb w0, [x0, #:lo12:.LANCHOR31] str x23, [sp, 48] mov w23, w1 sub w2, w2, w0 ldr w1, [x7, 40] lsl w19, w22, w0 adrp x0, .LANCHOR36 lsl w20, w22, w2 sub w19, w19, #1 ldrb w0, [x0, #:lo12:.LANCHOR36] sub w20, w20, #1 and w20, w20, w1 lsr w1, w1, w2 and w19, w19, w1 and w19, w19, 255 cbz w0, .L2254 mov w0, w19 bl zftl_flash_exit_slc_mode ldr x0, [x21] mov w4, w20 mov w3, w19 mov w1, w22 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x21, 8] add w4, w20, w22 mov w3, w19 mov w1, w22 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x21, 16] add w4, w20, 2 mov w3, w19 mov w2, 16 mov w1, w22 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog .L2255: cbz w23, .L2253 ldr x1, [x21] mov w0, 4 strb w0, [x1, 58] mov w0, 1 strb w0, [x1, 59] mov w0, -1 strb w0, [x1] adrp x0, .LANCHOR59 add x0, x0, :lo12:.LANCHOR59 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 b buf_add_tail .L2254: ldr x5, [x7, 8] mov w4, w20 ldr x6, [x7, 24] mov w3, w19 ldrb w0, [x7, 60] mov w1, w22 mov w2, 26 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldp x7, x0, [x21] mov w4, w20 mov w3, w19 mov w2, 26 mov w1, 2 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x0, [x21, 16] mov w4, w20 ldr x7, [x21] mov w3, w19 mov w2, 16 mov w1, 3 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog b .L2255 .L2253: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .section .text.sblk_3d_tlc_dump_prog,"ax",@progbits .align 2 .global sblk_3d_tlc_dump_prog .type sblk_3d_tlc_dump_prog, %function sblk_3d_tlc_dump_prog: stp x29, x30, [sp, -48]! mov w2, 24 add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x0 ldr w1, [x0, 40] adrp x0, .LANCHOR31 stp x21, x22, [sp, 32] mov w22, 1 ldrb w0, [x0, #:lo12:.LANCHOR31] sub w2, w2, w0 lsl w19, w22, w0 adrp x0, .LANCHOR36 lsl w21, w22, w2 sub w19, w19, #1 ldrb w0, [x0, #:lo12:.LANCHOR36] sub w21, w21, #1 and w21, w21, w1 lsr w1, w1, w2 and w19, w19, w1 and w19, w19, 255 cbz w0, .L2259 mov w0, w19 bl zftl_flash_exit_slc_mode ldr x5, [x20, 8] mov w4, w21 ldr x6, [x20, 24] mov w3, w19 mov w1, w22 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x5, [x20, 8] add w4, w21, w22 ldr x6, [x20, 24] mov w3, w19 mov w1, w22 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x5, [x20, 8] add w4, w21, 2 ldr x6, [x20, 24] mov w3, w19 mov w2, 16 mov w1, w22 mov w0, 0 bl flash_start_one_pass_page_prog .L2260: bl nandc_wait_flash_ready ldr w0, [x20, 40] mov w1, 64 ldp x21, x22, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 b flash_wait_device_ready .L2259: ldr x5, [x20, 8] mov w4, w21 ldr x6, [x20, 24] mov w3, w19 mov w1, w22 mov w2, 26 mov w0, 0 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x5, [x20, 8] mov w4, w21 ldr x6, [x20, 24] mov w3, w19 mov w2, 26 mov w1, 2 mov w0, 0 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x5, [x20, 8] mov w4, w21 ldr x6, [x20, 24] mov w3, w19 mov w2, 16 mov w1, 3 mov w0, 0 bl flash_start_tlc_page_prog b .L2260 .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog .section .text.flash_start_3d_mlc_page_prog,"ax",@progbits .align 2 .global flash_start_3d_mlc_page_prog .type flash_start_3d_mlc_page_prog, %function flash_start_3d_mlc_page_prog: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR23 stp x19, x20, [sp, 16] stp x23, x24, [sp, 48] and w24, w1, 255 ldrb w1, [x0, #:lo12:.LANCHOR23] mov w20, w2 mov x22, x3 mov x23, x4 cmp w1, w24 mov x19, x0 bhi .L2263 adrp x1, .LANCHOR176 adrp x0, .LC0 mov w2, 903 add x1, x1, :lo12:.LANCHOR176 add x0, x0, :lo12:.LC0 bl printf .L2263: ldrb w0, [x19, #:lo12:.LANCHOR23] cmp w0, w24 bls .L2262 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w5, [x0, w24, sxtw] adrp x0, .LANCHOR7 ldr x19, [x0, #:lo12:.LANCHOR7] mov w0, w5 bl nandc_cs ubfiz x0, x5, 8, 8 add x19, x19, x0 mov w0, 128 str w0, [x19, 2056] and w0, w20, 255 str wzr, [x19, 2052] str wzr, [x19, 2052] str w0, [x19, 2052] lsr w0, w20, 8 str w0, [x19, 2052] lsr w0, w20, 16 str w0, [x19, 2052] mov w0, w20 bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x23 mov x3, x22 mov w1, 1 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w5 bl nandc_xfer str w21, [x19, 2056] .L2262: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog .section .text.sblk_mlc_dump_prog,"ax",@progbits .align 2 .global sblk_mlc_dump_prog .type sblk_mlc_dump_prog, %function sblk_mlc_dump_prog: stp x29, x30, [sp, -48]! mov w2, 24 add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x0 ldr w1, [x0, 40] adrp x0, .LANCHOR31 str x21, [sp, 32] ldrb w19, [x0, #:lo12:.LANCHOR31] mov w0, 1 sub w2, w2, w19 lsl w19, w0, w19 sub w19, w19, #1 lsl w21, w0, w2 sub w21, w21, #1 and w21, w21, w1 lsr w1, w1, w2 and w19, w19, w1 and w19, w19, 255 mov w0, w19 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2267 ldr w2, [x20, 40] adrp x0, .LC135 mov w1, w21 add x0, x0, :lo12:.LC135 add w3, w2, 1 bl printf .L2267: ldr x3, [x20, 8] mov w2, w21 ldr x4, [x20, 24] mov w1, w19 mov w0, 16 bl flash_start_3d_mlc_page_prog bl nandc_wait_flash_ready ldr x3, [x20, 8] add w2, w21, 1 ldr x4, [x20, 24] mov w1, w19 mov w0, 16 bl flash_start_3d_mlc_page_prog bl nandc_wait_flash_ready ldr w0, [x20, 40] mov w1, 64 bl flash_wait_device_ready mov w2, w0 bl nandc_de_cs.constprop.32 ldr x21, [sp, 32] mov w0, w2 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog .section .text.flash_start_page_prog,"ax",@progbits .align 2 .global flash_start_page_prog .type flash_start_page_prog, %function flash_start_page_prog: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 adrp x0, .LANCHOR31 stp x19, x20, [sp, 16] stp x25, x26, [sp, 64] mov w19, 24 ldrb w0, [x0, #:lo12:.LANCHOR31] mov w20, 1 str x27, [sp, 80] adrp x27, .LANCHOR23 sub w25, w19, w0 stp x23, x24, [sp, 48] lsl w20, w20, w0 sub w20, w20, #1 lsr w0, w1, w25 and w20, w20, w0 ldrb w0, [x27, #:lo12:.LANCHOR23] and w20, w20, 255 mov w24, w1 mov x22, x2 mov x23, x3 cmp w0, w20 bhi .L2273 adrp x1, .LANCHOR177 adrp x0, .LC0 mov w2, 956 add x1, x1, :lo12:.LANCHOR177 add x0, x0, :lo12:.LC0 bl printf .L2273: ldrb w0, [x27, #:lo12:.LANCHOR23] cmp w0, w20 bls .L2272 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 mov w19, 1 lsl w19, w19, w25 sub w19, w19, #1 ldrb w26, [x0, w20, sxtw] adrp x0, .LANCHOR7 and w19, w19, w24 ldr x25, [x0, #:lo12:.LANCHOR7] bl nandc_rdy_status cbnz w0, .L2275 ldrb w0, [x27, #:lo12:.LANCHOR23] cmp w0, 1 bne .L2276 bl nandc_wait_flash_ready .L2275: mov w0, w26 bl hynix_reconfig_rr_para mov w0, w26 bl nandc_cs tst x24, 50331648 bne .L2277 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L2278 mov w0, w26 bl zftl_flash_enter_slc_mode .L2278: ubfiz x20, x26, 8, 8 mov w0, 128 add x20, x25, x20 str w0, [x20, 2056] and w0, w19, 255 str wzr, [x20, 2052] str wzr, [x20, 2052] str w0, [x20, 2052] lsr w0, w19, 8 str w0, [x20, 2052] lsr w0, w19, 16 str w0, [x20, 2052] adrp x0, .LANCHOR30 ldrb w0, [x0, #:lo12:.LANCHOR30] cbz w0, .L2279 lsr w0, w19, 24 str w0, [x20, 2052] .L2279: mov w0, w19 bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x23 mov x3, x22 mov w1, 1 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w26 bl nandc_xfer ldr x27, [sp, 80] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] str w21, [x20, 2056] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 96 b nandc_de_cs.constprop.32 .L2276: mov w2, 64 mov w1, w19 mov w0, w20 bl flash_wait_device_ready_raw b .L2275 .L2277: mov w0, w26 bl zftl_flash_exit_slc_mode b .L2278 .L2272: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret .size flash_start_page_prog, .-flash_start_page_prog .section .text.queue_prog_cmd,"ax",@progbits .align 2 .type queue_prog_cmd, %function queue_prog_cmd: stp x29, x30, [sp, -32]! add x29, sp, 0 ldr w1, [x0, 40] ldr x3, [x0, 24] ldr x2, [x0, 8] str x19, [sp, 16] mov x19, x0 mov w0, 16 bl flash_start_page_prog adrp x0, .LANCHOR59 ldr w3, [x19, 40] ldrb w1, [x0, #:lo12:.LANCHOR59] cmp w1, 255 beq .L2288 adrp x2, .LANCHOR31 mov w5, 24 adrp x6, .LANCHOR55 add x6, x6, :lo12:.LANCHOR55 ldrb w4, [x2, #:lo12:.LANCHOR31] mov w2, 1 mov x8, x6 sub w5, w5, w4 lsl w2, w2, w4 sub w2, w2, #1 and w2, w2, 65535 asr w3, w3, w5 and w3, w3, w2 .L2290: add x7, x6, x1, lsl 6 ldr w4, [x7, 40] lsr w4, w4, w5 and w4, w2, w4 cmp w3, w4 bne .L2289 ldrb w4, [x7, 58] cmp w4, 7 bne .L2289 mov w1, 3 strb w1, [x7, 58] .L2288: mov w1, 3 strb w1, [x19, 58] mov w1, 1 strb w1, [x19, 59] mov w1, -1 strb w1, [x19] mov x1, x19 add x0, x0, :lo12:.LANCHOR59 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 b buf_add_tail .L2289: lsl x1, x1, 6 ldrb w1, [x8, x1] cmp w1, 255 bne .L2290 b .L2288 .size queue_prog_cmd, .-queue_prog_cmd .section .text.flash_complete_plane_page_read,"ax",@progbits .align 2 .global flash_complete_plane_page_read .type flash_complete_plane_page_read, %function flash_complete_plane_page_read: stp x29, x30, [sp, -64]! mov w4, 24 add x29, sp, 0 stp x23, x24, [sp, 48] mov w24, w0 adrp x0, .LANCHOR31 stp x21, x22, [sp, 32] stp x19, x20, [sp, 16] mov w19, 1 ldrb w0, [x0, #:lo12:.LANCHOR31] mov x20, x1 mov x21, x2 sub w22, w4, w0 lsl w19, w19, w0 sub w19, w19, #1 lsr w0, w24, w22 and w19, w19, w0 adrp x0, .LANCHOR23 and w19, w19, 255 mov x23, x0 ldrb w1, [x0, #:lo12:.LANCHOR23] cmp w1, w19 bhi .L2297 adrp x1, .LANCHOR178 adrp x0, .LC0 mov w2, 1070 add x1, x1, :lo12:.LANCHOR178 add x0, x0, :lo12:.LC0 bl printf .L2297: ldrb w0, [x23, #:lo12:.LANCHOR23] cmp w0, w19 bls .L2308 adrp x2, .LANCHOR29 add x2, x2, :lo12:.LANCHOR29 adrp x0, .LANCHOR7 mov w4, 1 lsl w4, w4, w22 sub w4, w4, #1 ldrb w8, [x2, w19, sxtw] and w4, w4, w24 ldr x7, [x0, #:lo12:.LANCHOR7] ubfx x24, x24, 24, 2 mov w0, w8 bl nandc_cs cbnz w24, .L2299 mov w0, w4 bl slc_phy_page_address_calc mov w4, w0 .L2299: adrp x0, .LANCHOR25+16 and x1, x8, 255 and w6, w4, 255 lsr w5, w4, 8 ldrb w0, [x0, #:lo12:.LANCHOR25+16] lsr w3, w4, 16 adrp x2, .LANCHOR30 cmp w0, 1 adrp x0, .LANCHOR21 bne .L2300 add x1, x7, x1, lsl 8 mov w7, 6 .L2326: str w7, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] str w6, [x1, 2052] str w5, [x1, 2052] str w3, [x1, 2052] ldrb w2, [x2, #:lo12:.LANCHOR30] cbz w2, .L2322 lsr w2, w4, 24 str w2, [x1, 2052] .L2322: ldr x0, [x0, #:lo12:.LANCHOR21] mov w2, 224 str w2, [x1, 2056] ldrb w0, [x0, 12] cmp w0, 3 bne .L2306 cbz w24, .L2306 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L2306 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L2306 add w4, w4, w4, lsl 1 sub w0, w24, #1 add w0, w4, w0 .L2323: bl nandc_set_seed adrp x0, .LANCHOR32+9 mov x4, x21 mov x3, x20 mov w1, 0 ldrb w2, [x0, #:lo12:.LANCHOR32+9] mov w0, w8 bl nandc_xfer mov w2, w0 bl nandc_de_cs.constprop.32 mov w0, w2 .L2296: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .L2300: ldr x10, [x0, #:lo12:.LANCHOR21] add x1, x7, x1, lsl 8 ldrb w10, [x10, 12] cmp w10, 3 bne .L2303 mov w7, 5 b .L2326 .L2303: str wzr, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] str w6, [x1, 2052] ldrb w2, [x2, #:lo12:.LANCHOR30] str w5, [x1, 2052] str w3, [x1, 2052] cbz w2, .L2305 lsr w2, w4, 24 str w2, [x1, 2052] .L2305: mov w2, 5 str w2, [x1, 2056] str wzr, [x1, 2052] str wzr, [x1, 2052] b .L2322 .L2306: mov w0, w4 b .L2323 .L2308: mov w0, -1 b .L2296 .size flash_complete_plane_page_read, .-flash_complete_plane_page_read .section .text.flash_complete_page_read,"ax",@progbits .align 2 .global flash_complete_page_read .type flash_complete_page_read, %function flash_complete_page_read: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] mov w21, w0 adrp x0, .LANCHOR31 stp x19, x20, [sp, 16] mov x22, x1 mov w1, 24 ldrb w20, [x0, #:lo12:.LANCHOR31] mov w0, 1 stp x23, x24, [sp, 48] mov x23, x2 sub w1, w1, w20 stp x25, x26, [sp, 64] lsl w20, w0, w20 sub w20, w20, #1 lsl w19, w0, w1 adrp x0, .LANCHOR23 lsr w1, w21, w1 stp x27, x28, [sp, 80] and w20, w20, w1 ldrb w0, [x0, #:lo12:.LANCHOR23] sub w19, w19, #1 and w20, w20, 255 and w19, w19, w21 ubfx x24, x21, 24, 2 cmp w0, w20 bhi .L2328 adrp x1, .LANCHOR179 adrp x0, .LC0 mov w2, 1232 add x1, x1, :lo12:.LANCHOR179 add x0, x0, :lo12:.LC0 bl printf .L2328: adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w25, [x0, w20, sxtw] adrp x0, .LANCHOR7 ldr x4, [x0, #:lo12:.LANCHOR7] mov w0, w25 bl nandc_cs cbnz w24, .L2329 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 .L2329: adrp x20, .LANCHOR32 add x0, x20, :lo12:.LANCHOR32 ldrb w0, [x0, 12] cmp w0, 3 bne .L2330 ubfiz x0, x25, 8, 8 mov w1, 5 add x0, x4, x0 str w1, [x0, 2056] and w1, w19, 255 str wzr, [x0, 2052] str wzr, [x0, 2052] str w1, [x0, 2052] lsr w1, w19, 8 str w1, [x0, 2052] lsr w1, w19, 16 str w1, [x0, 2052] mov w1, 224 str w1, [x0, 2056] .L2330: adrp x0, .LANCHOR21 ldr x0, [x0, #:lo12:.LANCHOR21] ldrb w0, [x0, 12] cmp w0, 3 bne .L2331 cbz w24, .L2331 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L2331 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbnz w0, .L2331 sub w0, w24, #1 add w1, w19, w19, lsl 1 add w0, w0, w1 .L2358: add x28, x20, :lo12:.LANCHOR32 bl nandc_set_seed mov x4, x23 mov x3, x22 mov w1, 0 mov w0, w25 ldrb w2, [x28, 9] bl nandc_xfer cmn w0, #1 bne .L2333 adrp x26, .LANCHOR51 ldrb w27, [x26, #:lo12:.LANCHOR51] cbz w27, .L2334 ldrb w4, [x28, 9] mov x3, x23 strb wzr, [x26, #:lo12:.LANCHOR51] mov x2, x22 orr w1, w19, w24, lsl 24 mov w0, w25 bl flash_read_page strb w27, [x26, #:lo12:.LANCHOR51] cbnz w24, .L2335 .L2340: adrp x1, .LANCHOR0 ldrb w1, [x1, #:lo12:.LANCHOR0] cbz w1, .L2335 adrp x1, .LANCHOR49 ldrb w1, [x1, #:lo12:.LANCHOR49] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 blt .L2335 add x20, x20, :lo12:.LANCHOR32 ldrb w1, [x20, 19] sub w1, w1, #4 and w1, w1, 255 cmp w1, 4 mov w1, 256 csel w0, w0, w1, hi .L2327: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .L2331: mov w0, w19 b .L2358 .L2335: cmn w0, #1 bne .L2327 .L2341: adrp x0, .LANCHOR171 ldr x5, [x0, #:lo12:.LANCHOR171] cbnz x5, .L2337 .L2339: adrp x0, .LANCHOR51 mov w3, -1 mov w2, w21 mov w1, 0 ldrb w4, [x0, #:lo12:.LANCHOR51] adrp x0, .LC136 add x0, x0, :lo12:.LC136 bl printf adrp x0, .LANCHOR26 ldrb w0, [x0, #:lo12:.LANCHOR26] cbnz w0, .L2338 mov w0, -1 b .L2327 .L2337: add x0, x20, :lo12:.LANCHOR32 mov x3, x23 mov x2, x22 orr w1, w19, w24, lsl 24 ldrb w4, [x0, 9] mov w0, w25 blr x5 cmn w0, #1 beq .L2339 b .L2327 .L2338: add x20, x20, :lo12:.LANCHOR32 orr w1, w19, w24, lsl 24 mov x3, x23 mov x2, x22 mov w0, w25 ldrb w4, [x20, 9] ldp x21, x22, [sp, 32] ldp x19, x20, [sp, 16] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 b flash_ddr_tuning_read .L2334: cbz w24, .L2340 b .L2341 .L2333: cbnz w24, .L2327 b .L2340 .size flash_complete_page_read, .-flash_complete_page_read .section .text.queue_wait_first_req_completed,"ax",@progbits .align 2 .type queue_wait_first_req_completed, %function queue_wait_first_req_completed: stp x29, x30, [sp, -96]! adrp x0, .LANCHOR59 add x29, sp, 0 stp x19, x20, [sp, 16] ldrb w0, [x0, #:lo12:.LANCHOR59] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] cmp w0, 255 stp x25, x26, [sp, 64] str x27, [sp, 80] bne .L2360 .L2393: mov w21, 0 b .L2359 .L2360: adrp x19, .LANCHOR55 sxtw x20, w0 add x1, x19, :lo12:.LANCHOR55 add x1, x1, x20, lsl 6 ldrb w2, [x1, 58] ldr w21, [x1, 40] sub w3, w2, #1 cmp w3, 10 bhi .L2393 adrp x1, .L2363 add x1, x1, :lo12:.L2363 ldrh w1, [x1,w3,uxtw #1] adr x3, .Lrtx2363 add x1, x3, w1, sxth #2 br x1 .Lrtx2363: .section .rodata.queue_wait_first_req_completed,"a",@progbits .align 0 .align 2 .L2363: .2byte (.L2362 - .Lrtx2363) / 4 .2byte (.L2364 - .Lrtx2363) / 4 .2byte (.L2365 - .Lrtx2363) / 4 .2byte (.L2365 - .Lrtx2363) / 4 .2byte (.L2365 - .Lrtx2363) / 4 .2byte (.L2365 - .Lrtx2363) / 4 .2byte (.L2366 - .Lrtx2363) / 4 .2byte (.L2367 - .Lrtx2363) / 4 .2byte (.L2368 - .Lrtx2363) / 4 .2byte (.L2365 - .Lrtx2363) / 4 .2byte (.L2368 - .Lrtx2363) / 4 .section .text.queue_wait_first_req_completed .L2362: bl nandc_wait_flash_ready add x0, x19, :lo12:.LANCHOR55 add x0, x0, x20, lsl 6 ldp x1, x2, [x0, 8] cbz x2, .L2369 ldrb w3, [x0, 56] adrp x0, .LANCHOR131 ldrb w0, [x0, #:lo12:.LANCHOR131] cmp w3, w0 csel x1, x1, x2, ne .L2369: add x19, x19, :lo12:.LANCHOR55 mov w0, w21 add x20, x19, x20, lsl 6 ldr x2, [x20, 24] bl flash_complete_page_read str w0, [x20, 52] mov w0, 13 strb w0, [x20, 58] ldrb w0, [x20, 2] orr w0, w0, 8 strb w0, [x20, 2] b .L2393 .L2364: bl nandc_wait_flash_ready add x0, x19, :lo12:.LANCHOR55 lsl x2, x20, 6 add x1, x0, x2 ldrb w21, [x0, x2] add x0, x0, x21, lsl 6 ldr x24, [x0, 8] ldp x26, x0, [x1, 8] cbz x0, .L2370 ldrb w2, [x1, 56] adrp x1, .LANCHOR131 ldrb w1, [x1, #:lo12:.LANCHOR131] cmp w2, w1 csel x26, x26, x0, ne .L2370: add x0, x19, :lo12:.LANCHOR55 add x0, x0, x21, lsl 6 ldr x1, [x0, 16] cbz x1, .L2371 ldrb w2, [x0, 56] adrp x0, .LANCHOR131 ldrb w0, [x0, #:lo12:.LANCHOR131] cmp w2, w0 csel x24, x24, x1, ne .L2371: add x22, x19, :lo12:.LANCHOR55 mov x1, x26 add x27, x22, x20, lsl 6 add x22, x22, x21, lsl 6 ldr x2, [x27, 24] ldr w0, [x27, 40] bl flash_complete_plane_page_read mov w23, w0 ldr x2, [x22, 24] mov x1, x24 ldr w0, [x22, 40] bl flash_complete_plane_page_read mov w25, w0 cmn w23, #1 beq .L2372 ldr w0, [x27, 36] cmn w0, #1 beq .L2373 ldr x1, [x27, 24] ldr w1, [x1, 4] cmp w0, w1 beq .L2373 .L2372: adrp x0, .LANCHOR31 add x22, x19, :lo12:.LANCHOR55 add x22, x22, x20, lsl 6 mov w5, 1 ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w2 ldr x3, [x22, 24] lsl w5, w5, w2 adrp x2, .LANCHOR131 sub w5, w5, #1 ldr w1, [x22, 40] ldrb w4, [x2, #:lo12:.LANCHOR131] mov x2, x26 lsl w6, w5, w0 lsr w0, w1, w0 bic w1, w1, w6 and w0, w0, w5 bl flash_read_page_en mov w23, w0 ldr w2, [x22, 36] cmn w2, #1 beq .L2374 ldr x0, [x22, 24] ldr w4, [x0, 4] cmp w2, w4 beq .L2374 adrp x1, .LANCHOR19 ldr w1, [x1, #:lo12:.LANCHOR19] tbz x1, 6, .L2374 ldr w3, [x0] adrp x0, .LC137 ldr w1, [x22, 40] add x0, x0, :lo12:.LC137 bl printf .L2374: add x0, x19, :lo12:.LANCHOR55 add x0, x0, x20, lsl 6 ldr w1, [x0, 36] cmn w1, #1 beq .L2373 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 beq .L2373 adrp x1, .LANCHOR180 adrp x0, .LC0 mov w2, 431 add x1, x1, :lo12:.LANCHOR180 add x0, x0, :lo12:.LC0 bl printf .L2373: add x0, x19, :lo12:.LANCHOR55 mov w1, 13 add x20, x0, x20, lsl 6 cmn w25, #1 strb w1, [x20, 58] ldrb w1, [x20, 2] str w23, [x20, 52] orr w1, w1, 8 strb w1, [x20, 2] beq .L2375 add x0, x0, x21, lsl 6 ldr w1, [x0, 36] cmn w1, #1 beq .L2377 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 beq .L2377 .L2375: adrp x0, .LANCHOR31 add x20, x19, :lo12:.LANCHOR55 add x20, x20, x21, lsl 6 mov w5, 1 ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w2 ldr x3, [x20, 24] lsl w5, w5, w2 adrp x2, .LANCHOR131 sub w5, w5, #1 ldr w1, [x20, 40] ldrb w4, [x2, #:lo12:.LANCHOR131] mov x2, x24 lsl w6, w5, w0 lsr w0, w1, w0 bic w1, w1, w6 and w0, w0, w5 bl flash_read_page_en ldr w2, [x20, 36] cmn w2, #1 beq .L2379 ldr x0, [x20, 24] ldr w4, [x0, 4] cmp w2, w4 beq .L2379 adrp x1, .LANCHOR19 ldr w1, [x1, #:lo12:.LANCHOR19] tbz x1, 6, .L2379 ldr w3, [x0] adrp x0, .LC137 ldr w1, [x20, 40] add x0, x0, :lo12:.LC137 bl printf .L2379: add x0, x19, :lo12:.LANCHOR55 add x0, x0, x21, lsl 6 ldr w1, [x0, 36] cmn w1, #1 beq .L2377 ldr x0, [x0, 24] ldr w0, [x0, 4] cmp w1, w0 beq .L2377 adrp x1, .LANCHOR180 adrp x0, .LC0 mov w2, 450 add x1, x1, :lo12:.LANCHOR180 add x0, x0, :lo12:.LC0 bl printf .L2377: add x19, x19, :lo12:.LANCHOR55 mov w0, 13 add x21, x19, x21, lsl 6 strb w0, [x21, 58] ldrb w0, [x21, 2] str w23, [x21, 52] orr w0, w0, 8 strb w0, [x21, 2] b .L2393 .L2365: mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 tbz x21, 6, .L2393 mov w0, 5 tst w21, w0 beq .L2381 add x19, x19, :lo12:.LANCHOR55 mov w0, 12 add x20, x19, x20, lsl 6 mov w4, 12 mov w2, w21 ldrb w1, [x20, 1] ldr w3, [x20, 40] strb w0, [x20, 58] adrp x0, .LC138 add x0, x0, :lo12:.LC138 bl printf .L2451: mov w0, -1 str w0, [x20, 52] b .L2359 .L2381: add x21, x19, :lo12:.LANCHOR55 mov w0, 13 add x21, x21, x20, lsl 6 strb w0, [x21, 58] adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w1, [x0, 156] mov w0, 20041 str wzr, [x21, 52] movk w0, 0x444b, lsl 16 cmp w1, w0 bne .L2393 ldrh w0, [x21, 50] cbnz w0, .L2393 adrp x0, .LANCHOR31 mov w5, 1 adrp x22, .LANCHOR172 ldr w1, [x21, 40] ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 ldr x3, [x22, #:lo12:.LANCHOR172] sub w0, w0, w2 lsl w5, w5, w2 adrp x2, .LANCHOR131 sub w5, w5, #1 ldrb w4, [x2, #:lo12:.LANCHOR131] adrp x2, .LANCHOR173 lsl w6, w5, w0 ldr x2, [x2, #:lo12:.LANCHOR173] lsr w0, w1, w0 bic w1, w1, w6 and w0, w0, w5 bl flash_read_page_en cmn w0, #1 beq .L2382 ldr x1, [x22, #:lo12:.LANCHOR172] ldr x2, [x21, 24] ldr w1, [x1] ldr w2, [x2] cmp w2, w1 beq .L2393 .L2382: add x19, x19, :lo12:.LANCHOR55 adrp x1, .LANCHOR51 add x20, x19, x20, lsl 6 mov w3, w0 ldrb w4, [x1, #:lo12:.LANCHOR51] adrp x0, .LC139 add x0, x0, :lo12:.LC139 ldrb w1, [x20, 1] ldr w2, [x20, 40] bl printf mov w0, -1 str w0, [x20, 52] b .L2393 .L2368: cmp w2, 11 mov w1, 3 mov w5, 10 csel w5, w5, w1, eq adrp x1, .LANCHOR31 mov w4, 24 mov w2, 1 add x22, x19, :lo12:.LANCHOR55 ldrb w3, [x1, #:lo12:.LANCHOR31] ubfiz x0, x0, 6, 8 add x0, x22, x0 mov x24, x1 sub w4, w4, w3 lsl w2, w2, w3 sub w2, w2, #1 lsr w3, w21, w4 and w3, w3, w2 and w3, w3, 65535 .L2384: ldrb w1, [x0] cmp w1, 255 bne .L2391 mov w21, -1 b .L2359 .L2391: sxtw x23, w1 ubfiz x0, x1, 6, 8 add x1, x22, x23, lsl 6 add x0, x22, x0 ldrb w6, [x1, 58] cmp w6, w5 bne .L2384 ldr w1, [x1, 40] lsr w1, w1, w4 and w1, w1, w2 cmp w3, w1 bne .L2384 mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 tbnz x21, 6, .L2386 .L2450: mov w21, 0 b .L2387 .L2386: tst x21, 15 beq .L2388 add x22, x22, x20, lsl 6 mov w2, w0 mov w4, 12 adrp x0, .LC140 add x0, x0, :lo12:.LC140 ldrb w1, [x22, 1] ldr w3, [x22, 40] bl printf mov w0, 12 strb w0, [x22, 58] mov w0, -1 str w0, [x22, 52] .L2387: add x1, x19, :lo12:.LANCHOR55 add x20, x1, x20, lsl 6 add x1, x1, x23, lsl 6 ldrb w0, [x20, 58] strb w0, [x1, 58] ldr w0, [x20, 52] str w0, [x1, 52] .L2359: mov w0, w21 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .L2388: add x21, x22, x20, lsl 6 mov w0, 13 strb w0, [x21, 58] adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w1, [x0, 156] mov w0, 20041 str wzr, [x21, 52] movk w0, 0x444b, lsl 16 cmp w1, w0 bne .L2450 ldrh w0, [x21, 50] cbnz w0, .L2450 ldrb w2, [x24, #:lo12:.LANCHOR31] mov w5, 1 mov w0, 24 adrp x22, .LANCHOR172 sub w0, w0, w2 ldr w1, [x21, 40] lsl w5, w5, w2 adrp x2, .LANCHOR131 sub w5, w5, #1 ldr x3, [x22, #:lo12:.LANCHOR172] ldrb w4, [x2, #:lo12:.LANCHOR131] adrp x2, .LANCHOR173 lsl w6, w5, w0 ldr x2, [x2, #:lo12:.LANCHOR173] lsr w0, w1, w0 bic w1, w1, w6 and w0, w0, w5 bl flash_read_page_en cmn w0, #1 beq .L2390 ldr x1, [x22, #:lo12:.LANCHOR172] ldr x2, [x21, 24] ldr w1, [x1] ldr w2, [x2] cmp w2, w1 beq .L2450 .L2390: add x21, x19, :lo12:.LANCHOR55 adrp x1, .LANCHOR51 add x21, x21, x20, lsl 6 mov w3, w0 ldrb w4, [x1, #:lo12:.LANCHOR51] adrp x0, .LC141 add x0, x0, :lo12:.LC141 ldrb w1, [x21, 1] ldr w2, [x21, 40] bl printf mov w0, -1 str w0, [x21, 52] b .L2450 .L2366: mov w0, w21 mov w1, 32 bl flash_wait_device_ready mov w21, w0 tbz x21, 5, .L2393 add x19, x19, :lo12:.LANCHOR55 tst x21, 15 add x20, x19, x20, lsl 6 beq .L2392 mov w0, 12 strb w0, [x20, 58] b .L2451 .L2392: mov w0, 13 str wzr, [x20, 52] strb w0, [x20, 58] b .L2393 .L2367: mov w1, 64 mov w0, w21 bl flash_wait_device_ready tbz x0, 6, .L2393 add x19, x19, :lo12:.LANCHOR55 add x19, x19, x20, lsl 6 str w0, [x19, 52] mov w0, 7 strb w0, [x19, 58] b .L2393 .size queue_wait_first_req_completed, .-queue_wait_first_req_completed .section .text.sblk_prog_page,"ax",@progbits .align 2 .global sblk_prog_page .type sblk_prog_page, %function sblk_prog_page: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 ldrh w0, [x0, 50] and w20, w1, 255 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cbz w0, .L2453 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L2453 ldr w1, [x19, 40] adrp x0, .LC142 mov w2, w20 add x0, x0, :lo12:.LC142 bl printf .L2453: adrp x23, .LANCHOR44 adrp x25, .LANCHOR31 add x23, x23, :lo12:.LANCHOR44 add x26, x25, :lo12:.LANCHOR31 mov w21, 0 .L2454: cbnz w20, .L2465 .L2481: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .L2465: ldrb w24, [x19] ldr w22, [x19, 40] .L2455: mov w1, 1 mov w0, w22 bl queue_lun_state cbnz w0, .L2456 cmp w20, 1 beq .L2457 ldrb w0, [x23] cbz w0, .L2457 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbz w0, .L2458 .L2457: mov x0, x19 bl queue_prog_cmd .L2459: subs w20, w20, #1 beq .L2481 ubfiz x24, x24, 6, 8 adrp x19, .LANCHOR55 add x19, x19, :lo12:.LANCHOR55 add x19, x19, x24 b .L2454 .L2456: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2455 .L2458: ldrb w1, [x25, #:lo12:.LANCHOR31] mov w27, 24 mov w0, 1 sub w27, w27, w1 lsl w0, w0, w1 sub w0, w0, #1 lsr w27, w22, w27 and w27, w27, w0 ldrb w0, [x19] and w27, w27, 65535 cmp w0, 255 bne .L2460 adrp x1, .LANCHOR181 adrp x0, .LC0 mov w2, 697 add x1, x1, :lo12:.LANCHOR181 add x0, x0, :lo12:.LC0 bl printf .L2460: ldrb w0, [x19] adrp x1, .LANCHOR55 add x1, x1, :lo12:.LANCHOR55 mov w3, 24 mov w28, 1 add x0, x1, x0, lsl 6 ldr w4, [x0, 40] ldrb w0, [x26] sub w3, w3, w0 lsl w0, w28, w0 sub w0, w0, #1 lsr w1, w4, w3 and w0, w0, w1 cmp w27, w0, uxth bne .L2461 adrp x0, .LANCHOR74 ldrh w2, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR75 ldrb w1, [x0, #:lo12:.LANCHOR75] sub w0, w3, w2 lsr w5, w22, w2 sub w3, w1, #1 lsl w0, w28, w0 sub w0, w0, #1 lsl w1, w28, w2 and w0, w0, w3 sub w1, w1, #1 and w0, w0, 65535 and w1, w1, 65535 and w5, w0, w5 lsr w2, w4, w2 and w0, w0, w2 and w22, w1, w22 cmp w5, w0 and w1, w1, w4 ccmp w22, w1, 0, ne bne .L2461 cmp w21, w3 beq .L2461 ldr w1, [x19, 40] mov w0, 17 ldr x2, [x19, 8] add w21, w21, w28 ldr x3, [x19, 24] bl flash_start_page_prog strb w28, [x19, 59] mov w0, 9 strb w0, [x19, 58] mov w0, -1 strb w0, [x19] mov x1, x19 adrp x0, .LANCHOR59 add x0, x0, :lo12:.LANCHOR59 bl buf_add_tail b .L2459 .L2461: mov x0, x19 mov w21, 0 bl queue_prog_cmd b .L2459 .size sblk_prog_page, .-sblk_prog_page .section .text.sblk_wait_write_queue_completed,"ax",@progbits .align 2 .global sblk_wait_write_queue_completed .type sblk_wait_write_queue_completed, %function sblk_wait_write_queue_completed: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] adrp x19, .LANCHOR59 add x19, x19, :lo12:.LANCHOR59 .L2484: ldrb w0, [x19] cmp w0, 255 bne .L2485 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .L2485: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2484 .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed .section .text.ftl_flush,"ax",@progbits .align 2 .global ftl_flush .type ftl_flush, %function ftl_flush: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR129 add x29, sp, 0 ldrb w1, [x0, #:lo12:.LANCHOR129] stp x19, x20, [sp, 16] mov x19, x0 adrp x20, .LANCHOR182 cbz w1, .L2488 ldrb w2, [x20, #:lo12:.LANCHOR182] adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 add x0, x0, x2, lsl 6 bl sblk_prog_page .L2488: mov w0, -1 strb wzr, [x19, #:lo12:.LANCHOR129] strb w0, [x20, #:lo12:.LANCHOR182] bl sblk_wait_write_queue_completed bl ftl_write_completed ldp x19, x20, [sp, 16] mov w0, -1 ldp x29, x30, [sp], 32 b ftl_vpn_decrement .size ftl_flush, .-ftl_flush .section .text.ftl_read_page,"ax",@progbits .align 2 .global ftl_read_page .type ftl_read_page, %function ftl_read_page: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 255 stp x21, x22, [sp, 32] mov w20, w1 mov x21, x2 mov x22, x3 str x23, [sp, 48] mov w23, w4 bl sblk_wait_write_queue_completed mov w4, w23 mov x3, x22 mov x2, x21 mov w1, w20 mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 b flash_read_page_en .size ftl_read_page, .-ftl_read_page .section .text.ftl_read_ppa_page,"ax",@progbits .align 2 .global ftl_read_ppa_page .type ftl_read_ppa_page, %function ftl_read_ppa_page: stp x29, x30, [sp, -64]! mov w5, 1 add x29, sp, 0 stp x19, x20, [sp, 16] mov w20, w0 adrp x0, .LANCHOR31 mov w19, 24 stp x21, x22, [sp, 32] mov x21, x1 ldrb w0, [x0, #:lo12:.LANCHOR31] mov x22, x2 str x23, [sp, 48] mov w23, w3 sub w19, w19, w0 lsl w5, w5, w0 sub w5, w5, #1 lsr w19, w20, w19 and w19, w19, w5 and w19, w19, 255 bl sblk_wait_write_queue_completed mov w4, w23 mov x3, x22 mov x2, x21 mov w1, w20 mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 b flash_read_page_en .size ftl_read_ppa_page, .-ftl_read_ppa_page .section .text.sblk_read_page,"ax",@progbits .align 2 .global sblk_read_page .type sblk_read_page, %function sblk_read_page: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x21, x22, [sp, 32] and w22, w1, 255 stp x27, x28, [sp, 80] mov w21, w22 stp x19, x20, [sp, 16] adrp x27, .LANCHOR31 stp x23, x24, [sp, 48] mov x19, x0 stp x25, x26, [sp, 64] mov x23, x0 adrp x25, .LANCHOR183 add x28, x27, :lo12:.LANCHOR31 add x25, x25, :lo12:.LANCHOR183 .L2498: cbnz w21, .L2508 .L2521: adrp x19, .LANCHOR55 add x19, x19, :lo12:.LANCHOR55 .L2509: cbnz w22, .L2511 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L2508: ldrb w24, [x19] ldr w26, [x19, 40] .L2499: mov w1, 0 mov w0, w26 bl queue_lun_state cbnz w0, .L2500 cmp w21, 1 beq .L2505 ldrb w0, [x25] cbnz w0, .L2502 .L2505: mov x0, x19 bl queue_read_cmd b .L2503 .L2500: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2499 .L2502: ldrb w1, [x27, #:lo12:.LANCHOR31] mov w20, 24 mov w0, 1 sub w20, w20, w1 lsl w0, w0, w1 sub w0, w0, #1 lsr w20, w26, w20 and w20, w20, w0 ldrb w0, [x19] and w20, w20, 65535 cmp w0, 255 bne .L2504 adrp x1, .LANCHOR184 adrp x0, .LC0 mov w2, 782 add x1, x1, :lo12:.LANCHOR184 add x0, x0, :lo12:.LC0 bl printf .L2504: ldrb w4, [x19] adrp x2, .LANCHOR55 add x2, x2, :lo12:.LANCHOR55 ldrb w7, [x28] mov w0, 24 mov w3, 1 sbfiz x5, x4, 6, 32 sub w0, w0, w7 add x6, x2, x5 lsl w3, w3, w7 sub w3, w3, #1 ldr w1, [x6, 40] lsr w0, w1, w0 and w0, w0, w3 cmp w20, w0, uxth bne .L2505 adrp x0, .LANCHOR111 ldrh w0, [x0, #:lo12:.LANCHOR111] add w26, w0, w26 cmp w1, w26 bne .L2505 ldr w0, [x19, 40] mov w26, -1 ldrb w24, [x2, x5] adrp x20, .LANCHOR59 stp x6, x5, [x29, 96] add x20, x20, :lo12:.LANCHOR59 str x2, [x29, 112] sub w21, w21, #1 str w4, [x29, 120] bl flash_start_plane_read mov w3, 2 strb wzr, [x19, 59] strb w3, [x19, 58] mov x1, x19 strb w26, [x19] mov x0, x20 str w3, [x29, 124] bl buf_add_tail ldp x6, x5, [x29, 96] strb wzr, [x6, 59] ldr x2, [x29, 112] mov x0, x20 ldp w4, w3, [x29, 120] strb w3, [x6, 58] strb w26, [x2, x5] ubfiz x1, x4, 6, 8 add x1, x2, x1 bl buf_add_tail .L2503: subs w21, w21, #1 beq .L2521 ubfiz x24, x24, 6, 8 adrp x19, .LANCHOR55 add x19, x19, :lo12:.LANCHOR55 add x19, x19, x24 b .L2498 .L2511: ldrb w0, [x23, 58] cmp w0, 13 bne .L2510 ldrb w0, [x23] sub w22, w22, #1 cmp w0, 255 beq .L2510 ubfiz x23, x0, 6, 8 add x23, x19, x23 .L2510: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2509 .size sblk_read_page, .-sblk_read_page .section .text.gc_check_data_one_wl,"ax",@progbits .align 2 .global gc_check_data_one_wl .type gc_check_data_one_wl, %function gc_check_data_one_wl: sub sp, sp, #112 stp x29, x30, [sp, 16] add x29, sp, 16 stp x19, x20, [sp, 32] adrp x19, .LANCHOR70 stp x21, x22, [sp, 48] add x22, x19, :lo12:.LANCHOR70 adrp x20, .LANCHOR12 stp x23, x24, [sp, 64] stp x25, x26, [sp, 80] ldr x0, [x22, 8] stp x27, x28, [sp, 96] ldr x21, [x20, #:lo12:.LANCHOR12] cbnz x0, .L2524 mov w0, 1 bl buf_alloc str x0, [x22, 8] .L2524: add x0, x19, :lo12:.LANCHOR70 ldr x22, [x0, 8] cbnz x22, .L2525 adrp x1, .LANCHOR185 adrp x0, .LC0 mov w2, 729 add x1, x1, :lo12:.LANCHOR185 add x0, x0, :lo12:.LC0 bl printf .L2525: adrp x27, .LANCHOR111 adrp x28, .LANCHOR78 add x26, x21, 96 add x27, x27, :lo12:.LANCHOR111 add x28, x28, :lo12:.LANCHOR78 mov w25, 0 .L2526: ldrb w0, [x21, 89] cmp w25, w0 bge .L2537 mov w24, 1 add x23, x19, :lo12:.LANCHOR70 b .L2538 .L2536: ldrh w0, [x26] ldrh w2, [x27] ldrb w1, [x28] cmp w1, 2 mul w2, w0, w2 beq .L2527 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbz w0, .L2528 .L2527: ldrh w0, [x23, 16] sub w3, w0, #1 add w0, w24, w2 add w0, w3, w0 orr w1, w0, w1, lsl 24 str w1, [x22, 40] .L2529: mov w1, 1 mov x0, x22 bl sblk_read_page ldr w2, [x22, 52] adrp x1, .LANCHOR159 cmn w2, #1 beq .L2532 ldrh w0, [x23, 22] ldr x4, [x1, #:lo12:.LANCHOR159] ldr x3, [x22, 24] lsl x0, x0, 2 ldr w5, [x4, x0] ldr w4, [x3, 4] cmp w5, w4 bne .L2532 adrp x4, .LANCHOR160 ldr x4, [x4, #:lo12:.LANCHOR160] ldr w4, [x4, x0] ldr w0, [x3, 8] cmp w4, w0 beq .L2533 .L2532: ldrh w0, [x23, 22] ldr x1, [x1, #:lo12:.LANCHOR159] lsl x0, x0, 2 ldr w3, [x1, x0] cmn w3, #1 beq .L2533 adrp x1, .LANCHOR19 ldr w1, [x1, #:lo12:.LANCHOR19] tbz x1, 10, .L2534 ldr x1, [x22, 24] adrp x4, .LANCHOR160 ldr x4, [x4, #:lo12:.LANCHOR160] ldr w5, [x1, 12] str w5, [sp] ldr w4, [x4, x0] adrp x0, .LC143 ldp w5, w6, [x1] add x0, x0, :lo12:.LC143 ldr w7, [x1, 8] ldr w1, [x22, 40] bl printf .L2534: adrp x0, .LANCHOR124 ldrh w1, [x21, 80] ldrb w2, [x0, #:lo12:.LANCHOR124] adrp x0, .LANCHOR11 ldr x0, [x0, #:lo12:.LANCHOR11] strh wzr, [x0, x1, lsl 1] ldr x1, [x20, #:lo12:.LANCHOR12] ldr w0, [x1, 556] add w0, w0, 1 str w0, [x1, 556] adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w1, [x0, 156] mov w0, 20041 movk w0, 0x444b, lsl 16 cmp w1, w0 bne .L2541 cbnz w2, .L2541 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbnz w0, .L2541 ldr w0, [x22, 40] bl ftl_mask_bad_block .L2541: mov w0, -1 .L2523: ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] ldp x25, x26, [sp, 80] ldp x27, x28, [sp, 96] ldp x29, x30, [sp, 16] add sp, sp, 112 ret .L2528: cmp w1, 3 ldrh w0, [x23, 16] bne .L2530 adrp x1, .LANCHOR36 ldrb w1, [x1, #:lo12:.LANCHOR36] cbz w1, .L2531 add w0, w0, w0, lsl 1 sub w1, w0, #1 add w0, w24, w2 add w0, w1, w0 orr w0, w0, 50331648 .L2556: str w0, [x22, 40] b .L2529 .L2531: add w0, w0, w2 orr w0, w0, w24, lsl 24 b .L2556 .L2530: add w0, w0, w2 b .L2556 .L2533: ldrh w0, [x23, 22] add w24, w24, 1 add w0, w0, 1 strh w0, [x23, 22] .L2538: ldrh w0, [x23, 20] cmp w24, w0 ble .L2536 add w25, w25, 1 add x26, x26, 2 b .L2526 .L2537: add x19, x19, :lo12:.LANCHOR70 ldrh w0, [x19, 16] add w1, w0, 1 strh w1, [x19, 16] adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbz w1, .L2542 add w0, w0, 2 strh w0, [x19, 16] .L2542: .L2535: mov w0, 0 b .L2523 .size gc_check_data_one_wl, .-gc_check_data_one_wl .section .text.sblk_tlc_prog_one_page,"ax",@progbits .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 ldr x0, [x0] ldr w20, [x0, 40] .L2558: mov w1, 1 mov w0, w20 bl queue_lun_state cbnz w0, .L2559 mov x0, x19 mov w1, 1 bl queue_tlc_prog_cmd mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .L2559: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2558 .size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page .section .text.sblk_xlc_prog_pages,"ax",@progbits .align 2 .global sblk_xlc_prog_pages .type sblk_xlc_prog_pages, %function sblk_xlc_prog_pages: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x0 ldr x0, [x0] stp x21, x22, [sp, 32] mov x22, x1 stp x23, x24, [sp, 48] mov w24, w2 ldr w19, [x0, 40] str x25, [sp, 64] .L2562: mov w1, 1 mov w0, w19 bl queue_lun_state cbnz w0, .L2563 cmp w24, 2 bne .L2564 adrp x0, .LANCHOR44 ldr x3, [x22] ldrb w0, [x0, #:lo12:.LANCHOR44] cbz w0, .L2565 adrp x0, .LANCHOR31 ldr x7, [x20] mov w25, 1 mov w2, 24 ldrb w0, [x0, #:lo12:.LANCHOR31] ldr w3, [x3, 40] sub w2, w2, w0 ldr w1, [x7, 40] lsl w19, w25, w0 adrp x0, .LANCHOR36 lsl w21, w25, w2 sub w19, w19, #1 ldrb w0, [x0, #:lo12:.LANCHOR36] sub w21, w21, #1 and w23, w1, w21 lsr w1, w1, w2 and w19, w19, w1 and w21, w21, w3 and w19, w19, 255 cbz w0, .L2566 mov w0, w19 bl zftl_flash_exit_slc_mode ldr x0, [x20] mov w4, w23 mov w3, w19 mov w1, w25 mov w2, 17 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x22] mov w4, w21 mov w3, w19 mov w1, w25 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x20, 8] add w4, w23, w25 mov w3, w19 mov w1, w24 mov w2, 17 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x22, 8] add w4, w21, w25 mov w3, w19 mov w1, w24 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x20, 16] add w4, w23, 2 mov w3, w19 mov w2, 17 mov w1, 3 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready ldr x0, [x22, 16] add w4, w21, 2 mov w3, w19 mov w2, 16 mov w1, 3 ldr x5, [x0, 8] ldr x6, [x0, 24] mov w0, 0 bl flash_start_one_pass_page_prog .L2567: ldr x1, [x20] mov w0, 5 strb w0, [x1, 58] mov w0, 1 strb w0, [x1, 59] mov w0, -1 strb w0, [x1] adrp x0, .LANCHOR59 add x0, x0, :lo12:.LANCHOR59 bl buf_add_tail .L2568: mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .L2563: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2562 .L2566: ldr x5, [x7, 8] mov w4, w23 ldr x6, [x7, 24] mov w3, w19 ldrb w0, [x7, 60] mov w1, w25 mov w2, 17 bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x7, [x20] mov w4, w21 ldr x0, [x22] mov w3, w19 mov w1, w25 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldp x7, x0, [x20] mov w4, w23 mov w3, w19 mov w1, w24 mov w2, 17 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x7, [x20] mov w4, w21 ldr x0, [x22, 8] mov w3, w19 mov w1, w24 mov w2, 26 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x7, [x20] mov w4, w23 ldr x0, [x20, 16] mov w3, w19 mov w2, 17 mov w1, 3 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog bl nandc_wait_flash_ready ldr x0, [x22, 16] mov w4, w21 ldr x7, [x20] mov w3, w19 mov w2, 16 mov w1, 3 ldr x5, [x0, 8] ldr x6, [x0, 24] ldrb w0, [x7, 60] bl flash_start_tlc_page_prog b .L2567 .L2565: ldr w19, [x3, 40] .L2569: mov w1, 1 mov w0, w19 bl queue_lun_state cbnz w0, .L2570 mov w1, 1 mov x0, x20 bl queue_tlc_prog_cmd mov w1, 0 mov x0, x22 bl queue_tlc_prog_cmd .L2571: mov w1, 1 mov w0, w19 bl queue_lun_state cbz w0, .L2568 bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2571 .L2570: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2569 .L2564: mov w1, 1 mov x0, x20 bl queue_tlc_prog_cmd b .L2568 .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .section .text.sblk_3d_mlc_prog_pages,"ax",@progbits .align 2 .global sblk_3d_mlc_prog_pages .type sblk_3d_mlc_prog_pages, %function sblk_3d_mlc_prog_pages: stp x29, x30, [sp, -80]! ubfiz x1, x1, 4, 32 add x1, x1, 8 add x29, sp, 0 stp x21, x22, [sp, 32] add x21, x0, x1 stp x23, x24, [sp, 48] adrp x23, .LANCHOR31 adrp x24, .LANCHOR59 str x25, [sp, 64] add x23, x23, :lo12:.LANCHOR31 add x24, x24, :lo12:.LANCHOR59 add x25, x0, 8 stp x19, x20, [sp, 16] mov w22, 1 .L2575: cmp x21, x25 bne .L2578 mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .L2578: ldr x0, [x25, -8] ldr w19, [x0, 40] .L2576: mov w1, 1 mov w0, w19 bl queue_lun_state cbnz w0, .L2577 ldr x0, [x25, -8] mov w2, 24 ldrb w1, [x23] add x25, x25, 16 sub w2, w2, w1 ldr w0, [x0, 40] lsl w19, w22, w1 lsl w20, w22, w2 sub w19, w19, #1 sub w20, w20, #1 and w20, w20, w0 lsr w0, w0, w2 and w19, w19, w0 and w19, w19, 255 mov w0, w19 bl zftl_flash_exit_slc_mode ldr x0, [x25, -24] mov w2, w20 mov w1, w19 ldr x3, [x0, 8] ldr x4, [x0, 24] mov w0, 16 bl flash_start_3d_mlc_page_prog bl nandc_wait_flash_ready ldr x0, [x25, -16] add w2, w20, 1 mov w1, w19 ldr x3, [x0, 8] ldr x4, [x0, 24] mov w0, 16 bl flash_start_3d_mlc_page_prog bl nandc_de_cs.constprop.32 ldr x1, [x25, -24] mov w0, 4 strb w22, [x1, 59] strb w0, [x1, 58] mov w0, -1 strb w0, [x1] mov x0, x24 bl buf_add_tail b .L2575 .L2577: bl queue_wait_first_req_completed bl queue_remove_completed_req b .L2576 .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .section .text.flash_prog_page_en,"ax",@progbits .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x21, x22, [sp, 32] and w21, w0, 255 and w0, w5, 255 stp x19, x20, [sp, 16] str w0, [x29, 124] adrp x0, .LANCHOR23 stp x23, x24, [sp, 48] mov w20, w1 stp x27, x28, [sp, 80] mov x23, x2 ldrb w1, [x0, #:lo12:.LANCHOR23] mov x22, x3 stp x25, x26, [sp, 64] mov w28, w4 ubfx x24, x20, 24, 2 cmp w1, w21 mov x19, x0 bhi .L2581 adrp x1, .LANCHOR186 adrp x0, .LC0 mov w2, 642 add x1, x1, :lo12:.LANCHOR186 add x0, x0, :lo12:.LC0 bl printf .L2581: ldrb w0, [x19, #:lo12:.LANCHOR23] cmp w0, w21 bls .L2592 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 ldrb w27, [x0, w21, sxtw] cbnz w24, .L2594 adrp x0, .LANCHOR0 ldrb w1, [x0, #:lo12:.LANCHOR0] adrp x0, .LANCHOR1 cbz w1, .L2584 ldrb w1, [x0, #:lo12:.LANCHOR1] cbz w1, .L2594 .L2584: adrp x1, .LANCHOR2 ldrb w0, [x0, #:lo12:.LANCHOR1] ldrh w1, [x1, #:lo12:.LANCHOR2] udiv w19, w20, w1 mul w19, w19, w1 sub w1, w20, w19 cbz w0, .L2585 add w19, w19, w1, lsl 1 .L2583: adrp x24, .LANCHOR19 adrp x25, .LC144 add x24, x24, :lo12:.LANCHOR19 add x25, x25, :lo12:.LC144 adrp x26, .LANCHOR172 .L2589: ldr w0, [x24] tbz x0, 4, .L2586 mov w3, w19 mov w2, w20 mov w1, w27 mov x0, x25 bl printf .L2586: mov w4, w28 mov x3, x22 mov x2, x23 mov w1, w19 mov w0, w27 bl flash_prog_page mov w5, w0 ldr w0, [x29, 124] cbz w0, .L2587 adrp x6, .LANCHOR173 ldr x3, [x26, #:lo12:.LANCHOR172] mov w4, w28 str x6, [x29, 112] ldr x2, [x6, #:lo12:.LANCHOR173] mov w1, w20 mov w0, w21 str w5, [x29, 104] bl flash_read_page_en cmp w0, 512 ldr x6, [x29, 112] mov w4, w0 ccmn w0, #1, 4, ne mov x7, x6 beq .L2588 ldr x0, [x6, #:lo12:.LANCHOR173] ldr w1, [x23] ldr w5, [x29, 104] ldr w0, [x0] cmp w1, w0 bne .L2588 ldr x0, [x26, #:lo12:.LANCHOR172] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 beq .L2587 .L2588: str w4, [x29, 112] mov w3, 4 str x7, [x29, 104] mov w2, w3 mov x1, x23 adrp x0, .LC145 add x0, x0, :lo12:.LC145 bl rknand_print_hex mov w3, 4 mov x1, x22 mov w2, w3 adrp x0, .LC146 add x0, x0, :lo12:.LC146 bl rknand_print_hex adrp x0, .LANCHOR172 mov w3, 4 mov w2, w3 ldr x1, [x0, #:lo12:.LANCHOR172] adrp x0, .LC147 add x0, x0, :lo12:.LC147 bl rknand_print_hex ldr x7, [x29, 104] mov w3, 4 adrp x0, .LC148 mov w2, w3 add x0, x0, :lo12:.LC148 ldr x1, [x7, #:lo12:.LANCHOR173] bl rknand_print_hex ldr w4, [x29, 112] cmp w4, 512 beq .L2589 .L2591: mov w1, w20 adrp x0, .LC149 add x0, x0, :lo12:.LC149 bl printf adrp x1, .LANCHOR186 adrp x0, .LC0 mov w2, 685 add x1, x1, :lo12:.LANCHOR186 add x0, x0, :lo12:.LC0 bl printf .L2592: mov w0, -1 b .L2580 .L2585: adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 ldrh w0, [x0, w1, uxtw 1] add w19, w0, w19 b .L2583 .L2594: mov w19, w20 b .L2583 .L2587: mov w0, w5 cmn w5, #1 beq .L2591 .L2580: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .size flash_prog_page_en, .-flash_prog_page_en .section .text.ftl_test_block,"ax",@progbits .align 2 .global ftl_test_block .type ftl_test_block, %function ftl_test_block: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x23, x24, [sp, 48] adrp x24, .LANCHOR187 stp x21, x22, [sp, 32] and w21, w0, 65535 ldr x0, [x24, #:lo12:.LANCHOR187] mov w23, 0 stp x25, x26, [sp, 64] adrp x25, .LANCHOR188 stp x19, x20, [sp, 16] adrp x26, .LANCHOR112 stp x27, x28, [sp, 80] mov w20, 0 str wzr, [x0] add x0, x26, :lo12:.LANCHOR112 adrp x27, .LANCHOR75 str x0, [x29, 112] str wzr, [x25, #:lo12:.LANCHOR188] add x0, x27, :lo12:.LANCHOR75 str x0, [x29, 96] .L2611: ldr x0, [x29, 112] ldrb w0, [x0] cmp w0, w20 bls .L2621 add x0, x27, :lo12:.LANCHOR75 mov w22, 0 str x0, [x29, 120] adrp x0, .LANCHOR19 add x0, x0, :lo12:.LANCHOR19 str x0, [x29, 104] b .L2622 .L2620: ldr x0, [x29, 104] ldr w0, [x0] tbz x0, 12, .L2612 adrp x0, .LC150 mov w1, w21 add x0, x0, :lo12:.LC150 bl printf .L2612: ldr x0, [x29, 96] ldrb w19, [x0] madd w19, w21, w19, w22 and w19, w19, 65535 cbnz w20, .L2613 adrp x0, .LANCHOR6 ldr x0, [x0, #:lo12:.LANCHOR6] ldrb w0, [x0, 47] cmp w0, w19 bcs .L2614 .L2613: and w28, w20, 255 mov w1, w19 mov w0, w28 bl flash_check_bad_block cbnz w0, .L2614 adrp x0, .LANCHOR111 mov w1, w23 ldrh w7, [x0, #:lo12:.LANCHOR111] mov w0, w28 mul w26, w7, w19 mov w2, w26 bl flash_erase_block_en cbz w0, .L2615 adrp x0, .LANCHOR78 ldrb w0, [x0, #:lo12:.LANCHOR78] cmp w0, 2 bne .L2637 adrp x0, .LANCHOR0 ldrb w0, [x0, #:lo12:.LANCHOR0] cbz w0, .L2637 mov w2, w26 mov w1, 1 mov w0, w28 bl flash_erase_block_en cbnz w0, .L2637 .L2619: adrp x0, .LANCHOR78 mov w23, 1 ldrb w0, [x0, #:lo12:.LANCHOR78] add w26, w26, w0, lsl 24 .L2618: adrp x0, .LANCHOR131 ldr x2, [x24, #:lo12:.LANCHOR187] mov w5, 1 add x3, x25, :lo12:.LANCHOR188 ldrb w4, [x0, #:lo12:.LANCHOR131] mov w1, w26 mov w0, w28 bl flash_prog_page_en cbz w0, .L2614 .L2637: mov w1, w19 mov w0, w28 bl flash_mask_bad_block .L2614: add w22, w22, 1 and w22, w22, 65535 .L2622: ldr x0, [x29, 120] ldrb w0, [x0] cmp w0, w22 bhi .L2620 add w20, w20, 1 and w20, w20, 65535 b .L2611 .L2615: cbz w23, .L2618 b .L2619 .L2621: cbz w23, .L2623 adrp x0, .LANCHOR9 mov w1, 2 ldr x0, [x0, #:lo12:.LANCHOR9] add x21, x0, x21, uxth 2 ldrb w0, [x21, 2] bfi w0, w1, 3, 2 strb w0, [x21, 2] .L2623: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .size ftl_test_block, .-ftl_test_block .section .text.ftl_prog_page,"ax",@progbits .align 2 .global ftl_prog_page .type ftl_prog_page, %function ftl_prog_page: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 255 stp x21, x22, [sp, 32] mov w20, w1 mov x21, x2 mov x22, x3 str x23, [sp, 48] mov w23, w4 bl sblk_wait_write_queue_completed mov w0, w19 mov w5, 1 mov w4, w23 mov x3, x22 mov x2, x21 mov w1, w20 bl flash_prog_page_en mov w19, w0 cmn w0, #1 bne .L2638 mov w2, 2678 adrp x1, .LANCHOR189 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR189 add x0, x0, :lo12:.LC0 bl printf adrp x0, .LC149 mov w1, w20 add x0, x0, :lo12:.LC149 bl printf .L2638: mov w0, w19 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size ftl_prog_page, .-ftl_prog_page .section .text.ftl_info_flush,"ax",@progbits .align 2 .global ftl_info_flush .type ftl_info_flush, %function ftl_info_flush: stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR131 stp x23, x24, [sp, 48] adrp x24, .LANCHOR110 ldrb w2, [x21, #:lo12:.LANCHOR131] stp x19, x20, [sp, 16] adrp x20, .LANCHOR190 str w0, [x29, 116] add x0, x20, :lo12:.LANCHOR190 stp x25, x26, [sp, 64] lsl w2, w2, 1 stp x27, x28, [sp, 80] bl ftl_memset ldr x0, [x24, #:lo12:.LANCHOR110] ldrh w1, [x0, 74] cmp w1, 1 bls .L2642 strh wzr, [x0, 150] .L2642: adrp x23, .LANCHOR191 add x19, x23, :lo12:.LANCHOR191 adrp x25, .LANCHOR111 mov w26, 0 add x0, x25, :lo12:.LANCHOR111 str x0, [x29, 104] .L2655: add x0, x23, :lo12:.LANCHOR191 adrp x22, .LANCHOR192 ldrh w1, [x25, #:lo12:.LANCHOR111] add x7, x20, :lo12:.LANCHOR190 str w1, [x29, 120] ldrh w27, [x0, 2] ldr x0, [x24, #:lo12:.LANCHOR110] ldrb w1, [x21, #:lo12:.LANCHOR131] ldrb w28, [x23, #:lo12:.LANCHOR191] ldr w6, [x0, 4] lsl w1, w1, 9 add w6, w6, 1 str w6, [x0, 4] ldr w0, [x29, 116] str w0, [x20, #:lo12:.LANCHOR190] ldr x0, [x22, #:lo12:.LANCHOR192] str w6, [x7, 4] bl js_hash str w0, [x7, 8] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2643 adrp x0, .LC151 mov w3, w6 mov w2, w27 mov w1, w28 add x0, x0, :lo12:.LC151 bl printf .L2643: adrp x1, .LANCHOR94 ldrh w0, [x19, 2] ldrh w1, [x1, #:lo12:.LANCHOR94] cmp w1, w0 bhi .L2644 adrp x27, .LANCHOR193 adrp x3, .LC0 add x27, x27, :lo12:.LANCHOR193 add x3, x3, :lo12:.LC0 .L2651: ldrb w0, [x19, 1] adrp x28, .LANCHOR6 add w0, w0, 1 and w0, w0, 255 strb w0, [x19, 1] cmp w0, 7 bls .L2645 mov x0, 0 .L2650: ldr x2, [x28, #:lo12:.LANCHOR6] add w1, w0, 8 and w26, w0, 65535 add x1, x2, x1, sxtw ldrb w2, [x1, 32] add w1, w2, 127 and w1, w1, 255 cmp w1, 125 bhi .L2646 mov x0, x3 str x3, [x29, 120] mov w2, 846 mov x1, x27 bl printf ldr x3, [x29, 120] .L2649: strb w26, [x19, 1] mov w26, 1 .L2645: ldr x0, [x28, #:lo12:.LANCHOR6] ldrb w1, [x19, 1] add x0, x0, x1 ldrb w28, [x0, 40] strb w28, [x19] cmp w28, 255 beq .L2651 ldr x0, [x29, 104] ldrh w27, [x0] mov w0, 0 mul w27, w27, w28 mov w1, w27 bl flash_erase_block ldrb w4, [x21, #:lo12:.LANCHOR131] mov w1, w27 ldr x2, [x22, #:lo12:.LANCHOR192] add x3, x20, :lo12:.LANCHOR190 mov w0, 0 add w27, w27, 1 bl ftl_prog_page mov w0, 1 strh w0, [x19, 2] .L2652: ldrb w4, [x21, #:lo12:.LANCHOR131] mov w1, w27 ldr x2, [x22, #:lo12:.LANCHOR192] add x3, x20, :lo12:.LANCHOR190 mov w0, 0 bl ftl_prog_page cmn w0, #1 ldrh w1, [x19, 2] adrp x0, .LANCHOR194 add w1, w1, 1 strh w1, [x19, 2] beq .L2653 ldrb w1, [x0, #:lo12:.LANCHOR194] cbz w1, .L2654 .L2653: strb wzr, [x0, #:lo12:.LANCHOR194] b .L2655 .L2646: cmp w2, 255 bne .L2649 add x0, x0, 1 cmp x0, 8 bne .L2650 mov w26, w0 b .L2649 .L2644: ldr w1, [x29, 120] madd w27, w1, w28, w27 cbnz w0, .L2652 mov w1, w27 bl flash_erase_block b .L2652 .L2654: cbnz w26, .L2656 .L2664: adrp x0, .LANCHOR191 ldrb w0, [x0, #:lo12:.LANCHOR191] cmp w0, 255 bne .L2658 adrp x1, .LANCHOR193 adrp x0, .LC0 mov w2, 890 add x1, x1, :lo12:.LANCHOR193 add x0, x0, :lo12:.LC0 bl printf .L2658: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L2656: ldrb w19, [x19, 1] adrp x20, .LANCHOR193 adrp x21, .LC0 add x20, x20, :lo12:.LANCHOR193 add w19, w19, 1 add x21, x21, :lo12:.LC0 adrp x22, .LANCHOR6 .L2659: cmp w19, 7 bhi .L2664 ldr x1, [x22, #:lo12:.LANCHOR6] add w0, w19, 8 add x0, x1, x0, sxtw ldrb w23, [x0, 32] add w0, w23, 127 and w0, w0, 255 cmp w0, 125 bhi .L2660 mov w2, 881 mov x1, x20 mov x0, x21 bl printf .L2661: adrp x0, .LANCHOR111 ldrh w1, [x0, #:lo12:.LANCHOR111] mov w0, 0 mul w1, w1, w23 bl flash_erase_block b .L2662 .L2660: cmp w23, 255 bne .L2661 .L2662: add w19, w19, 1 and w19, w19, 65535 b .L2659 .size ftl_info_flush, .-ftl_info_flush .section .text.ftl_info_blk_init,"ax",@progbits .align 2 .global ftl_info_blk_init .type ftl_info_blk_init, %function ftl_info_blk_init: stp x29, x30, [sp, -112]! adrp x0, .LANCHOR195 adrp x1, .LANCHOR194 mov w2, 16384 add x29, sp, 0 strb wzr, [x0, #:lo12:.LANCHOR195] mov w0, 1 strb w0, [x1, #:lo12:.LANCHOR194] adrp x1, .LANCHOR196 stp x21, x22, [sp, 32] adrp x21, .LANCHOR192 strb w0, [x1, #:lo12:.LANCHOR196] adrp x1, .LANCHOR9 ldr x0, [x21, #:lo12:.LANCHOR192] mov x22, 7 str x0, [x1, #:lo12:.LANCHOR9] adrp x1, .LANCHOR8 stp x19, x20, [sp, 16] adrp x19, .LANCHOR110 ldrh w1, [x1, #:lo12:.LANCHOR8] adrp x20, .LANCHOR191 stp x23, x24, [sp, 48] adrp x23, .LANCHOR6 stp x25, x26, [sp, 64] adrp x24, .LANCHOR131 add x1, x0, x1, lsl 2 stp x27, x28, [sp, 80] str x1, [x19, #:lo12:.LANCHOR110] mov w1, 0 bl ftl_memset adrp x26, .LANCHOR111 adrp x0, .LANCHOR197 mov w1, 0 mov w2, 16384 mov w27, 21574 ldr x0, [x0, #:lo12:.LANCHOR197] add x26, x26, :lo12:.LANCHOR111 add x24, x24, :lo12:.LANCHOR131 movk w27, 0x494c, lsl 16 bl ftl_memset ldr x1, [x23, #:lo12:.LANCHOR6] add x0, x20, :lo12:.LANCHOR191 strb wzr, [x0, 1] ldrb w1, [x1, 40] strb w1, [x20, #:lo12:.LANCHOR191] strh wzr, [x0, 2] .L2680: ldr x1, [x23, #:lo12:.LANCHOR6] add w0, w22, 8 sxth w25, w22 mov w28, w22 add x0, x1, x0, sxtw ldrb w0, [x0, 32] cmp w0, 255 bne .L2679 .L2684: sub x22, x22, #1 cmn x22, #1 bne .L2680 mov w25, 0 .L2681: adrp x24, .LANCHOR19 ldr w0, [x24, #:lo12:.LANCHOR19] tbz x0, 12, .L2685 ldr x0, [x19, #:lo12:.LANCHOR110] mov w2, 4800 mov w1, w22 ldr w3, [x0] adrp x0, .LC153 add x0, x0, :lo12:.LC153 bl printf .L2685: cmn w22, #1 bne .L2686 ldr x0, [x21, #:lo12:.LANCHOR192] mov w1, 0 mov w2, 16384 bl ftl_memset ldr x0, [x19, #:lo12:.LANCHOR110] mov w1, 21574 movk w1, 0x494c, lsl 16 str w1, [x0] mov w1, 36 movk w1, 0x6, lsl 16 str w1, [x0, 12] mov w0, w22 .L2678: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L2679: ldrh w6, [x26] adrp x7, .LANCHOR190 ldrb w4, [x24] add x7, x7, :lo12:.LANCHOR190 ldr x2, [x21, #:lo12:.LANCHOR192] mov x3, x7 str x7, [x29, 96] mul w6, w6, w0 mov w0, 0 str w6, [x29, 108] mov w1, w6 bl ftl_read_page mov w5, w0 cmn w0, #1 ldr w6, [x29, 108] ldr x7, [x29, 96] bne .L2682 ldrb w4, [x24] mov x3, x7 ldr x2, [x21, #:lo12:.LANCHOR192] add w1, w6, 1 mov w0, 0 bl ftl_read_page mov w5, w0 .L2682: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2683 ldr x0, [x19, #:lo12:.LANCHOR110] mov w2, w5 str w5, [x29, 108] mov w3, 749 mov w1, w28 ldr w4, [x0] adrp x0, .LC152 add x0, x0, :lo12:.LC152 bl printf ldr w5, [x29, 108] .L2683: cmn w5, #1 beq .L2684 ldr x0, [x19, #:lo12:.LANCHOR110] ldr w0, [x0] cmp w0, w27 bne .L2684 mov w22, w25 b .L2681 .L2686: ldr x1, [x23, #:lo12:.LANCHOR6] add w0, w25, 8 ldr x2, [x21, #:lo12:.LANCHOR192] mov w4, 4 adrp x26, .LANCHOR131 mov w28, 21574 add x0, x1, x0, sxtw adrp x27, .LC154 add x26, x26, :lo12:.LANCHOR131 add x27, x27, :lo12:.LC154 movk w28, 0x494c, lsl 16 ldrb w1, [x0, 32] add x0, x20, :lo12:.LANCHOR191 strb w1, [x20, #:lo12:.LANCHOR191] strb w25, [x0, 1] adrp x25, .LANCHOR190 mov w0, 0 add x3, x25, :lo12:.LANCHOR190 bl flash_get_last_written_page sxth w22, w0 add w0, w0, 1 ldrb w23, [x20, #:lo12:.LANCHOR191] and w0, w0, 65535 str w0, [x29, 108] adrp x0, .LANCHOR111 ldrh w0, [x0, #:lo12:.LANCHOR111] madd w23, w23, w0, w22 .L2688: tbnz w22, #31, .L2692 ldrb w4, [x26] add x5, x25, :lo12:.LANCHOR190 ldr x2, [x21, #:lo12:.LANCHOR192] mov x3, x5 mov w1, w23 mov w0, 0 str x5, [x29, 96] bl ftl_read_page cmn w0, #1 beq .L2689 ldr x0, [x19, #:lo12:.LANCHOR110] ldr x5, [x29, 96] ldr w0, [x0] cmp w0, w28 bne .L2689 ldr w6, [x5, 8] cbnz w6, .L2690 .L2692: ldrh w0, [x29, 108] add x20, x20, :lo12:.LANCHOR191 strh w0, [x20, 2] bl ftl_tmp_into_update ldr x1, [x19, #:lo12:.LANCHOR110] ldr w0, [x1, 64] add w0, w0, 1 str w0, [x1, 64] mov w0, 0 bl ftl_info_flush mov w0, 0 bl ftl_info_flush ldr w0, [x24, #:lo12:.LANCHOR19] tbnz x0, 14, .L2691 .L2708: mov w0, 0 b .L2678 .L2690: ldr x0, [x21, #:lo12:.LANCHOR192] ldrb w1, [x26] lsl w1, w1, 9 bl js_hash cmp w6, w0 beq .L2692 mov w1, w6 mov x0, x27 bl printf .L2689: sub w22, w22, #1 sub w23, w23, #1 sxth w22, w22 b .L2688 .L2691: ldr x0, [x19, #:lo12:.LANCHOR110] ldr w1, [x0, 156] adrp x0, .LC155 add x0, x0, :lo12:.LC155 bl printf b .L2708 .size ftl_info_blk_init, .-ftl_info_blk_init .section .text.ftl_ext_info_flush,"ax",@progbits .align 2 .global ftl_ext_info_flush .type ftl_ext_info_flush, %function ftl_ext_info_flush: stp x29, x30, [sp, -96]! adrp x0, .LANCHOR12 add x29, sp, 0 ldr x0, [x0, #:lo12:.LANCHOR12] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] ldr w1, [x0, 520] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cbz w1, .L2710 str wzr, [x0, 520] .L2710: adrp x20, .LANCHOR94 adrp x22, .LANCHOR198 adrp x21, .LANCHOR31 add x20, x20, :lo12:.LANCHOR94 add x22, x22, :lo12:.LANCHOR198 add x21, x21, :lo12:.LANCHOR31 mov w0, 0 bl ftl_total_vpn_update .L2711: adrp x23, .LANCHOR110 mov x24, x23 .L2714: ldr x0, [x23, #:lo12:.LANCHOR110] ldr w1, [x0, 56] add w1, w1, 1 str w1, [x0, 56] ldrh w1, [x0, 140] ldrh w0, [x20] cmp w1, w0 bcc .L2712 bl ftl_ext_alloc_new_blk .L2712: ldr x0, [x24, #:lo12:.LANCHOR110] ldrh w1, [x0, 130] mov w0, 65535 cmp w1, w0 bne .L2713 adrp x0, .LC0 mov w2, 2211 mov x1, x22 add x0, x0, :lo12:.LC0 bl printf .L2713: ldrb w19, [x21] mov w0, 24 ldr x1, [x24, #:lo12:.LANCHOR110] adrp x26, .LANCHOR131 sub w19, w0, w19 adrp x0, .LANCHOR74 adrp x27, .LANCHOR190 add x25, x27, :lo12:.LANCHOR190 ldrh w0, [x0, #:lo12:.LANCHOR74] ldrh w2, [x1, 130] sub w0, w19, w0 mov w19, 1 asr w28, w2, w0 lsl w19, w19, w0 adrp x0, .LANCHOR111 sub w19, w19, #1 and w19, w19, w2 ldrh w2, [x0, #:lo12:.LANCHOR111] ldrh w0, [x1, 140] sxth w19, w19 mov w1, 0 madd w19, w19, w2, w0 ldrb w2, [x26, #:lo12:.LANCHOR131] mov x0, x25 lsl w2, w2, 1 bl ftl_memset ldr x0, [x24, #:lo12:.LANCHOR110] ldrb w7, [x26, #:lo12:.LANCHOR131] str wzr, [x27, #:lo12:.LANCHOR190] ldr w0, [x0, 56] lsl w1, w7, 9 str w0, [x25, 4] adrp x0, .LANCHOR197 ldr x6, [x0, #:lo12:.LANCHOR197] mov x0, x6 bl js_hash mov x2, x6 mov w1, w19 str w0, [x25, 8] mov w4, w7 mov x3, x25 mov w0, w28 bl ftl_prog_page ldr x2, [x24, #:lo12:.LANCHOR110] ldrh w1, [x2, 140] add w1, w1, 1 and w1, w1, 65535 strh w1, [x2, 140] cmp w1, 1 beq .L2714 cmn w0, #1 adrp x0, .LANCHOR196 beq .L2715 ldrb w1, [x0, #:lo12:.LANCHOR196] cbz w1, .L2716 .L2715: strb wzr, [x0, #:lo12:.LANCHOR196] b .L2711 .L2716: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .size ftl_ext_info_flush, .-ftl_ext_info_flush .section .text.ftl_ext_info_init,"ax",@progbits .align 2 .global ftl_ext_info_init .type ftl_ext_info_init, %function ftl_ext_info_init: stp x29, x30, [sp, -128]! adrp x0, .LANCHOR121 adrp x2, .LANCHOR74 mov w4, 4 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR110 strh wzr, [x0, #:lo12:.LANCHOR121] ldr x0, [x20, #:lo12:.LANCHOR110] stp x21, x22, [sp, 32] adrp x21, .LANCHOR197 stp x27, x28, [sp, 80] stp x23, x24, [sp, 48] adrp x24, .LANCHOR190 ldrh w1, [x0, 130] adrp x0, .LANCHOR31 stp x25, x26, [sp, 64] add x3, x24, :lo12:.LANCHOR190 ldrb w19, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w19 ldrh w19, [x2, #:lo12:.LANCHOR74] ldr x2, [x21, #:lo12:.LANCHOR197] sub w0, w0, w19 mov w19, 1 lsl w19, w19, w0 sub w19, w19, #1 asr w22, w1, w0 and w19, w19, w1 and w27, w22, 255 mov w1, w19 mov w0, w27 bl flash_get_last_written_page sxth w23, w0 adrp x0, .LANCHOR19 stp x0, x24, [x29, 112] ldr w1, [x0, #:lo12:.LANCHOR19] tbz x1, 12, .L2727 ldr x0, [x20, #:lo12:.LANCHOR110] adrp x1, .LANCHOR199 and w4, w22, 65535 mov w3, w23 mov w2, 2256 add x1, x1, :lo12:.LANCHOR199 ldrh w5, [x0, 130] adrp x0, .LC156 add x0, x0, :lo12:.LC156 bl printf .L2727: adrp x25, .LANCHOR131 adrp x26, .LANCHOR111 mov w28, 20038 add x25, x25, :lo12:.LANCHOR131 add x26, x26, :lo12:.LANCHOR111 mov w24, 0 movk w28, 0x4549, lsl 16 .L2728: and w22, w23, 65535 sub w0, w22, w24 tbnz x0, 15, .L2733 ldr x0, [x29, 120] sub w1, w23, w24 ldrb w4, [x25] add x5, x0, :lo12:.LANCHOR190 ldrh w0, [x26] ldr x2, [x21, #:lo12:.LANCHOR197] mov x3, x5 str x5, [x29, 104] madd w1, w0, w19, w1 mov w0, w27 bl flash_read_page_en cmp w0, 512 ccmn w0, #1, 4, ne beq .L2729 adrp x0, .LANCHOR12 ldr x5, [x29, 104] ldr x0, [x0, #:lo12:.LANCHOR12] ldr w0, [x0] cmp w0, w28 bne .L2729 ldr w6, [x5, 8] cbnz w6, .L2730 .L2733: bl zftl_sblk_list_init ldr x0, [x20, #:lo12:.LANCHOR110] ldrh w1, [x0, 140] cmp w1, w23 bgt .L2732 add w22, w22, 1 strh w22, [x0, 140] bl ftl_ext_info_flush .L2732: adrp x0, .LANCHOR12 mov w1, -1 ldr x0, [x0, #:lo12:.LANCHOR12] strh w1, [x0, 584] strh w1, [x0, 586] strh w1, [x0, 588] strh w1, [x0, 590] mov w1, 65535 str w1, [x0, 560] mov w1, -1 str w1, [x0, 564] ldr x1, [x29, 112] str wzr, [x0, 520] str wzr, [x0, 604] str wzr, [x0, 608] ldr w1, [x1, #:lo12:.LANCHOR19] tbz x1, 12, .L2735 ldr w3, [x0, 12] adrp x1, .LANCHOR199 adrp x0, .LC158 mov w4, 0 mov w2, 0 add x1, x1, :lo12:.LANCHOR199 add x0, x0, :lo12:.LC158 bl printf .L2735: adrp x0, .LANCHOR72 mov w1, -1 ldp x19, x20, [sp, 16] strh w1, [x0, #:lo12:.LANCHOR72] ldp x21, x22, [sp, 32] mov w0, 0 ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L2730: ldr x0, [x21, #:lo12:.LANCHOR197] ldrb w1, [x25] lsl w1, w1, 9 bl js_hash cmp w6, w0 beq .L2733 adrp x0, .LC157 mov w1, w6 add x0, x0, :lo12:.LC157 bl printf .L2729: add w24, w24, 1 b .L2728 .size ftl_ext_info_init, .-ftl_ext_info_init .section .text.ftl_prog_ppa_page,"ax",@progbits .align 2 .global ftl_prog_ppa_page .type ftl_prog_ppa_page, %function ftl_prog_ppa_page: adrp x4, .LANCHOR31 mov w5, 1 ldrb w6, [x4, #:lo12:.LANCHOR31] mov w4, 24 sub w4, w4, w6 lsl w7, w5, w4 sub w7, w7, #1 lsl w5, w5, w6 sub w6, w5, #1 lsr w5, w0, w4 mov w4, w3 mov x3, x2 mov x2, x1 and w1, w7, w0 and w0, w6, w5 b ftl_prog_page .size ftl_prog_ppa_page, .-ftl_prog_ppa_page .section .text.ftl_write_last_log_page,"ax",@progbits .align 2 .global ftl_write_last_log_page .type ftl_write_last_log_page, %function ftl_write_last_log_page: ldrh w1, [x0, 6] cmp w1, 1 bne .L2749 stp x29, x30, [sp, -48]! adrp x1, .LANCHOR117 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x0 stp x21, x22, [sp, 32] ldr x20, [x1, #:lo12:.LANCHOR117] ldrh w22, [x0, 12] bl ftl_get_new_free_page mov w21, w0 cmn w0, #1 beq .L2750 ldrh w0, [x19] add x20, x20, x22, uxth 2 bl ftl_vpn_decrement adrp x0, .LANCHOR188 mov w1, 15555 add x7, x0, :lo12:.LANCHOR188 movk w1, 0xf55f, lsl 16 str w1, [x0, #:lo12:.LANCHOR188] adrp x0, .LANCHOR94 ldrh w1, [x0, #:lo12:.LANCHOR94] adrp x0, .LANCHOR79 ldrb w0, [x0, #:lo12:.LANCHOR79] mul w1, w1, w0 mov x0, x20 lsl w1, w1, 2 bl js_hash mov x1, x7 mov x2, 0 stp w0, wzr, [x7, 4] mov w0, 2 str wzr, [x7, 12] str wzr, [x1, 16]! bl ftl_debug_info_fill mov x2, x7 adrp x0, .LANCHOR131 mov x1, x20 ldrb w3, [x0, #:lo12:.LANCHOR131] mov w0, w21 bl ftl_prog_ppa_page .L2750: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L2749: mov w0, -1 ret .size ftl_write_last_log_page, .-ftl_write_last_log_page .section .text.ftl_dump_write_open_sblk,"ax",@progbits .align 2 .global ftl_dump_write_open_sblk .type ftl_dump_write_open_sblk, %function ftl_dump_write_open_sblk: sub sp, sp, #224 stp x29, x30, [sp, 48] add x29, sp, 48 stp x19, x20, [sp, 64] and w20, w0, 65535 adrp x0, .LANCHOR8 stp x21, x22, [sp, 80] stp x23, x24, [sp, 96] ldrh w0, [x0, #:lo12:.LANCHOR8] stp x25, x26, [sp, 112] stp x27, x28, [sp, 128] cmp w0, w20 bls .L2755 adrp x0, .LANCHOR83 str x0, [x29, 120] ldrb w1, [x0, #:lo12:.LANCHOR83] cbnz w1, .L2757 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L2755 .L2757: adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L2755 adrp x0, .LANCHOR9 ubfiz x14, x20, 2, 16 mov x15, x0 ldr x1, [x0, #:lo12:.LANCHOR9] add x1, x1, x14 ldrb w1, [x1, 2] and w1, w1, 224 cmp w1, 160 bne .L2779 adrp x0, .LANCHOR78 ldrb w25, [x0, #:lo12:.LANCHOR78] .L2758: add x21, x29, 176 adrp x23, .LANCHOR94 mov w0, w20 adrp x26, .LANCHOR111 add x26, x26, :lo12:.LANCHOR111 mov w27, 0 strh w20, [x21, -32]! mov w28, 0 add x1, x21, 16 bl ftl_get_blk_list_in_sblk ldrh w1, [x23, #:lo12:.LANCHOR94] and w0, w0, 255 strb w0, [x29, 153] strb wzr, [x29, 149] strh wzr, [x29, 146] mul w0, w0, w1 strh wzr, [x29, 154] strh w0, [x29, 150] ldr x0, [x15, #:lo12:.LANCHOR9] add x1, x0, x14 ldr w5, [x0, x14] ldrb w2, [x1, 2] mov w1, w20 ldrh w4, [x0, x14] adrp x0, .LC159 ubfx x5, x5, 11, 8 add x0, x0, :lo12:.LC159 ubfx x3, x2, 3, 2 and w4, w4, 2047 ubfx x2, x2, 5, 3 bl printf mov w0, 1 bl buf_alloc mov x19, x0 mov w10, 0 add x0, x23, :lo12:.LANCHOR94 str x0, [x29, 128] .L2759: ldr x0, [x29, 128] ldrh w0, [x0] cmp w0, w27 bls .L2767 lsl w22, w27, 1 mov w28, 0 sub w0, w22, #1 add w22, w22, w27 str w0, [x29, 140] sub w22, w22, #1 adrp x0, .LC160 add x0, x0, :lo12:.LC160 str x0, [x29, 112] b .L2770 .L2779: mov w25, 1 b .L2758 .L2768: ldrh w12, [x21, x24] mov w0, 65535 cmp w12, w0 bne .L2760 .L2766: add w10, w10, 1 and w10, w10, 65535 .L2761: cmp w25, w10 bcs .L2768 add w11, w28, 1 and w28, w11, 65535 .L2770: ldrb w0, [x29, 153] cmp w0, w28 bls .L2769 sxtw x24, w28 mov w10, 1 add x24, x24, 8 lsl x24, x24, 1 b .L2761 .L2760: ldrh w3, [x26] cmp w25, 3 mul w3, w3, w12 add w0, w3, w10 bne .L2762 adrp x1, .LANCHOR36 ldrb w1, [x1, #:lo12:.LANCHOR36] cbz w1, .L2763 adrp x1, .LANCHOR78 add w0, w0, w22 ldrb w3, [x1, #:lo12:.LANCHOR78] .L2793: orr w3, w0, w3, lsl 24 b .L2764 .L2763: add w3, w27, w3 orr w3, w3, w10, lsl 24 .L2764: str w3, [x19, 40] mov w1, 1 stp w10, w12, [x29, 104] mov x0, x19 str w3, [x29, 136] bl sblk_read_page ldr w13, [x19, 52] ldp w10, w12, [x29, 104] cmp w13, 512 ccmn w13, #1, 4, ne ldr w3, [x29, 136] bne .L2766 ldr x1, [x19, 24] mov w4, w13 ldr x0, [x19, 8] str w10, [x29, 108] str w13, [x29, 136] ldr w2, [x1, 12] str w2, [sp, 32] ldr w2, [x1, 8] str w2, [sp, 24] ldr w2, [x1, 4] str w2, [sp, 16] mov w2, w27 ldr w1, [x1] str w1, [sp, 8] ldr w1, [x0, 12] str w1, [sp] mov w1, w12 ldp w5, w6, [x0] ldr w7, [x0, 8] ldr x0, [x29, 112] bl printf ldr w13, [x29, 136] ldr w10, [x29, 108] cmp w13, 512 bne .L2766 .L2767: mov w4, w10 mov w3, w28 mov w2, w27 mov w1, w20 adrp x24, .LANCHOR131 adrp x0, .LC161 add x0, x0, :lo12:.LC161 bl printf ldr x0, [x19, 8] mov w1, 0 ldrb w2, [x24, #:lo12:.LANCHOR131] adrp x25, .LANCHOR19 adrp x26, .LC162 add x25, x25, :lo12:.LANCHOR19 add x26, x26, :lo12:.LC162 lsl w2, w2, 9 bl ftl_memset ldr x0, [x19, 24] mov w1, 0 ldrb w2, [x24, #:lo12:.LANCHOR131] lsl w2, w2, 1 bl ftl_memset .L2771: ldrh w0, [x23, #:lo12:.LANCHOR94] cmp w0, w27 bls .L2777 lsl w0, w27, 1 str w0, [x29, 140] ldr x0, [x29, 120] mov w22, 0 add x28, x0, :lo12:.LANCHOR83 b .L2778 .L2762: cmp w25, 2 bne .L2765 adrp x1, .LANCHOR78 ldrb w3, [x1, #:lo12:.LANCHOR78] ldr w1, [x29, 140] add w0, w1, w0 b .L2793 .L2765: add w3, w27, w3 b .L2764 .L2769: add w8, w27, 1 and w27, w8, 65535 b .L2759 .L2776: ldr w0, [x25] tbz x0, 12, .L2772 mov w2, w22 mov w1, w27 mov x0, x26 bl printf .L2772: ldrb w1, [x28] adrp x2, .LANCHOR111 sxtw x0, w22 cbz w1, .L2773 add x0, x0, 8 ldrh w1, [x2, #:lo12:.LANCHOR111] ldrh w0, [x21, x0, lsl 1] mul w0, w0, w1 orr w0, w0, w27 str w0, [x19, 40] mov x0, x19 bl sblk_3d_tlc_dump_prog .L2774: add w22, w22, 1 and w22, w22, 65535 .L2778: ldrb w0, [x29, 153] cmp w0, w22 bhi .L2776 add w8, w27, 1 and w27, w8, 65535 b .L2771 .L2773: adrp x1, .LANCHOR78 add x0, x0, 8 ldrb w1, [x1, #:lo12:.LANCHOR78] cmp w1, 2 bne .L2775 ldrh w1, [x2, #:lo12:.LANCHOR111] ldrh w0, [x21, x0, lsl 1] mul w0, w0, w1 ldr w1, [x29, 140] orr w0, w0, w1 orr w0, w0, 33554432 str w0, [x19, 40] mov x0, x19 bl sblk_mlc_dump_prog b .L2774 .L2775: ldrh w1, [x21, x0, lsl 1] mov w6, 1 ldrh w0, [x2, #:lo12:.LANCHOR111] mov w5, 0 ldrb w4, [x24, #:lo12:.LANCHOR131] ldr x3, [x19, 24] mul w1, w1, w0 adrp x0, .LANCHOR31 ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 orr w1, w1, w27 str w1, [x19, 40] sub w0, w0, w2 lsl w6, w6, w2 ldr x2, [x19, 8] sub w6, w6, #1 lsl w7, w6, w0 lsr w0, w1, w0 bic w1, w1, w7 and w0, w0, w6 bl flash_prog_page_en b .L2774 .L2777: mov x0, x19 bl zbuf_free adrp x0, .LC163 mov w1, w20 add x0, x0, :lo12:.LC163 bl printf .L2755: ldp x19, x20, [sp, 64] ldp x21, x22, [sp, 80] ldp x23, x24, [sp, 96] ldp x25, x26, [sp, 112] ldp x27, x28, [sp, 128] ldp x29, x30, [sp, 48] add sp, sp, 224 ret .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk .section .text.gc_ink_check_sblk,"ax",@progbits .align 2 .global gc_ink_check_sblk .type gc_ink_check_sblk, %function gc_ink_check_sblk: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR70 add x0, x19, :lo12:.LANCHOR70 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] ldrh w1, [x0, 2110] ldr x22, [x0, 2184] cmp w1, 3 bhi .L2795 adrp x0, .L2797 mov x20, x19 add x0, x0, :lo12:.L2797 ldrh w0, [x0,w1,uxtw #1] adr x1, .Lrtx2797 add x0, x1, w0, sxth #2 br x0 .Lrtx2797: .section .rodata.gc_ink_check_sblk,"a",@progbits .align 0 .align 2 .L2797: .2byte (.L2796 - .Lrtx2797) / 4 .2byte (.L2798 - .Lrtx2797) / 4 .2byte (.L2799 - .Lrtx2797) / 4 .2byte (.L2800 - .Lrtx2797) / 4 .section .text.gc_ink_check_sblk .L2796: adrp x0, .LANCHOR107 add x24, x0, :lo12:.LANCHOR107 ldrh w0, [x0, #:lo12:.LANCHOR107] cmp w0, 7 bls .L2794 adrp x0, .LANCHOR57 ldrb w0, [x0, #:lo12:.LANCHOR57] cmp w0, 2 bls .L2794 adrp x21, .LANCHOR108 add x21, x21, :lo12:.LANCHOR108 mov w1, 0 mov x0, x21 bl _list_get_gc_head_node and w0, w0, 65535 mov w23, 65535 cmp w0, w23 beq .L2794 adrp x22, .LANCHOR9 ubfiz x0, x0, 2, 16 ldr x1, [x22, #:lo12:.LANCHOR9] ldrh w0, [x1, x0] and w0, w0, 2047 cmp w0, 2 bgt .L2794 add x20, x19, :lo12:.LANCHOR70 mov w0, 1 bl buf_alloc str x0, [x20, 2184] cbz x0, .L2794 mov x2, x24 mov w1, 0 mov x0, x21 bl _list_pop_index_node and w14, w0, 65535 cmp w14, w23 bne .L2804 ldr x0, [x20, 2184] bl zbuf_free str xzr, [x20, 2184] .L2794: 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 .L2804: add x1, x20, 2162 mov w0, w14 bl ftl_get_blk_list_in_sblk strb w0, [x20, 2155] mov w0, 1 strh w0, [x20, 2110] ldr x0, [x22, #:lo12:.LANCHOR9] strh w14, [x20, 2146] ubfiz x14, x14, 2, 16 strh wzr, [x20, 2148] ldrh w1, [x0, x14] adrp x0, .LANCHOR131 ldrb w2, [x0, #:lo12:.LANCHOR131] ldr x0, [x20, 2184] lsl w2, w2, 9 tbz x1, 0, .L2805 mov w1, 85 .L2820: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x0, [x0, 8] ldp x29, x30, [sp], 80 b ftl_memset .L2805: mov w1, 170 b .L2820 .L2798: add x20, x19, :lo12:.LANCHOR70 mov w1, 0 ldrh w0, [x20, 2146] bl ftl_erase_sblk mov w0, 2 strh w0, [x20, 2110] b .L2794 .L2799: adrp x21, .LANCHOR111 mov w24, 65280 adrp x23, .LANCHOR31 add x21, x21, :lo12:.LANCHOR111 add x23, x23, :lo12:.LANCHOR31 mov w19, 0 movk w24, 0x55aa, lsl 16 bl sblk_wait_write_queue_completed .L2806: add x0, x20, :lo12:.LANCHOR70 ldrb w1, [x0, 2155] cmp w1, w19 bhi .L2808 ldrh w1, [x0, 2148] adrp x2, .LANCHOR94 add w1, w1, 1 ldrh w2, [x2, #:lo12:.LANCHOR94] and w1, w1, 65535 strh w1, [x0, 2148] cmp w2, w1 bhi .L2794 mov w1, 3 strh wzr, [x0, 2148] strh w1, [x0, 2110] b .L2794 .L2808: add x1, x0, x19, sxtw 1 ldrh w2, [x1, 2162] mov w1, 65535 cmp w2, w1 beq .L2807 ldrh w0, [x0, 2148] mov w6, 1 ldrh w1, [x21] mov w5, 0 ldr x3, [x22, 24] madd w1, w1, w2, w0 ldr x2, [x22, 8] mov w0, 24 stp w1, w24, [x2] str wzr, [x3] ldrb w4, [x23] sub w0, w0, w4 lsl w6, w6, w4 adrp x4, .LANCHOR131 sub w6, w6, #1 ldrb w4, [x4, #:lo12:.LANCHOR131] lsl w7, w6, w0 lsr w0, w1, w0 bic w1, w1, w7 and w0, w0, w6 bl flash_prog_page_en .L2807: add w19, w19, 1 and w19, w19, 65535 b .L2806 .L2800: adrp x25, .LANCHOR111 add x19, x19, :lo12:.LANCHOR70 add x25, x25, :lo12:.LANCHOR111 mov w21, 0 mov w26, 65535 bl sblk_wait_write_queue_completed .L2809: ldrb w0, [x19, 2155] cmp w0, w21 bhi .L2813 ldrh w0, [x19, 2148] adrp x1, .LANCHOR94 add w0, w0, 1 ldrh w1, [x1, #:lo12:.LANCHOR94] and w0, w0, 65535 strh w0, [x19, 2148] cmp w1, w0 bhi .L2794 ldr x0, [x19, 2184] strh wzr, [x19, 2110] bl zbuf_free str xzr, [x19, 2184] ldrh w0, [x19, 2112] cmp w0, 15 bhi .L2814 add w1, w0, 1 add x0, x19, x0, sxtw 1 strh w1, [x19, 2112] ldrh w1, [x19, 2146] strh w1, [x0, 2114] .L2815: add x19, x20, :lo12:.LANCHOR70 adrp x0, .LC164 ldp x21, x22, [sp, 32] add x0, x0, :lo12:.LC164 ldrh w2, [x19, 2112] ldrh w1, [x19, 2146] ldp x23, x24, [sp, 48] ldp x19, x20, [sp, 16] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 b printf .L2813: add x24, x19, x21, sxtw 1 add x24, x24, 16 ldrh w0, [x24, 2146] cmp w0, w26 beq .L2811 ldrh w1, [x19, 2148] ldrh w23, [x25] madd w23, w23, w0, w1 mov w1, 1 str w23, [x22, 40] mov x0, x22 bl sblk_read_page ldr x0, [x22, 8] ldr w0, [x0] cmp w23, w0 beq .L2811 mov w0, w23 bl ftl_mask_bad_block mov w0, -1 strh w0, [x24, 2146] .L2811: add w21, w21, 1 and w21, w21, 65535 b .L2809 .L2814: ldrh w0, [x19, 2146] bl zftl_insert_free_list b .L2815 .L2795: strh wzr, [x0, 2110] b .L2794 .size gc_ink_check_sblk, .-gc_ink_check_sblk .section .text.ftl_ink_check_sblk,"ax",@progbits .align 2 .global ftl_ink_check_sblk .type ftl_ink_check_sblk, %function ftl_ink_check_sblk: stp x29, x30, [sp, -144]! add x29, sp, 0 stp x23, x24, [sp, 48] adrp x24, .LANCHOR9 stp x19, x20, [sp, 16] and w19, w0, 65535 ldr x0, [x24, #:lo12:.LANCHOR9] ubfiz x23, x19, 2, 16 stp x21, x22, [sp, 32] mov w1, w19 stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] ldr w3, [x0, x23] ldrh w2, [x0, x23] adrp x0, .LC165 add x0, x0, :lo12:.LC165 ubfx x3, x3, 11, 8 and w2, w2, 2047 bl printf mov w0, 65535 cmp w19, w0 beq .L2821 adrp x0, .LANCHOR8 ldrh w0, [x0, #:lo12:.LANCHOR8] cmp w0, w19 bls .L2821 add x21, x29, 144 mov w1, 0 mov w0, w19 bl ftl_erase_sblk mov w0, w19 adrp x27, .LANCHOR131 strh w19, [x21, -32]! add x1, x21, 16 bl ftl_get_blk_list_in_sblk strb w0, [x29, 121] mov w0, 1 bl buf_alloc mov x20, x0 ldr x0, [x24, #:lo12:.LANCHOR9] ldrb w2, [x27, #:lo12:.LANCHOR131] ldrh w0, [x0, x23] lsl w2, w2, 9 and w0, w0, 2047 cmp w0, 1 bgt .L2823 mov w1, 85 .L2839: ldr x0, [x20, 8] adrp x28, .LANCHOR111 add x28, x28, :lo12:.LANCHOR111 mov w26, 0 bl ftl_memset bl sblk_wait_write_queue_completed mov w7, 65280 movk w7, 0x55aa, lsl 16 .L2825: adrp x25, .LANCHOR94 ldrh w0, [x25, #:lo12:.LANCHOR94] cmp w0, w26 bls .L2828 adrp x25, .LANCHOR31 mov w22, 0 add x25, x25, :lo12:.LANCHOR31 b .L2829 .L2823: mov w1, 170 b .L2839 .L2827: add x0, x21, x22, sxtw 1 mov w1, 65535 ldrh w0, [x0, 16] cmp w0, w1 beq .L2826 ldrh w1, [x28] mov w6, 1 ldr x2, [x20, 8] mov w5, 0 ldr x3, [x20, 24] str w7, [x29, 108] madd w1, w1, w0, w26 mov w0, 24 stp w1, w7, [x2] str wzr, [x3] ldrb w4, [x25] sub w0, w0, w4 lsl w6, w6, w4 ldrb w4, [x27, #:lo12:.LANCHOR131] sub w6, w6, #1 lsl w8, w6, w0 lsr w0, w1, w0 bic w1, w1, w8 and w0, w0, w6 bl flash_prog_page_en ldr w7, [x29, 108] .L2826: add w22, w22, 1 and w22, w22, 65535 .L2829: ldrb w0, [x29, 121] cmp w0, w22 bhi .L2827 add w26, w26, 1 and w26, w26, 65535 b .L2825 .L2828: adrp x26, .LANCHOR111 add x26, x26, :lo12:.LANCHOR111 mov w28, 0 .L2830: ldrh w0, [x25, #:lo12:.LANCHOR94] cmp w0, w28 bls .L2835 mov w27, 0 b .L2836 .L2834: sxtw x22, w27 mov w1, 65535 add x22, x22, 8 lsl x22, x22, 1 ldrh w0, [x21, x22] cmp w0, w1 beq .L2832 ldrh w4, [x26] mov w1, 1 madd w4, w4, w0, w28 mov x0, x20 str w4, [x20, 40] str w4, [x29, 108] bl sblk_read_page ldr x0, [x20, 8] ldr w4, [x29, 108] ldr w0, [x0] cmp w4, w0 beq .L2832 mov w0, w4 bl ftl_mask_bad_block mov w0, -1 strh w0, [x21, x22] .L2832: add w2, w27, 1 and w27, w2, 65535 .L2836: ldrb w0, [x29, 121] cmp w0, w27 bhi .L2834 add w3, w28, 1 and w28, w3, 65535 b .L2830 .L2835: mov x0, x20 bl zbuf_free ldr x0, [x24, #:lo12:.LANCHOR9] mov w1, w19 ldr w3, [x0, x23] ldrh w2, [x0, x23] adrp x0, .LC166 add x0, x0, :lo12:.LC166 ubfx x3, x3, 11, 8 and w2, w2, 2047 bl printf .L2821: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret .size ftl_ink_check_sblk, .-ftl_ink_check_sblk .section .text.ftl_alloc_sblk,"ax",@progbits .align 2 .global ftl_alloc_sblk .type ftl_alloc_sblk, %function ftl_alloc_sblk: stp x29, x30, [sp, -80]! cmp w0, 5 add x29, sp, 0 stp x23, x24, [sp, 48] and w23, w0, 65535 stp x21, x22, [sp, 32] mov w1, w23 stp x19, x20, [sp, 16] cset w22, eq mov w21, w0 str x25, [sp, 64] mov w0, 0 bl zftl_get_free_sblk and w19, w0, 65535 mov w0, 65535 cmp w19, w0 beq .L2842 adrp x0, .LANCHOR9 ubfiz x25, x19, 2, 16 lsl w22, w22, 1 mov w24, w19 ldr x20, [x0, #:lo12:.LANCHOR9] mov x23, x0 add x20, x20, x25 ldrb w1, [x20, 2] tst w1, 224 beq .L2843 adrp x1, .LANCHOR200 adrp x0, .LC0 mov w2, 1012 add x1, x1, :lo12:.LANCHOR200 add x0, x0, :lo12:.LC0 bl printf .L2843: ldrb w0, [x20, 2] bfi w0, w21, 5, 3 ubfx x1, x0, 3, 2 orr w1, w22, w1 bfi w0, w1, 3, 2 strb w0, [x20, 2] and w1, w0, 24 cmp w1, 24 bne .L2844 cbnz w22, .L2844 mov w1, 1 bfi w0, w1, 3, 2 strb w0, [x20, 2] .L2844: adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldrh w0, [x0, 150] cbz w0, .L2845 ldr x0, [x23, #:lo12:.LANCHOR9] ldrh w0, [x0, x25] tst x0, 2047 bne .L2845 cbnz w22, .L2845 mov w0, w24 bl ftl_ink_check_sblk .L2845: mov w0, w19 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .L2842: bl print_ftl_debug_info adrp x20, .LC167 mov w2, w21 add x20, x20, :lo12:.LC167 mov w1, w19 mov x0, x20 bl printf mov w1, w23 mov w0, 0 bl zftl_get_free_sblk and w19, w0, 65535 mov w2, w21 mov w1, w19 mov x0, x20 bl printf bl dump_all_list_info mov w2, 1031 adrp x1, .LANCHOR200 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR200 add x0, x0, :lo12:.LC0 bl printf b .L2845 .size ftl_alloc_sblk, .-ftl_alloc_sblk .section .text.ftl_open_sblk_init,"ax",@progbits .align 2 .global ftl_open_sblk_init .type ftl_open_sblk_init, %function ftl_open_sblk_init: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR79 stp x23, x24, [sp, 48] adrp x22, .LC168 stp x19, x20, [sp, 16] adrp x24, .LANCHOR94 mov x19, x0 mov w23, w1 add x24, x24, :lo12:.LANCHOR94 add x21, x21, :lo12:.LANCHOR79 add x22, x22, :lo12:.LC168 stp x25, x26, [sp, 64] .L2855: mov w25, 65535 .L2856: mov w0, w23 bl ftl_alloc_sblk and w20, w0, 65535 cmp w20, w25 beq .L2856 mov w1, 0 mov w0, w20 bl ftl_erase_sblk add x1, x19, 16 mov w0, w20 bl ftl_get_blk_list_in_sblk and w0, w0, 255 ldrh w1, [x24] cmp w23, 2 strb w0, [x19, 9] strh w20, [x19] strh wzr, [x19, 2] mul w0, w1, w0 strb wzr, [x19, 5] strh w0, [x19, 6] strh wzr, [x19, 10] strb w23, [x19, 4] beq .L2859 ldrb w0, [x21] mul w0, w1, w0 and w0, w0, 65535 .L2857: ldrb w2, [x21] adrp x26, .LANCHOR11 strh w0, [x19, 12] ubfiz x25, x20, 1, 16 mul w2, w2, w1 adrp x1, .LANCHOR117 ldr x3, [x1, #:lo12:.LANCHOR117] mov w1, 255 lsl w2, w2, 2 add x0, x3, x0, uxth 2 bl ftl_memset ldr x0, [x26, #:lo12:.LANCHOR11] ldrh w1, [x19, 6] strh w1, [x0, x25] ldrb w0, [x19, 9] cbnz w0, .L2854 mov w1, w20 mov x0, x22 bl printf ldr x0, [x26, #:lo12:.LANCHOR11] mov w1, -1 strh w1, [x0, x25] mov w0, 7 strb w0, [x19, 4] b .L2855 .L2859: mov w0, 0 b .L2857 .L2854: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret .size ftl_open_sblk_init, .-ftl_open_sblk_init .section .text.ftl_low_format_data_init,"ax",@progbits .align 2 .global ftl_low_format_data_init .type ftl_low_format_data_init, %function ftl_low_format_data_init: stp x29, x30, [sp, -48]! adrp x0, .LANCHOR197 mov w2, 16384 mov w1, 0 add x29, sp, 0 ldr x0, [x0, #:lo12:.LANCHOR197] stp x19, x20, [sp, 16] adrp x19, .LANCHOR110 str x21, [sp, 32] bl ftl_memset bl zftl_sblk_list_init mov w0, 1 bl ftl_alloc_sblk mov w1, 0 mov w21, w0 bl ftl_erase_sblk ldr x1, [x19, #:lo12:.LANCHOR110] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk ldr x0, [x19, #:lo12:.LANCHOR110] ldrh w20, [x0, 672] strh wzr, [x0, 690] mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth bcs .L2863 adrp x1, .LANCHOR201 adrp x0, .LC0 mov w2, 2484 add x1, x1, :lo12:.LANCHOR201 add x0, x0, :lo12:.LC0 bl printf .L2863: ldr x0, [x19, #:lo12:.LANCHOR110] mov w2, 256 mov w1, 255 add x0, x0, 416 strh wzr, [x0, 280] bl ftl_memset ldr x0, [x19, #:lo12:.LANCHOR110] mov w2, 4096 mov w1, 0 add x0, x0, 704 bl ftl_memset adrp x0, .LANCHOR31 ldr x1, [x19, #:lo12:.LANCHOR110] ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w2 adrp x2, .LANCHOR74 strh w21, [x1, 416] adrp x21, .LANCHOR12 ldrh w2, [x2, #:lo12:.LANCHOR74] strh w20, [x1, 692] sub w0, w0, w2 asr w0, w20, w0 strh w0, [x1, 694] mov w0, 1 strh w0, [x1, 688] adrp x0, .LANCHOR202 ldrh w0, [x0, #:lo12:.LANCHOR202] strh w0, [x1, 698] mov w1, 20038 ldr x0, [x21, #:lo12:.LANCHOR12] movk w1, 0x4549, lsl 16 str w1, [x0] bl ftl_alloc_sys_blk mov w20, w0 mov w1, 0 bl ftl_erase_phy_blk ldr x0, [x19, #:lo12:.LANCHOR110] mov w1, 2 strh w20, [x0, 130] mov w20, -1 strh wzr, [x0, 140] ldr x0, [x21, #:lo12:.LANCHOR12] add x0, x0, 16 strh w20, [x0, 568] strh w20, [x0, 570] strh w20, [x0, 572] strh w20, [x0, 574] bl ftl_open_sblk_init ldr x0, [x21, #:lo12:.LANCHOR12] mov w1, 3 add x0, x0, 48 bl ftl_open_sblk_init ldr x1, [x19, #:lo12:.LANCHOR110] ldr x0, [x21, #:lo12:.LANCHOR12] add x0, x0, 136 ldrh w2, [x1, 134] strh w2, [x0, -10] strh w20, [x0, -56] mov w2, -1 strh w20, [x0, -6] str w2, [x0, 408] strh wzr, [x0, -12] strh wzr, [x0, -16] strh wzr, [x0, -14] strh w2, [x1, 126] mov w2, 256 str wzr, [x0, 384] mov w1, 255 str wzr, [x0, 388] str wzr, [x0, 392] bl ftl_memset mov w2, 128 mov w1, 255 ldr x0, [x21, #:lo12:.LANCHOR12] add x0, x0, 392 bl ftl_memset bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl ftl_info_blk_init ldr x21, [sp, 32] mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ftl_low_format_data_init, .-ftl_low_format_data_init .section .text.ftl_low_format,"ax",@progbits .align 2 .global ftl_low_format .type ftl_low_format, %function ftl_low_format: stp x29, x30, [sp, -80]! mov w1, 0 adrp x0, .LC169 add x0, x0, :lo12:.LC169 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR203 stp x21, x22, [sp, 32] add x20, x20, :lo12:.LANCHOR203 stp x25, x26, [sp, 64] adrp x22, .LANCHOR6 mov x25, x22 stp x23, x24, [sp, 48] mov w19, 8 adrp x23, .LC0 bl printf .L2868: ldr x0, [x22, #:lo12:.LANCHOR6] add x0, x0, x19, sxtw ldrb w21, [x0, 32] add w0, w21, 127 and w0, w0, 255 cmp w0, 125 bhi .L2866 mov w2, 2539 mov x1, x20 add x0, x23, :lo12:.LC0 bl printf .L2866: cmp w21, 255 beq .L2867 adrp x0, .LANCHOR111 ldrh w1, [x0, #:lo12:.LANCHOR111] mov w0, 0 mul w1, w1, w21 bl flash_erase_block .L2867: add w19, w19, 1 cmp w19, 16 bne .L2868 bl sblk_init adrp x22, .LANCHOR9 bl ftl_info_blk_init adrp x19, .LANCHOR8 adrp x0, .LANCHOR192 mov w2, 16384 mov w1, 0 ldr x0, [x0, #:lo12:.LANCHOR192] bl ftl_memset ldr x0, [x22, #:lo12:.LANCHOR9] mov w3, 1 ldrh w2, [x19, #:lo12:.LANCHOR8] add x2, x0, x2, lsl 2 .L2869: cmp x0, x2 bne .L2870 adrp x21, .LANCHOR110 mov w1, 21574 adrp x24, .LANCHOR68 add x24, x24, :lo12:.LANCHOR68 ldr x0, [x21, #:lo12:.LANCHOR110] movk w1, 0x494c, lsl 16 mov w20, 0 mov w26, 1 strh wzr, [x0, 148] str w1, [x0] .L2871: ldrh w0, [x19, #:lo12:.LANCHOR8] adrp x23, .LANCHOR75 cmp w0, w20 bhi .L2880 ldr x0, [x25, #:lo12:.LANCHOR6] mov w4, 3 ldrb w2, [x23, #:lo12:.LANCHOR75] mov w10, 15 ldr x6, [x21, #:lo12:.LANCHOR110] cmp w2, 1 ldr x1, [x22, #:lo12:.LANCHOR9] ldrb w0, [x0, 47] csinc w4, w4, wzr, ne and w4, w4, 255 and w8, w2, 65535 ldrh w3, [x6, 148] udiv w0, w0, w2 and w5, w0, 65535 ubfiz x0, x0, 2, 8 add x0, x0, 4 add w20, w5, 1 add x0, x1, x0 .L2883: cmp w2, 4 add x1, x1, 4 csel w7, w10, w4, eq strb w7, [x1, -1] ldrb w7, [x1, -2] orr w7, w7, -32 strb w7, [x1, -2] cmp x1, x0 bne .L2883 mul w5, w5, w8 mov w4, 16 add w0, w8, w3 sdiv w4, w4, w2 add w0, w5, w0, uxth strh w0, [x6, 148] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] add w4, w20, w4 and w4, w4, 65535 strh w4, [x6, 134] tbz x0, 12, .L2884 adrp x0, .LC170 mov w3, w20 mov w2, 128 mov w1, 2598 add x0, x0, :lo12:.LC170 bl printf .L2884: ldr x0, [x21, #:lo12:.LANCHOR110] mov w2, 128 mov w1, 255 add x0, x0, 160 bl ftl_memset adrp x0, .LANCHOR112 ldrb w10, [x23, #:lo12:.LANCHOR75] adrp x3, .LANCHOR74 ldr x2, [x21, #:lo12:.LANCHOR110] ldrb w16, [x0, #:lo12:.LANCHOR112] adrp x0, .LANCHOR31 and w11, w10, 65535 ldr x15, [x22, #:lo12:.LANCHOR9] ldrb w4, [x0, #:lo12:.LANCHOR31] mov w0, 24 ldrh w8, [x2, 134] sub w0, w0, w4 ldrh w4, [x3, #:lo12:.LANCHOR74] mul w1, w20, w11 mov w3, 0 sub w0, w0, w4 mov w4, 1 and w1, w1, 65535 lsl w4, w4, w0 and w4, w4, 65535 .L2885: cmp w20, w8 bcc .L2891 ldrh w0, [x19, #:lo12:.LANCHOR8] strh w3, [x2, 112] sub w0, w0, w8 strh wzr, [x2, 114] strh w0, [x2, 116] strh wzr, [x2, 118] strh w8, [x2, 132] bl ftl_low_format_data_init mov w0, 0 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 .L2870: ldrb w1, [x0, 2] add x0, x0, 4 and w1, w1, 31 bfi w1, w3, 3, 2 strb w1, [x0, -2] b .L2869 .L2880: adrp x0, .LANCHOR81 strh w20, [x24] ldrb w0, [x0, #:lo12:.LANCHOR81] cbnz w0, .L2872 mov w0, w20 bl ftl_test_block .L2872: ldrb w11, [x23, #:lo12:.LANCHOR75] adrp x0, .LANCHOR112 ldr x6, [x22, #:lo12:.LANCHOR9] mov w7, 0 ldrb w14, [x0, #:lo12:.LANCHOR112] mov w10, 0 ldr x13, [x21, #:lo12:.LANCHOR110] mov w8, 0 mul w12, w20, w11 add x6, x6, x20, uxth 2 .L2873: cmp w8, w14 bcs .L2877 add w15, w11, w7 b .L2878 .L2876: add w1, w7, w12 mov w0, w8 bl flash_check_bad_block cbz w0, .L2874 ldrb w1, [x6, 3] lsl w0, w26, w7 orr w0, w0, w1 strb w0, [x6, 3] ldrh w0, [x13, 148] add w0, w0, 1 strh w0, [x13, 148] .L2875: add w7, w7, 1 .L2878: cmp w7, w15 bne .L2876 add w8, w8, 1 sub w12, w12, w11 and w8, w8, 65535 b .L2873 .L2874: add w10, w10, 1 and w10, w10, 65535 b .L2875 .L2877: cbnz w10, .L2879 ldrb w0, [x6, 2] orr w0, w0, -32 strb w0, [x6, 2] .L2879: add w20, w20, 1 and w20, w20, 65535 b .L2871 .L2891: add x13, x15, x20, uxth 2 mov w6, 0 mov w12, 0 mov w5, 0 ldrb w0, [x13, 2] orr w0, w0, -32 strb w0, [x13, 2] .L2886: cmp w5, w16 bcc .L2893 add w20, w20, 1 add w1, w1, w11 and w20, w20, 65535 and w1, w1, 65535 b .L2885 .L2889: ldrb w14, [x13, 3] add w17, w12, w7 asr w14, w14, w17 tbnz x14, 0, .L2887 cmp w10, 1 bls .L2892 and w0, w0, 1 add w0, w1, w0 and w0, w0, 65535 .L2888: add x14, x2, x3, sxtw 1 add w3, w3, 1 and w3, w3, 65535 add w0, w0, w6 strh w0, [x14, 160] .L2887: add x7, x7, 1 .L2890: and w0, w7, 65535 cmp w0, w11 bcc .L2889 add w5, w5, 1 add w6, w4, w6 and w5, w5, 65535 add w12, w12, w10 and w6, w6, 65535 b .L2886 .L2892: mov w0, w1 b .L2888 .L2893: mov x7, 0 b .L2890 .size ftl_low_format, .-ftl_low_format .section .text.ftl_re_low_format,"ax",@progbits .align 2 .global ftl_re_low_format .type ftl_re_low_format, %function ftl_re_low_format: stp x29, x30, [sp, -16]! mov w1, 1 adrp x0, .LC171 add x0, x0, :lo12:.LC171 add x29, sp, 0 bl printf bl sblk_init bl ftl_info_blk_init bl ftl_ext_info_init adrp x0, .LANCHOR110 adrp x2, .LANCHOR8 mov w3, 0 mov w4, 0 ldr x0, [x0, #:lo12:.LANCHOR110] mov w5, 0 ldrh w7, [x2, #:lo12:.LANCHOR8] adrp x2, .LANCHOR9 ldr x2, [x2, #:lo12:.LANCHOR9] ldrh w1, [x0, 134] add x2, x2, x1, uxth 2 .L2904: cmp w1, w7 bcc .L2908 strh w5, [x0, 114] strh w4, [x0, 118] strh w3, [x0, 116] strh wzr, [x0, 122] strh wzr, [x0, 120] strh wzr, [x0, 124] bl ftl_low_format_data_init mov w0, 0 ldp x29, x30, [sp], 16 ret .L2908: ldrb w6, [x2, 2] and w8, w6, 31 strb w8, [x2, 2] ands w6, w6, 24 bne .L2905 add w5, w5, 1 and w5, w5, 65535 .L2906: add w1, w1, 1 add x2, x2, 4 and w1, w1, 65535 b .L2904 .L2905: cmp w6, 16 bne .L2907 add w4, w4, 1 and w4, w4, 65535 b .L2906 .L2907: add w3, w3, 1 and w3, w3, 65535 b .L2906 .size ftl_re_low_format, .-ftl_re_low_format .section .text.pm_alloc_new_blk,"ax",@progbits .align 2 .global pm_alloc_new_blk .type pm_alloc_new_blk, %function pm_alloc_new_blk: stp x29, x30, [sp, -64]! adrp x2, .LANCHOR79 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR110 stp x21, x22, [sp, 32] ldr x1, [x20, #:lo12:.LANCHOR110] ldrb w2, [x2, #:lo12:.LANCHOR79] ldrh w0, [x1, 690] str x23, [sp, 48] add w0, w0, 1 and w0, w0, 65535 strh w0, [x1, 690] cmp w2, w0 bls .L2911 add x0, x1, x0, sxtw 1 ldrh w1, [x0, 672] mov w0, 65535 cmp w1, w0 bne .L2912 .L2911: adrp x19, .LC168 add x19, x19, :lo12:.LC168 mov w23, 65535 adrp x22, .LANCHOR9 .L2913: mov w0, 1 bl ftl_alloc_sblk and w21, w0, 65535 cmp w21, w23 beq .L2913 mov w1, 0 mov w0, w21 bl ftl_erase_sblk add x14, x20, :lo12:.LANCHOR110 ldr x1, [x20, #:lo12:.LANCHOR110] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk tst w0, 65535 bne .L2914 mov w1, w21 mov x0, x19 bl printf ldr x0, [x22, #:lo12:.LANCHOR9] add x21, x0, x21, uxth 2 ldrb w0, [x21, 2] orr w0, w0, -32 strb w0, [x21, 2] b .L2913 .L2914: ldr x0, [x14] adrp x1, .LANCHOR204 mov w2, 1 mov w19, 0 add x0, x0, 416 str w2, [x1, #:lo12:.LANCHOR204] mov w1, 65535 strh wzr, [x0, 274] .L2916: ldrh w2, [x0] cmp w2, w1 beq .L2915 add w19, w19, 1 add x0, x0, 2 and w19, w19, 65535 cmp w19, 128 bne .L2916 adrp x1, .LANCHOR205 adrp x0, .LC0 mov w2, 264 add x1, x1, :lo12:.LANCHOR205 add x0, x0, :lo12:.LC0 bl printf .L2915: ldr x0, [x20, #:lo12:.LANCHOR110] add x19, x0, x19, sxtw 1 ldrh w1, [x0, 688] strh w21, [x19, 416] add w1, w1, 1 strh w1, [x0, 688] .L2912: ldr x1, [x20, #:lo12:.LANCHOR110] ldrh w0, [x1, 690] add x0, x0, 336 ldrh w19, [x1, x0, lsl 1] mov w0, 65533 sub w1, w19, #1 cmp w0, w1, uxth bcs .L2918 adrp x1, .LANCHOR205 adrp x0, .LC0 mov w2, 270 add x1, x1, :lo12:.LANCHOR205 add x0, x0, :lo12:.LC0 bl printf .L2918: adrp x1, .LANCHOR31 mov w2, 24 ldr x0, [x20, #:lo12:.LANCHOR110] ldrb w1, [x1, #:lo12:.LANCHOR31] sub w2, w2, w1 adrp x1, .LANCHOR74 strh wzr, [x0, 696] ldrh w1, [x1, #:lo12:.LANCHOR74] strh w19, [x0, 692] sub w2, w2, w1 asr w4, w19, w2 strh w4, [x0, 694] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L2921 mov w0, 1 and w4, w4, 65535 lsl w2, w0, w2 mov w3, w19 adrp x0, .LC172 sub w2, w2, #1 mov w1, w19 add x0, x0, :lo12:.LC172 bl printf .L2921: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size pm_alloc_new_blk, .-pm_alloc_new_blk .section .text.pm_write_page,"ax",@progbits .align 2 .global pm_write_page .type pm_write_page, %function pm_write_page: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR94 stp x23, x24, [sp, 48] adrp x22, .LANCHOR111 adrp x24, .LANCHOR110 mov x23, x1 add x21, x21, :lo12:.LANCHOR94 mov x20, x24 add x22, x22, :lo12:.LANCHOR111 stp x25, x26, [sp, 64] str x27, [sp, 80] mov w25, 65535 .L2929: ldr x0, [x24, #:lo12:.LANCHOR110] ldr w1, [x0, 48] ldrh w2, [x0, 696] add w1, w1, 1 str w1, [x0, 48] ldrh w1, [x21] cmp w2, w1 bcs .L2930 ldrh w0, [x0, 692] cmp w0, w25 bne .L2931 .L2930: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush .L2931: ldr x0, [x20, #:lo12:.LANCHOR110] ldrh w0, [x0, 692] cmp w0, w25 bne .L2932 adrp x1, .LANCHOR206 adrp x0, .LC0 mov w2, 303 add x1, x1, :lo12:.LANCHOR206 add x0, x0, :lo12:.LC0 bl printf .L2932: ldr x0, [x20, #:lo12:.LANCHOR110] adrp x27, .LANCHOR207 ldrh w1, [x22] mov w2, 64 ldrh w26, [x0, 692] ldrh w0, [x0, 696] madd w26, w26, w1, w0 ldr x0, [x27, #:lo12:.LANCHOR207] mov w1, 0 bl ftl_memset ldr x6, [x27, #:lo12:.LANCHOR207] ldr x7, [x20, #:lo12:.LANCHOR110] str w19, [x6] ldr w0, [x7, 48] str w0, [x6, 4] adrp x0, .LANCHOR131 ldrb w8, [x0, #:lo12:.LANCHOR131] mov x0, x23 lsl w1, w8, 9 bl js_hash str w0, [x6, 8] ldrb w0, [x7, 694] mov x2, x23 mov w1, w26 mov w4, w8 mov x3, x6 bl ftl_prog_page ldr x2, [x20, #:lo12:.LANCHOR110] ldrh w1, [x2, 696] add w1, w1, 1 and w1, w1, 65535 strh w1, [x2, 696] cmp w1, 1 adrp x1, .LANCHOR208 beq .L2933 ldrb w3, [x1, #:lo12:.LANCHOR208] cbz w3, .L2934 .L2933: strb wzr, [x1, #:lo12:.LANCHOR208] b .L2929 .L2934: cmn w0, #1 bne .L2936 mov w1, w26 adrp x0, .LC173 add x0, x0, :lo12:.LC173 bl printf b .L2929 .L2936: ldrh w0, [x2, 698] cmp w19, w0 bcs .L2937 add x19, x2, x19, uxtw 2 str w26, [x19, 704] .L2937: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .size pm_write_page, .-pm_write_page .section .text.flash_info_flush,"ax",@progbits .align 2 .global flash_info_flush .type flash_info_flush, %function flash_info_flush: stp x29, x30, [sp, -112]! adrp x0, .LANCHOR19 add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR19] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] tbz x0, 12, .L2943 adrp x2, .LANCHOR209 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR209 mov w1, 365 add x0, x0, :lo12:.LC94 bl printf .L2943: adrp x23, .LANCHOR210 adrp x20, .LANCHOR6 mov w2, 64 mov w1, 0 ldr x0, [x23, #:lo12:.LANCHOR210] adrp x21, .LANCHOR211 adrp x22, .LANCHOR2 adrp x24, .LC175 adrp x25, .LANCHOR144 add x22, x22, :lo12:.LANCHOR2 add x24, x24, :lo12:.LC175 add x25, x25, :lo12:.LANCHOR144 bl ftl_memset add x27, x21, :lo12:.LANCHOR211 ldr x1, [x20, #:lo12:.LANCHOR6] mov w3, 16 mov w2, 4 adrp x0, .LC174 add x0, x0, :lo12:.LC174 mov w26, 0 bl rknand_print_hex ldr x6, [x20, #:lo12:.LANCHOR6] add x0, x6, 16 ldr w1, [x6, 8] bl js_hash str w0, [x6, 12] .L2944: add x28, x21, :lo12:.LANCHOR211 ldrb w4, [x21, #:lo12:.LANCHOR211] ldrh w19, [x22] mov x0, x24 mov w1, w4 ldrh w3, [x28, 2] stp w3, w4, [x29, 104] mov w2, w3 bl printf ldrh w0, [x25] ldrh w1, [x28, 2] sub w0, w0, #1 cmp w1, w0 ldp w3, w4, [x29, 104] blt .L2945 ldr x6, [x20, #:lo12:.LANCHOR6] ldrb w7, [x28, 1] strh wzr, [x28, 2] ldr w0, [x6, 4] ldrh w1, [x6, 16] add w0, w0, 1 str w0, [x6, 4] ldrb w0, [x21, #:lo12:.LANCHOR211] add w1, w1, 1 strb w0, [x28, 1] mov x0, x6 strb w7, [x21, #:lo12:.LANCHOR211] strh w1, [x0, 16]! ldr w1, [x6, 8] bl js_hash ldrh w19, [x22] str w0, [x6, 12] mul w19, w19, w7 .L2954: mov w1, w19 mov w0, 0 bl flash_erase_block b .L2946 .L2949: mov w26, 1 b .L2944 .L2945: madd w19, w19, w4, w3 cbz w1, .L2954 .L2946: ldr x2, [x20, #:lo12:.LANCHOR6] mov w1, w19 ldr x3, [x23, #:lo12:.LANCHOR210] mov w5, 1 mov w4, 4 ldr w0, [x2, 4] str w0, [x3] mov w0, 21321 movk w0, 0x5359, lsl 16 str w0, [x3, 4] mov w0, 0 bl flash_prog_page_en cmn w0, #1 ldrh w1, [x27, 2] add w1, w1, 1 strh w1, [x27, 2] bne .L2947 mov w1, w19 adrp x0, .LC176 add x0, x0, :lo12:.LC176 bl printf b .L2944 .L2947: cbz w26, .L2949 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .size flash_info_flush, .-flash_info_flush .section .text.flash_info_blk_init,"ax",@progbits .align 2 .global flash_info_blk_init .type flash_info_blk_init, %function flash_info_blk_init: stp x29, x30, [sp, -96]! adrp x0, .LANCHOR19 add x29, sp, 0 ldr w0, [x0, #:lo12:.LANCHOR19] stp x19, x20, [sp, 16] adrp x20, .LANCHOR6 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] str x27, [sp, 80] tbz x0, 12, .L2956 ldr x4, [x20, #:lo12:.LANCHOR6] adrp x2, .LANCHOR212 adrp x0, .LC177 mov w3, 2048 add x2, x2, :lo12:.LANCHOR212 mov w1, 50 add x0, x0, :lo12:.LC177 bl printf .L2956: adrp x24, .LANCHOR2 mov w23, 21321 add x26, x24, :lo12:.LANCHOR2 mov w22, 4 adrp x21, .LANCHOR210 movk w23, 0x5359, lsl 16 .L2960: mov w19, 0 .L2959: ldrh w1, [x26] mov w4, 4 ldr x3, [x21, #:lo12:.LANCHOR210] mov w0, 0 ldr x2, [x20, #:lo12:.LANCHOR6] add x27, x21, :lo12:.LANCHOR210 add x25, x20, :lo12:.LANCHOR6 madd w1, w1, w22, w19 bl flash_read_page_en cmn w0, #1 beq .L2957 ldr x2, [x20, #:lo12:.LANCHOR6] ldr w0, [x2] cmp w0, w23 beq .L2958 .L2957: add w19, w19, 1 cmp w19, 4 bne .L2959 add w22, w22, 1 cmp w22, 16 bne .L2960 .L2986: mov w0, -1 .L2955: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret .L2968: ldr x0, [x25] ldr w1, [x0] cmp w1, w23 bne .L2969 ldr w22, [x0, 4] .L2962: add x23, x19, :lo12:.LANCHOR211 ldrh w0, [x24, #:lo12:.LANCHOR2] ldr x3, [x21, #:lo12:.LANCHOR210] mov w4, 4 ldr x2, [x20, #:lo12:.LANCHOR6] ldrb w1, [x23, 1] mul w1, w1, w0 mov w0, 0 bl flash_read_page_en cmn w0, #1 beq .L2963 ldr x0, [x20, #:lo12:.LANCHOR6] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 bne .L2963 ldr w1, [x0, 4] cmp w22, w1 bcs .L2963 ldrb w1, [x0, 37] ldrb w0, [x0, 36] strb w1, [x19, #:lo12:.LANCHOR211] strb w0, [x23, 1] .L2963: ldrb w1, [x19, #:lo12:.LANCHOR211] add x22, x19, :lo12:.LANCHOR211 ldr x3, [x21, #:lo12:.LANCHOR210] mov w4, 4 ldr x2, [x20, #:lo12:.LANCHOR6] mov w0, 0 bl flash_get_last_written_page and w25, w0, 65535 add w1, w25, 1 ldrb w23, [x19, #:lo12:.LANCHOR211] strh w1, [x22, 2] mov w22, 0 ldrh w1, [x24, #:lo12:.LANCHOR2] mov w24, 21321 movk w24, 0x5359, lsl 16 mul w23, w23, w1 add w23, w23, w0, sxth .L2964: sub w0, w25, w22 sxth w19, w0 tbz w19, #31, .L2967 cmn w19, #1 bne .L2966 ldr x0, [x20, #:lo12:.LANCHOR6] ldr w1, [x0] adrp x0, .LC178 add x0, x0, :lo12:.LC178 bl printf b .L2986 .L2967: ldr x3, [x21, #:lo12:.LANCHOR210] mov w4, 4 ldr x2, [x20, #:lo12:.LANCHOR6] sub w1, w23, w22 mov w0, 0 bl flash_read_page_en cmn w0, #1 beq .L2965 ldr x0, [x20, #:lo12:.LANCHOR6] ldr w0, [x0] cmp w0, w24 beq .L2966 .L2965: add w22, w22, 1 b .L2964 .L2966: cmp w22, 1 bls .L2970 bl flash_info_flush .L2970: mov w0, 0 b .L2955 .L2958: adrp x19, .LANCHOR211 add x1, x19, :lo12:.LANCHOR211 ldrb w3, [x2, 37] mov w4, 4 ldrb w0, [x2, 36] strb w3, [x1, 1] ldrh w1, [x26] ldr x3, [x27] strb w0, [x19, #:lo12:.LANCHOR211] mul w1, w1, w0 mov w0, 0 bl flash_read_page_en cmn w0, #1 bne .L2968 .L2969: mov w22, 0 b .L2962 .size flash_info_blk_init, .-flash_info_blk_init .section .text.nand_flash_init,"ax",@progbits .align 2 .global nand_flash_init .type nand_flash_init, %function nand_flash_init: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR19 stp x19, x20, [sp, 16] mov x19, x0 ldr w0, [x21, #:lo12:.LANCHOR19] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] str x27, [sp, 80] tbz x0, 12, .L2988 adrp x2, .LANCHOR213 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR213 mov w1, 3451 add x0, x0, :lo12:.LC94 bl printf .L2988: adrp x0, .LANCHOR169 adrp x24, .LANCHOR21 adrp x22, .LANCHOR47 add x25, x22, :lo12:.LANCHOR47 str wzr, [x0, #:lo12:.LANCHOR169] mov x0, x19 bl nandc_init adrp x19, .LANCHOR32 add x0, x19, :lo12:.LANCHOR32 str x0, [x24, #:lo12:.LANCHOR21] adrp x0, .LANCHOR23 adrp x23, .LANCHOR31 mov x26, x25 mov w1, 1 mov w20, 0 strb w1, [x0, #:lo12:.LANCHOR23] mov w27, 44 mov w0, 3 mov w2, 8 strb w0, [x23, #:lo12:.LANCHOR31] mov w1, 0 adrp x0, .LANCHOR29 add x0, x0, :lo12:.LANCHOR29 bl ftl_memset mov w2, 32 mov w1, 0 adrp x0, .LANCHOR145 add x0, x0, :lo12:.LANCHOR145 bl ftl_memset .L2994: mov x1, x25 mov w0, w20 bl flash_read_id cbnz w20, .L2989 ldrb w0, [x26] sub w0, w0, #1 and w0, w0, 255 cmp w0, 253 bls .L2990 .L2992: mov w22, -2 .L2987: mov w0, w22 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .L2990: ldrb w0, [x26, 1] cmp w0, 255 beq .L2992 .L2989: ldrb w0, [x25] cmp w0, 181 bne .L2993 strb w27, [x25] .L2993: add w20, w20, 1 add x25, x25, 8 and w20, w20, 255 cmp w20, 4 bne .L2994 adrp x0, .LANCHOR214 add x8, x0, :lo12:.LANCHOR214 add x8, x8, 1 mov x7, x0 add x12, x22, :lo12:.LANCHOR47 mov x10, 0 .L2997: ldrb w2, [x8, -1] mov w11, w10 lsl x25, x10, 5 mov x1, x12 mov x0, x8 bl flash_mem_cmp8 cbnz w0, .L2995 add x0, x7, :lo12:.LANCHOR214 ubfiz x11, x11, 5, 32 add x25, x0, x25 add x0, x0, x11 adrp x1, .LANCHOR215 add x4, x1, :lo12:.LANCHOR215 ldrb w3, [x0, 22] mov x0, 0 .L2996: lsl x5, x0, 5 mov w2, w0 ldrb w5, [x5, x4] cmp w5, w3 beq .L2998 add x0, x0, 1 cmp x0, 4 bne .L2996 mov w2, w0 .L2998: ubfiz x0, x2, 5, 32 add x1, x1, :lo12:.LANCHOR215 add x1, x1, x0 mov w2, 32 adrp x0, .LANCHOR25 add x20, x19, :lo12:.LANCHOR32 add x0, x0, :lo12:.LANCHOR25 adrp x26, .LANCHOR27 bl ftl_memcpy mov w2, 32 mov x1, x25 mov x0, x20 bl ftl_memcpy ldrb w0, [x26, #:lo12:.LANCHOR27] cmp w0, 8 bhi .L2999 ldrb w0, [x20, 20] cmp w0, 60 bls .L2999 mov w0, 60 strb w0, [x20, 20] .L2999: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3029 adrp x2, .LANCHOR213 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR213 mov w1, 3478 add x0, x0, :lo12:.LC94 bl printf .L3029: ldr x0, [x24, #:lo12:.LANCHOR21] ldrh w0, [x0, 10] cmp w0, 1023 bls .L3000 mov w0, 2 strb w0, [x23, #:lo12:.LANCHOR31] .L3000: mov w0, 16384 bl ftl_malloc adrp x1, .LANCHOR173 adrp x23, .LANCHOR6 add x20, x19, :lo12:.LANCHOR32 adrp x25, .LANCHOR48 str x0, [x1, #:lo12:.LANCHOR173] mov w0, 16384 bl ftl_malloc adrp x1, .LANCHOR163 str x0, [x1, #:lo12:.LANCHOR163] mov w0, 2048 bl ftl_malloc str x0, [x23, #:lo12:.LANCHOR6] mov w0, 64 bl ftl_malloc adrp x1, .LANCHOR172 str x0, [x1, #:lo12:.LANCHOR172] mov w0, 64 bl ftl_malloc adrp x1, .LANCHOR165 str x0, [x1, #:lo12:.LANCHOR165] mov w0, 64 bl ftl_malloc adrp x1, .LANCHOR210 str x0, [x1, #:lo12:.LANCHOR210] adrp x0, .LANCHOR216 strb wzr, [x0, #:lo12:.LANCHOR216] bl flash_die_info_init ldrb w0, [x20, 18] bl flash_lsb_page_tbl_build ldrb w0, [x20, 20] adrp x20, .LANCHOR171 bl nandc_bch_sel str xzr, [x20, #:lo12:.LANCHOR171] ldr x2, [x24, #:lo12:.LANCHOR21] ldrh w0, [x2, 16] ubfx x1, x0, 8, 3 strb w1, [x25, #:lo12:.LANCHOR48] adrp x1, .LANCHOR183 ubfx x3, x0, 3, 1 strb w3, [x1, #:lo12:.LANCHOR183] adrp x1, .LANCHOR44 ubfx x3, x0, 4, 1 strb w3, [x1, #:lo12:.LANCHOR44] adrp x1, .LANCHOR83 ubfx x3, x0, 12, 1 strb w3, [x1, #:lo12:.LANCHOR83] adrp x1, .LANCHOR80 ubfx x3, x0, 13, 1 strb w3, [x1, #:lo12:.LANCHOR80] adrp x1, .LANCHOR35 ubfx x3, x0, 11, 1 strb w3, [x1, #:lo12:.LANCHOR35] adrp x3, .LANCHOR124 ldrb w1, [x2, 31] ldrb w2, [x2, 28] ubfx x4, x1, 1, 1 strb w4, [x3, #:lo12:.LANCHOR124] adrp x3, .LANCHOR217 ubfx x4, x1, 2, 1 strb w4, [x3, #:lo12:.LANCHOR217] adrp x3, .LANCHOR1 ubfx x4, x0, 14, 1 lsr w0, w0, 15 strb w4, [x3, #:lo12:.LANCHOR1] adrp x3, .LANCHOR81 strb w0, [x3, #:lo12:.LANCHOR81] adrp x0, .LANCHOR0 ubfx x3, x1, 3, 1 ubfx x1, x1, 4, 1 strb w2, [x0, #:lo12:.LANCHOR0] adrp x0, .LANCHOR30 strb w3, [x0, #:lo12:.LANCHOR30] adrp x0, .LANCHOR36 strb w1, [x0, #:lo12:.LANCHOR36] adrp x1, .LANCHOR22 mov w0, 60 strb w0, [x1, #:lo12:.LANCHOR22] ldrb w0, [x26, #:lo12:.LANCHOR27] cmp w0, 9 bne .L3001 mov w3, 70 strb w3, [x1, #:lo12:.LANCHOR22] .L3001: add x1, x19, :lo12:.LANCHOR32 adrp x24, .LANCHOR24 strb w2, [x24, #:lo12:.LANCHOR24] ldrb w2, [x1, 31] tbz x2, 0, .L3002 ldrb w1, [x1, 29] cbz w1, .L3003 mov w1, 2 .L3061: strb w1, [x24, #:lo12:.LANCHOR24] .L3002: cmp w0, 8 bne .L3004 ldrb w0, [x22, #:lo12:.LANCHOR47] mov w1, 137 cmp w0, 44 ccmp w0, w1, 4, ne bne .L3004 add x0, x19, :lo12:.LANCHOR32 ldrb w0, [x0, 28] cmp w0, 3 bne .L3004 strb wzr, [x24, #:lo12:.LANCHOR24] .L3004: add x1, x19, :lo12:.LANCHOR32 adrp x27, .LANCHOR16 ldrb w0, [x1, 19] ldrh w1, [x1, 16] strb w0, [x27, #:lo12:.LANCHOR16] tbz x1, 6, .L3006 sub w1, w0, #17 and w1, w1, 255 cmp w1, 2 ccmp w0, 21, 4, hi bne .L3007 adrp x1, micron_read_retrial add x1, x1, :lo12:micron_read_retrial str x1, [x20, #:lo12:.LANCHOR171] cmp w0, 21 adrp x0, .LANCHOR166 beq .L3008 mov w1, 15 .L3063: strb w1, [x0, #:lo12:.LANCHOR166] .L3006: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3017 adrp x2, .LANCHOR213 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR213 mov w1, 3571 add x0, x0, :lo12:.LC94 bl printf .L3017: adrp x26, .LANCHOR26 ldrb w0, [x25, #:lo12:.LANCHOR48] strb wzr, [x26, #:lo12:.LANCHOR26] tbz x0, 0, .L3018 ldrb w0, [x22, #:lo12:.LANCHOR47] cmp w0, 155 beq .L3019 mov w0, 4 bl flash_set_interface_mode mov w0, 4 bl nandc_set_if_mode .L3019: mov w0, 1 bl flash_set_interface_mode mov w0, 1 .L3065: bl nandc_set_if_mode bl flash_info_blk_init mov w22, w0 cmn w0, #1 bne .L3021 ldr x0, [x23, #:lo12:.LANCHOR6] mov w1, 17 strb w1, [x0, 32] adrp x0, .LANCHOR33 strb wzr, [x0, #:lo12:.LANCHOR33] mov w0, 0 bl zftl_flash_exit_slc_mode b .L2987 .L2995: add x10, x10, 1 add x8, x8, 32 cmp x10, 49 bne .L2997 b .L2992 .L3003: mov w1, 3 b .L3061 .L3008: mov w1, 4 b .L3063 .L3007: sub w1, w0, #65 cmp w0, 33 and w1, w1, 255 ccmp w1, 1, 0, ne bhi .L3010 adrp x0, toshiba_read_retrial add x0, x0, :lo12:toshiba_read_retrial str x0, [x20, #:lo12:.LANCHOR171] adrp x0, .LANCHOR18 mov w1, 4 strb w1, [x0, #:lo12:.LANCHOR18] .L3067: mov w1, 7 .L3066: adrp x0, .LANCHOR166 b .L3063 .L3010: sub w2, w0, #34 sub w1, w0, #67 and w2, w2, 255 and w1, w1, 255 cmp w2, 1 ccmp w1, 1, 0, hi bhi .L3011 adrp x2, toshiba_read_retrial add x2, x2, :lo12:toshiba_read_retrial str x2, [x20, #:lo12:.LANCHOR171] cmp w0, 35 mov w2, 68 ccmp w0, w2, 4, ne adrp x0, .LANCHOR166 beq .L3012 mov w2, 7 .L3062: strb w2, [x0, #:lo12:.LANCHOR166] cmp w1, 1 adrp x0, .LANCHOR18 bhi .L3014 mov w1, 4 .L3064: strb w1, [x0, #:lo12:.LANCHOR18] b .L3006 .L3012: mov w2, 17 b .L3062 .L3014: mov w1, 5 b .L3064 .L3011: sub w1, w0, #36 and w1, w1, 255 cmp w1, 1 bhi .L3015 adrp x0, toshiba_3d_read_retrial add x0, x0, :lo12:toshiba_3d_read_retrial str x0, [x20, #:lo12:.LANCHOR171] b .L3067 .L3015: cmp w0, 50 bne .L3016 adrp x0, samsung_read_retrial mov w1, 25 add x0, x0, :lo12:samsung_read_retrial str x0, [x20, #:lo12:.LANCHOR171] b .L3066 .L3016: cmp w0, 81 bne .L3006 adrp x0, ymtc_3d_read_retrial add x0, x0, :lo12:ymtc_3d_read_retrial str x0, [x20, #:lo12:.LANCHOR171] adrp x0, .LANCHOR166 mov w1, 7 strb w1, [x0, #:lo12:.LANCHOR166] adrp x0, .LANCHOR50 strb wzr, [x0, #:lo12:.LANCHOR50] b .L3006 .L3018: mov w0, 4 b .L3065 .L3021: add x19, x19, :lo12:.LANCHOR32 ldrb w0, [x19, 7] cmp w0, 9 bne .L3022 ldr x0, [x23, #:lo12:.LANCHOR6] ldrb w0, [x0, 20] cmp w0, 1 beq .L3022 strb wzr, [x24, #:lo12:.LANCHOR24] .L3022: ldrb w0, [x27, #:lo12:.LANCHOR16] sub w0, w0, #1 and w0, w0, 255 cmp w0, 7 bhi .L3023 adrp x0, hynix_read_retrial add x0, x0, :lo12:hynix_read_retrial str x0, [x20, #:lo12:.LANCHOR171] .L3023: ldrb w0, [x25, #:lo12:.LANCHOR48] tbz x0, 2, .L3025 ldr x0, [x23, #:lo12:.LANCHOR6] ldrb w0, [x0, 19] cbz w0, .L3025 adrp x0, .LANCHOR211 ldrb w1, [x0, #:lo12:.LANCHOR211] adrp x0, .LANCHOR2 ldrh w0, [x0, #:lo12:.LANCHOR2] mul w1, w1, w0 mov w0, 0 bl flash_ddr_para_scan ldrb w0, [x26, #:lo12:.LANCHOR26] cbnz w0, .L3025 ldr x0, [x23, #:lo12:.LANCHOR6] strb wzr, [x0, 19] bl flash_info_flush .L3025: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3027 adrp x2, .LANCHOR213 adrp x0, .LC94 add x2, x2, :lo12:.LANCHOR213 mov w1, 3674 add x0, x0, :lo12:.LC94 bl printf .L3027: bl nand_flash_print_info mov w22, 0 b .L2987 .size nand_flash_init, .-nand_flash_init .section .text.ftl_sysblk_dump,"ax",@progbits .align 2 .global ftl_sysblk_dump .type ftl_sysblk_dump, %function ftl_sysblk_dump: sub sp, sp, #144 stp x29, x30, [sp, 48] add x29, sp, 48 stp x19, x20, [sp, 64] mov w20, 0 stp x23, x24, [sp, 96] and w23, w0, 65535 stp x25, x26, [sp, 112] mov w0, 1 stp x27, x28, [sp, 128] adrp x25, .LANCHOR94 stp x21, x22, [sp, 80] bl buf_alloc ldr x28, [x0, 8] adrp x26, .LANCHOR111 adrp x27, .LANCHOR131 mov x24, x0 add x25, x25, :lo12:.LANCHOR94 add x26, x26, :lo12:.LANCHOR111 add x27, x27, :lo12:.LANCHOR131 mov w19, 0 .L3069: ldrh w0, [x25] cmp w0, w19 bhi .L3071 add x1, x28, 704 mov w3, 32 mov w2, 4 adrp x0, .LC179 add x0, x0, :lo12:.LC179 bl rknand_print_hex mov x0, x24 bl zbuf_free cbz w20, .L3072 adrp x1, .LANCHOR218 adrp x0, .LC0 mov w2, 1619 add x1, x1, :lo12:.LANCHOR218 add x0, x0, :lo12:.LC0 bl printf .L3072: mov w0, w20 ldp x19, x20, [sp, 64] ldp x21, x22, [sp, 80] ldp x23, x24, [sp, 96] ldp x25, x26, [sp, 112] ldp x27, x28, [sp, 128] ldp x29, x30, [sp, 48] add sp, sp, 144 ret .L3071: ldrh w21, [x26] ldrb w3, [x27] ldr x1, [x24, 8] ldr x2, [x24, 24] madd w21, w21, w23, w19 mov w0, w21 bl ftl_read_ppa_page mov w22, w0 ldr x1, [x24, 24] mov w4, w0 ldr x0, [x24, 8] mov w3, w21 ldr w2, [x1, 12] str w2, [sp, 32] ldr w2, [x1, 8] str w2, [sp, 24] ldr w2, [x1, 4] str w2, [sp, 16] mov w2, w19 add w19, w19, 1 ldr w1, [x1] and w19, w19, 65535 str w1, [sp, 8] ldr w1, [x0, 12] str w1, [sp] mov w1, w23 ldp w5, w6, [x0] ldr w7, [x0, 8] adrp x0, .LC160 add x0, x0, :lo12:.LC160 bl printf cmp w22, 512 ccmn w22, #1, 4, ne csinc w20, w20, wzr, ne b .L3069 .size ftl_sysblk_dump, .-ftl_sysblk_dump .section .text.ftl_open_sblk_recovery,"ax",@progbits .align 2 .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: stp x29, x30, [sp, -368]! add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR19 stp x19, x20, [sp, 16] mov x19, x0 ldr w0, [x21, #:lo12:.LANCHOR19] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] str x1, [x29, 136] tbz x0, 12, .L3080 ldrh w1, [x19, 2] adrp x0, .LC180 add x0, x0, :lo12:.LC180 bl printf .L3080: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3081 ldrb w1, [x19, 5] adrp x0, .LC181 add x0, x0, :lo12:.LC181 bl printf .L3081: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3082 ldrh w1, [x19] adrp x0, .LC182 add x0, x0, :lo12:.LC182 bl printf .L3082: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3083 ldrh w2, [x19, 18] adrp x0, .LC183 ldrh w1, [x19, 16] add x0, x0, :lo12:.LC183 bl printf .L3083: ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 12, .L3084 ldrb w1, [x19, 9] adrp x0, .LC184 add x0, x0, :lo12:.LC184 bl printf .L3084: ldrh w0, [x19, 10] strh w0, [x19, 14] adrp x0, .LANCHOR8 ldrh w1, [x19] ldrh w0, [x0, #:lo12:.LANCHOR8] cmp w1, w0 bcs .L3079 mov w0, 1 adrp x22, .LANCHOR131 bl buf_alloc mov x20, x0 ldrb w0, [x22, #:lo12:.LANCHOR131] add x26, x29, 176 mov w2, 64 mov w27, 2 ldr x1, [x20, 8] sub w0, w0, #2 lsl w0, w0, 7 add x0, x1, x0, sxtw 2 mov w1, 255 str x0, [x29, 144] mov x0, x26 bl ftl_memset mov w2, 64 mov w1, 255 add x0, x29, 240 bl ftl_memset mov w2, 64 mov w1, 255 add x0, x29, 304 bl ftl_memset ldrb w23, [x19, 5] adrp x0, .LANCHOR111 ldrh w24, [x19, 2] add x0, x0, :lo12:.LANCHOR111 str wzr, [x29, 156] str x0, [x29, 120] .L3086: adrp x25, .LANCHOR94 ldrh w0, [x25, #:lo12:.LANCHOR94] cmp w0, w24 bhi .L3101 .L3089: ldrh w0, [x19, 10] ldrh w1, [x19, 6] ldrh w2, [x25, #:lo12:.LANCHOR94] add w1, w1, w0 ldrb w0, [x19, 9] strh w24, [x19, 2] strb w23, [x19, 5] mul w0, w0, w2 cmp w1, w0 beq .L3102 adrp x1, .LANCHOR219 adrp x0, .LC0 mov w2, 1802 add x1, x1, :lo12:.LANCHOR219 add x0, x0, :lo12:.LC0 bl printf .L3102: adrp x2, .LANCHOR117 ldrh w3, [x19, 10] mov w0, 0 mov w1, 0 ldr x4, [x2, #:lo12:.LANCHOR117] str x2, [x29, 144] .L3103: cmp w1, w3 bcc .L3105 ldrb w23, [x19, 9] adrp x24, .LANCHOR11 ldrh w1, [x25, #:lo12:.LANCHOR94] madd w23, w23, w1, w0 ldr w0, [x21, #:lo12:.LANCHOR19] sub w23, w23, w3 and w23, w23, 65535 tbz x0, 12, .L3106 ldrh w1, [x19] ldr x2, [x24, #:lo12:.LANCHOR11] ubfiz x0, x1, 1, 16 ldrh w3, [x2, x0] adrp x0, .LC187 mov w2, w23 add x0, x0, :lo12:.LC187 bl printf .L3106: ldr x0, [x24, #:lo12:.LANCHOR11] ldrh w1, [x19] strh w23, [x0, x1, lsl 1] ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 14, .L3107 ldp w1, w2, [x29, 176] adrp x0, .LC188 ldp w3, w4, [x29, 184] add x0, x0, :lo12:.LC188 bl printf .L3107: ldr x0, [x20, 8] mov w1, 0 ldrb w2, [x22, #:lo12:.LANCHOR131] adrp x28, .LANCHOR79 mov x24, 0 lsl w2, w2, 9 bl ftl_memset adrp x0, .LC190 add x0, x0, :lo12:.LC190 str x0, [x29, 128] add x0, x28, :lo12:.LANCHOR79 str x0, [x29, 120] .L3108: ldrb w0, [x28, #:lo12:.LANCHOR79] add x1, x28, :lo12:.LANCHOR79 str w24, [x29, 168] mul w0, w0, w27 cmp w24, w0 bcc .L3120 adrp x24, .LC191 adrp x23, .LC190 add x24, x24, :lo12:.LC191 add x23, x23, :lo12:.LC190 mov x28, 0 str x1, [x29, 160] .L3121: ldr x0, [x29, 160] ldrb w0, [x0] mul w0, w0, w27 cmp w0, w28 bhi .L3127 mov x0, x20 bl zbuf_free ldrh w1, [x19, 12] ldrh w0, [x25, #:lo12:.LANCHOR94] ldrb w2, [x19, 9] madd w0, w0, w2, w1 mov x1, -4 add x0, x1, x0, sxtw 2 ldr x1, [x29, 144] ldr x1, [x1, #:lo12:.LANCHOR117] ldr w0, [x1, x0] cmn w0, #1 beq .L3128 adrp x1, .LANCHOR219 adrp x0, .LC0 mov w2, 1917 add x1, x1, :lo12:.LANCHOR219 add x0, x0, :lo12:.LC0 bl printf .L3128: ldrh w0, [x19, 6] cmp w0, 1 bne .L3079 mov x0, x19 bl ftl_write_last_log_page .L3079: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 368 ret .L3101: ldrb w23, [x19, 5] adrp x0, .LANCHOR195 add x0, x0, :lo12:.LANCHOR195 str x0, [x29, 128] .L3087: ldrb w0, [x19, 9] cmp w0, w23 bhi .L3100 add w24, w24, 1 strb wzr, [x19, 5] and w24, w24, 65535 b .L3086 .L3100: add x0, x19, x23, sxtw 1 ldrh w0, [x0, 16] str w0, [x29, 168] mov w0, 65535 ldr w1, [x29, 168] cmp w1, w0 beq .L3088 ldr x0, [x29, 120] ldrb w3, [x22, #:lo12:.LANCHOR131] ldr x2, [x20, 24] ldrh w0, [x0] madd w0, w0, w1, w24 ldr x1, [x20, 8] str w0, [x29, 160] bl ftl_read_ppa_page mov w28, w0 cmp w0, 512 beq .L3089 cmn w0, #1 beq .L3090 ldr x0, [x20, 24] ldr w1, [x0] cmn w1, #1 bne .L3090 ldr w0, [x0, 4] cmn w0, #1 bne .L3090 ldr x0, [x20, 8] ldr w0, [x0] cmn w0, #1 beq .L3089 .L3090: ldr x1, [x29, 128] mov w0, 1 strb w0, [x1] ldrb w0, [x19, 9] ldrh w1, [x19, 10] madd w0, w0, w24, w23 cmp w1, w0 beq .L3091 adrp x1, .LANCHOR219 adrp x0, .LC0 mov w2, 1694 add x1, x1, :lo12:.LANCHOR219 add x0, x0, :lo12:.LC0 bl printf .L3091: ldrh w0, [x19, 10] ldrh w1, [x19, 6] ldrb w2, [x19, 9] add w1, w1, w0 ldrh w0, [x25, #:lo12:.LANCHOR94] mul w0, w0, w2 cmp w1, w0 beq .L3092 adrp x1, .LANCHOR219 adrp x0, .LC0 mov w2, 1695 add x1, x1, :lo12:.LANCHOR219 add x0, x0, :lo12:.LC0 bl printf .L3092: ldrb w0, [x22, #:lo12:.LANCHOR131] cmp w0, 8 bls .L3093 ldr x6, [x20, 24] mov w1, 15555 movk w1, 0xf55f, lsl 16 ldr w0, [x6] cmp w0, w1 beq .L3093 cmn w28, #1 beq .L3095 ldr w0, [x6, 4] cmn w0, #1 beq .L3096 ldr w1, [x6, 16] mov w0, 21320 movk w0, 0x4841, lsl 16 cmp w1, w0 bne .L3096 ldr x0, [x29, 144] mov w1, 1024 bl js_hash ldr w1, [x6, 20] cmp w1, w0 beq .L3096 ldr w3, [x29, 160] mov w5, w0 ldr w1, [x29, 168] mov w4, w28 mov w2, w24 adrp x0, .LC185 add x0, x0, :lo12:.LC185 bl printf ldr x1, [x29, 144] mov w3, 16 mov w2, 4 adrp x0, .LC186 add x0, x0, :lo12:.LC186 bl rknand_print_hex ldr x1, [x20, 24] adrp x0, .LC147 ldrb w3, [x22, #:lo12:.LANCHOR131] mov w2, 4 add x0, x0, :lo12:.LC147 lsr w3, w3, 1 bl rknand_print_hex .L3095: ldrh w0, [x19, 6] mov w27, 4 sub w0, w0, #1 strh w0, [x19, 6] ldrh w0, [x19, 10] add w0, w0, 1 strh w0, [x19, 10] mov w0, 1 str w0, [x29, 156] .L3088: add w23, w23, 1 and w23, w23, 65535 b .L3087 .L3093: cmn w28, #1 beq .L3095 .L3096: ldr x1, [x20, 24] ldr w0, [x1, 4] cmn w0, #1 beq .L3095 ldr w1, [x1] mov w2, 15555 movk w2, 0xf55f, lsl 16 cmp w1, w2 beq .L3095 bl lpa_hash_get_ppa ldr x1, [x29, 136] cbz x1, .L3098 ldr x3, [x20, 24] ldr w1, [x3, 8] cmp w0, w1 beq .L3098 cmn w0, #1 beq .L3098 adrp x4, .LANCHOR31 adrp x5, .LANCHOR74 mov w28, 24 mov w27, 1 ldrb w1, [x4, #:lo12:.LANCHOR31] ldrh w6, [x5, #:lo12:.LANCHOR74] sub w1, w28, w1 sub w1, w1, w6 lsr w2, w0, w6 adrp x6, .LANCHOR75 lsl w1, w27, w1 sub w1, w1, #1 and w1, w1, w2 ldrb w2, [x6, #:lo12:.LANCHOR75] udiv w1, w1, w2 ldr x2, [x29, 136] ldrh w2, [x2] cmp w2, w1, uxth bne .L3098 ldr w8, [x3] adrp x7, .LANCHOR190 ldrb w3, [x22, #:lo12:.LANCHOR131] add x2, x7, :lo12:.LANCHOR190 ldr x1, [x20, 8] str w8, [x29, 156] str x7, [x29, 168] stp x6, x4, [x29, 96] str x5, [x29, 112] bl ftl_read_ppa_page ldr x7, [x29, 168] ldr w8, [x29, 156] ldr w0, [x7, #:lo12:.LANCHOR190] cmp w8, w0 bhi .L3098 ldr x0, [x20, 24] ldr w0, [x0, 8] cmn w0, #1 beq .L3095 ldp x6, x4, [x29, 96] ldr x5, [x29, 112] ldrb w2, [x4, #:lo12:.LANCHOR31] ldrh w1, [x5, #:lo12:.LANCHOR74] sub w28, w28, w2 sub w28, w28, w1 lsr w0, w0, w1 lsl w27, w27, w28 sub w27, w27, #1 and w27, w27, w0 ldrb w0, [x6, #:lo12:.LANCHOR75] udiv w0, w27, w0 bl ftl_vpn_decrement b .L3095 .L3105: ldrh w2, [x19, 12] add w2, w2, w1 ldr w2, [x4, x2, lsl 2] cmn w2, #1 beq .L3104 add w23, w0, 1 and w0, w23, 65535 .L3104: add w1, w1, 1 b .L3103 .L3120: ldr w0, [x26, x24, lsl 2] cmn w0, #1 bne .L3109 .L3113: adrp x0, .LANCHOR110 ldr x1, [x20, 24] mov w23, -1 mov x2, 0 ldr x0, [x0, #:lo12:.LANCHOR110] ldr w0, [x0, 8] stp w0, w23, [x1] ldr x0, [x20, 8] stp w23, wzr, [x1, 8] str wzr, [x1, 16]! str wzr, [x0] mov w0, 2 bl ftl_debug_info_fill .L3110: ldr w0, [x29, 156] cbz w0, .L3115 ldrh w0, [x19, 6] cmp w0, 1 bls .L3115 add x0, x21, :lo12:.LANCHOR19 str x0, [x29, 160] add x0, x22, :lo12:.LANCHOR131 str x0, [x29, 136] .L3180: mov x0, x19 bl ftl_get_new_free_page mov w4, w0 ldr x0, [x29, 160] ldr w0, [x0] tbz x0, 14, .L3117 ldrh w0, [x19, 12] mov w1, w4 ldrh w3, [x19, 10] str w4, [x29, 112] add w3, w3, w0 ldr x0, [x20, 24] sub w3, w3, #1 ldr w2, [x0, 4] ldr x0, [x29, 128] bl printf ldr w4, [x29, 112] .L3117: ldr x0, [x29, 120] ldr w2, [x29, 168] ldrh w1, [x19, 6] ldrb w0, [x0] mul w0, w0, w27 add w0, w0, 1 sub w0, w0, w2 cmp w1, w0 bls .L3115 ldr x0, [x29, 136] ldr x1, [x20, 8] ldr x2, [x20, 24] str w4, [x29, 104] ldrb w3, [x0] mov w0, w4 bl ftl_prog_ppa_page mov w1, w0 ldrh w0, [x19] str w1, [x29, 112] bl ftl_vpn_decrement ldr w1, [x29, 112] cmn w23, #1 ldr w4, [x29, 104] ccmn w1, #1, 4, ne beq .L3118 add x0, x29, 240 ldrh w1, [x19, 12] str w4, [x0, x24, lsl 2] ldrh w0, [x19, 10] add w0, w0, w1 add x1, x29, 304 sub w0, w0, #1 str w0, [x1, x24, lsl 2] .L3115: add x24, x24, 1 b .L3108 .L3109: ldrb w3, [x22, #:lo12:.LANCHOR131] ldr x1, [x20, 8] ldr x2, [x20, 24] bl ftl_read_ppa_page mov w23, w0 ldr x0, [x20, 24] ldr w0, [x0, 4] bl lpa_hash_get_ppa mov w4, w0 ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 14, .L3111 ldr x0, [x20, 24] mov w1, w4 ldr w2, [x26, x24, lsl 2] str w4, [x29, 160] ldr w3, [x0, 4] adrp x0, .LC189 add x0, x0, :lo12:.LC189 bl printf ldr w4, [x29, 160] .L3111: ldr x1, [x20, 24] mov x2, 0 ldr w0, [x26, x24, lsl 2] cmp w4, w0 mov w0, 1 stp w4, w0, [x1, 8] csinv w23, w23, wzr, eq str wzr, [x1, 16]! mov w0, 2 bl ftl_debug_info_fill cmn w23, #1 bne .L3110 b .L3113 .L3118: ldrh w0, [x19, 6] cmp w0, 1 bls .L3115 cmn w23, #1 bne .L3180 b .L3115 .L3127: add x0, x29, 240 ldr w0, [x0, x28, lsl 2] cmn w0, #1 beq .L3123 ldrb w3, [x22, #:lo12:.LANCHOR131] ldr w0, [x26, x28, lsl 2] ldr x1, [x20, 8] ldr x2, [x20, 24] bl ftl_read_ppa_page cmp w0, 256 ccmn w0, #1, 4, ne bne .L3123 add x0, x29, 240 ldrb w3, [x22, #:lo12:.LANCHOR131] ldr x1, [x20, 8] ldr x2, [x20, 24] ldr w0, [x0, x28, lsl 2] bl ftl_read_ppa_page mov w5, w0 ldr w0, [x21, #:lo12:.LANCHOR19] tbz x0, 14, .L3125 ldr x0, [x20, 24] mov w1, w5 ldr w3, [x26, x28, lsl 2] str w5, [x29, 168] ldr w2, [x0, 8] mov x0, x23 bl printf ldr w5, [x29, 168] .L3125: cmn w5, #1 beq .L3123 ldr x0, [x20, 24] ldr w2, [x26, x28, lsl 2] ldr w1, [x0, 8] cmp w2, w1 bne .L3123 ldr w1, [x21, #:lo12:.LANCHOR19] tbz x1, 14, .L3126 add x1, x29, 304 ldr w3, [x1, x28, lsl 2] ldr w1, [x0, 4] mov x0, x24 bl printf .L3126: add x1, x29, 304 ldr x0, [x20, 24] ldr w1, [x1, x28, lsl 2] str w1, [x29, 168] ldr w1, [x0, 8] ldrh w2, [x29, 168] ldr w0, [x0, 4] bl lpa_hash_update_ppa .L3123: add x28, x28, 1 b .L3121 .L3098: ldr x3, [x20, 24] adrp x0, .LANCHOR128 ldr w0, [x0, #:lo12:.LANCHOR128] ldr w1, [x3, 4] cmp w1, w0 bcs .L3095 ldrb w0, [x19, 9] ldrh w1, [x25, #:lo12:.LANCHOR94] ldrh w2, [x19, 10] mul w0, w0, w1 sub w0, w0, #1 cmp w2, w0 bge .L3095 adrp x0, .LANCHOR110 ldr w1, [x3] ldr x0, [x0, #:lo12:.LANCHOR110] ldr w4, [x0, 8] cmp w1, w4 bls .L3099 str w1, [x0, 8] .L3099: ldrh w0, [x19, 12] add w2, w2, w0 ldp w0, w1, [x3, 4] bl lpa_hash_update_ppa ldr w0, [x29, 180] str w0, [x29, 176] ldr w0, [x29, 184] str w0, [x29, 180] ldr w0, [x29, 188] str w0, [x29, 184] ldr w0, [x29, 160] str w0, [x29, 188] b .L3095 .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .section .text.dump_ftl_info,"ax",@progbits .align 2 .global dump_ftl_info .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -48]! adrp x0, .LANCHOR57 add x29, sp, 0 ldrb w1, [x0, #:lo12:.LANCHOR57] adrp x0, .LC192 stp x19, x20, [sp, 16] add x0, x0, :lo12:.LC192 stp x21, x22, [sp, 32] adrp x22, .LANCHOR110 adrp x19, .LANCHOR12 adrp x20, .LANCHOR94 bl printf adrp x21, .LANCHOR8 adrp x0, .LANCHOR191 add x1, x0, :lo12:.LANCHOR191 ldrh w3, [x1, 2] ldrb w2, [x1, 1] ldrb w1, [x0, #:lo12:.LANCHOR191] adrp x0, .LC193 add x0, x0, :lo12:.LC193 bl printf ldr x0, [x22, #:lo12:.LANCHOR110] ldrh w2, [x0, 140] ldrh w1, [x0, 130] adrp x0, .LC194 add x0, x0, :lo12:.LC194 bl printf ldr x1, [x19, #:lo12:.LANCHOR12] adrp x0, .LC195 add x0, x0, :lo12:.LC195 ldrh w5, [x1, 26] ldrh w4, [x1, 22] ldrb w3, [x1, 21] ldrh w2, [x1, 18] ldrh w1, [x1, 16] bl printf ldr x1, [x19, #:lo12:.LANCHOR12] adrp x0, .LC196 add x0, x0, :lo12:.LC196 ldrh w5, [x1, 58] ldrh w4, [x1, 54] ldrb w3, [x1, 53] ldrh w2, [x1, 50] ldrh w1, [x1, 48] bl printf ldr x1, [x19, #:lo12:.LANCHOR12] adrp x19, .LANCHOR79 adrp x0, .LC197 add x0, x0, :lo12:.LC197 ldrh w5, [x1, 90] ldrh w4, [x1, 86] ldrb w3, [x1, 85] ldrh w2, [x1, 82] ldrh w1, [x1, 80] bl printf ldrb w0, [x19, #:lo12:.LANCHOR79] mov w2, 4 ldrh w3, [x20, #:lo12:.LANCHOR94] mul w3, w3, w0 adrp x0, .LANCHOR117 ldr x1, [x0, #:lo12:.LANCHOR117] adrp x0, .LC198 lsl w3, w3, 1 add x0, x0, :lo12:.LC198 bl rknand_print_hex adrp x0, .LANCHOR11 ldrh w3, [x21, #:lo12:.LANCHOR8] mov w2, 2 ldr x1, [x0, #:lo12:.LANCHOR11] adrp x0, .LC199 add x0, x0, :lo12:.LC199 bl rknand_print_hex ldr x1, [x22, #:lo12:.LANCHOR110] mov w2, 4 adrp x0, .LC179 add x0, x0, :lo12:.LC179 add x1, x1, 704 ldrh w3, [x1, -6] bl rknand_print_hex adrp x0, .LANCHOR9 ldrh w3, [x21, #:lo12:.LANCHOR8] mov w2, 4 ldr x1, [x0, #:lo12:.LANCHOR9] adrp x0, .LC200 add x0, x0, :lo12:.LC200 bl rknand_print_hex mov w3, 256 mov w2, 2 adrp x1, .LANCHOR116 adrp x0, .LC201 add x1, x1, :lo12:.LANCHOR116 add x0, x0, :lo12:.LC201 bl rknand_print_hex ldrb w0, [x19, #:lo12:.LANCHOR79] mov w2, 2 ldrh w3, [x20, #:lo12:.LANCHOR94] ldp x21, x22, [sp, 32] ldp x19, x20, [sp, 16] mul w3, w3, w0 adrp x0, .LANCHOR118 ldp x29, x30, [sp], 48 lsl w3, w3, 1 ldr x1, [x0, #:lo12:.LANCHOR118] adrp x0, .LC202 add x0, x0, :lo12:.LC202 b rknand_print_hex .size dump_ftl_info, .-dump_ftl_info .section .text.pm_ppa_update_check,"ax",@progbits .align 2 .global pm_ppa_update_check .type pm_ppa_update_check, %function pm_ppa_update_check: adrp x4, .LANCHOR31 adrp x3, .LANCHOR74 mov w5, 24 ldrb w4, [x4, #:lo12:.LANCHOR31] ldrh w3, [x3, #:lo12:.LANCHOR74] sub w4, w5, w4 sub w5, w4, w3 mov w4, 1 lsr w3, w2, w3 lsl w4, w4, w5 sub w4, w4, #1 and w4, w4, w3 adrp x3, .LANCHOR75 ldrb w3, [x3, #:lo12:.LANCHOR75] udiv w4, w4, w3 adrp x3, .LANCHOR9 ldr x3, [x3, #:lo12:.LANCHOR9] add x4, x3, x4, uxth 2 ldrb w3, [x4, 2] ubfx x3, x3, 5, 3 cmp w3, 1 ccmp w3, 7, 4, ne bne .L3212 mov w3, w2 mov w2, w1 mov x1, x0 stp x29, x30, [sp, -16]! adrp x0, .LC203 add x0, x0, :lo12:.LC203 add x29, sp, 0 bl printf bl dump_ftl_info mov w0, -1 ldp x29, x30, [sp], 16 ret .L3212: mov w0, 0 ret .size pm_ppa_update_check, .-pm_ppa_update_check .section .text.load_l2p_region,"ax",@progbits .align 2 .type load_l2p_region, %function load_l2p_region: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 65535 stp x21, x22, [sp, 32] and x21, x1, 65535 stp x23, x24, [sp, 48] cmp w21, 31 stp x25, x26, [sp, 64] bls .L3218 adrp x1, .LANCHOR220 adrp x0, .LC0 mov w2, 32 add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf .L3218: adrp x20, .LANCHOR110 mov x25, x20 ldr x0, [x20, #:lo12:.LANCHOR110] ldrh w2, [x0, 698] cmp w2, w19 bcs .L3219 mov w1, w19 adrp x0, .LC204 add x0, x0, :lo12:.LC204 bl printf adrp x0, .LANCHOR221 mov w1, 255 ldrh w2, [x0, #:lo12:.LANCHOR221] mov x0, 0 ldr x0, [x0, 8] bl ftl_memset ldr x0, [x20, #:lo12:.LANCHOR110] ldrh w0, [x0, 698] cmp w0, w19 bcc .L3220 .L3230: mov w0, 0 .L3217: 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 .L3220: mov w2, 37 .L3231: adrp x1, .LANCHOR220 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR220 add x0, x0, :lo12:.LC0 bl printf b .L3230 .L3219: add x0, x0, x19, sxtw 2 adrp x22, .LANCHOR135 add x1, x22, :lo12:.LANCHOR135 ldr w23, [x0, 704] lsl x0, x21, 4 add x26, x1, x0 strh w19, [x1, x0] strh wzr, [x26, 2] cbnz w23, .L3222 mov w1, w19 mov w2, 0 adrp x0, .LC205 add x0, x0, :lo12:.LC205 bl printf adrp x0, .LANCHOR221 mov w1, 255 ldrh w2, [x0, #:lo12:.LANCHOR221] ldr x0, [x26, 8] bl ftl_memset b .L3230 .L3222: adrp x20, .LANCHOR207 adrp x24, .LANCHOR131 ldr x1, [x26, 8] mov w0, w23 ldr x2, [x20, #:lo12:.LANCHOR207] ldrb w3, [x24, #:lo12:.LANCHOR131] bl ftl_read_ppa_page ldr x1, [x20, #:lo12:.LANCHOR207] ldr w2, [x1] cmp w2, w19 bne .L3223 cmp w0, 512 ccmn w0, #1, 4, ne beq .L3223 .L3227: ldr x0, [x20, #:lo12:.LANCHOR207] ldr w0, [x0] cmp w19, w0 beq .L3230 mov w2, 73 b .L3231 .L3223: mov w4, w23 mov w3, w0 mov w1, w19 adrp x0, .LC206 add x0, x0, :lo12:.LC206 bl printf ldr x1, [x25, #:lo12:.LANCHOR110] add x22, x22, :lo12:.LANCHOR135 add x21, x22, x21, lsl 4 mov w2, 4 add x1, x1, 704 adrp x0, .LC207 add x0, x0, :lo12:.LC207 ldrh w3, [x1, -6] bl rknand_print_hex ldr x1, [x21, 8] mov w2, 4 ldrb w3, [x24, #:lo12:.LANCHOR131] adrp x0, .LC186 add x0, x0, :lo12:.LC186 lsl w3, w3, 7 bl rknand_print_hex ldr x1, [x20, #:lo12:.LANCHOR207] mov w3, 16 mov w2, 4 adrp x0, .LC208 add x0, x0, :lo12:.LC208 bl rknand_print_hex ldrb w3, [x24, #:lo12:.LANCHOR131] mov w0, w23 ldr x2, [x20, #:lo12:.LANCHOR207] ldr x1, [x21, 8] bl ftl_read_ppa_page cmp w0, 512 ccmn w0, #1, 4, ne bne .L3226 adrp x0, .LANCHOR221 mov w1, 255 ldrh w2, [x0, #:lo12:.LANCHOR221] ldr x0, [x21, 8] bl ftl_memset .L3228: mov w0, -1 b .L3217 .L3226: ldr x0, [x20, #:lo12:.LANCHOR207] ldr w0, [x0] cmp w19, w0 beq .L3227 b .L3228 .size load_l2p_region, .-load_l2p_region .section .text.pm_gc,"ax",@progbits .align 2 .global pm_gc .type pm_gc, %function pm_gc: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR110 stp x21, x22, [sp, 32] adrp x21, .LANCHOR148 ldr x0, [x19, #:lo12:.LANCHOR110] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] ldrh w2, [x0, 688] adrp x0, .LANCHOR152 str x27, [sp, 80] mov x20, x0 ldrh w1, [x0, #:lo12:.LANCHOR152] sub w1, w1, #1 cmp w2, w1 bge .L3233 ldr w0, [x21, #:lo12:.LANCHOR148] cbz w0, .L3234 .L3233: bl pm_free_sblk ldr x2, [x19, #:lo12:.LANCHOR110] ldrh w1, [x20, #:lo12:.LANCHOR152] sub w1, w1, #1 ldrh w3, [x2, 688] cmp w3, w1 bge .L3235 ldr w1, [x21, #:lo12:.LANCHOR148] cbz w1, .L3234 .L3235: add x0, x2, x0, uxth 1 str wzr, [x21, #:lo12:.LANCHOR148] mov w20, 65535 ldrh w21, [x0, 416] cmp w21, w20 bne .L3237 adrp x1, .LANCHOR222 add x1, x1, :lo12:.LANCHOR222 mov w2, 182 adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf bl pm_free_sblk ldr x1, [x19, #:lo12:.LANCHOR110] add x0, x1, x0, uxth 1 ldrh w21, [x0, 416] cmp w21, w20 beq .L3234 .L3237: bl pm_select_ram_region and x22, x0, 65535 lsl x0, x22, 4 adrp x20, .LANCHOR135 add x1, x20, :lo12:.LANCHOR135 mov x25, x22 add x23, x1, x0 ldrh w0, [x1, x0] mov w1, 65535 cmp w0, w1 beq .L3238 ldr x1, [x23, 8] cbz x1, .L3238 ldrsh w2, [x23, 2] tbz w2, #31, .L3238 bl pm_write_page ldrh w0, [x23, 2] and w0, w0, 32767 strh w0, [x23, 2] .L3238: adrp x23, .LANCHOR74 adrp x24, .LANCHOR31 add x23, x23, :lo12:.LANCHOR74 add x24, x24, :lo12:.LANCHOR31 mov w27, 0 mov w26, 24 .L3239: ldr x2, [x19, #:lo12:.LANCHOR110] ldrh w0, [x2, 698] cmp w0, w27 bhi .L3242 bl pm_free_sblk .L3234: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .L3242: ldrb w0, [x24] add x2, x2, x27, sxtw 2 ldrh w3, [x23] sub w0, w26, w0 sub w1, w0, w3 mov w0, 1 lsl w0, w0, w1 ldr w1, [x2, 704] sub w0, w0, #1 lsr w1, w1, w3 and w0, w0, w1 adrp x1, .LANCHOR75 ldrb w1, [x1, #:lo12:.LANCHOR75] udiv w0, w0, w1 cmp w21, w0, uxth bne .L3240 mov w1, w25 mov w0, w27 bl load_l2p_region cbnz w0, .L3241 add x0, x20, :lo12:.LANCHOR135 add x0, x0, x22, lsl 4 ldr x1, [x0, 8] mov w0, w27 bl pm_write_page .L3241: add x1, x20, :lo12:.LANCHOR135 lsl x0, x22, 4 mov w2, -1 strh w2, [x1, x0] .L3240: add w27, w27, 1 and w27, w27, 65535 b .L3239 .size pm_gc, .-pm_gc .section .text.pm_flush_id,"ax",@progbits .align 2 .global pm_flush_id .type pm_flush_id, %function pm_flush_id: stp x29, x30, [sp, -32]! ubfiz x0, x0, 4, 16 adrp x2, .LANCHOR135 add x2, x2, :lo12:.LANCHOR135 add x29, sp, 0 str x19, [sp, 16] add x19, x2, x0 ldrh w0, [x2, x0] ldr x1, [x19, 8] bl pm_write_page ldrh w0, [x19, 2] and w0, w0, 32767 strh w0, [x19, 2] adrp x19, .LANCHOR204 ldr w0, [x19, #:lo12:.LANCHOR204] cbz w0, .L3251 bl pm_gc str wzr, [x19, #:lo12:.LANCHOR204] .L3251: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_flush_id, .-pm_flush_id .section .text.pm_flush,"ax",@progbits .align 2 .global pm_flush .type pm_flush, %function pm_flush: stp x29, x30, [sp, -32]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR135 add x19, x19, :lo12:.LANCHOR135 mov w20, 0 add x19, x19, 2 .L3258: ldrsh w0, [x19] tbz w0, #31, .L3257 mov w0, w20 bl pm_flush_id .L3257: add w20, w20, 1 add x19, x19, 16 and w20, w20, 65535 cmp w20, 32 bne .L3258 mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_flush, .-pm_flush .section .text.flt_sys_flush,"ax",@progbits .align 2 .global flt_sys_flush .type flt_sys_flush, %function flt_sys_flush: stp x29, x30, [sp, -16]! add x29, sp, 0 bl ftl_flush bl pm_flush bl ftl_ext_info_flush ldp x29, x30, [sp], 16 mov w0, 0 b ftl_info_flush .size flt_sys_flush, .-flt_sys_flush .section .text.rk_ftl_de_init,"ax",@progbits .align 2 .global rk_ftl_de_init .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! add x29, sp, 0 bl zftl_flash_de_init bl flt_sys_flush ldp x29, x30, [sp], 16 b zftl_flash_de_init .size rk_ftl_de_init, .-rk_ftl_de_init .section .text.zftl_deinit,"ax",@progbits .align 2 .global zftl_deinit .type zftl_deinit, %function zftl_deinit: b rk_ftl_de_init .size zftl_deinit, .-zftl_deinit .section .text.pm_init,"ax",@progbits .align 2 .global pm_init .type pm_init, %function pm_init: stp x29, x30, [sp, -112]! mov w1, 1 add x29, sp, 0 stp x23, x24, [sp, 48] mov w24, w0 adrp x0, .LANCHOR148 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] adrp x19, .LANCHOR135 str wzr, [x0, #:lo12:.LANCHOR148] adrp x0, .LANCHOR204 stp x25, x26, [sp, 64] add x20, x19, :lo12:.LANCHOR135 str wzr, [x0, #:lo12:.LANCHOR204] adrp x0, .LANCHOR208 stp x27, x28, [sp, 80] adrp x22, .LANCHOR131 strb w1, [x0, #:lo12:.LANCHOR208] mov w0, 64 bl ftl_malloc add x23, x20, 512 adrp x1, .LANCHOR207 add x22, x22, :lo12:.LANCHOR131 mov x21, x1 mov w25, -1 str x0, [x1, #:lo12:.LANCHOR207] .L3268: strh w25, [x20] strh wzr, [x20, 2] cbz w24, .L3267 ldrb w0, [x22] lsl w0, w0, 9 bl ftl_malloc str x0, [x20, 8] .L3267: add x20, x20, 16 cmp x20, x23 bne .L3268 add x0, x19, :lo12:.LANCHOR135 adrp x20, .LANCHOR110 ldr x22, [x21, #:lo12:.LANCHOR207] mov w4, 4 ldr x27, [x0, 8] mov x3, x22 ldr x0, [x20, #:lo12:.LANCHOR110] mov x2, x27 ldrh w1, [x0, 692] ldrb w0, [x0, 694] bl flash_get_last_written_page sxth w26, w0 ldr x0, [x20, #:lo12:.LANCHOR110] mov w24, w26 ldrh w2, [x0, 696] cmp w2, w26 bgt .L3269 ldrh w1, [x0, 692] mov w3, w26 adrp x0, .LC209 add x0, x0, :lo12:.LC209 adrp x25, .LANCHOR131 add x25, x25, :lo12:.LANCHOR131 adrp x28, .LC210 bl printf ldr x0, [x20, #:lo12:.LANCHOR110] ldrsh w21, [x0, 696] adrp x0, .LANCHOR111 add x0, x0, :lo12:.LANCHOR111 str x0, [x29, 104] .L3270: cmp w21, w26 ble .L3273 adrp x0, .LANCHOR195 mov w1, 1 add w24, w24, 1 strb w1, [x0, #:lo12:.LANCHOR195] ldr x0, [x20, #:lo12:.LANCHOR110] strh w24, [x0, 696] bl pm_free_sblk .L3269: add x19, x19, :lo12:.LANCHOR135 adrp x0, .LANCHOR221 mov w1, 255 ldrh w2, [x0, #:lo12:.LANCHOR221] ldr x0, [x19, 8] bl ftl_memset ldr x1, [x19, 8] mov w0, -1 bl pm_write_page adrp x0, .LANCHOR195 ldrb w0, [x0, #:lo12:.LANCHOR195] cbz w0, .L3274 ldr x1, [x19, 8] mov w0, -1 bl pm_write_page ldr x1, [x19, 8] mov w0, -1 bl pm_write_page ldr x1, [x19, 8] mov w0, -1 bl pm_write_page .L3274: bl pm_free_sblk bl pm_gc mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L3273: ldr x0, [x20, #:lo12:.LANCHOR110] mov x3, x22 ldr x1, [x29, 104] mov x2, x27 ldrb w4, [x25] ldrh w23, [x0, 692] ldrh w1, [x1] ldrb w0, [x0, 694] madd w23, w23, w1, w21 mov w1, w23 bl flash_read_page_en mov w4, w0 ldr x0, [x20, #:lo12:.LANCHOR110] str w4, [x29, 100] mov w2, w23 ldr w1, [x0, 48] ldrh w3, [x0, 694] add w1, w1, 1 str w1, [x0, 48] add x0, x28, :lo12:.LC210 ldr w1, [x22] bl printf ldr w4, [x29, 100] cmp w4, 512 ccmn w4, #1, 4, ne beq .L3271 ldr x8, [x20, #:lo12:.LANCHOR110] ldr w6, [x22] ldrh w0, [x8, 698] cmp w6, w0 bcs .L3271 ldr w7, [x22, 8] cbz w7, .L3272 ldrb w1, [x25] mov x0, x27 lsl w1, w1, 9 bl js_hash cmp w7, w0 beq .L3272 adrp x0, .LC211 mov w1, w7 add x0, x0, :lo12:.LC211 bl printf .L3271: add w21, w21, 1 sxth w21, w21 b .L3270 .L3272: add x6, x8, x6, uxtw 2 str w23, [x6, 704] b .L3271 .size pm_init, .-pm_init .section .text.pm_log2phys,"ax",@progbits .align 2 .global pm_log2phys .type pm_log2phys, %function pm_log2phys: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x25, x26, [sp, 64] mov w25, w0 adrp x0, .LANCHOR128 stp x23, x24, [sp, 48] stp x19, x20, [sp, 16] mov w24, w2 stp x21, x22, [sp, 32] mov x23, x1 ldr w2, [x0, #:lo12:.LANCHOR128] str x27, [sp, 80] cmp w25, w2 bcc .L3290 mov w1, w25 adrp x0, .LC212 add x0, x0, :lo12:.LC212 bl printf mov w0, -1 cbnz w24, .L3289 str w0, [x23] .L3289: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldr x27, [sp, 80] ldp x29, x30, [sp], 96 ret .L3290: adrp x0, .LANCHOR131 adrp x21, .LANCHOR135 mov x19, 0 ldrb w20, [x0, #:lo12:.LANCHOR131] add x0, x21, :lo12:.LANCHOR135 add x0, x0, 8 lsl w22, w20, 7 udiv w22, w25, w22 and w26, w22, 65535 .L3296: ldr x1, [x0] cbz x1, .L3292 ldrh w1, [x0, -8] cmp w1, w26 bne .L3292 .L3293: ubfiz w20, w20, 7, 9 msub w25, w26, w20, w25 and x25, x25, 65535 cbnz w24, .L3294 add x0, x21, :lo12:.LANCHOR135 adrp x1, .LANCHOR31 add x0, x0, x19, lsl 4 mov w2, 24 ldr x0, [x0, 8] ldr w0, [x0, x25, lsl 2] str w0, [x23] ldrb w3, [x1, #:lo12:.LANCHOR31] mov w1, 1 sub w2, w2, w3 lsl w1, w1, w3 sub w1, w1, #1 lsr w0, w0, w2 and w0, w0, w1 adrp x1, .LANCHOR112 ldrb w1, [x1, #:lo12:.LANCHOR112] cmp w0, w1 bcc .L3295 mov w0, -1 str w0, [x23] .L3295: add x21, x21, :lo12:.LANCHOR135 add x19, x21, x19, lsl 4 ldrh w0, [x19, 2] mvn x1, x0 tst x1, 32767 beq .L3299 add w0, w0, 1 strh w0, [x19, 2] .L3299: mov w0, 0 b .L3289 .L3294: add x0, x21, :lo12:.LANCHOR135 ldr w2, [x23] add x0, x0, x19, lsl 4 ldr x1, [x0, 8] str w2, [x1, x25, lsl 2] ldrh w1, [x0, 2] orr w1, w1, -32768 strh w1, [x0, 2] adrp x0, .LANCHOR136 strb w22, [x0, #:lo12:.LANCHOR136] b .L3295 .L3292: add w19, w19, 1 add x0, x0, 16 and x19, x19, 65535 cmp w19, 32 bne .L3296 bl pm_select_ram_region and x19, x0, 65535 sbfiz x1, x19, 4, 32 add x2, x21, :lo12:.LANCHOR135 add x3, x2, x1 mov w27, w0 ldrh w2, [x2, x1] mov w1, 65535 cmp w2, w1 beq .L3297 ldrsh w1, [x3, 2] tbz w1, #31, .L3297 bl pm_flush_id .L3297: adrp x0, .LANCHOR223 mov w1, w27 strb w19, [x0, #:lo12:.LANCHOR223] mov w0, w26 bl load_l2p_region b .L3293 .size pm_log2phys, .-pm_log2phys .section .text.gc_recovery,"ax",@progbits .align 2 .global gc_recovery .type gc_recovery, %function gc_recovery: sub sp, sp, #240 adrp x0, .LANCHOR12 adrp x1, .LANCHOR84 mov w2, 65535 stp x29, x30, [sp, 32] add x29, sp, 32 stp x23, x24, [sp, 80] ldr x23, [x0, #:lo12:.LANCHOR12] strb wzr, [x1, #:lo12:.LANCHOR84] adrp x1, .LANCHOR156 stp x25, x26, [sp, 96] mov x26, x0 strb wzr, [x1, #:lo12:.LANCHOR156] add x1, x23, 80 stp x19, x20, [sp, 48] str x1, [x29, 168] stp x21, x22, [sp, 64] ldrh w1, [x23, 80] stp x27, x28, [sp, 112] cmp w1, w2 beq .L3306 mov w0, -1 strh w0, [x23, 130] mov w0, 1 bl buf_alloc mov x27, x0 ldrb w0, [x23, 89] add x1, x23, 80 adrp x3, .LANCHOR111 str x3, [x29, 152] sub w0, w0, #1 add x0, x1, x0, sxtw 1 ldrh w1, [x3, #:lo12:.LANCHOR111] ldrh w0, [x0, 16] mul w1, w0, w1 adrp x0, .LANCHOR78 str w1, [x29, 200] ldrb w2, [x0, #:lo12:.LANCHOR78] str x0, [x29, 176] cmp w2, 2 beq .L3307 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L3307 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbz w0, .L3308 .L3307: adrp x0, .LANCHOR85 ldrh w0, [x0, #:lo12:.LANCHOR85] sub w0, w0, #1 add w0, w0, w1 orr w2, w0, w2, lsl 24 str w2, [x27, 40] .L3309: mov w1, 1 mov x0, x27 bl sblk_read_page ldr w0, [x27, 52] cmp w0, 512 ccmn w0, #1, 4, ne beq .L3310 ldr x0, [x27, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 beq .L3311 .L3310: mov x0, x27 bl zbuf_free ldr x1, [x27, 24] ldr x0, [x27, 8] ldr w2, [x1, 12] str w2, [sp, 16] ldr w2, [x1, 8] str w2, [sp, 8] ldr w2, [x1, 4] str w2, [sp] ldp w3, w4, [x0] ldp w5, w6, [x0, 8] adrp x0, .LC213 ldr w7, [x1] add x0, x0, :lo12:.LC213 ldr w1, [x27, 40] ldr w2, [x27, 52] bl printf .L3400: adrp x0, .LANCHOR11 ldrh w1, [x23, 80] mov w25, 0 ldr x0, [x0, #:lo12:.LANCHOR11] strh wzr, [x0, x1, lsl 1] ldr x0, [x26, #:lo12:.LANCHOR12] ldrh w1, [x23, 80] strh w1, [x0, 130] .L3312: ldrh w0, [x23, 80] adrp x2, .LANCHOR11 ldr x2, [x2, #:lo12:.LANCHOR11] ubfiz x1, x0, 1, 16 ldrh w1, [x2, x1] cbnz w1, .L3356 bl ftl_dump_write_open_sblk .L3356: ldrh w1, [x23, 80] mov w2, w25 adrp x0, .LC215 add x0, x0, :lo12:.LC215 bl printf mov w0, -1 strh w0, [x23, 80] bl pm_flush bl ftl_ext_info_flush ldr x0, [x26, #:lo12:.LANCHOR12] mov w1, 65535 ldrh w0, [x0, 130] cmp w0, w1 beq .L3357 adrp x1, .LANCHOR8 ldrh w1, [x1, #:lo12:.LANCHOR8] cmp w1, w0 bhi .L3358 adrp x1, .LANCHOR225 adrp x0, .LC0 mov w2, 517 add x1, x1, :lo12:.LANCHOR225 add x0, x0, :lo12:.LC0 bl printf .L3358: ldr x0, [x26, #:lo12:.LANCHOR12] ldrh w0, [x0, 130] bl ftl_free_sblk .L3357: adrp x0, .LANCHOR110 ldr x1, [x0, #:lo12:.LANCHOR110] mov w0, -1 strh w0, [x1, 126] ldr x1, [x26, #:lo12:.LANCHOR12] strh w0, [x1, 130] mov w0, 0 bl ftl_info_flush .L3305: ldp x19, x20, [sp, 48] ldp x21, x22, [sp, 64] ldp x23, x24, [sp, 80] ldp x25, x26, [sp, 96] ldp x27, x28, [sp, 112] ldp x29, x30, [sp, 32] add sp, sp, 240 ret .L3308: cmp w2, 3 bne .L3309 adrp x0, .LANCHOR94 ldrh w0, [x0, #:lo12:.LANCHOR94] sub w0, w0, #1 add w0, w0, w1 orr w0, w0, 50331648 str w0, [x27, 40] b .L3309 .L3311: adrp x21, .LANCHOR224 adrp x19, .LANCHOR85 adrp x20, .LANCHOR79 adrp x24, .LANCHOR159 ldrb w0, [x21, #:lo12:.LANCHOR224] cmp w0, 2 bne .L3313 ldr x0, [x29, 176] ldrb w0, [x0, #:lo12:.LANCHOR78] cmp w0, 3 bne .L3313 ldrh w2, [x19, #:lo12:.LANCHOR85] adrp x22, .LANCHOR221 ldrb w1, [x20, #:lo12:.LANCHOR79] ldr x3, [x24, #:lo12:.LANCHOR159] ubfiz w2, w2, 2, 14 ldrh w0, [x22, #:lo12:.LANCHOR221] mul w2, w2, w1 ldr x1, [x27, 8] sub w2, w2, w0 and x0, x0, 65532 and w2, w2, 65535 add x0, x3, x0 bl ftl_memcpy adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L3314 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbz w0, .L3315 .L3314: ldr w0, [x27, 40] sub w0, w0, #1 .L3394: str w0, [x27, 40] mov w1, 1 mov x0, x27 bl sblk_read_page ldr w0, [x27, 52] cmp w0, 512 ccmn w0, #1, 4, ne beq .L3317 ldr x0, [x27, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 beq .L3318 .L3317: mov x0, x27 bl zbuf_free b .L3400 .L3315: adrp x1, .LANCHOR94 ldr w0, [x29, 200] ldrh w1, [x1, #:lo12:.LANCHOR94] sub w0, w0, #1 add w0, w0, w1 orr w0, w0, 33554432 b .L3394 .L3318: ldrh w2, [x22, #:lo12:.LANCHOR221] .L3395: ldr x1, [x27, 8] adrp x22, .LANCHOR160 ldr x0, [x24, #:lo12:.LANCHOR159] bl ftl_memcpy ldrb w1, [x20, #:lo12:.LANCHOR79] ldrh w0, [x19, #:lo12:.LANCHOR85] mul w0, w0, w1 adrp x1, .LANCHOR131 ldrb w1, [x1, #:lo12:.LANCHOR131] lsl w2, w0, 2 cmp w1, w0, lsr 6 bge .L3320 ldr x0, [x22, #:lo12:.LANCHOR160] mov w1, 0 bl ftl_memset ldrb w21, [x21, #:lo12:.LANCHOR224] cmp w21, 1 bne .L3361 ldrb w1, [x20, #:lo12:.LANCHOR79] ldrh w0, [x19, #:lo12:.LANCHOR85] mul w0, w0, w1 adrp x1, .LANCHOR221 ldrh w1, [x1, #:lo12:.LANCHOR221] sub w25, w1, w0, lsl 2 ldr x1, [x27, 8] mov w2, w25 add x1, x1, x0, sxtw 2 ldr x0, [x22, #:lo12:.LANCHOR160] bl ftl_memcpy .L3321: adrp x0, .LANCHOR94 ldrh w0, [x0, #:lo12:.LANCHOR94] str w0, [x29, 184] ldr x0, [x29, 176] ldrb w0, [x0, #:lo12:.LANCHOR78] str w0, [x29, 188] cmp w0, 2 bne .L3322 adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbz w0, .L3323 .L3322: adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbz w0, .L3324 .L3323: ldp w0, w1, [x29, 184] mul w0, w0, w1 str w0, [x29, 184] mov w0, 1 str w0, [x29, 188] .L3324: adrp x22, .LANCHOR35 mov w28, 0 add x0, x22, :lo12:.LANCHOR35 mov w10, 0 str x0, [x29, 112] .L3325: sub w0, w28, #1 str w0, [x29, 144] ldr w0, [x29, 184] cmp w0, w28 bls .L3338 add w0, w28, w28, lsl 1 mov x20, 0 sub w0, w0, #1 str w0, [x29, 164] adrp x0, .LANCHOR36 add x0, x0, :lo12:.LANCHOR36 str x0, [x29, 120] b .L3339 .L3313: ldrh w2, [x19, #:lo12:.LANCHOR85] ldrb w0, [x20, #:lo12:.LANCHOR79] mul w2, w2, w0 lsl w2, w2, 2 b .L3395 .L3320: ldr x1, [x27, 8] mov w21, 0 add x1, x1, x0, sxtw 2 ldr x0, [x22, #:lo12:.LANCHOR160] bl ftl_memcpy .L3396: mov w25, 0 b .L3321 .L3361: mov w21, 1 b .L3396 .L3334: ldp x1, x0, [x29, 128] ldr x2, [x29, 176] ldrh w0, [x0, 96] ldrh w1, [x1] ldrb w2, [x2, #:lo12:.LANCHOR78] cmp w2, 2 mul w0, w0, w1 str w0, [x29, 200] add w1, w22, w0 beq .L3326 ldr x3, [x29, 112] ldrb w3, [x3] cbz w3, .L3327 .L3326: ldr w0, [x29, 144] add w1, w1, w0 orr w1, w1, w2, lsl 24 .L3397: str w1, [x27, 40] .L3328: mov w1, 1 str x8, [x29, 96] str w10, [x29, 104] mov x0, x27 bl sblk_read_page adrp x1, .LANCHOR160 ldr w10, [x29, 104] ldr x0, [x27, 24] ldr x8, [x29, 96] cbz w21, .L3331 ldr x2, [x1, #:lo12:.LANCHOR160] ldr w3, [x2, x8] cbnz w3, .L3331 ldr w3, [x0, 8] str w3, [x2, x8] .L3331: ldr x2, [x24, #:lo12:.LANCHOR159] ldr w6, [x0, 4] ldr w3, [x2, x8] cmp w3, w6 bne .L3332 ldr x2, [x1, #:lo12:.LANCHOR160] ldr w4, [x2, x8] ldr w2, [x0, 8] cmp w4, w2 beq .L3333 .L3332: ldr x1, [x1, #:lo12:.LANCHOR160] ldr w2, [x0, 12] str w2, [sp] str w10, [x29, 96] ldr w4, [x1, x8] ldr w5, [x0] ldr w7, [x0, 8] adrp x0, .LC214 ldr w1, [x27, 40] add x0, x0, :lo12:.LC214 ldr w2, [x27, 52] str x8, [x29, 104] bl printf ldr x0, [x24, #:lo12:.LANCHOR159] ldr x8, [x29, 104] ldr w10, [x29, 96] ldr w0, [x0, x8] cmn w0, #1 beq .L3333 mov x0, x27 bl zbuf_free adrp x0, .LANCHOR11 ldrh w1, [x23, 80] ldr x0, [x0, #:lo12:.LANCHOR11] strh wzr, [x0, x1, lsl 1] ldr x0, [x26, #:lo12:.LANCHOR12] ldrh w1, [x23, 80] strh w1, [x0, 130] b .L3312 .L3327: cmp w2, 3 bne .L3329 ldr x2, [x29, 120] ldrb w2, [x2] cbz w2, .L3330 ldr w0, [x29, 164] add w1, w1, w0 orr w1, w1, 50331648 b .L3397 .L3330: add w0, w28, w0 orr w0, w0, w22, lsl 24 .L3398: str w0, [x27, 40] b .L3328 .L3329: add w0, w28, w0 b .L3398 .L3333: add w10, w10, 1 add w22, w22, 1 add x8, x8, 4 .L3336: ldr w0, [x29, 188] cmp w0, w22 bcs .L3334 add x20, x20, 1 .L3339: ldr x0, [x29, 168] ldrb w0, [x0, 9] cmp w0, w20 ble .L3335 add x0, x23, x20, lsl 1 str x0, [x29, 136] ldr x0, [x29, 152] sbfiz x8, x10, 2, 32 mov w22, 1 add x0, x0, :lo12:.LANCHOR111 str x0, [x29, 128] b .L3336 .L3335: adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cmp w0, 0 cinc w28, w28, ne add w28, w28, 1 b .L3325 .L3338: mov x0, x27 bl zbuf_free ldr x0, [x29, 168] adrp x20, .LANCHOR11 ldrh w3, [x19, #:lo12:.LANCHOR85] mov w25, 0 ldrh w2, [x23, 80] mov w27, 0 ldr x1, [x20, #:lo12:.LANCHOR11] mov w28, 0 ldrb w0, [x0, 9] str x20, [x29, 144] mul w0, w0, w3 strh w0, [x1, x2, lsl 1] adrp x0, .LANCHOR74 add x0, x0, :lo12:.LANCHOR74 str x0, [x29, 104] .L3340: sub w0, w27, #1 str w0, [x29, 128] ldr w0, [x29, 184] cmp w0, w27 bls .L3354 add w22, w27, w27, lsl 1 mov x21, 0 sub w0, w22, #1 str w0, [x29, 120] b .L3355 .L3350: ldr x1, [x24, #:lo12:.LANCHOR159] sbfiz x0, x28, 2, 32 ldr w20, [x1, x0] cmn w20, #1 beq .L3341 adrp x1, .LANCHOR160 ldr x1, [x1, #:lo12:.LANCHOR160] ldr w0, [x1, x0] str w0, [x29, 164] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 204] cmn w0, #1 bne .L3342 mov w2, 0 add x1, x29, 204 mov w0, w20 bl pm_log2phys .L3342: ldr x0, [x29, 136] ldr x1, [x29, 152] ldr x2, [x29, 176] ldrh w0, [x0, 96] ldrh w1, [x1, #:lo12:.LANCHOR111] ldrb w2, [x2, #:lo12:.LANCHOR78] cmp w2, 2 mul w0, w0, w1 add w1, w22, w0 beq .L3343 adrp x6, .LANCHOR35 ldrb w6, [x6, #:lo12:.LANCHOR35] cbz w6, .L3344 .L3343: ldr w0, [x29, 128] add w1, w0, w1 orr w1, w1, w2, lsl 24 str w1, [x29, 200] .L3345: ldp x0, x1, [x29, 104] mov w19, 24 mov w2, 1 ldrb w1, [x1] ldrh w0, [x0] sub w19, w19, w1 ldr w1, [x29, 164] sub w19, w19, w0 lsr w0, w1, w0 lsl w19, w2, w19 sub w19, w19, #1 and w19, w19, w0 adrp x0, .LANCHOR75 ldrb w0, [x0, #:lo12:.LANCHOR75] udiv w19, w19, w0 ldr w0, [x29, 204] cmp w1, w0 and x19, x19, 65535 bne .L3348 add x1, x29, 200 mov w0, w20 bl pm_log2phys add w25, w25, 1 mov w0, w19 bl ftl_vpn_decrement .L3349: adrp x0, .LANCHOR9 add w28, w28, 1 ldr x0, [x0, #:lo12:.LANCHOR9] add x0, x0, x19, lsl 2 ldrb w0, [x0, 2] tst w0, 224 bne .L3341 ldr x0, [x29, 144] lsl x19, x19, 1 ldr x0, [x0, #:lo12:.LANCHOR11] ldrh w1, [x0, x19] cbz w1, .L3341 strh wzr, [x0, x19] .L3341: add w22, w22, 1 .L3352: ldr w0, [x29, 188] cmp w0, w22 bcs .L3350 add x21, x21, 1 .L3355: ldr x0, [x29, 168] ldrb w0, [x0, 9] cmp w0, w21 ble .L3351 add x0, x23, x21, lsl 1 mov w22, 1 str x0, [x29, 136] adrp x0, .LANCHOR31 add x0, x0, :lo12:.LANCHOR31 str x0, [x29, 112] b .L3352 .L3344: cmp w2, 3 bne .L3346 adrp x2, .LANCHOR36 ldrb w6, [x2, #:lo12:.LANCHOR36] lsl w2, w22, 24 cbz w6, .L3347 ldr w0, [x29, 120] add w1, w0, w1 orr w0, w1, w2 .L3399: str w0, [x29, 200] b .L3345 .L3347: add w0, w27, w0 orr w0, w0, w2 b .L3399 .L3346: add w0, w27, w0 b .L3399 .L3348: ldr w1, [x29, 200] cmp w0, w1 cinc w25, w25, eq b .L3349 .L3351: adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cmp w0, 0 cinc w27, w27, ne add w27, w27, 1 b .L3340 .L3354: ldr x0, [x29, 144] ldrh w1, [x23, 80] ldr x0, [x0, #:lo12:.LANCHOR11] strh w25, [x0, x1, lsl 1] ldrh w0, [x23, 80] bl zftl_insert_data_list b .L3312 .L3306: ldrh w0, [x23, 130] cmp w0, w1 beq .L3305 adrp x19, .LANCHOR110 ldr x1, [x19, #:lo12:.LANCHOR110] ldrh w1, [x1, 126] cmp w1, w0 bne .L3360 bl pm_flush ldr x0, [x26, #:lo12:.LANCHOR12] ldrh w0, [x0, 130] bl ftl_free_sblk ldr x0, [x19, #:lo12:.LANCHOR110] mov w1, -1 strh w1, [x0, 126] mov w0, 0 bl ftl_info_flush .L3360: ldr x0, [x26, #:lo12:.LANCHOR12] mov w1, -1 strh w1, [x0, 130] b .L3305 .size gc_recovery, .-gc_recovery .section .text.gc_update_l2p_map_new,"ax",@progbits .align 2 .global gc_update_l2p_map_new .type gc_update_l2p_map_new, %function gc_update_l2p_map_new: stp x29, x30, [sp, -176]! adrp x0, .LANCHOR12 adrp x1, .LANCHOR85 add x29, sp, 0 stp x21, x22, [sp, 32] ldr x21, [x0, #:lo12:.LANCHOR12] stp x25, x26, [sp, 64] ldrh w26, [x1, #:lo12:.LANCHOR85] add x1, x21, 80 stp x23, x24, [sp, 48] adrp x24, .LANCHOR19 stp x19, x20, [sp, 16] stp x27, x28, [sp, 80] stp x0, x1, [x29, 128] ldrb w1, [x1, 9] mul w26, w26, w1 ldr w1, [x24, #:lo12:.LANCHOR19] tbz x1, 8, .L3402 ldrh w1, [x21, 80] adrp x0, .LC216 add x0, x0, :lo12:.LC216 bl printf .L3402: adrp x23, .LANCHOR11 adrp x0, .LANCHOR224 ldrh w2, [x21, 80] mov x22, 0 ldr x1, [x23, #:lo12:.LANCHOR11] mov w25, 0 ldrb w0, [x0, #:lo12:.LANCHOR224] sub w0, w26, w0 strh w0, [x1, x2, lsl 1] adrp x0, .LANCHOR131 add x0, x0, :lo12:.LANCHOR131 str x0, [x29, 104] .L3403: mov w28, w22 cmp w26, w22 bhi .L3413 ldr w0, [x24, #:lo12:.LANCHOR19] tbz x0, 8, .L3414 ldr x0, [x29, 128] mov w3, w25 ldr x1, [x23, #:lo12:.LANCHOR11] ldrh w2, [x21, 80] ldr x0, [x0, #:lo12:.LANCHOR12] ldrh w2, [x1, x2, lsl 1] ldrh w1, [x0, 80] adrp x0, .LC219 add x0, x0, :lo12:.LC219 bl printf .L3414: ldrh w1, [x21, 80] ldr x0, [x23, #:lo12:.LANCHOR11] ldrh w0, [x0, x1, lsl 1] cmp w25, w0 beq .L3415 adrp x1, .LANCHOR226 adrp x0, .LC0 mov w2, 898 add x1, x1, :lo12:.LANCHOR226 add x0, x0, :lo12:.LC0 bl printf .L3415: ldrh w1, [x21, 80] ldr x0, [x23, #:lo12:.LANCHOR11] strh w25, [x0, x1, lsl 1] ldrh w0, [x21, 80] bl zftl_insert_data_list ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret .L3413: adrp x27, .LANCHOR159 lsl x19, x22, 2 ldr x0, [x27, #:lo12:.LANCHOR159] ldr w2, [x0, x19] cmn w2, #1 beq .L3404 adrp x0, .LANCHOR131 ldrb w20, [x0, #:lo12:.LANCHOR131] lsl w20, w20, 7 udiv w20, w2, w20 and w0, w20, 65535 str w0, [x29, 156] ldr w0, [x24, #:lo12:.LANCHOR19] tbz x0, 8, .L3405 ldr w1, [x29, 156] adrp x0, .LC217 mov w3, w22 add x0, x0, :lo12:.LC217 bl printf .L3405: sub w28, w26, w28 add x28, x28, x22 lsl x0, x28, 2 str x0, [x29, 144] adrp x0, .LC218 add x0, x0, :lo12:.LC218 str x0, [x29, 120] adrp x0, .LANCHOR74 add x0, x0, :lo12:.LANCHOR74 str x0, [x29, 112] .L3406: ldr x0, [x29, 144] cmp x0, x19 bne .L3412 .L3404: add x22, x22, 1 b .L3403 .L3412: ldr x0, [x27, #:lo12:.LANCHOR159] ldr w20, [x0, x19] cmn w20, #1 beq .L3407 ldr x0, [x29, 104] ldr w1, [x29, 156] ldrb w0, [x0] lsl w0, w0, 7 udiv w0, w20, w0 cmp w1, w0, uxth bne .L3407 adrp x0, .LANCHOR160 ldr x0, [x0, #:lo12:.LANCHOR160] ldr w28, [x0, x19] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 172] cmn w0, #1 bne .L3408 mov w2, 0 add x1, x29, 172 mov w0, w20 bl pm_log2phys .L3408: ldr w3, [x29, 172] cmp w28, w3 bne .L3409 adrp x0, .LANCHOR161 mov w2, 1 add x1, x29, 168 add w25, w25, 1 ldr x0, [x0, #:lo12:.LANCHOR161] ldr w0, [x0, x19] str w0, [x29, 168] mov w0, w20 bl pm_log2phys ldr x0, [x29, 112] ldrh w2, [x0] adrp x0, .LANCHOR31 ldrb w1, [x0, #:lo12:.LANCHOR31] mov w0, 24 lsr w28, w28, w2 sub w0, w0, w1 sub w1, w0, w2 mov w0, 1 lsl w0, w0, w1 sub w0, w0, #1 and w28, w0, w28 adrp x0, .LANCHOR75 ldrb w0, [x0, #:lo12:.LANCHOR75] udiv w0, w28, w0 .L3435: bl ftl_vpn_decrement ldr x0, [x27, #:lo12:.LANCHOR159] mov w1, -1 str w1, [x0, x19] .L3407: add x19, x19, 4 b .L3406 .L3409: ldr w0, [x24, #:lo12:.LANCHOR19] tbz x0, 8, .L3411 ldr x0, [x29, 120] mov w2, w28 mov w1, w20 bl printf .L3411: ldr x0, [x29, 136] ldrh w0, [x0] b .L3435 .size gc_update_l2p_map_new, .-gc_update_l2p_map_new .section .text.gc_scan_src_blk_one_page,"ax",@progbits .align 2 .global gc_scan_src_blk_one_page .type gc_scan_src_blk_one_page, %function gc_scan_src_blk_one_page: stp x29, x30, [sp, -96]! mov w3, 0 mov w4, 0 mov w5, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR70 add x1, x20, :lo12:.LANCHOR70 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] adrp x21, .LANCHOR79 stp x25, x26, [sp, 64] ldrb w6, [x21, #:lo12:.LANCHOR79] ldrb w0, [x1, 4] add x2, x1, x0, sxtw 1 ldrh w22, [x2, 40] ldrh w2, [x1, 2] .L3437: cmp w22, w5 beq .L3439 cbz w4, .L3440 add x1, x20, :lo12:.LANCHOR70 strh w2, [x1, 2] .L3440: cbz w3, .L3441 add x1, x20, :lo12:.LANCHOR70 strb w0, [x1, 4] .L3441: mov w0, 1 adrp x23, .LANCHOR111 bl buf_alloc adrp x24, .LANCHOR35 mov x25, x0 add x23, x23, :lo12:.LANCHOR111 add x24, x24, :lo12:.LANCHOR35 mov w26, 1 .L3442: add x19, x20, :lo12:.LANCHOR70 ldrb w1, [x19, 6] cmp w26, w1 ble .L3452 mov x0, x25 bl zbuf_free ldrb w0, [x19, 4] ldrb w1, [x21, #:lo12:.LANCHOR79] add w0, w0, 1 and w0, w0, 255 strb w0, [x19, 4] cmp w1, w0 bne .L3436 ldrh w0, [x19, 2] strb wzr, [x19, 4] add w0, w0, 1 strh w0, [x19, 2] .L3436: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret .L3439: add w0, w0, 1 and w0, w0, 255 cmp w0, w6 bne .L3438 add w2, w2, 1 mov w0, 0 and w2, w2, 65535 mov w4, 1 .L3438: add x3, x1, x0, sxtw 1 ldrh w22, [x3, 40] mov w3, 1 b .L3437 .L3452: ldrh w0, [x23] cmp w1, 2 mul w0, w0, w22 bne .L3443 ldrh w1, [x19, 2] lsl w1, w1, 1 .L3462: sub w1, w1, #1 add w0, w26, w0 add w0, w1, w0 adrp x1, .LANCHOR78 ldrb w1, [x1, #:lo12:.LANCHOR78] orr w0, w0, w1, lsl 24 .L3461: str w0, [x25, 40] mov w1, 1 mov x0, x25 bl sblk_read_page ldr w0, [x25, 52] cmp w0, 512 ccmn w0, #1, 4, ne beq .L3449 ldr x0, [x25, 24] ldr w19, [x0, 4] mov w0, w19 bl lpa_hash_get_ppa str w0, [x29, 92] cmn w0, #1 bne .L3450 adrp x0, .LANCHOR128 ldr w0, [x0, #:lo12:.LANCHOR128] cmp w19, w0 bcs .L3450 mov w2, 0 add x1, x29, 92 mov w0, w19 bl pm_log2phys .L3450: ldr w2, [x25, 40] ldr w0, [x29, 92] cmp w2, w0 bne .L3449 add x1, x20, :lo12:.LANCHOR70 adrp x4, .LANCHOR76 ldr x4, [x4, #:lo12:.LANCHOR76] ldrh w0, [x1, 24] ubfiz x3, x0, 2, 16 add w0, w0, 1 str w2, [x4, x3] strh w0, [x1, 24] .L3449: add x1, x20, :lo12:.LANCHOR70 add w26, w26, 1 ldrh w0, [x1, 26] add w0, w0, 1 strh w0, [x1, 26] b .L3442 .L3443: cmp w1, 3 bne .L3445 ldrb w1, [x24] cbnz w1, .L3446 adrp x1, .LANCHOR36 ldrb w1, [x1, #:lo12:.LANCHOR36] cbz w1, .L3447 .L3446: add x1, x20, :lo12:.LANCHOR70 ldrh w1, [x1, 2] add w1, w1, w1, lsl 1 b .L3462 .L3447: ldrh w1, [x19, 2] add w0, w1, w0 orr w0, w0, w26, lsl 24 b .L3461 .L3445: ldrh w1, [x19, 2] add w0, w1, w0 b .L3461 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .section .text.gc_scan_src_blk,"ax",@progbits .align 2 .global gc_scan_src_blk .type gc_scan_src_blk, %function gc_scan_src_blk: stp x29, x30, [sp, -112]! mov w0, 65535 add x29, sp, 0 stp x21, x22, [sp, 32] adrp x21, .LANCHOR70 stp x19, x20, [sp, 16] ldrh w1, [x21, #:lo12:.LANCHOR70] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] cmp w1, w0 stp x27, x28, [sp, 80] bne .L3464 adrp x1, .LANCHOR227 adrp x0, .LC0 mov w2, 1505 add x1, x1, :lo12:.LANCHOR227 add x0, x0, :lo12:.LC0 bl printf .L3464: ldrh w1, [x21, #:lo12:.LANCHOR70] mov w0, 65535 cmp w1, w0 beq .L3494 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L3466 adrp x2, .LANCHOR11 ubfiz x0, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR11] ldrh w2, [x2, x0] adrp x0, .LC220 add x0, x0, :lo12:.LC220 bl printf .L3466: ldrh w0, [x21, #:lo12:.LANCHOR70] add x14, x21, :lo12:.LANCHOR70 add x1, x14, 40 bl ftl_get_blk_list_in_sblk and w1, w0, 255 strb w1, [x14, 5] cbnz w1, .L3467 mov w0, -1 strh w0, [x21, #:lo12:.LANCHOR70] .L3494: mov w0, 0 b .L3463 .L3467: adrp x4, .LANCHOR9 ldrh w3, [x21, #:lo12:.LANCHOR70] mov x19, x4 ldr x1, [x4, #:lo12:.LANCHOR9] mov x2, x3 add x1, x1, x3, lsl 2 ldrb w1, [x1, 2] and w1, w1, 224 cmp w1, 32 beq .L3468 cmp w1, 224 beq .L3468 cbz w1, .L3469 adrp x1, .LANCHOR12 ldr x1, [x1, #:lo12:.LANCHOR12] ldrh w3, [x1, 16] cmp w3, w2 beq .L3468 ldrh w3, [x1, 48] cmp w3, w2 beq .L3468 ldrh w1, [x1, 80] cmp w1, w2 bne .L3514 .L3468: add x0, x21, :lo12:.LANCHOR70 mov w1, -1 strh w1, [x21, #:lo12:.LANCHOR70] strh wzr, [x0, 24] b .L3494 .L3469: adrp x0, .LANCHOR11 mov x19, x0 ldr x1, [x0, #:lo12:.LANCHOR11] ldrh w1, [x1, x3, lsl 1] cbz w1, .L3471 adrp x1, .LANCHOR227 adrp x0, .LC0 mov w2, 1530 add x1, x1, :lo12:.LANCHOR227 add x0, x0, :lo12:.LC0 bl printf .L3471: ldrh w1, [x21, #:lo12:.LANCHOR70] ldr x0, [x19, #:lo12:.LANCHOR11] strh wzr, [x0, x1, lsl 1] b .L3468 .L3514: and w0, w0, 255 sub w0, w0, #1 add x0, x14, x0, sxtw 1 ldrh w24, [x0, 40] mov w0, 65535 cmp w24, w0 bne .L3472 adrp x1, .LANCHOR227 adrp x0, .LC0 mov w2, 1540 add x1, x1, :lo12:.LANCHOR227 add x0, x0, :lo12:.LC0 bl printf .L3472: ldrh w1, [x21, #:lo12:.LANCHOR70] adrp x23, .LANCHOR111 ldr x2, [x19, #:lo12:.LANCHOR9] adrp x22, .LANCHOR94 ldrh w20, [x23, #:lo12:.LANCHOR111] ldrh w0, [x22, #:lo12:.LANCHOR94] add x1, x2, x1, lsl 2 sub w0, w0, #1 and w0, w0, 65535 mul w20, w20, w24 ldrb w1, [x1, 2] and w1, w1, 224 cmp w1, 160 bne .L3495 adrp x1, .LANCHOR78 ldrb w1, [x1, #:lo12:.LANCHOR78] and w27, w1, 65535 cmp w1, 2 orr w20, w20, w1, lsl 24 bne .L3474 adrp x0, .LANCHOR85 ldrh w0, [x0, #:lo12:.LANCHOR85] sub w0, w0, #1 and w0, w0, 65535 .L3474: adrp x1, .LANCHOR35 ldrb w1, [x1, #:lo12:.LANCHOR35] cbnz w1, .L3475 adrp x1, .LANCHOR36 ldrb w1, [x1, #:lo12:.LANCHOR36] cbz w1, .L3473 .L3475: adrp x0, .LANCHOR85 ldrh w0, [x0, #:lo12:.LANCHOR85] sub w0, w0, #1 and w0, w0, 65535 .L3473: add x25, x21, :lo12:.LANCHOR70 orr w20, w0, w20 mov w0, 1 strb w27, [x25, 6] strh wzr, [x25, 2] strb wzr, [x25, 4] strh wzr, [x25, 26] strh wzr, [x25, 28] bl buf_alloc mov x19, x0 str w20, [x0, 40] mov w1, 1 bl sblk_read_page strh wzr, [x25, 24] ldr w0, [x19, 52] cmp w0, 512 ccmn w0, #1, 4, ne bne .L3476 .L3519: mov x0, x19 bl zbuf_free .L3517: mov w0, -1 .L3463: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L3495: mov w27, 1 b .L3473 .L3476: ldr x7, [x19, 24] mov w0, 15555 movk w0, 0xf55f, lsl 16 ldr w1, [x7] cmp w1, w0 beq .L3477 mov w2, 1578 .L3520: adrp x1, .LANCHOR227 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR227 add x0, x0, :lo12:.LC0 bl printf b .L3519 .L3477: adrp x0, .LANCHOR79 ldrh w26, [x22, #:lo12:.LANCHOR94] ldrb w25, [x0, #:lo12:.LANCHOR79] adrp x0, .LANCHOR224 ldrb w0, [x0, #:lo12:.LANCHOR224] mul w26, w25, w26 cmp w0, 2 mul w26, w27, w26 and w26, w26, 65535 bne .L3478 cmp w27, 3 bne .L3478 adrp x1, .LANCHOR85 adrp x28, .LANCHOR221 adrp x27, .LANCHOR76 ldrh w1, [x1, #:lo12:.LANCHOR85] ldrh w0, [x28, #:lo12:.LANCHOR221] ldr x3, [x27, #:lo12:.LANCHOR76] ubfiz w1, w1, 2, 14 mul w25, w25, w1 ldr x1, [x19, 8] sub w25, w25, w0 and x0, x0, 65532 and w25, w25, 65535 add x0, x3, x0 mov w2, w25 bl ftl_memcpy ldr x0, [x19, 24] ldr w6, [x0, 4] cbz w6, .L3479 ldr x0, [x19, 8] mov w1, w25 bl js_hash cmp w6, w0 beq .L3479 mov x0, x19 bl zbuf_free ldr x0, [x19, 24] mov w3, w25 .L3518: ldr w1, [x0, 4] adrp x0, .LC221 ldr w2, [x19, 40] add x0, x0, :lo12:.LC221 bl printf b .L3517 .L3479: adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbnz w0, .L3480 adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbz w0, .L3481 .L3480: sub w0, w20, #1 str w0, [x19, 40] .L3482: mov w1, 1 mov x0, x19 bl sblk_read_page ldr w0, [x19, 52] cmp w0, 512 ccmn w0, #1, 4, ne beq .L3519 ldr x0, [x19, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 beq .L3484 mov w2, 1619 b .L3520 .L3481: ldrh w1, [x23, #:lo12:.LANCHOR111] ldrh w0, [x22, #:lo12:.LANCHOR94] sub w0, w0, #1 and w0, w0, 65535 mul w24, w1, w24 orr w0, w0, 33554432 orr w24, w0, w24 str w24, [x19, 40] b .L3482 .L3484: ldrh w2, [x28, #:lo12:.LANCHOR221] ldr x0, [x27, #:lo12:.LANCHOR76] ldr x1, [x19, 8] .L3516: adrp x20, .LANCHOR76 bl ftl_memcpy adrp x22, .LANCHOR74 adrp x23, .LANCHOR31 ldr x24, [x20, #:lo12:.LANCHOR76] add x22, x22, :lo12:.LANCHOR74 add x23, x23, :lo12:.LANCHOR31 mov x25, 0 .L3487: cmp w26, w25 bgt .L3492 mov x0, x19 bl zbuf_free adrp x0, .LANCHOR11 ldrh w1, [x21, #:lo12:.LANCHOR70] add x3, x21, :lo12:.LANCHOR70 mov x19, x0 ldr x4, [x0, #:lo12:.LANCHOR11] ubfiz x2, x1, 1, 16 ldrh w3, [x3, 24] ldrh w2, [x4, x2] cmp w2, w3 beq .L3493 adrp x0, .LC222 add x0, x0, :lo12:.LC222 bl printf .L3493: add x0, x21, :lo12:.LANCHOR70 ldrh w2, [x21, #:lo12:.LANCHOR70] ldr x1, [x19, #:lo12:.LANCHOR11] ldrh w3, [x0, 24] strh w3, [x1, x2, lsl 1] strh wzr, [x0, 28] ldrh w0, [x0, 24] b .L3463 .L3478: ldr x6, [x19, 8] lsl w20, w26, 2 mov w1, w20 mov x0, x6 bl js_hash ldr w1, [x7, 4] cmp w1, w0 beq .L3486 mov x0, x19 bl zbuf_free mov w3, w20 ldr x0, [x19, 24] b .L3518 .L3486: adrp x0, .LANCHOR76 mov w2, w20 mov x1, x6 ldr x0, [x0, #:lo12:.LANCHOR76] b .L3516 .L3492: ldr w0, [x24, x25, lsl 2] cmn w0, #1 beq .L3489 bl lpa_hash_get_ppa str w0, [x29, 108] cmn w0, #1 bne .L3490 ldr w0, [x24, x25, lsl 2] mov w2, 0 add x1, x29, 108 bl pm_log2phys .L3490: ldrb w0, [x23] mov w1, 24 ldrh w2, [x22] sub w0, w1, w0 ldr w3, [x29, 108] sub w1, w0, w2 mov w0, 1 lsl w0, w0, w1 adrp x1, .LANCHOR75 sub w0, w0, #1 lsr w2, w3, w2 ldrb w1, [x1, #:lo12:.LANCHOR75] and w0, w0, w2 ldrh w2, [x21, #:lo12:.LANCHOR70] udiv w0, w0, w1 add x1, x21, :lo12:.LANCHOR70 cmp w0, w2 bne .L3489 ldrh w0, [x1, 24] ldr x4, [x20, #:lo12:.LANCHOR76] ubfiz x2, x0, 2, 16 add w0, w0, 1 str w3, [x4, x2] strh w0, [x1, 24] .L3489: add x25, x25, 1 b .L3487 .size gc_scan_src_blk, .-gc_scan_src_blk .section .text.gc_scan_static_data,"ax",@progbits .align 2 .global gc_scan_static_data .type gc_scan_static_data, %function gc_scan_static_data: stp x29, x30, [sp, -80]! add x29, sp, 0 stp x19, x20, [sp, 16] adrp x19, .LANCHOR12 stp x21, x22, [sp, 32] ldr x0, [x19, #:lo12:.LANCHOR12] ldr w1, [x0, 544] str x23, [sp, 48] cmn w1, #1 beq .L3522 adrp x21, .LANCHOR228 adrp x22, .LC0 add x21, x21, :lo12:.LANCHOR228 add x22, x22, :lo12:.LC0 mov w20, 0 .L3530: ldr x0, [x19, #:lo12:.LANCHOR12] mov w2, 0 add x1, x29, 76 ldr w0, [x0, 544] bl pm_log2phys ldr w0, [x29, 76] cmn w0, #1 beq .L3523 mov w0, 1 bl buf_alloc ldr w1, [x29, 76] mov x23, x0 str w1, [x0, 40] mov w1, 1 bl sblk_read_page ldr w0, [x23, 52] cmp w0, 256 bne .L3524 adrp x0, .LANCHOR74 ldr w2, [x29, 76] ldrh w3, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR31 ldrb w1, [x0, #:lo12:.LANCHOR31] mov w0, 24 lsr w2, w2, w3 sub w0, w0, w1 mov w1, 1 sub w0, w0, w3 lsl w0, w1, w0 sub w0, w0, #1 and w0, w0, w2 adrp x2, .LANCHOR75 ldrb w3, [x2, #:lo12:.LANCHOR75] mov w2, 0 udiv w0, w0, w3 bl gc_add_sblk .L3524: ldr x0, [x19, #:lo12:.LANCHOR12] ldr x1, [x23, 24] ldr w0, [x0, 544] ldr w1, [x1, 4] cmp w1, w0 beq .L3525 mov w2, 2163 mov x1, x21 mov x0, x22 bl printf .L3525: mov x0, x23 bl zbuf_free .L3523: ldr x0, [x19, #:lo12:.LANCHOR12] adrp x2, .LANCHOR128 ldr w2, [x2, #:lo12:.LANCHOR128] ldr w1, [x0, 544] add w1, w1, 1 str w1, [x0, 544] cmp w1, w2 bcc .L3526 mov w1, -1 str w1, [x0, 544] ldr w1, [x0, 548] add w1, w1, 1 str w1, [x0, 548] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush .L3521: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret .L3526: ldr w0, [x29, 76] cmn w0, #1 bne .L3521 adrp x1, .LANCHOR221 add w0, w20, 1 and w0, w0, 65535 ldrh w1, [x1, #:lo12:.LANCHOR221] cmp w20, w1, lsr 2 bcs .L3521 mov w20, w0 b .L3530 .L3522: ldr w1, [x0, 536] adrp x3, .LANCHOR110 ldr w2, [x0, 12] add w1, w1, 12959744 add w1, w1, 256 cmp w2, w1 bhi .L3532 ldr x4, [x3, #:lo12:.LANCHOR110] mov w5, 5000 ldr w1, [x0, 540] add w1, w1, w5 ldr w4, [x4, 44] cmp w4, w1 bls .L3521 .L3532: ldr x1, [x3, #:lo12:.LANCHOR110] ldr w1, [x1, 44] str w1, [x0, 540] str w2, [x0, 536] str wzr, [x0, 544] b .L3521 .size gc_scan_static_data, .-gc_scan_static_data .section .text.ftl_sblk_dump,"ax",@progbits .align 2 .global ftl_sblk_dump .type ftl_sblk_dump, %function ftl_sblk_dump: sub sp, sp, #288 and x0, x0, 65535 stp x29, x30, [sp, 48] add x29, sp, 48 stp x23, x24, [sp, 96] adrp x24, .LANCHOR9 lsl x23, x0, 2 stp x19, x20, [sp, 64] str x0, [x29, 144] mov x20, x0 ldr x0, [x24, #:lo12:.LANCHOR9] str x1, [x29, 160] add x1, x0, x23 stp x21, x22, [sp, 80] stp x25, x26, [sp, 112] ldr w5, [x0, x23] ldrb w2, [x1, 2] mov w1, w20 ldrh w4, [x0, x23] adrp x0, .LC223 stp x27, x28, [sp, 128] ubfx x5, x5, 11, 8 ubfx x3, x2, 3, 2 and w4, w4, 2047 ubfx x2, x2, 5, 3 add x0, x0, :lo12:.LC223 bl printf mov w0, 65535 cmp w20, w0 beq .L3561 adrp x0, .LANCHOR8 ldrh w0, [x0, #:lo12:.LANCHOR8] cmp w0, w20 bls .L3561 ldr x0, [x24, #:lo12:.LANCHOR9] add x0, x0, x23 ldrb w0, [x0, 2] and w0, w0, 224 cmp w0, 160 bne .L3562 adrp x0, .LANCHOR78 ldrb w25, [x0, #:lo12:.LANCHOR78] .L3540: add x28, x29, 240 adrp x21, .LANCHOR94 mov w0, w20 mov w19, 0 strh w20, [x28, -32]! add x1, x28, 16 bl ftl_get_blk_list_in_sblk ldrh w2, [x21, #:lo12:.LANCHOR94] and w1, w0, 255 strb w1, [x29, 217] and w4, w0, 255 strb wzr, [x29, 213] mov w3, w25 strh wzr, [x29, 210] adrp x0, .LC224 mul w1, w1, w2 strh wzr, [x29, 218] strh w1, [x29, 214] add x0, x0, :lo12:.LC224 ldr x1, [x24, #:lo12:.LANCHOR9] add x1, x1, x23 ldrb w2, [x1, 2] mov w1, w20 ubfx x2, x2, 5, 3 bl printf mov w0, 1 bl buf_alloc str x21, [x29, 136] mov x26, x0 stp wzr, wzr, [x29, 168] adrp x0, .LANCHOR111 str wzr, [x29, 176] add x0, x0, :lo12:.LANCHOR111 str x0, [x29, 112] .L3541: ldr x0, [x29, 136] ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w0, w19 bls .L3558 lsl w0, w19, 1 mov w22, 0 sub w1, w0, #1 add w0, w0, w19 sub w0, w0, #1 stp w1, w0, [x29, 152] adrp x0, .LC160 add x0, x0, :lo12:.LC160 str x0, [x29, 120] b .L3559 .L3562: mov w25, 1 b .L3540 .L3555: ldr x0, [x29, 128] ldrh w11, [x28, x0] mov w0, 65535 cmp w11, w0 beq .L3542 ldr x0, [x29, 112] cmp w25, 3 ldrh w8, [x0] mul w1, w8, w11 add w0, w21, w1 bne .L3543 adrp x2, .LANCHOR35 ldrb w2, [x2, #:lo12:.LANCHOR35] cbz w2, .L3544 adrp x1, .LANCHOR78 ldrb w8, [x1, #:lo12:.LANCHOR78] ldr w1, [x29, 156] .L3571: add w0, w0, w1 orr w27, w0, w8, lsl 24 b .L3545 .L3544: adrp x2, .LANCHOR36 lsl w8, w21, 24 ldrb w2, [x2, #:lo12:.LANCHOR36] cbz w2, .L3546 ldr w1, [x29, 156] add w0, w0, w1 orr w27, w0, w8 .L3545: str w27, [x26, 40] mov w1, 1 str w11, [x29, 100] mov x0, x26 bl sblk_read_page ldr x1, [x26, 24] mov w3, w27 ldr x0, [x26, 8] ldr w12, [x26, 52] ldr w11, [x29, 100] ldr w2, [x1, 12] mov w4, w12 str w2, [sp, 32] str w12, [x29, 104] ldr w2, [x1, 8] str w2, [sp, 24] ldr w2, [x1, 4] str w2, [sp, 16] mov w2, w19 ldr w1, [x1] str w1, [sp, 8] ldr w1, [x0, 12] str w1, [sp] mov w1, w11 ldp w5, w6, [x0] ldr w7, [x0, 8] ldr x0, [x29, 120] bl printf ldr w12, [x29, 104] mov w1, 32 ldr w0, [x29, 168] cmp w12, 512 ccmn w12, #1, 4, ne csinc w0, w0, wzr, ne str w0, [x29, 168] ldr x0, [x24, #:lo12:.LANCHOR9] add x0, x0, x23 ldrb w0, [x0, 2] and w0, w0, 224 cmp w0, 224 ccmp w0, w1, 4, ne beq .L3542 ldr x0, [x26, 24] ldr w0, [x0, 4] bl lpa_hash_get_ppa str w0, [x29, 204] cmn w0, #1 bne .L3549 ldr x0, [x26, 24] mov w2, 0 add x1, x29, 204 ldr w0, [x0, 4] bl pm_log2phys .L3549: ldr w0, [x29, 204] cmp w27, w0 bne .L3550 ldr w0, [x29, 172] mov w1, w27 add w0, w0, 1 str w0, [x29, 172] ldr x0, [x26, 24] ldr w3, [x29, 172] ldr w2, [x0, 4] adrp x0, .LC225 add x0, x0, :lo12:.LC225 bl printf .L3550: ldr x0, [x29, 160] cbz x0, .L3552 ldr x0, [x29, 176] ubfiz x3, x0, 2, 32 ldr x0, [x29, 160] ldr w2, [x0, x3] ldr x0, [x26, 24] ldr w0, [x0, 4] cmp w0, w2 beq .L3553 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L3553 ldr w1, [x29, 176] adrp x0, .LC226 str x3, [x29, 104] add x0, x0, :lo12:.LC226 bl printf ldr x3, [x29, 104] .L3553: ldr x1, [x26, 24] ldr x0, [x29, 160] ldr w1, [x1, 4] ldr w0, [x0, x3] cmp w1, w0 beq .L3552 cmn w0, #1 beq .L3552 adrp x1, .LANCHOR229 adrp x0, .LC0 mov w2, 1575 add x1, x1, :lo12:.LANCHOR229 add x0, x0, :lo12:.LC0 bl printf .L3552: ldr w0, [x29, 176] add w0, w0, 1 str w0, [x29, 176] .L3542: add w21, w21, 1 and w21, w21, 65535 .L3557: cmp w25, w21 bcs .L3555 add w22, w22, 1 and w22, w22, 65535 .L3559: ldrb w0, [x29, 217] cmp w0, w22 bls .L3556 sxtw x0, w22 mov w21, 1 add x0, x0, 8 lsl x0, x0, 1 str x0, [x29, 128] b .L3557 .L3546: add w1, w19, w1 orr w27, w8, w1 b .L3545 .L3543: cmp w25, 2 bne .L3547 adrp x1, .LANCHOR78 ldrb w8, [x1, #:lo12:.LANCHOR78] ldr w1, [x29, 152] b .L3571 .L3547: add w27, w19, w1 b .L3545 .L3556: add w19, w19, 1 and w19, w19, 65535 b .L3541 .L3558: mov x0, x26 bl zbuf_free adrp x0, .LANCHOR11 ldr x1, [x29, 144] ldr w3, [x29, 172] ldr x0, [x0, #:lo12:.LANCHOR11] ldrh w2, [x0, x1, lsl 1] mov w1, w20 adrp x0, .LC227 add x0, x0, :lo12:.LC227 bl printf ldr w0, [x29, 168] .L3538: ldp x19, x20, [sp, 64] ldp x21, x22, [sp, 80] ldp x23, x24, [sp, 96] ldp x25, x26, [sp, 112] ldp x27, x28, [sp, 128] ldp x29, x30, [sp, 48] add sp, sp, 288 ret .L3561: mov w0, 0 b .L3538 .size ftl_sblk_dump, .-ftl_sblk_dump .section .text.zftl_read,"ax",@progbits .align 2 .global zftl_read .type zftl_read, %function zftl_read: sub sp, sp, #192 stp x29, x30, [sp, 16] add x29, sp, 16 stp x19, x20, [sp, 32] mov w19, w0 adrp x0, .LANCHOR19 stp x21, x22, [sp, 48] stp x23, x24, [sp, 64] mov w20, w1 ldr w0, [x0, #:lo12:.LANCHOR19] mov w23, w2 stp x25, x26, [sp, 80] mov x22, x3 stp x27, x28, [sp, 96] tbz x0, 12, .L3573 mov w3, w2 adrp x0, .LC228 mov w2, w1 add x0, x0, :lo12:.LC228 mov w1, w19 bl printf .L3573: cbnz w19, .L3574 adrp x0, .LANCHOR67 mov w19, 24576 ldr w0, [x0, #:lo12:.LANCHOR67] .L3575: cmp w0, w20 ccmp w0, w23, 0, hi bcc .L3608 add w1, w20, w23 cmp w0, w1 bcc .L3608 adrp x1, .LANCHOR110 adrp x24, .LANCHOR131 add w19, w19, w20 str x1, [x29, 112] ldr x2, [x1, #:lo12:.LANCHOR110] ldr w0, [x2, 24] add w0, w0, w23 str w0, [x2, 24] ldrb w0, [x24, #:lo12:.LANCHOR131] udiv w2, w19, w0 stp wzr, w2, [x29, 152] add w2, w23, w19 str w2, [x29, 148] sub w2, w2, #1 udiv w0, w2, w0 ldr w2, [x29, 156] mov x21, x2 sub w26, w0, w2 str w0, [x29, 144] add w26, w26, 1 adrp x0, .LANCHOR134 add x28, x0, :lo12:.LANCHOR134 .L3577: cbnz w26, .L3605 ldr w0, [x29, 152] .L3572: ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] ldp x25, x26, [sp, 80] ldp x27, x28, [sp, 96] ldp x29, x30, [sp, 16] add sp, sp, 192 ret .L3574: cmp w19, 3 bhi .L3608 lsl w19, w19, 13 mov w0, 8192 b .L3575 .L3605: ldr w0, [x29, 156] ldrb w1, [x24, #:lo12:.LANCHOR131] cmp w21, w0 ldr w0, [x29, 144] and w25, w1, 65535 ccmp w21, w0, 4, ne bne .L3609 ldr w0, [x29, 156] cmp w21, w0 bne .L3579 udiv w3, w19, w1 and w0, w23, 65535 msub w1, w3, w1, w19 and w27, w1, 65535 sub w25, w25, w27 and w25, w25, 65535 cmp w23, w25 csel w25, w0, w25, cc .L3578: adrp x20, .LANCHOR55 add x1, x20, :lo12:.LANCHOR55 add x1, x1, 2 mov w0, 0 .L3582: ldr w2, [x1, 34] cmp w21, w2 bne .L3580 ldrb w2, [x1] tbz x2, 3, .L3580 add x1, x20, :lo12:.LANCHOR55 ubfiz x0, x0, 6, 32 add x0, x1, x0 lsl w2, w25, 9 ubfiz x25, x25, 9, 16 ubfiz x27, x27, 9, 16 ldr x1, [x0, 8] mov x0, x22 add x22, x22, x25 add x1, x1, x27 bl ftl_memcpy .L3581: add w21, w21, 1 sub w26, w26, #1 .L3588: adrp x0, .LANCHOR57 ldrb w0, [x0, #:lo12:.LANCHOR57] cmp w0, 2 bls .L3589 cbnz w26, .L3577 .L3589: adrp x0, .LANCHOR134 ldrb w1, [x0, #:lo12:.LANCHOR134] cbz w1, .L3577 adrp x25, .LANCHOR133 add x0, x20, :lo12:.LANCHOR55 ldrb w2, [x25, #:lo12:.LANCHOR133] add x0, x0, x2, lsl 6 bl sblk_read_page adrp x0, .LANCHOR230 add x0, x0, :lo12:.LANCHOR230 str x0, [x29, 128] adrp x0, .LC0 add x0, x0, :lo12:.LC0 str x0, [x29, 120] .L3591: ldrb w0, [x28] cbnz w0, .L3604 mov w0, -1 strb wzr, [x28] strb w0, [x25, #:lo12:.LANCHOR133] b .L3577 .L3579: ldr w0, [x29, 148] msub w25, w1, w21, w0 and w25, w25, 255 .L3609: mov w27, 0 b .L3578 .L3580: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 bne .L3582 mov w0, w21 bl lpa_hash_get_ppa str w0, [x29, 172] cmn w0, #1 bne .L3583 mov w2, 0 add x1, x29, 172 mov w0, w21 bl pm_log2phys .L3583: ldr w0, [x29, 172] cmn w0, #1 bne .L3584 add x27, x24, :lo12:.LANCHOR131 mov w25, 0 .L3585: ldrb w0, [x27] cmp w25, w0 bcs .L3581 madd w0, w21, w0, w25 cmp w19, w0 bhi .L3586 ldr w1, [x29, 148] cmp w1, w0 bls .L3586 mov x0, x22 add x22, x22, 512 mov w2, 512 mov w1, 0 bl ftl_memset .L3586: add w25, w25, 1 b .L3585 .L3584: mov w0, 0 bl buf_alloc cbz x0, .L3588 ldr x2, [x29, 112] ldr x4, [x2, #:lo12:.LANCHOR110] ldr w2, [x4, 40] add w2, w2, 1 str w2, [x4, 40] ldr w2, [x29, 172] strb w25, [x0, 56] ubfiz x25, x25, 9, 16 str x22, [x0, 16] add x22, x22, x25 strb w27, [x0, 57] stp w21, w2, [x0, 36] str w2, [x0, 44] bl zftl_add_read_buf b .L3581 .L3604: ldrb w0, [x25, #:lo12:.LANCHOR133] cmp w0, 255 bne .L3592 ldp x0, x1, [x29, 120] mov w2, 1281 bl printf .L3592: ldrb w27, [x25, #:lo12:.LANCHOR133] add x0, x20, :lo12:.LANCHOR55 ubfiz x1, x27, 6, 8 lsl x2, x27, 6 add x1, x0, x1 str x1, [x29, 136] add x1, x0, x2 ldrb w0, [x0, x2] strb w0, [x25, #:lo12:.LANCHOR133] ldr w10, [x1, 52] cmn w10, #1 bne .L3593 adrp x0, .LANCHOR12 str w10, [x29, 152] ldr x1, [x0, #:lo12:.LANCHOR12] ldr w0, [x1, 552] add w0, w0, 1 str w0, [x1, 552] .L3594: add x0, x20, :lo12:.LANCHOR55 add x0, x0, x27, lsl 6 ldr x3, [x0, 24] ldr w0, [x0, 36] ldr w1, [x3, 4] cmp w1, w0 bne .L3595 cmn w10, #1 bne .L3596 .L3595: add x0, x20, :lo12:.LANCHOR55 ldrb w4, [x24, #:lo12:.LANCHOR131] add x0, x0, x27, lsl 6 mov w5, 1 ldrb w1, [x0, 56] ldp x2, x7, [x0, 8] cmp w1, w4 ldr w1, [x0, 40] adrp x0, .LANCHOR31 csel x2, x7, x2, cs ldrb w6, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w6 lsl w5, w5, w6 sub w5, w5, #1 lsl w6, w5, w0 lsr w0, w1, w0 bic w1, w1, w6 and w0, w0, w5 bl flash_read_page_en mov w10, w0 .L3596: add x1, x20, :lo12:.LANCHOR55 add x1, x1, x27, lsl 6 ldr x0, [x1, 24] ldr w3, [x1, 36] ldr w1, [x0, 4] cmp w1, w3 bne .L3598 cmn w10, #1 bne .L3599 .L3598: adrp x1, .LANCHOR12 add x11, x20, :lo12:.LANCHOR55 add x11, x11, x27, lsl 6 str w10, [x29, 108] ldr x2, [x1, #:lo12:.LANCHOR12] str x11, [x29, 96] ldr w1, [x2, 552] add w1, w1, 1 str w1, [x2, 552] ldrb w1, [x11, 1] ldr w2, [x0, 12] str w2, [sp] mov w2, w10 ldp w5, w6, [x0] ldr w7, [x0, 8] adrp x0, .LC230 ldr w4, [x11, 40] add x0, x0, :lo12:.LC230 bl printf adrp x0, .LANCHOR74 ldr x11, [x29, 96] ldrh w2, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR31 ldrb w1, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w1 sub w1, w0, w2 mov w0, 1 lsl w0, w0, w1 ldr w1, [x11, 40] sub w0, w0, #1 lsr w1, w1, w2 and w0, w0, w1 adrp x1, .LANCHOR75 ldrb w2, [x1, #:lo12:.LANCHOR75] mov x1, 0 udiv w0, w0, w2 bl ftl_sblk_dump ldr w10, [x29, 108] .L3599: add x0, x20, :lo12:.LANCHOR55 add x0, x0, x27, lsl 6 ldr x1, [x0, 24] ldr w0, [x0, 36] ldr w1, [x1, 4] cmp w1, w0 bne .L3600 cmn w10, #1 bne .L3601 .L3600: ldp x0, x1, [x29, 120] mov w2, 1317 bl printf .L3601: add x0, x20, :lo12:.LANCHOR55 add x8, x0, x27, lsl 6 ldrb w0, [x24, #:lo12:.LANCHOR131] ldrb w2, [x8, 56] cmp w0, w2 bls .L3602 ldrb w0, [x8, 57] lsl w2, w2, 9 ldr x1, [x8, 8] ubfiz x0, x0, 9, 8 add x1, x1, x0 ldr x0, [x8, 16] bl ftl_memcpy .L3603: ldr x1, [x29, 136] adrp x0, .LANCHOR62 add x0, x0, :lo12:.LANCHOR62 bl buf_remove_buf ldr x0, [x29, 136] bl zbuf_free ldrb w0, [x28] sub w0, w0, #1 strb w0, [x28] b .L3591 .L3593: cmp w10, 256 bne .L3594 adrp x2, .LANCHOR31 adrp x0, .LANCHOR74 mov w4, 24 mov w5, 1 ldrb w2, [x2, #:lo12:.LANCHOR31] ldrh w0, [x0, #:lo12:.LANCHOR74] sub w4, w4, w2 str w5, [x29, 96] ldp w2, w3, [x1, 36] sub w4, w4, w0 lsl w4, w5, w4 sub w4, w4, #1 lsr w0, w3, w0 and w4, w4, w0 adrp x0, .LANCHOR75 ldrb w0, [x0, #:lo12:.LANCHOR75] udiv w4, w4, w0 adrp x0, .LC229 add x0, x0, :lo12:.LC229 stp w10, w4, [x29, 104] and w1, w4, 65535 bl printf ldr w5, [x29, 96] mov w2, 0 ldr w4, [x29, 108] mov w1, w5 mov w0, w4 bl gc_add_sblk ldr w10, [x29, 104] b .L3594 .L3602: ldrb w0, [x8, 2] and w0, w0, -9 strb w0, [x8, 2] b .L3603 .L3608: mov w0, -1 b .L3572 .size zftl_read, .-zftl_read .section .text.zftl_sys_read,"ax",@progbits .align 2 .global zftl_sys_read .type zftl_sys_read, %function zftl_sys_read: mov x3, x2 mov w2, w1 mov w1, w0 mov w0, 2 b zftl_read .size zftl_sys_read, .-zftl_sys_read .section .text.StorageSysDataLoad,"ax",@progbits .align 2 .global StorageSysDataLoad .type StorageSysDataLoad, %function StorageSysDataLoad: stp x29, x30, [sp, -32]! mov w2, 512 add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x1 mov w20, w0 mov w1, 0 mov x0, x19 bl ftl_memset mov x3, x19 mov w1, w20 ldp x19, x20, [sp, 16] mov w2, 1 ldp x29, x30, [sp], 32 mov w0, 2 b zftl_read .size StorageSysDataLoad, .-StorageSysDataLoad .section .text.FlashBootVendorRead,"ax",@progbits .align 2 .global FlashBootVendorRead .type FlashBootVendorRead, %function FlashBootVendorRead: mov x3, x2 mov w2, w1 add w1, w0, 512 mov w0, 2 b zftl_read .size FlashBootVendorRead, .-FlashBootVendorRead .section .text.ftl_read,"ax",@progbits .align 2 .global ftl_read .type ftl_read, %function ftl_read: and w0, w0, 255 b zftl_read .size ftl_read, .-ftl_read .section .text.ftl_vendor_read,"ax",@progbits .align 2 .global ftl_vendor_read .type ftl_vendor_read, %function ftl_vendor_read: mov x3, x2 mov w2, w1 add w1, w0, 512 mov w0, 2 b zftl_read .size ftl_vendor_read, .-ftl_vendor_read .section .text.zftl_vendor_read,"ax",@progbits .align 2 .global zftl_vendor_read .type zftl_vendor_read, %function zftl_vendor_read: b ftl_vendor_read .size zftl_vendor_read, .-zftl_vendor_read .section .text.ftl_update_l2p_map,"ax",@progbits .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x21, x22, [sp, 32] mov x22, x0 stp x19, x20, [sp, 16] adrp x0, .LANCHOR94 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] ldrh w23, [x0, #:lo12:.LANCHOR94] ldrb w0, [x22, 9] ldrh w19, [x22, 12] mul w23, w23, w0 adrp x0, .LANCHOR117 str x0, [x29, 104] ldr x1, [x0, #:lo12:.LANCHOR117] add x19, x1, x19, lsl 2 add x1, x19, x23, sxtw 2 ldr w1, [x1, -4] cmn w1, #1 beq .L3632 adrp x1, .LANCHOR231 adrp x0, .LC0 mov w2, 1998 add x1, x1, :lo12:.LANCHOR231 add x0, x0, :lo12:.LC0 bl printf .L3632: adrp x27, .LANCHOR131 mov x24, 0 add x0, x27, :lo12:.LANCHOR131 mov w21, 0 str x0, [x29, 96] .L3633: cmp w24, w23 blt .L3639 adrp x0, .LANCHOR19 adrp x19, .LANCHOR11 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L3640 ldrh w1, [x22] ldr x2, [x19, #:lo12:.LANCHOR11] ubfiz x0, x1, 1, 16 ldrh w3, [x2, x0] adrp x0, .LC234 mov w2, w21 add x0, x0, :lo12:.LC234 bl printf .L3640: ldrh w1, [x22] ldr x0, [x19, #:lo12:.LANCHOR11] ldp x23, x24, [sp, 48] ldp x19, x20, [sp, 16] strh w21, [x0, x1, lsl 1] ldp x25, x26, [sp, 64] ldp x21, x22, [sp, 32] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .L3639: ldr w2, [x19, x24, lsl 2] cmn w2, #1 beq .L3634 ldrb w20, [x27, #:lo12:.LANCHOR131] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] lsl w20, w20, 7 udiv w20, w2, w20 and w20, w20, 65535 tbz x0, 12, .L3635 adrp x0, .LC231 mov w3, w24 mov w1, w20 add x0, x0, :lo12:.LC231 bl printf .L3635: adrp x25, .LANCHOR111 adrp x26, .LC232 mov x28, x24 add x25, x25, :lo12:.LANCHOR111 add x26, x26, :lo12:.LC232 .L3638: ldr w1, [x19, x28, lsl 2] cmn w1, #1 beq .L3636 ldr x0, [x29, 96] ldrb w2, [x0] lsl w2, w2, 7 udiv w1, w1, w2 cmp w20, w1, uxth bne .L3636 ldrb w0, [x22, 9] sdiv w1, w28, w0 msub w0, w1, w0, w28 add x0, x22, x0, sxtw 1 ldrh w2, [x0, 16] ldrh w0, [x25] madd w2, w2, w0, w1 mov x0, x26 str w2, [x29, 124] ldr w1, [x19, x28, lsl 2] bl pm_ppa_update_check cbz w0, .L3637 ldr x0, [x29, 104] mov w3, w23 mov w2, 4 ldr x1, [x0, #:lo12:.LANCHOR117] adrp x0, .LC233 add x0, x0, :lo12:.LC233 bl rknand_print_hex .L3637: ldr w0, [x19, x28, lsl 2] add w21, w21, 1 mov w2, 1 add x1, x29, 124 and w21, w21, 65535 bl pm_log2phys mov w0, -1 str w0, [x19, x28, lsl 2] .L3636: add x28, x28, 1 cmp w23, w28 bgt .L3638 .L3634: add x24, x24, 1 b .L3633 .size ftl_update_l2p_map, .-ftl_update_l2p_map .section .text.ftl_alloc_new_data_sblk,"ax",@progbits .align 2 .global ftl_alloc_new_data_sblk .type ftl_alloc_new_data_sblk, %function ftl_alloc_new_data_sblk: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x20, x0 str x21, [sp, 32] ldrh w21, [x0] bl ftl_update_l2p_map bl pm_flush ldrh w0, [x20] mov w1, 65535 cmp w0, w1 beq .L3662 bl zftl_insert_data_list .L3662: adrp x19, .LANCHOR12 ldr x0, [x19, #:lo12:.LANCHOR12] add x0, x0, 16 cmp x20, x0 mov x0, x20 cset w1, ne add w1, w1, 2 bl ftl_open_sblk_init ldr x0, [x19, #:lo12:.LANCHOR12] ldr w0, [x0, 560] cmp w0, w21 bne .L3664 mov w20, 65535 cmp w21, w20 beq .L3664 mov w1, w21 adrp x0, .LC235 add x0, x0, :lo12:.LC235 bl printf ldr x0, [x19, #:lo12:.LANCHOR12] ldr w0, [x0, 564] bl gc_mark_bad_ppa ldr x0, [x19, #:lo12:.LANCHOR12] mov w1, -1 str w20, [x0, 560] str w1, [x0, 564] .L3664: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl lpa_rebuild_hash ldr x21, [sp, 32] mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk .section .text.ftl_write_commit,"ax",@progbits .align 2 .global ftl_write_commit .type ftl_write_commit, %function ftl_write_commit: stp x29, x30, [sp, -160]! adrp x0, .LANCHOR55 add x29, sp, 0 stp x23, x24, [sp, 48] add x24, x0, :lo12:.LANCHOR55 add x0, x24, 2050 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] str x0, [x29, 104] .L3668: adrp x2, .LANCHOR66 ldrb w1, [x2, #:lo12:.LANCHOR66] cbz w1, .L3670 adrp x3, .LANCHOR65 adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 sub w1, w1, #1 ldrb w4, [x3, #:lo12:.LANCHOR65] strb w1, [x2, #:lo12:.LANCHOR66] ubfiz x5, x4, 6, 8 add x5, x0, x5 stp x4, x5, [x29, 120] lsl x4, x4, 6 add x5, x0, x4 ldrb w0, [x0, x4] strb w0, [x3, #:lo12:.LANCHOR65] adrp x0, .LANCHOR128 ldr w2, [x5, 36] mov x19, x0 ldr w1, [x0, #:lo12:.LANCHOR128] cmp w2, w1 bcc .L3672 adrp x1, .LANCHOR232 adrp x0, .LC0 mov w2, 604 add x1, x1, :lo12:.LANCHOR232 add x0, x0, :lo12:.LC0 bl printf .L3672: ldr x0, [x29, 120] ldr w1, [x19, #:lo12:.LANCHOR128] add x0, x24, x0, lsl 6 ldr w22, [x0, 36] cmp w22, w1 bcc .L3673 ldr x0, [x29, 128] bl zbuf_free mov w0, -1 .L3667: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 160 ret .L3673: ldrb w21, [x0, 57] ldrb w20, [x0, 56] ldr x26, [x0, 8] ldr x23, [x0, 24] adrp x0, .LANCHOR129 str x0, [x29, 112] ldrb w1, [x0, #:lo12:.LANCHOR129] cbz w1, .L3675 adrp x0, .LANCHOR182 ldrb w19, [x0, #:lo12:.LANCHOR182] add x19, x24, x19, lsl 6 .L3676: ldrb w0, [x19] cmp w0, 255 bne .L3677 ldr w0, [x19, 36] cmp w22, w0 bne .L3675 ldr x0, [x19, 8] ubfiz x21, x21, 9, 8 lsl w2, w20, 9 add x1, x26, x21 add x0, x0, x21 bl ftl_memcpy adrp x0, .LANCHOR131 ldr x2, [x19, 8] ldr x1, [x19, 24] ldrb w0, [x0, #:lo12:.LANCHOR131] add x1, x1, 16 sub w0, w0, #2 lsl w0, w0, 7 add x2, x2, x0, sxtw 2 mov w0, 2 bl ftl_debug_info_fill ldr x0, [x29, 128] bl zbuf_free b .L3668 .L3677: ubfiz x19, x0, 6, 8 add x19, x24, x19 b .L3676 .L3675: mov w0, w22 bl lpa_hash_get_ppa str w0, [x29, 156] cmn w0, #1 bne .L3679 mov w2, 0 add x1, x29, 156 mov w0, w22 bl pm_log2phys .L3679: adrp x27, .LANCHOR12 ldr w2, [x29, 156] add x0, x24, 2 mov w3, 0 ldr x19, [x27, #:lo12:.LANCHOR12] mov x25, 0 add x19, x19, 16 .L3681: ldr w1, [x0, 34] cmp w22, w1 bne .L3680 ldrb w1, [x0] tbz x1, 3, .L3680 ldr w2, [x0, 38] and w1, w1, -9 ldr x25, [x0, 6] mov w3, 1 strb w1, [x0] .L3680: ldr x1, [x29, 104] add x0, x0, 64 cmp x0, x1 bne .L3681 cbz w3, .L3682 str w2, [x29, 156] .L3682: adrp x28, .LANCHOR131 str x28, [x29, 136] ldrb w0, [x28, #:lo12:.LANCHOR131] cmp w20, w0 bcs .L3708 add w20, w21, w20 cbz x25, .L3684 cbz w21, .L3685 lsl w2, w21, 9 mov x1, x25 mov x0, x26 bl ftl_memcpy ldr x19, [x27, #:lo12:.LANCHOR12] add x19, x19, 48 .L3685: ldr x0, [x29, 136] ldrb w2, [x0, #:lo12:.LANCHOR131] cmp w20, w2 bcc .L3686 ldr x19, [x27, #:lo12:.LANCHOR12] add x19, x19, 16 .L3708: mov w25, 0 b .L3683 .L3686: ubfiz x0, x20, 9, 9 sub w2, w2, w20 add x1, x25, x0 lsl w2, w2, 9 add x0, x26, x0 bl ftl_memcpy b .L3708 .L3684: ldr w0, [x29, 156] cmn w0, #1 beq .L3687 mov w0, 1 bl buf_alloc ldr w1, [x29, 156] mov x28, x0 stp w22, w1, [x0, 36] mov w1, 1 bl sblk_read_page ldr x3, [x28, 24] ldr w0, [x3, 4] ldr w25, [x3, 12] cmp w22, w0 add w25, w25, 1 bne .L3688 ldr w0, [x28, 52] cmn w0, #1 bne .L3689 .L3688: adrp x0, .LANCHOR31 mov w6, 1 ldr w1, [x28, 40] ldrb w2, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w2 lsl w6, w6, w2 ldr x2, [x29, 136] sub w6, w6, #1 lsl w7, w6, w0 ldrb w4, [x2, #:lo12:.LANCHOR131] lsr w0, w1, w0 ldr x2, [x28, 8] bic w1, w1, w7 and w0, w0, w6 bl flash_read_page_en str w0, [x28, 52] .L3689: ldr x0, [x28, 24] ldr w0, [x0, 4] cmp w22, w0 bne .L3690 ldr w0, [x28, 52] cmn w0, #1 bne .L3691 .L3690: ldr x1, [x27, #:lo12:.LANCHOR12] mov w3, w22 ldr w4, [x28, 52] ldr w2, [x29, 156] ldr w0, [x1, 552] add w0, w0, 1 str w0, [x1, 552] adrp x0, .LC236 add x0, x0, :lo12:.LC236 ldrb w1, [x28, 1] bl printf ldr x1, [x28, 24] mov w3, 4 adrp x0, .LC208 mov w2, w3 add x0, x0, :lo12:.LC208 bl rknand_print_hex .L3691: ldr x0, [x28, 24] ldr w0, [x0, 4] cmp w22, w0 bne .L3692 ldr w0, [x28, 52] cmn w0, #1 bne .L3693 .L3692: adrp x1, .LANCHOR232 adrp x0, .LC0 mov w2, 696 add x1, x1, :lo12:.LANCHOR232 add x0, x0, :lo12:.LC0 bl printf .L3693: cbz w21, .L3694 ldr w0, [x29, 156] lsl w2, w21, 9 cmn w0, #1 beq .L3695 ldr x1, [x28, 8] mov x0, x26 bl ftl_memcpy .L3696: ldr x19, [x27, #:lo12:.LANCHOR12] add x19, x19, 48 .L3694: ldr x0, [x29, 136] ldrb w2, [x0, #:lo12:.LANCHOR131] cmp w20, w2 bcc .L3697 bls .L3698 ldr x19, [x27, #:lo12:.LANCHOR12] add x19, x19, 16 .L3698: cbz x28, .L3683 ldrb w0, [x28, 2] mov x1, x28 and w0, w0, -9 strb w0, [x28, 2] adrp x0, .LANCHOR62 add x0, x0, :lo12:.LANCHOR62 bl buf_remove_buf mov x0, x28 bl zbuf_free .L3683: ldrh w0, [x19, 6] cbnz w0, .L3700 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk .L3700: mov x0, x19 bl ftl_get_new_free_page mov w10, w0 ldr x0, [x29, 120] mov x1, x23 adrp x20, .LANCHOR182 lsl x8, x0, 6 add x7, x24, x8 ldr w0, [x7, 32] stp w0, w22, [x23] str w25, [x23, 12] ldr w0, [x29, 156] str w0, [x23, 8] ldr x0, [x29, 136] str wzr, [x1, 16]! ldrb w2, [x0, #:lo12:.LANCHOR131] mov w0, 2 sub w2, w2, #2 lsl w2, w2, 7 add x2, x26, x2, sxtw 2 bl ftl_debug_info_fill ldr w0, [x29, 156] mov w1, 10 stp w10, w0, [x7, 40] mov w0, -1 strb w0, [x24, x8] ldrb w0, [x7, 2] orr w0, w0, w1 ldrh w1, [x19, 12] strb w0, [x7, 2] ldrh w0, [x19, 10] add w0, w0, w1 ldr x1, [x29, 128] sub w0, w0, #1 strh w0, [x7, 48] add x0, x20, :lo12:.LANCHOR182 bl buf_add_tail ldr x0, [x29, 112] ldrb w2, [x0, #:lo12:.LANCHOR129] add w2, w2, 1 and w2, w2, 255 strb w2, [x0, #:lo12:.LANCHOR129] adrp x0, .LANCHOR233 cmp w2, 2 str wzr, [x0, #:lo12:.LANCHOR233] ldrh w0, [x19, 6] bhi .L3701 cmp w0, 1 bne .L3671 .L3701: ldrb w1, [x19, 5] cmp w1, 0 mov w1, 0 cset w4, ne cmp w0, 1 ldrb w0, [x20, #:lo12:.LANCHOR182] csinc w4, w2, w4, eq mov w3, w0 .L3705: cmp w1, w4 bne .L3706 strb w3, [x20, #:lo12:.LANCHOR182] and w1, w1, 255 ldr x3, [x29, 112] sub w2, w2, w1 ubfiz x0, x0, 6, 8 add x0, x24, x0 strb w2, [x3, #:lo12:.LANCHOR129] bl sblk_prog_page ldrh w0, [x19, 6] cmp w0, 1 bne .L3671 bl sblk_wait_write_queue_completed bl ftl_write_completed mov x0, x19 bl ftl_write_last_log_page mov x0, x19 bl ftl_alloc_new_data_sblk .L3671: adrp x0, .LANCHOR66 ldrb w0, [x0, #:lo12:.LANCHOR66] cbnz w0, .L3668 .L3670: bl ftl_write_completed mov w0, 0 b .L3667 .L3697: ldr w0, [x29, 156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 beq .L3699 ldr x1, [x28, 8] lsl x0, x0, 2 add x1, x1, x0 add x0, x26, x0 bl ftl_memcpy b .L3698 .L3699: mov w1, 0 add x0, x26, x0, lsl 2 bl ftl_memset b .L3698 .L3706: ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x24, x3] b .L3705 .L3707: lsl w2, w21, 9 mov x28, 0 mov w25, 0 .L3695: mov w1, 0 mov x0, x26 bl ftl_memset b .L3696 .L3687: cbnz w21, .L3707 mov w25, 0 mov x28, 0 b .L3694 .size ftl_write_commit, .-ftl_write_commit .section .text.gc_do_copy_back,"ax",@progbits .align 2 .global gc_do_copy_back .type gc_do_copy_back, %function gc_do_copy_back: stp x29, x30, [sp, -224]! adrp x0, .LANCHOR84 add x29, sp, 0 ldrb w0, [x0, #:lo12:.LANCHOR84] stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cbnz w0, .L3734 bl buf_alloc mov x19, x0 cbz x0, .L3733 adrp x21, .LANCHOR70 add x3, x21, :lo12:.LANCHOR70 ldrh w2, [x3, 26] mov w0, w2 bl gc_get_src_ppa_from_index add w2, w2, 1 mov w22, w0 str w22, [x19, 40] strh w2, [x3, 26] mov w1, 1 mov x0, x19 bl sblk_read_page ldr w0, [x19, 52] cmp w0, 512 ccmn w0, #1, 4, ne bne .L3736 adrp x1, .LANCHOR234 adrp x0, .LC0 mov w2, 1032 add x1, x1, :lo12:.LANCHOR234 add x0, x0, :lo12:.LC0 bl printf .L3736: ldr x0, [x19, 24] ldr w20, [x0, 4] mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 176] cmn w0, #1 bne .L3737 mov w2, 0 add x1, x29, 176 mov w0, w20 bl pm_log2phys .L3737: ldr w23, [x29, 176] cmp w22, w23 bne .L3738 adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 add x1, x0, 2 add x0, x0, 2050 .L3741: ldr w2, [x1, 34] cmp w20, w2 bne .L3739 ldrb w2, [x1] tbz x2, 1, .L3739 mov x0, x19 bl zbuf_free adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L3733 add x21, x21, :lo12:.LANCHOR70 adrp x0, .LC237 mov w2, w22 mov w1, w20 add x0, x0, :lo12:.LC237 ldrh w3, [x21, 26] bl printf .L3733: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 224 ret .L3739: add x1, x1, 64 cmp x1, x0 bne .L3741 adrp x0, .LANCHOR131 strb wzr, [x19, 57] str w20, [x19, 36] ldrb w0, [x0, #:lo12:.LANCHOR131] strb w0, [x19, 56] ldr x0, [x19, 24] ldr w1, [x0] str w1, [x19, 32] str wzr, [x0, 16] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L3742 mov w0, w20 bl lpa_hash_get_ppa add x1, x21, :lo12:.LANCHOR70 mov w3, w0 mov w4, w22 adrp x0, .LC238 mov w2, w23 add x0, x0, :lo12:.LC238 ldrh w5, [x1, 26] mov w1, w20 bl printf .L3742: mov x0, x19 bl ftl_gc_write_buf bl ftl_write_commit add x21, x21, :lo12:.LANCHOR70 adrp x0, .LANCHOR110 ldr x1, [x0, #:lo12:.LANCHOR110] ldr w0, [x1, 60] add w0, w0, 1 str w0, [x1, 60] ldrh w0, [x21, 28] add w0, w0, 1 strh w0, [x21, 28] b .L3733 .L3738: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L3743 add x21, x21, :lo12:.LANCHOR70 mov w0, w20 bl lpa_hash_get_ppa mov w3, w0 mov w4, w22 adrp x0, .LC238 ldrh w5, [x21, 26] mov w2, w23 mov w1, w20 add x0, x0, :lo12:.LC238 bl printf .L3743: mov x0, x19 bl zbuf_free b .L3733 .L3734: adrp x2, .LANCHOR12 adrp x1, .LANCHOR79 stp x1, x2, [x29, 136] ldr x26, [x2, #:lo12:.LANCHOR12] ldrb w3, [x1, #:lo12:.LANCHOR79] add x26, x26, 80 ldrb w0, [x26, 9] and w20, w0, 65535 cmp w3, w20 bhi .L3798 cmp w20, 2 mov w21, 2 csel w21, w20, w21, ls and w21, w21, 65535 .L3744: adrp x1, .LANCHOR78 str x1, [x29, 120] ldrb w19, [x1, #:lo12:.LANCHOR78] cmp w19, 3 bne .L3745 adrp x1, .LANCHOR35 ldrb w1, [x1, #:lo12:.LANCHOR35] cbz w1, .L3746 adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 ldrh w22, [x1, 2106] adrp x1, .LANCHOR124 ldrb w1, [x1, #:lo12:.LANCHOR124] sdiv w2, w22, w0 and w25, w2, 65535 cbz w1, .L3747 adrp x1, .LANCHOR235 add x1, x1, :lo12:.LANCHOR235 ldrh w1, [x1, w2, sxtw 1] cmp w1, 0 cset w19, ne .L3865: add w19, w19, 1 .L3748: msub w20, w20, w25, w22 and w20, w20, 65535 .L3749: adrp x1, .LANCHOR85 mul w11, w19, w21 adrp x10, .LANCHOR235 sxtw x13, w25 ldrh w5, [x1, #:lo12:.LANCHOR85] adrp x1, .LANCHOR224 add x10, x10, :lo12:.LANCHOR235 mov w2, 0 mul w0, w5, w0 ldrb w5, [x1, #:lo12:.LANCHOR224] sub w5, w0, w5 adrp x0, .LANCHOR124 ldrb w12, [x0, #:lo12:.LANCHOR124] adrp x0, .LANCHOR160 ldr x8, [x0, #:lo12:.LANCHOR160] adrp x0, .LANCHOR70 add x6, x0, :lo12:.LANCHOR70 ldrh w14, [x6, 24] .L3753: cmp w2, w11 bge .L3806 add w4, w22, w2 cmp w4, w5 blt .L3754 cbz w12, .L3806 ldrh w0, [x10, x13, lsl 1] cmp w0, w25 bcc .L3755 .L3806: mov w23, 1 b .L3751 .L3798: mov w21, 1 b .L3744 .L3747: adrp x1, .LANCHOR217 ldrb w1, [x1, #:lo12:.LANCHOR217] cbz w1, .L3800 sub w1, w25, #62 and w1, w1, 65535 cmp w1, 2159 bhi .L3801 udiv w19, w25, w19 add w19, w19, w19, lsl 1 sub w19, w25, w19 and w19, w19, 65535 cmp w19, 0 cset w19, eq b .L3865 .L3800: mov w19, 1 b .L3748 .L3801: mov w19, 2 b .L3748 .L3746: adrp x1, .LANCHOR83 ldrb w1, [x1, #:lo12:.LANCHOR83] cbz w1, .L3750 adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 add w20, w0, w0, lsl 1 ldrh w22, [x1, 2106] adrp x1, .LANCHOR36 ldrb w1, [x1, #:lo12:.LANCHOR36] sdiv w20, w22, w20 and w25, w20, 65535 mul w20, w0, w20 sub w20, w20, w20, lsl 2 add w20, w20, w22 sdiv w20, w20, w19 and w20, w20, 65535 cbz w1, .L3749 add w3, w25, w25, lsl 1 and w25, w3, 65535 b .L3749 .L3750: adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 adrp x2, .LANCHOR236 add x2, x2, :lo12:.LANCHOR236 ldrh w4, [x1, 2106] sdiv w1, w4, w0 ldrh w23, [x2, w1, sxtw 1] msub w20, w20, w1, w4 and w20, w20, 65535 lsr w25, w23, 3 and w23, w23, 7 cmp w23, 1 madd w22, w25, w0, w20 add w22, w22, w22, lsl 1 and w22, w22, 65535 beq .L3749 .L3751: mul w0, w19, w21 stp wzr, w0, [x29, 152] ubfiz w0, w21, 1, 15 str w0, [x29, 132] msub w0, w0, w19, w22 and w0, w0, 65535 str w0, [x29, 128] ldrh w0, [x29, 128] str x0, [x29, 112] adrp x0, .LANCHOR55 add x0, x0, :lo12:.LANCHOR55 str x0, [x29, 104] .L3756: ldp w0, w1, [x29, 152] ldrh w24, [x29, 152] and w0, w0, 65535 str w0, [x29, 168] cmp w0, w1 blt .L3780 ldr x0, [x29, 120] ldrb w0, [x0, #:lo12:.LANCHOR78] cmp w0, 3 add x0, x29, 176 bne .L3781 adrp x1, .LANCHOR35 ldrb w1, [x1, #:lo12:.LANCHOR35] cbz w1, .L3782 ldr w2, [x29, 156] mov w1, 0 sub w2, w2, #1 .L3783: cmp w1, w2 blt .L3784 .L3869: ldr x0, [x0, w2, sxtw 3] mov w1, -1 strb w1, [x0] mul w1, w21, w19 ldr x0, [x29, 176] bl sblk_prog_page b .L3785 .L3745: adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbnz w1, .L3752 adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 mov w19, 1 ldrh w22, [x1, 2106] sdiv w25, w22, w0 msub w20, w20, w25, w22 and w20, w20, 65535 b .L3749 .L3752: adrp x1, .LANCHOR70 add x1, x1, :lo12:.LANCHOR70 mov w19, 2 ldrh w22, [x1, 2106] sdiv w25, w22, w0 msub w20, w20, w25, w22 and w20, w20, 65535 b .L3749 .L3755: tbz x2, 0, .L3806 .L3754: sbfiz x4, x4, 2, 32 ldr w0, [x8, x4] cmn w0, #1 bne .L3757 ldrh w7, [x6, 26] cmp w7, w14 bcs .L3733 cbz w12, .L3758 ldrh w0, [x10, x13, lsl 1] cmp w0, w25 bcs .L3758 tbz x2, 0, .L3758 ubfiz x0, x0, 2, 16 ldr w0, [x8, x0] .L3866: str w0, [x8, x4] .L3757: add w2, w2, 1 and w2, w2, 65535 b .L3753 .L3758: mov w0, w7 bl gc_get_src_ppa_from_index add w7, w7, 1 strh w7, [x6, 26] b .L3866 .L3780: ldr w0, [x29, 168] add w0, w22, w0 str w0, [x29, 172] sxtw x0, w0 str x0, [x29, 160] adrp x0, .LANCHOR82 ldr x1, [x29, 160] ldr x0, [x0, #:lo12:.LANCHOR82] ldrb w0, [x0, x1] cmp w0, 255 bne .L3760 mov w0, 0 bl buf_alloc mov x27, x0 cbnz x0, .L3761 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed bl gc_free_temp_buf mov w0, 0 bl buf_alloc mov x27, x0 cbz x0, .L3733 .L3761: adrp x0, .LANCHOR82 ldr x2, [x29, 160] ldrb w1, [x27, 1] ldr x0, [x0, #:lo12:.LANCHOR82] strb w1, [x0, x2] adrp x0, .LANCHOR70 add x1, x0, :lo12:.LANCHOR70 strb w23, [x27, 61] ldrb w0, [x1, 7] add w0, w0, 1 strb w0, [x1, 7] add w0, w24, w22 strh w0, [x27, 48] adrp x0, .LANCHOR85 ldr w1, [x29, 172] ldrh w6, [x0, #:lo12:.LANCHOR85] adrp x0, .LANCHOR224 ldrb w5, [x0, #:lo12:.LANCHOR224] ldrb w0, [x26, 9] mul w0, w0, w6 sub w0, w0, w5 cmp w1, w0 blt .L3762 adrp x1, .LANCHOR124 ldrb w1, [x1, #:lo12:.LANCHOR124] cbz w1, .L3763 adrp x1, .LANCHOR235 add x1, x1, :lo12:.LANCHOR235 ldrh w1, [x1, w25, sxtw 1] cmp w1, w25 bcs .L3763 tbnz x24, 0, .L3762 .L3763: adrp x1, .LANCHOR159 ldr w3, [x29, 172] mov w2, -1 cmp w5, 2 ldr x1, [x1, #:lo12:.LANCHOR159] str w2, [x1, w3, sxtw 2] bne .L3764 cmp w3, w0 adrp x28, .LANCHOR221 bne .L3765 ldrh w2, [x28, #:lo12:.LANCHOR221] ldr x0, [x27, 8] bl ftl_memcpy adrp x0, .LANCHOR131 mov w1, 0 ldrb w2, [x0, #:lo12:.LANCHOR131] ldr x0, [x27, 24] lsl w2, w2, 1 bl ftl_memset ldr x6, [x27, 24] mov w0, 15555 movk w0, 0xf55f, lsl 16 ldrh w1, [x28, #:lo12:.LANCHOR221] str w0, [x6] ldr x0, [x27, 8] bl js_hash str w0, [x6, 4] ldr x0, [x29, 144] ldr x0, [x0, #:lo12:.LANCHOR12] ldr w0, [x0, 132] stp w0, wzr, [x6, 8] .L3766: ldr x0, [x27, 24] str wzr, [x0, 16] .L3760: adrp x0, .LANCHOR82 ldrsw x2, [x29, 168] add x4, x29, 176 ldr x1, [x0, #:lo12:.LANCHOR82] ldr x0, [x29, 160] ldrb w5, [x1, x0] adrp x0, .LANCHOR55 add x6, x0, :lo12:.LANCHOR55 mov x7, x5 ubfiz x0, x5, 6, 8 add x0, x6, x0 add x6, x6, x5, lsl 6 str x0, [x4, x2, lsl 3] mov w0, 2 strh w0, [x6, 50] ldr x0, [x29, 120] strb w23, [x6, 61] ldrb w0, [x0, #:lo12:.LANCHOR78] cmp w0, 3 bne .L3771 adrp x8, .LANCHOR35 ldrb w8, [x8, #:lo12:.LANCHOR35] cbz w8, .L3772 adrp x0, .LANCHOR124 and w8, w24, 1 add w10, w8, w25 ldrb w0, [x0, #:lo12:.LANCHOR124] cbz w0, .L3773 adrp x6, .LANCHOR235 add x6, x6, :lo12:.LANCHOR235 ldrh w6, [x6, w25, sxtw 1] cmp w6, w25 bcs .L3773 cmp w8, 0 csel w10, w10, w6, eq .L3773: adrp x0, .LANCHOR55 add x6, x0, :lo12:.LANCHOR55 add x5, x6, x5, lsl 6 udiv w6, w24, w19 add w6, w6, w20 add x6, x26, x6, sxtw 1 ldrh w0, [x6, 16] adrp x6, .LANCHOR111 ldrh w6, [x6, #:lo12:.LANCHOR111] madd w0, w0, w6, w10 orr w0, w0, 50331648 str w0, [x5, 40] .L3778: adrp x0, .LANCHOR55 sbfiz x7, x7, 6, 32 add x0, x0, :lo12:.LANCHOR55 add x0, x0, x7 ldrh w5, [x0, 48] ldr w6, [x0, 40] adrp x0, .LANCHOR161 ldr x0, [x0, #:lo12:.LANCHOR161] str w6, [x0, x5, lsl 2] b .L3797 .L3765: ldr x2, [x29, 136] ldrh w0, [x28, #:lo12:.LANCHOR221] ldrb w28, [x2, #:lo12:.LANCHOR79] mul w28, w28, w6 lsl w28, w28, 2 sub w28, w28, w0 and x0, x0, 65532 add x1, x1, x0 ldr x0, [x27, 8] mov w2, w28 bl ftl_memcpy adrp x0, .LANCHOR131 mov w1, 0 ldrb w2, [x0, #:lo12:.LANCHOR131] ldr x0, [x27, 24] lsl w2, w2, 1 bl ftl_memset ldr x6, [x27, 24] mov w0, 15555 movk w0, 0xf55f, lsl 16 mov w1, w28 str w0, [x6] ldr x0, [x27, 8] bl js_hash str w0, [x6, 4] ldr x0, [x29, 144] ldr x0, [x0, #:lo12:.LANCHOR12] ldr w0, [x0, 132] str w0, [x6, 8] mov w0, 1 str w0, [x6, 12] b .L3766 .L3764: ldr x0, [x29, 136] ldrb w2, [x0, #:lo12:.LANCHOR79] ldr x0, [x27, 8] mul w2, w2, w6 lsl w2, w2, 2 bl ftl_memcpy ldr x1, [x29, 136] adrp x0, .LANCHOR85 ldrh w0, [x0, #:lo12:.LANCHOR85] ldrb w1, [x1, #:lo12:.LANCHOR79] mul w0, w0, w1 adrp x1, .LANCHOR131 ldrb w1, [x1, #:lo12:.LANCHOR131] lsl w2, w0, 2 cmp w1, w0, lsr 6 bge .L3767 adrp x1, .LANCHOR221 ldrh w1, [x1, #:lo12:.LANCHOR221] sub w2, w1, w2 .L3767: adrp x1, .LANCHOR160 ldr x5, [x27, 8] ldr x1, [x1, #:lo12:.LANCHOR160] add x0, x5, x0, sxtw 2 bl ftl_memcpy adrp x0, .LANCHOR131 mov w1, 0 ldrb w2, [x0, #:lo12:.LANCHOR131] ldr x0, [x27, 24] lsl w2, w2, 1 bl ftl_memset ldr x6, [x27, 24] mov w0, 15555 movk w0, 0xf55f, lsl 16 str w0, [x6] adrp x0, .LANCHOR85 ldrh w1, [x0, #:lo12:.LANCHOR85] ldr x0, [x29, 136] ldrb w0, [x0, #:lo12:.LANCHOR79] mul w1, w1, w0 ldr x0, [x27, 8] lsl w1, w1, 2 bl js_hash str w0, [x6, 4] ldr x0, [x29, 144] ldr x0, [x0, #:lo12:.LANCHOR12] ldr w0, [x0, 132] str w0, [x6, 8] b .L3766 .L3762: ldr x0, [x29, 160] mov w1, 1 lsl x28, x0, 2 adrp x0, .LANCHOR160 ldr x0, [x0, #:lo12:.LANCHOR160] ldr w0, [x0, x28] str w0, [x27, 40] mov x0, x27 bl sblk_read_page ldr w0, [x27, 52] cmp w0, 512 ccmn w0, #1, 4, ne bne .L3769 adrp x0, .LANCHOR74 ldrh w2, [x0, #:lo12:.LANCHOR74] adrp x0, .LANCHOR31 ldrb w1, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w1 sub w1, w0, w2 mov w0, 1 lsl w0, w0, w1 ldr w1, [x27, 40] sub w0, w0, #1 lsr w1, w1, w2 and w0, w0, w1 adrp x1, .LANCHOR75 ldrb w2, [x1, #:lo12:.LANCHOR75] mov x1, 0 udiv w0, w0, w2 bl ftl_sblk_dump ldr w0, [x27, 52] cmp w0, 512 ccmn w0, #1, 4, ne bne .L3769 ldr x0, [x27, 24] mov w1, -1 str w1, [x0, 4] ldr w0, [x27, 52] cmp w0, 512 ccmp w0, w1, 4, ne bne .L3769 adrp x1, .LANCHOR234 adrp x0, .LC0 mov w2, 1223 add x1, x1, :lo12:.LANCHOR234 add x0, x0, :lo12:.LC0 bl printf .L3769: ldr x0, [x27, 24] adrp x1, .LANCHOR128 ldr w1, [x1, #:lo12:.LANCHOR128] ldr w2, [x0, 4] cmp w2, w1 bcc .L3770 mov w1, -1 str w1, [x0, 4] .L3770: adrp x1, .LANCHOR159 ldr w2, [x0, 4] ldr x1, [x1, #:lo12:.LANCHOR159] str w2, [x1, x28] ldr w1, [x27, 40] str w1, [x0, 8] b .L3766 .L3772: udiv w0, w24, w0 adrp x7, .LANCHOR36 ldrb w7, [x7, #:lo12:.LANCHOR36] cbz w7, .L3775 add w7, w0, w20 adrp x8, .LANCHOR111 add x7, x26, x7, sxtw 1 add w0, w0, w0, lsl 1 ldrh w8, [x8, #:lo12:.LANCHOR111] sub w0, w24, w0 ldrh w7, [x7, 16] madd w7, w7, w8, w25 add w0, w7, w0, uxth .L3870: str w0, [x6, 40] ldr x0, [x29, 104] add x5, x0, x5, lsl 6 adrp x0, .LANCHOR161 ldr x6, [x0, #:lo12:.LANCHOR161] mov w0, 3 ldrh w7, [x5, 48] udiv w0, w24, w0 ldr w5, [x5, 40] add w0, w0, w0, lsl 1 sub w0, w24, w0 and w0, w0, 65535 add w0, w0, 1 orr w0, w5, w0, lsl 24 str w0, [x6, x7, lsl 2] .L3797: adrp x0, .LANCHOR124 ldrb w0, [x0, #:lo12:.LANCHOR124] cbz w0, .L3779 adrp x0, .LANCHOR235 add x0, x0, :lo12:.LANCHOR235 ldrh w0, [x0, w25, sxtw 1] cmp w0, w25 bcs .L3779 tbz x24, 0, .L3779 ldr x3, [x29, 160] mov w0, -1 strb w0, [x1, x3] ldrh w1, [x29, 128] ldr x0, [x4, x2, lsl 3] ldr x2, [x29, 112] strh w1, [x0, 48] ldrb w1, [x0, 1] adrp x0, .LANCHOR82 ldr x0, [x0, #:lo12:.LANCHOR82] strb w1, [x0, x2] adrp x0, .LANCHOR160 ldr w2, [x29, 172] mov w1, -1 ldr x0, [x0, #:lo12:.LANCHOR160] str w1, [x0, w2, sxtw 2] .L3779: ldr w0, [x29, 152] add w0, w0, 1 str w0, [x29, 152] b .L3756 .L3775: add w0, w0, w20 adrp x7, .LANCHOR111 add x0, x26, x0, sxtw 1 ldrh w7, [x7, #:lo12:.LANCHOR111] ldrh w0, [x0, 16] madd w0, w0, w7, w25 b .L3870 .L3771: cmp w0, 2 bne .L3778 adrp x0, .LANCHOR80 adrp x5, .LANCHOR111 ldrb w0, [x0, #:lo12:.LANCHOR80] cbnz w0, .L3777 ldr w0, [x29, 168] ldrh w5, [x5, #:lo12:.LANCHOR111] add w27, w20, w0 add x27, x26, x27, sxtw 1 ldrh w0, [x27, 16] madd w0, w0, w5, w25 .L3867: orr w0, w0, 33554432 str w0, [x6, 40] b .L3778 .L3777: add w0, w20, w24, lsr 1 ldrh w5, [x5, #:lo12:.LANCHOR111] add x0, x26, x0, sxtw 1 ldrh w0, [x0, 16] madd w0, w0, w5, w25 and w5, w24, 1 add w0, w0, w5 b .L3867 .L3784: ldr x4, [x0, w1, sxtw 3] add w1, w1, 1 ldr x5, [x0, w1, sxtw 3] and w1, w1, 65535 ldrb w5, [x5, 1] strb w5, [x4] b .L3783 .L3782: adrp x1, .LANCHOR83 ldrb w2, [x1, #:lo12:.LANCHOR83] ldr x1, [x29, 176] cbz w2, .L3786 .L3789: strb wzr, [x1, 60] b .L3788 .L3786: cmp w23, 1 bne .L3787 mov w2, 9 .L3868: strb w2, [x1, 60] .L3788: mov w2, w21 add x1, x0, 24 bl sblk_xlc_prog_pages .L3785: adrp x0, .LANCHOR83 ldrb w0, [x0, #:lo12:.LANCHOR83] cbz w0, .L3794 add w21, w21, w21, lsl 1 and w21, w21, 65535 .L3795: adrp x0, .LANCHOR110 ldr x1, [x0, #:lo12:.LANCHOR110] ldr w0, [x1, 52] add w0, w0, w21 str w0, [x1, 52] adrp x0, .LANCHOR70 add x25, x0, :lo12:.LANCHOR70 ldrh w0, [x25, 2106] add w21, w21, w0 adrp x0, .LANCHOR85 and w21, w21, 65535 strh w21, [x25, 2106] ldrh w0, [x0, #:lo12:.LANCHOR85] ldrb w1, [x26, 9] mul w0, w0, w1 cmp w21, w0 blt .L3796 ldr x0, [x29, 144] ldr x0, [x0, #:lo12:.LANCHOR12] strh wzr, [x0, 86] .L3796: bl gc_write_completed b .L3733 .L3787: cmp w23, 2 bne .L3789 mov w2, 13 b .L3868 .L3781: adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbz w1, .L3807 adrp x1, .LANCHOR81 ldrb w1, [x1, #:lo12:.LANCHOR81] cbnz w1, .L3791 .L3790: ldr w2, [x29, 156] sub w2, w2, #1 .L3792: cmp w1, w2 bge .L3869 ldr x4, [x0, w1, sxtw 3] add w1, w1, 1 ldr x5, [x0, w1, sxtw 3] and w1, w1, 65535 ldrb w5, [x5, 1] strb w5, [x4] b .L3792 .L3807: mov w1, 0 b .L3790 .L3791: mov w1, w21 bl sblk_3d_mlc_prog_pages b .L3785 .L3794: adrp x0, .LANCHOR80 ldrb w0, [x0, #:lo12:.LANCHOR80] cbnz w0, .L3808 adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbz w0, .L3795 adrp x0, .LANCHOR124 ldrh w1, [x29, 156] ldrb w0, [x0, #:lo12:.LANCHOR124] cbz w0, .L3809 adrp x0, .LANCHOR235 add x0, x0, :lo12:.LANCHOR235 ldrh w0, [x0, w25, sxtw 1] cmp w0, w25 csel w21, w21, w1, cc b .L3795 .L3808: ldr w21, [x29, 132] b .L3795 .L3809: mov w21, w1 b .L3795 .size gc_do_copy_back, .-gc_do_copy_back .section .text.zftl_do_gc,"ax",@progbits .align 2 .global zftl_do_gc .type zftl_do_gc, %function zftl_do_gc: sub sp, sp, #144 adrp x1, .LANCHOR107 stp x29, x30, [sp, 16] add x29, sp, 16 ldrh w1, [x1, #:lo12:.LANCHOR107] stp x21, x22, [sp, 48] adrp x22, .LANCHOR103 stp x19, x20, [sp, 32] adrp x20, .LANCHOR156 stp x23, x24, [sp, 64] adrp x23, .LANCHOR12 stp x25, x26, [sp, 80] ldrh w21, [x22, #:lo12:.LANCHOR103] ldrb w2, [x20, #:lo12:.LANCHOR156] stp x27, x28, [sp, 96] add w21, w1, w21 ldr x26, [x23, #:lo12:.LANCHOR12] cmp w2, 6 bhi .L3988 mov w25, w0 and w21, w21, 65535 adrp x0, .L3874 add x0, x0, :lo12:.L3874 ldrh w0, [x0,w2,uxtw #1] adr x2, .Lrtx3874 add x0, x2, w0, sxth #2 br x0 .Lrtx3874: .section .rodata.zftl_do_gc,"a",@progbits .align 0 .align 2 .L3874: .2byte (.L3873 - .Lrtx3874) / 4 .2byte (.L3875 - .Lrtx3874) / 4 .2byte (.L3876 - .Lrtx3874) / 4 .2byte (.L3877 - .Lrtx3874) / 4 .2byte (.L3878 - .Lrtx3874) / 4 .2byte (.L3879 - .Lrtx3874) / 4 .2byte (.L3880 - .Lrtx3874) / 4 .section .text.zftl_do_gc .L3879: adrp x19, .LANCHOR70 add x24, x19, :lo12:.LANCHOR70 mov w22, 0 .L3881: bl gc_check_data_one_wl cbz w0, .L3984 ldr x0, [x23, #:lo12:.LANCHOR12] add x19, x19, :lo12:.LANCHOR70 strh wzr, [x19, 56] ldrh w0, [x0, 80] bl ftl_free_sblk adrp x2, .LANCHOR110 ldr x1, [x23, #:lo12:.LANCHOR12] mov w0, -1 ldr x2, [x2, #:lo12:.LANCHOR110] strh w0, [x1, 80] strh w0, [x2, 126] strh w0, [x1, 130] ldr x0, [x19, 8] bl zbuf_free strb wzr, [x20, #:lo12:.LANCHOR156] str xzr, [x19, 8] b .L4074 .L3873: adrp x0, .LANCHOR105 adrp x27, .LANCHOR97 ldrh w3, [x26, 80] ldrh w22, [x0, #:lo12:.LANCHOR105] adrp x0, .LANCHOR99 ldrh w24, [x27, #:lo12:.LANCHOR97] ldrh w2, [x0, #:lo12:.LANCHOR99] add w22, w1, w22 stp x0, x27, [x29, 112] and w22, w22, 65535 add w24, w24, w2 mov w2, 65535 and w24, w24, 65535 cmp w3, w2 beq .L3882 cbnz w25, .L3883 adrp x0, .LANCHOR86 ldrh w0, [x0, #:lo12:.LANCHOR86] cmp w21, w0, lsl 1 blt .L3883 .L3988: mov w19, 16 b .L3871 .L3883: adrp x5, .LANCHOR96 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 adrp x25, .LANCHOR84 ldrh w1, [x5, #:lo12:.LANCHOR96] add w1, w1, 1 and w1, w1, 65535 strh w1, [x5, #:lo12:.LANCHOR96] bl _list_get_gc_head_node and w3, w0, 65535 mov w1, 65535 cmp w3, w1 beq .L3884 adrp x4, .LANCHOR11 ubfiz x3, x3, 1, 16 adrp x1, .LANCHOR157 mov x19, x1 ldr x4, [x4, #:lo12:.LANCHOR11] ldr w2, [x1, #:lo12:.LANCHOR157] add w2, w2, 1 str w2, [x1, #:lo12:.LANCHOR157] ldrh w3, [x4, x3] adrp x4, .LANCHOR94 ldrh w4, [x4, #:lo12:.LANCHOR94] cmp w4, w3 bcs .L3885 adrp x1, .LANCHOR8 ldrh w1, [x1, #:lo12:.LANCHOR8] cmp w2, w1, lsr 4 bls .L3884 adrp x1, .LANCHOR100 ldrh w1, [x1, #:lo12:.LANCHOR100] cmp w1, w3 bls .L3884 .L3885: ldrb w2, [x25, #:lo12:.LANCHOR84] mov w1, 0 bl gc_add_sblk cbz w0, .L3886 mov w0, 1 str wzr, [x19, #:lo12:.LANCHOR157] strb w0, [x20, #:lo12:.LANCHOR156] b .L3988 .L3884: strh wzr, [x5, #:lo12:.LANCHOR96] .L3886: cmp w22, 15 bls .L3990 adrp x0, .LANCHOR91 ldrh w1, [x0, #:lo12:.LANCHOR91] adrp x0, .LANCHOR101 ldrh w0, [x0, #:lo12:.LANCHOR101] cmp w1, w0 bhi .L3990 cmp w24, 0 cset w19, eq add w19, w19, 1 .L3887: adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 8, .L3888 ldr x0, [x23, #:lo12:.LANCHOR12] mov w4, w22 ldrb w2, [x25, #:lo12:.LANCHOR84] mov w3, w21 mov w1, 2807 ldrh w7, [x0, 122] ldrh w6, [x0, 120] ldrh w5, [x0, 124] ldrh w0, [x26, 80] str w0, [sp] adrp x0, .LC239 add x0, x0, :lo12:.LC239 bl printf .L3888: ldrb w0, [x25, #:lo12:.LANCHOR84] mov w2, 1 mov w1, w19 bl gc_search_src_blk cmp w0, 0 ble .L3889 .L3890: mov w0, 1 .L4076: strb w0, [x20, #:lo12:.LANCHOR156] b .L3988 .L3990: mov w19, 2 b .L3887 .L3889: ldrb w0, [x25, #:lo12:.LANCHOR84] mov w2, 1 mov w1, 3 bl gc_search_src_blk cmp w0, 0 bgt .L3890 b .L3988 .L3882: cmp w25, 1 bne .L3892 adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] ldrh w0, [x0, 150] cbz w0, .L3893 cmp w1, 8 bls .L3893 bl gc_ink_check_sblk .L3893: bl gc_scan_static_data adrp x26, .LANCHOR84 ldr x0, [x23, #:lo12:.LANCHOR12] ldrh w0, [x0, 122] cbz w0, .L3894 .L3895: mov w0, 1 strb w0, [x26, #:lo12:.LANCHOR84] b .L4076 .L3894: bl gc_static_wearleveling mov w19, w0 cbnz w0, .L3895 adrp x27, .LANCHOR158 cbz w22, .L3896 cmp w21, w24 adrp x1, .LANCHOR98 bcs .L3897 ldrh w0, [x1, #:lo12:.LANCHOR98] cmp w0, w21 bhi .L3898 .L3897: ldrh w1, [x1, #:lo12:.LANCHOR98] add w0, w21, w24 cmp w0, w1 blt .L3898 adrp x0, .LANCHOR91 ldrh w1, [x0, #:lo12:.LANCHOR91] adrp x0, .LANCHOR101 ldrh w0, [x0, #:lo12:.LANCHOR101] cmp w1, w0 bcc .L3896 .L3898: mov w0, 1 mov w1, 16 strb w0, [x26, #:lo12:.LANCHOR84] adrp x0, .LANCHOR95 add x0, x0, :lo12:.LANCHOR95 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 adrp x28, .LANCHOR157 cmp w1, w2 beq .L3899 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR11] ldrh w2, [x2, x1] ldrh w1, [x27, #:lo12:.LANCHOR158] cmp w2, w1 bcs .L3899 cmp w21, 2 bls .L3899 strb wzr, [x26, #:lo12:.LANCHOR84] mov w2, 0 str wzr, [x28, #:lo12:.LANCHOR157] mov w1, 1 bl gc_add_sblk cbnz w0, .L3890 .L3899: mov w1, 0 adrp x0, .LANCHOR90 add x0, x0, :lo12:.LANCHOR90 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L3900 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR11] ldrh w2, [x2, x1] ldrh w1, [x27, #:lo12:.LANCHOR158] cmp w2, w1 bcs .L3900 cmp w21, 2 bls .L3900 strb wzr, [x26, #:lo12:.LANCHOR84] mov w2, 0 str wzr, [x28, #:lo12:.LANCHOR157] mov w1, 1 bl gc_add_sblk cbnz w0, .L3890 .L3900: ldrh w0, [x27, #:lo12:.LANCHOR158] adrp x1, .LANCHOR94 add w0, w0, 1 ldrh w5, [x1, #:lo12:.LANCHOR94] and w0, w0, 65535 strh w0, [x27, #:lo12:.LANCHOR158] cmp w0, w5, lsr 5 bls .L3901 mov w0, 4 strh w0, [x27, #:lo12:.LANCHOR158] .L3901: adrp x1, .LANCHOR87 ldr w0, [x28, #:lo12:.LANCHOR157] strh wzr, [x1, #:lo12:.LANCHOR87] adrp x1, .LANCHOR88 add w0, w0, 1 str w0, [x28, #:lo12:.LANCHOR157] strh wzr, [x1, #:lo12:.LANCHOR88] adrp x1, .LANCHOR89 strh wzr, [x1, #:lo12:.LANCHOR89] adrp x1, .LANCHOR8 ldrh w1, [x1, #:lo12:.LANCHOR8] cmp w0, w1, lsr 5 adrp x0, .LANCHOR91 bls .L3902 ldrh w1, [x0, #:lo12:.LANCHOR91] cmp w1, w22 bls .L3902 mov w1, 0 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 bl _list_get_gc_head_node and w0, w0, 65535 mov w1, 65535 cmp w0, w1 bne .L3903 .L4064: mov w19, 16 b .L3904 .L3903: adrp x1, .LANCHOR11 ubfiz x0, x0, 1, 16 ldr x1, [x1, #:lo12:.LANCHOR11] ldrh w1, [x1, x0] adrp x0, .LANCHOR79 ldrb w0, [x0, #:lo12:.LANCHOR79] mul w0, w0, w5 cmp w1, w0 bgt .L4064 str wzr, [x28, #:lo12:.LANCHOR157] mov w2, 4 .L4070: mov w1, 2 .L4063: ldrb w0, [x26, #:lo12:.LANCHOR84] bl gc_search_src_blk and w0, w0, 65535 cbz w0, .L4064 b .L3890 .L3902: ldrh w1, [x0, #:lo12:.LANCHOR91] adrp x0, .LANCHOR101 ldrh w0, [x0, #:lo12:.LANCHOR101] cmp w1, w0 bcc .L3907 mov w2, 1 b .L4070 .L3907: ldr x0, [x29, 120] ldrh w0, [x0, #:lo12:.LANCHOR97] cbnz w0, .L3908 ldr x0, [x29, 112] ldrh w0, [x0, #:lo12:.LANCHOR99] cmp w0, 8 bls .L3909 .L3908: mov w2, 4 mov w1, 1 b .L4063 .L3909: adrp x0, .LANCHOR70+2110 ldrh w0, [x0, #:lo12:.LANCHOR70+2110] cbnz w0, .L4064 .L3904: ldr x0, [x23, #:lo12:.LANCHOR12] adrp x28, .LANCHOR84 mov w1, 1 mov x23, x28 strb w1, [x28, #:lo12:.LANCHOR84] ldrh w0, [x0, 124] cbz w0, .L3910 strb wzr, [x28, #:lo12:.LANCHOR84] strb w1, [x20, #:lo12:.LANCHOR156] .L3871: mov w0, w19 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x23, x24, [sp, 64] ldp x25, x26, [sp, 80] ldp x27, x28, [sp, 96] ldp x29, x30, [sp, 16] add sp, sp, 144 ret .L3896: adrp x0, .LANCHOR94 ldrh w1, [x0, #:lo12:.LANCHOR94] ldrh w0, [x27, #:lo12:.LANCHOR158] cmp w0, w1, lsr 5 bcc .L4064 mov w0, 4 strh w0, [x27, #:lo12:.LANCHOR158] b .L4064 .L3892: adrp x0, .LANCHOR86 ldrh w0, [x0, #:lo12:.LANCHOR86] cmp w0, w21 bcs .L4064 ldrh w0, [x26, 124] cbz w0, .L3988 b .L4064 .L3910: adrp x0, .LANCHOR86 mov x26, x0 ldrh w2, [x0, #:lo12:.LANCHOR86] cmp w21, w2 bcs .L3911 cbz w22, .L3912 cmp w22, 16 bls .L3913 adrp x0, .LANCHOR91 ldrh w2, [x0, #:lo12:.LANCHOR91] adrp x0, .LANCHOR101 ldrh w0, [x0, #:lo12:.LANCHOR101] cmp w2, w0 bhi .L3913 mov w2, 4 mov w0, w1 bl gc_search_src_blk tst w0, 65535 bne .L3914 .L4071: mov w2, 4 mov w1, 3 ldrb w0, [x28, #:lo12:.LANCHOR84] b .L4066 .L3914: mov w1, 0 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 bl _list_get_gc_head_node and w3, w0, 65535 mov w1, 65535 cmp w3, w1 beq .L3917 adrp x4, .LANCHOR11 ubfiz x3, x3, 1, 16 adrp x1, .LANCHOR157 mov x21, x1 ldr x4, [x4, #:lo12:.LANCHOR11] ldr w2, [x1, #:lo12:.LANCHOR157] add w2, w2, 1 str w2, [x1, #:lo12:.LANCHOR157] ldrh w3, [x4, x3] adrp x4, .LANCHOR94 ldrh w4, [x4, #:lo12:.LANCHOR94] cmp w4, w3 bcs .L3918 adrp x1, .LANCHOR8 ldrh w1, [x1, #:lo12:.LANCHOR8] cmp w2, w1, lsr 4 bls .L3917 adrp x1, .LANCHOR100 ldrh w1, [x1, #:lo12:.LANCHOR100] cmp w1, w3 bls .L3917 .L3918: ldrb w2, [x23, #:lo12:.LANCHOR84] mov w1, 0 bl gc_add_sblk str wzr, [x21, #:lo12:.LANCHOR157] adrp x0, .LANCHOR122 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR122] .L3917: mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR156] b .L3871 .L3913: mov w2, 1 mov w1, 2 mov w0, w2 bl gc_search_src_blk tst w0, 65535 bne .L3917 ldrb w0, [x23, #:lo12:.LANCHOR84] mov w2, 4 mov w1, 3 .L4066: bl gc_search_src_blk and w0, w0, 65535 .L3915: cbnz w0, .L3917 b .L3871 .L3912: strb wzr, [x28, #:lo12:.LANCHOR84] cmp w21, 16 bls .L3920 mov w2, 4 mov w1, 3 mov w0, 0 b .L4066 .L3920: mov w2, w1 mov w0, 0 bl gc_search_src_blk tst w0, 65535 bne .L3917 b .L4071 .L3911: cmp w25, 1 bne .L3871 cmp w21, w2, lsl 1 bge .L3921 cmp w24, w22, lsr 1 bcs .L3922 adrp x1, .LANCHOR91 ldrh w2, [x1, #:lo12:.LANCHOR91] adrp x1, .LANCHOR101 ldrh w1, [x1, #:lo12:.LANCHOR101] cmp w2, w1 bcs .L3922 adrp x1, .LANCHOR98 ldrh w1, [x1, #:lo12:.LANCHOR98] lsr w1, w1, 2 strh w1, [x0, #:lo12:.LANCHOR86] b .L3871 .L3922: mov w1, 8 adrp x25, .LANCHOR95 add x0, x25, :lo12:.LANCHOR95 bl _list_get_gc_head_node and w1, w0, 65535 mov w2, 65535 cmp w1, w2 beq .L3923 adrp x2, .LANCHOR11 ubfiz x1, x1, 1, 16 ldr x2, [x2, #:lo12:.LANCHOR11] ldrh w1, [x2, x1] cmp w1, 3 bhi .L3923 cbz w21, .L3923 strb wzr, [x23, #:lo12:.LANCHOR84] mov w2, 0 mov w1, 1 bl gc_add_sblk cbnz w0, .L3917 .L3923: mov w1, 0 adrp x0, .LANCHOR92 add x0, x0, :lo12:.LANCHOR92 bl _list_get_gc_head_node and w28, w0, 65535 mov w1, 65535 mov w3, w28 cmp w28, w1 bne .L3924 .L3929: cmp w22, 1 bhi .L3925 .L3926: cmp w21, w24 adrp x21, .LANCHOR98 bcs .L3933 mov w1, 4 strb wzr, [x23, #:lo12:.LANCHOR84] add x0, x25, :lo12:.LANCHOR95 bl _list_get_gc_head_node and w0, w0, 65535 mov w1, 65535 cmp w0, w1 beq .L3933 adrp x1, .LANCHOR11 ubfiz x0, x0, 1, 16 adrp x2, .LANCHOR79 ldr x1, [x1, #:lo12:.LANCHOR11] ldrb w2, [x2, #:lo12:.LANCHOR79] ldrh w1, [x1, x0] adrp x0, .LANCHOR94 ldrh w0, [x0, #:lo12:.LANCHOR94] mul w0, w0, w2 cmp w1, w0, lsr 1 ble .L3935 .L3933: ldrh w0, [x21, #:lo12:.LANCHOR98] lsr w0, w0, 2 strh w0, [x26, #:lo12:.LANCHOR86] b .L3871 .L3924: adrp x2, .LANCHOR157 adrp x4, .LANCHOR8 uxtw x28, w28 ldr w1, [x2, #:lo12:.LANCHOR157] ldrh w4, [x4, #:lo12:.LANCHOR8] add w1, w1, 1 str w1, [x2, #:lo12:.LANCHOR157] cmp w1, w4, lsr 4 adrp x4, .LANCHOR11 bls .L3927 ldr x1, [x4, #:lo12:.LANCHOR11] str wzr, [x2, #:lo12:.LANCHOR157] ldrh w2, [x1, x28, lsl 1] adrp x1, .LANCHOR100 ldrh w1, [x1, #:lo12:.LANCHOR100] cmp w2, w1 bcs .L3927 mov w5, 1 str x4, [x29, 96] strb w5, [x23, #:lo12:.LANCHOR84] mov w2, 1 stp w3, w5, [x29, 104] mov w1, 0 bl gc_add_sblk ldp w3, w5, [x29, 104] ldr x4, [x29, 96] cbz w0, .L3927 strb w5, [x20, #:lo12:.LANCHOR156] b .L3871 .L3927: ldr x0, [x4, #:lo12:.LANCHOR11] ldrh w1, [x0, x28, lsl 1] adrp x0, .LANCHOR94 ldrh w0, [x0, #:lo12:.LANCHOR94] cmp w1, w0, lsr 1 bhi .L3928 mov w2, 0 mov w1, 1 mov w0, w3 bl gc_add_sblk b .L3917 .L3928: ldp x2, x0, [x29, 112] ldrh w2, [x2, #:lo12:.LANCHOR99] ldrh w0, [x0, #:lo12:.LANCHOR97] add w0, w0, w2 adrp x2, .LANCHOR98 ldrh w2, [x2, #:lo12:.LANCHOR98] cmp w0, w2, lsl 1 ble .L3929 adrp x0, .LANCHOR100 ldrh w0, [x0, #:lo12:.LANCHOR100] cmp w0, w1 bcc .L3926 b .L3929 .L3925: mov w1, 1 strb w1, [x23, #:lo12:.LANCHOR84] cmp w22, 16 bls .L3930 adrp x0, .LANCHOR91 ldrh w2, [x0, #:lo12:.LANCHOR91] adrp x0, .LANCHOR101 ldrh w0, [x0, #:lo12:.LANCHOR101] cmp w2, w0 bhi .L3930 mov w0, w1 mov w2, 4 .L4073: bl gc_search_src_blk ands w0, w0, 65535 bne .L3931 ldrb w0, [x23, #:lo12:.LANCHOR84] mov w2, 4 mov w1, 3 bl gc_search_src_blk and w0, w0, 65535 .L3931: adrp x1, .LANCHOR98 cmp w21, w24, lsr 1 ldrh w1, [x1, #:lo12:.LANCHOR98] bls .L4067 lsr w1, w1, 2 .L4068: strh w1, [x26, #:lo12:.LANCHOR86] b .L3915 .L3930: mov w2, 1 mov w1, 2 mov w0, w2 b .L4073 .L3935: mov w1, 3 mov w2, 4 mov w0, 0 bl gc_search_src_blk ldrh w1, [x21, #:lo12:.LANCHOR98] and w0, w0, 65535 .L4067: lsr w1, w1, 1 b .L4068 .L3921: adrp x1, .LANCHOR98 ldrh w1, [x1, #:lo12:.LANCHOR98] lsr w1, w1, 2 strh w1, [x0, #:lo12:.LANCHOR86] adrp x0, .LANCHOR70+2110 ldrh w0, [x0, #:lo12:.LANCHOR70+2110] cmp w0, 0 csel w19, w19, wzr, ne b .L3871 .L3875: adrp x7, .LANCHOR70 mov w0, 65535 ldrh w1, [x7, #:lo12:.LANCHOR70] cmp w1, w0 bne .L3936 bl gc_get_src_blk strh w0, [x7, #:lo12:.LANCHOR70] .L3936: ldrh w0, [x7, #:lo12:.LANCHOR70] mov w1, 65535 cmp w0, w1 beq .L3937 adrp x1, .LANCHOR8 ldrh w1, [x1, #:lo12:.LANCHOR8] cmp w1, w0 bhi .L3937 mov w0, -1 strh w0, [x7, #:lo12:.LANCHOR70] .L3937: ldrh w3, [x7, #:lo12:.LANCHOR70] mov w0, 65535 add x1, x7, :lo12:.LANCHOR70 cmp w3, w0 beq .L4075 adrp x0, .LANCHOR9 ldrh w5, [x1, 56] uxtw x4, w3 ldr x2, [x0, #:lo12:.LANCHOR9] add x2, x2, x4, lsl 2 cbz w5, .L3939 add x1, x1, 58 mov w0, 0 .L3941: ldrh w6, [x1], 2 cmp w6, w3 bne .L3940 .L3945: adrp x0, .LANCHOR70 mov w1, -1 strh w1, [x0, #:lo12:.LANCHOR70] b .L3988 .L3940: add w0, w0, 1 and w0, w0, 65535 cmp w5, w0 bne .L3941 .L3939: ldrb w0, [x2, 2] and w1, w0, 224 cmp w1, 224 beq .L3942 tst w0, 192 bne .L3943 .L3942: adrp x0, .LANCHOR11 ldr x0, [x0, #:lo12:.LANCHOR11] ldrh w0, [x0, x4, lsl 1] cbz w0, .L3945 mov w2, 3306 adrp x1, .LANCHOR237 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf b .L3945 .L3943: mov w0, 2 b .L4076 .L3876: bl gc_scan_src_blk cmn w0, #1 bne .L3946 mov w0, 3 b .L4076 .L3946: adrp x19, .LANCHOR70 mov w2, 65535 add x0, x19, :lo12:.LANCHOR70 ldrh w1, [x19, #:lo12:.LANCHOR70] cmp w1, w2 beq .L3890 ldrh w2, [x0, 24] cbz w2, .L3947 mov w1, 4 strh wzr, [x0, 26] strb w1, [x20, #:lo12:.LANCHOR156] b .L3988 .L3947: mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR156] adrp x0, .LANCHOR11 ubfiz x1, x1, 1, 16 mov x20, x0 ldr x2, [x0, #:lo12:.LANCHOR11] ldrh w1, [x2, x1] cbz w1, .L3948 adrp x1, .LANCHOR237 adrp x0, .LC0 mov w2, 3336 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf .L3948: ldrh w0, [x19, #:lo12:.LANCHOR70] add x21, x19, :lo12:.LANCHOR70 bl ftl_free_sblk ldr x0, [x20, #:lo12:.LANCHOR11] ldrh w1, [x19, #:lo12:.LANCHOR70] strh wzr, [x0, x1, lsl 1] ldrh w0, [x21, 30] add w0, w0, 1 and w0, w0, 65535 cmp w0, 8 bhi .L3949 strh w0, [x21, 30] b .L3945 .L3949: strh wzr, [x21, 30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush b .L3945 .L3877: adrp x19, .LANCHOR70 adrp x23, .LANCHOR94 add x22, x19, :lo12:.LANCHOR70 add x23, x23, :lo12:.LANCHOR94 .L4037: bl gc_scan_src_blk_one_page ldrh w1, [x22, 2] ldrh w0, [x23] cmp w1, w0 bcs .L3951 cmp w21, 7 bls .L4037 b .L3988 .L3951: ldrh w3, [x22, 24] ldrh w1, [x22] cbz w3, .L3952 mov w0, 4 strb w0, [x20, #:lo12:.LANCHOR156] adrp x20, .LANCHOR11 ubfiz x0, x1, 1, 16 strh wzr, [x22, 26] ldr x2, [x20, #:lo12:.LANCHOR11] ldrh w2, [x2, x0] cmp w3, w2 beq .L3953 adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 10, .L3953 adrp x0, .LC240 add x0, x0, :lo12:.LC240 bl printf .L3953: ldrh w2, [x19, #:lo12:.LANCHOR70] add x0, x19, :lo12:.LANCHOR70 ldr x1, [x20, #:lo12:.LANCHOR11] ldrh w0, [x0, 24] ldrh w1, [x1, x2, lsl 1] cmp w1, w0 beq .L3954 adrp x1, .LANCHOR237 adrp x0, .LC0 mov w2, 3379 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf .L3954: add x0, x19, :lo12:.LANCHOR70 ldrh w1, [x19, #:lo12:.LANCHOR70] ldrh w2, [x0, 24] ldr x0, [x20, #:lo12:.LANCHOR11] strh w2, [x0, x1, lsl 1] b .L3988 .L3952: adrp x0, .LANCHOR9 ldr x21, [x0, #:lo12:.LANCHOR9] mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR156] adrp x0, .LANCHOR19 ldr w0, [x0, #:lo12:.LANCHOR19] add x21, x21, x1, uxth 2 tbz x0, 8, .L3955 ldrb w2, [x21, 2] adrp x0, .LC241 add x0, x0, :lo12:.LC241 ubfx x2, x2, 5, 3 bl printf .L3955: ldrb w0, [x21, 2] and w1, w0, 224 cmp w1, 224 beq .L3956 tst w0, 192 bne .L3957 .L3956: adrp x1, .LANCHOR237 adrp x0, .LC0 mov w2, 3389 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf .L3957: ldrh w0, [x19, #:lo12:.LANCHOR70] add x20, x19, :lo12:.LANCHOR70 bl ftl_free_sblk mov w0, -1 strh w0, [x19, #:lo12:.LANCHOR70] ldrh w0, [x20, 30] add w0, w0, 1 and w0, w0, 65535 cmp w0, 8 bhi .L3958 strh w0, [x20, 30] b .L3988 .L3958: strh wzr, [x20, 30] .L4074: bl flt_sys_flush b .L3988 .L3878: ldrh w1, [x26, 80] mov w0, 65535 cmp w1, w0 bne .L3959 adrp x0, .LANCHOR84 ldrb w19, [x0, #:lo12:.LANCHOR84] cmp w19, 1 bne .L3959 bl ftl_flush adrp x0, .LANCHOR70 add x1, x0, :lo12:.LANCHOR70 mov x20, x0 ldrh w1, [x1, 2192] cbz w1, .L3960 mov w0, w19 mov w1, 5 .L4069: bl zftl_gc_get_free_sblk and w19, w0, 65535 mov w0, 65535 cmp w19, w0 beq .L3962 adrp x0, .LANCHOR9 ldr x21, [x0, #:lo12:.LANCHOR9] add x21, x21, x19, uxth 2 ldrb w0, [x21, 2] tst w0, 224 beq .L3963 adrp x1, .LANCHOR237 adrp x0, .LC0 mov w2, 3423 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf .L3963: ldrb w0, [x21, 2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 strb w0, [x21, 2] .L3987: mov w1, 1 mov w0, w19 bl ftl_erase_sblk adrp x22, .LANCHOR85 mov w0, 5 strb w0, [x26, 84] add x1, x26, 96 mov w0, w19 bl ftl_get_blk_list_in_sblk and w0, w0, 255 adrp x1, .LANCHOR94 adrp x21, .LANCHOR79 strb w0, [x26, 89] ldrh w1, [x1, #:lo12:.LANCHOR94] ldrh w2, [x22, #:lo12:.LANCHOR85] strh w19, [x26, 80] strh wzr, [x26, 82] mul w0, w0, w1 strb wzr, [x26, 85] strh w0, [x26, 86] mov w1, 255 ldrb w0, [x21, #:lo12:.LANCHOR79] strh wzr, [x26, 90] mul w2, w2, w0 adrp x0, .LANCHOR159 ldr x0, [x0, #:lo12:.LANCHOR159] lsl w2, w2, 2 bl ftl_memset ldrb w0, [x21, #:lo12:.LANCHOR79] mov w1, 255 ldrh w2, [x22, #:lo12:.LANCHOR85] mul w2, w2, w0 adrp x0, .LANCHOR160 ldr x0, [x0, #:lo12:.LANCHOR160] lsl w2, w2, 2 bl ftl_memset ldrb w0, [x21, #:lo12:.LANCHOR79] mov w1, 255 ldrh w2, [x22, #:lo12:.LANCHOR85] mul w2, w2, w0 adrp x0, .LANCHOR82 ldr x0, [x0, #:lo12:.LANCHOR82] bl ftl_memset ldr x0, [x23, #:lo12:.LANCHOR12] mov w1, -1 str w19, [x0, 132] strh w1, [x0, 128] strh w1, [x0, 130] bl pm_flush bl ftl_ext_info_flush adrp x0, .LANCHOR110 mov w1, -1 ldr x0, [x0, #:lo12:.LANCHOR110] strh w19, [x0, 126] add x0, x20, :lo12:.LANCHOR70 str w1, [x0, 2196] strh wzr, [x0, 2106] strh wzr, [x0, 56] strh wzr, [x0, 2108] strh wzr, [x0, 2194] mov w0, 0 bl ftl_info_flush b .L3988 .L3960: mov w1, 5 mov w0, 0 b .L4069 .L3959: cmp w25, 1 mov w24, 4 csinc w24, w24, wzr, eq cmp w21, 15 mov w0, w24 add w24, w24, 4 adrp x25, .LANCHOR84 adrp x21, .LANCHOR70 csel w24, w24, w0, ls add x25, x25, :lo12:.LANCHOR84 add x19, x21, :lo12:.LANCHOR70 add x27, x26, 80 .L3966: sub w24, w24, #1 and w24, w24, 255 cmp w24, 255 beq .L3988 bl gc_do_copy_back ldrb w0, [x25] cbnz w0, .L3967 adrp x0, .LANCHOR57 ldrb w0, [x0, #:lo12:.LANCHOR57] cmp w0, 3 bhi .L3968 bl ftl_write_commit .L3968: ldrh w1, [x19, 26] ldrh w0, [x19, 24] cmp w1, w0 bcc .L3966 mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR156] bl ftl_write_commit bl ftl_flush adrp x0, .LANCHOR11 ldrh w2, [x19] mov x19, x0 ldr x1, [x0, #:lo12:.LANCHOR11] ldrh w1, [x1, x2, lsl 1] cbz w1, .L3970 adrp x1, .LANCHOR237 adrp x0, .LC0 mov w2, 3507 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf .L3970: ldrh w0, [x21, #:lo12:.LANCHOR70] ldr x2, [x19, #:lo12:.LANCHOR11] ubfiz x1, x0, 1, 16 ldrh w1, [x2, x1] cbnz w1, .L3971 bl ftl_free_sblk b .L3945 .L3971: mov w2, 1 mov w1, 0 bl gc_add_sblk b .L3945 .L3967: ldrh w0, [x19, 2194] cbz w0, .L3972 strh wzr, [x19, 2194] bl sblk_wait_write_queue_completed bl gc_write_completed ldr w0, [x19, 2196] adrp x19, .LANCHOR110 cmn w0, #1 beq .L3973 adrp x1, .LANCHOR124 ldrb w1, [x1, #:lo12:.LANCHOR124] cbnz w1, .L3974 adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbz w1, .L3975 .L3974: ldr x1, [x19, #:lo12:.LANCHOR110] ldr w2, [x1, 156] mov w1, 20041 movk w1, 0x444b, lsl 16 cmp w2, w1 bne .L3975 adrp x1, .LANCHOR74 ldrh w3, [x1, #:lo12:.LANCHOR74] adrp x1, .LANCHOR31 ldrb w2, [x1, #:lo12:.LANCHOR31] mov w1, 24 lsr w0, w0, w3 sub w1, w1, w2 sub w2, w1, w3 mov w1, 1 lsl w1, w1, w2 sub w1, w1, #1 and w0, w1, w0 adrp x1, .LANCHOR75 ldrb w1, [x1, #:lo12:.LANCHOR75] udiv w0, w0, w1 adrp x1, .LANCHOR9 ldr x2, [x1, #:lo12:.LANCHOR9] lsl x0, x0, 2 add x4, x2, x0 ldrb w1, [x4, 2] tbz x1, 3, .L3973 adrp x5, .LANCHOR98 ldrh w3, [x22, #:lo12:.LANCHOR103] ldrh w5, [x5, #:lo12:.LANCHOR98] add w3, w3, 8 cmp w3, w5 bge .L3973 and w1, w1, -25 strb w1, [x4, 2] adrp x1, .LANCHOR10 ldr w3, [x2, x0] ldrh w1, [x1, #:lo12:.LANCHOR10] ldrh w4, [x2, x0] ubfx x3, x3, 11, 8 and w5, w4, 2047 mul w1, w1, w3 lsr w3, w3, 3 add w1, w1, w1, lsl 1 add w1, w5, w1, lsr 2 bfi w4, w1, 0, 11 strh w4, [x2, x0] ldr w1, [x2, x0] bfi w1, w3, 11, 8 str w1, [x2, x0] .L3973: ldr x0, [x23, #:lo12:.LANCHOR12] add x22, x21, :lo12:.LANCHOR70 strh wzr, [x22, 56] ldrh w0, [x0, 80] str wzr, [x22, 2196] bl ftl_free_sblk ldr x1, [x23, #:lo12:.LANCHOR12] mov w0, -1 ldr x2, [x19, #:lo12:.LANCHOR110] strh w0, [x1, 80] strh w0, [x2, 126] strh w0, [x1, 130] ldr x0, [x22, 8] cbz x0, .L3976 bl zbuf_free .L3976: add x21, x21, :lo12:.LANCHOR70 str xzr, [x21, 8] bl flt_sys_flush mov w2, 3567 strb wzr, [x20, #:lo12:.LANCHOR156] adrp x1, .LANCHOR237 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf b .L3988 .L3975: bl ftl_mask_bad_block b .L3973 .L3972: ldrh w0, [x27, 6] ldrh w1, [x19, 26] cmp w0, 1 ldrh w0, [x19, 24] bls .L3977 cmp w1, w0 bcc .L3966 mov w0, 1 strb w0, [x20, #:lo12:.LANCHOR156] ldrh w0, [x19, 56] add w1, w0, 1 strh w1, [x19, 56] add x0, x19, x0, sxtw 1 ldrh w1, [x19] strh w1, [x0, 58] mov w0, -1 strh w0, [x19] b .L3988 .L3977: mov w2, 5 strb w2, [x20, #:lo12:.LANCHOR156] cmp w1, w0 bcc .L3978 ldrh w0, [x19, 56] add w1, w0, 1 strh w1, [x19, 56] add x0, x19, x0, sxtw 1 ldrh w1, [x19] strh w1, [x0, 58] mov w0, -1 strh w0, [x19] .L3978: bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldr x0, [x23, #:lo12:.LANCHOR12] ldrh w1, [x26, 80] strh w1, [x0, 128] bl pm_flush bl ftl_ext_info_flush adrp x1, .LANCHOR94 add x0, x21, :lo12:.LANCHOR70 adrp x2, .LANCHOR35 ldrh w1, [x1, #:lo12:.LANCHOR94] strh w1, [x0, 18] adrp x1, .LANCHOR78 ldrb w2, [x2, #:lo12:.LANCHOR35] strh wzr, [x0, 16] ldrb w1, [x1, #:lo12:.LANCHOR78] strh w1, [x0, 20] cbz w2, .L3979 adrp x2, .LANCHOR85 ldrh w2, [x2, #:lo12:.LANCHOR85] strh w2, [x0, 18] mov w2, 1 strh w2, [x0, 20] .L3979: cmp w1, 2 bne .L3981 add x0, x21, :lo12:.LANCHOR70 ldrh w1, [x0, 18] ubfiz w1, w1, 1, 15 strh w1, [x0, 18] adrp x1, .LANCHOR80 ldrb w1, [x1, #:lo12:.LANCHOR80] cbnz w1, .L3981 mov w1, 1 strh w1, [x0, 20] .L3981: add x21, x21, :lo12:.LANCHOR70 strh wzr, [x21, 22] b .L3988 .L3984: ldrh w1, [x24, 16] ldrh w0, [x24, 18] cmp w1, w0 bcc .L3985 mov w0, 6 strb w0, [x20, #:lo12:.LANCHOR156] ldr x0, [x24, 8] bl zbuf_free str xzr, [x24, 8] b .L3988 .L3985: cmp w21, 15 bls .L3881 cmp w25, 1 bne .L3988 add w22, w22, 1 and w22, w22, 255 cmp w22, 4 bls .L3881 b .L3988 .L3880: bl gc_update_l2p_map_new mov w19, -1 bl gc_free_src_blk bl ftl_flush bl pm_flush strh w19, [x26, 80] bl ftl_ext_info_flush adrp x0, .LANCHOR110 ldr x0, [x0, #:lo12:.LANCHOR110] strh w19, [x0, 126] mov w0, 0 bl ftl_info_flush .L4075: strb wzr, [x20, #:lo12:.LANCHOR156] b .L3988 .L3962: mov w2, 3430 adrp x1, .LANCHOR237 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR237 add x0, x0, :lo12:.LC0 bl printf b .L3987 .size zftl_do_gc, .-zftl_do_gc .section .text.zftl_init,"ax",@progbits .align 2 .global zftl_init .type zftl_init, %function zftl_init: stp x29, x30, [sp, -112]! adrp x1, .LANCHOR65 mov w0, -1 add x29, sp, 0 strb w0, [x1, #:lo12:.LANCHOR65] adrp x1, .LANCHOR66 stp x21, x22, [sp, 32] adrp x22, .LANCHOR94 strb wzr, [x1, #:lo12:.LANCHOR66] adrp x1, .LANCHOR133 stp x19, x20, [sp, 16] adrp x21, .LANCHOR79 strb w0, [x1, #:lo12:.LANCHOR133] adrp x1, .LANCHOR134 stp x23, x24, [sp, 48] adrp x20, .LANCHOR221 strb wzr, [x1, #:lo12:.LANCHOR134] adrp x1, .LANCHOR182 stp x25, x26, [sp, 64] adrp x23, .LANCHOR8 strb w0, [x1, #:lo12:.LANCHOR182] adrp x0, .LANCHOR129 mov w1, -1 stp x27, x28, [sp, 80] strb wzr, [x0, #:lo12:.LANCHOR129] adrp x0, .LANCHOR238 str w1, [x0, #:lo12:.LANCHOR238] adrp x1, .LC242 adrp x0, .LC101 add x1, x1, :lo12:.LC242 add x0, x0, :lo12:.LC101 bl printf adrp x1, .LANCHOR32 add x1, x1, :lo12:.LANCHOR32 adrp x0, .LANCHOR78 adrp x2, .LANCHOR131 adrp x3, .LANCHOR112 adrp x4, .LANCHOR75 ldrb w7, [x1, 12] strb w7, [x0, #:lo12:.LANCHOR78] ldrb w0, [x1, 9] strb w0, [x2, #:lo12:.LANCHOR131] adrp x2, .LANCHOR85 ldrh w5, [x1, 10] strh w5, [x2, #:lo12:.LANCHOR85] adrp x2, .LANCHOR23 ldrh w8, [x1, 14] ubfiz w6, w0, 9, 7 ldrb w2, [x2, #:lo12:.LANCHOR23] sdiv w11, w5, w7 strb w2, [x3, #:lo12:.LANCHOR112] ldrb w3, [x1, 13] adrp x1, .LANCHOR2 strb w3, [x4, #:lo12:.LANCHOR75] ldrh w4, [x1, #:lo12:.LANCHOR2] adrp x1, .LANCHOR111 strh w11, [x22, #:lo12:.LANCHOR94] mul w2, w2, w3 strh w4, [x1, #:lo12:.LANCHOR111] strh w8, [x23, #:lo12:.LANCHOR8] mov w3, 1 and w2, w2, 255 strh w6, [x20, #:lo12:.LANCHOR221] strb w2, [x21, #:lo12:.LANCHOR79] mov w1, 0 .L4078: cmp w4, w3 bcs .L4079 mul w10, w0, w5 adrp x3, .LANCHOR74 sub w1, w1, #1 mov w4, 0 strh w1, [x3, #:lo12:.LANCHOR74] mov w1, 1 mul w3, w8, w10 lsr w12, w3, 21 .L4080: cmp w12, w1 bcs .L4081 mov w1, 57344 sub w4, w4, #1 movk w1, 0x1c, lsl 16 mul w3, w3, w2 adrp x28, .LANCHOR128 sub w12, w6, #1 mul w1, w2, w1 adrp x24, .LANCHOR202 mul w11, w11, w2 adrp x27, .LANCHOR240 mul w10, w10, w2 adrp x26, .LANCHOR152 lsl w1, w1, w4 adrp x4, .LANCHOR67 sub w10, w10, #1 adrp x25, .LANCHOR98 str w1, [x4, #:lo12:.LANCHOR67] adrp x4, .LANCHOR239 lsr w8, w8, 4 strh w8, [x25, #:lo12:.LANCHOR98] str w3, [x4, #:lo12:.LANCHOR239] add w3, w1, 24576 str w3, [x27, #:lo12:.LANCHOR240] cmp w8, 79 udiv w0, w3, w0 udiv w3, w3, w10 str w0, [x28, #:lo12:.LANCHOR128] add w0, w12, w0, lsl 2 add w3, w3, 8 udiv w0, w0, w6 strh w0, [x24, #:lo12:.LANCHOR202] ubfiz w0, w0, 4, 16 sdiv w0, w0, w11 strh w0, [x26, #:lo12:.LANCHOR152] adrp x0, .LANCHOR101 str x0, [x29, 104] strh w3, [x0, #:lo12:.LANCHOR101] bhi .L4082 mov w0, 80 strh w0, [x25, #:lo12:.LANCHOR98] .L4082: adrp x12, .LANCHOR126 mov w0, 2000 adrp x11, .LANCHOR125 adrp x3, .LANCHOR149 strh w0, [x12, #:lo12:.LANCHOR126] mov w0, 50 adrp x8, .LANCHOR150 strh w0, [x11, #:lo12:.LANCHOR125] mov w0, 256 strh w0, [x3, #:lo12:.LANCHOR149] mov w0, 48 strh w0, [x8, #:lo12:.LANCHOR150] adrp x0, .LANCHOR10 mov w10, 32 cmp w7, 2 mov x13, x11 strh w10, [x0, #:lo12:.LANCHOR10] mov x7, x12 mov x14, x8 beq .L4083 adrp x15, .LANCHOR83 ldrb w15, [x15, #:lo12:.LANCHOR83] cbz w15, .L4084 .L4083: mov w8, 150 strh w8, [x13, #:lo12:.LANCHOR125] mov w8, 64 strh w8, [x14, #:lo12:.LANCHOR150] mov w8, 12 strh w8, [x0, #:lo12:.LANCHOR10] adrp x8, .LANCHOR0 ldrb w8, [x8, #:lo12:.LANCHOR0] cbnz w8, .L4085 mov w8, 4 strh w8, [x0, #:lo12:.LANCHOR10] mov w0, 600 strh w0, [x7, #:lo12:.LANCHOR126] mov w0, 128 strh w0, [x3, #:lo12:.LANCHOR149] .L4085: adrp x0, .LANCHOR36 ldrb w0, [x0, #:lo12:.LANCHOR36] cbz w0, .L4087 mov w0, 200 strh w0, [x13, #:lo12:.LANCHOR125] mov w0, 2000 strh w0, [x7, #:lo12:.LANCHOR126] .L4087: adrp x0, .LANCHOR122 mul w2, w5, w2 mov w3, 1 str wzr, [x0, #:lo12:.LANCHOR122] adrp x0, .LANCHOR224 cmp w6, w2, lsl 2 strb w3, [x0, #:lo12:.LANCHOR224] bge .L4089 mov w2, 2 strb w2, [x0, #:lo12:.LANCHOR224] .L4089: adrp x19, .LANCHOR19 ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4090 str x4, [x29, 96] adrp x0, .LC243 add x0, x0, :lo12:.LC243 bl printf ldr x4, [x29, 96] .L4090: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4091 ldr w1, [x4, #:lo12:.LANCHOR239] adrp x0, .LC244 add x0, x0, :lo12:.LC244 bl printf .L4091: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4092 ldr w1, [x28, #:lo12:.LANCHOR128] adrp x0, .LC245 add x0, x0, :lo12:.LC245 bl printf .L4092: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4093 ldr w1, [x27, #:lo12:.LANCHOR240] adrp x0, .LC246 add x0, x0, :lo12:.LC246 bl printf .L4093: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4094 ldrh w1, [x24, #:lo12:.LANCHOR202] adrp x0, .LC247 add x0, x0, :lo12:.LC247 bl printf .L4094: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4095 ldrh w1, [x20, #:lo12:.LANCHOR221] adrp x0, .LC248 add x0, x0, :lo12:.LC248 bl printf .L4095: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4096 ldrh w1, [x26, #:lo12:.LANCHOR152] adrp x0, .LC249 add x0, x0, :lo12:.LC249 bl printf .L4096: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4097 ldrh w1, [x25, #:lo12:.LANCHOR98] adrp x0, .LC250 add x0, x0, :lo12:.LC250 bl printf .L4097: ldr w0, [x19, #:lo12:.LANCHOR19] tbz x0, 12, .L4098 ldr x0, [x29, 104] ldrh w1, [x0, #:lo12:.LANCHOR101] adrp x0, .LC251 add x0, x0, :lo12:.LC251 bl printf .L4098: bl zbuf_init adrp x25, .LANCHOR197 mov w0, 16384 bl ftl_malloc adrp x1, .LANCHOR192 str x0, [x1, #:lo12:.LANCHOR192] mov w0, 16384 bl ftl_malloc str x0, [x25, #:lo12:.LANCHOR197] mov w0, 16384 bl ftl_malloc adrp x1, .LANCHOR187 str x0, [x1, #:lo12:.LANCHOR187] mov w0, 6 ldrh w1, [x23, #:lo12:.LANCHOR8] mul w0, w1, w0 bl ftl_malloc adrp x1, .LANCHOR4 str x0, [x1, #:lo12:.LANCHOR4] ldrb w1, [x21, #:lo12:.LANCHOR79] ldrh w0, [x22, #:lo12:.LANCHOR94] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc adrp x1, .LANCHOR118 ldr x2, [x25, #:lo12:.LANCHOR197] adrp x25, .LANCHOR12 str x0, [x1, #:lo12:.LANCHOR118] adrp x0, .LANCHOR117 ldrh w1, [x22, #:lo12:.LANCHOR94] str x2, [x0, #:lo12:.LANCHOR117] ldrb w0, [x21, #:lo12:.LANCHOR79] mul w1, w1, w0 lsl w0, w1, 1 adrp x1, .LANCHOR11 add x3, x2, x0, sxtw 2 str x3, [x1, #:lo12:.LANCHOR11] ldrh w1, [x23, #:lo12:.LANCHOR8] add w1, w0, w1, lsr 1 ldr w0, [x19, #:lo12:.LANCHOR19] add x1, x2, x1, sxtw 2 str x1, [x25, #:lo12:.LANCHOR12] tbz x0, 12, .L4099 adrp x0, .LC252 add x0, x0, :lo12:.LC252 bl printf .L4099: ldrh w0, [x22, #:lo12:.LANCHOR94] ldrb w21, [x21, #:lo12:.LANCHOR79] ldrh w1, [x23, #:lo12:.LANCHOR8] ldrh w22, [x24, #:lo12:.LANCHOR202] mul w21, w0, w21 ldr w0, [x19, #:lo12:.LANCHOR19] add w21, w1, w21, lsl 2 lsl w1, w1, 2 lsl w21, w21, 1 add w22, w1, w22, lsl 2 add w21, w21, 632 add w22, w22, 704 tbz x0, 12, .L4100 ldrh w3, [x20, #:lo12:.LANCHOR221] adrp x0, .LC253 mov w2, w22 mov w1, w21 add x0, x0, :lo12:.LC253 bl printf .L4100: ldrh w0, [x20, #:lo12:.LANCHOR221] cmp w21, w0 bhi .L4101 cmp w22, w0 bls .L4102 .L4101: .L4155: b .L4155 .L4079: add w1, w1, 1 lsl w3, w3, 1 and w1, w1, 65535 b .L4078 .L4081: add w4, w4, 1 lsl w1, w1, 1 and w4, w4, 65535 b .L4080 .L4084: adrp x0, .LANCHOR35 ldrb w0, [x0, #:lo12:.LANCHOR35] cbz w0, .L4087 mov w0, 1200 strh w10, [x11, #:lo12:.LANCHOR125] strh w0, [x12, #:lo12:.LANCHOR126] strh w10, [x8, #:lo12:.LANCHOR150] b .L4087 .L4102: bl sblk_init bl ftl_info_blk_init cmn w0, #1 beq .L4077 bl ftl_ext_info_init adrp x19, .LANCHOR110 bl gc_init mov w0, 1 bl pm_init bl lpa_rebuild_hash ldr x0, [x25, #:lo12:.LANCHOR12] mov x1, 0 add x0, x0, 16 bl ftl_open_sblk_recovery ldr x0, [x25, #:lo12:.LANCHOR12] add x1, x0, 16 add x0, x0, 48 bl ftl_open_sblk_recovery ldr x1, [x19, #:lo12:.LANCHOR110] ldr w0, [x1, 8] add w0, w0, 16 str w0, [x1, 8] ldr x0, [x25, #:lo12:.LANCHOR12] add x0, x0, 16 bl ftl_info_data_recovery ldr x0, [x25, #:lo12:.LANCHOR12] add x0, x0, 48 bl ftl_info_data_recovery ldr x0, [x25, #:lo12:.LANCHOR12] add x0, x0, 80 bl ftl_info_data_recovery bl gc_recovery bl pm_flush mov w0, 1 bl ftl_total_vpn_update adrp x0, .LANCHOR195 ldrb w0, [x0, #:lo12:.LANCHOR195] cbz w0, .L4104 ldr x1, [x19, #:lo12:.LANCHOR110] ldr w0, [x1, 68] add w0, w0, 1 str w0, [x1, 68] .L4104: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info ldr x0, [x25, #:lo12:.LANCHOR12] ldrh w0, [x0, 124] cbnz w0, .L4111 adrp x0, .LANCHOR103 adrp x1, .LANCHOR107 ldrh w0, [x0, #:lo12:.LANCHOR103] ldrh w1, [x1, #:lo12:.LANCHOR107] add w0, w0, w1 cmp w0, 7 ble .L4111 .L4107: mov w0, 0 .L4077: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L4111: adrp x20, .LANCHOR103 adrp x21, .LANCHOR107 add x20, x20, :lo12:.LANCHOR103 add x21, x21, :lo12:.LANCHOR107 mov w19, 16384 .L4108: mov w1, 1 mov w0, 0 bl zftl_do_gc mov w1, 1 mov w0, w1 bl zftl_do_gc ldr x0, [x25, #:lo12:.LANCHOR12] ldrh w1, [x0, 124] cbnz w1, .L4106 ldrh w1, [x0, 80] mov w0, 65535 cmp w1, w0 bne .L4106 ldrh w0, [x20] ldrh w1, [x21] add w0, w0, w1 cmp w0, 7 bgt .L4107 .L4106: subs w19, w19, #1 bne .L4108 b .L4107 .size zftl_init, .-zftl_init .section .text.rk_ftl_init,"ax",@progbits .align 2 .global rk_ftl_init .type rk_ftl_init, %function rk_ftl_init: stp x29, x30, [sp, -32]! add x29, sp, 0 str x19, [sp, 16] bl nand_flash_init cbnz w0, .L4159 bl zftl_init .L4159: mov w19, w0 bl idb_init mov w1, w19 adrp x0, .LC254 add x0, x0, :lo12:.LC254 bl printf mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size rk_ftl_init, .-rk_ftl_init .section .text.zftl_write,"ax",@progbits .align 2 .global zftl_write .type zftl_write, %function zftl_write: stp x29, x30, [sp, -112]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w0 adrp x0, .LANCHOR19 stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] mov w20, w1 ldr w0, [x0, #:lo12:.LANCHOR19] mov w21, w2 stp x23, x24, [sp, 48] mov x25, x3 stp x27, x28, [sp, 80] tbz x0, 12, .L4162 ldr w4, [x25] mov w3, w2 adrp x0, .LC255 mov w2, w1 add x0, x0, :lo12:.LC255 mov w1, w19 bl printf .L4162: cbnz w19, .L4163 adrp x0, .LANCHOR67 mov w19, 24576 ldr w0, [x0, #:lo12:.LANCHOR67] .L4164: cmp w0, w20 ccmp w0, w21, 0, hi bcc .L4182 add w1, w20, w21 cmp w0, w1 bcc .L4182 adrp x26, .LANCHOR131 add w19, w19, w20 sub w22, w21, #1 adrp x27, .LANCHOR66 ldrb w0, [x26, #:lo12:.LANCHOR131] add w22, w22, w19 adrp x28, .LANCHOR57 add x27, x27, :lo12:.LANCHOR66 add x28, x28, :lo12:.LANCHOR57 udiv w24, w19, w0 udiv w22, w22, w0 add x0, x26, :lo12:.LANCHOR131 str x0, [x29, 104] mov w20, w24 sub w23, w22, w24 add w23, w23, 1 .L4166: cbnz w23, .L4175 bl ftl_write_commit adrp x20, .LANCHOR103 bl ftl_flush adrp x19, .LANCHOR107 mov w1, 1 mov w0, 0 bl zftl_do_gc adrp x0, .LANCHOR12 ldr x0, [x0, #:lo12:.LANCHOR12] ldrh w0, [x0, 124] cbnz w0, .L4176 ldrh w0, [x20, #:lo12:.LANCHOR103] ldrh w1, [x19, #:lo12:.LANCHOR107] add w0, w0, w1 cmp w0, 11 bgt .L4177 .L4176: mov w1, 1 mov w0, 0 bl zftl_do_gc .L4177: add x20, x20, :lo12:.LANCHOR103 add x19, x19, :lo12:.LANCHOR107 .L4178: ldrh w0, [x20] ldrh w1, [x19] add w0, w0, w1 cmp w0, 7 ble .L4179 mov w0, 0 .L4161: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .L4163: cmp w19, 3 bhi .L4182 lsl w19, w19, 13 mov w0, 8192 b .L4164 .L4175: ldrb w0, [x27] cbz w0, .L4167 ldrb w0, [x28] cmp w0, 2 bhi .L4167 bl ftl_write_commit .L4167: mov w0, 0 bl buf_alloc mov x26, x0 cbnz x0, .L4168 bl ftl_write_commit b .L4166 .L4168: strb wzr, [x0, 57] cmp w20, w24 ldr x0, [x29, 104] ccmp w20, w22, 4, ne ldrb w0, [x0] strb w0, [x26, 56] bne .L4171 cmp w20, w24 bne .L4172 udiv w1, w19, w0 msub w1, w1, w0, w19 and w1, w1, 255 strb w1, [x26, 57] sub w0, w0, w1 and w0, w0, 255 cmp w21, w0 csel w0, w21, w0, cc .L4190: strb w0, [x26, 56] .L4171: ldr x4, [x26, 8] mov x1, x25 ldrb w0, [x26, 57] sub w23, w23, #1 ldrb w2, [x26, 56] ubfiz x0, x0, 9, 8 lsl w2, w2, 9 add x0, x4, x0 bl ftl_memcpy adrp x0, .LANCHOR110 ldr x1, [x0, #:lo12:.LANCHOR110] ldr w0, [x1, 8] str w20, [x26, 36] add w20, w20, 1 add w2, w0, 1 str w2, [x1, 8] str w0, [x26, 32] mov x0, x26 bl ftl_write_buf ldrb w0, [x26, 56] ubfiz x0, x0, 9, 8 add x25, x25, x0 b .L4166 .L4172: add w1, w19, w21 msub w0, w0, w20, w1 b .L4190 .L4179: mov w1, 1 mov w0, 0 bl zftl_do_gc mov w1, 1 mov w0, w1 bl zftl_do_gc b .L4178 .L4182: mov w0, -1 b .L4161 .size zftl_write, .-zftl_write .section .text.zftl_sys_write,"ax",@progbits .align 2 .global zftl_sys_write .type zftl_sys_write, %function zftl_sys_write: mov x3, x2 mov w2, w1 mov w1, w0 mov w0, 2 b zftl_write .size zftl_sys_write, .-zftl_sys_write .section .text.StorageSysDataStore,"ax",@progbits .align 2 .global StorageSysDataStore .type StorageSysDataStore, %function StorageSysDataStore: mov x3, x1 mov w2, 1 mov w1, w0 mov w0, 2 b zftl_write .size StorageSysDataStore, .-StorageSysDataStore .section .text.FlashBootVendorWrite,"ax",@progbits .align 2 .global FlashBootVendorWrite .type FlashBootVendorWrite, %function FlashBootVendorWrite: mov x3, x2 mov w2, w1 add w1, w0, 512 mov w0, 2 b zftl_write .size FlashBootVendorWrite, .-FlashBootVendorWrite .section .text.ftl_write,"ax",@progbits .align 2 .global ftl_write .type ftl_write, %function ftl_write: stp x29, x30, [sp, -48]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w2 stp x21, x22, [sp, 32] mov x20, x3 mov w22, w1 ands w21, w0, 255 bne .L4195 mov w3, w2 mov w0, 0 mov x2, x20 bl idb_write_data .L4195: mov x3, x20 mov w2, w19 mov w1, w22 mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 b zftl_write .size ftl_write, .-ftl_write .section .text.ftl_vendor_write,"ax",@progbits .align 2 .global ftl_vendor_write .type ftl_vendor_write, %function ftl_vendor_write: mov x3, x2 mov w2, w1 add w1, w0, 512 mov w0, 2 b zftl_write .size ftl_vendor_write, .-ftl_vendor_write .section .text.zftl_vendor_write,"ax",@progbits .align 2 .global zftl_vendor_write .type zftl_vendor_write, %function zftl_vendor_write: b ftl_vendor_write .size zftl_vendor_write, .-zftl_vendor_write .section .text.zftl_discard,"ax",@progbits .align 2 .global zftl_discard .type zftl_discard, %function zftl_discard: stp x29, x30, [sp, -128]! add x29, sp, 0 stp x19, x20, [sp, 16] mov w19, w1 adrp x1, .LANCHOR67 stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] ldr w1, [x1, #:lo12:.LANCHOR67] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] cmp w0, w1 ccmp w19, w1, 2, cc bhi .L4221 add w2, w0, w19 cmp w1, w2 bcc .L4221 adrp x24, .LANCHOR241 add w22, w0, 24576 adrp x0, .LANCHOR19 str x0, [x29, 104] ldr w1, [x24, #:lo12:.LANCHOR241] ldr w2, [x0, #:lo12:.LANCHOR19] add w1, w19, w1 str w1, [x24, #:lo12:.LANCHOR241] tbz x2, 12, .L4201 adrp x0, .LC256 mov w4, 0 mov w3, w19 mov w2, w22 add x0, x0, :lo12:.LC256 bl printf .L4201: adrp x23, .LANCHOR110 adrp x26, .LANCHOR131 ldr x0, [x23, #:lo12:.LANCHOR110] ldr w27, [x0, 8] add w1, w27, 1 str w1, [x0, 8] bl ftl_write_commit bl ftl_flush ldrb w21, [x26, #:lo12:.LANCHOR131] udiv w20, w22, w21 msub w25, w20, w21, w22 cbz w25, .L4202 sub w21, w21, w25 mov w0, w20 cmp w21, w19 csel w21, w21, w19, ls bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 bne .L4203 mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys .L4203: ldr w0, [x29, 120] and w28, w21, 65535 cmn w0, #1 beq .L4205 mov w0, 0 bl buf_alloc mov x3, x0 cbz x0, .L4205 strb w25, [x0, 57] ubfiz x25, x25, 9, 25 strb w21, [x0, 56] mov w1, 0 ldr x0, [x0, 8] lsl w2, w28, 9 stp w27, w20, [x3, 32] str x3, [x29, 96] add x0, x0, x25 bl ftl_memset ldr x3, [x29, 96] mov x0, x3 bl ftl_write_buf bl ftl_write_commit ldr x1, [x23, #:lo12:.LANCHOR110] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] .L4205: add w20, w20, 1 sub w19, w19, w28 .L4202: cbz w19, .L4207 bl ftl_flush .L4207: adrp x25, .LANCHOR74 add x21, x26, :lo12:.LANCHOR131 add x25, x25, :lo12:.LANCHOR74 mov w0, -1 str w0, [x29, 124] .L4208: ldrb w0, [x21] cmp w19, w0 bcs .L4213 cbz w19, .L4215 mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 bne .L4216 mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys .L4216: ldr w0, [x29, 120] cmn w0, #1 beq .L4215 mov w0, 0 bl buf_alloc mov x21, x0 cbz x0, .L4215 strb wzr, [x0, 57] strb w19, [x0, 56] stp w27, w20, [x21, 32] ldrb w0, [x26, #:lo12:.LANCHOR131] cmp w19, w0 bcc .L4218 adrp x1, .LANCHOR242 adrp x0, .LC0 mov w2, 1493 add x1, x1, :lo12:.LANCHOR242 add x0, x0, :lo12:.LC0 bl printf .L4218: ldr x0, [x21, 8] lsl w2, w19, 9 mov w1, 0 bl ftl_memset mov x0, x21 bl ftl_write_buf bl ftl_write_commit ldr x1, [x23, #:lo12:.LANCHOR110] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] .L4215: ldr w1, [x24, #:lo12:.LANCHOR241] cmp w1, 8192 bls .L4222 ldr x0, [x29, 104] ldr w0, [x0, #:lo12:.LANCHOR19] tbz x0, 12, .L4219 adrp x0, .LC256 mov w4, 0 mov w3, w19 mov w2, w22 add x0, x0, :lo12:.LC256 bl printf .L4219: str wzr, [x24, #:lo12:.LANCHOR241] bl flt_sys_flush adrp x0, .LANCHOR122 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR122] .L4222: mov w0, 0 b .L4199 .L4213: mov w0, w20 bl lpa_hash_get_ppa str w0, [x29, 120] cmn w0, #1 beq .L4209 mov w0, 0 bl buf_alloc mov x28, x0 cbz x0, .L4211 ldrb w2, [x21] mov w1, 0 strb w2, [x0, 56] strb wzr, [x0, 57] ldr x0, [x0, 8] lsl w2, w2, 9 stp w27, w20, [x28, 32] bl ftl_memset mov x0, x28 bl ftl_write_buf bl ftl_write_commit .L4248: ldr x1, [x23, #:lo12:.LANCHOR110] ldr w0, [x1, 76] add w0, w0, 1 str w0, [x1, 76] .L4211: ldrb w0, [x21] add w20, w20, 1 sub w19, w19, w0 b .L4208 .L4209: mov w2, 0 add x1, x29, 120 mov w0, w20 bl pm_log2phys ldr w0, [x29, 120] cmn w0, #1 beq .L4211 add x1, x29, 124 mov w2, 1 mov w0, w20 bl pm_log2phys adrp x0, .LANCHOR31 ldrh w2, [x25] ldrb w1, [x0, #:lo12:.LANCHOR31] mov w0, 24 sub w0, w0, w1 sub w1, w0, w2 mov w0, 1 lsl w0, w0, w1 ldr w1, [x29, 120] sub w0, w0, #1 lsr w1, w1, w2 and w0, w0, w1 adrp x1, .LANCHOR75 ldrb w1, [x1, #:lo12:.LANCHOR75] udiv w0, w0, w1 bl ftl_vpn_decrement b .L4248 .L4221: mov w0, -1 .L4199: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .size zftl_discard, .-zftl_discard .section .text.ftl_discard,"ax",@progbits .align 2 .global ftl_discard .type ftl_discard, %function ftl_discard: mov w0, w1 mov w1, w2 b zftl_discard .size ftl_discard, .-ftl_discard .section .text.dump_pm_blk,"ax",@progbits .align 2 .global dump_pm_blk .type dump_pm_blk, %function dump_pm_blk: stp x29, x30, [sp, -48]! mov w2, 4 adrp x0, .LC257 add x0, x0, :lo12:.LC257 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR110 stp x21, x22, [sp, 32] adrp x21, .LANCHOR152 ldr x1, [x20, #:lo12:.LANCHOR110] mov w19, 0 mov w22, 65535 add x1, x1, 704 ldrh w3, [x1, -6] bl rknand_print_hex ldrh w3, [x21, #:lo12:.LANCHOR152] add x21, x21, :lo12:.LANCHOR152 ldr x1, [x20, #:lo12:.LANCHOR110] mov w2, 2 adrp x0, .LC258 add x0, x0, :lo12:.LC258 add x1, x1, 416 bl rknand_print_hex .L4251: ldrh w0, [x21] cmp w0, w19 bhi .L4253 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .L4253: ldr x0, [x20, #:lo12:.LANCHOR110] add x0, x0, x19, sxtw 1 ldrh w0, [x0, 416] cmp w0, w22 beq .L4252 mov x1, 0 bl ftl_sblk_dump .L4252: add w19, w19, 1 and w19, w19, 65535 b .L4251 .size dump_pm_blk, .-dump_pm_blk .global g_pm_spare .global pm_first_write .global pm_force_gc .global pm_gc_enable .global pm_last_load_ram_id .global pm_last_update_ram_id .global pm_ram_info .global sblk_gc_write_completed_queue_head .global sblk_read_completed_queue_head .global sblk_write_completed_queue_head .global sblk_queue_head .global slc_cache_sblk .global xlc_data_sblk .global slc_data_sblk .global free_mix_sblk .global free_xlc_sblk .global free_slc_sblk .global gp_data_xlc_data_head .global gp_data_slc_data_head .global gp_data_slc_cache_head .global gp_free_mix_head .global gp_free_xlc_head .global gp_free_slc_head .global gp_sblk_list_tbl .global zftl_print_list_count .global ftl_ext_info_first_write .global ftl_sys_info_first_write .global ftl_low_format_cur_blk .global ftl_power_lost_flag .global ftl_vpn_update_count .global ftl_sblk_update_list_offset .global ftl_sblk_update_list .global ftl_sblk_vpn_update_id .global ftl_sblk_lpa_tbl .global ftl_sblk_vpn .global gp_ftl_ext_info .global gp_ftl_info .global gp_blk_info .global ftl_tmp_buffer .global ftl_ext_info_data_buffer .global ftl_info_data_buffer .global ftl_tmp_spare .global ftl_info_spare .global g_ftl_info_blk .global tlc_b05a_prog_tbl .global tlc_prog_order .global gc_des_ppa_tbl .global gc_valid_page_ppa .global gc_page_buf_id .global gc_pre_ppa_tbl .global gc_lpa_tbl .global g_gc_info .global gc_xlc_search_index .global gc_xlc_data_index .global gc_slc_cache_index .global gc_slc_data_index .global gc_free_slc_sblk_th .global gc_slc_mode_vpn_th .global gc_slc_mode_slc_vpn_th .global gc_slc_mode_tlc_vpn_th .global gc_tlc_mode_tlc_vpn_th .global gc_tlc_mode_slc_vpn_th .global gc_state .global gc_mode .global p_read_ahead_ext_buf .global discard_sector_count .global read_ahead_lpa .global _ftl_gc_tag_page_num .global read_buf_count .global read_buf_head .global write_commit_count .global write_commit_head .global write_buf_count .global write_buf_head .global ftl_flush_jiffies .global lpa_hash .global lpa_hash_index .global _c_slc_to_xlc_ec_ratio .global _c_mix_max_xlc_ec_count .global _c_mix_max_slc_ec_count .global _c_swl_xlc_gc_th .global _c_swl_slc_gc_th .global _gc_after_discard_en .global _last_write_time .global _last_read_time .global _min_slc_super_block .global _max_xlc_super_block .global _c_max_pm_sblk .global _c_ftl_pm_page_num .global _c_totle_log_page .global _c_totle_data_density .global _c_user_data_density .global _c_totle_phy_density .global _c_ftl_block_addr_log2 .global _c_ftl_block_align_addr .global _c_ftl_byte_pre_page .global _c_ftl_nand_blks_per_die .global _c_ftl_page_pre_slc_blk .global _c_ftl_page_pre_blk .global _c_ftl_blk_pre_plane .global _c_ftl_nand_planes_num .global _c_ftl_planes_per_die .global _c_ftl_sec_per_page .global _c_ftl_nand_die_num .global _c_ftl_nand_type .global zftl_debug .global g_flash_blk_info .global gp_flash_info .global p_free_buf_head .global free_buf_count .global g_buf .global nandc_ecc_sts .global g_nandc_v6_master_info .global nandc_randomizer_en .global nandc_hw_seed .global fill_spare_size .global g_nandc_ecc_bits .global g_nandc_tran_timeout .global g_nandc_ver .global gp_nandc .global hy_f26_ref_value .global sd15_tlc_rr .global sd15_slc_rr .global g_nand_para_info .global gp_nand_para_info .global g_nand_opt_para .global g_msb_page_tbl .global g_lsb_page_tbl .global g_die_addr .global g_die_cs_idx .global IDByte .global flash_read_retry .global _c_ftl_cs_bits .global g_maxRetryCount .global g_maxRegNum .global g_retryMode .global g_flash_toggle_mode_en .global g_flash_ymtc_3d_tlc_flag .global g_flash_micron_3d_tlc_b16a .global g_flash_micron_3d_tlc_b05a .global g_flash_micron_3d_tlc_flag .global g_flash_3d_mlc_flag .global g_flash_3d_tlc_flag .global g_flash_multi_page_prog_en .global g_flash_multi_page_read_en .global g_flash_interface_mode .global g_idb_ecc_bits .global g_idb_slc_mode_enable .global g_one_pass_program .global g_slc_mode_addr2 .global g_slc_mode_enable .global g_flash_cur_mode .global g_flash_six_addr .global g_flash_slc_mode .global g_slc_page_num .global g_totle_phy_block .global g_block_align_addr .global g_flash_reversd_blks .global g_nand_max_die .global g_flash_tmp_spare_buffer .global g_flash_tmp_page_buffer .global g_flash_sys_spare_buffer .global g_flash_spare_buffer .global g_flash_page_buffer .section .bss.IDByte,"aw",@nobits .align 2 .set .LANCHOR47,. + 0 .type IDByte, %object .size IDByte, 32 IDByte: .zero 32 .section .bss._c_ftl_blk_pre_plane,"aw",@nobits .align 1 .set .LANCHOR8,. + 0 .type _c_ftl_blk_pre_plane, %object .size _c_ftl_blk_pre_plane, 2 _c_ftl_blk_pre_plane: .zero 2 .section .bss._c_ftl_block_addr_log2,"aw",@nobits .align 1 .set .LANCHOR74,. + 0 .type _c_ftl_block_addr_log2, %object .size _c_ftl_block_addr_log2, 2 _c_ftl_block_addr_log2: .zero 2 .section .bss._c_ftl_block_align_addr,"aw",@nobits .align 1 .set .LANCHOR111,. + 0 .type _c_ftl_block_align_addr, %object .size _c_ftl_block_align_addr, 2 _c_ftl_block_align_addr: .zero 2 .section .bss._c_ftl_byte_pre_page,"aw",@nobits .align 1 .set .LANCHOR221,. + 0 .type _c_ftl_byte_pre_page, %object .size _c_ftl_byte_pre_page, 2 _c_ftl_byte_pre_page: .zero 2 .section .bss._c_ftl_cs_bits,"aw",@nobits .set .LANCHOR31,. + 0 .type _c_ftl_cs_bits, %object .size _c_ftl_cs_bits, 1 _c_ftl_cs_bits: .zero 1 .section .bss._c_ftl_nand_blks_per_die,"aw",@nobits .align 1 .type _c_ftl_nand_blks_per_die, %object .size _c_ftl_nand_blks_per_die, 2 _c_ftl_nand_blks_per_die: .zero 2 .section .bss._c_ftl_nand_die_num,"aw",@nobits .set .LANCHOR112,. + 0 .type _c_ftl_nand_die_num, %object .size _c_ftl_nand_die_num, 1 _c_ftl_nand_die_num: .zero 1 .section .bss._c_ftl_nand_planes_num,"aw",@nobits .set .LANCHOR79,. + 0 .type _c_ftl_nand_planes_num, %object .size _c_ftl_nand_planes_num, 1 _c_ftl_nand_planes_num: .zero 1 .section .bss._c_ftl_nand_type,"aw",@nobits .set .LANCHOR78,. + 0 .type _c_ftl_nand_type, %object .size _c_ftl_nand_type, 1 _c_ftl_nand_type: .zero 1 .section .bss._c_ftl_page_pre_blk,"aw",@nobits .align 1 .set .LANCHOR85,. + 0 .type _c_ftl_page_pre_blk, %object .size _c_ftl_page_pre_blk, 2 _c_ftl_page_pre_blk: .zero 2 .section .bss._c_ftl_page_pre_slc_blk,"aw",@nobits .align 1 .set .LANCHOR94,. + 0 .type _c_ftl_page_pre_slc_blk, %object .size _c_ftl_page_pre_slc_blk, 2 _c_ftl_page_pre_slc_blk: .zero 2 .section .bss._c_ftl_planes_per_die,"aw",@nobits .set .LANCHOR75,. + 0 .type _c_ftl_planes_per_die, %object .size _c_ftl_planes_per_die, 1 _c_ftl_planes_per_die: .zero 1 .section .bss._c_ftl_pm_page_num,"aw",@nobits .align 1 .set .LANCHOR202,. + 0 .type _c_ftl_pm_page_num, %object .size _c_ftl_pm_page_num, 2 _c_ftl_pm_page_num: .zero 2 .section .bss._c_ftl_sec_per_page,"aw",@nobits .set .LANCHOR131,. + 0 .type _c_ftl_sec_per_page, %object .size _c_ftl_sec_per_page, 1 _c_ftl_sec_per_page: .zero 1 .section .bss._c_max_pm_sblk,"aw",@nobits .align 1 .set .LANCHOR152,. + 0 .type _c_max_pm_sblk, %object .size _c_max_pm_sblk, 2 _c_max_pm_sblk: .zero 2 .section .bss._c_mix_max_slc_ec_count,"aw",@nobits .align 1 .set .LANCHOR126,. + 0 .type _c_mix_max_slc_ec_count, %object .size _c_mix_max_slc_ec_count, 2 _c_mix_max_slc_ec_count: .zero 2 .section .bss._c_mix_max_xlc_ec_count,"aw",@nobits .align 1 .set .LANCHOR125,. + 0 .type _c_mix_max_xlc_ec_count, %object .size _c_mix_max_xlc_ec_count, 2 _c_mix_max_xlc_ec_count: .zero 2 .section .bss._c_slc_to_xlc_ec_ratio,"aw",@nobits .align 1 .set .LANCHOR10,. + 0 .type _c_slc_to_xlc_ec_ratio, %object .size _c_slc_to_xlc_ec_ratio, 2 _c_slc_to_xlc_ec_ratio: .zero 2 .section .bss._c_swl_slc_gc_th,"aw",@nobits .align 1 .set .LANCHOR149,. + 0 .type _c_swl_slc_gc_th, %object .size _c_swl_slc_gc_th, 2 _c_swl_slc_gc_th: .zero 2 .section .bss._c_swl_xlc_gc_th,"aw",@nobits .align 1 .set .LANCHOR150,. + 0 .type _c_swl_xlc_gc_th, %object .size _c_swl_xlc_gc_th, 2 _c_swl_xlc_gc_th: .zero 2 .section .bss._c_totle_data_density,"aw",@nobits .align 2 .set .LANCHOR240,. + 0 .type _c_totle_data_density, %object .size _c_totle_data_density, 4 _c_totle_data_density: .zero 4 .section .bss._c_totle_log_page,"aw",@nobits .align 2 .set .LANCHOR128,. + 0 .type _c_totle_log_page, %object .size _c_totle_log_page, 4 _c_totle_log_page: .zero 4 .section .bss._c_totle_phy_density,"aw",@nobits .align 2 .set .LANCHOR239,. + 0 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 _c_totle_phy_density: .zero 4 .section .bss._c_user_data_density,"aw",@nobits .align 2 .set .LANCHOR67,. + 0 .type _c_user_data_density, %object .size _c_user_data_density, 4 _c_user_data_density: .zero 4 .section .bss._ftl_gc_tag_page_num,"aw",@nobits .set .LANCHOR224,. + 0 .type _ftl_gc_tag_page_num, %object .size _ftl_gc_tag_page_num, 1 _ftl_gc_tag_page_num: .zero 1 .section .bss._gc_after_discard_en,"aw",@nobits .align 2 .set .LANCHOR122,. + 0 .type _gc_after_discard_en, %object .size _gc_after_discard_en, 4 _gc_after_discard_en: .zero 4 .section .bss._last_read_time,"aw",@nobits .align 2 .type _last_read_time, %object .size _last_read_time, 4 _last_read_time: .zero 4 .section .bss._last_write_time,"aw",@nobits .align 2 .type _last_write_time, %object .size _last_write_time, 4 _last_write_time: .zero 4 .section .bss._max_xlc_super_block,"aw",@nobits .align 1 .set .LANCHOR101,. + 0 .type _max_xlc_super_block, %object .size _max_xlc_super_block, 2 _max_xlc_super_block: .zero 2 .section .bss._min_slc_super_block,"aw",@nobits .align 1 .set .LANCHOR98,. + 0 .type _min_slc_super_block, %object .size _min_slc_super_block, 2 _min_slc_super_block: .zero 2 .section .bss.discard_sector_count,"aw",@nobits .align 2 .set .LANCHOR241,. + 0 .type discard_sector_count, %object .size discard_sector_count, 4 discard_sector_count: .zero 4 .section .bss.fill_spare_size,"aw",@nobits .align 1 .set .LANCHOR53,. + 0 .type fill_spare_size, %object .size fill_spare_size, 2 fill_spare_size: .zero 2 .section .bss.flash_ddr_tuning_sdr_read_count,"aw",@nobits .align 2 .set .LANCHOR169,. + 0 .type flash_ddr_tuning_sdr_read_count, %object .size flash_ddr_tuning_sdr_read_count, 4 flash_ddr_tuning_sdr_read_count: .zero 4 .section .bss.flash_read_retry,"aw",@nobits .align 3 .set .LANCHOR171,. + 0 .type flash_read_retry, %object .size flash_read_retry, 8 flash_read_retry: .zero 8 .section .bss.free_buf_count,"aw",@nobits .set .LANCHOR57,. + 0 .type free_buf_count, %object .size free_buf_count, 1 free_buf_count: .zero 1 .section .bss.free_mix_sblk,"aw",@nobits .align 1 .set .LANCHOR107,. + 0 .type free_mix_sblk, %object .size free_mix_sblk, 2 free_mix_sblk: .zero 2 .section .bss.free_slc_sblk,"aw",@nobits .align 1 .set .LANCHOR103,. + 0 .type free_slc_sblk, %object .size free_slc_sblk, 2 free_slc_sblk: .zero 2 .section .bss.free_xlc_sblk,"aw",@nobits .align 1 .set .LANCHOR105,. + 0 .type free_xlc_sblk, %object .size free_xlc_sblk, 2 free_xlc_sblk: .zero 2 .section .bss.ftl_ext_info_data_buffer,"aw",@nobits .align 3 .set .LANCHOR197,. + 0 .type ftl_ext_info_data_buffer, %object .size ftl_ext_info_data_buffer, 8 ftl_ext_info_data_buffer: .zero 8 .section .bss.ftl_ext_info_first_write,"aw",@nobits .set .LANCHOR196,. + 0 .type ftl_ext_info_first_write, %object .size ftl_ext_info_first_write, 1 ftl_ext_info_first_write: .zero 1 .section .bss.ftl_flush_jiffies,"aw",@nobits .align 2 .set .LANCHOR233,. + 0 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: .zero 4 .section .bss.ftl_info_data_buffer,"aw",@nobits .align 3 .set .LANCHOR192,. + 0 .type ftl_info_data_buffer, %object .size ftl_info_data_buffer, 8 ftl_info_data_buffer: .zero 8 .section .bss.ftl_info_spare,"aw",@nobits .align 6 .set .LANCHOR190,. + 0 .type ftl_info_spare, %object .size ftl_info_spare, 256 ftl_info_spare: .zero 256 .section .bss.ftl_low_format_cur_blk,"aw",@nobits .align 1 .set .LANCHOR68,. + 0 .type ftl_low_format_cur_blk, %object .size ftl_low_format_cur_blk, 2 ftl_low_format_cur_blk: .zero 2 .section .bss.ftl_power_lost_flag,"aw",@nobits .set .LANCHOR195,. + 0 .type ftl_power_lost_flag, %object .size ftl_power_lost_flag, 1 ftl_power_lost_flag: .zero 1 .section .bss.ftl_sblk_lpa_tbl,"aw",@nobits .align 3 .set .LANCHOR117,. + 0 .type ftl_sblk_lpa_tbl, %object .size ftl_sblk_lpa_tbl, 8 ftl_sblk_lpa_tbl: .zero 8 .section .bss.ftl_sblk_update_list,"aw",@nobits .align 3 .set .LANCHOR73,. + 0 .type ftl_sblk_update_list, %object .size ftl_sblk_update_list, 16 ftl_sblk_update_list: .zero 16 .section .bss.ftl_sblk_update_list_offset,"aw",@nobits .align 1 .set .LANCHOR123,. + 0 .type ftl_sblk_update_list_offset, %object .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: .zero 2 .section .bss.ftl_sblk_vpn,"aw",@nobits .align 3 .set .LANCHOR11,. + 0 .type ftl_sblk_vpn, %object .size ftl_sblk_vpn, 8 ftl_sblk_vpn: .zero 8 .section .bss.ftl_sblk_vpn_update_id,"aw",@nobits .align 1 .set .LANCHOR72,. + 0 .type ftl_sblk_vpn_update_id, %object .size ftl_sblk_vpn_update_id, 2 ftl_sblk_vpn_update_id: .zero 2 .section .bss.ftl_sys_info_first_write,"aw",@nobits .set .LANCHOR194,. + 0 .type ftl_sys_info_first_write, %object .size ftl_sys_info_first_write, 1 ftl_sys_info_first_write: .zero 1 .section .bss.ftl_tmp_buffer,"aw",@nobits .align 3 .set .LANCHOR187,. + 0 .type ftl_tmp_buffer, %object .size ftl_tmp_buffer, 8 ftl_tmp_buffer: .zero 8 .section .bss.ftl_tmp_spare,"aw",@nobits .align 6 .set .LANCHOR188,. + 0 .type ftl_tmp_spare, %object .size ftl_tmp_spare, 256 ftl_tmp_spare: .zero 256 .section .bss.ftl_vpn_update_count,"aw",@nobits .align 1 .set .LANCHOR121,. + 0 .type ftl_vpn_update_count, %object .size ftl_vpn_update_count, 2 ftl_vpn_update_count: .zero 2 .section .bss.g_block_align_addr,"aw",@nobits .align 1 .set .LANCHOR2,. + 0 .type g_block_align_addr, %object .size g_block_align_addr, 2 g_block_align_addr: .zero 2 .section .bss.g_buf,"aw",@nobits .align 3 .set .LANCHOR55,. + 0 .type g_buf, %object .size g_buf, 2048 g_buf: .zero 2048 .section .bss.g_die_addr,"aw",@nobits .align 2 .set .LANCHOR145,. + 0 .type g_die_addr, %object .size g_die_addr, 32 g_die_addr: .zero 32 .section .bss.g_die_cs_idx,"aw",@nobits .align 2 .set .LANCHOR29,. + 0 .type g_die_cs_idx, %object .size g_die_cs_idx, 8 g_die_cs_idx: .zero 8 .section .bss.g_flash_3d_mlc_flag,"aw",@nobits .set .LANCHOR80,. + 0 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 g_flash_3d_mlc_flag: .zero 1 .section .bss.g_flash_3d_tlc_flag,"aw",@nobits .set .LANCHOR83,. + 0 .type g_flash_3d_tlc_flag, %object .size g_flash_3d_tlc_flag, 1 g_flash_3d_tlc_flag: .zero 1 .section .bss.g_flash_blk_info,"aw",@nobits .align 3 .set .LANCHOR211,. + 0 .type g_flash_blk_info, %object .size g_flash_blk_info, 4 g_flash_blk_info: .zero 4 .section .bss.g_flash_cur_mode,"aw",@nobits .align 3 .set .LANCHOR33,. + 0 .type g_flash_cur_mode, %object .size g_flash_cur_mode, 4 g_flash_cur_mode: .zero 4 .section .bss.g_flash_interface_mode,"aw",@nobits .set .LANCHOR48,. + 0 .type g_flash_interface_mode, %object .size g_flash_interface_mode, 1 g_flash_interface_mode: .zero 1 .section .bss.g_flash_micron_3d_tlc_b05a,"aw",@nobits .set .LANCHOR124,. + 0 .type g_flash_micron_3d_tlc_b05a, %object .size g_flash_micron_3d_tlc_b05a, 1 g_flash_micron_3d_tlc_b05a: .zero 1 .section .bss.g_flash_micron_3d_tlc_b16a,"aw",@nobits .set .LANCHOR217,. + 0 .type g_flash_micron_3d_tlc_b16a, %object .size g_flash_micron_3d_tlc_b16a, 1 g_flash_micron_3d_tlc_b16a: .zero 1 .section .bss.g_flash_micron_3d_tlc_flag,"aw",@nobits .set .LANCHOR35,. + 0 .type g_flash_micron_3d_tlc_flag, %object .size g_flash_micron_3d_tlc_flag, 1 g_flash_micron_3d_tlc_flag: .zero 1 .section .bss.g_flash_multi_page_prog_en,"aw",@nobits .set .LANCHOR44,. + 0 .type g_flash_multi_page_prog_en, %object .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .zero 1 .section .bss.g_flash_multi_page_read_en,"aw",@nobits .set .LANCHOR183,. + 0 .type g_flash_multi_page_read_en, %object .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: .zero 1 .section .bss.g_flash_page_buffer,"aw",@nobits .align 3 .set .LANCHOR173,. + 0 .type g_flash_page_buffer, %object .size g_flash_page_buffer, 8 g_flash_page_buffer: .zero 8 .section .bss.g_flash_reversd_blks,"aw",@nobits .set .LANCHOR216,. + 0 .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: .zero 1 .section .bss.g_flash_six_addr,"aw",@nobits .set .LANCHOR30,. + 0 .type g_flash_six_addr, %object .size g_flash_six_addr, 1 g_flash_six_addr: .zero 1 .section .bss.g_flash_slc_mode,"aw",@nobits .set .LANCHOR0,. + 0 .type g_flash_slc_mode, %object .size g_flash_slc_mode, 1 g_flash_slc_mode: .zero 1 .section .bss.g_flash_spare_buffer,"aw",@nobits .align 3 .set .LANCHOR172,. + 0 .type g_flash_spare_buffer, %object .size g_flash_spare_buffer, 8 g_flash_spare_buffer: .zero 8 .section .bss.g_flash_sys_spare_buffer,"aw",@nobits .align 3 .set .LANCHOR210,. + 0 .type g_flash_sys_spare_buffer, %object .size g_flash_sys_spare_buffer, 8 g_flash_sys_spare_buffer: .zero 8 .section .bss.g_flash_tmp_page_buffer,"aw",@nobits .align 3 .set .LANCHOR163,. + 0 .type g_flash_tmp_page_buffer, %object .size g_flash_tmp_page_buffer, 8 g_flash_tmp_page_buffer: .zero 8 .section .bss.g_flash_tmp_spare_buffer,"aw",@nobits .align 3 .set .LANCHOR165,. + 0 .type g_flash_tmp_spare_buffer, %object .size g_flash_tmp_spare_buffer, 8 g_flash_tmp_spare_buffer: .zero 8 .section .bss.g_flash_toggle_mode_en,"aw",@nobits .set .LANCHOR26,. + 0 .type g_flash_toggle_mode_en, %object .size g_flash_toggle_mode_en, 1 g_flash_toggle_mode_en: .zero 1 .section .bss.g_flash_ymtc_3d_tlc_flag,"aw",@nobits .set .LANCHOR36,. + 0 .type g_flash_ymtc_3d_tlc_flag, %object .size g_flash_ymtc_3d_tlc_flag, 1 g_flash_ymtc_3d_tlc_flag: .zero 1 .section .bss.g_ftl_info_blk,"aw",@nobits .align 6 .set .LANCHOR191,. + 0 .type g_ftl_info_blk, %object .size g_ftl_info_blk, 4 g_ftl_info_blk: .zero 4 .section .bss.g_gc_info,"aw",@nobits .align 3 .set .LANCHOR70,. + 0 .type g_gc_info, %object .size g_gc_info, 2216 g_gc_info: .zero 2216 .section .bss.g_idb_ecc_bits,"aw",@nobits .set .LANCHOR22,. + 0 .type g_idb_ecc_bits, %object .size g_idb_ecc_bits, 1 g_idb_ecc_bits: .zero 1 .section .bss.g_idb_slc_mode_enable,"aw",@nobits .set .LANCHOR24,. + 0 .type g_idb_slc_mode_enable, %object .size g_idb_slc_mode_enable, 1 g_idb_slc_mode_enable: .zero 1 .section .bss.g_lsb_page_tbl,"aw",@nobits .align 2 .set .LANCHOR3,. + 0 .type g_lsb_page_tbl, %object .size g_lsb_page_tbl, 1024 g_lsb_page_tbl: .zero 1024 .section .bss.g_maxRegNum,"aw",@nobits .set .LANCHOR18,. + 0 .type g_maxRegNum, %object .size g_maxRegNum, 1 g_maxRegNum: .zero 1 .section .bss.g_maxRetryCount,"aw",@nobits .set .LANCHOR166,. + 0 .type g_maxRetryCount, %object .size g_maxRetryCount, 1 g_maxRetryCount: .zero 1 .section .bss.g_msb_page_tbl,"aw",@nobits .align 2 .set .LANCHOR142,. + 0 .type g_msb_page_tbl, %object .size g_msb_page_tbl, 2048 g_msb_page_tbl: .zero 2048 .section .bss.g_nand_max_die,"aw",@nobits .set .LANCHOR23,. + 0 .type g_nand_max_die, %object .size g_nand_max_die, 1 g_nand_max_die: .zero 1 .section .bss.g_nand_opt_para,"aw",@nobits .align 3 .set .LANCHOR25,. + 0 .type g_nand_opt_para, %object .size g_nand_opt_para, 32 g_nand_opt_para: .zero 32 .section .bss.g_nandc_ecc_bits,"aw",@nobits .set .LANCHOR49,. + 0 .type g_nandc_ecc_bits, %object .size g_nandc_ecc_bits, 1 g_nandc_ecc_bits: .zero 1 .section .bss.g_nandc_tran_timeout,"aw",@nobits .set .LANCHOR164,. + 0 .type g_nandc_tran_timeout, %object .size g_nandc_tran_timeout, 1 g_nandc_tran_timeout: .zero 1 .section .bss.g_nandc_v6_master_info,"aw",@nobits .align 3 .set .LANCHOR52,. + 0 .type g_nandc_v6_master_info, %object .size g_nandc_v6_master_info, 40 g_nandc_v6_master_info: .zero 40 .section .bss.g_nandc_ver,"aw",@nobits .set .LANCHOR27,. + 0 .type g_nandc_ver, %object .size g_nandc_ver, 1 g_nandc_ver: .zero 1 .section .bss.g_one_pass_program,"aw",@nobits .set .LANCHOR81,. + 0 .type g_one_pass_program, %object .size g_one_pass_program, 1 g_one_pass_program: .zero 1 .section .bss.g_pm_spare,"aw",@nobits .align 3 .set .LANCHOR207,. + 0 .type g_pm_spare, %object .size g_pm_spare, 8 g_pm_spare: .zero 8 .section .bss.g_retryMode,"aw",@nobits .set .LANCHOR16,. + 0 .type g_retryMode, %object .size g_retryMode, 1 g_retryMode: .zero 1 .section .bss.g_slc_mode_addr2,"aw",@nobits .set .LANCHOR1,. + 0 .type g_slc_mode_addr2, %object .size g_slc_mode_addr2, 1 g_slc_mode_addr2: .zero 1 .section .bss.g_slc_mode_enable,"aw",@nobits .type g_slc_mode_enable, %object .size g_slc_mode_enable, 1 g_slc_mode_enable: .zero 1 .section .bss.g_slc_page_num,"aw",@nobits .align 1 .set .LANCHOR144,. + 0 .type g_slc_page_num, %object .size g_slc_page_num, 2 g_slc_page_num: .zero 2 .section .bss.g_totle_phy_block,"aw",@nobits .align 1 .set .LANCHOR146,. + 0 .type g_totle_phy_block, %object .size g_totle_phy_block, 2 g_totle_phy_block: .zero 2 .section .bss.gc_des_ppa_tbl,"aw",@nobits .align 3 .set .LANCHOR161,. + 0 .type gc_des_ppa_tbl, %object .size gc_des_ppa_tbl, 8 gc_des_ppa_tbl: .zero 8 .section .bss.gc_free_slc_sblk_th,"aw",@nobits .align 1 .set .LANCHOR86,. + 0 .type gc_free_slc_sblk_th, %object .size gc_free_slc_sblk_th, 2 gc_free_slc_sblk_th: .zero 2 .section .bss.gc_lpa_tbl,"aw",@nobits .align 3 .set .LANCHOR159,. + 0 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 8 gc_lpa_tbl: .zero 8 .section .bss.gc_mode,"aw",@nobits .set .LANCHOR84,. + 0 .type gc_mode, %object .size gc_mode, 1 gc_mode: .zero 1 .section .bss.gc_page_buf_id,"aw",@nobits .align 3 .set .LANCHOR82,. + 0 .type gc_page_buf_id, %object .size gc_page_buf_id, 8 gc_page_buf_id: .zero 8 .section .bss.gc_pre_ppa_tbl,"aw",@nobits .align 3 .set .LANCHOR160,. + 0 .type gc_pre_ppa_tbl, %object .size gc_pre_ppa_tbl, 8 gc_pre_ppa_tbl: .zero 8 .section .bss.gc_search_count,"aw",@nobits .align 2 .set .LANCHOR157,. + 0 .type gc_search_count, %object .size gc_search_count, 4 gc_search_count: .zero 4 .section .bss.gc_slc_cache_index,"aw",@nobits .align 1 .set .LANCHOR88,. + 0 .type gc_slc_cache_index, %object .size gc_slc_cache_index, 2 gc_slc_cache_index: .zero 2 .section .bss.gc_slc_data_index,"aw",@nobits .align 1 .set .LANCHOR87,. + 0 .type gc_slc_data_index, %object .size gc_slc_data_index, 2 gc_slc_data_index: .zero 2 .section .bss.gc_slc_mode_slc_vpn_th,"aw",@nobits .align 1 .set .LANCHOR158,. + 0 .type gc_slc_mode_slc_vpn_th, %object .size gc_slc_mode_slc_vpn_th, 2 gc_slc_mode_slc_vpn_th: .zero 2 .section .bss.gc_slc_mode_tlc_vpn_th,"aw",@nobits .align 1 .set .LANCHOR93,. + 0 .type gc_slc_mode_tlc_vpn_th, %object .size gc_slc_mode_tlc_vpn_th, 2 gc_slc_mode_tlc_vpn_th: .zero 2 .section .bss.gc_slc_mode_vpn_th,"aw",@nobits .align 1 .set .LANCHOR69,. + 0 .type gc_slc_mode_vpn_th, %object .size gc_slc_mode_vpn_th, 2 gc_slc_mode_vpn_th: .zero 2 .section .bss.gc_state,"aw",@nobits .set .LANCHOR156,. + 0 .type gc_state, %object .size gc_state, 1 gc_state: .zero 1 .section .bss.gc_tlc_mode_slc_vpn_th,"aw",@nobits .align 1 .set .LANCHOR102,. + 0 .type gc_tlc_mode_slc_vpn_th, %object .size gc_tlc_mode_slc_vpn_th, 2 gc_tlc_mode_slc_vpn_th: .zero 2 .section .bss.gc_tlc_mode_tlc_vpn_th,"aw",@nobits .align 1 .set .LANCHOR100,. + 0 .type gc_tlc_mode_tlc_vpn_th, %object .size gc_tlc_mode_tlc_vpn_th, 2 gc_tlc_mode_tlc_vpn_th: .zero 2 .section .bss.gc_valid_page_ppa,"aw",@nobits .align 3 .set .LANCHOR76,. + 0 .type gc_valid_page_ppa, %object .size gc_valid_page_ppa, 8 gc_valid_page_ppa: .zero 8 .section .bss.gc_xlc_data_index,"aw",@nobits .align 1 .set .LANCHOR89,. + 0 .type gc_xlc_data_index, %object .size gc_xlc_data_index, 2 gc_xlc_data_index: .zero 2 .section .bss.gc_xlc_search_index,"aw",@nobits .align 1 .set .LANCHOR96,. + 0 .type gc_xlc_search_index, %object .size gc_xlc_search_index, 2 gc_xlc_search_index: .zero 2 .section .bss.gp_blk_info,"aw",@nobits .align 3 .set .LANCHOR9,. + 0 .type gp_blk_info, %object .size gp_blk_info, 8 gp_blk_info: .zero 8 .section .bss.gp_data_slc_cache_head,"aw",@nobits .align 3 .set .LANCHOR90,. + 0 .type gp_data_slc_cache_head, %object .size gp_data_slc_cache_head, 8 gp_data_slc_cache_head: .zero 8 .section .bss.gp_data_slc_data_head,"aw",@nobits .align 3 .set .LANCHOR95,. + 0 .type gp_data_slc_data_head, %object .size gp_data_slc_data_head, 8 gp_data_slc_data_head: .zero 8 .section .bss.gp_data_xlc_data_head,"aw",@nobits .align 3 .set .LANCHOR92,. + 0 .type gp_data_xlc_data_head, %object .size gp_data_xlc_data_head, 8 gp_data_xlc_data_head: .zero 8 .section .bss.gp_flash_check_buf,"aw",@nobits .align 3 .set .LANCHOR141,. + 0 .type gp_flash_check_buf, %object .size gp_flash_check_buf, 8 gp_flash_check_buf: .zero 8 .section .bss.gp_flash_info,"aw",@nobits .align 3 .set .LANCHOR6,. + 0 .type gp_flash_info, %object .size gp_flash_info, 8 gp_flash_info: .zero 8 .section .bss.gp_free_mix_head,"aw",@nobits .align 3 .set .LANCHOR108,. + 0 .type gp_free_mix_head, %object .size gp_free_mix_head, 8 gp_free_mix_head: .zero 8 .section .bss.gp_free_slc_head,"aw",@nobits .align 3 .set .LANCHOR104,. + 0 .type gp_free_slc_head, %object .size gp_free_slc_head, 8 gp_free_slc_head: .zero 8 .section .bss.gp_free_xlc_head,"aw",@nobits .align 3 .set .LANCHOR106,. + 0 .type gp_free_xlc_head, %object .size gp_free_xlc_head, 8 gp_free_xlc_head: .zero 8 .section .bss.gp_ftl_ext_info,"aw",@nobits .align 3 .set .LANCHOR12,. + 0 .type gp_ftl_ext_info, %object .size gp_ftl_ext_info, 8 gp_ftl_ext_info: .zero 8 .section .bss.gp_ftl_info,"aw",@nobits .align 3 .set .LANCHOR110,. + 0 .type gp_ftl_info, %object .size gp_ftl_info, 8 gp_ftl_info: .zero 8 .section .bss.gp_nand_para_info,"aw",@nobits .align 3 .set .LANCHOR21,. + 0 .type gp_nand_para_info, %object .size gp_nand_para_info, 8 gp_nand_para_info: .zero 8 .section .bss.gp_nandc,"aw",@nobits .align 3 .set .LANCHOR7,. + 0 .type gp_nandc, %object .size gp_nandc, 8 gp_nandc: .zero 8 .section .bss.gp_sblk_list_tbl,"aw",@nobits .align 3 .set .LANCHOR4,. + 0 .type gp_sblk_list_tbl, %object .size gp_sblk_list_tbl, 8 gp_sblk_list_tbl: .zero 8 .section .bss.idb_buf,"aw",@nobits .align 3 .set .LANCHOR138,. + 0 .type idb_buf, %object .size idb_buf, 8 idb_buf: .zero 8 .section .bss.idb_last_lba,"aw",@nobits .align 2 .set .LANCHOR174,. + 0 .type idb_last_lba, %object .size idb_last_lba, 4 idb_last_lba: .zero 4 .section .bss.idb_need_write_back,"aw",@nobits .align 2 .set .LANCHOR139,. + 0 .type idb_need_write_back, %object .size idb_need_write_back, 4 idb_need_write_back: .zero 4 .section .bss.idb_write_enable,"aw",@nobits .set .LANCHOR140,. + 0 .type idb_write_enable, %object .size idb_write_enable, 1 idb_write_enable: .zero 1 .section .bss.lpa_hash,"aw",@nobits .align 3 .set .LANCHOR116,. + 0 .type lpa_hash, %object .size lpa_hash, 512 lpa_hash: .zero 512 .section .bss.lpa_hash_index,"aw",@nobits .align 3 .set .LANCHOR118,. + 0 .type lpa_hash_index, %object .size lpa_hash_index, 8 lpa_hash_index: .zero 8 .section .bss.nandc_ecc_sts,"aw",@nobits .align 3 .type nandc_ecc_sts, %object .size nandc_ecc_sts, 16 nandc_ecc_sts: .zero 16 .section .bss.nandc_hw_seed,"aw",@nobits .set .LANCHOR50,. + 0 .type nandc_hw_seed, %object .size nandc_hw_seed, 1 nandc_hw_seed: .zero 1 .section .bss.nandc_randomizer_en,"aw",@nobits .set .LANCHOR51,. + 0 .type nandc_randomizer_en, %object .size nandc_randomizer_en, 1 nandc_randomizer_en: .zero 1 .section .bss.p_free_buf_head,"aw",@nobits .set .LANCHOR56,. + 0 .type p_free_buf_head, %object .size p_free_buf_head, 1 p_free_buf_head: .zero 1 .section .bss.p_read_ahead_ext_buf,"aw",@nobits .align 3 .type p_read_ahead_ext_buf, %object .size p_read_ahead_ext_buf, 8 p_read_ahead_ext_buf: .zero 8 .section .bss.pm_first_write,"aw",@nobits .set .LANCHOR208,. + 0 .type pm_first_write, %object .size pm_first_write, 1 pm_first_write: .zero 1 .section .bss.pm_force_gc,"aw",@nobits .align 2 .set .LANCHOR148,. + 0 .type pm_force_gc, %object .size pm_force_gc, 4 pm_force_gc: .zero 4 .section .bss.pm_gc_enable,"aw",@nobits .align 2 .set .LANCHOR204,. + 0 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: .zero 4 .section .bss.pm_last_load_ram_id,"aw",@nobits .set .LANCHOR223,. + 0 .type pm_last_load_ram_id, %object .size pm_last_load_ram_id, 1 pm_last_load_ram_id: .zero 1 .section .bss.pm_last_update_ram_id,"aw",@nobits .set .LANCHOR136,. + 0 .type pm_last_update_ram_id, %object .size pm_last_update_ram_id, 1 pm_last_update_ram_id: .zero 1 .section .bss.pm_ram_info,"aw",@nobits .align 3 .set .LANCHOR135,. + 0 .type pm_ram_info, %object .size pm_ram_info, 512 pm_ram_info: .zero 512 .section .bss.read_ahead_lpa,"aw",@nobits .align 2 .set .LANCHOR238,. + 0 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: .zero 4 .section .bss.read_buf_count,"aw",@nobits .set .LANCHOR134,. + 0 .type read_buf_count, %object .size read_buf_count, 1 read_buf_count: .zero 1 .section .bss.read_buf_head,"aw",@nobits .set .LANCHOR133,. + 0 .type read_buf_head, %object .size read_buf_head, 1 read_buf_head: .zero 1 .section .bss.sblk_gc_write_completed_queue_head,"aw",@nobits .set .LANCHOR63,. + 0 .type sblk_gc_write_completed_queue_head, %object .size sblk_gc_write_completed_queue_head, 1 sblk_gc_write_completed_queue_head: .zero 1 .section .bss.sblk_queue_head,"aw",@nobits .set .LANCHOR59,. + 0 .type sblk_queue_head, %object .size sblk_queue_head, 1 sblk_queue_head: .zero 1 .section .bss.sblk_read_completed_queue_head,"aw",@nobits .set .LANCHOR62,. + 0 .type sblk_read_completed_queue_head, %object .size sblk_read_completed_queue_head, 1 sblk_read_completed_queue_head: .zero 1 .section .bss.sblk_write_completed_queue_head,"aw",@nobits .set .LANCHOR64,. + 0 .type sblk_write_completed_queue_head, %object .size sblk_write_completed_queue_head, 1 sblk_write_completed_queue_head: .zero 1 .section .bss.slc_cache_sblk,"aw",@nobits .align 1 .set .LANCHOR99,. + 0 .type slc_cache_sblk, %object .size slc_cache_sblk, 2 slc_cache_sblk: .zero 2 .section .bss.slc_data_sblk,"aw",@nobits .align 1 .set .LANCHOR97,. + 0 .type slc_data_sblk, %object .size slc_data_sblk, 2 slc_data_sblk: .zero 2 .section .bss.write_buf_count,"aw",@nobits .set .LANCHOR66,. + 0 .type write_buf_count, %object .size write_buf_count, 1 write_buf_count: .zero 1 .section .bss.write_buf_head,"aw",@nobits .set .LANCHOR65,. + 0 .type write_buf_head, %object .size write_buf_head, 1 write_buf_head: .zero 1 .section .bss.write_commit_count,"aw",@nobits .set .LANCHOR129,. + 0 .type write_commit_count, %object .size write_commit_count, 1 write_commit_count: .zero 1 .section .bss.write_commit_head,"aw",@nobits .set .LANCHOR182,. + 0 .type write_commit_head, %object .size write_commit_head, 1 write_commit_head: .zero 1 .section .bss.xlc_data_sblk,"aw",@nobits .align 1 .set .LANCHOR91,. + 0 .type xlc_data_sblk, %object .size xlc_data_sblk, 2 xlc_data_sblk: .zero 2 .section .bss.zftl_print_list_count,"aw",@nobits .align 1 .set .LANCHOR109,. + 0 .type zftl_print_list_count, %object .size zftl_print_list_count, 2 zftl_print_list_count: .zero 2 .section .data.g_nand_para_info,"aw",@progbits .align 3 .set .LANCHOR32,. + 0 .type g_nand_para_info, %object .size g_nand_para_info, 32 g_nand_para_info: .byte 6 .byte -104 .byte 58 .byte -104 .byte -77 .byte 118 .byte 114 .byte 1 .byte 1 .byte 32 .hword 768 .byte 3 .byte 2 .hword 758 .hword 5593 .byte 0 .byte 37 .byte 60 .byte 32 .byte 2 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .section .data.hy_f26_ref_value,"aw",@progbits .align 3 .set .LANCHOR162,. + 0 .type hy_f26_ref_value, %object .size hy_f26_ref_value, 28 hy_f26_ref_value: .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte 10 .byte 6 .byte 0 .byte -3 .byte -7 .byte -8 .byte 0 .byte -6 .byte -13 .byte -15 .byte 0 .byte -11 .byte -20 .byte -23 .byte 0 .byte 0 .byte -26 .byte -30 .byte 0 .byte 0 .byte -32 .byte -37 .section .data.nand_opt_para,"aw",@progbits .align 3 .set .LANCHOR215,. + 0 .type nand_opt_para, %object .size nand_opt_para, 128 nand_opt_para: .byte 1 .byte 0 .byte 49 .byte 63 .byte 0 .byte 49 .byte -128 .byte 21 .byte 0 .byte 50 .byte 17 .byte -128 .byte 112 .byte 120 .byte 120 .byte 3 .byte 1 .byte 0 .zero 14 .byte 2 .byte 0 .byte 49 .byte 63 .byte 0 .byte 49 .byte -128 .byte 21 .byte 0 .byte 0 .byte 17 .byte -127 .byte 112 .byte -15 .byte -14 .byte 0 .byte 0 .byte 0 .zero 14 .byte 3 .byte 0 .byte 49 .byte 63 .byte 0 .byte 49 .byte -128 .byte 21 .byte 96 .byte 96 .byte 17 .byte -127 .byte 112 .byte -15 .byte -14 .byte 0 .byte 0 .byte 0 .zero 14 .byte 4 .byte 0 .byte 49 .byte 63 .byte 0 .byte 49 .byte -128 .byte 21 .byte 96 .byte 96 .byte 17 .byte -127 .byte 112 .byte 112 .byte 112 .byte 0 .byte 0 .byte 0 .zero 14 .section .data.sd15_slc_rr,"aw",@progbits .align 3 .set .LANCHOR40,. + 0 .type sd15_slc_rr, %object .size sd15_slc_rr, 25 sd15_slc_rr: .byte 0 .byte 8 .byte -8 .byte 16 .byte -16 .byte 24 .byte -24 .byte 32 .byte -32 .byte 32 .byte -40 .byte 48 .byte -48 .byte 56 .byte -56 .byte 64 .byte -64 .byte 72 .byte -72 .byte 80 .byte -80 .byte 88 .byte 96 .byte 104 .byte 112 .section .data.sd15_tlc_rr,"aw",@progbits .align 3 .set .LANCHOR39,. + 0 .type sd15_tlc_rr, %object .size sd15_tlc_rr, 329 sd15_tlc_rr: .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -8 .byte 0 .byte 16 .byte 8 .byte 8 .byte 0 .byte -8 .byte -8 .byte -8 .byte -16 .byte -8 .byte -8 .byte -8 .byte -8 .byte -24 .byte 0 .byte 0 .byte 0 .byte -8 .byte -16 .byte -32 .byte 0 .byte 8 .byte -8 .byte 8 .byte 8 .byte 0 .byte 0 .byte -16 .byte -8 .byte -8 .byte -8 .byte 0 .byte -16 .byte -24 .byte -16 .byte 8 .byte 8 .byte -8 .byte -16 .byte -16 .byte 0 .byte 8 .byte 8 .byte 8 .byte 8 .byte -8 .byte -8 .byte -24 .byte 0 .byte -16 .byte 0 .byte -8 .byte -16 .byte -8 .byte -8 .byte 0 .byte 8 .byte 0 .byte 0 .byte -8 .byte 0 .byte -24 .byte -8 .byte 0 .byte 0 .byte -8 .byte -24 .byte -8 .byte 8 .byte -8 .byte 0 .byte -8 .byte 8 .byte -16 .byte -8 .byte -8 .byte -8 .byte 8 .byte 8 .byte 0 .byte 0 .byte -8 .byte -8 .byte 8 .byte -8 .byte -8 .byte 0 .byte 0 .byte -8 .byte -16 .byte -16 .byte -8 .byte 0 .byte 0 .byte -8 .byte 0 .byte -16 .byte 8 .byte 0 .byte 8 .byte 0 .byte -16 .byte -8 .byte -16 .byte 16 .byte 0 .byte 16 .byte 0 .byte -8 .byte 8 .byte 0 .byte -24 .byte 0 .byte -16 .byte -8 .byte -16 .byte -16 .byte -16 .byte -16 .byte 0 .byte 8 .byte -8 .byte -24 .byte 0 .byte 8 .byte 8 .byte 16 .byte 16 .byte 0 .byte 8 .byte -8 .byte 8 .byte 16 .byte -8 .byte 24 .byte 0 .byte 8 .byte -4 .byte 0 .byte 16 .byte 8 .byte 24 .byte 8 .byte 0 .byte -4 .byte -8 .byte 24 .byte 16 .byte 16 .byte 0 .byte 0 .byte 0 .byte -16 .byte 0 .byte 0 .byte 4 .byte 0 .byte -4 .byte -4 .byte -4 .byte 8 .byte 8 .byte 16 .byte 0 .byte 16 .byte -4 .byte 16 .byte 0 .byte 16 .byte 8 .byte 0 .byte 16 .byte -4 .byte 16 .byte -8 .byte 0 .byte 0 .byte -8 .byte 16 .byte -4 .byte 16 .byte -16 .byte -8 .byte -8 .byte -8 .byte 8 .byte -4 .byte 8 .byte -24 .byte 4 .byte -16 .byte 0 .byte 8 .byte 0 .byte 0 .byte -24 .byte 8 .byte -16 .byte 8 .byte 0 .byte 8 .byte -24 .byte -32 .byte 16 .byte -24 .byte 8 .byte -8 .byte 8 .byte -24 .byte -32 .byte 8 .byte 0 .byte 16 .byte 0 .byte 16 .byte 0 .byte -32 .byte 4 .byte 0 .byte -8 .byte -16 .byte -8 .byte 0 .byte -32 .byte 4 .byte 0 .byte 8 .byte -24 .byte 8 .byte 0 .byte -32 .byte 4 .byte 0 .byte 0 .byte -32 .byte -4 .byte 0 .byte -24 .byte 4 .byte 0 .byte 16 .byte -24 .byte 16 .byte 0 .byte -24 .byte -4 .byte 0 .byte 8 .byte -32 .byte 8 .byte 0 .byte 0 .byte -4 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -4 .byte 0 .byte 0 .byte 0 .byte -4 .byte 0 .byte 0 .byte -4 .byte 0 .byte -8 .byte 0 .byte -8 .byte 0 .byte 0 .byte -4 .byte 0 .byte -16 .byte 0 .byte -16 .byte 0 .byte 0 .byte -16 .byte 0 .byte -16 .byte 0 .byte -16 .byte 0 .byte 0 .byte -8 .byte 0 .byte -16 .byte 0 .byte -16 .byte 0 .byte 0 .byte -16 .byte 0 .byte -24 .byte 0 .byte -24 .byte 0 .byte 0 .byte -24 .byte 0 .byte -24 .byte 0 .byte -24 .byte 0 .byte 0 .byte -24 .byte 0 .byte -16 .byte 0 .byte -16 .byte 0 .byte 0 .byte -24 .byte 0 .byte -32 .byte 0 .byte -32 .byte 0 .section .data.tlc_b05a_prog_tbl,"aw",@progbits .align 3 .set .LANCHOR235,. + 0 .type tlc_b05a_prog_tbl, %object .size tlc_b05a_prog_tbl, 1536 tlc_b05a_prog_tbl: .hword 0 .hword 0 .hword 0 .hword 0 .hword 0 .hword 0 .hword 0 .hword 0 .hword 9 .hword 0 .hword 11 .hword 0 .hword 13 .hword 0 .hword 15 .hword 0 .hword 17 .hword 0 .hword 19 .hword 0 .hword 21 .hword 0 .hword 23 .hword 0 .hword 25 .hword 0 .hword 27 .hword 0 .hword 29 .hword 0 .hword 31 .hword 0 .hword 33 .hword 0 .hword 35 .hword 0 .hword 37 .hword 0 .hword 39 .hword 0 .hword 41 .hword 0 .hword 43 .hword 0 .hword 45 .hword 0 .hword 47 .hword 0 .hword 49 .hword 0 .hword 51 .hword 0 .hword 53 .hword 0 .hword 55 .hword 0 .hword 25 .hword 58 .hword 0 .hword 27 .hword 61 .hword 0 .hword 29 .hword 64 .hword 0 .hword 31 .hword 67 .hword 0 .hword 33 .hword 70 .hword 0 .hword 35 .hword 73 .hword 0 .hword 37 .hword 76 .hword 0 .hword 39 .hword 79 .hword 0 .hword 41 .hword 82 .hword 0 .hword 43 .hword 85 .hword 0 .hword 45 .hword 88 .hword 0 .hword 47 .hword 91 .hword 0 .hword 49 .hword 94 .hword 0 .hword 51 .hword 97 .hword 0 .hword 53 .hword 100 .hword 0 .hword 55 .hword 103 .hword 0 .hword 58 .hword 106 .hword 0 .hword 61 .hword 109 .hword 0 .hword 64 .hword 112 .hword 0 .hword 67 .hword 115 .hword 0 .hword 70 .hword 118 .hword 0 .hword 73 .hword 121 .hword 0 .hword 76 .hword 124 .hword 0 .hword 79 .hword 127 .hword 0 .hword 82 .hword 130 .hword 0 .hword 85 .hword 133 .hword 0 .hword 88 .hword 136 .hword 0 .hword 91 .hword 139 .hword 0 .hword 94 .hword 142 .hword 0 .hword 97 .hword 145 .hword 0 .hword 100 .hword 148 .hword 0 .hword 103 .hword 151 .hword 0 .hword 106 .hword 154 .hword 0 .hword 109 .hword 157 .hword 0 .hword 112 .hword 160 .hword 0 .hword 115 .hword 163 .hword 0 .hword 118 .hword 166 .hword 0 .hword 121 .hword 169 .hword 0 .hword 124 .hword 172 .hword 0 .hword 127 .hword 175 .hword 0 .hword 130 .hword 178 .hword 0 .hword 133 .hword 181 .hword 0 .hword 136 .hword 184 .hword 0 .hword 139 .hword 187 .hword 0 .hword 142 .hword 190 .hword 0 .hword 145 .hword 193 .hword 0 .hword 148 .hword 196 .hword 0 .hword 151 .hword 199 .hword 0 .hword 154 .hword 202 .hword 0 .hword 157 .hword 205 .hword 0 .hword 160 .hword 208 .hword 0 .hword 163 .hword 211 .hword 0 .hword 166 .hword 214 .hword 0 .hword 169 .hword 217 .hword 0 .hword 172 .hword 220 .hword 0 .hword 175 .hword 223 .hword 0 .hword 178 .hword 226 .hword 0 .hword 181 .hword 229 .hword 0 .hword 184 .hword 232 .hword 0 .hword 187 .hword 235 .hword 0 .hword 190 .hword 238 .hword 0 .hword 193 .hword 241 .hword 0 .hword 196 .hword 244 .hword 0 .hword 199 .hword 247 .hword 0 .hword 202 .hword 250 .hword 0 .hword 205 .hword 253 .hword 0 .hword 208 .hword 256 .hword 0 .hword 211 .hword 259 .hword 0 .hword 214 .hword 262 .hword 0 .hword 217 .hword 265 .hword 0 .hword 220 .hword 268 .hword 0 .hword 223 .hword 271 .hword 0 .hword 226 .hword 274 .hword 0 .hword 229 .hword 277 .hword 0 .hword 232 .hword 280 .hword 0 .hword 235 .hword 283 .hword 0 .hword 238 .hword 286 .hword 0 .hword 241 .hword 289 .hword 0 .hword 244 .hword 292 .hword 0 .hword 247 .hword 295 .hword 0 .hword 250 .hword 298 .hword 0 .hword 253 .hword 301 .hword 0 .hword 256 .hword 304 .hword 0 .hword 259 .hword 307 .hword 0 .hword 262 .hword 310 .hword 0 .hword 265 .hword 313 .hword 0 .hword 268 .hword 316 .hword 0 .hword 271 .hword 319 .hword 0 .hword 274 .hword 322 .hword 0 .hword 277 .hword 325 .hword 0 .hword 280 .hword 328 .hword 0 .hword 283 .hword 331 .hword 0 .hword 286 .hword 334 .hword 0 .hword 289 .hword 337 .hword 0 .hword 292 .hword 340 .hword 0 .hword 295 .hword 343 .hword 0 .hword 298 .hword 346 .hword 0 .hword 301 .hword 349 .hword 0 .hword 304 .hword 352 .hword 0 .hword 307 .hword 355 .hword 0 .hword 310 .hword 358 .hword 0 .hword 313 .hword 361 .hword 0 .hword 316 .hword 364 .hword 0 .hword 319 .hword 367 .hword 0 .hword 322 .hword 370 .hword 0 .hword 325 .hword 373 .hword 0 .hword 328 .hword 376 .hword 0 .hword 331 .hword 379 .hword 0 .hword 334 .hword 382 .hword 0 .hword 337 .hword 385 .hword 0 .hword 340 .hword 388 .hword 0 .hword 343 .hword 391 .hword 0 .hword 346 .hword 394 .hword 0 .hword 349 .hword 397 .hword 0 .hword 352 .hword 400 .hword 0 .hword 355 .hword 403 .hword 0 .hword 358 .hword 406 .hword 0 .hword 361 .hword 409 .hword 0 .hword 364 .hword 412 .hword 0 .hword 367 .hword 415 .hword 0 .hword 370 .hword 418 .hword 0 .hword 373 .hword 421 .hword 0 .hword 376 .hword 424 .hword 0 .hword 379 .hword 427 .hword 0 .hword 382 .hword 430 .hword 0 .hword 385 .hword 433 .hword 0 .hword 388 .hword 436 .hword 0 .hword 391 .hword 439 .hword 0 .hword 394 .hword 442 .hword 0 .hword 397 .hword 445 .hword 0 .hword 400 .hword 448 .hword 0 .hword 403 .hword 451 .hword 0 .hword 406 .hword 454 .hword 0 .hword 409 .hword 457 .hword 0 .hword 412 .hword 460 .hword 0 .hword 415 .hword 463 .hword 0 .hword 418 .hword 466 .hword 0 .hword 421 .hword 469 .hword 0 .hword 424 .hword 472 .hword 0 .hword 427 .hword 475 .hword 0 .hword 430 .hword 478 .hword 0 .hword 433 .hword 481 .hword 0 .hword 436 .hword 484 .hword 0 .hword 439 .hword 487 .hword 0 .hword 442 .hword 490 .hword 0 .hword 445 .hword 493 .hword 0 .hword 448 .hword 496 .hword 0 .hword 451 .hword 499 .hword 0 .hword 454 .hword 502 .hword 0 .hword 457 .hword 505 .hword 0 .hword 460 .hword 508 .hword 0 .hword 463 .hword 511 .hword 0 .hword 466 .hword 514 .hword 0 .hword 469 .hword 517 .hword 0 .hword 472 .hword 520 .hword 0 .hword 475 .hword 523 .hword 0 .hword 478 .hword 526 .hword 0 .hword 481 .hword 529 .hword 0 .hword 484 .hword 532 .hword 0 .hword 487 .hword 535 .hword 0 .hword 490 .hword 538 .hword 0 .hword 493 .hword 541 .hword 0 .hword 496 .hword 544 .hword 0 .hword 499 .hword 547 .hword 0 .hword 502 .hword 550 .hword 0 .hword 505 .hword 553 .hword 0 .hword 508 .hword 556 .hword 0 .hword 511 .hword 559 .hword 0 .hword 514 .hword 562 .hword 0 .hword 517 .hword 565 .hword 0 .hword 520 .hword 568 .hword 0 .hword 523 .hword 571 .hword 0 .hword 526 .hword 574 .hword 0 .hword 529 .hword 577 .hword 0 .hword 532 .hword 580 .hword 0 .hword 535 .hword 583 .hword 0 .hword 538 .hword 586 .hword 0 .hword 541 .hword 589 .hword 0 .hword 544 .hword 592 .hword 0 .hword 547 .hword 595 .hword 0 .hword 550 .hword 598 .hword 0 .hword 553 .hword 601 .hword 0 .hword 556 .hword 604 .hword 0 .hword 559 .hword 607 .hword 0 .hword 562 .hword 610 .hword 0 .hword 565 .hword 613 .hword 0 .hword 568 .hword 616 .hword 0 .hword 571 .hword 619 .hword 0 .hword 574 .hword 622 .hword 0 .hword 577 .hword 625 .hword 0 .hword 580 .hword 628 .hword 0 .hword 583 .hword 631 .hword 0 .hword 586 .hword 634 .hword 0 .hword 589 .hword 637 .hword 0 .hword 592 .hword 640 .hword 0 .hword 595 .hword 643 .hword 0 .hword 598 .hword 646 .hword 0 .hword 601 .hword 649 .hword 0 .hword 604 .hword 652 .hword 0 .hword 607 .hword 655 .hword 0 .hword 610 .hword 658 .hword 0 .hword 613 .hword 661 .hword 0 .hword 616 .hword 664 .hword 0 .hword 619 .hword 667 .hword 0 .hword 622 .hword 670 .hword 0 .hword 625 .hword 673 .hword 0 .hword 628 .hword 676 .hword 0 .hword 631 .hword 679 .hword 0 .hword 634 .hword 682 .hword 0 .hword 637 .hword 685 .hword 0 .hword 640 .hword 688 .hword 0 .hword 643 .hword 691 .hword 0 .hword 646 .hword 694 .hword 0 .hword 649 .hword 697 .hword 0 .hword 652 .hword 700 .hword 0 .hword 655 .hword 703 .hword 0 .hword 658 .hword 706 .hword 0 .hword 661 .hword 709 .hword 0 .hword 664 .hword 712 .hword 0 .hword 667 .hword 715 .hword 0 .hword 670 .hword 718 .hword 0 .hword 673 .hword 721 .hword 0 .hword 676 .hword 724 .hword 0 .hword 679 .hword 727 .hword 0 .hword 682 .hword 730 .hword 0 .hword 685 .hword 733 .hword 0 .hword 688 .hword 736 .hword 0 .hword 691 .hword 739 .hword 0 .hword 694 .hword 742 .hword 0 .hword 697 .hword 745 .hword 0 .hword 700 .hword 748 .hword 0 .hword 703 .hword 751 .hword 0 .hword 706 .hword 0 .hword 709 .hword 0 .hword 712 .hword 0 .hword 715 .hword 0 .hword 718 .hword 0 .hword 721 .hword 0 .hword 724 .hword 0 .hword 727 .hword 0 .section .data.tlc_prog_order,"aw",@progbits .align 3 .set .LANCHOR236,. + 0 .type tlc_prog_order, %object .size tlc_prog_order, 768 tlc_prog_order: .hword 1 .hword 9 .hword 2 .hword 17 .hword 10 .hword 3 .hword 25 .hword 18 .hword 11 .hword 33 .hword 26 .hword 19 .hword 41 .hword 34 .hword 27 .hword 49 .hword 42 .hword 35 .hword 57 .hword 50 .hword 43 .hword 65 .hword 58 .hword 51 .hword 73 .hword 66 .hword 59 .hword 81 .hword 74 .hword 67 .hword 89 .hword 82 .hword 75 .hword 97 .hword 90 .hword 83 .hword 105 .hword 98 .hword 91 .hword 113 .hword 106 .hword 99 .hword 121 .hword 114 .hword 107 .hword 129 .hword 122 .hword 115 .hword 137 .hword 130 .hword 123 .hword 145 .hword 138 .hword 131 .hword 153 .hword 146 .hword 139 .hword 161 .hword 154 .hword 147 .hword 169 .hword 162 .hword 155 .hword 177 .hword 170 .hword 163 .hword 185 .hword 178 .hword 171 .hword 193 .hword 186 .hword 179 .hword 201 .hword 194 .hword 187 .hword 209 .hword 202 .hword 195 .hword 217 .hword 210 .hword 203 .hword 225 .hword 218 .hword 211 .hword 233 .hword 226 .hword 219 .hword 241 .hword 234 .hword 227 .hword 249 .hword 242 .hword 235 .hword 257 .hword 250 .hword 243 .hword 265 .hword 258 .hword 251 .hword 273 .hword 266 .hword 259 .hword 281 .hword 274 .hword 267 .hword 289 .hword 282 .hword 275 .hword 297 .hword 290 .hword 283 .hword 305 .hword 298 .hword 291 .hword 313 .hword 306 .hword 299 .hword 321 .hword 314 .hword 307 .hword 329 .hword 322 .hword 315 .hword 337 .hword 330 .hword 323 .hword 345 .hword 338 .hword 331 .hword 353 .hword 346 .hword 339 .hword 361 .hword 354 .hword 347 .hword 369 .hword 362 .hword 355 .hword 377 .hword 370 .hword 363 .hword 385 .hword 378 .hword 371 .hword 393 .hword 386 .hword 379 .hword 401 .hword 394 .hword 387 .hword 409 .hword 402 .hword 395 .hword 417 .hword 410 .hword 403 .hword 425 .hword 418 .hword 411 .hword 433 .hword 426 .hword 419 .hword 441 .hword 434 .hword 427 .hword 449 .hword 442 .hword 435 .hword 457 .hword 450 .hword 443 .hword 465 .hword 458 .hword 451 .hword 473 .hword 466 .hword 459 .hword 481 .hword 474 .hword 467 .hword 489 .hword 482 .hword 475 .hword 497 .hword 490 .hword 483 .hword 505 .hword 498 .hword 491 .hword 513 .hword 506 .hword 499 .hword 521 .hword 514 .hword 507 .hword 529 .hword 522 .hword 515 .hword 537 .hword 530 .hword 523 .hword 545 .hword 538 .hword 531 .hword 553 .hword 546 .hword 539 .hword 561 .hword 554 .hword 547 .hword 569 .hword 562 .hword 555 .hword 577 .hword 570 .hword 563 .hword 585 .hword 578 .hword 571 .hword 593 .hword 586 .hword 579 .hword 601 .hword 594 .hword 587 .hword 609 .hword 602 .hword 595 .hword 617 .hword 610 .hword 603 .hword 625 .hword 618 .hword 611 .hword 633 .hword 626 .hword 619 .hword 641 .hword 634 .hword 627 .hword 649 .hword 642 .hword 635 .hword 657 .hword 650 .hword 643 .hword 665 .hword 658 .hword 651 .hword 673 .hword 666 .hword 659 .hword 681 .hword 674 .hword 667 .hword 689 .hword 682 .hword 675 .hword 697 .hword 690 .hword 683 .hword 705 .hword 698 .hword 691 .hword 713 .hword 706 .hword 699 .hword 721 .hword 714 .hword 707 .hword 729 .hword 722 .hword 715 .hword 737 .hword 730 .hword 723 .hword 745 .hword 738 .hword 731 .hword 753 .hword 746 .hword 739 .hword 761 .hword 754 .hword 747 .hword 769 .hword 762 .hword 755 .hword 777 .hword 770 .hword 763 .hword 785 .hword 778 .hword 771 .hword 793 .hword 786 .hword 779 .hword 801 .hword 794 .hword 787 .hword 809 .hword 802 .hword 795 .hword 817 .hword 810 .hword 803 .hword 825 .hword 818 .hword 811 .hword 833 .hword 826 .hword 819 .hword 841 .hword 834 .hword 827 .hword 849 .hword 842 .hword 835 .hword 857 .hword 850 .hword 843 .hword 865 .hword 858 .hword 851 .hword 873 .hword 866 .hword 859 .hword 881 .hword 874 .hword 867 .hword 889 .hword 882 .hword 875 .hword 897 .hword 890 .hword 883 .hword 905 .hword 898 .hword 891 .hword 913 .hword 906 .hword 899 .hword 921 .hword 914 .hword 907 .hword 929 .hword 922 .hword 915 .hword 937 .hword 930 .hword 923 .hword 945 .hword 938 .hword 931 .hword 953 .hword 946 .hword 939 .hword 961 .hword 954 .hword 947 .hword 969 .hword 962 .hword 955 .hword 977 .hword 970 .hword 963 .hword 985 .hword 978 .hword 971 .hword 993 .hword 986 .hword 979 .hword 1001 .hword 994 .hword 987 .hword 1009 .hword 1002 .hword 995 .hword 1017 .hword 1010 .hword 1003 .hword 1018 .hword 1011 .hword 1019 .section .data.zftl_debug,"aw",@progbits .align 2 .set .LANCHOR19,. + 0 .type zftl_debug, %object .size zftl_debug, 4 zftl_debug: .word 17476 .section .data.zftl_nand_flash_para_tbl,"aw",@progbits .align 3 .set .LANCHOR214,. + 0 .type zftl_nand_flash_para_tbl, %object .size zftl_nand_flash_para_tbl, 1568 zftl_nand_flash_para_tbl: .byte 6 .byte -104 .byte 58 .byte -104 .byte -77 .byte 118 .byte 114 .byte 1 .byte 1 .byte 32 .hword 768 .byte 3 .byte 2 .hword 758 .hword 5593 .byte 0 .byte 37 .byte 60 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte 60 .byte -104 .byte -77 .byte 118 .byte 114 .byte 1 .byte 1 .byte 32 .hword 768 .byte 3 .byte 2 .hword 1478 .hword 5593 .byte 0 .byte 37 .byte 60 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte 58 .byte -104 .byte -93 .byte 118 .byte 81 .byte 1 .byte 1 .byte 32 .hword 384 .byte 3 .byte 2 .hword 1446 .hword 1497 .byte 0 .byte 36 .byte 60 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -34 .byte -108 .byte -109 .byte 118 .byte 81 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1074 .hword 17881 .byte 2 .byte 35 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -34 .byte -124 .byte -109 .byte 114 .byte 87 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 2092 .hword 17857 .byte 2 .byte 33 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte 58 .byte -108 .byte -109 .byte 118 .byte 81 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 2106 .hword 17881 .byte 2 .byte 35 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -41 .byte -124 .byte -109 .byte 114 .byte 81 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 1056 .hword 17857 .byte 2 .byte 35 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -41 .byte -124 .byte -109 .byte 114 .byte 80 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 1060 .hword 17857 .byte 2 .byte 34 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -34 .byte -108 .byte -109 .byte 118 .byte 80 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1066 .hword 17881 .byte 2 .byte 34 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -41 .byte -124 .byte -109 .byte 114 .byte 87 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 1060 .hword 17857 .byte 2 .byte 33 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -34 .byte -108 .byte -109 .byte 118 .byte 87 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1058 .hword 17881 .byte 2 .byte 33 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte -104 .byte -34 .byte -108 .byte -109 .byte 118 .byte -47 .byte 1 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1074 .hword 17881 .byte 2 .byte 35 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte 69 .byte 58 .byte -108 .byte -109 .byte 118 .byte 81 .byte 8 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 2106 .hword 17881 .byte 2 .byte 68 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte 69 .byte -34 .byte -108 .byte -109 .byte 118 .byte 81 .byte 8 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1074 .hword 17881 .byte 2 .byte 68 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte 69 .byte -34 .byte -108 .byte -109 .byte 118 .byte 87 .byte 8 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1058 .hword 17881 .byte 2 .byte 66 .byte 40 .byte 32 .byte 3 .byte 1 .byte 4 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte 69 .byte -34 .byte -108 .byte -109 .byte 118 .byte 80 .byte 8 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1066 .hword 17881 .byte 2 .byte 67 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 6 .byte 69 .byte -41 .byte -124 .byte -109 .byte 114 .byte 87 .byte 8 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 1060 .hword 17857 .byte 2 .byte 66 .byte 40 .byte 32 .byte 2 .byte 1 .byte 1 .byte 0 .hword 256 .byte 1 .byte -94 .byte 0 .byte 0 .byte 5 .byte 44 .byte 100 .byte 68 .byte 50 .byte -91 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 1048 .hword 9671 .byte 5 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 512 .byte 1 .byte -38 .byte -33 .byte 0 .byte 5 .byte 44 .byte 100 .byte 100 .byte 86 .byte -91 .byte 0 .byte 4 .byte 1 .byte 24 .hword 512 .byte 2 .byte 2 .hword 700 .hword 479 .byte 4 .byte 18 .byte 60 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte 68 .byte 68 .byte 75 .byte -87 .byte 0 .byte 4 .byte 1 .byte 16 .hword 256 .byte 2 .byte 2 .hword 1064 .hword 479 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 256 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte -124 .byte 100 .byte 84 .byte -87 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 2 .hword 1024 .hword 479 .byte 4 .byte 18 .byte 60 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 0 .byte 0 .byte 0 .byte 1 .byte 5 .byte 44 .byte 100 .byte 100 .byte 84 .byte -92 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 1024 .hword 455 .byte 4 .byte 18 .byte 60 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 0 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte 100 .byte 68 .byte 75 .byte -87 .byte 0 .byte 4 .byte 1 .byte 16 .hword 256 .byte 2 .byte 4 .hword 1024 .hword 449 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 256 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte -124 .byte 100 .byte 60 .byte -91 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 2 .hword 1024 .hword 479 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte -124 .byte 68 .byte 52 .byte -92 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 2184 .hword 9671 .byte 5 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 512 .byte 1 .byte -38 .byte -33 .byte 0 .byte 5 .byte 44 .byte 100 .byte 100 .byte 60 .byte -91 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 1044 .hword 471 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte -124 .byte 68 .byte 50 .byte -86 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 2184 .hword 9671 .byte 5 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 512 .byte 1 .byte -38 .byte -33 .byte 0 .byte 5 .byte 44 .byte -124 .byte -60 .byte 52 .byte -86 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 2184 .hword 9671 .byte 5 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 512 .byte 1 .byte -38 .byte -33 .byte 0 .byte 5 .byte 44 .byte -124 .byte 68 .byte 52 .byte -86 .byte 0 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 2184 .hword 9671 .byte 5 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 512 .byte 1 .byte -38 .byte -33 .byte 0 .byte 6 .byte -101 .byte 73 .byte 1 .byte 0 .byte -101 .byte 73 .byte 9 .byte 1 .byte 32 .hword 256 .byte 2 .byte 1 .hword 2144 .hword -23097 .byte 8 .byte 21 .byte 70 .byte 32 .byte 1 .byte 0 .byte 8 .byte 0 .hword 256 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte 44 .byte -124 .byte 100 .byte 60 .byte -87 .byte 4 .byte 4 .byte 1 .byte 32 .hword 512 .byte 2 .byte 2 .hword 1024 .hword 479 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 0 .byte 0 .byte 0 .byte 1 .byte 5 .byte 44 .byte -124 .byte 88 .byte 50 .byte -95 .byte 0 .byte 4 .byte 1 .byte 32 .hword 768 .byte 3 .byte 1 .hword 1440 .hword 3527 .byte 0 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 1024 .byte 3 .byte 0 .byte 0 .byte 2 .byte 6 .byte 44 .byte -92 .byte 8 .byte 50 .byte -95 .byte 0 .byte 4 .byte 1 .byte 32 .hword 2304 .byte 3 .byte 1 .hword 1008 .hword 3521 .byte 0 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 4096 .byte 3 .byte 0 .byte 0 .byte 4 .byte 6 .byte 44 .byte -92 .byte 100 .byte 50 .byte -86 .byte 4 .byte 4 .byte 1 .byte 32 .hword 1024 .byte 2 .byte 1 .hword 2192 .hword 9671 .byte 10 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 1024 .byte 1 .byte -38 .byte -33 .byte 0 .byte 6 .byte -101 .byte -61 .byte 72 .byte 37 .byte 16 .byte 0 .byte 9 .byte 1 .byte 32 .hword 1152 .byte 3 .byte 2 .hword 1006 .hword -27169 .byte 13 .byte 81 .byte 70 .byte 32 .byte 1 .byte 0 .byte 4 .byte 0 .hword 2048 .byte 1 .byte -38 .byte -33 .byte 24 .byte 6 .byte -83 .byte -34 .byte 20 .byte -85 .byte 66 .byte 74 .byte 2 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1056 .hword 455 .byte 2 .byte 6 .byte 40 .byte 32 .byte 3 .byte 1 .byte 3 .byte 0 .hword 256 .byte 2 .byte -65 .byte -66 .byte 0 .byte 6 .byte -83 .byte -34 .byte -108 .byte -21 .byte 116 .byte 68 .byte 2 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1066 .hword 473 .byte 1 .byte 7 .byte 40 .byte 32 .byte 4 .byte 1 .byte 3 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -83 .byte -34 .byte 20 .byte -89 .byte 66 .byte 74 .byte 2 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 1060 .hword 473 .byte 2 .byte 5 .byte 40 .byte 32 .byte 4 .byte 1 .byte 3 .byte 0 .hword 256 .byte 2 .byte -65 .byte -66 .byte 0 .byte 6 .byte -83 .byte -41 .byte -108 .byte -111 .byte 96 .byte 68 .byte 2 .byte 1 .byte 16 .hword 256 .byte 2 .byte 2 .hword 1046 .hword 473 .byte 1 .byte 3 .byte 40 .byte 32 .byte 4 .byte 1 .byte 3 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -83 .byte 58 .byte 20 .byte -85 .byte 66 .byte 74 .byte 2 .byte 1 .byte 32 .hword 256 .byte 2 .byte 2 .hword 2092 .hword 473 .byte 2 .byte 5 .byte 40 .byte 32 .byte 3 .byte 1 .byte 3 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -83 .byte -41 .byte 20 .byte -98 .byte 52 .byte 74 .byte 2 .byte 1 .byte 16 .hword 256 .byte 2 .byte 2 .hword 1056 .hword 473 .byte 2 .byte 5 .byte 40 .byte 32 .byte 4 .byte 1 .byte 3 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -83 .byte 58 .byte 20 .byte 3 .byte 8 .byte 80 .byte 2 .byte 1 .byte 32 .hword 388 .byte 2 .byte 2 .hword 1362 .hword 473 .byte 9 .byte 8 .byte 40 .byte 32 .byte 3 .byte 1 .byte 3 .byte 0 .hword 512 .byte 0 .byte -65 .byte -66 .byte 1 .byte 5 .byte -119 .byte 100 .byte 100 .byte 60 .byte -95 .byte 0 .byte 7 .byte 1 .byte 32 .hword 512 .byte 2 .byte 1 .hword 1024 .hword 455 .byte 4 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 3 .byte 0 .byte 0 .byte 0 .byte 5 .byte -119 .byte -124 .byte 100 .byte 60 .byte -91 .byte 0 .byte 7 .byte 1 .byte 32 .hword 512 .byte 2 .byte 2 .hword 1024 .hword 455 .byte 4 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 512 .byte 3 .byte 0 .byte 0 .byte 0 .byte 6 .byte -119 .byte 100 .byte 68 .byte 75 .byte -87 .byte 0 .byte 7 .byte 1 .byte 16 .hword 256 .byte 2 .byte 4 .hword 1024 .hword 449 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -119 .byte -120 .byte 36 .byte 75 .byte -87 .byte -124 .byte 7 .byte 1 .byte 16 .hword 256 .byte 2 .byte 4 .hword 1024 .hword 449 .byte 3 .byte 17 .byte 40 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -119 .byte -120 .byte 4 .byte 75 .byte -87 .byte 0 .byte 7 .byte 1 .byte 16 .hword 256 .byte 2 .byte 4 .hword 1024 .hword 449 .byte 1 .byte 0 .byte 24 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 256 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte -119 .byte -92 .byte 8 .byte 50 .byte -95 .byte 0 .byte 7 .byte 1 .byte 32 .hword 2304 .byte 3 .byte 1 .hword 1008 .hword 3521 .byte 0 .byte 19 .byte 70 .byte 32 .byte 1 .byte 0 .byte 1 .byte 0 .hword 4096 .byte 3 .byte 0 .byte 0 .byte 4 .byte 6 .byte -20 .byte -34 .byte -108 .byte -61 .byte -92 .byte -54 .byte 0 .byte 1 .byte 32 .hword 792 .byte 2 .byte 1 .hword 688 .hword 1217 .byte 11 .byte 50 .byte 40 .byte 32 .byte 3 .byte 1 .byte 1 .byte 0 .hword 1024 .byte 1 .byte -38 .byte -33 .byte 0 .section .rodata.__func__.10004,"a",@progbits .align 3 .set .LANCHOR242,. + 0 .type __func__.10004, %object .size __func__.10004, 13 __func__.10004: .string "_ftl_discard" .section .rodata.__func__.10150,"a",@progbits .align 3 .set .LANCHOR225,. + 0 .type __func__.10150, %object .size __func__.10150, 12 __func__.10150: .string "gc_recovery" .section .rodata.__func__.10160,"a",@progbits .align 3 .set .LANCHOR71,. + 0 .type __func__.10160, %object .size __func__.10160, 12 __func__.10160: .string "gc_add_sblk" .section .rodata.__func__.10207,"a",@progbits .align 3 .set .LANCHOR185,. + 0 .type __func__.10207, %object .size __func__.10207, 21 __func__.10207: .string "gc_check_data_one_wl" .section .rodata.__func__.10239,"a",@progbits .align 3 .set .LANCHOR226,. + 0 .type __func__.10239, %object .size __func__.10239, 22 __func__.10239: .string "gc_update_l2p_map_new" .section .rodata.__func__.10252,"a",@progbits .align 3 .set .LANCHOR77,. + 0 .type __func__.10252, %object .size __func__.10252, 19 __func__.10252: .string "gc_write_completed" .section .rodata.__func__.10282,"a",@progbits .align 3 .set .LANCHOR234,. + 0 .type __func__.10282, %object .size __func__.10282, 16 __func__.10282: .string "gc_do_copy_back" .section .rodata.__func__.10309,"a",@progbits .align 3 .set .LANCHOR127,. + 0 .type __func__.10309, %object .size __func__.10309, 16 __func__.10309: .string "gc_free_src_blk" .section .rodata.__func__.10353,"a",@progbits .align 3 .set .LANCHOR227,. + 0 .type __func__.10353, %object .size __func__.10353, 16 __func__.10353: .string "gc_scan_src_blk" .section .rodata.__func__.10414,"a",@progbits .align 3 .set .LANCHOR228,. + 0 .type __func__.10414, %object .size __func__.10414, 20 __func__.10414: .string "gc_scan_static_data" .section .rodata.__func__.10508,"a",@progbits .align 3 .set .LANCHOR237,. + 0 .type __func__.10508, %object .size __func__.10508, 11 __func__.10508: .string "zftl_do_gc" .section .rodata.__func__.10603,"a",@progbits .align 3 .set .LANCHOR5,. + 0 .type __func__.10603, %object .size __func__.10603, 18 __func__.10603: .string "_list_remove_node" .section .rodata.__func__.10628,"a",@progbits .align 3 .set .LANCHOR13,. + 0 .type __func__.10628, %object .size __func__.10628, 23 __func__.10628: .string "_list_update_data_list" .section .rodata.__func__.10703,"a",@progbits .align 3 .set .LANCHOR151,. + 0 .type __func__.10703, %object .size __func__.10703, 20 __func__.10703: .string "zftl_sblk_list_init" .section .rodata.__func__.10737,"a",@progbits .align 3 .set .LANCHOR193,. + 0 .type __func__.10737, %object .size __func__.10737, 15 __func__.10737: .string "ftl_info_flush" .section .rodata.__func__.10792,"a",@progbits .align 3 .set .LANCHOR200,. + 0 .type __func__.10792, %object .size __func__.10792, 15 __func__.10792: .string "ftl_alloc_sblk" .section .rodata.__func__.10834,"a",@progbits .align 3 .set .LANCHOR113,. + 0 .type __func__.10834, %object .size __func__.10834, 18 __func__.10834: .string "ftl_alloc_sys_blk" .section .rodata.__func__.10844,"a",@progbits .align 3 .set .LANCHOR114,. + 0 .type __func__.10844, %object .size __func__.10844, 17 __func__.10844: .string "ftl_free_sys_blk" .section .rodata.__func__.10879,"a",@progbits .align 3 .set .LANCHOR229,. + 0 .type __func__.10879, %object .size __func__.10879, 14 __func__.10879: .string "ftl_sblk_dump" .section .rodata.__func__.10903,"a",@progbits .align 3 .set .LANCHOR218,. + 0 .type __func__.10903, %object .size __func__.10903, 16 __func__.10903: .string "ftl_sysblk_dump" .section .rodata.__func__.10928,"a",@progbits .align 3 .set .LANCHOR219,. + 0 .type __func__.10928, %object .size __func__.10928, 23 __func__.10928: .string "ftl_open_sblk_recovery" .section .rodata.__func__.10961,"a",@progbits .align 3 .set .LANCHOR115,. + 0 .type __func__.10961, %object .size __func__.10961, 23 __func__.10961: .string "ftl_get_ppa_from_index" .section .rodata.__func__.10982,"a",@progbits .align 3 .set .LANCHOR231,. + 0 .type __func__.10982, %object .size __func__.10982, 19 __func__.10982: .string "ftl_update_l2p_map" .section .rodata.__func__.11001,"a",@progbits .align 3 .set .LANCHOR119,. + 0 .type __func__.11001, %object .size __func__.11001, 22 __func__.11001: .string "ftl_get_new_free_page" .section .rodata.__func__.11012,"a",@progbits .align 3 .set .LANCHOR120,. + 0 .type __func__.11012, %object .size __func__.11012, 22 __func__.11012: .string "ftl_ext_alloc_new_blk" .section .rodata.__func__.11038,"a",@progbits .align 3 .set .LANCHOR198,. + 0 .type __func__.11038, %object .size __func__.11038, 19 __func__.11038: .string "ftl_ext_info_flush" .section .rodata.__func__.11050,"a",@progbits .align 3 .set .LANCHOR199,. + 0 .type __func__.11050, %object .size __func__.11050, 18 __func__.11050: .string "ftl_ext_info_init" .section .rodata.__func__.11089,"a",@progbits .align 3 .set .LANCHOR201,. + 0 .type __func__.11089, %object .size __func__.11089, 25 __func__.11089: .string "ftl_low_format_data_init" .section .rodata.__func__.11104,"a",@progbits .align 3 .set .LANCHOR203,. + 0 .type __func__.11104, %object .size __func__.11104, 15 __func__.11104: .string "ftl_low_format" .section .rodata.__func__.11152,"a",@progbits .align 3 .set .LANCHOR189,. + 0 .type __func__.11152, %object .size __func__.11152, 14 __func__.11152: .string "ftl_prog_page" .section .rodata.__func__.11275,"a",@progbits .align 3 .set .LANCHOR180,. + 0 .type __func__.11275, %object .size __func__.11275, 31 __func__.11275: .string "queue_wait_first_req_completed" .section .rodata.__func__.11329,"a",@progbits .align 3 .set .LANCHOR181,. + 0 .type __func__.11329, %object .size __func__.11329, 15 __func__.11329: .string "sblk_prog_page" .section .rodata.__func__.11356,"a",@progbits .align 3 .set .LANCHOR184,. + 0 .type __func__.11356, %object .size __func__.11356, 15 __func__.11356: .string "sblk_read_page" .section .rodata.__func__.11426,"a",@progbits .align 3 .set .LANCHOR220,. + 0 .type __func__.11426, %object .size __func__.11426, 16 __func__.11426: .string "load_l2p_region" .section .rodata.__func__.11442,"a",@progbits .align 3 .set .LANCHOR153,. + 0 .type __func__.11442, %object .size __func__.11442, 13 __func__.11442: .string "pm_free_sblk" .section .rodata.__func__.11466,"a",@progbits .align 3 .set .LANCHOR222,. + 0 .type __func__.11466, %object .size __func__.11466, 6 __func__.11466: .string "pm_gc" .section .rodata.__func__.11482,"a",@progbits .align 3 .set .LANCHOR205,. + 0 .type __func__.11482, %object .size __func__.11482, 17 __func__.11482: .string "pm_alloc_new_blk" .section .rodata.__func__.11492,"a",@progbits .align 3 .set .LANCHOR206,. + 0 .type __func__.11492, %object .size __func__.11492, 14 __func__.11492: .string "pm_write_page" .section .rodata.__func__.11510,"a",@progbits .align 3 .set .LANCHOR137,. + 0 .type __func__.11510, %object .size __func__.11510, 21 __func__.11510: .string "pm_select_ram_region" .section .rodata.__func__.8803,"a",@progbits .align 3 .set .LANCHOR170,. + 0 .type __func__.8803, %object .size __func__.8803, 19 __func__.8803: .string "flash_read_page_en" .section .rodata.__func__.8864,"a",@progbits .align 3 .set .LANCHOR186,. + 0 .type __func__.8864, %object .size __func__.8864, 19 __func__.8864: .string "flash_prog_page_en" .section .rodata.__func__.8880,"a",@progbits .align 3 .set .LANCHOR43,. + 0 .type __func__.8880, %object .size __func__.8880, 26 __func__.8880: .string "flash_erase_duplane_block" .section .rodata.__func__.8891,"a",@progbits .align 3 .set .LANCHOR45,. + 0 .type __func__.8891, %object .size __func__.8891, 21 __func__.8891: .string "flash_erase_block_en" .section .rodata.__func__.8905,"a",@progbits .align 3 .set .LANCHOR28,. + 0 .type __func__.8905, %object .size __func__.8905, 28 __func__.8905: .string "flash_wait_device_ready_raw" .section .rodata.__func__.8929,"a",@progbits .align 3 .set .LANCHOR175,. + 0 .type __func__.8929, %object .size __func__.8929, 26 __func__.8929: .string "flash_start_tlc_page_prog" .section .rodata.__func__.8940,"a",@progbits .align 3 .set .LANCHOR176,. + 0 .type __func__.8940, %object .size __func__.8940, 29 __func__.8940: .string "flash_start_3d_mlc_page_prog" .section .rodata.__func__.8958,"a",@progbits .align 3 .set .LANCHOR177,. + 0 .type __func__.8958, %object .size __func__.8958, 22 __func__.8958: .string "flash_start_page_prog" .section .rodata.__func__.8969,"a",@progbits .align 3 .set .LANCHOR34,. + 0 .type __func__.8969, %object .size __func__.8969, 22 __func__.8969: .string "flash_start_page_read" .section .rodata.__func__.8982,"a",@progbits .align 3 .set .LANCHOR178,. + 0 .type __func__.8982, %object .size __func__.8982, 31 __func__.8982: .string "flash_complete_plane_page_read" .section .rodata.__func__.8994,"a",@progbits .align 3 .set .LANCHOR46,. + 0 .type __func__.8994, %object .size __func__.8994, 23 __func__.8994: .string "flash_start_plane_read" .section .rodata.__func__.9007,"a",@progbits .align 3 .set .LANCHOR179,. + 0 .type __func__.9007, %object .size __func__.9007, 25 __func__.9007: .string "flash_complete_page_read" .section .rodata.__func__.9422,"a",@progbits .align 3 .set .LANCHOR143,. + 0 .type __func__.9422, %object .size __func__.9422, 20 __func__.9422: .string "flash_die_info_init" .section .rodata.__func__.9432,"a",@progbits .align 3 .set .LANCHOR20,. + 0 .type __func__.9432, %object .size __func__.9432, 22 __func__.9432: .string "nand_flash_print_info" .section .rodata.__func__.9477,"a",@progbits .align 3 .set .LANCHOR213,. + 0 .type __func__.9477, %object .size __func__.9477, 16 __func__.9477: .string "nand_flash_init" .section .rodata.__func__.9500,"a",@progbits .align 3 .set .LANCHOR155,. + 0 .type __func__.9500, %object .size __func__.9500, 11 __func__.9500: .string "nandc_init" .section .rodata.__func__.9665,"a",@progbits .align 3 .set .LANCHOR58,. + 0 .type __func__.9665, %object .size __func__.9665, 13 __func__.9665: .string "buf_add_tail" .section .rodata.__func__.9678,"a",@progbits .align 3 .set .LANCHOR60,. + 0 .type __func__.9678, %object .size __func__.9678, 10 __func__.9678: .string "buf_alloc" .section .rodata.__func__.9692,"a",@progbits .align 3 .set .LANCHOR61,. + 0 .type __func__.9692, %object .size __func__.9692, 16 __func__.9692: .string "buf_remove_free" .section .rodata.__func__.9713,"a",@progbits .align 3 .set .LANCHOR212,. + 0 .type __func__.9713, %object .size __func__.9713, 20 __func__.9713: .string "flash_info_blk_init" .section .rodata.__func__.9728,"a",@progbits .align 3 .set .LANCHOR154,. + 0 .type __func__.9728, %object .size __func__.9728, 21 __func__.9728: .string "flash_info_data_init" .section .rodata.__func__.9750,"a",@progbits .align 3 .set .LANCHOR209,. + 0 .type __func__.9750, %object .size __func__.9750, 17 __func__.9750: .string "flash_info_flush" .section .rodata.__func__.9826,"a",@progbits .align 3 .set .LANCHOR147,. + 0 .type __func__.9826, %object .size __func__.9826, 17 __func__.9826: .string "lpa_rebuild_hash" .section .rodata.__func__.9876,"a",@progbits .align 3 .set .LANCHOR232,. + 0 .type __func__.9876, %object .size __func__.9876, 17 __func__.9876: .string "ftl_write_commit" .section .rodata.__func__.9894,"a",@progbits .align 3 .set .LANCHOR130,. + 0 .type __func__.9894, %object .size __func__.9894, 14 __func__.9894: .string "ftl_write_buf" .section .rodata.__func__.9939,"a",@progbits .align 3 .set .LANCHOR132,. + 0 .type __func__.9939, %object .size __func__.9939, 18 __func__.9939: .string "zftl_add_read_buf" .section .rodata.__func__.9972,"a",@progbits .align 3 .set .LANCHOR230,. + 0 .type __func__.9972, %object .size __func__.9972, 10 __func__.9972: .string "zftl_read" .section .rodata._list_remove_node.str1.1,"aMS",@progbits,1 .LC0: .string "\n!!!!! error @ func:%s - line:%d\n" .section .rodata.dump_buf_info.str1.1,"aMS",@progbits,1 .LC41: .string "sblk_queue_head = %d\n" .LC42: .string "sblk_read_completed_queue_head = %d\n" .LC43: .string "sblk_gc_write_completed_queue_head = %d\n" .LC44: .string "sblk_write_completed_queue_head = %d\n" .LC45: .string "p_free_buf_head = %d\n" .LC46: .string "free_buf_count = %d\n" .LC47: .string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n" .section .rodata.dump_ftl_info.str1.1,"aMS",@progbits,1 .LC192: .string "free_buf_count: %d\n" .LC193: .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC194: .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC195: .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC196: .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC197: .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC198: .string "lpa:" .LC199: .string "vpn:" .LC200: .string "sblk:" .LC201: .string "lpa_hash:" .LC202: .string "lpa_hash_index:" .section .rodata.dump_pm_blk.str1.1,"aMS",@progbits,1 .LC257: .string "pm l2p:" .LC258: .string "pm blk:" .section .rodata.dump_sblk_queue.str1.1,"aMS",@progbits,1 .LC79: .string "dump_sblk_queue: %d\n" .LC80: .string "buf id= %d state = %d ppa = %x\n" .section .rodata.flash_complete_page_read.str1.1,"aMS",@progbits,1 .LC136: .string "flash_complete_page_read %x %x error_ecc %d %d\n" .section .rodata.flash_ddr_tuning_read.str1.1,"aMS",@progbits,1 .LC122: .string "%d flash_ddr_tuning_read %x ecc=%d\n" .LC123: .string "sync para %d\n" .LC124: .string "DDR mode Read error %x %x\n" .LC125: .string "SDR mode Read %x %x ecc:%x\n" .section .rodata.flash_dual_page_prog.str1.1,"aMS",@progbits,1 .LC130: .string "flash_prog_page %x %x %x\n" .section .rodata.flash_erase_all.str1.1,"aMS",@progbits,1 .LC35: .string "erase done: %x\n" .section .rodata.flash_erase_block_en.str1.1,"aMS",@progbits,1 .LC33: .string "flash_erase_block %x %x %x\n" .LC34: .string "flash_erase_block %d block = %x status = %x\n" .section .rodata.flash_erase_duplane_block.str1.1,"aMS",@progbits,1 .LC31: .string "flash_erase_duplane_block %x %x %x\n" .LC32: .string "flash_erase_duplane_block pageadd = %x status = %x\n" .section .rodata.flash_get_last_written_page.str1.1,"aMS",@progbits,1 .LC128: .string "flash_get_last_written_page: %x %x %x\n" .section .rodata.flash_info_blk_init.str1.1,"aMS",@progbits,1 .LC177: .string "...%d @ %s %d %p\n" .LC178: .string "no sys info %x\n" .section .rodata.flash_info_data_init.str1.1,"aMS",@progbits,1 .LC94: .string "...%d @ %s\n" .section .rodata.flash_info_flush.str1.1,"aMS",@progbits,1 .LC174: .string "finfo:" .LC175: .string "flash_info_flush id = %x, page = %x\n" .LC176: .string "sys_info_flush error:%x\n" .section .rodata.flash_mask_bad_block.str1.1,"aMS",@progbits,1 .LC48: .string "flash_mask_bad_block %d %d\n" .section .rodata.flash_prog_page.str1.1,"aMS",@progbits,1 .LC129: .string "flash_prog_page page_addr = %x status = %x\n" .section .rodata.flash_prog_page_en.str1.1,"aMS",@progbits,1 .LC144: .string "flash_prog_page_en:%x %x %x\n" .LC145: .string "w d:" .LC146: .string "w s:" .LC147: .string "spare" .LC148: .string "data" .LC149: .string "write error: %x\n" .section .rodata.flash_read_id.str1.1,"aMS",@progbits,1 .LC38: .string "No.%d FLASH ID:%x %x %x %x %x %x\n" .section .rodata.flash_read_otp_data.str1.1,"aMS",@progbits,1 .LC39: .string "otp:%x %x %x %x\n" .section .rodata.flash_read_page_en.str1.1,"aMS",@progbits,1 .LC126: .string "flash_read_page_en %x %x %x %x\n" .LC127: .string "flash_read_page_en %x %x error_ecc %d %d\n" .section .rodata.flash_set_interface_mode.str1.1,"aMS",@progbits,1 .LC36: .string "nand sdr mode %x\n" .LC37: .string "nand ddr mode %x\n" .section .rodata.ftl_alloc_new_data_sblk.str1.1,"aMS",@progbits,1 .LC235: .string "error gc_add_sblk: %x\n" .section .rodata.ftl_alloc_sblk.str1.1,"aMS",@progbits,1 .LC167: .string "alloc sblk %x %d\n" .section .rodata.ftl_dump_write_open_sblk.str1.1,"aMS",@progbits,1 .LC159: .string "ftl_sblk_dump_write = %x %d %d %d %d\n" .LC160: .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC161: .string "ftl_sblk_dump_write2 = %x %d %d %d\n" .LC162: .string "ftl_sblk_dump_write = %x %x\n" .LC163: .string "ftl_sblk_dump_write done = %x\n" .section .rodata.ftl_ext_info_init.str1.1,"aMS",@progbits,1 .LC156: .string "%s %d %d %x %x\n" .LC157: .string "ext info hash %x error\n" .LC158: .string "%s %x %x %x\n" .section .rodata.ftl_free_sblk.str1.1,"aMS",@progbits,1 .LC68: .string "swl_slc_free_mini_ec_blk sblk %x\n" .section .rodata.ftl_info_blk_init.str1.1,"aMS",@progbits,1 .LC152: .string "%d %x @%d %x\n" .LC153: .string "ftl_info_blk_init %d %d %x\n" .LC154: .string "ftl info hash %x error\n" .LC155: .string "ink flag: %x\n" .section .rodata.ftl_info_flush.str1.1,"aMS",@progbits,1 .LC151: .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .section .rodata.ftl_ink_check_sblk.str1.1,"aMS",@progbits,1 .LC165: .string "ftl_ink_check_sblk = %x %d %d\n" .LC166: .string "ftl_ink_check_sblk = %x %d %d end\n" .section .rodata.ftl_low_format.str1.1,"aMS",@progbits,1 .LC169: .string "ftl_low_format %d\n" .LC170: .string "low format %d %d %d %d\n" .section .rodata.ftl_mask_bad_block.str1.1,"aMS",@progbits,1 .LC66: .string "mask bad block:cs %x %x block: %x %x\n" .section .rodata.ftl_open_sblk_init.str1.1,"aMS",@progbits,1 .LC168: .string "blk %x is bad block\n" .section .rodata.ftl_open_sblk_recovery.str1.1,"aMS",@progbits,1 .LC180: .string "saved_active_page = %x\n" .LC181: .string "saved_active_plane = %x\n" .LC182: .string "sblk = %x\n" .LC183: .string "phy_blk = %x %x\n" .LC184: .string "num_planes = %x\n" .LC185: .string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n" .LC186: .string "data:" .LC187: .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC188: .string "dump_write_lpa = %x %x %x %x\n" .LC189: .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" .LC190: .string "dump write = %x %x %x\n" .LC191: .string "dump write hash update = %x %x %x\n" .section .rodata.ftl_re_low_format.str1.1,"aMS",@progbits,1 .LC171: .string "re low format %d\n" .section .rodata.ftl_sblk_dump.str1.1,"aMS",@progbits,1 .LC223: .string "ftl_sblk_dump = %x %d %d %d %d\n" .LC224: .string "ftl_sblk_dump = %x %x %x %x\n" .LC225: .string "page_addr = %x, lpa=%x vpn = %d\n" .LC226: .string "index= %x, lpa=%x\n" .LC227: .string "block = %x, vpn=%x check vpn = %x\n" .section .rodata.ftl_sysblk_dump.str1.1,"aMS",@progbits,1 .LC179: .string "l2p:" .section .rodata.ftl_test_block.str1.1,"aMS",@progbits,1 .LC150: .string "low format %d\n" .section .rodata.ftl_update_l2p_map.str1.1,"aMS",@progbits,1 .LC231: .string "ftl_update_l2p_map: %x %x %x\n" .LC232: .string "ftl_update_l2p_map" .LC233: .string "lpa_tbl:" .LC234: .string "sblk %x vpn: %d %d\n" .section .rodata.ftl_vpn_decrement.str1.1,"aMS",@progbits,1 .LC65: .string "ftl_vpn_decrement %x = %d, %d\n" .section .rodata.ftl_write_commit.str1.1,"aMS",@progbits,1 .LC236: .string "%d read error: ppa:%x, lpa:%x, status:%x\n" .section .rodata.ftl_write_completed.str1.1,"aMS",@progbits,1 .LC77: .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC78: .string "ftl re prog: lpa = %x, ppa= %x\n" .section .rodata.gc_add_sblk.str1.1,"aMS",@progbits,1 .LC49: .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" .LC50: .string "gc_add_sblk = %d, %d, %d\n" .LC51: .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" .LC52: .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .section .rodata.gc_check_data_one_wl.str1.1,"aMS",@progbits,1 .LC143: .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .section .rodata.gc_do_copy_back.str1.1,"aMS",@progbits,1 .LC237: .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" .LC238: .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" .section .rodata.gc_free_bad_sblk.str1.1,"aMS",@progbits,1 .LC67: .string "gc_free_bad_sblk 0x%x\n" .section .rodata.gc_free_src_blk.str1.1,"aMS",@progbits,1 .LC69: .string "gc_free_src_blk = %x, vpn = %d\n" .LC70: .string "gc_free_src_blk %x, %d\n" .section .rodata.gc_free_temp_buf.str1.1,"aMS",@progbits,1 .LC55: .string "%d gc_free_temp_buf buf id= %x\n" .section .rodata.gc_ink_check_sblk.str1.1,"aMS",@progbits,1 .LC164: .string "%x: ink_scaned_blk_num %x\n" .section .rodata.gc_mark_bad_ppa.str1.1,"aMS",@progbits,1 .LC53: .string "gc_mark_bad_ppa %d %x %x\n" .section .rodata.gc_recovery.str1.1,"aMS",@progbits,1 .LC213: .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC214: .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC215: .string "gc_recovery: %x vpn = %x\n" .section .rodata.gc_scan_src_blk.str1.1,"aMS",@progbits,1 .LC220: .string "gc_scan_src_blk = %x, vpn = %d\n" .LC221: .string "js hash error:%x %x %x\n" .LC222: .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" .section .rodata.gc_search_src_blk.str1.1,"aMS",@progbits,1 .LC57: .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC58: .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .section .rodata.gc_static_wearleveling.str1.1,"aMS",@progbits,1 .LC82: .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC83: .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC84: .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC85: .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC86: .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC87: .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC88: .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC89: .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" .LC90: .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" .section .rodata.gc_update_l2p_map_new.str1.1,"aMS",@progbits,1 .LC216: .string "gc_update_l2p_map_new sblk %x\n" .LC217: .string "gc_update_l2p_map_new: %x %x %x\n" .LC218: .string "lpa: %x %x %x\n" .LC219: .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .section .rodata.gc_write_completed.str1.1,"aMS",@progbits,1 .LC54: .string "status: %x, ppa: %x\n" .section .rodata.hynix_get_read_retry_default.str1.1,"aMS",@progbits,1 .LC102: .string "otp error! %d" .LC103: .string "rr" .section .rodata.hynix_read_retrial.str1.1,"aMS",@progbits,1 .LC121: .string "hynix RR %d row=%x, count %d, status=%d\n" .section .rodata.idb_write_data.str1.1,"aMS",@progbits,1 .LC132: .string "1 write_idblock fix data %x %x %x\n" .LC133: .string "write_idblock check fail! %x\n" .LC134: .string "write_idblock fail! %x\n" .section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1 .LC204: .string "region_id = %d, pm_max_region = %d\n" .LC205: .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" .LC206: .string "load_l2p_region = %x,%x,%x, %x\n" .LC207: .string "pm_ppa:" .LC208: .string "spare:" .section .rodata.lpa_rebuild_hash.str1.1,"aMS",@progbits,1 .LC81: .string "%s %d %d\n" .section .rodata.micron_read_retrial.str1.1,"aMS",@progbits,1 .LC112: .string "MT %d row=%x,last status %d,status = %d\n" .LC113: .string "MT RR %d row=%x,count %d,status=%d\n" .section .rodata.nand_flash_print_info.str1.1,"aMS",@progbits,1 .LC1: .string "...%s enter...\n" .LC2: .string "No.0 FLASH ID: %x %x %x %x %x %x\n" .LC3: .string "DiePerChip: %x\n" .LC4: .string "SectPerPage: %x\n" .LC5: .string "PagePerBlk: %x\n" .LC6: .string "Cell: %x\n" .LC7: .string "PlanePerDie: %x\n" .LC8: .string "BlkPerPlane: %x\n" .LC9: .string "die gap: %x\n" .LC10: .string "lsbMode: %x\n" .LC11: .string "ReadRetryMode: %x\n" .LC12: .string "ecc: %x\n" .LC13: .string "idb ecc: %x\n" .LC14: .string "OptMode: %x\n" .LC15: .string "g_nand_max_die: %x\n" .LC16: .string "Cache read enable: %x\n" .LC17: .string "Cache random read enable: %x\n" .LC18: .string "Cache prog enable: %x\n" .LC19: .string "multi read enable: %x\n" .LC20: .string "multi prog enable: %x\n" .LC21: .string "interleave enable: %x\n" .LC22: .string "read retry enable: %x\n" .LC23: .string "randomizer enable: %x\n" .LC24: .string "SDR enable: %x\n" .LC25: .string "ONFI enable: %x\n" .LC26: .string "TOGGLE enable: %x\n" .LC27: .string "g_flash_slc_mode: %x %x\n" .LC28: .string "MultiPlaneProgCmd: %x %x\n" .LC29: .string "MultiPlaneReadCmd: %x %x\n" .LC30: .string "g_flash_toggle_mode_en: %x\n" .section .rodata.nandc_init.str1.1,"aMS",@progbits,1 .LC95: .string "...%s enter... %p\n" .LC96: .string "0:%x %x %x %x %x\n" .LC97: .string "g_nandc_ver...%d\n" .section .rodata.nandc_xfer.str1.1,"aMS",@progbits,1 .LC109: .string "dqs data abort %x\n" .LC110: .string "dqs data timeout %x\n" .LC111: .string "xfer error %x\n" .section .rodata.nandc_xfer_done.str1.1,"aMS",@progbits,1 .LC104: .string "flash_abort_clear = %d\n" .LC105: .string "%d mtrans_cnt = %d page_num = %d\n" .LC106: .string "%d flReg.d32=%x %x\n" .LC107: .string "nandc:" .LC108: .string "nandc_xfer_done read error %x\n" .section .rodata.pm_alloc_new_blk.str1.1,"aMS",@progbits,1 .LC172: .string "pm_alloc_new_blk: %x %x %x %x\n" .section .rodata.pm_free_sblk.str1.1,"aMS",@progbits,1 .LC92: .string "GC PM block %x %x %x %d\n" .LC93: .string "ftl_free_no_use_map_blk %x %x %x %d\n" .section .rodata.pm_init.str1.1,"aMS",@progbits,1 .LC209: .string "pm_init posr %x %x %x\n" .LC210: .string "pm_init recovery %x %x %x\n" .LC211: .string "pm_init hash %x error\n" .section .rodata.pm_log2phys.str1.1,"aMS",@progbits,1 .LC212: .string "pm_log2phys lpn = %d, max lpn = %d\n" .section .rodata.pm_ppa_update_check.str1.1,"aMS",@progbits,1 .LC203: .string "%s w error lpn = %x, max ppa = %d\n" .section .rodata.pm_write_page.str1.1,"aMS",@progbits,1 .LC173: .string "pm_write_page write error: %x\n" .section .rodata.print_ftl_debug_info.str1.1,"aMS",@progbits,1 .LC71: .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC72: .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC73: .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC74: .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC75: .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC76: .string "swl : %x %x %x %x %x %x\n" .section .rodata.print_gc_debug_info.str1.1,"aMS",@progbits,1 .LC56: .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .section .rodata.print_list_info.str1.1,"aMS",@progbits,1 .LC63: .string "list count:%p %d\n" .LC64: .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .section .rodata.queue_wait_first_req_completed.str1.1,"aMS",@progbits,1 .LC137: .string "read: %x %x %x %x\n" .LC138: .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" .LC139: .string "prog end %x %x error_ecc %d %d\n" .LC140: .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" .LC141: .string "dp prog end %x %x error_ecc %d %d\n" .section .rodata.random_seed,"a",@progbits .align 3 .set .LANCHOR54,. + 0 .type random_seed, %object .size random_seed, 256 random_seed: .hword 22378 .hword 1512 .hword 25245 .hword 17827 .hword 25756 .hword 19440 .hword 9026 .hword 10030 .hword 29528 .hword 20467 .hword 29676 .hword 24432 .hword 31328 .hword 6872 .hword 13426 .hword 13842 .hword 8783 .hword 1108 .hword 782 .hword 28837 .hword 30729 .hword 9505 .hword 18676 .hword 23085 .hword 18730 .hword 1085 .hword 32609 .hword 14697 .hword 20858 .hword 15170 .hword 30365 .hword 1607 .hword 32298 .hword 4995 .hword 18905 .hword 1976 .hword 9592 .hword 20204 .hword 17443 .hword 13615 .hword 23330 .hword 29369 .hword 13947 .hword 9398 .hword 32398 .hword 8984 .hword 27600 .hword 21785 .hword 6019 .hword 6311 .hword 31598 .hword 30210 .hword 19327 .hword 13896 .hword 11347 .hword 27545 .hword 3107 .hword 26575 .hword 32270 .hword 19852 .hword 20601 .hword 8349 .hword 9290 .hword 29819 .hword 13579 .hword 3661 .hword 28676 .hword 27331 .hword 32574 .hword 8693 .hword 31253 .hword 9081 .hword 5399 .hword 6842 .hword 20087 .hword 5537 .hword 1274 .hword 11617 .hword 9530 .hword 4866 .hword 8035 .hword 23219 .hword 1178 .hword 23272 .hword 7383 .hword 18944 .hword 12488 .hword 12871 .hword 29340 .hword 20532 .hword 11022 .hword 22514 .hword 228 .hword 22363 .hword 24978 .hword 14584 .hword 12138 .hword 3092 .hword 17916 .hword 16863 .hword 14554 .hword 31457 .hword 29474 .hword 25311 .hword 24121 .hword 3684 .hword 28037 .hword 22865 .hword 22839 .hword 25217 .hword 13217 .hword 27186 .hword 14938 .hword 11180 .hword 29754 .hword 24180 .hword 15150 .hword 32455 .hword 20434 .hword 23848 .hword 29983 .hword 16120 .hword 14769 .hword 20041 .hword 29803 .hword 28406 .hword 17598 .hword 28087 .section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1 .LC254: .string "zftl_init %x\n" .section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1 .LC98: .string "%s %p + 0x%x:" .LC99: .string "%x " .LC100: .string "" .LC101: .string "%s\n" .section .rodata.samsung_14nm_mlc_rr,"a",@progbits .align 3 .set .LANCHOR168,. + 0 .type samsung_14nm_mlc_rr, %object .size samsung_14nm_mlc_rr, 104 samsung_14nm_mlc_rr: .byte 0 .byte 0 .byte 0 .byte 0 .byte -4 .byte 3 .byte -4 .byte -6 .byte 6 .byte 0 .byte 6 .byte -10 .byte -10 .byte 4 .byte -10 .byte 16 .byte 12 .byte -4 .byte 12 .byte 8 .byte -16 .byte 10 .byte -16 .byte 24 .byte 18 .byte -14 .byte 18 .byte -4 .byte -22 .byte -16 .byte -22 .byte -8 .byte 24 .byte -9 .byte 24 .byte 8 .byte -28 .byte -4 .byte -28 .byte 16 .byte 30 .byte 10 .byte 30 .byte 10 .byte -34 .byte 6 .byte -34 .byte 0 .byte 36 .byte -8 .byte 36 .byte -8 .byte -40 .byte -2 .byte -40 .byte -20 .byte -46 .byte -4 .byte -46 .byte -30 .byte 3 .byte 0 .byte 3 .byte -3 .byte -2 .byte -4 .byte -2 .byte -6 .byte -4 .byte -4 .byte -4 .byte -10 .byte -6 .byte -8 .byte -6 .byte -14 .byte -9 .byte -8 .byte -9 .byte -18 .byte -52 .byte 22 .byte -52 .byte 10 .byte 42 .byte 4 .byte 42 .byte 4 .byte 48 .byte -9 .byte 48 .byte 4 .byte -58 .byte 12 .byte -58 .byte 0 .byte -64 .byte -24 .byte -64 .byte -6 .byte 9 .byte 18 .byte 9 .byte 8 .section .rodata.samsung_14nm_slc_rr,"a",@progbits .align 3 .set .LANCHOR167,. + 0 .type samsung_14nm_slc_rr, %object .size samsung_14nm_slc_rr, 26 samsung_14nm_slc_rr: .byte 0 .byte 10 .byte -10 .byte 20 .byte -20 .byte 30 .byte -30 .byte 40 .byte -40 .byte 50 .byte -50 .byte 60 .byte -60 .byte -70 .byte -80 .byte -90 .byte -100 .byte -110 .byte -120 .byte -9 .byte 70 .byte 80 .byte 90 .byte -125 .byte -115 .byte 100 .section .rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1 .LC118: .string "samsung SRR %d row=%x, status=%d\n" .LC119: .string "samsung TRR %d row=%x, status=%d\n" .LC120: .string "samsung RR %d row=%x,count %d,status=%d\n" .section .rodata.sandisk_prog_test_bad_block.str1.1,"aMS",@progbits,1 .LC40: .string "bad block test:%x %x\n" .section .rodata.sblk_mlc_dump_prog.str1.1,"aMS",@progbits,1 .LC135: .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" .section .rodata.sblk_prog_page.str1.1,"aMS",@progbits,1 .LC142: .string "sblk_prog_page ppa = %x, count = %d\n" .section .rodata.toshiba_15ref_value,"a",@progbits .align 3 .set .LANCHOR14,. + 0 .type toshiba_15ref_value, %object .size toshiba_15ref_value, 95 toshiba_15ref_value: .byte 4 .byte 5 .byte 6 .byte 7 .byte 13 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 2 .byte 4 .byte 2 .byte 0 .byte 0 .byte 8 .byte 8 .byte 0 .byte 0 .byte 0 .byte 124 .byte 0 .byte 124 .byte 124 .byte 0 .byte 122 .byte 0 .byte 122 .byte 122 .byte 0 .byte 11 .byte 126 .byte 118 .byte 116 .byte 0 .byte 120 .byte 2 .byte 120 .byte 122 .byte 0 .byte 126 .byte 4 .byte 126 .byte 122 .byte 0 .byte 16 .byte 118 .byte 114 .byte 112 .byte 0 .byte 118 .byte 4 .byte 118 .byte 120 .byte 0 .byte 4 .byte 4 .byte 4 .byte 118 .byte 0 .byte 2 .byte 0 .byte 126 .byte 124 .byte 0 .byte 6 .byte 10 .byte 6 .byte 2 .byte 0 .byte 116 .byte 124 .byte 116 .byte 118 .byte 0 .byte 4 .byte 4 .byte 124 .byte 126 .byte 0 .byte 0 .byte 124 .byte 120 .byte 120 .byte 0 .byte 124 .byte 118 .byte 116 .byte 114 .byte 0 .section .rodata.toshiba_3D_slc_value,"a",@progbits .align 3 .set .LANCHOR38,. + 0 .type toshiba_3D_slc_value, %object .size toshiba_3D_slc_value, 11 toshiba_3D_slc_value: .byte -117 .byte 0 .byte -8 .byte 8 .byte -16 .byte -24 .byte 24 .byte -40 .byte 40 .byte -56 .byte 56 .section .rodata.toshiba_3D_tlc_value,"a",@progbits .align 3 .set .LANCHOR37,. + 0 .type toshiba_3D_tlc_value, %object .size toshiba_3D_tlc_value, 399 toshiba_3D_tlc_value: .byte -119 .byte -119 .byte -119 .byte -119 .byte -118 .byte -118 .byte -118 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 5 .byte -2 .byte -1 .byte 0 .byte -3 .byte -2 .byte 6 .byte -9 .byte -12 .byte -9 .byte -7 .byte -13 .byte -12 .byte -7 .byte -6 .byte -15 .byte -15 .byte -2 .byte -12 .byte -16 .byte -6 .byte -2 .byte -19 .byte -19 .byte -6 .byte -4 .byte -12 .byte -14 .byte -2 .byte -11 .byte -23 .byte -34 .byte -4 .byte -20 .byte -22 .byte -2 .byte -7 .byte -31 .byte -30 .byte -12 .byte -20 .byte -18 .byte 2 .byte -15 .byte -19 .byte -36 .byte -12 .byte -28 .byte -34 .byte -6 .byte -15 .byte -11 .byte 2 .byte -12 .byte -8 .byte -2 .byte 2 .byte -3 .byte -7 .byte -10 .byte -4 .byte -8 .byte -6 .byte -6 .byte -11 .byte -27 .byte -38 .byte -16 .byte -12 .byte -2 .byte 2 .byte -7 .byte -31 .byte -22 .byte -4 .byte -16 .byte -22 .byte -7 .byte -31 .byte -23 .byte -22 .byte -28 .byte -28 .byte -26 .byte 2 .byte -7 .byte -11 .byte -14 .byte -8 .byte -12 .byte -10 .byte -10 .byte -27 .byte -25 .byte -22 .byte -20 .byte -28 .byte -22 .byte -7 .byte -23 .byte -29 .byte -34 .byte -24 .byte -32 .byte -22 .byte -10 .byte -11 .byte -29 .byte -18 .byte -12 .byte -24 .byte -22 .byte 6 .byte 1 .byte -3 .byte -6 .byte 0 .byte -4 .byte -2 .byte 10 .byte -3 .byte -7 .byte -6 .byte 4 .byte -4 .byte -2 .byte -10 .byte -23 .byte -39 .byte -22 .byte -19 .byte -24 .byte -18 .byte -14 .byte -23 .byte -29 .byte -30 .byte -15 .byte -30 .byte -30 .byte -7 .byte -27 .byte -35 .byte -26 .byte -15 .byte -24 .byte -26 .byte 6 .byte -11 .byte 5 .byte -2 .byte -16 .byte -16 .byte -2 .byte -2 .byte -15 .byte -15 .byte -20 .byte -8 .byte -16 .byte -18 .byte 6 .byte 5 .byte -15 .byte -2 .byte -24 .byte -28 .byte -22 .byte 10 .byte -15 .byte -3 .byte -30 .byte -8 .byte -24 .byte -30 .byte -10 .byte -27 .byte -19 .byte -30 .byte -12 .byte -16 .byte -10 .byte 14 .byte -19 .byte -3 .byte -30 .byte 4 .byte 4 .byte 6 .byte 2 .byte 1 .byte -3 .byte -10 .byte -8 .byte -4 .byte -6 .byte -2 .byte -15 .byte -11 .byte -26 .byte -8 .byte -20 .byte -30 .byte 6 .byte -19 .byte -3 .byte -46 .byte 0 .byte 0 .byte 2 .byte 6 .byte 9 .byte 5 .byte 2 .byte 4 .byte 8 .byte 6 .byte 8 .byte 9 .byte 9 .byte 6 .byte 8 .byte 8 .byte 6 .byte 10 .byte 13 .byte 9 .byte 6 .byte 8 .byte 12 .byte 10 .byte 2 .byte 5 .byte 1 .byte -2 .byte 0 .byte 0 .byte 6 .byte 12 .byte 1 .byte 13 .byte 2 .byte 12 .byte 12 .byte 14 .byte -12 .byte -14 .byte -20 .byte -18 .byte -16 .byte -16 .byte -14 .byte -12 .byte -10 .byte -21 .byte -14 .byte -12 .byte -12 .byte -10 .byte -12 .byte -18 .byte -22 .byte -24 .byte -18 .byte -18 .byte -18 .byte -12 .byte -14 .byte -23 .byte -20 .byte -20 .byte -20 .byte -20 .byte -12 .byte -24 .byte -24 .byte -30 .byte -24 .byte -28 .byte -28 .byte -12 .byte -26 .byte -25 .byte -34 .byte -24 .byte -24 .byte -24 .byte -12 .byte -13 .byte -26 .byte -20 .byte -14 .byte -18 .byte -18 .byte -12 .byte -15 .byte -27 .byte -22 .byte -20 .byte -24 .byte -22 .byte -12 .byte -21 .byte -28 .byte -28 .byte -24 .byte -26 .byte -24 .byte 20 .byte 16 .byte 6 .byte 10 .byte 16 .byte 12 .byte 12 .byte 16 .byte 16 .byte 8 .byte 8 .byte 12 .byte 12 .byte 12 .byte 18 .byte 18 .byte 10 .byte 8 .byte 14 .byte 14 .byte 14 .byte 16 .byte 14 .byte 6 .byte 6 .byte 12 .byte 14 .byte 8 .byte 20 .byte 18 .byte 8 .byte 6 .byte 14 .byte 14 .byte 10 .byte 20 .byte 20 .byte 6 .byte 10 .byte 10 .byte 12 .byte 12 .byte 10 .byte 13 .byte 5 .byte 2 .byte 14 .byte 8 .byte 6 .byte 6 .byte 13 .byte 9 .byte 4 .byte 14 .byte 10 .byte 10 .byte 10 .byte 13 .byte 9 .byte 6 .byte 8 .byte 12 .byte 10 .byte 2 .byte 5 .byte 1 .byte -2 .byte 0 .byte 0 .byte 6 .byte 12 .byte 1 .byte 13 .byte 2 .byte 12 .byte 12 .byte 14 .section .rodata.toshiba_3d_read_retrial.str1.1,"aMS",@progbits,1 .LC114: .string "toshiba SRR %d row=%x, status=%d\n" .LC115: .string "toshiba TRR %d row=%x, status=%d\n" .LC116: .string "toshiba RR %d row=%x,count %d,status=%d\n" .section .rodata.toshiba_A19ref_value,"a",@progbits .align 3 .set .LANCHOR15,. + 0 .type toshiba_A19ref_value, %object .size toshiba_A19ref_value, 45 toshiba_A19ref_value: .byte 4 .byte 5 .byte 6 .byte 7 .byte 13 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 4 .byte 4 .byte 124 .byte 126 .byte 0 .byte 0 .byte 124 .byte 120 .byte 120 .byte 0 .byte 124 .byte 118 .byte 116 .byte 114 .byte 0 .byte 8 .byte 8 .byte 0 .byte 0 .byte 0 .byte 11 .byte 126 .byte 118 .byte 116 .byte 0 .byte 16 .byte 118 .byte 114 .byte 112 .byte 0 .byte 2 .byte 0 .byte 126 .byte 124 .byte 0 .section .rodata.toshiba_ref_value,"a",@progbits .align 3 .set .LANCHOR17,. + 0 .type toshiba_ref_value, %object .size toshiba_ref_value, 8 toshiba_ref_value: .byte 0 .byte 4 .byte 124 .byte 120 .byte 116 .byte 8 .byte 12 .byte 112 .section .rodata.ymtc_3D_slc_value,"a",@progbits .align 3 .set .LANCHOR42,. + 0 .type ymtc_3D_slc_value, %object .size ymtc_3D_slc_value, 10 ymtc_3D_slc_value: .byte 0 .byte -8 .byte 8 .byte -16 .byte -20 .byte 24 .byte -26 .byte 40 .byte -12 .byte 56 .section .rodata.ymtc_3D_tlc_value,"a",@progbits .align 3 .set .LANCHOR41,. + 0 .type ymtc_3D_tlc_value, %object .size ymtc_3D_tlc_value, 357 ymtc_3D_tlc_value: .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -10 .byte -10 .byte -6 .byte -6 .byte -2 .byte 2 .byte 2 .byte -6 .byte -6 .byte -4 .byte -4 .byte -4 .byte -6 .byte -8 .byte 6 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -2 .byte -2 .byte -2 .byte -4 .byte -4 .byte -6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -11 .byte -2 .byte 2 .byte 4 .byte 4 .byte 6 .byte 6 .byte 6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -6 .byte -8 .byte -14 .byte -6 .byte -15 .byte -11 .byte 2 .byte -12 .byte -8 .byte -2 .byte 2 .byte -3 .byte -7 .byte -10 .byte -4 .byte -8 .byte -6 .byte -18 .byte -18 .byte -14 .byte -14 .byte -10 .byte -5 .byte -5 .byte -14 .byte -14 .byte -12 .byte -12 .byte -12 .byte -13 .byte -15 .byte -2 .byte -8 .byte -8 .byte -8 .byte -8 .byte -7 .byte -7 .byte -10 .byte -10 .byte -10 .byte -12 .byte -12 .byte -13 .byte -13 .byte -14 .byte -14 .byte -14 .byte -14 .byte -14 .byte -13 .byte -18 .byte -10 .byte -6 .byte -4 .byte -4 .byte -2 .byte -1 .byte -1 .byte -14 .byte -14 .byte -14 .byte -14 .byte -14 .byte -15 .byte -21 .byte -12 .byte -11 .byte -7 .byte -7 .byte -3 .byte 1 .byte 1 .byte -8 .byte -7 .byte -5 .byte -5 .byte -5 .byte -7 .byte -9 .byte 4 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -4 .byte -3 .byte -3 .byte -5 .byte -5 .byte -7 .byte -7 .byte -8 .byte -7 .byte -7 .byte -7 .byte -7 .byte -7 .byte -12 .byte -4 .byte 1 .byte 3 .byte 3 .byte 5 .byte 5 .byte 5 .byte -8 .byte -7 .byte -7 .byte -7 .byte -7 .byte -9 .byte -15 .byte 2 .byte -7 .byte -11 .byte -14 .byte -8 .byte -12 .byte -10 .byte 6 .byte 1 .byte -3 .byte -6 .byte 0 .byte -4 .byte -2 .byte 10 .byte -3 .byte -7 .byte -6 .byte 4 .byte -4 .byte -2 .byte -10 .byte -23 .byte -39 .byte -22 .byte -19 .byte -24 .byte -18 .byte -7 .byte -27 .byte -35 .byte -26 .byte -15 .byte -24 .byte -26 .byte 6 .byte -11 .byte 5 .byte -2 .byte -16 .byte -16 .byte -2 .byte -2 .byte -15 .byte -15 .byte -20 .byte -8 .byte -16 .byte -18 .byte 2 .byte 1 .byte -3 .byte -10 .byte -8 .byte -4 .byte -6 .byte -2 .byte -15 .byte -11 .byte -26 .byte -8 .byte -20 .byte -30 .byte 6 .byte -19 .byte -3 .byte -46 .byte 0 .byte 0 .byte 2 .byte 6 .byte 9 .byte 5 .byte 2 .byte 4 .byte 8 .byte 6 .byte 8 .byte 9 .byte 9 .byte 6 .byte 8 .byte 8 .byte 6 .byte 10 .byte 13 .byte 9 .byte 6 .byte 8 .byte 12 .byte 10 .byte 2 .byte 5 .byte 1 .byte -2 .byte 0 .byte 0 .byte 6 .byte 12 .byte 1 .byte 13 .byte 2 .byte 12 .byte 12 .byte 14 .byte -12 .byte -14 .byte -20 .byte -18 .byte -16 .byte -16 .byte -14 .byte -12 .byte -10 .byte -21 .byte -14 .byte -12 .byte -12 .byte -10 .byte -12 .byte -18 .byte -22 .byte -24 .byte -18 .byte -18 .byte -18 .byte -12 .byte -14 .byte -23 .byte -20 .byte -20 .byte -20 .byte -20 .byte 16 .byte 16 .byte 8 .byte 8 .byte 12 .byte 12 .byte 12 .byte 18 .byte 18 .byte 10 .byte 8 .byte 14 .byte 14 .byte 14 .byte 16 .byte 14 .byte 6 .byte 6 .byte 12 .byte 14 .byte 8 .byte 10 .byte 13 .byte 5 .byte 2 .byte 14 .byte 8 .byte 6 .byte 6 .byte 13 .byte 9 .byte 4 .byte 14 .byte 10 .byte 10 .byte 10 .byte 13 .byte 9 .byte 6 .byte 8 .byte 12 .byte 10 .byte 2 .byte 5 .byte 1 .byte -2 .byte 0 .byte 0 .byte 6 .byte 12 .byte 1 .byte 13 .byte 2 .byte 12 .byte 12 .byte 14 .section .rodata.ymtc_3d_read_retrial.str1.1,"aMS",@progbits,1 .LC117: .string "YMTC RR %d row=%x,count %d,status=%d\n" .section .rodata.ymtc_flash_tlc_page_prog.str1.1,"aMS",@progbits,1 .LC131: .string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n" .section .rodata.zftl_discard.str1.1,"aMS",@progbits,1 .LC256: .string "ftl_discard:(%x, %x, %x, %x)\n" .section .rodata.zftl_do_gc.str1.1,"aMS",@progbits,1 .LC239: .string "gc %d: %d %d %d %d %d %d %d\n" .LC240: .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" .LC241: .string "gc free %x, %d\n" .section .rodata.zftl_gc_get_free_sblk.str1.1,"aMS",@progbits,1 .LC59: .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC60: .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC61: .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" .section .rodata.zftl_get_free_sblk.str1.1,"aMS",@progbits,1 .LC62: .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" .section .rodata.zftl_init.str1.1,"aMS",@progbits,1 .LC242: .string "FTL version: 6.0.24 20210107" .LC243: .string "_c_user_data_density := %d\n" .LC244: .string "_c_totle_phy_density := %d\n" .LC245: .string "_c_totle_log_page := %d\n" .LC246: .string "_c_totle_data_density := %d\n" .LC247: .string "_c_ftl_pm_page_num := %d\n" .LC248: .string "_c_ftl_byte_pre_page := %d\n" .LC249: .string "_c_max_pm_sblk := %d\n" .LC250: .string "_min_slc_super_block := %d\n" .LC251: .string "_max_xlc_super_block := %d\n" .LC252: .string "gp_ftl_ext_info %p %p %p\n" .LC253: .string "flash info size: %d %d %d\n" .section .rodata.zftl_read.str1.1,"aMS",@progbits,1 .LC228: .string "ftl_read %x %x %x\n" .LC229: .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC230: .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" .section .rodata.zftl_sblk_list_init.str1.1,"aMS",@progbits,1 .LC91: .string "free blk vpn error: %x %x\n" .section .rodata.zftl_write.str1.1,"aMS",@progbits,1 .LC255: .string "ftlwrite %x %x %x %x\n" .hidden free