diff --git a/drivers/rk_nand/rk_nand_blk.c b/drivers/rk_nand/rk_nand_blk.c index 0e7a297c131f..e38182f2caae 100644 --- a/drivers/rk_nand/rk_nand_blk.c +++ b/drivers/rk_nand/rk_nand_blk.c @@ -234,7 +234,7 @@ static int nand_blktrans_thread(void *arg) int req_empty_times = 0; spin_lock_irq(rq->queue_lock); - rk_ftl_gc_jiffies = HZ * 5; + rk_ftl_gc_jiffies = HZ / 10; /* do garbage collect after 100ms */ rk_ftl_gc_do = 0; rk_ftl_gc_timeout.expires = jiffies + rk_ftl_gc_jiffies; add_timer(&rk_ftl_gc_timeout); @@ -477,8 +477,9 @@ static int nand_prase_cmdline_part(struct nand_part *pdisk_part) > cap_size) { pdisk_part[i].size = cap_size - pdisk_part[i].offset; - pr_err("partition config error....\n"); - if (pdisk_part[i].size) + pr_err("partition error....max cap:%x\n", + cap_size); + if (!pdisk_part[i].size) return i; else return (i + 1); diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 1d118e76115c..0e79fc26ee4d 100644 --- a/drivers/rk_nand/rk_zftl_arm64.S +++ b/drivers/rk_nand/rk_zftl_arm64.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2018-04-11 + * date: 2018-05-11 * function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -135,7 +135,7 @@ _list_remove_node: adrp x1, .LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 184 + mov w2, 188 bl printk .L21: ldr x0, [x22] @@ -360,64 +360,64 @@ _insert_free_list: cmp w4, w1 bls .L43 ldrh w3, [x2] - mov w5, 6 + mov w7, 6 add w3, w3, 1 strh w3, [x2] - umull x11, w1, w5 + umull x11, w1, w7 ldr x12, [x6,8] mov w2, -1 - add x7, x12, x11 - strh w2, [x7,2] + add x5, x12, x11 + strh w2, [x5,2] strh w2, [x12,x11] ldr x2, [x0] cbz x2, .L50 ldr x9, [x6,64] ubfiz x8, x1, 2, 16 - ldr x13, [x6,8] + ldrh w13, [x6,72] + mov w16, 65535 + ldr x14, [x6,8] mov x6, -6148914691236517206 - mov w15, 65535 ldr w4, [x9,x8] ubfx x3, x4, 11, 8 ldrh w4, [x9,x8] - mov w8, w5 + mov w8, w7 ubfx x4, x4, 0, 11 - add w4, w4, w3, lsl 3 - sub x3, x2, x13 + madd w4, w13, w3, w4 + sub x3, x2, x14 asr x3, x3, 1 - and w4, w4, 4095 + uxth w4, w4 madd x3, x6, x3, x3 uxth w3, w3 .L48: - ubfiz x14, x3, 2, 16 - ldr w5, [x9,x14] - ubfx x6, x5, 11, 8 - ldrh w5, [x9,x14] - ubfx x5, x5, 0, 11 - add w5, w5, w6, lsl 3 - and w5, w5, 4095 - cmp w5, w4 - bcs .L46 - ldrh w5, [x2] - cmp w5, w15 + ubfiz x15, x3, 2, 16 + ldr w6, [x9,x15] + ubfx x7, x6, 11, 8 + ldrh w6, [x9,x15] + ubfx x6, x6, 0, 11 + madd w6, w13, w7, w6 + cmp w4, w6, uxth + bls .L46 + ldrh w6, [x2] + cmp w6, w16 bne .L47 - strh w3, [x7,2] + strh w3, [x5,2] strh w1, [x2] b .L43 .L47: - umull x2, w5, w8 - mov w3, w5 - add x2, x13, x2 + umull x2, w6, w8 + mov w3, w6 + add x2, x14, x2 b .L48 .L46: ldrh w4, [x2,2] - strh w4, [x7,2] + strh w4, [x5,2] strh w3, [x12,x11] ldr x3, [x0] cmp x2, x3 bne .L49 strh w1, [x2,2] .L50: - str x7, [x0] + str x5, [x0] b .L43 .L49: ldrh w0, [x2,2] @@ -433,105 +433,119 @@ _insert_free_list: .align 2 .type _insert_data_list, %function _insert_data_list: - sub sp, sp, #16 - adrp x3, .LANCHOR0 - add x4, x3, :lo12:.LANCHOR0 + sub sp, sp, #32 + adrp x5, .LANCHOR0 + add x10, x5, :lo12:.LANCHOR0 uxth w1, w1 - mov x10, x3 - str x19, [sp] - ldrh w5, [x4,56] - cmp w5, w1 + stp x19, x20, [sp] + str x21, [sp,16] + ldrh w3, [x10,56] + cmp w3, w1 bls .L51 ldrh w3, [x2] - mov w9, 6 + mov w8, 6 add w3, w3, 1 strh w3, [x2] - umull x11, w1, w9 - ldr x12, [x4,8] + umull x8, w1, w8 + ldr x14, [x10,8] mov w2, -1 - add x6, x12, x11 + add x6, x14, x8 strh w2, [x6,2] - strh w2, [x12,x11] + strh w2, [x14,x8] ldr x2, [x0] - cbz x2, .L66 - ubfiz x3, x1, 1, 16 - ldr x15, [x4,72] - ldr x14, [x4,8] - mov x5, -6148914691236517206 - ldrh w18, [x4,56] + cbz x2, .L71 + uxtw x9, w1 + ldr x16, [x10,80] + ldr x12, [x10,64] + ldrh w11, [x6,4] + ldrh w4, [x16,x9,lsl 1] + lsl x9, x9, 2 + ldrh w17, [x10,72] + ldr w3, [x12,x9] + mul w4, w4, w11 + ubfx x7, x3, 11, 8 + ldrh w3, [x12,x9] + and w3, w3, 2047 + cbz w4, .L55 + madd w3, w17, w7, w3 + add w4, w4, w3, uxth +.L55: + add x7, x5, :lo12:.LANCHOR0 + mov x9, -6148914691236517206 + cmp w11, wzr + mov w20, 65535 + csinv w4, w4, wzr, ne + mov w21, 6 + ldr x18, [x7,8] + ldrh w19, [x7,56] mov w7, 0 - ldrh w16, [x15,x3] - mov w19, 65535 - ldrh w3, [x6,4] - ldr x17, [x4,64] - cmp w3, wzr - mul w13, w16, w3 - sub x3, x2, x14 + sub x3, x2, x18 asr x3, x3, 1 - csinv w13, w13, wzr, ne - madd x3, x5, x3, x3 + madd x3, x9, x3, x3 uxth w3, w3 .L62: add w7, w7, 1 cmp w1, w3 uxth w7, w7 beq .L51 - cmp w7, w18 + cmp w7, w19 bhi .L51 - uxtw x8, w3 - ldrh w5, [x2,4] - cmp w5, wzr - ldrh w4, [x15,x8,lsl 1] - mul w4, w4, w5 - csinv w4, w4, wzr, ne - cmp w4, w13 - bne .L58 - lsl x8, x8, 2 - ldr w4, [x17,x8] - ubfx x5, x4, 11, 8 - ldrh w4, [x17,x8] - ubfx x4, x4, 0, 11 - add w4, w4, w5, lsl 3 - and w4, w4, 4095 - cmp w4, w16 - bcc .L60 + uxtw x11, w3 + ldrh w15, [x2,4] + ldrh w13, [x16,x11,lsl 1] + lsl x11, x11, 2 + ldr w9, [x12,x11] + mul w13, w13, w15 + ubfx x10, x9, 11, 8 + ldrh w9, [x12,x11] + and w9, w9, 2047 + cbz w13, .L58 + mov w11, -1 + cbz w15, .L59 + madd w9, w17, w10, w9 + add w11, w13, w9, uxth b .L59 .L58: - bhi .L59 -.L60: - ldrh w4, [x2] - cmp w4, w19 + cbnz w15, .L64 + mov w11, -1 +.L59: + cmp w11, w4 + bhi .L60 +.L64: + ldrh w9, [x2] + cmp w9, w20 bne .L61 strh w3, [x6,2] strh w1, [x2] b .L51 .L61: - umull x2, w4, w9 - mov w3, w4 - add x2, x14, x2 + umull x2, w9, w21 + mov w3, w9 + add x2, x18, x2 b .L62 -.L59: +.L60: ldrh w4, [x2,2] strh w4, [x6,2] - strh w3, [x12,x11] + strh w3, [x14,x8] ldr x3, [x0] cmp x2, x3 bne .L63 strh w1, [x2,2] -.L66: +.L71: str x6, [x0] b .L51 .L63: ldrh w0, [x2,2] - add x3, x10, :lo12:.LANCHOR0 - mov w4, 6 - ldr x3, [x3,8] - umull x0, w0, w4 + add x5, x5, :lo12:.LANCHOR0 + mov w3, 6 + umull x0, w0, w3 + ldr x3, [x5,8] strh w1, [x3,x0] strh w1, [x2,2] .L51: - ldr x19, [sp] - add sp, sp, 16 + ldp x19, x20, [sp] + ldr x21, [sp,16] + add sp, sp, 32 ret .size _insert_data_list, .-_insert_data_list .align 2 @@ -539,28 +553,28 @@ _insert_data_list: _list_get_gc_head_node.isra.5: uxth w1, w1 mov w2, 65535 - cbz x0, .L73 + cbz x0, .L78 adrp x2, .LANCHOR0+8 mov w4, 65535 mov w5, 6 ldr x3, [x2,#:lo12:.LANCHOR0+8] -.L69: - cbz w1, .L70 +.L74: + cbz w1, .L75 ldrh w2, [x0] cmp w2, w4 - beq .L73 + beq .L78 umull x2, w2, w5 sub w1, w1, #1 add x0, x3, x2 uxth w1, w1 - b .L69 -.L70: + b .L74 +.L75: sub x0, x0, x3 mov x1, -6148914691236517206 asr x0, x0, 1 madd x0, x1, x0, x0 uxth w2, w0 -.L73: +.L78: mov w0, w2 ret .size _list_get_gc_head_node.isra.5, .-_list_get_gc_head_node.isra.5 @@ -577,52 +591,52 @@ _list_update_data_list: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x20, x1 - ldr x3, [x4,80] + ldr x3, [x4,88] ldrh w5, [x3,16] cmp w5, w19 - beq .L74 + beq .L79 ldrh w1, [x3,48] cmp w1, w19 - beq .L74 + beq .L79 ldrh w1, [x3,80] cmp w1, w19 - beq .L74 + beq .L79 mov w23, 6 ldr x25, [x4,8] ldr x1, [x0] umull x23, w19, w23 add x24, x25, x23 cmp x24, x1 - beq .L74 + beq .L79 mov x21, x0 ldrh w0, [x24,2] mov w1, 65535 mov x22, x2 cmp w0, w1 - bne .L78 + bne .L83 ldrh w1, [x25,x23] cmp w1, w0 - bne .L78 + bne .L83 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 24 - mov w2, 251 + mov w2, 255 bl printk -.L78: +.L83: ldrh w3, [x24,2] mov w0, 65535 cmp w3, w0 - bne .L79 + bne .L84 ldrh w0, [x25,x23] cmp w0, w3 - beq .L74 -.L79: + beq .L79 +.L84: add x1, x20, :lo12:.LANCHOR0 ubfiz x0, x19, 1, 16 mov x5, -6148914691236517206 - ldr x4, [x1,72] + ldr x4, [x1,80] ldr x1, [x1,8] ldrh w2, [x4,x0] ldrh w0, [x24,4] @@ -640,7 +654,7 @@ _list_update_data_list: mul w0, w0, w1 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L74 + bcs .L79 mov x0, x21 mov w1, w19 mov x2, x22 @@ -649,7 +663,7 @@ _list_update_data_list: mov w1, w19 mov x2, x22 bl _insert_data_list -.L74: +.L79: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -657,10 +671,22 @@ _list_update_data_list: ldp x29, x30, [sp], 80 ret .size _list_update_data_list, .-_list_update_data_list + .align 2 + .type zftl_get_gc_node.part.13, %function +zftl_get_gc_node.part.13: + uxth w1, w0 + adrp x0, .LANCHOR0+96 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x0, [x0,#:lo12:.LANCHOR0+96] + bl _list_get_gc_head_node.isra.5 + ldp x29, x30, [sp], 16 + ret + .size zftl_get_gc_node.part.13, .-zftl_get_gc_node.part.13 .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.34, %function -rk_simple_strtoull.constprop.34: + .type rk_simple_strtoull.constprop.33, %function +rk_simple_strtoull.constprop.33: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp,16] @@ -670,56 +696,56 @@ rk_simple_strtoull.constprop.34: mov x23, x1 ldrb w0, [x0] cmp w0, 48 - bne .L95 + bne .L101 ldrb w0, [x20,1] add x19, x20, 1 mov w21, 8 orr w0, w0, 32 uxtb w0, w0 cmp w0, 120 - bne .L85 + bne .L91 ldrb w0, [x20,2] bl isxdigit - cbz w0, .L85 + cbz w0, .L91 add x19, x20, 2 mov w21, 16 - b .L85 -.L95: + b .L91 +.L101: mov x19, x20 mov w21, 10 -.L85: +.L91: mov w22, 0 -.L86: +.L92: ldrb w20, [x19] mov w0, w20 bl isxdigit - cbnz w0, .L87 -.L93: - cbz x23, .L99 + cbnz w0, .L93 +.L99: + cbz x23, .L105 str x19, [x23] - b .L99 -.L87: + b .L105 +.L93: sub w2, w20, #48 cmp w2, 9 - bhi .L100 -.L94: + bhi .L106 +.L100: cmp w2, w21 - bcs .L93 + bcs .L99 madd w22, w22, w21, w2 add x19, x19, 1 - b .L86 -.L100: + b .L92 +.L106: orr w20, w20, 32 sub w2, w20, #87 - b .L94 -.L99: + b .L100 +.L105: mov w0, w22 ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 ret - .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 + .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 .text .align 2 .global nand_flash_print_info @@ -730,18 +756,18 @@ nand_flash_print_info: str x19, [sp,16] adrp x19, .LANCHOR2 ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L102 + tbz x0, 12, .L108 adrp x1, .LANCHOR1 adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC4 add x1, x1, 48 bl printk -.L102: +.L108: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L103 - adrp x0, .LANCHOR0+88 - ldr x6, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L109 + adrp x0, .LANCHOR0+104 + ldr x6, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC5 add x0, x0, :lo12:.LC5 ldrb w1, [x6,1] @@ -751,278 +777,278 @@ nand_flash_print_info: ldrb w5, [x6,5] ldrb w6, [x6,6] bl printk -.L103: +.L109: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L104 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L110 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC6 add x0, x0, :lo12:.LC6 ldrb w1, [x1,8] bl printk -.L104: +.L110: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L105 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L111 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC7 add x0, x0, :lo12:.LC7 ldrb w1, [x1,9] bl printk -.L105: +.L111: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L106 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L112 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC8 add x0, x0, :lo12:.LC8 ldrh w1, [x1,10] bl printk -.L106: +.L112: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L107 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L113 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC9 add x0, x0, :lo12:.LC9 ldrb w1, [x1,12] bl printk -.L107: +.L113: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L108 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L114 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC10 add x0, x0, :lo12:.LC10 ldrb w1, [x1,13] bl printk -.L108: +.L114: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L109 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L115 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC11 add x0, x0, :lo12:.LC11 ldrh w1, [x1,14] bl printk -.L109: +.L115: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L110 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L116 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC12 add x0, x0, :lo12:.LC12 ldrb w1, [x1,23] bl printk -.L110: +.L116: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L111 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L117 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC13 add x0, x0, :lo12:.LC13 ldrb w1, [x1,18] bl printk -.L111: +.L117: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L112 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L118 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC14 add x0, x0, :lo12:.LC14 ldrb w1, [x1,19] bl printk -.L112: +.L118: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L113 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L119 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC15 add x0, x0, :lo12:.LC15 ldrb w1, [x1,20] bl printk -.L113: +.L119: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L114 - adrp x1, .LANCHOR0+96 + tbz x0, 12, .L120 + adrp x1, .LANCHOR0+112 adrp x0, .LC16 add x0, x0, :lo12:.LC16 - ldrb w1, [x1,#:lo12:.LANCHOR0+96] + ldrb w1, [x1,#:lo12:.LANCHOR0+112] bl printk -.L114: +.L120: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L115 - adrp x1, .LANCHOR0+97 + tbz x0, 12, .L121 + adrp x1, .LANCHOR0+113 adrp x0, .LC17 add x0, x0, :lo12:.LC17 - ldrb w1, [x1,#:lo12:.LANCHOR0+97] + ldrb w1, [x1,#:lo12:.LANCHOR0+113] bl printk -.L115: +.L121: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L116 - adrp x0, .LANCHOR0+88 - ldr x1, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L122 + adrp x0, .LANCHOR0+104 + ldr x1, [x0,#:lo12:.LANCHOR0+104] adrp x0, .LC18 add x0, x0, :lo12:.LC18 ldrb w1, [x1,22] bl printk -.L116: +.L122: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L117 - adrp x1, .LANCHOR0+98 + tbz x0, 12, .L123 + adrp x1, .LANCHOR0+114 adrp x0, .LC19 add x0, x0, :lo12:.LC19 - ldrb w1, [x1,#:lo12:.LANCHOR0+98] + ldrb w1, [x1,#:lo12:.LANCHOR0+114] bl printk -.L117: +.L123: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L118 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L124 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC20 add x0, x0, :lo12:.LC20 and w1, w1, 1 bl printk -.L118: +.L124: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L119 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L125 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC21 add x0, x0, :lo12:.LC21 ubfx x1, x1, 1, 1 bl printk -.L119: +.L125: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L120 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L126 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC22 add x0, x0, :lo12:.LC22 ubfx x1, x1, 2, 1 bl printk -.L120: +.L126: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L121 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L127 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC23 add x0, x0, :lo12:.LC23 ubfx x1, x1, 3, 1 bl printk -.L121: +.L127: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L122 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L128 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC24 add x0, x0, :lo12:.LC24 ubfx x1, x1, 4, 1 bl printk -.L122: +.L128: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L123 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L129 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC25 add x0, x0, :lo12:.LC25 ubfx x1, x1, 5, 1 bl printk -.L123: +.L129: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L124 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L130 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC26 add x0, x0, :lo12:.LC26 ubfx x1, x1, 6, 1 bl printk -.L124: +.L130: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L125 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L131 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC27 add x0, x0, :lo12:.LC27 ubfx x1, x1, 7, 1 bl printk -.L125: +.L131: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L126 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L132 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrb w1, [x0,17] adrp x0, .LC28 add x0, x0, :lo12:.LC28 and w1, w1, 1 bl printk -.L126: +.L132: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L127 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L133 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC29 add x0, x0, :lo12:.LC29 ubfx x1, x1, 9, 1 bl printk -.L127: +.L133: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L128 - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] + tbz x0, 12, .L134 + adrp x0, .LANCHOR0+104 + ldr x0, [x0,#:lo12:.LANCHOR0+104] ldrh w1, [x0,16] adrp x0, .LC30 add x0, x0, :lo12:.LC30 ubfx x1, x1, 10, 1 bl printk -.L128: +.L134: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L129 - adrp x1, .LANCHOR0+97 + tbz x0, 12, .L135 + adrp x1, .LANCHOR0+113 adrp x0, .LC17 add x0, x0, :lo12:.LC17 - ldrb w1, [x1,#:lo12:.LANCHOR0+97] + ldrb w1, [x1,#:lo12:.LANCHOR0+113] bl printk -.L129: +.L135: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L130 + tbz x0, 12, .L136 adrp x2, .LANCHOR0 adrp x0, .LC31 add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC31 - add x2, x2, 104 + add x2, x2, 120 ldrb w1, [x2,10] ldrb w2, [x2,11] bl printk -.L130: +.L136: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L131 + tbz x0, 12, .L137 adrp x2, .LANCHOR0 adrp x0, .LC32 add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC32 - add x2, x2, 104 + add x2, x2, 120 ldrb w1, [x2,8] ldrb w2, [x2,9] bl printk -.L131: +.L137: ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L101 - adrp x1, .LANCHOR0+136 + tbz x0, 12, .L107 + adrp x1, .LANCHOR0+152 adrp x0, .LC33 add x0, x0, :lo12:.LC33 - ldrb w1, [x1,#:lo12:.LANCHOR0+136] + ldrb w1, [x1,#:lo12:.LANCHOR0+152] bl printk -.L101: +.L107: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1039,7 +1065,7 @@ nandc_init: stp x19, x20, [sp,16] str wzr, [x29,56] ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L227 + tbz x0, 12, .L233 adrp x1, .LANCHOR1 adrp x0, .LC34 add x1, x1, :lo12:.LANCHOR1 @@ -1047,7 +1073,7 @@ nandc_init: add x1, x1, 72 mov x2, x22 bl printk -.L227: +.L233: adrp x19, .LANCHOR0 mov w1, 6 add x0, x19, :lo12:.LANCHOR0 @@ -1057,24 +1083,24 @@ nandc_init: ldr w1, [x22,352] movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L228 + bne .L234 mov w0, 8 strb w0, [x19,#:lo12:.LANCHOR0] -.L228: +.L234: ldr w1, [x22,128] mov w0, 12336 movk w0, 0x5639, lsl 16 cmp w1, w0 - bne .L229 + bne .L235 mov w0, 9 strb w0, [x19,#:lo12:.LANCHOR0] -.L229: +.L235: ldrb w0, [x19,#:lo12:.LANCHOR0] add x20, x19, :lo12:.LANCHOR0 cmp w0, 9 - bne .L230 + bne .L236 mov w0, 1 - strb w0, [x20,137] + strb w0, [x20,153] ldr w0, [x29,56] mov w1, 4225 orr w0, w0, 256 @@ -1095,17 +1121,17 @@ nandc_init: mov w1, 39 str w1, [x0,84] ldr w1, [x21,#:lo12:.LANCHOR2] - tbz x1, 12, .L232 + tbz x1, 12, .L238 ldr w1, [x0] ldr w2, [x0,8] ldr w3, [x0,80] ldr w4, [x0,84] ldr w5, [x0,88] - b .L244 -.L230: + b .L250 +.L236: ldr w0, [x29,56] mov w1, 4225 - strb wzr, [x20,137] + strb wzr, [x20,153] orr w0, w0, 256 str w0, [x29,56] ldr w0, [x29,56] @@ -1125,33 +1151,33 @@ nandc_init: str w1, [x0,308] mov w0, 2048 bl ftl_malloc - str x0, [x20,144] + str x0, [x20,160] ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L232 + tbz x0, 12, .L238 ldr x0, [x20,16] ldr w1, [x0] ldr w2, [x0,344] ldr w3, [x0,304] ldr w4, [x0,308] ldr w5, [x0,312] -.L244: +.L250: adrp x0, .LC35 add x0, x0, :lo12:.LC35 bl printk -.L232: +.L238: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,184] + strb w0, [x19,200] ldr w0, [x21,#:lo12:.LANCHOR2] - strh wzr, [x19,186] - strb wzr, [x19,188] - tbz x0, 12, .L226 + strh wzr, [x19,202] + strb wzr, [x19,204] + tbz x0, 12, .L232 adrp x1, .LANCHOR0 adrp x0, .LC36 add x0, x0, :lo12:.LC36 ldrb w1, [x1,#:lo12:.LANCHOR0] bl printk -.L226: +.L232: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 64 @@ -1164,11 +1190,11 @@ timer_delay_ns: sub sp, sp, #16 lsr w0, w0, 4 str w0, [sp,12] -.L246: +.L252: ldr w0, [sp,12] sub w1, w0, #1 str w1, [sp,12] - cbnz w0, .L246 + cbnz w0, .L252 add sp, sp, 16 ret .size timer_delay_ns, .-timer_delay_ns @@ -1217,34 +1243,34 @@ toshiba_set_rr_para: adrp x26, .LANCHOR0 mov w27, 85 mov x19, x2 -.L250: +.L256: add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,190] + ldrb w0, [x25,206] cmp w0, w20 - bls .L256 + bls .L262 add x0, x19, 88 str w27, [x22,8] ldrsb w0, [x20,x0] str w0, [x22,4] mov w0, 200 bl timer_delay_ns - ldrb w0, [x25,189] + ldrb w0, [x25,205] cmp w0, 34 - bne .L251 + bne .L257 ldrsb w0, [x24,x20] - b .L255 -.L251: + b .L261 +.L257: cmp w0, 35 - bne .L253 + bne .L259 ldrsb w0, [x21,x20] - b .L255 -.L253: + b .L261 +.L259: ldrsb w0, [x23,232] -.L255: +.L261: str w0, [x22] add x20, x20, 1 - b .L250 -.L256: + b .L256 +.L262: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -1267,7 +1293,7 @@ hynix_set_rr_para: str x23, [sp,48] mov x20, 160 mov x21, 0 - ldr x4, [x3,192] + ldr x4, [x3,208] ldr x19, [x3,16] add x23, x4, 128 ldrb w22, [x4,113] @@ -1281,9 +1307,9 @@ hynix_set_rr_para: add x20, x4, x1 add x20, x20, 144 str w0, [x19,2056] -.L258: +.L264: cmp w22, w21, uxtb - bls .L260 + bls .L266 ldrb w0, [x23,x21] str w0, [x19,2052] mov w0, 120 @@ -1291,8 +1317,8 @@ hynix_set_rr_para: ldrsb w0, [x20,x21] add x21, x21, 1 str w0, [x19,2048] - b .L258 -.L260: + b .L264 +.L266: mov w0, 22 str w0, [x19,2056] ldp x19, x20, [sp,16] @@ -1311,22 +1337,22 @@ hynix_reconfig_rr_para: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x19,189] + ldrb w1, [x19,205] sub w1, w1, #1 uxtb w1, w1 cmp w1, 6 - bhi .L261 - ldr x1, [x19,192] + bhi .L267 + ldr x1, [x19,208] sxtw x20, w0 add x1, x1, x20 ldrb w1, [x1,120] - cbz w1, .L261 + cbz w1, .L267 mov w1, 0 bl hynix_set_rr_para - ldr x0, [x19,192] + ldr x0, [x19,208] add x20, x0, x20 strb wzr, [x20,120] -.L261: +.L267: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -1345,12 +1371,12 @@ nandc_set_ddr_para: lsl w0, w0, 8 orr w0, w1, w0 orr w0, w0, 3 - bne .L267 + bne .L273 str w0, [x2,80] - b .L266 -.L267: + b .L272 +.L273: str w0, [x2,304] -.L266: +.L272: ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -1362,12 +1388,12 @@ nandc_get_ddr_para: ldrb w1, [x1,#:lo12:.LANCHOR0] ldr x0, [x0,16] cmp w1, 9 - bne .L270 + bne .L276 ldr w0, [x0,80] - b .L272 -.L270: + b .L278 +.L276: ldr w0, [x0,304] -.L272: +.L278: ubfx x0, x0, 8, 8 ret .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -1381,7 +1407,7 @@ nandc_set_if_mode: tst w0, 6 ldr x2, [x1,16] ldr w1, [x2] - beq .L274 + beq .L280 orr w1, w1, 24576 and w0, w0, 4 and w1, w1, -32769 @@ -1392,7 +1418,7 @@ nandc_set_if_mode: csel w1, w4, w1, ne cmp w0, 9 mov w0, 8321 - bne .L276 + bne .L282 str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1401,8 +1427,8 @@ nandc_set_if_mode: str w0, [x2,84] mov w0, 39 str w0, [x2,84] - b .L277 -.L276: + b .L283 +.L282: str w0, [x2,344] mov w0, 4099 movk w0, 0x10, lsl 16 @@ -1411,10 +1437,10 @@ nandc_set_if_mode: str w0, [x2,308] mov w0, 39 str w0, [x2,308] - b .L277 -.L274: + b .L283 +.L280: and w1, w1, -8193 -.L277: +.L283: str w1, [x2] ret .size nandc_set_if_mode, .-nandc_set_if_mode @@ -1458,10 +1484,10 @@ flash_wait_device_ready_raw: stp x25, x26, [sp,64] mov w20, w1 mov w22, w2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov x19, x3 cmp w0, w21 - bhi .L283 + bhi .L289 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -1469,10 +1495,10 @@ flash_wait_device_ready_raw: add x1, x1, 240 mov w2, 599 bl printk -.L283: +.L289: add x3, x19, :lo12:.LANCHOR0 add x21, x3, x21, sxtw - ldrb w23, [x21,200] + ldrb w23, [x21,216] lsr w24, w20, 8 lsr w25, w20, 16 mov w26, 120 @@ -1482,7 +1508,7 @@ flash_wait_device_ready_raw: bl nandc_cs ubfiz x3, x23, 8, 8 add x19, x19, x3 -.L285: +.L291: str w26, [x19,2056] mov w0, 120 str w21, [x19,2052] @@ -1493,9 +1519,9 @@ flash_wait_device_ready_raw: and w20, w20, 255 and w0, w22, w20 cmp w0, w22 - bne .L285 + bne .L291 cmp w20, 255 - beq .L285 + beq .L291 mov w0, w23 bl nandc_de_cs mov w0, w20 @@ -1516,26 +1542,26 @@ flash_wait_device_ready: add x29, sp, 0 and w1, w0, 2097151 ubfx x6, x0, 21, 3 - cbnz w3, .L287 + cbnz w3, .L293 adrp x4, .LANCHOR0 add x3, x4, :lo12:.LANCHOR0 - ldrb w0, [x3,97] - cbz w0, .L288 - ldrb w0, [x3,208] - cbz w0, .L287 -.L288: + ldrb w0, [x3,113] + cbz w0, .L294 + ldrb w0, [x3,224] + cbz w0, .L293 +.L294: add x4, x4, :lo12:.LANCHOR0 - ldrh w5, [x4,210] - ldrb w0, [x4,208] + ldrh w5, [x4,226] + ldrb w0, [x4,224] udiv w3, w1, w5 mul w5, w3, w5 sub w3, w1, w5 add w1, w5, w3, lsl 1 - cbnz w0, .L287 - add x4, x4, 212 + cbnz w0, .L293 + add x4, x4, 228 ldrh w3, [x4,w3,uxtw 1] add w1, w3, w5 -.L287: +.L293: mov w0, w6 bl flash_wait_device_ready_raw ldp x29, x30, [sp], 16 @@ -1551,7 +1577,7 @@ nandc_wait_flash_ready: mov w19, 34464 adrp x20, .LANCHOR0 movk w19, 0x1, lsl 16 -.L298: +.L304: mov w0, 100 bl timer_delay_ns add x0, x20, :lo12:.LANCHOR0 @@ -1559,14 +1585,14 @@ nandc_wait_flash_ready: ldr w0, [x0] str w0, [x29,40] ldr w0, [x29,40] - tbnz x0, 9, .L299 + tbnz x0, 9, .L305 subs w19, w19, #1 - bne .L298 + bne .L304 mov w0, -1 - b .L297 -.L299: + b .L303 +.L305: mov w0, 0 -.L297: +.L303: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -1597,23 +1623,23 @@ sandisk_set_rr_para: add x0, x0, x1 add x1, x2, x1 mov x2, 0 -.L302: +.L308: add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,190] + ldrb w4, [x3,206] cmp w4, w2 - bls .L307 - ldrb w3, [x3,189] + bls .L313 + ldrb w3, [x3,205] cmp w3, 67 - bne .L303 + bne .L309 ldrsb w3, [x0,x2] - b .L306 -.L303: + b .L312 +.L309: ldrsb w3, [x1,x2] -.L306: +.L312: str w3, [x20] add x2, x2, 1 - b .L302 -.L307: + b .L308 +.L313: bl nandc_wait_flash_ready ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -1702,7 +1728,7 @@ toshiba_tlc_set_rr_para: mov w21, 239 adrp x0, .LANCHOR2 str w21, [x19,8] - cbz w2, .L311 + cbz w2, .L317 mov w2, 18 str w2, [x19,4] mov x2, 7 @@ -1729,8 +1755,8 @@ toshiba_tlc_set_rr_para: ldrb w0, [x20,6] str w0, [x19] str wzr, [x19] - b .L312 -.L311: + b .L318 +.L317: add x0, x0, :lo12:.LANCHOR2 mov w3, 20 add x0, x0, 344 @@ -1740,7 +1766,7 @@ toshiba_tlc_set_rr_para: str w2, [x19] str w2, [x19] str w2, [x19] -.L312: +.L318: bl nandc_wait_flash_ready ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -1756,40 +1782,40 @@ zftl_flash_enter_slc_mode: add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,97] - cbz w2, .L313 + ldrb w2, [x1,113] + cbz w2, .L319 cmp w2, 1 ldr x3, [x1,16] - bne .L316 + bne .L322 adrp x1, .LANCHOR2+405 ldrb w2, [x1,#:lo12:.LANCHOR2+405] - cbz w2, .L313 + cbz w2, .L319 sxtw x1, w0 add x1, x1, 8 add x0, x3, x1, lsl 8 str w2, [x0,8] - b .L313 -.L316: + b .L319 +.L322: cmp w2, 2 - bne .L318 + bne .L324 add x1, x1, x0 - ldrb w2, [x1,728] - cbz w2, .L313 - strb wzr, [x1,728] + ldrb w2, [x1,744] + cbz w2, .L319 + strb wzr, [x1,744] adrp x1, .LANCHOR2+405 ldrb w1, [x1,#:lo12:.LANCHOR2+405] - cbz w1, .L313 + cbz w1, .L319 add x0, x0, 8 add x0, x3, x0, lsl 8 str w1, [x0,8] - b .L313 -.L318: + b .L319 +.L324: cmp w2, 3 - bne .L313 + bne .L319 add x1, x1, x0, sxtw - ldrb w2, [x1,728] - cbz w2, .L313 - strb wzr, [x1,728] + ldrb w2, [x1,744] + cbz w2, .L319 + strb wzr, [x1,744] ubfiz x1, x0, 8, 8 add x0, x3, x1 mov w1, 239 @@ -1802,7 +1828,7 @@ zftl_flash_enter_slc_mode: str wzr, [x0,2048] str wzr, [x0,2048] bl nandc_wait_flash_ready -.L313: +.L319: ldp x29, x30, [sp], 16 ret .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode @@ -1815,50 +1841,50 @@ zftl_flash_exit_slc_mode: add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w2, [x1,97] - cbz w2, .L331 + ldrb w2, [x1,113] + cbz w2, .L337 cmp w2, 1 ldr x4, [x1,16] - bne .L334 + bne .L340 adrp x1, .LANCHOR2+406 ldrb w2, [x1,#:lo12:.LANCHOR2+406] - cbz w2, .L331 + cbz w2, .L337 sxtw x1, w0 add x1, x1, 8 add x0, x4, x1, lsl 8 str w2, [x0,8] - b .L331 -.L334: + b .L337 +.L340: cmp w2, 2 - bne .L336 + bne .L342 add x1, x1, x0 - ldrb w2, [x1,728] - cbnz w2, .L331 + ldrb w2, [x1,744] + cbnz w2, .L337 adrp x2, .LANCHOR2 mov w5, 4 add x2, x2, :lo12:.LANCHOR2 ldrb w3, [x2,388] cmp w3, 2 csel w3, w3, w5, eq - strb w3, [x1,728] + strb w3, [x1,744] ldrb w1, [x2,406] - cbz w1, .L331 + cbz w1, .L337 add x0, x0, 8 add x0, x4, x0, lsl 8 str w1, [x0,8] - b .L331 -.L336: + b .L337 +.L342: cmp w2, 3 - bne .L331 + bne .L337 add x1, x1, x0, sxtw - ldrb w3, [x1,728] - cbnz w3, .L331 + ldrb w3, [x1,744] + cbnz w3, .L337 adrp x2, .LANCHOR2+388 mov w5, 4 ldrb w2, [x2,#:lo12:.LANCHOR2+388] cmp w2, 2 csel w2, w2, w5, eq - strb w2, [x1,728] + strb w2, [x1,744] ubfiz x1, x0, 8, 8 add x0, x4, x1 mov w1, 239 @@ -1871,7 +1897,7 @@ zftl_flash_exit_slc_mode: str w3, [x0,2048] str w3, [x0,2048] bl nandc_wait_flash_ready -.L331: +.L337: ldp x29, x30, [sp], 16 ret .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode @@ -1891,10 +1917,10 @@ flash_start_page_read: ubfx x19, x1, 21, 3 and w20, w1, 2097151 ubfx x22, x1, 24, 2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov x21, x2 cmp w0, w19 - bhi .L350 + bhi .L356 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -1902,51 +1928,51 @@ flash_start_page_read: add x1, x1, 688 mov w2, 736 bl printk -.L350: +.L356: add x25, x21, :lo12:.LANCHOR0 add x19, x25, x19, sxtw - ldrb w19, [x19,200] + ldrb w19, [x19,216] mov w0, w19 ldr x24, [x25,16] bl nandc_cs - cbnz w22, .L351 - ldrb w0, [x25,97] - cbz w0, .L352 - ldrb w0, [x25,208] - cbz w0, .L353 -.L352: + cbnz w22, .L357 + ldrb w0, [x25,113] + cbz w0, .L358 + ldrb w0, [x25,224] + cbz w0, .L359 +.L358: add x2, x21, :lo12:.LANCHOR0 - ldrh w1, [x2,210] + ldrh w1, [x2,226] udiv w0, w20, w1 mul w0, w0, w1 - ldrb w1, [x2,208] + ldrb w1, [x2,224] sub w20, w20, w0 - cbz w1, .L354 + cbz w1, .L360 add w20, w0, w20, lsl 1 - b .L353 -.L354: - add x2, x2, 212 + b .L359 +.L360: + add x2, x2, 228 ldrh w20, [x2,w20,uxtw 1] add w20, w20, w0 - b .L355 -.L353: + b .L361 +.L359: mov w0, w19 bl zftl_flash_enter_slc_mode - b .L355 -.L351: - ldr x0, [x25,88] + b .L361 +.L357: + ldr x0, [x25,104] ldrb w0, [x0,12] cmp w0, 3 - bne .L356 + bne .L362 sxtw x0, w19 add x0, x0, 8 add x0, x24, x0, lsl 8 str w22, [x0,8] - b .L355 -.L356: + b .L361 +.L362: mov w0, w19 bl zftl_flash_exit_slc_mode -.L355: +.L361: ubfiz x19, x19, 8, 8 and w0, w20, 255 add x1, x24, x19 @@ -1984,9 +2010,9 @@ flash_set_interface_mode: stp x25, x26, [sp,64] mov w24, w0 mov x20, 0 - add x25, x21, 732 + add x25, x21, 748 adrp x23, .LANCHOR2 -.L370: +.L376: lsl x0, x20, 3 ldr x19, [x21,16] ldrb w1, [x0,x25] @@ -1998,61 +2024,61 @@ flash_set_interface_mode: cset w0, eq adrp x1, .LANCHOR0 orr w0, w2, w0 - cbnz w0, .L371 - cbz w26, .L361 -.L371: + cbnz w0, .L377 + cbz w26, .L367 +.L377: add x1, x1, :lo12:.LANCHOR0 cmp w24, 1 - ldrb w1, [x1,764] - bne .L363 - tbz x1, 0, .L361 + ldrb w1, [x1,780] + bne .L369 + tbz x1, 0, .L367 ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L364 + tbz x0, 12, .L370 adrp x0, .LC37 add x0, x0, :lo12:.LC37 bl printk -.L364: +.L370: add x1, x19, x20, lsl 8 mov w0, 239 str w0, [x1,2056] mov w0, 1 - cbz w26, .L365 + cbz w26, .L371 str w0, [x1,2052] mov w0, 5 - b .L388 -.L365: + b .L394 +.L371: mov w2, 128 str w2, [x1,2052] -.L388: +.L394: str w0, [x1,2048] - b .L369 -.L363: - tbz x1, 2, .L361 + b .L375 +.L369: + tbz x1, 2, .L367 ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L367 + tbz x0, 12, .L373 mov x0, x22 bl printk -.L367: +.L373: add x1, x19, x20, lsl 8 mov w0, 239 str w0, [x1,2056] - cbz w26, .L368 + cbz w26, .L374 mov w0, 1 str w0, [x1,2052] mov w0, 35 - b .L388 -.L368: + b .L394 +.L374: mov w0, 128 str w0, [x1,2052] str w26, [x1,2048] -.L369: +.L375: str wzr, [x1,2048] str wzr, [x1,2048] str wzr, [x1,2048] -.L361: +.L367: add x20, x20, 1 cmp x20, 4 - bne .L370 + bne .L376 bl nandc_wait_flash_ready mov w0, 0 ldp x19, x20, [sp,16] @@ -2124,7 +2150,7 @@ flash_read_id: sub w0, w2, #1 uxtb w0, w0 cmp w0, 253 - bhi .L390 + bhi .L396 adrp x0, .LC39 ldrb w3, [x19,1] ldrb w4, [x19,2] @@ -2134,7 +2160,7 @@ flash_read_id: ldrb w6, [x19,4] ldrb w7, [x19,5] bl printk -.L390: +.L396: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -2192,9 +2218,9 @@ sandisk_prog_test_bad_block: sxtw x2, w0 add x2, x2, 8 add x2, x19, x2, lsl 8 - cbnz w3, .L407 + cbnz w3, .L413 mov w3, 162 -.L407: +.L413: ubfiz x0, x0, 8, 8 str w3, [x2,8] add x19, x19, x0 @@ -2220,18 +2246,18 @@ sandisk_prog_test_bad_block: mov w0, 5 ldr x1, [x29,56] ands w21, w2, w0 - beq .L396 + beq .L402 ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L396 + tbz x0, 12, .L402 adrp x0, .LC40 add x0, x0, :lo12:.LC40 bl printk -.L396: +.L402: add x20, x20, :lo12:.LANCHOR2 ldrb w0, [x20,406] - cbz w0, .L397 + cbz w0, .L403 str w0, [x19,2056] -.L397: +.L403: mov w0, w21 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -2260,47 +2286,47 @@ nandc_bch_sel: mov w3, 1 add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] - strb w0, [x1,188] + strb w0, [x1,204] cmp w2, 9 ldr x2, [x1,16] - bne .L410 + bne .L416 str w3, [x2,16] cmp w0, 70 mov w1, 0 - beq .L411 + beq .L417 cmp w0, 60 mov w1, 3 - beq .L411 + beq .L417 cmp w0, 40 mov w1, 2 csel w1, w1, w3, eq -.L411: +.L417: lsl w1, w1, 25 orr w1, w1, 1 str w1, [x2,32] - b .L409 -.L410: + b .L415 +.L416: str w3, [x2,8] cmp w0, 16 mov w1, 4096 - bne .L413 -.L416: + bne .L419 +.L422: and w1, w1, -17 - b .L414 -.L413: + b .L420 +.L419: cmp w0, 24 - bne .L415 + bne .L421 orr w1, w1, 16 - b .L414 -.L415: + b .L420 +.L421: cmp w0, 40 orr w1, w1, 262144 orr w1, w1, 16 - beq .L416 -.L414: + beq .L422 +.L420: orr w1, w1, 1 str w1, [x2,12] -.L409: +.L415: ret .size nandc_bch_sel, .-nandc_bch_sel .align 2 @@ -2324,7 +2350,7 @@ zftl_flash_resume: str w2, [x1,4] ldr x1, [x0,16] ldr w2, [x0,32] - bne .L424 + bne .L430 str w2, [x1,16] ldr w2, [x0,36] str w2, [x1,32] @@ -2336,8 +2362,8 @@ zftl_flash_resume: str w2, [x1,520] ldr w0, [x0,52] str w0, [x1,8] - b .L425 -.L424: + b .L431 +.L430: str w2, [x1,8] ldr w2, [x0,36] str w2, [x1,12] @@ -2349,32 +2375,32 @@ zftl_flash_resume: str w2, [x1,336] ldr w0, [x0,52] str w0, [x1,344] -.L425: +.L431: add x21, x20, :lo12:.LANCHOR0 mov x19, 0 - add x23, x21, 732 + add x23, x21, 748 mov w24, 2 -.L427: +.L433: lsl x0, x19, 3 ldrb w0, [x0,x23] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bhi .L426 + bhi .L432 uxtb w22, w19 mov w0, w22 bl flash_reset - add x0, x21, 728 + add x0, x21, 744 strb w24, [x19,x0] mov w0, w22 bl zftl_flash_enter_slc_mode -.L426: +.L432: add x19, x19, 1 cmp x19, 4 - bne .L427 + bne .L433 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,136] - cbz w0, .L428 + ldrb w0, [x20,152] + cbz w0, .L434 mov w0, 1 bl nandc_set_if_mode mov w0, w19 @@ -2384,7 +2410,7 @@ zftl_flash_resume: ldr w0, [x20,40] lsr w0, w0, 8 bl nandc_set_ddr_para -.L428: +.L434: adrp x0, .LANCHOR2+396 ldrb w0, [x0,#:lo12:.LANCHOR2+396] bl nandc_bch_sel @@ -2419,30 +2445,30 @@ nandc_iqr_wait_flash_ready: ldrb w1, [x19,#:lo12:.LANCHOR0] ldr x0, [x20,16] cmp w1, 9 - bne .L435 + bne .L441 ldr w1, [x0,292] orr w1, w1, 2 str w1, [x0,292] ldr w1, [x0,288] orr w1, w1, 2 str w1, [x0,288] - b .L436 -.L435: + b .L442 +.L441: ldr w1, [x0,368] orr w1, w1, 2 str w1, [x0,368] ldr w1, [x0,364] orr w1, w1, 2 str w1, [x0,364] -.L436: +.L442: ldr w1, [x0] - tbnz x1, 9, .L437 + tbnz x1, 9, .L443 bl wait_for_nand_flash_ready - b .L434 -.L437: + b .L440 +.L443: mov w1, 1 bl nandc_irq_disable -.L434: +.L440: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -2462,10 +2488,10 @@ flash_erase_duplane_block: stp x23, x24, [sp,48] uxtb w25, w1 mov w22, w2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov w24, w3 cmp w0, w19 - bhi .L440 + bhi .L446 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -2473,34 +2499,34 @@ flash_erase_duplane_block: add x1, x1, 712 mov w2, 510 bl printk -.L440: +.L446: add x0, x20, :lo12:.LANCHOR0 add x19, x0, x19, sxtw - ldrb w23, [x19,200] + ldrb w23, [x19,216] ldr x19, [x0,16] adrp x0, .LANCHOR2 mov x21, x23 add x23, x23, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x23, x19, x23, lsl 8 - tbz x0, 4, .L441 + tbz x0, 4, .L447 adrp x0, .LC41 mov w1, w21 add x0, x0, :lo12:.LC41 mov w2, w22 mov w3, w24 bl printk -.L441: +.L447: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L442 + cbnz w25, .L448 bl zftl_flash_enter_slc_mode - b .L443 -.L442: + b .L449 +.L448: bl zftl_flash_exit_slc_mode -.L443: +.L449: ubfiz x4, x21, 8, 8 mov w0, 96 add x19, x19, x4 @@ -2512,9 +2538,9 @@ flash_erase_duplane_block: str w0, [x19,2052] lsr w0, w22, 16 str w0, [x19,2052] - ldrb w0, [x20,765] + ldrb w0, [x20,781] mov w20, 0 - cbnz w0, .L444 + cbnz w0, .L450 mov w0, 208 str w0, [x19,2056] mov w20, 5 @@ -2522,7 +2548,7 @@ flash_erase_duplane_block: mov x0, x23 bl flash_read_status and w20, w0, w20 -.L444: +.L450: mov w0, 96 str w0, [x19,2056] and w0, w24, 255 @@ -2545,12 +2571,12 @@ flash_erase_duplane_block: ldr x2, [x29,88] and w19, w2, w19 orr w19, w19, w20 - cbz w19, .L445 + cbz w19, .L451 adrp x0, .LC42 mov w1, w22 add x0, x0, :lo12:.LC42 bl printk -.L445: +.L451: mov w0, w19 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2574,10 +2600,10 @@ flash_erase_block_en: stp x21, x22, [sp,32] uxtb w24, w1 mov w22, w2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] and w23, w2, 2097151 cmp w0, w20 - bhi .L454 + bhi .L460 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -2585,33 +2611,33 @@ flash_erase_block_en: add x1, x1, 744 mov w2, 555 bl printk -.L454: +.L460: add x0, x19, :lo12:.LANCHOR0 add x20, x0, x20, sxtw - ldrb w21, [x20,200] + ldrb w21, [x20,216] ldr x25, [x0,16] adrp x0, .LANCHOR2 mov x20, x21 add x21, x21, 8 ldr w0, [x0,#:lo12:.LANCHOR2] add x21, x25, x21, lsl 8 - tbz x0, 4, .L455 + tbz x0, 4, .L461 adrp x0, .LC43 mov w1, w20 add x0, x0, :lo12:.LC43 mov w2, w22 bl printk -.L455: +.L461: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w24, .L456 + cbnz w24, .L462 bl zftl_flash_enter_slc_mode - b .L457 -.L456: + b .L463 +.L462: bl zftl_flash_exit_slc_mode -.L457: +.L463: ubfiz x3, x20, 8, 8 mov w0, 96 add x3, x25, x3 @@ -2633,15 +2659,15 @@ flash_erase_block_en: bl nandc_de_cs mov w3, 5 ands w20, w21, w3 - beq .L458 + beq .L464 add x19, x19, :lo12:.LANCHOR0 adrp x0, .LC44 add x0, x0, :lo12:.LC44 mov w2, w20 - ldrh w1, [x19,210] + ldrh w1, [x19,226] udiv w1, w22, w1 bl printk -.L458: +.L464: mov w0, w20 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -2681,28 +2707,28 @@ flash_erase_all: mov x21, x0 mul w20, w1, w20 uxth w20, w20 -.L467: - ldrb w0, [x23,98] +.L473: + ldrb w0, [x23,114] cmp w0, w19 - bls .L471 + bls .L477 add x0, x23, x19, sxtw - ldrb w24, [x0,200] + ldrb w24, [x0,216] mov w22, 0 -.L468: +.L474: cmp w20, w22, uxth - bls .L472 + bls .L478 add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,210] + ldrh w1, [x0,226] mov w0, w24 mul w1, w22, w1 add w22, w22, 1 bl flash_erase_block - b .L468 -.L472: + b .L474 +.L478: add w19, w19, 1 uxth w19, w19 - b .L467 -.L471: + b .L473 +.L477: adrp x0, .LC45 mov w1, 0 add x0, x0, :lo12:.LC45 @@ -2748,7 +2774,7 @@ nandc_xfer_start: cmp w0, 9 ldr x3, [x29,88] ldr x2, [x29,80] - bne .L475 + bne .L481 ldr w0, [x4,292] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -2760,19 +2786,19 @@ nandc_xfer_start: str w0, [x4,288] mov w0, 1 bfi w19, w0, 5, 2 - ldrb w0, [x21,137] + ldrb w0, [x21,153] orr w19, w19, 536870912 orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 orr w19, w19, 128 - cbz w0, .L477 - ldrb w1, [x21,184] + cbz w0, .L483 + ldrb w1, [x21,200] orr w0, w19, 512 cmp w1, wzr csel w19, w0, w19, ne - b .L477 -.L475: + b .L483 +.L481: ldr w0, [x4,368] ubfiz w19, w24, 1, 1 orr w19, w19, 8 @@ -2793,8 +2819,8 @@ nandc_xfer_start: orr w19, w19, 1024 and w19, w19, -17 bfi w19, w20, 22, 6 - cbz w24, .L489 - ldrb w0, [x21,188] + cbz w24, .L495 + ldrb w0, [x21,204] ubfx x23, x23, 1, 7 mov w1, 64 mov w4, 128 @@ -2802,27 +2828,27 @@ nandc_xfer_start: add x23, x3, x23, lsl 2 csel w4, w1, w4, cc mov w1, 0 - b .L482 -.L477: + b .L488 +.L483: add x22, x22, :lo12:.LANCHOR0 ubfx x21, x19, 22, 6 mov x0, x2 lsl w1, w21, 10 - str x2, [x22,152] + str x2, [x22,168] mov w2, w24 - str x3, [x22,160] + str x3, [x22,176] bl rknand_dma_map_single - str w0, [x22,168] - ldr x0, [x22,160] + str w0, [x22,184] + ldr x0, [x22,176] lsl w1, w21, 2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,172] + str w0, [x22,188] ldr x3, [x22,16] mov w1, 1 - str w1, [x22,176] + str w1, [x22,192] cmp w24, wzr - ldr w1, [x22,168] + ldr w1, [x22,184] str w1, [x3,52] str w0, [x3,56] mov w0, 16 @@ -2834,53 +2860,53 @@ nandc_xfer_start: cset w0, eq orr w1, w1, 4 bfi w1, w0, 1, 1 - ldrh w0, [x22,186] + ldrh w0, [x22,202] orr w1, w1, 1 bfi w1, w0, 16, 11 str w1, [x3,48] str w19, [x3,16] orr w19, w19, 4 str w19, [x3,16] - b .L474 -.L482: + b .L480 +.L488: cmp x3, x23 add w0, w1, w4 - beq .L484 + beq .L490 ldrh w5, [x3,2] and x1, x1, 4294967292 - ldr x6, [x21,144] + ldr x6, [x21,160] ldrh w7, [x3],4 orr w5, w7, w5, lsl 16 str w5, [x6,x1] mov w1, w0 - b .L482 -.L489: - ldr x1, [x21,144] + b .L488 +.L495: + ldr x1, [x21,160] str w0, [x1] -.L484: +.L490: add x22, x22, :lo12:.LANCHOR0 and w20, w20, 63 lsl w1, w20, 10 - ldr x0, [x22,144] - str x2, [x22,152] - str x0, [x22,160] + ldr x0, [x22,160] + str x2, [x22,168] + str x0, [x22,176] mov x0, x2 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,168] - ldr x0, [x22,160] + str w0, [x22,184] + ldr x0, [x22,176] lsl w1, w20, 7 mov w2, w24 bl rknand_dma_map_single - str w0, [x22,172] + str w0, [x22,188] ldr x3, [x22,16] mov w0, 1 - str w0, [x22,176] + str w0, [x22,192] cmp w24, wzr - ldr w0, [x22,168] + ldr w0, [x22,184] mov w1, 8660 str w0, [x3,20] - ldr w0, [x22,172] + ldr w0, [x22,188] str w0, [x3,24] cset w0, eq bfi w1, w0, 1, 1 @@ -2890,7 +2916,7 @@ nandc_xfer_start: str w19, [x3,8] orr w19, w19, 4 str w19, [x3,8] -.L474: +.L480: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -2911,17 +2937,17 @@ nandc_set_seed: add x1, x2, :lo12:.LANCHOR0 ldrb w2, [x2,#:lo12:.LANCHOR0] orr w3, w0, -1073741824 - ldrb w4, [x1,184] + ldrb w4, [x1,200] ldr x1, [x1,16] cmp w4, wzr csel w0, w3, w0, ne cmp w2, 9 - bne .L492 + bne .L498 str w0, [x1,520] - b .L490 -.L492: + b .L496 +.L498: str w0, [x1,336] -.L490: +.L496: ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -2936,25 +2962,25 @@ zftl_flash_de_init: mov w0, 0 add x20, x19, :lo12:.LANCHOR0 bl hynix_reconfig_rr_para - ldrb w0, [x20,136] - cbz w0, .L497 - ldrb w0, [x20,764] - tbz x0, 0, .L497 + ldrb w0, [x20,152] + cbz w0, .L503 + ldrb w0, [x20,780] + tbz x0, 0, .L503 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - strb wzr, [x20,136] -.L497: + strb wzr, [x20,152] +.L503: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,184] - cbz w0, .L498 + ldrb w0, [x19,200] + cbz w0, .L504 mov w0, 0 - strb wzr, [x19,184] + strb wzr, [x19,200] bl nandc_set_seed mov w0, 1 - strb w0, [x19,184] -.L498: + strb w0, [x19,200] +.L504: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -2964,8 +2990,8 @@ zftl_flash_de_init: .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: - adrp x1, .LANCHOR0+184 - strb w0, [x1,#:lo12:.LANCHOR0+184] + adrp x1, .LANCHOR0+200 + strb w0, [x1,#:lo12:.LANCHOR0+200] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .align 2 @@ -2989,33 +3015,33 @@ buf_init: stp x19, x20, [sp,16] add x19, x0, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - add x19, x19, 768 + add x19, x19, 784 mov w21, 0 mov x22, x0 -.L511: +.L517: add x20, x22, :lo12:.LANCHOR0 uxtb w0, w21 add w1, w0, 1 strb w0, [x19,1] strb w1, [x19] add w21, w21, 1 - ldrb w0, [x20,2816] + ldrb w0, [x20,2832] add x19, x19, 64 strb wzr, [x19,-62] str xzr, [x19,-48] lsl w0, w0, 9 bl ftl_malloc str x0, [x19,-56] - ldrb w0, [x20,2816] + ldrb w0, [x20,2832] lsl w0, w0, 1 bl ftl_malloc str x0, [x19,-40] cmp w21, 32 - bne .L511 - strb w21, [x20,2818] + bne .L517 + strb w21, [x20,2834] mov w0, -1 - strb wzr, [x20,2817] - strb w0, [x20,2752] + strb wzr, [x20,2833] + strb w0, [x20,2768] ldp x21, x22, [sp,32] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 @@ -3028,8 +3054,8 @@ buf_reinit: adrp x0, .LANCHOR0 mov w2, 0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 768 -.L514: + add x1, x1, 784 +.L520: uxtb w3, w2 add w2, w2, 1 add w4, w3, 1 @@ -3039,12 +3065,12 @@ buf_reinit: strb wzr, [x1,2] add x1, x1, 64 str xzr, [x1,-48] - bne .L514 + bne .L520 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 - strb wzr, [x0,2817] - strb w1, [x0,2752] - strb w2, [x0,2818] + strb wzr, [x0,2833] + strb w1, [x0,2768] + strb w2, [x0,2834] ret .size buf_reinit, .-buf_reinit .align 2 @@ -3060,10 +3086,10 @@ buf_add_tail: mov x19, x1 ldrb w1, [x20] cmp w1, 255 - bne .L522 + bne .L528 ldrb w0, [x19,1] cmp w0, 255 - bne .L518 + bne .L524 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3071,23 +3097,23 @@ buf_add_tail: add x1, x1, 1024 mov w2, 74 bl printk -.L518: +.L524: ldrb w0, [x19,1] strb w0, [x20] - b .L516 -.L522: + b .L522 +.L528: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 768 -.L523: + add x0, x0, 784 +.L529: mov w20, w1 sbfiz x1, x1, 6, 32 ldrb w1, [x0,x1] cmp w1, 255 - bne .L523 + bne .L529 ldrb w0, [x19,1] cmp w0, 255 - bne .L520 + bne .L526 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3095,14 +3121,14 @@ buf_add_tail: add x1, x1, 1024 mov w2, 81 bl printk -.L520: +.L526: adrp x0, .LANCHOR0 sbfiz x20, x20, 6, 32 add x0, x0, :lo12:.LANCHOR0 ldrb w1, [x19,1] - add x0, x0, 768 + add x0, x0, 784 strb w1, [x0,x20] -.L516: +.L522: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3119,23 +3145,23 @@ buf_free: and w1, w1, 8 uxtb w1, w1 strb w1, [x0,2] - cbz w1, .L525 + cbz w1, .L531 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 2817 + add x0, x0, 2833 bl buf_add_tail - b .L526 -.L525: + b .L532 +.L531: add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,2817] + ldrb w2, [x1,2833] strb w2, [x0] ldrb w0, [x0,1] - strb w0, [x1,2817] -.L526: + strb w0, [x1,2833] +.L532: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2818] + ldrb w0, [x19,2834] add w0, w0, 1 - strb w0, [x19,2818] + strb w0, [x19,2834] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3152,16 +3178,16 @@ buf_alloc: str x21, [sp,32] uxtb w21, w0 mov x19, x1 - ldrb w0, [x20,2818] - cbz w0, .L528 -.L531: + ldrb w0, [x20,2834] + cbz w0, .L534 +.L537: add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 768 - ldrb w2, [x1,2817] + add x0, x1, 784 + ldrb w2, [x1,2833] add x0, x0, x2, lsl 6 - cbz w21, .L529 - b .L530 -.L528: + cbz w21, .L535 + b .L536 +.L534: adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3169,26 +3195,26 @@ buf_alloc: add x1, x1, 1040 mov w2, 121 bl printk - ldrb w1, [x20,2818] - cbnz w1, .L531 -.L533: + ldrb w1, [x20,2834] + cbnz w1, .L537 +.L539: mov x0, 0 - b .L532 -.L529: - ldrb w1, [x1,2818] + b .L538 +.L535: + ldrb w1, [x1,2834] cmp w1, 1 - beq .L533 -.L530: + beq .L539 +.L536: add x1, x19, :lo12:.LANCHOR0 lsl x2, x2, 6 - add x4, x1, 768 + add x4, x1, 784 add x3, x4, x2 ldrb w5, [x4,x2] - strb w5, [x1,2817] - ldrb w5, [x1,2818] + strb w5, [x1,2833] + ldrb w5, [x1,2834] strh wzr, [x3,50] sub w5, w5, #1 - strb w5, [x1,2818] + strb w5, [x1,2834] mov w1, 1 strb w1, [x3,2] mov w1, -1 @@ -3196,7 +3222,7 @@ buf_alloc: strb w1, [x4,x2] mov w1, -1 str w1, [x3,36] -.L532: +.L538: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3209,33 +3235,33 @@ buf_remove_buf: ldrb w4, [x1,1] ldrb w2, [x0] cmp w4, w2 - bne .L540 + bne .L546 ldrb w1, [x1] strb w1, [x0] - b .L544 -.L540: + b .L550 +.L546: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 768 -.L542: + add x0, x0, 784 +.L548: cmp w2, 255 - beq .L545 + beq .L551 mov w3, w2 sbfiz x2, x2, 6, 32 ldrb w2, [x0,x2] cmp w2, w4 - bne .L542 + bne .L548 sbfiz x3, x3, 6, 32 ldrb w2, [x1] strb w2, [x0,x3] mov w0, -1 strb w0, [x1] -.L544: +.L550: mov w0, 1 - b .L539 -.L545: + b .L545 +.L551: mov w0, 0 -.L539: +.L545: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -3248,8 +3274,8 @@ buf_remove_free: adrp x19, .LANCHOR0 mov x20, x0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2818] - cbnz w0, .L547 + ldrb w0, [x0,2834] + cbnz w0, .L553 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 @@ -3257,22 +3283,22 @@ buf_remove_free: add x1, x1, 1056 mov w2, 170 bl printk -.L547: +.L553: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,2818] - cbz w0, .L546 - add x0, x19, 2817 + ldrb w0, [x19,2834] + cbz w0, .L552 + add x0, x19, 2833 mov x1, x20 bl buf_remove_buf cmp w0, 1 - bne .L546 - ldrb w0, [x19,2818] + bne .L552 + ldrb w0, [x19,2834] sub w0, w0, #1 - strb w0, [x19,2818] + strb w0, [x19,2834] ldrb w0, [x20,2] orr w0, w0, 1 strb w0, [x20,2] -.L546: +.L552: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3294,9 +3320,9 @@ flash_check_bad_block: asr w2, w2, 5 lsl w2, w2, 2 mul w2, w0, w2 - adrp x0, .LANCHOR0+192 + adrp x0, .LANCHOR0+208 sxtw x2, w2 - ldr x0, [x0,#:lo12:.LANCHOR0+192] + ldr x0, [x0,#:lo12:.LANCHOR0+208] add x2, x2, 912 add x2, x0, x2 ldr w0, [x2,x3,lsl 2] @@ -3327,12 +3353,12 @@ flash_mask_bad_block: add w20, w20, 31 bl printk asr w20, w20, 5 - adrp x0, .LANCHOR0+192 + adrp x0, .LANCHOR0+208 lsl w20, w20, 2 ubfx x3, x21, 5, 27 lsl x3, x3, 2 mul w19, w19, w20 - ldr x0, [x0,#:lo12:.LANCHOR0+192] + ldr x0, [x0,#:lo12:.LANCHOR0+208] sxtw x19, w19 add x19, x19, 912 add x19, x0, x19 @@ -3352,49 +3378,49 @@ flash_mask_bad_block: str2hex: ldrb w1, [x0] cmp w1, 48 - bne .L554 + bne .L560 ldrb w1, [x0,1] add x2, x0, 2 and w1, w1, -33 uxtb w1, w1 cmp w1, 88 csel x0, x0, x2, ne -.L554: +.L560: ldrb w1, [x0] and w1, w1, -33 uxtb w1, w1 cmp w1, 88 mov w1, 0 csinc x0, x0, x0, ne -.L556: +.L562: ldrb w2, [x0] - cbz w2, .L563 + cbz w2, .L569 sub w3, w2, #48 uxtb w3, w3 cmp w3, 9 - bhi .L557 + bhi .L563 add w1, w2, w1, lsl 4 sub w1, w1, #48 - b .L558 -.L557: + b .L564 +.L563: sub w3, w2, #97 uxtb w3, w3 cmp w3, 5 - bhi .L559 + bhi .L565 add w1, w2, w1, lsl 4 sub w1, w1, #87 - b .L558 -.L559: + b .L564 +.L565: sub w3, w2, #65 uxtb w3, w3 cmp w3, 5 - bhi .L563 + bhi .L569 add w1, w2, w1, lsl 4 sub w1, w1, #55 -.L558: +.L564: add x0, x0, 1 - b .L556 -.L563: + b .L562 +.L569: mov w0, w1 ret .size str2hex, .-str2hex @@ -3454,7 +3480,7 @@ ftl_print_info_to_buf: lsr w2, w2, 11 bl sprintf add x19, x19, x0, sxtw - ldr w2, [x21,2820] + ldr w2, [x21,2836] adrp x1, .LC50 mov x0, x19 add x1, x1, :lo12:.LC50 @@ -3466,7 +3492,7 @@ ftl_print_info_to_buf: add x1, x1, :lo12:.LC51 add x19, x19, 10 bl strcpy - ldr w2, [x21,2824] + ldr w2, [x21,2840] adrp x1, .LC52 mov x0, x19 add x1, x1, :lo12:.LC52 @@ -3478,65 +3504,65 @@ ftl_print_info_to_buf: add x1, x1, :lo12:.LC53 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,80] + ldr x2, [x21,88] adrp x1, .LC54 mov x0, x19 add x1, x1, :lo12:.LC54 ldr w2, [x2,524] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,80] + ldr x2, [x21,88] adrp x1, .LC55 mov x0, x19 add x1, x1, :lo12:.LC55 ldr w2, [x2,528] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2828] + ldrh w2, [x21,2844] adrp x1, .LC56 mov x0, x19 add x1, x1, :lo12:.LC56 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2830] + ldrh w2, [x21,2846] adrp x1, .LC57 mov x0, x19 add x1, x1, :lo12:.LC57 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2832] + ldrh w2, [x21,2848] adrp x1, .LC58 mov x0, x19 add x1, x1, :lo12:.LC58 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2834] + ldrh w2, [x21,2850] adrp x1, .LC59 mov x0, x19 add x1, x1, :lo12:.LC59 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2836] + ldrh w2, [x21,2852] adrp x1, .LC60 mov x0, x19 add x1, x1, :lo12:.LC60 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2838] + ldrh w2, [x21,2854] adrp x1, .LC61 mov x0, x19 add x1, x1, :lo12:.LC61 bl sprintf add x19, x19, x0, sxtw - ldrb w4, [x21,2841] + ldrb w4, [x21,2857] adrp x1, .LC62 - ldrb w2, [x21,2818] + ldrb w2, [x21,2834] mov x0, x19 - ldrb w3, [x21,2840] + ldrb w3, [x21,2856] add x1, x1, :lo12:.LC62 bl sprintf add x19, x19, x0, sxtw - ldr x3, [x21,2848] + ldr x3, [x21,2864] adrp x1, .LC63 mov x0, x19 add x1, x1, :lo12:.LC63 @@ -3544,7 +3570,7 @@ ftl_print_info_to_buf: ldrh w3, [x3,146] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2848] + ldr x0, [x21,2864] adrp x1, .LC64 add x1, x1, :lo12:.LC64 ldr w3, [x0,16] @@ -3553,7 +3579,7 @@ ftl_print_info_to_buf: add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,2848] + ldr x0, [x21,2864] adrp x1, .LC65 add x1, x1, :lo12:.LC65 ldr w3, [x0,24] @@ -3562,21 +3588,21 @@ ftl_print_info_to_buf: add w2, w2, w3, lsr 11 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC66 mov x0, x19 add x1, x1, :lo12:.LC66 ldr w2, [x2,64] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC67 mov x0, x19 add x1, x1, :lo12:.LC67 ldr w2, [x2,68] bl sprintf add x19, x19, x0, sxtw - ldr x0, [x21,80] + ldr x0, [x21,88] mov w2, 10 adrp x1, .LC68 add x1, x1, :lo12:.LC68 @@ -3585,55 +3611,55 @@ ftl_print_info_to_buf: udiv w2, w3, w2 bl sprintf add x19, x19, x0, sxtw - ldrb w2, [x21,97] + ldrb w2, [x21,113] adrp x1, .LC69 mov x0, x19 add x1, x1, :lo12:.LC69 bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,80] + ldr x2, [x21,88] adrp x1, .LC70 mov x0, x19 add x1, x1, :lo12:.LC70 ldr w2, [x2,556] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,80] + ldr x2, [x21,88] adrp x1, .LC71 mov x0, x19 add x1, x1, :lo12:.LC71 ldr w2, [x2,552] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC72 mov x0, x19 add x1, x1, :lo12:.LC72 ldr w2, [x2,52] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC73 mov x0, x19 add x1, x1, :lo12:.LC73 ldr w2, [x2,60] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC74 mov x0, x19 add x1, x1, :lo12:.LC74 ldr w2, [x2,76] bl sprintf add x19, x19, x0, sxtw - ldr x2, [x21,2848] + ldr x2, [x21,2864] adrp x1, .LC75 mov x0, x19 add x1, x1, :lo12:.LC75 ldr w2, [x2,8] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,80] + ldr x4, [x21,88] adrp x1, .LC76 mov x0, x19 add x1, x1, :lo12:.LC76 @@ -3642,7 +3668,7 @@ ftl_print_info_to_buf: ldrb w4, [x4,25] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,80] + ldr x4, [x21,88] adrp x1, .LC77 mov x0, x19 add x1, x1, :lo12:.LC77 @@ -3651,7 +3677,7 @@ ftl_print_info_to_buf: ldrb w4, [x4,57] bl sprintf add x19, x19, x0, sxtw - ldr x4, [x21,80] + ldr x4, [x21,88] adrp x1, .LC78 mov x0, x19 add x1, x1, :lo12:.LC78 @@ -3660,7 +3686,7 @@ ftl_print_info_to_buf: ldrb w4, [x4,89] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2848] + ldr x6, [x21,2864] adrp x1, .LC79 mov x0, x19 add x1, x1, :lo12:.LC79 @@ -3671,7 +3697,7 @@ ftl_print_info_to_buf: ldrh w6, [x6,96] bl sprintf add x19, x19, x0, sxtw - ldr x6, [x21,2848] + ldr x6, [x21,2864] adrp x1, .LC80 mov x0, x19 add x1, x1, :lo12:.LC80 @@ -3682,19 +3708,30 @@ ftl_print_info_to_buf: ldrh w6, [x6,98] bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2856] + ldrh w2, [x21,2872] adrp x1, .LC81 mov x0, x19 add x1, x1, :lo12:.LC81 bl sprintf add x19, x19, x0, sxtw - ldrh w2, [x21,2858] + ldr w6, [x21,2884] adrp x1, .LC82 - ldrh w3, [x21,2860] + ldrh w2, [x21,2874] mov x0, x19 - ldrh w4, [x21,2862] + ldrh w3, [x21,2876] add x1, x1, :lo12:.LC82 - ldrh w5, [x21,2864] + ldrh w4, [x21,2878] + ldrh w5, [x21,2880] + bl sprintf + add x19, x19, x0, sxtw + ldr x5, [x21,88] + adrp x1, .LC83 + mov x0, x19 + add x1, x1, :lo12:.LC83 + ldrh w2, [x5,584] + ldrh w3, [x5,586] + ldrh w4, [x5,588] + ldrh w5, [x5,590] bl sprintf add x0, x19, x0, sxtw ldr x21, [sp,32] @@ -3726,12 +3763,12 @@ ftl_gc_write_buf: ldrb w0, [x0,2] orr w0, w0, 2 strb w0, [x1,2] - add x0, x19, 2866 + add x0, x19, 2888 bl buf_add_tail - ldrb w0, [x19,2840] + ldrb w0, [x19,2856] add w0, w0, 1 uxtb w0, w0 - strb w0, [x19,2840] + strb w0, [x19,2856] ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3748,51 +3785,51 @@ ftl_read_buf: add x0, x19, :lo12:.LANCHOR0 str x21, [sp,32] mov x21, x1 - ldr w0, [x0,2824] + ldr w0, [x0,2840] cmp w20, w0 - bcc .L569 + bcc .L575 adrp x2, .LANCHOR1 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1288 - mov w2, 887 + mov w2, 905 bl printk -.L569: +.L575: add x3, x19, :lo12:.LANCHOR0 mov w2, 0 - add x3, x3, 768 -.L573: + add x3, x3, 784 +.L579: ldr w0, [x3,36] cmp w0, w20 - bne .L570 + bne .L576 ldrb w0, [x3,2] - tbz x0, 3, .L570 + tbz x0, 3, .L576 add x19, x19, :lo12:.LANCHOR0 ubfiz x2, x2, 6, 32 - add x19, x19, 768 + add x19, x19, 784 orr w1, w0, 4 add x19, x19, x2 strb w1, [x19,2] - tbnz x0, 0, .L571 + tbnz x0, 0, .L577 mov x0, x19 bl buf_remove_free -.L571: +.L577: mov x0, x19 - b .L572 -.L570: + b .L578 +.L576: add w2, w2, 1 add x3, x3, 64 cmp w2, 32 - bne .L573 + bne .L579 add x19, x19, :lo12:.LANCHOR0 mov x0, 0 - ldr w1, [x19,2868] + ldr w1, [x19,2892] cmn w1, #1 - bne .L572 - str w20, [x19,2868] - str x21, [x19,2872] -.L572: + bne .L578 + str w20, [x19,2892] + str x21, [x19,2896] +.L578: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -3809,17 +3846,17 @@ ftl_read_buf_free: adrp x0, .LANCHOR0 mov x1, x19 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 2880 + add x0, x0, 2904 bl buf_remove_buf ldrb w0, [x19,2] - tbz x0, 1, .L580 + tbz x0, 1, .L586 and w0, w0, -5 strb w0, [x19,2] - b .L579 -.L580: + b .L585 +.L586: mov x0, x19 bl buf_free -.L579: +.L585: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -3831,146 +3868,183 @@ gc_hook: ret .size gc_hook, .-gc_hook .align 2 + .global vpn_check + .type vpn_check, %function +vpn_check: + ret + .size vpn_check, .-vpn_check + .align 2 .global gc_add_sblk .type gc_add_sblk, %function gc_add_sblk: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x23, x24, [sp,48] - uxth w23, w0 - add x0, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] + adrp x22, .LANCHOR0 + uxth w21, w0 + add x0, x22, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + stp x23, x24, [sp,48] stp x25, x26, [sp,64] - uxth w21, w1 - uxth w22, w2 + uxth w23, w1 + uxth w20, w2 ldrh w0, [x0,56] - cmp w0, w23 - bhi .L584 + cmp w0, w21 + bhi .L591 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1304 - mov w2, 252 + mov w2, 258 bl printk -.L584: - add x6, x20, :lo12:.LANCHOR0 - uxtw x19, w23 +.L591: + add x6, x22, :lo12:.LANCHOR0 + uxtw x19, w21 lsl x25, x19, 1 adrp x24, .LANCHOR2 - ldr x0, [x6,72] + ldr x0, [x6,80] ldrh w26, [x0,x25] ldr w0, [x24,#:lo12:.LANCHOR2] - tbz x0, 8, .L585 + tbz x0, 8, .L592 ldr x0, [x6,64] - mov w1, w23 - ldrh w5, [x6,2944] - mov w2, w21 + mov w1, w21 + ldrh w5, [x6,2968] + mov w2, w23 add x0, x0, x19, lsl 2 - ldrh w6, [x6,2862] + ldrh w6, [x6,2878] mov w4, w26 ldrb w3, [x0,2] - adrp x0, .LC83 - add x0, x0, :lo12:.LC83 + adrp x0, .LC84 + add x0, x0, :lo12:.LC84 ubfx x3, x3, 5, 3 bl printk -.L585: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,64] +.L592: + add x3, x22, :lo12:.LANCHOR0 + ldr x0, [x3,64] add x0, x0, x19, lsl 2 ldrb w19, [x0,2] ands w19, w19, 224 - bne .L586 - cbz w26, .L587 + bne .L593 + cbz w26, .L594 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 257 + mov w2, 263 add x1, x1, 1304 add x0, x0, :lo12:.LC0 bl printk - b .L587 -.L586: - ldrh w2, [x1,2888] - add x3, x1, 2888 + b .L594 +.L593: + ldrh w1, [x3,2912] + add x6, x3, 2912 mov w19, 0 - cmp w2, w23 - beq .L587 - ldr x1, [x1,80] - ldrh w2, [x1,48] - cmp w2, w23 - beq .L587 - ldrh w2, [x1,16] - cmp w2, w23 - beq .L587 - ldrh w2, [x1,80] - cmp w2, w23 - beq .L587 - ldrh w5, [x3,56] - mov x2, 0 -.L588: - cmp w5, w2 - bls .L611 - add x2, x2, 1 - add x4, x3, x2, lsl 1 - ldrh w4, [x4,56] - cmp w4, w23 - bne .L588 + cmp w1, w21 + beq .L594 + ldr x3, [x3,88] + ldrh w1, [x3,48] + cmp w1, w21 + beq .L594 + ldrh w1, [x3,16] + cmp w1, w21 + beq .L594 + ldrh w1, [x3,80] + cmp w1, w21 + beq .L594 + ldrh w5, [x6,56] + mov x4, 0 +.L595: + cmp w5, w4 + bls .L626 + add x4, x4, 1 + add x1, x6, x4, lsl 1 + ldrh w1, [x1,56] + cmp w1, w21 + bne .L595 mov w19, 0 - b .L587 -.L611: - add x19, x1, 392 - cbnz w21, .L591 - sxtw x3, w22 - add x3, x1, x3, lsl 7 - add x19, x3, 136 -.L591: + b .L594 +.L626: + cbnz w23, .L597 + add x4, x22, :lo12:.LANCHOR0 + mov w19, w23 + ldrh w7, [x4,3240] + cmp w7, w21 + beq .L594 + mov x6, 0 +.L599: + add x1, x4, 3248 + ldrh w1, [x6,x1] + cmp w21, w1 + bne .L598 ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L592 - add x6, x20, :lo12:.LANCHOR0 + mov w19, 0 + tbz x1, 8, .L594 + ldr x3, [x4,80] + mov w1, w21 + ldrb w2, [x0,2] + adrp x0, .LC85 + mov w4, w21 + mov w5, w7 + ldrh w3, [x3,x25] + ubfx x2, x2, 5, 3 + add x0, x0, :lo12:.LC85 + bl printk + b .L594 +.L598: + add x6, x6, 2 + cmp x6, 16 + bne .L599 + sxtw x4, w20 + add x3, x3, x4, lsl 7 + add x19, x3, 136 + b .L601 +.L597: + add x19, x3, 392 +.L601: + ldr w1, [x24,#:lo12:.LANCHOR2] + tbz x1, 8, .L602 + add x6, x22, :lo12:.LANCHOR0 ldrb w3, [x0,2] - adrp x0, .LC83 - mov w1, w23 - add x0, x0, :lo12:.LC83 - mov w2, w21 - ldr x4, [x6,72] + adrp x0, .LC84 + mov w1, w21 + add x0, x0, :lo12:.LC84 + mov w2, w23 + ldr x4, [x6,80] ubfx x3, x3, 5, 3 - ldrh w6, [x6,2862] + ldrh w6, [x6,2878] ldrh w4, [x4,x25] bl printk -.L592: +.L602: mov x3, x19 add x0, x19, 128 mov w1, 65535 -.L595: +.L605: ldrh w2, [x3] cmp w2, w1 - bne .L593 - strh w23, [x3] - add x20, x20, :lo12:.LANCHOR0 - cbz w21, .L594 - ldr x1, [x20,80] + bne .L603 + strh w21, [x3] + add x22, x22, :lo12:.LANCHOR0 + cbz w23, .L604 + ldr x1, [x22,88] ldrh w0, [x1,124] add w0, w0, 1 strh w0, [x1,124] - b .L610 -.L594: - ldr x0, [x20,80] - add x22, x0, x22, uxth 1 - ldrh w0, [x22,120] + b .L625 +.L604: + ldr x0, [x22,88] + add x2, x0, x20, uxth 1 + ldrh w0, [x2,120] add w0, w0, 1 - strh w0, [x22,120] -.L610: + strh w0, [x2,120] +.L625: mov w19, 1 - b .L587 -.L593: + b .L594 +.L603: add x3, x3, 2 cmp x3, x0 - bne .L595 - b .L610 -.L587: + bne .L605 + b .L625 +.L594: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -3983,9 +4057,9 @@ gc_add_sblk: .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR0+3216 + adrp x1, .LANCHOR0+3264 ubfiz x0, x0, 2, 16 - ldr x1, [x1,#:lo12:.LANCHOR0+3216] + ldr x1, [x1,#:lo12:.LANCHOR0+3264] ldr w0, [x1,x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -4004,96 +4078,96 @@ gc_write_completed: stp x19, x20, [sp,16] stp x25, x26, [sp,64] str x27, [sp,80] - add x23, x21, 768 + add x23, x21, 784 add x22, x22, 1320 -.L614: - ldrb w0, [x21,3224] +.L629: + ldrb w0, [x21,3272] adrp x19, .LANCHOR0 cmp w0, 255 - beq .L636 + beq .L651 sxtw x25, w0 lsl x0, x25, 6 add x2, x23, x0 ldrb w0, [x23,x0] ldr w1, [x2,52] - strb w0, [x21,3224] + strb w0, [x21,3272] ldrh w24, [x2,48] - cbz w1, .L615 + cbz w1, .L630 ldr w2, [x2,40] - adrp x0, .LC84 + adrp x0, .LC86 mov w3, 1 - add x0, x0, :lo12:.LC84 - str w2, [x21,3208] - strh w3, [x21,3206] + add x0, x0, :lo12:.LC86 + str w2, [x21,3236] + strh w3, [x21,3232] bl printk adrp x0, .LC0 mov x1, x22 add x0, x0, :lo12:.LC0 - mov w2, 519 + mov w2, 539 bl printk -.L615: +.L630: add x0, x19, :lo12:.LANCHOR0 mov w20, 1 - ldrb w1, [x0,3225] + ldrb w1, [x0,3273] cmp w1, 3 - bne .L616 - ldr x0, [x0,80] + bne .L631 + ldr x0, [x0,88] ldrb w20, [x0,89] add w20, w20, w20, lsl 1 and w20, w20, 1023 -.L616: +.L631: adrp x0, .LANCHOR2 uxth x26, w24 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L617 + tbz x0, 8, .L632 add x0, x19, :lo12:.LANCHOR0 mov w1, w24 add x2, x0, x25, lsl 6 mov w3, w24 - ldr x4, [x0,3232] - adrp x0, .LC85 - ldrb w2, [x2,769] - add x0, x0, :lo12:.LC85 + ldr x4, [x0,3280] + adrp x0, .LC87 + ldrb w2, [x2,785] + add x0, x0, :lo12:.LC87 ldrb w4, [x4,x26] bl printk -.L617: +.L632: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,3232] + ldr x1, [x0,3280] add x0, x0, x25, lsl 6 ldrb w1, [x1,x26] - ldrb w0, [x0,769] + ldrb w0, [x0,785] cmp w1, w0 - beq .L618 + beq .L633 adrp x0, .LC0 mov x1, x22 add x0, x0, :lo12:.LC0 - mov w2, 526 + mov w2, 546 bl printk -.L618: +.L633: add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 768 + add x1, x2, 784 add x0, x1, x25, lsl 6 ldrb w0, [x0,61] cmp w0, 3 - beq .L619 - ldrb w0, [x2,3225] + beq .L634 + ldrb w0, [x2,3273] cmp w0, 3 - bne .L619 - ldrb w0, [x2,3240] - cbnz w0, .L619 - ldr x3, [x2,3232] - b .L620 -.L619: + bne .L634 + ldrb w0, [x2,3288] + cbnz w0, .L634 + ldr x3, [x2,3280] + b .L635 +.L634: add x19, x19, :lo12:.LANCHOR0 mov w25, 0 mov w26, -1 - add x27, x19, 768 - strh w24, [x19,3204] -.L621: + add x27, x19, 784 + strh w24, [x19,3228] +.L636: cmp w20, w25, uxth - bls .L614 + bls .L629 add w1, w25, w24 - ldr x2, [x19,3232] + ldr x2, [x19,3280] add w25, w25, 1 ldrb w0, [x2,x1] strb w26, [x2,x1] @@ -4101,20 +4175,20 @@ gc_write_completed: add x0, x27, x0 strb wzr, [x0,61] bl buf_free - ldrb w0, [x19,2895] + ldrb w0, [x19,2919] sub w0, w0, #1 - strb w0, [x19,2895] - b .L621 -.L620: + strb w0, [x19,2919] + b .L636 +.L635: cmp w20, w0, uxth - bls .L614 + bls .L629 add w2, w0, w24 add w0, w0, 1 ldrb w2, [x3,x2] add x2, x1, x2, lsl 6 strb wzr, [x2,61] - b .L620 -.L636: + b .L635 +.L651: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -4129,51 +4203,51 @@ gc_write_completed: gc_get_src_blk: adrp x3, .LANCHOR0 add x0, x3, :lo12:.LANCHOR0 - ldr x1, [x0,80] - ldrb w0, [x0,3241] + ldr x1, [x0,88] + ldrb w0, [x0,3289] ldrh w4, [x1,124] - cbz w4, .L638 + cbz w4, .L653 add x1, x1, 392 mov w2, 1 - b .L639 -.L638: + b .L654 +.L653: sxtw x2, w0 add x0, x1, x2, lsl 1 ldrh w5, [x0,120] mov w0, 65535 - cbz w5, .L640 + cbz w5, .L655 add x1, x1, x2, lsl 7 mov w2, w4 add x1, x1, 136 -.L639: +.L654: add x4, x1, 128 mov w5, 65535 -.L643: +.L658: ldrh w0, [x1] cmp w0, w5 - beq .L641 + beq .L656 mov w4, -1 strh w4, [x1] add x3, x3, :lo12:.LANCHOR0 - cbz w2, .L642 - ldr x2, [x3,80] + cbz w2, .L657 + ldr x2, [x3,88] ldrh w1, [x2,124] sub w1, w1, #1 strh w1, [x2,124] - b .L640 -.L642: - ldrb w1, [x3,3241] - ldr x2, [x3,80] + b .L655 +.L657: + ldrb w1, [x3,3289] + ldr x2, [x3,88] add x1, x2, x1, lsl 1 ldrh w2, [x1,120] sub w2, w2, #1 strh w2, [x1,120] - b .L640 -.L641: + b .L655 +.L656: add x1, x1, 2 cmp x1, x4 - bne .L643 -.L640: + bne .L658 +.L655: ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 @@ -4187,59 +4261,59 @@ gc_free_temp_buf: adrp x19, .LANCHOR0 str x21, [sp,32] add x2, x19, :lo12:.LANCHOR0 - ldrb w3, [x2,2895] - cbz w3, .L648 - ldrb w3, [x2,2818] + ldrb w3, [x2,2919] + cbz w3, .L663 + ldrb w3, [x2,2834] cmp w3, 1 - bhi .L648 - ldrh w4, [x2,3242] + bhi .L663 + ldrh w4, [x2,3290] mov x20, x2 - ldrb w0, [x2,3244] - add x2, x2, 768 - ldrh w1, [x2,2436] + ldrb w0, [x2,3292] + add x2, x2, 784 + ldrh w1, [x2,2444] mul w0, w4, w0 add w3, w1, 24 - ldr x4, [x2,2464] + ldr x4, [x2,2496] cmp w0, w3 csel w3, w0, w3, ls -.L649: +.L664: cmp w1, w3 - bcs .L662 + bcs .L677 uxtw x21, w1 ldrb w0, [x4,x21] cmp w0, 255 - beq .L650 + beq .L665 sbfiz x0, x0, 6, 32 add x0, x2, x0 ldrb w5, [x0,61] - cbnz w5, .L650 + cbnz w5, .L665 str x1, [x29,56] bl buf_free adrp x0, .LANCHOR2 ldr x1, [x29,56] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L651 - ldr x2, [x20,3232] - adrp x0, .LC86 - add x0, x0, :lo12:.LC86 + tbz x0, 8, .L666 + ldr x2, [x20,3280] + adrp x0, .LC88 + add x0, x0, :lo12:.LC88 ldrb w2, [x2,x21] bl printk -.L651: +.L666: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,3232] + ldr x0, [x19,3280] strb w1, [x0,x21] - ldrb w0, [x19,2895] + ldrb w0, [x19,2919] sub w0, w0, #1 - strb w0, [x19,2895] + strb w0, [x19,2919] mov w0, 1 - b .L648 -.L650: + b .L663 +.L665: add w1, w1, 1 - b .L649 -.L662: + b .L664 +.L677: mov w0, 0 -.L648: +.L663: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 64 @@ -4250,17 +4324,17 @@ gc_free_temp_buf: .type print_gc_debug_info, %function print_gc_debug_info: adrp x6, .LANCHOR0 - adrp x0, .LC87 + adrp x0, .LC89 add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC87 + add x0, x0, :lo12:.LC89 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x6,2888] - ldrh w2, [x6,2890] - ldrh w3, [x6,3202] - ldrb w4, [x6,2818] - ldrb w5, [x6,2895] - ldrh w6, [x6,2856] + ldrh w1, [x6,2912] + ldrh w2, [x6,2914] + ldrh w3, [x6,3226] + ldrb w4, [x6,2834] + ldrb w5, [x6,2919] + ldrh w6, [x6,2872] bl printk ldp x29, x30, [sp], 16 ret @@ -4271,24 +4345,26 @@ print_gc_debug_info: zftl_get_gc_node: stp x29, x30, [sp, -16]! uxth w1, w1 - adrp x2, .LANCHOR0 + uxth w2, w0 cmp w1, 5 add x29, sp, 0 - uxth w3, w0 - add x2, x2, :lo12:.LANCHOR0 - bne .L665 - ldr x0, [x2,3248] - b .L668 -.L665: + bne .L680 + adrp x0, .LANCHOR0+3296 + ldr x0, [x0,#:lo12:.LANCHOR0+3296] + b .L683 +.L680: cmp w1, 2 - bne .L667 - ldr x0, [x2,3256] - b .L668 -.L667: - ldr x0, [x2,3264] -.L668: - mov w1, w3 + bne .L682 + mov w0, w2 + bl zftl_get_gc_node.part.13 + b .L684 +.L682: + adrp x0, .LANCHOR0+3304 + ldr x0, [x0,#:lo12:.LANCHOR0+3304] +.L683: + mov w1, w2 bl _list_get_gc_head_node.isra.5 +.L684: uxth w0, w0 ldp x29, x30, [sp], 16 ret @@ -4309,26 +4385,26 @@ gc_search_src_blk: stp x27, x28, [sp,80] uxtb w24, w1 uxtb w22, w2 - ldr x1, [x0,80] + ldr x1, [x0,88] add x1, x1, x21, sxtw 1 ldrh w19, [x1,120] - cbnz w19, .L714 - cbnz w21, .L672 - adrp x26, .LC88 - strh w21, [x0,3272] + cbnz w19, .L732 + cbnz w21, .L688 + adrp x26, .LC90 + strh w21, [x0,3312] mov w19, w21 mov w25, w21 uxth w23, w22 mov w27, 65535 adrp x28, .LANCHOR2 - add x26, x26, :lo12:.LC88 -.L673: + add x26, x26, :lo12:.LC90 +.L689: cmp w25, w23 - bcs .L678 + bcs .L694 add x3, x20, :lo12:.LANCHOR0 mov w1, 3 str x3, [x29,96] - ldrh w2, [x3,3272] + ldrh w2, [x3,3312] str x2, [x29,104] mov w0, w2 bl zftl_get_gc_node @@ -4339,12 +4415,12 @@ gc_search_src_blk: mov w4, w1 add w2, w2, 1 uxth w2, w2 - strh w2, [x3,3272] - beq .L674 + strh w2, [x3,3312] + beq .L690 ldr w0, [x28,#:lo12:.LANCHOR2] uxtw x5, w1 - tbz x0, 8, .L675 - ldr x3, [x3,72] + tbz x0, 8, .L691 + ldr x3, [x3,80] mov x0, x26 str x4, [x29,96] str x5, [x29,104] @@ -4352,224 +4428,232 @@ gc_search_src_blk: bl printk ldr x4, [x29,96] ldr x5, [x29,104] -.L675: +.L691: add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,72] + ldr x0, [x1,80] ldrh w2, [x0,x5,lsl 1] - ldrh w0, [x1,2862] + ldrh w0, [x1,2878] cmp w2, w0 - bcs .L676 + bcs .L692 mov w1, 0 mov w0, w4 mov w2, w1 bl gc_add_sblk - cbz w0, .L677 + cbz w0, .L693 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L677 - b .L678 -.L676: - strh wzr, [x1,3272] - b .L678 -.L674: - strh wzr, [x3,3272] - b .L678 -.L677: + bls .L693 + b .L694 +.L692: + strh wzr, [x1,3312] + b .L694 +.L690: + strh wzr, [x3,3312] + b .L694 +.L693: add w25, w25, 1 uxth w25, w25 - b .L673 -.L678: - tbz x24, 1, .L680 + b .L689 +.L694: + tbz x24, 1, .L696 mov w26, 0 mov w27, 65535 -.L681: +.L697: cmp w26, w23 - beq .L685 + beq .L701 add x25, x20, :lo12:.LANCHOR0 mov w1, 5 - ldrh w28, [x25,3274] + ldrh w28, [x25,3314] mov w0, w28 add w28, w28, 1 bl zftl_get_gc_node uxth w1, w0 - strh w28, [x25,3274] + strh w28, [x25,3314] cmp w1, w27 - beq .L682 + beq .L698 ubfiz x1, x1, 1, 16 - ldr x2, [x25,72] + ldr x2, [x25,80] ldrh w2, [x2,x1] - ldrh w1, [x25,2864] + ldrh w1, [x25,2880] cmp w2, w1 - bcs .L683 + bcs .L698 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L684 + cbz w0, .L700 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bls .L684 - b .L687 -.L683: - strh wzr, [x25,3274] - b .L685 -.L682: - strh wzr, [x25,3272] - b .L685 -.L684: + bls .L700 + b .L703 +.L698: + strh wzr, [x25,3314] + b .L701 +.L700: add w26, w26, 1 uxth w26, w26 - b .L681 -.L685: + b .L697 +.L701: cmp w19, w23 - bcs .L687 + bcs .L703 + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0,3290] + ldrb w4, [x0,3292] + ldrh w2, [x0,3316] + ldrh w3, [x0,2880] + mul w1, w1, w4 + sub w1, w1, w2, lsr 2 + cmp w3, w1 + bge .L696 + add w2, w3, w2, lsr 3 + strh w2, [x0,2880] + b .L696 +.L703: add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x1,3276] - ldrb w4, [x1,3244] - lsr w3, w0, 3 - ldrh w2, [x1,2864] - mul w0, w0, w4 - sub w0, w0, w3 + ldrh w2, [x1,2880] + ldrh w0, [x1,3316] cmp w2, w0 - bge .L680 - add w2, w3, w2 - strh w2, [x1,2864] - b .L680 -.L687: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,2864] - ldrh w0, [x1,3276] - cmp w2, w0 - bls .L680 + bls .L696 sub w0, w2, w0, lsr 3 - strh w0, [x1,2864] -.L680: - tbz x24, 0, .L688 + strh w0, [x1,2880] +.L696: + tbz x24, 0, .L704 cmp w19, w23 - bcs .L688 - mov w25, 64 + bcs .L704 + mov w25, 0 mov w27, 65535 -.L692: - add x26, x20, :lo12:.LANCHOR0 - ldrh w28, [x26,3278] - ldr x0, [x26,3256] - mov w1, w28 - add w28, w28, 1 - bl _list_get_gc_head_node.isra.5 - strh w28, [x26,3278] +.L705: + cmp w25, w23 + beq .L708 + add x28, x20, :lo12:.LANCHOR0 + ldrh w26, [x28,3318] + mov w0, w26 + add w26, w26, 1 + bl zftl_get_gc_node.part.13 + strh w26, [x28,3318] cmp w27, w0, uxth - beq .L689 + beq .L706 mov w1, 0 mov w2, w1 bl gc_add_sblk - cbz w0, .L690 + cbz w0, .L707 add w19, w19, 1 uxth w19, w19 cmp w19, w23 - bcc .L690 - b .L693 -.L689: - strh wzr, [x26,3278] - b .L691 -.L690: - sub w25, w25, #1 + bcc .L707 + b .L710 +.L706: + strh wzr, [x28,3318] + b .L708 +.L707: + add w25, w25, 1 uxth w25, w25 - cbnz w25, .L692 -.L691: + b .L705 +.L708: cmp w19, w23 - bcs .L693 + bcs .L710 add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,2862] - ldrh w1, [x20,3276] + ldrh w1, [x20,2878] + ldrh w0, [x20,3316] cmp w1, w0 - bls .L688 - add w0, w0, 8 - b .L771 -.L693: + bcs .L704 + add w0, w1, w0, lsr 3 + b .L785 +.L710: add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,3276] - ldrh w0, [x20,2862] - cmp w0, w1, lsr 1 - bls .L688 - sub w0, w0, #8 -.L771: - strh w0, [x20,2862] - b .L688 -.L672: + ldrh w0, [x20,3316] + ldrh w1, [x20,2878] + cmp w1, w0, lsr 1 + bls .L704 + sub w0, w1, w0, lsr 3 +.L785: + strh w0, [x20,2878] + b .L704 +.L688: and w1, w24, 1 - strh w19, [x0,3278] + strh w19, [x0,3230] + strh w19, [x0,3320] str w1, [x29,104] - tbz x24, 0, .L694 - ldrh w2, [x0,3280] - ldrh w1, [x0,2836] - cmp w1, w2, lsr 1 - bcc .L717 - ldrh w0, [x0,2834] + tbz x24, 0, .L711 + ldrh w2, [x0,3322] + ldrh w1, [x0,2852] + cmp w1, w2, lsr 2 + bcc .L712 + ldrh w0, [x0,2850] cmp w0, w1 - bls .L696 -.L717: + bls .L713 +.L712: + add x23, x20, :lo12:.LANCHOR0 + mov w19, 0 + ldrh w0, [x23,2850] + lsr w0, w0, 2 + strh w0, [x23,3318] + mov w0, 0 + bl zftl_get_gc_node.part.13 + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L714 + ubfiz x1, x1, 1, 16 + ldr x3, [x23,80] + ldrh w2, [x23,3316] + ldrh w1, [x3,x1] + cmp w1, w2, lsr 2 + bcs .L714 + mov w1, w19 + mov w2, w21 + strh w19, [x23,3318] + bl gc_add_sblk + cmp w0, w19 + cset w19, ne +.L714: mov w23, 64 mov w26, 65535 uxth w27, w22 -.L748: - add x28, x20, :lo12:.LANCHOR0 - ldrh w25, [x28,3278] - ldr x0, [x28,3256] - mov w1, w25 - bl _list_get_gc_head_node.isra.5 +.L716: + add x25, x20, :lo12:.LANCHOR0 + ldrh w28, [x25,3318] + mov w0, w28 + add w28, w28, 1 + bl zftl_get_gc_node.part.13 + strh w28, [x25,3318] cmp w26, w0, uxth - add w2, w25, 1 - strh w2, [x28,3278] - beq .L697 + beq .L713 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L698 + cbz w0, .L715 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcc .L698 - b .L696 -.L697: - strh wzr, [x28,3278] - b .L696 -.L698: + bcs .L713 +.L715: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L748 -.L696: + cbnz w23, .L716 +.L713: add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3280] - ldrh w1, [x0,2836] - cmp w1, w2, lsr 1 - bls .L694 - strh wzr, [x0,3272] - mov w23, 64 - mov w26, 65535 - uxth w27, w22 -.L700: - add x25, x20, :lo12:.LANCHOR0 - mov w1, 3 - ldrh w28, [x25,3272] - mov w0, w28 - add w28, w28, 1 - bl zftl_get_gc_node - strh w28, [x25,3272] - cmp w26, w0, uxth - bne .L772 -.L694: - tbz x24, 1, .L701 + ldrh w2, [x0,3322] + ldrh w1, [x0,2852] + cmp w1, w2, lsr 3 + bhi .L733 + ldrh w0, [x0,2850] + add w0, w0, 8 + cmp w1, w0 + bgt .L733 +.L711: + tbz x24, 1, .L719 add x0, x20, :lo12:.LANCHOR0 mov w25, 64 mov w26, 0 mov w27, 65535 uxth w28, w22 - strh wzr, [x0,3274] -.L706: + strh wzr, [x0,3314] +.L724: add x23, x20, :lo12:.LANCHOR0 mov w1, 5 - ldrh w2, [x23,3274] + ldrh w2, [x23,3314] str x2, [x29,96] mov w0, w2 bl zftl_get_gc_node @@ -4577,137 +4661,152 @@ gc_search_src_blk: ldr x2, [x29,96] cmp w1, w27 add w2, w2, 1 - strh w2, [x23,3274] - beq .L702 + strh w2, [x23,3314] + beq .L720 + cmp w22, 1 + bne .L721 + ldrh w3, [x23,3290] + ldrb w2, [x23,3292] + mul w2, w2, w3 + ldrh w3, [x23,3316] + sub w2, w2, w3, lsr 3 + strh w2, [x23,2874] +.L721: + add x2, x20, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x23,72] - ldrh w2, [x2,x1] - ldrh w1, [x23,2858] - cmp w2, w1 - bcs .L703 + ldr x3, [x2,80] + ldrh w3, [x3,x1] + ldrh w1, [x2,2874] + cmp w3, w1 + bcs .L722 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L704 + cbz w0, .L723 add w19, w19, 1 add w26, w26, 1 uxth w19, w19 uxth w26, w26 cmp w19, w28 - bcc .L704 - b .L705 -.L703: - strh wzr, [x23,3274] - b .L705 -.L702: - strh wzr, [x23,3272] - b .L705 -.L704: - sub w3, w25, #1 - uxth w25, w3 - cbnz w25, .L706 -.L705: + bcc .L723 + b .L720 +.L722: + strh wzr, [x2,3314] + b .L720 +.L723: + sub w0, w25, #1 + uxth w25, w0 + cbnz w25, .L724 +.L720: cmp w19, w22 - bcc .L707 - cbnz w26, .L708 + bcc .L725 + cbnz w26, .L726 add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,2838] - ldrh w0, [x0,3282] + ldrh w1, [x0,2854] + ldrh w0, [x0,3324] cmp w1, w0 - bls .L708 -.L707: + bls .L726 +.L725: add x0, x20, :lo12:.LANCHOR0 - ldrb w3, [x0,3244] - ldrh w2, [x0,3242] - ldrh w1, [x0,2858] - mul w2, w2, w3 - ldrh w3, [x0,3276] - sub w2, w2, w3, lsr 3 - cmp w1, w2 - bge .L701 - add w1, w1, 4 - b .L770 -.L708: + ldrh w1, [x0,3290] + ldrb w4, [x0,3292] + ldrh w3, [x0,3316] + ldrh w2, [x0,2874] + mul w1, w1, w4 + lsr w3, w3, 3 + sub w1, w1, w3 + cmp w2, w1 + bge .L719 + add w2, w3, w2 + strh w2, [x0,2874] + b .L719 +.L726: add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,3276] - ldrb w3, [x0,3244] - ldrh w1, [x0,2858] - mul w2, w2, w3 - cmp w1, w2 - ble .L701 - sub w1, w1, #4 -.L770: - strh w1, [x0,2858] -.L701: + ldrh w1, [x0,3316] + ldrb w2, [x0,3292] + ldrh w3, [x0,2874] + mul w2, w1, w2 + cmp w3, w2 + ble .L719 + sub w1, w3, w1, lsr 3 + strh w1, [x0,2874] +.L719: ldr w0, [x29,104] - cbz w0, .L688 + cbz w0, .L704 add x0, x20, :lo12:.LANCHOR0 - mov w23, 64 - mov w25, 65535 - uxth w26, w22 - strh wzr, [x0,3274] -.L712: - add x27, x20, :lo12:.LANCHOR0 + mov w25, 64 + mov w26, 65535 + uxth w27, w22 + strh wzr, [x0,3312] +.L730: + add x23, x20, :lo12:.LANCHOR0 mov w1, 3 - ldrh w0, [x27,3274] + ldrh w28, [x23,3312] + mov w0, w28 + add w28, w28, 1 bl zftl_get_gc_node uxth w1, w0 - cmp w1, w25 - beq .L709 - ldr x2, [x27,72] + strh w28, [x23,3312] + cmp w1, w26 + beq .L727 ubfiz x1, x1, 1, 16 + ldr x2, [x23,80] ldrh w1, [x2,x1] - ldrh w2, [x27,2860] - cmp w2, w1 - bls .L719 cmp w1, 2 - bhi .L710 -.L719: + bls .L728 + ldrh w2, [x23,2876] + cmp w2, w1 + bls .L728 + ldrh w2, [x23,3322] + ldrh w1, [x23,2852] + cmp w1, w2, lsr 1 + bls .L727 +.L728: mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L710 + cbz w0, .L729 add w19, w19, 1 uxth w19, w19 - cmp w19, w26 - bcs .L709 -.L710: - sub w23, w23, #1 - uxth w23, w23 - cbnz w23, .L712 -.L709: + cmp w19, w27 + bcs .L727 +.L729: + sub w25, w25, #1 + uxth w25, w25 + cbnz w25, .L730 +.L727: cmp w19, w22 add x20, x20, :lo12:.LANCHOR0 - bcs .L713 - ldrh w1, [x20,3276] - ldrh w0, [x20,2860] - cmp w0, w1, lsr 1 - bls .L688 - sub w0, w0, #4 - strh w0, [x20,2860] - b .L688 -.L713: - ldrh w0, [x20,3276] - ldrb w2, [x20,3244] - ldrh w1, [x20,2860] - mul w0, w0, w2 + bcs .L731 + ldrh w0, [x20,3316] + ldrh w1, [x20,2876] + cmp w1, w0, lsr 1 + bls .L704 + sub w0, w1, w0, lsr 3 + strh w0, [x20,2876] + b .L704 +.L731: + ldrh w1, [x20,3316] + ldrb w0, [x20,3292] + ldrh w2, [x20,2876] + mul w0, w1, w0 sub w0, w0, #32 - cmp w1, w0 - bge .L688 - add w1, w1, 4 - strh w1, [x20,2860] -.L688: + cmp w2, w0 + bge .L704 + add w1, w2, w1, lsr 3 + strh w1, [x20,2876] +.L704: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L714 - adrp x0, .LC89 + tbz x0, 8, .L732 + adrp x0, .LC91 mov w1, w21 - add x0, x0, :lo12:.LC89 + add x0, x0, :lo12:.LC91 mov w2, w24 mov w3, w19 mov w4, w22 bl printk -.L714: +.L732: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -4716,20 +4815,35 @@ gc_search_src_blk: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 112 ret -.L772: +.L733: + add x0, x20, :lo12:.LANCHOR0 + mov w23, 64 + mov w26, 65535 + uxth w27, w22 + strh wzr, [x0,3312] +.L718: + add x25, x20, :lo12:.LANCHOR0 + mov w1, 3 + ldrh w28, [x25,3312] + mov w0, w28 + add w28, w28, 1 + bl zftl_get_gc_node + strh w28, [x25,3312] + cmp w26, w0, uxth + beq .L711 mov w1, 0 mov w2, w21 bl gc_add_sblk - cbz w0, .L699 + cbz w0, .L717 add w19, w19, 1 uxth w19, w19 cmp w19, w27 - bcs .L694 -.L699: + bcs .L711 +.L717: sub w23, w23, #1 uxth w23, w23 - cbnz w23, .L700 - b .L694 + cbnz w23, .L718 + b .L711 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_insert_free_list @@ -4744,20 +4858,20 @@ zftl_insert_free_list: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L774 - add x0, x2, 3288 - add x2, x2, 2828 - b .L777 -.L774: + bne .L787 + add x0, x2, 3328 + add x2, x2, 2844 + b .L790 +.L787: cmp w0, 16 - bne .L776 - add x0, x2, 3296 - add x2, x2, 2830 - b .L777 -.L776: - add x0, x2, 3304 - add x2, x2, 2832 -.L777: + bne .L789 + add x0, x2, 3336 + add x2, x2, 2846 + b .L790 +.L789: + add x0, x2, 3344 + add x2, x2, 2848 +.L790: bl _insert_free_list ldp x29, x30, [sp], 16 ret @@ -4776,82 +4890,224 @@ zftl_insert_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L779 - add x0, x2, 3256 - add x2, x2, 2834 - b .L782 -.L779: + bne .L792 + add x0, x2, 96 + add x2, x2, 2850 + b .L795 +.L792: cmp w3, 96 - bne .L781 - add x0, x2, 3264 - add x2, x2, 2836 - b .L782 -.L781: + bne .L794 + add x0, x2, 3304 + add x2, x2, 2852 + b .L795 +.L794: cmp w3, 160 - bne .L778 - add x0, x2, 3248 - add x2, x2, 2838 -.L782: + bne .L791 + add x0, x2, 3296 + add x2, x2, 2854 +.L795: bl _insert_data_list -.L778: +.L791: ldp x29, x30, [sp], 16 ret .size zftl_insert_data_list, .-zftl_insert_data_list .align 2 + .global zftl_gc_get_free_sblk + .type zftl_gc_get_free_sblk, %function +zftl_gc_get_free_sblk: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x20, .LANCHOR0 + str x23, [sp,48] + add x23, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + uxth w21, w0 + uxth w22, w1 + ldr x0, [x23,88] + ldrh w19, [x0,588] + cbnz w21, .L797 + mov w0, 65535 + cmp w19, w0 + beq .L797 + adrp x0, .LC92 + mov w1, w19 + add x0, x0, :lo12:.LC92 + bl printk + ldr x0, [x23,88] + mov w1, -1 + strh w1, [x0,588] + b .L798 +.L797: + add x0, x20, :lo12:.LANCHOR0 + ldrh w3, [x0,2846] + ldrh w1, [x0,2848] + cmp w3, w1 + bls .L799 + mov w1, 0 + mov x2, x0 + lsr w3, w3, 3 + cmp w21, w1 + csel w1, w3, w1, ne + add x0, x0, 3336 + add x2, x2, 2846 + b .L817 +.L799: + lsr w1, w1, 2 + cbz w21, .L803 + mov w1, 7 + mul w3, w3, w1 + mov w1, 8 + sdiv w3, w3, w1 + uxth w1, w3 +.L803: + add x2, x20, :lo12:.LANCHOR0 + add x0, x2, 3344 + add x2, x2, 2848 +.L817: + bl _list_pop_index_node + uxth w19, w0 + mov w0, 65535 + cmp w19, w0 + bne .L804 + add x5, x20, :lo12:.LANCHOR0 + adrp x0, .LC93 + add x0, x0, :lo12:.LC93 + mov w1, w19 + mov w2, w22 + ldr x3, [x5,3328] + ldrh w4, [x5,2844] + ldrh w5, [x5,2848] + bl printk +.L804: + cbz w21, .L798 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L798 + add x20, x20, :lo12:.LANCHOR0 + uxtw x6, w19 + lsl x0, x6, 2 + ldr x1, [x20,64] + ldr x7, [x20,80] + add x2, x1, x0 + ldr w4, [x1,x0] + ldrh w5, [x1,x0] + adrp x0, .LC94 + ldrb w3, [x2,2] + add x0, x0, :lo12:.LC94 + ldrh w6, [x7,x6,lsl 1] + mov w1, w19 + ubfx x2, x3, 5, 3 + ubfx x4, x4, 11, 8 + ubfx x3, x3, 3, 2 + and w5, w5, 2047 + bl printk +.L798: + mov w0, w19 + ldr x23, [sp,48] + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x29, x30, [sp], 64 + ret + .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk + .align 2 .global zftl_get_free_sblk .type zftl_get_free_sblk, %function zftl_get_free_sblk: stp x29, x30, [sp, -48]! - uxth w4, w0 + uxth w3, w0 add x29, sp, 0 - str x21, [sp,32] + stp x21, x22, [sp,32] uxth w21, w1 stp x19, x20, [sp,16] cmp w21, 5 adrp x19, .LANCHOR0 + bne .L819 + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0,2846] + ldrh w1, [x0,2848] + cmp w2, w1 + bcc .L820 + ldrh w0, [x0,2844] + cmp w0, w2 + bls .L821 + cbz w1, .L821 +.L820: add x2, x19, :lo12:.LANCHOR0 - bne .L784 - ldrh w1, [x2,2830] - ldrh w0, [x2,2832] - cmp w1, w0 - bls .L785 - add x0, x2, 3296 - mov w1, w4 - add x2, x2, 2830 - b .L788 -.L785: + lsr w1, w1, 1 + add x0, x2, 3344 + b .L849 +.L821: add x2, x19, :lo12:.LANCHOR0 - mov w1, w4 - add x0, x2, 3304 - add x2, x2, 2832 - b .L788 -.L784: - ldrh w1, [x2,2828] - ldrh w0, [x2,2832] - cmp w1, w0 - bls .L785 - add x0, x2, 3288 - mov w1, w4 - add x2, x2, 2828 -.L788: - bl _list_pop_index_node - uxth w20, w0 + mov w1, 0 + add x0, x2, 3336 + add x2, x2, 2846 + b .L848 +.L819: + add x22, x19, :lo12:.LANCHOR0 + cmp w21, 1 + ldr x0, [x22,88] + ldrh w20, [x0,590] + beq .L823 mov w0, 65535 cmp w20, w0 - bne .L787 + beq .L823 + adrp x0, .LC95 + mov w1, w20 + add x0, x0, :lo12:.LC95 + bl printk + ldr x0, [x22,88] + mov w1, -1 + strh w1, [x0,590] + b .L824 +.L823: + add x2, x19, :lo12:.LANCHOR0 + ldrh w0, [x2,2844] + ldrh w1, [x2,2848] + cmp w0, w1 + bcc .L825 + ldrh w2, [x2,2846] + cmp w2, w0 + bls .L826 + cbz w1, .L826 +.L825: + lsr w1, w1, 1 + cmp w21, 1 + csel w3, w1, w3, eq + add x2, x19, :lo12:.LANCHOR0 + add x0, x2, 3344 + mov w1, w3 +.L849: + add x2, x2, 2848 + b .L848 +.L826: + lsr w0, w0, 1 + cmp w21, 1 + csel w3, w0, w3, eq + add x2, x19, :lo12:.LANCHOR0 + add x0, x2, 3328 + mov w1, w3 + add x2, x2, 2844 +.L848: + bl _list_pop_index_node + uxth w0, w0 + mov w20, w0 + mov w0, 65535 + cmp w20, w0 + bne .L824 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC90 - add x0, x0, :lo12:.LC90 + adrp x0, .LC93 + add x0, x0, :lo12:.LC93 mov w1, w20 mov w2, w21 - ldr x3, [x19,3288] - ldrh w4, [x19,2828] - ldrh w5, [x19,2832] + ldr x3, [x19,3328] + ldrh w4, [x19,2844] + ldrh w5, [x19,2848] bl printk -.L787: +.L824: mov w0, w20 - ldr x21, [sp,32] ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 ret .size zftl_get_free_sblk, .-zftl_get_free_sblk @@ -4869,24 +5125,24 @@ zftl_remove_data_node: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L790 - add x0, x2, 3256 - add x2, x2, 2834 - b .L793 -.L790: + bne .L851 + add x0, x2, 96 + add x2, x2, 2850 + b .L854 +.L851: cmp w3, 96 - bne .L792 - add x0, x2, 3264 - add x2, x2, 2836 - b .L793 -.L792: + bne .L853 + add x0, x2, 3304 + add x2, x2, 2852 + b .L854 +.L853: cmp w3, 160 - bne .L789 - add x0, x2, 3248 - add x2, x2, 2838 -.L793: + bne .L850 + add x0, x2, 3296 + add x2, x2, 2854 +.L854: bl _list_remove_node -.L789: +.L850: ldp x29, x30, [sp], 16 ret .size zftl_remove_data_node, .-zftl_remove_data_node @@ -4903,20 +5159,20 @@ zftl_remove_free_node: add x0, x0, x1, uxth 2 ldrb w0, [x0,2] ands w0, w0, 24 - bne .L795 - add x0, x2, 3288 - add x2, x2, 2828 - b .L798 -.L795: + bne .L856 + add x0, x2, 3328 + add x2, x2, 2844 + b .L859 +.L856: cmp w0, 16 - bne .L797 - add x0, x2, 3296 - add x2, x2, 2830 - b .L798 -.L797: - add x0, x2, 3304 - add x2, x2, 2832 -.L798: + bne .L858 + add x0, x2, 3336 + add x2, x2, 2846 + b .L859 +.L858: + add x0, x2, 3344 + add x2, x2, 2848 +.L859: bl _list_remove_node ldp x29, x30, [sp], 16 ret @@ -4935,24 +5191,24 @@ zftl_list_update_data_list: ldrb w3, [x0,2] and w3, w3, 224 cmp w3, 64 - bne .L800 - add x0, x2, 3256 - add x2, x2, 2834 - b .L803 -.L800: + bne .L861 + add x0, x2, 96 + add x2, x2, 2850 + b .L864 +.L861: cmp w3, 96 - bne .L802 - add x0, x2, 3264 - add x2, x2, 2836 - b .L803 -.L802: + bne .L863 + add x0, x2, 3304 + add x2, x2, 2852 + b .L864 +.L863: cmp w3, 160 - bne .L799 - add x0, x2, 3248 - add x2, x2, 2838 -.L803: + bne .L860 + add x0, x2, 3296 + add x2, x2, 2854 +.L864: bl _list_update_data_list -.L799: +.L860: ldp x29, x30, [sp], 16 ret .size zftl_list_update_data_list, .-zftl_list_update_data_list @@ -4965,25 +5221,25 @@ print_list_info: add x29, sp, 32 stp x19, x20, [sp,48] mov x19, x0 - adrp x0, .LC91 + adrp x0, .LC96 stp x21, x22, [sp,64] stp x23, x24, [sp,80] stp x25, x26, [sp,96] - add x0, x0, :lo12:.LC91 + add x0, x0, :lo12:.LC96 ldrh w2, [x1] ldr x1, [x19] bl printk ldr x19, [x19] - cbz x19, .L804 + cbz x19, .L865 mov x22, -6148914691236517206 - adrp x23, .LC92 + adrp x23, .LC97 mov w20, 0 adrp x25, .LANCHOR0 add x22, x22, 1 - add x23, x23, :lo12:.LC92 + add x23, x23, :lo12:.LC97 mov w26, 65535 mov w24, 6 -.L807: +.L868: add x21, x25, :lo12:.LANCHOR0 ldrh w3, [x19] ldrh w4, [x19,2] @@ -5007,21 +5263,23 @@ print_list_info: mov w1, w20 and w0, w0, 2047 str w0, [sp,8] - ldr x0, [x21,72] + ldr x0, [x21,80] ldrh w0, [x0,x8,lsl 1] str w0, [sp,16] mov x0, x23 bl printk ldrh w19, [x19] cmp w19, w26 - beq .L804 - add w20, w20, 1 + beq .L865 ldr x0, [x21,8] + add w20, w20, 1 umull x19, w19, w24 - cmp w20, 33 + uxth w20, w20 add x19, x0, x19 - bne .L807 -.L804: + ldrh w0, [x21,3352] + cmp w0, w20 + bcs .L868 +.L865: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -5040,29 +5298,77 @@ dump_all_list_info: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3288 - add x1, x19, 2828 + add x0, x19, 3328 + add x1, x19, 2844 bl print_list_info - add x0, x19, 3296 - add x1, x19, 2830 + add x0, x19, 3336 + add x1, x19, 2846 + bl print_list_info + add x0, x19, 3344 + add x1, x19, 2848 + bl print_list_info + add x0, x19, 96 + add x1, x19, 2850 bl print_list_info add x0, x19, 3304 - add x1, x19, 2832 + add x1, x19, 2852 bl print_list_info - add x0, x19, 3256 - add x1, x19, 2834 - bl print_list_info - add x0, x19, 3264 - add x1, x19, 2836 - bl print_list_info - add x0, x19, 3248 - add x1, x19, 2838 + add x0, x19, 3296 + add x1, x19, 2854 bl print_list_info ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret .size dump_all_list_info, .-dump_all_list_info .align 2 + .global ftl_tmp_into_update + .type ftl_tmp_into_update, %function +ftl_tmp_into_update: + adrp x0, .LANCHOR0+2864 + ldr x0, [x0,#:lo12:.LANCHOR0+2864] + ldr w2, [x0,16] + cmp w2, 2048 + bls .L871 + lsr w1, w2, 11 + ldr w3, [x0,20] + add w3, w3, w1 + sub w1, w2, w1, lsl 11 + str w3, [x0,20] + str w1, [x0,16] +.L871: + ldr w2, [x0,24] + cmp w2, 2048 + bls .L872 + lsr w1, w2, 11 + ldr w3, [x0,28] + add w3, w3, w1 + sub w1, w2, w1, lsl 11 + str w3, [x0,28] + str w1, [x0,24] +.L872: + ldr w2, [x0,32] + cmp w2, 1024 + bls .L873 + lsr w1, w2, 10 + ldr w3, [x0,36] + add w3, w3, w1 + sub w1, w2, w1, lsl 10 + str w3, [x0,36] + str w1, [x0,32] +.L873: + ldr w2, [x0,40] + cmp w2, 1024 + bls .L870 + lsr w1, w2, 10 + ldr w3, [x0,44] + add w3, w3, w1 + sub w1, w2, w1, lsl 10 + str w3, [x0,44] + str w1, [x0,40] +.L870: + ret + .size ftl_tmp_into_update, .-ftl_tmp_into_update + .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: @@ -5075,121 +5381,203 @@ ftl_get_blk_list_in_sblk: ldrb w11, [x2,3] mov w2, 0 mov w6, w2 -.L813: +.L876: add x8, x7, :lo12:.LANCHOR0 - ldrb w3, [x8,3244] + ldrb w3, [x8,3292] cmp w6, w3 - bge .L819 + bge .L882 asr w3, w11, w6 - tbnz x3, 0, .L814 - ldrb w5, [x8,3312] + tbnz x3, 0, .L877 + ldrb w5, [x8,3354] sbfiz x10, x2, 1, 32 - ldrh w3, [x8,3314] + ldrh w3, [x8,3356] sdiv w9, w6, w5 sub w3, w12, w3 lsl w3, w9, w3 madd w3, w0, w5, w3 uxth w4, w3 strh w4, [x1,x10] - ldrb w3, [x8,3312] + ldrb w3, [x8,3354] cmp w3, 1 - bls .L815 + bls .L878 sub w3, w3, #1 and w3, w6, w3 add w3, w4, w3 strh w3, [x1,x10] -.L815: +.L878: add w2, w2, 1 -.L814: +.L877: add w6, w6, 1 - b .L813 -.L819: + b .L876 +.L882: mov w0, w2 mov w4, -1 -.L817: +.L880: add x3, x7, :lo12:.LANCHOR0 - ldrb w3, [x3,3244] + ldrb w3, [x3,3292] cmp w2, w3 - bge .L820 + bge .L883 strh w4, [x1,w2,sxtw 1] add w2, w2, 1 - b .L817 -.L820: + b .L880 +.L883: ret .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 .global ftl_free_sblk .type ftl_free_sblk, %function ftl_free_sblk: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - uxth x20, w0 - add x3, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - lsl x21, x20, 2 - mov x22, x20 - ldr x4, [x3,64] - add x2, x4, x21 - ldrb w0, [x2,2] - tbz x0, 3, .L822 - ldr x5, [x3,2848] - ldr w1, [x4,x21] - ldrh w4, [x4,x21] - ldrh w0, [x5,72] - ubfx x1, x1, 11, 8 - ldrh w5, [x5,74] - ubfx x4, x4, 0, 11 - add w4, w4, w5 - ldrh w5, [x3,3316] - cmp w5, w4, uxth - bcc .L823 - add w1, w0, w1 - ldrh w0, [x3,3318] - cmp w0, w1, uxth - bcs .L822 -.L823: - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,2838] - ldrh w3, [x1,2830] - add w3, w0, w3 - ldrh w0, [x1,3282] - cmp w3, w0 - bge .L824 - ldrb w1, [x2,2] + uxth x22, w0 + adrp x0, .LANCHOR0 + add x3, x0, :lo12:.LANCHOR0 + mov x1, x22 + stp x19, x20, [sp,16] + lsl x19, x22, 2 + mov x21, x0 + ldr x7, [x3,64] + add x20, x7, x19 + ldrb w2, [x20,2] + tbz x2, 3, .L886 + ldr x6, [x3,2864] + ldrh w4, [x7,x19] + ldrh w10, [x3,3358] + ldrh w0, [x6,74] + and w5, w4, 2047 + ldr w4, [x7,x19] + add w0, w5, w0 + ldrh w6, [x6,72] + ubfx x9, x4, 11, 8 + ldrh w4, [x3,72] + uxth w8, w0 + add w6, w9, w6 + uxth w0, w6 + udiv w6, w8, w4 + add w6, w0, w6 + cmp w6, w10 + ble .L887 + ldrh w0, [x3,2846] + ldrh w6, [x3,2854] + add w6, w6, w0 + ldrh w0, [x3,3324] + add w0, w0, 8 + cmp w6, w0 + blt .L903 + ldrh w0, [x3,2844] + ldrh w6, [x3,2850] + add w6, w6, w0 + ldrh w0, [x3,2852] + add w6, w6, w0 + ldrh w0, [x3,3360] + add w0, w0, 8 + cmp w6, w0 + bge .L903 + b .L892 +.L887: + madd w0, w0, w4, w8 + ldrh w6, [x3,3362] + cmp w0, w6 + ble .L889 + ldrh w0, [x3,2844] + ldrh w6, [x3,2850] + add w6, w6, w0 + ldrh w0, [x3,2852] + add w6, w6, w0 + ldrh w0, [x3,3360] + add w0, w0, 8 + cmp w6, w0 + blt .L892 + ldrh w0, [x3,2846] + ldrh w6, [x3,2854] + add w6, w6, w0 + ldrh w0, [x3,3324] + add w0, w0, 8 + cmp w6, w0 + bge .L892 +.L903: mov w0, 2 - bfi w1, w0, 3, 2 - b .L828 -.L824: - ldrh w0, [x1,2834] - ldrh w3, [x1,2828] - ldrh w4, [x1,2836] - add w3, w0, w3 - ldrh w0, [x1,3320] - add w3, w3, w4 - cmp w3, w0 - bge .L822 - ldrb w1, [x2,2] - and w1, w1, -25 -.L828: - strb w1, [x2,2] -.L822: - mov w0, w22 - add x19, x19, :lo12:.LANCHOR0 + bfi w2, w0, 3, 2 + b .L901 +.L892: + and w2, w2, -25 +.L901: + strb w2, [x20,2] +.L889: + ldrb w0, [x20,2] + ands w0, w0, 24 + bne .L893 + mul w4, w9, w4 + ldrh w0, [x7,x19] + add w4, w4, w4, lsl 1 + add w4, w5, w4, lsr 2 + ubfx x5, x4, 2, 9 + bfi w0, w5, 0, 11 + strh w0, [x7,x19] + b .L886 +.L893: + cmp w0, 16 + bne .L886 + sdiv w4, w5, w4 + ldr w0, [x7,x19] + add w4, w4, w4, lsl 1 + add w4, w9, w4, lsr 2 + ubfx x4, x4, 2, 6 + bfi w0, w4, 11, 8 + str w0, [x7,x19] +.L886: + mov w0, w1 + str x1, [x29,56] bl zftl_remove_data_node - mov w0, w22 + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x29,56] + ldr x2, [x0,64] + add x2, x2, x19 + ldrb w3, [x2,2] + and w3, w3, 31 + strb w3, [x2,2] + ldr x2, [x0,80] + strh wzr, [x2,x22,lsl 1] + ldrb w2, [x20,2] + tbz x2, 3, .L895 + ldr x2, [x0,88] + ldrh w0, [x2,584] + cmp w0, w1 + bne .L896 + mov w0, -1 + ldrh w3, [x2,588] + strh w0, [x2,584] + mov w0, 65535 + cmp w3, w0 + bne .L896 + adrp x0, .LC98 + strh w1, [x2,588] + add x0, x0, :lo12:.LC98 + b .L902 +.L896: + ldrh w0, [x2,586] + cmp w0, w1 + bne .L895 + mov w0, -1 + ldrh w3, [x2,590] + strh w0, [x2,586] + mov w0, 65535 + cmp w3, w0 + bne .L895 + adrp x0, .LC99 + strh w1, [x2,590] + add x0, x0, :lo12:.LC99 +.L902: + bl printk + b .L884 +.L895: + mov w0, w1 bl zftl_insert_free_list - ldr x0, [x19,64] - add x0, x0, x21 - ldrb w1, [x0,2] - and w1, w1, 31 - strb w1, [x0,2] - ldr x0, [x19,72] - strh wzr, [x0,x20,lsl 1] +.L884: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 64 ret .size ftl_free_sblk, .-ftl_free_sblk .align 2 @@ -5207,128 +5595,130 @@ gc_free_src_blk: stp x19, x20, [sp,16] stp x25, x26, [sp,64] mov w20, 0 - add x24, x23, 2888 + add x24, x23, 2912 add x21, x21, 1344 -.L830: +.L905: ldrh w0, [x24,56] adrp x25, .LANCHOR0 cmp w0, w20 - bls .L868 + bls .L943 add x0, x24, x20, sxtw 1 ldrh w22, [x0,58] - ldr x0, [x23,72] + ldr x0, [x23,80] lsl x26, x22, 1 mov x19, x22 ldrh w2, [x0,x26] - cbz w2, .L831 - adrp x0, .LC93 + cbz w2, .L906 + adrp x0, .LC100 mov w1, w22 - add x0, x0, :lo12:.LC93 + add x0, x0, :lo12:.LC100 bl printk -.L831: +.L906: add x0, x25, :lo12:.LANCHOR0 - ldr x1, [x0,72] + ldr x1, [x0,80] + strh wzr, [x1,x26] + ldr x1, [x0,80] ldrh w1, [x1,x26] - cbnz w1, .L832 + cbnz w1, .L907 ldr x0, [x0,64] add x22, x0, x22, lsl 2 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L833 + tbz x0, 8, .L908 ldrb w2, [x22,2] - adrp x0, .LC94 - add x0, x0, :lo12:.LC94 + adrp x0, .LC101 + add x0, x0, :lo12:.LC101 mov w1, w19 ubfx x2, x2, 5, 3 bl printk -.L833: +.L908: ldrb w0, [x22,2] tst w0, 192 - beq .L846 + beq .L921 and w0, w0, 224 cmp w0, 224 - bne .L834 -.L846: + bne .L909 +.L921: adrp x0, .LC0 mov x1, x21 add x0, x0, :lo12:.LC0 - mov w2, 770 + mov w2, 793 bl printk -.L834: +.L909: mov w0, w19 add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk - ldr x2, [x25,80] + ldr x2, [x25,88] ldrh w1, [x2,124] - cbz w1, .L836 + cbz w1, .L911 mov x0, 0 -.L838: +.L913: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,392] cmp w4, w19 - bne .L837 + bne .L912 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,392] sub w1, w1, #1 strh w1, [x2,124] - b .L836 -.L837: + b .L911 +.L912: add x0, x0, 1 cmp x0, 64 - bne .L838 -.L836: + bne .L913 +.L911: ldrh w1, [x2,120] - cbz w1, .L839 + cbz w1, .L914 mov x0, 0 -.L841: +.L916: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,136] cmp w4, w19 - bne .L840 + bne .L915 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,136] sub w1, w1, #1 strh w1, [x2,120] - b .L839 -.L840: + b .L914 +.L915: add x0, x0, 1 cmp x0, 64 - bne .L841 -.L839: + bne .L916 +.L914: ldrh w1, [x2,122] - cbz w1, .L842 + cbz w1, .L917 mov x0, 0 -.L844: +.L919: add x4, x2, x0, lsl 1 mov w3, w0 ldrh w4, [x4,264] cmp w4, w19 - bne .L843 + bne .L918 add x0, x2, x3, sxtw 1 mov w3, -1 strh w3, [x0,264] sub w1, w1, #1 strh w1, [x2,122] - b .L842 -.L843: + b .L917 +.L918: add x0, x0, 1 cmp x0, 64 - bne .L844 - b .L842 -.L832: + bne .L919 + b .L917 +.L907: mov w0, w19 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L842: +.L917: add w20, w20, 1 uxth w20, w20 - b .L830 -.L868: + b .L905 +.L943: strh wzr, [x24,56] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5351,27 +5741,27 @@ ftl_erase_phy_blk: stp x19, x20, [sp,16] mov w4, 1 mov w21, w1 - ldrh w19, [x5,3314] + ldrh w19, [x5,3356] mov x20, x3 sub w19, w0, w19 - ldrb w0, [x5,3322] + ldrb w0, [x5,3364] asr w22, w2, w19 lsl w19, w4, w19 sub w19, w19, #1 and w19, w19, w2 sxth w19, w19 - cbz w0, .L870 - ldrh w2, [x5,3324] + cbz w0, .L945 + ldrh w2, [x5,3366] cmp w1, wzr mov w0, w22 cset w1, eq mul w2, w19, w2 bl flash_erase_block_en -.L870: +.L945: add x3, x20, :lo12:.LANCHOR0 mov w1, w21 mov w0, w22 - ldrh w2, [x3,3324] + ldrh w2, [x3,3366] mul w2, w19, w2 bl flash_erase_block_en ldp x19, x20, [sp,16] @@ -5398,93 +5788,93 @@ ftl_erase_sblk: mov w19, 0 add x0, x0, x20 ldrb w25, [x0,3] -.L875: +.L950: add x2, x23, :lo12:.LANCHOR0 - ldrb w0, [x2,3326] + ldrb w0, [x2,3368] cmp w19, w0 - bge .L886 - ldrb w3, [x2,3312] + bge .L961 + ldrb w3, [x2,3354] mov w21, 0 - ldrh w2, [x2,3324] + ldrh w2, [x2,3366] mov w1, w21 sub w4, w3, #1 mul w6, w19, w3 mul w5, w24, w3 -.L887: +.L962: cmp w1, w3 - bge .L900 + bge .L975 add w0, w1, w6 asr w0, w25, w0 - tbnz x0, 0, .L876 + tbnz x0, 0, .L951 and w0, w1, w4 add x7, x29, 80 add w0, w5, w0 mul w0, w0, w2 str w0, [x7,w21,sxtw 2] add w21, w21, 1 -.L876: +.L951: add w1, w1, 1 - b .L887 -.L900: + b .L962 +.L975: cmp w3, 4 - bne .L899 + bne .L974 mov x26, 0 -.L878: +.L953: cmp w21, w26 - ble .L881 + ble .L956 add x2, x29, 80 mov w0, w19 mov w1, w22 ldr w2, [x2,x26,lsl 2] add x26, x26, 1 bl flash_erase_block_en - b .L878 -.L899: + b .L953 +.L974: cmp w21, 2 - bne .L882 + bne .L957 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3322] - cbz w0, .L883 + ldrb w0, [x0,3364] + cbz w0, .L958 cmp w22, wzr ldr w2, [x29,80] ldr w3, [x29,84] mov w0, w19 cset w1, eq bl flash_erase_duplane_block -.L883: +.L958: ldr w2, [x29,80] mov w0, w19 ldr w3, [x29,84] mov w1, w22 bl flash_erase_duplane_block - b .L881 -.L882: + b .L956 +.L957: cmp w21, 1 - bne .L881 + bne .L956 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,3322] - cbz w0, .L885 + ldrb w0, [x0,3364] + cbz w0, .L960 cmp w22, wzr ldr w2, [x29,80] mov w0, w19 cset w1, eq bl flash_erase_block_en -.L885: +.L960: ldr w2, [x29,80] mov w0, w19 mov w1, w22 bl flash_erase_block_en -.L881: +.L956: add w19, w19, 1 - b .L875 -.L886: - cbnz w22, .L888 + b .L950 +.L961: + cbnz w22, .L963 ldr x1, [x2,64] ldrh w0, [x1,x20] add w3, w0, 1 bfi w0, w3, 0, 11 strh w0, [x1,x20] - ldr x0, [x2,2848] + ldr x0, [x2,2864] ldr w1, [x0,84] ldrh w3, [x0,96] add w1, w1, 1 @@ -5494,17 +5884,17 @@ ftl_erase_sblk: ubfx x1, x1, 0, 11 uxth w2, w1 cmp w3, w2 - bge .L890 + bge .L965 strh w1, [x0,96] - b .L890 -.L888: + b .L965 +.L963: ldr x3, [x2,64] ldr w0, [x3,x20] ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 str w0, [x3,x20] - ldr x0, [x2,2848] + ldr x0, [x2,2864] ldr w1, [x0,80] add w1, w1, 1 str w1, [x0,80] @@ -5513,9 +5903,9 @@ ftl_erase_sblk: ldr w1, [x1,x20] ubfx x1, x1, 11, 8 cmp w2, w1, uxtb - bcs .L890 + bcs .L965 strh w1, [x0,98] -.L890: +.L965: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -5534,41 +5924,41 @@ ftl_alloc_sys_blk: add x1, x0, :lo12:.LANCHOR0 str x19, [sp,16] mov x19, x0 - ldr x1, [x1,2848] + ldr x1, [x1,2864] ldrh w2, [x1,136] cmp w2, 63 - bls .L902 + bls .L977 strh wzr, [x1,136] -.L902: +.L977: ldrh w0, [x1,112] - cbnz w0, .L903 + cbnz w0, .L978 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1360 - mov w2, 1012 + mov w2, 1118 bl printk -.L903: +.L978: add x0, x19, :lo12:.LANCHOR0 mov w4, 65535 - ldr x1, [x0,2848] -.L907: + ldr x1, [x0,2864] +.L982: ldrh w2, [x1,136] -.L904: +.L979: cmp w2, 63 - bgt .L910 + bgt .L985 sxtw x3, w2 add x3, x3, 80 ldrh w0, [x1,x3,lsl 1] cmp w0, w4 - bne .L909 + bne .L984 add w2, w2, 1 - b .L904 -.L910: + b .L979 +.L985: strh wzr, [x1,136] - b .L907 -.L909: + b .L982 +.L984: mov w4, -1 strh w4, [x1,x3,lsl 1] strh w2, [x1,136] @@ -5590,36 +5980,36 @@ ftl_free_sys_blk: uxth w20, w0 add x0, x1, :lo12:.LANCHOR0 mov x19, x1 - ldr x2, [x0,2848] + ldr x2, [x0,2864] ldrh w0, [x2,138] cmp w0, 63 - bls .L912 + bls .L987 strh wzr, [x2,138] -.L912: +.L987: ldrh w0, [x2,112] cmp w0, 63 - bls .L913 + bls .L988 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1384 - mov w2, 1036 + mov w2, 1142 bl printk -.L913: +.L988: add x1, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldr x1, [x1,2848] -.L917: + ldr x1, [x1,2864] +.L992: ldrh w2, [x1,138] -.L914: +.L989: cmp w2, 63 - bgt .L919 + bgt .L994 sxtw x3, w2 add x3, x3, 80 ldrh w4, [x1,x3,lsl 1] cmp w4, w0 - bne .L915 + bne .L990 strh w20, [x1,x3,lsl 1] strh w2, [x1,138] ldrh w0, [x1,112] @@ -5628,12 +6018,12 @@ ftl_free_sys_blk: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret -.L915: +.L990: add w2, w2, 1 - b .L914 -.L919: + b .L989 +.L994: strh wzr, [x1,138] - b .L917 + b .L992 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery @@ -5647,7 +6037,7 @@ ftl_info_data_recovery: str x23, [sp,48] ldrh w2, [x0] cmp w2, w1 - beq .L920 + beq .L995 adrp x19, .LANCHOR0 ubfiz x20, x2, 2, 16 add x23, x19, :lo12:.LANCHOR0 @@ -5655,69 +6045,69 @@ ftl_info_data_recovery: add x22, x21, x20 ldrb w1, [x22,2] tst w1, 224 - bne .L920 + bne .L995 ldrb w0, [x0,4] bfi w1, w0, 5, 3 mov w0, w2 strb w1, [x22,2] bl zftl_remove_free_node ldrb w0, [x22,2] - tbz x0, 3, .L924 - ldr x1, [x23,2848] + tbz x0, 3, .L999 + ldr x1, [x23,2864] ldrh w0, [x1,116] sub w0, w0, #1 strh w0, [x1,116] - b .L925 -.L924: + b .L1000 +.L999: tst w0, 24 - ldr x1, [x23,2848] - bne .L926 + ldr x1, [x23,2864] + bne .L1001 ldrh w0, [x1,114] sub w0, w0, #1 strh w0, [x1,114] - b .L925 -.L926: + b .L1000 +.L1001: ldrh w0, [x1,118] sub w0, w0, #1 strh w0, [x1,118] -.L925: +.L1000: ldrb w0, [x22,2] and w0, w0, 224 cmp w0, 160 - bne .L927 + bne .L1002 ldr w0, [x21,x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 str w0, [x21,x20] - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldrh w0, [x1,120] sub w0, w0, #1 strh w0, [x1,120] - b .L920 -.L927: + b .L995 +.L1002: ldrh w1, [x21,x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 strh w1, [x21,x20] - bne .L928 + bne .L1003 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldrh w0, [x1,122] sub w0, w0, #1 strh w0, [x1,122] - b .L920 -.L928: + b .L995 +.L1003: cmp w0, 96 - bne .L920 + bne .L995 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldrh w0, [x1,124] sub w0, w0, #1 strh w0, [x1,124] -.L920: +.L995: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -5736,19 +6126,19 @@ ftl_get_ppa_from_index: stp x19, x20, [sp,16] str x21, [sp,32] mov x19, x2 - ldrh w0, [x4,3276] - ldr x3, [x4,80] - ldrb w4, [x4,3244] + ldrh w0, [x4,3316] + ldr x3, [x4,88] + ldrb w4, [x4,3292] mul w0, w0, w4 cmp w1, w0 - bge .L930 + bge .L1005 add x3, x3, 16 - b .L931 -.L930: + b .L1006 +.L1005: sub w1, w1, w0 add x3, x3, 48 uxth w1, w1 -.L931: +.L1006: ldrb w2, [x3,9] mov w0, 65535 sdiv w20, w1, w2 @@ -5756,17 +6146,17 @@ ftl_get_ppa_from_index: add x1, x3, x1, uxth 1 ldrh w21, [x1,16] cmp w21, w0 - bne .L932 + bne .L1007 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1408 - mov w2, 1421 + mov w2, 1529 bl printk -.L932: +.L1007: add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,3324] + ldrh w0, [x2,3366] madd w0, w21, w0, w20 ldp x19, x20, [sp,16] ldr x21, [sp,32] @@ -5783,25 +6173,25 @@ lpa_hash_get_ppa: add x2, x1, x0, uxtb 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w2, [x2,3328] - ldr x4, [x1,3840] - ldr x5, [x1,3848] -.L934: + ldrh w2, [x2,3376] + ldr x4, [x1,3888] + ldr x5, [x1,3896] +.L1009: cmp w2, w3 - beq .L938 + beq .L1013 uxtw x1, w2 ldr w6, [x4,x1,lsl 2] cmp w6, w0 - bne .L935 + bne .L1010 mov w0, w2 bl ftl_get_ppa_from_index - b .L936 -.L935: + b .L1011 +.L1010: ldrh w2, [x5,x1,lsl 1] - b .L934 -.L938: + b .L1009 +.L1013: mov w0, -1 -.L936: +.L1011: ldp x29, x30, [sp], 16 ret .size lpa_hash_get_ppa, .-lpa_hash_get_ppa @@ -5816,68 +6206,68 @@ ftl_get_new_free_page: ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L940 + bne .L1015 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1432 - mov w2, 1536 + mov w2, 1644 bl printk -.L940: +.L1015: adrp x20, .LANCHOR0 ldrh w1, [x19,2] add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3276] + ldrh w0, [x0,3316] cmp w1, w0 - bne .L941 + bne .L1016 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1432 - mov w2, 1537 + mov w2, 1645 bl printk -.L941: +.L1016: ldrh w0, [x19,6] - cbnz w0, .L942 + cbnz w0, .L1017 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1432 - mov w2, 1538 + mov w2, 1646 bl printk -.L942: +.L1017: ldrb w0, [x19,5] add x1, x20, :lo12:.LANCHOR0 add x0, x0, 8 - ldrb w2, [x1,3244] + ldrb w2, [x1,3292] mov w1, 65535 ldrh w0, [x19,x0,lsl 1] -.L943: +.L1018: cmp w0, w1 - bne .L947 + bne .L1022 ldrb w0, [x19,5] add w0, w0, 1 uxtb w0, w0 strb w0, [x19,5] cmp w0, w2 - bne .L944 + bne .L1019 ldrh w0, [x19,2] strb wzr, [x19,5] add w0, w0, 1 strh w0, [x19,2] -.L944: +.L1019: ldrb w0, [x19,5] add x0, x0, 8 ldrh w0, [x19,x0,lsl 1] - b .L943 -.L947: + b .L1018 +.L1022: add x20, x20, :lo12:.LANCHOR0 ldrh w2, [x19,2] - ldrh w1, [x20,3324] - ldrb w3, [x20,3244] + ldrh w1, [x20,3366] + ldrb w3, [x20,3292] mul w0, w0, w1 ldrh w1, [x19,6] orr w0, w0, w2 @@ -5891,11 +6281,11 @@ ftl_get_new_free_page: uxtb w1, w1 strb w1, [x19,5] cmp w3, w1 - bne .L946 + bne .L1021 add w2, w2, 1 strb wzr, [x19,5] strh w2, [x19,2] -.L946: +.L1021: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -5913,24 +6303,24 @@ ftl_ext_alloc_new_blk: mov w1, 65533 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L949 + bcs .L1024 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1456 - mov w2, 1569 + mov w2, 1677 bl printk -.L949: +.L1024: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 mov w0, w20 bl ftl_erase_phy_blk - ldr x0, [x19,2848] + ldr x0, [x19,2864] ldrh w0, [x0,130] bl ftl_free_sys_blk - ldr x0, [x19,2848] + ldr x0, [x19,2864] strh w20, [x0,130] strh wzr, [x0,140] mov w0, 0 @@ -5944,52 +6334,52 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR0 add x3, x1, :lo12:.LANCHOR0 - ldrh w2, [x3,3856] - cbnz w0, .L951 + ldrh w2, [x3,3904] + cbnz w0, .L1026 cmp w2, 4 - bhi .L951 + bhi .L1026 add w2, w2, 1 - strh w2, [x3,3856] - b .L950 -.L951: + strh w2, [x3,3904] + b .L1025 +.L1026: add x0, x1, :lo12:.LANCHOR0 mov w9, 65535 - strh wzr, [x0,3856] + strh wzr, [x0,3904] ldrh w6, [x0,56] - ldr x7, [x0,72] + ldr x7, [x0,80] ldr x8, [x0,64] mov x0, 0 mov w2, w0 mov w3, w0 -.L953: +.L1028: cmp w6, w0, uxth - bls .L961 + bls .L1036 ldrh w4, [x7,x0,lsl 1] cmp w4, w9 - beq .L954 + beq .L1029 add x5, x8, x0, lsl 2 ldrb w5, [x5,2] and w5, w5, 224 cmp w5, 160 - bne .L955 + bne .L1030 add w2, w2, w4 - b .L954 -.L955: + b .L1029 +.L1030: add w3, w3, w4 -.L954: +.L1029: add x0, x0, 1 - b .L953 -.L961: + b .L1028 +.L1036: add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,80] - ldr x1, [x1,2848] + ldr x0, [x1,88] + ldr x1, [x1,2864] str w3, [x0,524] str w2, [x0,528] ldrh w1, [x1,120] - cbz w1, .L950 + cbz w1, .L1025 udiv w2, w2, w1 str w2, [x0,532] -.L950: +.L1025: ret .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 @@ -6010,12 +6400,16 @@ ftl_vpn_update: mov w0, w19 ubfiz x19, x19, 1, 16 bl zftl_list_update_data_list - adrp x0, .LANCHOR0+72 - ldr x0, [x0,#:lo12:.LANCHOR0+72] - ldrh w0, [x0,x19] + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + ldr x0, [x1,80] + ldrh w2, [x0,x19] + mov w0, 0 + cbnz w2, .L1039 + mov w0, 1 + str w0, [x1,2884] +.L1039: ldr x19, [sp,16] - cmp w0, wzr - cset w0, eq ldp x29, x30, [sp], 32 ret .size ftl_vpn_update, .-ftl_vpn_update @@ -6030,42 +6424,51 @@ ftl_vpn_decrement: str x19, [sp,16] cmp w1, w0 adrp x2, .LANCHOR0 - beq .L965 + beq .L1042 add x0, x2, :lo12:.LANCHOR0 ubfiz x3, x1, 1, 16 - ldr x0, [x0,72] + ldr x0, [x0,80] ldrh w19, [x0,x3] - cbnz w19, .L966 - adrp x0, .LC95 + cbnz w19, .L1043 + adrp x0, .LC102 mov w2, w19 - add x0, x0, :lo12:.LC95 + add x0, x0, :lo12:.LC102 bl printk - b .L970 -.L966: + b .L1049 +.L1043: sub w19, w19, #1 strh w19, [x0,x3] -.L965: +.L1042: add x19, x2, :lo12:.LANCHOR0 mov w0, 0 - ldrh w2, [x19,3858] + ldrh w2, [x19,3240] cmp w2, w1 - beq .L967 + beq .L1044 mov w0, 65535 cmp w2, w0 - bne .L968 - strh w1, [x19,3858] -.L970: + bne .L1045 + strh w1, [x19,3240] +.L1049: mov w0, 0 - b .L967 -.L968: + b .L1044 +.L1045: mov w0, w2 str x1, [x29,40] bl ftl_vpn_update cmp w0, wzr - ldr x1, [x29,40] + ldrh w3, [x19,3906] cset w0, ne - strh w1, [x19,3858] -.L967: + ldrh w2, [x19,3240] + add w3, w3, 1 + ldr x1, [x29,40] + strh w1, [x19,3240] + uxth w3, w3 + cmp w3, 7 + csel w3, w3, wzr, ls + strh w3, [x19,3906] + add x3, x19, x3, uxth 1 + strh w2, [x3,3248] +.L1044: ldr x19, [sp,16] ldp x29, x30, [sp], 48 ret @@ -6078,73 +6481,73 @@ lpa_hash_update_ppa: uxtb w5, w0 add x6, x3, :lo12:.LANCHOR0 uxth w2, w2 - add x4, x6, 3328 + add x4, x6, 3376 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x8, [x6,3840] - ldr x12, [x6,3848] + ldr x8, [x6,3888] + ldr x12, [x6,3896] mov w6, 65535 ldrh w4, [x4,w5,sxtw 1] mov w11, w6 -.L972: +.L1051: cmp w4, w11 - beq .L976 + beq .L1055 uxtw x9, w4 uxth x7, w4 lsl x10, x9, 2 add x13, x8, x10 ldr w10, [x8,x10] cmp w10, w0 - bne .L973 + bne .L1052 mov w4, -1 str w4, [x13] mov w4, 65535 cmp w6, w4 add x4, x3, :lo12:.LANCHOR0 - bne .L974 - ldr x6, [x4,3848] - add x4, x4, 3328 + bne .L1053 + ldr x6, [x4,3896] + add x4, x4, 3376 ldrh w6, [x6,x7,lsl 1] strh w6, [x4,w5,sxtw 1] - b .L975 -.L974: - ldr x4, [x4,3848] + b .L1054 +.L1053: + ldr x4, [x4,3896] ldrh w8, [x4,x7,lsl 1] strh w8, [x4,w6,uxtw 1] -.L975: +.L1054: add x4, x3, :lo12:.LANCHOR0 mov w6, -1 - ldr x4, [x4,3848] + ldr x4, [x4,3896] strh w6, [x4,x7,lsl 1] - b .L976 -.L973: + b .L1055 +.L1052: mov w6, w4 ldrh w4, [x12,x9,lsl 1] - b .L972 -.L976: + b .L1051 +.L1055: add x3, x3, :lo12:.LANCHOR0 uxtw x4, w2 cmn w1, #1 - ldr x6, [x3,3840] + ldr x6, [x3,3888] str w0, [x6,x4,lsl 2] - add x0, x3, 3328 + add x0, x3, 3376 ldrh w6, [x0,w5,sxtw 1] strh w2, [x0,w5,sxtw 1] - ldr x0, [x3,3848] + ldr x0, [x3,3896] strh w6, [x0,x4,lsl 1] - beq .L978 - ldrh w0, [x3,3314] + beq .L1057 + ldrh w0, [x3,3356] mov w2, 21 mov w4, 1 sub w2, w2, w0 lsr w1, w1, w0 lsl w2, w4, w2 - ldrb w0, [x3,3312] + ldrb w0, [x3,3354] sub w2, w2, #1 and w1, w2, w1 udiv w0, w1, w0 bl ftl_vpn_decrement -.L978: +.L1057: mov w0, -1 ldp x29, x30, [sp], 16 ret @@ -6163,28 +6566,28 @@ ftl_mask_bad_block: str x21, [sp,32] ubfx x21, x0, 21, 3 mov x19, x3 - ldrh w5, [x1,3314] + ldrh w5, [x1,3356] sub w2, w2, w5 lsr w0, w0, w5 lsl w2, w4, w2 sub w2, w2, #1 and w0, w2, w0 - ldrb w2, [x1,3312] + ldrb w2, [x1,3354] udiv w2, w0, w2 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] uxth w20, w2 - tbz x0, 14, .L983 - adrp x0, .LC96 + tbz x0, 14, .L1062 + adrp x0, .LC103 mov w1, w21 - add x0, x0, :lo12:.LC96 + add x0, x0, :lo12:.LC103 mov w2, w20 bl printk -.L983: +.L1062: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0,56] cmp w1, w20 - bls .L982 + bls .L1061 ldr x0, [x0,64] add x20, x0, x20, uxth 2 mov w0, 1 @@ -6192,7 +6595,7 @@ ftl_mask_bad_block: ldrb w0, [x20,3] orr w1, w1, w0 strb w1, [x20,3] -.L982: +.L1061: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6208,39 +6611,39 @@ print_ftl_debug_info: str x19, [sp,48] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x7, [x19,80] - ldrh w6, [x19,2838] - ldrh w1, [x19,2828] + ldr x7, [x19,88] + ldrh w6, [x19,2854] + ldrh w1, [x19,2844] ldr w0, [x7,528] str w0, [sp] - ldr w0, [x19,2824] + ldr w0, [x19,2840] str w0, [sp,8] - adrp x0, .LC97 - ldrh w2, [x19,2830] - add x0, x0, :lo12:.LC97 + adrp x0, .LC104 + ldrh w2, [x19,2846] + add x0, x0, :lo12:.LC104 ldr w7, [x7,524] - ldrh w3, [x19,2832] - ldrh w4, [x19,2834] - ldrh w5, [x19,2836] + ldrh w3, [x19,2848] + ldrh w4, [x19,2850] + ldrh w5, [x19,2852] bl printk - ldr x5, [x19,2848] - adrp x0, .LC98 - ldrb w3, [x19,2841] - add x0, x0, :lo12:.LC98 + ldr x5, [x19,2864] + adrp x0, .LC105 + ldrb w3, [x19,2857] + add x0, x0, :lo12:.LC105 ldr w4, [x5,8] ldr w1, [x5,20] ldr w2, [x5,28] ldr w5, [x5,64] bl printk - ldr x2, [x19,2848] - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 + ldr x2, [x19,2864] + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 ldr w3, [x2,16] ldr w1, [x2,52] ldr w2, [x2,60] lsr w3, w3, 11 bl printk - ldr x7, [x19,2848] + ldr x7, [x19,2864] ldrh w0, [x7,90] ldrh w6, [x7,72] ldrh w1, [x7,74] @@ -6252,18 +6655,18 @@ print_ftl_debug_info: str w0, [sp,8] ldrh w0, [x7,98] str w0, [sp,16] - adrp x0, .LC100 - add x0, x0, :lo12:.LC100 + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 ldr w2, [x7,84] ldr w7, [x7,80] bl printk - ldrh w1, [x19,2858] - adrp x0, .LC101 - ldrh w2, [x19,2860] - add x0, x0, :lo12:.LC101 - ldrh w3, [x19,2862] - ldrh w4, [x19,2864] - ldrh w5, [x19,2856] + ldrh w1, [x19,2874] + adrp x0, .LC108 + ldrh w2, [x19,2876] + add x0, x0, :lo12:.LC108 + ldrh w3, [x19,2878] + ldrh w4, [x19,2880] + ldrh w5, [x19,2872] bl printk sub sp, x29, #32 ldr x19, [sp,48] @@ -6280,62 +6683,62 @@ ftl_write_buf: stp x19, x20, [sp,16] str x21, [sp,32] mov x20, x0 - cbnz x0, .L990 + cbnz x0, .L1069 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 639 + mov w2, 652 add x1, x1, 1480 add x0, x0, :lo12:.LC0 bl printk bl print_ftl_debug_info mov w0, -1 - b .L999 -.L990: + b .L1078 +.L1069: adrp x19, .LANCHOR0 ldrb w1, [x20,56] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] cmp w1, w0 - bls .L995 + bls .L1074 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1480 - mov w2, 644 + mov w2, 657 bl printk -.L995: +.L1074: ldrb w0, [x20,56] - cbz w0, .L992 + cbz w0, .L1071 add x21, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,2816] + ldrb w1, [x21,2832] cmp w1, w0 - bcs .L993 -.L992: + bcs .L1072 +.L1071: mov x0, x20 add x19, x19, :lo12:.LANCHOR0 bl buf_free - ldrb w0, [x19,2840] - b .L999 -.L993: - add x0, x21, 2866 + ldrb w0, [x19,2856] + b .L1078 +.L1072: + add x0, x21, 2888 mov x1, x20 bl buf_add_tail - ldr x0, [x21,2848] + ldr x0, [x21,2864] ldrb w1, [x20,56] - ldrb w2, [x21,2840] + ldrb w2, [x21,2856] ldr w3, [x0,16] add w2, w2, 1 add w1, w3, w1 str w1, [x0,16] ldr w1, [x0,32] uxtb w2, w2 - strb w2, [x21,2840] + strb w2, [x21,2856] add w1, w1, 1 str w1, [x0,32] mov w0, w2 -.L999: +.L1078: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6352,25 +6755,25 @@ ftl_write_completed: str x25, [sp,64] stp x21, x22, [sp,32] add x19, x19, :lo12:.LANCHOR0 - adrp x21, .LC102 + adrp x21, .LC109 stp x23, x24, [sp,48] - add x22, x19, 768 + add x22, x19, 784 mov w23, 21 mov w24, 1 - add x21, x21, :lo12:.LC102 -.L1001: - ldrb w0, [x19,3860] + add x21, x21, :lo12:.LC109 +.L1080: + ldrb w0, [x19,3908] cmp w0, 255 - beq .L1008 + beq .L1087 sbfiz x0, x0, 6, 32 add x20, x22, x0 add x4, x20, 32 ldrb w0, [x22,x0] - strb w0, [x19,3860] + strb w0, [x19,3908] ldr w0, [x20,52] cmn w0, #1 - bne .L1002 - ldrh w2, [x19,3314] + bne .L1081 + ldrh w2, [x19,3356] mov x0, x21 ldr w3, [x4,8] sub w1, w23, w2 @@ -6378,7 +6781,7 @@ ftl_write_completed: lsr w2, w3, w2 sub w1, w1, #1 and w2, w1, w2 - ldrb w1, [x19,3312] + ldrb w1, [x19,3354] udiv w1, w2, w1 ldr w2, [x4,4] uxth w25, w1 @@ -6388,39 +6791,39 @@ ftl_write_completed: mov w0, w25 mov w2, 0 bl gc_add_sblk - ldr x0, [x19,80] + ldr x0, [x19,88] ldr w1, [x0,556] add w1, w1, 1 str w1, [x0,556] ldrh w1, [x0,16] cmp w1, w25 - bne .L1003 + bne .L1082 strh wzr, [x0,22] - b .L1004 -.L1003: + b .L1083 +.L1082: ldrh w1, [x0,48] cmp w1, w25 - bne .L1004 + bne .L1083 strh wzr, [x0,54] -.L1004: +.L1083: mov x0, x20 bl ftl_write_buf - b .L1001 -.L1002: + b .L1080 +.L1081: ldr w0, [x4,4] ldr w1, [x4,12] ldrh w2, [x20,48] bl lpa_hash_update_ppa ldrb w0, [x20,2] - tbz x0, 2, .L1006 + tbz x0, 2, .L1085 and w0, w0, -3 strb w0, [x20,2] - b .L1001 -.L1006: + b .L1080 +.L1085: mov x0, x20 bl buf_free - b .L1001 -.L1008: + b .L1080 +.L1087: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -6448,32 +6851,32 @@ ftl_alloc_sblk: uxth w19, w0 mov w0, 65535 cmp w19, w0 - beq .L1011 + beq .L1090 adrp x0, .LANCHOR0+64 ldr x21, [x0,#:lo12:.LANCHOR0+64] add x21, x21, x19, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L1012 + beq .L1091 adrp x1, .LANCHOR1 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1496 - mov w2, 757 + mov w2, 827 bl printk -.L1012: +.L1091: ldrb w1, [x21,2] bfi w1, w20, 5, 3 ubfx x2, x1, 3, 2 orr w0, w22, w2 bfi w1, w0, 3, 2 strb w1, [x21,2] - b .L1018 -.L1011: - adrp x21, .LC103 + b .L1097 +.L1090: + adrp x21, .LC110 bl print_ftl_debug_info - add x21, x21, :lo12:.LC103 + add x21, x21, :lo12:.LC110 mov w1, w19 mov w2, w20 mov x0, x21 @@ -6492,9 +6895,9 @@ ftl_alloc_sblk: add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC0 add x1, x1, 1496 - mov w2, 767 + mov w2, 837 bl printk -.L1018: +.L1097: mov w0, w19 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6509,10 +6912,10 @@ sblk_init: adrp x0, .LANCHOR0 mov w1, -1 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,3861] - strb w1, [x0,3860] - strb w1, [x0,2880] - strb w1, [x0,3224] + strb w1, [x0,3909] + strb w1, [x0,3908] + strb w1, [x0,2904] + strb w1, [x0,3272] mov w0, 0 ret .size sblk_init, .-sblk_init @@ -6521,24 +6924,24 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC104 + adrp x0, .LC111 add x29, sp, 0 stp x19, x20, [sp,16] adrp x20, .LANCHOR0 str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC104 - ldrb w1, [x20,3861] + add x0, x0, :lo12:.LC111 + ldrb w1, [x20,3909] bl printk - ldrb w19, [x20,3861] + ldrb w19, [x20,3909] cmp w19, 255 - beq .L1020 - add x20, x20, 768 + beq .L1099 + add x20, x20, 784 sbfiz x19, x19, 6, 32 - adrp x21, .LC105 + adrp x21, .LC112 add x19, x20, x19 - add x21, x21, :lo12:.LC105 -.L1022: + add x21, x21, :lo12:.LC112 +.L1101: ldrb w1, [x19,1] mov x0, x21 ldrb w2, [x19,58] @@ -6546,11 +6949,11 @@ dump_sblk_queue: bl printk ldrb w19, [x19] cmp w19, 255 - beq .L1020 + beq .L1099 sbfiz x19, x19, 6, 32 add x19, x20, x19 - b .L1022 -.L1020: + b .L1101 +.L1099: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -6564,12 +6967,12 @@ queue_lun_state: mov w5, w0 add x3, x3, :lo12:.LANCHOR0 mov w0, 0 - ldrb w2, [x3,3861] + ldrb w2, [x3,3909] cmp w2, 255 - beq .L1030 - ldrh w8, [x3,3314] + beq .L1109 + ldrh w8, [x3,3356] mov w4, 21 - ldrb w7, [x3,3312] + ldrb w7, [x3,3354] mov w0, 1 sub w4, w4, w8 ubfx x9, x5, 21, 3 @@ -6578,64 +6981,64 @@ queue_lun_state: sub w4, w4, #1 asr w5, w5, w8 uxth w7, w7 - adrp x10, .L1034 + adrp x10, .L1113 uxth w4, w4 and w5, w5, w7 and w5, w5, w4 - add x3, x3, 768 - add x10, x10, :lo12:.L1034 -.L1037: + add x3, x3, 784 + add x10, x10, :lo12:.L1113 +.L1116: add x0, x3, x2, lsl 6 ldr w6, [x0,40] ubfx x11, x6, 21, 3 cmp w11, w9 - bne .L1031 + bne .L1110 lsr w6, w6, w8 ldrb w0, [x0,58] and w6, w7, w6 and w6, w4, w6 cmp w6, w5 - bne .L1032 + bne .L1111 cmp w1, 1 - beq .L1035 - b .L1030 -.L1032: + beq .L1114 + b .L1109 +.L1111: cmp w1, 3 - bhi .L1031 + bhi .L1110 ldrb w6, [x10,w1,uxtw] - adr x11, .Lrtx1034 + adr x11, .Lrtx1113 add x6, x11, w6, sxtb #2 br x6 -.Lrtx1034: +.Lrtx1113: .section .rodata .align 0 .align 2 -.L1034: - .byte (.L1033 - .Lrtx1034) / 4 - .byte (.L1035 - .Lrtx1034) / 4 - .byte (.L1036 - .Lrtx1034) / 4 - .byte (.L1030 - .Lrtx1034) / 4 +.L1113: + .byte (.L1112 - .Lrtx1113) / 4 + .byte (.L1114 - .Lrtx1113) / 4 + .byte (.L1115 - .Lrtx1113) / 4 + .byte (.L1109 - .Lrtx1113) / 4 .text -.L1033: +.L1112: cmp w0, 2 - b .L1046 -.L1035: + b .L1125 +.L1114: sub w6, w0, #6 and w6, w6, -3 uxtb w6, w6 - cbz w6, .L1031 - b .L1030 -.L1036: + cbz w6, .L1110 + b .L1109 +.L1115: cmp w0, 10 -.L1046: - bne .L1030 -.L1031: +.L1125: + bne .L1109 +.L1110: lsl x2, x2, 6 ldrb w2, [x3,x2] cmp w2, 255 - bne .L1037 + bne .L1116 mov w0, 0 -.L1030: +.L1109: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -6644,61 +7047,61 @@ queue_lun_state: queue_remove_completed_req: adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3861] + ldrb w2, [x1,3909] cmp w2, 255 - beq .L1048 - add x6, x1, 768 + beq .L1127 + add x6, x1, 784 lsl x5, x2, 6 add x7, x6, x5 ldrb w3, [x7,58] sub w3, w3, #11 uxtb w3, w3 cmp w3, 1 - bhi .L1048 + bhi .L1127 ldrb w3, [x6,x5] - strb w3, [x1,3861] + strb w3, [x1,3909] mov w3, -1 strb w3, [x6,x5] ldrb w3, [x7,59] cmp w3, 1 - bne .L1050 + bne .L1129 ldrh w3, [x7,50] - cbnz w3, .L1051 - ldrb w3, [x1,3860] - add x1, x1, 3860 - b .L1052 -.L1051: - ldrb w3, [x1,3224] - add x1, x1, 3224 - b .L1052 -.L1050: - cbnz w3, .L1048 + cbnz w3, .L1130 + ldrb w3, [x1,3908] + add x1, x1, 3908 + b .L1131 +.L1130: + ldrb w3, [x1,3272] + add x1, x1, 3272 + b .L1131 +.L1129: + cbnz w3, .L1127 ldr w3, [x7,36] cmn w3, #1 - beq .L1048 - ldrb w3, [x1,2880] - add x1, x1, 2880 -.L1052: + beq .L1127 + ldrb w3, [x1,2904] + add x1, x1, 2904 +.L1131: cmp w3, 255 add x0, x0, :lo12:.LANCHOR0 - bne .L1056 + bne .L1135 add x0, x0, x2, lsl 6 - ldrb w0, [x0,769] + ldrb w0, [x0,785] strb w0, [x1] - b .L1048 -.L1056: - add x0, x0, 768 -.L1063: + b .L1127 +.L1135: + add x0, x0, 784 +.L1142: mov w1, w3 sbfiz x3, x3, 6, 32 ldrb w3, [x0,x3] cmp w3, 255 - bne .L1063 + bne .L1142 add x2, x0, x2, lsl 6 sbfiz x1, x1, 6, 32 ldrb w2, [x2,1] strb w2, [x0,x1] -.L1048: +.L1127: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -6712,35 +7115,35 @@ pm_alloc_new_blk: str x23, [sp,48] add x3, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - ldr x2, [x3,2848] + ldr x2, [x3,2864] ldrh w1, [x2,690] add w1, w1, 1 uxth w0, w1 - ldrb w1, [x3,3244] + ldrb w1, [x3,3292] strh w0, [x2,690] cmp w1, w0 - bls .L1065 + bls .L1144 add x0, x2, x0, sxtw 1 ldrh w1, [x0,672] mov w0, 65535 cmp w1, w0 - bne .L1066 -.L1065: - adrp x22, .LC106 - add x22, x22, :lo12:.LC106 -.L1078: + bne .L1145 +.L1144: + adrp x22, .LC113 + add x22, x22, :lo12:.LC113 +.L1157: mov w0, 1 add x20, x19, :lo12:.LANCHOR0 bl ftl_alloc_sblk uxth w21, w0 mov w1, 0 bl ftl_erase_sblk - ldr x1, [x20,2848] + ldr x1, [x20,2864] mov w0, w21 add x1, x1, 672 bl ftl_get_blk_list_in_sblk uxth w0, w0 - cbnz w0, .L1067 + cbnz w0, .L1146 mov w1, w21 mov x0, x22 bl printk @@ -6749,59 +7152,59 @@ pm_alloc_new_blk: ldrb w2, [x1,2] orr w2, w2, -32 strb w2, [x1,2] - b .L1078 -.L1067: - ldr x1, [x20,2848] + b .L1157 +.L1146: + ldr x1, [x20,2864] mov w0, 1 mov w2, 65535 - str w0, [x20,3864] + str w0, [x20,3912] mov x20, 0 strh wzr, [x1,690] -.L1069: +.L1148: add x3, x1, x20, lsl 1 uxth w0, w20 ldrh w3, [x3,416] cmp w3, w2 - beq .L1068 + beq .L1147 add x20, x20, 1 cmp x20, 128 - bne .L1069 + bne .L1148 adrp x0, .LC0 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 192 + mov w2, 194 bl printk mov w0, w20 -.L1068: +.L1147: add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2848] + ldr x1, [x1,2864] add x0, x1, x0, sxtw 1 strh w21, [x0,416] ldrh w0, [x1,688] add w0, w0, 1 strh w0, [x1,688] -.L1066: +.L1145: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,2848] + ldr x1, [x0,2864] ldrh w0, [x1,690] add x0, x0, 336 ldrh w20, [x1,x0,lsl 1] mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth - bcs .L1071 + bcs .L1150 adrp x0, .LC0 adrp x1, .LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 197 + mov w2, 199 bl printk -.L1071: +.L1150: add x19, x19, :lo12:.LANCHOR0 mov w0, 21 - ldr x1, [x19,2848] - ldrh w2, [x19,3314] + ldr x1, [x19,2864] + ldrh w2, [x19,3356] sub w0, w0, w2 strh wzr, [x1,696] asr w4, w20, w0 @@ -6809,17 +7212,17 @@ pm_alloc_new_blk: strh w4, [x1,694] adrp x1, .LANCHOR2 ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L1075 + tbz x1, 12, .L1154 mov w2, 1 mov w1, w20 lsl w2, w2, w0 - adrp x0, .LC107 - add x0, x0, :lo12:.LC107 + adrp x0, .LC114 + add x0, x0, :lo12:.LC114 sub w2, w2, #1 mov w3, w20 uxth w4, w4 bl printk -.L1075: +.L1154: mov w0, 0 ldr x23, [sp,48] ldp x19, x20, [sp,16] @@ -6838,68 +7241,68 @@ pm_select_ram_region: str x19, [sp,16] add x2, x2, :lo12:.LANCHOR0 mov x19, 0 -.L1082: - add x1, x2, 3872 +.L1161: + add x1, x2, 3920 lsl x4, x19, 4 uxth w0, w19 ldrh w4, [x4,x1] cmp w4, w3 - beq .L1081 + beq .L1160 add x19, x19, 1 cmp x19, 32 - bne .L1082 + bne .L1161 mov x0, 0 mov w3, 32768 -.L1084: +.L1163: add x2, x1, x0, lsl 4 uxth w4, w0 ldrh w2, [x2,2] - tbnz x2, 15, .L1083 + tbnz x2, 15, .L1162 cmp w2, w3 - bcs .L1083 + bcs .L1162 mov w3, w2 mov w19, w4 -.L1083: +.L1162: add x0, x0, 1 cmp x0, 32 - bne .L1084 + bne .L1163 cmp w19, 32 mov w0, w19 - bne .L1081 - adrp x0, .LANCHOR4+32 + bne .L1160 + adrp x0, .LANCHOR4+80 mov w2, -1 mov w1, 0 - ldrb w3, [x0,#:lo12:.LANCHOR4+32] + ldrb w3, [x0,#:lo12:.LANCHOR4+80] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3872 -.L1086: + add x0, x0, 3920 +.L1165: ldrh w5, [x0,2] cmp w5, w2 - bcs .L1085 + bcs .L1164 ldrh w4, [x0] cmp w4, w3 csel w2, w2, w5, eq cmp w4, w3 csel w19, w19, w1, eq -.L1085: +.L1164: add w1, w1, 1 add x0, x0, 16 uxth w1, w1 cmp w1, 32 - bne .L1086 + bne .L1165 cmp w19, 32 - bne .L1087 + bne .L1166 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, 24 - mov w2, 295 + mov w2, 297 bl printk -.L1087: +.L1166: mov w0, w19 -.L1081: +.L1160: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -6923,58 +7326,58 @@ flash_lsb_page_tbl_build: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - cbnz w0, .L1095 + cbnz w0, .L1174 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1096: - add x1, x2, 212 +.L1175: + add x1, x2, 228 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1096 -.L1102: + bne .L1175 +.L1181: adrp x20, .LANCHOR4 mov w1, 255 add x20, x20, :lo12:.LANCHOR4 mov w2, 1024 - add x0, x20, 36 + add x0, x20, 84 add x19, x19, :lo12:.LANCHOR0 bl ftl_memset mov x0, 0 - b .L1097 -.L1095: + b .L1176 +.L1174: cmp w0, 1 - bne .L1098 + bne .L1177 mov x0, 0 mov w4, 3 mov w5, 2 add x3, x19, :lo12:.LANCHOR0 -.L1101: +.L1180: cmp x0, 3 uxth w2, w0 mov w1, w2 - bls .L1099 + bls .L1178 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L1099: - add x2, x3, 212 +.L1178: + add x2, x3, 228 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1101 - b .L1102 -.L1098: + bne .L1180 + b .L1181 +.L1177: cmp w0, 2 - bne .L1103 + bne .L1182 mov w1, 65535 mov x0, 0 add x4, x19, :lo12:.LANCHOR0 -.L1105: - add x3, x4, 212 +.L1184: + add x3, x4, 228 cmp x0, 1 uxth w2, w0 csel w2, w1, w2, hi @@ -6983,43 +7386,43 @@ flash_lsb_page_tbl_build: add x0, x0, 1 cmp x0, 256 uxth w1, w1 - bne .L1105 - b .L1102 -.L1103: + bne .L1184 + b .L1181 +.L1182: cmp w0, 3 - bne .L1106 + bne .L1185 mov x0, 0 mov w4, 5 mov w5, 4 add x3, x19, :lo12:.LANCHOR0 -.L1109: +.L1188: cmp x0, 5 uxth w2, w0 mov w1, w2 - bls .L1107 + bls .L1186 ubfiz w1, w2, 1, 15 and w2, w2, 1 cmp w2, wzr csel w2, w4, w5, ne sub w1, w1, w2 uxth w1, w1 -.L1107: - add x2, x3, 212 +.L1186: + add x2, x3, 228 strh w1, [x2,x0,lsl 1] add x0, x0, 1 cmp x0, 256 - bne .L1109 - b .L1102 -.L1106: + bne .L1188 + b .L1181 +.L1185: cmp w0, 4 - bne .L1110 + bne .L1189 add x2, x19, :lo12:.LANCHOR0 mov w5, 7 - add x1, x2, 212 + add x1, x2, 228 mov w4, 6 strh w0, [x1,8] mov w0, 5 - strh wzr, [x2,212] + strh wzr, [x2,228] mov w2, 1 strh w0, [x1,10] mov w0, 7 @@ -7032,7 +7435,7 @@ flash_lsb_page_tbl_build: strh w0, [x1,14] mov w0, 8 strh w2, [x1,6] -.L1112: +.L1191: and w3, w0, 1 ubfiz w2, w0, 1, 15 add w0, w0, 1 @@ -7043,48 +7446,48 @@ flash_lsb_page_tbl_build: sub w2, w2, w3 cmp w0, 256 strh w2, [x1,14] - bne .L1112 - b .L1102 -.L1110: + bne .L1191 + b .L1181 +.L1189: cmp w0, 5 - bne .L1113 + bne .L1192 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1114: - add x1, x2, 212 +.L1193: + add x1, x2, 228 strh w0, [x1,x0,lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L1114 + bne .L1193 mov x0, 0 -.L1115: +.L1194: add x2, x1, x0 add w3, w0, 16 add x0, x0, 2 cmp x0, 480 strh w3, [x2,32] - bne .L1115 - b .L1102 -.L1113: + bne .L1194 + b .L1181 +.L1192: cmp w0, 8 - bne .L1102 + bne .L1181 mov x0, 0 add x2, x19, :lo12:.LANCHOR0 -.L1116: - add x1, x2, 212 +.L1195: + add x1, x2, 228 strh w0, [x0,x1] add x0, x0, 2 cmp x0, 512 - bne .L1116 - b .L1102 -.L1097: - add x1, x19, 212 - add x2, x20, 36 + bne .L1195 + b .L1181 +.L1176: + add x1, x19, 228 + add x2, x20, 84 ldrh w1, [x0,x1] add x0, x0, 2 cmp x0, 512 strh w1, [x2,w1,sxtw 1] - bne .L1097 + bne .L1176 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7102,14 +7505,14 @@ flash_die_info_init: ldr w0, [x19,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L1133 + tbz x0, 12, .L1212 adrp x1, .LANCHOR3 adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC4 add x1, x1, 48 bl printk -.L1133: +.L1212: add x25, x19, :lo12:.LANCHOR2 adrp x21, .LANCHOR0 add x20, x21, :lo12:.LANCHOR0 @@ -7119,75 +7522,75 @@ flash_die_info_init: ldrh w0, [x25,402] mov x24, 0 ldrb w1, [x25,388] - add x27, x20, 732 - strh w0, [x20,210] + add x27, x20, 748 + strh w0, [x20,226] add x25, x25, 377 ldrh w0, [x25,9] - strb wzr, [x20,98] + strb wzr, [x20,114] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x26,1060] - add x0, x20, 200 + strh w0, [x26,1108] + add x0, x20, 216 bl ftl_memset - add x0, x26, 1064 + add x0, x26, 1112 mov w1, 0 mov w2, 32 bl ftl_memset ldrb w23, [x25,-1] -.L1135: +.L1214: mov x0, x25 add x1, x27, x24, lsl 3 mov w2, w23 bl flash_mem_cmp8 - cbnz w0, .L1134 - ldrb w1, [x20,98] - add x2, x26, 1064 + cbnz w0, .L1213 + ldrb w1, [x20,114] + add x2, x26, 1112 str w0, [x2,w1,sxtw 2] add w0, w1, 1 add x1, x20, x1, sxtw - strb w0, [x20,98] - strb w24, [x1,200] -.L1134: + strb w0, [x20,114] + strb w24, [x1,216] +.L1213: add x24, x24, 1 cmp x24, 4 - bne .L1135 + bne .L1214 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 376 ldrb w2, [x1,8] cmp w2, 2 - beq .L1136 -.L1140: + beq .L1215 +.L1219: add x19, x19, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR4 ldp x23, x24, [sp,48] ldrb w1, [x19,389] - ldrb w0, [x21,98] + ldrb w0, [x21,114] ldp x25, x26, [sp,64] ldp x27, x28, [sp,80] mul w0, w0, w1 ldrh w1, [x19,390] ldp x19, x20, [sp,16] mul w0, w0, w1 - strh w0, [x22,1096] + strh w0, [x22,1144] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 112 ret -.L1136: +.L1215: add x24, x21, :lo12:.LANCHOR0 ldrh w20, [x1,14] ldrb w27, [x1,23] mov x25, 0 and w20, w20, 65280 add x26, x0, 377 - ldrh w2, [x24,210] - add x3, x24, 732 + ldrh w2, [x24,226] + add x3, x24, 748 add x4, x22, :lo12:.LANCHOR4 mul w20, w20, w2 ldrb w2, [x1,13] mul w20, w20, w2 lsl w28, w20, 1 -.L1139: +.L1218: add x1, x3, x25, lsl 3 mov x0, x26 mov w2, w23 @@ -7196,21 +7599,21 @@ flash_die_info_init: bl flash_mem_cmp8 ldr x3, [x29,104] ldr x4, [x29,96] - cbnz w0, .L1137 - ldrb w1, [x24,98] - add x0, x4, 1064 + cbnz w0, .L1216 + ldrb w1, [x24,114] + add x0, x4, 1112 cmp w27, wzr csel w2, w20, w28, eq str w2, [x0,w1,sxtw 2] add w0, w1, 1 add x1, x24, x1, sxtw - strb w0, [x24,98] - strb w25, [x1,200] -.L1137: + strb w0, [x24,114] + strb w25, [x1,216] +.L1216: add x25, x25, 1 cmp x25, 4 - bne .L1139 - b .L1140 + bne .L1218 + b .L1219 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init @@ -7223,13 +7626,13 @@ lpa_hash_init: str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3328 + add x0, x19, 3376 bl ftl_memset - ldrh w0, [x19,3276] + ldrh w0, [x19,3316] mov w1, 255 - ldrb w2, [x19,3244] + ldrb w2, [x19,3292] mul w2, w0, w2 - ldr x0, [x19,3848] + ldr x0, [x19,3896] lsl w2, w2, 2 bl ftl_memset ldr x19, [sp,16] @@ -7245,52 +7648,52 @@ lpa_rebuild_hash: add x29, sp, 0 ldr w0, [x0,#:lo12:.LANCHOR2] str x19, [sp,16] - tbz x0, 12, .L1151 + tbz x0, 12, .L1230 adrp x1, .LANCHOR3 - adrp x0, .LC108 + adrp x0, .LC115 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC108 + add x0, x0, :lo12:.LC115 add x1, x1, 72 - mov w2, 218 + mov w2, 220 mov w3, 0 bl printk -.L1151: +.L1230: adrp x19, .LANCHOR0 mov w1, 255 add x19, x19, :lo12:.LANCHOR0 mov w2, 512 - add x0, x19, 3328 + add x0, x19, 3376 bl ftl_memset - ldrh w0, [x19,3276] + ldrh w0, [x19,3316] mov w1, 255 - ldrb w2, [x19,3244] + ldrb w2, [x19,3292] mul w2, w0, w2 - ldr x0, [x19,3848] + ldr x0, [x19,3896] lsl w2, w2, 2 bl ftl_memset mov w0, 0 -.L1152: - ldrh w1, [x19,3276] - ldrb w2, [x19,3244] +.L1231: + ldrh w1, [x19,3316] + ldrb w2, [x19,3292] mul w1, w1, w2 cmp w0, w1, lsl 1 - bge .L1161 + bge .L1240 uxtw x2, w0 - ldr x1, [x19,3840] + ldr x1, [x19,3888] ldr w1, [x1,x2,lsl 2] cmn w1, #1 - beq .L1153 + beq .L1232 uxtb w1, w1 - add x3, x19, 3328 + add x3, x19, 3376 ldrh w4, [x3,w1,sxtw 1] strh w0, [x3,w1,sxtw 1] - ldr x1, [x19,3848] + ldr x1, [x19,3896] strh w4, [x1,x2,lsl 1] -.L1153: +.L1232: add w0, w0, 1 uxth w0, w0 - b .L1152 -.L1161: + b .L1231 +.L1240: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7313,9 +7716,9 @@ zftl_read_flash_info: add x1, x1, 376 mov w5, 1 ldrb w2, [x1,9] - ldrh w3, [x0,210] + ldrh w3, [x0,226] mul w2, w2, w3 - ldrb w3, [x0,188] + ldrb w3, [x0,204] strb w3, [x19,7] uxth w2, w2 strh w2, [x19,4] @@ -7330,23 +7733,23 @@ zftl_read_flash_info: ldrb w2, [x1,9] strb w2, [x19,6] mov w2, 32 - ldrb w4, [x0,98] + ldrb w4, [x0,114] ldrb w1, [x1,7] strb w1, [x19,9] mov x1, 0 strb w2, [x19,8] -.L1163: +.L1242: cmp w4, w1, uxtb - bls .L1165 - add x2, x0, 200 + bls .L1244 + add x2, x0, 216 ldrb w3, [x19,10] ldrb w2, [x1,x2] add x1, x1, 1 lsl w2, w5, w2 orr w2, w2, w3 strb w2, [x19,10] - b .L1163 -.L1165: + b .L1242 +.L1244: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -7365,61 +7768,64 @@ gc_init: add x19, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR4 str x21, [sp,32] - add x21, x19, 2888 + add x21, x19, 2912 mov x0, x21 - strb wzr, [x19,3241] - strb wzr, [x20,1098] + strb wzr, [x19,3289] + strb wzr, [x20,1146] + str wzr, [x20,1148] + strh wzr, [x19,3320] bl ftl_memset - ldrh w1, [x19,3276] + ldrh w1, [x19,3316] mov w0, -1 - ldrb w3, [x19,3244] - strh w0, [x19,2888] + ldrb w3, [x19,3292] + strh w0, [x19,2912] lsr w0, w1, 2 lsr w2, w1, 1 - strh w0, [x19,2924] - strh w0, [x19,2862] - ldrh w0, [x19,3242] - strh w2, [x19,2926] + strh w0, [x19,2948] + strh w0, [x19,2878] + ldrh w0, [x19,3290] + strh w2, [x19,2950] mul w2, w1, w3 mul w0, w0, w3 - strh w1, [x19,2864] + strh w1, [x19,2880] uxth w2, w2 lsl w0, w0, 2 sub w4, w2, #32 - strh w2, [x19,2858] - strh w4, [x19,2860] - str xzr, [x19,2896] - strh wzr, [x19,3278] - strh wzr, [x19,3272] - strh wzr, [x19,3274] + strh w2, [x19,2874] + strh w4, [x19,2876] + strh wzr, [x19,3318] + strh wzr, [x19,3312] + strh wzr, [x19,3314] + str xzr, [x19,2920] bl ftl_malloc - ldrb w1, [x19,3244] - str x0, [x20,1104] - ldrh w0, [x19,3242] + ldrb w1, [x19,3292] + str x0, [x20,1152] + ldrh w0, [x19,3290] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1112] - ldrh w1, [x19,3242] - ldrb w0, [x19,3244] + str x0, [x20,1160] + ldrh w1, [x19,3290] + ldrb w0, [x19,3292] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3232] - ldrb w1, [x19,3244] - ldrh w0, [x19,3242] + str x0, [x19,3280] + ldrb w1, [x19,3292] + ldrh w0, [x19,3290] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3216] - ldrb w1, [x19,3244] - ldrh w0, [x19,3242] + str x0, [x19,3264] + ldrb w1, [x19,3292] + ldrh w0, [x19,3290] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,1120] - ldrh w0, [x19,3280] - strh w0, [x19,2856] + str x0, [x20,1168] + ldrh w0, [x19,3322] ldr x21, [sp,32] + lsr w0, w0, 2 + strh w0, [x19,2872] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 48 ret @@ -7429,334 +7835,623 @@ gc_init: .type gc_static_wearleveling, %function gc_static_wearleveling: stp x29, x30, [sp, -144]! - mov w1, 10240 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR0 + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x6, [x0,2848] - ldr w0, [x6,32] - cmp w0, w1 - bls .L1168 - ldr w1, [x6,36] - add w1, w1, w0, lsr 10 - and w0, w0, 1023 - str w1, [x6,36] - str w0, [x6,32] -.L1168: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,80] + ldr x0, [x0,2864] + ldr w1, [x0,32] + mov w0, 10240 + cmp w1, w0 + bls .L1247 + bl ftl_tmp_into_update +.L1247: + add x3, x19, :lo12:.LANCHOR0 + ldr x0, [x3,88] ldr w1, [x0,568] ldr w2, [x0,12] add w1, w1, 860160 add w1, w1, 3840 cmp w2, w1 - bhi .L1169 + bhi .L1248 + ldr x3, [x3,2864] ldr w1, [x0,572] - ldr w3, [x6,36] + ldr w3, [x3,36] add w1, w1, 32 cmp w3, w1 - bls .L1167 -.L1169: - ldr w1, [x6,36] - mov w9, 0 - str w1, [x0,572] - mov w26, 65535 + bls .L1298 +.L1248: + add x1, x19, :lo12:.LANCHOR0 + mov w22, 0 + mov w20, 65535 + adrp x8, .LC116 + mov w28, w22 + str w22, [x29,136] + ldr x1, [x1,2864] + mov w27, w22 + str w22, [x29,140] + mov w26, w22 + mov w25, w22 + mov w24, w22 + ldr w3, [x1,36] + mov w21, w20 + str w3, [x0,572] + mov w9, w20 str w2, [x0,568] - add x0, x20, :lo12:.LANCHOR0 - mov w4, w9 - mov w2, w9 - ldrh w3, [x6,134] - mov w1, w9 - ldrh w11, [x0,56] - mov w22, w9 - ldr x10, [x0,64] - mov w21, w9 - mov w19, w26 - mov w12, w26 -.L1171: - cmp w3, w11 - bcs .L1215 - ubfiz x0, x3, 2, 16 - add x5, x10, x0 - ldrb w5, [x5,2] - tbz x5, 3, .L1172 - ldrh w5, [x10,x0] - and w8, w5, 2047 - ldr w5, [x10,x0] - ubfx x0, x5, 11, 8 - b .L1173 -.L1172: - tst w5, 24 - bne .L1174 - ldrh w5, [x10,x0] - mov w0, 65535 - and w8, w5, 2047 - b .L1173 -.L1174: - ldr w5, [x10,x0] - ubfx x0, x5, 11, 8 -.L1197: - cmp w19, w0 - add w2, w2, 1 - csel w19, w19, w0, cc - cmp w21, w0 - add w4, w4, w0 - csel w0, w21, w0, hi - uxth w2, w2 - uxth w19, w19 - uxth w21, w0 -.L1198: - add w3, w3, 1 - uxth w3, w3 - b .L1171 -.L1215: - ldrh w0, [x6,96] - cmp w0, w22 - bcs .L1176 - strh w22, [x6,96] -.L1176: - ldrh w0, [x6,98] - cmp w0, w21 - bcs .L1177 - strh w21, [x6,98] -.L1177: - adrp x23, .LANCHOR2 - str x23, [x29,128] - udiv w3, w9, w1 - strh w3, [x6,88] - ldr w0, [x23,#:lo12:.LANCHOR2] - udiv w4, w4, w2 - strh w4, [x6,90] - tbz x0, 10, .L1178 - adrp x0, .LC109 - uxth w3, w3 - add x0, x0, :lo12:.LC109 - uxth w4, w4 + adrp x10, .LANCHOR2 + add x8, x8, :lo12:.LC116 + ldrh w23, [x1,134] +.L1250: + add x4, x19, :lo12:.LANCHOR0 + ldrh w0, [x4,56] + cmp w0, w23 + bls .L1359 + uxtw x7, w23 + ldr x0, [x4,64] + lsl x1, x7, 2 + add x6, x0, x1 + ldrb w2, [x6,2] + and w3, w2, 224 + cmp w3, 224 + beq .L1251 + tbz x2, 3, .L1252 + ldrh w3, [x0,x1] + ldr w2, [x0,x1] + and w3, w3, 2047 + ubfx x2, x2, 11, 8 + b .L1253 +.L1252: + tst w2, 24 + bne .L1254 + ldrh w3, [x0,x1] + mov w2, 65535 + and w3, w3, 2047 + b .L1253 +.L1254: + ldr w2, [x0,x1] + mov w3, 65535 + ubfx x2, x2, 11, 8 + b .L1255 +.L1253: + ldr w4, [x29,136] + add w26, w26, 1 + cmp w20, w3 + add w4, w4, w3 + str w4, [x29,136] + uxth w26, w26 + bls .L1297 + add x4, x19, :lo12:.LANCHOR0 + mov w20, w3 + ldr x4, [x4,88] + strh w23, [x4,586] +.L1297: + cmp w25, w3 + bcs .L1256 + mov w22, w23 + mov w25, w3 +.L1256: + cmp w2, w9 + beq .L1257 +.L1255: + ldr w4, [x29,140] + add w27, w27, 1 + cmp w21, w2 + add w4, w4, w2 + str w4, [x29,140] + uxth w27, w27 + bls .L1258 + add x4, x19, :lo12:.LANCHOR0 + mov w21, w2 + ldr x4, [x4,88] + strh w23, [x4,584] +.L1258: + cmp w24, w2 + bcs .L1257 + mov w28, w23 + mov w24, w2 +.L1257: + cmp w3, 9 + bls .L1300 + cmp w2, 9 + bhi .L1251 +.L1300: + ldr w2, [x10,#:lo12:.LANCHOR2] + tbz x2, 8, .L1251 + ldrh w2, [x0,x1] + ldr w3, [x0,x1] + add x0, x19, :lo12:.LANCHOR0 + ldrb w5, [x6,2] + mov w1, w23 + ldrb w6, [x6,3] + and w2, w2, 2047 + ldr x11, [x0,80] + ubfx x4, x5, 3, 2 + mov x0, x8 + ubfx x3, x3, 11, 8 + ubfx x5, x5, 5, 3 + str x10, [x29,112] + ldrh w7, [x11,x7,lsl 1] + str x9, [x29,120] + str x8, [x29,128] bl printk -.L1178: - ldr x0, [x29,128] - adrp x25, .LANCHOR4 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L1179 - add x6, x25, :lo12:.LANCHOR4 - adrp x0, .LC110 - add x0, x0, :lo12:.LC110 - mov w1, w26 - mov w2, w19 - mov w3, w22 - ldrh w5, [x6,1128] - mov w4, w21 - ldrh w6, [x6,1130] - bl printk -.L1179: - add x0, x20, :lo12:.LANCHOR0 + ldr x10, [x29,112] + ldr x9, [x29,120] + ldr x8, [x29,128] +.L1251: + add w23, w23, 1 + uxth w23, w23 + b .L1250 +.L1359: + ldr x0, [x4,88] mov w1, 255 mov w2, 128 - ldr x0, [x0,80] + str x4, [x29,128] add x0, x0, 264 + adrp x23, .LANCHOR2 strh wzr, [x0,-142] bl ftl_memset - add x1, x25, :lo12:.LANCHOR4 - sub w0, w21, w19 + ldr x4, [x29,128] + ldr w2, [x23,#:lo12:.LANCHOR2] + ldr x0, [x4,88] + ldr x3, [x4,64] + ldrh w7, [x0,586] + lsl x0, x7, 2 + mov x1, x7 + add x8, x3, x0 + tbz x2, 10, .L1261 + ldr x9, [x4,80] + ldrh w2, [x3,x0] + ldrb w5, [x8,2] + ldr w3, [x3,x0] + adrp x0, .LC117 + ldrb w6, [x8,3] + ubfx x4, x5, 3, 2 + ldrh w7, [x9,x7,lsl 1] + add x0, x0, :lo12:.LC117 + and w2, w2, 2047 + ubfx x3, x3, 11, 8 + ubfx x5, x5, 5, 3 + str x8, [x29,128] + bl printk + ldr x8, [x29,128] +.L1261: + ldrb w0, [x8,2] + tbz x0, 3, .L1262 + ldrb w0, [x8,2] + and w1, w0, 192 + cmp w1, 64 + bne .L1263 + add x3, x19, :lo12:.LANCHOR0 + mov w1, 0 + mov w2, 1 + str x3, [x29,128] + ldr x0, [x3,88] + ldrh w0, [x0,586] + bl gc_add_sblk + ldr x3, [x29,128] + mov w0, 1 + strh w0, [x3,3230] + b .L1262 +.L1263: + tst w0, 224 + bne .L1262 + add x1, x19, :lo12:.LANCHOR0 + mov w2, 65535 + ldr x0, [x1,88] + ldrh w3, [x0,590] + cmp w3, w2 + bne .L1262 + ldrh w0, [x0,586] + str x1, [x29,128] + bl zftl_remove_free_node + ldr x1, [x29,128] + ldr x0, [x1,88] + ldrh w1, [x0,586] + strh w1, [x0,590] + mov w1, -1 + strh w1, [x0,586] +.L1262: + add x0, x19, :lo12:.LANCHOR0 + ldr w2, [x23,#:lo12:.LANCHOR2] + ldr x1, [x0,88] + ldr x4, [x0,64] + ldrh w7, [x1,584] + lsl x3, x7, 2 + mov x1, x7 + add x8, x4, x3 + tbz x2, 10, .L1264 + ldr x9, [x0,80] + adrp x0, .LC118 + ldrh w2, [x4,x3] + add x0, x0, :lo12:.LC118 + ldrb w5, [x8,2] + ldr w3, [x4,x3] + and w2, w2, 2047 + ldrb w6, [x8,3] + ubfx x4, x5, 3, 2 + ldrh w7, [x9,x7,lsl 1] + ubfx x3, x3, 11, 8 + ubfx x5, x5, 5, 3 + str x8, [x29,128] + bl printk + ldr x8, [x29,128] +.L1264: + ldrb w0, [x8,2] + tbz x0, 3, .L1265 + ldrb w0, [x8,2] + and w1, w0, 192 + cmp w1, 64 + bne .L1266 + add x3, x19, :lo12:.LANCHOR0 + mov w1, 0 + mov w2, 1 + str x3, [x29,128] + ldr x0, [x3,88] + ldrh w0, [x0,584] + bl gc_add_sblk + ldr x3, [x29,128] + mov w0, 1 + strh w0, [x3,3230] + b .L1265 +.L1266: + tst w0, 224 + bne .L1265 + add x1, x19, :lo12:.LANCHOR0 + mov w2, 65535 + ldr x0, [x1,88] + ldrh w3, [x0,588] + cmp w3, w2 + bne .L1265 + ldrh w0, [x0,584] + str x1, [x29,128] + bl zftl_remove_free_node + ldr x1, [x29,128] + ldr x0, [x1,88] + ldrh w1, [x0,584] + strh w1, [x0,588] + mov w1, -1 + strh w1, [x0,584] +.L1265: + add x4, x19, :lo12:.LANCHOR0 + ldr w0, [x23,#:lo12:.LANCHOR2] + ldr x1, [x4,64] + tbz x0, 10, .L1267 + uxtw x7, w22 + ldr x8, [x4,80] + lsl x0, x7, 2 + add x6, x1, x0 + ldrh w7, [x8,x7,lsl 1] + ldrh w2, [x1,x0] + ldr w3, [x1,x0] + adrp x0, .LC119 + ldrb w5, [x6,2] + add x0, x0, :lo12:.LC119 + ldrb w6, [x6,3] + mov w1, w22 + ubfx x4, x5, 3, 2 + and w2, w2, 2047 + ubfx x3, x3, 11, 8 + ubfx x5, x5, 5, 3 + bl printk +.L1267: + add x4, x19, :lo12:.LANCHOR0 + ldr w0, [x23,#:lo12:.LANCHOR2] + ldr x1, [x4,64] + tbz x0, 10, .L1268 + uxtw x7, w28 + ldr x8, [x4,80] + lsl x0, x7, 2 + add x6, x1, x0 + ldrh w7, [x8,x7,lsl 1] + ldrh w2, [x1,x0] + ldr w3, [x1,x0] + adrp x0, .LC120 + ldrb w5, [x6,2] + add x0, x0, :lo12:.LC120 + ldrb w6, [x6,3] + mov w1, w28 + ubfx x4, x5, 3, 2 + and w2, w2, 2047 + ubfx x3, x3, 11, 8 + ubfx x5, x5, 5, 3 + bl printk +.L1268: + ldr w1, [x29,136] + add x0, x19, :lo12:.LANCHOR0 + udiv w3, w1, w26 + ldr w1, [x29,140] + ldr x0, [x0,2864] + strh w25, [x0,96] + strh w24, [x0,98] + strh w20, [x0,92] + strh w21, [x0,94] + udiv w4, w1, w27 + strh w3, [x0,88] + strh w4, [x0,90] + ldr w0, [x23,#:lo12:.LANCHOR2] + tbz x0, 10, .L1269 + adrp x0, .LC121 + mov w1, w26 + add x0, x0, :lo12:.LC121 + mov w2, w27 + uxth w3, w3 + uxth w4, w4 + bl printk +.L1269: + ldr w0, [x23,#:lo12:.LANCHOR2] + adrp x28, .LANCHOR4 + tbz x0, 10, .L1270 + add x6, x28, :lo12:.LANCHOR4 + adrp x0, .LC122 + add x0, x0, :lo12:.LC122 + mov w1, w20 + mov w2, w21 + mov w3, w25 + ldrh w5, [x6,1176] + mov w4, w24 + ldrh w6, [x6,1178] + bl printk +.L1270: + add x1, x28, :lo12:.LANCHOR4 + sub w0, w24, w21 + str w0, [x29,140] + ldrh w0, [x1,1178] + ldr w2, [x29,140] + cmp w2, w0 + bgt .L1271 + ldrh w1, [x1,1176] + sub w0, w25, w20 + cmp w0, w1 + ble .L1299 +.L1271: + add x0, x19, :lo12:.LANCHOR0 + mov w26, 0 + mov w22, w26 + ldr x1, [x0,88] + ldr x0, [x0,2864] + ldrh w24, [x1,580] + ldrh w27, [x0,134] + sub w0, w25, w20 str w0, [x29,136] - ldrh w0, [x1,1130] + adrp x0, .LC124 + add x0, x0, :lo12:.LC124 + adrp x25, .LC123 + str x0, [x29,128] + add x0, x25, :lo12:.LC123 + str x0, [x29,120] +.L1273: + add x1, x19, :lo12:.LANCHOR0 + ldrh w0, [x1,56] + cmp w27, w0 + bcs .L1282 + add w7, w24, 1 + ldr x4, [x1,64] + uxth w24, w7 + cmp w24, w0 + csel w24, w24, wzr, cc + uxtw x25, w24 + lsl x3, x25, 2 + add x0, x4, x3 + ldrb w0, [x0,2] + and w2, w0, 224 + cmp w2, 224 + beq .L1275 + tst w0, 192 + beq .L1275 + ubfx x0, x0, 3, 2 + cmp w2, 160 + and w1, w0, 1 + tbnz x0, 0, .L1357 + cmp w0, 2 +.L1357: + add x0, x28, :lo12:.LANCHOR4 + bne .L1278 + ldrh w0, [x0,1178] + ldr w2, [x29,140] + cmp w2, w0 + ble .L1279 + ldr w0, [x4,x3] + add w2, w21, 2 + ubfx x0, x0, 11, 8 + cmp w0, w2 + ble .L1280 + cbz w1, .L1279 + ldrh w0, [x4,x3] + and w0, w0, 2047 + cmp w0, w20 + bgt .L1279 +.L1280: + mov w1, 0 + mov w0, w24 + mov w2, 1 + str x4, [x29,104] + str x3, [x29,112] + add w22, w22, 1 + bl gc_add_sblk + add x0, x19, :lo12:.LANCHOR0 + mov w1, 1 + add x9, x0, 2912 + ldr x3, [x29,112] + ldr x4, [x29,104] + strh w1, [x0,3230] + ldr w1, [x23,#:lo12:.LANCHOR2] + tbz x1, 10, .L1279 + ldr x1, [x0,64] + ldr x10, [x0,80] + add x1, x1, x3 + ldrh w5, [x4,x3] + ldr w6, [x4,x3] + ldr x0, [x29,120] + ldrb w2, [x1,2] + b .L1358 +.L1278: + ldrh w0, [x0,1176] ldr w2, [x29,136] cmp w2, w0 - bgt .L1180 - ldrh w1, [x1,1128] - sub w0, w22, w26 - cmp w0, w1 - bgt .L1180 -.L1187: - cbz w19, .L1189 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2848] - ldrh w0, [x0,134] - b .L1190 -.L1180: - add x9, x20, :lo12:.LANCHOR0 - adrp x27, .LC112 - adrp x28, .LC111 - mov w24, 0 - mov x23, x9 - str w24, [x29,140] - ldr x0, [x9,2848] - ldrh w21, [x0,134] - sub w0, w22, w26 - str w0, [x29,124] - add x0, x27, :lo12:.LC112 - str x0, [x29,112] - add x0, x28, :lo12:.LC111 - str x0, [x29,104] -.L1183: - ldrh w0, [x23,56] - cmp w0, w21 - bls .L1187 - uxtw x22, w21 - ldr x28, [x23,64] - lsl x27, x22, 2 - add x0, x28, x27 - ldrb w0, [x0,2] - and w1, w0, 224 - cmp w1, 224 - beq .L1184 - tst w0, 192 - cset w2, eq - cbnz w2, .L1184 - ubfx x0, x0, 3, 2 - and w0, w0, 2 - uxtb w1, w0 - add x0, x25, :lo12:.LANCHOR4 - cbz w1, .L1185 - ldrh w0, [x0,1130] - ldr w1, [x29,136] - cmp w1, w0 - ble .L1186 - ldr w0, [x28,x27] - add w1, w19, 1 - ubfx x0, x0, 11, 8 - cmp w0, w1 - bgt .L1186 - mov w1, w2 - mov w0, w21 - mov w2, 1 - bl gc_add_sblk - ldr w0, [x29,140] - add w0, w0, 1 - str w0, [x29,140] - ldr x0, [x29,128] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L1186 - ldr x0, [x23,64] - ldr x11, [x23,72] - add x0, x0, x27 - ldrh w5, [x28,x27] - ldr w6, [x28,x27] - ldrb w2, [x0,2] - ldr x0, [x29,104] - b .L1214 -.L1185: - ldrh w0, [x0,1128] - ldr w2, [x29,124] - cmp w2, w0 - ble .L1186 - ldrh w0, [x28,x27] - add w2, w26, 1 + ble .L1279 + ldrh w0, [x4,x3] + add w2, w20, 2 and w0, w0, 2047 cmp w0, w2 - bgt .L1186 - mov w0, w21 + ble .L1281 + cbz w1, .L1279 + ldr w0, [x4,x3] + add w1, w21, 2 + ubfx x0, x0, 11, 8 + cmp w0, w1 + bgt .L1279 +.L1281: + mov w1, 0 + mov w0, w24 mov w2, 1 - add w24, w24, 1 + str x4, [x29,104] + str x3, [x29,112] + add w26, w26, 1 bl gc_add_sblk + add x0, x19, :lo12:.LANCHOR0 + mov w1, 1 + add x9, x0, 2912 + ldr x3, [x29,112] + ldr x4, [x29,104] + strh w1, [x0,3230] + ldr w1, [x23,#:lo12:.LANCHOR2] + tbz x1, 10, .L1279 + ldr x1, [x0,64] + ldr x10, [x0,80] + add x1, x1, x3 + ldrh w5, [x4,x3] + ldr w6, [x4,x3] ldr x0, [x29,128] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L1186 - ldr x0, [x23,64] - ldr x11, [x23,72] - add x0, x0, x27 - ldrh w5, [x28,x27] - ldr w6, [x28,x27] - ldrb w2, [x0,2] - ldr x0, [x29,112] -.L1214: - ldrh w3, [x11,x22,lsl 1] - mov w1, w21 - ldrh w4, [x23,2944] + ldrb w2, [x1,2] +.L1358: + ldrh w3, [x10,x25,lsl 1] + mov w1, w24 + ldrh w4, [x9,56] ubfx x2, x2, 5, 3 and w5, w5, 2047 ubfx x6, x6, 11, 8 bl printk -.L1186: - cmp w24, 4 - bhi .L1187 - ldr w0, [x29,140] - cmp w0, 4 - bhi .L1187 -.L1184: - add w10, w21, 1 - uxth w21, w10 - b .L1183 -.L1192: +.L1279: + cmp w26, 4 + bhi .L1282 + cmp w22, 4 + bhi .L1282 +.L1275: + add w27, w27, 1 + uxth w27, w27 + b .L1273 +.L1282: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,88] + str w24, [x0,580] + b .L1272 +.L1299: + mov w26, 0 + mov w22, w26 +.L1272: + cbz w21, .L1285 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2864] + ldrh w0, [x0,134] +.L1286: + add x1, x19, :lo12:.LANCHOR0 + ldrh w2, [x1,56] + cmp w2, w0 + bls .L1360 ubfiz x3, x0, 2, 16 ldr x4, [x1,64] + add x5, x4, x3 ldr w1, [x4,x3] ubfx x2, x1, 11, 8 - cmp w2, w19 - bcc .L1191 - sub w2, w2, w19 + cmp w2, w21 + bcc .L1287 + ldrb w5, [x5,2] + tst w5, 24 + beq .L1287 + sub w2, w2, w21 bfi w1, w2, 11, 8 str w1, [x4,x3] -.L1191: +.L1287: add w0, w0, 1 uxth w0, w0 -.L1190: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,56] - cmp w2, w0 - bhi .L1192 - ldr x0, [x1,2848] + b .L1286 +.L1360: + ldr x0, [x1,2864] ldrh w1, [x0,72] - add w1, w19, w1 + add w1, w21, w1 strh w1, [x0,72] ldrh w1, [x0,98] - cmp w1, w19 - bls .L1189 - sub w19, w1, w19 - strh w19, [x0,98] -.L1189: - cbz w26, .L1167 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + cmp w1, w21 + bls .L1285 + sub w21, w1, w21 + strh w21, [x0,98] +.L1285: + cbz w20, .L1291 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2864] ldrh w0, [x0,134] -.L1194: - add x1, x20, :lo12:.LANCHOR0 +.L1292: + add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1,56] cmp w2, w0 - bls .L1216 + bls .L1361 ubfiz x3, x0, 2, 16 ldr x4, [x1,64] + add x5, x4, x3 ldrh w1, [x4,x3] and w2, w1, 2047 - cmp w2, w26 - blt .L1195 - sub w2, w2, w26 + cmp w2, w20 + blt .L1293 + ldrb w5, [x5,2] + and w5, w5, 24 + cmp w5, 16 + beq .L1293 + sub w2, w2, w20 bfi w1, w2, 0, 11 strh w1, [x4,x3] -.L1195: +.L1293: add w0, w0, 1 uxth w0, w0 - b .L1194 -.L1216: - ldr x0, [x1,2848] + b .L1292 +.L1361: + ldr x0, [x1,2864] ldrh w1, [x0,74] - add w1, w26, w1 + add w1, w20, w1 strh w1, [x0,74] ldrh w1, [x0,96] - cmp w1, w26 - bls .L1167 - sub w7, w1, w26 - strh w7, [x0,96] - b .L1167 -.L1173: - cmp w26, w8 - add w1, w1, 1 - csel w7, w26, w8, cc - cmp w22, w8 - add w9, w9, w8 - csel w8, w22, w8, hi - cmp w0, w12 - uxth w1, w1 - uxth w26, w7 - uxth w22, w8 - bne .L1197 - b .L1198 -.L1167: + cmp w1, w20 + bls .L1291 + sub w20, w1, w20 + strh w20, [x0,96] +.L1291: + mov w1, 5 + mov w0, 0 + bl zftl_get_gc_node + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L1249 + add x19, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x2, [x19,80] + ldrh w2, [x2,x1] + ldrh w1, [x19,3316] + cmp w2, w1 + bhi .L1249 + mov w1, 0 + mov w2, 1 + add w22, w22, 1 + bl gc_add_sblk + b .L1249 +.L1298: + mov w26, 0 + mov w22, w26 +.L1249: + add w0, w26, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7782,83 +8477,86 @@ zftl_sblk_list_init: mov w24, 6 mov w23, 32768 ldrh w2, [x19,56] - adrp x26, .LC113 + adrp x26, .LC125 ldr x0, [x19,8] mov w25, -1 - add x26, x26, :lo12:.LC113 + add x26, x26, :lo12:.LC125 mul w2, w2, w24 bl ftl_memset - ldrh w22, [x19,3276] - ldrb w0, [x19,3244] - str xzr, [x19,3288] - str xzr, [x19,3296] + ldrh w22, [x19,3290] + mov w0, 16 + strh w0, [x19,3352] + ldrb w0, [x19,3292] + str xzr, [x19,3328] + str xzr, [x19,3336] mul w22, w0, w22 + str xzr, [x19,3344] str xzr, [x19,3304] - str xzr, [x19,3264] sdiv w22, w23, w22 - str xzr, [x19,3256] - str xzr, [x19,3248] - strh wzr, [x19,2828] - strh wzr, [x19,2830] - strh wzr, [x19,2832] - strh wzr, [x19,2834] - strh wzr, [x19,2838] - strh wzr, [x19,2836] + str xzr, [x19,96] + str xzr, [x19,3296] + strh wzr, [x19,2844] + strh wzr, [x19,2846] + strh wzr, [x19,2848] + strh wzr, [x19,2850] + strh wzr, [x19,2854] + strh wzr, [x19,2852] sxth w0, w22 str w0, [x29,108] - ldr x0, [x19,2848] + ldr x0, [x19,2864] ldrsh w19, [x0,134] strh wzr, [x0,146] -.L1218: - add x1, x21, :lo12:.LANCHOR0 - ldrh w0, [x1,56] - cmp w19, w0 - bge .L1248 +.L1363: + add x0, x21, :lo12:.LANCHOR0 + ldrh w1, [x0,56] + cmp w19, w1 + bge .L1393 sxtw x22, w19 - ldr x27, [x1,64] - ldr w2, [x29,108] + ldr x27, [x0,64] + ldr w1, [x29,108] add x27, x27, x22, lsl 2 - ldrb w0, [x27,3] - cbz w0, .L1219 + ldrb w2, [x27,3] + cbz w2, .L1364 + ldrb w5, [x0,3292] + ldrh w6, [x0,3290] + ldr x4, [x0,2864] mov w0, 0 - ldrb w5, [x1,3244] - ldrh w6, [x1,3276] - mov w2, w0 - ldr x4, [x1,2848] -.L1220: + mov w1, w0 +.L1365: cmp w0, w5 - bge .L1249 - ldrb w1, [x27,3] - asr w1, w1, w0 - tbnz x1, 0, .L1221 - add w2, w6, w2 - sxth w2, w2 - b .L1222 -.L1221: - ldrh w1, [x4,146] - add w1, w1, 1 - strh w1, [x4,146] -.L1222: + bge .L1394 + ldrb w2, [x27,3] + asr w2, w2, w0 + tbnz x2, 0, .L1366 + add w1, w6, w1 + sxth w1, w1 + b .L1367 +.L1366: + ldrh w2, [x4,146] + add w2, w2, 1 + strh w2, [x4,146] +.L1367: add w0, w0, 1 - b .L1220 -.L1249: - cbz w2, .L1224 - sdiv w2, w23, w2 - sxth w2, w2 - b .L1219 -.L1224: + b .L1365 +.L1394: + cbz w1, .L1369 + sdiv w1, w23, w1 + add w1, w1, 1 + sxth w1, w1 + b .L1364 +.L1369: ldrb w0, [x27,2] orr w0, w0, -32 strb w0, [x27,2] add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,72] + ldr x0, [x0,80] strh w25, [x0,x22,lsl 1] -.L1219: +.L1364: add x20, x21, :lo12:.LANCHOR0 smull x0, w19, w24 - ldr x1, [x20,8] - add x1, x1, x0 - strh w2, [x1,4] + ldr x2, [x20,8] + add x2, x2, x0 + strh w1, [x2,4] ldr x1, [x20,8] add x2, x1, x0 strh w25, [x2,2] @@ -7866,114 +8564,114 @@ zftl_sblk_list_init: ldrb w1, [x27,2] and w0, w1, 224 cmp w0, 224 - beq .L1227 + beq .L1372 cmp w0, 32 cset w28, eq - cbnz w28, .L1227 - ldr x2, [x20,80] + cbnz w28, .L1372 + ldr x2, [x20,88] ldrh w4, [x2,16] cmp w19, w4 - beq .L1227 + beq .L1372 ldrh w4, [x2,48] cmp w19, w4 - beq .L1227 + beq .L1372 ldrh w2, [x2,80] cmp w19, w2 - beq .L1227 + beq .L1372 cmp w0, 64 - bne .L1229 + bne .L1374 uxth w27, w19 - add x0, x20, 3256 + add x0, x20, 96 mov w1, w27 - add x2, x20, 2834 - b .L1246 -.L1229: + add x2, x20, 2850 + b .L1391 +.L1374: cmp w0, 96 - bne .L1230 + bne .L1375 uxth w27, w19 - add x0, x20, 3264 + add x0, x20, 3304 mov w1, w27 - add x2, x20, 2836 - b .L1246 -.L1230: + add x2, x20, 2852 + b .L1391 +.L1375: cmp w0, 160 - bne .L1231 + bne .L1376 uxth w27, w19 - add x0, x20, 3248 + add x0, x20, 3296 mov w1, w27 - add x2, x20, 2838 -.L1246: + add x2, x20, 2854 +.L1391: bl _insert_data_list - ldr x0, [x20,72] + ldr x0, [x20,80] ldrh w0, [x0,x22,lsl 1] cmp w0, 7 - bhi .L1227 + bhi .L1372 mov w0, w27 mov w1, 1 mov w2, w28 - b .L1244 -.L1231: - cbnz w0, .L1227 - ldr x0, [x20,72] + b .L1389 +.L1376: + cbnz w0, .L1372 + ldr x0, [x20,80] ldrh w2, [x0,x22,lsl 1] - cbz w2, .L1232 + cbz w2, .L1377 mov x0, x26 mov w1, w19 bl printk ldrb w0, [x27,2] - tbz x0, 4, .L1233 + tbz x0, 4, .L1378 mov w1, 5 - b .L1240 -.L1233: + b .L1385 +.L1378: mov w1, 2 -.L1240: +.L1385: bfi w0, w1, 5, 3 mov w2, 0 strb w0, [x27,2] mov w1, 1 mov w0, w19 -.L1244: +.L1389: bl gc_add_sblk - b .L1227 -.L1232: + b .L1372 +.L1377: ands w1, w1, 24 add x2, x21, :lo12:.LANCHOR0 - bne .L1235 - add x0, x2, 3288 + bne .L1380 + add x0, x2, 3328 mov w1, w19 - add x2, x2, 2828 - b .L1242 -.L1235: + add x2, x2, 2844 + b .L1387 +.L1380: cmp w1, 16 - bne .L1236 - add x0, x2, 3296 + bne .L1381 + add x0, x2, 3336 mov w1, w19 - add x2, x2, 2830 - b .L1242 -.L1236: - add x0, x2, 3304 + add x2, x2, 2846 + b .L1387 +.L1381: + add x0, x2, 3344 mov w1, w19 - add x2, x2, 2832 -.L1242: + add x2, x2, 2848 +.L1387: bl _insert_free_list -.L1227: +.L1372: add w19, w19, 1 sxth w19, w19 - b .L1218 -.L1248: - ldr x0, [x1,2848] - ldrh w2, [x1,2828] - strh w2, [x0,114] - ldrh w2, [x1,2830] - strh w2, [x0,118] - ldrh w2, [x1,2832] - strh w2, [x0,116] - ldrh w2, [x1,2834] - strh w2, [x0,122] - ldrh w2, [x1,2838] - ldrh w1, [x1,2836] - strh w2, [x0,120] - strh w1, [x0,124] + b .L1363 +.L1393: + ldr x1, [x0,2864] + ldrh w2, [x0,2844] + strh w2, [x1,114] + ldrh w2, [x0,2846] + strh w2, [x1,118] + ldrh w2, [x0,2848] + strh w2, [x1,116] + ldrh w2, [x0,2850] + strh w2, [x1,122] + ldrh w2, [x0,2854] + ldrh w0, [x0,2852] + strh w2, [x1,120] + strh w0, [x1,124] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -7990,7 +8688,7 @@ ftl_open_sblk_init: add x29, sp, 0 stp x19, x20, [sp,16] stp x23, x24, [sp,48] - adrp x20, .LC106 + adrp x20, .LC113 adrp x23, .LANCHOR0 stp x25, x26, [sp,64] stp x21, x22, [sp,32] @@ -7999,10 +8697,10 @@ ftl_open_sblk_init: mov w21, w1 add x25, x0, 16 mov x26, x23 - add x20, x20, :lo12:.LC106 + add x20, x20, :lo12:.LC113 mov w24, -1 -.L1251: -.L1254: +.L1396: +.L1399: mov w0, w21 bl ftl_alloc_sblk uxth w22, w0 @@ -8018,41 +8716,41 @@ ftl_open_sblk_init: cmp w21, 2 strh wzr, [x19,2] mov w3, 0 - ldrh w1, [x0,3276] + ldrh w1, [x0,3316] strb wzr, [x19,5] strh wzr, [x19,10] mul w2, w1, w2 strh w2, [x19,6] strb w21, [x19,4] - beq .L1252 - ldrb w3, [x0,3244] + beq .L1397 + ldrb w3, [x0,3292] mul w3, w1, w3 uxth w3, w3 -.L1252: +.L1397: add x27, x26, :lo12:.LANCHOR0 strh w3, [x19,12] ubfiz x28, x22, 1, 16 - ldrb w2, [x27,3244] - ldr x0, [x27,3840] + ldrb w2, [x27,3292] + ldr x0, [x27,3888] add x0, x0, x3, uxth 2 mul w2, w1, w2 mov w1, 255 lsl w2, w2, 2 bl ftl_memset - ldr x0, [x27,72] + ldr x0, [x27,80] ldrh w1, [x19,6] strh w1, [x0,x28] ldrb w0, [x19,9] - cbnz w0, .L1250 + cbnz w0, .L1395 mov x0, x20 mov w1, w22 bl printk - ldr x0, [x27,72] + ldr x0, [x27,80] strh w24, [x0,x28] mov w0, 7 strb w0, [x19,4] - b .L1254 -.L1250: + b .L1399 +.L1395: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -8074,17 +8772,17 @@ pm_free_sblk: stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldrh w0, [x0,1132] + ldrh w0, [x0,1180] cmp w0, 128 - bls .L1257 + bls .L1402 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, 96 - mov w2, 76 + mov w2, 78 bl printk -.L1257: +.L1402: add x28, x29, 112 mov w1, 0 mov w2, 256 @@ -8095,18 +8793,18 @@ pm_free_sblk: mov w0, 21 mov w1, 1 mov x3, 0 - ldrh w6, [x2,3314] - ldr x4, [x2,2848] + ldrh w6, [x2,3356] + ldr x4, [x2,2864] sub w0, w0, w6 - ldrb w8, [x2,3312] + ldrb w8, [x2,3354] lsl w0, w1, w0 add x1, x23, :lo12:.LANCHOR4 ldrh w7, [x4,698] sub w0, w0, #1 - ldrh w9, [x1,1132] -.L1258: + ldrh w9, [x1,1180] +.L1403: cmp w7, w3, uxth - bls .L1283 + bls .L1428 add x1, x4, x3, lsl 2 mov x2, 0 ldr w1, [x1,704] @@ -8114,90 +8812,90 @@ pm_free_sblk: and w1, w1, w0 udiv w1, w1, w8 uxth w1, w1 -.L1259: +.L1404: cmp w9, w2, uxth - bls .L1284 + bls .L1429 add x5, x4, x2, lsl 1 ldrh w5, [x5,416] cmp w5, w1 - bne .L1260 + bne .L1405 ldrh w5, [x28,x2,lsl 1] add w5, w5, 1 strh w5, [x28,x2,lsl 1] -.L1260: +.L1405: add x2, x2, 1 - b .L1259 -.L1284: + b .L1404 +.L1429: add x3, x3, 1 - b .L1258 -.L1283: + b .L1403 +.L1428: add x1, x21, :lo12:.LANCHOR0 mov w25, 0 - adrp x24, .LC114 + adrp x24, .LC126 mov w19, w25 adrp x26, .LANCHOR2 mov w27, -1 - ldrb w0, [x1,3244] - add x24, x24, :lo12:.LC114 - ldrh w20, [x1,3276] + ldrb w0, [x1,3292] + add x24, x24, :lo12:.LC126 + ldrh w20, [x1,3316] mul w20, w0, w20 uxth w20, w20 -.L1263: +.L1408: add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,1132] + ldrh w0, [x0,1180] cmp w0, w19 - bls .L1285 + bls .L1430 add x0, x21, :lo12:.LANCHOR0 sxtw x22, w19 add x1, x22, 208 - ldr x4, [x0,2848] - ldrb w2, [x0,3312] + ldr x4, [x0,2864] + ldrb w2, [x0,3354] ldrh w3, [x4,x1,lsl 1] ldrh w1, [x4,692] sdiv w1, w1, w2 cmp w1, w3 - bne .L1264 - ldrb w1, [x0,3244] - ldrh w0, [x0,3276] + bne .L1409 + ldrb w1, [x0,3292] + ldrh w0, [x0,3316] mul w0, w1, w0 strh w0, [x28,w19,sxtw 1] -.L1264: +.L1409: ldrh w0, [x28,x22,lsl 1] cmp w20, w0 - bls .L1265 + bls .L1410 cmp w0, wzr csel w25, w25, w19, eq csel w20, w20, w0, eq -.L1265: - cbnz w0, .L1267 +.L1410: + cbnz w0, .L1412 mov w0, 65535 cmp w3, w0 - beq .L1267 + beq .L1412 ldr w0, [x26,#:lo12:.LANCHOR2] - tbz x0, 12, .L1268 + tbz x0, 12, .L1413 ldrh w4, [x4,688] mov x0, x24 mov w1, w19 mov w2, 0 bl printk -.L1268: +.L1413: add x1, x21, :lo12:.LANCHOR0 add x22, x22, 208 str x1, [x29,104] - ldr x0, [x1,2848] + ldr x0, [x1,2864] ldrh w0, [x0,x22,lsl 1] bl ftl_free_sblk ldr x1, [x29,104] - ldr x0, [x1,2848] + ldr x0, [x1,2864] strh w27, [x0,x22,lsl 1] ldrh w1, [x0,688] sub w1, w1, #1 strh w1, [x0,688] -.L1267: +.L1412: add w19, w19, 1 uxth w19, w19 - b .L1263 -.L1285: + b .L1408 +.L1430: mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -8228,35 +8926,35 @@ flash_into_data_init: ldr w0, [x1,#:lo12:.LANCHOR2] stp x19, x20, [sp,16] mov x20, x1 - tbz x0, 12, .L1288 + tbz x0, 12, .L1433 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 100 add x2, x2, 112 bl printk -.L1288: +.L1433: adrp x19, .LANCHOR0 mov w1, 0 add x19, x19, :lo12:.LANCHOR0 mov w2, 2048 - ldr x0, [x19,192] + ldr x0, [x19,208] bl ftl_memset - ldr x1, [x19,192] + ldr x1, [x19,208] mov w0, 21321 movk w0, 0x5359, lsl 16 mov w2, 32 str w0, [x1] mov w1, 2032 - ldr x0, [x19,192] + ldr x0, [x19,208] add x0, x0, 80 str w1, [x0,-72] mov w1, 1 strh w1, [x0,-64] - add x1, x19, 104 + add x1, x19, 120 bl ftl_memcpy - ldr x0, [x19,192] + ldr x0, [x19,208] add x1, x20, :lo12:.LANCHOR2 add x1, x1, 376 mov w2, 32 @@ -8271,14 +8969,14 @@ flash_into_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1293: +.L1438: cmp w2, w3 - bls .L1295 + bls .L1440 ldr w4, [x1,x3,lsl 2] str w4, [x0,x3,lsl 2] add x3, x3, 1 - b .L1293 -.L1295: + b .L1438 +.L1440: ret .size ftl_memcpy32, .-ftl_memcpy32 .align 2 @@ -8300,17 +8998,17 @@ js_hash: mov w0, 42982 mov x2, 0 movk w0, 0x47c6, lsl 16 -.L1298: +.L1443: cmp w1, w2 - bls .L1300 + bls .L1445 lsl w3, w0, 5 ldrb w4, [x5,x2] add w3, w3, w0, lsr 2 add x2, x2, 1 add w3, w3, w4 eor w0, w0, w3 - b .L1298 -.L1300: + b .L1443 +.L1445: ret .size js_hash, .-js_hash .align 2 @@ -8321,8 +9019,8 @@ timer_get_time: stp x29, x30, [sp, -16]! add x29, sp, 0 ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR4+1136 - ldr x0, [x0,#:lo12:.LANCHOR4+1136] + adrp x0, .LANCHOR4+1184 + ldr x0, [x0,#:lo12:.LANCHOR4+1184] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -8342,10 +9040,10 @@ StorageSysDataLoad: mov w1, 0 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR4+1144 + adrp x0, .LANCHOR4+1192 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x3, [x0,24] mov w0, w20 blr x3 @@ -8365,10 +9063,10 @@ StorageSysDataStore: str x0, [x29,16] str x1, [x29,24] bl rknand_device_lock - adrp x1, .LANCHOR4+1144 + adrp x1, .LANCHOR4+1192 ldr x2, [x29,24] ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR4+1144] + ldr x1, [x1,#:lo12:.LANCHOR4+1192] ldr x3, [x1,32] mov w1, 1 blr x3 @@ -8388,11 +9086,11 @@ FlashBootVendorRead: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1144 + adrp x3, .LANCHOR4+1192 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1144] + ldr x3, [x3,#:lo12:.LANCHOR4+1192] ldr x3, [x3,8] blr x3 str x0, [x29,40] @@ -8411,11 +9109,11 @@ FlashBootVendorWrite: str x1, [x29,32] str x2, [x29,40] bl rknand_device_lock - adrp x3, .LANCHOR4+1144 + adrp x3, .LANCHOR4+1192 ldr x1, [x29,32] ldr x2, [x29,40] ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR4+1144] + ldr x3, [x3,#:lo12:.LANCHOR4+1192] ldr x3, [x3,16] blr x3 str x0, [x29,40] @@ -8428,20 +9126,20 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR4+1152 + adrp x4, .LANCHOR4+1200 mov x6, x0 stp x29, x30, [sp, -16]! uxtw x1, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1152] + ldr x4, [x4,#:lo12:.LANCHOR4+1200] add x4, x4, 4096 - cbnz w2, .L1307 + cbnz w2, .L1452 add x1, x4, x1 - b .L1309 -.L1307: + b .L1454 +.L1452: add x0, x4, x1 mov x1, x6 -.L1309: +.L1454: mov w2, w3 bl ftl_memcpy ldp x29, x30, [sp], 16 @@ -8458,13 +9156,13 @@ FlashCs123Init: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC116 + adrp x0, .LC128 mov w1, 0 add x29, sp, 0 - add x0, x0, :lo12:.LC116 + add x0, x0, :lo12:.LC128 bl printk - adrp x0, .LANCHOR4+1144 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + adrp x0, .LANCHOR4+1192 + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x0, [x0,80] blr x0 ldp x29, x30, [sp], 16 @@ -8474,10 +9172,10 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR4+1144 + adrp x0, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x1, [x0,64] mov w0, 0 blr x1 @@ -8488,10 +9186,10 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR4+1144 + adrp x0, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x0, [x0,88] blr x0 ldp x29, x30, [sp], 16 @@ -8501,10 +9199,10 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR4+1144 + adrp x0, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x0, [x0,96] blr x0 ldp x29, x30, [sp], 16 @@ -8514,10 +9212,10 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR4+1144 + adrp x0, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR4+1144] + ldr x0, [x0,#:lo12:.LANCHOR4+1192] ldr x1, [x0,72] mov w0, 0 blr x1 @@ -8528,10 +9226,10 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR4+1144 + adrp x1, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1144] + ldr x1, [x1,#:lo12:.LANCHOR4+1192] ldr x1, [x1,120] blr x1 ldp x29, x30, [sp], 16 @@ -8541,10 +9239,10 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR4+1144 + adrp x1, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1144] + ldr x1, [x1,#:lo12:.LANCHOR4+1192] ldr x1, [x1,128] blr x1 ldp x29, x30, [sp], 16 @@ -8554,11 +9252,11 @@ rknand_proc_ftlread: .global FtlWrite .type FtlWrite, %function FtlWrite: - adrp x4, .LANCHOR4+1144 + adrp x4, .LANCHOR4+1192 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1144] + ldr x4, [x4,#:lo12:.LANCHOR4+1192] ldr x4, [x4,48] blr x4 ldp x29, x30, [sp], 16 @@ -8568,11 +9266,11 @@ FtlWrite: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR4+1144 + adrp x4, .LANCHOR4+1192 uxtb w0, w0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1144] + ldr x4, [x4,#:lo12:.LANCHOR4+1192] ldr x4, [x4,40] blr x4 ldp x29, x30, [sp], 16 @@ -8582,10 +9280,10 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR4+1144 + adrp x2, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1144] + ldr x2, [x2,#:lo12:.LANCHOR4+1192] ldr x2, [x2,56] blr x2 ldp x29, x30, [sp], 16 @@ -8595,10 +9293,10 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR4+1144 + adrp x2, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR4+1144] + ldr x2, [x2,#:lo12:.LANCHOR4+1192] ldr x2, [x2,104] blr x2 ldp x29, x30, [sp], 16 @@ -8608,10 +9306,10 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR4+1144 + adrp x1, .LANCHOR4+1192 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR4+1144] + ldr x1, [x1,#:lo12:.LANCHOR4+1192] ldr x1, [x1,112] blr x1 ldp x29, x30, [sp], 16 @@ -8627,8 +9325,8 @@ rknand_print_hex: stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x19, 0 - adrp x23, .LC117 - adrp x21, .LC118 + adrp x23, .LC129 + adrp x21, .LC130 adrp x24, .LC1 stp x25, x26, [sp,64] str x27, [sp,80] @@ -8637,48 +9335,48 @@ rknand_print_hex: mov w25, w2 uxtw x26, w3 mov w20, w19 - add x23, x23, :lo12:.LC117 - add x21, x21, :lo12:.LC118 + add x23, x23, :lo12:.LC129 + add x21, x21, :lo12:.LC130 add x24, x24, :lo12:.LC1 -.L1324: +.L1469: cmp x19, x26 - beq .L1332 - cbnz w20, .L1325 + beq .L1477 + cbnz w20, .L1470 mov x0, x23 mov x1, x27 mov x2, x22 mov w3, w19 bl printk -.L1325: +.L1470: cmp w25, 4 mov x0, x21 - bne .L1326 + bne .L1471 ldr w1, [x22,x19,lsl 2] - b .L1331 -.L1326: + b .L1476 +.L1471: cmp w25, 2 - bne .L1328 + bne .L1473 ldrsh w1, [x22,x19,lsl 1] - b .L1331 -.L1328: + b .L1476 +.L1473: ldrb w1, [x22,x19] -.L1331: +.L1476: bl printk add w20, w20, 1 cmp w20, 15 - bls .L1329 - adrp x1, .LC119 + bls .L1474 + adrp x1, .LC131 mov x0, x24 - add x1, x1, :lo12:.LC119 + add x1, x1, :lo12:.LC131 mov w20, 0 bl printk -.L1329: +.L1474: add x19, x19, 1 - b .L1324 -.L1332: + b .L1469 +.L1477: adrp x0, .LC1 - adrp x1, .LC119 - add x1, x1, :lo12:.LC119 + adrp x1, .LC131 + add x1, x1, :lo12:.LC131 add x0, x0, :lo12:.LC1 bl printk ldr x27, [sp,80] @@ -8707,7 +9405,7 @@ hynix_get_read_retry_default: stp x27, x28, [sp,80] cmp w25, 2 str x19, [x29,128] - ldr x27, [x0,192] + ldr x27, [x0,208] add x0, x27, 112 str x0, [x29,136] mov w0, -84 @@ -8718,30 +9416,30 @@ hynix_get_read_retry_default: add x26, x27, 128 strb w1, [x27,130] strb w0, [x27,131] - bne .L1334 + bne .L1479 ldr x1, [x29,136] mov w0, -89 strb w0, [x1,16] adrp x0, .LANCHOR2+425 mov w1, -9 strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1389 -.L1334: + b .L1534 +.L1479: cmp w25, 3 - bne .L1336 + bne .L1481 mov x4, 0 -.L1337: +.L1482: sub w0, w4, #80 strb w0, [x26,x4] add x4, x4, 1 cmp x4, 8 - bne .L1337 + bne .L1482 mov w21, w4 mov w28, w4 - b .L1335 -.L1336: + b .L1480 +.L1481: cmp w25, 4 - bne .L1338 + bne .L1483 mov w4, -52 strb w4, [x27,128] mov w4, -65 @@ -8757,10 +9455,10 @@ hynix_get_read_retry_default: strb w1, [x27,134] strb w4, [x27,132] strb w0, [x27,135] - b .L1335 -.L1338: + b .L1480 +.L1483: cmp w25, 5 - bne .L1339 + bne .L1484 mov w0, 56 strb w0, [x27,128] mov w0, 57 @@ -8770,10 +9468,10 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 59 strb w0, [x27,131] - b .L1423 -.L1339: + b .L1568 +.L1484: cmp w25, 6 - bne .L1340 + bne .L1485 mov w0, 14 strb w0, [x27,128] mov w0, 15 @@ -8783,32 +9481,32 @@ hynix_get_read_retry_default: strb w0, [x27,130] mov w0, 17 strb w0, [x27,131] - b .L1423 -.L1340: + b .L1568 +.L1485: cmp w25, 7 - bne .L1389 + bne .L1534 mov x0, 0 -.L1341: +.L1486: sub w1, w0, #80 strb w1, [x26,x0] add x0, x0, 1 cmp x0, 8 - bne .L1341 + bne .L1486 mov w0, -44 mov w21, 12 strb w0, [x27,136] mov w28, 10 mov w0, -43 strb w0, [x27,137] - b .L1335 -.L1389: + b .L1480 +.L1534: mov w21, 7 -.L1423: +.L1568: mov w28, 4 -.L1335: +.L1480: sub w0, w25, #1 cmp w0, 1 - bhi .L1420 + bhi .L1565 ldr x0, [x29,128] adrp x24, .LANCHOR2 add x24, x24, :lo12:.LANCHOR2 @@ -8816,13 +9514,13 @@ hynix_get_read_retry_default: add x19, x0, :lo12:.LANCHOR0 mov w27, 55 add x24, x24, 408 -.L1342: - ldrb w0, [x19,98] +.L1487: + ldrb w0, [x19,114] cmp w0, w23 - bls .L1349 + bls .L1494 add x0, x19, x23, sxtw ldr x2, [x29,136] - ldrb w0, [x0,200] + ldrb w0, [x0,216] mov x20, 160 ldr x22, [x19,16] mov x25, 0 @@ -8830,7 +9528,7 @@ hynix_get_read_retry_default: madd x20, x0, x20, x2 add x22, x22, x1 add x20, x20, 32 -.L1344: +.L1489: str w27, [x22,2056] ldrb w0, [x26,x25] str w0, [x22,2052] @@ -8840,12 +9538,12 @@ hynix_get_read_retry_default: strb w0, [x20,x25] add x25, x25, 1 cmp w28, w25, uxtb - bhi .L1344 + bhi .L1489 mov x0, 0 -.L1345: +.L1490: add w2, w0, 8 mov x1, 0 -.L1346: +.L1491: add x3, x1, x0 add x1, x1, 4 add x3, x24, x3 @@ -8855,10 +9553,10 @@ hynix_get_read_retry_default: add w3, w5, w3 strb w3, [x20,w2,sxtw] add w2, w2, 8 - bne .L1346 + bne .L1491 add x0, x0, 1 cmp x0, 4 - bne .L1345 + bne .L1490 add w23, w23, 1 strb wzr, [x20,16] strb wzr, [x20,24] @@ -8868,11 +9566,11 @@ hynix_get_read_retry_default: strb wzr, [x20,48] strb wzr, [x20,41] strb wzr, [x20,49] - b .L1342 -.L1420: + b .L1487 +.L1565: sub w0, w25, #3 cmp w0, 4 - bhi .L1349 + bhi .L1494 mul w0, w28, w21 sub w23, w28, #1 mov w20, 0 @@ -8886,13 +9584,13 @@ hynix_get_read_retry_default: adrp x26, .LANCHOR4 add x0, x23, 1 str x0, [x29,112] -.L1350: +.L1495: ldr x0, [x29,128] add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,98] + ldrb w1, [x0,114] cmp w1, w20 - bhi .L1388 -.L1349: + bhi .L1533 +.L1494: ldr x0, [x29,136] strb w28, [x0,1] strb w21, [x0,2] @@ -8903,9 +9601,9 @@ hynix_get_read_retry_default: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 144 ret -.L1388: +.L1533: add x1, x0, x20, sxtw - ldrb w1, [x1,200] + ldrb w1, [x1,216] ldr x0, [x0,16] mov x24, 160 ubfiz x2, x1, 8, 8 @@ -8921,28 +9619,28 @@ hynix_get_read_retry_default: cmp w25, 4 str w0, [x23,2056] ldr x1, [x29,104] - bne .L1351 + bne .L1496 mov w0, 64 str w1, [x23,2052] str w0, [x23,2048] mov w0, 204 - b .L1424 -.L1351: + b .L1569 +.L1496: cmp w19, 1 - bhi .L1353 + bhi .L1498 ldrb w0, [x27,128] str w0, [x23,2052] mov w0, 82 - b .L1425 -.L1353: + b .L1570 +.L1498: mov w0, 174 str w0, [x23,2052] str wzr, [x23,2048] mov w0, 176 -.L1424: +.L1569: str w0, [x23,2052] mov w0, 77 -.L1425: +.L1570: str w0, [x23,2048] mov w0, 22 str w0, [x23,2056] @@ -8956,13 +9654,13 @@ hynix_get_read_retry_default: str wzr, [x23,2056] str wzr, [x23,2052] str wzr, [x23,2052] - bne .L1354 + bne .L1499 mov w0, 31 str w0, [x23,2052] - b .L1355 -.L1354: + b .L1500 +.L1499: str wzr, [x23,2052] -.L1355: +.L1500: mov w7, 2 str w7, [x23,2052] str wzr, [x23,2052] @@ -8972,89 +9670,89 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready cmp w19, 1 mov w1, 16 - bls .L1357 + bls .L1502 ldr x7, [x29,104] cmp w25, 7 mov w1, 32 csel w1, w1, w7, eq -.L1357: +.L1502: adrp x0, .LANCHOR4 mov x7, 0 add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1160] -.L1358: + ldr x0, [x0,1208] +.L1503: ldr w8, [x23,2048] strb w8, [x0,x7] add x7, x7, 1 cmp w1, w7, uxtb - bhi .L1358 + bhi .L1503 cmp w25, 7 - bne .L1359 + bne .L1504 mov w1, 0 -.L1361: +.L1506: ldrb w7, [x0] cmp w7, 12 - beq .L1360 + beq .L1505 ldrb w7, [x0,1] cmp w7, 10 - beq .L1360 + beq .L1505 add w1, w1, 1 add x0, x0, 4 uxtb w1, w1 cmp w1, 8 - bne .L1361 - b .L1362 -.L1360: + bne .L1506 + b .L1507 +.L1505: cmp w1, 7 - bne .L1363 -.L1362: - adrp x0, .LC120 + bne .L1508 +.L1507: + adrp x0, .LC132 mov w1, 0 - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC132 bl printk -.L1364: - b .L1364 -.L1359: +.L1509: + b .L1509 +.L1504: cmp w25, 6 - bne .L1363 + bne .L1508 mov x1, 0 -.L1365: +.L1510: ldrb w7, [x0,x1] cmp w7, 12 - beq .L1363 + beq .L1508 add x7, x0, x1 ldrb w7, [x7,8] cmp w7, 4 - beq .L1363 + beq .L1508 add x1, x1, 1 cmp x1, 8 - bne .L1365 - adrp x0, .LC120 + bne .L1510 + adrp x0, .LC132 mov w1, 0 - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC132 bl printk -.L1367: - b .L1367 -.L1363: +.L1512: + b .L1512 +.L1508: add x0, x26, :lo12:.LANCHOR4 - ldr x9, [x0,1160] + ldr x9, [x0,1208] mov x0, 0 -.L1368: +.L1513: ldr w1, [x29,120] cmp w1, w0 - ble .L1427 + ble .L1572 ldr w1, [x23,2048] strb w1, [x9,x0] add x0, x0, 1 - b .L1368 -.L1427: + b .L1513 +.L1572: add x0, x26, :lo12:.LANCHOR4 mov w8, w22 mov w7, 8 - ldr x11, [x0,1160] -.L1371: + ldr x11, [x0,1208] +.L1516: mov w0, 0 -.L1370: +.L1515: add w1, w0, w8 add w0, w0, 1 sbfiz x1, x1, 2, 32 @@ -9062,96 +9760,96 @@ hynix_get_read_retry_default: ldr w10, [x11,x1] mvn w10, w10 str w10, [x11,x1] - bne .L1370 + bne .L1515 ldr w0, [x29,124] subs w7, w7, #1 add w8, w8, w0 - bne .L1371 + bne .L1516 mov x7, 0 mov w15, 1 -.L1372: +.L1517: add x0, x26, :lo12:.LANCHOR4 mov w1, 0 mov w10, w1 - ldr x14, [x0,1160] -.L1376: + ldr x14, [x0,1208] +.L1521: lsl w8, w15, w10 mov w12, w7 mov w0, 16 mov w11, 0 -.L1374: +.L1519: ldr w13, [x14,w12,sxtw 2] add w12, w12, w22 and w13, w8, w13 cmp w13, w8 csinc w11, w11, w11, ne subs w0, w0, #1 - bne .L1374 + bne .L1519 cmp w11, 9 orr w8, w1, w8 add w10, w10, 1 csel w1, w8, w1, cs cmp w10, 32 - bne .L1376 + bne .L1521 str w1, [x14,x7,lsl 2] add x7, x7, 1 cmp w22, w7 - bgt .L1372 + bgt .L1517 add x1, x26, :lo12:.LANCHOR4 mov x7, 0 mov w8, w7 - ldr x1, [x1,1160] -.L1379: + ldr x1, [x1,1208] +.L1524: ldr w10, [x1,x7] add x7, x7, 4 cmp w10, wzr csinc w8, w8, w8, ne cmp x7, 32 - bne .L1379 + bne .L1524 cmp w8, 7 - ble .L1380 - adrp x0, .LC121 + ble .L1525 + adrp x0, .LC133 mov w2, 1 - add x0, x0, :lo12:.LC121 + add x0, x0, :lo12:.LC133 mov w3, 1024 bl rknand_print_hex - adrp x0, .LC120 + adrp x0, .LC132 mov w1, 0 - add x0, x0, :lo12:.LC120 + add x0, x0, :lo12:.LC132 bl printk -.L1381: - b .L1381 -.L1380: +.L1526: + b .L1526 +.L1525: cmp w25, 6 mov w7, 4 - beq .L1382 + beq .L1527 cmp w25, 7 mov w7, 10 mov w1, 8 csel w7, w1, w7, ne -.L1382: +.L1527: mov w8, 0 -.L1383: +.L1528: mov x1, 0 -.L1384: +.L1529: add w10, w0, w1 ldrb w11, [x9,x1] add x1, x1, 1 cmp w28, w1, uxtb strb w11, [x24,w10,sxtw] - bhi .L1384 + bhi .L1529 add w8, w8, 1 ldr x1, [x29,112] cmp w8, w21 add w0, w0, w7 add x9, x9, x1 - blt .L1383 + blt .L1528 mov w24, 255 str w24, [x23,2056] bl nandc_wait_flash_ready cmp w19, 1 mov w0, 56 - bhi .L1426 + bhi .L1571 mov w0, 54 str w0, [x23,2056] ldrb w0, [x27,128] @@ -9166,12 +9864,12 @@ hynix_get_read_retry_default: str w24, [x23,2052] str w24, [x23,2052] str w24, [x23,2052] -.L1426: +.L1571: str w0, [x23,2056] add w20, w20, 1 bl nandc_wait_flash_ready uxtb w20, w20 - b .L1350 + b .L1495 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl @@ -9184,9 +9882,9 @@ flash_get_read_retry_tbl: sub w1, w0, #1 uxtb w1, w1 cmp w1, 6 - bhi .L1428 + bhi .L1573 bl hynix_get_read_retry_default -.L1428: +.L1573: ldp x29, x30, [sp], 16 ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -9206,54 +9904,54 @@ nandc_xfer_done: adrp x0, .LANCHOR4 add x1, x0, :lo12:.LANCHOR4 mov x23, x0 - strb wzr, [x1,1168] + strb wzr, [x1,1216] ldrb w1, [x19,#:lo12:.LANCHOR0] cmp w1, 9 - bne .L1431 + bne .L1576 ldr x24, [x20,16] ldr w0, [x24,16] str w0, [x29,64] ldr w20, [x24,48] ubfx x20, x20, 1, 1 - cbnz w20, .L1451 - adrp x21, .LC125 - adrp x23, .LC124 - add x21, x21, :lo12:.LC125 - add x23, x23, :lo12:.LC124 - b .L1433 -.L1451: - adrp x21, .LC123 - adrp x22, .LC124 + cbnz w20, .L1596 + adrp x21, .LC137 + adrp x23, .LC136 + add x21, x21, :lo12:.LC137 + add x23, x23, :lo12:.LC136 + b .L1578 +.L1596: + adrp x21, .LC135 + adrp x22, .LC136 mov w20, 0 - add x21, x21, :lo12:.LC123 - add x22, x22, :lo12:.LC124 -.L1432: + add x21, x21, :lo12:.LC135 + add x22, x22, :lo12:.LC136 +.L1577: ldr w2, [x24,64] ldr w1, [x29,64] ubfx x2, x2, 16, 6 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1435 + bge .L1580 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1434 + tbz x0, 13, .L1579 ldr w0, [x29,72] - tbz x0, 17, .L1434 + tbz x0, 17, .L1579 ldr w1, [x29,72] - adrp x0, .LC122 - add x0, x0, :lo12:.LC122 + adrp x0, .LC134 + add x0, x0, :lo12:.LC134 ubfx x1, x1, 17, 1 bl printk - b .L1435 -.L1434: + b .L1580 +.L1579: ldr w0, [x29,64] add w20, w20, 1 ubfx x0, x0, 22, 6 cmp w20, w0, lsl 12 - bne .L1432 + bne .L1577 ldr w2, [x24,64] mov w1, w20 ldr w3, [x29,64] @@ -9268,15 +9966,15 @@ nandc_xfer_done: ldr x1, [x1,16] bl rknand_print_hex ldr w0, [x29,72] - tbz x0, 13, .L1432 + tbz x0, 13, .L1577 add x0, x23, :lo12:.LANCHOR4 mov w1, 1 - strb w1, [x0,1168] -.L1435: + strb w1, [x0,1216] +.L1580: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 144 + add x20, x20, 160 ldr w0, [x20,32] - cbz w0, .L1439 + cbz w0, .L1584 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -9287,15 +9985,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1479 -.L1441: + b .L1624 +.L1586: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,16] ldr w0, [x0,16] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1433 + cbnz w0, .L1578 ldr w2, [x29,64] mov w1, w20 ldr w3, [x24,64] @@ -9307,13 +10005,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1433: +.L1578: ldr w0, [x29,64] - tbz x0, 20, .L1441 + tbz x0, 20, .L1586 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 144 + add x20, x20, 160 ldr w0, [x20,32] - cbz w0, .L1439 + cbz w0, .L1584 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -9324,49 +10022,49 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 2 - b .L1478 -.L1431: + b .L1623 +.L1576: ldr x23, [x20,16] ldr w0, [x23,8] str w0, [x29,64] ldr w20, [x23,16] ubfx x20, x20, 1, 1 - cbnz w20, .L1452 - adrp x21, .LC125 - adrp x24, .LC124 - add x21, x21, :lo12:.LC125 - add x24, x24, :lo12:.LC124 - b .L1444 -.L1452: - adrp x21, .LC123 - adrp x22, .LC124 + cbnz w20, .L1597 + adrp x21, .LC137 + adrp x24, .LC136 + add x21, x21, :lo12:.LC137 + add x24, x24, :lo12:.LC136 + b .L1589 +.L1597: + adrp x21, .LC135 + adrp x22, .LC136 mov w20, 0 - add x21, x21, :lo12:.LC123 - add x22, x22, :lo12:.LC124 -.L1443: + add x21, x21, :lo12:.LC135 + add x22, x22, :lo12:.LC136 +.L1588: ldr w2, [x23,28] ldr w1, [x29,64] ubfx x2, x2, 16, 5 ubfx x1, x1, 22, 6 cmp w2, w1 - bge .L1446 + bge .L1591 add x0, x19, :lo12:.LANCHOR0 ldr x0, [x0,16] ldr w0, [x0] str w0, [x29,72] ldr w0, [x29,72] - tbz x0, 13, .L1445 + tbz x0, 13, .L1590 ldr w0, [x29,72] - tbz x0, 17, .L1445 + tbz x0, 17, .L1590 ldr w1, [x29,72] - adrp x0, .LC126 - add x0, x0, :lo12:.LC126 + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 bl printk - b .L1446 -.L1445: + b .L1591 +.L1590: add w20, w20, 1 and w0, w20, 16777215 - cbnz w0, .L1443 + cbnz w0, .L1588 ldr w2, [x23,28] mov w1, w20 ldr w3, [x29,64] @@ -9380,12 +10078,12 @@ nandc_xfer_done: mov w3, 64 ldr x1, [x1,16] bl rknand_print_hex - b .L1443 -.L1446: + b .L1588 +.L1591: add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 144 + add x20, x20, 160 ldr w0, [x20,32] - cbz w0, .L1439 + cbz w0, .L1584 ldr w1, [x29,64] mov w2, 0 ldr w0, [x20,24] @@ -9396,17 +10094,17 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1479: +.L1624: mov w2, 0 - b .L1477 -.L1450: + b .L1622 +.L1595: add x22, x19, :lo12:.LANCHOR0 add w20, w20, 1 ldr x0, [x22,16] ldr w0, [x0,8] str w0, [x29,64] and w0, w20, 16777215 - cbnz w0, .L1444 + cbnz w0, .L1589 ldr w2, [x29,64] mov w1, w20 ldr w3, [x23,28] @@ -9418,13 +10116,13 @@ nandc_xfer_done: mov w2, 4 mov w3, 64 bl rknand_print_hex -.L1444: +.L1589: ldr w0, [x29,64] - tbz x0, 20, .L1450 + tbz x0, 20, .L1595 add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 144 + add x20, x20, 160 ldr w0, [x20,32] - cbz w0, .L1439 + cbz w0, .L1584 ldr w1, [x29,64] mov w2, 1 ldr w0, [x20,24] @@ -9435,15 +10133,15 @@ nandc_xfer_done: ldr w0, [x20,28] ubfx x1, x1, 22, 6 lsl w1, w1, 7 -.L1478: +.L1623: mov w2, 1 -.L1477: +.L1622: bl rknand_dma_unmap_single -.L1439: +.L1584: add x19, x19, :lo12:.LANCHOR0 ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] - str wzr, [x19,176] + str wzr, [x19,192] ldp x19, x20, [sp,16] ldp x29, x30, [sp], 80 ret @@ -9468,19 +10166,19 @@ nandc_xfer: bl nandc_xfer_start bl nandc_xfer_done mov w0, 0 - cbnz w20, .L1510 + cbnz w20, .L1655 adrp x19, .LANCHOR0 add x3, x19, :lo12:.LANCHOR0 ldrb w1, [x19,#:lo12:.LANCHOR0] cmp w1, 9 - bne .L1482 + bne .L1627 ldr x5, [x3,16] lsr w22, w22, 2 mov w4, 1 mov w3, w0 -.L1483: +.L1628: cmp w3, w22 - bcs .L1519 + bcs .L1664 uxtw x1, w3 add x1, x1, 84 ldr w1, [x5,x1,lsl 2] @@ -9492,30 +10190,30 @@ nandc_xfer: and w1, w1, w2 and w4, w4, w1 ldr w1, [x29,72] - tbnz x1, 2, .L1502 + tbnz x1, 2, .L1647 ldr w1, [x29,72] - tbnz x1, 18, .L1502 + tbnz x1, 18, .L1647 ldr w2, [x29,72] ldr w1, [x29,72] ubfx x2, x2, 3, 7 ubfx x1, x1, 19, 7 cmp w2, w1 ldr w1, [x29,72] - ble .L1485 + ble .L1630 ubfx x1, x1, 3, 7 - b .L1486 -.L1485: + b .L1631 +.L1630: ubfx x1, x1, 19, 7 -.L1486: +.L1631: cmp w0, w1 csel w0, w0, w1, cs - b .L1484 -.L1502: + b .L1629 +.L1647: mov w0, -1 -.L1484: +.L1629: add w3, w3, 1 - b .L1483 -.L1519: + b .L1628 +.L1664: add x22, x19, :lo12:.LANCHOR0 cmp w4, wzr ldr x1, [x22,16] @@ -9526,31 +10224,31 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1489 - adrp x0, .LC127 + bne .L1634 + adrp x0, .LC139 mov w1, w20 - add x0, x0, :lo12:.LC127 + add x0, x0, :lo12:.LC139 orr w20, w20, 131072 bl printk ldr x0, [x22,16] str w20, [x0] mov w0, -1 -.L1489: - tbz x20, 13, .L1490 - adrp x1, .LANCHOR4+1168 - ldrb w1, [x1,#:lo12:.LANCHOR4+1168] - cbz w1, .L1490 - adrp x0, .LC128 +.L1634: + tbz x20, 13, .L1635 + adrp x1, .LANCHOR4+1216 + ldrb w1, [x1,#:lo12:.LANCHOR4+1216] + cbz w1, .L1635 + adrp x0, .LC140 mov w1, w20 - add x0, x0, :lo12:.LC128 + add x0, x0, :lo12:.LC140 add x19, x19, :lo12:.LANCHOR0 bl printk ldr x0, [x19,16] mov w1, 1 str w1, [x0,16] - b .L1491 -.L1482: - ldrb w0, [x3,188] + b .L1636 +.L1627: + ldrb w0, [x3,204] mov w5, 128 lsr w6, w22, 1 mov w2, 1 @@ -9559,11 +10257,11 @@ nandc_xfer: csel w5, w0, w5, cc mov w1, w20 mov w4, w20 -.L1493: +.L1638: cmp w4, w6 add w7, w1, w5 - bcs .L1520 - ldr x0, [x3,144] + bcs .L1665 + ldr x0, [x3,160] and x1, x1, 4294967292 ldr w0, [x0,x1] ubfiz x1, x4, 2, 30 @@ -9579,24 +10277,24 @@ nandc_xfer: add w2, w2, 4 strb w0, [x23,x1] mov w1, w7 - b .L1493 -.L1520: + b .L1638 +.L1665: add x0, x19, :lo12:.LANCHOR0 mov w2, 0 lsr w22, w22, 2 ldr x6, [x0,16] mov w0, w2 -.L1495: +.L1640: cmp w2, w22 - bcs .L1521 + bcs .L1666 uxtw x1, w2 add x1, x1, 8 ldr w1, [x6,x1,lsl 2] str w1, [x29,72] ldr w1, [x29,72] - tbnz x1, 2, .L1505 + tbnz x1, 2, .L1650 ldr w1, [x29,72] - tbnz x1, 15, .L1505 + tbnz x1, 15, .L1650 ldr w3, [x29,72] ubfx x5, x3, 3, 5 ldr w3, [x29,72] @@ -9609,26 +10307,26 @@ nandc_xfer: orr w1, w4, w1, lsl 5 cmp w3, w1 ldr w1, [x29,72] - bls .L1497 + bls .L1642 ubfx x3, x1, 3, 5 ldr w1, [x29,72] ubfx x1, x1, 27, 1 - b .L1518 -.L1497: + b .L1663 +.L1642: ubfx x3, x1, 16, 5 ldr w1, [x29,72] ubfx x1, x1, 29, 1 -.L1518: +.L1663: orr w1, w3, w1, lsl 5 cmp w0, w1 csel w0, w0, w1, cs - b .L1496 -.L1505: + b .L1641 +.L1650: mov w0, -1 -.L1496: +.L1641: add w2, w2, 1 - b .L1495 -.L1521: + b .L1640 +.L1666: add x19, x19, :lo12:.LANCHOR0 ldr x1, [x19,16] str wzr, [x1,16] @@ -9637,32 +10335,32 @@ nandc_xfer: movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1490 - adrp x0, .LC129 + bne .L1635 + adrp x0, .LC141 mov w1, w20 - add x0, x0, :lo12:.LC129 + add x0, x0, :lo12:.LC141 orr w20, w20, 131072 bl printk ldr x0, [x19,16] str w20, [x0] - b .L1491 -.L1490: + b .L1636 +.L1635: cmn w0, #1 - beq .L1510 + beq .L1655 ldr w1, [x23] cmn w1, #1 - bne .L1510 + bne .L1655 ldr w1, [x23,4] cmn w1, #1 - bne .L1510 + bne .L1655 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1510 -.L1491: + b .L1655 +.L1636: mov w0, -1 -.L1510: +.L1655: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldr x23, [sp,48] @@ -9692,36 +10390,36 @@ flash_read_page: and w20, w1, 2097151 ubfx x24, x23, 24, 2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1523 - adrp x0, .LC130 + tbz x0, 4, .L1668 + adrp x0, .LC142 mov w1, w21 - add x0, x0, :lo12:.LC130 + add x0, x0, :lo12:.LC142 mov w2, w24 mov w3, w23 bl printk -.L1523: +.L1668: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs - cbnz w24, .L1524 + cbnz w24, .L1669 mov w0, w21 bl zftl_flash_enter_slc_mode - b .L1525 -.L1524: + b .L1670 +.L1669: add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,88] + ldr x0, [x0,104] ldrb w0, [x0,12] cmp w0, 3 - bne .L1526 + bne .L1671 sxtw x0, w21 add x0, x0, 8 add x0, x19, x0, lsl 8 str w24, [x0,8] - b .L1525 -.L1526: + b .L1670 +.L1671: mov w0, w21 bl zftl_flash_exit_slc_mode -.L1525: +.L1670: ubfiz x5, x21, 8, 8 and w23, w23, 255 add x19, x19, x5 @@ -9735,19 +10433,19 @@ flash_read_page: str w0, [x19,2052] mov w0, 48 str w0, [x19,2056] - cbz w24, .L1527 + cbz w24, .L1672 add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,88] + ldr x0, [x22,104] ldrb w0, [x0,12] cmp w0, 3 - bne .L1527 + bne .L1672 add w20, w20, w20, lsl 1 sub w0, w20, #1 add w0, w0, w24 - b .L1538 -.L1527: + b .L1683 +.L1672: mov w0, w20 -.L1538: +.L1683: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 @@ -9791,7 +10489,7 @@ micron_read_retrial: stp x27, x28, [sp,80] uxtb w24, w0 mov w21, w1 - ldrb w0, [x19,188] + ldrb w0, [x19,204] mov x25, x2 mov x26, x3 mov w28, -1 @@ -9804,14 +10502,14 @@ micron_read_retrial: uxtb x19, w24 lsl x0, x19, 8 str x0, [x29,112] - adrp x0, .LC131 - add x0, x0, :lo12:.LC131 + adrp x0, .LC143 + add x0, x0, :lo12:.LC143 str x0, [x29,104] -.L1540: +.L1685: add x0, x23, :lo12:.LANCHOR4 - ldrb w0, [x0,1184] + ldrb w0, [x0,1232] cmp w20, w0 - bcs .L1544 + bcs .L1689 ldr x0, [x29,112] add w27, w20, 1 add x1, x22, x0 @@ -9836,7 +10534,7 @@ micron_read_retrial: mov w6, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1541 + tbz x0, 12, .L1686 ldr x0, [x29,104] mov w1, w20 mov w2, w21 @@ -9845,24 +10543,24 @@ micron_read_retrial: str x6, [x29,96] bl printk ldr x6, [x29,96] -.L1541: +.L1686: cmn w6, #1 - beq .L1542 + beq .L1687 adrp x0, .LANCHOR4 cmn w28, #1 add x0, x0, :lo12:.LANCHOR4 csel w28, w28, w6, ne - ldr x25, [x0,1160] - ldr x26, [x0,1176] + ldr x25, [x0,1208] + ldr x26, [x0,1224] ldr w0, [x29,124] cmp w6, w0 - bcc .L1549 -.L1542: + bcc .L1694 +.L1687: mov w20, w27 - b .L1540 -.L1549: + b .L1685 +.L1694: mov w28, w6 -.L1544: +.L1689: add x19, x22, x19, lsl 8 mov w0, 239 str w0, [x19,2056] @@ -9876,24 +10574,24 @@ micron_read_retrial: str wzr, [x19,2048] str wzr, [x19,2048] cmp w28, w0 - bcc .L1546 + bcc .L1691 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1546: +.L1691: cmn w28, #1 - beq .L1550 + beq .L1695 cmp w28, 256 - bne .L1547 -.L1550: - adrp x0, .LC132 + bne .L1692 +.L1695: + adrp x0, .LC144 mov w1, w20 - add x0, x0, :lo12:.LC132 + add x0, x0, :lo12:.LC144 mov w2, w21 mov w3, w20 mov w4, w28 bl printk -.L1547: +.L1692: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -9930,7 +10628,7 @@ toshiba_3d_read_retrial: mov w21, 10 ldr x25, [x1,16] lsl x0, x0, 8 - ldrb w1, [x1,189] + ldrb w1, [x1,205] add x23, x25, x0 cmp w1, 36 csel w2, w3, w2, ne @@ -9938,19 +10636,19 @@ toshiba_3d_read_retrial: cmp w1, 36 mov w1, 26 csel w21, w21, w1, ne - cbnz w19, .L1564 + cbnz w19, .L1709 str x0, [x29,112] - adrp x0, .LC133 - add x0, x0, :lo12:.LC133 + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 mov w19, -1 mov w28, 1 str x0, [x29,104] -.L1571: +.L1716: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 36 mov x0, x23 - bne .L1565 + bne .L1710 mov w1, w28 mov w2, 0 bl toshiba_tlc_set_rr_para @@ -9958,11 +10656,11 @@ toshiba_3d_read_retrial: mov w1, 93 add x0, x25, x0 str w1, [x0,8] - b .L1566 -.L1565: + b .L1711 +.L1710: mov w1, w28 bl toshiba_3d_set_slc_rr_para -.L1566: +.L1711: ldr w4, [x29,124] mov w0, w22 mov w1, w24 @@ -9972,7 +10670,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1567 + tbz x0, 4, .L1712 ldr x0, [x29,104] mov w3, w4 mov w1, w28 @@ -9980,66 +10678,66 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1567: +.L1712: cmn w4, #1 - beq .L1568 + beq .L1713 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x26, [x0,1160] - ldr x27, [x0,1176] + ldr x26, [x0,1208] + ldr x27, [x0,1224] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,188] + ldrb w0, [x0,204] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1587 -.L1568: + bcc .L1732 +.L1713: add w28, w28, 1 cmp w28, w21 - bne .L1571 - b .L1570 -.L1587: + bne .L1716 + b .L1715 +.L1732: mov w21, w28 mov w19, w4 -.L1570: +.L1715: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 36 mov x0, x23 - bne .L1572 + bne .L1717 mov w1, 0 mov w2, w1 - b .L1610 -.L1572: + b .L1755 +.L1717: mov w1, 0 bl toshiba_3d_set_slc_rr_para - b .L1573 -.L1564: + b .L1718 +.L1709: mov x28, x0 - adrp x0, .LC134 - add x0, x0, :lo12:.LC134 + adrp x0, .LC146 + add x0, x0, :lo12:.LC146 mov w19, -1 mov w21, 1 str x0, [x29,104] -.L1580: +.L1725: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 36 mov x0, x23 - bne .L1574 + bne .L1719 mov w1, w21 mov w2, 1 bl toshiba_tlc_set_rr_para add x0, x25, x28 mov w1, 93 - b .L1609 -.L1574: + b .L1754 +.L1719: mov w1, w21 bl toshiba_3d_set_tlc_rr_para add x0, x25, x28 mov w1, 38 -.L1609: +.L1754: str w1, [x0,8] mov x2, x26 mov w0, w22 @@ -10050,7 +10748,7 @@ toshiba_3d_read_retrial: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1576 + tbz x0, 4, .L1721 ldr x0, [x29,104] mov w3, w4 mov w1, w21 @@ -10058,47 +10756,47 @@ toshiba_3d_read_retrial: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1576: +.L1721: cmn w4, #1 - beq .L1577 + beq .L1722 adrp x0, .LANCHOR4 cmn w19, #1 add x0, x0, :lo12:.LANCHOR4 csel w19, w19, w4, ne - ldr x26, [x0,1160] - ldr x27, [x0,1176] + ldr x26, [x0,1208] + ldr x27, [x0,1224] add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,188] + ldrb w0, [x0,204] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1588 -.L1577: + bcc .L1733 +.L1722: ldr w0, [x29,112] add w21, w21, 1 cmp w21, w0 - bne .L1580 - b .L1579 -.L1588: + bne .L1725 + b .L1724 +.L1733: mov w19, w4 -.L1579: +.L1724: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 36 mov x0, x23 - bne .L1581 + bne .L1726 mov w1, 0 mov w2, 1 -.L1610: +.L1755: bl toshiba_tlc_set_rr_para - b .L1573 -.L1581: + b .L1718 +.L1726: mov w1, 0 bl toshiba_3d_set_tlc_rr_para -.L1573: +.L1718: add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 36 - bne .L1582 + bne .L1727 ubfiz x22, x22, 8, 8 mov w0, 85 add x25, x25, x22 @@ -10107,29 +10805,29 @@ toshiba_3d_read_retrial: str wzr, [x25,2052] str wzr, [x25,2048] str w0, [x25,2056] -.L1582: +.L1727: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,188] + ldrb w0, [x20,204] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1583 + bcc .L1728 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1583: +.L1728: cmn w19, #1 - beq .L1589 + beq .L1734 cmp w19, 256 - bne .L1584 -.L1589: - adrp x0, .LC135 + bne .L1729 +.L1734: + adrp x0, .LC147 mov w1, w21 - add x0, x0, :lo12:.LC135 + add x0, x0, :lo12:.LC147 mov w2, w24 mov w3, w21 mov w4, w19 bl printk -.L1584: +.L1729: bl nandc_wait_flash_ready mov w0, w19 ldp x19, x20, [sp,16] @@ -10163,26 +10861,26 @@ toshiba_read_retrial: sxtw x0, w23 add x21, x0, 8 str x0, [x29,112] - ldrb w0, [x1,189] + ldrb w0, [x1,205] ldr x22, [x1,16] sub w0, w0, #67 add x21, x22, x21, lsl 8 uxtb w0, w0 cmp w0, 1 - bls .L1612 - ldrb w0, [x1,136] - cbz w0, .L1613 + bls .L1757 + ldrb w0, [x1,152] + cbz w0, .L1758 mov w0, 1 mov w25, 1 bl nandc_set_if_mode -.L1613: +.L1758: ubfiz x0, x23, 8, 8 mov w1, 92 add x0, x22, x0 str w1, [x0,2056] mov w1, 197 str w1, [x0,2056] -.L1612: +.L1757: ldr x0, [x29,112] mov w20, 1 mov w24, -1 @@ -10191,41 +10889,41 @@ toshiba_read_retrial: str x0, [x29,104] ubfiz x0, x23, 8, 8 str x0, [x29,96] -.L1614: +.L1759: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1184] + ldrb w0, [x0,1232] add w0, w0, 1 cmp w20, w0 - bcs .L1645 + bcs .L1790 add x0, x19, :lo12:.LANCHOR0 mov w1, w20 - ldrb w0, [x0,189] + ldrb w0, [x0,205] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1615 + bhi .L1760 bl sandisk_set_rr_para - b .L1616 -.L1615: + b .L1761 +.L1760: bl toshiba_set_rr_para -.L1616: +.L1761: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] cmp w0, 34 - bne .L1617 + bne .L1762 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1184] + ldrb w0, [x0,1232] sub w0, w0, #3 cmp w20, w0 - bne .L1617 + bne .L1762 ldr x0, [x29,104] mov w1, 179 add x0, x22, x0 str w1, [x0,8] -.L1617: +.L1762: ldr x0, [x29,96] mov w1, 38 ldr w4, [x29,120] @@ -10240,69 +10938,69 @@ toshiba_read_retrial: bl flash_read_page cmn w0, #1 mov w28, w0 - beq .L1620 + beq .L1765 cmn w24, #1 csel w24, w24, w0, ne adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x26, [x0,1160] - ldr x27, [x0,1176] + ldr x26, [x0,1208] + ldr x27, [x0,1224] add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,188] + ldrb w0, [x0,204] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1622 -.L1620: + bcc .L1767 +.L1765: add w20, w20, 1 - b .L1614 -.L1645: + b .L1759 +.L1790: mov w28, w24 -.L1622: +.L1767: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] sub w0, w0, #67 uxtb w0, w0 cmp w0, 1 mov x0, x21 - bhi .L1624 + bhi .L1769 bl sandisk_set_rr_para - b .L1625 -.L1624: + b .L1770 +.L1769: bl toshiba_set_rr_para -.L1625: +.L1770: ldr x0, [x29,112] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 add x22, x22, x0, lsl 8 mov w0, 255 str w0, [x22,8] - ldrb w0, [x19,188] + ldrb w0, [x19,204] add w0, w0, w0, lsl 1 cmp w28, w0, lsr 2 - bcc .L1626 + bcc .L1771 cmn w28, #1 mov w0, 256 csel w28, w28, w0, eq -.L1626: +.L1771: cmn w28, #1 - beq .L1632 + beq .L1777 cmp w28, 256 - bne .L1627 -.L1632: - adrp x0, .LC135 + bne .L1772 +.L1777: + adrp x0, .LC147 ldr w2, [x29,124] - add x0, x0, :lo12:.LC135 + add x0, x0, :lo12:.LC147 mov w1, w20 mov w3, w20 mov w4, w28 bl printk -.L1627: +.L1772: bl nandc_wait_flash_ready - cbz w25, .L1629 + cbz w25, .L1774 mov w0, 4 bl nandc_set_if_mode -.L1629: +.L1774: mov w0, w28 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10328,7 +11026,7 @@ hynix_read_retrial: stp x23, x24, [sp,48] mov x25, x2 mov w23, w1 - ldr x5, [x0,192] + ldr x5, [x0,208] mov x26, x3 str w4, [x29,124] mov x22, x21 @@ -10340,9 +11038,9 @@ hynix_read_retrial: bl nandc_wait_flash_ready mov w6, 0 adrp x7, .LANCHOR4 -.L1647: +.L1792: cmp w6, w24 - bcs .L1651 + bcs .L1796 add w20, w20, 1 mov w0, w22 str x7, [x29,104] @@ -10361,47 +11059,47 @@ hynix_read_retrial: cmn w0, #1 ldr x6, [x29,112] ldr x7, [x29,104] - beq .L1649 + beq .L1794 add x1, x7, :lo12:.LANCHOR4 cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,1160] - ldr x26, [x1,1176] + ldr x25, [x1,1208] + ldr x26, [x1,1224] add x1, x28, :lo12:.LANCHOR0 - ldrb w1, [x1,188] + ldrb w1, [x1,204] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1656 -.L1649: + bcc .L1801 +.L1794: add w6, w6, 1 - b .L1647 -.L1656: + b .L1792 +.L1801: mov w19, w0 -.L1651: +.L1796: add x28, x28, :lo12:.LANCHOR0 add x21, x27, x21 - ldrb w0, [x28,188] + ldrb w0, [x28,204] strb w20, [x21,8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1653 + bcc .L1798 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1653: +.L1798: cmn w19, #1 - beq .L1657 + beq .L1802 cmp w19, 256 - bne .L1654 -.L1657: - adrp x0, .LC136 + bne .L1799 +.L1802: + adrp x0, .LC148 mov w1, w6 - add x0, x0, :lo12:.LC136 + add x0, x0, :lo12:.LC148 mov w2, w23 mov w3, w6 mov w4, w19 bl printk -.L1654: +.L1799: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10412,9 +11110,9 @@ hynix_read_retrial: ret .size hynix_read_retrial, .-hynix_read_retrial .align 2 - .global flash_ddr_tunning_read - .type flash_ddr_tunning_read, %function -flash_ddr_tunning_read: + .global flash_ddr_tuning_read + .type flash_ddr_tuning_read, %function +flash_ddr_tuning_read: stp x29, x30, [sp, -128]! uxtb w0, w0 add x29, sp, 0 @@ -10431,16 +11129,16 @@ flash_ddr_tunning_read: bl nandc_get_ddr_para mov w26, 0 str w0, [x29,120] - adrp x0, .LC137 + adrp x0, .LC149 mov w22, w26 - add x0, x0, :lo12:.LC137 + add x0, x0, :lo12:.LC149 mov w28, w26 mov w27, w26 mov w25, 1024 mov w21, 6 mov w19, -1 str x0, [x29,104] -.L1672: +.L1817: mov w0, w21 bl nandc_set_ddr_para ldr w4, [x29,116] @@ -10452,7 +11150,7 @@ flash_ddr_tunning_read: mov w4, w0 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1667 + tbz x0, 4, .L1812 ldr x0, [x29,104] mov w3, w4 mov w1, w21 @@ -10460,74 +11158,74 @@ flash_ddr_tunning_read: str x4, [x29,96] bl printk ldr x4, [x29,96] -.L1667: +.L1812: add w0, w25, 1 cmp w4, w0 - bhi .L1668 + bhi .L1813 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x23, [x0,1160] - ldr x24, [x0,1176] + ldr x23, [x0,1208] + ldr x24, [x0,1224] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,188] + ldrb w0, [x0,204] cmp w4, w0, lsr 2 - bcs .L1677 + bcs .L1822 add w27, w27, 1 cmp w27, 7 - bls .L1677 + bls .L1822 sub w26, w21, w27 mov w25, w4 mov w19, 0 - b .L1670 -.L1668: + b .L1815 +.L1813: cmp w28, w27 - bcs .L1678 + bcs .L1823 cmp w27, 7 sub w22, w26, w27 - bhi .L1671 + bhi .L1816 mov w28, w27 - b .L1678 -.L1677: + b .L1823 +.L1822: mov w26, w21 mov w25, w4 mov w19, 0 - b .L1669 -.L1678: + b .L1814 +.L1823: mov w27, 0 -.L1669: +.L1814: add w21, w21, 2 cmp w21, 50 - bne .L1672 -.L1670: + bne .L1817 +.L1815: cmp w28, w27 csel w26, w26, w22, ls -.L1671: - cbz w26, .L1673 - adrp x0, .LANCHOR0+188 +.L1816: + cbz w26, .L1818 + adrp x0, .LANCHOR0+204 mov w1, 3 - ldrb w0, [x0,#:lo12:.LANCHOR0+188] + ldrb w0, [x0,#:lo12:.LANCHOR0+204] udiv w0, w0, w1 cmp w25, w0 - bcs .L1673 - adrp x0, .LC138 + bcs .L1818 + adrp x0, .LC150 mov w1, w26 - add x0, x0, :lo12:.LC138 + add x0, x0, :lo12:.LC150 bl printk mov w0, w26 - b .L1686 -.L1673: + b .L1831 +.L1818: ldrb w0, [x29,120] -.L1686: +.L1831: bl nandc_set_ddr_para - cbz w19, .L1675 - adrp x0, .LC139 + cbz w19, .L1820 + adrp x0, .LC151 ldr w1, [x29,124] - add x0, x0, :lo12:.LC139 + add x0, x0, :lo12:.LC151 mov w2, w20 mov w25, w19 bl printk -.L1675: +.L1820: mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10536,7 +11234,7 @@ flash_ddr_tunning_read: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 128 ret - .size flash_ddr_tunning_read, .-flash_ddr_tunning_read + .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .align 2 .global flash_read_page_en .type flash_read_page_en, %function @@ -10553,12 +11251,12 @@ flash_read_page_en: stp x25, x26, [sp,64] mov w19, w1 mov x25, x2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov x24, x3 mov w23, w4 ubfx x26, x19, 24, 2 cmp w0, w21 - bhi .L1688 + bhi .L1833 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -10566,40 +11264,40 @@ flash_read_page_en: add x1, x1, 136 mov w2, 378 bl printk -.L1688: +.L1833: add x0, x20, :lo12:.LANCHOR0 add x21, x0, x21, sxtw adrp x0, .LANCHOR2 - ldrb w22, [x21,200] + ldrb w22, [x21,216] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1689 - adrp x0, .LC140 + tbz x0, 4, .L1834 + adrp x0, .LC152 mov w1, w22 - add x0, x0, :lo12:.LC140 + add x0, x0, :lo12:.LC152 mov w2, w19 bl printk -.L1689: - cbnz w26, .L1690 +.L1834: + cbnz w26, .L1835 add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,97] - cbz w1, .L1691 - ldrb w0, [x0,208] - cbz w0, .L1690 -.L1691: + ldrb w1, [x0,113] + cbz w1, .L1836 + ldrb w0, [x0,224] + cbz w0, .L1835 +.L1836: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,210] + ldrh w2, [x1,226] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,208] + ldrb w2, [x1,224] sub w19, w19, w0 - cbz w2, .L1692 + cbz w2, .L1837 add w19, w0, w19, lsl 1 - b .L1690 -.L1692: - add x1, x1, 212 + b .L1835 +.L1837: + add x1, x1, 228 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1690: +.L1835: mov w0, w22 mov w1, w19 mov x2, x25 @@ -10608,28 +11306,28 @@ flash_read_page_en: bl flash_read_page cmn w0, #1 mov w21, w0 - bne .L1699 + bne .L1844 add x26, x20, :lo12:.LANCHOR0 - ldrb w27, [x26,184] - cbnz w27, .L1694 -.L1697: - adrp x0, .LANCHOR4+1192 - ldr x5, [x0,#:lo12:.LANCHOR4+1192] - cbnz x5, .L1695 - b .L1696 -.L1694: + ldrb w27, [x26,200] + cbnz w27, .L1839 +.L1842: + adrp x0, .LANCHOR4+1240 + ldr x5, [x0,#:lo12:.LANCHOR4+1240] + cbnz x5, .L1840 + b .L1841 +.L1839: mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 - strb wzr, [x26,184] + strb wzr, [x26,200] bl flash_read_page - strb w27, [x26,184] + strb w27, [x26,200] cmn w0, #1 - beq .L1697 - b .L1715 -.L1695: + beq .L1842 + b .L1860 +.L1840: mov w0, w22 mov w1, w19 mov x2, x25 @@ -10637,27 +11335,27 @@ flash_read_page_en: mov w4, w23 blr x5 cmn w0, #1 - bne .L1715 -.L1696: + bne .L1860 +.L1841: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC141 - add x0, x0, :lo12:.LC141 + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 mov w1, 0 mov w2, w19 mov w3, -1 - ldrb w4, [x20,184] + ldrb w4, [x20,200] bl printk - ldrb w0, [x20,136] - cbz w0, .L1699 + ldrb w0, [x20,152] + cbz w0, .L1844 mov w0, w22 mov w1, w19 mov x2, x25 mov x3, x24 mov w4, w23 - bl flash_ddr_tunning_read -.L1715: + bl flash_ddr_tuning_read +.L1860: mov w21, w0 -.L1699: +.L1844: mov w0, w21 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -10675,11 +11373,11 @@ flash_get_last_written_page: add x29, sp, 0 stp x23, x24, [sp,48] uxtb w23, w0 - adrp x0, .LANCHOR4+1060 + adrp x0, .LANCHOR4+1108 stp x19, x20, [sp,16] adrp x20, .LANCHOR2 mov x24, x2 - ldrh w19, [x0,#:lo12:.LANCHOR4+1060] + ldrh w19, [x0,#:lo12:.LANCHOR4+1108] add x0, x20, :lo12:.LANCHOR2 stp x21, x22, [sp,32] stp x25, x26, [sp,64] @@ -10696,12 +11394,12 @@ flash_get_last_written_page: add w1, w26, w19 bl flash_read_page_en cmp w0, 512 - bne .L1717 + bne .L1862 mov w28, 0 mov w5, 2 -.L1718: +.L1863: cmp w28, w19 - bgt .L1717 + bgt .L1862 add w0, w28, w19 mov x2, x24 mov x3, x21 @@ -10713,24 +11411,24 @@ flash_get_last_written_page: bl flash_read_page_en cmp w0, 512 ldr x5, [x29,104] - bne .L1719 + bne .L1864 sub w19, w20, #1 sxth w19, w19 - b .L1718 -.L1719: + b .L1863 +.L1864: add w20, w20, 1 sxth w28, w20 - b .L1718 -.L1717: + b .L1863 +.L1862: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L1722 - adrp x0, .LC142 + tbz x0, 12, .L1867 + adrp x0, .LC154 ldr w3, [x21] - add x0, x0, :lo12:.LC142 + add x0, x0, :lo12:.LC154 mov w1, w22 mov w2, w19 bl printk -.L1722: +.L1867: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10745,12 +11443,12 @@ flash_get_last_written_page: .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: uxth w6, w0 - adrp x0, .LANCHOR0+3314 + adrp x0, .LANCHOR0+3356 stp x29, x30, [sp, -16]! mov w5, 21 mov x8, x1 add x29, sp, 0 - ldrh w0, [x0,#:lo12:.LANCHOR0+3314] + ldrh w0, [x0,#:lo12:.LANCHOR0+3356] mov x7, x2 mov w4, w3 mov x2, x8 @@ -10777,145 +11475,145 @@ flash_info_blk_init: stp x21, x22, [sp,32] stp x23, x24, [sp,48] adrp x20, .LANCHOR0 - tbz x0, 12, .L1728 + tbz x0, 12, .L1873 add x4, x20, :lo12:.LANCHOR0 adrp x2, .LANCHOR3 - adrp x0, .LC143 + adrp x0, .LC155 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC143 + add x0, x0, :lo12:.LC155 mov w1, 49 - ldr x4, [x4,192] + ldr x4, [x4,208] add x2, x2, 160 mov w3, 2048 bl printk -.L1728: +.L1873: mov w22, 4 adrp x24, .LANCHOR4 -.L1731: +.L1876: add x19, x20, :lo12:.LANCHOR0 add x21, x24, :lo12:.LANCHOR4 mov w0, 0 mov w4, 4 adrp x23, .LANCHOR4 - ldrh w1, [x19,210] - ldr x2, [x19,192] - ldr x3, [x21,1200] + ldrh w1, [x19,226] + ldr x2, [x19,208] + ldr x3, [x21,1248] mul w1, w22, w1 bl flash_read_page_en cmn w0, #1 - beq .L1729 - ldr x2, [x19,192] + beq .L1874 + ldr x2, [x19,208] mov w0, 21321 movk w0, 0x5359, lsl 16 ldr w1, [x2] cmp w1, w0 - beq .L1730 -.L1729: + beq .L1875 +.L1874: add w22, w22, 1 cmp w22, 16 - bne .L1731 -.L1755: + bne .L1876 +.L1900: mov w0, -1 - b .L1754 -.L1730: + b .L1899 +.L1875: ldrb w1, [x2,36] mov w4, 4 - ldrh w3, [x19,210] - strb w1, [x21,1208] + ldrh w3, [x19,226] + strb w1, [x21,1256] ldrb w0, [x2,37] mul w1, w1, w3 - ldr x3, [x21,1200] - strb w0, [x21,1209] + ldr x3, [x21,1248] + strb w0, [x21,1257] mov w0, 0 mov w21, 0 bl flash_read_page_en cmn w0, #1 - beq .L1733 - ldr x0, [x19,192] + beq .L1878 + ldr x0, [x19,208] mov w1, 21321 movk w1, 0x5359, lsl 16 mov w21, 0 ldr w2, [x0] cmp w2, w1 - bne .L1733 + bne .L1878 ldr w21, [x0,4] -.L1733: +.L1878: add x19, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w2, [x19,1209] - ldrh w1, [x22,210] - ldr x3, [x19,1200] + ldrb w2, [x19,1257] + ldrh w1, [x22,226] + ldr x3, [x19,1248] mul w1, w2, w1 - ldr x2, [x22,192] + ldr x2, [x22,208] bl flash_read_page_en cmn w0, #1 - beq .L1734 - ldr x0, [x22,192] + beq .L1879 + ldr x0, [x22,208] mov w1, 21321 movk w1, 0x5359, lsl 16 ldr w2, [x0] cmp w2, w1 - bne .L1734 + bne .L1879 ldr w1, [x0,4] cmp w21, w1 - bcs .L1734 + bcs .L1879 ldrb w1, [x0,37] ldrb w0, [x0,36] - strb w1, [x19,1208] - strb w0, [x19,1209] -.L1734: + strb w1, [x19,1256] + strb w0, [x19,1257] +.L1879: add x21, x23, :lo12:.LANCHOR4 add x22, x20, :lo12:.LANCHOR0 mov w0, 0 mov w4, 4 - ldrb w1, [x21,1208] - ldr x3, [x21,1200] - ldr x2, [x22,192] + ldrb w1, [x21,1256] + ldr x3, [x21,1248] + ldr x2, [x22,208] bl flash_get_last_written_page sxth w19, w0 add w0, w0, 1 - strh w0, [x21,1210] - ldrb w0, [x21,1208] - ldrh w21, [x22,210] + strh w0, [x21,1258] + ldrb w0, [x21,1256] + ldrh w21, [x22,226] mul w21, w0, w21 -.L1735: - tbnz w19, #31, .L1756 +.L1880: + tbnz w19, #31, .L1901 add x22, x20, :lo12:.LANCHOR0 add x3, x23, :lo12:.LANCHOR4 mov w0, 0 add w1, w19, w21 mov w4, 4 - ldr x2, [x22,192] - ldr x3, [x3,1200] + ldr x2, [x22,208] + ldr x3, [x3,1248] bl flash_read_page_en cmn w0, #1 - beq .L1736 - ldr x0, [x22,192] + beq .L1881 + ldr x0, [x22,208] ldr w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 cmp w1, w0 - bne .L1736 -.L1738: + bne .L1881 +.L1883: mov w0, 0 - b .L1754 -.L1736: + b .L1899 +.L1881: sub w19, w19, #1 sxth w19, w19 - b .L1735 -.L1756: + b .L1880 +.L1901: cmn w19, #1 - bne .L1738 + bne .L1883 add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC144 - add x0, x0, :lo12:.LC144 - ldr x1, [x20,192] + adrp x0, .LC156 + add x0, x0, :lo12:.LC156 + ldr x1, [x20,208] ldr w1, [x1] bl printk - b .L1755 -.L1754: + b .L1900 +.L1899: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -10937,39 +11635,39 @@ flash_ddr_para_scan: stp x23, x24, [sp,48] uxtb w24, w0 mov w23, w1 - ldrb w0, [x21,764] + ldrb w0, [x21,780] add x20, x20, :lo12:.LANCHOR4 - strb w22, [x21,136] + strb w22, [x21,152] bl flash_set_interface_mode - ldrb w0, [x21,764] + ldrb w0, [x21,780] bl nandc_set_if_mode - ldr x2, [x20,1216] + ldr x2, [x20,1264] mov w1, w23 - ldr x3, [x20,1224] + ldr x3, [x20,1272] mov w4, 4 mov w0, w24 - bl flash_ddr_tunning_read - ldr x2, [x20,1216] + bl flash_ddr_tuning_read + ldr x2, [x20,1264] mov w0, w24 - ldr x3, [x20,1224] + ldr x3, [x20,1272] mov w1, w23 mov w4, 4 bl flash_read_page cmn w0, #1 - bne .L1758 - ldrb w0, [x21,764] - tbz x0, 0, .L1758 + bne .L1903 + ldrb w0, [x21,780] + tbz x0, 0, .L1903 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode - strb wzr, [x21,136] - b .L1759 -.L1758: + strb wzr, [x21,152] + b .L1904 +.L1903: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - strb w0, [x19,136] -.L1759: + strb w0, [x19,152] +.L1904: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -10978,8 +11676,8 @@ flash_ddr_para_scan: ret .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 - .type id_block_read_data.constprop.30, %function -id_block_read_data.constprop.30: + .type id_block_read_data.constprop.29, %function +id_block_read_data.constprop.29: stp x29, x30, [sp, -240]! add x29, sp, 0 stp x27, x28, [sp,80] @@ -10990,7 +11688,7 @@ id_block_read_data.constprop.30: str x1, [x29,120] stp x25, x26, [sp,64] mov w26, w0 - ldr x0, [x19,88] + ldr x0, [x19,104] stp x21, x22, [sp,32] stp x23, x24, [sp,48] mov x21, x2 @@ -11001,10 +11699,10 @@ id_block_read_data.constprop.30: mov w25, w22 str w2, [x29,164] mul w0, w2, w0 - ldrb w2, [x19,184] + ldrb w2, [x19,200] str w2, [x29,136] uxth w0, w0 - strb wzr, [x19,184] + strb wzr, [x19,200] udiv w2, w26, w0 msub w0, w2, w0, w26 str w0, [x29,172] @@ -11013,12 +11711,12 @@ id_block_read_data.constprop.30: ldr w0, [x29,172] and w0, w0, 3 str w0, [x29,168] - adrp x0, .LC145 - add x0, x0, :lo12:.LC145 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 str x0, [x29,112] -.L1764: +.L1909: cmp w22, w27 - bcs .L1801 + bcs .L1946 ldr w0, [x29,168] adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 @@ -11026,36 +11724,36 @@ id_block_read_data.constprop.30: uxth w0, w0 str w0, [x29,144] ldr w0, [x29,172] - ldrb w1, [x1,1232] + ldrb w1, [x1,1280] add w20, w22, w0 - add x0, x19, 212 + add x0, x19, 228 udiv w20, w20, w23 and w20, w20, 65535 ldrh w0, [x0,w20,sxtw 1] - cbnz w1, .L1765 + cbnz w1, .L1910 mov w20, w0 - b .L1766 -.L1765: - ldrb w1, [x19,208] + b .L1911 +.L1910: + ldrb w1, [x19,224] lsl w0, w20, 1 cmp w1, wzr csel w20, w0, w20, ne -.L1766: +.L1911: ldr w1, [x29,160] ldr w0, [x29,164] - ldrb w28, [x19,96] + ldrb w28, [x19,112] madd w0, w20, w0, w1 ldr w1, [x29,168] str w0, [x29,140] add w24, w0, w1 - ldr x0, [x19,88] + ldr x0, [x19,104] ldrb w0, [x0,9] udiv w24, w24, w0 - ldrb w0, [x19,188] + ldrb w0, [x19,204] str w0, [x29,132] mov w0, w28 bl nandc_bch_sel -.L1767: +.L1912: mov w0, 0 mov w1, w24 mov x2, x21 @@ -11064,30 +11762,30 @@ id_block_read_data.constprop.30: bl flash_read_page cmn w0, #1 mov w20, w0 - bne .L1774 - ldrb w6, [x19,184] - cbnz w6, .L1769 -.L1772: + bne .L1919 + ldrb w6, [x19,200] + cbnz w6, .L1914 +.L1917: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr x6, [x0,1192] - cbnz x6, .L1770 - b .L1771 -.L1769: + ldr x6, [x0,1240] + cbnz x6, .L1915 + b .L1916 +.L1914: mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 str x6, [x29,104] - strb wzr, [x19,184] + strb wzr, [x19,200] bl flash_read_page cmn w0, #1 ldr x6, [x29,104] - strb w6, [x19,184] - beq .L1772 - b .L1800 -.L1770: + strb w6, [x19,200] + beq .L1917 + b .L1945 +.L1915: mov w0, 0 mov w1, w24 mov x2, x21 @@ -11095,28 +11793,28 @@ id_block_read_data.constprop.30: mov w4, w23 blr x6 cmn w0, #1 - bne .L1800 -.L1771: - ldrb w0, [x19,136] - cbz w0, .L1774 + bne .L1945 +.L1916: + ldrb w0, [x19,152] + cbz w0, .L1919 mov w0, 0 mov w1, w24 mov x2, x21 add x3, x29, 176 mov w4, w23 - bl flash_ddr_tunning_read -.L1800: + bl flash_ddr_tuning_read +.L1945: mov w20, w0 -.L1774: +.L1919: cmn w20, #1 - bne .L1775 + bne .L1920 cmp w28, 16 - beq .L1775 + beq .L1920 mov w0, 16 mov w28, 16 bl nandc_bch_sel - b .L1767 -.L1775: + b .L1912 +.L1920: ldr w0, [x29,132] bl nandc_bch_sel cmn w20, #1 @@ -11127,18 +11825,18 @@ id_block_read_data.constprop.30: cmp w0, w26 cset w0, eq tst w1, w0 - beq .L1777 - cbnz w25, .L1777 + beq .L1922 + cbnz w25, .L1922 ldr w1, [x21] mov w0, 18766 movk w0, 0x464e, lsl 16 cmp w1, w0 - bne .L1777 + bne .L1922 ldr w0, [x29,144] ldrb w23, [x21,17] add w27, w27, w0 - b .L1778 -.L1777: + b .L1923 +.L1922: ldr x0, [x29,144] mov w2, w22 ldr w1, [x29,140] @@ -11149,16 +11847,16 @@ id_block_read_data.constprop.30: ldr x0, [x29,112] bl printk str wzr, [x29,168] -.L1778: +.L1923: ldr w0, [x29,144] add w22, w0, w22 uxth w22, w22 - b .L1764 -.L1801: + b .L1909 +.L1946: ldr x0, [x29,120] ldrb w1, [x29,136] add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,184] + strb w1, [x0,200] mov w0, w25 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11167,7 +11865,7 @@ id_block_read_data.constprop.30: ldp x27, x28, [sp,80] ldp x29, x30, [sp], 240 ret - .size id_block_read_data.constprop.30, .-id_block_read_data.constprop.30 + .size id_block_read_data.constprop.29, .-id_block_read_data.constprop.29 .align 2 .global flash_complete_page_read .type flash_complete_page_read, %function @@ -11185,11 +11883,11 @@ flash_complete_page_read: stp x27, x28, [sp,80] ubfx x23, x24, 21, 3 mov x25, x1 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov x26, x2 ubfx x22, x24, 24, 2 cmp w0, w23 - bhi .L1803 + bhi .L1948 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -11197,33 +11895,33 @@ flash_complete_page_read: add x1, x1, 184 mov w2, 789 bl printk -.L1803: +.L1948: add x21, x20, :lo12:.LANCHOR0 add x23, x21, x23, sxtw - ldrb w23, [x23,200] + ldrb w23, [x23,216] mov w0, w23 ldr x27, [x21,16] bl nandc_cs - cbnz w22, .L1804 - ldrb w0, [x21,97] - cbz w0, .L1805 - ldrb w0, [x21,208] - cbz w0, .L1804 -.L1805: + cbnz w22, .L1949 + ldrb w0, [x21,113] + cbz w0, .L1950 + ldrb w0, [x21,224] + cbz w0, .L1949 +.L1950: add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,210] + ldrh w2, [x1,226] udiv w0, w19, w2 mul w0, w0, w2 - ldrb w2, [x1,208] + ldrb w2, [x1,224] sub w19, w19, w0 - cbz w2, .L1806 + cbz w2, .L1951 add w19, w0, w19, lsl 1 - b .L1804 -.L1806: - add x1, x1, 212 + b .L1949 +.L1951: + add x1, x1, 228 ldrh w19, [x1,w19,uxtw 1] add w19, w19, w0 -.L1804: +.L1949: ubfiz x0, x23, 8, 8 add x5, x27, x0 mov w0, 5 @@ -11238,19 +11936,19 @@ flash_complete_page_read: str w0, [x5,2052] mov w0, 224 str w0, [x5,2056] - cbz w22, .L1807 + cbz w22, .L1952 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,88] + ldr x0, [x0,104] ldrb w0, [x0,12] cmp w0, 3 - bne .L1807 + bne .L1952 sub w0, w22, #1 add w1, w19, w19, lsl 1 add w0, w0, w1 - b .L1845 -.L1807: + b .L1990 +.L1952: mov w0, w19 -.L1845: +.L1990: adrp x21, .LANCHOR2 bl nandc_set_seed add x27, x21, :lo12:.LANCHOR2 @@ -11262,29 +11960,29 @@ flash_complete_page_read: ldrb w2, [x27,9] bl nandc_xfer cmn w0, #1 - bne .L1809 + bne .L1954 add x28, x20, :lo12:.LANCHOR0 - ldrb w5, [x28,184] - cbz w5, .L1810 + ldrb w5, [x28,200] + cbz w5, .L1955 ldrb w4, [x27,9] mov w0, w23 orr w1, w19, w22, lsl 24 mov x2, x25 mov x3, x26 str x5, [x29,104] - strb wzr, [x28,184] + strb wzr, [x28,200] bl flash_read_page ldr x5, [x29,104] - strb w5, [x28,184] - cbnz w22, .L1811 -.L1818: + strb w5, [x28,200] + cbnz w22, .L1956 +.L1963: add x1, x20, :lo12:.LANCHOR0 - ldrb w2, [x1,97] - cbz w2, .L1811 - ldrb w1, [x1,188] + ldrb w2, [x1,113] + cbz w2, .L1956 + ldrb w1, [x1,204] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L1811 + blt .L1956 add x21, x21, :lo12:.LANCHOR2 ldrb w1, [x21,395] sub w1, w1, #4 @@ -11292,28 +11990,28 @@ flash_complete_page_read: cmp w1, 3 mov w1, 256 csel w0, w0, w1, hi - b .L1828 -.L1811: + b .L1973 +.L1956: cmn w0, #1 - bne .L1828 -.L1819: - adrp x0, .LANCHOR4+1192 - ldr x5, [x0,#:lo12:.LANCHOR4+1192] - cbnz x5, .L1814 -.L1817: + bne .L1973 +.L1964: + adrp x0, .LANCHOR4+1240 + ldr x5, [x0,#:lo12:.LANCHOR4+1240] + cbnz x5, .L1959 +.L1962: add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC146 - add x0, x0, :lo12:.LC146 + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 mov w1, 0 mov w2, w24 mov w3, -1 - ldrb w4, [x20,184] + ldrb w4, [x20,200] bl printk - ldrb w0, [x20,136] - cbnz w0, .L1815 + ldrb w0, [x20,152] + cbnz w0, .L1960 mov w0, -1 - b .L1828 -.L1814: + b .L1973 +.L1959: add x4, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w19, w22, lsl 24 @@ -11322,24 +12020,24 @@ flash_complete_page_read: ldrb w4, [x4,385] blr x5 cmn w0, #1 - bne .L1828 - b .L1817 -.L1815: + bne .L1973 + b .L1962 +.L1960: add x21, x21, :lo12:.LANCHOR2 mov w0, w23 orr w1, w19, w22, lsl 24 mov x2, x25 mov x3, x26 ldrb w4, [x21,385] - bl flash_ddr_tunning_read - b .L1828 -.L1809: - cbz w22, .L1818 - b .L1828 -.L1810: - cbz w22, .L1818 - b .L1819 -.L1828: + bl flash_ddr_tuning_read + b .L1973 +.L1954: + cbz w22, .L1963 + b .L1973 +.L1955: + cbz w22, .L1963 + b .L1964 +.L1973: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -11358,47 +12056,47 @@ queue_wait_first_req_completed: add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldrb w20, [x0,3861] + ldrb w20, [x0,3909] cmp w20, 255 - beq .L1882 - add x0, x0, 768 + beq .L2027 + add x0, x0, 784 mov w1, 0 add x0, x0, x20, lsl 6 ldrb w2, [x0,58] ldr w21, [x0,40] sub w3, w2, #1 cmp w3, 9 - bhi .L1848 - adrp x0, .L1850 - add x0, x0, :lo12:.L1850 + bhi .L1993 + adrp x0, .L1995 + add x0, x0, :lo12:.L1995 ldrb w0, [x0,w3,uxtw] - adr x1, .Lrtx1850 + adr x1, .Lrtx1995 add x0, x1, w0, sxtb #2 br x0 -.Lrtx1850: +.Lrtx1995: .section .rodata .align 0 .align 2 -.L1850: - .byte (.L1849 - .Lrtx1850) / 4 - .byte (.L1849 - .Lrtx1850) / 4 - .byte (.L1851 - .Lrtx1850) / 4 - .byte (.L1851 - .Lrtx1850) / 4 - .byte (.L1851 - .Lrtx1850) / 4 - .byte (.L1852 - .Lrtx1850) / 4 - .byte (.L1853 - .Lrtx1850) / 4 - .byte (.L1854 - .Lrtx1850) / 4 - .byte (.L1851 - .Lrtx1850) / 4 - .byte (.L1854 - .Lrtx1850) / 4 +.L1995: + .byte (.L1994 - .Lrtx1995) / 4 + .byte (.L1994 - .Lrtx1995) / 4 + .byte (.L1996 - .Lrtx1995) / 4 + .byte (.L1996 - .Lrtx1995) / 4 + .byte (.L1996 - .Lrtx1995) / 4 + .byte (.L1997 - .Lrtx1995) / 4 + .byte (.L1998 - .Lrtx1995) / 4 + .byte (.L1999 - .Lrtx1995) / 4 + .byte (.L1996 - .Lrtx1995) / 4 + .byte (.L1999 - .Lrtx1995) / 4 .text -.L1849: +.L1994: mov w0, w21 mov w1, 64 bl flash_wait_device_ready - tbz x0, 6, .L1882 + tbz x0, 6, .L2027 add x19, x19, :lo12:.LANCHOR0 mov w0, w21 - add x19, x19, 768 + add x19, x19, 784 add x20, x19, x20, lsl 6 mov x2, x20 ldr x3, [x20,8] @@ -11413,70 +12111,70 @@ queue_wait_first_req_completed: ldrb w0, [x20,2] orr w0, w0, 8 strb w0, [x20,2] - b .L1882 -.L1851: + b .L2027 +.L1996: bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L1882 + tbz x21, 6, .L2027 mov w1, 5 add x19, x19, :lo12:.LANCHOR0 ands w1, w21, w1 - beq .L1857 - add x19, x19, 768 + beq .L2002 + add x19, x19, 784 mov w0, 11 add x20, x19, x20, lsl 6 mov w4, 11 strb w0, [x20,58] - adrp x0, .LC147 + adrp x0, .LC159 ldrb w1, [x20,1] - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC159 ldr w2, [x20,52] ldr w3, [x20,40] bl printk mov w0, -1 str w0, [x20,52] - b .L1883 -.L1857: + b .L2028 +.L2002: add x20, x19, x20, lsl 6 - b .L1864 -.L1854: + b .L2009 +.L1999: add x22, x19, :lo12:.LANCHOR0 mov w0, 3 cmp w2, 10 mov w1, 9 - add x22, x22, 768 + add x22, x22, 784 csel w1, w0, w1, ne ubfx x3, x21, 21, 3 add x0, x22, x20, lsl 6 -.L1859: +.L2004: ldrb w23, [x0] cmp w23, 255 - beq .L1884 + beq .L2029 add x0, x22, x23, lsl 6 ldrb w2, [x0,58] cmp w2, w1 - bne .L1859 + bne .L2004 ldr w2, [x0,40] ubfx x2, x2, 21, 3 cmp w3, w2 - bne .L1859 + bne .L2004 bl nandc_iqr_wait_flash_ready mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 and w0, w0, 64 - tbz x21, 6, .L1867 + tbz x21, 6, .L2012 ands w0, w21, 15 add x22, x22, x20, lsl 6 - beq .L1862 - adrp x0, .LC147 + beq .L2007 + adrp x0, .LC159 ldrb w1, [x22,1] ldr w2, [x22,52] - add x0, x0, :lo12:.LC147 + add x0, x0, :lo12:.LC159 ldr w3, [x22,40] mov w4, 11 bl printk @@ -11484,61 +12182,61 @@ queue_wait_first_req_completed: strb w0, [x22,58] mov w0, -1 str w0, [x22,52] -.L1861: +.L2006: add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 768 + add x19, x19, 784 add x20, x19, x20, lsl 6 add x23, x19, x23, lsl 6 ldrb w0, [x20,58] strb w0, [x23,58] ldr w0, [x20,52] str w0, [x23,52] -.L1883: +.L2028: mov w1, w21 - b .L1848 -.L1862: + b .L1993 +.L2007: mov w1, 12 str w0, [x22,52] strb w1, [x22,58] -.L1867: +.L2012: mov w21, w0 - b .L1861 -.L1884: + b .L2006 +.L2029: mov w1, -1 - b .L1848 -.L1852: + b .L1993 +.L1997: mov w1, 32 mov w0, w21 bl flash_wait_device_ready - tbz x0, 5, .L1882 + tbz x0, 5, .L2027 ands w1, w0, 15 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 - beq .L1864 + beq .L2009 mov w1, 11 - strb w1, [x20,826] + strb w1, [x20,842] mov w1, -1 - str w1, [x20,820] + str w1, [x20,836] mov w1, w0 - b .L1848 -.L1864: + b .L1993 +.L2009: mov w0, 12 - str w1, [x20,820] - strb w0, [x20,826] - b .L1848 -.L1853: + str w1, [x20,836] + strb w0, [x20,842] + b .L1993 +.L1998: mov w1, 64 mov w0, w21 bl flash_wait_device_ready - tbz x0, 6, .L1882 + tbz x0, 6, .L2027 add x19, x19, :lo12:.LANCHOR0 add x20, x19, x20, lsl 6 - str w0, [x20,820] + str w0, [x20,836] mov w0, 6 - strb w0, [x20,826] -.L1882: + strb w0, [x20,842] +.L2027: mov w1, 0 -.L1848: +.L1993: mov w0, w1 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11554,15 +12252,15 @@ sblk_wait_write_queue_completed: add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 -.L1886: +.L2031: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3861] + ldrb w0, [x0,3909] cmp w0, 255 - beq .L1888 + beq .L2033 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1886 -.L1888: + b .L2031 +.L2033: ldr x19, [sp,16] ldp x29, x30, [sp], 32 ret @@ -11616,70 +12314,6 @@ ftl_read_ppa_page: ret .size ftl_read_ppa_page, .-ftl_read_ppa_page .align 2 - .global ftl_open_sblk_read_test - .type ftl_open_sblk_read_test, %function -ftl_open_sblk_read_test: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w0 - add x1, x29, 80 - stp x21, x22, [sp,32] - mov w0, w19 - adrp x21, .LANCHOR4 - adrp x22, .LANCHOR5 - add x21, x21, :lo12:.LANCHOR4 - add x22, x22, :lo12:.LANCHOR5 - str x23, [sp,48] - add x21, x21, 1280 - bl ftl_get_blk_list_in_sblk - add x22, x22, 256 - strh w19, [x29,64] - strb w0, [x29,73] - mov w19, 0 -.L1892: - adrp x0, .LANCHOR0 - add x1, x0, :lo12:.LANCHOR0 - mov x23, x0 - ldrh w1, [x1,3276] - cmp w1, w19 - bls .L1891 - mov w20, 0 -.L1898: - add x3, x23, :lo12:.LANCHOR0 - ldrb w0, [x3,3244] - cmp w0, w20 - bls .L1904 - add x0, x29, 64 - add x0, x0, x20, sxtw 1 - ldrh w0, [x0,16] - mov w1, 65535 - cmp w0, w1 - beq .L1894 - ldrh w1, [x3,3324] - mov x2, x22 - ldrb w3, [x3,2816] - madd w0, w0, w1, w19 - mov x1, x21 - bl ftl_read_ppa_page - cmp w0, 512 - beq .L1891 -.L1894: - add w20, w20, 1 - uxth w20, w20 - b .L1898 -.L1904: - add w19, w19, 1 - uxth w19, w19 - b .L1892 -.L1891: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 96 - ret - .size ftl_open_sblk_read_test, .-ftl_open_sblk_read_test - .align 2 .global sblk_read_page .type sblk_read_page, %function sblk_read_page: @@ -11698,21 +12332,21 @@ sblk_read_page: mov x19, x0 mov w22, w21 mov w25, -1 - add x26, x23, 3861 -.L1906: - cbz w22, .L1918 + add x26, x23, 3909 +.L2037: + cbz w22, .L2049 ldrb w27, [x19] ldr w28, [x19,40] -.L1907: +.L2038: mov w0, w28 mov w1, 0 bl queue_lun_state mov w2, w0 - cbz w0, .L1919 + cbz w0, .L2050 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1907 -.L1919: + b .L2038 +.L2050: ldr w1, [x19,40] mov w0, 48 str x2, [x29,104] @@ -11725,29 +12359,29 @@ sblk_read_page: strb w25, [x19] bl buf_add_tail subs w22, w22, #1 - beq .L1918 - add x19, x23, 768 + beq .L2049 + add x19, x23, 784 sbfiz x27, x27, 6, 32 add x19, x19, x27 - b .L1906 -.L1918: + b .L2037 +.L2049: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 768 -.L1911: - cbz w21, .L1920 + add x19, x19, 784 +.L2042: + cbz w21, .L2051 ldrb w0, [x20,58] cmp w0, 12 - bne .L1912 + bne .L2043 ldrb w20, [x20] sub w21, w21, #1 add x20, x19, x20, lsl 6 - b .L1911 -.L1912: + b .L2042 +.L2043: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L1911 -.L1920: + b .L2042 +.L2051: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -11771,129 +12405,129 @@ gc_check_data_one_wl: stp x21, x22, [sp,48] stp x23, x24, [sp,64] stp x25, x26, [sp,80] - ldr x0, [x20,2896] - ldr x23, [x20,80] - add x20, x20, 2888 - cbnz x0, .L1922 + ldr x0, [x20,2920] + ldr x23, [x20,88] + add x20, x20, 2912 + cbnz x0, .L2053 mov w0, 1 bl buf_alloc str x0, [x20,8] -.L1922: +.L2053: add x0, x19, :lo12:.LANCHOR0 - ldr x20, [x0,2896] - cbnz x20, .L1923 + ldr x20, [x0,2920] + cbnz x20, .L2054 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, 216 - mov w2, 348 + mov w2, 366 bl printk -.L1923: +.L2054: mov w24, 0 add x25, x23, 80 add x21, x19, :lo12:.LANCHOR0 adrp x26, .LANCHOR4 -.L1924: +.L2055: ldrb w0, [x25,9] cmp w24, w0 - bge .L1945 + bge .L2076 mov w22, 1 sxtw x27, w24 -.L1933: - add x0, x21, 2888 +.L2064: + add x0, x21, 2912 ldrh w1, [x0,20] cmp w22, w1 - bgt .L1946 + bgt .L2077 add x1, x27, 8 - ldrh w2, [x21,3324] + ldrh w2, [x21,3366] ldrh w0, [x0,16] ldrh w1, [x25,x1,lsl 1] mul w1, w1, w2 - ldrb w2, [x21,3225] + ldrb w2, [x21,3273] cmp w2, 3 - bne .L1925 + bne .L2056 add w1, w1, w0 orr w1, w1, w22, lsl 24 - b .L1944 -.L1925: + b .L2075 +.L2056: cmp w2, 2 - bne .L1927 + bne .L2058 sub w0, w0, #1 add w1, w0, w1 add w1, w1, w22 orr w1, w1, 33554432 - b .L1944 -.L1927: + b .L2075 +.L2058: add w1, w1, w0 -.L1944: +.L2075: str w1, [x20,40] mov x0, x20 mov w1, 1 bl sblk_read_page ldr w2, [x20,52] cmn w2, #1 - beq .L1928 + beq .L2059 add x3, x26, :lo12:.LANCHOR4 - ldrh w0, [x21,2910] + ldrh w0, [x21,2934] ldr x1, [x20,24] lsl x0, x0, 2 - ldr x4, [x3,1104] + ldr x4, [x3,1152] ldr w5, [x4,x0] ldr w4, [x1,4] cmp w5, w4 - bne .L1928 - ldr x3, [x3,1112] + bne .L2059 + ldr x3, [x3,1160] ldr w3, [x3,x0] ldr w0, [x1,8] cmp w3, w0 - beq .L1929 -.L1928: + beq .L2060 +.L2059: add x0, x26, :lo12:.LANCHOR4 - ldrh w4, [x21,2910] + ldrh w4, [x21,2934] lsl x4, x4, 2 - ldr x1, [x0,1104] + ldr x1, [x0,1152] ldr w3, [x1,x4] cmn w3, #1 - beq .L1929 + beq .L2060 adrp x1, .LANCHOR2 ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 10, .L1930 + tbz x1, 10, .L2061 ldr x7, [x20,24] - ldr x5, [x0,1112] + ldr x5, [x0,1160] ldr w0, [x7,12] str w0, [sp] - adrp x0, .LC148 - add x0, x0, :lo12:.LC148 + adrp x0, .LC160 + add x0, x0, :lo12:.LC160 ldr w4, [x5,x4] ldr w6, [x7,4] ldr w5, [x7] ldr w1, [x20,40] ldr w7, [x7,8] bl printk -.L1930: +.L2061: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23,80] - ldr x0, [x19,72] + ldr x0, [x19,80] strh wzr, [x0,x1,lsl 1] mov w0, -1 - b .L1931 -.L1929: - ldrh w0, [x21,2910] + b .L2062 +.L2060: + ldrh w0, [x21,2934] add w22, w22, 1 add w0, w0, 1 - strh w0, [x21,2910] - b .L1933 -.L1946: + strh w0, [x21,2934] + b .L2064 +.L2077: add w24, w24, 1 - b .L1924 -.L1945: + b .L2055 +.L2076: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2904] + ldrh w0, [x19,2928] add w0, w0, 1 - strh w0, [x19,2904] + strh w0, [x19,2928] mov w0, 0 -.L1931: +.L2062: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -11929,24 +12563,24 @@ flash_prog_page: add x22, x19, x22, lsl 8 and w24, w1, 2097151 ubfx x27, x23, 24, 2 - tbz x0, 4, .L1948 - adrp x0, .LC149 + tbz x0, 4, .L2079 + adrp x0, .LC161 mov w2, w27 - add x0, x0, :lo12:.LC149 + add x0, x0, :lo12:.LC161 bl printk -.L1948: +.L2079: bl nandc_wait_flash_ready mov w0, w20 bl hynix_reconfig_rr_para mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w27, .L1949 + cbnz w27, .L2080 bl zftl_flash_enter_slc_mode - b .L1950 -.L1949: + b .L2081 +.L2080: bl zftl_flash_exit_slc_mode -.L1950: +.L2081: ubfiz x4, x20, 8, 8 mov w0, 128 add x19, x19, x4 @@ -11978,16 +12612,16 @@ flash_prog_page: mov w0, w20 and w19, w21, 4 bl nandc_de_cs - tbz x21, 2, .L1951 + tbz x21, 2, .L2082 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1951 - adrp x0, .LC150 + tbz x0, 12, .L2082 + adrp x0, .LC162 mov w1, w23 - add x0, x0, :lo12:.LC150 + add x0, x0, :lo12:.LC162 mov w2, w19 bl printk -.L1951: +.L2082: mov w0, w19 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -12007,72 +12641,72 @@ flash_test_blk: stp x21, x22, [sp,32] uxtb w22, w0 uxth w20, w1 - cbnz w22, .L1962 - adrp x0, .LANCHOR5+512 - ldrb w1, [x0,#:lo12:.LANCHOR5+512] + adrp x19, .LANCHOR4 + cbnz w22, .L2093 + add x0, x19, :lo12:.LANCHOR4 + ldrb w1, [x0,1281] mov w0, w22 cmp w1, w20 - bhi .L1963 -.L1962: - adrp x19, .LANCHOR4 - mov w1, 165 + bhi .L2094 +.L2093: add x19, x19, :lo12:.LANCHOR4 + mov w1, 165 mov w2, 32 - ldr x0, [x19,1224] + ldr x0, [x19,1272] bl ftl_memset - ldr x0, [x19,1216] + ldr x0, [x19,1264] mov w1, 90 mov w2, 8 bl ftl_memset - adrp x0, .LANCHOR0+210 - ldrh w21, [x0,#:lo12:.LANCHOR0+210] + adrp x0, .LANCHOR0+226 + ldrh w21, [x0,#:lo12:.LANCHOR0+226] mov w0, w22 mul w21, w20, w21 mov w1, w21 bl flash_erase_block cmn w0, #1 - beq .L1968 + beq .L2099 adrp x20, .LANCHOR2 - ldr x2, [x19,1216] + ldr x2, [x19,1264] add x20, x20, :lo12:.LANCHOR2 - ldr x3, [x19,1224] + ldr x3, [x19,1272] mov w0, w22 mov w1, w21 add x20, x20, 376 ldrb w4, [x20,9] bl flash_prog_page cmn w0, #1 - beq .L1968 + beq .L2099 ldrb w4, [x20,9] mov w0, w22 - ldr x2, [x19,1216] + ldr x2, [x19,1264] mov w1, w21 - ldr x3, [x19,1224] + ldr x3, [x19,1272] bl flash_read_page cmn w0, #1 mov w20, w0 - beq .L1968 - ldr x0, [x19,1216] + beq .L2099 + ldr x0, [x19,1264] ldr w1, [x0] mov w0, 23130 bfi w0, w0, 16, 16 cmp w1, w0 - bne .L1968 - ldr x0, [x19,1224] + bne .L2099 + ldr x0, [x19,1272] ldr w1, [x0] mov w0, 42405 bfi w0, w0, 16, 16 cmp w1, w0 csinv w20, w20, wzr, eq - b .L1965 -.L1968: + b .L2096 +.L2099: mov w20, -1 -.L1965: +.L2096: mov w0, w22 mov w1, w21 bl flash_erase_block mov w0, w20 -.L1963: +.L2094: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x29, x30, [sp], 48 @@ -12080,8 +12714,8 @@ flash_test_blk: .size flash_test_blk, .-flash_test_blk .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.31, %function -fw_flash_page_prog.constprop.31: + .type fw_flash_page_prog.constprop.30, %function +fw_flash_page_prog.constprop.30: stp x29, x30, [sp, -64]! adrp x4, .LANCHOR0 add x29, sp, 0 @@ -12090,11 +12724,11 @@ fw_flash_page_prog.constprop.31: mov x21, x1 stp x19, x20, [sp,16] str x2, [x29,56] - ldr x1, [x4,88] - ldrb w20, [x4,188] + ldr x1, [x4,104] + ldrb w20, [x4,204] ldrb w19, [x1,9] udiv w19, w0, w19 - ldrb w0, [x4,96] + ldrb w0, [x4,112] bl nandc_bch_sel ldr x3, [x29,56] mov w1, w19 @@ -12110,356 +12744,9 @@ fw_flash_page_prog.constprop.31: ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 ret - .size fw_flash_page_prog.constprop.31, .-fw_flash_page_prog.constprop.31 + .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 .text .align 2 - .global flash_start_page_prog - .type flash_start_page_prog, %function -flash_start_page_prog: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - and w19, w1, 2097151 - stp x21, x22, [sp,32] - uxtb w22, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ubfx x27, x1, 21, 3 - mov x24, x2 - ldrb w0, [x0,98] - mov x23, x3 - ubfx x26, x1, 24, 2 - cmp w0, w27 - bhi .L1978 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 240 - mov w2, 685 - bl printk -.L1978: - add x28, x20, :lo12:.LANCHOR0 - add x0, x28, x27, sxtw - ldrb w21, [x0,200] - ldr x25, [x28,16] - bl nandc_rdy_status - cbnz w0, .L1979 - ldrb w0, [x28,98] - cmp w0, 1 - bne .L1980 - bl nandc_wait_flash_ready - b .L1979 -.L1980: - mov w0, w27 - mov w1, w19 - mov w2, 64 - bl flash_wait_device_ready_raw -.L1979: - mov w0, w21 - bl hynix_reconfig_rr_para - mov w0, w21 - bl nandc_cs - cbnz w26, .L1981 - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,97] - cbz w1, .L1982 - ldrb w0, [x0,208] - cbz w0, .L1983 -.L1982: - add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,210] - udiv w0, w19, w1 - mul w0, w0, w1 - ldrb w1, [x20,208] - sub w19, w19, w0 - cbz w1, .L1984 - add w19, w0, w19, lsl 1 - b .L1983 -.L1984: - add x20, x20, 212 - ldrh w19, [x20,w19,uxtw 1] - add w19, w19, w0 - b .L1985 -.L1983: - mov w0, w21 - bl zftl_flash_enter_slc_mode - b .L1985 -.L1981: - mov w0, w21 - bl zftl_flash_exit_slc_mode -.L1985: - ubfiz x1, x21, 8, 8 - mov w0, 128 - add x20, x25, x1 - 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] - mov w0, w19 - bl nandc_set_seed - adrp x1, .LANCHOR2+385 - mov x2, x24 - mov x3, x23 - mov w0, 1 - ldrb w1, [x1,#:lo12:.LANCHOR2+385] - bl nandc_xfer_start - bl nandc_xfer_done - str w22, [x20,2056] - mov w0, w21 - bl nandc_de_cs - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 - ret - .size flash_start_page_prog, .-flash_start_page_prog - .align 2 - .type queue_prog_cmd, %function -queue_prog_cmd: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp,16] - mov x19, x0 - mov w0, 16 - ldr w1, [x19,40] - ldr x2, [x19,8] - ldr x3, [x19,24] - bl flash_start_page_prog - adrp x0, .LANCHOR0 - ldr w4, [x19,40] - add x1, x0, :lo12:.LANCHOR0 - ldrb w2, [x1,3861] - cmp w2, 255 - beq .L1990 - ubfx x4, x4, 21, 3 - add x1, x1, 768 -.L1992: - add x3, x1, x2, lsl 6 - ldr w5, [x3,40] - ubfx x5, x5, 21, 3 - cmp w4, w5 - bne .L1991 - ldrb w5, [x3,58] - add x3, x3, 48 - cmp w5, 6 - bne .L1991 - mov w1, 3 - strb w1, [x3,10] - b .L1990 -.L1991: - lsl x2, x2, 6 - ldrb w2, [x1,x2] - cmp w2, 255 - bne .L1992 -.L1990: - mov w1, 3 - strb w1, [x19,58] - mov w1, 1 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x19,59] - mov w1, -1 - add x0, x0, 3861 - strb w1, [x19] - mov x1, x19 - bl buf_add_tail - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size queue_prog_cmd, .-queue_prog_cmd - .align 2 - .global sblk_prog_page - .type sblk_prog_page, %function -sblk_prog_page: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - str x27, [sp,80] - mov x19, x0 - uxtb w20, w1 - ldrh w0, [x0,50] - cbz w0, .L1998 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L1998 - adrp x0, .LC151 - ldr w1, [x19,40] - add x0, x0, :lo12:.LC151 - mov w2, w20 - bl printk -.L1998: - adrp x21, .LANCHOR0 - adrp x24, .LANCHOR3 - add x21, x21, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LANCHOR3 - mov w22, 0 - add x26, x21, 768 - add x24, x24, 264 -.L1999: - cbz w20, .L2025 - ldrb w25, [x19] - ldr w23, [x19,40] -.L2000: - mov w0, w23 - mov w1, 1 - bl queue_lun_state - cbz w0, .L2026 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2000 -.L2026: - cmp w20, 1 - beq .L2002 - ldrb w0, [x21,765] - cbnz w0, .L2003 -.L2002: - mov x0, x19 - bl queue_prog_cmd - b .L2004 -.L2003: - ldrb w0, [x19] - ubfx x27, x23, 21, 3 - cmp w0, 255 - bne .L2005 - adrp x0, .LC0 - mov x1, x24 - add x0, x0, :lo12:.LC0 - mov w2, 489 - bl printk -.L2005: - ldrb w0, [x19] - add x0, x26, x0, lsl 6 - ldr w4, [x0,40] - ubfx x0, x4, 21, 3 - cmp w27, w0 - bne .L2006 - ldrh w3, [x21,3314] - mov w1, 21 - ldrb w6, [x21,3312] - mov w27, 1 - sub w1, w1, w3 - lsr w0, w23, w3 - sub w6, w6, #1 - lsl w1, w27, w1 - sub w1, w1, #1 - lsl w2, w27, w3 - uxth w7, w6 - sub w2, w2, #1 - and w5, w7, w0 - lsr w0, w4, w3 - uxth w1, w1 - and w3, w7, w0 - and w3, w1, w3 - and w0, w1, w5 - cmp w0, w3 - uxth w2, w2 - beq .L2006 - and w23, w2, w23 - and w2, w2, w4 - cmp w23, w2 - bne .L2006 - cmp w22, w6 - beq .L2006 - ldr w1, [x19,40] - mov w0, 17 - ldr x2, [x19,8] - add w22, w22, w27 - ldr x3, [x19,24] - bl flash_start_page_prog - strb w27, [x19,59] - mov w0, 8 - strb w0, [x19,58] - mov w0, -1 - mov x1, x19 - strb w0, [x19] - add x0, x21, 3861 - bl buf_add_tail - b .L2004 -.L2006: - mov x0, x19 - mov w22, 0 - bl queue_prog_cmd -.L2004: - sbfiz x19, x25, 6, 32 - sub w20, w20, #1 - add x19, x26, x19 - b .L1999 -.L2025: - mov w0, w20 - 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 sblk_prog_page, .-sblk_prog_page - .align 2 - .global ftl_flush - .type ftl_flush, %function -ftl_flush: - stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR0 - add x29, sp, 0 - add x0, x2, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - mov x19, x2 - adrp x20, .LANCHOR5 - ldrb w1, [x0,2841] - cbz w1, .L2028 - add x2, x20, :lo12:.LANCHOR5 - add x0, x0, 768 - ldrb w2, [x2,513] - add x0, x0, x2, lsl 6 - bl sblk_prog_page -.L2028: - add x2, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR5 - mov w0, -1 - strb wzr, [x2,2841] - strb w0, [x20,513] - bl sblk_wait_write_queue_completed - bl ftl_write_completed - mov w0, -1 - bl ftl_vpn_decrement - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret - .size ftl_flush, .-ftl_flush - .align 2 - .global zftl_cache_flush - .type zftl_cache_flush, %function -zftl_cache_flush: - adrp x0, .LANCHOR0+2841 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+2841] - cbz w0, .L2032 - bl timer_get_time - adrp x1, .LANCHOR5+516 - ldr w1, [x1,#:lo12:.LANCHOR5+516] - add w1, w1, 100 - cmp w0, w1 - bls .L2032 - bl ftl_flush -.L2032: - ldp x29, x30, [sp], 16 - ret - .size zftl_cache_flush, .-zftl_cache_flush - .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: @@ -12475,33 +12762,33 @@ flash_start_tlc_page_prog: stp x23, x24, [sp,48] uxtb w26, w3 uxtb w21, w1 - ldrb w0, [x0,98] + ldrb w0, [x0,114] uxtb w22, w2 mov x24, x5 mov x23, x6 cmp w0, w26 mov x19, x4 - bhi .L2037 + bhi .L2109 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 280 + add x1, x1, 240 mov w2, 648 bl printk -.L2037: +.L2109: add x4, x19, :lo12:.LANCHOR0 add x26, x4, x26, sxtw - ldrb w26, [x26,200] + ldrb w26, [x26,216] mov w0, w26 ldr x19, [x4,16] bl nandc_cs - cbz w25, .L2038 + cbz w25, .L2110 sxtw x1, w26 add x1, x1, 8 add x1, x19, x1, lsl 8 str w25, [x1,8] -.L2038: +.L2110: ubfiz x7, x26, 8, 8 mov w0, 128 add x19, x19, x7 @@ -12589,7 +12876,7 @@ queue_tlc_prog_cmd: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3861 + add x0, x0, 3909 bl buf_add_tail ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -12607,16 +12894,16 @@ sblk_tlc_prog_one_page: mov x20, x0 ldr x0, [x0] ldr w21, [x0,40] -.L2044: +.L2116: mov w0, w21 mov w1, 1 bl queue_lun_state mov w19, w0 - cbz w0, .L2046 + cbz w0, .L2118 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2044 -.L2046: + b .L2116 +.L2118: mov x0, x20 bl queue_tlc_prog_cmd ldr x21, [sp,32] @@ -12639,17 +12926,17 @@ sblk_xlc_prog_pages: ldr x0, [x0] mov w24, w2 ldr w20, [x0,40] -.L2048: +.L2120: mov w0, w20 mov w1, 1 bl queue_lun_state - cbz w0, .L2052 + cbz w0, .L2124 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2048 -.L2052: + b .L2120 +.L2124: cmp w24, 2 - bne .L2050 + bne .L2122 ldr x6, [x19] mov w1, 1 ldr x0, [x22] @@ -12731,13 +13018,13 @@ sblk_xlc_prog_pages: strb w0, [x1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3861 + add x0, x0, 3909 bl buf_add_tail - b .L2051 -.L2050: + b .L2123 +.L2122: mov x0, x19 bl queue_tlc_prog_cmd -.L2051: +.L2123: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -12746,6 +13033,353 @@ sblk_xlc_prog_pages: ret .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .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 x19, x20, [sp,16] + adrp x20, .LANCHOR0 + and w19, w1, 2097151 + stp x21, x22, [sp,32] + uxtb w22, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + ubfx x27, x1, 21, 3 + mov x24, x2 + ldrb w0, [x0,114] + mov x23, x3 + ubfx x26, x1, 24, 2 + cmp w0, w27 + bhi .L2126 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 272 + mov w2, 685 + bl printk +.L2126: + add x28, x20, :lo12:.LANCHOR0 + add x0, x28, x27, sxtw + ldrb w21, [x0,216] + ldr x25, [x28,16] + bl nandc_rdy_status + cbnz w0, .L2127 + ldrb w0, [x28,114] + cmp w0, 1 + bne .L2128 + bl nandc_wait_flash_ready + b .L2127 +.L2128: + mov w0, w27 + mov w1, w19 + mov w2, 64 + bl flash_wait_device_ready_raw +.L2127: + mov w0, w21 + bl hynix_reconfig_rr_para + mov w0, w21 + bl nandc_cs + cbnz w26, .L2129 + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0,113] + cbz w1, .L2130 + ldrb w0, [x0,224] + cbz w0, .L2131 +.L2130: + add x20, x20, :lo12:.LANCHOR0 + ldrh w1, [x20,226] + udiv w0, w19, w1 + mul w0, w0, w1 + ldrb w1, [x20,224] + sub w19, w19, w0 + cbz w1, .L2132 + add w19, w0, w19, lsl 1 + b .L2131 +.L2132: + add x20, x20, 228 + ldrh w19, [x20,w19,uxtw 1] + add w19, w19, w0 + b .L2133 +.L2131: + mov w0, w21 + bl zftl_flash_enter_slc_mode + b .L2133 +.L2129: + mov w0, w21 + bl zftl_flash_exit_slc_mode +.L2133: + ubfiz x1, x21, 8, 8 + mov w0, 128 + add x20, x25, x1 + 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] + mov w0, w19 + bl nandc_set_seed + adrp x1, .LANCHOR2+385 + mov x2, x24 + mov x3, x23 + mov w0, 1 + ldrb w1, [x1,#:lo12:.LANCHOR2+385] + bl nandc_xfer_start + bl nandc_xfer_done + str w22, [x20,2056] + mov w0, w21 + bl nandc_de_cs + ldp x19, x20, [sp,16] + ldp x21, x22, [sp,32] + ldp x23, x24, [sp,48] + ldp x25, x26, [sp,64] + ldp x27, x28, [sp,80] + ldp x29, x30, [sp], 96 + ret + .size flash_start_page_prog, .-flash_start_page_prog + .align 2 + .type queue_prog_cmd, %function +queue_prog_cmd: + stp x29, x30, [sp, -32]! + add x29, sp, 0 + str x19, [sp,16] + mov x19, x0 + mov w0, 16 + ldr w1, [x19,40] + ldr x2, [x19,8] + ldr x3, [x19,24] + bl flash_start_page_prog + adrp x0, .LANCHOR0 + ldr w4, [x19,40] + add x1, x0, :lo12:.LANCHOR0 + ldrb w2, [x1,3909] + cmp w2, 255 + beq .L2138 + ubfx x4, x4, 21, 3 + add x1, x1, 784 +.L2140: + add x3, x1, x2, lsl 6 + ldr w5, [x3,40] + ubfx x5, x5, 21, 3 + cmp w4, w5 + bne .L2139 + ldrb w5, [x3,58] + add x3, x3, 48 + cmp w5, 6 + bne .L2139 + mov w1, 3 + strb w1, [x3,10] + b .L2138 +.L2139: + lsl x2, x2, 6 + ldrb w2, [x1,x2] + cmp w2, 255 + bne .L2140 +.L2138: + mov w1, 3 + strb w1, [x19,58] + mov w1, 1 + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x19,59] + mov w1, -1 + add x0, x0, 3909 + strb w1, [x19] + mov x1, x19 + bl buf_add_tail + ldr x19, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size queue_prog_cmd, .-queue_prog_cmd + .align 2 + .global sblk_prog_page + .type sblk_prog_page, %function +sblk_prog_page: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + str x27, [sp,80] + mov x19, x0 + uxtb w20, w1 + ldrh w0, [x0,50] + cbz w0, .L2146 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2146 + adrp x0, .LC163 + ldr w1, [x19,40] + add x0, x0, :lo12:.LC163 + mov w2, w20 + bl printk +.L2146: + adrp x21, .LANCHOR0 + adrp x24, .LANCHOR3 + add x21, x21, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LANCHOR3 + mov w22, 0 + add x26, x21, 784 + add x24, x24, 296 +.L2147: + cbz w20, .L2173 + ldrb w25, [x19] + ldr w23, [x19,40] +.L2148: + mov w0, w23 + mov w1, 1 + bl queue_lun_state + cbz w0, .L2174 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2148 +.L2174: + cmp w20, 1 + beq .L2150 + ldrb w0, [x21,781] + cbnz w0, .L2151 +.L2150: + mov x0, x19 + bl queue_prog_cmd + b .L2152 +.L2151: + ldrb w0, [x19] + ubfx x27, x23, 21, 3 + cmp w0, 255 + bne .L2153 + adrp x0, .LC0 + mov x1, x24 + add x0, x0, :lo12:.LC0 + mov w2, 489 + bl printk +.L2153: + ldrb w0, [x19] + add x0, x26, x0, lsl 6 + ldr w4, [x0,40] + ubfx x0, x4, 21, 3 + cmp w27, w0 + bne .L2154 + ldrh w3, [x21,3356] + mov w1, 21 + ldrb w6, [x21,3354] + mov w27, 1 + sub w1, w1, w3 + lsr w0, w23, w3 + sub w6, w6, #1 + lsl w1, w27, w1 + sub w1, w1, #1 + lsl w2, w27, w3 + uxth w7, w6 + sub w2, w2, #1 + and w5, w7, w0 + lsr w0, w4, w3 + uxth w1, w1 + and w3, w7, w0 + and w3, w1, w3 + and w0, w1, w5 + cmp w0, w3 + uxth w2, w2 + beq .L2154 + and w23, w2, w23 + and w2, w2, w4 + cmp w23, w2 + bne .L2154 + cmp w22, w6 + beq .L2154 + ldr w1, [x19,40] + mov w0, 17 + ldr x2, [x19,8] + add w22, w22, w27 + ldr x3, [x19,24] + bl flash_start_page_prog + strb w27, [x19,59] + mov w0, 8 + strb w0, [x19,58] + mov w0, -1 + mov x1, x19 + strb w0, [x19] + add x0, x21, 3909 + bl buf_add_tail + b .L2152 +.L2154: + mov x0, x19 + mov w22, 0 + bl queue_prog_cmd +.L2152: + sbfiz x19, x25, 6, 32 + sub w20, w20, #1 + add x19, x26, x19 + b .L2147 +.L2173: + mov w0, w20 + 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 sblk_prog_page, .-sblk_prog_page + .align 2 + .global ftl_flush + .type ftl_flush, %function +ftl_flush: + stp x29, x30, [sp, -32]! + adrp x2, .LANCHOR0 + add x29, sp, 0 + add x0, x2, :lo12:.LANCHOR0 + stp x19, x20, [sp,16] + mov x19, x2 + adrp x20, .LANCHOR4 + ldrb w1, [x0,2857] + cbz w1, .L2176 + add x2, x20, :lo12:.LANCHOR4 + add x0, x0, 784 + ldrb w2, [x2,1282] + add x0, x0, x2, lsl 6 + bl sblk_prog_page +.L2176: + add x2, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR4 + mov w0, -1 + strb wzr, [x2,2857] + strb w0, [x20,1282] + bl sblk_wait_write_queue_completed + bl ftl_write_completed + mov w0, -1 + bl ftl_vpn_decrement + ldp x19, x20, [sp,16] + ldp x29, x30, [sp], 32 + ret + .size ftl_flush, .-ftl_flush + .align 2 + .global zftl_cache_flush + .type zftl_cache_flush, %function +zftl_cache_flush: + adrp x0, .LANCHOR0+2857 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldrb w0, [x0,#:lo12:.LANCHOR0+2857] + cbz w0, .L2180 + bl timer_get_time + adrp x1, .LANCHOR4+1284 + ldr w1, [x1,#:lo12:.LANCHOR4+1284] + add w1, w1, 100 + cmp w0, w1 + bls .L2180 + bl ftl_flush +.L2180: + ldp x29, x30, [sp], 16 + ret + .size zftl_cache_flush, .-zftl_cache_flush + .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: @@ -12761,14 +13395,14 @@ flash_prog_page_en: stp x27, x28, [sp,80] mov w20, w1 mov x23, x2 - ldrb w0, [x0,98] + ldrb w0, [x0,114] mov x22, x3 mov w24, w4 uxtb w25, w5 cmp w0, w21 ubfx x28, x20, 24, 2 mov x19, x6 - bhi .L2054 + bhi .L2185 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 @@ -12776,40 +13410,40 @@ flash_prog_page_en: add x1, x1, 312 mov w2, 473 bl printk -.L2054: +.L2185: add x2, x19, :lo12:.LANCHOR0 mov w26, w20 add x0, x2, x21, sxtw - ldrb w27, [x0,200] - cbnz w28, .L2055 - ldrb w0, [x2,97] - cbz w0, .L2056 - ldrb w0, [x2,208] - cbz w0, .L2055 -.L2056: + ldrb w27, [x0,216] + cbnz w28, .L2186 + ldrb w0, [x2,113] + cbz w0, .L2187 + ldrb w0, [x2,224] + cbz w0, .L2186 +.L2187: add x6, x19, :lo12:.LANCHOR0 - ldrh w26, [x6,210] - ldrb w1, [x6,208] + ldrh w26, [x6,226] + ldrb w1, [x6,224] udiv w2, w20, w26 mul w26, w2, w26 sub w0, w20, w26 - cbz w1, .L2057 + cbz w1, .L2188 add w26, w26, w0, lsl 1 - b .L2055 -.L2057: - add x6, x6, 212 + b .L2186 +.L2188: + add x6, x6, 228 ldrh w0, [x6,w0,uxtw 1] add w26, w0, w26 -.L2055: +.L2186: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2058 - adrp x0, .LC152 + tbz x0, 4, .L2189 + adrp x0, .LC164 mov w1, w27 - add x0, x0, :lo12:.LC152 + add x0, x0, :lo12:.LC164 mov w2, w20 bl printk -.L2058: +.L2189: mov w1, w26 mov w0, w27 mov x2, x23 @@ -12817,52 +13451,52 @@ flash_prog_page_en: mov w4, w24 bl flash_prog_page mov w26, w0 - cbz w25, .L2059 + cbz w25, .L2190 adrp x19, .LANCHOR4 mov w0, w21 add x25, x19, :lo12:.LANCHOR4 mov w1, w20 mov w4, w24 - ldr x2, [x25,1216] - ldr x3, [x25,1224] + ldr x2, [x25,1264] + ldr x3, [x25,1272] bl flash_read_page_en cmp w0, 512 - beq .L2060 + beq .L2191 cmn w0, #1 - beq .L2060 - ldr x0, [x25,1216] + beq .L2191 + ldr x0, [x25,1264] ldr w1, [x23] ldr w0, [x0] cmp w1, w0 - bne .L2060 - ldr x0, [x25,1224] + bne .L2191 + ldr x0, [x25,1272] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L2059 -.L2060: + beq .L2190 +.L2191: add x19, x19, :lo12:.LANCHOR4 mov w2, 4 - adrp x0, .LC153 + adrp x0, .LC165 mov w3, w2 - add x0, x0, :lo12:.LC153 - ldr x1, [x19,1224] + add x0, x0, :lo12:.LC165 + ldr x1, [x19,1272] bl rknand_print_hex mov w2, 4 - adrp x0, .LC154 - ldr x1, [x19,1216] - add x0, x0, :lo12:.LC154 + adrp x0, .LC166 + ldr x1, [x19,1264] + add x0, x0, :lo12:.LC166 mov w3, w2 bl rknand_print_hex - b .L2061 -.L2059: + b .L2192 +.L2190: cmn w26, #1 mov w0, w26 - bne .L2062 -.L2061: - adrp x0, .LC155 + bne .L2193 +.L2192: + adrp x0, .LC167 mov w1, w20 - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC167 bl printk adrp x1, .LANCHOR3 adrp x0, .LC0 @@ -12872,7 +13506,7 @@ flash_prog_page_en: mov w2, 499 bl printk mov w0, -1 -.L2062: +.L2193: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -12882,133 +13516,6 @@ flash_prog_page_en: ret .size flash_prog_page_en, .-flash_prog_page_en .align 2 - .global ftl_test_block - .type ftl_test_block, %function -ftl_test_block: - stp x29, x30, [sp, -112]! - add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR4 - adrp x26, .LANCHOR5 - add x25, x25, :lo12:.LANCHOR4 - add x26, x26, :lo12:.LANCHOR5 - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - mov w27, 0 - adrp x28, .LC156 - uxth w23, w0 - str wzr, [x26,256] - add x0, x25, 1280 - str wzr, [x25,1280] - mov w21, w27 - add x28, x28, :lo12:.LC156 - str x0, [x29,104] - add x26, x26, 256 -.L2076: - adrp x20, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,3326] - cmp w1, w21 - bls .L2085 - mov w24, 0 -.L2086: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,3312] - cmp w0, w24 - bls .L2101 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2077 - mov x0, x28 - mov w1, w23 - bl printk -.L2077: - add x0, x20, :lo12:.LANCHOR0 - ldrb w19, [x0,3312] - madd w19, w23, w19, w24 - uxth w19, w19 - cbnz w21, .L2078 - ldr x0, [x0,192] - ldrb w0, [x0,47] - cmp w0, w19 - bcs .L2079 -.L2078: - uxtb w22, w21 - mov w1, w19 - mov w0, w22 - bl flash_check_bad_block - cbnz w0, .L2079 - add x4, x20, :lo12:.LANCHOR0 - mov w0, w22 - mov w1, w27 - str x4, [x29,96] - ldrh w3, [x4,3324] - mul w25, w19, w3 - mov w2, w25 - bl flash_erase_block_en - ldr x4, [x29,96] - cbz w0, .L2080 - ldrb w0, [x4,3225] - cmp w0, 2 - bne .L2100 - ldrb w0, [x4,97] - cbz w0, .L2100 - mov w0, w22 - mov w1, 1 - mov w2, w25 - bl flash_erase_block_en - cbz w0, .L2082 - b .L2100 -.L2080: - cbz w27, .L2083 -.L2082: - add x0, x20, :lo12:.LANCHOR0 - mov w27, 1 - ldrb w0, [x0,3225] - add w25, w25, w0, lsl 24 -.L2083: - add x4, x20, :lo12:.LANCHOR0 - ldr x2, [x29,104] - mov w0, w22 - mov w1, w25 - mov x3, x26 - mov w5, 1 - ldrb w4, [x4,2816] - bl flash_prog_page_en - cbz w0, .L2079 -.L2100: - mov w0, w22 - mov w1, w19 - bl flash_mask_bad_block -.L2079: - add w24, w24, 1 - uxth w24, w24 - b .L2086 -.L2101: - add w21, w21, 1 - uxth w21, w21 - b .L2076 -.L2085: - cbz w27, .L2087 - ldr x0, [x0,64] - add x23, x0, x23, uxth 2 - ldrb w0, [x23,2] - mov w1, 2 - bfi w0, w1, 3, 2 - strb w0, [x23,2] -.L2087: - 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 - .size ftl_test_block, .-ftl_test_block - .align 2 .global ftl_prog_page .type ftl_prog_page, %function ftl_prog_page: @@ -13030,19 +13537,19 @@ ftl_prog_page: bl flash_prog_page_en cmn w0, #1 mov w19, w0 - bne .L2103 + bne .L2207 adrp x2, .LANCHOR3 adrp x0, .LC0 add x1, x2, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 add x1, x1, 336 - mov w2, 2052 + mov w2, 2147 bl printk - adrp x0, .LC155 + adrp x0, .LC167 mov w1, w20 - add x0, x0, :lo12:.LC155 + add x0, x0, :lo12:.LC167 bl printk -.L2103: +.L2207: mov w0, w19 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 64 @@ -13057,7 +13564,7 @@ ftl_info_flush: add x29, sp, 0 stp x21, x22, [sp,32] adrp x21, .LANCHOR0 - adrp x22, .LANCHOR5 + adrp x22, .LANCHOR4 stp x25, x26, [sp,64] mov w26, w0 add x0, x21, :lo12:.LANCHOR0 @@ -13065,183 +13572,183 @@ ftl_info_flush: stp x19, x20, [sp,16] stp x27, x28, [sp,80] adrp x23, .LANCHOR3 - add x19, x22, :lo12:.LANCHOR5 - ldrb w2, [x0,2816] - adrp x24, .LC157 + add x19, x22, :lo12:.LANCHOR4 + ldrb w2, [x0,2832] + adrp x24, .LC168 add x23, x23, :lo12:.LANCHOR3 - add x0, x19, 576 + add x0, x19, 1344 lsl w2, w2, 1 mov w25, 0 - add x24, x24, :lo12:.LC157 + add x24, x24, :lo12:.LC168 add x23, x23, 352 bl ftl_memset -.L2105: +.L2209: add x0, x21, :lo12:.LANCHOR0 - ldrb w27, [x19,832] - ldrh w20, [x19,834] - ldr x2, [x0,2848] - ldrh w28, [x0,3324] + ldrb w27, [x19,1600] + ldrh w20, [x19,1602] + ldr x2, [x0,2864] + ldrh w28, [x0,3366] ldr w1, [x2,4] add w1, w1, 1 str w1, [x2,4] - str w26, [x19,576] - ldr x3, [x0,2848] + str w26, [x19,1344] + ldr x3, [x0,2864] ldr w0, [x3,4] - str w0, [x19,580] + str w0, [x19,1348] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2106 + tbz x0, 12, .L2210 ldr w3, [x3,4] mov x0, x24 mov w1, w27 mov w2, w20 bl printk -.L2106: +.L2210: add x1, x21, :lo12:.LANCHOR0 - ldrh w0, [x19,834] - ldrh w1, [x1,3276] + ldrh w0, [x19,1602] + ldrh w1, [x1,3316] cmp w1, w0 - bhi .L2107 + bhi .L2211 adrp x20, .LC0 add x20, x20, :lo12:.LC0 -.L2112: - ldrb w1, [x19,833] +.L2216: + ldrb w1, [x19,1601] add w1, w1, 1 uxtb w1, w1 - strb w1, [x19,833] + strb w1, [x19,1601] cmp w1, 7 - bls .L2108 + bls .L2212 mov x1, 0 -.L2111: +.L2215: add x0, x21, :lo12:.LANCHOR0 uxth w25, w1 - ldr x2, [x0,192] + ldr x2, [x0,208] add w0, w1, 8 add x0, x2, x0, sxtw ldrb w2, [x0,32] add w0, w2, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2109 + bhi .L2213 mov x0, x20 mov x1, x23 - mov w2, 672 + mov w2, 742 bl printk - b .L2110 -.L2109: + b .L2214 +.L2213: cmp w2, 255 - bne .L2110 + bne .L2214 add x1, x1, 1 cmp x1, 8 - bne .L2111 + bne .L2215 mov w25, w1 -.L2110: - strb w25, [x19,833] +.L2214: + strb w25, [x19,1601] mov w25, 1 -.L2108: +.L2212: add x27, x21, :lo12:.LANCHOR0 - ldrb w1, [x19,833] - ldr x0, [x27,192] + ldrb w1, [x19,1601] + ldr x0, [x27,208] add x1, x0, x1 ldrb w2, [x1,40] - strb w2, [x19,832] + strb w2, [x19,1600] cmp w2, 255 - beq .L2112 - ldrh w20, [x27,3324] + beq .L2216 + ldrh w20, [x27,3366] mov w0, 0 mul w20, w2, w20 mov w1, w20 bl flash_erase_block - ldrb w4, [x27,2816] + ldrb w4, [x27,2832] mov w1, w20 mov w0, 0 - add x2, x19, 896 - add x3, x19, 576 + add x2, x19, 1664 + add x3, x19, 1344 add w20, w20, 1 bl ftl_prog_page mov w0, 1 - strh w0, [x19,834] - b .L2113 -.L2107: + strh w0, [x19,1602] + b .L2217 +.L2211: madd w20, w27, w28, w20 - cbnz w0, .L2113 + cbnz w0, .L2217 mov w1, w20 bl flash_erase_block -.L2113: +.L2217: add x4, x21, :lo12:.LANCHOR0 mov w1, w20 mov w0, 0 - add x2, x19, 896 - add x3, x19, 576 - ldrb w4, [x4,2816] + add x2, x19, 1664 + add x3, x19, 1344 + ldrb w4, [x4,2832] bl ftl_prog_page cmn w0, #1 - ldrh w1, [x19,834] - adrp x0, .LANCHOR6 + ldrh w1, [x19,1602] + adrp x0, .LANCHOR5 add w1, w1, 1 - strh w1, [x19,834] - beq .L2114 - add x1, x0, :lo12:.LANCHOR6 - ldrb w1, [x1,-128] - cbz w1, .L2115 -.L2114: - add x0, x0, :lo12:.LANCHOR6 - strb wzr, [x0,-128] - b .L2105 -.L2115: - cbnz w25, .L2116 -.L2124: - add x22, x22, :lo12:.LANCHOR5 - ldrb w0, [x22,832] + strh w1, [x19,1602] + beq .L2218 + add x1, x0, :lo12:.LANCHOR5 + ldrb w1, [x1,640] + cbz w1, .L2219 +.L2218: + add x0, x0, :lo12:.LANCHOR5 + strb wzr, [x0,640] + b .L2209 +.L2219: + cbnz w25, .L2220 +.L2228: + add x22, x22, :lo12:.LANCHOR4 + ldrb w0, [x22,1600] cmp w0, 255 - bne .L2118 + bne .L2222 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 708 + mov w2, 778 add x1, x1, 352 add x0, x0, :lo12:.LC0 bl printk - b .L2118 -.L2116: - ldrb w19, [x19,833] + b .L2222 +.L2220: + ldrb w19, [x19,1601] adrp x20, .LANCHOR3 adrp x23, .LC0 add x20, x20, :lo12:.LANCHOR3 add w19, w19, 1 add x23, x23, :lo12:.LC0 add x20, x20, 352 -.L2119: +.L2223: cmp w19, 7 - bhi .L2124 + bhi .L2228 add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,192] + ldr x1, [x0,208] add w0, w19, 8 add x0, x1, x0, sxtw ldrb w24, [x0,32] add w0, w24, 127 uxtb w0, w0 cmp w0, 125 - bhi .L2120 + bhi .L2224 mov x0, x23 mov x1, x20 - mov w2, 701 + mov w2, 771 bl printk - b .L2121 -.L2120: + b .L2225 +.L2224: cmp w24, 255 - beq .L2122 -.L2121: + beq .L2226 +.L2225: add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,3324] + ldrh w1, [x0,3366] mov w0, 0 mul w1, w24, w1 bl flash_erase_block -.L2122: +.L2226: add w19, w19, 1 uxth w19, w19 - b .L2119 -.L2118: + b .L2223 +.L2222: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -13260,53 +13767,53 @@ ftl_info_blk_init: mov w2, 16384 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR6 + adrp x19, .LANCHOR0 + adrp x20, .LANCHOR5 stp x23, x24, [sp,48] - add x23, x20, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR6 + add x23, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR5 stp x21, x22, [sp,32] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - adrp x21, .LANCHOR5 - strb w0, [x19,-128] + adrp x21, .LANCHOR4 + strb w0, [x20,640] ldrh w1, [x23,56] - add x22, x21, :lo12:.LANCHOR5 - add x24, x22, 896 - strb w0, [x19,-126] + add x22, x21, :lo12:.LANCHOR4 + add x24, x22, 1664 + strb w0, [x20,642] mov x0, x24 - strb wzr, [x19,-127] + strb wzr, [x20,641] add x1, x24, x1, lsl 2 - str x1, [x23,2848] + str x1, [x23,2864] mov w1, 0 str x24, [x23,64] - adrp x26, .LC158 + adrp x26, .LC169 adrp x27, .LANCHOR2 bl ftl_memset - add x26, x26, :lo12:.LC158 - sub x0, x19, #64 + add x26, x26, :lo12:.LC169 + add x0, x20, 704 mov w1, 0 mov w2, 16384 - mov w19, 7 + mov w20, 7 bl ftl_memset - strb wzr, [x22,833] - ldr x0, [x23,192] - add x23, x22, 576 - strh wzr, [x22,834] + strb wzr, [x22,1601] + ldr x0, [x23,208] + add x23, x22, 1344 + strh wzr, [x22,1602] ldrb w0, [x0,40] - strb w0, [x22,832] -.L2142: - add x5, x20, :lo12:.LANCHOR0 - add w0, w19, 8 - sxth w25, w19 - ldr x1, [x5,192] + strb w0, [x22,1600] +.L2246: + add x5, x19, :lo12:.LANCHOR0 + add w0, w20, 8 + sxth w25, w20 + ldr x1, [x5,208] add x0, x1, x0, sxtw ldrb w1, [x0,32] cmp w1, 255 - beq .L2138 - ldrh w22, [x5,3324] + beq .L2242 + ldrh w22, [x5,3366] mov w0, 0 - ldrb w4, [x5,2816] + ldrb w4, [x5,2832] mov x2, x24 mov x3, x23 str x5, [x29,104] @@ -13316,168 +13823,133 @@ ftl_info_blk_init: cmn w0, #1 mov w28, w0 ldr x5, [x29,104] - bne .L2139 - ldrb w4, [x5,2816] + bne .L2243 + ldrb w4, [x5,2832] mov w0, 0 add w1, w22, 1 mov x2, x24 mov x3, x23 bl ftl_read_page mov w28, w0 -.L2139: +.L2243: ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2140 - add x0, x20, :lo12:.LANCHOR0 - mov w1, w19 + tbz x0, 12, .L2244 + add x0, x19, :lo12:.LANCHOR0 + mov w1, w20 mov w2, w28 - mov w3, 580 - ldr x4, [x0,2848] + mov w3, 672 + ldr x4, [x0,2864] mov x0, x26 ldr w4, [x4] bl printk -.L2140: +.L2244: cmn w28, #1 - beq .L2138 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + beq .L2242 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - beq .L2155 -.L2138: - sub w19, w19, #1 - cmn w19, #1 - bne .L2142 + beq .L2254 +.L2242: + sub w20, w20, #1 + cmn w20, #1 + bne .L2246 mov w25, 0 - b .L2141 -.L2155: - mov w19, w25 -.L2141: + b .L2245 +.L2254: + mov w20, w25 +.L2245: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2143 - add x0, x20, :lo12:.LANCHOR0 - mov w1, w19 + tbz x0, 12, .L2247 + add x0, x19, :lo12:.LANCHOR0 + mov w1, w20 mov w2, 4800 - ldr x3, [x0,2848] - adrp x0, .LC159 - add x0, x0, :lo12:.LC159 + ldr x3, [x0,2864] + adrp x0, .LC170 + add x0, x0, :lo12:.LC170 ldr w3, [x3] bl printk -.L2143: - cmn w19, #1 - bne .L2144 - add x0, x21, :lo12:.LANCHOR5 +.L2247: + cmn w20, #1 + bne .L2248 + add x0, x21, :lo12:.LANCHOR4 mov w1, 0 - add x0, x0, 896 + add x19, x19, :lo12:.LANCHOR0 + add x0, x0, 1664 mov w2, 16384 - add x20, x20, :lo12:.LANCHOR0 bl ftl_memset + ldr x1, [x19,2864] mov w0, 21574 - ldr x1, [x20,2848] movk w0, 0x494c, lsl 16 str w0, [x1] - mov w0, w19 - b .L2145 -.L2144: - add x26, x20, :lo12:.LANCHOR0 - add x23, x21, :lo12:.LANCHOR5 + mov w0, 8 + movk w0, 0x6, lsl 16 + ldr x1, [x19,2864] + str w0, [x1,12] + mov w0, w20 + b .L2249 +.L2248: + add x26, x19, :lo12:.LANCHOR0 + add x23, x21, :lo12:.LANCHOR4 add w0, w25, 8 - add x24, x23, 896 + add x24, x23, 1664 mov x2, x24 mov w4, 4 - ldr x1, [x26,192] + ldr x1, [x26,208] add x0, x1, x0, sxtw - strb w25, [x23,833] - add x25, x23, 576 + strb w25, [x23,1601] + add x25, x23, 1344 ldrb w1, [x0,32] mov x3, x25 mov w0, 0 - strb w1, [x23,832] + strb w1, [x23,1600] bl flash_get_last_written_page sxth w22, w0 add w0, w0, 1 - uxth w19, w0 - ldrb w0, [x23,832] - ldrh w23, [x26,3324] + uxth w20, w0 + ldrb w0, [x23,1600] + ldrh w23, [x26,3366] mul w23, w0, w23 -.L2146: - tbnz w22, #31, .L2151 - add x26, x20, :lo12:.LANCHOR0 +.L2250: + tbnz w22, #31, .L2253 + add x26, x19, :lo12:.LANCHOR0 mov w0, 0 add w1, w22, w23 mov x2, x24 mov x3, x25 - ldrb w4, [x26,2816] + ldrb w4, [x26,2832] bl ftl_read_page cmn w0, #1 - beq .L2147 - ldr x0, [x26,2848] + beq .L2251 + ldr x0, [x26,2864] ldr w1, [x0] mov w0, 21574 movk w0, 0x494c, lsl 16 cmp w1, w0 - bne .L2147 -.L2151: - add x20, x20, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR5 - ldr x0, [x20,2848] - strh w19, [x21,834] - ldr w2, [x0,16] - cmp w2, 2048 - bls .L2149 - lsr w1, w2, 11 - ldr w3, [x0,20] - add w3, w3, w1 - sub w1, w2, w1, lsl 11 - str w3, [x0,20] - str w1, [x0,16] - b .L2149 -.L2147: + bne .L2251 +.L2253: + add x21, x21, :lo12:.LANCHOR4 + add x19, x19, :lo12:.LANCHOR0 + strh w20, [x21,1602] + bl ftl_tmp_into_update + ldr x1, [x19,2864] + 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 + mov w0, 0 + b .L2249 +.L2251: sub w22, w22, #1 sxth w22, w22 - b .L2146 -.L2149: - ldr w2, [x0,24] - cmp w2, 2048 - bls .L2152 - lsr w1, w2, 11 - ldr w3, [x0,28] - add w3, w3, w1 - sub w1, w2, w1, lsl 11 - str w3, [x0,28] - str w1, [x0,24] -.L2152: - ldr w2, [x0,32] - cmp w2, 1024 - bls .L2153 - lsr w1, w2, 10 - ldr w3, [x0,36] - add w3, w3, w1 - sub w1, w2, w1, lsl 10 - str w3, [x0,36] - str w1, [x0,32] -.L2153: - ldr w2, [x0,40] - cmp w2, 1024 - bls .L2154 - lsr w1, w2, 10 - ldr w3, [x0,44] - add w3, w3, w1 - sub w1, w2, w1, lsl 10 - str w3, [x0,44] - str w1, [x0,40] -.L2154: - ldr w1, [x0,64] - add w1, w1, 1 - str w1, [x0,64] - mov w0, 0 - bl ftl_info_flush - mov w0, 0 - bl ftl_info_flush - mov w0, 0 -.L2145: + b .L2250 +.L2249: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13501,79 +13973,79 @@ ftl_ext_info_flush: mov w1, 100 udiv w0, w0, w1 add x1, x22, :lo12:.LANCHOR0 - ldr x1, [x1,80] + ldr x1, [x1,88] ldr w3, [x1,520] cmp w0, w3 - bls .L2173 + bls .L2272 ldr w2, [x1,12] sub w2, w2, w3 add w2, w2, w0 str w2, [x1,12] - b .L2186 -.L2173: - bcs .L2174 -.L2186: + b .L2285 +.L2272: + bcs .L2273 +.L2285: str w0, [x1,520] -.L2174: +.L2273: adrp x23, .LANCHOR3 - adrp x24, .LANCHOR6 + adrp x19, .LANCHOR4 add x23, x23, :lo12:.LANCHOR3 - add x24, x24, :lo12:.LANCHOR6 + add x19, x19, :lo12:.LANCHOR4 mov w0, 0 add x23, x23, 368 - sub x25, x24, #64 + add x19, x19, 1344 bl ftl_total_vpn_update -.L2175: - adrp x19, .LANCHOR5 - add x19, x19, :lo12:.LANCHOR5 - add x19, x19, 576 -.L2178: +.L2274: + adrp x24, .LANCHOR5 + add x24, x24, :lo12:.LANCHOR5 + add x25, x24, 704 +.L2277: add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,2848] + ldr x0, [x2,2864] ldr w1, [x0,56] add w1, w1, 1 str w1, [x0,56] ldrh w1, [x0,140] - ldrh w0, [x2,3276] + ldrh w0, [x2,3316] cmp w1, w0 - bcc .L2176 + bcc .L2275 bl ftl_ext_alloc_new_blk -.L2176: +.L2275: add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + ldr x0, [x0,2864] ldrh w1, [x0,130] mov w0, 65535 cmp w1, w0 - bne .L2177 + bne .L2276 adrp x0, .LC0 mov x1, x23 add x0, x0, :lo12:.LC0 - mov w2, 1639 + mov w2, 1747 bl printk -.L2177: +.L2276: add x21, x22, :lo12:.LANCHOR0 mov w0, 21 mov w1, 1 - ldr x2, [x21,2848] - ldrh w20, [x21,3314] + ldr x2, [x21,2864] + ldrh w20, [x21,3356] ldrh w3, [x2,130] sub w20, w0, w20 ldrh w0, [x2,140] asr w26, w3, w20 lsl w20, w1, w20 sub w20, w20, #1 - ldrb w2, [x21,2816] + ldrb w2, [x21,2832] and w3, w20, w3 - ldrh w20, [x21,3324] + ldrh w20, [x21,3366] mov w1, 0 lsl w2, w2, 1 madd w20, w3, w20, w0 mov x0, x19 bl ftl_memset str wzr, [x19] - ldr x0, [x21,2848] + ldr x0, [x21,2864] uxth w20, w20 - ldrb w4, [x21,2816] + ldrb w4, [x21,2832] mov w1, w20 mov x2, x25 mov x3, x19 @@ -13581,23 +14053,23 @@ ftl_ext_info_flush: str w0, [x19,4] mov w0, w26 bl ftl_prog_page - ldr x2, [x21,2848] + ldr x2, [x21,2864] ldrh w1, [x2,140] add w1, w1, 1 uxth w1, w1 strh w1, [x2,140] cmp w1, 1 - beq .L2178 + beq .L2277 cmn w0, #1 - beq .L2179 - ldrb w0, [x24,-126] - cbz w0, .L2180 -.L2179: - adrp x0, .LANCHOR6 - add x0, x0, :lo12:.LANCHOR6 - strb wzr, [x0,-126] - b .L2175 -.L2180: + beq .L2278 + ldrb w0, [x24,642] + cbz w0, .L2279 +.L2278: + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + strb wzr, [x0,642] + b .L2274 +.L2279: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13620,22 +14092,22 @@ ftl_ext_info_init: stp x21, x22, [sp,32] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - strh wzr, [x1,3856] - adrp x21, .LANCHOR6 - ldr x0, [x1,2848] - adrp x22, .LANCHOR5 - ldrh w23, [x1,3314] + strh wzr, [x1,3904] + adrp x21, .LANCHOR5 + ldr x0, [x1,2864] + adrp x22, .LANCHOR4 + ldrh w23, [x1,3356] mov w1, 21 - add x2, x21, :lo12:.LANCHOR6 - add x3, x22, :lo12:.LANCHOR5 + add x2, x21, :lo12:.LANCHOR5 + add x3, x22, :lo12:.LANCHOR4 ldrh w0, [x0,130] sub w23, w1, w23 lsl w20, w20, w23 - sub x2, x2, #64 + add x2, x2, 704 asr w23, w0, w23 sub w20, w20, #1 and w20, w20, w0 - add x3, x3, 576 + add x3, x3, 1344 uxtb w23, w23 mov w1, w20 mov w0, w23 @@ -13644,71 +14116,75 @@ ftl_ext_info_init: adrp x0, .LANCHOR2 mov w24, w25 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2188 + tbz x0, 12, .L2287 adrp x1, .LANCHOR3 - adrp x0, .LC108 + adrp x0, .LC115 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC108 + add x0, x0, :lo12:.LC115 add x1, x1, 392 - mov w2, 1683 + mov w2, 1791 mov w3, w25 bl printk -.L2188: - add x21, x21, :lo12:.LANCHOR6 - add x22, x22, :lo12:.LANCHOR5 +.L2287: + add x21, x21, :lo12:.LANCHOR5 + add x22, x22, :lo12:.LANCHOR4 mov w26, w25 - sub x21, x21, #64 - add x22, x22, 576 -.L2189: - tbnz w26, #31, .L2194 + add x21, x21, 704 + add x22, x22, 1344 +.L2288: + tbnz w26, #31, .L2293 add x27, x19, :lo12:.LANCHOR0 mov w0, w23 mov x2, x21 mov x3, x22 - ldrh w1, [x27,3324] - ldrb w4, [x27,2816] + ldrh w1, [x27,3366] + ldrb w4, [x27,2832] madd w1, w20, w1, w26 bl flash_read_page_en cmp w0, 512 - beq .L2190 + beq .L2289 cmn w0, #1 - beq .L2190 - ldr x0, [x27,80] + beq .L2289 + ldr x0, [x27,88] ldr w1, [x0] mov w0, 20038 movk w0, 0x4549, lsl 16 cmp w1, w0 - bne .L2190 -.L2194: + bne .L2289 +.L2293: bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + ldr x0, [x0,2864] ldrh w1, [x0,140] cmp w1, w25 - bgt .L2192 + bgt .L2291 add w24, w24, 1 strh w24, [x0,140] bl ftl_ext_info_flush - b .L2192 -.L2190: + b .L2291 +.L2289: sub w26, w26, #1 sxth w26, w26 - b .L2189 -.L2192: + b .L2288 +.L2291: add x19, x19, :lo12:.LANCHOR0 - ldr x20, [x19,80] + ldr x20, [x19,88] bl timer_get_time mov w1, 100 udiv w0, w0, w1 str w0, [x20,520] - ldr x20, [x19,80] + ldr x20, [x19,88] bl timer_get_time str w0, [x20,604] - ldr x0, [x19,80] - str wzr, [x0,608] + ldr x1, [x19,88] mov w0, -1 - strh w0, [x19,3858] + strh w0, [x19,3240] + strh w0, [x1,584] + strh w0, [x1,586] + strh w0, [x1,588] + strh w0, [x1,590] mov w0, 0 + str wzr, [x1,608] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -13718,566 +14194,6 @@ ftl_ext_info_init: ret .size ftl_ext_info_init, .-ftl_ext_info_init .align 2 - .global ftl_low_format - .type ftl_low_format, %function -ftl_low_format: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR3 - stp x21, x22, [sp,32] - add x20, x20, :lo12:.LANCHOR3 - adrp x22, .LC0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w21, 8 - adrp x24, .LANCHOR0 - add x22, x22, :lo12:.LC0 - add x20, x20, 416 -.L2207: - add x0, x24, :lo12:.LANCHOR0 - adrp x19, .LANCHOR0 - ldr x0, [x0,192] - add x0, x0, x21, sxtw - ldrb w23, [x0,32] - add w0, w23, 127 - uxtb w0, w0 - cmp w0, 125 - bhi .L2205 - mov x0, x22 - mov x1, x20 - mov w2, 1854 - bl printk -.L2205: - cmp w23, 255 - beq .L2206 - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,3324] - mov w0, 0 - mul w1, w23, w1 - bl flash_erase_block -.L2206: - add w21, w21, 1 - cmp w21, 16 - bne .L2207 - bl sblk_init - bl ftl_info_blk_init - adrp x0, .LANCHOR5 - mov w1, 0 - add x0, x0, :lo12:.LANCHOR5 - mov w2, 16384 - add x0, x0, 896 - bl ftl_memset - add x1, x19, :lo12:.LANCHOR0 - mov w6, 1 - ldr x0, [x1,2848] - ldrh w5, [x1,56] - ldrh w0, [x0,134] -.L2208: - cmp w0, w5 - bcs .L2242 - add x4, x19, :lo12:.LANCHOR0 - ubfiz x1, x0, 2, 16 - add w0, w0, 1 - ldr x2, [x4,64] - uxth w0, w0 - add x2, x2, x1 - ldrb w3, [x2,2] - and w3, w3, 31 - strb w3, [x2,2] - ldr x2, [x4,64] - add x1, x2, x1 - ldrb w2, [x1,2] - bfi w2, w6, 3, 2 - strb w2, [x1,2] - b .L2208 -.L2242: - add x0, x19, :lo12:.LANCHOR0 - mov w1, 21574 - movk w1, 0x494c, lsl 16 - mov w20, 0 - adrp x24, .LANCHOR7 - mov w25, 1 - ldr x2, [x0,2848] - str w1, [x2] - ldr x0, [x0,2848] - strh wzr, [x0,148] -.L2210: - add x21, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,56] - cmp w0, w20 - bls .L2243 - add x0, x24, :lo12:.LANCHOR7 - mov w27, 0 - ubfiz x22, x20, 2, 16 - mov w23, w27 - strh w20, [x0,3264] - mov w0, w20 - bl ftl_test_block - ldrb w28, [x21,3312] - ldrb w4, [x21,3326] - mov w21, w27 - mul w6, w20, w28 - uxth w5, w28 -.L2211: - cmp w21, w4 - bcs .L2215 - mov x26, 0 -.L2216: - cmp w5, w26, uxth - bls .L2244 - add w1, w6, w26 - mov w0, w21 - str x5, [x29,104] - str x4, [x29,112] - str x6, [x29,120] - bl flash_check_bad_block - ldr x6, [x29,120] - ldr x4, [x29,112] - ldr x5, [x29,104] - cbz w0, .L2212 - add x3, x19, :lo12:.LANCHOR0 - add w1, w27, w26 - lsl w1, w25, w1 - ldr x0, [x3,64] - add x0, x0, x22 - ldrb w2, [x0,3] - orr w1, w1, w2 - strb w1, [x0,3] - ldr x1, [x3,2848] - ldrh w0, [x1,148] - add w0, w0, 1 - strh w0, [x1,148] - b .L2213 -.L2212: - add w23, w23, 1 - uxth w23, w23 -.L2213: - add x26, x26, 1 - b .L2216 -.L2244: - add w21, w21, 1 - add w27, w27, w28 - uxth w21, w21 - b .L2211 -.L2215: - cbnz w23, .L2217 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,64] - add x22, x0, x22 - ldrb w0, [x22,2] - orr w0, w0, -32 - strb w0, [x22,2] -.L2217: - add w20, w20, 1 - uxth w20, w20 - b .L2210 -.L2243: - adrp x0, .LANCHOR6 - mov w1, 0 - add x0, x0, :lo12:.LANCHOR6 - mov w2, 16384 - sub x0, x0, #64 - bl ftl_memset - ldr x1, [x21,80] - mov w0, 20038 - movk w0, 0x4549, lsl 16 - mov w6, 3 - mov w7, 15 - str w0, [x1] - mov x1, 0 - ldr x0, [x21,192] - ldrb w4, [x21,3312] - ldrb w20, [x0,47] - udiv w20, w20, w4 - add w20, w20, 1 -.L2221: - add x3, x19, :lo12:.LANCHOR0 - lsl x0, x1, 2 - cmp w4, 1 - csinc w5, w6, wzr, ne - cmp w4, 4 - ldr x2, [x3,64] - add x2, x2, x0 - strb w5, [x2,3] - bne .L2220 - ldr x2, [x3,64] - add x2, x2, x0 - strb w7, [x2,3] -.L2220: - add x2, x19, :lo12:.LANCHOR0 - add x1, x1, 1 - cmp w20, w1, uxth - ldr x5, [x2,2848] - ldrh w3, [x5,148] - add w3, w4, w3 - strh w3, [x5,148] - ldr x3, [x2,64] - add x0, x3, x0 - ldrb w3, [x0,2] - orr w3, w3, -32 - strb w3, [x0,2] - bhi .L2221 - mov w0, 16 - sdiv w4, w0, w4 - ldr x0, [x2,2848] - add w4, w20, w4 - uxth w4, w4 - strh w4, [x0,134] - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2222 - adrp x0, .LC160 - mov w1, 1901 - add x0, x0, :lo12:.LC160 - mov w2, 128 - mov w3, w20 - bl printk -.L2222: - add x21, x19, :lo12:.LANCHOR0 - mov w1, 255 - mov w2, 128 - ldr x0, [x21,2848] - add x0, x0, 160 - bl ftl_memset - ldrb w8, [x21,3312] - mov w10, 21 - ldrh w0, [x21,3314] - ldrb w13, [x21,3326] - uxth w9, w8 - sub w10, w10, w0 - mov w0, 0 - mul w11, w20, w9 - mov w22, w0 - uxth w11, w11 -.L2223: - add x21, x19, :lo12:.LANCHOR0 - ldr x1, [x21,2848] - ldrh w1, [x1,134] - cmp w1, w20 - bls .L2245 - ldr x2, [x21,64] - ubfiz x1, x20, 2, 16 - add w6, w0, w11 - mov w5, 0 - add x2, x2, x1 - mov w4, w5 - uxth w6, w6 - ldrb w3, [x2,2] - orr w3, w3, -32 - strb w3, [x2,2] - ldr x2, [x21,64] - ldr x14, [x21,2848] - add x1, x2, x1 -.L2224: - cmp w13, w4, uxth - bls .L2228 - lsl w12, w4, w10 - mov x3, 0 - uxth w12, w12 -.L2229: - uxth w2, w3 - cmp w2, w9 - bcs .L2246 - ldrb w7, [x1,3] - add w15, w5, w3 - asr w7, w7, w15 - tbnz x7, 0, .L2225 - cmp w8, 1 - mov w7, w6 - bls .L2226 - and w2, w2, 1 - add w2, w6, w2 - uxth w7, w2 -.L2226: - add x15, x14, x22, sxtw 1 - add w22, w22, 1 - add w2, w7, w12 - strh w2, [x15,160] - uxth w22, w22 -.L2225: - add x3, x3, 1 - b .L2229 -.L2246: - add w4, w4, 1 - add w5, w5, w8 - b .L2224 -.L2228: - add w20, w20, 1 - add w0, w0, w9 - uxth w20, w20 - uxth w0, w0 - b .L2223 -.L2245: - ldrh w2, [x21,56] - mov w1, 0 - ldr x0, [x21,72] - lsl w2, w2, 1 - bl ftl_memset - bl zftl_sblk_list_init - ldr x0, [x21,2848] - ldrh w1, [x21,56] - ldrh w2, [x0,134] - strh w22, [x0,112] - sub w1, w1, w2 - strh wzr, [x0,114] - strh w1, [x0,116] - strh wzr, [x0,118] - mov w0, 1 - bl ftl_alloc_sblk - mov w22, w0 - mov w1, 0 - bl ftl_erase_sblk - ldr x1, [x21,2848] - mov w0, w22 - add x1, x1, 672 - bl ftl_get_blk_list_in_sblk - ldr x0, [x21,2848] - ldrh w20, [x0,672] - strh wzr, [x0,690] - mov w0, 65533 - sub w1, w20, #1 - cmp w0, w1, uxth - bcs .L2231 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 416 - mov w2, 1932 - bl printk -.L2231: - add x19, x19, :lo12:.LANCHOR0 - mov w1, 255 - mov w2, 256 - ldr x0, [x19,2848] - add x0, x0, 416 - strh wzr, [x0,280] - bl ftl_memset - ldr x1, [x19,2848] - mov w2, 21 - ldrh w0, [x19,3314] - sub w2, w2, w0 - mov w0, 1 - strh w0, [x1,688] - adrp x0, .LANCHOR7+3266 - asr w2, w20, w2 - strh w20, [x1,692] - strh w2, [x1,694] - ldrh w0, [x0,#:lo12:.LANCHOR7+3266] - strh w22, [x1,416] - strh w0, [x1,698] - bl ftl_alloc_sys_blk - mov w20, w0 - mov w1, 0 - bl ftl_erase_phy_blk - ldr x1, [x19,2848] - ldr x0, [x19,80] - strh w20, [x1,130] - add x0, x0, 16 - mov w1, 2 - bl ftl_open_sblk_init - ldr x0, [x19,80] - mov w1, 3 - add x0, x0, 48 - bl ftl_open_sblk_init - ldr x1, [x19,2848] - ldr x0, [x19,80] - ldrh w2, [x1,134] - add x0, x0, 136 - strh w2, [x0,-10] - mov w2, -1 - strh wzr, [x0,-12] - strh w2, [x0,-56] - strh w2, [x0,-6] - mov w2, -1 - strh wzr, [x0,-16] - str w2, [x0,408] - strh wzr, [x0,-14] - strh w2, [x1,126] - mov w1, 255 - mov w2, 256 - bl ftl_memset - ldr x0, [x19,80] - mov w1, 255 - mov w2, 128 - add x0, x0, 392 - bl ftl_memset - bl ftl_ext_info_flush - mov w0, 0 - bl ftl_info_flush - bl ftl_info_blk_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 x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret - .size ftl_low_format, .-ftl_low_format - .align 2 - .global ftl_re_low_format_test - .type ftl_re_low_format_test, %function -ftl_re_low_format_test: - stp x29, x30, [sp, -48]! - adrp x0, .LC161 - mov w1, 1 - add x29, sp, 0 - add x0, x0, :lo12:.LC161 - stp x19, x20, [sp,16] - str x21, [sp,32] - adrp x19, .LANCHOR0 - bl printk - bl sblk_init - bl ftl_info_blk_init - bl ftl_ext_info_init - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,2848] - ldrh w2, [x0,56] - mov w0, 0 - mov w3, w0 - mov w4, w0 - ldrh w1, [x1,134] -.L2248: - cmp w1, w2 - bcs .L2254 - add x5, x19, :lo12:.LANCHOR0 - ldr x6, [x5,64] - add x6, x6, x1, uxth 2 - ldrb w5, [x6,2] - and w7, w5, 31 - ands w5, w5, 24 - strb w7, [x6,2] - bne .L2249 - add w4, w4, 1 - uxth w4, w4 - b .L2250 -.L2249: - cmp w5, 16 - bne .L2251 - add w3, w3, 1 - uxth w3, w3 - b .L2250 -.L2251: - add w0, w0, 1 - uxth w0, w0 -.L2250: - add w1, w1, 1 - uxth w1, w1 - b .L2248 -.L2254: - add x20, x19, :lo12:.LANCHOR0 - lsl w2, w2, 1 - ldr x1, [x20,2848] - strh w0, [x1,116] - ldr x0, [x20,72] - strh w4, [x1,114] - strh w3, [x1,118] - strh wzr, [x1,122] - strh wzr, [x1,120] - strh wzr, [x1,124] - mov w1, 0 - bl ftl_memset - bl zftl_sblk_list_init - mov w0, 1 - bl ftl_alloc_sblk - mov w21, w0 - mov w1, 0 - bl ftl_erase_sblk - ldr x1, [x20,2848] - mov w0, w21 - add x1, x1, 672 - bl ftl_get_blk_list_in_sblk - ldr x0, [x20,2848] - ldrh w20, [x0,672] - strh wzr, [x0,690] - mov w0, 65533 - sub w1, w20, #1 - cmp w0, w1, uxth - bcs .L2253 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 432 - mov w2, 2004 - bl printk -.L2253: - add x19, x19, :lo12:.LANCHOR0 - mov w1, 255 - mov w2, 256 - ldr x0, [x19,2848] - add x0, x0, 416 - strh wzr, [x0,280] - bl ftl_memset - ldr x0, [x19,2848] - mov w1, 0 - mov w2, 4096 - add x0, x0, 704 - bl ftl_memset - ldr x1, [x19,2848] - lsr w0, w20, 14 - ldrh w2, [x19,56] - and w20, w20, 16383 - strh w0, [x1,694] - mov w0, 1 - strh w0, [x1,688] - adrp x0, .LANCHOR7+3266 - lsl w2, w2, 1 - strh w20, [x1,692] - strh w21, [x1,416] - ldrh w0, [x0,#:lo12:.LANCHOR7+3266] - strh w0, [x1,698] - mov w1, 0 - ldr x0, [x19,72] - bl ftl_memset - ldr x0, [x19,80] - mov w1, 2 - add x0, x0, 16 - bl ftl_open_sblk_init - ldr x0, [x19,80] - mov w1, 3 - add x0, x0, 48 - bl ftl_open_sblk_init - ldr x1, [x19,2848] - ldr x0, [x19,80] - ldrh w2, [x1,134] - add x0, x0, 136 - strh w2, [x0,-10] - mov w2, -1 - strh wzr, [x0,-12] - strh w2, [x0,-56] - strh w2, [x0,-6] - mov w2, -1 - strh wzr, [x0,-16] - str w2, [x0,408] - strh wzr, [x0,-14] - strh w2, [x1,126] - mov w1, 255 - mov w2, 256 - bl ftl_memset - ldr x0, [x19,80] - mov w1, 255 - mov w2, 128 - add x0, x0, 392 - bl ftl_memset - ldr x0, [x19,80] - str wzr, [x0,520] - str wzr, [x0,524] - str wzr, [x0,528] - 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_re_low_format_test, .-ftl_re_low_format_test - .align 2 .global ftl_prog_ppa_page .type ftl_prog_ppa_page, %function ftl_prog_ppa_page: @@ -14310,39 +14226,39 @@ ftl_write_last_log_page: add x19, x19, :lo12:.LANCHOR0 ldrh w24, [x0,12] cmp w1, 1 - ldr x22, [x19,3840] - bne .L2257 + ldr x22, [x19,3888] + bne .L2305 mov x20, x0 bl ftl_get_new_free_page cmn w0, #1 mov w23, w0 mov w21, 0 - beq .L2257 + beq .L2305 ldrh w0, [x20] add x22, x22, x24, uxth 2 bl ftl_vpn_decrement - adrp x1, .LANCHOR5 + adrp x1, .LANCHOR6 mov w0, 15555 - add x1, x1, :lo12:.LANCHOR5 + add x1, x1, :lo12:.LANCHOR6 movk w0, 0xf55f, lsl 16 - add x2, x1, 256 + add x2, x1, 4032 str x2, [x29,72] - str w0, [x1,256] - ldrb w0, [x19,3244] - ldrh w1, [x19,3276] + str w0, [x1,4032] + ldrb w0, [x19,3292] + ldrh w1, [x19,3316] mul w1, w1, w0 mov x0, x22 lsl w1, w1, 2 bl js_hash ldr x2, [x29,72] mov x1, x22 - ldrb w3, [x19,2816] + ldrb w3, [x19,2832] str w0, [x2,4] mov w0, w23 str w21, [x2,8] str w21, [x2,12] bl ftl_prog_ppa_page -.L2257: +.L2305: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -14354,230 +14270,205 @@ ftl_write_last_log_page: .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: - sub sp, sp, #176 - stp x29, x30, [sp,48] - add x29, sp, 48 - stp x23, x24, [sp,96] - adrp x23, .LANCHOR2 - str x1, [x29,120] - stp x19, x20, [sp,64] + stp x29, x30, [sp, -128]! + add x29, sp, 0 + stp x23, x24, [sp,48] + adrp x24, .LANCHOR2 + stp x19, x20, [sp,16] mov x19, x0 - ldr w0, [x23,#:lo12:.LANCHOR2] - stp x21, x22, [sp,80] - stp x25, x26, [sp,112] - stp x27, x28, [sp,128] - tbz x0, 12, .L2262 - adrp x0, .LC162 + ldr w0, [x24,#:lo12:.LANCHOR2] + stp x27, x28, [sp,80] + stp x21, x22, [sp,32] + stp x25, x26, [sp,64] + mov x27, x1 + tbz x0, 12, .L2310 + adrp x0, .LC171 ldrh w1, [x19,2] - add x0, x0, :lo12:.LC162 + add x0, x0, :lo12:.LC171 bl printk -.L2262: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2263 - adrp x0, .LC163 +.L2310: + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2311 + adrp x0, .LC172 ldrb w1, [x19,5] - add x0, x0, :lo12:.LC163 + add x0, x0, :lo12:.LC172 bl printk -.L2263: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2264 - adrp x0, .LC164 +.L2311: + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2312 + adrp x0, .LC173 ldrh w1, [x19] - add x0, x0, :lo12:.LC164 + add x0, x0, :lo12:.LC173 bl printk -.L2264: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2265 - adrp x0, .LC165 +.L2312: + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2313 + adrp x0, .LC174 ldrh w1, [x19,16] ldrh w2, [x19,18] - add x0, x0, :lo12:.LC165 + add x0, x0, :lo12:.LC174 bl printk -.L2265: +.L2313: ldrh w0, [x19,10] - adrp x24, .LANCHOR5 + adrp x21, .LANCHOR0 strh w0, [x19,14] + add x0, x21, :lo12:.LANCHOR0 + ldrh w1, [x19] + ldrh w0, [x0,56] + cmp w1, w0 + bcs .L2309 mov w0, 1 - adrp x25, .LANCHOR3 - add x24, x24, :lo12:.LANCHOR5 + adrp x25, .LANCHOR4 + adrp x26, .LANCHOR3 + add x25, x25, :lo12:.LANCHOR4 bl buf_alloc - add x25, x25, :lo12:.LANCHOR3 - ldrb w21, [x19,5] - mov x27, x0 - ldrh w22, [x19,2] + add x26, x26, :lo12:.LANCHOR3 + ldrb w22, [x19,5] + mov x20, x0 + ldrh w23, [x19,2] + add x0, x26, 416 mov w28, 0 - add x24, x24, 576 - add x25, x25, 456 -.L2266: - adrp x20, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3276] - cmp w0, w22 - bls .L2269 - ldrb w21, [x19,5] -.L2267: + add x25, x25, 1344 + str x0, [x29,120] +.L2316: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,3316] + cmp w0, w23 + bls .L2319 + ldrb w22, [x19,5] +.L2317: ldrb w0, [x19,9] - cmp w0, w21 - bls .L2347 - add x0, x19, x21, sxtw 1 - ldrh w5, [x0,16] - mov w0, 65535 - cmp w5, w0 - beq .L2268 - add x3, x20, :lo12:.LANCHOR0 - ldr x1, [x27,8] - ldr x2, [x27,24] - str x5, [x29,104] - ldrh w4, [x3,3324] - ldrb w3, [x3,2816] - madd w4, w5, w4, w22 - str x4, [x29,112] - mov w0, w4 + cmp w0, w22 + bls .L2393 + add x0, x19, x22, sxtw 1 + ldrh w0, [x0,16] + mov w1, 65535 + cmp w0, w1 + beq .L2318 + add x3, x21, :lo12:.LANCHOR0 + ldr x2, [x20,24] + ldrh w1, [x3,3366] + ldrb w3, [x3,2832] + madd w0, w0, w1, w23 + ldr x1, [x20,8] bl ftl_read_ppa_page cmp w0, 512 mov w26, w0 - beq .L2269 + beq .L2319 cmn w0, #1 - ldr x4, [x29,112] - ldr x5, [x29,104] - beq .L2270 - ldr x0, [x27,24] + beq .L2320 + ldr x0, [x20,24] ldr w1, [x0] cmn w1, #1 - bne .L2270 + bne .L2320 ldr w0, [x0,4] cmn w0, #1 - bne .L2270 - ldr x0, [x27,8] + bne .L2320 + ldr x0, [x20,8] ldr w0, [x0] cmn w0, #1 - beq .L2269 -.L2270: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2271 - ldr x7, [x27,8] - mov w3, w4 - ldr x0, [x27,24] - mov w2, w22 - mov w4, w26 - ldr w1, [x7,12] - str w1, [sp] - ldr w1, [x0] - str w1, [sp,8] - ldr w1, [x0,4] - str w1, [sp,16] - ldr w1, [x0,8] - str w1, [sp,24] - mov w1, w5 - ldr w0, [x0,12] - str w0, [sp,32] - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 - ldr w5, [x7] - ldr w6, [x7,4] - ldr w7, [x7,8] - bl printk -.L2271: - adrp x0, .LANCHOR6-127 + beq .L2319 +.L2320: + adrp x0, .LANCHOR5+641 mov w1, 1 - strb w1, [x0,#:lo12:.LANCHOR6-127] + strb w1, [x0,#:lo12:.LANCHOR5+641] ldrb w0, [x19,9] ldrh w1, [x19,10] - madd w0, w22, w0, w21 + madd w0, w23, w0, w22 cmp w1, w0 - beq .L2272 + beq .L2321 adrp x0, .LC0 - mov x1, x25 + ldr x1, [x29,120] add x0, x0, :lo12:.LC0 - mov w2, 1288 + mov w2, 1396 bl printk -.L2272: +.L2321: ldrh w0, [x19,10] ldrh w1, [x19,6] ldrb w2, [x19,9] add w1, w1, w0 - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,3276] + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0,3316] mul w0, w0, w2 cmp w1, w0 - beq .L2273 + beq .L2322 adrp x0, .LC0 - mov x1, x25 + ldr x1, [x29,120] add x0, x0, :lo12:.LC0 - mov w2, 1289 + mov w2, 1397 bl printk -.L2273: +.L2322: cmn w26, #1 - beq .L2277 - ldr x0, [x27,24] + beq .L2326 + ldr x0, [x20,24] ldr w0, [x0,4] cmn w0, #1 - beq .L2277 + beq .L2326 bl lpa_hash_get_ppa - ldr x1, [x29,120] - cbz x1, .L2275 - ldr x3, [x27,24] - ldr w1, [x3,8] - cmp w0, w1 - beq .L2275 + cbz x27, .L2324 + ldr x2, [x20,24] + ldr w3, [x2,8] + cmp w0, w3 + beq .L2324 cmn w0, #1 - beq .L2275 - add x28, x20, :lo12:.LANCHOR0 - mov w4, 21 - mov w26, 1 - ldrh w1, [x28,3314] - lsr w2, w0, w1 - sub w1, w4, w1 - lsl w1, w26, w1 - sub w1, w1, #1 - and w1, w2, w1 - ldrb w2, [x28,3312] - udiv w1, w1, w2 - ldr x2, [x29,120] - ldrh w2, [x2] - cmp w2, w1, uxth - bne .L2275 - ldr w5, [x3] - mov x2, x24 - ldr x1, [x27,8] - ldrb w3, [x28,2816] - str x4, [x29,104] - str x5, [x29,112] + beq .L2324 + add x4, x21, :lo12:.LANCHOR0 + mov w5, 21 + mov w28, 1 + ldrh w3, [x4,3356] + lsr w1, w0, w3 + sub w3, w5, w3 + lsl w3, w28, w3 + sub w3, w3, #1 + and w3, w1, w3 + ldrb w1, [x4,3354] + udiv w3, w3, w1 + ldrh w1, [x27] + cmp w1, w3, uxth + bne .L2324 + ldr w6, [x2] + mov x2, x25 + ldrb w3, [x4,2832] + ldr x1, [x20,8] + str x5, [x29,96] + str x6, [x29,104] + str x4, [x29,112] bl ftl_read_ppa_page - ldr w0, [x24] - ldr x5, [x29,112] - ldr x4, [x29,104] - cmp w0, w5 - bcc .L2275 - ldr x0, [x27,24] + ldr w0, [x25] + ldr x6, [x29,104] + ldr x4, [x29,112] + cmp w0, w6 + ldr x5, [x29,96] + bcc .L2324 + ldr x0, [x20,24] ldr w1, [x0,8] cmn w1, #1 - beq .L2277 - ldrh w0, [x28,3314] - sub w4, w4, w0 + beq .L2326 + ldrh w0, [x4,3356] + sub w5, w5, w0 lsr w1, w1, w0 - lsl w26, w26, w4 - ldrb w0, [x28,3312] - sub w26, w26, #1 - and w1, w26, w1 + lsl w28, w28, w5 + ldrb w0, [x4,3354] + sub w28, w28, #1 + and w1, w28, w1 udiv w0, w1, w0 bl ftl_vpn_decrement - b .L2277 -.L2275: - ldr x2, [x27,24] - add x1, x20, :lo12:.LANCHOR0 + b .L2326 +.L2324: + ldr x2, [x20,24] + add x1, x21, :lo12:.LANCHOR0 ldr w3, [x2,4] - ldr w0, [x1,2824] + ldr w0, [x1,2840] cmp w3, w0 - bcs .L2277 + bcs .L2326 ldrb w0, [x19,9] - ldrh w4, [x1,3276] + ldrh w4, [x1,3316] ldrh w3, [x19,10] mul w0, w0, w4 sub w0, w0, #1 cmp w3, w0 - blt .L2348 -.L2277: + blt .L2394 +.L2326: ldrh w0, [x19,6] mov w28, 1 sub w0, w0, #1 @@ -14585,172 +14476,170 @@ ftl_open_sblk_recovery: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L2268: - add w21, w21, 1 - uxth w21, w21 - b .L2267 -.L2347: +.L2318: add w22, w22, 1 - strb wzr, [x19,5] uxth w22, w22 - b .L2266 -.L2269: - add x2, x20, :lo12:.LANCHOR0 + b .L2317 +.L2393: + add w23, w23, 1 + strb wzr, [x19,5] + uxth w23, w23 + b .L2316 +.L2319: + add x2, x21, :lo12:.LANCHOR0 ldrh w0, [x19,10] ldrh w1, [x19,6] - strh w22, [x19,2] + strh w23, [x19,2] add w1, w1, w0 - ldrh w2, [x2,3276] + ldrh w2, [x2,3316] ldrb w0, [x19,9] - strb w21, [x19,5] + strb w22, [x19,5] mul w0, w0, w2 cmp w1, w0 - beq .L2281 + beq .L2330 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 456 - mov w2, 1365 + add x1, x1, 416 + mov w2, 1473 bl printk -.L2281: - add x0, x20, :lo12:.LANCHOR0 +.L2330: + add x0, x21, :lo12:.LANCHOR0 ldrh w3, [x19,10] - ldr x4, [x0,3840] + ldr x4, [x0,3888] mov w0, 0 mov w2, w0 -.L2282: +.L2331: cmp w2, w3 - bcs .L2349 + bcs .L2395 ldrh w1, [x19,12] add w1, w2, w1 ldr w1, [x4,x1,lsl 2] cmn w1, #1 - beq .L2283 + beq .L2332 add w1, w0, 1 uxth w0, w1 -.L2283: +.L2332: add w2, w2, 1 - b .L2282 -.L2349: - add x2, x20, :lo12:.LANCHOR0 + b .L2331 +.L2395: + add x2, x21, :lo12:.LANCHOR0 ldrb w1, [x19,9] sub w0, w0, w3 - ldrh w21, [x2,3276] - madd w0, w1, w21, w0 - uxth w21, w0 - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2285 + ldrh w22, [x2,3316] + madd w0, w1, w22, w0 + uxth w22, w0 + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2334 ldrh w1, [x19] - adrp x0, .LC167 - ldr x4, [x2,72] - add x0, x0, :lo12:.LC167 + adrp x0, .LC175 + ldr x4, [x2,80] + add x0, x0, :lo12:.LC175 ubfiz x3, x1, 1, 16 - mov w2, w21 + mov w2, w22 ldrh w3, [x4,x3] bl printk -.L2285: - add x0, x20, :lo12:.LANCHOR0 +.L2334: + add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x19] - adrp x22, .LC168 - mov w24, -1 - add x22, x22, :lo12:.LC168 - ldr x0, [x0,72] - strh w21, [x0,x1,lsl 1] - mov x0, x27 - mov w21, 0 + adrp x23, .LC176 + mov w25, -1 + add x23, x23, :lo12:.LC176 + ldr x0, [x0,80] + strh w22, [x0,x1,lsl 1] + mov x0, x20 + mov w22, 0 bl buf_free -.L2286: - add x2, x20, :lo12:.LANCHOR0 - ldrb w0, [x2,3244] - cmp w21, w0, lsl 1 - bcs .L2350 - cbz w28, .L2287 +.L2335: + add x2, x21, :lo12:.LANCHOR0 + ldrb w0, [x2,3292] + cmp w22, w0, lsl 1 + bcs .L2396 + cbz w28, .L2336 ldrh w0, [x19,6] cmp w0, 1 - bls .L2287 + bls .L2336 mov x0, x19 bl ftl_get_new_free_page - mov w25, w0 - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2288 - mov x0, x22 - mov w1, w25 + mov w26, w0 + ldr w0, [x24,#:lo12:.LANCHOR2] + tbz x0, 12, .L2337 + mov x0, x23 + mov w1, w26 bl printk -.L2288: - add x3, x20, :lo12:.LANCHOR0 - ldr x0, [x27,24] - ldr x1, [x3,2848] +.L2337: + add x3, x21, :lo12:.LANCHOR0 + ldr x0, [x20,24] + ldr x1, [x3,2864] ldr w1, [x1,8] str w1, [x0] - ldr x0, [x27,24] - str w24, [x0,4] - ldr x0, [x27,24] - str w24, [x0,8] - ldr x0, [x27,24] + ldr x0, [x20,24] + str w25, [x0,4] + ldr x0, [x20,24] + str w25, [x0,8] + ldr x0, [x20,24] str wzr, [x0,12] - ldr x0, [x27,8] + ldr x0, [x20,8] str wzr, [x0] - mov w0, w25 - ldr x1, [x27,8] - ldr x2, [x27,24] - ldrb w3, [x3,2816] + mov w0, w26 + ldr x1, [x20,8] + ldr x2, [x20,24] + ldrb w3, [x3,2832] bl ftl_prog_ppa_page ldrh w0, [x19] bl ftl_vpn_decrement -.L2287: - add w21, w21, 1 - b .L2286 -.L2350: - ldrh w1, [x2,3276] +.L2336: + add w22, w22, 1 + b .L2335 +.L2396: + ldrh w1, [x2,3316] ldrh w0, [x19,12] ldrb w3, [x19,9] madd w0, w1, w3, w0 mov x1, -4 add x0, x1, x0, sxtw 2 - ldr x1, [x2,3840] + ldr x1, [x2,3888] ldr w0, [x1,x0] cmn w0, #1 - beq .L2290 + beq .L2339 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 456 - mov w2, 1395 + add x1, x1, 416 + mov w2, 1503 bl printk -.L2290: +.L2339: ldrh w0, [x19,6] cmp w0, 1 - bne .L2261 + bne .L2309 mov x0, x19 bl ftl_write_last_log_page - b .L2261 -.L2348: - ldr x0, [x1,2848] + b .L2309 +.L2394: + ldr x0, [x1,2864] ldr w2, [x2] ldr w1, [x0,8] cmp w2, w1 - bls .L2278 + bls .L2327 str w2, [x0,8] -.L2278: - ldr x1, [x27,24] +.L2327: + ldr x1, [x20,24] ldrh w0, [x19,10] ldrh w2, [x19,12] add w2, w2, w0 ldr w0, [x1,4] ldr w1, [x1,8] bl lpa_hash_update_ppa - b .L2277 -.L2261: - sub sp, x29, #48 - ldp x19, x20, [sp,64] - ldp x21, x22, [sp,80] - ldp x23, x24, [sp,96] - ldp x25, x26, [sp,112] - ldp x27, x28, [sp,128] - ldp x29, x30, [sp,48] - add sp, sp, 176 + b .L2326 +.L2309: + 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 ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .align 2 @@ -14771,91 +14660,91 @@ pm_write_page: mov x24, x1 adrp x25, .LANCHOR0 add x23, x23, :lo12:.LC0 - add x22, x22, 480 -.L2352: + add x22, x22, 440 +.L2398: add x2, x25, :lo12:.LANCHOR0 adrp x19, .LANCHOR0 - ldr x0, [x2,2848] + ldr x0, [x2,2864] ldr w1, [x0,48] ldrh w3, [x0,696] add w1, w1, 1 str w1, [x0,48] - ldrh w1, [x2,3276] + ldrh w1, [x2,3316] cmp w3, w1 - bcs .L2353 + bcs .L2399 ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2354 -.L2353: + bne .L2400 +.L2399: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2354: +.L2400: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + ldr x0, [x0,2864] ldrh w1, [x0,692] mov w0, 65535 cmp w1, w0 - bne .L2355 + bne .L2401 mov x0, x23 mov x1, x22 - mov w2, 228 + mov w2, 230 bl printk -.L2355: +.L2401: add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR7 add x27, x20, :lo12:.LANCHOR7 mov w2, 64 - ldr x1, [x19,2848] - ldrh w26, [x19,3324] + ldr x1, [x19,2864] + ldrh w26, [x19,3366] ldrh w0, [x1,692] ldrh w1, [x1,696] madd w26, w0, w26, w1 - ldr x0, [x27,3272] + ldr x0, [x27,-64] mov w1, 0 bl ftl_memset - ldr x0, [x27,3272] + ldr x0, [x27,-64] mov x2, x24 str w21, [x0] - ldr x1, [x19,2848] - ldr x0, [x27,3272] - ldrb w4, [x19,2816] + ldr x1, [x19,2864] + ldr x0, [x27,-64] + ldrb w4, [x19,2832] ldr w1, [x1,48] str w1, [x0,4] mov w1, w26 - ldr x0, [x19,2848] - ldr x3, [x27,3272] + ldr x0, [x19,2864] + ldr x3, [x27,-64] ldrb w0, [x0,694] bl ftl_prog_page - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldrh w2, [x1,696] add w2, w2, 1 uxth w2, w2 strh w2, [x1,696] cmp w2, 1 - beq .L2356 - ldrb w2, [x27,3280] - cbz w2, .L2357 -.L2356: + beq .L2402 + ldrb w2, [x27,-56] + cbz w2, .L2403 +.L2402: add x20, x20, :lo12:.LANCHOR7 - strb wzr, [x20,3280] - b .L2352 -.L2357: + strb wzr, [x20,-56] + b .L2398 +.L2403: cmn w0, #1 - bne .L2359 - adrp x0, .LC169 + bne .L2405 + adrp x0, .LC177 mov w1, w26 - add x0, x0, :lo12:.LC169 + add x0, x0, :lo12:.LC177 bl printk - b .L2352 -.L2359: + b .L2398 +.L2405: ldrh w0, [x1,698] cmp w21, w0 - bcs .L2360 + bcs .L2406 add x21, x1, x21, uxtw 2 str w26, [x21,704] -.L2360: +.L2406: mov w0, 0 ldr x27, [sp,80] ldp x19, x20, [sp,16] @@ -14878,113 +14767,113 @@ flash_info_flush: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - tbz x0, 12, .L2365 + tbz x0, 12, .L2411 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 251 - add x2, x2, 496 + add x2, x2, 456 bl printk -.L2365: +.L2411: adrp x22, .LANCHOR4 adrp x23, .LANCHOR0 add x0, x22, :lo12:.LANCHOR4 mov w1, 0 mov w2, 64 add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC171 - adrp x25, .LC172 - ldr x0, [x0,1200] + adrp x24, .LC179 + adrp x25, .LC180 + ldr x0, [x0,1248] mov w26, 0 - add x24, x24, :lo12:.LC171 - add x25, x25, :lo12:.LC172 + add x24, x24, :lo12:.LC179 + add x25, x25, :lo12:.LC180 bl ftl_memset - ldr x1, [x19,192] - adrp x0, .LC170 - add x0, x0, :lo12:.LC170 + ldr x1, [x19,208] + adrp x0, .LC178 + add x0, x0, :lo12:.LC178 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldr x19, [x19,192] + ldr x19, [x19,208] add x0, x19, 16 ldr w1, [x19,8] bl js_hash str w0, [x19,12] -.L2366: +.L2412: add x21, x22, :lo12:.LANCHOR4 add x27, x23, :lo12:.LANCHOR0 mov x0, x24 - ldrb w20, [x21,1208] - ldrh w19, [x21,1210] + ldrb w20, [x21,1256] + ldrh w19, [x21,1258] mov w1, w20 - ldrh w28, [x27,210] + ldrh w28, [x27,226] mov w2, w19 bl printk - ldrh w1, [x21,1060] - ldrh w0, [x21,1210] + ldrh w1, [x21,1108] + ldrh w0, [x21,1258] sub w1, w1, #1 cmp w0, w1 - blt .L2367 - ldr x1, [x27,192] - ldrb w19, [x21,1209] - strh wzr, [x21,1210] + blt .L2413 + ldr x1, [x27,208] + ldrb w19, [x21,1257] + strh wzr, [x21,1258] ldr w0, [x1,4] add w0, w0, 1 str w0, [x1,4] - ldrb w0, [x21,1208] - ldr x20, [x27,192] - strb w0, [x21,1209] + ldrb w0, [x21,1256] + ldr x20, [x27,208] + strb w0, [x21,1257] mov x0, x20 - strb w19, [x21,1208] + strb w19, [x21,1256] ldrh w1, [x20,16] add w1, w1, 1 strh w1, [x0,16]! ldr w1, [x20,8] bl js_hash str w0, [x20,12] - ldrh w0, [x27,210] + ldrh w0, [x27,226] mul w19, w19, w0 mov w0, 0 - b .L2375 -.L2367: + b .L2421 +.L2413: madd w19, w20, w28, w19 - cbnz w0, .L2368 -.L2375: + cbnz w0, .L2414 +.L2421: mov w1, w19 bl flash_erase_block -.L2368: +.L2414: add x2, x23, :lo12:.LANCHOR0 add x20, x22, :lo12:.LANCHOR4 mov w4, 4 mov w5, 1 - ldr x1, [x2,192] - ldr x0, [x20,1200] + ldr x1, [x2,208] + ldr x0, [x20,1248] ldr w1, [x1,4] str w1, [x0] mov w0, 21321 movk w0, 0x5359, lsl 16 - ldr x1, [x20,1200] + ldr x1, [x20,1248] str w0, [x1,4] mov w1, w19 mov w0, 0 - ldr x2, [x2,192] - ldr x3, [x20,1200] + ldr x2, [x2,208] + ldr x3, [x20,1248] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,1210] + ldrh w1, [x20,1258] add w1, w1, 1 - strh w1, [x20,1210] - bne .L2369 + strh w1, [x20,1258] + bne .L2415 mov x0, x25 mov w1, w19 bl printk - b .L2366 -.L2369: - cbnz w26, .L2376 + b .L2412 +.L2415: + cbnz w26, .L2422 mov w26, 1 - b .L2366 -.L2376: + b .L2412 +.L2422: mov w0, 0 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15007,15 +14896,15 @@ nand_flash_init: stp x23, x24, [sp,48] ldr w0, [x20,#:lo12:.LANCHOR2] stp x25, x26, [sp,64] - tbz x0, 12, .L2378 + tbz x0, 12, .L2424 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 2101 - add x2, x2, 520 + add x2, x2, 480 bl printk -.L2378: +.L2424: mov x0, x19 adrp x19, .LANCHOR0 mov x21, 0 @@ -15024,82 +14913,82 @@ nand_flash_init: mov w26, 44 add x0, x19, :lo12:.LANCHOR0 add x1, x20, :lo12:.LANCHOR2 - add x22, x0, 732 + add x22, x0, 748 add x1, x1, 376 mov x23, x0 mov x24, x22 - str x1, [x0,88] -.L2384: + str x1, [x0,104] +.L2430: mov w0, w21 mov x1, x22 bl flash_read_id - add x0, x23, 728 + add x0, x23, 744 strb w25, [x21,x0] - cbnz x21, .L2379 + cbnz x21, .L2425 ldrb w0, [x24] sub w0, w0, #1 uxtb w0, w0 cmp w0, 253 - bls .L2380 -.L2382: + bls .L2426 +.L2428: mov w22, -2 - b .L2426 -.L2380: + b .L2472 +.L2426: ldrb w0, [x24,1] cmp w0, 255 - beq .L2382 -.L2379: + beq .L2428 +.L2425: ldrb w0, [x22] cmp w0, 181 - bne .L2383 + bne .L2429 strb w26, [x22] -.L2383: +.L2429: add x21, x21, 1 add x22, x22, 8 cmp x21, 4 - bne .L2384 + bne .L2430 add x22, x20, :lo12:.LANCHOR2 add x23, x19, :lo12:.LANCHOR0 add x22, x22, 440 mov w21, 0 - add x23, x23, 732 -.L2387: + add x23, x23, 748 +.L2433: ldrb w2, [x22] add x0, x22, 1 mov x1, x23 bl flash_mem_cmp8 - cbnz w0, .L2385 + cbnz w0, .L2431 add x1, x20, :lo12:.LANCHOR2 ubfiz x21, x21, 5, 32 add x0, x1, 440 adds x21, x0, x21 - beq .L2382 + beq .L2428 ldrb w3, [x21,22] mov x0, 0 - b .L2389 -.L2385: + b .L2435 +.L2431: add w21, w21, 1 add x22, x22, 32 cmp w21, 30 - bne .L2387 - b .L2382 -.L2389: + bne .L2433 + b .L2428 +.L2435: add x4, x1, x0, lsl 5 mov w2, w0 ldrb w4, [x4,1400] cmp w4, w3 - beq .L2388 + beq .L2434 add x0, x0, 1 cmp x0, 4 - bne .L2389 + bne .L2435 mov w2, w0 -.L2388: +.L2434: add x22, x20, :lo12:.LANCHOR2 ubfiz x2, x2, 5, 32 add x1, x22, 1400 add x0, x19, :lo12:.LANCHOR0 add x1, x1, x2 - add x0, x0, 104 + add x0, x0, 120 mov w2, 32 add x22, x22, 376 bl ftl_memcpy @@ -15109,124 +14998,123 @@ nand_flash_init: bl ftl_memcpy ldrb w0, [x19,#:lo12:.LANCHOR0] cmp w0, 8 - bhi .L2390 + bhi .L2436 ldrb w1, [x22,20] cmp w1, 60 - bls .L2391 + bls .L2437 mov w1, 60 strb w1, [x22,20] -.L2391: +.L2437: cmp w0, 8 - bne .L2390 + bne .L2436 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,732] + ldrb w0, [x0,748] cmp w0, 44 - beq .L2451 -.L2390: + beq .L2497 +.L2436: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2392 + tbz x0, 12, .L2438 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 2122 - add x2, x2, 520 + add x2, x2, 480 bl printk -.L2392: +.L2438: adrp x21, .LANCHOR4 mov w0, 16384 add x23, x21, :lo12:.LANCHOR4 add x22, x19, :lo12:.LANCHOR0 bl ftl_malloc add x24, x20, :lo12:.LANCHOR2 - str x0, [x23,1216] + str x0, [x23,1264] mov w0, 16384 bl ftl_malloc - str x0, [x23,1160] + str x0, [x23,1208] mov w0, 2048 bl ftl_malloc - str x0, [x22,192] + str x0, [x22,208] + mov w0, 64 + bl ftl_malloc + str x0, [x23,1272] mov w0, 64 bl ftl_malloc str x0, [x23,1224] mov w0, 64 bl ftl_malloc - str x0, [x23,1176] - mov w0, 64 - bl ftl_malloc - str x0, [x23,1200] - adrp x0, .LANCHOR5+512 - strb wzr, [x0,#:lo12:.LANCHOR5+512] + strb wzr, [x23,1281] + str x0, [x23,1248] bl flash_die_info_init ldrb w0, [x24,394] bl flash_lsb_page_tbl_build ldrb w0, [x24,396] bl nandc_bch_sel - str xzr, [x23,1192] - ldr x1, [x22,88] + str xzr, [x23,1240] + ldr x1, [x22,104] ldrh w0, [x1,16] ubfx x2, x0, 8, 3 - strb w2, [x22,764] - adrp x2, .LANCHOR7+3281 + strb w2, [x22,780] + adrp x2, .LANCHOR7-55 ubfx x3, x0, 3, 1 - strb w3, [x2,#:lo12:.LANCHOR7+3281] + strb w3, [x2,#:lo12:.LANCHOR7-55] ubfx x2, x0, 4, 1 - strb w2, [x22,765] + strb w2, [x22,781] ubfx x2, x0, 12, 1 - strb w2, [x22,3240] + strb w2, [x22,3288] ubfx x2, x0, 13, 1 ubfx x0, x0, 14, 1 - strb w0, [x22,208] + strb w0, [x22,224] ldrb w0, [x1,28] mov w1, 60 - strb w1, [x22,96] + strb w1, [x22,112] ldrb w1, [x19,#:lo12:.LANCHOR0] - strb w2, [x22,3322] - strb w0, [x22,97] + strb w2, [x22,3364] + strb w0, [x22,113] cmp w1, 9 - bne .L2393 + bne .L2439 mov w1, 70 - strb w1, [x22,96] -.L2393: + strb w1, [x22,112] +.L2439: add x2, x20, :lo12:.LANCHOR2 add x1, x21, :lo12:.LANCHOR4 add x2, x2, 376 add x3, x19, :lo12:.LANCHOR0 - strb w0, [x1,1232] + strb w0, [x1,1280] ldrb w0, [x2,19] ldrh w2, [x2,16] - strb w0, [x3,189] - tbz x2, 6, .L2395 + strb w0, [x3,205] + tbz x2, 6, .L2441 sub w2, w0, #17 uxtb w2, w2 cmp w2, 2 - bhi .L2396 + bhi .L2442 adrp x2, micron_read_retrial cmp w0, 19 add x2, x2, :lo12:micron_read_retrial - str x2, [x1,1192] - bne .L2447 + str x2, [x1,1240] + bne .L2493 mov w0, 15 - b .L2448 -.L2396: + b .L2494 +.L2442: sub w2, w0, #65 uxtb w2, w2 cmp w2, 1 - bls .L2416 + bls .L2462 cmp w0, 33 - bne .L2399 -.L2416: + bne .L2445 +.L2462: add x0, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial mov w2, 4 - str x1, [x0,1192] + str x1, [x0,1240] add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,190] + strb w2, [x1,206] mov w1, 7 - strb w1, [x0,1184] - b .L2395 -.L2399: + strb w1, [x0,1232] + b .L2441 +.L2445: sub w2, w0, #67 uxtb w2, w2 cmp w2, 1 @@ -15234,135 +15122,135 @@ nand_flash_init: cset w3, ls uxtb w2, w2 cmp w2, 1 - bls .L2417 - cbz w3, .L2401 -.L2417: + bls .L2463 + cbz w3, .L2447 +.L2463: add x2, x21, :lo12:.LANCHOR4 adrp x1, toshiba_read_retrial add x1, x1, :lo12:toshiba_read_retrial cmp w0, 35 - str x1, [x2,1192] - beq .L2403 + str x1, [x2,1240] + beq .L2449 cmp w0, 68 - beq .L2403 + beq .L2449 mov w0, 7 - strb w0, [x2,1184] - b .L2404 -.L2403: + strb w0, [x2,1232] + b .L2450 +.L2449: add x0, x21, :lo12:.LANCHOR4 mov w1, 17 - strb w1, [x0,1184] -.L2404: + strb w1, [x0,1232] +.L2450: add x0, x19, :lo12:.LANCHOR0 mov w1, 4 - cbnz w3, .L2449 + cbnz w3, .L2495 mov w1, 5 -.L2449: - strb w1, [x0,190] - b .L2395 -.L2401: +.L2495: + strb w1, [x0,206] + b .L2441 +.L2447: sub w0, w0, #36 uxtb w0, w0 cmp w0, 1 - bhi .L2395 + bhi .L2441 adrp x0, toshiba_3d_read_retrial add x0, x0, :lo12:toshiba_3d_read_retrial - str x0, [x1,1192] -.L2447: + str x0, [x1,1240] +.L2493: mov w0, 7 -.L2448: - strb w0, [x1,1184] -.L2395: +.L2494: + strb w0, [x1,1232] +.L2441: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2406 + tbz x0, 12, .L2452 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 2170 - add x2, x2, 520 + add x2, x2, 480 bl printk -.L2406: +.L2452: add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,136] - ldrb w0, [x0,764] - tbz x0, 0, .L2407 + strb wzr, [x0,152] + ldrb w0, [x0,780] + tbz x0, 0, .L2453 mov w0, 4 bl nandc_set_if_mode mov w0, 1 bl flash_set_interface_mode mov w0, 1 - b .L2450 -.L2407: + b .L2496 +.L2453: mov w0, 4 -.L2450: +.L2496: bl nandc_set_if_mode bl flash_info_blk_init cmn w0, #1 mov w22, w0 - bne .L2409 + bne .L2455 ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2426 + tbz x0, 12, .L2472 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 mov w1, 2190 - add x2, x2, 520 - add x0, x0, :lo12:.LC115 + add x2, x2, 480 + add x0, x0, :lo12:.LC127 bl printk - b .L2426 -.L2409: + b .L2472 +.L2455: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,189] + ldrb w0, [x0,205] sub w0, w0, #1 uxtb w0, w0 cmp w0, 6 - bhi .L2410 + bhi .L2456 add x0, x21, :lo12:.LANCHOR4 adrp x1, hynix_read_retrial add x1, x1, :lo12:hynix_read_retrial - str x1, [x0,1192] -.L2410: + str x1, [x0,1240] +.L2456: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,764] - tbz x0, 2, .L2412 - ldr x0, [x19,192] + ldrb w0, [x19,780] + tbz x0, 2, .L2458 + ldr x0, [x19,208] ldrb w0, [x0,19] - cbz w0, .L2412 + cbz w0, .L2458 add x21, x21, :lo12:.LANCHOR4 - ldrh w1, [x19,210] + ldrh w1, [x19,226] mov w0, 0 - ldrb w2, [x21,1208] + ldrb w2, [x21,1256] mul w1, w2, w1 bl flash_ddr_para_scan - ldrb w0, [x19,136] - cbnz w0, .L2412 - ldr x1, [x19,192] + ldrb w0, [x19,152] + cbnz w0, .L2458 + ldr x1, [x19,208] strb w0, [x1,19] bl flash_info_flush -.L2412: +.L2458: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2414 + tbz x0, 12, .L2460 adrp x2, .LANCHOR3 - adrp x0, .LC115 + adrp x0, .LC127 add x2, x2, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC115 + add x0, x0, :lo12:.LC127 mov w1, 2243 - add x2, x2, 520 + add x2, x2, 480 bl printk -.L2414: +.L2460: bl nand_flash_print_info mov w22, 0 - b .L2426 -.L2451: + b .L2472 +.L2497: add x0, x20, :lo12:.LANCHOR2 add x0, x0, 376 ldrb w1, [x0,28] cmp w1, 3 - bne .L2390 + bne .L2436 strb wzr, [x0,28] - b .L2390 -.L2426: + b .L2436 +.L2472: mov w0, w22 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -15388,24 +15276,24 @@ ftl_sysblk_dump: bl buf_alloc ldr x24, [x0,8] mov w20, 0 - adrp x22, .LC166 - adrp x23, .LC173 + adrp x22, .LC181 + adrp x23, .LC182 mov x27, x0 mov w19, w20 adrp x28, .LANCHOR0 - add x22, x22, :lo12:.LC166 - add x23, x23, :lo12:.LC173 + add x22, x22, :lo12:.LC181 + add x23, x23, :lo12:.LC182 add x24, x24, 704 -.L2453: +.L2499: add x3, x28, :lo12:.LANCHOR0 - ldrh w1, [x3,3276] + ldrh w1, [x3,3316] cmp w1, w19 - bls .L2465 - ldrh w21, [x3,3324] + bls .L2511 + ldrh w21, [x3,3366] ldr x1, [x27,8] ldr x2, [x27,24] madd w21, w25, w21, w19 - ldrb w3, [x3,2816] + ldrb w3, [x3,2832] mov w0, w21 bl ftl_read_ppa_page mov w26, w0 @@ -15436,27 +15324,27 @@ ftl_sysblk_dump: mov w3, 32 bl rknand_print_hex cmp w26, 512 - beq .L2458 + beq .L2504 cmn w26, #1 - bne .L2454 -.L2458: + bne .L2500 +.L2504: mov w20, 1 -.L2454: +.L2500: add w19, w19, 1 uxth w19, w19 - b .L2453 -.L2465: + b .L2499 +.L2511: mov x0, x27 bl buf_free - cbz w20, .L2457 + cbz w20, .L2503 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 536 - mov w2, 1232 + add x1, x1, 496 + mov w2, 1339 bl printk -.L2457: +.L2503: sub sp, x29, #48 mov w0, w20 ldp x19, x20, [sp,64] @@ -15473,31 +15361,31 @@ ftl_sysblk_dump: .type dump_ftl_info, %function dump_ftl_info: stp x29, x30, [sp, -32]! - adrp x0, .LC174 + adrp x0, .LC183 add x29, sp, 0 str x19, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC174 - ldrb w1, [x19,2818] + add x0, x0, :lo12:.LC183 + ldrb w1, [x19,2834] bl printk - adrp x3, .LANCHOR5 - adrp x0, .LC175 - add x3, x3, :lo12:.LANCHOR5 - add x0, x0, :lo12:.LC175 - ldrb w1, [x3,832] - ldrb w2, [x3,833] - ldrh w3, [x3,834] + adrp x3, .LANCHOR4 + adrp x0, .LC184 + add x3, x3, :lo12:.LANCHOR4 + add x0, x0, :lo12:.LC184 + ldrb w1, [x3,1600] + ldrb w2, [x3,1601] + ldrh w3, [x3,1602] bl printk - ldr x2, [x19,2848] - adrp x0, .LC176 - add x0, x0, :lo12:.LC176 + ldr x2, [x19,2864] + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 ldrh w1, [x2,130] ldrh w2, [x2,140] bl printk - ldr x1, [x19,80] - adrp x0, .LC177 - add x0, x0, :lo12:.LC177 + ldr x1, [x19,88] + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 add x5, x1, 16 ldrh w1, [x1,16] ldrh w2, [x5,2] @@ -15505,9 +15393,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,80] - adrp x0, .LC178 - add x0, x0, :lo12:.LC178 + ldr x1, [x19,88] + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 add x5, x1, 48 ldrh w1, [x1,48] ldrh w2, [x5,2] @@ -15515,9 +15403,9 @@ dump_ftl_info: ldrh w4, [x5,6] ldrh w5, [x5,10] bl printk - ldr x1, [x19,80] - adrp x0, .LC179 - add x0, x0, :lo12:.LC179 + ldr x1, [x19,88] + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 add x5, x1, 80 ldrh w1, [x1,80] ldrh w4, [x5,6] @@ -15525,47 +15413,47 @@ dump_ftl_info: ldrb w3, [x5,5] ldrh w5, [x5,10] bl printk - ldrh w0, [x19,3276] + ldrh w0, [x19,3316] mov w2, 4 - ldrb w3, [x19,3244] - ldr x1, [x19,3840] + ldrb w3, [x19,3292] + ldr x1, [x19,3888] mul w3, w0, w3 - adrp x0, .LC180 - add x0, x0, :lo12:.LC180 + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 lsl w3, w3, 1 bl rknand_print_hex - ldr x1, [x19,72] - adrp x0, .LC181 + ldr x1, [x19,80] + adrp x0, .LC190 ldrh w3, [x19,56] - add x0, x0, :lo12:.LC181 + add x0, x0, :lo12:.LC190 mov w2, 2 bl rknand_print_hex - ldr x3, [x19,2848] - adrp x0, .LC173 - add x0, x0, :lo12:.LC173 + ldr x3, [x19,2864] + adrp x0, .LC182 + add x0, x0, :lo12:.LC182 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex ldr x1, [x19,64] - adrp x0, .LC182 + adrp x0, .LC191 ldrh w3, [x19,56] - add x0, x0, :lo12:.LC182 + add x0, x0, :lo12:.LC191 mov w2, 4 bl rknand_print_hex - adrp x0, .LC183 - add x1, x19, 3328 - add x0, x0, :lo12:.LC183 + adrp x0, .LC192 + add x1, x19, 3376 + add x0, x0, :lo12:.LC192 mov w2, 2 mov w3, 256 bl rknand_print_hex - ldrh w0, [x19,3276] + ldrh w0, [x19,3316] mov w2, 2 - ldrb w3, [x19,3244] - ldr x1, [x19,3848] + ldrb w3, [x19,3292] + ldr x1, [x19,3896] mul w3, w0, w3 - adrp x0, .LC184 - add x0, x0, :lo12:.LC184 + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 lsl w3, w3, 1 bl rknand_print_hex ldr x19, [sp,16] @@ -15582,8 +15470,8 @@ pm_ppa_update_check: mov w7, 1 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w4, [x5,3314] - ldrb w3, [x5,3312] + ldrh w4, [x5,3356] + ldrb w3, [x5,3354] sub w6, w6, w4 lsr w4, w2, w4 lsl w6, w7, w6 @@ -15596,19 +15484,19 @@ pm_ppa_update_check: ubfx x3, x3, 5, 3 cmp w3, 7 cset w4, eq - cbnz w4, .L2471 + cbnz w4, .L2517 cmp w3, w7 - bne .L2468 -.L2471: + bne .L2514 +.L2517: mov w3, w2 mov w2, w1 mov x1, x0 - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 bl printk bl dump_ftl_info mov w4, -1 -.L2468: +.L2514: mov w0, w4 ldp x29, x30, [sp], 16 ret @@ -15616,140 +15504,129 @@ pm_ppa_update_check: .align 2 .type load_l2p_region, %function load_l2p_region: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxth w23, w1 stp x21, x22, [sp,32] + uxth w22, w1 + str x23, [sp,48] stp x19, x20, [sp,16] - cmp w23, 31 - uxth w21, w0 - bls .L2474 + cmp w22, 31 + uxth w20, w0 + bls .L2520 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 552 + add x1, x1, 512 mov w2, 31 bl printk -.L2474: - adrp x20, .LANCHOR0 +.L2520: + adrp x21, .LANCHOR0 adrp x19, .LANCHOR7 - add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,2848] + add x21, x21, :lo12:.LANCHOR0 + ldr x0, [x21,2864] ldrh w2, [x0,698] - cmp w21, w2 - bls .L2475 - adrp x0, .LC186 - mov w1, w21 - add x0, x0, :lo12:.LC186 + cmp w20, w2 + bls .L2521 + adrp x0, .LC195 + mov w1, w20 + add x0, x0, :lo12:.LC195 add x19, x19, :lo12:.LANCHOR7 bl printk mov x0, 0 - ldrh w2, [x19,3282] + ldrh w2, [x19,-54] mov w1, 255 ldr x0, [x0,8] bl ftl_memset - ldr x0, [x20,2848] + ldr x0, [x21,2864] ldrh w0, [x0,698] - cmp w0, w21 - bcs .L2477 + cmp w0, w20 + bcs .L2523 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 552 + add x1, x1, 512 mov w2, 35 - b .L2481 -.L2475: - add x0, x0, x21, sxtw 2 - sbfiz x23, x23, 4, 32 - ldr w22, [x0,704] - add x0, x20, 3872 - add x24, x0, x23 - strh w21, [x0,x23] - strh wzr, [x24,2] - cbnz w22, .L2478 - adrp x0, .LC187 - mov w1, w21 - mov w2, w22 + b .L2527 +.L2521: + add x0, x0, x20, sxtw 2 + sbfiz x22, x22, 4, 32 + ldr w4, [x0,704] + add x0, x21, 3920 + add x23, x0, x22 + strh w20, [x0,x22] + strh wzr, [x23,2] + cbnz w4, .L2524 + adrp x0, .LC196 + mov w1, w20 + mov w2, w4 add x19, x19, :lo12:.LANCHOR7 - add x0, x0, :lo12:.LC187 + add x0, x0, :lo12:.LC196 bl printk - ldr x0, [x24,8] + ldr x0, [x23,8] mov w1, 255 - ldrh w2, [x19,3282] + ldrh w2, [x19,-54] bl ftl_memset - b .L2477 -.L2478: - add x23, x19, :lo12:.LANCHOR7 - ldrb w3, [x20,2816] - ldr x1, [x24,8] - mov w0, w22 - ldr x2, [x23,3272] + b .L2523 +.L2524: + add x22, x19, :lo12:.LANCHOR7 + ldrb w3, [x21,2832] + ldr x1, [x23,8] + mov w0, w4 + str x4, [x29,72] + ldr x2, [x22,-64] bl ftl_read_ppa_page mov w3, w0 - ldr x0, [x23,3272] + ldr x0, [x22,-64] + ldr x4, [x29,72] ldr w2, [x0] - cmp w2, w21 - beq .L2479 - adrp x0, .LC188 - mov w4, w22 - mov w1, w21 - add x0, x0, :lo12:.LC188 + cmp w2, w20 + beq .L2525 + adrp x0, .LC197 + mov w1, w20 + add x0, x0, :lo12:.LC197 bl printk - ldr x3, [x20,2848] - adrp x0, .LC189 - add x0, x0, :lo12:.LC189 + ldr x3, [x21,2864] + adrp x0, .LC198 + add x0, x0, :lo12:.LC198 mov w2, 4 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - ldrb w3, [x20,2816] - adrp x0, .LC190 - ldr x1, [x24,8] - add x0, x0, :lo12:.LC190 + ldrb w3, [x21,2832] + adrp x0, .LC199 + ldr x1, [x23,8] + add x0, x0, :lo12:.LC199 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - ldr x1, [x23,3272] - adrp x0, .LC191 - add x0, x0, :lo12:.LC191 + adrp x0, .LC200 + ldr x1, [x22,-64] + add x0, x0, :lo12:.LC200 mov w2, 4 mov w3, 16 bl rknand_print_hex - ldrh w0, [x20,3314] - mov w1, 21 - mov w2, 1 - sub w1, w1, w0 - lsr w22, w22, w0 - lsl w1, w2, w1 - ldrb w0, [x20,3312] - sub w1, w1, #1 - and w22, w1, w22 - mov x1, 0 - udiv w0, w22, w0 - bl ftl_sblk_dump -.L2479: +.L2525: add x19, x19, :lo12:.LANCHOR7 - ldr x0, [x19,3272] + ldr x0, [x19,-64] ldr w0, [x0] - cmp w0, w21 - beq .L2477 + cmp w0, w20 + beq .L2523 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 552 - mov w2, 57 -.L2481: + add x1, x1, 512 + mov w2, 59 +.L2527: bl printk -.L2477: +.L2523: mov w0, 0 + ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 80 ret .size load_l2p_region, .-load_l2p_region .align 2 @@ -15766,68 +15643,68 @@ pm_gc: adrp x19, .LANCHOR4 stp x21, x22, [sp,32] add x19, x19, :lo12:.LANCHOR4 - ldr x0, [x20,2848] + ldr x0, [x20,2864] ldrh w1, [x0,688] - ldrh w0, [x19,1132] + ldrh w0, [x19,1180] sub w0, w0, #1 cmp w1, w0 - blt .L2484 + blt .L2530 bl pm_free_sblk - ldr x2, [x20,2848] - ldrh w1, [x19,1132] + ldr x2, [x20,2864] + ldrh w1, [x19,1180] ldrh w3, [x2,688] sub w1, w1, #1 cmp w3, w1 - blt .L2484 + blt .L2530 add x0, x2, x0, uxth 1 ldrh w21, [x0,416] mov w0, 65535 cmp w21, w0 - bne .L2486 + bne .L2532 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 129 - add x1, x1, 568 + mov w2, 131 + add x1, x1, 528 add x0, x0, :lo12:.LC0 bl printk bl pm_free_sblk - ldr x1, [x20,2848] + ldr x1, [x20,2864] add x0, x1, x0, uxth 1 ldrh w21, [x0,416] -.L2486: +.L2532: bl pm_select_ram_region uxth x20, w0 add x0, x23, :lo12:.LANCHOR0 lsl x1, x20, 4 - add x0, x0, 3872 + add x0, x0, 3920 mov x22, x20 add x19, x0, x1 ldrh w0, [x0,x1] mov w1, 65535 cmp w0, w1 - beq .L2487 + beq .L2533 ldr x1, [x19,8] - cbz x1, .L2487 + cbz x1, .L2533 ldrsh w2, [x19,2] - tbz w2, #31, .L2487 + tbz w2, #31, .L2533 bl pm_write_page ldrh w0, [x19,2] and w0, w0, 32767 strh w0, [x19,2] -.L2487: +.L2533: add x23, x23, :lo12:.LANCHOR0 mov w19, 0 - add x0, x23, 3872 + add x0, x23, 3920 mov w24, 21 mov w25, 1 add x20, x0, x20, lsl 4 -.L2488: - ldr x0, [x23,2848] +.L2534: + ldr x0, [x23,2864] ldrh w1, [x0,698] cmp w1, w19 - bls .L2494 - ldrh w1, [x23,3314] + bls .L2540 + ldrh w1, [x23,3356] add x0, x0, x19, sxtw 2 ldr w0, [x0,704] lsr w0, w0, w1 @@ -15835,10 +15712,10 @@ pm_gc: lsl w1, w25, w1 sub w1, w1, #1 and w1, w0, w1 - ldrb w0, [x23,3312] + ldrb w0, [x23,3354] udiv w1, w1, w0 cmp w21, w1, uxth - bne .L2489 + bne .L2535 mov w1, w22 mov w0, w19 bl load_l2p_region @@ -15847,13 +15724,13 @@ pm_gc: bl pm_write_page mov w0, -1 strh w0, [x20] -.L2489: +.L2535: add w19, w19, 1 uxth w19, w19 - b .L2488 -.L2494: + b .L2534 +.L2540: bl pm_free_sblk -.L2484: +.L2530: mov w0, 0 ldr x25, [sp,64] ldp x19, x20, [sp,16] @@ -15872,7 +15749,7 @@ pm_flush_id: stp x19, x20, [sp,16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x1, x19, 3872 + add x1, x19, 3920 add x20, x1, x0 ldrh w0, [x1,x0] ldr x1, [x20,8] @@ -15880,11 +15757,11 @@ pm_flush_id: ldrh w0, [x20,2] and w0, w0, 32767 strh w0, [x20,2] - ldr w0, [x19,3864] - cbz w0, .L2496 + ldr w0, [x19,3912] + cbz w0, .L2542 bl pm_gc - str wzr, [x19,3864] -.L2496: + str wzr, [x19,3912] +.L2542: mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15900,17 +15777,17 @@ pm_flush: adrp x20, .LANCHOR0 mov x19, 0 add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 3872 -.L2502: + add x20, x20, 3920 +.L2548: add x1, x20, x19, lsl 4 uxth w0, w19 ldrsh w1, [x1,2] - tbz w1, #31, .L2501 + tbz w1, #31, .L2547 bl pm_flush_id -.L2501: +.L2547: add x19, x19, 1 cmp x19, 32 - bne .L2502 + bne .L2548 mov w0, 0 ldp x19, x20, [sp,16] ldp x29, x30, [sp], 32 @@ -15959,70 +15836,70 @@ pm_init: stp x27, x28, [sp,80] mov w23, w0 mov w0, 1 - strb w0, [x22,3280] + strb w0, [x22,-56] mov w0, 64 - str wzr, [x20,3864] - add x20, x20, 3872 + str wzr, [x20,3912] + add x20, x20, 3920 bl ftl_malloc mov w24, -1 - str x0, [x22,3272] + str x0, [x22,-64] add x22, x20, 512 -.L2508: +.L2554: strh w24, [x20] strh wzr, [x20,2] - cbz w23, .L2507 + cbz w23, .L2553 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] lsl w0, w0, 9 bl ftl_malloc str x0, [x20,8] -.L2507: +.L2553: add x20, x20, 16 cmp x20, x22 - bne .L2508 + bne .L2554 add x20, x19, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR7 mov w4, 4 - ldr x1, [x20,2848] - ldr x25, [x21,3272] - ldr x23, [x20,3880] + ldr x1, [x20,2864] + ldr x25, [x21,-64] + ldr x23, [x20,3928] ldrb w0, [x1,694] mov x3, x25 ldrh w1, [x1,692] mov x2, x23 bl flash_get_last_written_page sxth w21, w0 - ldr x1, [x20,2848] + ldr x1, [x20,2864] mov w24, w21 ldrh w2, [x1,696] cmp w2, w21 - bgt .L2509 - adrp x0, .LC192 + bgt .L2555 + adrp x0, .LC201 ldrh w1, [x1,692] mov w3, w21 - add x0, x0, :lo12:.LC192 - adrp x26, .LC193 + add x0, x0, :lo12:.LC201 + adrp x26, .LC202 add w21, w21, 1 bl printk - add x26, x26, :lo12:.LC193 - ldr x0, [x20,2848] + add x26, x26, :lo12:.LC202 + ldr x0, [x20,2864] ldrsh w20, [x0,696] -.L2510: +.L2556: cmp w20, w21 - bge .L2523 + bge .L2569 add x27, x19, :lo12:.LANCHOR0 mov x2, x23 mov x3, x25 - ldr x0, [x27,2848] - ldrh w22, [x27,3324] - ldrb w4, [x27,2816] + ldr x0, [x27,2864] + ldrh w22, [x27,3366] + ldrb w4, [x27,2832] ldrh w1, [x0,692] ldrb w0, [x0,694] madd w22, w1, w22, w20 mov w1, w22 bl flash_read_page_en mov w28, w0 - ldr x3, [x27,2848] + ldr x3, [x27,2864] mov x0, x26 mov w2, w22 ldr w1, [x3,48] @@ -16032,36 +15909,36 @@ pm_init: ldr w1, [x25] bl printk cmp w28, 512 - beq .L2511 + beq .L2557 cmn w28, #1 - beq .L2511 - ldr x1, [x27,2848] + beq .L2557 + ldr x1, [x27,2864] ldr w0, [x25] ldrh w2, [x1,698] cmp w0, w2 - bcs .L2511 + bcs .L2557 add x0, x1, x0, uxtw 2 str w22, [x0,704] -.L2511: +.L2557: add w20, w20, 1 sxth w20, w20 - b .L2510 -.L2523: + b .L2556 +.L2569: add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LANCHOR6-127 + adrp x0, .LANCHOR5+641 mov w1, 1 add w24, w24, 1 - strb w1, [x0,#:lo12:.LANCHOR6-127] - ldr x0, [x19,2848] + strb w1, [x0,#:lo12:.LANCHOR5+641] + ldr x0, [x19,2864] strh w24, [x0,696] bl pm_free_sblk - ldr x1, [x19,3880] + ldr x1, [x19,3928] mov w0, -1 bl pm_write_page - ldr x1, [x19,3880] + ldr x1, [x19,3928] mov w0, -1 bl pm_write_page -.L2509: +.L2555: bl pm_free_sblk bl pm_gc mov w0, 0 @@ -16089,9 +15966,9 @@ pm_log2phys: stp x23, x24, [sp,48] mov w23, w2 mov x19, 0 - ldrb w4, [x3,2816] - ldr w2, [x3,2824] - add x3, x3, 3872 + ldrb w4, [x3,2832] + ldr w2, [x3,2840] + add x3, x3, 3920 lsl w20, w4, 7 lsl w24, w4, 7 cmp w0, w2 @@ -16099,85 +15976,85 @@ pm_log2phys: uxth w25, w20 msub w24, w25, w24, w0 uxth x24, w24 - bcc .L2536 - adrp x0, .LC194 + bcc .L2582 + adrp x0, .LC203 mov w1, w5 - add x0, x0, :lo12:.LC194 + add x0, x0, :lo12:.LC203 bl printk mov w0, -1 - b .L2526 -.L2540: + b .L2572 +.L2586: ldrh w0, [x3] cmp w0, w25 - beq .L2528 -.L2527: + beq .L2574 +.L2573: add w19, w19, 1 add x3, x3, 16 uxth x19, w19 cmp w19, 32 - beq .L2539 -.L2536: + beq .L2585 +.L2582: ldr x0, [x3,8] - cbnz x0, .L2540 - b .L2527 -.L2539: + cbnz x0, .L2586 + b .L2573 +.L2585: bl pm_select_ram_region uxth x19, w0 add x2, x21, :lo12:.LANCHOR0 sbfiz x3, x19, 4, 32 - add x2, x2, 3872 + add x2, x2, 3920 mov w1, w0 add x4, x2, x3 ldrh w3, [x2,x3] mov w2, 65535 cmp w3, w2 - bne .L2541 -.L2532: - adrp x0, .LANCHOR7+3284 - strb w19, [x0,#:lo12:.LANCHOR7+3284] + bne .L2587 +.L2578: + adrp x0, .LANCHOR7-52 + strb w19, [x0,#:lo12:.LANCHOR7-52] mov w0, w25 bl load_l2p_region -.L2528: - cbnz w23, .L2529 +.L2574: + cbnz w23, .L2575 add x0, x21, :lo12:.LANCHOR0 add x0, x0, x19, lsl 4 - ldr x0, [x0,3880] + ldr x0, [x0,3928] ldr w0, [x0,x24,lsl 2] str w0, [x22] - b .L2530 -.L2529: + b .L2576 +.L2575: add x0, x21, :lo12:.LANCHOR0 ldr w2, [x22] - add x0, x0, 3872 + add x0, x0, 3920 add x0, x0, x19, lsl 4 ldr x1, [x0,8] str w2, [x1,x24,lsl 2] ldrh w1, [x0,2] orr w1, w1, -32768 strh w1, [x0,2] - adrp x0, .LANCHOR4+32 - strb w20, [x0,#:lo12:.LANCHOR4+32] -.L2530: + adrp x0, .LANCHOR4+80 + strb w20, [x0,#:lo12:.LANCHOR4+80] +.L2576: add x21, x21, :lo12:.LANCHOR0 mov w2, 32767 - add x21, x21, 3872 + add x21, x21, 3920 mov w0, 0 add x19, x21, x19, lsl 4 ldrh w1, [x19,2] and w3, w1, 32767 cmp w3, w2 - beq .L2526 + beq .L2572 add w1, w1, 1 strh w1, [x19,2] - b .L2526 -.L2541: + b .L2572 +.L2587: ldrsh w2, [x4,2] - tbz w2, #31, .L2532 + tbz w2, #31, .L2578 str x1, [x29,88] bl pm_flush_id ldr x1, [x29,88] - b .L2532 -.L2526: + b .L2578 +.L2572: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -16197,72 +16074,69 @@ ftl_read_ahead: add x23, x20, :lo12:.LANCHOR0 stp x21, x22, [sp,32] mov w21, 0 - ldr w0, [x23,2868] + ldr w0, [x23,2892] cmn w0, #1 - beq .L2543 + beq .L2589 mov w0, w21 bl buf_alloc mov x19, x0 mov w0, -1 - cbz x19, .L2552 - ldr w22, [x23,2868] + cbz x19, .L2598 + ldr w22, [x23,2892] str w22, [x19,36] - str w0, [x23,2868] + str w0, [x23,2892] mov w0, w22 ldr x24, [x19,8] ldr x23, [x19,24] bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2545 + bne .L2591 mov w0, w22 add x1, x29, 76 mov w2, w21 bl pm_log2phys -.L2545: +.L2591: ldr w1, [x29,76] str w1, [x19,40] str w1, [x19,44] cmn w1, #1 - bne .L2546 + bne .L2592 add x20, x20, :lo12:.LANCHOR0 mov x0, x24 mov w1, 0 - ldrb w2, [x20,2816] + ldrb w2, [x20,2832] lsl w2, w2, 9 bl ftl_memset ldrb w0, [x19,2] orr w0, w0, 8 strb w0, [x19,2] - b .L2557 -.L2546: + b .L2603 +.L2592: mov x0, x19 mov w1, 1 bl sblk_read_page ldr w24, [x19,52] cmn w24, #1 - bne .L2547 - ldrb w0, [x19,2] + bne .L2593 add x20, x20, :lo12:.LANCHOR0 - and w0, w0, -9 - strb w0, [x19,2] - ldr x1, [x20,80] + ldr x1, [x20,88] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2548 -.L2547: + b .L2594 +.L2593: cmp w24, 256 - bne .L2548 + bne .L2594 add x20, x20, :lo12:.LANCHOR0 mov w5, 21 mov w21, 1 ldr w4, [x29,76] ldr w2, [x19,36] - adrp x0, .LC195 - ldrh w3, [x20,3314] - add x0, x0, :lo12:.LC195 - ldrb w20, [x20,3312] + adrp x0, .LC204 + ldrh w3, [x20,3356] + add x0, x0, :lo12:.LC204 + ldrb w20, [x20,3354] sub w5, w5, w3 lsr w3, w4, w3 lsl w5, w21, w5 @@ -16276,40 +16150,40 @@ ftl_read_ahead: mov w1, w21 mov w2, 0 bl gc_add_sblk -.L2548: +.L2594: ldr w5, [x23,4] cmp w5, w22 - beq .L2549 - adrp x0, .LC196 + beq .L2595 + adrp x0, .LC205 ldrb w1, [x19,1] ldr w3, [x29,76] - add x0, x0, :lo12:.LC196 + add x0, x0, :lo12:.LC205 ldr w4, [x23] mov w2, w22 ldr w6, [x23,8] ldr w7, [x23,12] bl printk -.L2549: +.L2595: ldr w0, [x23,4] cmp w0, w22 cset w21, ne - cbnz w21, .L2554 + cbnz w21, .L2600 cmn w24, #1 - bne .L2543 -.L2554: + bne .L2589 +.L2600: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 576 - mov w2, 874 + add x1, x1, 536 + mov w2, 892 bl printk -.L2557: +.L2603: mov w21, 0 - b .L2543 -.L2552: + b .L2589 +.L2598: mov w21, w0 -.L2543: +.L2589: mov w0, w21 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -16321,423 +16195,412 @@ ftl_read_ahead: .global gc_recovery .type gc_recovery, %function gc_recovery: - sub sp, sp, #208 + sub sp, sp, #192 stp x29, x30, [sp,32] add x29, sp, 32 stp x19, x20, [sp,48] - adrp x19, .LANCHOR0 + adrp x20, .LANCHOR0 stp x23, x24, [sp,80] - add x24, x19, :lo12:.LANCHOR0 + add x24, x20, :lo12:.LANCHOR0 + adrp x23, .LANCHOR4 stp x21, x22, [sp,64] stp x25, x26, [sp,96] stp x27, x28, [sp,112] - adrp x22, .LANCHOR4 - strb wzr, [x24,3241] - add x0, x22, :lo12:.LANCHOR4 - ldr x20, [x24,80] - add x21, x20, 80 - strb wzr, [x0,1098] + add x0, x23, :lo12:.LANCHOR4 + strb wzr, [x24,3289] + ldr x21, [x24,88] + strb wzr, [x0,1146] bl gc_init - ldrh w1, [x20,80] + ldrh w1, [x21,80] mov w0, 65535 - str x22, [x29,152] + str x23, [x29,136] + add x22, x21, 80 cmp w1, w0 - ldr x0, [x24,80] - beq .L2559 + ldr x0, [x24,88] + beq .L2605 mov w1, -1 strh w1, [x0,130] mov w0, 1 bl buf_alloc - mov x23, x0 - ldrb w0, [x21,9] - ldrh w1, [x24,3324] + mov x19, x0 + ldrb w0, [x22,9] + ldrh w1, [x24,3366] sub w0, w0, #1 - add x0, x21, x0, sxtw 1 + add x0, x22, x0, sxtw 1 ldrh w0, [x0,16] mul w0, w0, w1 - ldrb w1, [x24,3225] - str w0, [x29,168] + ldrb w1, [x24,3273] + str w0, [x29,152] cmp w1, 3 - bne .L2560 - ldrh w1, [x24,3276] + bne .L2606 + ldrh w1, [x24,3316] sub w1, w1, #1 add w0, w1, w0 orr w0, w0, 50331648 - b .L2606 -.L2560: + b .L2649 +.L2606: cmp w1, 2 - bne .L2561 - ldrh w1, [x24,3276] + bne .L2607 + ldrh w1, [x24,3316] add w0, w0, w1, lsl 1 sub w0, w0, #1 orr w0, w0, 33554432 -.L2606: - str w0, [x23,40] -.L2561: - mov x0, x23 +.L2649: + str w0, [x19,40] +.L2607: + mov x0, x19 mov w1, 1 bl sblk_read_page - ldr w0, [x23,52] + ldr w0, [x19,52] cmp w0, 512 - beq .L2562 + beq .L2608 cmn w0, #1 - beq .L2562 - ldr x0, [x23,24] + beq .L2608 + ldr x0, [x19,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2563 -.L2562: - mov x0, x23 + beq .L2609 +.L2608: + mov x0, x19 bl buf_free - ldr x7, [x23,24] - ldr x6, [x23,8] + ldr x7, [x19,24] + ldr x6, [x19,8] ldr w0, [x7,4] str w0, [sp] ldr w0, [x7,8] str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC197 - add x0, x0, :lo12:.LC197 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] - ldr w1, [x23,40] - ldr w2, [x23,52] + ldr w1, [x19,40] + ldr w2, [x19,52] ldr w6, [x6,12] ldr w7, [x7] bl printk - b .L2609 -.L2563: - add x24, x19, :lo12:.LANCHOR0 - ldr x0, [x29,152] - ldr x1, [x23,8] + b .L2652 +.L2609: + add x24, x20, :lo12:.LANCHOR0 + ldr x0, [x29,136] + ldr x1, [x19,8] add x25, x0, :lo12:.LANCHOR4 - ldrb w2, [x24,3244] - ldrh w0, [x24,3242] + ldrb w2, [x24,3292] + ldrh w0, [x24,3290] mul w2, w0, w2 - ldr x0, [x25,1104] + ldr x0, [x25,1152] lsl w2, w2, 2 bl ftl_memcpy - ldrh w0, [x24,3242] - ldrb w2, [x24,3244] - ldr x1, [x23,8] + ldrh w0, [x24,3290] + ldrb w2, [x24,3292] + ldr x1, [x19,8] mul w2, w0, w2 add x1, x1, x2, sxtw 2 - ldr x0, [x25,1112] + ldr x0, [x25,1160] lsl w2, w2, 2 bl ftl_memcpy - ldrb w27, [x24,3225] - ldrh w26, [x24,3276] - cmp w27, 2 - bne .L2565 - lsl w26, w26, 1 - mov w27, 1 -.L2565: - mov w22, 0 - adrp x24, .LC198 - add x0, x24, :lo12:.LC198 - mov w25, w22 - str x0, [x29,128] - b .L2566 + ldrb w26, [x24,3273] + ldrh w25, [x24,3316] + cmp w26, 2 + bne .L2611 + lsl w25, w25, 1 + mov w26, 1 .L2611: - ldr x0, [x0,1112] + mov w23, 0 + adrp x24, .LC207 + add x0, x24, :lo12:.LC207 + mov w27, w23 + str x0, [x29,112] + b .L2612 +.L2654: + ldr x0, [x0,1160] ldr w1, [x0,x12] ldr w0, [x7,8] cmp w1, w0 - bne .L2570 -.L2595: - add w25, w25, 1 + bne .L2616 +.L2639: + add w27, w27, 1 add w28, w28, 1 -.L2574: - cmp w28, w27 - bhi .L2610 - ldr x0, [x29,144] - add x1, x19, :lo12:.LANCHOR0 +.L2620: + cmp w28, w26 + bhi .L2653 + ldr x0, [x29,128] + add x1, x20, :lo12:.LANCHOR0 add x0, x0, 8 - ldrh w2, [x1,3324] - ldrb w1, [x1,3225] - ldrh w0, [x21,x0,lsl 1] + ldrh w2, [x1,3366] + ldrb w1, [x1,3273] + ldrh w0, [x22,x0,lsl 1] cmp w1, 3 mul w0, w0, w2 - str w0, [x29,168] - bne .L2567 - add w0, w0, w22 + str w0, [x29,152] + bne .L2613 + add w0, w0, w23 orr w0, w0, w28, lsl 24 -.L2607: - str w0, [x23,40] +.L2650: + str w0, [x19,40] mov w1, 1 - mov x0, x23 + mov x0, x19 bl sblk_read_page - ldr x0, [x29,152] - sbfiz x12, x25, 2, 32 - ldr x7, [x23,24] + ldr x0, [x29,136] + sbfiz x12, x27, 2, 32 + ldr x7, [x19,24] add x0, x0, :lo12:.LANCHOR4 ldr w6, [x7,4] - ldr x1, [x0,1104] + ldr x1, [x0,1152] ldr w3, [x1,x12] cmp w3, w6 - beq .L2611 -.L2570: - ldr x0, [x29,152] - str x12, [x29,120] + beq .L2654 +.L2616: + ldr x0, [x29,136] + str x12, [x29,104] add x13, x0, :lo12:.LANCHOR4 ldr w0, [x7,12] - str x13, [x29,112] - ldr x4, [x13,1112] + str x13, [x29,96] + ldr x4, [x13,1160] str w0, [sp] - ldr x0, [x29,128] + ldr x0, [x29,112] ldr w4, [x4,x12] ldr w5, [x7] - ldr w1, [x23,40] - ldr w2, [x23,52] + ldr w1, [x19,40] + ldr w2, [x19,52] ldr w7, [x7,8] bl printk - ldr x13, [x29,112] - ldr x12, [x29,120] - ldr x0, [x13,1104] + ldr x13, [x29,96] + ldr x12, [x29,104] + ldr x0, [x13,1152] ldr w0, [x0,x12] cmn w0, #1 - beq .L2595 - mov x0, x23 + beq .L2639 + mov x0, x19 bl buf_free -.L2609: - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x20,80] +.L2652: + add x0, x20, :lo12:.LANCHOR0 + ldrh w2, [x21,80] mov w28, 0 - ldr x1, [x0,72] + ldr x1, [x0,80] strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,80] - ldrh w1, [x20,80] + ldr x0, [x0,88] + ldrh w1, [x21,80] strh w1, [x0,130] - b .L2564 -.L2573: - add w22, w22, 1 -.L2566: - cmp w22, w26 - beq .L2575 - sub w0, w22, #1 + b .L2610 +.L2619: + add w23, w23, 1 +.L2612: + cmp w23, w25 + beq .L2621 + sub w0, w23, #1 mov w24, 0 - str w0, [x29,140] -.L2576: - ldrb w0, [x21,9] + str w0, [x29,124] +.L2622: + ldrb w0, [x22,9] cmp w24, w0 - bge .L2573 + bge .L2619 sxtw x0, w24 mov w28, 1 - str x0, [x29,144] - b .L2574 -.L2567: + str x0, [x29,128] + b .L2620 +.L2613: cmp w1, 2 - bne .L2569 - ldr w1, [x29,140] + bne .L2615 + ldr w1, [x29,124] add w0, w0, w1 add w0, w0, w28 orr w0, w0, 33554432 - b .L2607 -.L2569: - add w0, w0, w22 - b .L2607 -.L2610: + b .L2650 +.L2615: + add w0, w0, w23 + b .L2650 +.L2653: add w24, w24, 1 - b .L2576 -.L2575: - mov x0, x23 + b .L2622 +.L2621: + mov x0, x19 mov w28, 0 - mov w23, w28 + mov w27, w28 bl buf_free - str w28, [x29,144] - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,9] - ldrh w3, [x20,80] - ldr x2, [x0,72] - ldrh w0, [x0,3242] + str w28, [x29,128] + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x22,9] + ldrh w3, [x21,80] + ldr x2, [x0,80] + ldrh w0, [x0,3290] mul w0, w1, w0 strh w0, [x2,x3,lsl 1] - adrp x0, .LC199 - add x0, x0, :lo12:.LC199 - str x0, [x29,104] -.L2577: +.L2623: + cmp w27, w25 + beq .L2634 + sub w0, w27, #1 + mov w24, 0 + str w0, [x29,104] +.L2635: + ldrb w0, [x22,9] + cmp w24, w0 + bge .L2632 + sxtw x0, w24 + mov w23, 1 + str x0, [x29,112] +.L2633: cmp w23, w26 - beq .L2590 - sub w0, w23, #1 - mov w25, 0 - str w0, [x29,112] -.L2591: - ldrb w0, [x21,9] - cmp w25, w0 - bge .L2588 - sxtw x0, w25 - mov w24, 1 - str x0, [x29,120] -.L2589: - cmp w24, w27 - bhi .L2612 - ldr x1, [x29,152] - ldr w0, [x29,144] + bhi .L2655 + ldr x1, [x29,136] + ldr w0, [x29,128] add x1, x1, :lo12:.LANCHOR4 sbfiz x0, x0, 2, 32 - ldr x2, [x1,1104] - ldr w22, [x2,x0] - cmn w22, #1 - beq .L2578 - ldr x1, [x1,1112] + ldr x2, [x1,1152] + ldr w6, [x2,x0] + cmn w6, #1 + beq .L2624 + ldr x1, [x1,1160] + str x6, [x29,96] ldr w0, [x1,x0] - str w0, [x29,140] - mov w0, w22 + str w0, [x29,124] + mov w0, w6 bl lpa_hash_get_ppa - str w0, [x29,172] + str w0, [x29,156] cmn w0, #1 - bne .L2579 - mov w0, w22 - add x1, x29, 172 + ldr x6, [x29,96] + bne .L2625 + mov w0, w6 + add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2579: - ldr x0, [x29,120] + ldr x6, [x29,96] +.L2625: + ldr x0, [x29,112] add x0, x0, 8 - ldrh w3, [x21,x0,lsl 1] - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,3324] - ldrb w0, [x0,3225] + ldrh w1, [x22,x0,lsl 1] + add x0, x20, :lo12:.LANCHOR0 + ldrh w2, [x0,3366] + ldrb w0, [x0,3273] cmp w0, 3 - mul w3, w3, w1 - bne .L2580 - add w3, w3, w23 - orr w3, w3, w24, lsl 24 - b .L2608 -.L2580: + mul w1, w1, w2 + bne .L2626 + add w1, w1, w27 + orr w1, w1, w23, lsl 24 + b .L2651 +.L2626: cmp w0, 2 - bne .L2582 - ldr w0, [x29,112] - add w3, w3, w0 - add w3, w3, w24 - orr w3, w3, 33554432 - b .L2608 -.L2582: - add w3, w3, w23 -.L2608: - add x0, x19, :lo12:.LANCHOR0 - str w3, [x29,168] - ldr w1, [x29,140] - mov w4, 21 + bne .L2628 + ldr w0, [x29,104] + add w1, w1, w0 + add w1, w1, w23 + orr w1, w1, 33554432 + b .L2651 +.L2628: + add w1, w1, w27 +.L2651: + add x0, x20, :lo12:.LANCHOR0 + ldr w2, [x29,124] + str w1, [x29,152] + ldrh w1, [x0,3356] + lsr w19, w2, w1 + mov w2, 21 + sub w1, w2, w1 mov w2, 1 - ldrh w3, [x0,3314] - ldrb w0, [x0,3312] - lsr w1, w1, w3 - sub w3, w4, w3 - lsl w3, w2, w3 - sub w3, w3, #1 - and w3, w1, w3 - ldr w1, [x29,140] - udiv w3, w3, w0 - uxth w0, w3 - str w0, [x29,128] - ldr w0, [x29,172] + lsl w1, w2, w1 + sub w1, w1, #1 + and w1, w19, w1 + ldrb w19, [x0,3354] + ldr w0, [x29,156] + udiv w19, w1, w19 + ldr w1, [x29,124] cmp w0, w1 - bne .L2583 - ldr x0, [x29,104] - mov w1, w22 - ldr w2, [x29,168] - bl pm_ppa_update_check - cbz w0, .L2584 -.L2605: - b .L2605 -.L2584: - mov w0, w22 - add x1, x29, 168 - mov w2, 1 + uxth x19, w19 + bne .L2629 + mov w0, w6 + add x1, x29, 152 add w28, w28, 1 bl pm_log2phys - ldrh w0, [x29,128] + mov w0, w19 bl ftl_vpn_decrement - b .L2586 -.L2583: - ldr w1, [x29,168] + b .L2630 +.L2629: + ldr w1, [x29,152] cmp w0, w1 csinc w28, w28, w28, ne -.L2586: - ldr w0, [x29,144] - add x2, x19, :lo12:.LANCHOR0 - add w0, w0, 1 - str w0, [x29,144] +.L2630: ldr w0, [x29,128] - ldr x1, [x2,64] - add x1, x1, x0, lsl 2 - ldrb w1, [x1,2] - ands w1, w1, 224 - bne .L2578 - lsl x0, x0, 1 - ldr x2, [x2,72] - ldrh w3, [x2,x0] - cbz w3, .L2578 - strh w1, [x2,x0] -.L2578: - add w24, w24, 1 - b .L2589 -.L2612: - add w25, w25, 1 - b .L2591 -.L2588: + add x1, x20, :lo12:.LANCHOR0 + add w0, w0, 1 + str w0, [x29,128] + ldr x0, [x1,64] + add x0, x0, x19, lsl 2 + ldrb w0, [x0,2] + ands w0, w0, 224 + bne .L2624 + lsl x19, x19, 1 + ldr x1, [x1,80] + ldrh w2, [x1,x19] + cbz w2, .L2624 + strh w0, [x1,x19] +.L2624: add w23, w23, 1 - b .L2577 -.L2590: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - ldr x0, [x0,72] + b .L2633 +.L2655: + add w24, w24, 1 + b .L2635 +.L2632: + add w27, w27, 1 + b .L2623 +.L2634: + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x21,80] + ldr x0, [x0,80] strh w28, [x0,x1,lsl 1] -.L2564: - ldrh w1, [x20,80] - adrp x0, .LC200 +.L2610: + ldrh w1, [x21,80] + adrp x0, .LC208 mov w2, w28 - add x0, x0, :lo12:.LC200 + add x0, x0, :lo12:.LC208 bl printk mov w0, -1 - strh w0, [x20,80] + strh w0, [x21,80] bl pm_flush bl ftl_ext_info_flush - add x0, x19, :lo12:.LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 mov w1, 65535 - ldr x0, [x0,80] + ldr x0, [x0,88] ldrh w0, [x0,130] cmp w0, w1 - beq .L2592 + beq .L2636 bl ftl_free_sblk -.L2592: - add x19, x19, :lo12:.LANCHOR0 +.L2636: + add x20, x20, :lo12:.LANCHOR0 mov w0, -1 - ldr x1, [x19,2848] + ldr x1, [x20,2864] strh w0, [x1,126] - ldr x1, [x19,80] + ldr x1, [x20,88] strh w0, [x1,130] mov w0, 0 bl ftl_info_flush - b .L2558 -.L2559: + b .L2604 +.L2605: ldrh w0, [x0,130] cmp w0, w1 - beq .L2558 - ldr x1, [x24,2848] + beq .L2604 + ldr x1, [x24,2864] ldrh w1, [x1,126] cmp w1, w0 - bne .L2594 + bne .L2638 bl pm_flush - ldr x0, [x24,80] + ldr x0, [x24,88] ldrh w0, [x0,130] bl ftl_free_sblk - ldr x0, [x24,2848] + ldr x0, [x24,2864] mov w1, -1 strh w1, [x0,126] mov w0, 0 bl ftl_info_flush -.L2594: - add x19, x19, :lo12:.LANCHOR0 +.L2638: + add x20, x20, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,80] + ldr x0, [x20,88] strh w1, [x0,130] -.L2558: +.L2604: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -16745,7 +16608,7 @@ gc_recovery: ldp x25, x26, [sp,96] ldp x27, x28, [sp,112] ldp x29, x30, [sp,32] - add sp, sp, 208 + add sp, sp, 192 ret .size gc_recovery, .-gc_recovery .align 2 @@ -16753,241 +16616,261 @@ gc_recovery: .type zftl_init, %function zftl_init: stp x29, x30, [sp, -64]! - adrp x1, .LANCHOR5+513 mov w0, -1 add x29, sp, 0 stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - strb w0, [x1,#:lo12:.LANCHOR5+513] - add x20, x19, :lo12:.LANCHOR0 - adrp x1, .LC2 stp x21, x22, [sp,32] + adrp x19, .LANCHOR0 + adrp x22, .LANCHOR4 + add x20, x19, :lo12:.LANCHOR0 + add x1, x22, :lo12:.LANCHOR4 stp x23, x24, [sp,48] - strb w0, [x20,2866] + adrp x21, .LANCHOR7 + strb w0, [x20,2888] + strb w0, [x1,1282] mov w0, -1 - str w0, [x20,2868] + adrp x1, .LC2 + str w0, [x20,2892] adrp x0, .LC1 add x1, x1, :lo12:.LC2 add x0, x0, :lo12:.LC1 - strb wzr, [x20,2840] - adrp x21, .LANCHOR7 - strb wzr, [x20,2841] + strb wzr, [x20,2856] + strb wzr, [x20,2857] bl printk - adrp x7, .LANCHOR2 - ldrb w4, [x20,98] - add x2, x7, :lo12:.LANCHOR2 - strb w4, [x20,3326] - ldrh w5, [x20,210] - strh w5, [x20,3324] - ldrb w3, [x2,389] - strb w3, [x20,3312] - ldrb w6, [x2,388] - mul w3, w3, w4 - ldrh w1, [x2,386] - ldrb w0, [x2,385] - uxtb w4, w3 - add x3, x21, :lo12:.LANCHOR7 - ldrh w8, [x2,390] - ubfiz w11, w0, 9, 7 - sdiv w9, w1, w6 - strb w6, [x20,3225] - strb w0, [x20,2816] + adrp x11, .LANCHOR2 + ldrb w6, [x20,114] + add x1, x11, :lo12:.LANCHOR2 + strb w6, [x20,3368] + ldrh w4, [x20,226] + strh w4, [x20,3366] + ldrb w2, [x1,389] + ldrb w8, [x1,388] + ldrh w3, [x1,386] + strb w2, [x20,3354] + mul w6, w2, w6 + add x2, x21, :lo12:.LANCHOR7 + ldrb w0, [x1,385] + ldrh w7, [x1,390] + mov w1, 0 + sdiv w9, w3, w8 + strb w8, [x20,3273] + strb w0, [x20,2832] + uxtb w6, w6 + strh w3, [x20,3290] + ubfiz w10, w0, 9, 7 + strh w9, [x20,3316] + strb w6, [x20,3292] + strh w7, [x20,56] + mov x20, x11 + strh w10, [x2,-54] + mov w2, 1 +.L2657: + cmp w2, w4 + bhi .L2723 + add w1, w1, 1 + lsl w2, w2, 1 + uxth w1, w1 + b .L2657 +.L2723: + mul w3, w0, w3 + add x2, x19, :lo12:.LANCHOR0 + sub w1, w1, #1 + mul w5, w3, w7 + strh w1, [x2,3356] + mov w1, 1 + lsr w4, w5, 21 mov w2, 0 - strh w1, [x20,3242] - strh w9, [x20,3276] - strb w4, [x20,3244] - strh w8, [x20,56] - mov x20, x7 - strh w11, [x3,3282] - mov w3, 1 -.L2614: - cmp w3, w5 - bhi .L2678 +.L2659: + cmp w1, w4 + bhi .L2724 add w2, w2, 1 - lsl w3, w3, 1 + lsl w1, w1, 1 uxth w2, w2 - b .L2614 -.L2678: - mul w3, w0, w1 + b .L2659 +.L2724: mov w1, 57344 - add x7, x19, :lo12:.LANCHOR0 + mov w4, 1 movk w1, 0x1c, lsl 16 sub w2, w2, #1 - mul w5, w3, w8 - mul w1, w4, w1 - strh w2, [x7,3314] - lsr w2, w5, 21 - mul w5, w5, w4 + lsl w2, w4, w2 + add x4, x19, :lo12:.LANCHOR0 + mul w1, w6, w1 + mul w5, w5, w6 + str w5, [x4,2836] + add x11, x21, :lo12:.LANCHOR7 mul w1, w1, w2 - str w5, [x7,2820] - add x10, x21, :lo12:.LANCHOR7 + mul w9, w9, w6 add w5, w1, 24576 - adrp x22, .LANCHOR4 - mul w3, w3, w4 + str w5, [x11,-48] + mul w3, w3, w6 udiv w2, w5, w0 - sub w0, w11, #1 - str w2, [x7,2824] + sub w0, w10, #1 + str w2, [x4,2840] sub w3, w3, #1 - str w5, [x10,3288] - str w1, [x7,4] + str w1, [x4,4] add w0, w0, w2, lsl 2 - mul w2, w9, w4 - udiv w0, w0, w11 - strh w0, [x10,3266] - add x10, x22, :lo12:.LANCHOR4 + add x2, x22, :lo12:.LANCHOR4 + udiv w5, w5, w3 + add w5, w5, 8 + strh w5, [x4,3324] + udiv w0, w0, w10 + strh w0, [x11,-44] ubfiz w0, w0, 4, 16 - sdiv w0, w0, w2 - strh w0, [x10,1132] - add w0, w8, w8, lsl 1 + sdiv w0, w0, w9 + strh w0, [x2,1180] + add w0, w7, w7, lsl 1 asr w0, w0, 2 - strh w0, [x7,3320] - udiv w3, w5, w3 - lsr w0, w8, 4 + strh w0, [x4,3360] + lsr w0, w7, 4 + strh w0, [x4,3322] cmp w0, 79 - strh w0, [x7,3280] - add w3, w3, 8 - strh w3, [x7,3282] - bhi .L2616 + bhi .L2661 mov w0, 80 - strh w0, [x7,3280] -.L2616: - add x2, x19, :lo12:.LANCHOR0 - mov w0, 4000 - mov w3, 1024 - cmp w6, 2 - strh w0, [x2,3316] - mov w0, 50 - strh w0, [x2,3318] - add x0, x22, :lo12:.LANCHOR4 - strh w3, [x0,1128] - mov w3, 64 - strh w3, [x0,1130] - beq .L2617 - ldrb w0, [x2,3240] - cbz w0, .L2618 -.L2617: + strh w0, [x4,3322] +.L2661: + add x0, x19, :lo12:.LANCHOR0 + mov w2, 2000 + mov w3, 256 + cmp w8, 2 + strh w2, [x0,3362] + mov w2, 50 + strh w2, [x0,3358] + add x2, x22, :lo12:.LANCHOR4 + strh w3, [x2,1176] + mov w3, 48 + strh w3, [x2,1178] + mov w2, 32 + strh w2, [x0,72] + beq .L2662 + ldrb w0, [x0,3288] + cbz w0, .L2663 +.L2662: add x0, x19, :lo12:.LANCHOR0 mov w2, 150 - mov w3, 128 - strh w2, [x0,3318] + mov w3, 64 + strh w2, [x0,3358] add x2, x22, :lo12:.LANCHOR4 - strh w3, [x2,1130] - ldrb w3, [x0,97] - cbnz w3, .L2618 + strh w3, [x2,1178] + mov w3, 12 + strh w3, [x0,72] + ldrb w3, [x0,113] + cbnz w3, .L2663 + mov w3, 4 + strh w3, [x0,72] mov w3, 600 - strh w3, [x0,3316] - mov w0, 512 - strh w0, [x2,1128] -.L2618: + strh w3, [x0,3362] + mov w0, 128 + strh w0, [x2,1176] +.L2663: ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2620 - adrp x0, .LC201 - add x0, x0, :lo12:.LC201 - bl printk -.L2620: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2621 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC202 - add x0, x0, :lo12:.LC202 - ldr w1, [x1,2820] - bl printk -.L2621: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2622 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC203 - add x0, x0, :lo12:.LC203 - ldr w1, [x1,2824] - bl printk -.L2622: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2623 - add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC204 - add x0, x0, :lo12:.LC204 - ldr w1, [x1,3288] - bl printk -.L2623: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2624 - add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC205 - add x0, x0, :lo12:.LC205 - ldrh w1, [x1,3266] - bl printk -.L2624: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2625 - add x1, x21, :lo12:.LANCHOR7 - adrp x0, .LC206 - add x0, x0, :lo12:.LC206 - ldrh w1, [x1,3282] - bl printk -.L2625: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2626 - add x1, x22, :lo12:.LANCHOR4 - adrp x0, .LC207 - add x0, x0, :lo12:.LC207 - ldrh w1, [x1,1132] - bl printk -.L2626: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2627 - add x1, x19, :lo12:.LANCHOR0 - adrp x0, .LC208 - add x0, x0, :lo12:.LC208 - ldrh w1, [x1,3280] - bl printk -.L2627: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2628 - add x1, x19, :lo12:.LANCHOR0 + tbz x0, 12, .L2665 adrp x0, .LC209 add x0, x0, :lo12:.LC209 - ldrh w1, [x1,3282] bl printk -.L2628: +.L2665: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2666 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 + ldr w1, [x1,2836] + bl printk +.L2666: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2667 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC211 + add x0, x0, :lo12:.LC211 + ldr w1, [x1,2840] + bl printk +.L2667: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2668 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC212 + add x0, x0, :lo12:.LC212 + ldr w1, [x1,-48] + bl printk +.L2668: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2669 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC213 + add x0, x0, :lo12:.LC213 + ldrh w1, [x1,-44] + bl printk +.L2669: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2670 + add x1, x21, :lo12:.LANCHOR7 + adrp x0, .LC214 + add x0, x0, :lo12:.LC214 + ldrh w1, [x1,-54] + bl printk +.L2670: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2671 + add x22, x22, :lo12:.LANCHOR4 + adrp x0, .LC215 + add x0, x0, :lo12:.LC215 + ldrh w1, [x22,1180] + bl printk +.L2671: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2672 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC216 + add x0, x0, :lo12:.LC216 + ldrh w1, [x1,3322] + bl printk +.L2672: + ldr w0, [x20,#:lo12:.LANCHOR2] + tbz x0, 12, .L2673 + add x1, x19, :lo12:.LANCHOR0 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 + ldrh w1, [x1,3324] + bl printk +.L2673: add x22, x19, :lo12:.LANCHOR0 bl buf_init mov w0, 6 - adrp x23, .LANCHOR6 + adrp x23, .LANCHOR5 ldrh w1, [x22,56] mul w0, w1, w0 bl ftl_malloc str x0, [x22,8] - ldrb w1, [x22,3244] - ldrh w0, [x22,3276] + ldrb w1, [x22,3292] + ldrh w0, [x22,3316] mul w0, w0, w1 lsl w0, w0, 2 bl ftl_malloc - str x0, [x22,3848] - ldrb w1, [x22,3244] - add x2, x23, :lo12:.LANCHOR6 - ldrh w0, [x22,3276] - sub x2, x2, #64 - str x2, [x22,3840] + str x0, [x22,3896] + ldrb w1, [x22,3292] + add x2, x23, :lo12:.LANCHOR5 + ldrh w0, [x22,3316] + add x2, x2, 704 + str x2, [x22,3888] mul w1, w0, w1 ldrh w0, [x22,56] lsl w1, w1, 1 add x3, x2, x1, sxtw 2 - str x3, [x22,72] + str x3, [x22,80] add w1, w1, w0, lsr 1 ldr w0, [x20,#:lo12:.LANCHOR2] add x1, x2, x1, sxtw 2 - str x1, [x22,80] - tbz x0, 12, .L2629 - adrp x0, .LC210 - add x0, x0, :lo12:.LC210 + str x1, [x22,88] + tbz x0, 12, .L2674 + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 bl printk -.L2629: +.L2674: add x2, x19, :lo12:.LANCHOR0 add x3, x21, :lo12:.LANCHOR7 - ldrh w0, [x2,3276] - ldrb w22, [x2,3244] + ldrh w0, [x2,3316] + ldrb w22, [x2,3292] ldrh w1, [x2,56] - ldrh w24, [x3,3266] + ldrh w24, [x3,-44] mul w22, w0, w22 ldr w0, [x20,#:lo12:.LANCHOR2] lsl w24, w24, 2 @@ -16995,73 +16878,73 @@ zftl_init: add w22, w1, w22, lsl 2 add w24, w24, 704 lsl w22, w22, 1 - add w22, w22, 612 - tbz x0, 12, .L2630 - adrp x0, .LC211 - ldrh w3, [x3,3282] - add x0, x0, :lo12:.LC211 + add w22, w22, 632 + tbz x0, 12, .L2675 + adrp x0, .LC219 + ldrh w3, [x3,-54] + add x0, x0, :lo12:.LC219 mov w1, w22 mov w2, w24 bl printk -.L2630: +.L2675: add x21, x21, :lo12:.LANCHOR7 - ldrh w0, [x21,3282] + ldrh w0, [x21,-54] cmp w22, w0 - bhi .L2632 + bhi .L2677 cmp w24, w0 - bls .L2631 -.L2632: -.L2633: - b .L2633 -.L2631: + bls .L2676 +.L2677: +.L2678: + b .L2678 +.L2676: bl sblk_init bl ftl_info_blk_init cmn w0, #1 - beq .L2634 + beq .L2679 bl ftl_ext_info_init add x19, x19, :lo12:.LANCHOR0 mov w0, 1 - add x23, x23, :lo12:.LANCHOR6 + add x23, x23, :lo12:.LANCHOR5 bl pm_init bl lpa_rebuild_hash - ldr x0, [x19,80] + ldr x0, [x19,88] mov x1, 0 add x0, x0, 16 bl ftl_open_sblk_recovery - ldr x1, [x19,80] + ldr x1, [x19,88] add x0, x1, 48 add x1, x1, 16 bl ftl_open_sblk_recovery - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldr w0, [x1,8] add w0, w0, 16 str w0, [x1,8] - ldr x0, [x19,80] + ldr x0, [x19,88] add x0, x0, 16 bl ftl_info_data_recovery - ldr x0, [x19,80] + ldr x0, [x19,88] add x0, x0, 48 bl ftl_info_data_recovery - ldr x0, [x19,80] + ldr x0, [x19,88] add x0, x0, 80 bl ftl_info_data_recovery bl gc_recovery bl pm_flush mov w0, 1 bl ftl_total_vpn_update - ldrb w0, [x23,-127] - cbz w0, .L2635 - ldr x1, [x19,2848] + ldrb w0, [x23,641] + cbz w0, .L2680 + ldr x1, [x19,2864] ldr w0, [x1,68] add w0, w0, 1 str w0, [x1,68] -.L2635: +.L2680: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info mov w0, 0 -.L2634: +.L2679: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17080,35 +16963,35 @@ rk_ftl_init: ldr x0, [x0,#:lo12:jiffies] add x19, x20, :lo12:.LANCHOR4 str x21, [sp,32] - str x0, [x19,1136] + str x0, [x19,1184] mov w0, 136 bl ftl_malloc - str x0, [x19,1144] - cbnz x0, .L2680 -.L2682: + str x0, [x19,1192] + cbnz x0, .L2726 +.L2728: mov w0, -1 - b .L2681 -.L2680: - adrp x21, .LANCHOR7 + b .L2727 +.L2726: mov w0, 2048 + adrp x21, .LANCHOR7 add x21, x21, :lo12:.LANCHOR7 bl ftl_malloc - str xzr, [x19,1152] - add x1, x21, 3304 - str x0, [x21,3296] - add x0, x19, 1152 - str xzr, [x21,3304] + str xzr, [x19,1200] + mov x1, x21 + str x0, [x21,-40] + add x0, x19, 1200 + str xzr, [x1,-32]! bl rknand_get_reg_addr - ldr x0, [x19,1152] - cbz x0, .L2682 + ldr x0, [x19,1200] + cbz x0, .L2728 bl rk_nandc_irq_init mov w1, 0 - ldr x0, [x21,3296] + ldr x0, [x21,-40] mov w2, w1 mov w3, 2048 bl flash_sram_load_store bl rknand_flash_cs_init - ldr x0, [x19,1144] + ldr x0, [x19,1192] adrp x1, zftl_deinit add x1, x1, :lo12:zftl_deinit str x1, [x0,80] @@ -17157,15 +17040,15 @@ rk_ftl_init: adrp x1, zftl_discard add x1, x1, :lo12:zftl_discard str x1, [x0,56] - ldr x0, [x19,1152] + ldr x0, [x19,1200] bl nand_flash_init - cbnz w0, .L2683 + cbnz w0, .L2729 bl zftl_init mov w19, w0 bl zftl_proc_debug_init - b .L2684 -.L2683: - ldr x0, [x19,1144] + b .L2730 +.L2729: + ldr x0, [x19,1192] adrp x1, ftl_deinit add x1, x1, :lo12:ftl_deinit str x1, [x0,80] @@ -17214,7 +17097,7 @@ rk_ftl_init: adrp x1, ftl_discard add x1, x1, :lo12:ftl_discard str x1, [x0,56] - ldr x0, [x19,1152] + ldr x0, [x19,1200] bl FlashInit mov w19, w0 adrp x0, .LANCHOR2 @@ -17229,26 +17112,26 @@ rk_ftl_init: mov w0, 12336 movk w0, 0x5638, lsl 16 cmp w1, w0 - bne .L2685 + bne .L2731 adrp x0, gFlashSlcMode ldrb w0, [x0,#:lo12:gFlashSlcMode] - cbnz w0, .L2686 -.L2685: + cbnz w0, .L2732 +.L2731: add x20, x20, :lo12:.LANCHOR4 - adrp x0, .LANCHOR0+97 - strb wzr, [x20,1232] - strb wzr, [x0,#:lo12:.LANCHOR0+97] -.L2686: - cbnz w19, .L2684 + adrp x0, .LANCHOR0+113 + strb wzr, [x20,1280] + strb wzr, [x0,#:lo12:.LANCHOR0+113] +.L2732: + cbnz w19, .L2730 bl FtlInit mov w19, w0 -.L2684: - adrp x0, .LC212 +.L2730: + adrp x0, .LC220 mov w1, w19 - add x0, x0, :lo12:.LC212 + add x0, x0, :lo12:.LC220 bl printk mov w0, w19 -.L2681: +.L2727: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -17264,190 +17147,170 @@ gc_update_l2p_map_new: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] - stp x27, x28, [sp,80] stp x23, x24, [sp,48] stp x25, x26, [sp,64] - adrp x21, .LANCHOR2 - ldr x20, [x0,80] - ldrh w1, [x0,3242] - add x28, x20, 80 - ldrb w0, [x28,9] - mul w0, w1, w0 - str w0, [x29,140] + stp x27, x28, [sp,80] + adrp x22, .LANCHOR2 + ldr x20, [x0,88] + ldrh w24, [x0,3290] + add x0, x20, 80 + str x0, [x29,128] + ldrb w0, [x0,9] + mul w24, w24, w0 bl timer_get_time - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 8, .L2691 - adrp x0, .LC213 + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 8, .L2737 + adrp x0, .LC221 ldrh w1, [x20,80] - add x0, x0, :lo12:.LC213 + add x0, x0, :lo12:.LC221 bl printk -.L2691: +.L2737: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] - ldr w2, [x29,140] - mov w22, 0 - mov w23, w22 - ldr x0, [x0,72] - sub w2, w2, #1 + sub w2, w24, #1 + mov w21, 0 + mov w23, w21 + adrp x27, .LANCHOR4 + ldr x0, [x0,80] strh w2, [x0,x1,lsl 1] - adrp x0, .LC216 - add x0, x0, :lo12:.LC216 + adrp x0, .LC223 + add x0, x0, :lo12:.LC223 str x0, [x29,120] - adrp x0, .LC215 - add x0, x0, :lo12:.LC215 + adrp x0, .LC222 + add x0, x0, :lo12:.LC222 str x0, [x29,112] - adrp x0, .LC214 - add x0, x0, :lo12:.LC214 - str x0, [x29,104] -.L2692: - ldr w0, [x29,140] - cmp w23, w0 - beq .L2726 - adrp x24, .LANCHOR4 - str x24, [x29,128] - add x0, x24, :lo12:.LANCHOR4 - ldr x0, [x0,1104] +.L2738: + cmp w23, w24 + beq .L2770 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr x0, [x0,1152] ldr w2, [x0,w23,sxtw 2] cmn w2, #1 - beq .L2693 + beq .L2739 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] lsl w0, w0, 7 udiv w0, w2, w0 and w0, w0, 65535 - str w0, [x29,136] - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 8, .L2694 - ldr x0, [x29,104] + str w0, [x29,140] + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 8, .L2740 + ldr x0, [x29,112] mov w3, w23 - ldr w1, [x29,136] + ldr w1, [x29,140] bl printk -.L2694: +.L2740: mov w25, w23 -.L2700: - ldr x0, [x29,128] +.L2746: + add x1, x27, :lo12:.LANCHOR4 sbfiz x26, x25, 2, 32 - add x1, x0, :lo12:.LANCHOR4 - ldr x0, [x1,1104] - ldr w24, [x0,x26] - cmn w24, #1 - beq .L2695 + ldr x0, [x1,1152] + ldr w4, [x0,x26] + cmn w4, #1 + beq .L2741 add x0, x19, :lo12:.LANCHOR0 - ldr w2, [x29,136] - ldrb w0, [x0,2816] + ldr w2, [x29,140] + ldrb w0, [x0,2832] lsl w0, w0, 7 - udiv w0, w24, w0 + udiv w0, w4, w0 cmp w2, w0, uxth - bne .L2695 - ldr x0, [x1,1112] - ldr w27, [x0,x26] - mov w0, w24 + bne .L2741 + ldr x0, [x1,1160] + str x4, [x29,104] + ldr w28, [x0,x26] + mov w0, w4 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L2696 - mov w0, w24 + ldr x4, [x29,104] + bne .L2742 + mov w0, w4 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L2696: + ldr x4, [x29,104] +.L2742: ldr w3, [x29,156] - cmp w3, w27 - bne .L2697 - ldr x0, [x29,128] + cmp w3, w28 + bne .L2743 + add x0, x27, :lo12:.LANCHOR4 add x1, x29, 152 mov w2, 1 - add w22, w22, 1 - add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1120] + add w21, w21, 1 + ldr x0, [x0,1168] ldr w0, [x0,x26] str w0, [x29,152] - mov w0, w24 + mov w0, w4 bl pm_log2phys - add x1, x19, :lo12:.LANCHOR0 - mov w2, 21 + add x2, x19, :lo12:.LANCHOR0 + mov w0, 21 + ldrh w1, [x2,3356] + sub w3, w0, w1 mov w0, 1 - ldrh w3, [x1,3314] - sub w2, w2, w3 - lsr w3, w27, w3 - lsl w2, w0, w2 - sub w2, w2, #1 - and w3, w2, w3 - ldrb w2, [x1,3312] - udiv w2, w3, w2 - uxth w2, w2 - str x2, [x29,96] - mov w0, w2 - bl ftl_vpn_decrement - ldrh w0, [x28] - ldr x2, [x29,96] - cmp w0, w2 - bne .L2698 - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 8, .L2698 - ldr x0, [x29,112] - mov w1, w24 - ldr w3, [x29,156] - mov w2, w27 - bl printk - b .L2698 -.L2697: - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 8, .L2699 + lsl w0, w0, w3 + lsr w28, w28, w1 + sub w0, w0, #1 + and w28, w0, w28 + ldrb w0, [x2,3354] + udiv w0, w28, w0 + b .L2769 +.L2743: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 8, .L2745 ldr x0, [x29,120] - mov w1, w24 - mov w2, w27 + mov w1, w4 + mov w2, w28 bl printk -.L2699: - ldrh w0, [x28] - bl ftl_vpn_decrement -.L2698: +.L2745: ldr x0, [x29,128] + ldrh w0, [x0] +.L2769: + bl ftl_vpn_decrement + add x0, x27, :lo12:.LANCHOR4 mov w1, -1 - add x0, x0, :lo12:.LANCHOR4 - ldr x0, [x0,1104] + ldr x0, [x0,1152] str w1, [x0,x26] bl timer_get_time -.L2695: - ldr w0, [x29,140] +.L2741: add w25, w25, 1 - cmp w25, w0 - bne .L2700 -.L2693: + cmp w25, w24 + bne .L2746 +.L2739: add w23, w23, 1 - b .L2692 -.L2726: - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 8, .L2702 + b .L2738 +.L2770: + ldr w0, [x22,#:lo12:.LANCHOR2] + tbz x0, 8, .L2748 add x0, x19, :lo12:.LANCHOR0 ldrh w3, [x20,80] - ldr x1, [x0,80] - ldr x2, [x0,72] - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 + ldr x1, [x0,88] + ldr x2, [x0,80] + adrp x0, .LC224 + add x0, x0, :lo12:.LC224 ldrh w1, [x1,80] ldrh w2, [x2,x3,lsl 1] - mov w3, w22 + mov w3, w21 bl printk -.L2702: +.L2748: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] - ldr x0, [x0,72] + ldr x0, [x0,80] ldrh w0, [x0,x1,lsl 1] - cmp w0, w22 - beq .L2703 + cmp w0, w21 + beq .L2749 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 592 - mov w2, 463 + add x1, x1, 552 + mov w2, 483 bl printk -.L2703: +.L2749: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x20,80] - ldr x0, [x19,72] - strh w22, [x0,x1,lsl 1] + ldr x0, [x19,80] + strh w21, [x0,x1,lsl 1] ldrh w0, [x20,80] bl zftl_insert_data_list ldp x19, x20, [sp,16] @@ -17471,83 +17334,83 @@ gc_scan_src_blk_one_page: str x23, [sp,48] add x3, x19, :lo12:.LANCHOR0 mov w5, w4 - add x2, x3, 2888 + add x2, x3, 2912 stp x21, x22, [sp,32] ldrb w0, [x2,4] add x1, x2, x0, sxtw 1 - ldrb w7, [x3,3244] + ldrb w7, [x3,3292] ldrh w1, [x1,40] ldrh w3, [x2,2] -.L2728: +.L2772: cmp w1, w6 - bne .L2770 + bne .L2814 add w0, w0, 1 uxtb w0, w0 cmp w0, w7 - bne .L2729 + bne .L2773 add w3, w3, 1 mov w4, 1 mov w0, 0 uxth w3, w3 -.L2729: +.L2773: add x1, x2, x0, sxtw 1 mov w5, 1 ldrh w1, [x1,40] - b .L2728 -.L2770: - cbz w5, .L2731 + b .L2772 +.L2814: + cbz w5, .L2775 add x2, x19, :lo12:.LANCHOR0 - strb w0, [x2,2892] -.L2731: - cbz w4, .L2732 + strb w0, [x2,2916] +.L2775: + cbz w4, .L2776 add x0, x19, :lo12:.LANCHOR0 - strh w3, [x0,2890] -.L2732: + strh w3, [x0,2914] +.L2776: add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,3225] - ldrh w20, [x0,3324] + ldrb w2, [x0,3273] + ldrh w20, [x0,3366] cmp w2, 2 mul w1, w1, w20 - bne .L2733 - ldrb w2, [x0,2894] - add x0, x0, 2888 - cbnz w2, .L2733 + bne .L2777 + ldrb w2, [x0,2918] + add x0, x0, 2912 + cbnz w2, .L2777 ldrh w20, [x0,2] add w20, w1, w20, lsl 1 - b .L2734 -.L2733: + b .L2778 +.L2777: add x0, x19, :lo12:.LANCHOR0 - ldrh w20, [x0,2890] + ldrh w20, [x0,2914] add w20, w1, w20 -.L2734: +.L2778: add x2, x19, :lo12:.LANCHOR0 - add x1, x2, 2888 - ldrb w0, [x2,2892] + add x1, x2, 2912 + ldrb w0, [x2,2916] add w0, w0, 1 uxtb w0, w0 - strb w0, [x2,2892] - ldrb w2, [x2,3244] + strb w0, [x2,2916] + ldrb w2, [x2,3292] cmp w2, w0 - bne .L2735 + bne .L2779 ldrh w0, [x1,2] strb wzr, [x1,4] add w0, w0, 1 strh w0, [x1,2] -.L2735: +.L2779: mov w0, 1 mov w21, 0 add x19, x19, :lo12:.LANCHOR0 bl buf_alloc mov x22, x0 -.L2746: - ldrb w0, [x19,2894] - cbnz w21, .L2748 +.L2790: + ldrb w0, [x19,2918] + cbnz w21, .L2792 cmp w0, 3 - beq .L2736 -.L2748: + beq .L2780 +.L2792: cmp w0, w21 - bgt .L2738 -.L2747: + bgt .L2782 +.L2791: mov x0, x22 bl buf_free ldr x23, [sp,48] @@ -17555,58 +17418,315 @@ gc_scan_src_blk_one_page: ldp x21, x22, [sp,32] ldp x29, x30, [sp], 80 ret -.L2738: - ldrb w1, [x19,3225] +.L2782: + ldrb w1, [x19,3273] cmp w1, 2 - bne .L2739 - cbnz w0, .L2739 + bne .L2783 + cbnz w0, .L2783 add w0, w21, w20 orr w0, w0, 33554432 - b .L2769 -.L2739: + b .L2813 +.L2783: orr w0, w20, w21, lsl 24 -.L2769: +.L2813: str w0, [x22,40] mov w1, 1 mov x0, x22 bl sblk_read_page ldr w0, [x22,52] cmp w0, 512 - beq .L2743 + beq .L2787 cmn w0, #1 - beq .L2743 + beq .L2787 ldr x0, [x22,24] ldr w23, [x0,4] mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,76] cmn w0, #1 - bne .L2744 + bne .L2788 mov w0, w23 add x1, x29, 76 mov w2, 0 bl pm_log2phys -.L2744: +.L2788: ldr w0, [x29,76] cmp w20, w0 - bne .L2743 - ldrh w2, [x19,2912] - ldr x1, [x19,3216] + bne .L2787 + ldrh w2, [x19,2936] + ldr x1, [x19,3264] str w20, [x1,x2,lsl 2] - ldrh w1, [x19,2912] + ldrh w1, [x19,2936] add w1, w1, 1 - strh w1, [x19,2912] -.L2743: - ldrh w0, [x19,2914] + strh w1, [x19,2936] +.L2787: + ldrh w0, [x19,2938] add w0, w0, 1 - strh w0, [x19,2914] -.L2736: + strh w0, [x19,2938] +.L2780: add w21, w21, 1 cmp w21, 4 - bne .L2746 - b .L2747 + bne .L2790 + b .L2791 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 + .global gc_scan_src_blk + .type gc_scan_src_blk, %function +gc_scan_src_blk: + stp x29, x30, [sp, -96]! + add x29, sp, 0 + stp x19, x20, [sp,16] + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp,32] + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + ldrh w1, [x0,2912] + mov w0, 65535 + cmp w1, w0 + bne .L2816 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 576 + mov w2, 920 + bl printk +.L2816: + add x2, x19, :lo12:.LANCHOR0 + mov w3, 65535 + mov w0, 0 + ldrh w1, [x2,2912] + cmp w1, w3 + beq .L2817 + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L2818 + ubfiz x3, x1, 1, 16 + ldr x2, [x2,80] + adrp x0, .LC225 + add x0, x0, :lo12:.LC225 + ldrh w2, [x2,x3] + bl printk +.L2818: + add x20, x19, :lo12:.LANCHOR0 + bl timer_get_time + add x21, x20, 2912 + add x1, x20, 2952 + ldrh w0, [x20,2912] + bl ftl_get_blk_list_in_sblk + uxtb w1, w0 + strb w1, [x21,5] + cbnz w1, .L2819 + mov w0, -1 + strh w0, [x20,2912] + b .L2845 +.L2819: + ldrh w3, [x20,2912] + ldr x2, [x20,64] + add x2, x2, x3, lsl 2 + ldrb w2, [x2,2] + tst w2, 192 + and w4, w2, 224 + beq .L2820 + cmp w4, 224 + beq .L2820 + ldr x2, [x20,88] + ldrh w5, [x2,16] + cmp w5, w3 + beq .L2820 + ldrh w5, [x2,48] + cmp w5, w3 + beq .L2820 + ldrh w2, [x2,80] + cmp w2, w3 + bne .L2821 +.L2820: + cbnz w4, .L2822 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0,80] + ldrh w0, [x0,x3,lsl 1] + cbz w0, .L2823 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 576 + mov w2, 940 + bl printk +.L2823: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x0,2912] + ldr x0, [x0,80] + strh wzr, [x0,x1,lsl 1] +.L2822: + add x19, x19, :lo12:.LANCHOR0 + mov w0, -1 + strh wzr, [x19,2936] + strh w0, [x19,2912] +.L2845: + mov w0, 0 + b .L2817 +.L2821: + and w0, w0, 255 + sub w0, w0, #1 + add x0, x21, x0, sxtw 1 + ldrh w20, [x0,40] + mov w0, 65535 + cmp w20, w0 + bne .L2824 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 576 + mov w2, 948 + bl printk +.L2824: + add x2, x19, :lo12:.LANCHOR0 + mov w24, 1 + ldrh w3, [x2,2912] + ldr x4, [x2,64] + ldrh w0, [x2,3316] + add x3, x4, x3, lsl 2 + ldrh w1, [x2,3366] + sub w0, w0, #1 + ldrb w3, [x3,2] + uxth w0, w0 + mul w1, w20, w1 + and w3, w3, 224 + cmp w3, 160 + bne .L2825 + ldrb w3, [x2,3273] + cmp w3, 2 + uxth w24, w3 + orr w1, w1, w3, lsl 24 + bne .L2825 + ldrh w0, [x2,3290] + sub w0, w0, #1 + uxth w0, w0 +.L2825: + add x20, x19, :lo12:.LANCHOR0 + orr w23, w0, w1 + mov w0, 1 + strb w24, [x20,2918] + strh wzr, [x20,2914] + strb wzr, [x20,2916] + strh wzr, [x20,2938] + bl buf_alloc + mov w1, 1 + str w23, [x0,40] + mov x21, x0 + bl sblk_read_page + ldrh w0, [x20,3290] + mov w1, 255 + ldrb w2, [x20,3292] + mul w2, w0, w2 + ldr x0, [x20,3264] + lsl w2, w2, 2 + bl ftl_memset + strh wzr, [x20,2936] + ldr w0, [x21,52] + cmp w0, 512 + beq .L2846 + cmn w0, #1 + beq .L2846 + ldr x0, [x21,24] + ldr w1, [x0] + mov w0, 15555 + movk w0, 0xf55f, lsl 16 + cmp w1, w0 + beq .L2828 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 576 + mov w2, 980 + bl printk +.L2846: + mov x0, x21 + bl buf_free + mov w0, -1 + b .L2817 +.L2828: + ldrb w0, [x20,3292] + mov x26, 0 + ldrh w22, [x20,3316] + mov w25, 1 + ldr x23, [x21,8] + mul w22, w0, w22 + mul w22, w24, w22 + mov w24, 21 + uxth w22, w22 +.L2829: + cmp w22, w26 + ble .L2847 + ldr w0, [x23,x26,lsl 2] + cmn w0, #1 + beq .L2831 + bl lpa_hash_get_ppa + str w0, [x29,92] + cmn w0, #1 + bne .L2832 + ldr w0, [x23,x26,lsl 2] + add x1, x29, 92 + mov w2, 0 + bl pm_log2phys +.L2832: + ldrh w1, [x20,3356] + ldr w2, [x29,92] + sub w0, w24, w1 + ldrh w3, [x20,2912] + lsl w0, w25, w0 + lsr w1, w2, w1 + sub w0, w0, #1 + and w1, w0, w1 + ldrb w0, [x20,3354] + udiv w1, w1, w0 + cmp w1, w3 + bne .L2831 + ldrh w3, [x20,2936] + ldr x1, [x20,3264] + str w2, [x1,x3,lsl 2] + ldrh w1, [x20,2936] + add w1, w1, 1 + strh w1, [x20,2936] +.L2831: + bl timer_get_time + add x26, x26, 1 + b .L2829 +.L2847: + mov x0, x21 + bl buf_free + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x0,2912] + ldr x3, [x0,80] + ubfiz x2, x1, 1, 16 + ldrh w2, [x3,x2] + ldrh w3, [x0,2936] + cmp w2, w3 + beq .L2835 + adrp x0, .LC226 + add x0, x0, :lo12:.LC226 + bl printk +.L2835: + add x19, x19, :lo12:.LANCHOR0 + ldrh w2, [x19,2912] + ldr x1, [x19,80] + ldrh w3, [x19,2936] + strh w3, [x1,x2,lsl 1] + strh wzr, [x19,2940] + ldrh w0, [x19,2936] +.L2817: + 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 gc_scan_src_blk, .-gc_scan_src_blk + .align 2 .global gc_scan_static_data .type gc_scan_static_data, %function gc_scan_static_data: @@ -17614,29 +17734,29 @@ gc_scan_static_data: add x29, sp, 0 stp x19, x20, [sp,16] adrp x19, .LANCHOR0 - add x1, x19, :lo12:.LANCHOR0 + add x3, x19, :lo12:.LANCHOR0 stp x21, x22, [sp,32] stp x23, x24, [sp,48] - ldr x0, [x1,80] - ldr w2, [x0,544] - cmn w2, #1 - beq .L2772 + ldr x0, [x3,88] + ldr w1, [x0,544] + cmn w1, #1 + beq .L2849 adrp x21, .LANCHOR3 adrp x22, .LC0 add x21, x21, :lo12:.LANCHOR3 mov w20, 11 add x22, x22, :lo12:.LC0 - add x21, x21, 616 -.L2773: + add x21, x21, 592 +.L2850: add x24, x19, :lo12:.LANCHOR0 add x1, x29, 76 mov w2, 0 - ldr x0, [x24,80] + ldr x0, [x24,88] ldr w0, [x0,544] bl pm_log2phys ldr w0, [x29,76] cmn w0, #1 - beq .L2774 + beq .L2851 mov w0, 1 bl buf_alloc mov x23, x0 @@ -17646,8 +17766,8 @@ gc_scan_static_data: bl sblk_read_page ldr w0, [x23,52] cmp w0, 256 - bne .L2775 - ldrh w0, [x24,3314] + bne .L2852 + ldrh w0, [x24,3356] mov w2, 21 mov w1, 1 ldr w3, [x29,76] @@ -17655,35 +17775,35 @@ gc_scan_static_data: lsl w2, w1, w2 lsr w3, w3, w0 sub w2, w2, #1 - ldrb w0, [x24,3312] + ldrb w0, [x24,3354] and w2, w2, w3 udiv w0, w2, w0 mov w2, 0 bl gc_add_sblk -.L2775: +.L2852: add x0, x19, :lo12:.LANCHOR0 ldr x1, [x23,24] - ldr x0, [x0,80] + ldr x0, [x0,88] ldr w1, [x1,4] ldr w0, [x0,544] cmp w1, w0 - beq .L2776 + beq .L2853 mov x0, x22 mov x1, x21 - mov w2, 1369 + mov w2, 1419 bl printk -.L2776: +.L2853: mov x0, x23 bl buf_free -.L2774: +.L2851: add x2, x19, :lo12:.LANCHOR0 - ldr x1, [x2,80] - ldr w2, [x2,2824] + ldr x1, [x2,88] + ldr w2, [x2,2840] ldr w0, [x1,544] add w0, w0, 1 str w0, [x1,544] cmp w0, w2 - bcc .L2777 + bcc .L2854 mov w0, -1 str w0, [x1,544] ldr w0, [x1,548] @@ -17694,44 +17814,37 @@ gc_scan_static_data: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L2771 -.L2777: + b .L2848 +.L2854: ldr w0, [x29,76] cmn w0, #1 - bne .L2771 + bne .L2848 sub w20, w20, #1 uxth w20, w20 - cbnz w20, .L2773 - b .L2771 -.L2772: - ldr x1, [x1,2848] - ldr w2, [x1,40] - cmp w2, 20480 - bls .L2782 - ldr w3, [x1,44] - add w3, w3, w2, lsr 10 - and w2, w2, 1023 - str w3, [x1,44] - str w2, [x1,40] -.L2782: - ldr w2, [x0,536] - ldr w3, [x0,12] - add w2, w2, 12959744 - add w2, w2, 256 - cmp w3, w2 - bhi .L2783 - ldr w2, [x0,540] - ldr w4, [x1,44] - add w2, w2, 98304 - add w2, w2, 1696 - cmp w4, w2 - bls .L2771 -.L2783: + cbnz w20, .L2850 + b .L2848 +.L2849: + ldr w1, [x0,536] + ldr w2, [x0,12] + add w1, w1, 12959744 + add w1, w1, 256 + cmp w2, w1 + bhi .L2859 + ldr x3, [x3,2864] + ldr w1, [x0,540] + ldr w3, [x3,44] + add w1, w1, 98304 + add w1, w1, 1696 + cmp w3, w1 + bls .L2848 +.L2859: + add x19, x19, :lo12:.LANCHOR0 + ldr x1, [x19,2864] ldr w1, [x1,44] str w1, [x0,540] - str w3, [x0,536] + str w2, [x0,536] str wzr, [x0,544] -.L2771: +.L2848: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -17751,50 +17864,50 @@ gc_block_vpn_scan: stp x23, x24, [sp,48] stp x25, x26, [sp,64] stp x27, x28, [sp,80] - ldr x1, [x20,80] + ldr x1, [x20,88] ldrh w0, [x20,56] ldr w1, [x1,608] cmp w1, w0 - bcs .L2788 + bcs .L2864 bl timer_get_time - ldr x21, [x20,80] + ldr x21, [x20,88] ldr w1, [x21,604] add w1, w1, 28672 add w1, w1, 1328 cmp w0, w1 - bls .L2788 + bls .L2864 bl timer_get_time str w0, [x21,604] - ldr x0, [x20,80] + ldr x0, [x20,88] ldrh w2, [x20,56] ldr w1, [x0,600] cmp w1, w2 - bcs .L2792 - ldr x2, [x20,2848] + bcs .L2868 + ldr x2, [x20,2864] ldrh w2, [x2,134] cmp w1, w2 - bcs .L2793 -.L2792: + bcs .L2869 +.L2868: add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,2848] + ldr x1, [x1,2864] ldrh w1, [x1,134] str w1, [x0,600] -.L2793: +.L2869: ldr w25, [x0,600] mov w0, 65535 uxth w20, w25 cmp w20, w0 - bne .L2794 + bne .L2870 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 640 - mov w2, 1590 + add x1, x1, 616 + mov w2, 1712 bl printk -.L2794: +.L2870: add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,80] + ldr x0, [x21,88] ldr w1, [x0,600] add w1, w1, 1 str w1, [x0,600] @@ -17805,46 +17918,46 @@ gc_block_vpn_scan: mov w0, w20 bl ftl_get_blk_list_in_sblk uxth w1, w0 - cbz w1, .L2788 + cbz w1, .L2864 uxtw x22, w20 ldr x24, [x21,64] add x24, x24, x22, lsl 2 ldrb w1, [x24,2] tst w1, 192 and w2, w1, 224 - beq .L2795 + beq .L2871 cmp w2, 224 - beq .L2795 - ldr x1, [x21,80] + beq .L2871 + ldr x1, [x21,88] ldrh w3, [x1,16] cmp w3, w20 - beq .L2795 + beq .L2871 ldrh w3, [x1,48] cmp w3, w20 - beq .L2795 + beq .L2871 ldrh w1, [x1,80] cmp w1, w20 - bne .L2796 -.L2795: - cbnz w2, .L2788 + bne .L2872 +.L2871: + cbnz w2, .L2864 add x0, x19, :lo12:.LANCHOR0 lsl x22, x22, 1 - ldr x0, [x0,72] + ldr x0, [x0,80] ldrh w0, [x0,x22] - cbz w0, .L2797 + cbz w0, .L2873 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 640 - mov w2, 1606 + add x1, x1, 616 + mov w2, 1728 bl printk -.L2797: +.L2873: add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,72] + ldr x0, [x19,80] strh wzr, [x0,x22] - b .L2788 -.L2796: + b .L2864 +.L2872: and w0, w0, 65535 add x1, x29, 144 sub w0, w0, #1 @@ -17852,35 +17965,35 @@ gc_block_vpn_scan: ldrh w21, [x0,-16] mov w0, 65535 cmp w21, w0 - bne .L2799 + bne .L2875 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 640 - mov w2, 1612 + add x1, x1, 616 + mov w2, 1734 bl printk -.L2799: +.L2875: add x2, x19, :lo12:.LANCHOR0 ldrb w3, [x24,2] mov w26, 1 and w3, w3, 224 - ldrh w0, [x2,3276] + ldrh w0, [x2,3316] cmp w3, 160 - ldrh w1, [x2,3324] + ldrh w1, [x2,3366] sub w0, w0, #1 mul w1, w21, w1 uxth w0, w0 - bne .L2800 - ldrb w3, [x2,3225] + bne .L2876 + ldrb w3, [x2,3273] cmp w3, 2 uxth w26, w3 orr w1, w1, w3, lsl 24 - bne .L2800 - ldrh w0, [x2,3242] + bne .L2876 + ldrh w0, [x2,3290] sub w0, w0, #1 uxth w0, w0 -.L2800: +.L2876: orr w21, w0, w1 mov w0, 1 bl buf_alloc @@ -17889,42 +18002,42 @@ gc_block_vpn_scan: add x21, x19, :lo12:.LANCHOR0 mov x23, x0 bl sblk_read_page - ldrh w0, [x21,3242] + ldrh w0, [x21,3290] mov w1, 255 - ldrb w2, [x21,3244] + ldrb w2, [x21,3292] mul w2, w0, w2 - ldr x0, [x21,3216] + ldr x0, [x21,3264] lsl w2, w2, 2 bl ftl_memset ldr w0, [x23,52] cmp w0, 512 - beq .L2812 + beq .L2888 cmn w0, #1 cset w2, eq - cbz w2, .L2801 -.L2812: + cbz w2, .L2877 +.L2888: mov w0, w20 mov w1, 1 mov w2, 0 - b .L2825 -.L2801: + b .L2901 +.L2877: ldr x0, [x23,24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L2803 + beq .L2879 mov w0, w20 mov w1, 1 -.L2825: +.L2901: bl gc_add_sblk mov x0, x23 bl buf_free - b .L2788 -.L2803: - ldrb w0, [x21,3244] + b .L2864 +.L2879: + ldrb w0, [x21,3292] mov x27, 0 - ldrh w1, [x21,3276] + ldrh w1, [x21,3316] and w28, w25, 65535 mov w21, w27 mul w0, w0, w1 @@ -17932,68 +18045,68 @@ gc_block_vpn_scan: uxth w0, w26 ldr x26, [x23,8] str w0, [x29,108] -.L2804: +.L2880: ldr w0, [x29,108] cmp w0, w27 - ble .L2826 + ble .L2902 ldr w0, [x26,x27,lsl 2] cmn w0, #1 - beq .L2805 + beq .L2881 bl lpa_hash_get_ppa str w0, [x29,124] cmn w0, #1 - bne .L2806 + bne .L2882 ldr w0, [x26,x27,lsl 2] add x1, x29, 124 mov w2, 0 bl pm_log2phys -.L2806: +.L2882: add x4, x19, :lo12:.LANCHOR0 mov w1, 21 - ldrh w0, [x4,3314] + ldrh w0, [x4,3356] sub w2, w1, w0 mov w1, 1 lsl w2, w1, w2 ldr w1, [x29,124] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x4,3312] + ldrb w1, [x4,3354] and w0, w2, w0 udiv w0, w0, w1 cmp w0, w28 - bne .L2805 + bne .L2881 add w21, w21, 1 uxth w21, w21 -.L2805: +.L2881: add x27, x27, 1 - b .L2804 -.L2826: + b .L2880 +.L2902: mov x0, x23 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2808 + tbz x0, 8, .L2884 add x0, x19, :lo12:.LANCHOR0 ldrb w4, [x24,2] uxth w1, w25 mov w3, w21 ubfx x4, x4, 5, 3 - ldr x2, [x0,72] - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 + ldr x2, [x0,80] + adrp x0, .LC227 + add x0, x0, :lo12:.LC227 ldrh w2, [x2,x22,lsl 1] bl printk -.L2808: +.L2884: add x19, x19, :lo12:.LANCHOR0 cmp w21, 31 - ldr x0, [x19,72] + ldr x0, [x19,80] strh w21, [x0,x22,lsl 1] - bhi .L2788 + bhi .L2864 mov w0, w20 mov w1, 1 mov w2, 0 bl gc_add_sblk -.L2788: +.L2864: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18007,42 +18120,53 @@ gc_block_vpn_scan: .type ftl_sblk_dump, %function ftl_sblk_dump: sub sp, sp, #256 - mov w2, 65535 + uxth x0, w0 stp x29, x30, [sp,48] add x29, sp, 48 - stp x21, x22, [sp,80] - uxth w22, w0 - mov w0, 0 - stp x19, x20, [sp,64] stp x23, x24, [sp,96] - stp x25, x26, [sp,112] - stp x27, x28, [sp,128] - cmp w22, w2 - beq .L2828 adrp x23, .LANCHOR0 - add x2, x23, :lo12:.LANCHOR0 - ldrh w3, [x2,56] - cmp w3, w22 - bls .L2828 - uxtw x0, w22 - str x0, [x29,128] - lsl x0, x0, 2 - str x0, [x29,152] - ldr x0, [x2,64] + str x0, [x29,136] + stp x19, x20, [sp,64] + add x19, x23, :lo12:.LANCHOR0 + mov x20, x0 + stp x25, x26, [sp,112] + stp x21, x22, [sp,80] + stp x27, x28, [sp,128] + lsl x25, x0, 2 + str x1, [x29,144] + ldr x0, [x19,64] + add x1, x0, x25 + ldrh w4, [x0,x25] + ldr w5, [x0,x25] + adrp x0, .LC228 + ldrb w3, [x1,2] + add x0, x0, :lo12:.LC228 + mov w1, w20 + and w4, w4, 2047 + ubfx x2, x3, 5, 3 + ubfx x5, x5, 11, 8 + ubfx x3, x3, 3, 2 + bl printk + mov w1, 65535 + mov w0, 0 + cmp w20, w1 + beq .L2904 + ldrh w1, [x19,56] + cmp w1, w20 + bls .L2904 + ldr x0, [x19,64] mov w26, 1 - ldr x3, [x29,152] - add x0, x0, x3 + add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 160 - bne .L2829 - ldrb w26, [x2,3225] -.L2829: - str x1, [x29,144] - mov w0, w22 + bne .L2905 + ldrb w26, [x19,3273] +.L2905: add x1, x29, 192 - strh w22, [x29,176] - mov w21, 0 + mov w0, w20 + strh w20, [x29,176] + mov w22, 0 bl ftl_get_blk_list_in_sblk uxtb w1, w0 mov w4, w0 @@ -18051,82 +18175,83 @@ ftl_sblk_dump: mov w3, w26 strh wzr, [x29,178] uxtb w4, w4 - ldrh w2, [x0,3276] - mov w28, w21 + ldrh w2, [x0,3316] + mov w27, w22 strb wzr, [x29,181] - mov w19, w21 + mov w19, w22 strh wzr, [x29,186] mul w1, w1, w2 strh w1, [x29,182] ldr x1, [x0,64] - ldr x0, [x29,152] - add x1, x1, x0 - adrp x0, .LC219 - add x0, x0, :lo12:.LC219 + adrp x0, .LC229 + add x0, x0, :lo12:.LC229 + add x1, x1, x25 ldrb w2, [x1,2] - mov w1, w22 + mov w1, w20 ubfx x2, x2, 5, 3 bl printk mov w0, 1 bl buf_alloc - mov x27, x0 - adrp x0, .LC166 - str w21, [x29,140] - add x0, x0, :lo12:.LC166 + mov x28, x0 + adrp x0, .LC181 + str w22, [x29,152] + add x0, x0, :lo12:.LC181 str x0, [x29,120] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 664 + add x0, x0, 640 str x0, [x29,112] -.L2830: - add x20, x23, :lo12:.LANCHOR0 - ldrh w0, [x20,3276] +.L2906: + add x21, x23, :lo12:.LANCHOR0 + ldrh w0, [x21,3316] cmp w0, w19 - bls .L2846 + bls .L2922 lsl w0, w19, 1 - mov w25, 0 + str wzr, [x29,156] sub w0, w0, #1 - str w0, [x29,136] -.L2847: + str w0, [x29,132] +.L2923: ldrb w0, [x29,185] - cmp w0, w25 - bls .L2844 + ldr w1, [x29,156] + cmp w0, w1 + bls .L2920 mov w24, 1 -.L2845: +.L2921: cmp w24, w26 - bhi .L2864 - add x0, x29, 176 - add x0, x0, x25, sxtw 1 + ldr w0, [x29,156] + bhi .L2940 + add x1, x29, 176 + add x0, x1, x0, sxtw 1 ldrh w2, [x0,16] mov w0, 65535 cmp w2, w0 - beq .L2831 + beq .L2907 add x1, x23, :lo12:.LANCHOR0 cmp w26, 3 - ldrh w0, [x1,3324] + ldrh w0, [x1,3366] mul w0, w2, w0 - add w20, w0, w19 - bne .L2832 - orr w20, w20, w24, lsl 24 - b .L2833 -.L2832: + add w21, w0, w19 + bne .L2908 + orr w21, w21, w24, lsl 24 + b .L2909 +.L2908: cmp w26, 2 - bne .L2833 - ldr w3, [x29,136] - ldrb w20, [x1,3225] + bne .L2909 + ldr w3, [x29,132] + ldrb w21, [x1,3273] add w0, w0, w3 add w0, w0, w24 - orr w20, w0, w20, lsl 24 -.L2833: + orr w21, w0, w21, lsl 24 +.L2909: mov w1, 1 - str w20, [x27,40] - mov x0, x27 + str w21, [x28,40] + mov x0, x28 str x2, [x29,104] bl sblk_read_page - ldr x7, [x27,8] - mov w3, w20 - ldr x0, [x27,24] - ldr w9, [x27,52] + ldr x7, [x28,8] + mov w3, w21 + ldr x0, [x28,24] + ldr w9, [x28,52] ldr w1, [x7,12] str w1, [sp] mov w4, w9 @@ -18149,105 +18274,105 @@ ftl_sblk_dump: bl printk ldr x9, [x29,104] cmp w9, 512 - beq .L2851 + beq .L2927 cmn w9, #1 - bne .L2835 -.L2851: + bne .L2911 +.L2927: mov w0, 1 - str w0, [x29,140] -.L2835: + str w0, [x29,152] +.L2911: add x0, x23, :lo12:.LANCHOR0 - ldr x1, [x29,152] ldr x0, [x0,64] - add x0, x0, x1 + add x0, x0, x25 ldrb w0, [x0,2] and w0, w0, 224 cmp w0, 32 - beq .L2831 + beq .L2907 cmp w0, 224 cset w2, eq - cbnz w2, .L2831 - ldr x0, [x27,24] + cbnz w2, .L2907 + ldr x0, [x28,24] str x2, [x29,104] ldr w0, [x0,4] bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 ldr x2, [x29,104] - bne .L2837 - ldr x0, [x27,24] + bne .L2913 + ldr x0, [x28,24] add x1, x29, 172 ldr w0, [x0,4] bl pm_log2phys -.L2837: +.L2913: ldr w0, [x29,172] - cmp w0, w20 - bne .L2838 - ldr x2, [x27,24] - add w21, w21, 1 - adrp x0, .LC220 - mov w1, w20 - add x0, x0, :lo12:.LC220 - mov w3, w21 + cmp w0, w21 + bne .L2914 + ldr x2, [x28,24] + add w22, w22, 1 + adrp x0, .LC230 + mov w1, w21 + add x0, x0, :lo12:.LC230 + mov w3, w22 ldr w2, [x2,4] bl printk -.L2838: +.L2914: ldr x0, [x29,144] - cbz x0, .L2840 - ubfiz x20, x28, 2, 32 - ldr w2, [x0,x20] - ldr x0, [x27,24] + cbz x0, .L2916 + ubfiz x21, x27, 2, 32 + ldr w2, [x0,x21] + ldr x0, [x28,24] ldr w0, [x0,4] cmp w0, w2 - beq .L2841 + beq .L2917 adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2841 - adrp x0, .LC221 - mov w1, w28 - add x0, x0, :lo12:.LC221 + tbz x0, 12, .L2917 + adrp x0, .LC231 + mov w1, w27 + add x0, x0, :lo12:.LC231 bl printk -.L2841: +.L2917: ldr x0, [x29,144] - ldr x1, [x27,24] - ldr w0, [x0,x20] + ldr x1, [x28,24] + ldr w0, [x0,x21] ldr w1, [x1,4] cmp w1, w0 - beq .L2840 + beq .L2916 cmn w0, #1 - beq .L2840 + beq .L2916 adrp x0, .LC0 ldr x1, [x29,112] add x0, x0, :lo12:.LC0 - mov w2, 1193 + mov w2, 1300 bl printk -.L2840: - add w28, w28, 1 -.L2831: +.L2916: + add w27, w27, 1 +.L2907: add w24, w24, 1 uxth w24, w24 - b .L2845 -.L2864: - add w25, w25, 1 - uxth w25, w25 - b .L2847 -.L2844: + b .L2921 +.L2940: + add w0, w0, 1 + uxth w0, w0 + str w0, [x29,156] + b .L2923 +.L2920: add w19, w19, 1 uxth w19, w19 - b .L2830 -.L2846: - mov x0, x27 + b .L2906 +.L2922: + mov x0, x28 bl buf_free - ldr x3, [x29,128] - adrp x0, .LC222 - ldr x2, [x20,72] - add x0, x0, :lo12:.LC222 - mov w1, w22 + ldr x3, [x29,136] + adrp x0, .LC232 + ldr x2, [x21,80] + add x0, x0, :lo12:.LC232 + mov w1, w20 ldrh w2, [x2,x3,lsl 1] - mov w3, w21 + mov w3, w22 bl printk - ldr w0, [x29,140] -.L2828: + ldr w0, [x29,152] +.L2904: sub sp, x29, #48 ldp x19, x20, [sp,64] ldp x21, x22, [sp,80] @@ -18275,40 +18400,40 @@ zftl_read: stp x27, x28, [sp,80] mov w25, w2 mov x23, x3 - tbz x0, 12, .L2866 - adrp x0, .LC223 + tbz x0, 12, .L2942 + adrp x0, .LC233 mov w1, w19 - add x0, x0, :lo12:.LC223 + add x0, x0, :lo12:.LC233 mov w2, w24 mov w3, w25 bl printk -.L2866: - cbnz w19, .L2867 +.L2942: + cbnz w19, .L2943 adrp x0, .LANCHOR0+4 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+4] - b .L2868 -.L2867: + b .L2944 +.L2943: cmp w19, 3 mov w0, -1 - bhi .L2869 + bhi .L2945 lsl w19, w19, 13 mov w2, 8192 -.L2868: +.L2944: add w1, w24, w25 mov w0, -1 cmp w1, w2 - bhi .L2869 + bhi .L2945 adrp x22, .LANCHOR0 add w24, w19, w24 add x1, x22, :lo12:.LANCHOR0 add w28, w24, w25 str wzr, [x29,152] - ldr x2, [x1,2848] + ldr x2, [x1,2864] ldr w0, [x2,24] add w0, w0, w25 str w0, [x2,24] - ldrb w0, [x1,2816] + ldrb w0, [x1,2832] sub w1, w28, #1 udiv w27, w24, w0 mov w21, w27 @@ -18322,25 +18447,25 @@ zftl_read: str x0, [x29,136] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 680 + add x0, x0, 656 str x0, [x29,128] -.L2870: +.L2946: ldr w0, [x29,156] - cbz w0, .L2916 + cbz w0, .L2992 add x0, x22, :lo12:.LANCHOR0 ldr w1, [x29,148] cmp w21, w27 cset w2, eq cmp w21, w1 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] cset w20, eq uxth w19, w0 - cbnz w20, .L2896 - cbz w2, .L2871 - b .L2915 -.L2896: - cbz w2, .L2873 -.L2915: + cbnz w20, .L2972 + cbz w2, .L2947 + b .L2991 +.L2972: + cbz w2, .L2949 +.L2991: udiv w20, w24, w0 msub w20, w20, w0, w24 uxth w0, w25 @@ -18349,125 +18474,125 @@ zftl_read: uxth w19, w19 cmp w19, w25 csel w19, w0, w19, hi - b .L2871 -.L2873: + b .L2947 +.L2949: msub w19, w0, w21, w28 mov w20, w2 uxtb w19, w19 -.L2871: +.L2947: add x1, x22, :lo12:.LANCHOR0 mov w0, 0 - add x1, x1, 768 -.L2876: + add x1, x1, 784 +.L2952: ldr w2, [x1,36] cmp w2, w21 - bne .L2874 + bne .L2950 ldrb w2, [x1,2] - tbz x2, 3, .L2874 + tbz x2, 3, .L2950 add x2, x22, :lo12:.LANCHOR0 ubfiz x1, x0, 6, 32 add x0, x2, x1 ubfiz x20, x20, 9, 16 lsl w2, w19, 9 ubfiz x19, x19, 9, 16 - ldr x1, [x0,776] + ldr x1, [x0,792] mov x0, x23 add x23, x23, x19 add x1, x1, x20 bl ftl_memcpy - b .L2875 -.L2874: + b .L2951 +.L2950: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L2876 + bne .L2952 mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,172] cmn w0, #1 - bne .L2877 + bne .L2953 mov w0, w21 add x1, x29, 172 mov w2, 0 bl pm_log2phys -.L2877: +.L2953: ldr w0, [x29,172] cmn w0, #1 - bne .L2878 + bne .L2954 mov w19, 0 -.L2879: +.L2955: add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] cmp w19, w0 - bcs .L2875 + bcs .L2951 madd w0, w21, w0, w19 cmp w0, w24 - bcc .L2880 + bcc .L2956 cmp w0, w28 - bcs .L2880 + bcs .L2956 mov x0, x23 mov w1, 0 mov w2, 512 add x23, x23, 512 bl ftl_memset -.L2880: +.L2956: add w19, w19, 1 - b .L2879 -.L2878: + b .L2955 +.L2954: mov w0, 0 bl buf_alloc mov x26, x0 - cbnz x0, .L2882 + cbnz x0, .L2958 bl ftl_read_ahead - b .L2870 -.L2882: + b .L2946 +.L2958: add x1, x22, :lo12:.LANCHOR0 - ldr x2, [x1,2848] + ldr x2, [x1,2864] ldr w0, [x2,40] add w0, w0, 1 str w0, [x2,40] ldr w0, [x29,172] str w0, [x26,40] str w0, [x26,44] - ldrb w0, [x1,2816] + ldrb w0, [x1,2832] cmp w0, w19 - bne .L2884 + bne .L2960 str x23, [x26,16] -.L2884: +.L2960: mov x0, x26 mov w1, 1 bl sblk_read_page ldr w9, [x26,52] cmn w9, #1 - bne .L2885 + bne .L2961 add x0, x22, :lo12:.LANCHOR0 str w9, [x29,152] - ldr x1, [x0,80] + ldr x1, [x0,88] ldr w0, [x1,552] add w0, w0, 1 str w0, [x1,552] - b .L2886 -.L2885: + b .L2962 +.L2961: cmp w9, 256 - bne .L2886 + bne .L2962 add x1, x22, :lo12:.LANCHOR0 mov w2, 21 mov w5, 1 ldr w0, [x29,172] ldr w3, [x26,40] - ldrh w4, [x1,3314] + ldrh w4, [x1,3356] str x9, [x29,104] sub w2, w2, w4 lsr w4, w0, w4 lsl w2, w5, w2 - ldrb w0, [x1,3312] + ldrb w0, [x1,3354] sub w2, w2, #1 str x5, [x29,112] and w4, w2, w4 ldr w2, [x26,36] udiv w4, w4, w0 - adrp x0, .LC224 - add x0, x0, :lo12:.LC224 + adrp x0, .LC234 + add x0, x0, :lo12:.LC234 str x4, [x29,120] uxth w1, w4 bl printk @@ -18478,17 +18603,17 @@ zftl_read: mov w1, w5 bl gc_add_sblk ldr x9, [x29,104] -.L2886: +.L2962: ldr x7, [x26,24] ldr w5, [x7,4] cmp w5, w21 - beq .L2887 + beq .L2963 ldr w4, [x7] - adrp x0, .LC196 + adrp x0, .LC205 ldr w6, [x7,8] mov w2, w21 ldrb w1, [x26,1] - add x0, x0, :lo12:.LC196 + add x0, x0, :lo12:.LC205 ldr w3, [x29,172] ldr w7, [x7,12] str x9, [x29,120] @@ -18496,56 +18621,56 @@ zftl_read: add x3, x22, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x3,3314] + ldrh w0, [x3,3356] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x29,172] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x3,3312] + ldrb w1, [x3,3354] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump ldr x9, [x29,120] -.L2887: +.L2963: ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w21 - bne .L2897 + bne .L2973 cmn w9, #1 - bne .L2888 -.L2897: + bne .L2964 +.L2973: ldr x0, [x29,136] - mov w2, 1030 + mov w2, 1048 ldr x1, [x29,128] bl printk -.L2888: +.L2964: ldr x0, [x26,16] - cbnz x0, .L2890 + cbnz x0, .L2966 ldr x1, [x26,8] ubfiz x20, x20, 9, 16 mov x0, x23 lsl w2, w19, 9 add x1, x1, x20 bl ftl_memcpy -.L2890: +.L2966: mov x0, x26 ubfiz x19, x19, 9, 16 add x23, x23, x19 bl buf_free -.L2875: +.L2951: ldr w0, [x29,156] add w21, w21, 1 sub w0, w0, #1 str w0, [x29,156] - b .L2870 -.L2916: + b .L2946 +.L2992: bl timer_get_time - adrp x1, .LANCHOR7+3312 - str w0, [x1,#:lo12:.LANCHOR7+3312] + adrp x1, .LANCHOR7-24 + str w0, [x1,#:lo12:.LANCHOR7-24] ldr w0, [x29,152] -.L2869: +.L2945: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -18586,784 +18711,6 @@ zftl_sys_read: ret .size zftl_sys_read, .-zftl_sys_read .align 2 - .global vpn_check - .type vpn_check, %function -vpn_check: - stp x29, x30, [sp, -128]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x19, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - bl timer_get_time - adrp x21, .LANCHOR7 - bl dump_ftl_info - adrp x22, .LANCHOR3 - ldr x3, [x19,80] - adrp x0, .LC225 - add x0, x0, :lo12:.LC225 - adrp x23, .LC0 - add x22, x22, :lo12:.LANCHOR3 - add x23, x23, :lo12:.LC0 - ldrh w1, [x3,16] - add x22, x22, 696 - ldrh w2, [x3,48] - ldrh w3, [x3,80] - bl printk - ldr x0, [x19,80] - ldr x3, [x19,72] - ldrh w1, [x0,16] - ubfiz x2, x1, 1, 16 - ldrh w3, [x3,x2] - ldrh w2, [x0,22] - adrp x0, .LC226 - add x0, x0, :lo12:.LC226 - sub w4, w3, w2 - bl printk - ldr x0, [x19,80] - ldr x3, [x19,72] - mov w19, 0 - ldrh w1, [x0,48] - ubfiz x2, x1, 1, 16 - ldrh w3, [x3,x2] - ldrh w2, [x0,54] - adrp x0, .LC227 - add x0, x0, :lo12:.LC227 - sub w4, w3, w2 - bl printk - add x0, x21, :lo12:.LANCHOR7 - mov w1, 0 - add x0, x0, 3320 - mov w2, 4608 - bl ftl_memset -.L2920: - add x24, x20, :lo12:.LANCHOR0 - ldr w0, [x24,2824] - cmp w19, w0 - bcs .L2948 - mov w0, w19 - bl lpa_hash_get_ppa - str w0, [x29,124] - cmn w0, #1 - bne .L2921 - mov w0, w19 - add x1, x29, 124 - mov w2, 0 - bl pm_log2phys - b .L2922 -.L2921: - ldrh w2, [x24,3314] - mov w1, 21 - lsr w0, w0, w2 - sub w1, w1, w2 - mov w2, 1 - lsl w1, w2, w1 - sub w1, w1, #1 - and w0, w0, w1 - ldrb w1, [x24,3312] - udiv w0, w0, w1 - ldrh w1, [x24,56] - cmp w1, w0, uxth - bhi .L2922 - mov x0, x23 - mov x1, x22 - mov w2, 1256 - bl printk -.L2922: - ldr w2, [x29,124] - cmn w2, #1 - beq .L2924 - add x24, x20, :lo12:.LANCHOR0 - mov w3, 21 - mov w0, 1 - ldrh w4, [x24,3314] - sub w3, w3, w4 - lsr w4, w2, w4 - lsl w3, w0, w3 - ldrh w0, [x24,56] - sub w3, w3, #1 - and w4, w3, w4 - ldrb w3, [x24,3312] - udiv w3, w4, w3 - uxth w25, w3 - and w3, w3, 65535 - cmp w0, w25 - bls .L2925 - add x0, x21, :lo12:.LANCHOR7 - add x0, x0, 3320 - ldrh w1, [x0,w3,sxtw 1] - add w1, w1, 1 - strh w1, [x0,w3,sxtw 1] - b .L2926 -.L2925: - adrp x0, .LC228 - mov w1, w19 - add x0, x0, :lo12:.LC228 - bl printk - ldrb w3, [x24,2816] - adrp x0, .LC229 - ldr x1, [x24,3880] - add x0, x0, :lo12:.LC229 - mov w2, 4 - lsl w3, w3, 7 - bl rknand_print_hex -.L2926: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,56] - cmp w0, w25 - bhi .L2924 - mov x0, x23 - mov x1, x22 - mov w2, 1266 - bl printk -.L2924: - bl timer_get_time - add w19, w19, 1 - b .L2920 -.L2948: - mov w23, 0 - adrp x26, .LC230 - mov w19, w23 - add x27, x21, :lo12:.LANCHOR7 - add x26, x26, :lo12:.LC230 - mov w28, 65535 -.L2929: - add x22, x20, :lo12:.LANCHOR0 - ldrh w1, [x22,56] - cmp w1, w19 - bls .L2949 - uxtw x1, w19 - ldr x0, [x22,72] - lsl x25, x1, 1 - add x24, x27, 3320 - sxtw x5, w19 - ldrh w3, [x0,x25] - ldrh w2, [x24,w19,sxtw 1] - cmp w3, w2 - beq .L2930 - ldr x0, [x22,64] - str x5, [x29,104] - add x1, x0, x1, lsl 2 - mov x0, x26 - ldrb w4, [x1,2] - mov w1, w19 - ubfx x4, x4, 5, 3 - bl printk - ldr x0, [x22,72] - ldrh w1, [x0,x25] - cmp w1, w28 - beq .L2930 - ldr x5, [x29,104] - ldrh w0, [x24,x5,lsl 1] - cmp w0, w1 - bls .L2930 - ldr x1, [x22,80] - ldrh w0, [x1,16] - cmp w0, w19 - beq .L2930 - ldrh w0, [x1,80] - cmp w0, w19 - beq .L2930 - ldrh w0, [x1,48] - cmp w0, w19 - csinc w23, w23, wzr, eq -.L2930: - add w19, w19, 1 - uxth w19, w19 - b .L2929 -.L2949: - adrp x22, .LANCHOR3 - adrp x24, .LC0 - add x22, x22, :lo12:.LANCHOR3 - mov w19, 0 - add x21, x21, :lo12:.LANCHOR7 - add x24, x24, :lo12:.LC0 - add x22, x22, 696 -.L2932: - add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x1,56] - cmp w0, w19 - bls .L2950 - uxtw x25, w19 - ldr x0, [x1,64] - add x0, x0, x25, lsl 2 - ldrb w0, [x0,2] - tst w0, 224 - bne .L2934 - add x0, x21, 3320 - sxtw x27, w19 - ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2935 - lsl x26, x25, 1 - ldr x0, [x1,72] - ldrh w0, [x0,x26] - cbz w0, .L2936 - adrp x0, .LC231 - mov w1, w19 - add x0, x0, :lo12:.LC231 - bl printk -.L2936: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,72] - strh wzr, [x0,x26] -.L2935: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,72] - ldrh w0, [x0,x25,lsl 1] - cbz w0, .L2934 - add x0, x21, 3320 - ldrh w0, [x0,x27,lsl 1] - cbz w0, .L2934 - mov x0, x24 - mov x1, x22 - mov w2, 1298 - bl printk -.L2934: - add w19, w19, 1 - uxth w19, w19 - b .L2932 -.L2950: - adrp x1, .LANCHOR3 - adrp x0, .LC232 - add x1, x1, :lo12:.LANCHOR3 - mov w2, w23 - add x1, x1, 696 - add x0, x0, :lo12:.LC232 - bl printk - 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 vpn_check, .-vpn_check - .align 2 - .global gc_scan_src_blk - .type gc_scan_src_blk, %function -gc_scan_src_blk: - stp x29, x30, [sp, -96]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrh w1, [x0,2888] - mov w0, 65535 - cmp w1, w0 - bne .L2952 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 712 - mov w2, 897 - bl printk -.L2952: - add x2, x19, :lo12:.LANCHOR0 - mov w3, 65535 - mov w0, 0 - ldrh w1, [x2,2888] - cmp w1, w3 - beq .L2953 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2954 - ubfiz x3, x1, 1, 16 - ldr x2, [x2,72] - adrp x0, .LC233 - add x0, x0, :lo12:.LC233 - ldrh w2, [x2,x3] - bl printk -.L2954: - add x20, x19, :lo12:.LANCHOR0 - bl timer_get_time - add x21, x20, 2888 - add x1, x20, 2928 - ldrh w0, [x20,2888] - bl ftl_get_blk_list_in_sblk - uxtb w1, w0 - strb w1, [x21,5] - cbnz w1, .L2955 - mov w0, -1 - strh w0, [x20,2888] - b .L2983 -.L2955: - ldrh w3, [x20,2888] - ldr x2, [x20,64] - add x2, x2, x3, lsl 2 - ldrb w2, [x2,2] - tst w2, 192 - and w4, w2, 224 - beq .L2956 - cmp w4, 224 - beq .L2956 - ldr x2, [x20,80] - ldrh w5, [x2,16] - cmp w5, w3 - beq .L2956 - ldrh w5, [x2,48] - cmp w5, w3 - beq .L2956 - ldrh w2, [x2,80] - cmp w2, w3 - bne .L2957 -.L2956: - cbnz w4, .L2958 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,72] - ldrh w0, [x0,x3,lsl 1] - cbz w0, .L2959 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 712 - mov w2, 917 - bl printk -.L2959: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2888] - ldr x0, [x0,72] - strh wzr, [x0,x1,lsl 1] -.L2958: - add x19, x19, :lo12:.LANCHOR0 - mov w0, -1 - strh wzr, [x19,2912] - strh w0, [x19,2888] -.L2983: - mov w0, 0 - b .L2953 -.L2957: - and w0, w0, 255 - sub w0, w0, #1 - add x0, x21, x0, sxtw 1 - ldrh w20, [x0,40] - mov w0, 65535 - cmp w20, w0 - bne .L2960 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 712 - mov w2, 925 - bl printk -.L2960: - add x2, x19, :lo12:.LANCHOR0 - mov w24, 1 - ldrh w3, [x2,2888] - ldr x4, [x2,64] - ldrh w0, [x2,3276] - add x3, x4, x3, lsl 2 - ldrh w1, [x2,3324] - sub w0, w0, #1 - ldrb w3, [x3,2] - uxth w0, w0 - mul w1, w20, w1 - and w3, w3, 224 - cmp w3, 160 - bne .L2961 - ldrb w3, [x2,3225] - cmp w3, 2 - uxth w24, w3 - orr w1, w1, w3, lsl 24 - bne .L2961 - ldrh w0, [x2,3242] - sub w0, w0, #1 - uxth w0, w0 -.L2961: - add x20, x19, :lo12:.LANCHOR0 - orr w23, w0, w1 - mov w0, 1 - strb w24, [x20,2894] - strh wzr, [x20,2890] - strb wzr, [x20,2892] - strh wzr, [x20,2914] - bl buf_alloc - mov w1, 1 - str w23, [x0,40] - mov x21, x0 - bl sblk_read_page - ldrh w0, [x20,3242] - mov w1, 255 - ldrb w2, [x20,3244] - mul w2, w0, w2 - ldr x0, [x20,3216] - lsl w2, w2, 2 - bl ftl_memset - strh wzr, [x20,2912] - ldr w0, [x21,52] - cmp w0, 512 - beq .L2965 - cmn w0, #1 - beq .L2965 - ldr x0, [x21,24] - ldr w1, [x0] - mov w0, 15555 - movk w0, 0xf55f, lsl 16 - cmp w1, w0 - beq .L2964 - ldrh w0, [x20,2888] - mov x1, 0 - bl ftl_sblk_dump - ldr x0, [x21,24] - ldr w1, [x0] - mov w0, 15555 - movk w0, 0xf55f, lsl 16 - cmp w1, w0 - beq .L2965 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 712 - mov w2, 955 - bl printk -.L2965: - mov x0, x21 - bl buf_free - mov w0, -1 - b .L2953 -.L2964: - ldrb w0, [x20,3244] - mov x26, 0 - ldrh w22, [x20,3276] - mov w25, 1 - ldr x23, [x21,8] - mul w22, w0, w22 - mul w22, w24, w22 - mov w24, 21 - uxth w22, w22 -.L2966: - cmp w22, w26 - ble .L2984 - ldr w0, [x23,x26,lsl 2] - cmn w0, #1 - beq .L2968 - bl lpa_hash_get_ppa - str w0, [x29,92] - cmn w0, #1 - bne .L2969 - ldr w0, [x23,x26,lsl 2] - add x1, x29, 92 - mov w2, 0 - bl pm_log2phys -.L2969: - ldrh w0, [x20,3314] - ldr w2, [x29,92] - sub w1, w24, w0 - ldrh w3, [x20,2888] - lsl w1, w25, w1 - lsr w0, w2, w0 - sub w1, w1, #1 - and w0, w1, w0 - ldrb w1, [x20,3312] - udiv w0, w0, w1 - cmp w0, w3 - bne .L2968 - ldrh w3, [x20,2912] - ldr x0, [x20,3216] - str w2, [x0,x3,lsl 2] - ldrh w0, [x20,2912] - add w0, w0, 1 - strh w0, [x20,2912] -.L2968: - bl timer_get_time - add x26, x26, 1 - b .L2966 -.L2984: - mov x0, x21 - bl buf_free - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,2888] - ldr x3, [x0,72] - ubfiz x2, x1, 1, 16 - ldrh w2, [x3,x2] - ldrh w3, [x0,2912] - cmp w2, w3 - beq .L2972 - adrp x0, .LC234 - add x0, x0, :lo12:.LC234 - bl printk -.L2972: - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2888] - ldr x1, [x0,72] - ldrh w0, [x0,2912] - ldrh w1, [x1,x2,lsl 1] - cmp w1, w0 - bcs .L2973 - bl vpn_check -.L2973: - add x19, x19, :lo12:.LANCHOR0 - ldrh w2, [x19,2888] - ldr x1, [x19,72] - ldrh w3, [x19,2912] - strh w3, [x1,x2,lsl 1] - strh wzr, [x19,2916] - ldrh w0, [x19,2912] -.L2953: - 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 gc_scan_src_blk, .-gc_scan_src_blk - .align 2 - .global ftl_scan_all_data - .type ftl_scan_all_data, %function -ftl_scan_all_data: - sub sp, sp, #144 - mov w0, 0 - stp x29, x30, [sp,16] - add x29, sp, 16 - stp x19, x20, [sp,32] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - stp x21, x22, [sp,48] - bl buf_alloc - adrp x24, .LC236 - mov x19, x0 - adrp x25, .LC237 - adrp x0, .LC235 - mov w1, 0 - add x0, x0, :lo12:.LC235 - mov w20, 0 - add x24, x24, :lo12:.LC236 - add x27, x25, :lo12:.LC237 - bl printk -.L2986: - adrp x21, .LANCHOR0 - add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2824] - cmp w20, w0 - bcs .L3009 - mov w0, -1 - str w0, [x19,36] - mov w0, w20 - bl lpa_hash_get_ppa - str w0, [x29,124] - cmn w0, #1 - bne .L2987 - mov w0, w20 - add x1, x29, 124 - mov w2, 0 - bl pm_log2phys -.L2987: - and w0, w20, 4095 - cbnz w0, .L2988 - ldr w2, [x29,124] - mov x0, x24 - mov w1, w20 - bl printk -.L2988: - ldr w0, [x29,124] - str w0, [x19,40] - str w0, [x19,44] - cmn w0, #1 - beq .L2990 - mov x0, x19 - mov w1, 1 - bl sblk_read_page - ldr w3, [x19,52] - cmn w3, #1 - beq .L2991 - cmp w3, 256 - beq .L2991 - ldr x0, [x19,24] - ldr w0, [x0,4] - cmp w0, w20 - beq .L2990 -.L2991: - ldr x0, [x19,8] - add x23, x25, :lo12:.LC237 - ldr x7, [x19,24] - adrp x26, .LC238 - ldr w1, [x0] - str w1, [sp] - mov w1, w20 - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x23 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x19,40] - ldr w7, [x7,12] - bl printk - ldr x0, [x19,24] - ldr w22, [x0,4] - ldr w0, [x0,8] - cmn w0, #1 - bne .L2993 -.L2995: - add x21, x21, :lo12:.LANCHOR0 - mov w0, w20 - ldrb w22, [x21,2816] - bl lpa_hash_get_ppa - mov w1, w20 - mov w4, w0 - lsl w28, w22, 7 - lsl w3, w22, 7 - sub w3, w3, #1 - add x0, x26, :lo12:.LC238 - sdiv w28, w20, w28 - and w3, w20, w3 - adrp x26, .LC240 - mov x22, 0 - uxth w3, w3 - add x21, x21, 3872 - add x26, x26, :lo12:.LC240 - uxth w23, w28 - mov w2, w23 - bl printk - mov w0, w20 - add x1, x29, 124 - mov w2, 0 - bl pm_log2phys - b .L2994 -.L2993: - add x1, x21, :lo12:.LANCHOR0 - ldr w1, [x1,2824] - cmp w22, w1 - bcs .L2995 - str w0, [x19,40] - mov w1, 1 - mov x0, x19 - bl sblk_read_page - ldr x0, [x19,8] - ldr x7, [x19,24] - ldr w1, [x0] - str w1, [sp] - mov w1, w20 - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x23 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x19,40] - ldr w3, [x19,52] - ldr w7, [x7,12] - bl printk - mov w0, w22 - bl lpa_hash_get_ppa - str w0, [x29,124] - cmn w0, #1 - bne .L2996 - mov w0, w22 - add x1, x29, 124 - mov w2, 0 - bl pm_log2phys -.L2996: - ldr w0, [x29,124] - mov w1, 1 - str w0, [x19,40] - mov x0, x19 - bl sblk_read_page - ldr x0, [x19,8] - ldr x7, [x19,24] - ldr w1, [x0] - str w1, [sp] - mov w1, w22 - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x27 - ldr w6, [x7,8] - ldr w4, [x7] - ldr w3, [x19,52] - ldr w5, [x7,4] - ldr w2, [x19,40] - ldr w7, [x7,12] - bl printk - add x5, x21, :lo12:.LANCHOR0 - mov w0, w22 - str x5, [x29,96] - ldrb w23, [x5,2816] - lsl w2, w23, 7 - udiv w2, w22, w2 - str x2, [x29,104] - uxth w28, w2 - bl lpa_hash_get_ppa - lsl w3, w23, 7 - ldr x2, [x29,104] - sub w3, w3, #1 - mov w4, w0 - and w3, w3, w22 - mov w1, w22 - uxth w2, w2 - add x0, x26, :lo12:.LC238 - uxth w3, w3 - bl printk - mov w0, w22 - add x1, x29, 124 - mov w2, 0 - mov x22, 0 - bl pm_log2phys - ldr x5, [x29,96] - adrp x4, .LC239 - add x4, x4, :lo12:.LC239 - add x23, x5, 3872 -.L2998: - add x0, x23, x22 - ldr x1, [x0,8] - cbz x1, .L2997 - ldrh w0, [x22,x23] - cmp w0, w28 - bne .L2997 - mov x0, x4 - mov w2, 4 - mov w3, 4096 - str x4, [x29,104] - bl rknand_print_hex - ldr x4, [x29,104] -.L2997: - add x22, x22, 16 - cmp x22, 512 - bne .L2998 - b .L2995 -.L3010: - ldrh w0, [x22,x21] - cmp w0, w23 - bne .L2999 - mov x0, x26 - mov w2, 4 - mov w3, 4096 - bl rknand_print_hex -.L2999: - add x22, x22, 16 - cmp x22, 512 - beq .L2990 -.L2994: - add x0, x21, x22 - ldr x1, [x0,8] - cbnz x1, .L3010 - b .L2999 -.L2990: - add w20, w20, 1 - b .L2986 -.L3009: - mov x0, x19 - bl buf_free - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 144 - ret - .size ftl_scan_all_data, .-ftl_scan_all_data - .align 2 .type zftl_debug_proc_write, %function zftl_debug_proc_write: sub sp, sp, #224 @@ -19378,137 +18725,137 @@ zftl_debug_proc_write: stp x23, x24, [sp,80] stp x25, x26, [sp,96] mov x21, x2 - bhi .L3012 + bhi .L2996 mov x0, x19 bl rk_copy_from_user mov x22, x0 mov x0, -14 - cbnz x22, .L3012 - adrp x0, .LC241 + cbnz x22, .L2996 + adrp x0, .LC235 mov x1, x19 - add x0, x0, :lo12:.LC241 + add x0, x0, :lo12:.LC235 strb w22, [x19,x21] bl printk - adrp x0, .LC242 + adrp x0, .LC236 mov x1, x19 - add x0, x0, :lo12:.LC242 + add x0, x0, :lo12:.LC236 mov w2, 1 mov w3, 16 bl rknand_print_hex bl rknand_device_lock - adrp x1, .LC243 + adrp x1, .LC237 mov x0, x19 - add x1, x1, :lo12:.LC243 + add x1, x1, :lo12:.LC237 mov x2, 7 bl memcmp - cbnz w0, .L3013 + cbnz w0, .L2997 adrp x23, .LANCHOR0 - adrp x0, .LC244 + adrp x0, .LC238 add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC244 + add x0, x0, :lo12:.LC238 mov w2, 4 adrp x20, .LANCHOR4 - ldr x3, [x19,2848] + ldr x3, [x19,2864] add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex add x3, x20, :lo12:.LANCHOR4 - ldr x1, [x19,2848] - adrp x0, .LC245 + ldr x1, [x19,2864] + adrp x0, .LC239 mov w2, 2 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC239 add x1, x1, 416 - ldrh w3, [x3,1132] + ldrh w3, [x3,1180] mov w19, w22 mov w22, 65535 bl rknand_print_hex -.L3014: +.L2998: add x0, x20, :lo12:.LANCHOR4 - ldrh w0, [x0,1132] + ldrh w0, [x0,1180] cmp w19, w0 - bge .L3017 + bge .L3001 mov w0, 300 bl msleep add x0, x23, :lo12:.LANCHOR0 - ldr x0, [x0,2848] + ldr x0, [x0,2864] add x0, x0, x19, sxtw 1 ldrh w0, [x0,416] cmp w0, w22 - beq .L3015 + beq .L2999 mov x1, 0 bl ftl_sblk_dump -.L3015: +.L2999: add w19, w19, 1 - b .L3014 -.L3013: - adrp x1, .LC246 + b .L2998 +.L2997: + adrp x1, .LC240 mov x0, x19 - add x1, x1, :lo12:.LC246 + add x1, x1, :lo12:.LC240 mov x2, 7 bl memcmp - cbnz w0, .L3018 + cbnz w0, .L3002 adrp x23, .LANCHOR0 - adrp x0, .LC244 + adrp x0, .LC238 add x20, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC244 + add x0, x0, :lo12:.LC238 mov w2, 4 add x22, x29, 192 - adrp x24, .LC249 - ldr x3, [x20,2848] - add x24, x24, :lo12:.LC249 + adrp x24, .LC243 + ldr x3, [x20,2864] + add x24, x24, :lo12:.LC243 add x1, x3, 704 ldrh w3, [x3,698] bl rknand_print_hex - adrp x3, .LANCHOR4+1132 - ldr x1, [x20,2848] - adrp x0, .LC245 + adrp x3, .LANCHOR4+1180 + ldr x1, [x20,2864] + adrp x0, .LC239 mov w2, 2 - add x0, x0, :lo12:.LC245 + add x0, x0, :lo12:.LC239 add x1, x1, 416 - ldrh w3, [x3,#:lo12:.LANCHOR4+1132] + ldrh w3, [x3,#:lo12:.LANCHOR4+1180] bl rknand_print_hex - adrp x0, .LC247 + adrp x0, .LC241 add x1, x19, 7 - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC241 str x1, [x22,-88]! - add x19, x20, 3872 + add x19, x20, 3920 mov x20, x23 bl printk - adrp x23, .LC248 + adrp x23, .LC242 ldr x0, [x29,104] mov x1, x22 add x25, x19, 512 - add x23, x23, :lo12:.LC248 - bl rk_simple_strtoull.constprop.34 + add x23, x23, :lo12:.LC242 + bl rk_simple_strtoull.constprop.33 mov w22, w0 str w0, [x29,100] uxth w26, w0 -.L3020: +.L3004: ldrh w1, [x19] mov x0, x23 ldrh w2, [x19,2] bl printk ldrh w0, [x19] cmp w0, w26 - bne .L3019 + bne .L3003 add x0, x20, :lo12:.LANCHOR0 ldr x1, [x19,8] mov w2, 4 - ldrb w3, [x0,2816] + ldrb w3, [x0,2832] mov x0, x24 lsl w3, w3, 7 bl rknand_print_hex -.L3019: +.L3003: add x19, x19, 16 cmp x19, x25 - bne .L3020 + bne .L3004 mov w0, 300 add x20, x20, :lo12:.LANCHOR0 bl msleep mov w0, 1 bl buf_alloc mov x19, x0 - ldr x1, [x20,2848] + ldr x1, [x20,2864] add x1, x1, x22, uxth 2 ldr w1, [x1,704] str w1, [x29,100] @@ -19524,8 +18871,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC197 - add x0, x0, :lo12:.LC197 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 ldr w3, [x6] ldr w2, [x19,52] ldr w4, [x6,4] @@ -19533,58 +18880,62 @@ zftl_debug_proc_write: ldr w7, [x7] ldr w6, [x6,12] bl printk - ldrb w3, [x20,2816] - adrp x0, .LC250 - add x0, x0, :lo12:.LC250 + ldrb w3, [x20,2832] + adrp x0, .LC244 + add x0, x0, :lo12:.LC244 ldr x1, [x19,8] mov w2, 4 lsl w3, w3, 7 - b .L3032 -.L3018: - adrp x1, .LC251 + b .L3019 +.L3002: + adrp x1, .LC245 mov x0, x19 - add x1, x1, :lo12:.LC251 + add x1, x1, :lo12:.LC245 mov x2, 7 bl memcmp - cbnz w0, .L3021 + cbnz w0, .L3005 bl dump_ftl_info - b .L3017 -.L3021: - adrp x1, .LC252 + b .L3001 +.L3005: + adrp x1, .LC246 mov x0, x19 - add x1, x1, :lo12:.LC252 - mov x2, 8 + add x1, x1, :lo12:.LC246 + mov x2, 9 bl memcmp - cbnz w0, .L3022 + cbnz w0, .L3006 + add x1, x29, 192 + add x0, x19, 9 + str x0, [x1,-88]! + bl rk_simple_strtoull.constprop.33 + str w0, [x29,100] + adrp x1, .LANCHOR0+3352 + strh w0, [x1,#:lo12:.LANCHOR0+3352] bl dump_all_list_info - b .L3017 -.L3022: - adrp x1, .LC253 + b .L3001 +.L3006: + adrp x1, .LC247 mov x0, x19 - add x1, x1, :lo12:.LC253 + add x1, x1, :lo12:.LC247 mov x2, 8 bl memcmp - cbnz w0, .L3023 - bl vpn_check - b .L3017 -.L3023: - adrp x1, .LC254 + cbz w0, .L3001 + adrp x1, .LC248 mov x0, x19 - add x1, x1, :lo12:.LC254 + add x1, x1, :lo12:.LC248 mov x2, 8 bl memcmp - cbnz w0, .L3024 + cbnz w0, .L3008 add x20, x29, 192 - adrp x0, .LC247 + adrp x0, .LC241 add x1, x19, 8 - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC241 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] mov w0, 1 bl buf_alloc @@ -19602,8 +18953,8 @@ zftl_debug_proc_write: str w0, [sp,8] ldr w0, [x7,12] str w0, [sp,16] - adrp x0, .LC197 - add x0, x0, :lo12:.LC197 + adrp x0, .LC206 + add x0, x0, :lo12:.LC206 ldr w3, [x6] ldr w4, [x6,4] ldr w5, [x6,8] @@ -19611,99 +18962,117 @@ zftl_debug_proc_write: ldr w6, [x6,12] ldr w7, [x7] bl printk - ldrb w3, [x20,2816] - adrp x0, .LC190 + ldrb w3, [x20,2832] + adrp x0, .LC199 ldr x1, [x19,8] - add x0, x0, :lo12:.LC190 + add x0, x0, :lo12:.LC199 mov w2, 4 lsl w3, w3, 7 bl rknand_print_hex - ldrb w3, [x20,2816] - adrp x0, .LC191 + ldrb w3, [x20,2832] + adrp x0, .LC200 ldr x1, [x19,24] - add x0, x0, :lo12:.LC191 + add x0, x0, :lo12:.LC200 mov w2, 4 lsl w3, w3, 1 -.L3032: +.L3019: bl rknand_print_hex mov x0, x19 bl buf_free - b .L3017 -.L3024: - adrp x1, .LC255 + b .L3001 +.L3008: + adrp x1, .LC249 mov x0, x19 - add x1, x1, :lo12:.LC255 + add x1, x1, :lo12:.LC249 mov x2, 8 bl memcmp - cbnz w0, .L3025 + cbnz w0, .L3009 add x20, x29, 192 - adrp x0, .LC247 + adrp x0, .LC241 add x1, x19, 8 - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC241 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] mov x1, x22 bl ftl_sblk_dump - b .L3017 -.L3025: - adrp x1, .LC256 + b .L3001 +.L3009: + adrp x1, .LC250 mov x0, x19 - add x1, x1, :lo12:.LC256 + add x1, x1, :lo12:.LC250 mov x2, 10 bl memcmp - cbnz w0, .L3026 + cbnz w0, .L3010 add x20, x29, 192 - adrp x0, .LC247 + adrp x0, .LC241 add x1, x19, 10 - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC241 str x1, [x20,-88]! bl printk ldr x0, [x29,104] mov x1, x20 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 str w0, [x29,100] adrp x1, .LANCHOR2 str w0, [x1,#:lo12:.LANCHOR2] - b .L3017 -.L3026: - adrp x1, .LC257 + b .L3001 +.L3010: + adrp x1, .LC251 mov x2, 8 mov x0, x19 - add x1, x1, :lo12:.LC257 + add x1, x1, :lo12:.LC251 bl memcmp mov w2, w0 str x2, [x29,88] - cbnz w0, .L3027 + cbnz w0, .L3011 add x1, x19, 8 - adrp x0, .LC247 + adrp x0, .LC241 add x19, x29, 192 - add x0, x0, :lo12:.LC247 + add x0, x0, :lo12:.LC241 str x1, [x19,-88]! bl printk ldr x0, [x29,104] mov x1, x19 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 mov w19, w0 bl lpa_hash_get_ppa str w0, [x29,100] cmn w0, #1 ldr x2, [x29,88] - bne .L3028 + bne .L3012 mov w0, w19 add x1, x29, 100 bl pm_log2phys -.L3028: - adrp x0, .LC258 +.L3012: + adrp x0, .LC252 ldr w2, [x29,100] mov w1, w19 + add x0, x0, :lo12:.LC252 + bl printk + b .L3001 +.L3011: + adrp x0, .LC253 + add x0, x0, :lo12:.LC253 + bl printk + adrp x0, .LC254 + add x0, x0, :lo12:.LC254 + bl printk + adrp x0, .LC255 + add x0, x0, :lo12:.LC255 + bl printk + adrp x0, .LC256 + add x0, x0, :lo12:.LC256 + bl printk + adrp x0, .LC257 + add x0, x0, :lo12:.LC257 + bl printk + adrp x0, .LC258 add x0, x0, :lo12:.LC258 bl printk - b .L3017 -.L3027: adrp x0, .LC259 add x0, x0, :lo12:.LC259 bl printk @@ -19713,28 +19082,10 @@ zftl_debug_proc_write: adrp x0, .LC261 add x0, x0, :lo12:.LC261 bl printk - adrp x0, .LC262 - add x0, x0, :lo12:.LC262 - bl printk - adrp x0, .LC263 - add x0, x0, :lo12:.LC263 - bl printk - adrp x0, .LC264 - add x0, x0, :lo12:.LC264 - bl printk - adrp x0, .LC265 - add x0, x0, :lo12:.LC265 - bl printk - adrp x0, .LC266 - add x0, x0, :lo12:.LC266 - bl printk - adrp x0, .LC267 - add x0, x0, :lo12:.LC267 - bl printk -.L3017: +.L3001: bl rknand_device_unlock mov x0, x21 -.L3012: +.L2996: sub sp, x29, #32 ldp x19, x20, [sp,48] ldp x21, x22, [sp,64] @@ -19759,65 +19110,65 @@ ftl_update_l2p_map: stp x25, x26, [sp,64] stp x27, x28, [sp,80] ldrb w1, [x23,9] - ldrh w24, [x0,3276] + ldrh w24, [x0,3316] ldrh w20, [x23,12] - ldr x0, [x0,3840] + ldr x0, [x0,3888] mul w24, w24, w1 add x20, x0, x20, lsl 2 add x0, x20, x24, sxtw 2 ldr w0, [x0,-4] cmn w0, #1 - beq .L3034 + beq .L3021 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 728 - mov w2, 1468 + add x1, x1, 672 + mov w2, 1576 bl printk -.L3034: - adrp x0, .LC269 +.L3021: + adrp x0, .LC263 mov x28, 0 - add x0, x0, :lo12:.LC269 - adrp x27, .LC268 + add x0, x0, :lo12:.LC263 + adrp x27, .LC262 str x0, [x29,120] - adrp x0, .LC270 - add x0, x0, :lo12:.LC270 + adrp x0, .LC264 + add x0, x0, :lo12:.LC264 mov w22, w28 str x0, [x29,112] - add x27, x27, :lo12:.LC268 -.L3035: + add x27, x27, :lo12:.LC262 +.L3022: cmp w28, w24 mov w25, w28 - bge .L3062 + bge .L3049 ldr w2, [x20,x28,lsl 2] cmn w2, #1 - beq .L3036 + beq .L3023 add x0, x19, :lo12:.LANCHOR0 - ldrb w21, [x0,2816] + ldrb w21, [x0,2832] adrp x0, .LANCHOR2 lsl w21, w21, 7 ldr w0, [x0,#:lo12:.LANCHOR2] udiv w21, w2, w21 and w21, w21, 65535 - tbz x0, 12, .L3040 + tbz x0, 12, .L3027 mov x0, x27 mov w1, w21 mov w3, w28 bl printk -.L3040: +.L3027: sbfiz x26, x25, 2, 32 ldr w0, [x20,x26] cmn w0, #1 - beq .L3038 + beq .L3025 add x3, x19, :lo12:.LANCHOR0 - ldrb w1, [x3,2816] + ldrb w1, [x3,2832] lsl w1, w1, 7 udiv w0, w0, w1 cmp w21, w0, uxth - bne .L3038 + bne .L3025 ldrb w0, [x23,9] - ldrh w2, [x3,3324] + ldrh w2, [x3,3366] str x3, [x29,104] sdiv w1, w25, w0 msub w0, w1, w0, w25 @@ -19829,13 +19180,13 @@ ftl_update_l2p_map: ldr w1, [x20,x26] bl pm_ppa_update_check ldr x3, [x29,104] - cbz w0, .L3039 - ldr x1, [x3,3840] + cbz w0, .L3026 + ldr x1, [x3,3888] mov w2, 4 ldr x0, [x29,112] mov w3, w24 bl rknand_print_hex -.L3039: +.L3026: ldr w0, [x20,x26] add x1, x29, 140 mov w2, 1 @@ -19844,30 +19195,30 @@ ftl_update_l2p_map: uxth w22, w22 mov w0, -1 str w0, [x20,x26] -.L3038: +.L3025: add w25, w25, 1 cmp w25, w24 - bne .L3040 -.L3036: + bne .L3027 +.L3023: add x28, x28, 1 - b .L3035 -.L3062: + b .L3022 +.L3049: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3042 + tbz x0, 12, .L3029 add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x23] mov w2, w22 ubfiz x3, x1, 1, 16 - ldr x4, [x0,72] - adrp x0, .LC271 - add x0, x0, :lo12:.LC271 + ldr x4, [x0,80] + adrp x0, .LC265 + add x0, x0, :lo12:.LC265 ldrh w3, [x4,x3] bl printk -.L3042: +.L3029: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x23] - ldr x0, [x19,72] + ldr x0, [x19,80] strh w22, [x0,x1,lsl 1] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -19890,13 +19241,13 @@ ftl_alloc_new_data_sblk: ldrh w0, [x19] mov w1, 65535 cmp w0, w1 - beq .L3064 + beq .L3051 bl zftl_insert_data_list -.L3064: - adrp x0, .LANCHOR0+80 +.L3051: + adrp x0, .LANCHOR0+88 mov w2, 2 mov w1, 3 - ldr x0, [x0,#:lo12:.LANCHOR0+80] + ldr x0, [x0,#:lo12:.LANCHOR0+88] add x0, x0, 16 cmp x19, x0 mov x0, x19 @@ -19916,292 +19267,292 @@ ftl_alloc_new_data_sblk: .type ftl_write_commit, %function ftl_write_commit: stp x29, x30, [sp, -160]! - adrp x0, .LANCHOR5 add x29, sp, 0 stp x23, x24, [sp,48] adrp x24, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR5 add x24, x24, :lo12:.LANCHOR0 + add x0, x24, 784 + str x0, [x29,112] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 str x0, [x29,120] - stp x27, x28, [sp,80] - add x0, x0, 513 - add x28, x24, 768 stp x19, x20, [sp,16] + add x0, x0, 1282 + str x0, [x29,104] stp x21, x22, [sp,32] stp x25, x26, [sp,64] - str x0, [x29,104] -.L3068: - ldrb w0, [x24,2840] - adrp x21, .LANCHOR0 - cbz w0, .L3070 - ldrb w1, [x24,2866] + stp x27, x28, [sp,80] +.L3055: + ldrb w0, [x24,2856] + adrp x22, .LANCHOR0 + cbz w0, .L3057 + ldrb w1, [x24,2888] sub w0, w0, #1 - str x1, [x29,112] + ldr x2, [x29,112] + str x1, [x29,128] lsl x1, x1, 6 - strb w0, [x24,2840] - add x25, x28, x1 - ldr w0, [x24,2824] - ldrb w1, [x28,x1] - ldr w23, [x25,36] - strb w1, [x24,2866] - cmp w23, w0 - bcc .L3071 - mov x0, x25 + add x27, x2, x1 + strb w0, [x24,2856] + ldr w0, [x24,2840] + ldrb w1, [x2,x1] + strb w1, [x24,2888] + ldr w1, [x27,36] + cmp w1, w0 + bcc .L3058 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 696 + mov w2, 487 + bl printk +.L3058: + ldr x0, [x29,128] + add x1, x22, :lo12:.LANCHOR0 + add x4, x1, 784 + add x0, x4, x0, lsl 6 + ldr w2, [x1,2840] + ldr w23, [x0,36] + cmp w23, w2 + bcc .L3059 + mov x0, x27 bl buf_free mov w0, -1 - b .L3125 -.L3071: - ldr x0, [x25,24] - str x0, [x29,128] - ldrb w0, [x24,2841] - ldr x26, [x25,8] - ldrb w22, [x25,57] - ldrb w20, [x25,56] - cbz w0, .L3073 + b .L3113 +.L3059: + ldr x25, [x0,8] + ldr x28, [x0,24] + ldrb w21, [x0,57] + ldrb w20, [x0,56] + ldrb w0, [x1,2857] + cbz w0, .L3061 ldr x0, [x29,120] - ldrb w3, [x0,513] - add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 768 - add x3, x28, x3, lsl 6 -.L3074: - ldrb w4, [x3] - cmp w4, 255 - beq .L3127 - sbfiz x3, x4, 6, 32 - add x3, x0, x3 - b .L3074 -.L3127: + ldrb w3, [x0,1282] + add x3, x4, x3, lsl 6 +.L3062: + ldrb w5, [x3] + cmp w5, 255 + beq .L3115 + sbfiz x3, x5, 6, 32 + add x3, x4, x3 + b .L3062 +.L3115: ldr w0, [x3,36] cmp w0, w23 - bne .L3073 + bne .L3061 ldr x0, [x3,8] - ubfiz x1, x22, 9, 8 + ubfiz x1, x21, 9, 8 lsl w2, w20, 9 add x0, x0, x1 - add x1, x26, x1 + add x1, x25, x1 bl ftl_memcpy - mov x0, x25 + mov x0, x27 bl buf_free - b .L3068 -.L3073: + b .L3055 +.L3061: mov w0, w23 bl lpa_hash_get_ppa str w0, [x29,156] cmn w0, #1 - bne .L3077 + bne .L3065 mov w0, w23 add x1, x29, 156 mov w2, 0 bl pm_log2phys -.L3077: - add x4, x21, :lo12:.LANCHOR0 +.L3065: + add x4, x22, :lo12:.LANCHOR0 mov w3, 0 - ldr x19, [x4,80] - add x4, x4, 768 + ldr x19, [x4,88] + add x4, x4, 784 add x19, x19, 16 -.L3080: +.L3068: ldr w0, [x4,36] cmp w0, w23 - bne .L3078 + bne .L3066 ldrb w5, [x4,2] - tbz x5, 3, .L3078 - add x0, x21, :lo12:.LANCHOR0 + tbz x5, 3, .L3066 + add x0, x22, :lo12:.LANCHOR0 ubfiz x3, x3, 6, 32 - add x0, x0, 768 + add x0, x0, 784 and w5, w5, -9 add x3, x0, x3 ldr w0, [x3,40] strb w5, [x3,2] - ldr x27, [x3,8] + ldr x26, [x3,8] str w0, [x29,156] - b .L3079 -.L3078: + b .L3067 +.L3066: add w3, w3, 1 add x4, x4, 64 cmp w3, 32 - bne .L3080 - mov x27, 0 -.L3079: - add x3, x21, :lo12:.LANCHOR0 + bne .L3068 + mov x26, 0 +.L3067: + add x3, x22, :lo12:.LANCHOR0 str wzr, [x29,136] - ldrb w0, [x3,2816] + ldrb w0, [x3,2832] cmp w20, w0 - bcs .L3081 - add w20, w22, w20 - cbz x27, .L3082 - cbz w22, .L3083 - mov x0, x26 - mov x1, x27 - lsl w2, w22, 9 + bcs .L3069 + add w20, w21, w20 + cbz x26, .L3070 + cbz w21, .L3071 + mov x0, x25 + mov x1, x26 + lsl w2, w21, 9 str x3, [x29,136] bl ftl_memcpy ldr x3, [x29,136] - ldr x19, [x3,80] + ldr x19, [x3,88] add x19, x19, 48 -.L3083: - add x0, x21, :lo12:.LANCHOR0 - ldrb w2, [x0,2816] +.L3071: + add x0, x22, :lo12:.LANCHOR0 + ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3084 - ldr x19, [x0,80] + bcc .L3072 + ldr x19, [x0,88] add x19, x19, 16 - b .L3126 -.L3084: + b .L3114 +.L3072: ubfiz x1, x20, 9, 9 sub w2, w2, w20 - add x0, x26, x1 + add x0, x25, x1 lsl w2, w2, 9 - add x1, x27, x1 + add x1, x26, x1 bl ftl_memcpy -.L3126: +.L3114: str wzr, [x29,136] - b .L3081 -.L3082: + b .L3069 +.L3070: ldr w0, [x29,156] cmn w0, #1 - beq .L3085 + beq .L3073 mov w0, 1 bl buf_alloc - mov x27, x0 + mov x26, x0 ldr w1, [x29,156] str w1, [x0,40] mov w1, 1 str w23, [x0,36] bl sblk_read_page - ldr x0, [x27,24] + ldr x0, [x26,24] ldr w1, [x0,12] ldr w0, [x0,4] add w1, w1, 1 str w1, [x29,136] cmp w0, w23 - bne .L3086 - ldr w0, [x27,52] + bne .L3074 + ldr w0, [x26,52] cmn w0, #1 - bne .L3087 -.L3086: - ldrb w1, [x27,1] - adrp x0, .LC272 + bne .L3075 +.L3074: + ldrb w1, [x26,1] + adrp x0, .LC266 ldr w2, [x29,156] mov w3, w23 - ldr w4, [x27,52] - add x0, x0, :lo12:.LC272 + ldr w4, [x26,52] + add x0, x0, :lo12:.LC266 bl printk + adrp x0, .LC200 mov w2, 4 - ldr x1, [x27,24] - adrp x0, .LC191 + ldr x1, [x26,24] + add x0, x0, :lo12:.LC200 mov w3, w2 - add x0, x0, :lo12:.LC191 bl rknand_print_hex - add x3, x21, :lo12:.LANCHOR0 - mov w2, 21 - mov w1, 1 - ldrh w0, [x3,3314] - sub w2, w2, w0 - lsl w2, w1, w2 - ldr w1, [x29,156] - sub w2, w2, #1 - lsr w0, w1, w0 - ldrb w1, [x3,3312] - and w0, w2, w0 - udiv w0, w0, w1 - mov x1, 0 - bl ftl_sblk_dump -.L3087: - ldr x0, [x27,24] +.L3075: + ldr x0, [x26,24] ldr w0, [x0,4] cmp w0, w23 - bne .L3088 - ldr w0, [x27,52] + bne .L3076 + ldr w0, [x26,52] cmn w0, #1 - bne .L3089 -.L3088: + bne .L3077 +.L3076: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 752 - mov w2, 544 + add x1, x1, 696 + mov w2, 557 bl printk -.L3089: - cbz w22, .L3090 +.L3077: + cbz w21, .L3078 ldr w0, [x29,156] - lsl w2, w22, 9 + lsl w2, w21, 9 cmn w0, #1 - beq .L3091 - ldr x1, [x27,8] - mov x0, x26 + beq .L3079 + ldr x1, [x26,8] + mov x0, x25 bl ftl_memcpy - b .L3092 -.L3085: - cbz w22, .L3090 - lsl w2, w22, 9 -.L3091: - mov x0, x26 + b .L3080 +.L3073: + cbz w21, .L3078 + lsl w2, w21, 9 +.L3079: + mov x0, x25 mov w1, 0 bl ftl_memset -.L3092: - add x0, x21, :lo12:.LANCHOR0 - ldr x19, [x0,80] +.L3080: + add x0, x22, :lo12:.LANCHOR0 + ldr x19, [x0,88] add x19, x19, 48 -.L3090: - add x0, x21, :lo12:.LANCHOR0 - ldrb w2, [x0,2816] +.L3078: + add x0, x22, :lo12:.LANCHOR0 + ldrb w2, [x0,2832] cmp w20, w2 - bcc .L3093 - bls .L3094 - ldr x19, [x0,80] + bcc .L3081 + bls .L3082 + ldr x19, [x0,88] add x19, x19, 16 - b .L3094 -.L3093: + b .L3082 +.L3081: ldr w0, [x29,156] sub w2, w2, w20 lsl w2, w2, 9 cmn w0, #1 ubfiz x0, x20, 7, 9 - beq .L3095 - ldr x1, [x27,8] + beq .L3083 + ldr x1, [x26,8] lsl x20, x0, 2 - add x0, x26, x20 + add x0, x25, x20 add x1, x1, x20 bl ftl_memcpy - b .L3094 -.L3095: - add x0, x26, x0, lsl 2 + b .L3082 +.L3083: + add x0, x25, x0, lsl 2 mov w1, 0 bl ftl_memset -.L3094: - cbz x27, .L3081 - ldrb w0, [x27,2] - mov x1, x27 +.L3082: + cbz x26, .L3069 + ldrb w0, [x26,2] + mov x1, x26 and w0, w0, -9 - strb w0, [x27,2] - add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 2880 + strb w0, [x26,2] + add x0, x22, :lo12:.LANCHOR0 + add x0, x0, 2904 bl buf_remove_buf - mov x0, x27 + mov x0, x26 bl buf_free -.L3081: +.L3069: ldrh w0, [x19,6] - cbnz w0, .L3096 + cbnz w0, .L3084 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3096: +.L3084: mov x0, x19 - add x20, x21, :lo12:.LANCHOR0 + add x20, x22, :lo12:.LANCHOR0 bl ftl_get_new_free_page - ldr x1, [x29,112] - add x3, x20, 768 - ldr x6, [x29,128] + ldr x1, [x29,128] + add x3, x20, 784 + ldr w6, [x29,136] lsl x2, x1, 6 - ldr w7, [x29,136] add x1, x3, x2 ldr w5, [x1,32] - str w5, [x6] - str w23, [x6,4] + str w5, [x28] + str w6, [x28,12] ldr w5, [x29,156] - str w5, [x6,8] - str w7, [x6,12] + str w5, [x28,8] + str w23, [x28,4] str w0, [x1,40] mov w0, -1 strb w0, [x3,x2] @@ -20216,69 +19567,69 @@ ftl_write_commit: sub w0, w0, #1 strh w0, [x1,48] ldr x0, [x29,104] - mov x1, x25 + mov x1, x27 bl buf_add_tail - ldrb w0, [x20,2841] + ldrb w0, [x20,2857] add w0, w0, 1 - strb w0, [x20,2841] + strb w0, [x20,2857] bl timer_get_time ldr x1, [x29,120] - ldrb w2, [x20,2841] - str w0, [x1,516] + ldrb w2, [x20,2857] + str w0, [x1,1284] cmp w2, 2 - adrp x0, .LANCHOR5 - bhi .L3097 + adrp x0, .LANCHOR4 + bhi .L3085 ldrh w1, [x19,6] cmp w1, 1 - bne .L3070 -.L3097: + bne .L3057 +.L3085: ldrb w1, [x19,5] mov w4, 2 - add x6, x21, :lo12:.LANCHOR0 + add x6, x22, :lo12:.LANCHOR0 cmp w1, wzr ldrh w1, [x19,6] csinc w4, w4, wzr, ne - add x6, x6, 768 + add x6, x6, 784 cmp w1, 1 - add x1, x0, :lo12:.LANCHOR5 + add x1, x0, :lo12:.LANCHOR4 csel w4, w4, w2, ne - ldrb w5, [x1,513] + ldrb w5, [x1,1282] mov w1, 0 mov w3, w5 -.L3101: +.L3089: cmp w1, w4 - beq .L3128 + beq .L3116 ubfiz x3, x3, 6, 8 add w1, w1, 1 ldrb w3, [x6,x3] - b .L3101 -.L3128: - add x0, x0, :lo12:.LANCHOR5 + b .L3089 +.L3116: + add x0, x0, :lo12:.LANCHOR4 uxtb w1, w1 sub w2, w2, w1 ubfiz x5, x5, 6, 8 - strb w3, [x0,513] - add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 768 + strb w3, [x0,1282] + add x0, x22, :lo12:.LANCHOR0 + add x0, x0, 784 strb w2, [x0,2073] add x0, x0, x5 bl sblk_prog_page ldrh w0, [x19,6] cmp w0, 1 - bne .L3070 + bne .L3057 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 -.L3070: - add x21, x21, :lo12:.LANCHOR0 - ldrb w19, [x21,2840] - cbnz w19, .L3068 +.L3057: + add x22, x22, :lo12:.LANCHOR0 + ldrb w19, [x22,2856] + cbnz w19, .L3055 bl ftl_write_completed mov w0, w19 -.L3125: +.L3113: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -20301,102 +19652,82 @@ gc_do_copy_back: stp x23, x24, [sp,64] stp x25, x26, [sp,80] stp x27, x28, [sp,96] - ldrb w0, [x21,3241] - ldr x22, [x21,80] - cbnz w0, .L3130 + ldrb w0, [x21,3289] + ldr x22, [x21,88] + cbnz w0, .L3118 bl buf_alloc mov x20, x0 - cbz x0, .L3129 - ldrh w23, [x21,2914] - mov w0, w23 - add w23, w23, 1 + cbz x0, .L3117 + ldrh w22, [x21,2938] + mov w0, w22 + add w22, w22, 1 bl gc_get_src_ppa_from_index str w0, [x20,40] - mov w22, w0 + mov w23, w0 mov w1, 1 mov x0, x20 - strh w23, [x21,2914] + strh w22, [x21,2938] bl sblk_read_page ldr w0, [x20,52] cmp w0, 512 - beq .L3185 + beq .L3171 cmn w0, #1 - bne .L3132 -.L3185: - add x3, x19, :lo12:.LANCHOR0 - mov w2, 21 - ldrh w1, [x3,3314] - lsr w0, w22, w1 - sub w1, w2, w1 - mov w2, 1 - lsl w1, w2, w1 - sub w1, w1, #1 - and w1, w0, w1 - ldrb w0, [x3,3312] - udiv w0, w1, w0 - mov x1, 0 - bl ftl_sblk_dump -.L3132: - ldr w0, [x20,52] - cmp w0, 512 - beq .L3186 - cmn w0, #1 - bne .L3134 -.L3186: + bne .L3120 +.L3171: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 776 - mov w2, 573 + add x1, x1, 720 + mov w2, 595 bl printk -.L3134: +.L3120: ldr x0, [x20,24] ldr w21, [x0,4] mov w0, w21 bl lpa_hash_get_ppa str w0, [x29,144] cmn w0, #1 - bne .L3136 + bne .L3122 mov w0, w21 add x1, x29, 144 mov w2, 0 bl pm_log2phys -.L3136: - ldr w23, [x29,144] - cmp w23, w22 - bne .L3137 +.L3122: + ldr w22, [x29,144] + cmp w22, w23 + bne .L3123 add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 768 - add x1, x1, 2816 -.L3140: + add x0, x1, 784 + add x1, x1, 2832 +.L3126: ldr w2, [x0,36] cmp w2, w21 - bne .L3138 + bne .L3124 ldrb w2, [x0,2] - tbz x2, 1, .L3138 + tbz x2, 1, .L3124 mov x0, x20 bl buf_free adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3129 + tbz x0, 8, .L3117 add x19, x19, :lo12:.LANCHOR0 - adrp x0, .LC273 + adrp x0, .LC267 mov w1, w21 - mov w2, w23 - add x0, x0, :lo12:.LC273 - ldrh w3, [x19,2914] + mov w2, w22 + add x0, x0, :lo12:.LC267 + ldrh w3, [x19,2938] bl printk - b .L3129 -.L3138: + b .L3117 +.L3124: add x0, x0, 64 cmp x0, x1 - bne .L3140 - add x22, x19, :lo12:.LANCHOR0 + bne .L3126 + add x23, x19, :lo12:.LANCHOR0 ldrb w1, [x20,2] str w21, [x20,36] strb wzr, [x20,57] - ldrb w0, [x22,2816] + ldrb w0, [x23,2832] strb w0, [x20,56] mov w0, 10 orr w0, w1, w0 @@ -20406,59 +19737,59 @@ gc_do_copy_back: str w0, [x20,32] adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3141 + tbz x0, 8, .L3127 ldr w2, [x29,144] mov w0, w21 str x2, [x29,136] bl lpa_hash_get_ppa mov w3, w0 ldr x2, [x29,136] - adrp x0, .LC274 - ldrh w5, [x22,2914] - add x0, x0, :lo12:.LC274 + adrp x0, .LC268 + ldrh w5, [x23,2938] + add x0, x0, :lo12:.LC268 mov w1, w21 - mov w4, w23 + mov w4, w22 bl printk -.L3141: +.L3127: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf bl ftl_write_commit - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldr w0, [x1,60] add w0, w0, 1 str w0, [x1,60] - ldrh w0, [x19,2916] + ldrh w0, [x19,2940] add w0, w0, 1 - strh w0, [x19,2916] - b .L3129 -.L3137: + strh w0, [x19,2940] + b .L3117 +.L3123: adrp x0, .LANCHOR2 ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3143 + tbz x0, 8, .L3129 mov w0, w21 add x19, x19, :lo12:.LANCHOR0 bl lpa_hash_get_ppa mov w3, w0 - ldrh w5, [x19,2914] - adrp x0, .LC274 - add x0, x0, :lo12:.LC274 + ldrh w5, [x19,2938] + adrp x0, .LC268 + add x0, x0, :lo12:.LC268 mov w1, w21 - mov w2, w23 - mov w4, w22 + mov w2, w22 + mov w4, w23 bl printk -.L3143: +.L3129: mov x0, x20 bl buf_free - b .L3129 -.L3130: - ldrb w24, [x21,3225] - add x0, x21, 2888 + b .L3117 +.L3118: + ldrb w24, [x21,3273] + add x0, x21, 2912 add x22, x22, 80 cmp w24, 3 - bne .L3144 - ldrb w1, [x21,3240] - cbz w1, .L3145 + bne .L3130 + ldrb w1, [x21,3288] + cbz w1, .L3131 ldrb w20, [x22,9] ldrh w21, [x0,314] str w24, [x29,136] @@ -20467,8 +19798,8 @@ gc_do_copy_back: sdiv w23, w21, w23 madd w20, w23, w20, w21 uxth w20, w20 - b .L3147 -.L3145: + b .L3133 +.L3131: ldrh w20, [x0,314] adrp x0, .LANCHOR2 ldrb w21, [x22,9] @@ -20485,107 +19816,107 @@ gc_do_copy_back: cmp w25, 1 add w21, w21, w21, lsl 1 uxth w21, w21 - bne .L3148 - b .L3147 -.L3144: + bne .L3134 + b .L3133 +.L3130: ldrb w20, [x22,9] - ldrb w1, [x21,3322] + ldrb w1, [x21,3364] ldrh w21, [x0,314] mov w0, 1 sdiv w23, w21, w20 msub w20, w23, w20, w21 uxth w20, w20 - cbz w1, .L3230 + cbz w1, .L3212 mov w0, 2 -.L3230: +.L3212: str w0, [x29,136] -.L3147: +.L3133: mov w25, 0 add x24, x19, :lo12:.LANCHOR0 adrp x3, .LANCHOR4 -.L3150: +.L3136: ldrb w1, [x22,9] ldr w0, [x29,136] mul w0, w0, w1 cmp w25, w0 - bge .L3183 - ldrh w0, [x24,3242] + bge .L3169 + ldrh w0, [x24,3290] add w26, w21, w25 mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 - beq .L3183 + beq .L3169 add x0, x3, :lo12:.LANCHOR4 sbfiz x26, x26, 2, 32 - ldr x1, [x0,1112] + ldr x1, [x0,1160] ldr w0, [x1,x26] cmn w0, #1 - bne .L3151 - ldrh w27, [x24,2914] - ldrh w0, [x24,2912] + bne .L3137 + ldrh w27, [x24,2938] + ldrh w0, [x24,2936] str x3, [x29,120] str x1, [x29,128] cmp w0, w27 - bls .L3129 + bls .L3117 mov w0, w27 add w27, w27, 1 bl gc_get_src_ppa_from_index - strh w27, [x24,2914] + strh w27, [x24,2938] ldr x1, [x29,128] ldr x3, [x29,120] str w0, [x1,x26] -.L3151: +.L3137: add w25, w25, 1 uxth w25, w25 - b .L3150 -.L3183: + b .L3136 +.L3169: mov w25, 1 -.L3148: +.L3134: adrp x0, .LANCHOR2 str x0, [x29,120] ldr w1, [x0,#:lo12:.LANCHOR2] - tbz x1, 8, .L3153 - adrp x0, .LANCHOR4+1112 + tbz x1, 8, .L3139 + adrp x0, .LANCHOR4+1160 add x4, x19, :lo12:.LANCHOR0 ubfiz x5, x21, 2, 16 mov w1, w23 mov w2, w25 mov w3, w20 - ldr x6, [x0,#:lo12:.LANCHOR4+1112] - adrp x0, .LC275 - ldrh w4, [x4,3202] - add x0, x0, :lo12:.LC275 + ldr x6, [x0,#:lo12:.LANCHOR4+1160] + adrp x0, .LC269 + ldrh w4, [x4,3226] + add x0, x0, :lo12:.LC269 ldr w5, [x6,x5] mov w6, w21 bl printk -.L3153: +.L3139: adrp x0, .LC0 mov w27, 0 add x0, x0, :lo12:.LC0 str x0, [x29,112] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 776 + add x0, x0, 720 str x0, [x29,104] -.L3154: +.L3140: ldrb w0, [x22,9] ldr w1, [x29,136] mul w0, w1, w0 cmp w27, w0 - bge .L3234 + bge .L3216 add w26, w21, w27 sxtw x0, w26 str x0, [x29,128] add x0, x19, :lo12:.LANCHOR0 ldr x1, [x29,128] - ldr x0, [x0,3232] + ldr x0, [x0,3280] ldrb w0, [x0,x1] cmp w0, 255 - bne .L3155 + bne .L3141 mov w0, 0 bl buf_alloc mov x24, x0 - cbnz x0, .L3156 + cbnz x0, .L3142 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -20593,45 +19924,45 @@ gc_do_copy_back: mov w0, w24 bl buf_alloc mov x24, x0 - cbz x0, .L3129 -.L3156: + cbz x0, .L3117 +.L3142: add x28, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] ldrb w1, [x24,1] - ldr x0, [x28,3232] + ldr x0, [x28,3280] strb w1, [x0,x2] strh w26, [x24,48] - ldrb w0, [x28,2895] + ldrb w0, [x28,2919] strb w25, [x24,61] add w0, w0, 1 - strb w0, [x28,2895] + strb w0, [x28,2919] ldrb w1, [x22,9] - ldrh w0, [x28,3242] + ldrh w0, [x28,3290] mul w0, w0, w1 sub w0, w0, #1 cmp w26, w0 adrp x26, .LANCHOR4 - bne .L3157 + bne .L3143 add x26, x26, :lo12:.LANCHOR4 mov w1, -1 - ldr x0, [x26,1104] + ldr x0, [x26,1152] str w1, [x0,x2,lsl 2] - ldrh w0, [x28,3242] - ldrb w2, [x28,3244] - ldr x1, [x26,1104] + ldrh w0, [x28,3290] + ldrb w2, [x28,3292] + ldr x1, [x26,1152] mul w2, w0, w2 ldr x0, [x24,8] lsl w2, w2, 2 bl ftl_memcpy - ldrh w0, [x28,3242] - ldrb w2, [x28,3244] - ldr x1, [x26,1112] + ldrh w0, [x28,3290] + ldrb w2, [x28,3292] + ldr x1, [x26,1160] mul w2, w0, w2 ldr x0, [x24,8] add x0, x0, x2, sxtw 2 lsl w2, w2, 2 bl ftl_memcpy - ldrb w2, [x28,2816] + ldrb w2, [x28,2832] mov w1, 0 ldr x0, [x24,24] lsl w2, w2, 1 @@ -20640,106 +19971,106 @@ gc_do_copy_back: mov w0, 15555 movk w0, 0xf55f, lsl 16 str w0, [x1] - ldrh w0, [x28,3242] - ldrb w1, [x28,3244] + ldrh w0, [x28,3290] + ldrb w1, [x28,3292] ldr x26, [x24,24] mul w1, w0, w1 ldr x0, [x24,8] lsl w1, w1, 2 bl js_hash str w0, [x26,4] - ldr x1, [x28,80] + ldr x1, [x28,88] ldr x0, [x24,24] ldr w1, [x1,132] - b .L3231 -.L3157: + b .L3213 +.L3143: ldr x0, [x29,128] mov w1, 1 lsl x28, x0, 2 add x0, x26, :lo12:.LANCHOR4 - ldr x0, [x0,1112] + ldr x0, [x0,1160] ldr w0, [x0,x28] str w0, [x24,40] mov x0, x24 bl sblk_read_page ldr w0, [x24,52] cmp w0, 512 - beq .L3158 + beq .L3144 cmn w0, #1 - bne .L3159 -.L3158: + bne .L3145 +.L3144: add x4, x19, :lo12:.LANCHOR0 mov w2, 21 mov w1, 1 - ldrh w0, [x4,3314] + ldrh w0, [x4,3356] sub w2, w2, w0 lsl w2, w1, w2 ldr w1, [x24,40] sub w2, w2, #1 lsr w0, w1, w0 - ldrb w1, [x4,3312] + ldrb w1, [x4,3354] and w0, w2, w0 udiv w0, w0, w1 mov x1, 0 bl ftl_sblk_dump ldr w0, [x24,52] cmp w0, 512 - beq .L3187 + beq .L3172 cmn w0, #1 - bne .L3159 -.L3187: + bne .L3145 +.L3172: ldr x0, [x24,24] mov w1, -1 str w1, [x0,4] -.L3159: +.L3145: ldr w0, [x24,52] cmp w0, 512 - beq .L3188 + beq .L3173 cmn w0, #1 - bne .L3162 -.L3188: + bne .L3148 +.L3173: ldr x0, [x29,112] - mov w2, 688 + mov w2, 710 ldr x1, [x29,104] bl printk -.L3162: +.L3148: ldr x1, [x24,24] add x0, x19, :lo12:.LANCHOR0 ldr w2, [x1,4] - ldr w0, [x0,2824] + ldr w0, [x0,2840] cmp w2, w0 - bcc .L3164 + bcc .L3150 mov w0, -1 str w0, [x1,4] -.L3164: +.L3150: ldr x0, [x24,24] add x26, x26, :lo12:.LANCHOR4 ldr w1, [x0,4] - ldr x0, [x26,1104] + ldr x0, [x26,1152] str w1, [x0,x28] ldr x0, [x24,24] ldr w1, [x24,40] -.L3231: +.L3213: str w1, [x0,8] -.L3155: +.L3141: add x3, x19, :lo12:.LANCHOR0 ldr x2, [x29,128] - add x1, x3, 768 + add x1, x3, 784 sxtw x5, w27 - ldr x0, [x3,3232] + ldr x0, [x3,3280] ldrb w4, [x0,x2] add x0, x29, 144 mov w2, 2 add x1, x1, x4, lsl 6 str x1, [x0,w27,sxtw 3] - ldrb w0, [x3,3225] + ldrb w0, [x3,3273] strh w2, [x1,50] cmp w0, 3 strb w25, [x1,61] adrp x2, .LANCHOR4 - bne .L3165 + bne .L3151 udiv w0, w27, w0 - ldrh w3, [x3,3324] + ldrh w3, [x3,3366] add x2, x2, :lo12:.LANCHOR4 add w4, w0, w20 add x4, x22, x4, sxtw 1 @@ -20750,54 +20081,54 @@ gc_do_copy_back: orr w3, w3, w23 sub w0, w27, w0 str w3, [x1,40] - ldr x1, [x2,1120] + ldr x1, [x2,1168] uxth w0, w0 add w0, w0, 1 orr w0, w3, w0, lsl 24 str w0, [x1,x4,lsl 2] - b .L3166 -.L3165: + b .L3152 +.L3151: cmp w0, 2 - bne .L3167 - ldrb w6, [x3,3322] + bne .L3153 + ldrb w6, [x3,3364] add x1, x1, 32 - ldrh w0, [x3,3324] - cbnz w6, .L3168 + ldrh w0, [x3,3366] + cbnz w6, .L3154 add w3, w27, w20 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] madd w0, w3, w0, w23 - b .L3233 -.L3168: + b .L3215 +.L3154: add w3, w20, w27, lsr 1 add x3, x22, x3, sxtw 1 ldrh w3, [x3,16] madd w0, w3, w0, w23 and w3, w27, 1 add w0, w0, w3 -.L3233: +.L3215: orr w0, w0, 33554432 str w0, [x1,8] -.L3167: +.L3153: add x0, x19, :lo12:.LANCHOR0 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, 768 + add x0, x0, 784 add x0, x0, x4, lsl 6 ldr w3, [x0,40] ldrh w1, [x0,48] - ldr x0, [x2,1120] + ldr x0, [x2,1168] str w3, [x0,x1,lsl 2] -.L3166: +.L3152: ldr x0, [x29,120] ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3169 + tbz x0, 8, .L3155 add x0, x29, 144 ldr x1, [x29,128] mov w2, w25 ldr x5, [x0,x5,lsl 3] add x0, x19, :lo12:.LANCHOR0 - ldrb w3, [x0,2894] - ldr x0, [x0,3232] + ldrb w3, [x0,2918] + ldr x0, [x0,3280] ldrh w6, [x5,48] ldrb w7, [x5,1] ldrb w4, [x0,x1] @@ -20809,57 +20140,57 @@ gc_do_copy_back: ldr x0, [x5,24] ldr w0, [x0,4] str w0, [sp,8] - adrp x0, .LC276 - add x0, x0, :lo12:.LC276 + adrp x0, .LC270 + add x0, x0, :lo12:.LC270 ldr w5, [x5,40] bl printk -.L3169: +.L3155: add w8, w27, 1 uxth w27, w8 - b .L3154 -.L3234: + b .L3140 +.L3216: add x2, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x2,3225] + ldrb w0, [x2,3273] cmp w0, 3 add x0, x29, 144 - bne .L3216 - ldrb w1, [x2,3240] - cbz w1, .L3172 -.L3175: + bne .L3199 + ldrb w1, [x2,3288] + cbz w1, .L3158 +.L3161: ldr x1, [x29,144] strb wzr, [x1,60] - b .L3173 -.L3172: + b .L3159 +.L3158: cmp w25, 1 mov w2, 9 - beq .L3232 + beq .L3214 cmp w25, 2 - bne .L3175 + bne .L3161 mov w2, 13 -.L3232: +.L3214: ldr x1, [x29,144] strb w2, [x1,60] -.L3173: +.L3159: ldrb w2, [x22,9] add x1, x0, 24 bl sblk_xlc_prog_pages - b .L3176 -.L3216: + b .L3162 +.L3199: ldrb w2, [x22,9] ldr w3, [x29,136] mul w2, w2, w3 sub w2, w2, #1 cmp w1, w2 - bge .L3235 + bge .L3217 ldr x2, [x0,w1,sxtw 3] add w1, w1, 1 ldr x3, [x0,w1,sxtw 3] uxth w1, w1 ldrb w3, [x3,1] strb w3, [x2] - b .L3216 -.L3235: + b .L3199 +.L3217: ldr x0, [x0,w2,sxtw 3] mov w1, -1 strb w1, [x0] @@ -20867,39 +20198,39 @@ gc_do_copy_back: ldr x0, [x29,144] mul w1, w3, w1 bl sblk_prog_page -.L3176: +.L3162: add x1, x19, :lo12:.LANCHOR0 ldrb w2, [x22,9] - ldrb w3, [x1,3240] - cbz w3, .L3178 + ldrb w3, [x1,3288] + cbz w3, .L3164 add w0, w2, w2, lsl 1 and w2, w0, 1023 - b .L3179 -.L3178: - ldrb w1, [x1,3322] + b .L3165 +.L3164: + ldrb w1, [x1,3364] ubfiz w0, w2, 1, 8 cmp w1, wzr csel w2, w0, w2, ne -.L3179: +.L3165: add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,2848] + ldr x1, [x19,2864] ldr w0, [x1,52] add w0, w0, w2 str w0, [x1,52] - ldrh w1, [x19,3202] + ldrh w1, [x19,3226] add w0, w2, w1 - ldrh w1, [x19,3242] + ldrh w1, [x19,3290] uxth w0, w0 - strh w0, [x19,3202] + strh w0, [x19,3226] ldrb w2, [x22,9] mul w1, w1, w2 cmp w0, w1 - blt .L3180 - ldr x0, [x19,80] + blt .L3166 + ldr x0, [x19,88] strh wzr, [x0,86] -.L3180: +.L3166: bl gc_write_completed -.L3129: +.L3117: sub sp, x29, #16 ldp x19, x20, [sp,32] ldp x21, x22, [sp,48] @@ -20911,1046 +20242,1064 @@ gc_do_copy_back: ret .size gc_do_copy_back, .-gc_do_copy_back .align 2 - .global zftl_discard - .type zftl_discard, %function -zftl_discard: - stp x29, x30, [sp, -128]! - add w2, w0, w1 - mov w4, -1 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - stp x19, x20, [sp,16] - mov w19, w1 - add x1, x21, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w1, [x1,4] - cmp w2, w1 - bhi .L3237 - adrp x23, .LANCHOR8 - add w24, w0, 24576 - add x0, x23, :lo12:.LANCHOR8 - adrp x25, .LANCHOR2 - ldr w1, [x0,3576] - add w1, w19, w1 - str w1, [x0,3576] - ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3238 - adrp x0, .LC277 - mov w2, w24 - add x0, x0, :lo12:.LC277 - mov w3, w19 - mov w4, 0 - bl printk -.L3238: - add x20, x21, :lo12:.LANCHOR0 - ldr x0, [x20,2848] - ldr w26, [x0,8] - add w1, w26, 1 - str w1, [x0,8] - bl ftl_write_commit - bl ftl_flush - ldrb w22, [x20,2816] - udiv w20, w24, w22 - msub w27, w20, w22, w24 - cbz w27, .L3239 - sub w22, w22, w27 - mov w0, w20 - cmp w22, w19 - csel w22, w22, w19, ls - bl lpa_hash_get_ppa - str w0, [x29,120] - cmn w0, #1 - bne .L3240 - mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys -.L3240: - ldr w0, [x29,120] - and w28, w22, 65535 - cmn w0, #1 - beq .L3242 - mov w0, 0 - bl buf_alloc - mov x3, x0 - cbz x0, .L3242 - strb w27, [x0,57] - ubfiz x27, x27, 9, 25 - str w20, [x0,36] - mov w1, 0 - strb w22, [x0,56] - lsl w2, w28, 9 - str w26, [x0,32] - ldr x0, [x0,8] - str x3, [x29,104] - add x0, x0, x27 - bl ftl_memset - ldr x3, [x29,104] - mov x0, x3 - bl ftl_write_buf - bl ftl_write_commit - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,2848] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L3242: - add w20, w20, 1 - sub w19, w19, w28 -.L3239: - cbz w19, .L3244 - bl ftl_flush -.L3244: - mov w0, -1 - mov w27, 1 - str w0, [x29,124] - mov w28, 21 -.L3245: - add x22, x21, :lo12:.LANCHOR0 - ldrb w0, [x22,2816] - cmp w19, w0 - bcc .L3284 - mov w0, w20 - bl lpa_hash_get_ppa - str w0, [x29,120] - cmn w0, #1 - beq .L3246 - mov w0, 0 - bl buf_alloc - mov x3, x0 - cbz x0, .L3248 - ldrb w2, [x22,2816] - mov w1, 0 - str w20, [x0,36] - strb w2, [x0,56] - lsl w2, w2, 9 - str w26, [x0,32] - strb wzr, [x0,57] - ldr x0, [x0,8] - str x3, [x29,104] - bl ftl_memset - ldr x3, [x29,104] - mov x0, x3 - bl ftl_write_buf - bl ftl_write_commit - b .L3283 -.L3246: - mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys - ldr w0, [x29,120] - cmn w0, #1 - beq .L3248 - add x1, x29, 124 - mov w2, 1 - mov w0, w20 - bl pm_log2phys - ldrh w0, [x22,3314] - ldr w1, [x29,120] - sub w2, w28, w0 - lsl w2, w27, w2 - lsr w0, w1, w0 - sub w2, w2, #1 - ldrb w1, [x22,3312] - and w0, w2, w0 - udiv w0, w0, w1 - bl ftl_vpn_decrement -.L3283: - ldr x1, [x22,2848] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L3248: - add x0, x21, :lo12:.LANCHOR0 - add w20, w20, 1 - ldrb w0, [x0,2816] - sub w19, w19, w0 - b .L3245 -.L3284: - cbz w19, .L3252 - mov w0, w20 - bl lpa_hash_get_ppa - str w0, [x29,120] - cmn w0, #1 - bne .L3253 - mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys -.L3253: - ldr w0, [x29,120] - cmn w0, #1 - beq .L3252 - mov w0, 0 - bl buf_alloc - mov x22, x0 - cbz x0, .L3252 - str w20, [x0,36] - strb wzr, [x0,57] - strb w19, [x0,56] - str w26, [x0,32] - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,2816] - cmp w19, w0 - bcc .L3255 - adrp x1, .LANCHOR3 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC0 - add x1, x1, 792 - mov w2, 1177 - bl printk -.L3255: - ldr x0, [x22,8] - mov w1, 0 - lsl w2, w19, 9 - add x21, x21, :lo12:.LANCHOR0 - bl ftl_memset - mov x0, x22 - bl ftl_write_buf - bl ftl_write_commit - ldr x1, [x21,2848] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L3252: - add x0, x23, :lo12:.LANCHOR8 - mov w4, 0 - ldr w1, [x0,3576] - cmp w1, 8192 - bls .L3237 - ldr w0, [x25,#:lo12:.LANCHOR2] - tbz x0, 12, .L3256 - adrp x0, .LC277 - mov w2, w24 - add x0, x0, :lo12:.LC277 - mov w3, w19 - bl printk -.L3256: - add x23, x23, :lo12:.LANCHOR8 - str wzr, [x23,3576] - bl flt_sys_flush - mov w0, 1 - mov w4, 0 - str w0, [x23,3580] -.L3237: - mov w0, w4 - 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 - .align 2 .global zftl_do_gc .type zftl_do_gc, %function zftl_do_gc: - sub sp, sp, #112 + sub sp, sp, #128 stp x29, x30, [sp,16] add x29, sp, 16 stp x19, x20, [sp,32] adrp x19, .LANCHOR0 - stp x23, x24, [sp,64] - mov w24, w0 - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,48] + add x1, x19, :lo12:.LANCHOR0 stp x25, x26, [sp,80] + stp x21, x22, [sp,48] + stp x23, x24, [sp,64] stp x27, x28, [sp,96] - cmp w24, 1 - ldrh w1, [x0,2832] - ldrh w21, [x0,2828] - ldr x23, [x0,80] - add w21, w1, w21 - ldrh w22, [x0,2830] - uxth w21, w21 - bne .L3286 - adrp x0, .LANCHOR7 - adrp x25, .LANCHOR8 - add x2, x0, :lo12:.LANCHOR7 - mov x20, x0 - ldr w26, [x2,3312] - cbnz w26, .L3287 - add x0, x25, :lo12:.LANCHOR8 - ldr w0, [x0,3584] - cbz w0, .L3286 -.L3287: - add w26, w26, 50 + mov w26, w0 + ldrh w20, [x1,2844] + cmp w26, 1 + ldrh w0, [x1,2848] + ldr x24, [x1,88] + add w20, w0, w20 + ldrh w22, [x1,2846] + uxth w20, w20 + bne .L3219 + adrp x21, .LANCHOR7 + add x1, x21, :lo12:.LANCHOR7 + ldr w23, [x1,-24] + cbnz w23, .L3220 + ldr w1, [x1,-20] + cbz w1, .L3219 +.L3220: + add x1, x19, :lo12:.LANCHOR0 + ldrh w2, [x1,3322] + cmp w20, w2, lsr 2 + bls .L3219 + ldrh w1, [x1,2872] + cmp w1, w20 + bcs .L3219 + add w23, w23, 20 bl timer_get_time - cmp w26, w0 - bcs .L3288 - add x0, x20, :lo12:.LANCHOR7 - str wzr, [x0,3312] -.L3288: - add x19, x25, :lo12:.LANCHOR8 - ldr w20, [x19,3584] + cmp w23, w0 + bcs .L3221 + add x0, x21, :lo12:.LANCHOR7 + str wzr, [x0,-24] +.L3221: + add x19, x21, :lo12:.LANCHOR7 + ldr w20, [x19,-20] bl timer_get_time - add w20, w20, 50 + add w20, w20, 20 cmp w20, w0 - bcs .L3404 - str wzr, [x19,3584] - b .L3404 -.L3286: - adrp x20, .LANCHOR4 - add x0, x20, :lo12:.LANCHOR4 - ldrb w2, [x0,1098] + bcs .L3402 + str wzr, [x19,-20] + b .L3402 +.L3219: + adrp x23, .LANCHOR4 + add x1, x23, :lo12:.LANCHOR4 + ldrb w2, [x1,1146] + mov w1, 16 cmp w2, 6 - bhi .L3404 - adrp x0, .L3292 - add x0, x0, :lo12:.L3292 - ldrh w0, [x0,w2,uxtw #1] - adr x2, .Lrtx3292 - add x0, x2, w0, sxth #2 - br x0 -.Lrtx3292: + bhi .L3375 + adrp x1, .L3225 + add x1, x1, :lo12:.L3225 + ldrh w1, [x1,w2,uxtw #1] + adr x2, .Lrtx3225 + add x1, x2, w1, sxth #2 + br x1 +.Lrtx3225: .section .rodata .align 0 .align 2 -.L3292: - .2byte (.L3291 - .Lrtx3292) / 4 - .2byte (.L3293 - .Lrtx3292) / 4 - .2byte (.L3294 - .Lrtx3292) / 4 - .2byte (.L3295 - .Lrtx3292) / 4 - .2byte (.L3296 - .Lrtx3292) / 4 - .2byte (.L3374 - .Lrtx3292) / 4 - .2byte (.L3298 - .Lrtx3292) / 4 +.L3225: + .2byte (.L3224 - .Lrtx3225) / 4 + .2byte (.L3226 - .Lrtx3225) / 4 + .2byte (.L3227 - .Lrtx3225) / 4 + .2byte (.L3228 - .Lrtx3225) / 4 + .2byte (.L3229 - .Lrtx3225) / 4 + .2byte (.L3333 - .Lrtx3225) / 4 + .2byte (.L3231 - .Lrtx3225) / 4 .text -.L3291: - ldrh w28, [x23,80] - add x27, x19, :lo12:.LANCHOR0 - mov w0, 65535 - add w22, w22, w1 - cmp w28, w0 +.L3224: + add x21, x19, :lo12:.LANCHOR0 + add w22, w22, w0 + ldrh w1, [x24,80] uxth w22, w22 - ldrh w25, [x27,2834] - ldrh w26, [x27,2836] - beq .L3299 + ldrh w0, [x21,2850] + ldrh w25, [x21,2852] + add w25, w25, w0 + mov w0, 65535 + cmp w1, w0 + uxth w25, w25 + beq .L3232 + cbnz w26, .L3233 + ldrh w0, [x21,2872] + cmp w20, w0, lsl 1 + bge .L3402 +.L3233: + add x21, x19, :lo12:.LANCHOR0 + mov w1, 5 + ldrh w0, [x21,3320] + add w0, w0, 1 + uxth w0, w0 + strh w0, [x21,3320] + bl zftl_get_gc_node + uxth w2, w0 + mov w1, 65535 + cmp w2, w1 + beq .L3235 + add x3, x23, :lo12:.LANCHOR4 + ubfiz x2, x2, 1, 16 + ldr w1, [x3,1148] + add w1, w1, 1 + str w1, [x3,1148] + ldr x3, [x21,80] + ldrh w2, [x3,x2] + ldrh w3, [x21,3316] + cmp w3, w2 + bcs .L3236 + ldrh w3, [x21,56] + cmp w1, w3, lsr 4 + bls .L3235 + ldrh w1, [x21,2874] + cmp w1, w2 + bls .L3235 +.L3236: + add x2, x19, :lo12:.LANCHOR0 + mov w1, 0 + ldrb w2, [x2,3289] + bl gc_add_sblk + cbz w0, .L3237 + add x23, x23, :lo12:.LANCHOR4 + mov w0, 1 + str wzr, [x23,1148] + strb w0, [x23,1146] + b .L3402 +.L3235: + add x0, x19, :lo12:.LANCHOR0 + strh wzr, [x0,3320] +.L3237: + cmp w22, 15 + mov w21, 2 + bls .L3238 + cbz w25, .L3335 + add x0, x19, :lo12:.LANCHOR0 + mov w21, 1 + ldrh w1, [x0,2854] + ldrh w0, [x0,3324] + cmp w1, w0 + bls .L3238 +.L3335: + mov w21, 2 +.L3238: adrp x0, .LANCHOR2 - cmp w22, 7 - mov w24, 3 - csinc w24, w24, wzr, hi ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3301 - ldrh w5, [x23,124] - adrp x0, .LC278 - ldrh w6, [x23,120] - add x0, x0, :lo12:.LC278 - ldrh w7, [x23,122] - mov w1, 1705 - ldrb w2, [x27,3241] - mov w3, w21 - str w28, [sp] + tbz x0, 8, .L3239 + add x1, x19, :lo12:.LANCHOR0 + mov w3, w20 mov w4, w22 + ldr x0, [x1,88] + ldrb w2, [x1,3289] + mov w1, 1848 + ldrh w5, [x0,124] + ldrh w6, [x0,120] + ldrh w7, [x0,122] + ldrh w0, [x24,80] + str w0, [sp] + adrp x0, .LC271 + add x0, x0, :lo12:.LC271 bl printk -.L3301: +.L3239: add x19, x19, :lo12:.LANCHOR0 - mov w1, w24 + mov w1, w21 mov w2, 1 - ldrb w0, [x19,3241] + ldrb w0, [x19,3289] bl gc_search_src_blk cmp w0, wzr - ble .L3404 -.L3307: - add x20, x20, :lo12:.LANCHOR4 + ble .L3240 +.L3241: + add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - b .L3425 -.L3299: - cmp w24, 1 - bne .L3303 + b .L3405 +.L3240: + ldrb w0, [x19,3289] + mov w1, 3 + mov w2, 1 + bl gc_search_src_blk + cmp w0, wzr + bgt .L3241 + b .L3402 +.L3232: + cmp w26, 1 + bne .L3242 bl gc_scan_static_data - adrp x23, .LANCHOR8 + ldr x0, [x21,88] + ldrh w0, [x0,122] + cbz w0, .L3243 +.L3244: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 1 + add x23, x23, :lo12:.LANCHOR4 + strb w0, [x19,3289] + b .L3405 +.L3243: bl gc_static_wearleveling + cbnz w0, .L3244 bl gc_block_vpn_scan - add x0, x23, :lo12:.LANCHOR8 - ldr w0, [x0,3580] - cbz w0, .L3305 + cbz w22, .L3336 + cmp w20, w25 + bcs .L3247 + ldrh w0, [x21,3322] + cmp w20, w0, lsl 1 + blt .L3248 +.L3247: + add x0, x19, :lo12:.LANCHOR0 + add w1, w20, w25 + ldrh w2, [x0,3322] + cmp w1, w2, lsl 1 + blt .L3248 + ldrh w1, [x0,2854] + ldrh w0, [x0,3324] + cmp w1, w0 + bcc .L3336 +.L3248: + add x21, x19, :lo12:.LANCHOR0 + add x27, x23, :lo12:.LANCHOR4 + mov w28, 1 + ldr w1, [x27,1148] + ldrh w0, [x21,56] + add w1, w1, 1 + strb w28, [x21,3289] + str w1, [x27,1148] + cmp w1, w0, lsr 5 + bls .L3250 + ldrh w0, [x21,2854] + cmp w0, w22 + bls .L3250 mov w1, 5 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 - cmp w1, w28 - beq .L3306 + mov w0, 65535 + cmp w1, w0 + beq .L3336 ubfiz x1, x1, 1, 16 - ldr x2, [x27,72] + ldr x0, [x21,80] + ldrb w2, [x21,3292] + mov w24, 16 + ldrh w0, [x0,x1] + ldrh w1, [x21,3316] + mul w1, w1, w2 + cmp w0, w1 + bgt .L3246 + str wzr, [x27,1148] + mov w0, w28 + mov w1, 2 + b .L3395 +.L3250: + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0,2854] + ldrh w1, [x0,3324] + cmp w2, w1 + bcc .L3253 + mov w0, 1 + mov w1, 2 + mov w2, w0 + b .L3396 +.L3253: + ldrh w24, [x0,2850] + cbnz w24, .L3254 + ldrh w0, [x0,2852] + cmp w0, 8 + bls .L3246 +.L3254: + mov w0, 1 + mov w1, w0 +.L3395: + mov w2, 4 +.L3396: + bl gc_search_src_blk + uxth w0, w0 + cbnz w0, .L3241 + b .L3336 +.L3242: + ldrh w0, [x21,2872] + cmp w0, w20 + bcc .L3402 +.L3336: + mov w24, 16 +.L3246: + add x21, x19, :lo12:.LANCHOR0 + ldr w0, [x21,2884] + cbz w0, .L3255 + mov w0, 1 + mov w1, 5 + strb w0, [x21,3289] + mov w0, 0 + str wzr, [x21,2884] + bl zftl_get_gc_node + uxth w1, w0 + mov w2, 65535 + cmp w1, w2 + beq .L3256 + ubfiz x1, x1, 1, 16 + ldr x2, [x21,80] ldrh w1, [x2,x1] - cmp w1, 4 - bhi .L3306 - mov w1, w24 - mov w2, 0 + cmp w1, 8 + bhi .L3256 + mov w2, 1 + mov w1, 0 + str w2, [x21,2884] bl gc_add_sblk - cbnz w0, .L3307 -.L3306: + cbnz w0, .L3241 +.L3256: mov w1, 4 mov w0, 0 bl zftl_get_gc_node uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3308 - add x2, x19, :lo12:.LANCHOR0 + beq .L3257 + add x3, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x2,72] + ldr x2, [x3,80] ldrh w1, [x2,x1] cmp w1, 4 - bhi .L3308 - mov w1, 1 - mov w2, 0 - bl gc_add_sblk - cbnz w0, .L3307 -.L3308: - add x27, x19, :lo12:.LANCHOR0 + bhi .L3257 + mov w2, 1 mov w1, 0 - ldr x0, [x27,3256] - bl _list_get_gc_head_node.isra.5 + str w2, [x3,2884] + bl gc_add_sblk + cbnz w0, .L3241 +.L3257: + mov w0, 0 + bl zftl_get_gc_node.part.13 uxth w1, w0 mov w2, 65535 cmp w1, w2 - beq .L3309 + beq .L3255 + add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x2, [x27,72] - ldrh w1, [x2,x1] + ldr x3, [x2,80] + ldrh w1, [x3,x1] cmp w1, 4 - bhi .L3309 + bhi .L3255 + mov w1, 1 + str w1, [x2,2884] + mov w2, 0 + bl gc_add_sblk + cbnz w0, .L3241 +.L3255: + add x21, x19, :lo12:.LANCHOR0 + mov w0, 1 + ldr x7, [x21,88] + strb w0, [x21,3289] + ldrh w5, [x7,124] + cbz w5, .L3258 + add x23, x23, :lo12:.LANCHOR4 + strb wzr, [x21,3289] + strb w0, [x23,1146] + adrp x0, .LANCHOR2 + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3259 + ldrh w6, [x7,120] + adrp x0, .LC272 + ldrh w7, [x7,122] + mov w1, 1946 + mov w2, 0 + mov w3, w20 + mov w4, w22 + add x0, x0, :lo12:.LC272 + bl printk + b .L3259 +.L3258: + ldrh w2, [x21,2872] + cmp w20, w2 + bcs .L3260 + cbz w22, .L3261 + cmp w22, 16 + bls .L3262 + ldrh w2, [x21,2854] + ldrh w1, [x21,3324] + cmp w2, w1 + bhi .L3262 + mov w1, w0 + mov w2, 4 + str x5, [x29,104] + bl gc_search_src_blk + uxth w0, w0 + ldr x5, [x29,104] + cbnz w0, .L3263 + ldrb w0, [x21,3289] + b .L3404 +.L3263: + mov w1, 5 + mov w0, w5 + bl zftl_get_gc_node + uxth w2, w0 + mov w1, 65535 + cmp w2, w1 + beq .L3330 + add x3, x23, :lo12:.LANCHOR4 + ubfiz x2, x2, 1, 16 + ldr w1, [x3,1148] + add w1, w1, 1 + str w1, [x3,1148] + ldr x3, [x21,80] + ldrh w2, [x3,x2] + ldrh w3, [x21,3316] + cmp w3, w2 + bcs .L3266 + ldrh w3, [x21,56] + cmp w1, w3, lsr 4 + bls .L3330 + ldrh w1, [x21,2874] + cmp w1, w2 + bls .L3330 +.L3266: + add x19, x19, :lo12:.LANCHOR0 + mov w1, 0 + ldrb w2, [x19,3289] + bl gc_add_sblk + mov w0, 1 + str w0, [x19,2884] + add x0, x23, :lo12:.LANCHOR4 + str wzr, [x0,1148] + b .L3330 +.L3262: + mov w0, 1 + mov w1, 2 + mov w2, w0 + bl gc_search_src_blk + uxth w0, w0 + cbnz w0, .L3330 + add x19, x19, :lo12:.LANCHOR0 +.L3401: + ldrb w0, [x19,3289] + mov w1, 3 + mov w2, 2 +.L3398: + bl gc_search_src_blk + uxth w0, w0 + b .L3264 +.L3261: + adrp x0, .LANCHOR2 + strb w22, [x21,3289] + ldr w0, [x0,#:lo12:.LANCHOR2] + tbz x0, 8, .L3268 + adrp x0, .LC272 + ldrh w6, [x7,120] + ldrh w7, [x7,122] + add x0, x0, :lo12:.LC272 + mov w1, 1976 + mov w2, w22 + mov w3, w20 + mov w4, w22 + mov w5, w22 + bl printk +.L3268: + add x19, x19, :lo12:.LANCHOR0 + cmp w20, 16 + ldrb w0, [x19,3289] + bls .L3269 +.L3404: + mov w1, 3 + mov w2, 4 + b .L3398 +.L3269: + mov w1, 1 + mov w2, w1 + bl gc_search_src_blk + uxth w0, w0 + cbnz w0, .L3330 + b .L3401 +.L3260: + cmp w26, 1 + mov w1, w24 + bne .L3375 + cmp w20, w2, lsl 1 + bge .L3270 + cmp w25, w22, lsr 1 + bcs .L3271 + ldrh w2, [x21,2854] + ldrh w0, [x21,3324] + cmp w2, w0 + bcs .L3271 + ldrh w0, [x21,3322] + lsr w0, w0, 2 + strh w0, [x21,2872] + b .L3375 +.L3271: + mov w1, 5 + mov w0, 0 + bl zftl_get_gc_node + uxth w21, w0 + mov w1, 65535 + mov w27, w21 + cmp w21, w1 + bne .L3272 +.L3277: + cmp w22, 1 + bhi .L3273 + b .L3274 +.L3272: + add x26, x23, :lo12:.LANCHOR4 + add x2, x19, :lo12:.LANCHOR0 + uxtw x21, w21 + ldr w1, [x26,1148] + ldrh w3, [x2,56] + add w1, w1, 1 + str w1, [x26,1148] + cmp w1, w3, lsr 4 + bls .L3275 + ldr x1, [x2,80] + str wzr, [x26,1148] + ldrh w3, [x1,x21,lsl 1] + ldrh w1, [x2,2874] + cmp w3, w1 + bcs .L3275 + mov w1, 0 + mov w2, 1 + bl gc_add_sblk + cbz w0, .L3275 + mov w0, 1 + strb w0, [x26,1146] + b .L3259 +.L3275: + add x1, x19, :lo12:.LANCHOR0 + ldr x0, [x1,80] + ldrh w2, [x0,x21,lsl 1] + ldrh w0, [x1,3316] + cmp w2, w0, lsr 1 + bhi .L3276 + mov w0, w27 mov w1, 1 mov w2, 0 bl gc_add_sblk - cbnz w0, .L3307 -.L3309: - add x23, x23, :lo12:.LANCHOR8 - str wzr, [x23,3580] - b .L3305 -.L3303: - ldrh w0, [x27,2856] - cmp w0, w21 - bcc .L3404 -.L3305: - add x1, x19, :lo12:.LANCHOR0 + b .L3330 +.L3276: + ldrh w3, [x1,2850] + ldrh w0, [x1,2852] + add w0, w3, w0 + ldrh w3, [x1,3322] + cmp w0, w3, lsl 1 + ble .L3277 + ldrh w0, [x1,2874] + cmp w0, w2 + bcc .L3274 + b .L3277 +.L3273: + add x21, x19, :lo12:.LANCHOR0 mov w0, 1 - ldr x7, [x1,80] - strb w0, [x1,3241] - ldrh w5, [x7,124] - cbz w5, .L3311 - add x20, x20, :lo12:.LANCHOR4 - strb wzr, [x1,3241] - strb w0, [x20,1098] - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3404 - ldrh w6, [x7,120] - adrp x0, .LC279 - ldrh w7, [x7,122] - mov w1, 1762 - mov w2, 0 - mov w3, w21 - mov w4, w22 - add x0, x0, :lo12:.LC279 - bl printk - b .L3404 -.L3311: - ldrh w3, [x1,2856] - cmp w21, w3 - bcs .L3314 - cmp w22, 1 - bls .L3315 cmp w22, 16 - bls .L3316 - ldrh w2, [x1,2838] - ldrh w1, [x1,3282] + strb w0, [x21,3289] + bls .L3278 + ldrh w2, [x21,2854] + ldrh w1, [x21,3324] cmp w2, w1 - bcs .L3316 - mov w1, 3 - mov w2, 16 - b .L3423 -.L3316: - mov w1, 2 - mov w0, 1 - mov w2, w1 - add x19, x19, :lo12:.LANCHOR0 + bhi .L3278 + mov w1, w0 + mov w2, 4 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3307 - b .L3421 -.L3315: - adrp x0, .LANCHOR2 - strb w5, [x1,3241] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3319 - adrp x0, .LC279 - ldrh w6, [x7,120] - ldrh w7, [x7,122] - add x0, x0, :lo12:.LC279 - mov w1, 1778 - mov w2, w5 - mov w3, w21 - mov w4, w22 - bl printk -.L3319: - add x19, x19, :lo12:.LANCHOR0 - cmp w21, 16 - ldrb w0, [x19,3241] - bls .L3320 + cbnz w0, .L3279 + ldrb w0, [x21,3289] mov w1, 3 mov w2, 4 - b .L3423 -.L3320: - mov w1, 1 - mov w2, w1 - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L3307 -.L3421: - ldrb w0, [x19,3241] - mov w1, 3 - mov w2, 2 -.L3423: - bl gc_search_src_blk - uxth w0, w0 - b .L3317 -.L3314: - cmp w24, 1 - lsl w0, w3, 1 - bne .L3321 - cmp w21, w0 - bge .L3321 - add w0, w26, w25 - uxth w0, w0 - cmp w0, w22, lsr 1 - bcs .L3322 - ldrh w3, [x1,2838] - ldrh w2, [x1,3282] - cmp w3, w2 - bcs .L3322 - ldrh w0, [x1,3280] - lsr w0, w0, 1 - strh w0, [x1,2856] - b .L3404 -.L3322: - cmp w22, 1 - bls .L3323 - cmp w22, 16 + b .L3397 +.L3278: mov w0, 1 - bls .L3324 - mov w1, 3 - mov w2, 8 - b .L3420 -.L3324: mov w1, 2 - mov w2, w1 + mov w2, w0 bl gc_search_src_blk uxth w0, w0 - cbnz w0, .L3325 + cbnz w0, .L3279 add x0, x19, :lo12:.LANCHOR0 mov w1, 3 mov w2, 2 - ldrb w0, [x0,3241] -.L3420: + ldrb w0, [x0,3289] +.L3397: bl gc_search_src_blk uxth w0, w0 -.L3325: +.L3279: add x19, x19, :lo12:.LANCHOR0 - b .L3422 -.L3323: - cmp w21, w0 - bcs .L3326 + cmp w20, w25, lsr 1 + ldrh w1, [x19,3322] + bls .L3399 + lsr w1, w1, 2 + b .L3400 +.L3274: + cmp w20, w25 add x19, x19, :lo12:.LANCHOR0 - mov w0, 0 + bcs .L3281 + mov w0, 4 + strb wzr, [x19,3289] + bl zftl_get_gc_node.part.13 + uxth w0, w0 + mov w1, 65535 + cmp w0, w1 + beq .L3281 + ubfiz x0, x0, 1, 16 + ldr x1, [x19,80] + ldrb w2, [x19,3292] + ldrh w1, [x1,x0] + ldrh w0, [x19,3316] + mul w0, w0, w2 + cmp w1, w0, lsr 1 + bgt .L3281 mov w1, 3 - mov w2, 8 - strb wzr, [x19,3241] + mov w0, 0 + mov w2, 4 bl gc_search_src_blk uxth w0, w0 -.L3422: - ldrh w1, [x19,3280] - strh w1, [x19,2856] - b .L3317 -.L3321: - cmp w21, w0 - blt .L3404 -.L3326: - add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,3280] - lsr w0, w0, 1 - strh w0, [x19,2856] - b .L3404 -.L3317: - cbnz w0, .L3307 - b .L3404 -.L3293: - add x21, x19, :lo12:.LANCHOR0 + ldrh w1, [x19,3322] +.L3399: + lsr w1, w1, 1 +.L3400: + strh w1, [x19,2872] + b .L3264 +.L3281: + ldrh w0, [x19,3322] + lsr w0, w0, 2 + strh w0, [x19,2872] + b .L3259 +.L3270: + ldrh w0, [x21,3322] + mov w24, w5 + lsr w0, w0, 2 + strh w0, [x21,2872] + b .L3259 +.L3264: + mov w1, w24 + cbz w0, .L3375 +.L3330: + add x23, x23, :lo12:.LANCHOR4 + mov w0, 1 + strb w0, [x23,1146] + b .L3259 +.L3226: + add x20, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldrh w1, [x21,2888] + ldrh w1, [x20,2912] cmp w1, w0 - bne .L3327 + bne .L3284 bl gc_get_src_blk - strh w0, [x21,2888] -.L3327: + strh w0, [x20,2912] +.L3284: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - add x1, x0, 2888 - ldrh w3, [x0,2888] + add x1, x0, 2912 + ldrh w3, [x0,2912] cmp w3, w2 - beq .L3328 + beq .L3403 ldrh w5, [x1,56] uxtw x4, w3 ldr x2, [x0,64] add x2, x2, x4, lsl 2 - cbz w5, .L3330 + cbz w5, .L3287 mov x0, 0 -.L3329: +.L3286: cmp w5, w0, uxth - bls .L3330 + bls .L3287 add x0, x0, 1 add x6, x1, x0, lsl 1 ldrh w6, [x6,56] cmp w6, w3 - bne .L3329 -.L3335: + bne .L3286 +.L3292: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh w0, [x19,2888] - b .L3404 -.L3330: + strh w0, [x19,2912] + b .L3402 +.L3287: ldrb w0, [x2,2] tst w0, 192 - beq .L3378 + beq .L3343 and w0, w0, 224 cmp w0, 224 - bne .L3332 -.L3378: + bne .L3289 +.L3343: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,72] + ldr x0, [x0,80] ldrh w0, [x0,x4,lsl 1] - cbz w0, .L3335 + cbz w0, .L3292 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 1972 - add x1, x1, 808 + mov w2, 2209 + add x1, x1, 736 add x0, x0, :lo12:.LC0 bl printk - b .L3335 -.L3332: - add x20, x20, :lo12:.LANCHOR4 + b .L3292 +.L3289: + add x23, x23, :lo12:.LANCHOR4 mov w0, 2 -.L3425: - strb w0, [x20,1098] - b .L3404 -.L3328: - add x20, x20, :lo12:.LANCHOR4 - strb wzr, [x20,1098] - b .L3404 -.L3294: + b .L3405 +.L3227: bl gc_scan_src_blk cmn w0, #1 - bne .L3336 - add x20, x20, :lo12:.LANCHOR4 + bne .L3293 + add x23, x23, :lo12:.LANCHOR4 mov w0, 3 - b .L3425 -.L3336: +.L3405: + strb w0, [x23,1146] + b .L3402 +.L3293: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 - ldrh w0, [x1,2888] + ldrh w0, [x1,2912] cmp w0, w3 - beq .L3307 - ldrh w3, [x1,2912] - add x20, x20, :lo12:.LANCHOR4 - cbz w3, .L3337 + beq .L3241 + ldrh w3, [x1,2936] + add x23, x23, :lo12:.LANCHOR4 + cbz w3, .L3294 mov w0, 4 - strh wzr, [x1,2914] - strb w0, [x20,1098] - b .L3404 -.L3337: + strh wzr, [x1,2938] + strb w0, [x23,1146] + b .L3402 +.L3294: ubfiz x0, x0, 1, 16 - ldr x1, [x1,72] + ldr x1, [x1,80] mov w2, 1 - strb w2, [x20,1098] + strb w2, [x23,1146] ldrh w0, [x1,x0] - cbz w0, .L3338 + cbz w0, .L3295 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 808 - mov w2, 2000 + add x1, x1, 736 + mov w2, 2237 bl printk -.L3338: +.L3295: add x20, x19, :lo12:.LANCHOR0 - add x22, x20, 2888 - ldrh w0, [x20,2888] - ldr x2, [x20,72] - ubfiz x1, x0, 1, 16 - ldrh w21, [x2,x1] - cbnz w21, .L3335 + add x21, x20, 2912 + ldrh w0, [x20,2912] bl ftl_free_sblk - ldrh w1, [x20,2888] - ldr x0, [x20,72] - strh w21, [x0,x1,lsl 1] - ldrh w1, [x22,30] - add w1, w1, 1 - uxth w1, w1 - cmp w1, 8 - bhi .L3340 - strh w1, [x22,30] - b .L3335 -.L3340: - strh w21, [x22,30] + ldr x0, [x20,80] + ldrh w1, [x20,2912] + strh wzr, [x0,x1,lsl 1] + ldrh w0, [x21,30] + add w0, w0, 1 + uxth w0, w0 + cmp w0, 8 + bhi .L3296 + strh w0, [x21,30] + b .L3292 +.L3296: + strh wzr, [x21,30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush - mov w0, w21 + mov w0, 0 bl ftl_info_flush - b .L3335 -.L3295: - add x22, x19, :lo12:.LANCHOR0 -.L3405: + b .L3292 +.L3228: + add x21, x19, :lo12:.LANCHOR0 +.L3376: bl gc_scan_src_blk_one_page - ldrh w2, [x22,2890] - add x0, x22, 2888 - ldrh w1, [x22,3276] + ldrh w2, [x21,2914] + add x0, x21, 2912 + ldrh w1, [x21,3316] cmp w2, w1 - bcs .L3341 - cmp w21, 7 - bls .L3405 - b .L3404 -.L3341: + bcs .L3298 + cmp w20, 7 + bls .L3376 + b .L3402 +.L3298: ldrh w3, [x0,24] adrp x2, .LANCHOR2 - cbz w3, .L3342 - add x20, x20, :lo12:.LANCHOR4 + cbz w3, .L3299 + add x23, x23, :lo12:.LANCHOR4 mov w1, 4 strh wzr, [x0,26] - strb w1, [x20,1098] + strb w1, [x23,1146] ldr w1, [x2,#:lo12:.LANCHOR2] - tbz x1, 8, .L3343 + tbz x1, 8, .L3300 ldrh w1, [x0] - adrp x0, .LC280 - ldr x4, [x22,72] - add x0, x0, :lo12:.LC280 + adrp x0, .LC273 + ldr x4, [x21,80] + add x0, x0, :lo12:.LC273 ubfiz x2, x1, 1, 16 ldrh w2, [x4,x2] bl printk -.L3343: +.L3300: add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,2888] - ldr x1, [x0,72] - ldrh w0, [x0,2912] + ldrh w2, [x0,2912] + ldr x1, [x0,80] + ldrh w0, [x0,2936] ldrh w1, [x1,x2,lsl 1] cmp w1, w0 - beq .L3344 + beq .L3301 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 808 - mov w2, 2034 + add x1, x1, 736 + mov w2, 2271 bl printk -.L3344: +.L3301: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x19,2888] - ldr x0, [x19,72] - ldrh w2, [x19,2912] + ldrh w1, [x19,2912] + ldr x0, [x19,80] + ldrh w2, [x19,2936] strh w2, [x0,x1,lsl 1] - b .L3404 -.L3342: - add x20, x20, :lo12:.LANCHOR4 + b .L3402 +.L3299: + add x23, x23, :lo12:.LANCHOR4 ldrh w1, [x0] mov w0, 1 - ldr x21, [x22,64] - add x21, x21, x1, uxth 2 - strb w0, [x20,1098] + ldr x20, [x21,64] + add x20, x20, x1, uxth 2 + strb w0, [x23,1146] ldr w0, [x2,#:lo12:.LANCHOR2] - tbz x0, 8, .L3345 - ldrb w2, [x21,2] - adrp x0, .LC281 - add x0, x0, :lo12:.LC281 + tbz x0, 8, .L3302 + ldrb w2, [x20,2] + adrp x0, .LC274 + add x0, x0, :lo12:.LC274 ubfx x2, x2, 5, 3 bl printk -.L3345: - ldrb w0, [x21,2] +.L3302: + ldrb w0, [x20,2] tst w0, 192 - beq .L3379 + beq .L3344 and w0, w0, 224 cmp w0, 224 - bne .L3346 -.L3379: + bne .L3303 +.L3344: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 808 - mov w2, 2044 + add x1, x1, 736 + mov w2, 2281 bl printk -.L3346: +.L3303: add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 2888 - ldrh w0, [x19,2888] + add x20, x19, 2912 + ldrh w0, [x19,2912] bl ftl_free_sblk mov w0, -1 - strh w0, [x19,2888] + strh w0, [x19,2912] ldrh w0, [x20,30] add w0, w0, 1 uxth w0, w0 cmp w0, 8 - bhi .L3348 + bhi .L3305 strh w0, [x20,30] - b .L3404 -.L3348: + b .L3402 +.L3305: strh wzr, [x20,30] - b .L3426 -.L3296: - cbnz w24, .L3349 + b .L3406 +.L3229: + cbnz w26, .L3306 add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2856] - cmp w0, w21 - bcc .L3404 -.L3349: - ldrh w1, [x23,80] + ldrh w0, [x0,2872] + cmp w0, w20 + bcc .L3402 +.L3306: + ldrh w1, [x24,80] mov w0, 65535 cmp w1, w0 - bne .L3350 + bne .L3307 add x22, x19, :lo12:.LANCHOR0 - ldrb w0, [x22,3241] - cmp w0, 1 - bne .L3350 + ldrb w21, [x22,3289] + cmp w21, 1 + bne .L3307 bl ftl_flush - ldrh w0, [x22,2832] - cbnz w0, .L3424 - ldrh w0, [x22,2830] -.L3424: - lsr w0, w0, 1 + ldrh w0, [x22,3230] + cbz w0, .L3308 + mov w0, w21 +.L3308: mov w1, 5 - bl zftl_get_free_sblk - uxth w24, w0 + bl zftl_gc_get_free_sblk + uxth w20, w0 mov w0, 65535 - mov w22, w24 - cmp w24, w0 - beq .L3353 + cmp w20, w0 + beq .L3310 add x0, x19, :lo12:.LANCHOR0 ldr x21, [x0,64] - add x21, x21, x24, uxth 2 + add x21, x21, x20, uxth 2 ldrb w0, [x21,2] tst w0, 224 - beq .L3354 + beq .L3311 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 808 - mov w2, 2069 + add x1, x1, 736 + mov w2, 2310 bl printk -.L3354: +.L3311: ldrb w0, [x21,2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 strb w0, [x21,2] -.L3373: - mov w0, w22 +.L3331: + mov w0, w20 mov w1, 1 add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 + add x23, x23, :lo12:.LANCHOR4 bl ftl_erase_sblk mov w0, 5 - add x1, x23, 96 - strb w0, [x23,84] - mov w0, w22 + add x1, x24, 96 + strb w0, [x24,84] + mov w0, w20 bl ftl_get_blk_list_in_sblk uxtb w0, w0 - ldrh w1, [x19,3276] - strb w0, [x23,89] - ldrb w2, [x19,3244] + ldrh w1, [x19,3316] + strb w0, [x24,89] + ldrb w2, [x19,3292] mul w0, w0, w1 - strh w0, [x23,86] + strh w0, [x24,86] mov w1, 255 - ldrh w0, [x19,3242] - strh w22, [x23,80] - strh wzr, [x23,82] + ldrh w0, [x19,3290] + strh w20, [x24,80] + strh wzr, [x24,82] mul w2, w0, w2 - ldr x0, [x20,1104] - strb wzr, [x23,85] + ldr x0, [x23,1152] + strb wzr, [x24,85] lsl w2, w2, 2 - strh wzr, [x23,90] + strh wzr, [x24,90] bl ftl_memset - ldrh w0, [x19,3242] + ldrh w0, [x19,3290] mov w1, 255 - ldrb w2, [x19,3244] + ldrb w2, [x19,3292] mul w2, w0, w2 - ldr x0, [x20,1112] + ldr x0, [x23,1160] lsl w2, w2, 2 bl ftl_memset - ldrh w3, [x19,3242] + ldrh w3, [x19,3290] mov w1, 255 - ldrb w2, [x19,3244] - ldr x0, [x19,3232] + ldrb w2, [x19,3292] + ldr x0, [x19,3280] mul w2, w3, w2 bl ftl_memset - ldr x0, [x19,80] + ldr x0, [x19,88] mov w1, -1 - str w24, [x0,132] + str w20, [x0,132] strh w1, [x0,128] strh w1, [x0,130] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x19,2944] - ldr x0, [x19,2848] - strh w22, [x0,126] + strh wzr, [x19,2968] + ldr x0, [x19,2864] + strh w20, [x0,126] mov w0, -1 - str w0, [x19,3208] + str w0, [x19,3236] mov w0, 0 - strh wzr, [x19,3202] - strh wzr, [x19,3204] - strh wzr, [x19,3206] + strh wzr, [x19,3226] + strh wzr, [x19,3228] + strh wzr, [x19,3232] bl ftl_info_flush - b .L3404 -.L3350: - cmp w24, 1 - mov w22, 4 - csinc w22, w22, wzr, eq - cmp w21, 15 - add w0, w22, 4 - add x21, x19, :lo12:.LANCHOR0 - csel w22, w0, w22, ls -.L3357: - sub w22, w22, #1 - uxtb w22, w22 - cmp w22, 255 - beq .L3404 + b .L3402 +.L3307: + cmp w26, 1 + mov w21, 4 + csinc w21, w21, wzr, eq + cmp w20, 15 + add w0, w21, 4 + add x20, x19, :lo12:.LANCHOR0 + csel w21, w0, w21, ls +.L3314: + sub w21, w21, #1 + uxtb w21, w21 + cmp w21, 255 + beq .L3402 bl gc_do_copy_back - ldrb w0, [x21,3241] - cbnz w0, .L3358 - ldrb w0, [x21,2818] + ldrb w0, [x20,3289] + cbnz w0, .L3315 + ldrb w0, [x20,2834] cmp w0, 3 - bhi .L3359 + bhi .L3316 bl ftl_write_commit -.L3359: - ldrh w1, [x21,2914] - ldrh w0, [x21,2912] +.L3316: + ldrh w1, [x20,2938] + ldrh w0, [x20,2936] cmp w1, w0 - bcc .L3357 - add x20, x20, :lo12:.LANCHOR4 + bcc .L3314 + add x23, x23, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x20,1098] + strb w0, [x23,1146] bl ftl_write_commit bl ftl_flush - ldrh w1, [x21,2888] - ldr x0, [x21,72] + ldrh w1, [x20,2912] + ldr x0, [x20,80] ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3361 + cbz w0, .L3318 adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 add x0, x0, :lo12:.LC0 - add x1, x1, 808 - mov w2, 2144 + add x1, x1, 736 + mov w2, 2385 bl printk -.L3361: - add x20, x19, :lo12:.LANCHOR0 - add x21, x20, 2888 - ldrh w1, [x20,2888] - ldr x3, [x20,72] - ubfiz x0, x1, 1, 16 - ldrh w2, [x3,x0] - cbnz w2, .L3362 - strh w2, [x3,x0] - ldrh w0, [x20,2888] +.L3318: + add x1, x19, :lo12:.LANCHOR0 + ldrh w0, [x1,2912] + ldr x3, [x1,80] + ubfiz x2, x0, 1, 16 + ldrh w4, [x3,x2] + cbnz w4, .L3319 + strh w4, [x3,x2] + ldrh w0, [x1,2912] bl ftl_free_sblk - b .L3335 -.L3362: - ldrh w3, [x21,24] - adrp x0, .LC282 - add x0, x0, :lo12:.LC282 - bl printk - ldrh w3, [x21,24] - adrp x0, .LC283 - ldr x1, [x20,3216] - add x0, x0, :lo12:.LC283 - mov w2, 4 - add w3, w3, 1 - bl rknand_print_hex - ldrh w1, [x20,2888] - adrp x0, .LC284 - ldr x3, [x20,72] - add x0, x0, :lo12:.LC284 - ubfiz x2, x1, 1, 16 - ldrh w4, [x21,26] - ldrh w5, [x21,28] - ldrh w2, [x3,x2] - ldrh w3, [x21,24] - bl printk - ldrh w0, [x20,2888] - mov x1, 0 - bl ftl_sblk_dump - bl gc_scan_src_blk - ldrh w1, [x20,2888] - adrp x0, .LC285 - ldr x3, [x20,72] - add x0, x0, :lo12:.LC285 - ubfiz x2, x1, 1, 16 - ldrh w2, [x3,x2] - ldrh w3, [x21,24] - bl printk - adrp x0, .LC286 - ldr x1, [x20,3216] - ldrh w3, [x21,24] - add x0, x0, :lo12:.LC286 - mov w2, 4 - bl rknand_print_hex - b .L3335 -.L3358: - add x0, x21, 2888 - ldrh w1, [x0,318] - cbz w1, .L3363 - strh wzr, [x0,318] - ldr w0, [x0,320] + b .L3292 +.L3319: + mov w1, 0 + mov w2, 1 + bl gc_add_sblk + b .L3292 +.L3315: + add x0, x20, 2912 + ldrh w1, [x0,320] + cbz w1, .L3320 + strh wzr, [x0,320] + ldr w0, [x0,324] cmn w0, #1 - beq .L3364 + beq .L3321 bl ftl_mask_bad_block -.L3364: - add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,80] - str wzr, [x21,3208] - strh wzr, [x21,2944] +.L3321: + add x20, x19, :lo12:.LANCHOR0 + ldr x0, [x20,88] + str wzr, [x20,3236] + strh wzr, [x20,2968] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x21,80] + ldr x1, [x20,88] mov w0, -1 - ldr x2, [x21,2848] + ldr x2, [x20,2864] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x21,2896] - cbz x0, .L3365 + ldr x0, [x20,2920] + cbz x0, .L3322 bl buf_free -.L3365: +.L3322: add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - str xzr, [x19,2896] + add x23, x23, :lo12:.LANCHOR4 + str xzr, [x19,2920] bl flt_sys_flush adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2177 - add x1, x1, 808 + mov w2, 2421 + add x1, x1, 736 add x0, x0, :lo12:.LC0 - strb wzr, [x20,1098] + strb wzr, [x23,1146] bl printk - b .L3404 -.L3363: - ldrh w1, [x23,86] + b .L3402 +.L3320: + ldrh w1, [x24,86] cmp w1, 1 - bls .L3366 + bls .L3323 ldrh w2, [x0,26] ldrh w1, [x0,24] cmp w2, w1 - bcc .L3357 - add x20, x20, :lo12:.LANCHOR4 + bcc .L3314 + add x23, x23, :lo12:.LANCHOR4 mov w1, 1 - strb w1, [x20,1098] + strb w1, [x23,1146] ldrh w1, [x0,56] add w2, w1, 1 add x1, x0, x1, sxtw 1 @@ -21959,15 +21308,15 @@ zftl_do_gc: strh w2, [x1,58] mov w1, -1 strh w1, [x0] - b .L3404 -.L3366: - add x20, x20, :lo12:.LANCHOR4 + b .L3402 +.L3323: + add x23, x23, :lo12:.LANCHOR4 mov w1, 5 ldrh w2, [x0,26] - strb w1, [x20,1098] + strb w1, [x23,1146] ldrh w1, [x0,24] cmp w2, w1 - bcc .L3367 + bcc .L3324 ldrh w1, [x0,56] add w2, w1, 1 add x1, x0, x1, sxtw 1 @@ -21976,114 +21325,119 @@ zftl_do_gc: strh w2, [x1,58] mov w1, -1 strh w1, [x0] -.L3367: +.L3324: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed - ldr x0, [x20,80] - ldrh w1, [x23,80] + ldr x0, [x20,88] + ldrh w1, [x24,80] strh w1, [x0,128] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x20,2904] - ldrb w2, [x20,3225] - ldrh w1, [x20,3276] - strh w1, [x20,2906] + strh wzr, [x20,2928] + ldrb w2, [x20,3273] + ldrh w1, [x20,3316] + strh w1, [x20,2930] cmp w2, 2 - strh w2, [x20,2908] - bne .L3368 + strh w2, [x20,2932] + bne .L3325 lsl w1, w1, 1 - strh w1, [x20,2906] + strh w1, [x20,2930] mov w1, 1 - strh w1, [x20,2908] -.L3368: + strh w1, [x20,2932] +.L3325: add x19, x19, :lo12:.LANCHOR0 - strh wzr, [x19,2910] - b .L3404 -.L3374: - mov w22, 0 - add x25, x19, :lo12:.LANCHOR0 -.L3297: + strh wzr, [x19,2934] + b .L3402 +.L3333: + mov w21, 0 + add x24, x19, :lo12:.LANCHOR0 +.L3230: bl gc_check_data_one_wl - cbz w0, .L3370 + cbz w0, .L3327 add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x19,80] - strh wzr, [x19,2944] + add x23, x23, :lo12:.LANCHOR4 + ldr x0, [x19,88] + strh wzr, [x19,2968] ldrh w0, [x0,80] bl ftl_free_sblk - ldr x1, [x19,80] + ldr x1, [x19,88] mov w0, -1 - ldr x2, [x19,2848] + ldr x2, [x19,2864] strh w0, [x1,80] strh w0, [x2,126] strh w0, [x1,130] - ldr x0, [x19,2896] + ldr x0, [x19,2920] bl buf_free - str xzr, [x19,2896] - strb wzr, [x20,1098] -.L3426: + str xzr, [x19,2920] + strb wzr, [x23,1146] +.L3406: bl flt_sys_flush - b .L3404 -.L3370: - ldrh w1, [x25,2904] - ldrh w0, [x25,2906] + b .L3402 +.L3327: + ldrh w1, [x24,2928] + ldrh w0, [x24,2930] cmp w1, w0 - bcc .L3371 - add x20, x20, :lo12:.LANCHOR4 + bcc .L3328 + add x23, x23, :lo12:.LANCHOR4 mov w0, 6 - strb w0, [x20,1098] - ldr x0, [x25,2896] + strb w0, [x23,1146] + ldr x0, [x24,2920] bl buf_free - str xzr, [x25,2896] - b .L3404 -.L3371: - cmp w21, 7 - bls .L3297 - cmp w24, 1 - bne .L3404 - add w22, w22, 1 - uxtb w22, w22 - cmp w22, 4 - bls .L3297 - b .L3404 -.L3298: + str xzr, [x24,2920] + b .L3402 +.L3328: + cmp w20, 15 + bls .L3230 + cmp w26, 1 + bne .L3402 + add w21, w21, 1 + uxtb w21, w21 + cmp w21, 4 + bls .L3230 + b .L3402 +.L3231: bl gc_update_l2p_map_new - mov w21, -1 + mov w20, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush - add x20, x20, :lo12:.LANCHOR4 bl pm_flush - strh w21, [x23,80] + strh w20, [x24,80] bl ftl_ext_info_flush - ldr x0, [x19,2848] - strh w21, [x0,126] + ldr x0, [x19,2864] + strh w20, [x0,126] mov w0, 0 bl ftl_info_flush - strb wzr, [x20,1098] - bl print_ftl_debug_info - b .L3404 -.L3353: +.L3403: + add x23, x23, :lo12:.LANCHOR4 + strb wzr, [x23,1146] +.L3402: + mov w1, 16 + b .L3375 +.L3259: + mov w1, w24 + b .L3375 +.L3310: adrp x1, .LANCHOR3 adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR3 - mov w2, 2075 - add x1, x1, 808 + mov w2, 2316 + add x1, x1, 736 add x0, x0, :lo12:.LC0 bl printk - b .L3373 -.L3404: + b .L3331 +.L3375: sub sp, x29, #16 - mov w0, 16 + mov w0, w1 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 + add sp, sp, 128 ret .size zftl_do_gc, .-zftl_do_gc .align 2 @@ -22103,64 +21457,64 @@ zftl_write: stp x21, x22, [sp,32] mov w28, w1 mov x25, x3 - tbz x0, 12, .L3428 - adrp x0, .LC287 + tbz x0, 12, .L3408 + adrp x0, .LC275 mov w1, w19 - add x0, x0, :lo12:.LC287 + add x0, x0, :lo12:.LC275 mov w2, w28 mov w3, w23 bl printk -.L3428: - cbnz w19, .L3429 +.L3408: + cbnz w19, .L3409 adrp x0, .LANCHOR0+4 mov w19, 24576 ldr w2, [x0,#:lo12:.LANCHOR0+4] - b .L3430 -.L3429: + b .L3410 +.L3409: cmp w19, 3 mov w0, -1 - bhi .L3431 + bhi .L3411 lsl w19, w19, 13 mov w2, 8192 -.L3430: +.L3410: add w1, w28, w23 mov w0, -1 cmp w1, w2 - bhi .L3431 + bhi .L3411 add w28, w19, w28 adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 sub w22, w23, #1 add w22, w22, w28 add w26, w28, w23 - ldrb w0, [x0,2816] + ldrb w0, [x0,2832] udiv w24, w28, w0 mov w21, w24 udiv w22, w22, w0 sub w20, w22, w24 add w20, w20, 1 -.L3432: - cbz w20, .L3451 +.L3412: + cbz w20, .L3431 mov w0, 0 bl buf_alloc mov x27, x0 - cbnz x0, .L3433 + cbnz x0, .L3413 bl ftl_write_commit - b .L3432 -.L3433: + b .L3412 +.L3413: strb wzr, [x0,57] add x0, x19, :lo12:.LANCHOR0 cmp w21, w24 - ldrb w4, [x0,2816] + ldrb w4, [x0,2832] cset w0, eq strb w4, [x27,56] cmp w21, w22 - beq .L3435 - cbz w0, .L3436 - b .L3445 -.L3435: - cbz w0, .L3437 -.L3445: + beq .L3415 + cbz w0, .L3416 + b .L3425 +.L3415: + cbz w0, .L3417 +.L3425: udiv w0, w28, w4 msub w0, w0, w4, w28 uxtb w0, w0 @@ -22169,12 +21523,12 @@ zftl_write: uxtb w4, w4 cmp w4, w23 csel w4, w23, w4, hi - b .L3449 -.L3437: + b .L3429 +.L3417: msub w4, w4, w21, w26 -.L3449: +.L3429: strb w4, [x27,56] -.L3436: +.L3416: ldrb w1, [x27,57] sub w20, w20, #1 ldr x0, [x27,8] @@ -22186,7 +21540,7 @@ zftl_write: str w21, [x27,36] add x0, x19, :lo12:.LANCHOR0 add w21, w21, 1 - ldr x1, [x0,2848] + ldr x1, [x0,2864] ldr w0, [x1,8] add w2, w0, 1 str w2, [x1,8] @@ -22195,27 +21549,27 @@ zftl_write: bl ftl_write_buf ldrb w0, [x27,56] add x25, x25, x0, lsl 9 - b .L3432 -.L3451: + b .L3412 +.L3431: bl ftl_write_commit mov w0, w20 -.L3450: +.L3430: mov w1, 1 bl zftl_do_gc add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,2828] - ldrh w0, [x1,2832] + ldrh w2, [x1,2844] + ldrh w0, [x1,2848] add w0, w2, w0 cmp w0, 7 - bgt .L3452 + bgt .L3432 mov w0, 0 - b .L3450 -.L3452: + b .L3430 +.L3432: bl timer_get_time - adrp x1, .LANCHOR8+3584 - str w0, [x1,#:lo12:.LANCHOR8+3584] + adrp x1, .LANCHOR7-20 + str w0, [x1,#:lo12:.LANCHOR7-20] mov w0, 0 -.L3431: +.L3411: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22256,6 +21610,244 @@ zftl_sys_write: ret .size zftl_sys_write, .-zftl_sys_write .align 2 + .global zftl_discard + .type zftl_discard, %function +zftl_discard: + stp x29, x30, [sp, -128]! + add w2, w0, w1 + mov w4, -1 + add x29, sp, 0 + stp x21, x22, [sp,32] + adrp x21, .LANCHOR0 + stp x19, x20, [sp,16] + mov w19, w1 + add x1, x21, :lo12:.LANCHOR0 + stp x23, x24, [sp,48] + stp x25, x26, [sp,64] + stp x27, x28, [sp,80] + ldr w1, [x1,4] + cmp w2, w1 + bhi .L3436 + adrp x23, .LANCHOR7 + add w24, w0, 24576 + add x0, x23, :lo12:.LANCHOR7 + adrp x25, .LANCHOR2 + ldr w1, [x0,-16] + add w1, w19, w1 + str w1, [x0,-16] + ldr w0, [x25,#:lo12:.LANCHOR2] + tbz x0, 12, .L3437 + adrp x0, .LC276 + mov w2, w24 + add x0, x0, :lo12:.LC276 + mov w3, w19 + mov w4, 0 + bl printk +.L3437: + add x20, x21, :lo12:.LANCHOR0 + ldr x0, [x20,2864] + ldr w26, [x0,8] + add w1, w26, 1 + str w1, [x0,8] + bl ftl_write_commit + bl ftl_flush + ldrb w22, [x20,2832] + udiv w20, w24, w22 + msub w27, w20, w22, w24 + cbz w27, .L3438 + sub w22, w22, w27 + mov w0, w20 + cmp w22, w19 + csel w22, w22, w19, ls + bl lpa_hash_get_ppa + str w0, [x29,120] + cmn w0, #1 + bne .L3439 + mov w0, w20 + add x1, x29, 120 + mov w2, 0 + bl pm_log2phys +.L3439: + ldr w0, [x29,120] + and w28, w22, 65535 + cmn w0, #1 + beq .L3441 + mov w0, 0 + bl buf_alloc + mov x3, x0 + cbz x0, .L3441 + strb w27, [x0,57] + ubfiz x27, x27, 9, 25 + str w20, [x0,36] + mov w1, 0 + strb w22, [x0,56] + lsl w2, w28, 9 + str w26, [x0,32] + ldr x0, [x0,8] + str x3, [x29,104] + add x0, x0, x27 + bl ftl_memset + ldr x3, [x29,104] + mov x0, x3 + bl ftl_write_buf + bl ftl_write_commit + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,2864] + ldr w0, [x1,76] + add w0, w0, 1 + str w0, [x1,76] +.L3441: + add w20, w20, 1 + sub w19, w19, w28 +.L3438: + cbz w19, .L3443 + bl ftl_flush +.L3443: + mov w0, -1 + mov w27, 1 + str w0, [x29,124] + mov w28, 21 +.L3444: + add x22, x21, :lo12:.LANCHOR0 + ldrb w0, [x22,2832] + cmp w19, w0 + bcc .L3483 + mov w0, w20 + bl lpa_hash_get_ppa + str w0, [x29,120] + cmn w0, #1 + beq .L3445 + mov w0, 0 + bl buf_alloc + mov x3, x0 + cbz x0, .L3447 + ldrb w2, [x22,2832] + mov w1, 0 + str w20, [x0,36] + strb w2, [x0,56] + lsl w2, w2, 9 + str w26, [x0,32] + strb wzr, [x0,57] + ldr x0, [x0,8] + str x3, [x29,104] + bl ftl_memset + ldr x3, [x29,104] + mov x0, x3 + bl ftl_write_buf + bl ftl_write_commit + b .L3482 +.L3445: + mov w0, w20 + add x1, x29, 120 + mov w2, 0 + bl pm_log2phys + ldr w0, [x29,120] + cmn w0, #1 + beq .L3447 + add x1, x29, 124 + mov w2, 1 + mov w0, w20 + bl pm_log2phys + ldrh w0, [x22,3356] + ldr w1, [x29,120] + sub w2, w28, w0 + lsl w2, w27, w2 + lsr w0, w1, w0 + sub w2, w2, #1 + ldrb w1, [x22,3354] + and w0, w2, w0 + udiv w0, w0, w1 + bl ftl_vpn_decrement +.L3482: + ldr x1, [x22,2864] + ldr w0, [x1,76] + add w0, w0, 1 + str w0, [x1,76] +.L3447: + add x0, x21, :lo12:.LANCHOR0 + add w20, w20, 1 + ldrb w0, [x0,2832] + sub w19, w19, w0 + b .L3444 +.L3483: + cbz w19, .L3451 + mov w0, w20 + bl lpa_hash_get_ppa + str w0, [x29,120] + cmn w0, #1 + bne .L3452 + mov w0, w20 + add x1, x29, 120 + mov w2, 0 + bl pm_log2phys +.L3452: + ldr w0, [x29,120] + cmn w0, #1 + beq .L3451 + mov w0, 0 + bl buf_alloc + mov x22, x0 + cbz x0, .L3451 + str w20, [x0,36] + strb wzr, [x0,57] + strb w19, [x0,56] + str w26, [x0,32] + add x0, x21, :lo12:.LANCHOR0 + ldrb w0, [x0,2832] + cmp w19, w0 + bcc .L3454 + adrp x1, .LANCHOR3 + adrp x0, .LC0 + add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC0 + add x1, x1, 752 + mov w2, 1195 + bl printk +.L3454: + ldr x0, [x22,8] + mov w1, 0 + lsl w2, w19, 9 + bl ftl_memset + mov x0, x22 + bl ftl_write_buf + bl ftl_write_commit + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0,2864] + ldr w0, [x1,76] + add w0, w0, 1 + str w0, [x1,76] +.L3451: + add x0, x23, :lo12:.LANCHOR7 + mov w4, 0 + ldr w1, [x0,-16] + cmp w1, 8192 + bls .L3436 + ldr w0, [x25,#:lo12:.LANCHOR2] + tbz x0, 12, .L3455 + adrp x0, .LC276 + mov w2, w24 + add x0, x0, :lo12:.LC276 + mov w3, w19 + bl printk +.L3455: + add x23, x23, :lo12:.LANCHOR7 + add x21, x21, :lo12:.LANCHOR0 + str wzr, [x23,-16] + bl flt_sys_flush + mov w0, 1 + mov w4, 0 + str w0, [x21,2884] +.L3436: + mov w0, w4 + 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 + .align 2 .global id_block_prog_msb_ff_data .type id_block_prog_msb_ff_data, %function id_block_prog_msb_ff_data: @@ -22271,34 +21863,34 @@ id_block_prog_msb_ff_data: stp x27, x28, [sp,80] adrp x20, .LANCHOR4 uxth w19, w2 - ldr x0, [x0,88] + ldr x0, [x0,104] ldrb w2, [x0,19] add x0, x20, :lo12:.LANCHOR4 - ldrb w0, [x0,1232] - cbnz w0, .L3455 + ldrb w0, [x0,1280] + cbnz w0, .L3484 sub w0, w2, #5 uxtb w0, w0 cmp w0, 2 - bls .L3457 + bls .L3486 cmp w2, 68 - beq .L3457 + beq .L3486 sub w2, w2, #19 and w2, w2, -17 uxtb w2, w2 - cbnz w2, .L3455 -.L3457: - adrp x24, .LC288 + cbnz w2, .L3484 +.L3486: + adrp x24, .LC277 mov w25, w1 - add x24, x24, :lo12:.LC288 + add x24, x24, :lo12:.LC277 add x20, x20, :lo12:.LANCHOR4 mov w27, 65535 -.L3459: +.L3488: add x28, x21, :lo12:.LANCHOR0 - ldr x0, [x28,88] + ldr x0, [x28,104] ldrh w0, [x0,10] cmp w0, w19 - bls .L3455 - add x22, x20, 36 + bls .L3484 + add x22, x20, 84 add w26, w19, w25 mov x0, x24 mov w1, w19 @@ -22307,22 +21899,22 @@ id_block_prog_msb_ff_data: bl printk ldrh w0, [x22,w19,sxtw 1] cmp w0, w27 - bne .L3455 - ldr x0, [x20,1160] + bne .L3484 + ldr x0, [x20,1208] mov w1, 255 mov w2, 16384 add w19, w19, 1 bl ftl_memset uxth w19, w19 - ldr x4, [x28,88] + ldr x4, [x28,104] mov w0, w23 - ldr x2, [x20,1160] + ldr x2, [x20,1208] mov w1, w26 ldrb w4, [x4,9] mov x3, x2 bl flash_prog_page - b .L3459 -.L3455: + b .L3488 +.L3484: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22346,7 +21938,7 @@ write_idblock: stp x23, x24, [sp,48] stp x27, x28, [sp,80] mov x26, x1 - ldr x0, [x0,88] + ldr x0, [x0,104] ldrb w23, [x0,9] ldrh w20, [x0,10] mov w0, 59392 @@ -22354,7 +21946,7 @@ write_idblock: bl ftl_malloc mov x22, x0 mov w0, -1 - cbz x22, .L3495 + cbz x22, .L3524 add w19, w19, 511 add x2, x26, 253952 lsr w19, w19, 9 @@ -22362,9 +21954,9 @@ write_idblock: mov w0, 0 mov w24, 63999 mov w3, 4097 -.L3466: +.L3495: ldr w1, [x2] - cbnz w1, .L3463 + cbnz w1, .L3492 ldr w1, [x26,w0,uxtw 2] add w0, w0, 1 cmp w0, w3 @@ -22372,19 +21964,19 @@ write_idblock: csel w0, w0, wzr, cc str w1, [x2],-4 cmp w24, 4096 - bne .L3466 - b .L3465 -.L3463: - adrp x0, .LC289 + bne .L3495 + b .L3494 +.L3492: + adrp x0, .LC278 mov w2, w24 - add x0, x0, :lo12:.LC289 + add x0, x0, :lo12:.LC278 bl printk -.L3465: +.L3494: add x0, x21, :lo12:.LANCHOR0 add w1, w19, 128 mul w20, w20, w23 mov w25, 0 - ldr x2, [x0,88] + ldr x2, [x0,104] ldrh w0, [x2,10] ldrb w19, [x2,12] mov w2, w24 @@ -22393,9 +21985,9 @@ write_idblock: mov w0, 500 cmp w19, 500 csel w19, w19, w0, ls - adrp x0, .LC290 + adrp x0, .LC279 cmp w19, w1 - add x0, x0, :lo12:.LC290 + add x0, x0, :lo12:.LC279 csel w19, w19, w1, ls ldr w1, [x26,w24,uxtw 2] mov w3, w19 @@ -22403,29 +21995,29 @@ write_idblock: str w25, [x29,140] uxth w0, w20 str w0, [x29,116] -.L3485: +.L3514: mov w1, 0 mov x0, x22 mov w2, 512 add x24, x21, :lo12:.LANCHOR0 bl ftl_memset - ldr x0, [x24,192] + ldr x0, [x24,208] ldr w1, [x29,140] add x0, x0, x1, uxtw ldrb w20, [x0,32] cmp w20, 255 - beq .L3467 + beq .L3496 ldr w0, [x29,116] mul w20, w20, w0 - ldr x0, [x24,88] + ldr x0, [x24,104] ldrb w27, [x0,9] ldrh w23, [x0,10] - ldrb w0, [x24,184] + ldrb w0, [x24,200] udiv w1, w20, w27 str w0, [x29,112] mul w23, w27, w23 mov w0, 0 - strb wzr, [x24,184] + strb wzr, [x24,200] uxth w23, w23 bl flash_erase_block udiv w0, w20, w23 @@ -22433,15 +22025,15 @@ write_idblock: str w0, [x29,136] sub w28, w20, w0 cmp w20, w28 - bne .L3489 + bne .L3518 ldrb w0, [x21,#:lo12:.LANCHOR0] cmp w0, 9 - bne .L3489 + bne .L3518 adrp x0, .LANCHOR4 mov w1, 0 add x0, x0, :lo12:.LANCHOR4 mov w2, 1024 - ldr x3, [x0,1216] + ldr x3, [x0,1264] str x3, [x29,128] mov x0, x3 bl ftl_memset @@ -22453,7 +22045,7 @@ write_idblock: str w0, [x3] str w1, [x3,4] str wzr, [x3,12] - ldr x2, [x24,88] + ldr x2, [x24,104] ldrb w0, [x2,29] strb w0, [x3,16] mov w0, 4 @@ -22474,102 +22066,102 @@ write_idblock: str w0, [x3,8] sub w0, w19, #4 str w0, [x29,128] - b .L3468 -.L3489: + b .L3497 +.L3518: str w19, [x29,128] mov x3, 0 -.L3468: +.L3497: str x26, [x29,120] mov w24, 0 add x23, x21, :lo12:.LANCHOR0 -.L3470: +.L3499: cmp w24, w19 - bcs .L3503 + bcs .L3532 ldr w0, [x29,136] adrp x2, .LANCHOR4 add x2, x2, :lo12:.LANCHOR4 add w4, w24, w0 - add x0, x23, 212 + add x0, x23, 228 ubfx x4, x4, 2, 16 add w1, w4, 1 - ldrb w2, [x2,1232] + ldrb w2, [x2,1280] ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L3472 - ldrb w6, [x23,208] + cbz w2, .L3501 + ldrb w6, [x23,224] lsl w0, w1, 1 cmp w6, wzr csel w0, w0, w1, ne -.L3472: +.L3501: ldrb w1, [x23] cmp w1, 9 - beq .L3502 + beq .L3531 sub w0, w0, #1 lsl w0, w0, 2 -.L3502: +.L3531: str w0, [x29,144] mov w0, 61424 str w0, [x29,148] - add x0, x23, 212 + add x0, x23, 228 ldrh w0, [x0,w4,sxtw 1] - cbnz w2, .L3476 + cbnz w2, .L3505 mov w4, w0 - b .L3477 -.L3476: - ldrb w1, [x23,208] + b .L3506 +.L3505: + ldrb w1, [x23,224] lsl w0, w4, 1 cmp w1, wzr csel w4, w0, w4, ne -.L3477: +.L3506: mul w0, w4, w27 - cbnz x3, .L3478 + cbnz x3, .L3507 ldr x1, [x29,120] add w0, w0, w28 add x2, x29, 144 str x4, [x29,104] - bl fw_flash_page_prog.constprop.31 + bl fw_flash_page_prog.constprop.30 adrp x0, .LANCHOR4 ldr x4, [x29,104] add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1232] - cbnz w0, .L3479 + ldrb w0, [x0,1280] + cbnz w0, .L3508 udiv w1, w28, w27 add w2, w4, 1 bl id_block_prog_msb_ff_data -.L3479: +.L3508: ldr x0, [x29,120] add x0, x0, 2048 str x0, [x29,120] - b .L3480 -.L3478: + b .L3509 +.L3507: add w0, w0, w28 mov x1, x3 add x2, x29, 144 - bl fw_flash_page_prog.constprop.31 -.L3480: + bl fw_flash_page_prog.constprop.30 +.L3509: add w24, w24, 4 mov x3, 0 uxth w24, w24 - b .L3470 -.L3503: + b .L3499 +.L3532: add x0, x21, :lo12:.LANCHOR0 ldrb w1, [x29,112] mov x2, x22 - strb w1, [x0,184] + strb w1, [x0,200] mov w0, w20 ldr w1, [x29,128] - bl id_block_read_data.constprop.30 + bl id_block_read_data.constprop.29 ldr w0, [x29,128] lsl w23, w0, 7 mov x0, 0 -.L3482: +.L3511: cmp w23, w0 - bls .L3504 + bls .L3533 ldr w2, [x22,x0,lsl 2] add x0, x0, 1 add x1, x26, x0, lsl 2 ldr w1, [x1,-4] cmp w2, w1 - beq .L3482 + beq .L3511 mov x0, x22 mov w1, 0 mov w2, 512 @@ -22577,23 +22169,23 @@ write_idblock: mov w1, w20 mov w0, 0 bl flash_erase_block - b .L3467 -.L3504: + b .L3496 +.L3533: add w25, w25, 1 cmp w25, 5 - bhi .L3486 -.L3467: + bhi .L3515 +.L3496: ldr w0, [x29,140] add w0, w0, 1 str w0, [x29,140] cmp w0, 4 - bne .L3485 -.L3486: + bne .L3514 +.L3515: mov x0, x22 bl ftl_free cmp w25, wzr csetm w0, eq -.L3495: +.L3524: ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] ldp x23, x24, [sp,48] @@ -22611,17 +22203,17 @@ CRC_32: mov x5, x0 add x3, x3, :lo12:.LANCHOR2 mov w0, w2 -.L3506: +.L3535: cmp w1, w2 - bls .L3508 + bls .L3537 ldrb w4, [x5,x2] add x6, x3, 2296 add x2, x2, 1 eor w4, w4, w0, lsr 24 ldr w4, [x6,w4,uxtw 2] eor w0, w4, w0, lsl 8 - b .L3506 -.L3508: + b .L3535 +.L3537: ret .size CRC_32, .-CRC_32 .align 2 @@ -22638,316 +22230,316 @@ rknand_sys_storage_ioctl: str x21, [sp,32] mov w19, w1 mov x20, x2 - beq .L3511 + beq .L3540 mov w0, 29187 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3512 + bhi .L3541 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3513 + beq .L3542 mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3514 + bhi .L3543 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3515 + beq .L3544 mov w0, 25601 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3516 + bhi .L3545 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3572 + bne .L3601 bl rknand_dev_flush - b .L3606 -.L3516: + b .L3635 +.L3545: mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3518 + beq .L3547 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3519 - b .L3572 -.L3514: + beq .L3548 + b .L3601 +.L3543: mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3520 + beq .L3549 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3521 + bhi .L3550 mov w0, 25727 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3522 - b .L3572 -.L3521: + beq .L3551 + b .L3601 +.L3550: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3520 + beq .L3549 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3520 - b .L3572 -.L3512: + beq .L3549 + b .L3601 +.L3541: mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3523 + beq .L3552 mov w0, 29267 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3524 + bhi .L3553 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3525 + beq .L3554 mov w0, 29189 movk w0, 0x4004, lsl 16 cmp w1, w0 - bcc .L3526 + bcc .L3555 mov w0, 29210 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3527 + beq .L3556 mov w0, 29266 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3528 - b .L3572 -.L3524: + beq .L3557 + b .L3601 +.L3553: mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3529 + beq .L3558 mov w0, 30225 movk w0, 0x4004, lsl 16 cmp w1, w0 - bhi .L3530 + bhi .L3559 mov w0, 29268 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3531 + beq .L3560 mov w0, 30224 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3532 - b .L3572 -.L3530: + beq .L3561 + b .L3601 +.L3559: mov w0, 30226 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3532 + beq .L3561 mov w0, 30227 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3529 - b .L3572 -.L3526: - adrp x0, .LC291 - add x0, x0, :lo12:.LC291 + beq .L3558 + b .L3601 +.L3555: + adrp x0, .LC280 + add x0, x0, :lo12:.LC280 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbnz x0, .L3533 -.L3538: + cbnz x0, .L3562 +.L3567: mov x0, -12 - b .L3510 -.L3533: + b .L3539 +.L3562: mov x1, x20 mov x2, 512 bl rk_copy_from_user - cbnz x0, .L3613 - adrp x0, .LC293 + cbnz x0, .L3642 + adrp x0, .LC282 ldr w1, [x19] ldr w2, [x19,4] - add x0, x0, :lo12:.LC293 + add x0, x0, :lo12:.LC282 bl printk ldr w0, [x19,4] str w0, [x29,52] cmp w0, 8 - bhi .L3610 + bhi .L3639 bl rknand_device_lock ldr w1, [x29,52] mov x2, x19 ldr w0, [x19] - bl id_block_read_data.constprop.30 + bl id_block_read_data.constprop.29 bl rknand_device_unlock ldr w2, [x29,52] mov x0, x20 mov x1, x19 ubfiz x2, x2, 9, 23 bl rk_copy_to_user - cbz x0, .L3616 - adrp x0, .LC294 - add x0, x0, :lo12:.LC294 -.L3608: + cbz x0, .L3645 + adrp x0, .LC283 + add x0, x0, :lo12:.LC283 +.L3637: bl printk -.L3610: +.L3639: mov x0, x19 -.L3611: +.L3640: bl ftl_free -.L3609: +.L3638: mov x0, -14 - b .L3510 -.L3525: - adrp x0, .LC295 - add x0, x0, :lo12:.LC295 + b .L3539 +.L3554: + adrp x0, .LC284 + add x0, x0, :lo12:.LC284 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3538 + cbz x0, .L3567 mov x1, x20 mov x2, 4096 bl rk_copy_from_user - cbnz x0, .L3613 + cbnz x0, .L3642 ldr w1, [x19] - adrp x0, .LC296 + adrp x0, .LC285 ldr w2, [x19,4] - add x0, x0, :lo12:.LC296 + add x0, x0, :lo12:.LC285 bl printk - adrp x0, .LANCHOR8 - add x21, x0, :lo12:.LANCHOR8 + adrp x0, .LANCHOR7 + add x21, x0, :lo12:.LANCHOR7 mov x20, x0 - ldr x1, [x21,3592] - cbnz x1, .L3540 + ldr x1, [x21,-8] + cbnz x1, .L3569 mov w0, 260096 bl ftl_malloc - str x0, [x21,3592] - cbz x0, .L3610 -.L3540: + str x0, [x21,-8] + cbz x0, .L3639 +.L3569: ldr w2, [x19,4] cmp w2, 4088 - bhi .L3610 + bhi .L3639 ldr w0, [x19] mov w1, 55296 movk w1, 0x3, lsl 16 cmp w0, w1 - bhi .L3610 - add x20, x20, :lo12:.LANCHOR8 + bhi .L3639 + add x20, x20, :lo12:.LANCHOR7 uxtw x2, w2 - ldr x1, [x20,3592] + ldr x1, [x20,-8] add x0, x1, x0, uxtw add x1, x19, 8 bl memcpy -.L3616: +.L3645: mov x0, x19 bl ftl_free - b .L3606 -.L3528: - adrp x0, .LC297 - add x0, x0, :lo12:.LC297 + b .L3635 +.L3557: + adrp x0, .LC286 + add x0, x0, :lo12:.LC286 bl printk mov w0, 4096 bl ftl_malloc mov x19, x0 - cbz x0, .L3538 + cbz x0, .L3567 mov x1, x20 mov x2, 28 bl rk_copy_from_user - cbz x0, .L3542 -.L3613: - adrp x0, .LC292 - add x0, x0, :lo12:.LC292 - b .L3608 -.L3542: + cbz x0, .L3571 +.L3642: + adrp x0, .LC281 + add x0, x0, :lo12:.LC281 + b .L3637 +.L3571: ldr w1, [x19] - adrp x0, .LC298 + adrp x0, .LC287 ldr w2, [x19,4] - add x0, x0, :lo12:.LC298 + add x0, x0, :lo12:.LC287 bl printk ldr w1, [x19] mov w0, 59392 movk w0, 0x3, lsl 16 cmp w1, w0 - bhi .L3610 - adrp x20, .LANCHOR8 - add x20, x20, :lo12:.LANCHOR8 - ldr x0, [x20,3592] - cbz x0, .L3610 + bhi .L3639 + adrp x20, .LANCHOR7 + add x20, x20, :lo12:.LANCHOR7 + ldr x0, [x20,-8] + cbz x0, .L3639 bl CRC_32 ldr w1, [x19,4] cmp w1, w0 - beq .L3545 + beq .L3574 mov x0, x19 bl ftl_free mov x0, -2 - b .L3510 -.L3545: + b .L3539 +.L3574: bl rknand_device_lock - ldr x1, [x20,3592] + ldr x1, [x20,-8] add x2, x19, 8 ldr w0, [x19] bl write_idblock bl rknand_device_unlock - ldr x0, [x20,3592] + ldr x0, [x20,-8] bl ftl_free - str xzr, [x20,3592] - b .L3616 -.L3527: - adrp x0, .LC299 - add x0, x0, :lo12:.LC299 + str xzr, [x20,-8] + b .L3645 +.L3556: + adrp x0, .LC288 + add x0, x0, :lo12:.LC288 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3538 + cbz x0, .L3567 bl ReadFlashInfo mov x0, x20 mov x1, x21 mov x2, 11 - b .L3618 -.L3511: - adrp x0, .LC300 - add x0, x0, :lo12:.LC300 + b .L3647 +.L3540: + adrp x0, .LC289 + add x0, x0, :lo12:.LC289 bl printk bl nand_blk_add_whole_disk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3538 + cbz x0, .L3567 mov w1, 0 mov w2, 64 bl ftl_memset mov x0, x20 mov x1, x21 mov x2, 64 - b .L3618 -.L3523: - adrp x0, .LC301 - add x0, x0, :lo12:.LC301 + b .L3647 +.L3552: + adrp x0, .LC290 + add x0, x0, :lo12:.LC290 bl printk - adrp x0, .LANCHOR8+3600 + adrp x0, .LANCHOR7 add x1, x29, 52 mov x2, 4 - ldr x0, [x0,#:lo12:.LANCHOR8+3600] + ldr x0, [x0,#:lo12:.LANCHOR7] ldr w0, [x0,20] str w0, [x29,52] mov x0, x20 -.L3601: +.L3630: bl rk_copy_to_user - cbnz x0, .L3609 - b .L3606 -.L3531: - adrp x0, .LC302 - add x0, x0, :lo12:.LC302 + cbnz x0, .L3638 + b .L3635 +.L3560: + adrp x0, .LC291 + add x0, x0, :lo12:.LC291 bl printk mov w0, 4096 bl ftl_malloc mov x21, x0 - cbz x0, .L3538 + cbz x0, .L3567 bl rknand_device_lock mov w1, 264 mov w2, 2 @@ -22958,451 +22550,451 @@ rknand_sys_storage_ioctl: mov x0, x20 mov x1, x21 mov x2, 1024 -.L3618: +.L3647: bl rk_copy_to_user mov x19, x0 mov x0, x21 - cbnz x19, .L3611 + cbnz x19, .L3640 bl ftl_free - b .L3537 -.L3515: - adrp x0, .LC303 - add x0, x0, :lo12:.LC303 + b .L3566 +.L3544: + adrp x0, .LC292 + add x0, x0, :lo12:.LC292 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user mov x19, x0 - cbz x0, .L3550 -.L3555: - adrp x0, .LC292 - add x0, x0, :lo12:.LC292 + cbz x0, .L3579 +.L3584: + adrp x0, .LC281 + add x0, x0, :lo12:.LC281 bl printk - b .L3609 -.L3550: + b .L3638 +.L3579: ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - beq .L3551 -.L3552: + beq .L3580 +.L3581: mov x19, -1 - b .L3537 -.L3551: + b .L3566 +.L3580: ldr w0, [x29,60] cmp w0, 512 - bhi .L3552 - adrp x21, .LANCHOR8 + bhi .L3581 + adrp x1, .LANCHOR7 add x0, x29, 56 - add x21, x21, :lo12:.LANCHOR8 + add x21, x1, :lo12:.LANCHOR7 mov x2, 512 - ldr x1, [x21,3600] + ldr x1, [x1,#:lo12:.LANCHOR7] bl memcpy - ldr w1, [x21,3608] + ldr w1, [x21,8] mov w0, 5161 movk w0, 0xc059, lsl 16 cmp w1, w0 - beq .L3553 + beq .L3582 add x0, x29, 120 mov w1, w19 mov x2, 128 str w19, [x29,64] str w19, [x29,68] bl memset -.L3553: +.L3582: add x0, x29, 312 mov w1, 0 mov x2, 256 str wzr, [x29,72] bl memset - b .L3615 -.L3518: - adrp x0, .LC304 - add x0, x0, :lo12:.LC304 + b .L3644 +.L3547: + adrp x0, .LC293 + add x0, x0, :lo12:.LC293 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 21060 movk w0, 0x4b4d, lsl 16 cmp w1, w0 - bne .L3552 + bne .L3581 ldr w0, [x29,60] cmp w0, 512 - bhi .L3552 - adrp x1, .LANCHOR8 - mov w2, 5161 - add x1, x1, :lo12:.LANCHOR8 - movk w2, 0xc059, lsl 16 + bhi .L3581 + adrp x2, .LANCHOR7 + mov w1, 5161 + add x0, x2, :lo12:.LANCHOR7 + movk w1, 0xc059, lsl 16 + ldr w3, [x0,8] mov x0, -2 - ldr w3, [x1,3608] - cmp w3, w2 - bne .L3510 - ldr w2, [x29,68] + cmp w3, w1 + bne .L3539 + ldr w1, [x29,68] mov x0, -3 - sub w3, w2, #1 + sub w3, w1, #1 cmp w3, 127 - bhi .L3510 - ldr x19, [x1,3600] - add x1, x29, 120 + bhi .L3539 + ldr x19, [x2,#:lo12:.LANCHOR7] add x0, x19, 64 - str w2, [x19,12] + str w1, [x19,12] + add x1, x29, 120 ldr w2, [x29,68] bl memcpy mov w0, 1 mov x1, x19 - b .L3607 -.L3522: - adrp x0, .LC305 - add x0, x0, :lo12:.LC305 + b .L3636 +.L3551: + adrp x0, .LC294 + add x0, x0, :lo12:.LC294 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 17476 movk w0, 0x4253, lsl 16 cmp w1, w0 - bne .L3552 + bne .L3581 ldr w0, [x29,60] cmp w0, 512 - bhi .L3552 - adrp x19, .LANCHOR8 - add x0, x19, :lo12:.LANCHOR8 - ldr w1, [x0,3612] - cbnz w1, .L3556 -.L3559: + bhi .L3581 + adrp x19, .LANCHOR7 + add x0, x19, :lo12:.LANCHOR7 + ldr w1, [x0,12] + cbnz w1, .L3585 +.L3588: mov x0, 0 - b .L3510 -.L3556: - ldr x1, [x0,3616] + b .L3539 +.L3585: + ldr x1, [x0,16] mov w2, 22867 movk w2, 0x4453, lsl 16 ldr w3, [x1] cmp w3, w2 - beq .L3557 + beq .L3586 mov w2, 22867 movk w2, 0x4453, lsl 16 str w2, [x1] mov w2, 504 - ldr x1, [x0,3616] + ldr x1, [x0,16] str w2, [x1,4] - ldr x0, [x0,3616] + ldr x0, [x0,16] str wzr, [x0,8] str wzr, [x0,12] -.L3557: - add x20, x19, :lo12:.LANCHOR8 +.L3586: + add x0, x19, :lo12:.LANCHOR7 + adrp x20, .LANCHOR7 + ldr x1, [x0,16] mov w0, 0 - ldr x1, [x20,3616] str wzr, [x1,16] bl StorageSysDataStore - ldr x0, [x20,3600] + ldr x0, [x19,#:lo12:.LANCHOR7] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3558 + beq .L3587 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,3600] + ldr x0, [x20,#:lo12:.LANCHOR7] str w1, [x0,4] - ldr x0, [x20,3600] + ldr x0, [x20,#:lo12:.LANCHOR7] str wzr, [x0,8] -.L3558: - add x19, x19, :lo12:.LANCHOR8 +.L3587: + add x20, x19, :lo12:.LANCHOR7 + ldr x19, [x19,#:lo12:.LANCHOR7] mov w1, 0 mov x2, 128 - ldr x20, [x19,3600] - add x0, x20, 64 - str wzr, [x20,12] + add x0, x19, 64 + str wzr, [x19,12] bl memset mov w0, 1 - mov x1, x20 + mov x1, x19 bl StorageSysDataStore - str wzr, [x19,3612] - str wzr, [x19,3608] - b .L3606 -.L3513: - adrp x0, .LC306 - add x0, x0, :lo12:.LC306 + str wzr, [x20,12] + str wzr, [x20,8] + b .L3635 +.L3542: + adrp x0, .LC295 + add x0, x0, :lo12:.LC295 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w2, [x29,56] mov w1, 20037 movk w1, 0x4253, lsl 16 cmp w2, w1 - bne .L3552 + bne .L3581 ldr w1, [x29,60] cmp w1, 512 - bhi .L3552 - adrp x19, .LANCHOR8 - add x1, x19, :lo12:.LANCHOR8 - ldr w2, [x1,3612] + bhi .L3581 + adrp x19, .LANCHOR7 + add x1, x19, :lo12:.LANCHOR7 + ldr w2, [x1,12] cmp w2, 1 - beq .L3559 - ldr x2, [x1,3616] + beq .L3588 + ldr x2, [x1,16] mov w3, 22867 movk w3, 0x4453, lsl 16 ldr w4, [x2] cmp w4, w3 - beq .L3560 + beq .L3589 mov w3, 22867 movk w3, 0x4453, lsl 16 str w3, [x2] mov w3, 504 - ldr x2, [x1,3616] + ldr x2, [x1,16] str w3, [x2,4] - ldr x1, [x1,3616] + ldr x1, [x1,16] str w0, [x1,8] str w0, [x1,12] -.L3560: - add x20, x19, :lo12:.LANCHOR8 +.L3589: + add x0, x19, :lo12:.LANCHOR7 + adrp x20, .LANCHOR7 + ldr x1, [x0,16] mov w0, 1 - ldr x1, [x20,3616] str w0, [x1,16] mov w0, 0 bl StorageSysDataStore - ldr x0, [x20,3600] + ldr x0, [x19,#:lo12:.LANCHOR7] mov w1, 21060 movk w1, 0x4b4d, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3561 + beq .L3590 mov w1, 21060 movk w1, 0x4b4d, lsl 16 str w1, [x0] mov w1, 504 - ldr x0, [x20,3600] + ldr x0, [x20,#:lo12:.LANCHOR7] str w1, [x0,4] - ldr x0, [x20,3600] + ldr x0, [x20,#:lo12:.LANCHOR7] str wzr, [x0,8] -.L3561: - add x19, x19, :lo12:.LANCHOR8 +.L3590: + add x20, x19, :lo12:.LANCHOR7 + ldr x19, [x19,#:lo12:.LANCHOR7] mov w1, 0 mov x2, 128 - ldr x20, [x19,3600] - add x0, x20, 64 - str wzr, [x20,12] + add x0, x19, 64 + str wzr, [x19,12] bl memset mov w0, 1 - mov x1, x20 + mov x1, x19 bl StorageSysDataStore mov w0, 1 - str w0, [x19,3612] - b .L3606 -.L3519: - adrp x0, .LC307 - add x0, x0, :lo12:.LC307 + str w0, [x20,12] + b .L3635 +.L3548: + adrp x0, .LC296 + add x0, x0, :lo12:.LC296 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3552 + bne .L3581 ldr w2, [x29,60] cmp w2, 512 - bhi .L3552 - adrp x1, .LANCHOR8 + bhi .L3581 + adrp x1, .LANCHOR7 add x0, x29, 64 - add x1, x1, :lo12:.LANCHOR8 + add x1, x1, :lo12:.LANCHOR7 uxtw x2, w2 - add x1, x1, 3624 - b .L3614 -.L3520: + add x1, x1, 24 + b .L3643 +.L3549: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3562 - adrp x0, .LC308 - add x0, x0, :lo12:.LC308 - b .L3604 -.L3562: + bne .L3591 + adrp x0, .LC297 + add x0, x0, :lo12:.LC297 + b .L3633 +.L3591: mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3564 - adrp x0, .LC309 - add x0, x0, :lo12:.LC309 - b .L3604 -.L3564: - adrp x0, .LC310 - add x0, x0, :lo12:.LC310 -.L3604: + bne .L3593 + adrp x0, .LC298 + add x0, x0, :lo12:.LC298 + b .L3633 +.L3593: + adrp x0, .LC299 + add x0, x0, :lo12:.LC299 +.L3633: bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3609 + bne .L3638 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3565 - adrp x0, .LANCHOR8+3600 + adrp x0, .LANCHOR7 + bne .L3594 + ldr x0, [x0,#:lo12:.LANCHOR7] add x1, x29, 56 mov x2, 16 - ldr x0, [x0,#:lo12:.LANCHOR8+3600] ldr w0, [x0,20] str w0, [x29,60] strb w0, [x29,64] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3510 - b .L3609 -.L3565: - adrp x0, .LANCHOR9 - add x20, x0, :lo12:.LANCHOR9 - ldr w1, [x20,-216] + cbz x0, .L3539 + b .L3638 +.L3594: + add x20, x0, :lo12:.LANCHOR7 + ldr w1, [x20,536] cmp w1, 10 - bhi .L3609 - adrp x1, .LANCHOR8+3600 + bhi .L3638 + ldr x1, [x0,#:lo12:.LANCHOR7] ldr w2, [x29,60] - ldr x1, [x1,#:lo12:.LANCHOR8+3600] ldr w3, [x1,24] cmp w3, w2 - beq .L3566 - cbz w3, .L3566 - adrp x0, .LC311 + beq .L3595 + cbz w3, .L3595 + adrp x0, .LC300 mov w1, w2 - add x0, x0, :lo12:.LC311 + add x0, x0, :lo12:.LC300 bl printk - ldr w0, [x20,-216] + ldr w0, [x20,536] add w0, w0, 1 - str w0, [x20,-216] - b .L3609 -.L3566: - add x0, x0, :lo12:.LANCHOR9 - str wzr, [x0,-216] + str w0, [x20,536] + b .L3638 +.L3595: + add x0, x0, :lo12:.LANCHOR7 + str wzr, [x0,536] mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3567 + bne .L3596 str wzr, [x1,20] str wzr, [x1,24] - b .L3568 -.L3567: + b .L3597 +.L3596: mov w0, 1 str w2, [x1,24] str w0, [x1,20] -.L3568: +.L3597: mov w0, 1 mov x19, -2 bl StorageSysDataStore cmn w0, #1 - bne .L3606 - b .L3537 -.L3532: - adrp x0, .LC312 - add x0, x0, :lo12:.LC312 + bne .L3635 + b .L3566 +.L3561: + adrp x0, .LC301 + add x0, x0, :lo12:.LC301 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3552 + bne .L3581 ldr w2, [x29,60] cmp w2, 504 - bhi .L3552 + bhi .L3581 mov w0, 30224 - adrp x1, .LANCHOR9 + adrp x1, .LANCHOR7 movk w0, 0x4004, lsl 16 uxtw x2, w2 cmp w19, w0 - add x1, x1, :lo12:.LANCHOR9 + add x1, x1, :lo12:.LANCHOR7 add x0, x29, 64 - bne .L3569 - ldr x1, [x1,-208] - b .L3605 -.L3569: - ldr x1, [x1,-200] -.L3605: + bne .L3598 + ldr x1, [x1,544] + b .L3634 +.L3598: + ldr x1, [x1,552] +.L3634: add x1, x1, 8 -.L3614: +.L3643: bl memcpy -.L3615: +.L3644: mov x0, x20 add x1, x29, 56 mov x2, 520 - b .L3601 -.L3529: - adrp x0, .LC313 - add x0, x0, :lo12:.LC313 + b .L3630 +.L3558: + adrp x0, .LC302 + add x0, x0, :lo12:.LC302 bl printk add x0, x29, 56 mov x1, x20 mov x2, 520 bl rk_copy_from_user - cbnz x0, .L3555 + cbnz x0, .L3584 ldr w1, [x29,56] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3552 + bne .L3581 ldr w2, [x29,60] cmp w2, 504 - bhi .L3552 + bhi .L3581 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x19, .LANCHOR9 - add x19, x19, :lo12:.LANCHOR9 - bne .L3571 - ldr x0, [x19,-208] + adrp x19, .LANCHOR7 + add x19, x19, :lo12:.LANCHOR7 + bne .L3600 + ldr x0, [x19,544] add x1, x29, 56 bl memcpy mov w0, 2 - ldr x1, [x19,-208] - b .L3607 -.L3571: - ldr x0, [x19,-200] + ldr x1, [x19,544] + b .L3636 +.L3600: + ldr x0, [x19,552] add x1, x29, 56 bl memcpy - ldr x1, [x19,-200] + ldr x1, [x19,552] mov w0, 3 -.L3607: +.L3636: bl StorageSysDataStore uxtw x19, w0 - b .L3537 -.L3606: + b .L3566 +.L3635: mov x19, 0 -.L3537: - adrp x0, .LC314 +.L3566: + adrp x0, .LC303 mov x1, x19 - add x0, x0, :lo12:.LC314 + add x0, x0, :lo12:.LC303 bl printk mov x0, x19 - b .L3510 -.L3572: + b .L3539 +.L3601: mov x0, -22 -.L3510: +.L3539: ldp x19, x20, [sp,16] ldr x21, [sp,32] ldp x29, x30, [sp], 48 @@ -23413,65 +23005,60 @@ rknand_sys_storage_ioctl: .global rk_ftl_storage_sys_init .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: - stp x29, x30, [sp, -64]! - adrp x0, .LANCHOR7+3296 + stp x29, x30, [sp, -48]! mov w2, 512 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR8 - ldr x1, [x0,#:lo12:.LANCHOR7+3296] stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR8 - adrp x20, .LANCHOR9 - str x23, [sp,48] - add x23, x20, :lo12:.LANCHOR9 + adrp x20, .LANCHOR7 + add x19, x20, :lo12:.LANCHOR7 + stp x21, x22, [sp,32] + ldr x1, [x19,-40] + str x1, [x19,16] add x0, x1, 512 - str x0, [x19,3600] + str x0, [x20,#:lo12:.LANCHOR7] add x0, x1, 1024 - str x1, [x19,3616] add x1, x1, 1536 - str x0, [x23,-208] - add x0, x19, 3624 - str x1, [x23,-200] - str xzr, [x19,3592] + str x0, [x19,544] + add x0, x19, 24 + str xzr, [x19,-8] + str x1, [x19,552] bl ftl_memcpy - ldr x22, [x19,3616] - str wzr, [x23,-216] - str wzr, [x19,3608] - ldr w0, [x22,16] - ldr w23, [x22,508] - str w0, [x19,3612] - cbz w23, .L3621 - mov x0, x22 + ldr x21, [x19,16] + str wzr, [x19,8] + str wzr, [x19,536] + ldr w0, [x21,16] + ldr w22, [x21,508] + str w0, [x19,12] + cbz w22, .L3650 + mov x0, x21 mov w1, 508 bl js_hash - cmp w23, w0 - beq .L3621 - adrp x0, .LC315 - str wzr, [x22,16] - add x0, x0, :lo12:.LC315 - str wzr, [x19,3612] + cmp w22, w0 + beq .L3650 + adrp x0, .LC304 + str wzr, [x21,16] + add x0, x0, :lo12:.LC304 + str wzr, [x19,12] bl printk -.L3621: - add x21, x21, :lo12:.LANCHOR8 - ldr w0, [x21,3612] - cbz w0, .L3622 - mov w0, 5161 - movk w0, 0xc059, lsl 16 - str w0, [x21,3608] -.L3622: - add x20, x20, :lo12:.LANCHOR9 +.L3650: + add x0, x20, :lo12:.LANCHOR7 + ldr w1, [x0,12] + cbz w1, .L3651 + mov w1, 5161 + movk w1, 0xc059, lsl 16 + str w1, [x0,8] +.L3651: + add x20, x20, :lo12:.LANCHOR7 mov w0, 2 - ldr x1, [x20,-208] + ldr x1, [x20,544] bl StorageSysDataLoad - ldr x1, [x20,-200] + ldr x1, [x20,552] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init - ldr x23, [sp,48] ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x29, x30, [sp], 48 ret .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init .align 2 @@ -23491,59 +23078,59 @@ rk_ftl_vendor_storage_init: stp x19, x20, [sp,16] stp x21, x22, [sp,32] stp x23, x24, [sp,48] - adrp x21, .LANCHOR9 + adrp x21, .LANCHOR7 bl ftl_malloc - add x1, x21, :lo12:.LANCHOR9 + add x1, x21, :lo12:.LANCHOR7 mov w19, -12 - str x0, [x1,-192] - cbz x0, .L3631 + str x0, [x1,560] + cbz x0, .L3660 mov w23, 0 - adrp x24, .LC316 + adrp x24, .LC305 mov w19, w23 mov w22, w23 - add x24, x24, :lo12:.LC316 -.L3635: - add x20, x21, :lo12:.LANCHOR9 + add x24, x24, :lo12:.LC305 +.L3664: + add x20, x21, :lo12:.LANCHOR7 lsl w0, w22, 7 mov w1, 128 - ldr x2, [x20,-192] + ldr x2, [x20,560] bl FlashBootVendorRead - cbnz w0, .L3632 - ldr x3, [x20,-192] + cbnz w0, .L3661 + ldr x3, [x20,560] mov x0, x24 add x2, x3, 61440 ldr w1, [x3] ldr w3, [x3,4] ldr w2, [x2,4092] bl printk - ldr x20, [x20,-192] + ldr x20, [x20,560] mov w0, 22084 movk w0, 0x524b, lsl 16 ldr w1, [x20] cmp w1, w0 - bne .L3633 + bne .L3662 ldr w0, [x20,4] cmp w19, w0 - bcs .L3633 + bcs .L3662 add x1, x20, 61440 ldr w1, [x1,4092] cmp w1, w0 csel w23, w23, w22, ne csel w19, w19, w0, ne -.L3633: - cbnz w22, .L3643 +.L3662: + cbnz w22, .L3672 mov w22, 1 - b .L3635 -.L3643: - cbz w19, .L3636 + b .L3664 +.L3672: + cbz w19, .L3665 lsl w0, w23, 7 mov w1, 128 mov x2, x20 bl FlashBootVendorRead mov w19, w0 - cbz w0, .L3631 - b .L3632 -.L3636: + cbz w0, .L3660 + b .L3661 +.L3665: mov x0, x20 mov w1, w19 mov x2, 65536 @@ -23557,14 +23144,14 @@ rk_ftl_vendor_storage_init: mov w0, -1032 strh w19, [x20,12] strh w0, [x20,14] - b .L3631 -.L3632: - add x21, x21, :lo12:.LANCHOR9 + b .L3660 +.L3661: + add x21, x21, :lo12:.LANCHOR7 mov w19, -1 - ldr x0, [x21,-192] + ldr x0, [x21,560] bl kfree - str xzr, [x21,-192] -.L3631: + str xzr, [x21,560] +.L3660: mov w0, w19 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23576,24 +23163,24 @@ rk_ftl_vendor_storage_init: .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR9-192 + adrp x3, .LANCHOR7+560 stp x29, x30, [sp, -32]! add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR9-192] + ldr x5, [x3,#:lo12:.LANCHOR7+560] mov w3, -1 str x19, [sp,16] - cbz x5, .L3645 + cbz x5, .L3674 ldrh w3, [x5,10] mov x4, 0 -.L3646: +.L3675: cmp w4, w3 mov w6, w4 - bcs .L3650 + bcs .L3679 add x7, x5, x4, lsl 3 add x4, x4, 1 ldrh w7, [x7,16] cmp w7, w0 - bne .L3646 + bne .L3675 add x6, x5, x6, uxtw 3 ldrh w4, [x6,20] mov x0, x1 @@ -23605,10 +23192,10 @@ rk_ftl_vendor_read: uxtw x2, w19 bl memcpy mov w3, w19 - b .L3645 -.L3650: + b .L3674 +.L3679: mov w3, -1 -.L3645: +.L3674: mov w0, w3 ldr x19, [sp,16] ldp x29, x30, [sp], 32 @@ -23620,10 +23207,10 @@ rk_ftl_vendor_read: rk_ftl_vendor_write: stp x29, x30, [sp, -112]! mov w6, w0 - adrp x0, .LANCHOR9-192 + adrp x0, .LANCHOR7+560 add x29, sp, 0 stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR9-192] + ldr x19, [x0,#:lo12:.LANCHOR7+560] stp x25, x26, [sp,64] stp x27, x28, [sp,80] stp x21, x22, [sp,32] @@ -23631,38 +23218,38 @@ rk_ftl_vendor_write: mov w26, w2 mov x28, x1 mov w2, -1 - cbz x19, .L3652 + cbz x19, .L3681 add w20, w26, 63 ldrh w3, [x19,10] ldrh w23, [x19,8] and w20, w20, -64 mov x2, 0 -.L3653: +.L3682: cmp w2, w3 mov w4, w2 - bcs .L3668 + bcs .L3697 add x0, x19, x2, lsl 3 add x2, x2, 1 ldrh w0, [x0,16] cmp w0, w6 - bne .L3653 + bne .L3682 add x21, x19, x4, uxtw 3 ldrh w24, [x21,20] add x5, x19, 1024 add w24, w24, 63 and w24, w24, -64 cmp w26, w24 - bls .L3654 + bls .L3683 ldrh w0, [x19,14] mov w2, -1 cmp w0, w20 - bcc .L3652 + bcc .L3681 ldrh w21, [x21,18] add w22, w3, w2 -.L3655: +.L3684: cmp w4, w22 uxtw x3, w4 - bcs .L3669 + bcs .L3698 add x3, x19, x3, lsl 3 add w25, w4, 1 add x1, x19, x25, uxtw 3 @@ -23685,8 +23272,8 @@ rk_ftl_vendor_write: mov w4, w25 ldr x6, [x29,96] ldr x5, [x29,104] - b .L3655 -.L3669: + b .L3684 +.L3698: add x3, x19, x3, lsl 3 uxth w21, w21 mov x1, x28 @@ -23703,20 +23290,20 @@ rk_ftl_vendor_write: add w24, w24, w0 sub w24, w24, w20 strh w24, [x19,14] - b .L3667 -.L3654: + b .L3696 +.L3683: ldrh w0, [x21,18] mov x1, x28 uxtw x2, w26 add x0, x5, x0 bl memcpy strh w26, [x21,20] - b .L3667 -.L3668: + b .L3696 +.L3697: ldrh w4, [x19,14] mov w2, -1 cmp w4, w20 - bcc .L3652 + bcc .L3681 add x3, x19, x3, uxth 3 strh w6, [x3,16] uxth w20, w20 @@ -23736,7 +23323,7 @@ rk_ftl_vendor_write: ldrh w0, [x19,10] add w0, w0, 1 strh w0, [x19,10] -.L3667: +.L3696: ldr w0, [x19,4] add x1, x19, 61440 mov x2, x19 @@ -23753,7 +23340,7 @@ rk_ftl_vendor_write: lsl w0, w23, 7 bl FlashBootVendorWrite mov w2, 0 -.L3652: +.L3681: mov w0, w2 ldp x19, x20, [sp,16] ldp x21, x22, [sp,32] @@ -23777,37 +23364,37 @@ rk_ftl_vendor_storage_ioctl: mov x21, x2 bl ftl_malloc mov x19, x0 - cbz x0, .L3671 + cbz x0, .L3700 mov w2, 30209 ldr x1, [x29,56] movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3673 + beq .L3702 mov w2, 30210 movk w2, 0x4004, lsl 16 cmp w1, w2 - beq .L3674 - b .L3685 -.L3673: + beq .L3703 + b .L3714 +.L3702: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3685 + cbnz x0, .L3714 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3676 -.L3677: + beq .L3705 +.L3706: mov x20, -1 - b .L3672 -.L3676: + b .L3701 +.L3705: ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_read cmn w0, #1 - beq .L3677 + beq .L3706 uxth x2, w0 strh w0, [x19,6] mov x1, x19 @@ -23817,38 +23404,38 @@ rk_ftl_vendor_storage_ioctl: bl rk_copy_to_user cmp x0, xzr csel x20, xzr, x20, eq - b .L3672 -.L3674: + b .L3701 +.L3703: mov x1, x21 mov x2, 8 bl rk_copy_from_user - cbnz x0, .L3685 + cbnz x0, .L3714 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L3677 + bne .L3706 ldrh w3, [x19,6] cmp w3, 4087 - bhi .L3677 + bhi .L3706 add w2, w3, 8 mov x0, x19 mov x1, x21 sxtw x2, w2 bl rk_copy_from_user - cbnz x0, .L3685 + cbnz x0, .L3714 ldrh w0, [x19,4] add x1, x19, 8 ldrh w2, [x19,6] bl rk_ftl_vendor_write sxtw x20, w0 - b .L3672 -.L3685: + b .L3701 +.L3714: mov x20, -14 -.L3672: +.L3701: mov x0, x19 bl kfree -.L3671: +.L3700: mov x0, x20 ldr x21, [sp,32] ldp x19, x20, [sp,16] @@ -23892,11 +23479,14 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -23916,6 +23506,7 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -23926,7 +23517,6 @@ rk_ftl_vendor_storage_ioctl: .global gc_tlc_mode_slc_vpn_th .global gc_state .global gc_mode - .global check_vpc_tbl .global p_read_ahead_ext_buf .global discard_sector_count .global read_ahead_lpa @@ -23937,6 +23527,7 @@ rk_ftl_vendor_storage_ioctl: .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 @@ -24020,24 +23611,24 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 3 .LANCHOR1 = . + 0 - .type __func__.33843, %object - .size __func__.33843, 18 -__func__.33843: + .type __func__.33839, %object + .size __func__.33839, 18 +__func__.33839: .string "_list_remove_node" .zero 6 - .type __func__.33868, %object - .size __func__.33868, 23 -__func__.33868: + .type __func__.33864, %object + .size __func__.33864, 23 +__func__.33864: .string "_list_update_data_list" .zero 1 - .type __func__.18877, %object - .size __func__.18877, 22 -__func__.18877: + .type __func__.18895, %object + .size __func__.18895, 22 +__func__.18895: .string "nand_flash_print_info" .zero 2 - .type __func__.18959, %object - .size __func__.18959, 11 -__func__.18959: + .type __func__.18977, %object + .size __func__.18977, 11 +__func__.18977: .string "nandc_init" .zero 5 .type toshiba_A19ref_value, %object @@ -24199,9 +23790,9 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.18489, %object - .size __func__.18489, 28 -__func__.18489: + .type __func__.18507, %object + .size __func__.18507, 28 +__func__.18507: .string "flash_wait_device_ready_raw" .zero 4 .type toshiba_3D_tlc_value, %object @@ -24622,19 +24213,19 @@ toshiba_3D_slc_value: .byte -56 .byte 56 .zero 5 - .type __func__.18539, %object - .size __func__.18539, 22 -__func__.18539: + .type __func__.18557, %object + .size __func__.18557, 22 +__func__.18557: .string "flash_start_page_read" .zero 2 - .type __func__.18464, %object - .size __func__.18464, 26 -__func__.18464: + .type __func__.18482, %object + .size __func__.18482, 26 +__func__.18482: .string "flash_erase_duplane_block" .zero 6 - .type __func__.18475, %object - .size __func__.18475, 21 -__func__.18475: + .type __func__.18493, %object + .size __func__.18493, 21 +__func__.18493: .string "flash_erase_block_en" .zero 3 .type random_seed, %object @@ -24768,19 +24359,19 @@ random_seed: .hword 28406 .hword 17598 .hword 28087 - .type __func__.19129, %object - .size __func__.19129, 13 -__func__.19129: + .type __func__.19147, %object + .size __func__.19147, 13 +__func__.19147: .string "buf_add_tail" .zero 3 - .type __func__.19142, %object - .size __func__.19142, 10 -__func__.19142: + .type __func__.19160, %object + .size __func__.19160, 10 +__func__.19160: .string "buf_alloc" .zero 6 - .type __func__.19156, %object - .size __func__.19156, 16 -__func__.19156: + .type __func__.19174, %object + .size __func__.19174, 16 +__func__.19174: .string "buf_remove_free" .type zftl_debug_proc_fops, %object .size zftl_debug_proc_fops, 216 @@ -24794,262 +24385,247 @@ zftl_debug_proc_fops: .zero 8 .xword single_release .zero 104 - .type __func__.33231, %object - .size __func__.33231, 13 -__func__.33231: + .type __func__.33259, %object + .size __func__.33259, 13 +__func__.33259: .string "ftl_read_buf" .zero 3 - .type __func__.33449, %object - .size __func__.33449, 12 -__func__.33449: + .type __func__.33433, %object + .size __func__.33433, 12 +__func__.33433: .string "gc_add_sblk" .zero 4 - .type __func__.33514, %object - .size __func__.33514, 19 -__func__.33514: + .type __func__.33501, %object + .size __func__.33501, 19 +__func__.33501: .string "gc_write_completed" .zero 5 - .type __func__.33565, %object - .size __func__.33565, 16 -__func__.33565: + .type __func__.33552, %object + .size __func__.33552, 16 +__func__.33552: .string "gc_free_src_blk" - .type __func__.34041, %object - .size __func__.34041, 18 -__func__.34041: + .type __func__.34045, %object + .size __func__.34045, 18 +__func__.34045: .string "ftl_alloc_sys_blk" .zero 6 - .type __func__.34051, %object - .size __func__.34051, 17 -__func__.34051: + .type __func__.34055, %object + .size __func__.34055, 17 +__func__.34055: .string "ftl_free_sys_blk" .zero 7 - .type __func__.34155, %object - .size __func__.34155, 23 -__func__.34155: + .type __func__.34159, %object + .size __func__.34159, 23 +__func__.34159: .string "ftl_get_ppa_from_index" .zero 1 - .type __func__.34194, %object - .size __func__.34194, 22 -__func__.34194: + .type __func__.34198, %object + .size __func__.34198, 22 +__func__.34198: .string "ftl_get_new_free_page" .zero 2 - .type __func__.34205, %object - .size __func__.34205, 22 -__func__.34205: + .type __func__.34209, %object + .size __func__.34209, 22 +__func__.34209: .string "ftl_ext_alloc_new_blk" .zero 2 - .type __func__.33172, %object - .size __func__.33172, 14 -__func__.33172: + .type __func__.33200, %object + .size __func__.33200, 14 +__func__.33200: .string "ftl_write_buf" .zero 2 - .type __func__.33999, %object - .size __func__.33999, 15 -__func__.33999: + .type __func__.34004, %object + .size __func__.34004, 15 +__func__.34004: .string "ftl_alloc_sblk" .align 3 .LANCHOR3 = . + 0 - .type __func__.34627, %object - .size __func__.34627, 17 -__func__.34627: + .type __func__.34540, %object + .size __func__.34540, 17 +__func__.34540: .string "pm_alloc_new_blk" .zero 7 - .type __func__.34655, %object - .size __func__.34655, 21 -__func__.34655: + .type __func__.34568, %object + .size __func__.34568, 21 +__func__.34568: .string "pm_select_ram_region" .zero 3 - .type __func__.18867, %object - .size __func__.18867, 20 -__func__.18867: + .type __func__.18885, %object + .size __func__.18885, 20 +__func__.18885: .string "flash_die_info_init" .zero 4 - .type __func__.33109, %object - .size __func__.33109, 17 -__func__.33109: + .type __func__.33135, %object + .size __func__.33135, 17 +__func__.33135: .string "lpa_rebuild_hash" .zero 7 - .type __func__.34591, %object - .size __func__.34591, 13 -__func__.34591: + .type __func__.34504, %object + .size __func__.34504, 13 +__func__.34504: .string "pm_free_sblk" .zero 3 - .type __func__.19179, %object - .size __func__.19179, 21 -__func__.19179: + .type __func__.19197, %object + .size __func__.19197, 21 +__func__.19197: .string "flash_into_data_init" .zero 3 - .type __func__.18420, %object - .size __func__.18420, 19 -__func__.18420: + .type __func__.18438, %object + .size __func__.18438, 19 +__func__.18438: .string "flash_read_page_en" .zero 5 - .type __func__.19168, %object - .size __func__.19168, 20 -__func__.19168: + .type __func__.19186, %object + .size __func__.19186, 20 +__func__.19186: .string "flash_info_blk_init" .zero 4 - .type __func__.18554, %object - .size __func__.18554, 25 -__func__.18554: + .type __func__.18572, %object + .size __func__.18572, 25 +__func__.18572: .string "flash_complete_page_read" .zero 7 - .type __func__.33467, %object - .size __func__.33467, 21 -__func__.33467: + .type __func__.33454, %object + .size __func__.33454, 21 +__func__.33454: .string "gc_check_data_one_wl" .zero 3 - .type __func__.18526, %object - .size __func__.18526, 22 -__func__.18526: - .string "flash_start_page_prog" - .zero 2 - .type __func__.34517, %object - .size __func__.34517, 15 -__func__.34517: - .string "sblk_prog_page" - .zero 1 - .type __func__.18513, %object - .size __func__.18513, 26 -__func__.18513: + .type __func__.18531, %object + .size __func__.18531, 26 +__func__.18531: .string "flash_start_tlc_page_prog" .zero 6 - .type __func__.18449, %object - .size __func__.18449, 19 -__func__.18449: + .type __func__.18544, %object + .size __func__.18544, 22 +__func__.18544: + .string "flash_start_page_prog" + .zero 2 + .type __func__.34430, %object + .size __func__.34430, 15 +__func__.34430: + .string "sblk_prog_page" + .zero 1 + .type __func__.18467, %object + .size __func__.18467, 19 +__func__.18467: .string "flash_prog_page_en" .zero 5 - .type __func__.34342, %object - .size __func__.34342, 14 -__func__.34342: + .type __func__.34270, %object + .size __func__.34270, 14 +__func__.34270: .string "ftl_prog_page" .zero 2 - .type __func__.33967, %object - .size __func__.33967, 15 -__func__.33967: + .type __func__.33972, %object + .size __func__.33972, 15 +__func__.33972: .string "ftl_info_flush" .zero 1 - .type __func__.34230, %object - .size __func__.34230, 19 -__func__.34230: + .type __func__.34234, %object + .size __func__.34234, 19 +__func__.34234: .string "ftl_ext_info_flush" .zero 5 - .type __func__.34242, %object - .size __func__.34242, 18 -__func__.34242: + .type __func__.34246, %object + .size __func__.34246, 18 +__func__.34246: .string "ftl_ext_info_init" .zero 6 - .type __func__.34288, %object - .size __func__.34288, 15 -__func__.34288: - .string "ftl_low_format" - .zero 1 - .type __func__.34332, %object - .size __func__.34332, 23 -__func__.34332: - .string "ftl_re_low_format_test" - .zero 1 - .type __func__.34129, %object - .size __func__.34129, 23 -__func__.34129: + .type __func__.34133, %object + .size __func__.34133, 23 +__func__.34133: .string "ftl_open_sblk_recovery" .zero 1 - .type __func__.34637, %object - .size __func__.34637, 14 -__func__.34637: + .type __func__.34550, %object + .size __func__.34550, 14 +__func__.34550: .string "pm_write_page" .zero 2 - .type __func__.19201, %object - .size __func__.19201, 17 -__func__.19201: + .type __func__.19219, %object + .size __func__.19219, 17 +__func__.19219: .string "flash_info_flush" .zero 7 - .type __func__.18921, %object - .size __func__.18921, 16 -__func__.18921: + .type __func__.18939, %object + .size __func__.18939, 16 +__func__.18939: .string "nand_flash_init" - .type __func__.34110, %object - .size __func__.34110, 16 -__func__.34110: + .type __func__.34114, %object + .size __func__.34114, 16 +__func__.34114: .string "ftl_sysblk_dump" - .type __func__.34577, %object - .size __func__.34577, 16 -__func__.34577: + .type __func__.34490, %object + .size __func__.34490, 16 +__func__.34490: .string "load_l2p_region" - .type __func__.34611, %object - .size __func__.34611, 6 -__func__.34611: + .type __func__.34524, %object + .size __func__.34524, 6 +__func__.34524: .string "pm_gc" .zero 2 - .type __func__.33223, %object - .size __func__.33223, 15 -__func__.33223: + .type __func__.33251, %object + .size __func__.33251, 15 +__func__.33251: .string "ftl_read_ahead" .zero 1 - .type __func__.33501, %object - .size __func__.33501, 22 -__func__.33501: + .type __func__.33488, %object + .size __func__.33488, 22 +__func__.33488: .string "gc_update_l2p_map_new" .zero 2 - .type __func__.33669, %object - .size __func__.33669, 20 -__func__.33669: + .type __func__.33597, %object + .size __func__.33597, 16 +__func__.33597: + .string "gc_scan_src_blk" + .type __func__.33655, %object + .size __func__.33655, 20 +__func__.33655: .string "gc_scan_static_data" .zero 4 - .type __func__.33727, %object - .size __func__.33727, 18 -__func__.33727: + .type __func__.33718, %object + .size __func__.33718, 18 +__func__.33718: .string "gc_block_vpn_scan" .zero 6 - .type __func__.34086, %object - .size __func__.34086, 14 -__func__.34086: + .type __func__.34090, %object + .size __func__.34090, 14 +__func__.34090: .string "ftl_sblk_dump" .zero 2 - .type __func__.33269, %object - .size __func__.33269, 10 -__func__.33269: + .type __func__.33297, %object + .size __func__.33297, 10 +__func__.33297: .string "zftl_read" .zero 6 - .type __func__.33336, %object - .size __func__.33336, 10 -__func__.33336: - .string "vpn_check" - .zero 6 - .type __func__.33610, %object - .size __func__.33610, 16 -__func__.33610: - .string "gc_scan_src_blk" - .type __func__.34176, %object - .size __func__.34176, 19 -__func__.34176: + .type __func__.34180, %object + .size __func__.34180, 19 +__func__.34180: .string "ftl_update_l2p_map" .zero 5 - .type __func__.33161, %object - .size __func__.33161, 17 -__func__.33161: + .type __func__.33182, %object + .size __func__.33182, 17 +__func__.33182: .string "ftl_write_commit" .zero 7 - .type __func__.33543, %object - .size __func__.33543, 16 -__func__.33543: + .type __func__.33530, %object + .size __func__.33530, 16 +__func__.33530: .string "gc_do_copy_back" - .type __func__.33295, %object - .size __func__.33295, 13 -__func__.33295: - .string "_ftl_discard" - .zero 3 - .type __func__.33754, %object - .size __func__.33754, 11 -__func__.33754: + .type __func__.33746, %object + .size __func__.33746, 11 +__func__.33746: .string "zftl_do_gc" + .zero 5 + .type __func__.33323, %object + .size __func__.33323, 13 +__func__.33323: + .string "_ftl_discard" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: .string "\n!!!!! error @ func:%s - line:%d\n" .LC1: .string "%s\n" .LC2: - .string "FTL version: 6.0.7 20180411" + .string "FTL version: 6.0.8 20180511" .LC3: .string "zftl_debug:0x%x\n" .LC4: @@ -25209,474 +24785,452 @@ __func__.33754: .LC81: .string "gc free blk th = %d\n" .LC82: - .string "gc vpn th = %d %d %d %d\n" + .string "gc vpn th = %d %d %d %d %d\n" .LC83: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" + .string "swl blk = %x %x %x %x\n" .LC84: - .string "status: %x, ppa: %x\n" + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" .LC85: - .string "gc_write_completed: %x %x %x %x\n" + .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" .LC86: - .string "%d gc_free_temp_buf buf id= %x\n" + .string "status: %x, ppa: %x\n" .LC87: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" + .string "gc_write_completed: %x %x %x %x\n" .LC88: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" + .string "%d gc_free_temp_buf buf id= %x\n" .LC89: - .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" .LC90: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" .LC91: - .string "list count:%p %d\n" + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" .LC92: - .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" + .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" .LC93: - .string "gc_free_src_blk = %x, vpn = %d\n" + .string "zftl_get_free_sblk %x %d, %p %d %d\n" .LC94: - .string "gc_free_src_blk %x, %d\n" + .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" .LC95: - .string "ftl_vpn_decrement %x = %d\n" + .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" .LC96: - .string "mask bad block:cs %x block: %x\n" + .string "list count:%p %d\n" .LC97: - .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" .LC98: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" + .string "swl_tlc_free_mini_ec_blk sblk %x\n" .LC99: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" + .string "swl_slc_free_mini_ec_blk sblk %x\n" .LC100: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" + .string "gc_free_src_blk = %x, vpn = %d\n" .LC101: - .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" + .string "gc_free_src_blk %x, %d\n" .LC102: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" + .string "ftl_vpn_decrement %x = %d\n" .LC103: - .string "alloc sblk %x %d\n" + .string "mask bad block:cs %x block: %x\n" .LC104: - .string "dump_sblk_queue: %d\n" + .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" .LC105: - .string "buf id= %d state = %d ppa = %x\n" + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" .LC106: - .string "blk %x is bad block\n" + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" .LC107: - .string "pm_alloc_new_blk: %x %x %x %x\n" + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" .LC108: - .string "%s %d %d\n" + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" .LC109: - .string "gc_static_wearleveling: slc blk: %d, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" .LC110: - .string "gc_static_wearleveling: min slc ec: %d, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" + .string "alloc sblk %x %d\n" .LC111: - .string "swl add tlc gc = %d, %d, %d, %d, %d, %d\n" + .string "dump_sblk_queue: %d\n" .LC112: - .string "swl add slc gc = %d, %d, %d, %d, %d, %d\n" + .string "buf id= %d state = %d ppa = %x\n" .LC113: - .string "free blk vpn error: %x %x\n" + .string "blk %x is bad block\n" .LC114: - .string "ftl_free_no_use_map_blk %x %x %x %d\n" + .string "pm_alloc_new_blk: %x %x %x %x\n" .LC115: - .string "...%d @ %s\n" + .string "%s %d %d\n" .LC116: - .string "rk_ftl_de_init %x\n" + .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC117: - .string "%s %p:0x%x:" + .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC118: - .string "%x " + .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC119: - .string "" + .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC120: - .string "otp error! %d" + .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" .LC121: - .string "rr" + .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" .LC122: - .string "flash_abort_clear = %d\n" + .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" .LC123: - .string "%d mtrans_cnt = %d page_num = %d\n" + .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" .LC124: - .string "nandc:" + .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" .LC125: - .string "%d flReg.d32=%x %x\n" + .string "free blk vpn error: %x %x\n" .LC126: - .string "nandc_xfer_done read error %x\n" + .string "ftl_free_no_use_map_blk %x %x %x %d\n" .LC127: - .string "dqs data abort %x\n" + .string "...%d @ %s\n" .LC128: - .string "dqs data timeout %x\n" + .string "rk_ftl_de_init %x\n" .LC129: - .string "xfer error %x\n" + .string "%s %p:0x%x:" .LC130: - .string "flash_read_page %x %x %x\n" + .string "%x " .LC131: - .string "micron %d row=%x,count %d,status=%d\n" + .string "" .LC132: - .string "micron RR %d row=%x,count %d,status=%d\n" + .string "otp error! %d" .LC133: - .string "toshiba SRR %d row=%x, status=%d\n" + .string "rr" .LC134: - .string "toshiba TRR %d row=%x, status=%d\n" + .string "flash_abort_clear = %d\n" .LC135: - .string "toshiba RR %d row=%x,count %d,status=%d\n" + .string "%d mtrans_cnt = %d page_num = %d\n" .LC136: - .string "hynix RR %d row=%x, count %d, status=%d\n" + .string "nandc:" .LC137: - .string "%d flash_ddr_tunning_read %x ecc=%d\n" + .string "%d flReg.d32=%x %x\n" .LC138: - .string "sync para %d\n" + .string "nandc_xfer_done read error %x\n" .LC139: - .string "DDR mode Read error %x %x\n" + .string "dqs data abort %x\n" .LC140: - .string "flash_read_page_en %x %x\n" + .string "dqs data timeout %x\n" .LC141: - .string "flash_read_page_en %x %x error_ecc %d %d\n" + .string "xfer error %x\n" .LC142: - .string "flash_get_last_written_page: %x %x %x\n" + .string "flash_read_page %x %x %x\n" .LC143: - .string "...%d @ %s %d %p\n" + .string "micron %d row=%x,count %d,status=%d\n" .LC144: - .string "no sys info %x\n" + .string "micron RR %d row=%x,count %d,status=%d\n" .LC145: - .string "read page: %x %x %x %x\n" + .string "toshiba SRR %d row=%x, status=%d\n" .LC146: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" + .string "toshiba TRR %d row=%x, status=%d\n" .LC147: - .string "set buf %d,status = %x, ppa = %x lun state = %d\n" + .string "toshiba RR %d row=%x,count %d,status=%d\n" .LC148: - .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "hynix RR %d row=%x, count %d, status=%d\n" .LC149: - .string "flash_prog_page %x %x %x\n" + .string "%d flash_ddr_tuning_read %x ecc=%d\n" .LC150: - .string "flash_prog_page page_addr = %x status = %x\n" + .string "sync para %d\n" .LC151: - .string "sblk_prog_page ppa = %x, count = %d\n" + .string "DDR mode Read error %x %x\n" .LC152: - .string "flash_prog_page_en:%x %x\n" + .string "flash_read_page_en %x %x\n" .LC153: - .string "spare" + .string "flash_read_page_en %x %x error_ecc %d %d\n" .LC154: - .string "data" + .string "flash_get_last_written_page: %x %x %x\n" .LC155: - .string "write error: %x\n" + .string "...%d @ %s %d %p\n" .LC156: - .string "low format %d\n" + .string "no sys info %x\n" .LC157: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" + .string "read page: %x %x %x %x\n" .LC158: - .string "%d %x @%d %x\n" + .string "flash_complete_page_read %x %x error_ecc %d %d\n" .LC159: - .string "ftl_info_blk_init %d %d %x\n" + .string "set buf %d,status = %x, ppa = %x lun state = %d\n" .LC160: - .string "low format %d %d %d %d\n" + .string "1ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC161: - .string "re low format %d\n" + .string "flash_prog_page %x %x %x\n" .LC162: - .string "saved_active_page = %x\n" + .string "flash_prog_page page_addr = %x status = %x\n" .LC163: - .string "saved_active_plane = %x\n" + .string "sblk_prog_page ppa = %x, count = %d\n" .LC164: - .string "sblk = %x\n" + .string "flash_prog_page_en:%x %x\n" .LC165: - .string "phy_blk = %x %x\n" + .string "spare" .LC166: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "data" .LC167: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" + .string "write error: %x\n" .LC168: - .string "dump write = %x\n" + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" .LC169: - .string "pm_write_page write error: %x\n" + .string "%d %x @%d %x\n" .LC170: - .string "finfo:" + .string "ftl_info_blk_init %d %d %x\n" .LC171: - .string "flash_info_flush id = %x, page = %x\n" + .string "saved_active_page = %x\n" .LC172: - .string "sys_info_flush error:%x\n" + .string "saved_active_plane = %x\n" .LC173: - .string "l2p:" + .string "sblk = %x\n" .LC174: - .string "free_buf_count: %d\n" + .string "phy_blk = %x %x\n" .LC175: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" .LC176: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" + .string "dump write = %x\n" .LC177: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "pm_write_page write error: %x\n" .LC178: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "finfo:" .LC179: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" + .string "flash_info_flush id = %x, page = %x\n" .LC180: - .string "lpa:" + .string "sys_info_flush error:%x\n" .LC181: - .string "vpn:" + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC182: - .string "sblk:" + .string "l2p:" .LC183: - .string "lpa_hash:" + .string "free_buf_count: %d\n" .LC184: - .string "lpa_hash_index:" + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" .LC185: - .string "%s w error lpn = %x, max ppa = %d\n" + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" .LC186: - .string "region_id = %d, pm_max_region = %d\n" + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC187: - .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC188: - .string "load_l2p_region = %x,%x,%x, %x\n" + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" .LC189: - .string "pm_ppa:" + .string "lpa:" .LC190: - .string "data:" + .string "vpn:" .LC191: - .string "spare:" + .string "sblk:" .LC192: - .string "pm_init posr %x %x %x\n" + .string "lpa_hash:" .LC193: - .string "pm_init recovery %x %x %x\n" + .string "lpa_hash_index:" .LC194: - .string "pm_log2phys lpn = %d, max lpn = %d\n" + .string "%s w error lpn = %x, max ppa = %d\n" .LC195: - .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" + .string "region_id = %d, pm_max_region = %d\n" .LC196: - .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" .LC197: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" + .string "load_l2p_region = %x,%x,%x, %x\n" .LC198: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" + .string "pm_ppa:" .LC199: - .string "gc_recovery" + .string "data:" .LC200: - .string "gc_recovery: %x vpn = %x\n" + .string "spare:" .LC201: - .string "_c_user_data_density := %d\n" + .string "pm_init posr %x %x %x\n" .LC202: - .string "_c_totle_phy_density := %d\n" + .string "pm_init recovery %x %x %x\n" .LC203: - .string "_c_totle_log_page := %d\n" + .string "pm_log2phys lpn = %d, max lpn = %d\n" .LC204: - .string "_c_totle_data_density := %d\n" + .string "ftl_read_ahead refresh =%x, lpa = %x, ppa= %x\n" .LC205: - .string "_c_ftl_pm_page_num := %d\n" + .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n" .LC206: - .string "_c_ftl_byte_pre_page := %d\n" + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" .LC207: - .string "_c_max_pm_sblk := %d\n" + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" .LC208: - .string "_min_slc_super_block := %d\n" + .string "gc_recovery: %x vpn = %x\n" .LC209: - .string "_max_xlc_super_block := %d\n" + .string "_c_user_data_density := %d\n" .LC210: - .string "gp_ftl_ext_info %p %p %p\n" + .string "_c_totle_phy_density := %d\n" .LC211: - .string "flash info size: %d %d %d\n" + .string "_c_totle_log_page := %d\n" .LC212: - .string "ftl_init %x\n" + .string "_c_totle_data_density := %d\n" .LC213: - .string "gc_update_l2p_map_new sblk %x\n" + .string "_c_ftl_pm_page_num := %d\n" .LC214: - .string "gc_update_l2p_map_new: %x %x %x\n" + .string "_c_ftl_byte_pre_page := %d\n" .LC215: - .string "0lpa: %x %x %x\n" + .string "_c_max_pm_sblk := %d\n" .LC216: - .string "lpa: %x %x %x\n" + .string "_min_slc_super_block := %d\n" .LC217: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" + .string "_max_xlc_super_block := %d\n" .LC218: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" + .string "gp_ftl_ext_info %p %p %p\n" .LC219: - .string "ftl_sblk_dump = %x %x %x %x\n" + .string "flash info size: %d %d %d\n" .LC220: - .string "page_addr = %x, lpa=%x vpn = %d\n" + .string "ftl_init %x\n" .LC221: - .string "index= %x, lpa=%x\n" + .string "gc_update_l2p_map_new sblk %x\n" .LC222: - .string "block = %x, vpn=%x check vpn = %d\n" + .string "gc_update_l2p_map_new: %x %x %x\n" .LC223: - .string "ftl_read %x %x %x\n" + .string "lpa: %x %x %x\n" .LC224: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" .LC225: - .string "acblk = %x, tempblk = %x, gc_des = %x\n" -.LC226: - .string "acblk = %x, free page = %x, vpn = %x %x\n" -.LC227: - .string "tmp_blk = %x, free page = %x, vpn = %x %x\n" -.LC228: - .string "vpn_check lpa = %x, ppa = %x, blk = %x\n" -.LC229: - .string "l2p" -.LC230: - .string "vpn_check %x = c %x s %x function: %x\n" -.LC231: - .string "vpn_check blk = %x fix vpc\n" -.LC232: - .string "...%s exit...%d\n" -.LC233: .string "gc_scan_src_blk = %x, vpn = %d\n" -.LC234: +.LC226: .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" +.LC227: + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" +.LC228: + .string "ftl_sblk_dump = %x %d %d %d %d\n" +.LC229: + .string "ftl_sblk_dump = %x %x %x %x\n" +.LC230: + .string "page_addr = %x, lpa=%x vpn = %d\n" +.LC231: + .string "index= %x, lpa=%x\n" +.LC232: + .string "block = %x, vpn=%x check vpn = %d\n" +.LC233: + .string "ftl_read %x %x %x\n" +.LC234: + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" .LC235: - .string "ftl_scan_all_data = %x\n" -.LC236: - .string "scan lpa = %x ppa= %x\n" -.LC237: - .string "lba = %x,addr= %x, ststus = %x, spare= %x %x %x %x data=%x %x\n" -.LC238: - .string "lba = %x, id= %x, index = %x hash ppa = %x\n" -.LC239: - .string "0pm:" -.LC240: - .string "1pm:" -.LC241: .string "zftl debug cmd: %s\n" -.LC242: +.LC236: .string "cmd:" -.LC243: +.LC237: .string "dumpl2p" -.LC244: +.LC238: .string "pm l2p:" -.LC245: +.LC239: .string "pm blk:" -.LC246: +.LC240: .string "dumppm:" -.LC247: +.LC241: .string "p_cmd: %s\n" -.LC248: +.LC242: .string "pm ram = %x, %x\n" -.LC249: +.LC243: .string "ram:" -.LC250: +.LC244: .string "pm:" -.LC251: +.LC245: .string "dumpsys" -.LC252: - .string "dumplist" -.LC253: +.LC246: + .string "dumplist:" +.LC247: .string "vpncheck" -.LC254: +.LC248: .string "dumpppa:" -.LC255: +.LC249: .string "dumpblk:" -.LC256: +.LC250: .string "setzdebug:" -.LC257: +.LC251: .string "lpa2ppa:" -.LC258: +.LC252: .string "lpa: %x--> ppa: %x\n" -.LC259: +.LC253: .string "help:\n" -.LC260: +.LC254: .string "1. echo dumpl2p > /proc/zftl_debug\n" -.LC261: +.LC255: .string "2. echo dumppm:x > /proc/zftl_debug\n" -.LC262: +.LC256: .string "3. echo dumpsys > /proc/zftl_debug\n" -.LC263: +.LC257: .string "4. echo dumpppa:x > /proc/zftl_debug\n" -.LC264: +.LC258: .string "5. echo vpncheck > /proc/zftl_debug\n" -.LC265: +.LC259: .string "6. echo setzdebug:x > /proc/zftl_debug\n" -.LC266: +.LC260: .string "7. echo dumplist > /proc/zftl_debug\n" -.LC267: +.LC261: .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" -.LC268: +.LC262: .string "ftl_update_l2p_map: %x %x %x\n" -.LC269: +.LC263: .string "ftl_update_l2p_map" -.LC270: +.LC264: .string "lpa_tbl:" -.LC271: +.LC265: .string "sblk %x vpn: %d %d\n" -.LC272: +.LC266: .string "%d read error: ppa:%x, lpa:%x, status:%x\n" -.LC273: +.LC267: .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" -.LC274: +.LC268: .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" -.LC275: +.LC269: .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n" -.LC276: +.LC270: .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n" -.LC277: - .string "ftl_discard:(%x, %x, %x, %x)\n" -.LC278: +.LC271: .string "gc %d: %d %d %d %d %d %d %d\n" -.LC279: +.LC272: .string "gc %d: %d %d %d %d %d %d\n" -.LC280: +.LC273: .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" -.LC281: +.LC274: .string "gc free %x, %d\n" -.LC282: - .string "error gc slc free sblk = %x, vpn = %d %d\n" -.LC283: - .string "vpage0:" -.LC284: - .string "block %x, vpn = %d %d %d %d\n" -.LC285: - .string "block %x, vpn = %d %d\n" -.LC286: - .string "vpage1:" -.LC287: +.LC275: .string "ftlwrite %x %x %x\n" -.LC288: +.LC276: + .string "ftl_discard:(%x, %x, %x, %x)\n" +.LC277: .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" -.LC289: +.LC278: .string "write_idblock fix data %x %x\n" -.LC290: +.LC279: .string "1 write_idblock fix data %x %x %x\n" -.LC291: +.LC280: .string "READ_SECTOR_IO\n" -.LC292: +.LC281: .string "rk_copy_from_user error\n" -.LC293: +.LC282: .string "READ_SECTOR_IO %x %x\n" -.LC294: +.LC283: .string "rk_copy_to_user error\n" -.LC295: +.LC284: .string "WRITE_SECTOR_IO\n" -.LC296: +.LC285: .string "WRITE_SECTOR_IO %x %x\n" -.LC297: +.LC286: .string "END_WRITE_SECTOR_IO\n" -.LC298: +.LC287: .string "END_WRITE_SECTOR_IO %x %x\n" -.LC299: +.LC288: .string "GET_FLASH_INFO_IO\n" -.LC300: +.LC289: .string "GET_BAD_BLOCK_IO\n" -.LC301: +.LC290: .string "GET_LOCK_FLAG_IO\n" -.LC302: +.LC291: .string "GET_PUBLIC_KEY_IO\n" -.LC303: +.LC292: .string "RKNAND_GET_DRM_KEY\n" -.LC304: +.LC293: .string "RKNAND_STORE_DRM_KEY\n" -.LC305: +.LC294: .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC306: +.LC295: .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC307: +.LC296: .string "RKNAND_GET_SN_SECTOR\n" -.LC308: +.LC297: .string "RKNAND_LOADER_UNLOCK\n" -.LC309: +.LC298: .string "RKNAND_LOADER_STATUS\n" -.LC310: +.LC299: .string "RKNAND_LOADER_LOCK\n" -.LC311: +.LC300: .string "LockKey not match %d\n" -.LC312: +.LC301: .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC313: +.LC302: .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC314: +.LC303: .string "return ret = %lx\n" -.LC315: +.LC304: .string "secureBootEn check error\n" -.LC316: +.LC305: .string "\0013vendor storage %x,%x,%x\n" .data .align 3 @@ -26770,8 +26324,8 @@ zftl_nand_flash_para_tbl: .byte 32 .hword 512 .byte 2 - .byte 2 - .hword 1096 + .byte 1 + .hword 2184 .hword 9695 .byte 5 .byte 19 @@ -26798,8 +26352,8 @@ zftl_nand_flash_para_tbl: .byte 32 .hword 512 .byte 2 - .byte 2 - .hword 1096 + .byte 1 + .hword 2184 .hword 9695 .byte 5 .byte 19 @@ -27684,10 +27238,8 @@ gTable_Crc32: .LANCHOR0 = . + 0 .LANCHOR4 = . + 4352 .LANCHOR5 = . + 21760 -.LANCHOR6 = . + 39168 -.LANCHOR7 = . + 52224 -.LANCHOR8 = . + 56576 -.LANCHOR9 = . + 60928 +.LANCHOR6 = . + 34816 +.LANCHOR7 = . + 39168 .type g_nandc_ver, %object .size g_nandc_ver, 1 g_nandc_ver: @@ -27746,6 +27298,11 @@ _c_ftl_blk_pre_plane: .size gp_blk_info, 8 gp_blk_info: .zero 8 + .type _c_slc_to_xlc_ec_ratio, %object + .size _c_slc_to_xlc_ec_ratio, 2 +_c_slc_to_xlc_ec_ratio: + .zero 2 + .zero 6 .type ftl_sblk_vpn, %object .size ftl_sblk_vpn, 8 ftl_sblk_vpn: @@ -27753,6 +27310,10 @@ ftl_sblk_vpn: .type gp_ftl_ext_info, %object .size gp_ftl_ext_info, 8 gp_ftl_ext_info: + .zero 8 + .type gp_data_slc_data_head, %object + .size gp_data_slc_data_head, 8 +gp_data_slc_data_head: .zero 8 .type gp_nand_para_info, %object .size gp_nand_para_info, 8 @@ -27931,11 +27492,16 @@ gc_slc_mode_vpn_th: .size gc_slc_mode_tlc_vpn_th, 2 gc_slc_mode_tlc_vpn_th: .zero 2 + .zero 2 + .type _gc_after_discard_en, %object + .size _gc_after_discard_en, 4 +_gc_after_discard_en: + .zero 4 .type write_buf_head, %object .size write_buf_head, 1 write_buf_head: .zero 1 - .zero 1 + .zero 3 .type read_ahead_lpa, %object .size read_ahead_lpa, 4 read_ahead_lpa: @@ -27953,6 +27519,15 @@ sblk_read_completed_queue_head: .size g_gc_info, 328 g_gc_info: .zero 328 + .type ftl_sblk_vpn_update_id, %object + .size ftl_sblk_vpn_update_id, 2 +ftl_sblk_vpn_update_id: + .zero 2 + .zero 6 + .type ftl_sblk_update_list, %object + .size ftl_sblk_update_list, 16 +ftl_sblk_update_list: + .zero 16 .type gc_valid_page_ppa, %object .size gc_valid_page_ppa, 8 gc_valid_page_ppa: @@ -27990,10 +27565,6 @@ _c_ftl_nand_planes_num: .type gp_data_xlc_data_head, %object .size gp_data_xlc_data_head, 8 gp_data_xlc_data_head: - .zero 8 - .type gp_data_slc_data_head, %object - .size gp_data_slc_data_head, 8 -gp_data_slc_data_head: .zero 8 .type gp_data_slc_cache_head, %object .size gp_data_slc_cache_head, 8 @@ -28014,6 +27585,10 @@ _c_ftl_page_pre_slc_blk: .type gc_slc_data_index, %object .size gc_slc_data_index, 2 gc_slc_data_index: + .zero 2 + .type gc_xlc_search_index, %object + .size gc_xlc_search_index, 2 +gc_xlc_search_index: .zero 2 .type _min_slc_super_block, %object .size _min_slc_super_block, 2 @@ -28023,7 +27598,7 @@ _min_slc_super_block: .size _max_xlc_super_block, 2 _max_xlc_super_block: .zero 2 - .zero 4 + .zero 2 .type gp_free_slc_head, %object .size gp_free_slc_head, 8 gp_free_slc_head: @@ -28036,6 +27611,10 @@ gp_free_xlc_head: .size gp_free_mix_head, 8 gp_free_mix_head: .zero 8 + .type zftl_print_list_count, %object + .size zftl_print_list_count, 2 +zftl_print_list_count: + .zero 2 .type _c_ftl_planes_per_die, %object .size _c_ftl_planes_per_die, 1 _c_ftl_planes_per_die: @@ -28044,10 +27623,6 @@ _c_ftl_planes_per_die: .type _c_ftl_block_addr_log2, %object .size _c_ftl_block_addr_log2, 2 _c_ftl_block_addr_log2: - .zero 2 - .type _c_mix_max_slc_ec_count, %object - .size _c_mix_max_slc_ec_count, 2 -_c_mix_max_slc_ec_count: .zero 2 .type _c_mix_max_xlc_ec_count, %object .size _c_mix_max_xlc_ec_count, 2 @@ -28056,6 +27631,10 @@ _c_mix_max_xlc_ec_count: .type _max_slc_super_block, %object .size _max_slc_super_block, 2 _max_slc_super_block: + .zero 2 + .type _c_mix_max_slc_ec_count, %object + .size _c_mix_max_slc_ec_count, 2 +_c_mix_max_slc_ec_count: .zero 2 .type g_flash_3d_mlc_flag, %object .size g_flash_3d_mlc_flag, 1 @@ -28070,7 +27649,7 @@ _c_ftl_block_align_addr: .size _c_ftl_nand_die_num, 1 _c_ftl_nand_die_num: .zero 1 - .zero 1 + .zero 7 .type lpa_hash, %object .size lpa_hash, 512 lpa_hash: @@ -28087,9 +27666,9 @@ lpa_hash_index: .size ftl_vpn_update_count, 2 ftl_vpn_update_count: .zero 2 - .type ftl_sblk_vpn_update_id, %object - .size ftl_sblk_vpn_update_id, 2 -ftl_sblk_vpn_update_id: + .type ftl_sblk_update_list_offset, %object + .size ftl_sblk_update_list_offset, 2 +ftl_sblk_update_list_offset: .zero 2 .type sblk_write_completed_queue_head, %object .size sblk_write_completed_queue_head, 1 @@ -28135,7 +27714,11 @@ g_totle_phy_block: .size gc_state, 1 gc_state: .zero 1 - .zero 5 + .zero 1 + .type gc_search_count, %object + .size gc_search_count, 4 +gc_search_count: + .zero 4 .type gc_lpa_tbl, %object .size gc_lpa_tbl, 8 gc_lpa_tbl: @@ -28216,15 +27799,6 @@ g_flash_spare_buffer: .size g_idb_slc_mode_enable, 1 g_idb_slc_mode_enable: .zero 1 - .zero 47 - .type ftl_tmp_buffer, %object - .size ftl_tmp_buffer, 16384 -ftl_tmp_buffer: - .zero 16384 - .type ftl_tmp_spare, %object - .size ftl_tmp_spare, 256 -ftl_tmp_spare: - .zero 256 .type g_flash_reversd_blks, %object .size g_flash_reversd_blks, 1 g_flash_reversd_blks: @@ -28233,7 +27807,7 @@ g_flash_reversd_blks: .size write_commit_head, 1 write_commit_head: .zero 1 - .zero 2 + .zero 1 .type ftl_flush_jiffies, %object .size ftl_flush_jiffies, 4 ftl_flush_jiffies: @@ -28269,15 +27843,10 @@ ftl_ext_info_first_write: .size ftl_ext_info_data_buffer, 16384 ftl_ext_info_data_buffer: .zero 16384 - .type ftl_low_format_cur_blk, %object - .size ftl_low_format_cur_blk, 2 -ftl_low_format_cur_blk: - .zero 2 - .type _c_ftl_pm_page_num, %object - .size _c_ftl_pm_page_num, 2 -_c_ftl_pm_page_num: - .zero 2 - .zero 4 + .type ftl_tmp_spare, %object + .size ftl_tmp_spare, 256 +ftl_tmp_spare: + .zero 256 .type g_pm_spare, %object .size g_pm_spare, 8 g_pm_spare: @@ -28303,7 +27872,11 @@ pm_last_load_ram_id: .size _c_totle_data_density, 4 _c_totle_data_density: .zero 4 - .zero 4 + .type _c_ftl_pm_page_num, %object + .size _c_ftl_pm_page_num, 2 +_c_ftl_pm_page_num: + .zero 2 + .zero 2 .type gLoaderBootInfo, %object .size gLoaderBootInfo, 8 gLoaderBootInfo: @@ -28315,23 +27888,14 @@ RK29_NANDC1_REG_BASE: .type _last_read_time, %object .size _last_read_time, 4 _last_read_time: - .zero 4 - .zero 4 - .type check_vpc_tbl, %object - .size check_vpc_tbl, 4608 -check_vpc_tbl: - .zero 4608 - .type discard_sector_count, %object - .size discard_sector_count, 4 -discard_sector_count: - .zero 4 - .type _gc_after_discard_en, %object - .size _gc_after_discard_en, 4 -_gc_after_discard_en: .zero 4 .type _last_write_time, %object .size _last_write_time, 4 _last_write_time: + .zero 4 + .type discard_sector_count, %object + .size discard_sector_count, 4 +discard_sector_count: .zero 4 .zero 4 .type g_idb_buffer, %object @@ -28375,6 +27939,15 @@ gpVendor1Info: .size g_vendor, 8 g_vendor: .zero 8 + .type ftl_low_format_cur_blk, %object + .size ftl_low_format_cur_blk, 2 +ftl_low_format_cur_blk: + .zero 2 + .zero 6 + .type ftl_tmp_buffer, %object + .size ftl_tmp_buffer, 16384 +ftl_tmp_buffer: + .zero 16384 .type _c_ftl_nand_blks_per_die, %object .size _c_ftl_nand_blks_per_die, 2 _c_ftl_nand_blks_per_die: