33866 lines
612 KiB
ArmAsm
33866 lines
612 KiB
ArmAsm
/*
|
|
* Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
* date: 2021-01-07
|
|
*/
|
|
.arch armv8-a
|
|
.file "rk_zftl_arm_v8.S"
|
|
.section .text.flash_mem_cmp8,"ax",@progbits
|
|
.align 2
|
|
.type flash_mem_cmp8, %function
|
|
flash_mem_cmp8:
|
|
mov x3, 0
|
|
.L2:
|
|
mov w4, w3
|
|
cmp w3, w2
|
|
bcc .L4
|
|
mov w0, 0
|
|
ret
|
|
.L4:
|
|
ldrb w5, [x0, x3]
|
|
add x3, x3, 1
|
|
add x6, x1, x3
|
|
ldrb w6, [x6, -1]
|
|
cmp w6, w5
|
|
beq .L2
|
|
add w0, w4, 1
|
|
ret
|
|
.size flash_mem_cmp8, .-flash_mem_cmp8
|
|
.section .text.slc_phy_page_address_calc,"ax",@progbits
|
|
.align 2
|
|
.type slc_phy_page_address_calc, %function
|
|
slc_phy_page_address_calc:
|
|
adrp x1, .LANCHOR0
|
|
adrp x2, .LANCHOR1
|
|
ldrb w1, [x1, #:lo12:.LANCHOR0]
|
|
cbz w1, .L7
|
|
ldrb w1, [x2, #:lo12:.LANCHOR1]
|
|
cbz w1, .L8
|
|
.L7:
|
|
adrp x1, .LANCHOR2
|
|
ldrb w2, [x2, #:lo12:.LANCHOR1]
|
|
ldrh w3, [x1, #:lo12:.LANCHOR2]
|
|
udiv w1, w0, w3
|
|
mul w1, w1, w3
|
|
sub w0, w0, w1
|
|
cbz w2, .L9
|
|
add w0, w1, w0, lsl 1
|
|
ret
|
|
.L9:
|
|
adrp x2, .LANCHOR3
|
|
add x2, x2, :lo12:.LANCHOR3
|
|
ldrh w0, [x2, w0, uxtw 1]
|
|
add w0, w0, w1
|
|
.L8:
|
|
ret
|
|
.size slc_phy_page_address_calc, .-slc_phy_page_address_calc
|
|
.section .text._list_remove_node,"ax",@progbits
|
|
.align 2
|
|
.type _list_remove_node, %function
|
|
_list_remove_node:
|
|
stp x29, x30, [sp, -64]!
|
|
and w1, w1, 65535
|
|
mov w3, 6
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR4
|
|
stp x19, x20, [sp, 16]
|
|
umull x20, w1, w3
|
|
stp x23, x24, [sp, 48]
|
|
mov w1, 65535
|
|
ldr x24, [x21, #:lo12:.LANCHOR4]
|
|
add x19, x24, x20
|
|
ldrh w4, [x24, x20]
|
|
ldrh w3, [x19, 2]
|
|
cmp w4, w1
|
|
ldr x1, [x0]
|
|
bne .L17
|
|
cmp w3, w4
|
|
bne .L17
|
|
cmp x19, x1
|
|
bne .L16
|
|
.L17:
|
|
mov x22, x0
|
|
mov x23, x2
|
|
mov w0, 65535
|
|
cmp w3, w0
|
|
bne .L19
|
|
cmp x19, x1
|
|
beq .L19
|
|
adrp x1, .LANCHOR5
|
|
adrp x0, .LC0
|
|
mov w2, 202
|
|
add x1, x1, :lo12:.LANCHOR5
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L19:
|
|
ldr x0, [x22]
|
|
ldrh w3, [x24, x20]
|
|
cmp x19, x0
|
|
mov w0, 65535
|
|
bne .L20
|
|
cmp w3, w0
|
|
bne .L21
|
|
str xzr, [x22]
|
|
.L22:
|
|
mov w0, -1
|
|
strh w0, [x24, x20]
|
|
strh w0, [x19, 2]
|
|
ldrh w0, [x23]
|
|
sub w0, w0, #1
|
|
strh w0, [x23]
|
|
.L16:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L21:
|
|
ldr x0, [x21, #:lo12:.LANCHOR4]
|
|
mov w1, 6
|
|
umaddl x3, w3, w1, x0
|
|
mov w0, -1
|
|
str x3, [x22]
|
|
strh w0, [x3, 2]
|
|
b .L22
|
|
.L20:
|
|
cmp w3, w0
|
|
ldrh w0, [x19, 2]
|
|
bne .L23
|
|
cmp w0, w3
|
|
beq .L22
|
|
mov w1, 6
|
|
mov w2, -1
|
|
umull x0, w0, w1
|
|
ldr x1, [x21, #:lo12:.LANCHOR4]
|
|
strh w2, [x1, x0]
|
|
b .L22
|
|
.L23:
|
|
ldr x1, [x21, #:lo12:.LANCHOR4]
|
|
mov w2, 6
|
|
umaddl x4, w3, w2, x1
|
|
strh w0, [x4, 2]
|
|
ldrh w0, [x19, 2]
|
|
umull x0, w0, w2
|
|
strh w3, [x1, x0]
|
|
b .L22
|
|
.size _list_remove_node, .-_list_remove_node
|
|
.section .text.hynix_set_rr_para,"ax",@progbits
|
|
.align 2
|
|
.type hynix_set_rr_para, %function
|
|
hynix_set_rr_para:
|
|
stp x29, x30, [sp, -64]!
|
|
adrp x2, .LANCHOR6
|
|
and w1, w1, 255
|
|
adrp x3, .LANCHOR7
|
|
add x29, sp, 0
|
|
ldr x2, [x2, #:lo12:.LANCHOR6]
|
|
and w0, w0, 255
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
add x21, x2, 112
|
|
str x23, [sp, 48]
|
|
add x23, x2, 128
|
|
ldr x19, [x3, #:lo12:.LANCHOR7]
|
|
ldrb w22, [x2, 113]
|
|
ldrb w2, [x2, 112]
|
|
cmp w2, 8
|
|
mov x2, 32
|
|
umaddl x1, w1, w22, x2
|
|
beq .L26
|
|
mov w2, 160
|
|
umaddl x1, w2, w0, x1
|
|
.L26:
|
|
ubfiz x0, x0, 8, 8
|
|
add x21, x21, x1
|
|
add x19, x19, x0
|
|
mov x20, 0
|
|
mov w0, 54
|
|
str w0, [x19, 2056]
|
|
.L28:
|
|
cmp w22, w20, uxtb
|
|
bhi .L29
|
|
ldp x21, x22, [sp, 32]
|
|
mov w0, 22
|
|
ldr x23, [sp, 48]
|
|
str w0, [x19, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L29:
|
|
ldrb w0, [x23, x20]
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldrsb w0, [x21, x20]
|
|
add x20, x20, 1
|
|
str w0, [x19, 2048]
|
|
b .L28
|
|
.size hynix_set_rr_para, .-hynix_set_rr_para
|
|
.section .text._insert_free_list,"ax",@progbits
|
|
.align 2
|
|
.type _insert_free_list, %function
|
|
_insert_free_list:
|
|
adrp x3, .LANCHOR8
|
|
and w1, w1, 65535
|
|
ldrh w3, [x3, #:lo12:.LANCHOR8]
|
|
cmp w3, w1
|
|
bls .L31
|
|
ldrh w3, [x2]
|
|
mov w8, 6
|
|
ldr x7, [x0]
|
|
add w3, w3, 1
|
|
strh w3, [x2]
|
|
adrp x2, .LANCHOR4
|
|
umull x12, w1, w8
|
|
ldr x5, [x2, #:lo12:.LANCHOR4]
|
|
mov w2, -1
|
|
add x6, x5, x12
|
|
strh w2, [x6, 2]
|
|
strh w2, [x5, x12]
|
|
cbnz x7, .L33
|
|
.L38:
|
|
str x6, [x0]
|
|
ret
|
|
.L33:
|
|
adrp x2, .LANCHOR9
|
|
adrp x3, .LANCHOR10
|
|
mov w10, w8
|
|
mov w15, 65535
|
|
ldr x11, [x2, #:lo12:.LANCHOR9]
|
|
ubfiz x2, x1, 2, 16
|
|
ldrh w14, [x3, #:lo12:.LANCHOR10]
|
|
mov x3, -6148914691236517206
|
|
movk x3, 0xaaab, lsl 0
|
|
ldr w4, [x11, x2]
|
|
ldrh w2, [x11, x2]
|
|
ubfx x4, x4, 11, 8
|
|
and w2, w2, 2047
|
|
madd w4, w14, w4, w2
|
|
sub x2, x7, x5
|
|
asr x2, x2, 1
|
|
and w4, w4, 65535
|
|
mul x2, x2, x3
|
|
mov x3, x7
|
|
and w2, w2, 65535
|
|
.L36:
|
|
ubfiz x13, x2, 2, 16
|
|
ldr w8, [x11, x13]
|
|
ldrh w13, [x11, x13]
|
|
ubfx x8, x8, 11, 8
|
|
and w13, w13, 2047
|
|
madd w8, w14, w8, w13
|
|
cmp w4, w8, uxth
|
|
bls .L34
|
|
ldrh w8, [x3]
|
|
cmp w8, w15
|
|
bne .L35
|
|
strh w2, [x6, 2]
|
|
strh w1, [x3]
|
|
ret
|
|
.L35:
|
|
umaddl x3, w8, w10, x5
|
|
mov w2, w8
|
|
b .L36
|
|
.L34:
|
|
ldrh w4, [x3, 2]
|
|
cmp x7, x3
|
|
strh w4, [x6, 2]
|
|
strh w2, [x5, x12]
|
|
bne .L37
|
|
strh w1, [x7, 2]
|
|
b .L38
|
|
.L37:
|
|
ldrh w0, [x3, 2]
|
|
mov w2, 6
|
|
umull x0, w0, w2
|
|
strh w1, [x5, x0]
|
|
strh w1, [x3, 2]
|
|
.L31:
|
|
ret
|
|
.size _insert_free_list, .-_insert_free_list
|
|
.section .text._insert_data_list,"ax",@progbits
|
|
.align 2
|
|
.type _insert_data_list, %function
|
|
_insert_data_list:
|
|
adrp x3, .LANCHOR8
|
|
and w1, w1, 65535
|
|
ldrh w4, [x3, #:lo12:.LANCHOR8]
|
|
cmp w4, w1
|
|
bls .L61
|
|
mov x5, x3
|
|
ldrh w3, [x2]
|
|
mov w13, 6
|
|
ldr x12, [x0]
|
|
add w3, w3, 1
|
|
strh w3, [x2]
|
|
adrp x2, .LANCHOR4
|
|
umull x13, w1, w13
|
|
ldr x10, [x2, #:lo12:.LANCHOR4]
|
|
mov w2, -1
|
|
add x11, x10, x13
|
|
strh w2, [x11, 2]
|
|
strh w2, [x10, x13]
|
|
cbnz x12, .L42
|
|
str x11, [x0]
|
|
ret
|
|
.L42:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x2, .LANCHOR11
|
|
uxtw x3, w1
|
|
adrp x6, .LANCHOR10
|
|
add x29, sp, 0
|
|
ldr x15, [x2, #:lo12:.LANCHOR11]
|
|
adrp x2, .LANCHOR9
|
|
ldrh w4, [x11, 4]
|
|
ldr x14, [x2, #:lo12:.LANCHOR9]
|
|
stp x19, x20, [sp, 16]
|
|
ldrh w8, [x15, x3, lsl 1]
|
|
lsl x3, x3, 2
|
|
ldrh w16, [x6, #:lo12:.LANCHOR10]
|
|
ldr w2, [x14, x3]
|
|
mul w8, w8, w4
|
|
ldrh w3, [x14, x3]
|
|
ubfx x2, x2, 11, 8
|
|
and w3, w3, 2047
|
|
cbz w8, .L43
|
|
madd w2, w16, w2, w3
|
|
add w8, w8, w2, uxth
|
|
.L43:
|
|
sub x2, x12, x10
|
|
mov x3, -6148914691236517206
|
|
asr x2, x2, 1
|
|
movk x3, 0xaaab, lsl 0
|
|
cmp w4, 0
|
|
ldrh w19, [x5, #:lo12:.LANCHOR8]
|
|
csinv w8, w8, wzr, ne
|
|
mov x7, x12
|
|
mul x2, x2, x3
|
|
mov w4, 0
|
|
mov w20, 65535
|
|
mov w30, 6
|
|
and w2, w2, 65535
|
|
.L49:
|
|
add w4, w4, 1
|
|
and w4, w4, 65535
|
|
cmp w4, w19
|
|
bhi .L39
|
|
cmp w1, w2
|
|
beq .L39
|
|
uxtw x6, w2
|
|
ldrh w17, [x7, 4]
|
|
ldrh w3, [x15, x6, lsl 1]
|
|
lsl x6, x6, 2
|
|
ldr w5, [x14, x6]
|
|
mul w3, w3, w17
|
|
ldrh w6, [x14, x6]
|
|
ubfx x5, x5, 11, 8
|
|
and w6, w6, 2047
|
|
cbz w3, .L46
|
|
madd w5, w16, w5, w6
|
|
add w3, w3, w5, uxth
|
|
.L46:
|
|
cbz w17, .L47
|
|
cmp w8, w3
|
|
bls .L47
|
|
ldrh w3, [x7]
|
|
cmp w3, w20
|
|
bne .L48
|
|
strh w2, [x11, 2]
|
|
strh w1, [x7]
|
|
.L39:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L48:
|
|
umaddl x7, w3, w30, x10
|
|
mov w2, w3
|
|
b .L49
|
|
.L47:
|
|
ldrh w3, [x7, 2]
|
|
cmp x12, x7
|
|
strh w3, [x11, 2]
|
|
strh w2, [x10, x13]
|
|
bne .L50
|
|
strh w1, [x12, 2]
|
|
str x11, [x0]
|
|
b .L39
|
|
.L50:
|
|
ldrh w0, [x7, 2]
|
|
mov w2, 6
|
|
umull x0, w0, w2
|
|
strh w1, [x10, x0]
|
|
strh w1, [x7, 2]
|
|
b .L39
|
|
.L61:
|
|
ret
|
|
.size _insert_data_list, .-_insert_data_list
|
|
.section .text._list_update_data_list,"ax",@progbits
|
|
.align 2
|
|
.type _list_update_data_list, %function
|
|
_list_update_data_list:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w1, 65535
|
|
adrp x1, .LANCHOR12
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
ldr x1, [x1, #:lo12:.LANCHOR12]
|
|
ldrh w3, [x1, 16]
|
|
str x25, [sp, 64]
|
|
cmp w3, w19
|
|
beq .L63
|
|
ldrh w3, [x1, 48]
|
|
cmp w3, w19
|
|
beq .L63
|
|
ldrh w1, [x1, 80]
|
|
cmp w1, w19
|
|
beq .L63
|
|
adrp x1, .LANCHOR4
|
|
mov w22, 6
|
|
ldr x3, [x0]
|
|
mov x25, x1
|
|
umull x22, w19, w22
|
|
ldr x24, [x1, #:lo12:.LANCHOR4]
|
|
add x23, x24, x22
|
|
cmp x23, x3
|
|
beq .L63
|
|
mov x20, x0
|
|
ldrh w0, [x23, 2]
|
|
mov w1, 65535
|
|
mov x21, x2
|
|
cmp w0, w1
|
|
bne .L67
|
|
ldrh w1, [x24, x22]
|
|
cmp w1, w0
|
|
bne .L67
|
|
adrp x1, .LANCHOR13
|
|
adrp x0, .LC0
|
|
mov w2, 273
|
|
add x1, x1, :lo12:.LANCHOR13
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L67:
|
|
ldrh w1, [x23, 2]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L68
|
|
ldrh w0, [x24, x22]
|
|
cmp w0, w1
|
|
beq .L63
|
|
.L68:
|
|
adrp x0, .LANCHOR11
|
|
ubfiz x2, x19, 1, 16
|
|
mov x5, -6148914691236517206
|
|
mov w4, -1
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
movk x5, 0xaaab, lsl 0
|
|
ldrh w3, [x0, x2]
|
|
ldrh w2, [x23, 4]
|
|
cmp w2, 0
|
|
mul w3, w3, w2
|
|
mov w2, 6
|
|
umull x1, w1, w2
|
|
csel w3, w3, w4, ne
|
|
asr x2, x1, 1
|
|
mul x2, x2, x5
|
|
ldrh w0, [x0, x2, lsl 1]
|
|
ldr x2, [x25, #:lo12:.LANCHOR4]
|
|
add x1, x2, x1
|
|
ldrh w1, [x1, 4]
|
|
cmp w1, 0
|
|
mul w0, w0, w1
|
|
csel w0, w0, w4, ne
|
|
cmp w3, w0
|
|
bcs .L63
|
|
mov x2, x21
|
|
mov w1, w19
|
|
mov x0, x20
|
|
bl _list_remove_node
|
|
mov x2, x21
|
|
mov w1, w19
|
|
mov x0, x20
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
b _insert_data_list
|
|
.L63:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.size _list_update_data_list, .-_list_update_data_list
|
|
.section .text.nandc_de_cs.constprop.32,"ax",@progbits
|
|
.align 2
|
|
.type nandc_de_cs.constprop.32, %function
|
|
nandc_de_cs.constprop.32:
|
|
adrp x0, .LANCHOR7
|
|
ldr x1, [x0, #:lo12:.LANCHOR7]
|
|
ldr w0, [x1]
|
|
and w0, w0, -256
|
|
and w0, w0, -131073
|
|
str w0, [x1]
|
|
ret
|
|
.size nandc_de_cs.constprop.32, .-nandc_de_cs.constprop.32
|
|
.section .text.flash_read_status,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_status
|
|
.type flash_read_status, %function
|
|
flash_read_status:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
mov w0, 112
|
|
str w0, [x19, 8]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldr w0, [x19]
|
|
ldr x19, [sp, 16]
|
|
and w0, w0, 255
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size flash_read_status, .-flash_read_status
|
|
.section .text.toshiba_set_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_set_rr_para
|
|
.type toshiba_set_rr_para, %function
|
|
toshiba_set_rr_para:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
str x27, [sp, 80]
|
|
and w27, w1, 255
|
|
add w2, w27, 1
|
|
stp x21, x22, [sp, 32]
|
|
mov x21, x0
|
|
mov w0, 5
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR14
|
|
umull x2, w2, w0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x0, .LANCHOR15
|
|
add x20, x20, :lo12:.LANCHOR14
|
|
add x24, x0, :lo12:.LANCHOR15
|
|
stp x25, x26, [sp, 64]
|
|
adrp x23, .LANCHOR18
|
|
adrp x25, .LANCHOR16
|
|
adrp x26, .LANCHOR17
|
|
add x23, x23, :lo12:.LANCHOR18
|
|
add x25, x25, :lo12:.LANCHOR16
|
|
add x26, x26, :lo12:.LANCHOR17
|
|
add x20, x20, x2
|
|
add x24, x24, x2
|
|
mov x22, x0
|
|
mov x19, 0
|
|
.L78:
|
|
ldrb w0, [x23]
|
|
cmp w0, w19
|
|
bhi .L82
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x27, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L82:
|
|
mov w0, 85
|
|
str w0, [x21, 8]
|
|
add x0, x22, :lo12:.LANCHOR15
|
|
ldrsb w0, [x19, x0]
|
|
str w0, [x21, 4]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldrb w0, [x25]
|
|
cmp w0, 34
|
|
bne .L79
|
|
ldrsb w0, [x24, x19]
|
|
.L84:
|
|
add x19, x19, 1
|
|
str w0, [x21]
|
|
b .L78
|
|
.L79:
|
|
cmp w0, 35
|
|
bne .L81
|
|
ldrsb w0, [x20, x19]
|
|
b .L84
|
|
.L81:
|
|
ldrsb w0, [x26, w27, sxtw]
|
|
b .L84
|
|
.size toshiba_set_rr_para, .-toshiba_set_rr_para
|
|
.section .text.hynix_reconfig_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global hynix_reconfig_rr_para
|
|
.type hynix_reconfig_rr_para, %function
|
|
hynix_reconfig_rr_para:
|
|
adrp x1, .LANCHOR16
|
|
ldrb w1, [x1, #:lo12:.LANCHOR16]
|
|
sub w1, w1, #1
|
|
and w1, w1, 255
|
|
cmp w1, 7
|
|
bhi .L91
|
|
stp x29, x30, [sp, -32]!
|
|
and w0, w0, 255
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR6
|
|
sxtw x19, w0
|
|
ldr x1, [x20, #:lo12:.LANCHOR6]
|
|
add x1, x1, x19
|
|
ldrb w1, [x1, 120]
|
|
cbz w1, .L85
|
|
mov w1, 0
|
|
bl hynix_set_rr_para
|
|
ldr x0, [x20, #:lo12:.LANCHOR6]
|
|
add x0, x0, x19
|
|
strb wzr, [x0, 120]
|
|
.L85:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L91:
|
|
ret
|
|
.size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
|
|
.section .text.nand_flash_print_info,"ax",@progbits
|
|
.align 2
|
|
.global nand_flash_print_info
|
|
.type nand_flash_print_info, %function
|
|
nand_flash_print_info:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
adrp x19, .LANCHOR19
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L95
|
|
adrp x1, .LANCHOR20
|
|
adrp x0, .LC1
|
|
add x1, x1, :lo12:.LANCHOR20
|
|
add x0, x0, :lo12:.LC1
|
|
bl printf
|
|
.L95:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L96
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w6, [x0, 6]
|
|
ldrb w5, [x0, 5]
|
|
ldrb w4, [x0, 4]
|
|
ldrb w3, [x0, 3]
|
|
ldrb w2, [x0, 2]
|
|
ldrb w1, [x0, 1]
|
|
adrp x0, .LC2
|
|
add x0, x0, :lo12:.LC2
|
|
bl printf
|
|
.L96:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L97
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 8]
|
|
adrp x0, .LC3
|
|
add x0, x0, :lo12:.LC3
|
|
bl printf
|
|
.L97:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L98
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 9]
|
|
adrp x0, .LC4
|
|
add x0, x0, :lo12:.LC4
|
|
bl printf
|
|
.L98:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L99
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 10]
|
|
adrp x0, .LC5
|
|
add x0, x0, :lo12:.LC5
|
|
bl printf
|
|
.L99:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L100
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 12]
|
|
adrp x0, .LC6
|
|
add x0, x0, :lo12:.LC6
|
|
bl printf
|
|
.L100:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L101
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 13]
|
|
adrp x0, .LC7
|
|
add x0, x0, :lo12:.LC7
|
|
bl printf
|
|
.L101:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L102
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 14]
|
|
adrp x0, .LC8
|
|
add x0, x0, :lo12:.LC8
|
|
bl printf
|
|
.L102:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L103
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 23]
|
|
adrp x0, .LC9
|
|
add x0, x0, :lo12:.LC9
|
|
bl printf
|
|
.L103:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L104
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 18]
|
|
adrp x0, .LC10
|
|
add x0, x0, :lo12:.LC10
|
|
bl printf
|
|
.L104:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L105
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 19]
|
|
adrp x0, .LC11
|
|
add x0, x0, :lo12:.LC11
|
|
bl printf
|
|
.L105:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L106
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 20]
|
|
adrp x0, .LC12
|
|
add x0, x0, :lo12:.LC12
|
|
bl printf
|
|
.L106:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L107
|
|
adrp x0, .LANCHOR22
|
|
ldrb w1, [x0, #:lo12:.LANCHOR22]
|
|
adrp x0, .LC13
|
|
add x0, x0, :lo12:.LC13
|
|
bl printf
|
|
.L107:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L108
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 22]
|
|
adrp x0, .LC14
|
|
add x0, x0, :lo12:.LC14
|
|
bl printf
|
|
.L108:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L109
|
|
adrp x0, .LANCHOR23
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
adrp x0, .LC15
|
|
add x0, x0, :lo12:.LC15
|
|
bl printf
|
|
.L109:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L110
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 16]
|
|
adrp x0, .LC16
|
|
add x0, x0, :lo12:.LC16
|
|
and w1, w1, 1
|
|
bl printf
|
|
.L110:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L111
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC17
|
|
add x0, x0, :lo12:.LC17
|
|
ubfx x1, x1, 1, 1
|
|
bl printf
|
|
.L111:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L112
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC18
|
|
add x0, x0, :lo12:.LC18
|
|
ubfx x1, x1, 2, 1
|
|
bl printf
|
|
.L112:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L113
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC19
|
|
add x0, x0, :lo12:.LC19
|
|
ubfx x1, x1, 3, 1
|
|
bl printf
|
|
.L113:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L114
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC20
|
|
add x0, x0, :lo12:.LC20
|
|
ubfx x1, x1, 4, 1
|
|
bl printf
|
|
.L114:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L115
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC21
|
|
add x0, x0, :lo12:.LC21
|
|
ubfx x1, x1, 5, 1
|
|
bl printf
|
|
.L115:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L116
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC22
|
|
add x0, x0, :lo12:.LC22
|
|
ubfx x1, x1, 6, 1
|
|
bl printf
|
|
.L116:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L117
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC23
|
|
add x0, x0, :lo12:.LC23
|
|
ubfx x1, x1, 7, 1
|
|
bl printf
|
|
.L117:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L118
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 17]
|
|
adrp x0, .LC24
|
|
add x0, x0, :lo12:.LC24
|
|
and w1, w1, 1
|
|
bl printf
|
|
.L118:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L119
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC25
|
|
add x0, x0, :lo12:.LC25
|
|
ubfx x1, x1, 9, 1
|
|
bl printf
|
|
.L119:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L120
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrh w1, [x0, 16]
|
|
adrp x0, .LC26
|
|
add x0, x0, :lo12:.LC26
|
|
ubfx x1, x1, 10, 1
|
|
bl printf
|
|
.L120:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L121
|
|
adrp x0, .LANCHOR24
|
|
ldrb w2, [x0, #:lo12:.LANCHOR24]
|
|
adrp x0, .LANCHOR0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR0]
|
|
adrp x0, .LC27
|
|
add x0, x0, :lo12:.LC27
|
|
bl printf
|
|
.L121:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L122
|
|
adrp x0, .LANCHOR25
|
|
add x0, x0, :lo12:.LANCHOR25
|
|
ldrb w2, [x0, 11]
|
|
ldrb w1, [x0, 10]
|
|
adrp x0, .LC28
|
|
add x0, x0, :lo12:.LC28
|
|
bl printf
|
|
.L122:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L123
|
|
adrp x0, .LANCHOR25
|
|
add x0, x0, :lo12:.LANCHOR25
|
|
ldrb w2, [x0, 9]
|
|
ldrb w1, [x0, 8]
|
|
adrp x0, .LC29
|
|
add x0, x0, :lo12:.LC29
|
|
bl printf
|
|
.L123:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L94
|
|
adrp x0, .LANCHOR26
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ldrb w1, [x0, #:lo12:.LANCHOR26]
|
|
adrp x0, .LC30
|
|
add x0, x0, :lo12:.LC30
|
|
b printf
|
|
.L94:
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size nand_flash_print_info, .-nand_flash_print_info
|
|
.section .text.timer_delay_ns,"ax",@progbits
|
|
.align 2
|
|
.global timer_delay_ns
|
|
.type timer_delay_ns, %function
|
|
timer_delay_ns:
|
|
uxtw x0, w0
|
|
mov x1, 1000
|
|
add x0, x0, 999
|
|
udiv x0, x0, x1
|
|
b udelay
|
|
.size timer_delay_ns, .-timer_delay_ns
|
|
.section .text.nandc_set_ddr_para,"ax",@progbits
|
|
.align 2
|
|
.global nandc_set_ddr_para
|
|
.type nandc_set_ddr_para, %function
|
|
nandc_set_ddr_para:
|
|
adrp x1, .LANCHOR27
|
|
and w0, w0, 255
|
|
adrp x2, .LANCHOR7
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
ldr x2, [x2, #:lo12:.LANCHOR7]
|
|
cmp w1, 9
|
|
lsl w1, w0, 16
|
|
lsl w0, w0, 8
|
|
orr w1, w1, w0
|
|
orr w1, w1, 3
|
|
bne .L215
|
|
str w1, [x2, 80]
|
|
ret
|
|
.L215:
|
|
str w1, [x2, 304]
|
|
ret
|
|
.size nandc_set_ddr_para, .-nandc_set_ddr_para
|
|
.section .text.nandc_get_ddr_para,"ax",@progbits
|
|
.align 2
|
|
.global nandc_get_ddr_para
|
|
.type nandc_get_ddr_para, %function
|
|
nandc_get_ddr_para:
|
|
adrp x0, .LANCHOR27
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
adrp x0, .LANCHOR7
|
|
ldr x0, [x0, #:lo12:.LANCHOR7]
|
|
bne .L218
|
|
ldr w0, [x0, 80]
|
|
.L220:
|
|
ubfx x0, x0, 8, 8
|
|
ret
|
|
.L218:
|
|
ldr w0, [x0, 304]
|
|
b .L220
|
|
.size nandc_get_ddr_para, .-nandc_get_ddr_para
|
|
.section .text.nandc_set_if_mode,"ax",@progbits
|
|
.align 2
|
|
.global nandc_set_if_mode
|
|
.type nandc_set_if_mode, %function
|
|
nandc_set_if_mode:
|
|
adrp x1, .LANCHOR7
|
|
and w0, w0, 255
|
|
tst w0, 6
|
|
ldr x2, [x1, #:lo12:.LANCHOR7]
|
|
ldr w1, [x2]
|
|
beq .L222
|
|
tst x0, 4
|
|
orr w1, w1, 24576
|
|
adrp x0, .LANCHOR27
|
|
and w1, w1, -32769
|
|
orr w1, w1, 196608
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
orr w3, w1, 32768
|
|
csel w1, w3, w1, ne
|
|
cmp w0, 9
|
|
mov w0, 4099
|
|
movk w0, 0x10, lsl 16
|
|
bne .L224
|
|
mov w3, 8321
|
|
str w3, [x2, 8]
|
|
str w0, [x2, 80]
|
|
mov w0, 38
|
|
str w0, [x2, 84]
|
|
mov w0, 39
|
|
str w0, [x2, 84]
|
|
.L225:
|
|
str w1, [x2]
|
|
ret
|
|
.L224:
|
|
mov w3, 8322
|
|
str w3, [x2, 344]
|
|
str w0, [x2, 304]
|
|
mov w0, 38
|
|
str w0, [x2, 308]
|
|
mov w0, 39
|
|
str w0, [x2, 308]
|
|
b .L225
|
|
.L222:
|
|
and w1, w1, -8193
|
|
b .L225
|
|
.size nandc_set_if_mode, .-nandc_set_if_mode
|
|
.section .text.nandc_cs,"ax",@progbits
|
|
.align 2
|
|
.global nandc_cs
|
|
.type nandc_cs, %function
|
|
nandc_cs:
|
|
adrp x1, .LANCHOR7
|
|
mov w2, 1
|
|
lsl w0, w2, w0
|
|
ldr x3, [x1, #:lo12:.LANCHOR7]
|
|
ldr w1, [x3]
|
|
bfi w1, w0, 0, 8
|
|
str w1, [x3]
|
|
ret
|
|
.size nandc_cs, .-nandc_cs
|
|
.section .text.flash_wait_device_ready_raw,"ax",@progbits
|
|
.align 2
|
|
.global flash_wait_device_ready_raw
|
|
.type flash_wait_device_ready_raw, %function
|
|
flash_wait_device_ready_raw:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 255
|
|
adrp x0, .LANCHOR23
|
|
stp x25, x26, [sp, 64]
|
|
stp x21, x22, [sp, 32]
|
|
mov w20, w1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR23]
|
|
mov w26, w2
|
|
stp x23, x24, [sp, 48]
|
|
str x27, [sp, 80]
|
|
cmp w0, w19
|
|
bhi .L230
|
|
adrp x1, .LANCHOR28
|
|
adrp x0, .LC0
|
|
mov w2, 812
|
|
add x1, x1, :lo12:.LANCHOR28
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L230:
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
lsr w23, w20, 8
|
|
lsr w24, w20, 16
|
|
lsr w25, w20, 24
|
|
adrp x21, .LANCHOR30
|
|
ldrb w22, [x0, w19, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
and w20, w20, 255
|
|
add x21, x21, :lo12:.LANCHOR30
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
mov w27, 120
|
|
ubfiz x0, x22, 8, 8
|
|
add x19, x19, x0
|
|
.L236:
|
|
mov w0, w22
|
|
bl nandc_cs
|
|
str w27, [x19, 2056]
|
|
str w20, [x19, 2052]
|
|
ldrb w0, [x21]
|
|
str w23, [x19, 2052]
|
|
str w24, [x19, 2052]
|
|
cbz w0, .L231
|
|
str w25, [x19, 2052]
|
|
.L231:
|
|
mov x0, 1
|
|
bl udelay
|
|
ldr w2, [x19, 2048]
|
|
and w2, w2, 255
|
|
bl nandc_de_cs.constprop.32
|
|
bics wzr, w26, w2
|
|
bne .L236
|
|
cmp w2, 255
|
|
beq .L236
|
|
mov w0, w2
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
|
|
.section .text.flash_wait_device_ready,"ax",@progbits
|
|
.align 2
|
|
.global flash_wait_device_ready
|
|
.type flash_wait_device_ready, %function
|
|
flash_wait_device_ready:
|
|
mov w2, w1
|
|
adrp x1, .LANCHOR31
|
|
mov w5, 24
|
|
mov w4, 1
|
|
ldrb w6, [x1, #:lo12:.LANCHOR31]
|
|
tst x0, 50331648
|
|
sub w5, w5, w6
|
|
lsl w3, w4, w5
|
|
sub w3, w3, #1
|
|
lsl w4, w4, w6
|
|
sub w4, w4, #1
|
|
asr w5, w0, w5
|
|
and w4, w4, w5
|
|
and w1, w3, w0
|
|
and w4, w4, 255
|
|
bne .L241
|
|
adrp x0, .LANCHOR0
|
|
adrp x5, .LANCHOR1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L242
|
|
ldrb w0, [x5, #:lo12:.LANCHOR1]
|
|
cbz w0, .L241
|
|
.L242:
|
|
adrp x0, .LANCHOR2
|
|
ldrh w3, [x0, #:lo12:.LANCHOR2]
|
|
udiv w0, w1, w3
|
|
mul w0, w0, w3
|
|
sub w3, w1, w0
|
|
ldrb w1, [x5, #:lo12:.LANCHOR1]
|
|
cbz w1, .L243
|
|
add w1, w0, w3, lsl 1
|
|
.L241:
|
|
mov w0, w4
|
|
b flash_wait_device_ready_raw
|
|
.L243:
|
|
adrp x5, .LANCHOR3
|
|
add x5, x5, :lo12:.LANCHOR3
|
|
ldrh w3, [x5, w3, uxtw 1]
|
|
add w1, w3, w0
|
|
b .L241
|
|
.size flash_wait_device_ready, .-flash_wait_device_ready
|
|
.section .text.nandc_de_cs,"ax",@progbits
|
|
.align 2
|
|
.global nandc_de_cs
|
|
.type nandc_de_cs, %function
|
|
nandc_de_cs:
|
|
adrp x0, .LANCHOR7
|
|
ldr x1, [x0, #:lo12:.LANCHOR7]
|
|
ldr w0, [x1]
|
|
and w0, w0, -256
|
|
and w0, w0, -131073
|
|
str w0, [x1]
|
|
ret
|
|
.size nandc_de_cs, .-nandc_de_cs
|
|
.section .text.nandc_wait_flash_ready_no_delay,"ax",@progbits
|
|
.align 2
|
|
.global nandc_wait_flash_ready_no_delay
|
|
.type nandc_wait_flash_ready_no_delay, %function
|
|
nandc_wait_flash_ready_no_delay:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 34464
|
|
movk w19, 0x1, lsl 16
|
|
adrp x20, .LANCHOR7
|
|
.L253:
|
|
ldr x0, [x20, #:lo12:.LANCHOR7]
|
|
ldr w0, [x0]
|
|
str w0, [x29, 40]
|
|
ldr w0, [x29, 40]
|
|
tbnz x0, 9, .L254
|
|
mov x0, 1
|
|
bl udelay
|
|
subs w19, w19, #1
|
|
bne .L253
|
|
mov w0, -1
|
|
.L251:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L254:
|
|
mov w0, 0
|
|
b .L251
|
|
.size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
|
|
.section .text.zftl_flash_enter_slc_mode,"ax",@progbits
|
|
.align 2
|
|
.global zftl_flash_enter_slc_mode
|
|
.type zftl_flash_enter_slc_mode, %function
|
|
zftl_flash_enter_slc_mode:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and x19, x0, 255
|
|
adrp x0, .LANCHOR0
|
|
stp x21, x22, [sp, 32]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L257
|
|
adrp x1, .LANCHOR7
|
|
cmp w0, 1
|
|
ldr x20, [x1, #:lo12:.LANCHOR7]
|
|
bne .L260
|
|
adrp x0, .LANCHOR32+29
|
|
ldrb w0, [x0, #:lo12:.LANCHOR32+29]
|
|
cbz w0, .L257
|
|
.L276:
|
|
add x19, x19, 8
|
|
add x19, x20, x19, lsl 8
|
|
str w0, [x19, 8]
|
|
.L257:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L260:
|
|
cmp w0, 2
|
|
bne .L262
|
|
adrp x0, .LANCHOR33
|
|
add x0, x0, :lo12:.LANCHOR33
|
|
ldrb w1, [x0, x19]
|
|
cbz w1, .L257
|
|
adrp x21, .LANCHOR32
|
|
add x21, x21, :lo12:.LANCHOR32
|
|
strb wzr, [x0, x19]
|
|
ldrb w0, [x21, 29]
|
|
cbz w0, .L257
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldrb w0, [x21, 29]
|
|
b .L276
|
|
.L262:
|
|
cmp w0, 3
|
|
bne .L257
|
|
adrp x21, .LANCHOR33
|
|
sxtw x22, w19
|
|
add x21, x21, :lo12:.LANCHOR33
|
|
ldrb w0, [x21, x22]
|
|
cbz w0, .L257
|
|
ubfiz x19, x19, 8, 8
|
|
bl nandc_wait_flash_ready_no_delay
|
|
add x19, x20, x19
|
|
mov w0, 239
|
|
strb wzr, [x21, x22]
|
|
str w0, [x19, 2056]
|
|
mov w0, 145
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
str wzr, [x19, 2048]
|
|
mov w0, 1
|
|
str w0, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
mov x0, 1
|
|
str wzr, [x19, 2048]
|
|
bl udelay
|
|
bl nandc_wait_flash_ready_no_delay
|
|
mov w0, 218
|
|
ldp x21, x22, [sp, 32]
|
|
str w0, [x19, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
mov x0, 1
|
|
ldp x29, x30, [sp], 48
|
|
b udelay
|
|
.size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
|
|
.section .text.zftl_flash_exit_slc_mode,"ax",@progbits
|
|
.align 2
|
|
.global zftl_flash_exit_slc_mode
|
|
.type zftl_flash_exit_slc_mode, %function
|
|
zftl_flash_exit_slc_mode:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and x19, x0, 255
|
|
adrp x0, .LANCHOR0
|
|
stp x21, x22, [sp, 32]
|
|
str x23, [sp, 48]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L277
|
|
adrp x1, .LANCHOR7
|
|
cmp w0, 1
|
|
ldr x20, [x1, #:lo12:.LANCHOR7]
|
|
bne .L280
|
|
adrp x0, .LANCHOR32+30
|
|
ldrb w0, [x0, #:lo12:.LANCHOR32+30]
|
|
cbz w0, .L277
|
|
.L298:
|
|
add x19, x19, 8
|
|
add x19, x20, x19, lsl 8
|
|
str w0, [x19, 8]
|
|
.L277:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldr x23, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L280:
|
|
cmp w0, 2
|
|
bne .L282
|
|
adrp x0, .LANCHOR33
|
|
add x0, x0, :lo12:.LANCHOR33
|
|
ldrb w1, [x0, x19]
|
|
cbnz w1, .L277
|
|
adrp x21, .LANCHOR32
|
|
add x21, x21, :lo12:.LANCHOR32
|
|
mov w2, 4
|
|
ldrb w1, [x21, 12]
|
|
cmp w1, 2
|
|
csel w1, w1, w2, eq
|
|
strb w1, [x0, x19]
|
|
ldrb w0, [x21, 30]
|
|
cbz w0, .L277
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldrb w0, [x21, 30]
|
|
b .L298
|
|
.L282:
|
|
cmp w0, 3
|
|
bne .L277
|
|
adrp x21, .LANCHOR33
|
|
sxtw x23, w19
|
|
add x21, x21, :lo12:.LANCHOR33
|
|
ldrb w0, [x21, x23]
|
|
cbnz w0, .L277
|
|
adrp x22, .LANCHOR32
|
|
add x22, x22, :lo12:.LANCHOR32
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ubfiz x19, x19, 8, 8
|
|
add x19, x20, x19
|
|
mov w1, 4
|
|
ldrb w0, [x22, 12]
|
|
cmp w0, 2
|
|
csel w0, w0, w1, eq
|
|
strb w0, [x21, x23]
|
|
mov w0, 239
|
|
str w0, [x19, 2056]
|
|
mov w0, 145
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldrb w0, [x22, 7]
|
|
cmp w0, 9
|
|
mov w0, 1
|
|
bne .L285
|
|
str w0, [x19, 2048]
|
|
.L286:
|
|
str w0, [x19, 2048]
|
|
mov x0, 1
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
bl udelay
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldr x23, [sp, 48]
|
|
ldp x21, x22, [sp, 32]
|
|
mov w0, 223
|
|
str w0, [x19, 2056]
|
|
mov x0, 1
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 64
|
|
b udelay
|
|
.L285:
|
|
ldrb w1, [x21, x23]
|
|
str w1, [x19, 2048]
|
|
b .L286
|
|
.size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
|
|
.section .text.flash_start_page_read,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_page_read
|
|
.type flash_start_page_read, %function
|
|
flash_start_page_read:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR31
|
|
stp x19, x20, [sp, 16]
|
|
str x23, [sp, 48]
|
|
mov w19, 24
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov w20, 1
|
|
mov w22, w1
|
|
sub w23, w19, w0
|
|
lsl w20, w20, w0
|
|
sub w20, w20, #1
|
|
lsr w0, w1, w23
|
|
and w20, w20, w0
|
|
adrp x0, .LANCHOR23
|
|
and w20, w20, 255
|
|
mov x19, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
cmp w1, w20
|
|
bhi .L300
|
|
adrp x1, .LANCHOR34
|
|
adrp x0, .LC0
|
|
mov w2, 1013
|
|
add x1, x1, :lo12:.LANCHOR34
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L300:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR23]
|
|
cmp w0, w20
|
|
bls .L299
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
mov w19, 1
|
|
ubfx x4, x22, 24, 2
|
|
lsl w19, w19, w23
|
|
sub w19, w19, #1
|
|
and w19, w19, w22
|
|
ldrb w22, [x0, w20, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
adrp x23, .LANCHOR21
|
|
ldr x20, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w22
|
|
bl nandc_cs
|
|
cbnz w4, .L302
|
|
mov w0, w19
|
|
bl slc_phy_page_address_calc
|
|
mov w19, w0
|
|
adrp x0, .LANCHOR0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L303
|
|
mov w0, w22
|
|
bl zftl_flash_enter_slc_mode
|
|
.L303:
|
|
ldr x0, [x23, #:lo12:.LANCHOR21]
|
|
ldrb w1, [x0, 7]
|
|
cmp w1, 1
|
|
bne .L305
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 2
|
|
bne .L305
|
|
sxtw x0, w22
|
|
mov w1, 38
|
|
add x0, x0, 8
|
|
add x0, x20, x0, lsl 8
|
|
str w1, [x0, 8]
|
|
.L305:
|
|
ubfiz x0, x22, 8, 8
|
|
and w1, w19, 255
|
|
add x0, x20, x0
|
|
str wzr, [x0, 2056]
|
|
str wzr, [x0, 2052]
|
|
str wzr, [x0, 2052]
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 8
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 16
|
|
str w1, [x0, 2052]
|
|
adrp x1, .LANCHOR30
|
|
ldrb w1, [x1, #:lo12:.LANCHOR30]
|
|
cbz w1, .L306
|
|
lsr w19, w19, 24
|
|
str w19, [x0, 2052]
|
|
.L306:
|
|
str w21, [x0, 2056]
|
|
.L299:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldr x23, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L302:
|
|
ldr x0, [x23, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L304
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L304
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L304
|
|
sxtw x0, w22
|
|
add x0, x0, 8
|
|
add x0, x20, x0, lsl 8
|
|
str w4, [x0, 8]
|
|
b .L303
|
|
.L304:
|
|
mov w0, w22
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L303
|
|
.size flash_start_page_read, .-flash_start_page_read
|
|
.section .text.nandc_wait_flash_ready,"ax",@progbits
|
|
.align 2
|
|
.global nandc_wait_flash_ready
|
|
.type nandc_wait_flash_ready, %function
|
|
nandc_wait_flash_ready:
|
|
stp x29, x30, [sp, -48]!
|
|
mov x0, 1
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 34464
|
|
movk w19, 0x1, lsl 16
|
|
adrp x20, .LANCHOR7
|
|
bl udelay
|
|
.L316:
|
|
ldr x0, [x20, #:lo12:.LANCHOR7]
|
|
ldr w0, [x0]
|
|
str w0, [x29, 40]
|
|
ldr w0, [x29, 40]
|
|
tbnz x0, 9, .L317
|
|
mov x0, 1
|
|
bl udelay
|
|
subs w19, w19, #1
|
|
bne .L316
|
|
mov w0, -1
|
|
.L314:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L317:
|
|
mov w0, 0
|
|
b .L314
|
|
.size nandc_wait_flash_ready, .-nandc_wait_flash_ready
|
|
.section .text.sandisk_set_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global sandisk_set_rr_para
|
|
.type sandisk_set_rr_para, %function
|
|
sandisk_set_rr_para:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x0
|
|
mov w0, 239
|
|
and w19, w1, 255
|
|
str w0, [x20, 8]
|
|
mov w0, 17
|
|
str w0, [x20, 4]
|
|
mov x0, 1
|
|
bl udelay
|
|
adrp x0, .LANCHOR18
|
|
add w1, w19, 1
|
|
adrp x2, .LANCHOR14
|
|
add x2, x2, :lo12:.LANCHOR14
|
|
ldrb w3, [x0, #:lo12:.LANCHOR18]
|
|
adrp x0, .LANCHOR16
|
|
ldrb w4, [x0, #:lo12:.LANCHOR16]
|
|
mov w0, 5
|
|
umull x1, w1, w0
|
|
adrp x0, .LANCHOR15
|
|
add x0, x0, :lo12:.LANCHOR15
|
|
add x2, x2, x1
|
|
add x1, x0, x1
|
|
mov x0, 0
|
|
.L321:
|
|
cmp w3, w0
|
|
bhi .L324
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
b nandc_wait_flash_ready
|
|
.L324:
|
|
cmp w4, 67
|
|
bne .L322
|
|
ldrsb w5, [x1, x0]
|
|
.L326:
|
|
add x0, x0, 1
|
|
str w5, [x20]
|
|
b .L321
|
|
.L322:
|
|
ldrsb w5, [x2, x0]
|
|
b .L326
|
|
.size sandisk_set_rr_para, .-sandisk_set_rr_para
|
|
.section .text.toshiba_3d_set_tlc_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_3d_set_tlc_rr_para
|
|
.type toshiba_3d_set_tlc_rr_para, %function
|
|
toshiba_3d_set_tlc_rr_para:
|
|
stp x29, x30, [sp, -48]!
|
|
and x2, x1, 255
|
|
mov x1, 7
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
str x21, [sp, 32]
|
|
mov w21, 213
|
|
madd x1, x2, x1, x1
|
|
mov w0, -119
|
|
str w21, [x19, 8]
|
|
str wzr, [x19, 4]
|
|
str w0, [x19, 4]
|
|
adrp x0, .LANCHOR37
|
|
add x0, x0, :lo12:.LANCHOR37
|
|
add x20, x0, x1
|
|
ldrsb w0, [x0, x1]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 1]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 2]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 3]
|
|
str w0, [x19]
|
|
bl nandc_wait_flash_ready
|
|
str w21, [x19, 8]
|
|
str wzr, [x19, 4]
|
|
mov w0, -118
|
|
str w0, [x19, 4]
|
|
ldrsb w0, [x20, 4]
|
|
ldr x21, [sp, 32]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 5]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 6]
|
|
str w0, [x19]
|
|
str wzr, [x19]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b nandc_wait_flash_ready
|
|
.size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
|
|
.section .text.toshiba_3d_set_slc_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_3d_set_slc_rr_para
|
|
.type toshiba_3d_set_slc_rr_para, %function
|
|
toshiba_3d_set_slc_rr_para:
|
|
mov w2, 213
|
|
str w2, [x0, 8]
|
|
str wzr, [x0, 4]
|
|
mov w2, -117
|
|
str w2, [x0, 4]
|
|
adrp x2, .LANCHOR38
|
|
add x2, x2, :lo12:.LANCHOR38
|
|
add x1, x2, x1, uxtb
|
|
ldrsb w1, [x1, 1]
|
|
str w1, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
b nandc_wait_flash_ready
|
|
.size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
|
|
.section .text.toshiba_tlc_set_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_tlc_set_rr_para
|
|
.type toshiba_tlc_set_rr_para, %function
|
|
toshiba_tlc_set_rr_para:
|
|
stp x29, x30, [sp, -48]!
|
|
uxtw x1, w1
|
|
add x29, sp, 0
|
|
str x21, [sp, 32]
|
|
mov w21, 239
|
|
stp x19, x20, [sp, 16]
|
|
cbz w2, .L331
|
|
mov x19, x0
|
|
mov x2, 7
|
|
mov w0, 18
|
|
mul x1, x1, x2
|
|
str w21, [x19, 8]
|
|
str w0, [x19, 4]
|
|
adrp x0, .LANCHOR39
|
|
add x0, x0, :lo12:.LANCHOR39
|
|
add x20, x0, x1
|
|
ldrb w0, [x0, x1]
|
|
str w0, [x19]
|
|
ldrb w0, [x20, 1]
|
|
str w0, [x19]
|
|
ldrb w0, [x20, 2]
|
|
str w0, [x19]
|
|
ldrb w0, [x20, 3]
|
|
str w0, [x19]
|
|
bl nandc_wait_flash_ready
|
|
str w21, [x19, 8]
|
|
mov w0, 19
|
|
str w0, [x19, 4]
|
|
ldrb w0, [x20, 4]
|
|
str w0, [x19]
|
|
ldrb w0, [x20, 5]
|
|
str w0, [x19]
|
|
ldrb w0, [x20, 6]
|
|
str w0, [x19]
|
|
str wzr, [x19]
|
|
.L332:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
b nandc_wait_flash_ready
|
|
.L331:
|
|
str w21, [x0, 8]
|
|
mov w2, 20
|
|
str w2, [x0, 4]
|
|
adrp x2, .LANCHOR40
|
|
add x2, x2, :lo12:.LANCHOR40
|
|
ldrb w1, [x2, x1]
|
|
str w1, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
b .L332
|
|
.size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
|
|
.section .text.ymtc_3d_set_tlc_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global ymtc_3d_set_tlc_rr_para
|
|
.type ymtc_3d_set_tlc_rr_para, %function
|
|
ymtc_3d_set_tlc_rr_para:
|
|
stp x29, x30, [sp, -48]!
|
|
and x1, x1, 255
|
|
mov x2, 7
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
str x21, [sp, 32]
|
|
mul x1, x1, x2
|
|
mov w21, 239
|
|
mov w0, 160
|
|
str w21, [x19, 8]
|
|
str w0, [x19, 4]
|
|
adrp x0, .LANCHOR41
|
|
add x0, x0, :lo12:.LANCHOR41
|
|
add x20, x0, x1
|
|
ldrsb w0, [x0, x1]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 4]
|
|
str w0, [x19]
|
|
str wzr, [x19]
|
|
str wzr, [x19]
|
|
bl nandc_wait_flash_ready
|
|
str w21, [x19, 8]
|
|
mov w0, 161
|
|
str w0, [x19, 4]
|
|
ldrsb w0, [x20, 1]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 3]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 5]
|
|
str w0, [x19]
|
|
str wzr, [x19]
|
|
bl nandc_wait_flash_ready
|
|
str w21, [x19, 8]
|
|
mov w0, 162
|
|
str w0, [x19, 4]
|
|
ldrsb w0, [x20, 2]
|
|
ldr x21, [sp, 32]
|
|
str w0, [x19]
|
|
ldrsb w0, [x20, 6]
|
|
str w0, [x19]
|
|
str wzr, [x19]
|
|
str wzr, [x19]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b nandc_wait_flash_ready
|
|
.size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
|
|
.section .text.ymtc_3d_set_slc_rr_para,"ax",@progbits
|
|
.align 2
|
|
.global ymtc_3d_set_slc_rr_para
|
|
.type ymtc_3d_set_slc_rr_para, %function
|
|
ymtc_3d_set_slc_rr_para:
|
|
mov w2, 239
|
|
str w2, [x0, 8]
|
|
mov w2, 163
|
|
and x1, x1, 255
|
|
str w2, [x0, 4]
|
|
adrp x2, .LANCHOR42
|
|
add x2, x2, :lo12:.LANCHOR42
|
|
ldrsb w1, [x2, x1]
|
|
str w1, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
str wzr, [x0]
|
|
b nandc_wait_flash_ready
|
|
.size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
|
|
.section .text.flash_erase_duplane_block,"ax",@progbits
|
|
.align 2
|
|
.global flash_erase_duplane_block
|
|
.type flash_erase_duplane_block, %function
|
|
flash_erase_duplane_block:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
adrp x0, .LANCHOR23
|
|
stp x19, x20, [sp, 16]
|
|
stp x23, x24, [sp, 48]
|
|
and w24, w1, 255
|
|
str x25, [sp, 64]
|
|
mov w21, w2
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
mov w20, w3
|
|
mov x19, x0
|
|
cmp w1, w22
|
|
bhi .L338
|
|
adrp x1, .LANCHOR43
|
|
adrp x0, .LC0
|
|
mov w2, 695
|
|
add x1, x1, :lo12:.LANCHOR43
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L338:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR23]
|
|
cmp w0, w22
|
|
bls .L347
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w22, [x0, w22, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x25, [x0, #:lo12:.LANCHOR7]
|
|
adrp x0, .LANCHOR19
|
|
and x19, x22, 255
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
add x23, x19, 8
|
|
add x23, x25, x23, lsl 8
|
|
tbz x0, 4, .L340
|
|
adrp x0, .LC31
|
|
mov w3, w20
|
|
mov w2, w21
|
|
mov w1, w22
|
|
add x0, x0, :lo12:.LC31
|
|
bl printf
|
|
.L340:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w22
|
|
bl nandc_cs
|
|
mov w0, w22
|
|
cbnz w24, .L341
|
|
bl zftl_flash_enter_slc_mode
|
|
.L342:
|
|
add x19, x25, x19, lsl 8
|
|
mov w0, 96
|
|
str w0, [x19, 2056]
|
|
and w0, w21, 255
|
|
str w0, [x19, 2052]
|
|
lsr w0, w21, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w21, 16
|
|
str w0, [x19, 2052]
|
|
adrp x0, .LANCHOR30
|
|
mov x24, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR30]
|
|
cbz w1, .L343
|
|
lsr w0, w21, 24
|
|
str w0, [x19, 2052]
|
|
.L343:
|
|
adrp x0, .LANCHOR44
|
|
ldrb w0, [x0, #:lo12:.LANCHOR44]
|
|
cbnz w0, .L348
|
|
mov w0, 208
|
|
str w0, [x19, 2056]
|
|
mov w22, 5
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x23
|
|
bl flash_read_status
|
|
and w22, w0, w22
|
|
.L344:
|
|
mov w0, 96
|
|
str w0, [x19, 2056]
|
|
and w0, w20, 255
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 16
|
|
str w0, [x19, 2052]
|
|
ldrb w0, [x24, #:lo12:.LANCHOR30]
|
|
cbz w0, .L345
|
|
lsr w20, w20, 24
|
|
str w20, [x19, 2052]
|
|
.L345:
|
|
mov w0, 208
|
|
str w0, [x19, 2056]
|
|
mov w19, 5
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x23
|
|
bl flash_read_status
|
|
mov w2, w0
|
|
bl nandc_de_cs.constprop.32
|
|
and w19, w2, w19
|
|
orr w19, w19, w22
|
|
cbz w19, .L346
|
|
adrp x0, .LC32
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC32
|
|
bl printf
|
|
.L346:
|
|
mov w0, w19
|
|
.L337:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L341:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L342
|
|
.L348:
|
|
mov w22, 0
|
|
b .L344
|
|
.L347:
|
|
mov w0, -1
|
|
b .L337
|
|
.size flash_erase_duplane_block, .-flash_erase_duplane_block
|
|
.section .text.flash_erase_block_en,"ax",@progbits
|
|
.align 2
|
|
.global flash_erase_block_en
|
|
.type flash_erase_block_en, %function
|
|
flash_erase_block_en:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
adrp x0, .LANCHOR31
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 24
|
|
stp x23, x24, [sp, 48]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
and w24, w1, 255
|
|
stp x25, x26, [sp, 64]
|
|
mov w23, w2
|
|
sub w0, w19, w0
|
|
mov w19, 1
|
|
lsl w19, w19, w0
|
|
adrp x0, .LANCHOR23
|
|
sub w19, w19, #1
|
|
mov x20, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
and w19, w19, w2
|
|
cmp w1, w22
|
|
bhi .L363
|
|
adrp x1, .LANCHOR45
|
|
adrp x0, .LC0
|
|
mov w2, 757
|
|
add x1, x1, :lo12:.LANCHOR45
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L363:
|
|
ldrb w0, [x20, #:lo12:.LANCHOR23]
|
|
cmp w0, w22
|
|
bls .L370
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w21, [x0, w22, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x26, [x0, #:lo12:.LANCHOR7]
|
|
adrp x0, .LANCHOR19
|
|
and x20, x21, 255
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
add x25, x20, 8
|
|
add x25, x26, x25, lsl 8
|
|
tbz x0, 4, .L365
|
|
adrp x0, .LC33
|
|
mov w3, w24
|
|
mov w2, w23
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC33
|
|
bl printf
|
|
.L365:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w21
|
|
bl nandc_cs
|
|
mov w0, w21
|
|
cbnz w24, .L366
|
|
bl zftl_flash_enter_slc_mode
|
|
.L367:
|
|
add x0, x26, x20, lsl 8
|
|
mov w1, 96
|
|
str w1, [x0, 2056]
|
|
and w1, w19, 255
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 8
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 16
|
|
str w1, [x0, 2052]
|
|
adrp x1, .LANCHOR30
|
|
ldrb w1, [x1, #:lo12:.LANCHOR30]
|
|
cbz w1, .L368
|
|
lsr w19, w19, 24
|
|
str w19, [x0, 2052]
|
|
.L368:
|
|
mov w1, 208
|
|
str w1, [x0, 2056]
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x25
|
|
bl flash_read_status
|
|
mov w3, w0
|
|
bl nandc_de_cs.constprop.32
|
|
mov w0, 5
|
|
ands w3, w3, w0
|
|
beq .L369
|
|
adrp x0, .LANCHOR2
|
|
mov w1, w22
|
|
ldrh w2, [x0, #:lo12:.LANCHOR2]
|
|
adrp x0, .LC34
|
|
add x0, x0, :lo12:.LC34
|
|
udiv w2, w23, w2
|
|
bl printf
|
|
mov w3, -1
|
|
.L369:
|
|
mov w0, w3
|
|
.L362:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L366:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L367
|
|
.L370:
|
|
mov w0, -1
|
|
b .L362
|
|
.size flash_erase_block_en, .-flash_erase_block_en
|
|
.section .text.flash_erase_block,"ax",@progbits
|
|
.align 2
|
|
.global flash_erase_block
|
|
.type flash_erase_block, %function
|
|
flash_erase_block:
|
|
mov w2, w1
|
|
mov w1, 0
|
|
b flash_erase_block_en
|
|
.size flash_erase_block, .-flash_erase_block
|
|
.section .text.flash_erase_all,"ax",@progbits
|
|
.align 2
|
|
.global flash_erase_all
|
|
.type flash_erase_all, %function
|
|
flash_erase_all:
|
|
stp x29, x30, [sp, -80]!
|
|
adrp x0, .LANCHOR32
|
|
add x0, x0, :lo12:.LANCHOR32
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x23, .LANCHOR2
|
|
stp x21, x22, [sp, 32]
|
|
add x23, x23, :lo12:.LANCHOR2
|
|
ldrh w20, [x0, 14]
|
|
adrp x22, .LANCHOR23
|
|
str x25, [sp, 64]
|
|
add x22, x22, :lo12:.LANCHOR23
|
|
adrp x24, .LANCHOR29
|
|
ldrb w1, [x0, 13]
|
|
mul w20, w20, w1
|
|
and w20, w20, 65535
|
|
.L383:
|
|
ldrb w0, [x22]
|
|
cmp w0, w19
|
|
bhi .L386
|
|
ldp x19, x20, [sp, 16]
|
|
mov w1, 0
|
|
ldp x21, x22, [sp, 32]
|
|
adrp x0, .LC35
|
|
ldp x23, x24, [sp, 48]
|
|
add x0, x0, :lo12:.LC35
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
b printf
|
|
.L386:
|
|
add x0, x24, :lo12:.LANCHOR29
|
|
mov w21, 0
|
|
ldrb w25, [x0, w19, sxtw]
|
|
.L384:
|
|
cmp w20, w21, uxth
|
|
bhi .L385
|
|
add w19, w19, 1
|
|
and w19, w19, 65535
|
|
b .L383
|
|
.L385:
|
|
ldrh w1, [x23]
|
|
mov w0, w25
|
|
mul w1, w1, w21
|
|
add w21, w21, 1
|
|
bl flash_erase_block
|
|
b .L384
|
|
.size flash_erase_all, .-flash_erase_all
|
|
.section .text.flash_start_plane_read,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_plane_read
|
|
.type flash_start_plane_read, %function
|
|
flash_start_plane_read:
|
|
stp x29, x30, [sp, -96]!
|
|
adrp x2, .LANCHOR31
|
|
mov w3, 24
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
ldrb w19, [x2, #:lo12:.LANCHOR31]
|
|
mov w2, 1
|
|
stp x21, x22, [sp, 32]
|
|
ubfx x22, x0, 24, 2
|
|
sub w3, w3, w19
|
|
stp x23, x24, [sp, 48]
|
|
lsl w19, w2, w19
|
|
sub w19, w19, #1
|
|
lsl w20, w2, w3
|
|
sub w20, w20, #1
|
|
and w23, w20, w0
|
|
lsr w3, w0, w3
|
|
adrp x0, .LANCHOR23
|
|
and w19, w19, w3
|
|
stp x25, x26, [sp, 64]
|
|
and w19, w19, 255
|
|
ldrb w0, [x0, #:lo12:.LANCHOR23]
|
|
and w20, w20, w1
|
|
stp x27, x28, [sp, 80]
|
|
cmp w0, w19
|
|
bhi .L389
|
|
adrp x1, .LANCHOR46
|
|
adrp x0, .LC0
|
|
mov w2, 1148
|
|
add x1, x1, :lo12:.LANCHOR46
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L389:
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
adrp x25, .LANCHOR21
|
|
ldrb w21, [x0, w19, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x24, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w21
|
|
bl nandc_cs
|
|
cbnz w22, .L390
|
|
mov w0, w23
|
|
bl slc_phy_page_address_calc
|
|
mov w23, w0
|
|
mov w0, w20
|
|
bl slc_phy_page_address_calc
|
|
mov w20, w0
|
|
adrp x0, .LANCHOR0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L391
|
|
mov w0, w21
|
|
bl zftl_flash_enter_slc_mode
|
|
.L391:
|
|
adrp x0, .LANCHOR25
|
|
add x1, x0, :lo12:.LANCHOR25
|
|
and x19, x21, 255
|
|
and w4, w23, 255
|
|
lsr w3, w23, 8
|
|
and w28, w20, 255
|
|
ldrb w2, [x1, 16]
|
|
lsr w27, w20, 8
|
|
lsr w26, w20, 16
|
|
cmp w2, 1
|
|
lsr w2, w23, 16
|
|
bne .L393
|
|
add x19, x24, x19, lsl 8
|
|
ldrb w1, [x1, 8]
|
|
str w1, [x19, 2056]
|
|
adrp x1, .LANCHOR30
|
|
str wzr, [x19, 2052]
|
|
mov x21, x1
|
|
str wzr, [x19, 2052]
|
|
str w4, [x19, 2052]
|
|
str w3, [x19, 2052]
|
|
str w2, [x19, 2052]
|
|
ldrb w2, [x1, #:lo12:.LANCHOR30]
|
|
cbz w2, .L394
|
|
lsr w23, w23, 24
|
|
str w23, [x19, 2052]
|
|
.L394:
|
|
add x0, x0, :lo12:.LANCHOR25
|
|
ldrb w0, [x0, 9]
|
|
str w0, [x19, 2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x25, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L395
|
|
cbz w22, .L395
|
|
str w22, [x19, 2056]
|
|
.L395:
|
|
str wzr, [x19, 2056]
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w28, [x19, 2052]
|
|
ldrb w0, [x21, #:lo12:.LANCHOR30]
|
|
str w27, [x19, 2052]
|
|
str w26, [x19, 2052]
|
|
cbz w0, .L416
|
|
lsr w20, w20, 24
|
|
str w20, [x19, 2052]
|
|
.L416:
|
|
ldp x21, x22, [sp, 32]
|
|
mov w0, 48
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
str w0, [x19, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L390:
|
|
ldr x0, [x25, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L392
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L392
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L392
|
|
sxtw x0, w21
|
|
add x0, x0, 8
|
|
add x0, x24, x0, lsl 8
|
|
str w22, [x0, 8]
|
|
b .L391
|
|
.L392:
|
|
mov w0, w21
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L391
|
|
.L393:
|
|
ldr x1, [x25, #:lo12:.LANCHOR21]
|
|
ldrb w5, [x1, 7]
|
|
cmp w5, 1
|
|
bne .L398
|
|
ldrb w5, [x1, 12]
|
|
cmp w5, 2
|
|
bne .L398
|
|
add x21, x21, 8
|
|
mov w5, 38
|
|
add x21, x24, x21, lsl 8
|
|
str w5, [x21, 8]
|
|
.L398:
|
|
add x5, x0, :lo12:.LANCHOR25
|
|
add x19, x24, x19, lsl 8
|
|
ldrb w5, [x5, 8]
|
|
str w5, [x19, 2056]
|
|
str w4, [x19, 2052]
|
|
str w3, [x19, 2052]
|
|
str w2, [x19, 2052]
|
|
ldrb w1, [x1, 12]
|
|
cmp w1, 3
|
|
bne .L399
|
|
cbz w22, .L399
|
|
str w22, [x19, 2056]
|
|
.L399:
|
|
add x0, x0, :lo12:.LANCHOR25
|
|
ldrb w0, [x0, 9]
|
|
str w0, [x19, 2056]
|
|
str w28, [x19, 2052]
|
|
str w27, [x19, 2052]
|
|
str w26, [x19, 2052]
|
|
b .L416
|
|
.size flash_start_plane_read, .-flash_start_plane_read
|
|
.section .text.flash_set_interface_mode,"ax",@progbits
|
|
.align 2
|
|
.global flash_set_interface_mode
|
|
.type flash_set_interface_mode, %function
|
|
flash_set_interface_mode:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR47
|
|
stp x19, x20, [sp, 16]
|
|
adrp x21, .LANCHOR19
|
|
stp x23, x24, [sp, 48]
|
|
adrp x20, .LANCHOR48
|
|
mov w23, w0
|
|
add x22, x22, :lo12:.LANCHOR47
|
|
add x20, x20, :lo12:.LANCHOR48
|
|
add x21, x21, :lo12:.LANCHOR19
|
|
str x25, [sp, 64]
|
|
mov x25, 0
|
|
.L430:
|
|
adrp x0, .LANCHOR7
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
lsl x0, x25, 3
|
|
ldrb w24, [x0, x22]
|
|
cmp w24, 69
|
|
beq .L418
|
|
add w0, w24, 119
|
|
cmp w24, 44
|
|
and w1, w0, 255
|
|
cset w2, eq
|
|
cmp w1, 18
|
|
bhi .L431
|
|
mov x0, 32769
|
|
movk x0, 0x4, lsl 16
|
|
lsr x0, x0, x1
|
|
mvn x0, x0
|
|
.L419:
|
|
and w0, w0, 1
|
|
eor w0, w0, 1
|
|
orr w0, w2, w0
|
|
cbz w0, .L420
|
|
.L418:
|
|
ldrb w1, [x20]
|
|
cmp w23, 1
|
|
bne .L421
|
|
tbz x1, 0, .L420
|
|
ldr w0, [x21]
|
|
tbz x0, 12, .L422
|
|
adrp x0, .LC36
|
|
add x0, x0, :lo12:.LC36
|
|
bl printf
|
|
.L422:
|
|
add x0, x19, x25, lsl 8
|
|
mov w1, 239
|
|
cmp w24, 44
|
|
str w1, [x0, 2056]
|
|
mov w1, 137
|
|
ccmp w24, w1, 4, ne
|
|
mov w1, 1
|
|
bne .L423
|
|
.L454:
|
|
str w1, [x0, 2052]
|
|
mov w1, 5
|
|
.L453:
|
|
str w1, [x0, 2048]
|
|
.L428:
|
|
str wzr, [x0, 2048]
|
|
str wzr, [x0, 2048]
|
|
str wzr, [x0, 2048]
|
|
.L420:
|
|
add x25, x25, 1
|
|
cmp x25, 4
|
|
bne .L430
|
|
bl nandc_wait_flash_ready
|
|
ldr x25, [sp, 64]
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L431:
|
|
mov x0, 1
|
|
b .L419
|
|
.L423:
|
|
cmp w24, 155
|
|
beq .L454
|
|
mov w2, 128
|
|
str w2, [x0, 2052]
|
|
b .L453
|
|
.L421:
|
|
tbz x1, 2, .L420
|
|
ldr w0, [x21]
|
|
tbz x0, 12, .L426
|
|
adrp x0, .LC37
|
|
add x0, x0, :lo12:.LC37
|
|
bl printf
|
|
.L426:
|
|
add x0, x19, x25, lsl 8
|
|
mov w1, 239
|
|
cmp w24, 44
|
|
str w1, [x0, 2056]
|
|
mov w1, 137
|
|
ccmp w24, w1, 4, ne
|
|
bne .L427
|
|
mov w1, 1
|
|
str w1, [x0, 2052]
|
|
mov w1, 35
|
|
b .L453
|
|
.L427:
|
|
cmp w24, 155
|
|
bne .L429
|
|
mov w1, 1
|
|
str w1, [x0, 2052]
|
|
mov w1, 37
|
|
b .L453
|
|
.L429:
|
|
mov w1, 128
|
|
str w1, [x0, 2052]
|
|
str wzr, [x0, 2048]
|
|
b .L428
|
|
.size flash_set_interface_mode, .-flash_set_interface_mode
|
|
.section .text.mt_auto_read_calibration_config,"ax",@progbits
|
|
.align 2
|
|
.type mt_auto_read_calibration_config, %function
|
|
mt_auto_read_calibration_config:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, w1
|
|
and w19, w0, 255
|
|
bl nandc_wait_flash_ready
|
|
adrp x1, .LANCHOR7
|
|
ubfiz x0, x19, 8, 8
|
|
ldr x19, [x1, #:lo12:.LANCHOR7]
|
|
add x19, x19, x0
|
|
mov w0, 239
|
|
str w0, [x19, 2056]
|
|
mov w0, 150
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
str w20, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
|
|
.section .text.flash_reset,"ax",@progbits
|
|
.align 2
|
|
.global flash_reset
|
|
.type flash_reset, %function
|
|
flash_reset:
|
|
adrp x1, .LANCHOR7
|
|
ubfiz x0, x0, 8, 8
|
|
add x0, x0, 2048
|
|
ldr x1, [x1, #:lo12:.LANCHOR7]
|
|
add x1, x1, x0
|
|
mov w0, 255
|
|
str w0, [x1, 8]
|
|
b nandc_wait_flash_ready
|
|
.size flash_reset, .-flash_reset
|
|
.section .text.flash_read_id,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_id
|
|
.type flash_read_id, %function
|
|
flash_read_id:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
str x21, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR7
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x1
|
|
ldr x20, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w21
|
|
bl flash_reset
|
|
mov w0, w21
|
|
bl nandc_cs
|
|
ubfiz x0, x21, 8, 8
|
|
add x20, x20, x0
|
|
mov w0, 144
|
|
str w0, [x20, 2056]
|
|
mov x0, 1
|
|
str wzr, [x20, 2052]
|
|
bl udelay
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 1]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 2]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 3]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 4]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 5]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 6]
|
|
ldr w0, [x20, 2048]
|
|
strb w0, [x19, 7]
|
|
bl nandc_de_cs.constprop.32
|
|
ldrb w2, [x19]
|
|
sub w0, w2, #1
|
|
and w0, w0, 255
|
|
cmp w0, 253
|
|
bhi .L458
|
|
ldrb w7, [x19, 5]
|
|
add w1, w21, 1
|
|
ldrb w6, [x19, 4]
|
|
adrp x0, .LC38
|
|
ldrb w5, [x19, 3]
|
|
add x0, x0, :lo12:.LC38
|
|
ldrb w4, [x19, 2]
|
|
ldrb w3, [x19, 1]
|
|
ldr x21, [sp, 32]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b printf
|
|
.L458:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size flash_read_id, .-flash_read_id
|
|
.section .text.flash_read_spare,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_spare
|
|
.type flash_read_spare, %function
|
|
flash_read_spare:
|
|
stp x29, x30, [sp, -32]!
|
|
ubfiz x0, x0, 8, 8
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x2
|
|
adrp x2, .LANCHOR32+9
|
|
ldrb w3, [x2, #:lo12:.LANCHOR32+9]
|
|
adrp x2, .LANCHOR7
|
|
ldr x19, [x2, #:lo12:.LANCHOR7]
|
|
lsl w3, w3, 9
|
|
add x19, x19, x0
|
|
and w0, w1, 255
|
|
str wzr, [x19, 2056]
|
|
str w3, [x19, 2052]
|
|
lsr w3, w3, 8
|
|
str w3, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w1, 8
|
|
str w0, [x19, 2052]
|
|
lsr w1, w1, 16
|
|
str w1, [x19, 2052]
|
|
mov w0, 48
|
|
str w0, [x19, 2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr w0, [x19, 2048]
|
|
strb w0, [x20]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size flash_read_spare, .-flash_read_spare
|
|
.section .text.flash_read_otp_data,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_otp_data
|
|
.type flash_read_otp_data, %function
|
|
flash_read_otp_data:
|
|
stp x29, x30, [sp, -48]!
|
|
and w4, w0, 255
|
|
adrp x0, .LANCHOR7
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, w1
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w4
|
|
stp x21, x22, [sp, 32]
|
|
mov x22, x2
|
|
bl nandc_cs
|
|
ubfiz x4, x4, 8, 8
|
|
add x19, x19, x4
|
|
mov w0, 239
|
|
mov w21, 144
|
|
str w0, [x19, 2056]
|
|
mov x0, 1
|
|
str w21, [x19, 2052]
|
|
bl udelay
|
|
mov w0, 1
|
|
str w0, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
bl nandc_wait_flash_ready
|
|
mov w0, 238
|
|
str w0, [x19, 2056]
|
|
str w21, [x19, 2052]
|
|
mov w1, w20
|
|
adrp x0, .LC39
|
|
add x0, x0, :lo12:.LC39
|
|
ldr w2, [x19, 2048]
|
|
ldr w3, [x19, 2048]
|
|
ldr w4, [x19, 2048]
|
|
bl printf
|
|
bl nandc_wait_flash_ready
|
|
str wzr, [x19, 2056]
|
|
str wzr, [x19, 2052]
|
|
and w0, w20, 255
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 8
|
|
str w0, [x19, 2052]
|
|
lsr w20, w20, 16
|
|
str w20, [x19, 2052]
|
|
mov w0, 48
|
|
str w0, [x19, 2056]
|
|
bl nandc_wait_flash_ready
|
|
mov x0, 0
|
|
.L464:
|
|
ldr w1, [x19, 2048]
|
|
strb w1, [x22, x0]
|
|
add x0, x0, 1
|
|
cmp x0, 16384
|
|
bne .L464
|
|
mov w0, 239
|
|
str w0, [x19, 2056]
|
|
mov w0, 144
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldp x21, x22, [sp, 32]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b nandc_de_cs.constprop.32
|
|
.size flash_read_otp_data, .-flash_read_otp_data
|
|
.section .text.sandisk_prog_test_bad_block,"ax",@progbits
|
|
.align 2
|
|
.global sandisk_prog_test_bad_block
|
|
.type sandisk_prog_test_bad_block, %function
|
|
sandisk_prog_test_bad_block:
|
|
stp x29, x30, [sp, -48]!
|
|
and x2, x0, 255
|
|
mov x0, x2
|
|
add x2, x2, 8
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
mov w22, w1
|
|
adrp x1, .LANCHOR7
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR32
|
|
ldr x19, [x1, #:lo12:.LANCHOR7]
|
|
add x1, x20, :lo12:.LANCHOR32
|
|
ldrb w1, [x1, 29]
|
|
add x2, x19, x2, lsl 8
|
|
cbz w1, .L468
|
|
.L483:
|
|
ubfiz x0, x0, 8, 8
|
|
str w1, [x2, 8]
|
|
add x19, x19, x0
|
|
mov w0, 128
|
|
str w0, [x19, 2056]
|
|
and w0, w22, 255
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w22, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w22, 16
|
|
str w0, [x19, 2052]
|
|
mov w0, 16
|
|
str w0, [x19, 2056]
|
|
bl nandc_wait_flash_ready
|
|
mov w0, 112
|
|
str w0, [x19, 2056]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldr w2, [x19, 2048]
|
|
cmp w2, 255
|
|
bne .L470
|
|
ldr w2, [x19, 2048]
|
|
.L470:
|
|
mov w0, 5
|
|
ands w21, w2, w0
|
|
beq .L471
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L471
|
|
adrp x0, .LC40
|
|
mov w1, w22
|
|
add x0, x0, :lo12:.LC40
|
|
bl printf
|
|
.L471:
|
|
add x20, x20, :lo12:.LANCHOR32
|
|
ldrb w0, [x20, 30]
|
|
cbz w0, .L467
|
|
str w0, [x19, 2056]
|
|
.L467:
|
|
mov w0, w21
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L468:
|
|
mov w1, 162
|
|
b .L483
|
|
.size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
|
|
.section .text.nandc_rdy_status,"ax",@progbits
|
|
.align 2
|
|
.global nandc_rdy_status
|
|
.type nandc_rdy_status, %function
|
|
nandc_rdy_status:
|
|
adrp x0, .LANCHOR7
|
|
sub sp, sp, #16
|
|
ldr x0, [x0, #:lo12:.LANCHOR7]
|
|
ldr w0, [x0]
|
|
str w0, [sp, 8]
|
|
ldr w0, [sp, 8]
|
|
add sp, sp, 16
|
|
ubfx x0, x0, 9, 1
|
|
ret
|
|
.size nandc_rdy_status, .-nandc_rdy_status
|
|
.section .text.nandc_bch_sel,"ax",@progbits
|
|
.align 2
|
|
.global nandc_bch_sel
|
|
.type nandc_bch_sel, %function
|
|
nandc_bch_sel:
|
|
sub sp, sp, #16
|
|
str wzr, [sp, 8]
|
|
ldr w1, [sp, 8]
|
|
orr w1, w1, 1
|
|
str w1, [sp, 8]
|
|
adrp x1, .LANCHOR49
|
|
strb w0, [x1, #:lo12:.LANCHOR49]
|
|
adrp x1, .LANCHOR27
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
cmp w1, 9
|
|
adrp x1, .LANCHOR7
|
|
bne .L487
|
|
ldr x1, [x1, #:lo12:.LANCHOR7]
|
|
cmp w0, 70
|
|
ldr w2, [sp, 8]
|
|
str w2, [x1, 16]
|
|
beq .L493
|
|
cmp w0, 60
|
|
beq .L494
|
|
cmp w0, 40
|
|
cset w0, eq
|
|
add w0, w0, 1
|
|
.L488:
|
|
str wzr, [sp]
|
|
ldr w2, [sp]
|
|
bfi w2, w0, 25, 3
|
|
str w2, [sp]
|
|
ldr w0, [sp]
|
|
orr w0, w0, 1
|
|
str w0, [sp]
|
|
ldr w0, [sp]
|
|
str w0, [x1, 32]
|
|
.L486:
|
|
add sp, sp, 16
|
|
ret
|
|
.L493:
|
|
mov w0, 0
|
|
b .L488
|
|
.L494:
|
|
mov w0, 3
|
|
b .L488
|
|
.L487:
|
|
ldr x2, [x1, #:lo12:.LANCHOR7]
|
|
mov w3, 16
|
|
ldr w1, [sp, 8]
|
|
cmp w0, w3
|
|
str w1, [x2, 8]
|
|
str wzr, [sp]
|
|
ldr w1, [sp]
|
|
bfi w1, w3, 8, 8
|
|
str w1, [sp]
|
|
ldr w1, [sp]
|
|
and w1, w1, -262145
|
|
str w1, [sp]
|
|
bne .L490
|
|
.L497:
|
|
ldr w0, [sp]
|
|
and w0, w0, -17
|
|
b .L498
|
|
.L490:
|
|
cmp w0, 24
|
|
bne .L492
|
|
ldr w0, [sp]
|
|
orr w0, w0, 16
|
|
.L498:
|
|
str w0, [sp]
|
|
b .L491
|
|
.L492:
|
|
ldr w1, [sp]
|
|
cmp w0, 40
|
|
orr w1, w1, 262144
|
|
str w1, [sp]
|
|
ldr w1, [sp]
|
|
orr w1, w1, 16
|
|
str w1, [sp]
|
|
beq .L497
|
|
.L491:
|
|
ldr w0, [sp]
|
|
orr w0, w0, 1
|
|
str w0, [sp]
|
|
ldr w0, [sp]
|
|
str w0, [x2, 12]
|
|
b .L486
|
|
.size nandc_bch_sel, .-nandc_bch_sel
|
|
.section .text.zftl_nandc_get_irq_status,"ax",@progbits
|
|
.align 2
|
|
.global zftl_nandc_get_irq_status
|
|
.type zftl_nandc_get_irq_status, %function
|
|
zftl_nandc_get_irq_status:
|
|
adrp x1, .LANCHOR27
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
cmp w1, 9
|
|
bne .L500
|
|
ldr w0, [x0, 296]
|
|
ret
|
|
.L500:
|
|
ldr w0, [x0, 372]
|
|
ret
|
|
.size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
|
|
.section .text.rk_nandc_flash_ready,"ax",@progbits
|
|
.align 2
|
|
.global rk_nandc_flash_ready
|
|
.type rk_nandc_flash_ready, %function
|
|
rk_nandc_flash_ready:
|
|
ret
|
|
.size rk_nandc_flash_ready, .-rk_nandc_flash_ready
|
|
.section .text.nandc_iqr_wait_flash_ready,"ax",@progbits
|
|
.align 2
|
|
.global nandc_iqr_wait_flash_ready
|
|
.type nandc_iqr_wait_flash_ready, %function
|
|
nandc_iqr_wait_flash_ready:
|
|
ret
|
|
.size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
|
|
.section .text.rk_nandc_flash_xfer_completed,"ax",@progbits
|
|
.align 2
|
|
.global rk_nandc_flash_xfer_completed
|
|
.type rk_nandc_flash_xfer_completed, %function
|
|
rk_nandc_flash_xfer_completed:
|
|
ret
|
|
.size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
|
|
.section .text.nandc_xfer_start,"ax",@progbits
|
|
.align 2
|
|
.global nandc_xfer_start
|
|
.type nandc_xfer_start, %function
|
|
nandc_xfer_start:
|
|
stp x29, x30, [sp, -80]!
|
|
and w1, w1, 255
|
|
adrp x4, .LANCHOR52
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
adrp x0, .LANCHOR27
|
|
str x21, [sp, 32]
|
|
and w6, w20, 1
|
|
adrp x21, .LANCHOR7
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
add w0, w1, 1
|
|
bne .L506
|
|
str wzr, [x29, 56]
|
|
mov w5, 1
|
|
ubfx x0, x0, 1, 6
|
|
ldr w1, [x29, 56]
|
|
bfi w1, w6, 1, 1
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
orr w1, w1, 8
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
bfi w1, w5, 5, 2
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
orr w1, w1, 536870912
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
orr w1, w1, 1024
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
and w1, w1, -17
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
bfi w1, w0, 22, 6
|
|
str w1, [x29, 56]
|
|
ldr w0, [x29, 56]
|
|
orr w0, w0, 128
|
|
str w0, [x29, 56]
|
|
adrp x0, .LANCHOR50
|
|
ldrb w0, [x0, #:lo12:.LANCHOR50]
|
|
cbz w0, .L507
|
|
adrp x0, .LANCHOR51
|
|
ldrb w0, [x0, #:lo12:.LANCHOR51]
|
|
cbz w0, .L507
|
|
ldr w0, [x29, 56]
|
|
orr w0, w0, 512
|
|
str w0, [x29, 56]
|
|
.L507:
|
|
ldr w0, [x29, 56]
|
|
add x19, x4, :lo12:.LANCHOR52
|
|
add x1, x2, 63
|
|
and x1, x1, -64
|
|
ubfx x0, x0, 22, 6
|
|
stp x2, x3, [x19, 8]
|
|
ubfiz x0, x0, 10, 6
|
|
stp w2, w3, [x19, 24]
|
|
add x1, x1, x0
|
|
and x0, x2, -64
|
|
bl flush_dcache_range
|
|
ldr x0, [x19, 16]
|
|
add x1, x0, 63
|
|
and x0, x0, -64
|
|
and x1, x1, -64
|
|
add x1, x1, 64
|
|
bl flush_dcache_range
|
|
mov w0, 1
|
|
str w0, [x19, 32]
|
|
ldr x0, [x21, #:lo12:.LANCHOR7]
|
|
mov w2, 16
|
|
ldr w1, [x19, 24]
|
|
cmp w20, 0
|
|
str w1, [x0, 52]
|
|
ldr w1, [x19, 28]
|
|
str w1, [x0, 56]
|
|
ldr w1, [x0, 48]
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 9, 5
|
|
str w1, [x29, 64]
|
|
mov w2, 2
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 448
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 3, 3
|
|
str w1, [x29, 64]
|
|
cset w2, eq
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 4
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 1, 1
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 1
|
|
str w1, [x29, 64]
|
|
adrp x1, .LANCHOR53
|
|
ldrh w2, [x1, #:lo12:.LANCHOR53]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 16, 11
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
str w1, [x0, 48]
|
|
ldr w1, [x29, 56]
|
|
str w1, [x0, 16]
|
|
ldr w1, [x29, 56]
|
|
orr w1, w1, 4
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
str w1, [x0, 16]
|
|
.L505:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L506:
|
|
ldr x5, [x21, #:lo12:.LANCHOR7]
|
|
mov w7, 16
|
|
ubfx x0, x0, 1, 6
|
|
ldr w5, [x5, 12]
|
|
str w5, [x29, 72]
|
|
ldr w5, [x29, 72]
|
|
bfi w5, w7, 8, 8
|
|
str w5, [x29, 72]
|
|
ldr w5, [x29, 72]
|
|
and w5, w5, -9
|
|
str w5, [x29, 72]
|
|
ldr w5, [x29, 72]
|
|
and w5, w5, -225
|
|
str w5, [x29, 72]
|
|
str wzr, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
bfi w5, w6, 1, 1
|
|
str w5, [x29, 56]
|
|
mov w6, 1
|
|
ldr w5, [x29, 56]
|
|
orr w5, w5, 8
|
|
str w5, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
bfi w5, w6, 5, 2
|
|
str w5, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
orr w5, w5, 536870912
|
|
str w5, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
orr w5, w5, 1024
|
|
str w5, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
and w5, w5, -17
|
|
str w5, [x29, 56]
|
|
ldr w5, [x29, 56]
|
|
bfi w5, w0, 22, 6
|
|
str w5, [x29, 56]
|
|
cbz w20, .L509
|
|
adrp x0, .LANCHOR49
|
|
ubfx x1, x1, 1, 7
|
|
ldr x8, [x4, #:lo12:.LANCHOR52]
|
|
add x1, x3, x1, lsl 2
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
mov w5, 64
|
|
cmp w0, 25
|
|
mov w0, 128
|
|
csel w5, w5, w0, cc
|
|
mov w0, 0
|
|
.L511:
|
|
add w7, w5, w0
|
|
cmp x3, x1
|
|
bne .L512
|
|
.L513:
|
|
add x19, x4, :lo12:.LANCHOR52
|
|
ldr x0, [x4, #:lo12:.LANCHOR52]
|
|
add x1, x2, 63
|
|
and x1, x1, -64
|
|
stp x2, x0, [x19, 8]
|
|
stp w2, w0, [x19, 24]
|
|
ldr w0, [x29, 56]
|
|
ubfx x0, x0, 22, 6
|
|
ubfiz x0, x0, 10, 6
|
|
add x1, x1, x0
|
|
and x0, x2, -64
|
|
bl flush_dcache_range
|
|
ldr x0, [x19, 16]
|
|
ldr w1, [x29, 56]
|
|
add x2, x0, 63
|
|
and x0, x0, -64
|
|
and x2, x2, -64
|
|
ubfx x1, x1, 22, 6
|
|
ubfiz x1, x1, 7, 6
|
|
add x1, x2, x1
|
|
bl flush_dcache_range
|
|
mov w0, 1
|
|
str w0, [x19, 32]
|
|
ldr x0, [x21, #:lo12:.LANCHOR7]
|
|
mov w2, 16
|
|
ldr w1, [x19, 24]
|
|
cmp w20, 0
|
|
str w1, [x0, 20]
|
|
ldr w1, [x19, 28]
|
|
str w1, [x0, 24]
|
|
str wzr, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 9, 5
|
|
str w1, [x29, 64]
|
|
mov w2, 2
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 448
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 3, 3
|
|
str w1, [x29, 64]
|
|
cset w2, eq
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 4
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
bfi w1, w2, 1, 1
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
orr w1, w1, 1
|
|
str w1, [x29, 64]
|
|
ldr w1, [x29, 64]
|
|
str w1, [x0, 16]
|
|
ldr w1, [x29, 72]
|
|
str w1, [x0, 12]
|
|
ldr w1, [x29, 56]
|
|
str w1, [x0, 8]
|
|
ldr w1, [x29, 56]
|
|
orr w1, w1, 4
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
str w1, [x0, 8]
|
|
b .L505
|
|
.L512:
|
|
ldrh w10, [x3]
|
|
and x0, x0, 4294967292
|
|
ldrh w6, [x3, 2]
|
|
add x3, x3, 4
|
|
orr x6, x10, x6, lsl 16
|
|
str w6, [x8, x0]
|
|
mov w0, w7
|
|
b .L511
|
|
.L509:
|
|
ldr x0, [x4, #:lo12:.LANCHOR52]
|
|
str w6, [x0]
|
|
b .L513
|
|
.size nandc_xfer_start, .-nandc_xfer_start
|
|
.section .text.nandc_set_seed,"ax",@progbits
|
|
.align 2
|
|
.global nandc_set_seed
|
|
.type nandc_set_seed, %function
|
|
nandc_set_seed:
|
|
and x0, x0, 127
|
|
adrp x1, .LANCHOR54
|
|
add x1, x1, :lo12:.LANCHOR54
|
|
ldrh w0, [x1, x0, lsl 1]
|
|
adrp x1, .LANCHOR51
|
|
ldrb w2, [x1, #:lo12:.LANCHOR51]
|
|
orr w1, w0, -1073741824
|
|
cmp w2, 0
|
|
csel w0, w1, w0, ne
|
|
adrp x1, .LANCHOR27
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
cmp w1, 9
|
|
adrp x1, .LANCHOR7
|
|
ldr x1, [x1, #:lo12:.LANCHOR7]
|
|
bne .L524
|
|
str w0, [x1, 520]
|
|
ret
|
|
.L524:
|
|
str w0, [x1, 336]
|
|
ret
|
|
.size nandc_set_seed, .-nandc_set_seed
|
|
.section .text.zftl_flash_de_init,"ax",@progbits
|
|
.align 2
|
|
.global zftl_flash_de_init
|
|
.type zftl_flash_de_init, %function
|
|
zftl_flash_de_init:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
bl nandc_wait_flash_ready
|
|
adrp x0, .LANCHOR0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L529
|
|
adrp x0, .LANCHOR24
|
|
ldrb w0, [x0, #:lo12:.LANCHOR24]
|
|
cbnz w0, .L529
|
|
adrp x0, .LANCHOR27
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
beq .L529
|
|
mov w0, 0
|
|
bl zftl_flash_exit_slc_mode
|
|
.L529:
|
|
adrp x19, .LANCHOR26
|
|
mov w0, 0
|
|
bl hynix_reconfig_rr_para
|
|
ldrb w0, [x19, #:lo12:.LANCHOR26]
|
|
cbz w0, .L530
|
|
adrp x0, .LANCHOR48
|
|
ldrb w0, [x0, #:lo12:.LANCHOR48]
|
|
tbz x0, 0, .L530
|
|
mov w0, 1
|
|
bl flash_set_interface_mode
|
|
mov w0, 1
|
|
bl nandc_set_if_mode
|
|
strb wzr, [x19, #:lo12:.LANCHOR26]
|
|
.L530:
|
|
adrp x3, .LANCHOR51
|
|
ldrb w0, [x3, #:lo12:.LANCHOR51]
|
|
cbz w0, .L531
|
|
mov w0, 0
|
|
strb wzr, [x3, #:lo12:.LANCHOR51]
|
|
bl nandc_set_seed
|
|
mov w0, 1
|
|
strb w0, [x3, #:lo12:.LANCHOR51]
|
|
.L531:
|
|
mov w0, 0
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size zftl_flash_de_init, .-zftl_flash_de_init
|
|
.section .text.nandc_randomizer_enable,"ax",@progbits
|
|
.align 2
|
|
.global nandc_randomizer_enable
|
|
.type nandc_randomizer_enable, %function
|
|
nandc_randomizer_enable:
|
|
adrp x1, .LANCHOR51
|
|
strb w0, [x1, #:lo12:.LANCHOR51]
|
|
ret
|
|
.size nandc_randomizer_enable, .-nandc_randomizer_enable
|
|
.section .text.nandc_get_chip_if,"ax",@progbits
|
|
.align 2
|
|
.global nandc_get_chip_if
|
|
.type nandc_get_chip_if, %function
|
|
nandc_get_chip_if:
|
|
adrp x1, .LANCHOR7
|
|
ubfiz x0, x0, 8, 8
|
|
add x0, x0, 2048
|
|
ldr x1, [x1, #:lo12:.LANCHOR7]
|
|
add x0, x1, x0
|
|
ret
|
|
.size nandc_get_chip_if, .-nandc_get_chip_if
|
|
.section .text.buf_reinit,"ax",@progbits
|
|
.align 2
|
|
.global buf_reinit
|
|
.type buf_reinit, %function
|
|
buf_reinit:
|
|
adrp x0, .LANCHOR55
|
|
add x1, x0, :lo12:.LANCHOR55
|
|
mov w2, 0
|
|
.L551:
|
|
and w3, w2, 255
|
|
strb wzr, [x1, 2]
|
|
add w4, w3, 1
|
|
strb w3, [x1, 1]
|
|
strb w4, [x1]
|
|
add w2, w2, 1
|
|
str xzr, [x1, 16]
|
|
cmp w2, 32
|
|
add x1, x1, 64
|
|
bne .L551
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
mov w1, -1
|
|
strb w1, [x0, 1984]
|
|
adrp x0, .LANCHOR56
|
|
strb wzr, [x0, #:lo12:.LANCHOR56]
|
|
adrp x0, .LANCHOR57
|
|
strb w2, [x0, #:lo12:.LANCHOR57]
|
|
ret
|
|
.size buf_reinit, .-buf_reinit
|
|
.section .text.buf_add_tail,"ax",@progbits
|
|
.align 2
|
|
.global buf_add_tail
|
|
.type buf_add_tail, %function
|
|
buf_add_tail:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
str x21, [sp, 32]
|
|
mov w0, -1
|
|
strb w0, [x1]
|
|
mov x20, x1
|
|
ldrb w1, [x19]
|
|
cmp w1, 255
|
|
bne .L559
|
|
ldrb w0, [x20, 1]
|
|
cmp w0, 255
|
|
bne .L555
|
|
adrp x1, .LANCHOR58
|
|
adrp x0, .LC0
|
|
mov w2, 74
|
|
add x1, x1, :lo12:.LANCHOR58
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L555:
|
|
ldrb w0, [x20, 1]
|
|
strb w0, [x19]
|
|
.L553:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L559:
|
|
adrp x0, .LANCHOR55
|
|
add x2, x0, :lo12:.LANCHOR55
|
|
mov x19, x0
|
|
.L560:
|
|
sbfiz x0, x1, 6, 32
|
|
mov w21, w1
|
|
ldrb w1, [x2, x0]
|
|
cmp w1, 255
|
|
bne .L560
|
|
ldrb w0, [x20, 1]
|
|
cmp w0, 255
|
|
bne .L557
|
|
adrp x1, .LANCHOR58
|
|
adrp x0, .LC0
|
|
mov w2, 81
|
|
add x1, x1, :lo12:.LANCHOR58
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L557:
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
sbfiz x21, x21, 6, 32
|
|
ldrb w1, [x20, 1]
|
|
strb w1, [x0, x21]
|
|
b .L553
|
|
.size buf_add_tail, .-buf_add_tail
|
|
.section .text.queue_read_cmd,"ax",@progbits
|
|
.align 2
|
|
.type queue_read_cmd, %function
|
|
queue_read_cmd:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
mov w0, 48
|
|
ldr w1, [x19, 40]
|
|
bl flash_start_page_read
|
|
strb wzr, [x19, 59]
|
|
mov w0, 1
|
|
strb w0, [x19, 58]
|
|
mov w0, -1
|
|
strb w0, [x19]
|
|
mov x1, x19
|
|
adrp x0, .LANCHOR59
|
|
ldr x19, [sp, 16]
|
|
add x0, x0, :lo12:.LANCHOR59
|
|
ldp x29, x30, [sp], 32
|
|
b buf_add_tail
|
|
.size queue_read_cmd, .-queue_read_cmd
|
|
.section .text.zbuf_free,"ax",@progbits
|
|
.align 2
|
|
.global zbuf_free
|
|
.type zbuf_free, %function
|
|
zbuf_free:
|
|
ldrb w1, [x0, 2]
|
|
adrp x2, .LANCHOR56
|
|
and w1, w1, 8
|
|
strb w1, [x0, 2]
|
|
cbz w1, .L565
|
|
ldr w1, [x0, 36]
|
|
cmn w1, #1
|
|
beq .L565
|
|
stp x29, x30, [sp, -16]!
|
|
mov x1, x0
|
|
add x0, x2, :lo12:.LANCHOR56
|
|
add x29, sp, 0
|
|
bl buf_add_tail
|
|
adrp x1, .LANCHOR57
|
|
ldp x29, x30, [sp], 16
|
|
ldrb w0, [x1, #:lo12:.LANCHOR57]
|
|
add w0, w0, 1
|
|
strb w0, [x1, #:lo12:.LANCHOR57]
|
|
ret
|
|
.L565:
|
|
ldrb w1, [x2, #:lo12:.LANCHOR56]
|
|
strb w1, [x0]
|
|
adrp x1, .LANCHOR57
|
|
ldrb w0, [x0, 1]
|
|
strb w0, [x2, #:lo12:.LANCHOR56]
|
|
ldrb w0, [x1, #:lo12:.LANCHOR57]
|
|
add w0, w0, 1
|
|
strb w0, [x1, #:lo12:.LANCHOR57]
|
|
ret
|
|
.size zbuf_free, .-zbuf_free
|
|
.section .text.buf_alloc,"ax",@progbits
|
|
.align 2
|
|
.global buf_alloc
|
|
.type buf_alloc, %function
|
|
buf_alloc:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR57
|
|
and w20, w0, 255
|
|
ldrb w0, [x19, #:lo12:.LANCHOR57]
|
|
cbz w0, .L578
|
|
.L581:
|
|
adrp x2, .LANCHOR56
|
|
adrp x1, .LANCHOR55
|
|
add x0, x1, :lo12:.LANCHOR55
|
|
ldrb w3, [x2, #:lo12:.LANCHOR56]
|
|
ubfiz x4, x3, 6, 8
|
|
add x0, x0, x4
|
|
mov x4, x2
|
|
cbz w20, .L579
|
|
.L580:
|
|
add x1, x1, :lo12:.LANCHOR55
|
|
sbfiz x3, x3, 6, 32
|
|
add x2, x1, x3
|
|
ldrb w5, [x1, x3]
|
|
strb w5, [x4, #:lo12:.LANCHOR56]
|
|
ldrb w4, [x19, #:lo12:.LANCHOR57]
|
|
strh wzr, [x2, 50]
|
|
sub w4, w4, #1
|
|
strb w4, [x19, #:lo12:.LANCHOR57]
|
|
mov w4, 1
|
|
strb wzr, [x2, 56]
|
|
strb w4, [x2, 2]
|
|
mov w4, -1
|
|
strb wzr, [x2, 57]
|
|
strb w4, [x1, x3]
|
|
mov w1, -1
|
|
str xzr, [x2, 16]
|
|
str w1, [x2, 36]
|
|
b .L577
|
|
.L578:
|
|
mov w2, 121
|
|
adrp x1, .LANCHOR60
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR60
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
ldrb w0, [x19, #:lo12:.LANCHOR57]
|
|
cbnz w0, .L581
|
|
.L583:
|
|
mov x0, 0
|
|
.L577:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L579:
|
|
ldrb w2, [x19, #:lo12:.LANCHOR57]
|
|
cmp w2, 1
|
|
bne .L580
|
|
b .L583
|
|
.size buf_alloc, .-buf_alloc
|
|
.section .text.buf_remove_buf,"ax",@progbits
|
|
.align 2
|
|
.global buf_remove_buf
|
|
.type buf_remove_buf, %function
|
|
buf_remove_buf:
|
|
ldrb w4, [x1, 1]
|
|
ldrb w2, [x0]
|
|
cmp w4, w2
|
|
bne .L591
|
|
ldrb w1, [x1]
|
|
strb w1, [x0]
|
|
.L595:
|
|
mov w0, 1
|
|
ret
|
|
.L592:
|
|
mov w3, w2
|
|
sbfiz x2, x2, 6, 32
|
|
ldrb w2, [x0, x2]
|
|
cmp w4, w2
|
|
bne .L593
|
|
sbfiz x3, x3, 6, 32
|
|
ldrb w2, [x1]
|
|
strb w2, [x0, x3]
|
|
mov w0, -1
|
|
strb w0, [x1]
|
|
b .L595
|
|
.L591:
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
.L593:
|
|
cmp w2, 255
|
|
bne .L592
|
|
mov w0, 0
|
|
ret
|
|
.size buf_remove_buf, .-buf_remove_buf
|
|
.section .text.buf_remove_free,"ax",@progbits
|
|
.align 2
|
|
.global buf_remove_free
|
|
.type buf_remove_free, %function
|
|
buf_remove_free:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR57
|
|
mov x20, x0
|
|
ldrb w0, [x19, #:lo12:.LANCHOR57]
|
|
cbnz w0, .L597
|
|
adrp x1, .LANCHOR61
|
|
adrp x0, .LC0
|
|
mov w2, 172
|
|
add x1, x1, :lo12:.LANCHOR61
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L597:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR57]
|
|
cbz w0, .L596
|
|
mov x1, x20
|
|
adrp x0, .LANCHOR56
|
|
add x0, x0, :lo12:.LANCHOR56
|
|
bl buf_remove_buf
|
|
cmp w0, 1
|
|
bne .L596
|
|
ldrb w0, [x19, #:lo12:.LANCHOR57]
|
|
sub w0, w0, #1
|
|
strb w0, [x19, #:lo12:.LANCHOR57]
|
|
ldrb w0, [x20, 2]
|
|
orr w0, w0, 1
|
|
strb w0, [x20, 2]
|
|
.L596:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size buf_remove_free, .-buf_remove_free
|
|
.section .text.dump_buf_info,"ax",@progbits
|
|
.align 2
|
|
.global dump_buf_info
|
|
.type dump_buf_info, %function
|
|
dump_buf_info:
|
|
sub sp, sp, #64
|
|
adrp x0, .LANCHOR59
|
|
stp x29, x30, [sp, 16]
|
|
add x29, sp, 16
|
|
ldrb w1, [x0, #:lo12:.LANCHOR59]
|
|
stp x19, x20, [sp, 32]
|
|
adrp x0, .LC41
|
|
str x21, [sp, 48]
|
|
add x0, x0, :lo12:.LC41
|
|
adrp x19, .LANCHOR55
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
bl printf
|
|
adrp x20, .LC47
|
|
adrp x0, .LANCHOR62
|
|
add x20, x20, :lo12:.LC47
|
|
add x21, x19, 2048
|
|
ldrb w1, [x0, #:lo12:.LANCHOR62]
|
|
adrp x0, .LC42
|
|
add x0, x0, :lo12:.LC42
|
|
bl printf
|
|
adrp x0, .LANCHOR63
|
|
ldrb w1, [x0, #:lo12:.LANCHOR63]
|
|
adrp x0, .LC43
|
|
add x0, x0, :lo12:.LC43
|
|
bl printf
|
|
adrp x0, .LANCHOR64
|
|
ldrb w1, [x0, #:lo12:.LANCHOR64]
|
|
adrp x0, .LC44
|
|
add x0, x0, :lo12:.LC44
|
|
bl printf
|
|
adrp x0, .LANCHOR56
|
|
ldrb w1, [x0, #:lo12:.LANCHOR56]
|
|
adrp x0, .LC45
|
|
add x0, x0, :lo12:.LC45
|
|
bl printf
|
|
adrp x0, .LANCHOR57
|
|
ldrb w1, [x0, #:lo12:.LANCHOR57]
|
|
adrp x0, .LC46
|
|
add x0, x0, :lo12:.LC46
|
|
bl printf
|
|
.L603:
|
|
ldp w7, w0, [x19, 36]
|
|
str w0, [sp]
|
|
ldrb w5, [x19, 58]
|
|
mov x0, x20
|
|
ldrh w4, [x19, 50]
|
|
add x19, x19, 64
|
|
ldrb w3, [x19, -62]
|
|
ldrb w2, [x19, -64]
|
|
ldrb w1, [x19, -63]
|
|
ldr w6, [x19, -12]
|
|
bl printf
|
|
cmp x19, x21
|
|
bne .L603
|
|
ldp x19, x20, [sp, 32]
|
|
ldp x29, x30, [sp, 16]
|
|
ldr x21, [sp, 48]
|
|
add sp, sp, 64
|
|
ret
|
|
.size dump_buf_info, .-dump_buf_info
|
|
.section .text.flash_check_bad_block,"ax",@progbits
|
|
.align 2
|
|
.global flash_check_bad_block
|
|
.type flash_check_bad_block, %function
|
|
flash_check_bad_block:
|
|
adrp x3, .LANCHOR32
|
|
add x3, x3, :lo12:.LANCHOR32
|
|
and w5, w0, 255
|
|
lsr w4, w1, 5
|
|
and w1, w1, 31
|
|
ldrb w0, [x3, 13]
|
|
ldrh w2, [x3, 14]
|
|
mul w2, w2, w0
|
|
mov x0, 912
|
|
and w2, w2, 65535
|
|
add w2, w2, 31
|
|
asr w2, w2, 5
|
|
lsl w2, w2, 2
|
|
umaddl x0, w2, w5, x0
|
|
adrp x2, .LANCHOR6
|
|
ldr x2, [x2, #:lo12:.LANCHOR6]
|
|
add x0, x0, x4, uxtw 2
|
|
ldr w0, [x2, x0]
|
|
lsr w0, w0, w1
|
|
and w0, w0, 1
|
|
ret
|
|
.size flash_check_bad_block, .-flash_check_bad_block
|
|
.section .text.flash_mask_bad_block,"ax",@progbits
|
|
.align 2
|
|
.global flash_mask_bad_block
|
|
.type flash_mask_bad_block, %function
|
|
flash_mask_bad_block:
|
|
stp x29, x30, [sp, -48]!
|
|
mov w2, w1
|
|
add x29, sp, 0
|
|
str x21, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR32
|
|
add x0, x0, :lo12:.LANCHOR32
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, w1
|
|
ldrh w19, [x0, 14]
|
|
ldrb w1, [x0, 13]
|
|
adrp x0, .LC48
|
|
add x0, x0, :lo12:.LC48
|
|
mul w19, w19, w1
|
|
mov w1, w21
|
|
bl printf
|
|
and w19, w19, 65535
|
|
lsr w0, w20, 5
|
|
add w1, w19, 31
|
|
mov x19, 912
|
|
asr w1, w1, 5
|
|
and w20, w20, 31
|
|
lsl w1, w1, 2
|
|
umaddl x1, w1, w21, x19
|
|
ldr x21, [sp, 32]
|
|
add x1, x1, x0, uxtw 2
|
|
adrp x0, .LANCHOR6
|
|
ldr x2, [x0, #:lo12:.LANCHOR6]
|
|
mov w0, 1
|
|
lsl w0, w0, w20
|
|
ldr w20, [x2, x1]
|
|
orr w20, w20, w0
|
|
str w20, [x2, x1]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size flash_mask_bad_block, .-flash_mask_bad_block
|
|
.section .text.ftl_gc_write_buf,"ax",@progbits
|
|
.align 2
|
|
.global ftl_gc_write_buf
|
|
.type ftl_gc_write_buf, %function
|
|
ftl_gc_write_buf:
|
|
stp x29, x30, [sp, -16]!
|
|
add x29, sp, 0
|
|
ldrb w1, [x0, 2]
|
|
orr w1, w1, 2
|
|
strb w1, [x0, 2]
|
|
mov x1, x0
|
|
adrp x0, .LANCHOR65
|
|
add x0, x0, :lo12:.LANCHOR65
|
|
bl buf_add_tail
|
|
adrp x1, .LANCHOR66
|
|
ldp x29, x30, [sp], 16
|
|
ldrb w0, [x1, #:lo12:.LANCHOR66]
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
strb w0, [x1, #:lo12:.LANCHOR66]
|
|
ret
|
|
.size ftl_gc_write_buf, .-ftl_gc_write_buf
|
|
.section .text.zftl_cache_flush,"ax",@progbits
|
|
.align 2
|
|
.global zftl_cache_flush
|
|
.type zftl_cache_flush, %function
|
|
zftl_cache_flush:
|
|
ret
|
|
.size zftl_cache_flush, .-zftl_cache_flush
|
|
.section .text.zftl_get_density,"ax",@progbits
|
|
.align 2
|
|
.global zftl_get_density
|
|
.type zftl_get_density, %function
|
|
zftl_get_density:
|
|
cbnz w0, .L613
|
|
adrp x0, .LANCHOR67
|
|
ldr w0, [x0, #:lo12:.LANCHOR67]
|
|
ret
|
|
.L613:
|
|
cmp w0, 4
|
|
cset w0, cc
|
|
lsl w0, w0, 13
|
|
ret
|
|
.size zftl_get_density, .-zftl_get_density
|
|
.section .text.gc_hook,"ax",@progbits
|
|
.align 2
|
|
.global gc_hook
|
|
.type gc_hook, %function
|
|
gc_hook:
|
|
ret
|
|
.size gc_hook, .-gc_hook
|
|
.section .text.vpn_check,"ax",@progbits
|
|
.align 2
|
|
.global vpn_check
|
|
.type vpn_check, %function
|
|
vpn_check:
|
|
ret
|
|
.size vpn_check, .-vpn_check
|
|
.section .text.ftl_scan_all_data,"ax",@progbits
|
|
.align 2
|
|
.global ftl_scan_all_data
|
|
.type ftl_scan_all_data, %function
|
|
ftl_scan_all_data:
|
|
ret
|
|
.size ftl_scan_all_data, .-ftl_scan_all_data
|
|
.section .text.FtlGetCurEraseBlock,"ax",@progbits
|
|
.align 2
|
|
.global FtlGetCurEraseBlock
|
|
.type FtlGetCurEraseBlock, %function
|
|
FtlGetCurEraseBlock:
|
|
adrp x0, .LANCHOR68
|
|
ldrh w0, [x0, #:lo12:.LANCHOR68]
|
|
ret
|
|
.size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
|
|
.section .text.FtlGetAllBlockNum,"ax",@progbits
|
|
.align 2
|
|
.global FtlGetAllBlockNum
|
|
.type FtlGetAllBlockNum, %function
|
|
FtlGetAllBlockNum:
|
|
adrp x0, .LANCHOR8
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
ret
|
|
.size FtlGetAllBlockNum, .-FtlGetAllBlockNum
|
|
.section .text.FtlLowFormat,"ax",@progbits
|
|
.align 2
|
|
.global FtlLowFormat
|
|
.type FtlLowFormat, %function
|
|
FtlLowFormat:
|
|
mov w0, 0
|
|
ret
|
|
.size FtlLowFormat, .-FtlLowFormat
|
|
.section .text.gc_add_sblk,"ax",@progbits
|
|
.align 2
|
|
.global gc_add_sblk
|
|
.type gc_add_sblk, %function
|
|
gc_add_sblk:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR19
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 65535
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
and w22, w1, 65535
|
|
stp x23, x24, [sp, 48]
|
|
and w23, w2, 65535
|
|
tbz x0, 8, .L623
|
|
adrp x1, .LANCHOR11
|
|
uxtw x0, w19
|
|
mov w3, w23
|
|
ldr x2, [x1, #:lo12:.LANCHOR11]
|
|
adrp x1, .LANCHOR9
|
|
ldr x1, [x1, #:lo12:.LANCHOR9]
|
|
ldrh w5, [x2, x0, lsl 1]
|
|
mov w2, w22
|
|
add x1, x1, x0, lsl 2
|
|
adrp x0, .LC49
|
|
add x0, x0, :lo12:.LC49
|
|
ldrb w4, [x1, 2]
|
|
adrp x1, .LANCHOR69
|
|
ldrh w7, [x1, #:lo12:.LANCHOR69]
|
|
adrp x1, .LANCHOR70+56
|
|
ubfx x4, x4, 5, 3
|
|
ldrh w6, [x1, #:lo12:.LANCHOR70+56]
|
|
mov w1, w19
|
|
bl printf
|
|
.L623:
|
|
adrp x0, .LANCHOR8
|
|
mov x20, x0
|
|
ldrh w1, [x0, #:lo12:.LANCHOR8]
|
|
cmp w1, w19
|
|
bhi .L624
|
|
adrp x1, .LANCHOR71
|
|
adrp x0, .LC0
|
|
mov w2, 543
|
|
add x1, x1, :lo12:.LANCHOR71
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L624:
|
|
ldrh w0, [x20, #:lo12:.LANCHOR8]
|
|
cmp w0, w19
|
|
bhi .L625
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L647
|
|
adrp x0, .LC50
|
|
mov w3, w23
|
|
mov w2, w22
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LC50
|
|
bl printf
|
|
.L647:
|
|
mov w0, 0
|
|
b .L622
|
|
.L625:
|
|
adrp x1, .LANCHOR11
|
|
uxtw x0, w19
|
|
ldr x1, [x1, #:lo12:.LANCHOR11]
|
|
ldrh w3, [x1, x0, lsl 1]
|
|
adrp x1, .LANCHOR9
|
|
ldr x1, [x1, #:lo12:.LANCHOR9]
|
|
add x0, x1, x0, lsl 2
|
|
ldrb w2, [x0, 2]
|
|
tst w2, 224
|
|
bne .L627
|
|
cbz w3, .L647
|
|
mov w2, 553
|
|
adrp x1, .LANCHOR71
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR71
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L647
|
|
.L627:
|
|
adrp x0, .LANCHOR70
|
|
add x1, x0, :lo12:.LANCHOR70
|
|
ldrh w0, [x0, #:lo12:.LANCHOR70]
|
|
cmp w0, w19
|
|
beq .L647
|
|
adrp x24, .LANCHOR12
|
|
ldr x0, [x24, #:lo12:.LANCHOR12]
|
|
ldrh w4, [x0, 48]
|
|
cmp w4, w19
|
|
beq .L647
|
|
ldrh w4, [x0, 16]
|
|
cmp w4, w19
|
|
beq .L647
|
|
ldrh w4, [x0, 80]
|
|
cmp w4, w19
|
|
beq .L647
|
|
ldrh w5, [x1, 56]
|
|
add x1, x1, 58
|
|
mov w4, 0
|
|
.L628:
|
|
cmp w4, w5
|
|
bcc .L629
|
|
cbnz w22, .L633
|
|
adrp x1, .LANCHOR72
|
|
ldrh w6, [x1, #:lo12:.LANCHOR72]
|
|
cmp w19, w6
|
|
beq .L647
|
|
adrp x4, .LANCHOR73
|
|
add x4, x4, :lo12:.LANCHOR73
|
|
mov x1, 0
|
|
.L632:
|
|
ldrh w7, [x1, x4]
|
|
cmp w19, w7
|
|
bne .L631
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L647
|
|
mov w5, w6
|
|
mov w4, w19
|
|
ubfx x2, x2, 5, 3
|
|
mov w1, w19
|
|
adrp x0, .LC51
|
|
add x0, x0, :lo12:.LC51
|
|
bl printf
|
|
b .L647
|
|
.L629:
|
|
ldrh w6, [x1], 2
|
|
cmp w6, w19
|
|
beq .L647
|
|
add w4, w4, 1
|
|
b .L628
|
|
.L631:
|
|
add x1, x1, 2
|
|
cmp x1, 16
|
|
bne .L632
|
|
ubfiz x20, x23, 7, 16
|
|
add x20, x20, 136
|
|
add x20, x0, x20
|
|
.L634:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L635
|
|
adrp x0, .LANCHOR69
|
|
mov w4, w3
|
|
mov w1, w19
|
|
ubfx x3, x2, 5, 3
|
|
ldrh w6, [x0, #:lo12:.LANCHOR69]
|
|
mov w2, w22
|
|
adrp x0, .LC52
|
|
add x0, x0, :lo12:.LC52
|
|
bl printf
|
|
.L635:
|
|
mov x0, x20
|
|
add x1, x20, 128
|
|
mov w2, 65535
|
|
.L638:
|
|
ldrh w3, [x0]
|
|
cmp w3, w2
|
|
bne .L636
|
|
strh w19, [x0]
|
|
cbz w22, .L637
|
|
ldr x1, [x24, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x1, 124]
|
|
add w0, w0, 1
|
|
strh w0, [x1, 124]
|
|
.L657:
|
|
mov w0, 1
|
|
.L622:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L633:
|
|
add x20, x0, 392
|
|
b .L634
|
|
.L637:
|
|
ldr x0, [x24, #:lo12:.LANCHOR12]
|
|
add x23, x0, x23, uxth 1
|
|
ldrh w0, [x23, 120]
|
|
add w0, w0, 1
|
|
strh w0, [x23, 120]
|
|
b .L657
|
|
.L636:
|
|
add x0, x0, 2
|
|
cmp x1, x0
|
|
bne .L638
|
|
b .L657
|
|
.size gc_add_sblk, .-gc_add_sblk
|
|
.section .text.gc_mark_bad_ppa,"ax",@progbits
|
|
.align 2
|
|
.global gc_mark_bad_ppa
|
|
.type gc_mark_bad_ppa, %function
|
|
gc_mark_bad_ppa:
|
|
stp x29, x30, [sp, -64]!
|
|
adrp x1, .LANCHOR74
|
|
adrp x3, .LANCHOR31
|
|
add x29, sp, 0
|
|
ldrh w1, [x1, #:lo12:.LANCHOR74]
|
|
ldrb w3, [x3, #:lo12:.LANCHOR31]
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 24
|
|
sub w19, w19, w3
|
|
lsr w2, w0, w1
|
|
sub w19, w19, w1
|
|
adrp x1, .LANCHOR75
|
|
str x23, [sp, 48]
|
|
mov w23, 1
|
|
ldrb w1, [x1, #:lo12:.LANCHOR75]
|
|
lsl w19, w23, w19
|
|
sub w19, w19, #1
|
|
stp x21, x22, [sp, 32]
|
|
and w19, w19, w2
|
|
adrp x20, .LANCHOR70
|
|
add x21, x20, :lo12:.LANCHOR70
|
|
mov w3, w0
|
|
and w22, w2, 65535
|
|
adrp x0, .LC53
|
|
udiv w19, w19, w1
|
|
mov w2, w22
|
|
ldr w1, [x21, 2200]
|
|
add x0, x0, :lo12:.LC53
|
|
and w19, w19, 65535
|
|
bl printf
|
|
mov w1, w23
|
|
mov w2, 0
|
|
mov w0, w19
|
|
bl gc_add_sblk
|
|
ldr w0, [x21, 2200]
|
|
mov w1, 0
|
|
.L659:
|
|
cmp w1, w0
|
|
bcc .L661
|
|
cmp w0, 5
|
|
bhi .L660
|
|
add x20, x20, :lo12:.LANCHOR70
|
|
add w1, w0, 1
|
|
str w1, [x20, 2200]
|
|
add x20, x20, x0, uxtw 1
|
|
strh w22, [x20, 2204]
|
|
.L660:
|
|
mov w0, 0
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L661:
|
|
add x2, x21, x1, sxtw 1
|
|
ldrh w2, [x2, 2204]
|
|
cmp w2, w22
|
|
beq .L660
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
b .L659
|
|
.size gc_mark_bad_ppa, .-gc_mark_bad_ppa
|
|
.section .text.gc_get_src_ppa_from_index,"ax",@progbits
|
|
.align 2
|
|
.global gc_get_src_ppa_from_index
|
|
.type gc_get_src_ppa_from_index, %function
|
|
gc_get_src_ppa_from_index:
|
|
adrp x1, .LANCHOR76
|
|
ubfiz x0, x0, 2, 16
|
|
ldr x1, [x1, #:lo12:.LANCHOR76]
|
|
ldr w0, [x1, x0]
|
|
ret
|
|
.size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
|
|
.section .text.gc_write_completed,"ax",@progbits
|
|
.align 2
|
|
.global gc_write_completed
|
|
.type gc_write_completed, %function
|
|
gc_write_completed:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR63
|
|
stp x23, x24, [sp, 48]
|
|
add x22, x22, :lo12:.LANCHOR63
|
|
stp x25, x26, [sp, 64]
|
|
adrp x23, .LANCHOR55
|
|
add x25, x23, :lo12:.LANCHOR55
|
|
stp x19, x20, [sp, 16]
|
|
str x27, [sp, 80]
|
|
.L665:
|
|
ldrb w0, [x22]
|
|
cmp w0, 255
|
|
bne .L678
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x27, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L678:
|
|
sxtw x20, w0
|
|
add x1, x23, :lo12:.LANCHOR55
|
|
lsl x3, x20, 6
|
|
add x2, x1, x3
|
|
ldrb w0, [x1, x3]
|
|
ldr w1, [x2, 52]
|
|
strb w0, [x22]
|
|
ldrh w24, [x2, 48]
|
|
cbz w1, .L666
|
|
ldr w2, [x2, 40]
|
|
adrp x0, .LANCHOR70
|
|
add x0, x0, :lo12:.LANCHOR70
|
|
mov w3, 1
|
|
str w2, [x0, 2196]
|
|
strh w3, [x0, 2194]
|
|
adrp x0, .LC54
|
|
add x0, x0, :lo12:.LC54
|
|
bl printf
|
|
adrp x1, .LANCHOR77
|
|
adrp x0, .LC0
|
|
mov w2, 956
|
|
add x1, x1, :lo12:.LANCHOR77
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L666:
|
|
adrp x0, .LANCHOR78
|
|
mov x26, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR78]
|
|
cmp w1, 3
|
|
bne .L667
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L667
|
|
adrp x0, .LANCHOR12
|
|
adrp x1, .LANCHOR79
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR79]
|
|
ldrb w0, [x0, 89]
|
|
mov w19, w0
|
|
cmp w1, w0
|
|
bhi .L679
|
|
cmp w0, 2
|
|
mov w0, 2
|
|
csel w19, w19, w0, ls
|
|
.L668:
|
|
add w19, w19, w19, lsl 1
|
|
.L669:
|
|
adrp x1, .LANCHOR82
|
|
and x21, x24, 65535
|
|
add x0, x25, x20, lsl 6
|
|
mov x27, x1
|
|
ldr x2, [x1, #:lo12:.LANCHOR82]
|
|
ldrb w0, [x0, 1]
|
|
ldrb w2, [x2, x21]
|
|
cmp w2, w0
|
|
beq .L670
|
|
adrp x1, .LANCHOR77
|
|
adrp x0, .LC0
|
|
mov w2, 976
|
|
add x1, x1, :lo12:.LANCHOR77
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L670:
|
|
add x0, x25, x20, lsl 6
|
|
ldrb w0, [x0, 61]
|
|
cmp w0, 3
|
|
beq .L671
|
|
ldrb w0, [x26, #:lo12:.LANCHOR78]
|
|
cmp w0, 3
|
|
bne .L671
|
|
adrp x0, .LANCHOR83
|
|
ldrb w0, [x0, #:lo12:.LANCHOR83]
|
|
cbnz w0, .L671
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L671
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L671
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L672
|
|
adrp x0, .LANCHOR81
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cbnz w0, .L671
|
|
.L672:
|
|
ldr x1, [x27, #:lo12:.LANCHOR82]
|
|
mov x0, 0
|
|
add x21, x1, x21
|
|
.L673:
|
|
cmp w19, w0, uxth
|
|
bls .L665
|
|
ldrb w1, [x21, x0]
|
|
add x0, x0, 1
|
|
add x1, x25, x1, lsl 6
|
|
strb wzr, [x1, 61]
|
|
b .L673
|
|
.L679:
|
|
mov w19, 1
|
|
b .L668
|
|
.L667:
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L680
|
|
adrp x0, .LANCHOR81
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cmp w0, 0
|
|
cset w19, ne
|
|
add w19, w19, 1
|
|
b .L669
|
|
.L680:
|
|
mov w19, 1
|
|
b .L669
|
|
.L671:
|
|
adrp x20, .LANCHOR70
|
|
add x20, x20, :lo12:.LANCHOR70
|
|
add x19, x21, x19, uxth
|
|
strh w24, [x20, 2108]
|
|
mov w24, -1
|
|
.L674:
|
|
cmp x21, x19
|
|
beq .L665
|
|
ldr x1, [x27, #:lo12:.LANCHOR82]
|
|
ldrb w0, [x1, x21]
|
|
strb w24, [x1, x21]
|
|
add x21, x21, 1
|
|
sbfiz x1, x0, 6, 32
|
|
ubfiz x0, x0, 6, 8
|
|
add x1, x25, x1
|
|
add x0, x25, x0
|
|
strb wzr, [x1, 61]
|
|
bl zbuf_free
|
|
ldrb w0, [x20, 7]
|
|
sub w0, w0, #1
|
|
strb w0, [x20, 7]
|
|
b .L674
|
|
.size gc_write_completed, .-gc_write_completed
|
|
.section .text.gc_get_src_blk,"ax",@progbits
|
|
.align 2
|
|
.global gc_get_src_blk
|
|
.type gc_get_src_blk, %function
|
|
gc_get_src_blk:
|
|
adrp x0, .LANCHOR12
|
|
ldr x2, [x0, #:lo12:.LANCHOR12]
|
|
adrp x0, .LANCHOR84
|
|
ldrb w3, [x0, #:lo12:.LANCHOR84]
|
|
ldrh w0, [x2, 124]
|
|
cbz w0, .L693
|
|
add x1, x2, 392
|
|
mov w4, 1
|
|
.L694:
|
|
add x5, x1, 128
|
|
mov w6, 65535
|
|
.L698:
|
|
ldrh w0, [x1]
|
|
cmp w0, w6
|
|
beq .L696
|
|
mov w5, -1
|
|
strh w5, [x1]
|
|
cbz w4, .L697
|
|
ldrh w1, [x2, 124]
|
|
sub w1, w1, #1
|
|
strh w1, [x2, 124]
|
|
ret
|
|
.L693:
|
|
add x0, x2, x3, sxtw 1
|
|
ldrh w0, [x0, 120]
|
|
cbz w0, .L699
|
|
ubfiz x1, x3, 7, 8
|
|
mov w4, 0
|
|
add x1, x1, 136
|
|
add x1, x2, x1
|
|
b .L694
|
|
.L697:
|
|
add x2, x2, x3, uxtb 1
|
|
ldrh w1, [x2, 120]
|
|
sub w1, w1, #1
|
|
strh w1, [x2, 120]
|
|
ret
|
|
.L696:
|
|
add x1, x1, 2
|
|
cmp x1, x5
|
|
bne .L698
|
|
ret
|
|
.L699:
|
|
mov w0, 65535
|
|
ret
|
|
.size gc_get_src_blk, .-gc_get_src_blk
|
|
.section .text.gc_free_temp_buf,"ax",@progbits
|
|
.align 2
|
|
.global gc_free_temp_buf
|
|
.type gc_free_temp_buf, %function
|
|
gc_free_temp_buf:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR70
|
|
add x0, x20, :lo12:.LANCHOR70
|
|
stp x21, x22, [sp, 32]
|
|
ldrb w1, [x0, 7]
|
|
cbz w1, .L708
|
|
adrp x1, .LANCHOR57
|
|
ldrb w1, [x1, #:lo12:.LANCHOR57]
|
|
cmp w1, 1
|
|
bhi .L708
|
|
ldrh w19, [x0, 2108]
|
|
adrp x2, .LANCHOR79
|
|
adrp x0, .LANCHOR85
|
|
adrp x21, .LANCHOR82
|
|
ldrb w2, [x2, #:lo12:.LANCHOR79]
|
|
add w1, w19, 24
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
ldr x4, [x21, #:lo12:.LANCHOR82]
|
|
mul w0, w0, w2
|
|
cmp w0, w1
|
|
csel w1, w0, w1, ls
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
.L703:
|
|
cmp w19, w1
|
|
bcc .L706
|
|
.L708:
|
|
mov w0, 0
|
|
b .L701
|
|
.L706:
|
|
uxtw x22, w19
|
|
ldrb w2, [x4, x22]
|
|
cmp w2, 255
|
|
beq .L704
|
|
sbfiz x3, x2, 6, 32
|
|
add x3, x0, x3
|
|
ldrb w3, [x3, 61]
|
|
cbnz w3, .L704
|
|
ubfiz x2, x2, 6, 8
|
|
add x0, x0, x2
|
|
bl zbuf_free
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L705
|
|
ldr x0, [x21, #:lo12:.LANCHOR82]
|
|
mov w1, w19
|
|
ldrb w2, [x0, x22]
|
|
adrp x0, .LC55
|
|
add x0, x0, :lo12:.LC55
|
|
bl printf
|
|
.L705:
|
|
ldr x0, [x21, #:lo12:.LANCHOR82]
|
|
add x20, x20, :lo12:.LANCHOR70
|
|
mov w1, -1
|
|
strb w1, [x0, x22]
|
|
ldrb w0, [x20, 7]
|
|
sub w0, w0, #1
|
|
strb w0, [x20, 7]
|
|
mov w0, 1
|
|
.L701:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L704:
|
|
add w19, w19, 1
|
|
b .L703
|
|
.size gc_free_temp_buf, .-gc_free_temp_buf
|
|
.section .text.get_ink_scaned_blk,"ax",@progbits
|
|
.align 2
|
|
.global get_ink_scaned_blk
|
|
.type get_ink_scaned_blk, %function
|
|
get_ink_scaned_blk:
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
ldrh w2, [x1, 2112]
|
|
cbz w2, .L718
|
|
sub w2, w2, #1
|
|
strh w2, [x1, 2112]
|
|
add x0, x1, x2, sxtw 1
|
|
ldrh w0, [x0, 2114]
|
|
ret
|
|
.L718:
|
|
mov w0, 65535
|
|
ret
|
|
.size get_ink_scaned_blk, .-get_ink_scaned_blk
|
|
.section .text.print_gc_debug_info,"ax",@progbits
|
|
.align 2
|
|
.global print_gc_debug_info
|
|
.type print_gc_debug_info, %function
|
|
print_gc_debug_info:
|
|
adrp x2, .LANCHOR86
|
|
adrp x1, .LANCHOR70
|
|
add x0, x1, :lo12:.LANCHOR70
|
|
ldrh w6, [x2, #:lo12:.LANCHOR86]
|
|
adrp x2, .LANCHOR57
|
|
ldrh w1, [x1, #:lo12:.LANCHOR70]
|
|
ldrb w5, [x0, 7]
|
|
ldrb w4, [x2, #:lo12:.LANCHOR57]
|
|
ldrh w3, [x0, 2106]
|
|
ldrh w2, [x0, 2]
|
|
adrp x0, .LC56
|
|
add x0, x0, :lo12:.LC56
|
|
b printf
|
|
.size print_gc_debug_info, .-print_gc_debug_info
|
|
.section .text._list_pop_index_node,"ax",@progbits
|
|
.align 2
|
|
.global _list_pop_index_node
|
|
.type _list_pop_index_node, %function
|
|
_list_pop_index_node:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
ldr x20, [x0]
|
|
cbz x20, .L726
|
|
adrp x3, .LANCHOR4
|
|
and w1, w1, 65535
|
|
mov w4, 65535
|
|
mov w5, 6
|
|
ldr x19, [x3, #:lo12:.LANCHOR4]
|
|
.L722:
|
|
cbnz w1, .L723
|
|
.L725:
|
|
sub x19, x20, x19
|
|
mov x1, -6148914691236517206
|
|
asr x19, x19, 1
|
|
movk x1, 0xaaab, lsl 0
|
|
mul x19, x19, x1
|
|
and w19, w19, 65535
|
|
mov w1, w19
|
|
bl _list_remove_node
|
|
mov w0, -1
|
|
strh w0, [x20]
|
|
strh w0, [x20, 2]
|
|
mov w0, w19
|
|
.L720:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L723:
|
|
ldrh w3, [x20]
|
|
cmp w3, w4
|
|
beq .L725
|
|
sub w1, w1, #1
|
|
umaddl x20, w3, w5, x19
|
|
and w1, w1, 65535
|
|
b .L722
|
|
.L726:
|
|
mov w0, 65535
|
|
b .L720
|
|
.size _list_pop_index_node, .-_list_pop_index_node
|
|
.section .text._list_get_gc_head_node,"ax",@progbits
|
|
.align 2
|
|
.global _list_get_gc_head_node
|
|
.type _list_get_gc_head_node, %function
|
|
_list_get_gc_head_node:
|
|
ldr x0, [x0]
|
|
and w1, w1, 65535
|
|
cbz x0, .L733
|
|
adrp x2, .LANCHOR4
|
|
mov w3, 65535
|
|
mov w4, 6
|
|
ldr x2, [x2, #:lo12:.LANCHOR4]
|
|
.L730:
|
|
cbz w1, .L731
|
|
ldrh w0, [x0]
|
|
cmp w0, w3
|
|
bne .L732
|
|
ret
|
|
.L732:
|
|
sub w1, w1, #1
|
|
umaddl x0, w0, w4, x2
|
|
and w1, w1, 65535
|
|
b .L730
|
|
.L733:
|
|
mov w0, 65535
|
|
ret
|
|
.L731:
|
|
sub x0, x0, x2
|
|
mov x1, -6148914691236517206
|
|
asr x0, x0, 1
|
|
movk x1, 0xaaab, lsl 0
|
|
mul x0, x0, x1
|
|
and w0, w0, 65535
|
|
ret
|
|
.size _list_get_gc_head_node, .-_list_get_gc_head_node
|
|
.section .text.gc_search_src_blk,"ax",@progbits
|
|
.align 2
|
|
.global gc_search_src_blk
|
|
.type gc_search_src_blk, %function
|
|
gc_search_src_blk:
|
|
stp x29, x30, [sp, -176]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
and w0, w1, 255
|
|
stp x19, x20, [sp, 16]
|
|
str w0, [x29, 160]
|
|
adrp x0, .LANCHOR12
|
|
and w19, w2, 255
|
|
stp x23, x24, [sp, 48]
|
|
ldr x2, [x0, #:lo12:.LANCHOR12]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
add x0, x2, x22, sxtw 1
|
|
ldrh w21, [x0, 120]
|
|
cbz w21, .L736
|
|
mov w0, w21
|
|
.L735:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 176
|
|
ret
|
|
.L736:
|
|
adrp x0, .LANCHOR70
|
|
add x1, x0, :lo12:.LANCHOR70
|
|
ldrh w1, [x1, 56]
|
|
cmp w1, 1
|
|
bhi .L738
|
|
adrp x3, .LANCHOR87
|
|
strh wzr, [x3, #:lo12:.LANCHOR87]
|
|
adrp x3, .LANCHOR88
|
|
strh wzr, [x3, #:lo12:.LANCHOR88]
|
|
adrp x3, .LANCHOR89
|
|
strh wzr, [x3, #:lo12:.LANCHOR89]
|
|
.L738:
|
|
cbnz w22, .L739
|
|
adrp x26, .LANCHOR88
|
|
adrp x25, .LANCHOR90
|
|
add x23, x26, :lo12:.LANCHOR88
|
|
add x25, x25, :lo12:.LANCHOR90
|
|
mov w24, 0
|
|
mov w20, 0
|
|
mov w27, 65535
|
|
.L740:
|
|
cmp w19, w20
|
|
blt .L745
|
|
ldrh w6, [x23]
|
|
mov x0, x25
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
add w2, w6, 1
|
|
and w2, w2, 65535
|
|
strh w2, [x23]
|
|
and w1, w0, 65535
|
|
mov w28, w1
|
|
cmp w1, w27
|
|
beq .L741
|
|
adrp x0, .LANCHOR19
|
|
adrp x6, .LANCHOR11
|
|
uxtw x4, w1
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L742
|
|
ldr x0, [x6, #:lo12:.LANCHOR11]
|
|
stp x6, x4, [x29, 144]
|
|
ldrh w3, [x0, x4, lsl 1]
|
|
adrp x0, .LC57
|
|
add x0, x0, :lo12:.LC57
|
|
bl printf
|
|
ldp x6, x4, [x29, 144]
|
|
.L742:
|
|
ldr x0, [x6, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x0, x4, lsl 1]
|
|
adrp x0, .LANCHOR69
|
|
ldrh w0, [x0, #:lo12:.LANCHOR69]
|
|
cmp w1, w0
|
|
bcs .L743
|
|
mov w2, 0
|
|
mov w1, 0
|
|
mov w0, w28
|
|
bl gc_add_sblk
|
|
cbz w0, .L744
|
|
add w5, w24, 1
|
|
and w24, w5, 65535
|
|
cmp w24, w19
|
|
bcc .L744
|
|
.L745:
|
|
ldr x0, [x29, 160]
|
|
tbz x0, 1, .L747
|
|
adrp x0, .LANCHOR91
|
|
ldrh w0, [x0, #:lo12:.LANCHOR91]
|
|
cmp w0, 32
|
|
bls .L747
|
|
adrp x23, .LANCHOR93
|
|
adrp x20, .LANCHOR89
|
|
adrp x26, .LANCHOR92
|
|
add x20, x20, :lo12:.LANCHOR89
|
|
add x26, x26, :lo12:.LANCHOR92
|
|
add x27, x23, :lo12:.LANCHOR93
|
|
mov w25, 0
|
|
.L748:
|
|
cmp w19, w25
|
|
blt .L752
|
|
ldrh w6, [x20]
|
|
mov x0, x26
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
add w6, w6, 1
|
|
strh w6, [x20]
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L749
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x2, x1]
|
|
ldrh w1, [x27]
|
|
cmp w2, w1
|
|
bcs .L749
|
|
mov w2, 0
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L751
|
|
add w5, w24, 1
|
|
and w24, w5, 65535
|
|
cmp w24, w19
|
|
bcc .L751
|
|
.L752:
|
|
cmp w24, w19
|
|
adrp x0, .LANCHOR94
|
|
bcs .L754
|
|
ldrh w1, [x0, #:lo12:.LANCHOR94]
|
|
adrp x3, .LANCHOR79
|
|
adrp x0, .LANCHOR85
|
|
ldrh w2, [x23, #:lo12:.LANCHOR93]
|
|
ldrb w3, [x3, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w3
|
|
sub w0, w0, w1, lsr 2
|
|
cmp w2, w0
|
|
bge .L747
|
|
add w1, w2, w1, lsr 3
|
|
strh w1, [x23, #:lo12:.LANCHOR93]
|
|
.L747:
|
|
ldr x0, [x29, 160]
|
|
tbz x0, 0, .L755
|
|
and w23, w19, 65535
|
|
cmp w24, w23
|
|
bcs .L755
|
|
adrp x20, .LANCHOR87
|
|
adrp x25, .LANCHOR95
|
|
add x20, x20, :lo12:.LANCHOR87
|
|
add x25, x25, :lo12:.LANCHOR95
|
|
mov w26, 65535
|
|
.L760:
|
|
ldrh w6, [x20]
|
|
mov x0, x25
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
add w6, w6, 1
|
|
strh w6, [x20]
|
|
cmp w26, w0, uxth
|
|
beq .L756
|
|
mov w2, 0
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L757
|
|
add w5, w24, 1
|
|
and w24, w5, 65535
|
|
cmp w23, w24
|
|
bhi .L757
|
|
.L758:
|
|
adrp x0, .LANCHOR94
|
|
adrp x1, .LANCHOR69
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
ldrh w2, [x1, #:lo12:.LANCHOR69]
|
|
cmp w2, w0, lsr 1
|
|
bls .L755
|
|
sub w0, w2, w0, lsr 3
|
|
b .L846
|
|
.L743:
|
|
strh wzr, [x26, #:lo12:.LANCHOR88]
|
|
b .L745
|
|
.L741:
|
|
strh wzr, [x23]
|
|
b .L745
|
|
.L744:
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
b .L740
|
|
.L749:
|
|
strh wzr, [x20]
|
|
b .L752
|
|
.L751:
|
|
add w25, w25, 1
|
|
and w25, w25, 65535
|
|
b .L748
|
|
.L754:
|
|
ldrh w1, [x23, #:lo12:.LANCHOR93]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w1, w0
|
|
bls .L747
|
|
sub w0, w1, w0, lsr 3
|
|
strh w0, [x23, #:lo12:.LANCHOR93]
|
|
b .L747
|
|
.L756:
|
|
strh wzr, [x20]
|
|
.L759:
|
|
cmp w24, w23
|
|
bcs .L758
|
|
adrp x1, .LANCHOR69
|
|
adrp x0, .LANCHOR94
|
|
ldrh w2, [x1, #:lo12:.LANCHOR69]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w2, w0
|
|
bcs .L755
|
|
add w0, w2, w0, lsr 3
|
|
.L846:
|
|
strh w0, [x1, #:lo12:.LANCHOR69]
|
|
.L755:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L791
|
|
ldr w2, [x29, 160]
|
|
adrp x0, .LC58
|
|
mov w4, w19
|
|
mov w3, w24
|
|
mov w1, w22
|
|
add x0, x0, :lo12:.LC58
|
|
bl printf
|
|
.L791:
|
|
mov w0, w24
|
|
b .L735
|
|
.L757:
|
|
add w21, w21, 1
|
|
and w21, w21, 65535
|
|
cmp w23, w21
|
|
bhi .L760
|
|
b .L759
|
|
.L739:
|
|
adrp x23, .LANCHOR79
|
|
adrp x25, .LANCHOR85
|
|
stp x25, x23, [x29, 144]
|
|
cmp w19, 1
|
|
ldrb w20, [x23, #:lo12:.LANCHOR79]
|
|
ldrh w3, [x25, #:lo12:.LANCHOR85]
|
|
mul w20, w20, w3
|
|
and w20, w20, 65535
|
|
bne .L761
|
|
cbz w1, .L761
|
|
ldrh w3, [x2, 80]
|
|
mov w2, 65535
|
|
cmp w3, w2
|
|
beq .L794
|
|
add x2, x0, :lo12:.LANCHOR70
|
|
ldrh w2, [x2, 2106]
|
|
sub w20, w20, w2
|
|
and w20, w20, 65535
|
|
.L794:
|
|
mov w19, 8
|
|
.L761:
|
|
add x0, x0, :lo12:.LANCHOR70
|
|
strh wzr, [x0, 2192]
|
|
adrp x0, .LANCHOR96
|
|
strh wzr, [x0, #:lo12:.LANCHOR96]
|
|
ldr w0, [x29, 160]
|
|
and w0, w0, 1
|
|
str w0, [x29, 128]
|
|
ldr x0, [x29, 160]
|
|
tbz x0, 0, .L795
|
|
adrp x2, .LANCHOR98
|
|
adrp x26, .LANCHOR97
|
|
str x2, [x29, 120]
|
|
ldrh w0, [x26, #:lo12:.LANCHOR97]
|
|
ldrh w3, [x2, #:lo12:.LANCHOR98]
|
|
cmp w0, w3, lsr 2
|
|
bhi .L763
|
|
adrp x2, .LANCHOR99
|
|
ldrh w2, [x2, #:lo12:.LANCHOR99]
|
|
cmp w2, w0
|
|
bcs .L796
|
|
.L763:
|
|
cmp w1, 1
|
|
adrp x25, .LANCHOR87
|
|
adrp x28, .LANCHOR95
|
|
bls .L765
|
|
.L767:
|
|
mov w24, 0
|
|
.L766:
|
|
add x0, x28, :lo12:.LANCHOR95
|
|
add x25, x25, :lo12:.LANCHOR87
|
|
adrp x28, .LANCHOR99
|
|
add x28, x28, :lo12:.LANCHOR99
|
|
mov w23, 0
|
|
mov w27, 64
|
|
str x0, [x29, 136]
|
|
.L770:
|
|
ldrh w7, [x25]
|
|
ldr x0, [x29, 136]
|
|
mov w1, w7
|
|
bl _list_get_gc_head_node
|
|
and w6, w0, 65535
|
|
str w6, [x29, 112]
|
|
mov w1, 65535
|
|
cmp w6, w1
|
|
beq .L768
|
|
add w7, w7, 1
|
|
mov w2, w22
|
|
strh w7, [x25]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L769
|
|
adrp x0, .LANCHOR11
|
|
ldr w6, [x29, 112]
|
|
add w5, w24, 1
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
and w24, w5, 65535
|
|
ubfiz x6, x6, 1, 16
|
|
cmp w24, w19
|
|
ldrh w0, [x0, x6]
|
|
add w3, w23, w0
|
|
and w23, w3, 65535
|
|
bcs .L764
|
|
cmp w20, w23
|
|
bcc .L764
|
|
ldrh w0, [x28]
|
|
ldrh w1, [x26, #:lo12:.LANCHOR97]
|
|
cmp w0, w1, lsl 1
|
|
ble .L769
|
|
.L764:
|
|
adrp x0, .LANCHOR99
|
|
ldrh w1, [x0, #:lo12:.LANCHOR99]
|
|
ldr x0, [x29, 120]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR98]
|
|
cmp w1, w0, lsr 2
|
|
bhi .L792
|
|
ldrh w0, [x26, #:lo12:.LANCHOR97]
|
|
add w0, w0, 8
|
|
cmp w1, w0
|
|
ble .L762
|
|
.L792:
|
|
cmp w20, w23
|
|
bls .L762
|
|
adrp x7, .LANCHOR88
|
|
and w25, w19, 65535
|
|
add x28, x7, :lo12:.LANCHOR88
|
|
adrp x0, .LANCHOR90
|
|
mov w26, 64
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
adrp x27, .LANCHOR11
|
|
str x0, [x29, 136]
|
|
.L773:
|
|
ldrh w6, [x28]
|
|
ldr x0, [x29, 136]
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
and w4, w0, 65535
|
|
str w4, [x29, 120]
|
|
mov w1, 65535
|
|
cmp w4, w1
|
|
beq .L771
|
|
add w6, w6, 1
|
|
mov w2, w22
|
|
strh w6, [x28]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L772
|
|
ldr w4, [x29, 120]
|
|
add w5, w24, 1
|
|
ldr x0, [x27, #:lo12:.LANCHOR11]
|
|
and w24, w5, 65535
|
|
cmp w24, w25
|
|
ubfiz x4, x4, 1, 16
|
|
ldrh w0, [x0, x4]
|
|
add w3, w23, w0
|
|
and w23, w3, 65535
|
|
bcs .L762
|
|
cmp w20, w23
|
|
bcs .L772
|
|
.L762:
|
|
ldr x0, [x29, 160]
|
|
tbz x0, 1, .L774
|
|
adrp x0, .LANCHOR91
|
|
str x0, [x29, 112]
|
|
ldrh w1, [x0, #:lo12:.LANCHOR91]
|
|
cmp w1, 32
|
|
bls .L774
|
|
cmp w23, w20
|
|
bcs .L774
|
|
adrp x25, .LANCHOR89
|
|
adrp x0, .LANCHOR92
|
|
add x28, x25, :lo12:.LANCHOR89
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
adrp x27, .LANCHOR100
|
|
str x0, [x29, 120]
|
|
mov w26, 64
|
|
add x0, x27, :lo12:.LANCHOR100
|
|
str x0, [x29, 136]
|
|
.L780:
|
|
ldrh w6, [x28]
|
|
ldr x0, [x29, 120]
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
and w8, w0, 65535
|
|
mov w1, 65535
|
|
cmp w8, w1
|
|
beq .L775
|
|
add w6, w6, 1
|
|
strh w6, [x28]
|
|
cmp w19, 1
|
|
bne .L776
|
|
ldp x2, x1, [x29, 144]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR79]
|
|
ldrh w2, [x2, #:lo12:.LANCHOR85]
|
|
mul w2, w1, w2
|
|
adrp x1, .LANCHOR94
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
sub w1, w2, w1, lsr 3
|
|
ldr x2, [x29, 136]
|
|
strh w1, [x2]
|
|
.L776:
|
|
ubfiz x6, x8, 1, 16
|
|
adrp x8, .LANCHOR11
|
|
stp x8, x6, [x29, 96]
|
|
ldr x1, [x8, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x1, x6]
|
|
ldr x1, [x29, 136]
|
|
ldrh w1, [x1]
|
|
cmp w2, w1
|
|
bcs .L777
|
|
mov w2, w22
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L778
|
|
ldp x8, x6, [x29, 96]
|
|
add w5, w24, 1
|
|
add w21, w21, 1
|
|
and w24, w5, 65535
|
|
and w21, w21, 65535
|
|
cmp w24, w19
|
|
ldr x0, [x8, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x0, x6]
|
|
add w3, w23, w0
|
|
and w23, w3, 65535
|
|
bcs .L779
|
|
cmp w20, w23
|
|
bcs .L778
|
|
.L779:
|
|
cmp w24, w19
|
|
adrp x0, .LANCHOR94
|
|
bcc .L781
|
|
cbnz w21, .L782
|
|
ldr x1, [x29, 112]
|
|
ldrh w2, [x1, #:lo12:.LANCHOR91]
|
|
adrp x1, .LANCHOR101
|
|
ldrh w1, [x1, #:lo12:.LANCHOR101]
|
|
cmp w2, w1
|
|
bls .L782
|
|
.L781:
|
|
ldrh w2, [x0, #:lo12:.LANCHOR94]
|
|
ldp x0, x3, [x29, 144]
|
|
ldrh w1, [x27, #:lo12:.LANCHOR100]
|
|
lsr w2, w2, 3
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
ldrb w6, [x3, #:lo12:.LANCHOR79]
|
|
mul w0, w0, w6
|
|
sub w0, w0, w2
|
|
cmp w1, w0
|
|
bge .L774
|
|
add w1, w1, w2
|
|
strh w1, [x27, #:lo12:.LANCHOR100]
|
|
.L774:
|
|
ldr w0, [x29, 128]
|
|
cbz w0, .L755
|
|
and w27, w19, 65535
|
|
cmp w24, w27
|
|
bcs .L755
|
|
cmp w23, w20
|
|
bcs .L755
|
|
adrp x26, .LANCHOR90
|
|
adrp x4, .LANCHOR88
|
|
add x0, x26, :lo12:.LANCHOR90
|
|
add x28, x4, :lo12:.LANCHOR88
|
|
adrp x21, .LANCHOR102
|
|
str x0, [x29, 144]
|
|
mov w25, 64
|
|
add x0, x21, :lo12:.LANCHOR102
|
|
adrp x26, .LANCHOR11
|
|
str x0, [x29, 136]
|
|
.L790:
|
|
ldrh w6, [x28]
|
|
ldr x0, [x29, 144]
|
|
mov w1, w6
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L784
|
|
add w6, w6, 1
|
|
strh w6, [x28]
|
|
ubfiz x6, x1, 1, 16
|
|
ldr x1, [x26, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x1, x6]
|
|
ldr x1, [x29, 136]
|
|
ldrh w1, [x1]
|
|
cmp w2, w1
|
|
bcs .L785
|
|
adrp x1, .LANCHOR98
|
|
ldrh w2, [x1, #:lo12:.LANCHOR98]
|
|
adrp x1, .LANCHOR99
|
|
ldrh w1, [x1, #:lo12:.LANCHOR99]
|
|
cmp w1, w2, lsr 1
|
|
bls .L786
|
|
.L785:
|
|
mov w2, w22
|
|
mov w1, 0
|
|
str x6, [x29, 128]
|
|
bl gc_add_sblk
|
|
cbz w0, .L787
|
|
adrp x0, .LANCHOR11
|
|
ldr x6, [x29, 128]
|
|
add w5, w24, 1
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
and w24, w5, 65535
|
|
cmp w27, w24
|
|
ldrh w0, [x0, x6]
|
|
add w3, w23, w0
|
|
and w23, w3, 65535
|
|
bls .L788
|
|
cmp w20, w23
|
|
bcs .L787
|
|
.L789:
|
|
adrp x0, .LANCHOR94
|
|
ldrh w1, [x21, #:lo12:.LANCHOR102]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w1, w0, lsr 1
|
|
bls .L755
|
|
sub w0, w1, w0, lsr 3
|
|
strh w0, [x21, #:lo12:.LANCHOR102]
|
|
b .L755
|
|
.L765:
|
|
lsr w0, w0, 2
|
|
mov w1, 0
|
|
strh w0, [x25, #:lo12:.LANCHOR87]
|
|
add x0, x28, :lo12:.LANCHOR95
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L767
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x3, [x2, #:lo12:.LANCHOR11]
|
|
adrp x2, .LANCHOR94
|
|
ldrh w2, [x2, #:lo12:.LANCHOR94]
|
|
ldrh w1, [x3, x1]
|
|
cmp w1, w2, lsr 2
|
|
bcs .L767
|
|
mov w1, 1
|
|
mov w2, w22
|
|
strh w1, [x25, #:lo12:.LANCHOR87]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cmp w0, 0
|
|
cset w24, ne
|
|
b .L766
|
|
.L768:
|
|
strh wzr, [x25]
|
|
b .L764
|
|
.L769:
|
|
sub w27, w27, #1
|
|
ands w27, w27, 65535
|
|
bne .L770
|
|
b .L764
|
|
.L771:
|
|
cmp w6, 64
|
|
bls .L762
|
|
strh wzr, [x28]
|
|
b .L762
|
|
.L772:
|
|
sub w26, w26, #1
|
|
ands w26, w26, 65535
|
|
bne .L773
|
|
b .L762
|
|
.L795:
|
|
mov w23, 0
|
|
mov w24, 0
|
|
b .L762
|
|
.L777:
|
|
strh wzr, [x25, #:lo12:.LANCHOR89]
|
|
b .L779
|
|
.L775:
|
|
strh wzr, [x28]
|
|
b .L779
|
|
.L778:
|
|
sub w26, w26, #1
|
|
ands w26, w26, 65535
|
|
bne .L780
|
|
b .L779
|
|
.L782:
|
|
ldr x1, [x29, 152]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
ldrh w2, [x27, #:lo12:.LANCHOR100]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR79]
|
|
mul w1, w1, w0
|
|
cmp w2, w1
|
|
ble .L755
|
|
sub w0, w2, w0, lsr 3
|
|
strh w0, [x27, #:lo12:.LANCHOR100]
|
|
b .L755
|
|
.L784:
|
|
cmp w6, 64
|
|
bls .L786
|
|
strh wzr, [x28]
|
|
.L786:
|
|
cmp w24, w27
|
|
bcc .L789
|
|
.L788:
|
|
adrp x0, .LANCHOR94
|
|
ldrh w2, [x21, #:lo12:.LANCHOR102]
|
|
ldrh w1, [x0, #:lo12:.LANCHOR94]
|
|
ldr x0, [x29, 152]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
mul w0, w0, w1
|
|
sub w0, w0, #32
|
|
cmp w2, w0
|
|
bge .L755
|
|
add w1, w2, w1, lsr 3
|
|
strh w1, [x21, #:lo12:.LANCHOR102]
|
|
b .L755
|
|
.L787:
|
|
sub w25, w25, #1
|
|
ands w25, w25, 65535
|
|
bne .L790
|
|
b .L786
|
|
.L796:
|
|
mov w23, 0
|
|
mov w24, 0
|
|
b .L764
|
|
.size gc_search_src_blk, .-gc_search_src_blk
|
|
.section .text.zftl_get_gc_node,"ax",@progbits
|
|
.align 2
|
|
.global zftl_get_gc_node
|
|
.type zftl_get_gc_node, %function
|
|
zftl_get_gc_node:
|
|
and w1, w1, 65535
|
|
and w0, w0, 65535
|
|
cmp w1, 5
|
|
bne .L848
|
|
mov w1, w0
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
.L850:
|
|
b _list_get_gc_head_node
|
|
.L848:
|
|
cmp w1, 2
|
|
mov w1, w0
|
|
bne .L849
|
|
adrp x0, .LANCHOR95
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
b .L850
|
|
.L849:
|
|
adrp x0, .LANCHOR90
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
b .L850
|
|
.size zftl_get_gc_node, .-zftl_get_gc_node
|
|
.section .text.zftl_insert_free_list,"ax",@progbits
|
|
.align 2
|
|
.global zftl_insert_free_list
|
|
.type zftl_insert_free_list, %function
|
|
zftl_insert_free_list:
|
|
and w1, w0, 65535
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x1, uxth 2
|
|
ldrb w0, [x0, 2]
|
|
ands w0, w0, 24
|
|
bne .L852
|
|
adrp x2, .LANCHOR103
|
|
adrp x0, .LANCHOR104
|
|
add x2, x2, :lo12:.LANCHOR103
|
|
add x0, x0, :lo12:.LANCHOR104
|
|
.L854:
|
|
b _insert_free_list
|
|
.L852:
|
|
cmp w0, 16
|
|
bne .L853
|
|
adrp x2, .LANCHOR105
|
|
adrp x0, .LANCHOR106
|
|
add x2, x2, :lo12:.LANCHOR105
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
b .L854
|
|
.L853:
|
|
adrp x2, .LANCHOR107
|
|
adrp x0, .LANCHOR108
|
|
add x2, x2, :lo12:.LANCHOR107
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
b .L854
|
|
.size zftl_insert_free_list, .-zftl_insert_free_list
|
|
.section .text.zftl_insert_data_list,"ax",@progbits
|
|
.align 2
|
|
.global zftl_insert_data_list
|
|
.type zftl_insert_data_list, %function
|
|
zftl_insert_data_list:
|
|
and w1, w0, 65535
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x1, uxth 2
|
|
ldrb w2, [x0, 2]
|
|
and w2, w2, 224
|
|
cmp w2, 64
|
|
bne .L856
|
|
adrp x2, .LANCHOR97
|
|
adrp x0, .LANCHOR95
|
|
add x2, x2, :lo12:.LANCHOR97
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
.L859:
|
|
b _insert_data_list
|
|
.L856:
|
|
cmp w2, 96
|
|
bne .L857
|
|
adrp x2, .LANCHOR99
|
|
adrp x0, .LANCHOR90
|
|
add x2, x2, :lo12:.LANCHOR99
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
b .L859
|
|
.L857:
|
|
cmp w2, 160
|
|
bne .L855
|
|
adrp x2, .LANCHOR91
|
|
adrp x0, .LANCHOR92
|
|
add x2, x2, :lo12:.LANCHOR91
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
b .L859
|
|
.L855:
|
|
ret
|
|
.size zftl_insert_data_list, .-zftl_insert_data_list
|
|
.section .text.zftl_gc_get_free_sblk,"ax",@progbits
|
|
.align 2
|
|
.global zftl_gc_get_free_sblk
|
|
.type zftl_gc_get_free_sblk, %function
|
|
zftl_gc_get_free_sblk:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR12
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 65535
|
|
ldr x0, [x20, #:lo12:.LANCHOR12]
|
|
and w22, w1, 65535
|
|
ldrh w19, [x0, 588]
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L861
|
|
cbnz w21, .L861
|
|
mov w1, w19
|
|
adrp x0, .LC59
|
|
add x0, x0, :lo12:.LC59
|
|
bl printf
|
|
ldr x0, [x20, #:lo12:.LANCHOR12]
|
|
mov w1, -1
|
|
strh w1, [x0, 588]
|
|
.L862:
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L861:
|
|
adrp x2, .LANCHOR105
|
|
adrp x20, .LANCHOR107
|
|
ldrh w0, [x2, #:lo12:.LANCHOR105]
|
|
ldrh w1, [x20, #:lo12:.LANCHOR107]
|
|
cmp w0, w1
|
|
bcc .L863
|
|
adrp x3, .LANCHOR103
|
|
ldrh w3, [x3, #:lo12:.LANCHOR103]
|
|
cmp w3, w0
|
|
bls .L864
|
|
cbz w1, .L864
|
|
.L863:
|
|
cbnz w21, .L865
|
|
lsr w1, w1, 2
|
|
.L866:
|
|
adrp x0, .LANCHOR108
|
|
add x2, x20, :lo12:.LANCHOR107
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
.L881:
|
|
bl _list_pop_index_node
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
bne .L869
|
|
adrp x0, .LANCHOR103
|
|
ldrh w5, [x20, #:lo12:.LANCHOR107]
|
|
mov w2, w22
|
|
mov w1, w19
|
|
ldrh w4, [x0, #:lo12:.LANCHOR103]
|
|
adrp x0, .LANCHOR104
|
|
ldr x3, [x0, #:lo12:.LANCHOR104]
|
|
adrp x0, .LC60
|
|
add x0, x0, :lo12:.LC60
|
|
bl printf
|
|
.L869:
|
|
cbz w21, .L862
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L862
|
|
adrp x4, .LANCHOR11
|
|
adrp x1, .LANCHOR9
|
|
uxtw x3, w19
|
|
ldr x1, [x1, #:lo12:.LANCHOR9]
|
|
lsl x0, x3, 2
|
|
ldr x6, [x4, #:lo12:.LANCHOR11]
|
|
add x2, x1, x0
|
|
ldr w4, [x1, x0]
|
|
ldrh w6, [x6, x3, lsl 1]
|
|
ldrb w2, [x2, 2]
|
|
ldrh w5, [x1, x0]
|
|
ubfx x4, x4, 11, 8
|
|
mov w1, w19
|
|
adrp x0, .LC61
|
|
ubfx x3, x2, 3, 2
|
|
and w5, w5, 2047
|
|
ubfx x2, x2, 5, 3
|
|
add x0, x0, :lo12:.LC61
|
|
bl printf
|
|
b .L862
|
|
.L865:
|
|
mov w1, 7
|
|
mul w1, w0, w1
|
|
lsr w1, w1, 3
|
|
b .L866
|
|
.L864:
|
|
lsr w1, w0, 3
|
|
cmp w21, 0
|
|
adrp x0, .LANCHOR106
|
|
csel w1, w1, wzr, ne
|
|
add x2, x2, :lo12:.LANCHOR105
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
b .L881
|
|
.size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
|
|
.section .text.zftl_get_free_sblk,"ax",@progbits
|
|
.align 2
|
|
.global zftl_get_free_sblk
|
|
.type zftl_get_free_sblk, %function
|
|
zftl_get_free_sblk:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w1, 65535
|
|
str x21, [sp, 32]
|
|
cmp w20, 5
|
|
bne .L883
|
|
adrp x2, .LANCHOR105
|
|
adrp x0, .LANCHOR107
|
|
ldrh w3, [x2, #:lo12:.LANCHOR105]
|
|
ldrh w1, [x0, #:lo12:.LANCHOR107]
|
|
cmp w3, w1
|
|
bcc .L884
|
|
adrp x4, .LANCHOR103
|
|
ldrh w4, [x4, #:lo12:.LANCHOR103]
|
|
cmp w4, w3
|
|
bls .L885
|
|
cbz w1, .L885
|
|
.L884:
|
|
add x2, x0, :lo12:.LANCHOR107
|
|
lsr w1, w1, 1
|
|
.L904:
|
|
adrp x0, .LANCHOR108
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
b .L903
|
|
.L885:
|
|
adrp x0, .LANCHOR106
|
|
add x2, x2, :lo12:.LANCHOR105
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
mov w1, 0
|
|
.L903:
|
|
bl _list_pop_index_node
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
bne .L888
|
|
adrp x0, .LANCHOR107
|
|
mov w2, w20
|
|
mov w1, w19
|
|
ldrh w5, [x0, #:lo12:.LANCHOR107]
|
|
adrp x0, .LANCHOR103
|
|
ldrh w4, [x0, #:lo12:.LANCHOR103]
|
|
adrp x0, .LANCHOR104
|
|
ldr x3, [x0, #:lo12:.LANCHOR104]
|
|
adrp x0, .LC60
|
|
add x0, x0, :lo12:.LC60
|
|
bl printf
|
|
b .L888
|
|
.L883:
|
|
adrp x21, .LANCHOR12
|
|
and w3, w0, 65535
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
ldrh w19, [x0, 590]
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L887
|
|
cmp w20, 1
|
|
beq .L887
|
|
mov w1, w19
|
|
adrp x0, .LC62
|
|
add x0, x0, :lo12:.LC62
|
|
bl printf
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
mov w1, -1
|
|
strh w1, [x0, 590]
|
|
.L888:
|
|
mov w0, w19
|
|
ldr x21, [sp, 32]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L887:
|
|
adrp x2, .LANCHOR103
|
|
adrp x4, .LANCHOR107
|
|
ldrh w0, [x2, #:lo12:.LANCHOR103]
|
|
ldrh w1, [x4, #:lo12:.LANCHOR107]
|
|
cmp w0, w1
|
|
bcc .L889
|
|
adrp x5, .LANCHOR105
|
|
ldrh w5, [x5, #:lo12:.LANCHOR105]
|
|
cmp w5, w0
|
|
bls .L890
|
|
cbz w1, .L890
|
|
.L889:
|
|
bl get_ink_scaned_blk
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
bne .L888
|
|
cmp w20, 1
|
|
bne .L891
|
|
ldrh w3, [x4, #:lo12:.LANCHOR107]
|
|
lsr w3, w3, 1
|
|
.L891:
|
|
add x2, x4, :lo12:.LANCHOR107
|
|
mov w1, w3
|
|
b .L904
|
|
.L890:
|
|
lsr w0, w0, 1
|
|
cmp w20, 1
|
|
csel w3, w0, w3, eq
|
|
add x2, x2, :lo12:.LANCHOR103
|
|
adrp x0, .LANCHOR104
|
|
mov w1, w3
|
|
add x0, x0, :lo12:.LANCHOR104
|
|
b .L903
|
|
.size zftl_get_free_sblk, .-zftl_get_free_sblk
|
|
.section .text.zftl_remove_data_node,"ax",@progbits
|
|
.align 2
|
|
.global zftl_remove_data_node
|
|
.type zftl_remove_data_node, %function
|
|
zftl_remove_data_node:
|
|
and w1, w0, 65535
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x1, uxth 2
|
|
ldrb w2, [x0, 2]
|
|
and w2, w2, 224
|
|
cmp w2, 64
|
|
bne .L906
|
|
adrp x2, .LANCHOR97
|
|
adrp x0, .LANCHOR95
|
|
add x2, x2, :lo12:.LANCHOR97
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
.L909:
|
|
b _list_remove_node
|
|
.L906:
|
|
cmp w2, 96
|
|
bne .L907
|
|
adrp x2, .LANCHOR99
|
|
adrp x0, .LANCHOR90
|
|
add x2, x2, :lo12:.LANCHOR99
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
b .L909
|
|
.L907:
|
|
cmp w2, 160
|
|
bne .L905
|
|
adrp x2, .LANCHOR91
|
|
adrp x0, .LANCHOR92
|
|
add x2, x2, :lo12:.LANCHOR91
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
b .L909
|
|
.L905:
|
|
ret
|
|
.size zftl_remove_data_node, .-zftl_remove_data_node
|
|
.section .text.zftl_remove_free_node,"ax",@progbits
|
|
.align 2
|
|
.global zftl_remove_free_node
|
|
.type zftl_remove_free_node, %function
|
|
zftl_remove_free_node:
|
|
and w1, w0, 65535
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x1, uxth 2
|
|
ldrb w0, [x0, 2]
|
|
ands w0, w0, 24
|
|
bne .L911
|
|
adrp x2, .LANCHOR103
|
|
adrp x0, .LANCHOR104
|
|
add x2, x2, :lo12:.LANCHOR103
|
|
add x0, x0, :lo12:.LANCHOR104
|
|
.L913:
|
|
b _list_remove_node
|
|
.L911:
|
|
cmp w0, 16
|
|
bne .L912
|
|
adrp x2, .LANCHOR105
|
|
adrp x0, .LANCHOR106
|
|
add x2, x2, :lo12:.LANCHOR105
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
b .L913
|
|
.L912:
|
|
adrp x2, .LANCHOR107
|
|
adrp x0, .LANCHOR108
|
|
add x2, x2, :lo12:.LANCHOR107
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
b .L913
|
|
.size zftl_remove_free_node, .-zftl_remove_free_node
|
|
.section .text.zftl_list_update_data_list,"ax",@progbits
|
|
.align 2
|
|
.global zftl_list_update_data_list
|
|
.type zftl_list_update_data_list, %function
|
|
zftl_list_update_data_list:
|
|
and w1, w0, 65535
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x1, uxth 2
|
|
ldrb w2, [x0, 2]
|
|
and w2, w2, 224
|
|
cmp w2, 64
|
|
bne .L915
|
|
adrp x2, .LANCHOR97
|
|
adrp x0, .LANCHOR95
|
|
add x2, x2, :lo12:.LANCHOR97
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
.L918:
|
|
b _list_update_data_list
|
|
.L915:
|
|
cmp w2, 96
|
|
bne .L916
|
|
adrp x2, .LANCHOR99
|
|
adrp x0, .LANCHOR90
|
|
add x2, x2, :lo12:.LANCHOR99
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
b .L918
|
|
.L916:
|
|
cmp w2, 160
|
|
bne .L914
|
|
adrp x2, .LANCHOR91
|
|
adrp x0, .LANCHOR92
|
|
add x2, x2, :lo12:.LANCHOR91
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
b .L918
|
|
.L914:
|
|
ret
|
|
.size zftl_list_update_data_list, .-zftl_list_update_data_list
|
|
.section .text.print_list_info,"ax",@progbits
|
|
.align 2
|
|
.global print_list_info
|
|
.type print_list_info, %function
|
|
print_list_info:
|
|
sub sp, sp, #96
|
|
stp x29, x30, [sp, 32]
|
|
add x29, sp, 32
|
|
ldrh w2, [x1]
|
|
ldr x1, [x0]
|
|
stp x19, x20, [sp, 48]
|
|
mov x19, x0
|
|
stp x21, x22, [sp, 64]
|
|
adrp x0, .LC63
|
|
stp x23, x24, [sp, 80]
|
|
add x0, x0, :lo12:.LC63
|
|
bl printf
|
|
ldr x19, [x19]
|
|
cbz x19, .L919
|
|
mov x24, -6148914691236517206
|
|
adrp x22, .LC64
|
|
adrp x21, .LANCHOR109
|
|
add x22, x22, :lo12:.LC64
|
|
add x21, x21, :lo12:.LANCHOR109
|
|
mov w20, 0
|
|
adrp x23, .LANCHOR4
|
|
movk x24, 0xaaab, lsl 0
|
|
.L923:
|
|
ldr x2, [x23, #:lo12:.LANCHOR4]
|
|
adrp x1, .LANCHOR9
|
|
adrp x8, .LANCHOR11
|
|
ldrh w5, [x19, 4]
|
|
sub x2, x19, x2
|
|
ldr x1, [x1, #:lo12:.LANCHOR9]
|
|
asr x2, x2, 1
|
|
ldr x8, [x8, #:lo12:.LANCHOR11]
|
|
ldrh w4, [x19, 2]
|
|
mul x2, x2, x24
|
|
and x7, x2, 65535
|
|
and w2, w2, 65535
|
|
lsl x0, x7, 2
|
|
add x3, x1, x0
|
|
ldrh w7, [x8, x7, lsl 1]
|
|
ldrb w6, [x3, 2]
|
|
ldrh w3, [x19]
|
|
str w7, [sp, 16]
|
|
ldrh w7, [x1, x0]
|
|
and w7, w7, 2047
|
|
str w7, [sp, 8]
|
|
ubfx x7, x6, 3, 2
|
|
ubfx x6, x6, 5, 3
|
|
ldr w0, [x1, x0]
|
|
mov w1, w20
|
|
ubfx x0, x0, 11, 8
|
|
str w0, [sp]
|
|
mov x0, x22
|
|
bl printf
|
|
ldrh w19, [x19]
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L919
|
|
ldr x0, [x23, #:lo12:.LANCHOR4]
|
|
mov w1, 6
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
umaddl x19, w19, w1, x0
|
|
ldrh w0, [x21]
|
|
cmp w0, w20
|
|
bcs .L923
|
|
.L919:
|
|
ldp x19, x20, [sp, 48]
|
|
ldp x21, x22, [sp, 64]
|
|
ldp x23, x24, [sp, 80]
|
|
ldp x29, x30, [sp, 32]
|
|
add sp, sp, 96
|
|
ret
|
|
.size print_list_info, .-print_list_info
|
|
.section .text.dump_all_list_info,"ax",@progbits
|
|
.align 2
|
|
.global dump_all_list_info
|
|
.type dump_all_list_info, %function
|
|
dump_all_list_info:
|
|
stp x29, x30, [sp, -16]!
|
|
adrp x1, .LANCHOR103
|
|
adrp x0, .LANCHOR104
|
|
add x1, x1, :lo12:.LANCHOR103
|
|
add x29, sp, 0
|
|
add x0, x0, :lo12:.LANCHOR104
|
|
bl print_list_info
|
|
adrp x1, .LANCHOR105
|
|
adrp x0, .LANCHOR106
|
|
add x1, x1, :lo12:.LANCHOR105
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
bl print_list_info
|
|
adrp x1, .LANCHOR107
|
|
adrp x0, .LANCHOR108
|
|
add x1, x1, :lo12:.LANCHOR107
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
bl print_list_info
|
|
adrp x1, .LANCHOR97
|
|
adrp x0, .LANCHOR95
|
|
add x1, x1, :lo12:.LANCHOR97
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
bl print_list_info
|
|
adrp x1, .LANCHOR99
|
|
adrp x0, .LANCHOR90
|
|
add x1, x1, :lo12:.LANCHOR99
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
bl print_list_info
|
|
ldp x29, x30, [sp], 16
|
|
adrp x1, .LANCHOR91
|
|
adrp x0, .LANCHOR92
|
|
add x1, x1, :lo12:.LANCHOR91
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
b print_list_info
|
|
.size dump_all_list_info, .-dump_all_list_info
|
|
.section .text.ftl_tmp_into_update,"ax",@progbits
|
|
.align 2
|
|
.global ftl_tmp_into_update
|
|
.type ftl_tmp_into_update, %function
|
|
ftl_tmp_into_update:
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 16]
|
|
cmp w1, 2048
|
|
bls .L928
|
|
ldr w2, [x0, 20]
|
|
add w2, w2, w1, lsr 11
|
|
and w1, w1, 2047
|
|
stp w1, w2, [x0, 16]
|
|
.L928:
|
|
ldr w1, [x0, 24]
|
|
cmp w1, 2048
|
|
bls .L929
|
|
ldr w2, [x0, 28]
|
|
add w2, w2, w1, lsr 11
|
|
and w1, w1, 2047
|
|
stp w1, w2, [x0, 24]
|
|
.L929:
|
|
ldr w1, [x0, 32]
|
|
cmp w1, 1024
|
|
bls .L930
|
|
ldr w2, [x0, 36]
|
|
add w2, w2, w1, lsr 10
|
|
and w1, w1, 1023
|
|
stp w1, w2, [x0, 32]
|
|
.L930:
|
|
ldr w1, [x0, 40]
|
|
cmp w1, 1024
|
|
bls .L927
|
|
ldr w2, [x0, 44]
|
|
add w2, w2, w1, lsr 10
|
|
and w1, w1, 1023
|
|
stp w1, w2, [x0, 40]
|
|
.L927:
|
|
ret
|
|
.size ftl_tmp_into_update, .-ftl_tmp_into_update
|
|
.section .text.ftl_get_blk_list_in_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_get_blk_list_in_sblk
|
|
.type ftl_get_blk_list_in_sblk, %function
|
|
ftl_get_blk_list_in_sblk:
|
|
adrp x2, .LANCHOR9
|
|
and w0, w0, 65535
|
|
mov w7, 24
|
|
adrp x8, .LANCHOR74
|
|
ldr x2, [x2, #:lo12:.LANCHOR9]
|
|
add x8, x8, :lo12:.LANCHOR74
|
|
mov w3, 0
|
|
add x2, x2, x0, uxth 2
|
|
ldrb w13, [x2, 3]
|
|
adrp x2, .LANCHOR79
|
|
ldrb w11, [x2, #:lo12:.LANCHOR79]
|
|
adrp x2, .LANCHOR75
|
|
ldrb w6, [x2, #:lo12:.LANCHOR75]
|
|
adrp x2, .LANCHOR31
|
|
ldrb w2, [x2, #:lo12:.LANCHOR31]
|
|
sub w7, w7, w2
|
|
and w2, w6, 65535
|
|
mul w0, w0, w2
|
|
sub w2, w2, #1
|
|
sxth w5, w2
|
|
and w4, w0, 65535
|
|
mov w0, 0
|
|
.L933:
|
|
cmp w3, w11
|
|
blt .L937
|
|
sxtw x2, w0
|
|
mov w3, -1
|
|
.L938:
|
|
cmp w11, w2
|
|
bgt .L939
|
|
ret
|
|
.L937:
|
|
asr w2, w13, w3
|
|
tbnz x2, 0, .L934
|
|
sdiv w2, w3, w6
|
|
ldrh w10, [x8]
|
|
sbfiz x12, x0, 1, 32
|
|
cmp w6, 1
|
|
sub w10, w7, w10
|
|
lsl w2, w2, w10
|
|
add w2, w4, w2
|
|
and w2, w2, 65535
|
|
bhi .L935
|
|
.L940:
|
|
add w0, w0, 1
|
|
strh w2, [x1, x12]
|
|
.L934:
|
|
add w3, w3, 1
|
|
b .L933
|
|
.L935:
|
|
and w10, w5, w3
|
|
add w2, w2, w10
|
|
b .L940
|
|
.L939:
|
|
strh w3, [x1, x2, lsl 1]
|
|
add x2, x2, 1
|
|
b .L938
|
|
.size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
|
|
.section .text.ftl_erase_phy_blk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_erase_phy_blk
|
|
.type ftl_erase_phy_blk, %function
|
|
ftl_erase_phy_blk:
|
|
stp x29, x30, [sp, -48]!
|
|
and w0, w0, 65535
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
mov w21, w1
|
|
adrp x1, .LANCHOR31
|
|
stp x19, x20, [sp, 16]
|
|
adrp x22, .LANCHOR111
|
|
ldrb w19, [x1, #:lo12:.LANCHOR31]
|
|
mov w1, 24
|
|
sub w19, w1, w19
|
|
adrp x1, .LANCHOR74
|
|
ldrh w1, [x1, #:lo12:.LANCHOR74]
|
|
sub w1, w19, w1
|
|
mov w19, 1
|
|
lsl w19, w19, w1
|
|
sub w19, w19, #1
|
|
and w19, w19, w0
|
|
asr w20, w0, w1
|
|
adrp x0, .LANCHOR80
|
|
sxth w19, w19
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L942
|
|
adrp x0, .LANCHOR81
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cbnz w0, .L942
|
|
ldrh w2, [x22, #:lo12:.LANCHOR111]
|
|
cmp w21, 0
|
|
cset w1, eq
|
|
mov w0, w20
|
|
mul w2, w2, w19
|
|
bl flash_erase_block_en
|
|
.L942:
|
|
ldrh w2, [x22, #:lo12:.LANCHOR111]
|
|
mov w1, w21
|
|
mov w0, w20
|
|
ldp x21, x22, [sp, 32]
|
|
mul w2, w2, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b flash_erase_block_en
|
|
.size ftl_erase_phy_blk, .-ftl_erase_phy_blk
|
|
.section .text.ftl_erase_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_erase_sblk
|
|
.type ftl_erase_sblk, %function
|
|
ftl_erase_sblk:
|
|
stp x29, x30, [sp, -176]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x23, .LANCHOR9
|
|
stp x25, x26, [sp, 64]
|
|
and w26, w0, 65535
|
|
ldr x0, [x23, #:lo12:.LANCHOR9]
|
|
adrp x25, .LANCHOR112
|
|
stp x21, x22, [sp, 32]
|
|
ubfiz x22, x26, 2, 16
|
|
add x0, x0, x22
|
|
stp x27, x28, [sp, 80]
|
|
stp x19, x20, [sp, 16]
|
|
adrp x24, .LANCHOR75
|
|
mov w20, w1
|
|
add x25, x25, :lo12:.LANCHOR112
|
|
ldrb w28, [x0, 3]
|
|
add x24, x24, :lo12:.LANCHOR75
|
|
add x27, x29, 112
|
|
mov w19, 0
|
|
.L948:
|
|
ldrb w0, [x25]
|
|
cmp w19, w0
|
|
bge .L959
|
|
ldrb w1, [x24]
|
|
adrp x0, .LANCHOR111
|
|
mov w21, 0
|
|
ldrh w3, [x0, #:lo12:.LANCHOR111]
|
|
sub w4, w1, #1
|
|
mov w0, 0
|
|
mul w6, w19, w1
|
|
mul w5, w26, w1
|
|
b .L960
|
|
.L950:
|
|
add w2, w0, w6
|
|
asr w2, w28, w2
|
|
tbnz x2, 0, .L949
|
|
and w2, w0, w4
|
|
add w2, w2, w5
|
|
mul w2, w2, w3
|
|
str w2, [x27, w21, sxtw 2]
|
|
add w21, w21, 1
|
|
.L949:
|
|
add w0, w0, 1
|
|
.L960:
|
|
cmp w0, w1
|
|
blt .L950
|
|
cmp w1, 4
|
|
bne .L951
|
|
mov x3, 0
|
|
.L952:
|
|
cmp w21, w3
|
|
bgt .L953
|
|
.L954:
|
|
add w19, w19, 1
|
|
b .L948
|
|
.L953:
|
|
ldr w2, [x27, x3, lsl 2]
|
|
mov w1, w20
|
|
str x3, [x29, 104]
|
|
mov w0, w19
|
|
bl flash_erase_block_en
|
|
ldr x3, [x29, 104]
|
|
add x3, x3, 1
|
|
b .L952
|
|
.L951:
|
|
cmp w21, 2
|
|
bne .L955
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L956
|
|
adrp x0, .LANCHOR81
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cbnz w0, .L956
|
|
ldp w2, w3, [x29, 112]
|
|
cmp w20, 0
|
|
cset w1, eq
|
|
mov w0, w19
|
|
bl flash_erase_duplane_block
|
|
.L956:
|
|
ldp w2, w3, [x29, 112]
|
|
mov w1, w20
|
|
mov w0, w19
|
|
bl flash_erase_duplane_block
|
|
b .L954
|
|
.L955:
|
|
cmp w21, 1
|
|
bne .L954
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L958
|
|
adrp x0, .LANCHOR81
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cbnz w0, .L958
|
|
ldr w2, [x29, 112]
|
|
cmp w20, 0
|
|
cset w1, eq
|
|
mov w0, w19
|
|
bl flash_erase_block_en
|
|
.L958:
|
|
ldr w2, [x29, 112]
|
|
mov w1, w20
|
|
mov w0, w19
|
|
bl flash_erase_block_en
|
|
b .L954
|
|
.L959:
|
|
adrp x2, .LANCHOR110
|
|
ldr x3, [x23, #:lo12:.LANCHOR9]
|
|
cbnz w20, .L961
|
|
ldrh w1, [x3, x22]
|
|
add w0, w1, 1
|
|
and w0, w0, 2047
|
|
bfi w1, w0, 0, 11
|
|
strh w1, [x3, x22]
|
|
ldr x1, [x2, #:lo12:.LANCHOR110]
|
|
ldr w2, [x1, 84]
|
|
add w2, w2, 1
|
|
str w2, [x1, 84]
|
|
ldrh w2, [x1, 96]
|
|
cmp w2, w0
|
|
bge .L963
|
|
strh w0, [x1, 96]
|
|
.L963:
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, 0
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 176
|
|
ret
|
|
.L961:
|
|
ldr w1, [x3, x22]
|
|
ubfx x0, x1, 11, 8
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
bfi w1, w0, 11, 8
|
|
str w1, [x3, x22]
|
|
and w0, w0, 65535
|
|
ldr x1, [x2, #:lo12:.LANCHOR110]
|
|
ldr w2, [x1, 80]
|
|
add w2, w2, 1
|
|
str w2, [x1, 80]
|
|
ldrh w2, [x1, 98]
|
|
cmp w2, w0
|
|
bcs .L963
|
|
strh w0, [x1, 98]
|
|
b .L963
|
|
.size ftl_erase_sblk, .-ftl_erase_sblk
|
|
.section .text.ftl_alloc_sys_blk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_alloc_sys_blk
|
|
.type ftl_alloc_sys_blk, %function
|
|
ftl_alloc_sys_blk:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x0, .LANCHOR110
|
|
add x29, sp, 0
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x1, 136]
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
cmp w2, 63
|
|
bls .L973
|
|
strh wzr, [x1, 136]
|
|
.L973:
|
|
ldrh w0, [x1, 112]
|
|
cbnz w0, .L974
|
|
adrp x1, .LANCHOR113
|
|
adrp x0, .LC0
|
|
mov w2, 1359
|
|
add x1, x1, :lo12:.LANCHOR113
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L974:
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
mov w5, 65535
|
|
.L977:
|
|
ldrh w2, [x1, 136]
|
|
.L975:
|
|
mov w3, w2
|
|
cmp w2, 63
|
|
ble .L976
|
|
strh wzr, [x1, 136]
|
|
b .L977
|
|
.L976:
|
|
add x4, x2, 1
|
|
add x0, x1, x4, lsl 1
|
|
ldrh w0, [x0, 158]
|
|
cmp w0, w5
|
|
bne .L980
|
|
mov x2, x4
|
|
b .L975
|
|
.L980:
|
|
add x3, x1, x3, sxtw 1
|
|
mov w4, -1
|
|
ldr x19, [sp, 16]
|
|
strh w4, [x3, 160]
|
|
strh w2, [x1, 136]
|
|
ldrh w2, [x1, 112]
|
|
sub w2, w2, #1
|
|
strh w2, [x1, 112]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
|
|
.section .text.ftl_free_sys_blk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_free_sys_blk
|
|
.type ftl_free_sys_blk, %function
|
|
ftl_free_sys_blk:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 65535
|
|
adrp x0, .LANCHOR110
|
|
mov x19, x0
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x1, 138]
|
|
cmp w2, 63
|
|
bls .L983
|
|
strh wzr, [x1, 138]
|
|
.L983:
|
|
ldrh w0, [x1, 112]
|
|
cmp w0, 63
|
|
bls .L984
|
|
adrp x1, .LANCHOR114
|
|
adrp x0, .LC0
|
|
mov w2, 1386
|
|
add x1, x1, :lo12:.LANCHOR114
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L984:
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w4, 65535
|
|
.L987:
|
|
ldrh w1, [x0, 138]
|
|
.L985:
|
|
mov w2, w1
|
|
cmp w1, 63
|
|
ble .L986
|
|
strh wzr, [x0, 138]
|
|
b .L987
|
|
.L986:
|
|
add x3, x1, 1
|
|
add x5, x0, x3, lsl 1
|
|
ldrh w5, [x5, 158]
|
|
cmp w5, w4
|
|
bne .L988
|
|
add x2, x0, x2, sxtw 1
|
|
strh w20, [x2, 160]
|
|
strh w1, [x0, 138]
|
|
ldrh w1, [x0, 112]
|
|
ldp x19, x20, [sp, 16]
|
|
add w1, w1, 1
|
|
strh w1, [x0, 112]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L988:
|
|
mov x1, x3
|
|
b .L985
|
|
.size ftl_free_sys_blk, .-ftl_free_sys_blk
|
|
.section .text.ftl_info_data_recovery,"ax",@progbits
|
|
.align 2
|
|
.global ftl_info_data_recovery
|
|
.type ftl_info_data_recovery, %function
|
|
ftl_info_data_recovery:
|
|
ldrh w2, [x0]
|
|
mov w1, 65535
|
|
cmp w2, w1
|
|
beq .L1001
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x1, .LANCHOR9
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
ubfiz x19, x2, 2, 16
|
|
ldr x20, [x1, #:lo12:.LANCHOR9]
|
|
str x21, [sp, 32]
|
|
add x21, x20, x19
|
|
ldrb w1, [x21, 2]
|
|
tst w1, 224
|
|
bne .L991
|
|
ldrb w0, [x0, 4]
|
|
bfi w1, w0, 5, 3
|
|
strb w1, [x21, 2]
|
|
mov w0, w2
|
|
bl zftl_remove_free_node
|
|
ldrb w0, [x21, 2]
|
|
adrp x1, .LANCHOR110
|
|
ldr x3, [x1, #:lo12:.LANCHOR110]
|
|
tbz x0, 3, .L995
|
|
ldrh w2, [x3, 116]
|
|
sub w2, w2, #1
|
|
strh w2, [x3, 116]
|
|
.L996:
|
|
and w0, w0, 224
|
|
cmp w0, 160
|
|
bne .L998
|
|
ldr w0, [x20, x19]
|
|
ldr x1, [x1, #:lo12:.LANCHOR110]
|
|
ubfx x2, x0, 11, 8
|
|
add w2, w2, 1
|
|
bfi w0, w2, 11, 8
|
|
str w0, [x20, x19]
|
|
ldrh w0, [x1, 120]
|
|
sub w0, w0, #1
|
|
strh w0, [x1, 120]
|
|
.L991:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L995:
|
|
tst w0, 24
|
|
bne .L997
|
|
ldrh w2, [x3, 114]
|
|
sub w2, w2, #1
|
|
strh w2, [x3, 114]
|
|
b .L996
|
|
.L997:
|
|
ldrh w2, [x3, 118]
|
|
sub w2, w2, #1
|
|
strh w2, [x3, 118]
|
|
b .L996
|
|
.L998:
|
|
ldrh w2, [x20, x19]
|
|
cmp w0, 64
|
|
add w3, w2, 1
|
|
bfi w2, w3, 0, 11
|
|
strh w2, [x20, x19]
|
|
bne .L999
|
|
ldr x1, [x1, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x1, 122]
|
|
sub w0, w0, #1
|
|
strh w0, [x1, 122]
|
|
b .L991
|
|
.L999:
|
|
cmp w0, 96
|
|
bne .L991
|
|
ldr x1, [x1, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x1, 124]
|
|
sub w0, w0, #1
|
|
strh w0, [x1, 124]
|
|
b .L991
|
|
.L1001:
|
|
ret
|
|
.size ftl_info_data_recovery, .-ftl_info_data_recovery
|
|
.section .text.ftl_get_ppa_from_index,"ax",@progbits
|
|
.align 2
|
|
.global ftl_get_ppa_from_index
|
|
.type ftl_get_ppa_from_index, %function
|
|
ftl_get_ppa_from_index:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x1, .LANCHOR12
|
|
adrp x3, .LANCHOR79
|
|
and w0, w0, 65535
|
|
add x29, sp, 0
|
|
ldr x2, [x1, #:lo12:.LANCHOR12]
|
|
adrp x1, .LANCHOR94
|
|
ldrb w3, [x3, #:lo12:.LANCHOR79]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
stp x19, x20, [sp, 16]
|
|
mul w1, w1, w3
|
|
cmp w0, w1
|
|
bge .L1005
|
|
add x2, x2, 16
|
|
.L1006:
|
|
ldrb w1, [x2, 9]
|
|
sdiv w19, w0, w1
|
|
msub w0, w19, w1, w0
|
|
add x0, x2, x0, uxth 1
|
|
ldrh w20, [x0, 16]
|
|
mov w0, 65535
|
|
cmp w20, w0
|
|
bne .L1007
|
|
adrp x1, .LANCHOR115
|
|
adrp x0, .LC0
|
|
mov w2, 1945
|
|
add x1, x1, :lo12:.LANCHOR115
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1007:
|
|
adrp x0, .LANCHOR111
|
|
ldrh w0, [x0, #:lo12:.LANCHOR111]
|
|
madd w0, w0, w20, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L1005:
|
|
sub w0, w0, w1
|
|
add x2, x2, 48
|
|
and w0, w0, 65535
|
|
b .L1006
|
|
.size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
|
|
.section .text.lpa_hash_get_ppa,"ax",@progbits
|
|
.align 2
|
|
.global lpa_hash_get_ppa
|
|
.type lpa_hash_get_ppa, %function
|
|
lpa_hash_get_ppa:
|
|
and x2, x0, 255
|
|
adrp x1, .LANCHOR116
|
|
add x1, x1, :lo12:.LANCHOR116
|
|
mov w3, 65535
|
|
ldrh w1, [x1, x2, lsl 1]
|
|
adrp x2, .LANCHOR117
|
|
ldr x4, [x2, #:lo12:.LANCHOR117]
|
|
adrp x2, .LANCHOR118
|
|
ldr x5, [x2, #:lo12:.LANCHOR118]
|
|
.L1010:
|
|
cmp w1, w3
|
|
bne .L1012
|
|
mov w0, -1
|
|
ret
|
|
.L1012:
|
|
uxtw x2, w1
|
|
ldr w6, [x4, x2, lsl 2]
|
|
cmp w0, w6
|
|
bne .L1011
|
|
mov w0, w1
|
|
b ftl_get_ppa_from_index
|
|
.L1011:
|
|
ldrh w1, [x5, x2, lsl 1]
|
|
b .L1010
|
|
.size lpa_hash_get_ppa, .-lpa_hash_get_ppa
|
|
.section .text.ftl_get_new_free_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_get_new_free_page
|
|
.type ftl_get_new_free_page, %function
|
|
ftl_get_new_free_page:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
ldrh w1, [x0]
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L1014
|
|
adrp x1, .LANCHOR119
|
|
adrp x0, .LC0
|
|
mov w2, 2088
|
|
add x1, x1, :lo12:.LANCHOR119
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1014:
|
|
adrp x0, .LANCHOR94
|
|
ldrh w1, [x19, 2]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w1, w0
|
|
bne .L1015
|
|
adrp x1, .LANCHOR119
|
|
adrp x0, .LC0
|
|
mov w2, 2089
|
|
add x1, x1, :lo12:.LANCHOR119
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1015:
|
|
ldrh w0, [x19, 6]
|
|
cbnz w0, .L1016
|
|
adrp x1, .LANCHOR119
|
|
adrp x0, .LC0
|
|
mov w2, 2090
|
|
add x1, x1, :lo12:.LANCHOR119
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1016:
|
|
ldrb w0, [x19, 5]
|
|
mov w2, 65535
|
|
add x0, x0, 8
|
|
ldrh w3, [x19, x0, lsl 1]
|
|
adrp x0, .LANCHOR79
|
|
ldrb w4, [x0, #:lo12:.LANCHOR79]
|
|
.L1017:
|
|
cmp w3, w2
|
|
ldrb w1, [x19, 5]
|
|
beq .L1019
|
|
adrp x0, .LANCHOR111
|
|
add w1, w1, 1
|
|
and w1, w1, 255
|
|
ldrh w2, [x19, 2]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR111]
|
|
cmp w4, w1
|
|
strb w1, [x19, 5]
|
|
mul w0, w0, w3
|
|
ldrh w3, [x19, 6]
|
|
sub w3, w3, #1
|
|
strh w3, [x19, 6]
|
|
ldrh w3, [x19, 10]
|
|
orr w0, w0, w2
|
|
add w3, w3, 1
|
|
strh w3, [x19, 10]
|
|
bne .L1013
|
|
add w2, w2, 1
|
|
strb wzr, [x19, 5]
|
|
strh w2, [x19, 2]
|
|
.L1013:
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L1019:
|
|
add w1, w1, 1
|
|
and w1, w1, 255
|
|
strb w1, [x19, 5]
|
|
cmp w1, w4
|
|
bne .L1018
|
|
ldrh w0, [x19, 2]
|
|
strb wzr, [x19, 5]
|
|
add w0, w0, 1
|
|
strh w0, [x19, 2]
|
|
.L1018:
|
|
ldrb w0, [x19, 5]
|
|
add x0, x0, 8
|
|
ldrh w3, [x19, x0, lsl 1]
|
|
b .L1017
|
|
.size ftl_get_new_free_page, .-ftl_get_new_free_page
|
|
.section .text.ftl_ext_alloc_new_blk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_ext_alloc_new_blk
|
|
.type ftl_ext_alloc_new_blk, %function
|
|
ftl_ext_alloc_new_blk:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
bl ftl_alloc_sys_blk
|
|
and w0, w0, 65535
|
|
mov w1, 65533
|
|
mov w19, w0
|
|
sub w0, w0, #1
|
|
cmp w1, w0, uxth
|
|
bcs .L1023
|
|
adrp x1, .LANCHOR120
|
|
adrp x0, .LC0
|
|
mov w2, 2125
|
|
add x1, x1, :lo12:.LANCHOR120
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1023:
|
|
adrp x20, .LANCHOR110
|
|
mov w1, 0
|
|
mov w0, w19
|
|
bl ftl_erase_phy_blk
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x0, 130]
|
|
bl ftl_free_sys_blk
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
strh w19, [x0, 130]
|
|
strh wzr, [x0, 140]
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
|
|
.section .text.ftl_total_vpn_update,"ax",@progbits
|
|
.align 2
|
|
.global ftl_total_vpn_update
|
|
.type ftl_total_vpn_update, %function
|
|
ftl_total_vpn_update:
|
|
adrp x2, .LANCHOR121
|
|
mov x3, x2
|
|
ldrh w1, [x2, #:lo12:.LANCHOR121]
|
|
cmp w1, 4
|
|
bhi .L1026
|
|
cbnz w0, .L1026
|
|
add w1, w1, 1
|
|
strh w1, [x2, #:lo12:.LANCHOR121]
|
|
ret
|
|
.L1026:
|
|
adrp x0, .LANCHOR8
|
|
strh wzr, [x3, #:lo12:.LANCHOR121]
|
|
mov x1, 0
|
|
mov w2, 0
|
|
ldrh w5, [x0, #:lo12:.LANCHOR8]
|
|
adrp x0, .LANCHOR11
|
|
mov w8, 65535
|
|
ldr x6, [x0, #:lo12:.LANCHOR11]
|
|
adrp x0, .LANCHOR9
|
|
ldr x7, [x0, #:lo12:.LANCHOR9]
|
|
mov w0, 0
|
|
.L1028:
|
|
cmp w5, w1, uxth
|
|
bhi .L1031
|
|
adrp x1, .LANCHOR12
|
|
ldr x1, [x1, #:lo12:.LANCHOR12]
|
|
str w2, [x1, 524]
|
|
adrp x2, .LANCHOR110
|
|
str w0, [x1, 528]
|
|
ldr x2, [x2, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x2, 120]
|
|
cbz w2, .L1025
|
|
udiv w0, w0, w2
|
|
str w0, [x1, 532]
|
|
.L1025:
|
|
ret
|
|
.L1031:
|
|
ldrh w3, [x6, x1, lsl 1]
|
|
cmp w3, w8
|
|
beq .L1029
|
|
add x4, x7, x1, lsl 2
|
|
ldrb w4, [x4, 2]
|
|
and w4, w4, 224
|
|
cmp w4, 160
|
|
bne .L1030
|
|
add w0, w0, w3
|
|
.L1029:
|
|
add x1, x1, 1
|
|
b .L1028
|
|
.L1030:
|
|
add w2, w2, w3
|
|
b .L1029
|
|
.size ftl_total_vpn_update, .-ftl_total_vpn_update
|
|
.section .text.ftl_vpn_update,"ax",@progbits
|
|
.align 2
|
|
.global ftl_vpn_update
|
|
.type ftl_vpn_update, %function
|
|
ftl_vpn_update:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
and w19, w0, 65535
|
|
mov w0, w19
|
|
bl zftl_list_update_data_list
|
|
adrp x0, .LANCHOR11
|
|
ubfiz x19, x19, 1, 16
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x0, x19]
|
|
cbnz w0, .L1038
|
|
adrp x1, .LANCHOR122
|
|
mov w0, 1
|
|
str w0, [x1, #:lo12:.LANCHOR122]
|
|
.L1036:
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L1038:
|
|
mov w0, 0
|
|
b .L1036
|
|
.size ftl_vpn_update, .-ftl_vpn_update
|
|
.section .text.ftl_vpn_decrement,"ax",@progbits
|
|
.align 2
|
|
.global ftl_vpn_decrement
|
|
.type ftl_vpn_decrement, %function
|
|
ftl_vpn_decrement:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L1041
|
|
adrp x0, .LANCHOR11
|
|
uxtw x1, w19
|
|
lsl x2, x1, 1
|
|
ldr x3, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x3, x2]
|
|
cbnz w0, .L1042
|
|
adrp x0, .LANCHOR9
|
|
mov w2, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x1, x0, x1, lsl 2
|
|
adrp x0, .LC65
|
|
add x0, x0, :lo12:.LC65
|
|
ldrb w3, [x1, 2]
|
|
mov w1, w19
|
|
ubfx x3, x3, 5, 3
|
|
bl printf
|
|
.L1047:
|
|
mov w0, 0
|
|
b .L1040
|
|
.L1042:
|
|
sub w0, w0, #1
|
|
strh w0, [x3, x2]
|
|
.L1041:
|
|
adrp x20, .LANCHOR72
|
|
ldrh w0, [x20, #:lo12:.LANCHOR72]
|
|
cmp w19, w0
|
|
beq .L1047
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
bne .L1044
|
|
strh w19, [x20, #:lo12:.LANCHOR72]
|
|
b .L1047
|
|
.L1044:
|
|
bl ftl_vpn_update
|
|
cmp w0, 0
|
|
adrp x1, .LANCHOR123
|
|
cset w0, ne
|
|
ldrh w3, [x20, #:lo12:.LANCHOR72]
|
|
ldrh w2, [x1, #:lo12:.LANCHOR123]
|
|
strh w19, [x20, #:lo12:.LANCHOR72]
|
|
add w2, w2, 1
|
|
and w2, w2, 65535
|
|
cmp w2, 7
|
|
csel w2, w2, wzr, ls
|
|
strh w2, [x1, #:lo12:.LANCHOR123]
|
|
and x2, x2, 65535
|
|
adrp x1, .LANCHOR73
|
|
add x1, x1, :lo12:.LANCHOR73
|
|
strh w3, [x1, x2, lsl 1]
|
|
.L1040:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size ftl_vpn_decrement, .-ftl_vpn_decrement
|
|
.section .text.lpa_hash_update_ppa,"ax",@progbits
|
|
.align 2
|
|
.global lpa_hash_update_ppa
|
|
.type lpa_hash_update_ppa, %function
|
|
lpa_hash_update_ppa:
|
|
adrp x3, .LANCHOR116
|
|
and x5, x0, 255
|
|
add x4, x3, :lo12:.LANCHOR116
|
|
mov w7, 65535
|
|
and w2, w2, 65535
|
|
mov w12, w7
|
|
ldrh w6, [x4, x5, lsl 1]
|
|
adrp x4, .LANCHOR117
|
|
ldr x8, [x4, #:lo12:.LANCHOR117]
|
|
adrp x4, .LANCHOR118
|
|
ldr x4, [x4, #:lo12:.LANCHOR118]
|
|
.L1050:
|
|
cmp w6, w12
|
|
beq .L1054
|
|
uxtw x11, w6
|
|
lsl x10, x11, 2
|
|
add x13, x8, x10
|
|
ldr w10, [x8, x10]
|
|
cmp w0, w10
|
|
lsl x10, x11, 1
|
|
bne .L1051
|
|
mov w6, -1
|
|
str w6, [x13]
|
|
cmp w7, w12
|
|
bne .L1052
|
|
add x6, x3, :lo12:.LANCHOR116
|
|
ldrh w7, [x4, x10]
|
|
strh w7, [x6, x5, lsl 1]
|
|
.L1053:
|
|
mov w6, -1
|
|
strh w6, [x4, x11, lsl 1]
|
|
.L1054:
|
|
uxtw x6, w2
|
|
add x3, x3, :lo12:.LANCHOR116
|
|
cmn w1, #1
|
|
str w0, [x8, x6, lsl 2]
|
|
ldrh w0, [x3, x5, lsl 1]
|
|
strh w2, [x3, x5, lsl 1]
|
|
strh w0, [x4, x6, lsl 1]
|
|
beq .L1061
|
|
stp x29, x30, [sp, -16]!
|
|
adrp x0, .LANCHOR74
|
|
add x29, sp, 0
|
|
ldrh w3, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR31
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
lsr w1, w1, w3
|
|
sub w0, w0, w2
|
|
sub w2, w0, w3
|
|
mov w0, 1
|
|
lsl w0, w0, w2
|
|
sub w0, w0, #1
|
|
and w1, w0, w1
|
|
adrp x0, .LANCHOR75
|
|
ldrb w0, [x0, #:lo12:.LANCHOR75]
|
|
udiv w0, w1, w0
|
|
bl ftl_vpn_decrement
|
|
mov w0, -1
|
|
ldp x29, x30, [sp], 16
|
|
ret
|
|
.L1052:
|
|
ldrh w6, [x4, x10]
|
|
strh w6, [x4, w7, uxtw 1]
|
|
b .L1053
|
|
.L1051:
|
|
mov w7, w6
|
|
ldrh w6, [x4, x10]
|
|
b .L1050
|
|
.L1061:
|
|
mov w0, -1
|
|
ret
|
|
.size lpa_hash_update_ppa, .-lpa_hash_update_ppa
|
|
.section .text.ftl_mask_bad_block,"ax",@progbits
|
|
.align 2
|
|
.global ftl_mask_bad_block
|
|
.type ftl_mask_bad_block, %function
|
|
ftl_mask_bad_block:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x1, .LANCHOR31
|
|
mov w6, 24
|
|
mov w4, 1
|
|
add x29, sp, 0
|
|
ldrb w1, [x1, #:lo12:.LANCHOR31]
|
|
stp x19, x20, [sp, 16]
|
|
sub w6, w6, w1
|
|
lsl w1, w4, w1
|
|
sub w1, w1, #1
|
|
lsr w2, w0, w6
|
|
and w1, w1, w2
|
|
adrp x2, .LANCHOR75
|
|
and w1, w1, 255
|
|
ldrb w5, [x2, #:lo12:.LANCHOR75]
|
|
cmp w5, 1
|
|
mul w2, w1, w5
|
|
and w19, w2, 255
|
|
adrp x2, .LANCHOR74
|
|
ldrh w3, [x2, #:lo12:.LANCHOR74]
|
|
lsr w0, w0, w3
|
|
sub w3, w6, w3
|
|
lsl w3, w4, w3
|
|
sub w3, w3, #1
|
|
and w3, w3, w0
|
|
and w4, w3, 65535
|
|
udiv w3, w3, w5
|
|
and w20, w3, 65535
|
|
bls .L1065
|
|
sub w2, w5, #1
|
|
and w2, w2, w4
|
|
add w2, w19, w2
|
|
and w19, w2, 255
|
|
.L1065:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 14, .L1066
|
|
adrp x0, .LC66
|
|
and w3, w3, 65535
|
|
mov w2, w19
|
|
add x0, x0, :lo12:.LC66
|
|
bl printf
|
|
.L1066:
|
|
adrp x0, .LANCHOR8
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
cmp w0, w20
|
|
bls .L1064
|
|
adrp x0, .LANCHOR9
|
|
mov w2, 1
|
|
lsl w2, w2, w19
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x20, x0, x20, uxth 2
|
|
ldrb w19, [x20, 3]
|
|
orr w2, w2, w19
|
|
strb w2, [x20, 3]
|
|
.L1064:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size ftl_mask_bad_block, .-ftl_mask_bad_block
|
|
.section .text.gc_free_bad_sblk,"ax",@progbits
|
|
.align 2
|
|
.global gc_free_bad_sblk
|
|
.type gc_free_bad_sblk, %function
|
|
gc_free_bad_sblk:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
and w23, w0, 65535
|
|
str x27, [sp, 80]
|
|
adrp x27, .LANCHOR70
|
|
add x0, x27, :lo12:.LANCHOR70
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x25, x26, [sp, 64]
|
|
ldr w0, [x0, 2200]
|
|
cbz w0, .L1087
|
|
adrp x22, .LC67
|
|
mov w24, 20041
|
|
add x22, x22, :lo12:.LC67
|
|
mov w26, 0
|
|
movk w24, 0x444b, lsl 16
|
|
.L1074:
|
|
adrp x0, .LANCHOR79
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
cmp w0, w26
|
|
bhi .L1084
|
|
.L1087:
|
|
mov w0, 0
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L1084:
|
|
adrp x0, .LANCHOR75
|
|
adrp x1, .LANCHOR31
|
|
adrp x21, .LANCHOR74
|
|
ldrb w2, [x0, #:lo12:.LANCHOR75]
|
|
ldrb w3, [x1, #:lo12:.LANCHOR31]
|
|
mov w1, 24
|
|
and w0, w2, 65535
|
|
cmp w2, 1
|
|
sub w1, w1, w3
|
|
ldrh w3, [x21, #:lo12:.LANCHOR74]
|
|
sdiv w19, w26, w2
|
|
sub w1, w1, w3
|
|
lsl w19, w19, w1
|
|
madd w19, w23, w0, w19
|
|
and w19, w19, 65535
|
|
bls .L1075
|
|
sub w0, w0, #1
|
|
and w0, w0, w26
|
|
add w19, w19, w0
|
|
and w19, w19, 65535
|
|
.L1075:
|
|
adrp x25, .LANCHOR124
|
|
add x25, x25, :lo12:.LANCHOR124
|
|
mov w20, 0
|
|
.L1076:
|
|
add x0, x27, :lo12:.LANCHOR70
|
|
ldr w1, [x0, 2200]
|
|
cmp w20, w1
|
|
bcc .L1083
|
|
add w26, w26, 1
|
|
and w26, w26, 65535
|
|
b .L1074
|
|
.L1083:
|
|
add x0, x0, x20, sxtw 1
|
|
ldrh w0, [x0, 2204]
|
|
cmp w0, w19
|
|
bne .L1077
|
|
mov w1, w19
|
|
mov x0, x22
|
|
bl printf
|
|
ldrb w0, [x25]
|
|
cbnz w0, .L1078
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L1079
|
|
.L1078:
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w0, [x0, 156]
|
|
cmp w0, w24
|
|
beq .L1080
|
|
.L1079:
|
|
ldrh w0, [x21, #:lo12:.LANCHOR74]
|
|
lsl w0, w19, w0
|
|
bl ftl_mask_bad_block
|
|
.L1080:
|
|
add x1, x27, :lo12:.LANCHOR70
|
|
mov w0, w20
|
|
ldr w2, [x1, 2200]
|
|
.L1081:
|
|
cmp w0, w2
|
|
bcc .L1082
|
|
add x0, x27, :lo12:.LANCHOR70
|
|
sub w2, w2, #1
|
|
str w2, [x0, 2200]
|
|
.L1077:
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
b .L1076
|
|
.L1082:
|
|
add w3, w0, 1
|
|
add x0, x1, x0, sxtw 1
|
|
add x4, x1, x3, sxtw 1
|
|
ldrh w4, [x4, 2204]
|
|
strh w4, [x0, 2204]
|
|
and w0, w3, 65535
|
|
b .L1081
|
|
.size gc_free_bad_sblk, .-gc_free_bad_sblk
|
|
.section .text.ftl_free_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_free_sblk
|
|
.type ftl_free_sblk, %function
|
|
ftl_free_sblk:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x23, .LANCHOR9
|
|
and x24, x0, 65535
|
|
stp x19, x20, [sp, 16]
|
|
ldr x3, [x23, #:lo12:.LANCHOR9]
|
|
lsl x19, x24, 2
|
|
stp x21, x22, [sp, 32]
|
|
mov x21, x24
|
|
add x20, x3, x19
|
|
ldrb w0, [x20, 2]
|
|
ubfx x22, x0, 5, 3
|
|
tbz x0, 3, .L1094
|
|
adrp x2, .LANCHOR110
|
|
ldrh w1, [x3, x19]
|
|
adrp x8, .LANCHOR125
|
|
ldr x7, [x2, #:lo12:.LANCHOR110]
|
|
and w1, w1, 2047
|
|
ldr w2, [x3, x19]
|
|
ldrh w8, [x8, #:lo12:.LANCHOR125]
|
|
ldrh w4, [x7, 74]
|
|
ubfx x5, x2, 11, 8
|
|
adrp x2, .LANCHOR10
|
|
add w4, w1, w4
|
|
ldrh w2, [x2, #:lo12:.LANCHOR10]
|
|
and w6, w4, 65535
|
|
ldrh w4, [x7, 72]
|
|
add w4, w5, w4
|
|
udiv w7, w6, w2
|
|
and w4, w4, 65535
|
|
add w7, w7, w4
|
|
cmp w7, w8
|
|
ble .L1095
|
|
adrp x4, .LANCHOR101
|
|
adrp x7, .LANCHOR105
|
|
ldrh w6, [x4, #:lo12:.LANCHOR101]
|
|
adrp x4, .LANCHOR91
|
|
ldrh w7, [x7, #:lo12:.LANCHOR105]
|
|
ldrh w4, [x4, #:lo12:.LANCHOR91]
|
|
add w6, w6, 7
|
|
add w4, w4, w7
|
|
cmp w6, w4
|
|
blt .L1096
|
|
.L1101:
|
|
mov w4, 2
|
|
bfi w0, w4, 3, 2
|
|
b .L1112
|
|
.L1096:
|
|
adrp x4, .LANCHOR98
|
|
adrp x7, .LANCHOR103
|
|
ldrh w6, [x4, #:lo12:.LANCHOR98]
|
|
adrp x4, .LANCHOR97
|
|
ldrh w7, [x7, #:lo12:.LANCHOR103]
|
|
ldrh w4, [x4, #:lo12:.LANCHOR97]
|
|
add w6, w6, 7
|
|
add w4, w4, w7
|
|
adrp x7, .LANCHOR99
|
|
ldrh w7, [x7, #:lo12:.LANCHOR99]
|
|
add w4, w4, w7
|
|
cmp w6, w4
|
|
blt .L1101
|
|
.L1114:
|
|
and w0, w0, -25
|
|
.L1112:
|
|
strb w0, [x20, 2]
|
|
.L1097:
|
|
ldrb w0, [x20, 2]
|
|
ands w0, w0, 24
|
|
bne .L1102
|
|
mul w2, w5, w2
|
|
ldrh w0, [x3, x19]
|
|
add w2, w2, w2, lsl 1
|
|
add w1, w1, w2, lsr 2
|
|
lsr w2, w5, 3
|
|
bfi w0, w1, 0, 11
|
|
strh w0, [x3, x19]
|
|
ldr w0, [x3, x19]
|
|
bfi w0, w2, 11, 8
|
|
str w0, [x3, x19]
|
|
.L1103:
|
|
mov w0, w21
|
|
bl zftl_remove_data_node
|
|
ldr x0, [x23, #:lo12:.LANCHOR9]
|
|
add w22, w22, 6
|
|
and w22, w22, 7
|
|
add x19, x0, x19
|
|
cmp w22, 4
|
|
ldrb w0, [x19, 2]
|
|
and w0, w0, 31
|
|
strb w0, [x19, 2]
|
|
adrp x0, .LANCHOR11
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x24, lsl 1]
|
|
bhi .L1106
|
|
mov w0, w21
|
|
bl gc_free_bad_sblk
|
|
.L1106:
|
|
ldrb w0, [x20, 2]
|
|
tbz x0, 3, .L1107
|
|
adrp x0, .LANCHOR12
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x0, 586]
|
|
cmp w1, w21
|
|
bne .L1107
|
|
mov w1, -1
|
|
ldrh w2, [x0, 590]
|
|
strh w1, [x0, 586]
|
|
mov w1, 65535
|
|
cmp w2, w1
|
|
bne .L1107
|
|
strh w21, [x0, 590]
|
|
mov w1, w21
|
|
ldp x19, x20, [sp, 16]
|
|
adrp x0, .LC68
|
|
ldp x21, x22, [sp, 32]
|
|
add x0, x0, :lo12:.LC68
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
b printf
|
|
.L1095:
|
|
madd w4, w2, w4, w6
|
|
adrp x6, .LANCHOR126
|
|
ldrh w6, [x6, #:lo12:.LANCHOR126]
|
|
cmp w4, w6
|
|
ble .L1097
|
|
adrp x4, .LANCHOR98
|
|
adrp x7, .LANCHOR103
|
|
ldrh w6, [x4, #:lo12:.LANCHOR98]
|
|
adrp x4, .LANCHOR97
|
|
ldrh w7, [x7, #:lo12:.LANCHOR103]
|
|
ldrh w4, [x4, #:lo12:.LANCHOR97]
|
|
add w4, w4, w7
|
|
adrp x7, .LANCHOR99
|
|
ldrh w7, [x7, #:lo12:.LANCHOR99]
|
|
add w4, w4, w7
|
|
add w7, w6, 7
|
|
cmp w7, w4
|
|
bge .L1114
|
|
adrp x7, .LANCHOR101
|
|
adrp x10, .LANCHOR105
|
|
ldrh w8, [x7, #:lo12:.LANCHOR101]
|
|
adrp x7, .LANCHOR91
|
|
ldrh w10, [x10, #:lo12:.LANCHOR105]
|
|
ldrh w7, [x7, #:lo12:.LANCHOR91]
|
|
add w8, w8, 7
|
|
add w7, w7, w10
|
|
cmp w8, w7
|
|
bge .L1101
|
|
add w6, w6, 23
|
|
cmp w4, w6
|
|
bgt .L1101
|
|
b .L1114
|
|
.L1102:
|
|
cmp w0, 16
|
|
bne .L1103
|
|
sdiv w2, w1, w2
|
|
ldr w0, [x3, x19]
|
|
add w2, w2, w2, lsl 1
|
|
add w2, w5, w2, lsr 2
|
|
.L1113:
|
|
bfi w0, w2, 11, 8
|
|
asr w1, w1, 5
|
|
str w0, [x3, x19]
|
|
bfi w0, w1, 0, 11
|
|
strh w0, [x3, x19]
|
|
b .L1103
|
|
.L1094:
|
|
tst w0, 24
|
|
bne .L1103
|
|
adrp x1, .LANCHOR107
|
|
ldrh w1, [x1, #:lo12:.LANCHOR107]
|
|
cbnz w1, .L1103
|
|
adrp x1, .LANCHOR105
|
|
ldrh w4, [x1, #:lo12:.LANCHOR105]
|
|
cmp w4, 15
|
|
bhi .L1103
|
|
adrp x1, .LANCHOR97
|
|
adrp x2, .LANCHOR103
|
|
ldrh w1, [x1, #:lo12:.LANCHOR97]
|
|
ldrh w2, [x2, #:lo12:.LANCHOR103]
|
|
add w1, w1, w2
|
|
adrp x2, .LANCHOR99
|
|
ldrh w2, [x2, #:lo12:.LANCHOR99]
|
|
add w1, w1, w2
|
|
adrp x2, .LANCHOR98
|
|
ldrh w2, [x2, #:lo12:.LANCHOR98]
|
|
add w2, w2, 16
|
|
cmp w1, w2
|
|
ble .L1103
|
|
adrp x1, .LANCHOR101
|
|
ldrh w2, [x1, #:lo12:.LANCHOR101]
|
|
adrp x1, .LANCHOR91
|
|
ldrh w1, [x1, #:lo12:.LANCHOR91]
|
|
add w2, w2, 7
|
|
add w1, w1, w4
|
|
cmp w2, w1
|
|
blt .L1103
|
|
mov w1, 2
|
|
bfi w0, w1, 3, 2
|
|
strb w0, [x20, 2]
|
|
adrp x0, .LANCHOR10
|
|
ldrh w1, [x3, x19]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR10]
|
|
and w1, w1, 2047
|
|
sdiv w0, w1, w0
|
|
add w2, w0, w0, lsl 1
|
|
ldr w0, [x3, x19]
|
|
ubfx x4, x0, 11, 8
|
|
add w2, w4, w2, lsr 2
|
|
b .L1113
|
|
.L1107:
|
|
mov w0, w21
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
b zftl_insert_free_list
|
|
.size ftl_free_sblk, .-ftl_free_sblk
|
|
.section .text.gc_free_src_blk,"ax",@progbits
|
|
.align 2
|
|
.global gc_free_src_blk
|
|
.type gc_free_src_blk, %function
|
|
gc_free_src_blk:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR70
|
|
stp x23, x24, [sp, 48]
|
|
adrp x22, .LC69
|
|
adrp x23, .LANCHOR11
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
mov x24, x23
|
|
add x22, x22, :lo12:.LC69
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, 0
|
|
stp x25, x26, [sp, 64]
|
|
.L1116:
|
|
ldrh w0, [x21, 56]
|
|
cmp w0, w20
|
|
bhi .L1130
|
|
strh wzr, [x21, 56]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L1130:
|
|
add x0, x21, x20, sxtw 1
|
|
ldrh w25, [x0, 58]
|
|
ldr x0, [x23, #:lo12:.LANCHOR11]
|
|
mov x19, x25
|
|
lsl x26, x25, 1
|
|
ldrh w2, [x0, x26]
|
|
cbz w2, .L1117
|
|
mov w1, w25
|
|
mov x0, x22
|
|
bl printf
|
|
.L1117:
|
|
ldr x0, [x24, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x26]
|
|
adrp x0, .LANCHOR9
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x25, x0, x25, lsl 2
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L1118
|
|
ldrb w2, [x25, 2]
|
|
adrp x0, .LC70
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LC70
|
|
ubfx x2, x2, 5, 3
|
|
bl printf
|
|
.L1118:
|
|
ldrb w0, [x25, 2]
|
|
and w1, w0, 224
|
|
cmp w1, 224
|
|
beq .L1119
|
|
tst w0, 192
|
|
bne .L1120
|
|
.L1119:
|
|
adrp x1, .LANCHOR127
|
|
adrp x0, .LC0
|
|
mov w2, 1363
|
|
add x1, x1, :lo12:.LANCHOR127
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1120:
|
|
mov w0, w19
|
|
bl ftl_free_sblk
|
|
adrp x0, .LANCHOR12
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldrh w2, [x0, 124]
|
|
cbz w2, .L1121
|
|
add x3, x0, 392
|
|
mov w1, 0
|
|
.L1123:
|
|
ldrh w4, [x3]
|
|
cmp w4, w19
|
|
bne .L1122
|
|
add x1, x0, x1, sxtw 1
|
|
mov w3, -1
|
|
sub w2, w2, #1
|
|
strh w3, [x1, 392]
|
|
strh w2, [x0, 124]
|
|
.L1121:
|
|
ldrh w2, [x0, 120]
|
|
cbz w2, .L1124
|
|
add x3, x0, 136
|
|
mov w1, 0
|
|
.L1126:
|
|
ldrh w4, [x3]
|
|
cmp w4, w19
|
|
bne .L1125
|
|
add x1, x0, x1, sxtw 1
|
|
mov w3, -1
|
|
sub w2, w2, #1
|
|
strh w3, [x1, 136]
|
|
strh w2, [x0, 120]
|
|
.L1124:
|
|
ldrh w2, [x0, 122]
|
|
cbz w2, .L1127
|
|
add x3, x0, 264
|
|
mov w1, 0
|
|
.L1129:
|
|
ldrh w4, [x3]
|
|
cmp w4, w19
|
|
bne .L1128
|
|
add x1, x0, x1, sxtw 1
|
|
mov w3, -1
|
|
sub w2, w2, #1
|
|
strh w3, [x1, 264]
|
|
strh w2, [x0, 122]
|
|
.L1127:
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
b .L1116
|
|
.L1122:
|
|
add w1, w1, 1
|
|
add x3, x3, 2
|
|
cmp w1, 64
|
|
bne .L1123
|
|
b .L1121
|
|
.L1125:
|
|
add w1, w1, 1
|
|
add x3, x3, 2
|
|
cmp w1, 64
|
|
bne .L1126
|
|
b .L1124
|
|
.L1128:
|
|
add w1, w1, 1
|
|
add x3, x3, 2
|
|
cmp w1, 64
|
|
bne .L1129
|
|
b .L1127
|
|
.size gc_free_src_blk, .-gc_free_src_blk
|
|
.section .text.print_ftl_debug_info,"ax",@progbits
|
|
.align 2
|
|
.global print_ftl_debug_info
|
|
.type print_ftl_debug_info, %function
|
|
print_ftl_debug_info:
|
|
sub sp, sp, #64
|
|
adrp x2, .LANCHOR99
|
|
adrp x8, .LANCHOR128
|
|
stp x29, x30, [sp, 32]
|
|
add x29, sp, 32
|
|
ldrh w7, [x2, #:lo12:.LANCHOR99]
|
|
adrp x2, .LANCHOR97
|
|
stp x19, x20, [sp, 48]
|
|
adrp x19, .LANCHOR110
|
|
adrp x20, .LANCHOR12
|
|
ldrh w6, [x2, #:lo12:.LANCHOR97]
|
|
adrp x2, .LANCHOR107
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w5, [x2, #:lo12:.LANCHOR107]
|
|
adrp x2, .LANCHOR105
|
|
ldr x0, [x20, #:lo12:.LANCHOR12]
|
|
ldrh w4, [x2, #:lo12:.LANCHOR105]
|
|
adrp x2, .LANCHOR103
|
|
ldr w8, [x8, #:lo12:.LANCHOR128]
|
|
ldrh w3, [x2, #:lo12:.LANCHOR103]
|
|
ldrh w2, [x1, 146]
|
|
ldrh w1, [x1, 148]
|
|
str w8, [sp, 24]
|
|
ldr w8, [x0, 528]
|
|
str w8, [sp, 16]
|
|
ldr w0, [x0, 524]
|
|
str w0, [sp, 8]
|
|
adrp x0, .LANCHOR91
|
|
ldrh w0, [x0, #:lo12:.LANCHOR91]
|
|
str w0, [sp]
|
|
adrp x0, .LC71
|
|
add x0, x0, :lo12:.LC71
|
|
bl printf
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
adrp x1, .LANCHOR129
|
|
ldrb w3, [x1, #:lo12:.LANCHOR129]
|
|
ldr w4, [x0, 8]
|
|
ldr w5, [x0, 64]
|
|
ldr w1, [x0, 20]
|
|
ldr w2, [x0, 28]
|
|
adrp x0, .LC72
|
|
add x0, x0, :lo12:.LC72
|
|
bl printf
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 52]
|
|
ldr w2, [x0, 60]
|
|
ldr w3, [x0, 16]
|
|
adrp x0, .LC73
|
|
add x0, x0, :lo12:.LC73
|
|
lsr w3, w3, 11
|
|
bl printf
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x0, 98]
|
|
ldrh w6, [x0, 72]
|
|
ldrh w5, [x0, 96]
|
|
ldrh w4, [x0, 92]
|
|
ldrh w3, [x0, 88]
|
|
ldrh w1, [x0, 74]
|
|
str w2, [sp, 16]
|
|
ldrh w2, [x0, 94]
|
|
str w2, [sp, 8]
|
|
ldrh w2, [x0, 90]
|
|
str w2, [sp]
|
|
ldp w7, w2, [x0, 80]
|
|
adrp x0, .LC74
|
|
add x0, x0, :lo12:.LC74
|
|
bl printf
|
|
adrp x0, .LANCHOR86
|
|
ldrh w5, [x0, #:lo12:.LANCHOR86]
|
|
adrp x0, .LANCHOR93
|
|
ldrh w4, [x0, #:lo12:.LANCHOR93]
|
|
adrp x0, .LANCHOR69
|
|
ldrh w3, [x0, #:lo12:.LANCHOR69]
|
|
adrp x0, .LANCHOR102
|
|
ldrh w2, [x0, #:lo12:.LANCHOR102]
|
|
adrp x0, .LANCHOR100
|
|
ldrh w1, [x0, #:lo12:.LANCHOR100]
|
|
adrp x0, .LC75
|
|
add x0, x0, :lo12:.LC75
|
|
bl printf
|
|
ldr x0, [x20, #:lo12:.LANCHOR12]
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldp x29, x30, [sp, 32]
|
|
ldrh w4, [x0, 590]
|
|
ldrh w6, [x1, 150]
|
|
ldrh w3, [x0, 588]
|
|
ldrh w2, [x0, 586]
|
|
ldp x19, x20, [sp, 48]
|
|
add sp, sp, 64
|
|
ldr w5, [x1, 156]
|
|
ldrh w1, [x0, 584]
|
|
adrp x0, .LC76
|
|
add x0, x0, :lo12:.LC76
|
|
b printf
|
|
.size print_ftl_debug_info, .-print_ftl_debug_info
|
|
.section .text.ftl_write_buf,"ax",@progbits
|
|
.align 2
|
|
.global ftl_write_buf
|
|
.type ftl_write_buf, %function
|
|
ftl_write_buf:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
str x21, [sp, 32]
|
|
cbnz x0, .L1156
|
|
adrp x1, .LANCHOR130
|
|
add x1, x1, :lo12:.LANCHOR130
|
|
mov w2, 808
|
|
adrp x0, .LC0
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
bl print_ftl_debug_info
|
|
mov w0, -1
|
|
.L1155:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L1159:
|
|
mov x1, x19
|
|
adrp x0, .LANCHOR65
|
|
add x0, x0, :lo12:.LANCHOR65
|
|
bl buf_add_tail
|
|
adrp x1, .LANCHOR110
|
|
ldrb w3, [x19, 56]
|
|
ldrb w0, [x21, #:lo12:.LANCHOR66]
|
|
ldr x1, [x1, #:lo12:.LANCHOR110]
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
strb w0, [x21, #:lo12:.LANCHOR66]
|
|
ldr w2, [x1, 16]
|
|
add w2, w2, w3
|
|
str w2, [x1, 16]
|
|
ldr w2, [x1, 32]
|
|
add w2, w2, 1
|
|
str w2, [x1, 32]
|
|
b .L1155
|
|
.L1156:
|
|
mov x19, x0
|
|
adrp x0, .LANCHOR131
|
|
mov x20, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR131]
|
|
ldrb w2, [x19, 56]
|
|
cmp w2, w1
|
|
bls .L1161
|
|
adrp x1, .LANCHOR130
|
|
adrp x0, .LC0
|
|
mov w2, 815
|
|
add x1, x1, :lo12:.LANCHOR130
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1161:
|
|
ldrb w0, [x19, 56]
|
|
adrp x21, .LANCHOR66
|
|
cbz w0, .L1158
|
|
ldrb w1, [x20, #:lo12:.LANCHOR131]
|
|
cmp w1, w0
|
|
bcs .L1159
|
|
.L1158:
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
ldrb w0, [x21, #:lo12:.LANCHOR66]
|
|
b .L1155
|
|
.size ftl_write_buf, .-ftl_write_buf
|
|
.section .text.ftl_write_completed,"ax",@progbits
|
|
.align 2
|
|
.global ftl_write_completed
|
|
.type ftl_write_completed, %function
|
|
ftl_write_completed:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR55
|
|
stp x19, x20, [sp, 16]
|
|
add x22, x21, :lo12:.LANCHOR55
|
|
stp x23, x24, [sp, 48]
|
|
adrp x20, .LANCHOR64
|
|
mov w23, 20041
|
|
add x20, x20, :lo12:.LANCHOR64
|
|
str x25, [sp, 64]
|
|
movk w23, 0x444b, lsl 16
|
|
mov w25, 0
|
|
.L1167:
|
|
ldrb w0, [x20]
|
|
cmp w0, 255
|
|
bne .L1178
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L1178:
|
|
add x1, x21, :lo12:.LANCHOR55
|
|
lsl x2, x0, 6
|
|
add x24, x1, x2
|
|
ubfiz x19, x0, 6, 8
|
|
add x19, x1, x19
|
|
ldrb w1, [x1, x2]
|
|
strb w1, [x20]
|
|
ldr w1, [x24, 52]
|
|
cmn w1, #1
|
|
bne .L1168
|
|
adrp x1, .LANCHOR124
|
|
ldrb w1, [x1, #:lo12:.LANCHOR124]
|
|
cbnz w1, .L1169
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbz w1, .L1170
|
|
.L1169:
|
|
adrp x1, .LANCHOR110
|
|
ldr x1, [x1, #:lo12:.LANCHOR110]
|
|
ldr w1, [x1, 156]
|
|
cmp w1, w23
|
|
beq .L1171
|
|
.L1170:
|
|
add x1, x22, x0, lsl 6
|
|
mov w2, 24
|
|
mov w5, 65535
|
|
ldr w3, [x1, 40]
|
|
adrp x1, .LANCHOR74
|
|
ldrh w4, [x1, #:lo12:.LANCHOR74]
|
|
adrp x1, .LANCHOR31
|
|
ldrb w1, [x1, #:lo12:.LANCHOR31]
|
|
sub w1, w2, w1
|
|
sub w2, w1, w4
|
|
mov w1, 1
|
|
lsr w4, w3, w4
|
|
lsl w1, w1, w2
|
|
adrp x2, .LANCHOR75
|
|
sub w1, w1, #1
|
|
ldrb w2, [x2, #:lo12:.LANCHOR75]
|
|
and w1, w1, w4
|
|
udiv w1, w1, w2
|
|
adrp x2, .LANCHOR12
|
|
mov x24, x2
|
|
ldr x4, [x2, #:lo12:.LANCHOR12]
|
|
and w25, w1, 65535
|
|
and w1, w1, w5
|
|
ldr w6, [x4, 560]
|
|
cmp w6, w5
|
|
bne .L1172
|
|
str w1, [x4, 560]
|
|
str w3, [x4, 564]
|
|
.L1172:
|
|
add x0, x22, x0, lsl 6
|
|
ldr w2, [x0, 36]
|
|
adrp x0, .LC77
|
|
add x0, x0, :lo12:.LC77
|
|
bl printf
|
|
ldr x0, [x24, #:lo12:.LANCHOR12]
|
|
ldr w1, [x0, 556]
|
|
add w1, w1, 1
|
|
str w1, [x0, 556]
|
|
ldrh w1, [x0, 16]
|
|
cmp w1, w25
|
|
bne .L1173
|
|
strh wzr, [x0, 22]
|
|
.L1171:
|
|
mov x0, x19
|
|
mov w25, 1
|
|
bl ftl_write_buf
|
|
b .L1167
|
|
.L1173:
|
|
ldrh w1, [x0, 48]
|
|
cmp w1, w25
|
|
bne .L1171
|
|
strh wzr, [x0, 54]
|
|
b .L1171
|
|
.L1168:
|
|
cbz w25, .L1176
|
|
ldp w1, w2, [x24, 36]
|
|
adrp x0, .LC78
|
|
add x0, x0, :lo12:.LC78
|
|
bl printf
|
|
mov x0, x19
|
|
bl ftl_write_buf
|
|
b .L1167
|
|
.L1176:
|
|
ldrh w2, [x24, 48]
|
|
ldr w0, [x24, 36]
|
|
ldr w1, [x24, 44]
|
|
bl lpa_hash_update_ppa
|
|
ldrb w0, [x24, 2]
|
|
tbz x0, 2, .L1177
|
|
and w0, w0, -3
|
|
strb w0, [x24, 2]
|
|
b .L1167
|
|
.L1177:
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
b .L1167
|
|
.size ftl_write_completed, .-ftl_write_completed
|
|
.section .text.zftl_add_read_buf,"ax",@progbits
|
|
.align 2
|
|
.global zftl_add_read_buf
|
|
.type zftl_add_read_buf, %function
|
|
zftl_add_read_buf:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
cbnz x0, .L1184
|
|
mov w2, 1148
|
|
adrp x1, .LANCHOR132
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR132
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
b print_ftl_debug_info
|
|
.L1184:
|
|
ldrb w1, [x0, 56]
|
|
mov x19, x0
|
|
adrp x0, .LANCHOR131
|
|
ldrb w0, [x0, #:lo12:.LANCHOR131]
|
|
cmp w1, w0
|
|
bls .L1186
|
|
adrp x1, .LANCHOR132
|
|
adrp x0, .LC0
|
|
mov w2, 1155
|
|
add x1, x1, :lo12:.LANCHOR132
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1186:
|
|
mov x1, x19
|
|
adrp x0, .LANCHOR133
|
|
add x0, x0, :lo12:.LANCHOR133
|
|
bl buf_add_tail
|
|
adrp x1, .LANCHOR134
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ldrb w0, [x1, #:lo12:.LANCHOR134]
|
|
add w0, w0, 1
|
|
strb w0, [x1, #:lo12:.LANCHOR134]
|
|
ret
|
|
.size zftl_add_read_buf, .-zftl_add_read_buf
|
|
.section .text.sblk_init,"ax",@progbits
|
|
.align 2
|
|
.global sblk_init
|
|
.type sblk_init, %function
|
|
sblk_init:
|
|
adrp x1, .LANCHOR59
|
|
mov w0, -1
|
|
strb w0, [x1, #:lo12:.LANCHOR59]
|
|
adrp x1, .LANCHOR64
|
|
strb w0, [x1, #:lo12:.LANCHOR64]
|
|
adrp x1, .LANCHOR62
|
|
strb w0, [x1, #:lo12:.LANCHOR62]
|
|
adrp x1, .LANCHOR63
|
|
strb w0, [x1, #:lo12:.LANCHOR63]
|
|
mov w0, 0
|
|
ret
|
|
.size sblk_init, .-sblk_init
|
|
.section .text.dump_sblk_queue,"ax",@progbits
|
|
.align 2
|
|
.global dump_sblk_queue
|
|
.type dump_sblk_queue, %function
|
|
dump_sblk_queue:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x0, .LC79
|
|
add x0, x0, :lo12:.LC79
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR59
|
|
str x21, [sp, 32]
|
|
ldrb w1, [x19, #:lo12:.LANCHOR59]
|
|
bl printf
|
|
ldrb w19, [x19, #:lo12:.LANCHOR59]
|
|
cmp w19, 255
|
|
beq .L1190
|
|
adrp x1, .LANCHOR55
|
|
ubfiz x19, x19, 6, 8
|
|
add x1, x1, :lo12:.LANCHOR55
|
|
adrp x21, .LC80
|
|
add x19, x1, x19
|
|
add x21, x21, :lo12:.LC80
|
|
mov x20, x1
|
|
.L1192:
|
|
ldrb w2, [x19, 58]
|
|
mov x0, x21
|
|
ldrb w1, [x19, 1]
|
|
ldr w3, [x19, 40]
|
|
bl printf
|
|
ldrb w19, [x19]
|
|
cmp w19, 255
|
|
beq .L1190
|
|
ubfiz x19, x19, 6, 8
|
|
add x19, x20, x19
|
|
b .L1192
|
|
.L1190:
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size dump_sblk_queue, .-dump_sblk_queue
|
|
.section .text.queue_lun_state,"ax",@progbits
|
|
.align 2
|
|
.global queue_lun_state
|
|
.type queue_lun_state, %function
|
|
queue_lun_state:
|
|
adrp x2, .LANCHOR59
|
|
ldrb w2, [x2, #:lo12:.LANCHOR59]
|
|
cmp w2, 255
|
|
beq .L1208
|
|
adrp x3, .LANCHOR31
|
|
mov w8, 24
|
|
adrp x10, .LANCHOR55
|
|
add x10, x10, :lo12:.LANCHOR55
|
|
ldrb w4, [x3, #:lo12:.LANCHOR31]
|
|
mov w3, 1
|
|
adrp x13, .L1204
|
|
mov x15, x10
|
|
sub w8, w8, w4
|
|
add x13, x13, :lo12:.L1204
|
|
lsl w4, w3, w4
|
|
sub w4, w4, #1
|
|
and w6, w4, 65535
|
|
adrp x4, .LANCHOR74
|
|
asr w11, w0, w8
|
|
and w11, w11, w6
|
|
ldrh w12, [x4, #:lo12:.LANCHOR74]
|
|
sub w4, w8, w12
|
|
lsl w3, w3, w4
|
|
sub w3, w3, #1
|
|
and w7, w3, 65535
|
|
adrp x3, .LANCHOR75
|
|
ldrb w5, [x3, #:lo12:.LANCHOR75]
|
|
asr w3, w0, w12
|
|
sub w5, w5, #1
|
|
and w5, w5, 65535
|
|
and w3, w3, w5
|
|
and w3, w3, w7
|
|
.L1207:
|
|
add x14, x10, x2, lsl 6
|
|
ldr w4, [x14, 40]
|
|
lsr w0, w4, w8
|
|
and w0, w6, w0
|
|
cmp w11, w0
|
|
bne .L1202
|
|
lsr w4, w4, w12
|
|
and w4, w5, w4
|
|
and w4, w7, w4
|
|
ldrb w0, [x14, 58]
|
|
cmp w3, w4
|
|
bne .L1203
|
|
cmp w1, 1
|
|
bne .L1200
|
|
cmp w0, 7
|
|
ccmp w0, 9, 4, ne
|
|
beq .L1202
|
|
ret
|
|
.L1203:
|
|
cmp w1, 3
|
|
bhi .L1202
|
|
ldrb w4, [x13,w1,uxtw]
|
|
adr x14, .Lrtx1204
|
|
add x4, x14, w4, sxtb #2
|
|
br x4
|
|
.Lrtx1204:
|
|
.section .rodata.queue_lun_state,"a",@progbits
|
|
.align 0
|
|
.align 2
|
|
.L1204:
|
|
.byte (.L1200 - .Lrtx1204) / 4
|
|
.byte (.L1205 - .Lrtx1204) / 4
|
|
.byte (.L1206 - .Lrtx1204) / 4
|
|
.byte (.L1200 - .Lrtx1204) / 4
|
|
.section .text.queue_lun_state
|
|
.L1205:
|
|
cmp w0, 7
|
|
ccmp w0, 9, 4, ne
|
|
beq .L1202
|
|
ret
|
|
.L1206:
|
|
cmp w0, 11
|
|
bne .L1200
|
|
.L1202:
|
|
lsl x2, x2, 6
|
|
ldrb w2, [x15, x2]
|
|
cmp w2, 255
|
|
bne .L1207
|
|
.L1208:
|
|
mov w0, 0
|
|
.L1200:
|
|
ret
|
|
.size queue_lun_state, .-queue_lun_state
|
|
.section .text.queue_remove_completed_req,"ax",@progbits
|
|
.align 2
|
|
.global queue_remove_completed_req
|
|
.type queue_remove_completed_req, %function
|
|
queue_remove_completed_req:
|
|
adrp x4, .LANCHOR64
|
|
adrp x8, .LANCHOR63
|
|
adrp x1, .LANCHOR59
|
|
adrp x7, .LANCHOR62
|
|
adrp x3, .LANCHOR55
|
|
ldrb w14, [x4, #:lo12:.LANCHOR64]
|
|
add x5, x3, :lo12:.LANCHOR55
|
|
ldrb w2, [x1, #:lo12:.LANCHOR59]
|
|
ldrb w12, [x8, #:lo12:.LANCHOR63]
|
|
mov x11, x5
|
|
ldrb w13, [x7, #:lo12:.LANCHOR62]
|
|
add x16, x8, :lo12:.LANCHOR63
|
|
add x7, x7, :lo12:.LANCHOR62
|
|
add x10, x4, :lo12:.LANCHOR64
|
|
mov w6, 0
|
|
mov w15, -1
|
|
.L1211:
|
|
cmp w2, 255
|
|
beq .L1212
|
|
sbfiz x8, x2, 6, 32
|
|
sxtw x0, w2
|
|
add x4, x5, x8
|
|
ldrb w4, [x4, 58]
|
|
sub w4, w4, #12
|
|
and w4, w4, 255
|
|
cmp w4, 1
|
|
bls .L1213
|
|
cbz w6, .L1210
|
|
strb w2, [x1, #:lo12:.LANCHOR59]
|
|
ret
|
|
.L1213:
|
|
lsl x6, x0, 6
|
|
ldrb w2, [x5, x8]
|
|
add x4, x5, x6
|
|
strb w15, [x5, x6]
|
|
ldrb w6, [x4, 59]
|
|
cmp w6, 1
|
|
bne .L1216
|
|
ldrh w4, [x4, 50]
|
|
cbnz w4, .L1224
|
|
mov w4, w14
|
|
mov x6, x10
|
|
.L1217:
|
|
cmp w4, 255
|
|
bne .L1222
|
|
add x3, x3, :lo12:.LANCHOR55
|
|
strb w2, [x1, #:lo12:.LANCHOR59]
|
|
add x0, x3, x0, lsl 6
|
|
ldrb w0, [x0, 1]
|
|
strb w0, [x6]
|
|
ret
|
|
.L1216:
|
|
cbnz w6, .L1218
|
|
ldr w4, [x4, 36]
|
|
cmn w4, #1
|
|
beq .L1218
|
|
mov w4, w13
|
|
mov x6, x7
|
|
b .L1217
|
|
.L1224:
|
|
mov w4, w12
|
|
mov x6, x16
|
|
b .L1217
|
|
.L1222:
|
|
mov w6, w4
|
|
sbfiz x4, x4, 6, 32
|
|
ldrb w4, [x11, x4]
|
|
cmp w4, 255
|
|
bne .L1222
|
|
add x0, x11, x0, lsl 6
|
|
sbfiz x6, x6, 6, 32
|
|
ldrb w0, [x0, 1]
|
|
strb w0, [x11, x6]
|
|
.L1218:
|
|
mov w6, 1
|
|
b .L1211
|
|
.L1212:
|
|
cbz w6, .L1210
|
|
mov w0, -1
|
|
strb w0, [x1, #:lo12:.LANCHOR59]
|
|
.L1210:
|
|
ret
|
|
.size queue_remove_completed_req, .-queue_remove_completed_req
|
|
.section .text.pm_select_ram_region,"ax",@progbits
|
|
.align 2
|
|
.global pm_select_ram_region
|
|
.type pm_select_ram_region, %function
|
|
pm_select_ram_region:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x0, .LANCHOR135
|
|
add x0, x0, :lo12:.LANCHOR135
|
|
mov x1, 0
|
|
add x29, sp, 0
|
|
mov w2, 65535
|
|
str x19, [sp, 16]
|
|
.L1236:
|
|
lsl x3, x1, 4
|
|
and w19, w1, 65535
|
|
ldrh w3, [x3, x0]
|
|
cmp w3, w2
|
|
beq .L1235
|
|
add x1, x1, 1
|
|
cmp x1, 32
|
|
bne .L1236
|
|
add x0, x0, 2
|
|
mov w19, w1
|
|
mov x2, x0
|
|
mov w4, 32768
|
|
mov w1, 0
|
|
.L1238:
|
|
ldrh w3, [x2]
|
|
tbnz x3, 15, .L1237
|
|
cmp w3, w4
|
|
bcs .L1237
|
|
mov w4, w3
|
|
mov w19, w1
|
|
.L1237:
|
|
add w1, w1, 1
|
|
add x2, x2, 16
|
|
and w1, w1, 65535
|
|
cmp w1, 32
|
|
bne .L1238
|
|
cmp w19, 32
|
|
bne .L1235
|
|
adrp x1, .LANCHOR136
|
|
mov w2, -1
|
|
ldrb w3, [x1, #:lo12:.LANCHOR136]
|
|
mov w1, 0
|
|
.L1240:
|
|
ldrh w5, [x0]
|
|
cmp w5, w2
|
|
bcs .L1239
|
|
ldrh w4, [x0, -2]
|
|
cmp w4, w3
|
|
csel w2, w2, w5, eq
|
|
csel w19, w19, w1, eq
|
|
.L1239:
|
|
add w1, w1, 1
|
|
add x0, x0, 16
|
|
and w1, w1, 65535
|
|
cmp w1, 32
|
|
bne .L1240
|
|
cmp w19, 32
|
|
bne .L1235
|
|
adrp x1, .LANCHOR137
|
|
adrp x0, .LC0
|
|
mov w2, 377
|
|
add x1, x1, :lo12:.LANCHOR137
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1235:
|
|
mov w0, w19
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size pm_select_ram_region, .-pm_select_ram_region
|
|
.section .text.idb_init,"ax",@progbits
|
|
.align 2
|
|
.global idb_init
|
|
.type idb_init, %function
|
|
idb_init:
|
|
adrp x0, .LANCHOR138
|
|
str xzr, [x0, #:lo12:.LANCHOR138]
|
|
adrp x0, .LANCHOR139
|
|
str wzr, [x0, #:lo12:.LANCHOR139]
|
|
adrp x0, .LANCHOR140
|
|
strb wzr, [x0, #:lo12:.LANCHOR140]
|
|
adrp x0, .LANCHOR141
|
|
str xzr, [x0, #:lo12:.LANCHOR141]
|
|
mov w0, 0
|
|
ret
|
|
.size idb_init, .-idb_init
|
|
.section .text.ftl_memset,"ax",@progbits
|
|
.align 2
|
|
.global ftl_memset
|
|
.type ftl_memset, %function
|
|
ftl_memset:
|
|
uxtw x2, w2
|
|
b memset
|
|
.size ftl_memset, .-ftl_memset
|
|
.section .text.flash_lsb_page_tbl_build,"ax",@progbits
|
|
.align 2
|
|
.global flash_lsb_page_tbl_build
|
|
.type flash_lsb_page_tbl_build, %function
|
|
flash_lsb_page_tbl_build:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x1, .LANCHOR21
|
|
add x29, sp, 0
|
|
ldr x1, [x1, #:lo12:.LANCHOR21]
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, 1024
|
|
str x21, [sp, 32]
|
|
adrp x19, .LANCHOR3
|
|
ldrb w1, [x1, 12]
|
|
sdiv w20, w20, w1
|
|
cbnz w0, .L1248
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov x0, 0
|
|
.L1249:
|
|
strh w0, [x1, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp x0, 512
|
|
bne .L1249
|
|
.L1255:
|
|
adrp x21, .LANCHOR142
|
|
add x21, x21, :lo12:.LANCHOR142
|
|
mov w2, 2048
|
|
mov w1, 255
|
|
mov x0, x21
|
|
add x19, x19, :lo12:.LANCHOR3
|
|
bl ftl_memset
|
|
mov x0, 0
|
|
.L1250:
|
|
ldrh w1, [x19, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp w20, w0, uxth
|
|
strh w1, [x21, w1, sxtw 1]
|
|
bhi .L1250
|
|
ldp x19, x20, [sp, 16]
|
|
ldr x21, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L1248:
|
|
cmp w0, 1
|
|
bne .L1251
|
|
add x3, x19, :lo12:.LANCHOR3
|
|
mov x1, 0
|
|
.L1254:
|
|
and w0, w1, 65535
|
|
cmp x1, 3
|
|
bls .L1252
|
|
ubfiz w2, w0, 1, 15
|
|
and w0, w0, 1
|
|
add w0, w0, 2
|
|
sub w0, w2, w0
|
|
and w0, w0, 65535
|
|
.L1252:
|
|
strh w0, [x3, x1, lsl 1]
|
|
add x1, x1, 1
|
|
cmp x1, 512
|
|
bne .L1254
|
|
b .L1255
|
|
.L1251:
|
|
cmp w0, 2
|
|
bne .L1256
|
|
add x3, x19, :lo12:.LANCHOR3
|
|
mov w1, 65535
|
|
mov x0, 0
|
|
.L1258:
|
|
cmp x0, 2
|
|
and w2, w0, 65535
|
|
csel w2, w2, w1, cc
|
|
strh w2, [x3, x0, lsl 1]
|
|
add w1, w1, 2
|
|
add x0, x0, 1
|
|
and w1, w1, 65535
|
|
cmp x0, 512
|
|
bne .L1258
|
|
b .L1255
|
|
.L1256:
|
|
cmp w0, 3
|
|
bne .L1259
|
|
add x3, x19, :lo12:.LANCHOR3
|
|
mov x1, 0
|
|
.L1262:
|
|
and w0, w1, 65535
|
|
cmp x1, 5
|
|
bls .L1260
|
|
ubfiz w2, w0, 1, 15
|
|
and w0, w0, 1
|
|
add w0, w0, 4
|
|
sub w0, w2, w0
|
|
and w0, w0, 65535
|
|
.L1260:
|
|
strh w0, [x3, x1, lsl 1]
|
|
add x1, x1, 1
|
|
cmp x1, 512
|
|
bne .L1262
|
|
b .L1255
|
|
.L1259:
|
|
cmp w0, 4
|
|
bne .L1263
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov w2, 1
|
|
add x1, x1, 16
|
|
strh wzr, [x19, #:lo12:.LANCHOR3]
|
|
strh w0, [x1, -8]
|
|
mov w0, 5
|
|
strh w2, [x1, -14]
|
|
mov w2, 2
|
|
strh w0, [x1, -6]
|
|
mov w0, 7
|
|
strh w2, [x1, -12]
|
|
mov w2, 3
|
|
strh w0, [x1, -4]
|
|
mov w0, 8
|
|
strh w2, [x1, -10]
|
|
strh w0, [x1, -2]
|
|
mov w0, 8
|
|
.L1265:
|
|
and w3, w0, 1
|
|
ubfiz w2, w0, 1, 15
|
|
add w3, w3, 6
|
|
add w0, w0, 1
|
|
sub w2, w2, w3
|
|
strh w2, [x1], 2
|
|
and w0, w0, 65535
|
|
cmp w0, 512
|
|
bne .L1265
|
|
b .L1255
|
|
.L1263:
|
|
cmp w0, 5
|
|
bne .L1266
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov x0, 0
|
|
.L1267:
|
|
strh w0, [x1, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp x0, 16
|
|
bne .L1267
|
|
add x1, x1, 32
|
|
.L1268:
|
|
strh w0, [x1], 2
|
|
add w0, w0, 2
|
|
and w0, w0, 65535
|
|
cmp w0, 1008
|
|
bne .L1268
|
|
b .L1255
|
|
.L1266:
|
|
cmp w0, 8
|
|
bne .L1269
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov x0, 0
|
|
.L1270:
|
|
strh w0, [x0, x1]
|
|
add x0, x0, 2
|
|
cmp x0, 1024
|
|
bne .L1270
|
|
b .L1255
|
|
.L1269:
|
|
cmp w0, 9
|
|
bne .L1271
|
|
add x0, x19, :lo12:.LANCHOR3
|
|
mov w1, 1
|
|
add x0, x0, 6
|
|
strh wzr, [x19, #:lo12:.LANCHOR3]
|
|
strh w1, [x0, -4]
|
|
mov w1, 2
|
|
strh w1, [x0, -2]
|
|
mov w1, 3
|
|
.L1272:
|
|
strh w1, [x0], 2
|
|
add w1, w1, 2
|
|
and w1, w1, 65535
|
|
cmp w1, 1021
|
|
bne .L1272
|
|
b .L1255
|
|
.L1271:
|
|
cmp w0, 10
|
|
bne .L1273
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov x0, 0
|
|
.L1274:
|
|
strh w0, [x1, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp x0, 63
|
|
bne .L1274
|
|
add x1, x1, 126
|
|
.L1275:
|
|
strh w0, [x1], 2
|
|
add w0, w0, 2
|
|
and w0, w0, 65535
|
|
cmp w0, 961
|
|
bne .L1275
|
|
b .L1255
|
|
.L1273:
|
|
cmp w0, 11
|
|
bne .L1276
|
|
add x1, x19, :lo12:.LANCHOR3
|
|
mov x0, 0
|
|
.L1277:
|
|
strh w0, [x1, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp x0, 8
|
|
bne .L1277
|
|
add x1, x1, 16
|
|
.L1279:
|
|
and w3, w0, 1
|
|
ubfiz w2, w0, 1, 15
|
|
add w3, w3, 6
|
|
add w0, w0, 1
|
|
sub w2, w2, w3
|
|
strh w2, [x1], 2
|
|
and w0, w0, 65535
|
|
cmp w0, 512
|
|
bne .L1279
|
|
b .L1255
|
|
.L1276:
|
|
cmp w0, 13
|
|
bne .L1255
|
|
add x2, x19, :lo12:.LANCHOR3
|
|
mov x1, 0
|
|
mov w0, 0
|
|
.L1280:
|
|
strh w0, [x1, x2]
|
|
add w0, w0, 3
|
|
and w0, w0, 65535
|
|
add x1, x1, 2
|
|
cmp w0, 1536
|
|
bne .L1280
|
|
b .L1255
|
|
.size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
|
|
.section .text.flash_die_info_init,"ax",@progbits
|
|
.align 2
|
|
.global flash_die_info_init
|
|
.type flash_die_info_init, %function
|
|
flash_die_info_init:
|
|
stp x29, x30, [sp, -112]!
|
|
adrp x0, .LANCHOR19
|
|
add x29, sp, 0
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
tbz x0, 12, .L1303
|
|
adrp x1, .LANCHOR143
|
|
adrp x0, .LC1
|
|
add x1, x1, :lo12:.LANCHOR143
|
|
add x0, x0, :lo12:.LC1
|
|
bl printf
|
|
.L1303:
|
|
adrp x19, .LANCHOR32
|
|
add x23, x19, :lo12:.LANCHOR32
|
|
adrp x25, .LANCHOR2
|
|
adrp x20, .LANCHOR23
|
|
mov w2, 8
|
|
adrp x22, .LANCHOR29
|
|
ldrh w0, [x23, 26]
|
|
adrp x21, .LANCHOR145
|
|
ldrb w1, [x23, 12]
|
|
adrp x26, .LANCHOR33
|
|
strh w0, [x25, #:lo12:.LANCHOR2]
|
|
add x26, x26, :lo12:.LANCHOR33
|
|
ldrh w0, [x23, 10]
|
|
add x28, x23, 1
|
|
strb wzr, [x20, #:lo12:.LANCHOR23]
|
|
adrp x24, .LANCHOR47
|
|
mov x27, 0
|
|
sdiv w0, w0, w1
|
|
adrp x1, .LANCHOR144
|
|
strh w0, [x1, #:lo12:.LANCHOR144]
|
|
mov w1, 0
|
|
add x0, x22, :lo12:.LANCHOR29
|
|
bl ftl_memset
|
|
mov w2, 32
|
|
mov w1, 0
|
|
add x0, x21, :lo12:.LANCHOR145
|
|
bl ftl_memset
|
|
add x0, x24, :lo12:.LANCHOR47
|
|
str x0, [x29, 104]
|
|
.L1305:
|
|
mov w0, 2
|
|
ldrb w2, [x23]
|
|
strb w0, [x27, x26]
|
|
ldr x0, [x29, 104]
|
|
add x1, x0, x27, lsl 3
|
|
mov x0, x28
|
|
bl flash_mem_cmp8
|
|
cbnz w0, .L1304
|
|
ldrb w2, [x20, #:lo12:.LANCHOR23]
|
|
add x1, x21, :lo12:.LANCHOR145
|
|
add w0, w2, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR23]
|
|
and w0, w27, 255
|
|
str wzr, [x1, x2, lsl 2]
|
|
add x1, x22, :lo12:.LANCHOR29
|
|
strb w0, [x1, x2]
|
|
bl zftl_flash_enter_slc_mode
|
|
.L1304:
|
|
add x27, x27, 1
|
|
cmp x27, 4
|
|
bne .L1305
|
|
add x0, x19, :lo12:.LANCHOR32
|
|
ldrb w1, [x0, 8]
|
|
cmp w1, 2
|
|
beq .L1306
|
|
.L1310:
|
|
add x19, x19, :lo12:.LANCHOR32
|
|
ldrb w0, [x20, #:lo12:.LANCHOR23]
|
|
ldp x21, x22, [sp, 32]
|
|
ldrb w1, [x19, 13]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
mul w0, w0, w1
|
|
ldrh w1, [x19, 14]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
mul w0, w0, w1
|
|
adrp x1, .LANCHOR146
|
|
strh w0, [x1, #:lo12:.LANCHOR146]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L1306:
|
|
ldrh w1, [x25, #:lo12:.LANCHOR2]
|
|
add x24, x24, :lo12:.LANCHOR47
|
|
ldrb w8, [x0, 13]
|
|
add x7, x0, 1
|
|
ldrb w12, [x19, #:lo12:.LANCHOR32]
|
|
add x11, x20, :lo12:.LANCHOR23
|
|
ldrb w13, [x0, 23]
|
|
add x21, x21, :lo12:.LANCHOR145
|
|
add x22, x22, :lo12:.LANCHOR29
|
|
mov x10, 0
|
|
mul w8, w8, w1
|
|
ldrh w1, [x0, 14]
|
|
and w1, w1, 65280
|
|
mul w8, w8, w1
|
|
lsl w14, w8, 1
|
|
.L1309:
|
|
mov w2, w12
|
|
add x1, x24, x10, lsl 3
|
|
mov x0, x7
|
|
bl flash_mem_cmp8
|
|
cbnz w0, .L1307
|
|
ldrb w1, [x11]
|
|
cmp w13, 0
|
|
csel w2, w8, w14, eq
|
|
add w0, w1, 1
|
|
strb w0, [x11]
|
|
str w2, [x21, x1, lsl 2]
|
|
strb w10, [x22, x1]
|
|
.L1307:
|
|
add x10, x10, 1
|
|
cmp x10, 4
|
|
bne .L1309
|
|
b .L1310
|
|
.size flash_die_info_init, .-flash_die_info_init
|
|
.section .text.lpa_hash_init,"ax",@progbits
|
|
.align 2
|
|
.global lpa_hash_init
|
|
.type lpa_hash_init, %function
|
|
lpa_hash_init:
|
|
stp x29, x30, [sp, -16]!
|
|
mov w2, 512
|
|
mov w1, 255
|
|
adrp x0, .LANCHOR116
|
|
add x29, sp, 0
|
|
add x0, x0, :lo12:.LANCHOR116
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR94
|
|
mov w1, 255
|
|
ldp x29, x30, [sp], 16
|
|
ldrh w2, [x0, #:lo12:.LANCHOR94]
|
|
adrp x0, .LANCHOR79
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
mul w2, w2, w0
|
|
adrp x0, .LANCHOR118
|
|
ldr x0, [x0, #:lo12:.LANCHOR118]
|
|
lsl w2, w2, 2
|
|
b ftl_memset
|
|
.size lpa_hash_init, .-lpa_hash_init
|
|
.section .text.lpa_rebuild_hash,"ax",@progbits
|
|
.align 2
|
|
.global lpa_rebuild_hash
|
|
.type lpa_rebuild_hash, %function
|
|
lpa_rebuild_hash:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x0, .LANCHOR19
|
|
add x29, sp, 0
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
tbz x0, 12, .L1323
|
|
adrp x1, .LANCHOR147
|
|
adrp x0, .LC81
|
|
mov w3, 0
|
|
mov w2, 239
|
|
add x1, x1, :lo12:.LANCHOR147
|
|
add x0, x0, :lo12:.LC81
|
|
bl printf
|
|
.L1323:
|
|
adrp x20, .LANCHOR94
|
|
adrp x22, .LANCHOR79
|
|
adrp x19, .LANCHOR116
|
|
add x19, x19, :lo12:.LANCHOR116
|
|
mov w2, 512
|
|
mov w1, 255
|
|
mov x0, x19
|
|
bl ftl_memset
|
|
ldrh w2, [x20, #:lo12:.LANCHOR94]
|
|
adrp x21, .LANCHOR118
|
|
ldrb w0, [x22, #:lo12:.LANCHOR79]
|
|
mov w1, 255
|
|
add x20, x20, :lo12:.LANCHOR94
|
|
mul w2, w2, w0
|
|
ldr x0, [x21, #:lo12:.LANCHOR118]
|
|
lsl w2, w2, 2
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR117
|
|
ldrb w3, [x22, #:lo12:.LANCHOR79]
|
|
ldr x5, [x21, #:lo12:.LANCHOR118]
|
|
mov w1, 0
|
|
ldr x4, [x0, #:lo12:.LANCHOR117]
|
|
.L1324:
|
|
ldrh w0, [x20]
|
|
mul w0, w0, w3
|
|
cmp w1, w0, lsl 1
|
|
blt .L1326
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L1326:
|
|
uxtw x2, w1
|
|
ldr w0, [x4, x2, lsl 2]
|
|
cmn w0, #1
|
|
beq .L1325
|
|
and x0, x0, 255
|
|
ldrh w6, [x19, x0, lsl 1]
|
|
strh w1, [x19, x0, lsl 1]
|
|
strh w6, [x5, x2, lsl 1]
|
|
.L1325:
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
b .L1324
|
|
.size lpa_rebuild_hash, .-lpa_rebuild_hash
|
|
.section .text.zftl_read_flash_info,"ax",@progbits
|
|
.align 2
|
|
.global zftl_read_flash_info
|
|
.type zftl_read_flash_info, %function
|
|
zftl_read_flash_info:
|
|
stp x29, x30, [sp, -32]!
|
|
mov w2, 11
|
|
mov w1, 0
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
bl ftl_memset
|
|
adrp x1, .LANCHOR32
|
|
add x1, x1, :lo12:.LANCHOR32
|
|
adrp x0, .LANCHOR2
|
|
adrp x3, .LANCHOR67
|
|
strb wzr, [x19, 10]
|
|
mov w4, 1
|
|
ldrb w2, [x1, 9]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR2]
|
|
mul w0, w2, w0
|
|
strb w0, [x19, 4]
|
|
ubfx x0, x0, 8, 8
|
|
strb w0, [x19, 5]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
strb w0, [x19, 7]
|
|
add x0, x3, :lo12:.LANCHOR67
|
|
ldrb w3, [x3, #:lo12:.LANCHOR67]
|
|
strb w3, [x19]
|
|
ldrb w3, [x0, 1]
|
|
strb w3, [x19, 1]
|
|
ldrb w3, [x0, 2]
|
|
ldrb w0, [x0, 3]
|
|
strb w3, [x19, 2]
|
|
strb w0, [x19, 3]
|
|
mov w0, 32
|
|
strb w2, [x19, 6]
|
|
adrp x2, .LANCHOR29
|
|
strb w0, [x19, 8]
|
|
add x2, x2, :lo12:.LANCHOR29
|
|
ldrb w0, [x1, 7]
|
|
mov x1, 0
|
|
strb w0, [x19, 9]
|
|
adrp x0, .LANCHOR23
|
|
ldrb w3, [x0, #:lo12:.LANCHOR23]
|
|
.L1335:
|
|
cmp w3, w1, uxtb
|
|
bhi .L1336
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L1336:
|
|
ldrb w0, [x1, x2]
|
|
add x1, x1, 1
|
|
ldrb w5, [x19, 10]
|
|
lsl w0, w4, w0
|
|
orr w0, w0, w5
|
|
strb w0, [x19, 10]
|
|
b .L1335
|
|
.size zftl_read_flash_info, .-zftl_read_flash_info
|
|
.section .text.gc_static_wearleveling,"ax",@progbits
|
|
.align 2
|
|
.global gc_static_wearleveling
|
|
.type gc_static_wearleveling, %function
|
|
gc_static_wearleveling:
|
|
stp x29, x30, [sp, -160]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR110
|
|
stp x19, x20, [sp, 16]
|
|
ldr x0, [x22, #:lo12:.LANCHOR110]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
ldr w1, [x0, 32]
|
|
mov w0, 10240
|
|
cmp w1, w0
|
|
bls .L1339
|
|
bl ftl_tmp_into_update
|
|
.L1339:
|
|
adrp x19, .LANCHOR12
|
|
mov w3, 36000
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr w1, [x0, 568]
|
|
ldr w2, [x0, 12]
|
|
add w3, w1, w3
|
|
cmp w2, w3
|
|
bcs .L1340
|
|
ldr x4, [x22, #:lo12:.LANCHOR110]
|
|
ldr w3, [x0, 572]
|
|
add w3, w3, 256
|
|
ldr w4, [x4, 36]
|
|
cmp w4, w3
|
|
bcc .L1392
|
|
.L1340:
|
|
add w1, w1, 860160
|
|
add w1, w1, 3840
|
|
cmp w2, w1
|
|
bhi .L1342
|
|
ldr x3, [x22, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 572]
|
|
add w1, w1, 32
|
|
ldr w3, [x3, 36]
|
|
cmp w3, w1
|
|
bls .L1393
|
|
.L1342:
|
|
ldr x1, [x22, #:lo12:.LANCHOR110]
|
|
mov w20, 65535
|
|
adrp x8, .LANCHOR19
|
|
mov w21, w20
|
|
add x8, x8, :lo12:.LANCHOR19
|
|
mov w27, 0
|
|
mov w25, 0
|
|
mov w26, 0
|
|
ldr w3, [x1, 36]
|
|
mov w23, 0
|
|
ldrh w28, [x1, 134]
|
|
adrp x24, .LANCHOR9
|
|
str w2, [x0, 568]
|
|
str w3, [x0, 572]
|
|
adrp x0, .LANCHOR8
|
|
add x10, x0, :lo12:.LANCHOR8
|
|
str wzr, [x29, 128]
|
|
str wzr, [x29, 136]
|
|
stp wzr, wzr, [x29, 144]
|
|
.L1344:
|
|
ldrh w0, [x10]
|
|
cmp w0, w28
|
|
bhi .L1353
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
mov w2, 128
|
|
mov w1, 255
|
|
add x0, x0, 264
|
|
strh wzr, [x0, -142]
|
|
bl ftl_memset
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
adrp x2, .LANCHOR19
|
|
ldr x8, [x24, #:lo12:.LANCHOR9]
|
|
ldr w3, [x2, #:lo12:.LANCHOR19]
|
|
str x2, [x29, 152]
|
|
ldrh w0, [x0, 586]
|
|
mov x1, x0
|
|
lsl x28, x0, 2
|
|
add x10, x8, x28
|
|
tbz x3, 10, .L1354
|
|
adrp x2, .LANCHOR11
|
|
ldrb w6, [x10, 3]
|
|
ldrb w4, [x10, 2]
|
|
ldr x5, [x2, #:lo12:.LANCHOR11]
|
|
ldr w3, [x8, x28]
|
|
ldrh w2, [x8, x28]
|
|
stp x8, x10, [x29, 112]
|
|
ldrh w7, [x5, x0, lsl 1]
|
|
ubfx x3, x3, 11, 8
|
|
ubfx x5, x4, 5, 3
|
|
and w2, w2, 2047
|
|
ubfx x4, x4, 3, 2
|
|
adrp x0, .LC83
|
|
add x0, x0, :lo12:.LC83
|
|
bl printf
|
|
ldp x8, x10, [x29, 112]
|
|
.L1354:
|
|
ldrb w0, [x10, 2]
|
|
and w3, w0, 224
|
|
cmp w3, 32
|
|
bne .L1355
|
|
ldr x1, [x22, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x1, 688]
|
|
cmp w1, 2
|
|
bls .L1355
|
|
adrp x1, .LANCHOR148
|
|
mov w2, 1
|
|
str w2, [x1, #:lo12:.LANCHOR148]
|
|
.L1355:
|
|
ldrb w1, [x10, 2]
|
|
tbz x1, 3, .L1356
|
|
ldr x1, [x22, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x8, x28]
|
|
and w2, w2, 2047
|
|
ldrh w4, [x1, 96]
|
|
adrp x1, .LANCHOR149
|
|
ldrh w1, [x1, #:lo12:.LANCHOR149]
|
|
add w1, w2, w1, lsr 2
|
|
cmp w4, w1
|
|
ble .L1356
|
|
and w0, w0, 192
|
|
cmp w0, 64
|
|
bne .L1357
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
mov w1, 0
|
|
mov w2, 1
|
|
ldrh w0, [x0, 586]
|
|
bl gc_add_sblk
|
|
adrp x0, .LANCHOR70+2192
|
|
mov w1, 1
|
|
strh w1, [x0, #:lo12:.LANCHOR70+2192]
|
|
.L1356:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr x2, [x29, 152]
|
|
ldr x11, [x24, #:lo12:.LANCHOR9]
|
|
ldrh w0, [x0, 584]
|
|
ldr w2, [x2, #:lo12:.LANCHOR19]
|
|
mov x1, x0
|
|
lsl x10, x0, 2
|
|
add x28, x11, x10
|
|
tbz x2, 10, .L1358
|
|
adrp x2, .LANCHOR11
|
|
ldrb w6, [x28, 3]
|
|
ldrb w4, [x28, 2]
|
|
ldr x5, [x2, #:lo12:.LANCHOR11]
|
|
ldr w3, [x11, x10]
|
|
ldrh w2, [x11, x10]
|
|
stp x10, x11, [x29, 112]
|
|
ldrh w7, [x5, x0, lsl 1]
|
|
ubfx x3, x3, 11, 8
|
|
ubfx x5, x4, 5, 3
|
|
and w2, w2, 2047
|
|
ubfx x4, x4, 3, 2
|
|
adrp x0, .LC84
|
|
add x0, x0, :lo12:.LC84
|
|
bl printf
|
|
ldp x10, x11, [x29, 112]
|
|
.L1358:
|
|
ldrb w0, [x28, 2]
|
|
tbz x0, 3, .L1359
|
|
ldr x0, [x22, #:lo12:.LANCHOR110]
|
|
ldr w1, [x11, x10]
|
|
ldrh w2, [x0, 98]
|
|
adrp x0, .LANCHOR150
|
|
ubfx x1, x1, 11, 8
|
|
ldrh w0, [x0, #:lo12:.LANCHOR150]
|
|
add w0, w1, w0, lsr 2
|
|
cmp w2, w0
|
|
ble .L1359
|
|
ldrb w0, [x28, 2]
|
|
and w1, w0, 192
|
|
cmp w1, 64
|
|
bne .L1360
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
mov w1, 0
|
|
mov w2, 1
|
|
ldrh w0, [x0, 584]
|
|
bl gc_add_sblk
|
|
adrp x0, .LANCHOR70+2192
|
|
mov w1, 1
|
|
strh w1, [x0, #:lo12:.LANCHOR70+2192]
|
|
.L1359:
|
|
ldr x0, [x29, 152]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1361
|
|
adrp x2, .LANCHOR11
|
|
ldr x1, [x24, #:lo12:.LANCHOR9]
|
|
uxtw x6, w27
|
|
lsl x0, x6, 2
|
|
ldr x7, [x2, #:lo12:.LANCHOR11]
|
|
add x5, x1, x0
|
|
ldr w3, [x1, x0]
|
|
ldrh w7, [x7, x6, lsl 1]
|
|
ldrb w6, [x5, 3]
|
|
ldrb w4, [x5, 2]
|
|
ubfx x3, x3, 11, 8
|
|
ldrh w2, [x1, x0]
|
|
adrp x0, .LC85
|
|
mov w1, w27
|
|
add x0, x0, :lo12:.LC85
|
|
ubfx x5, x4, 5, 3
|
|
and w2, w2, 2047
|
|
ubfx x4, x4, 3, 2
|
|
bl printf
|
|
.L1361:
|
|
ldr x0, [x29, 152]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1362
|
|
ldr w6, [x29, 128]
|
|
adrp x2, .LANCHOR11
|
|
ldr x1, [x24, #:lo12:.LANCHOR9]
|
|
ldr x7, [x2, #:lo12:.LANCHOR11]
|
|
lsl x0, x6, 2
|
|
add x5, x1, x0
|
|
ldr w3, [x1, x0]
|
|
ldrh w2, [x1, x0]
|
|
adrp x0, .LC86
|
|
ldrh w7, [x7, x6, lsl 1]
|
|
add x0, x0, :lo12:.LC86
|
|
ldrb w6, [x5, 3]
|
|
ubfx x3, x3, 11, 8
|
|
ldr w1, [x29, 128]
|
|
and w2, w2, 2047
|
|
ldrb w4, [x5, 2]
|
|
ubfx x5, x4, 5, 3
|
|
ubfx x4, x4, 3, 2
|
|
bl printf
|
|
.L1362:
|
|
ldr x0, [x22, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x29, 148]
|
|
strh w1, [x0, 96]
|
|
ldr w1, [x29, 136]
|
|
strh w23, [x0, 98]
|
|
strh w20, [x0, 92]
|
|
strh w21, [x0, 94]
|
|
udiv w3, w1, w26
|
|
ldr w1, [x29, 144]
|
|
udiv w4, w1, w25
|
|
strh w3, [x0, 88]
|
|
strh w4, [x0, 90]
|
|
ldr x0, [x29, 152]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1363
|
|
adrp x0, .LC87
|
|
and w4, w4, 65535
|
|
and w3, w3, 65535
|
|
mov w2, w25
|
|
mov w1, w26
|
|
add x0, x0, :lo12:.LC87
|
|
bl printf
|
|
.L1363:
|
|
ldr x0, [x29, 152]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1364
|
|
adrp x0, .LANCHOR150
|
|
ldr w3, [x29, 148]
|
|
mov w4, w23
|
|
mov w2, w21
|
|
ldrh w6, [x0, #:lo12:.LANCHOR150]
|
|
adrp x0, .LANCHOR149
|
|
mov w1, w20
|
|
ldrh w5, [x0, #:lo12:.LANCHOR149]
|
|
adrp x0, .LC88
|
|
add x0, x0, :lo12:.LC88
|
|
bl printf
|
|
.L1364:
|
|
sub w0, w23, w21
|
|
str w0, [x29, 144]
|
|
adrp x0, .LANCHOR150
|
|
ldr w1, [x29, 144]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR150]
|
|
cmp w1, w0
|
|
bgt .L1365
|
|
adrp x1, .LANCHOR149
|
|
ldr w0, [x29, 148]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR149]
|
|
sub w0, w0, w20
|
|
cmp w0, w1
|
|
ble .L1394
|
|
.L1365:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
adrp x26, .LANCHOR70
|
|
add x26, x26, :lo12:.LANCHOR70
|
|
mov w25, 0
|
|
mov w23, 0
|
|
ldrh w28, [x0, 580]
|
|
ldr x0, [x22, #:lo12:.LANCHOR110]
|
|
ldrh w27, [x0, 134]
|
|
adrp x0, .LANCHOR8
|
|
add x0, x0, :lo12:.LANCHOR8
|
|
str x0, [x29, 136]
|
|
adrp x0, .LANCHOR149
|
|
add x0, x0, :lo12:.LANCHOR149
|
|
str x0, [x29, 128]
|
|
.L1367:
|
|
ldr x0, [x29, 136]
|
|
ldrh w0, [x0]
|
|
cmp w27, w0
|
|
bcc .L1377
|
|
.L1376:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
str w28, [x0, 580]
|
|
.L1366:
|
|
cbz w21, .L1379
|
|
ldr x2, [x22, #:lo12:.LANCHOR110]
|
|
adrp x0, .LANCHOR8
|
|
ldrh w5, [x0, #:lo12:.LANCHOR8]
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ldrh w1, [x2, 134]
|
|
add x0, x0, x1, uxth 2
|
|
.L1380:
|
|
cmp w1, w5
|
|
bcc .L1382
|
|
ldrh w0, [x2, 72]
|
|
add w0, w21, w0
|
|
strh w0, [x2, 72]
|
|
ldrh w0, [x2, 98]
|
|
cmp w21, w0
|
|
bcs .L1379
|
|
sub w21, w0, w21
|
|
strh w21, [x2, 98]
|
|
.L1379:
|
|
cbz w20, .L1385
|
|
ldr x2, [x22, #:lo12:.LANCHOR110]
|
|
adrp x0, .LANCHOR8
|
|
ldrh w6, [x0, #:lo12:.LANCHOR8]
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ldrh w1, [x2, 134]
|
|
add x0, x0, x1, uxth 2
|
|
.L1386:
|
|
cmp w1, w6
|
|
bcc .L1388
|
|
ldrh w0, [x2, 74]
|
|
add w0, w20, w0
|
|
strh w0, [x2, 74]
|
|
ldrh w0, [x2, 96]
|
|
cmp w20, w0
|
|
bcs .L1385
|
|
sub w20, w0, w20
|
|
strh w20, [x2, 96]
|
|
.L1385:
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L1343
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x3, [x2, #:lo12:.LANCHOR11]
|
|
adrp x2, .LANCHOR94
|
|
ldrh w2, [x2, #:lo12:.LANCHOR94]
|
|
ldrh w1, [x3, x1]
|
|
cmp w1, w2, lsr 1
|
|
bhi .L1343
|
|
add w23, w23, 1
|
|
mov w2, 1
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
.L1343:
|
|
add w0, w23, w25
|
|
.L1338:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 160
|
|
ret
|
|
.L1353:
|
|
uxtw x7, w28
|
|
ldr x6, [x24, #:lo12:.LANCHOR9]
|
|
lsl x2, x7, 2
|
|
add x11, x6, x2
|
|
ldrb w0, [x11, 2]
|
|
and w1, w0, 224
|
|
cmp w1, 224
|
|
beq .L1345
|
|
ubfx x4, x0, 3, 2
|
|
tbz x4, 0, .L1346
|
|
ldr w0, [x6, x2]
|
|
ldrh w1, [x6, x2]
|
|
ubfx x0, x0, 11, 8
|
|
and w1, w1, 2047
|
|
.L1347:
|
|
ldr w3, [x29, 136]
|
|
add w26, w26, 1
|
|
and w26, w26, 65535
|
|
cmp w20, w1
|
|
add w3, w3, w1
|
|
str w3, [x29, 136]
|
|
bls .L1391
|
|
ldr x3, [x19, #:lo12:.LANCHOR12]
|
|
mov w20, w1
|
|
strh w28, [x3, 586]
|
|
.L1391:
|
|
ldr w3, [x29, 148]
|
|
cmp w3, w1
|
|
bcs .L1350
|
|
mov w27, w28
|
|
str w1, [x29, 148]
|
|
.L1350:
|
|
mov w3, 65535
|
|
cmp w0, w3
|
|
bne .L1349
|
|
.L1351:
|
|
cmp w0, 9
|
|
ccmp w1, 9, 0, hi
|
|
bhi .L1345
|
|
ldr w0, [x8]
|
|
tbz x0, 8, .L1345
|
|
adrp x0, .LANCHOR11
|
|
ldr w3, [x6, x2]
|
|
ldrh w2, [x6, x2]
|
|
mov w1, w28
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrb w6, [x11, 3]
|
|
ubfx x3, x3, 11, 8
|
|
ldrb w5, [x11, 2]
|
|
and w2, w2, 2047
|
|
str x8, [x29, 120]
|
|
ldrh w7, [x0, x7, lsl 1]
|
|
adrp x0, .LC82
|
|
str x10, [x29, 152]
|
|
ubfx x5, x5, 5, 3
|
|
add x0, x0, :lo12:.LC82
|
|
bl printf
|
|
ldr x8, [x29, 120]
|
|
ldr x10, [x29, 152]
|
|
.L1345:
|
|
add w28, w28, 1
|
|
and w28, w28, 65535
|
|
b .L1344
|
|
.L1346:
|
|
tst w0, 24
|
|
bne .L1348
|
|
ldrh w1, [x6, x2]
|
|
mov w0, 65535
|
|
and w1, w1, 2047
|
|
b .L1347
|
|
.L1348:
|
|
ldr w0, [x6, x2]
|
|
mov w1, 65535
|
|
ubfx x0, x0, 11, 8
|
|
.L1349:
|
|
ldr w3, [x29, 144]
|
|
add w25, w25, 1
|
|
and w25, w25, 65535
|
|
cmp w21, w0
|
|
add w3, w3, w0
|
|
str w3, [x29, 144]
|
|
bls .L1352
|
|
ldr x3, [x19, #:lo12:.LANCHOR12]
|
|
mov w21, w0
|
|
strh w28, [x3, 584]
|
|
.L1352:
|
|
cmp w23, w0
|
|
bcs .L1351
|
|
mov w23, w0
|
|
str w28, [x29, 128]
|
|
b .L1351
|
|
.L1357:
|
|
cbnz w3, .L1356
|
|
ldr x1, [x19, #:lo12:.LANCHOR12]
|
|
mov w0, 65535
|
|
ldrh w2, [x1, 590]
|
|
cmp w2, w0
|
|
bne .L1356
|
|
ldrh w0, [x1, 586]
|
|
ldrh w1, [x1, 588]
|
|
cmp w1, w0
|
|
beq .L1356
|
|
bl zftl_remove_free_node
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x0, 586]
|
|
strh w1, [x0, 590]
|
|
mov w1, -1
|
|
strh w1, [x0, 586]
|
|
b .L1356
|
|
.L1360:
|
|
and w0, w0, 248
|
|
cmp w0, 16
|
|
bne .L1359
|
|
ldr x1, [x19, #:lo12:.LANCHOR12]
|
|
mov w0, 65535
|
|
ldrh w2, [x1, 588]
|
|
cmp w2, w0
|
|
bne .L1359
|
|
ldrh w0, [x1, 584]
|
|
ldrh w1, [x1, 590]
|
|
cmp w1, w0
|
|
beq .L1359
|
|
bl zftl_remove_free_node
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x0, 584]
|
|
strh w1, [x0, 588]
|
|
mov w1, -1
|
|
strh w1, [x0, 584]
|
|
b .L1359
|
|
.L1377:
|
|
add w7, w28, 1
|
|
ldr x4, [x24, #:lo12:.LANCHOR9]
|
|
and w28, w7, 65535
|
|
cmp w0, w28
|
|
csel w28, w28, wzr, hi
|
|
uxtw x8, w28
|
|
lsl x3, x8, 2
|
|
add x0, x4, x3
|
|
ldrb w0, [x0, 2]
|
|
tst w0, 192
|
|
beq .L1369
|
|
and w2, w0, 224
|
|
cmp w2, 224
|
|
beq .L1369
|
|
ubfx x0, x0, 3, 2
|
|
and w1, w0, 1
|
|
tbz x0, 0, .L1370
|
|
cmp w2, 160
|
|
.L1457:
|
|
bne .L1372
|
|
adrp x0, .LANCHOR150
|
|
ldr w2, [x29, 144]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR150]
|
|
cmp w2, w0
|
|
ble .L1373
|
|
ldr w0, [x4, x3]
|
|
ubfx x0, x0, 11, 8
|
|
cmp w0, w21
|
|
bls .L1374
|
|
cbz w1, .L1373
|
|
ldrh w0, [x4, x3]
|
|
and w0, w0, 2047
|
|
cmp w0, w20
|
|
bgt .L1373
|
|
.L1374:
|
|
stp x4, x8, [x29, 104]
|
|
mov w2, 1
|
|
str x3, [x29, 120]
|
|
mov w1, 0
|
|
mov w0, w28
|
|
bl gc_add_sblk
|
|
mov w0, 1
|
|
strh w0, [x26, 2192]
|
|
ldr x0, [x29, 152]
|
|
add w23, w23, 1
|
|
ldp x4, x8, [x29, 104]
|
|
ldr x3, [x29, 120]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1373
|
|
adrp x0, .LANCHOR11
|
|
ldr w6, [x4, x3]
|
|
ldrh w5, [x4, x3]
|
|
ldr x1, [x0, #:lo12:.LANCHOR11]
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ubfx x6, x6, 11, 8
|
|
ldrh w4, [x26, 56]
|
|
and w5, w5, 2047
|
|
add x3, x0, x3
|
|
adrp x0, .LC89
|
|
add x0, x0, :lo12:.LC89
|
|
ldrb w2, [x3, 2]
|
|
ldrh w3, [x1, x8, lsl 1]
|
|
mov w1, w28
|
|
ubfx x2, x2, 5, 3
|
|
.L1458:
|
|
bl printf
|
|
.L1373:
|
|
cmp w23, 4
|
|
ccmp w25, 4, 2, ls
|
|
bhi .L1376
|
|
.L1369:
|
|
add w27, w27, 1
|
|
and w27, w27, 65535
|
|
b .L1367
|
|
.L1370:
|
|
cmp w0, 2
|
|
b .L1457
|
|
.L1372:
|
|
ldr x2, [x29, 128]
|
|
ldr w0, [x29, 148]
|
|
sub w0, w0, w20
|
|
ldrh w2, [x2]
|
|
cmp w0, w2
|
|
ble .L1373
|
|
ldrh w0, [x4, x3]
|
|
add w2, w20, 8
|
|
and w0, w0, 2047
|
|
cmp w0, w2
|
|
ble .L1375
|
|
cbz w1, .L1373
|
|
ldr w0, [x4, x3]
|
|
add w1, w21, 4
|
|
ubfx x0, x0, 11, 8
|
|
cmp w0, w1
|
|
bgt .L1373
|
|
.L1375:
|
|
stp x4, x8, [x29, 104]
|
|
mov w2, 1
|
|
str x3, [x29, 120]
|
|
mov w1, 0
|
|
mov w0, w28
|
|
bl gc_add_sblk
|
|
mov w0, 1
|
|
strh w0, [x26, 2192]
|
|
ldr x0, [x29, 152]
|
|
add w25, w25, 1
|
|
ldp x4, x8, [x29, 104]
|
|
ldr x3, [x29, 120]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L1373
|
|
adrp x0, .LANCHOR11
|
|
ldr w6, [x4, x3]
|
|
ldrh w5, [x4, x3]
|
|
ldr x1, [x0, #:lo12:.LANCHOR11]
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ubfx x6, x6, 11, 8
|
|
and w5, w5, 2047
|
|
ldrh w4, [x26, 56]
|
|
add x3, x0, x3
|
|
adrp x0, .LC90
|
|
add x0, x0, :lo12:.LC90
|
|
ldrb w2, [x3, 2]
|
|
ldrh w3, [x1, x8, lsl 1]
|
|
mov w1, w28
|
|
ubfx x2, x2, 5, 3
|
|
b .L1458
|
|
.L1394:
|
|
mov w25, 0
|
|
mov w23, 0
|
|
b .L1366
|
|
.L1382:
|
|
ldr w3, [x0]
|
|
ubfx x4, x3, 11, 8
|
|
cmp w21, w4
|
|
bhi .L1381
|
|
ldrb w6, [x0, 2]
|
|
tst w6, 24
|
|
beq .L1381
|
|
sub w4, w4, w21
|
|
bfi w3, w4, 11, 8
|
|
str w3, [x0]
|
|
.L1381:
|
|
add w1, w1, 1
|
|
add x0, x0, 4
|
|
and w1, w1, 65535
|
|
b .L1380
|
|
.L1388:
|
|
ldrh w3, [x0]
|
|
and w4, w3, 2047
|
|
cmp w4, w20
|
|
blt .L1387
|
|
ldrb w5, [x0, 2]
|
|
and w5, w5, 24
|
|
cmp w5, 16
|
|
beq .L1387
|
|
sub w4, w4, w20
|
|
bfi w3, w4, 0, 11
|
|
strh w3, [x0]
|
|
.L1387:
|
|
add w1, w1, 1
|
|
add x0, x0, 4
|
|
and w1, w1, 65535
|
|
b .L1386
|
|
.L1393:
|
|
mov w25, 0
|
|
mov w23, 0
|
|
b .L1343
|
|
.L1392:
|
|
mov w0, 0
|
|
b .L1338
|
|
.size gc_static_wearleveling, .-gc_static_wearleveling
|
|
.section .text.zftl_sblk_list_init,"ax",@progbits
|
|
.align 2
|
|
.global zftl_sblk_list_init
|
|
.type zftl_sblk_list_init, %function
|
|
zftl_sblk_list_init:
|
|
stp x29, x30, [sp, -208]!
|
|
adrp x8, .LANCHOR4
|
|
mov w0, 6
|
|
mov w1, 0
|
|
add x29, sp, 0
|
|
stp x27, x28, [sp, 80]
|
|
adrp x28, .LANCHOR8
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR99
|
|
ldrh w2, [x28, #:lo12:.LANCHOR8]
|
|
mov w27, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR97
|
|
stp x23, x24, [sp, 48]
|
|
adrp x21, .LANCHOR91
|
|
stp x25, x26, [sp, 64]
|
|
adrp x26, .LANCHOR110
|
|
mul w2, w2, w0
|
|
ldr x0, [x8, #:lo12:.LANCHOR4]
|
|
str x8, [x29, 192]
|
|
adrp x25, .LANCHOR103
|
|
adrp x24, .LANCHOR105
|
|
adrp x23, .LANCHOR107
|
|
bl ftl_memset
|
|
strh wzr, [x25, #:lo12:.LANCHOR103]
|
|
adrp x0, .LANCHOR109
|
|
adrp x3, .LANCHOR79
|
|
adrp x2, .LANCHOR85
|
|
mov w1, 32
|
|
strh w1, [x0, #:lo12:.LANCHOR109]
|
|
adrp x11, .LANCHOR104
|
|
ldrb w0, [x3, #:lo12:.LANCHOR79]
|
|
adrp x10, .LANCHOR106
|
|
ldrh w1, [x2, #:lo12:.LANCHOR85]
|
|
adrp x7, .LANCHOR108
|
|
adrp x6, .LANCHOR90
|
|
adrp x5, .LANCHOR95
|
|
adrp x4, .LANCHOR92
|
|
ldr x8, [x29, 192]
|
|
str xzr, [x11, #:lo12:.LANCHOR104]
|
|
mul w1, w0, w1
|
|
mov w0, 32768
|
|
str xzr, [x10, #:lo12:.LANCHOR106]
|
|
str xzr, [x7, #:lo12:.LANCHOR108]
|
|
str xzr, [x6, #:lo12:.LANCHOR90]
|
|
sdiv w0, w0, w1
|
|
str xzr, [x5, #:lo12:.LANCHOR95]
|
|
str xzr, [x4, #:lo12:.LANCHOR92]
|
|
strh wzr, [x24, #:lo12:.LANCHOR105]
|
|
strh wzr, [x23, #:lo12:.LANCHOR107]
|
|
sxth w0, w0
|
|
str w0, [x29, 204]
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
strh wzr, [x22, #:lo12:.LANCHOR97]
|
|
strh wzr, [x21, #:lo12:.LANCHOR91]
|
|
strh wzr, [x20, #:lo12:.LANCHOR99]
|
|
strh wzr, [x0, 146]
|
|
ldrsh w19, [x0, 134]
|
|
add x0, x28, :lo12:.LANCHOR8
|
|
str x0, [x29, 192]
|
|
adrp x0, .LANCHOR151
|
|
add x0, x0, :lo12:.LANCHOR151
|
|
adrp x28, .LC0
|
|
str x0, [x29, 112]
|
|
add x0, x28, :lo12:.LC0
|
|
stp x2, x3, [x29, 120]
|
|
stp x4, x5, [x29, 136]
|
|
stp x6, x7, [x29, 152]
|
|
stp x10, x11, [x29, 168]
|
|
str x8, [x29, 184]
|
|
str x0, [x29, 104]
|
|
.L1460:
|
|
ldr x0, [x29, 192]
|
|
ldrh w0, [x0]
|
|
cmp w19, w0
|
|
blt .L1477
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x25, #:lo12:.LANCHOR103]
|
|
ldp x27, x28, [sp, 80]
|
|
strh w1, [x0, 114]
|
|
ldrh w1, [x24, #:lo12:.LANCHOR105]
|
|
strh w1, [x0, 118]
|
|
ldrh w1, [x23, #:lo12:.LANCHOR107]
|
|
strh w1, [x0, 116]
|
|
ldrh w1, [x22, #:lo12:.LANCHOR97]
|
|
strh w1, [x0, 122]
|
|
ldrh w1, [x21, #:lo12:.LANCHOR91]
|
|
strh w1, [x0, 120]
|
|
ldrh w1, [x20, #:lo12:.LANCHOR99]
|
|
strh w1, [x0, 124]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 208
|
|
ret
|
|
.L1477:
|
|
adrp x0, .LANCHOR9
|
|
sxtw x2, w19
|
|
ldr x3, [x0, #:lo12:.LANCHOR9]
|
|
add x28, x3, x2, lsl 2
|
|
ldrb w5, [x28, 3]
|
|
cbz w5, .L1478
|
|
ldr x0, [x29, 128]
|
|
mov w1, 0
|
|
ldr x6, [x26, #:lo12:.LANCHOR110]
|
|
ldrb w7, [x0, #:lo12:.LANCHOR79]
|
|
ldr x0, [x29, 120]
|
|
ldrh w8, [x0, #:lo12:.LANCHOR85]
|
|
mov w0, 0
|
|
.L1462:
|
|
cmp w1, w7
|
|
blt .L1465
|
|
cbz w0, .L1466
|
|
mov w1, 32768
|
|
sdiv w0, w1, w0
|
|
add w0, w0, 1
|
|
sxth w0, w0
|
|
.L1461:
|
|
ldr x3, [x29, 184]
|
|
mov w1, 6
|
|
smull x1, w19, w1
|
|
ldr x4, [x3, #:lo12:.LANCHOR4]
|
|
add x5, x4, x1
|
|
strh w0, [x5, 4]
|
|
mov w0, -1
|
|
strh w0, [x5, 2]
|
|
strh w0, [x4, x1]
|
|
mov w1, 224
|
|
ldrb w0, [x28, 2]
|
|
and w0, w0, 224
|
|
cmp w0, 32
|
|
ccmp w0, w1, 4, ne
|
|
beq .L1467
|
|
adrp x1, .LANCHOR12
|
|
ldr x1, [x1, #:lo12:.LANCHOR12]
|
|
ldrh w4, [x1, 16]
|
|
cmp w19, w4
|
|
beq .L1467
|
|
ldrh w4, [x1, 48]
|
|
cmp w19, w4
|
|
beq .L1467
|
|
ldrh w1, [x1, 80]
|
|
cmp w19, w1
|
|
beq .L1467
|
|
cmp w0, 64
|
|
bne .L1468
|
|
ldr x0, [x29, 144]
|
|
add x2, x22, :lo12:.LANCHOR97
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
.L1484:
|
|
bl _insert_data_list
|
|
.L1467:
|
|
add w19, w19, 1
|
|
sxth w19, w19
|
|
b .L1460
|
|
.L1465:
|
|
asr w4, w5, w1
|
|
tbnz x4, 0, .L1463
|
|
add w0, w8, w0
|
|
sxth w0, w0
|
|
.L1464:
|
|
add w1, w1, 1
|
|
b .L1462
|
|
.L1463:
|
|
ldrh w4, [x6, 146]
|
|
add w4, w4, 1
|
|
strh w4, [x6, 146]
|
|
b .L1464
|
|
.L1466:
|
|
ldrb w1, [x28, 2]
|
|
mov w4, -1
|
|
orr w1, w1, -32
|
|
strb w1, [x28, 2]
|
|
adrp x1, .LANCHOR11
|
|
ldr x1, [x1, #:lo12:.LANCHOR11]
|
|
strh w4, [x1, x2, lsl 1]
|
|
b .L1461
|
|
.L1478:
|
|
ldr w0, [x29, 204]
|
|
b .L1461
|
|
.L1468:
|
|
cmp w0, 96
|
|
bne .L1469
|
|
ldr x0, [x29, 152]
|
|
add x2, x20, :lo12:.LANCHOR99
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
b .L1484
|
|
.L1469:
|
|
cmp w0, 160
|
|
bne .L1470
|
|
ldr x0, [x29, 136]
|
|
add x2, x21, :lo12:.LANCHOR91
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
b .L1484
|
|
.L1470:
|
|
cbnz w0, .L1467
|
|
adrp x0, .LANCHOR11
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x0, x2, lsl 1]
|
|
cbz w2, .L1471
|
|
cmp w27, 2
|
|
bgt .L1472
|
|
mov w1, w19
|
|
adrp x0, .LC91
|
|
add x0, x0, :lo12:.LC91
|
|
bl printf
|
|
ldrb w0, [x28, 2]
|
|
add w27, w27, 1
|
|
sxth w27, w27
|
|
tbz x0, 4, .L1473
|
|
mov w1, 5
|
|
.L1483:
|
|
bfi w0, w1, 5, 3
|
|
strb w0, [x28, 2]
|
|
mov w2, 0
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl gc_add_sblk
|
|
b .L1467
|
|
.L1473:
|
|
mov w1, 2
|
|
b .L1483
|
|
.L1472:
|
|
ldp x0, x1, [x29, 104]
|
|
mov w2, 656
|
|
bl printf
|
|
.L1471:
|
|
ldrb w0, [x28, 2]
|
|
ands w0, w0, 24
|
|
bne .L1475
|
|
ldr x0, [x29, 176]
|
|
add x2, x25, :lo12:.LANCHOR103
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR104
|
|
.L1485:
|
|
bl _insert_free_list
|
|
b .L1467
|
|
.L1475:
|
|
cmp w0, 16
|
|
bne .L1476
|
|
ldr x0, [x29, 168]
|
|
add x2, x24, :lo12:.LANCHOR105
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR106
|
|
b .L1485
|
|
.L1476:
|
|
ldr x0, [x29, 160]
|
|
add x2, x23, :lo12:.LANCHOR107
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LANCHOR108
|
|
b .L1485
|
|
.size zftl_sblk_list_init, .-zftl_sblk_list_init
|
|
.section .text.pm_free_sblk,"ax",@progbits
|
|
.align 2
|
|
.global pm_free_sblk
|
|
.type pm_free_sblk, %function
|
|
pm_free_sblk:
|
|
stp x29, x30, [sp, -384]!
|
|
adrp x0, .LANCHOR152
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldrh w1, [x0, #:lo12:.LANCHOR152]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
cmp w1, 128
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
bls .L1487
|
|
adrp x1, .LANCHOR153
|
|
adrp x0, .LC0
|
|
mov w2, 94
|
|
add x1, x1, :lo12:.LANCHOR153
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L1487:
|
|
adrp x5, .LANCHOR110
|
|
mov x26, x5
|
|
ldrh w3, [x19, #:lo12:.LANCHOR152]
|
|
mov w1, 0
|
|
ldr x0, [x5, #:lo12:.LANCHOR110]
|
|
mov w19, 0
|
|
mov w4, 65535
|
|
add x0, x0, 416
|
|
ldrh w2, [x0, 272]
|
|
.L1490:
|
|
ldrh w6, [x0]
|
|
cmp w6, w4
|
|
beq .L1488
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
.L1488:
|
|
cmp w1, w2
|
|
bcs .L1489
|
|
cmp w1, w3
|
|
bcs .L1489
|
|
add w19, w19, 1
|
|
add x0, x0, 2
|
|
and w19, w19, 65535
|
|
cmp w19, 128
|
|
bne .L1490
|
|
.L1489:
|
|
add w19, w19, 1
|
|
mov w0, 128
|
|
and w19, w19, 65535
|
|
add x22, x29, 128
|
|
cmp w19, 129
|
|
mov w2, 256
|
|
csel w19, w19, w0, ne
|
|
mov w1, 0
|
|
mov x0, x22
|
|
adrp x23, .LANCHOR75
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR74
|
|
ldr x6, [x26, #:lo12:.LANCHOR110]
|
|
mov w2, 24
|
|
ldrb w11, [x23, #:lo12:.LANCHOR75]
|
|
ldrh w10, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR31
|
|
add x4, x6, 704
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
ldrh w1, [x6, 698]
|
|
sub w2, w2, w0
|
|
sub w0, w2, w10
|
|
add x1, x1, 176
|
|
mov w2, 1
|
|
add x1, x6, x1, lsl 2
|
|
lsl w2, w2, w0
|
|
sub w2, w2, #1
|
|
.L1492:
|
|
cmp x1, x4
|
|
bne .L1495
|
|
adrp x24, .LANCHOR79
|
|
adrp x25, .LANCHOR94
|
|
adrp x27, .LC92
|
|
adrp x28, .LANCHOR19
|
|
ldrb w21, [x24, #:lo12:.LANCHOR79]
|
|
add x23, x23, :lo12:.LANCHOR75
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
add x27, x27, :lo12:.LC92
|
|
add x28, x28, :lo12:.LANCHOR19
|
|
mov x20, 0
|
|
mov w7, 65535
|
|
str wzr, [x29, 124]
|
|
mul w21, w21, w0
|
|
and w21, w21, 65535
|
|
.L1501:
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
and w6, w20, 65535
|
|
ldrb w2, [x23]
|
|
mov w8, w20
|
|
add x1, x0, x20, sxtw 1
|
|
ldrh w3, [x1, 416]
|
|
ldrh w1, [x0, 692]
|
|
sdiv w1, w1, w2
|
|
cmp w1, w3
|
|
bne .L1496
|
|
ldrb w1, [x24, #:lo12:.LANCHOR79]
|
|
ldrh w2, [x25, #:lo12:.LANCHOR94]
|
|
mul w1, w1, w2
|
|
strh w1, [x22, x20, lsl 1]
|
|
.L1496:
|
|
ldrh w2, [x22, x20, lsl 1]
|
|
cmp w2, w21
|
|
bcs .L1497
|
|
cmp w2, 0
|
|
ldr w1, [x29, 124]
|
|
csel w21, w21, w2, eq
|
|
csel w1, w1, w6, eq
|
|
str w1, [x29, 124]
|
|
.L1497:
|
|
ldrh w1, [x0, 74]
|
|
cmp w1, 2
|
|
bls .L1498
|
|
mov w1, 65535
|
|
cmp w3, w1
|
|
beq .L1498
|
|
adrp x4, .LANCHOR9
|
|
ubfiz x1, x3, 2, 16
|
|
ldrh w0, [x0, 92]
|
|
ldr x4, [x4, #:lo12:.LANCHOR9]
|
|
add w0, w0, 4
|
|
ldrh w4, [x4, x1]
|
|
and w4, w4, 2047
|
|
cmp w4, w0
|
|
bgt .L1498
|
|
mov w1, w8
|
|
str w6, [x29, 104]
|
|
str w8, [x29, 112]
|
|
mov x0, x27
|
|
bl printf
|
|
ldr w6, [x29, 104]
|
|
ldr w8, [x29, 112]
|
|
mov w7, w6
|
|
.L1498:
|
|
ldrh w0, [x22, x20, lsl 1]
|
|
cbnz w0, .L1499
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
sxtw x6, w8
|
|
add x1, x6, 208
|
|
ldrh w3, [x0, x1, lsl 1]
|
|
mov w1, 65535
|
|
cmp w3, w1
|
|
beq .L1499
|
|
ldr w1, [x28]
|
|
tbz x1, 12, .L1500
|
|
ldrh w4, [x0, 688]
|
|
mov w2, 0
|
|
str x6, [x29, 104]
|
|
mov w1, w8
|
|
str w7, [x29, 112]
|
|
adrp x0, .LC93
|
|
add x0, x0, :lo12:.LC93
|
|
bl printf
|
|
ldr w7, [x29, 112]
|
|
ldr x6, [x29, 104]
|
|
.L1500:
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
add x6, x6, 208
|
|
str w7, [x29, 104]
|
|
str x6, [x29, 112]
|
|
ldrh w0, [x0, x6, lsl 1]
|
|
bl ftl_free_sblk
|
|
ldr x0, [x26, #:lo12:.LANCHOR110]
|
|
mov w1, -1
|
|
ldr x6, [x29, 112]
|
|
ldr w7, [x29, 104]
|
|
strh w1, [x0, x6, lsl 1]
|
|
ldrh w1, [x0, 688]
|
|
sub w1, w1, #1
|
|
strh w1, [x0, 688]
|
|
.L1499:
|
|
add x20, x20, 1
|
|
cmp w19, w20, uxth
|
|
bhi .L1501
|
|
mov w0, 65535
|
|
cmp w7, w0
|
|
ldr w0, [x29, 124]
|
|
ldp x19, x20, [sp, 16]
|
|
csel w0, w0, w7, eq
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 384
|
|
ret
|
|
.L1495:
|
|
ldr w0, [x4]
|
|
add x7, x6, 416
|
|
mov x3, 0
|
|
lsr w0, w0, w10
|
|
and w0, w0, w2
|
|
udiv w0, w0, w11
|
|
and w0, w0, 65535
|
|
.L1494:
|
|
ldrh w8, [x7]
|
|
cmp w8, w0
|
|
bne .L1493
|
|
ldrh w8, [x22, x3, lsl 1]
|
|
add w8, w8, 1
|
|
strh w8, [x22, x3, lsl 1]
|
|
.L1493:
|
|
add x3, x3, 1
|
|
add x7, x7, 2
|
|
cmp w19, w3, uxth
|
|
bhi .L1494
|
|
add x4, x4, 4
|
|
b .L1492
|
|
.size pm_free_sblk, .-pm_free_sblk
|
|
.section .text.ftl_memcpy,"ax",@progbits
|
|
.align 2
|
|
.global ftl_memcpy
|
|
.type ftl_memcpy, %function
|
|
ftl_memcpy:
|
|
uxtw x2, w2
|
|
b memcpy
|
|
.size ftl_memcpy, .-ftl_memcpy
|
|
.section .text.flash_info_data_init,"ax",@progbits
|
|
.align 2
|
|
.global flash_info_data_init
|
|
.type flash_info_data_init, %function
|
|
flash_info_data_init:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x0, .LANCHOR19
|
|
add x29, sp, 0
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
str x19, [sp, 16]
|
|
tbz x0, 12, .L1514
|
|
adrp x2, .LANCHOR154
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR154
|
|
mov w1, 120
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L1514:
|
|
adrp x19, .LANCHOR6
|
|
mov w2, 2048
|
|
mov w1, 0
|
|
ldr x0, [x19, #:lo12:.LANCHOR6]
|
|
bl ftl_memset
|
|
ldr x0, [x19, #:lo12:.LANCHOR6]
|
|
mov w1, 21321
|
|
movk w1, 0x5359, lsl 16
|
|
mov w2, 32
|
|
add x0, x0, 80
|
|
str w1, [x0, -80]
|
|
mov w1, 2032
|
|
str w1, [x0, -72]
|
|
mov w1, 1
|
|
strh w1, [x0, -64]
|
|
adrp x1, .LANCHOR25
|
|
add x1, x1, :lo12:.LANCHOR25
|
|
bl ftl_memcpy
|
|
ldr x0, [x19, #:lo12:.LANCHOR6]
|
|
mov w2, 32
|
|
ldr x19, [sp, 16]
|
|
adrp x1, .LANCHOR32
|
|
ldp x29, x30, [sp], 32
|
|
add x1, x1, :lo12:.LANCHOR32
|
|
add x0, x0, 48
|
|
b ftl_memcpy
|
|
.size flash_info_data_init, .-flash_info_data_init
|
|
.section .text.ftl_memcpy32,"ax",@progbits
|
|
.align 2
|
|
.global ftl_memcpy32
|
|
.type ftl_memcpy32, %function
|
|
ftl_memcpy32:
|
|
mov x3, 0
|
|
.L1520:
|
|
cmp w2, w3
|
|
bhi .L1521
|
|
ret
|
|
.L1521:
|
|
ldr w4, [x1, x3, lsl 2]
|
|
str w4, [x0, x3, lsl 2]
|
|
add x3, x3, 1
|
|
b .L1520
|
|
.size ftl_memcpy32, .-ftl_memcpy32
|
|
.section .text.ftl_memcmp,"ax",@progbits
|
|
.align 2
|
|
.global ftl_memcmp
|
|
.type ftl_memcmp, %function
|
|
ftl_memcmp:
|
|
uxtw x2, w2
|
|
b memcmp
|
|
.size ftl_memcmp, .-ftl_memcmp
|
|
.section .text.rknand_get_clk_rate,"ax",@progbits
|
|
.align 2
|
|
.global rknand_get_clk_rate
|
|
.type rknand_get_clk_rate, %function
|
|
rknand_get_clk_rate:
|
|
mov w0, 19712
|
|
movk w0, 0x8d2, lsl 16
|
|
ret
|
|
.size rknand_get_clk_rate, .-rknand_get_clk_rate
|
|
.section .text.ftl_malloc,"ax",@progbits
|
|
.align 2
|
|
.global ftl_malloc
|
|
.type ftl_malloc, %function
|
|
ftl_malloc:
|
|
mov w1, 0
|
|
sxtw x0, w0
|
|
b kmalloc
|
|
.size ftl_malloc, .-ftl_malloc
|
|
.section .text.nandc_init,"ax",@progbits
|
|
.align 2
|
|
.global nandc_init
|
|
.type nandc_init, %function
|
|
nandc_init:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR19
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
str wzr, [x29, 56]
|
|
tbz x0, 12, .L1526
|
|
adrp x1, .LANCHOR155
|
|
adrp x0, .LC95
|
|
mov x2, x19
|
|
add x1, x1, :lo12:.LANCHOR155
|
|
add x0, x0, :lo12:.LC95
|
|
bl printf
|
|
.L1526:
|
|
adrp x20, .LANCHOR27
|
|
mov w0, 6
|
|
ldr w2, [x19, 352]
|
|
mov w1, 12336
|
|
strb w0, [x20, #:lo12:.LANCHOR27]
|
|
adrp x0, .LANCHOR7
|
|
movk w1, 0x5638, lsl 16
|
|
mov x22, x0
|
|
str x19, [x0, #:lo12:.LANCHOR7]
|
|
cmp w2, w1
|
|
bne .L1527
|
|
mov w0, 8
|
|
strb w0, [x20, #:lo12:.LANCHOR27]
|
|
.L1527:
|
|
ldr w1, [x19, 128]
|
|
mov w0, 12336
|
|
movk w0, 0x5639, lsl 16
|
|
cmp w1, w0
|
|
bne .L1528
|
|
mov w0, 9
|
|
strb w0, [x20, #:lo12:.LANCHOR27]
|
|
.L1528:
|
|
ldrb w0, [x20, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
adrp x0, .LANCHOR50
|
|
bne .L1529
|
|
mov w1, 1
|
|
strb w1, [x0, #:lo12:.LANCHOR50]
|
|
ldr w0, [x29, 56]
|
|
mov w1, 2
|
|
orr w0, w0, 256
|
|
str w0, [x29, 56]
|
|
ldr w0, [x29, 56]
|
|
bfi w0, w1, 18, 3
|
|
str w0, [x29, 56]
|
|
ldr w0, [x29, 56]
|
|
str w0, [x19]
|
|
str wzr, [x19, 520]
|
|
mov w0, 4161
|
|
str w0, [x19, 4]
|
|
mov w0, 8321
|
|
str w0, [x19, 8]
|
|
mov w0, 4099
|
|
movk w0, 0x10, lsl 16
|
|
str w0, [x19, 80]
|
|
mov w0, 38
|
|
str w0, [x19, 84]
|
|
mov w0, 39
|
|
str w0, [x19, 84]
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L1531
|
|
ldr w1, [x19]
|
|
ldr w2, [x19, 8]
|
|
ldr w3, [x19, 80]
|
|
ldr w4, [x19, 84]
|
|
ldr w5, [x19, 88]
|
|
.L1544:
|
|
adrp x0, .LC96
|
|
add x0, x0, :lo12:.LC96
|
|
bl printf
|
|
.L1531:
|
|
adrp x0, .LANCHOR51
|
|
mov w1, 1
|
|
strb w1, [x0, #:lo12:.LANCHOR51]
|
|
adrp x0, .LANCHOR53
|
|
strh wzr, [x0, #:lo12:.LANCHOR53]
|
|
adrp x0, .LANCHOR49
|
|
strb wzr, [x0, #:lo12:.LANCHOR49]
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L1525
|
|
ldrb w1, [x20, #:lo12:.LANCHOR27]
|
|
adrp x0, .LC97
|
|
add x0, x0, :lo12:.LC97
|
|
bl printf
|
|
.L1525:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L1529:
|
|
strb wzr, [x0, #:lo12:.LANCHOR50]
|
|
mov w1, 1
|
|
ldr w0, [x29, 56]
|
|
orr w0, w0, 256
|
|
str w0, [x29, 56]
|
|
ldr w0, [x29, 56]
|
|
bfi w0, w1, 24, 3
|
|
str w0, [x29, 56]
|
|
ldr w0, [x29, 56]
|
|
str w0, [x19]
|
|
str wzr, [x19, 336]
|
|
mov w0, 4193
|
|
str w0, [x19, 4]
|
|
mov w0, 8321
|
|
str w0, [x19, 344]
|
|
mov w0, 4099
|
|
movk w0, 0x10, lsl 16
|
|
str w0, [x19, 304]
|
|
mov w0, 38
|
|
str w0, [x19, 308]
|
|
mov w0, 39
|
|
str w0, [x19, 308]
|
|
mov w0, 2048
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR52
|
|
str x0, [x1, #:lo12:.LANCHOR52]
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L1531
|
|
ldr x0, [x22, #:lo12:.LANCHOR7]
|
|
ldr w1, [x0]
|
|
ldr w2, [x0, 344]
|
|
ldr w3, [x0, 304]
|
|
ldr w4, [x0, 308]
|
|
ldr w5, [x0, 312]
|
|
b .L1544
|
|
.size nandc_init, .-nandc_init
|
|
.section .text.zbuf_init,"ax",@progbits
|
|
.align 2
|
|
.global zbuf_init
|
|
.type zbuf_init, %function
|
|
zbuf_init:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x0, .LANCHOR55
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
add x19, x0, :lo12:.LANCHOR55
|
|
stp x21, x22, [sp, 32]
|
|
mov x20, x0
|
|
adrp x22, .LANCHOR131
|
|
add x22, x22, :lo12:.LANCHOR131
|
|
mov w21, 0
|
|
.L1546:
|
|
and w0, w21, 255
|
|
strb w0, [x19, 1]
|
|
add w1, w0, 1
|
|
ldrb w0, [x22]
|
|
strb w1, [x19]
|
|
add w21, w21, 1
|
|
strb wzr, [x19, 2]
|
|
add x19, x19, 64
|
|
str xzr, [x19, -48]
|
|
lsl w0, w0, 9
|
|
bl ftl_malloc
|
|
str x0, [x19, -56]
|
|
mov w0, 64
|
|
bl ftl_malloc
|
|
str x0, [x19, -40]
|
|
cmp w21, 32
|
|
bne .L1546
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
mov w1, -1
|
|
strb w1, [x0, 1984]
|
|
adrp x0, .LANCHOR56
|
|
strb wzr, [x0, #:lo12:.LANCHOR56]
|
|
adrp x0, .LANCHOR57
|
|
ldp x19, x20, [sp, 16]
|
|
strb w21, [x0, #:lo12:.LANCHOR57]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size zbuf_init, .-zbuf_init
|
|
.section .text.gc_init,"ax",@progbits
|
|
.align 2
|
|
.global gc_init
|
|
.type gc_init, %function
|
|
gc_init:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x0, .LANCHOR84
|
|
mov w2, 2216
|
|
mov w1, 0
|
|
add x29, sp, 0
|
|
strb wzr, [x0, #:lo12:.LANCHOR84]
|
|
adrp x0, .LANCHOR156
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR70
|
|
strb wzr, [x0, #:lo12:.LANCHOR156]
|
|
adrp x0, .LANCHOR157
|
|
add x19, x20, :lo12:.LANCHOR70
|
|
str wzr, [x0, #:lo12:.LANCHOR157]
|
|
adrp x0, .LANCHOR96
|
|
strh wzr, [x0, #:lo12:.LANCHOR96]
|
|
mov x0, x19
|
|
bl ftl_memset
|
|
str xzr, [x19, 8]
|
|
mov w0, -1
|
|
strh w0, [x20, #:lo12:.LANCHOR70]
|
|
adrp x0, .LANCHOR94
|
|
adrp x4, .LANCHOR102
|
|
adrp x20, .LANCHOR85
|
|
ldrh w1, [x0, #:lo12:.LANCHOR94]
|
|
lsr w2, w1, 1
|
|
lsr w0, w1, 2
|
|
strh w2, [x19, 38]
|
|
adrp x2, .LANCHOR87
|
|
strh w0, [x19, 36]
|
|
adrp x19, .LANCHOR79
|
|
strh wzr, [x2, #:lo12:.LANCHOR87]
|
|
adrp x2, .LANCHOR88
|
|
ldrb w3, [x19, #:lo12:.LANCHOR79]
|
|
strh wzr, [x2, #:lo12:.LANCHOR88]
|
|
adrp x2, .LANCHOR89
|
|
strh wzr, [x2, #:lo12:.LANCHOR89]
|
|
mul w2, w1, w3
|
|
and w2, w2, 65535
|
|
sub w5, w2, #32
|
|
strh w5, [x4, #:lo12:.LANCHOR102]
|
|
adrp x4, .LANCHOR100
|
|
strh w2, [x4, #:lo12:.LANCHOR100]
|
|
adrp x2, .LANCHOR93
|
|
strh w1, [x2, #:lo12:.LANCHOR93]
|
|
adrp x1, .LANCHOR158
|
|
mov w2, 4
|
|
strh w2, [x1, #:lo12:.LANCHOR158]
|
|
adrp x1, .LANCHOR69
|
|
strh w0, [x1, #:lo12:.LANCHOR69]
|
|
ldrh w0, [x20, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w3
|
|
lsl w0, w0, 2
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR159
|
|
str x0, [x1, #:lo12:.LANCHOR159]
|
|
ldrb w1, [x19, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x20, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w1
|
|
lsl w0, w0, 2
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR160
|
|
str x0, [x1, #:lo12:.LANCHOR160]
|
|
ldrh w1, [x20, #:lo12:.LANCHOR85]
|
|
ldrb w0, [x19, #:lo12:.LANCHOR79]
|
|
mul w0, w1, w0
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR82
|
|
str x0, [x1, #:lo12:.LANCHOR82]
|
|
ldrb w1, [x19, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x20, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w1
|
|
lsl w0, w0, 2
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR76
|
|
str x0, [x1, #:lo12:.LANCHOR76]
|
|
ldrb w1, [x19, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x20, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w1
|
|
lsl w0, w0, 2
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR161
|
|
ldp x19, x20, [sp, 16]
|
|
str x0, [x1, #:lo12:.LANCHOR161]
|
|
adrp x0, .LANCHOR98
|
|
adrp x1, .LANCHOR86
|
|
ldp x29, x30, [sp], 32
|
|
ldrh w0, [x0, #:lo12:.LANCHOR98]
|
|
lsr w0, w0, 2
|
|
strh w0, [x1, #:lo12:.LANCHOR86]
|
|
ret
|
|
.size gc_init, .-gc_init
|
|
.section .text.ftl_free,"ax",@progbits
|
|
.align 2
|
|
.global ftl_free
|
|
.type ftl_free, %function
|
|
ftl_free:
|
|
b free
|
|
.size ftl_free, .-ftl_free
|
|
.section .text.js_hash,"ax",@progbits
|
|
.align 2
|
|
.global js_hash
|
|
.type js_hash, %function
|
|
js_hash:
|
|
mov x4, x0
|
|
mov w0, 42982
|
|
mov x3, 0
|
|
movk w0, 0x47c6, lsl 16
|
|
.L1553:
|
|
cmp w1, w3
|
|
bhi .L1554
|
|
ret
|
|
.L1554:
|
|
lsr w2, w0, 2
|
|
ldrb w5, [x4, x3]
|
|
add w2, w2, w0, lsl 5
|
|
add x3, x3, 1
|
|
add w2, w2, w5
|
|
eor w0, w0, w2
|
|
b .L1553
|
|
.size js_hash, .-js_hash
|
|
.section .text.ftl_debug_info_fill,"ax",@progbits
|
|
.align 2
|
|
.global ftl_debug_info_fill
|
|
.type ftl_debug_info_fill, %function
|
|
ftl_debug_info_fill:
|
|
adrp x3, .LANCHOR131
|
|
ldrb w3, [x3, #:lo12:.LANCHOR131]
|
|
cmp w3, 8
|
|
bls .L1559
|
|
and w0, w0, 255
|
|
cmp x2, 0
|
|
ccmp w0, 2, 0, ne
|
|
bne .L1557
|
|
stp x29, x30, [sp, -16]!
|
|
mov x6, x1
|
|
mov w1, 21320
|
|
mov x0, x2
|
|
add x29, sp, 0
|
|
movk w1, 0x4841, lsl 16
|
|
str w1, [x6]
|
|
mov w1, 1024
|
|
bl js_hash
|
|
str w0, [x6, 4]
|
|
mov w0, 0
|
|
ldp x29, x30, [sp], 16
|
|
ret
|
|
.L1557:
|
|
stp wzr, wzr, [x1]
|
|
.L1559:
|
|
mov w0, 0
|
|
ret
|
|
.size ftl_debug_info_fill, .-ftl_debug_info_fill
|
|
.section .text.timer_get_time,"ax",@progbits
|
|
.align 2
|
|
.global timer_get_time
|
|
.type timer_get_time, %function
|
|
timer_get_time:
|
|
mov w0, 0
|
|
ret
|
|
.size timer_get_time, .-timer_get_time
|
|
.section .text.FlashCs123Init,"ax",@progbits
|
|
.align 2
|
|
.global FlashCs123Init
|
|
.type FlashCs123Init, %function
|
|
FlashCs123Init:
|
|
ret
|
|
.size FlashCs123Init, .-FlashCs123Init
|
|
.section .text.rk_nand_de_init,"ax",@progbits
|
|
.align 2
|
|
.global rk_nand_de_init
|
|
.type rk_nand_de_init, %function
|
|
rk_nand_de_init:
|
|
b zftl_flash_de_init
|
|
.size rk_nand_de_init, .-rk_nand_de_init
|
|
.section .text.ftl_get_density,"ax",@progbits
|
|
.align 2
|
|
.global ftl_get_density
|
|
.type ftl_get_density, %function
|
|
ftl_get_density:
|
|
and w0, w0, 255
|
|
b zftl_get_density
|
|
.size ftl_get_density, .-ftl_get_density
|
|
.section .text.ftl_get_capacity,"ax",@progbits
|
|
.align 2
|
|
.global ftl_get_capacity
|
|
.type ftl_get_capacity, %function
|
|
ftl_get_capacity:
|
|
adrp x0, .LANCHOR67
|
|
ldr w0, [x0, #:lo12:.LANCHOR67]
|
|
ret
|
|
.size ftl_get_capacity, .-ftl_get_capacity
|
|
.section .text.rknand_print_hex,"ax",@progbits
|
|
.align 2
|
|
.global rknand_print_hex
|
|
.type rknand_print_hex, %function
|
|
rknand_print_hex:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LC99
|
|
stp x23, x24, [sp, 48]
|
|
mov x22, x1
|
|
stp x25, x26, [sp, 64]
|
|
mov w24, w2
|
|
stp x27, x28, [sp, 80]
|
|
adrp x25, .LC98
|
|
mov x27, x0
|
|
uxtw x26, w3
|
|
add x25, x25, :lo12:.LC98
|
|
add x21, x21, :lo12:.LC99
|
|
stp x19, x20, [sp, 16]
|
|
mov w23, 0
|
|
mov x19, 0
|
|
mov w20, 0
|
|
adrp x28, .LC100
|
|
.L1568:
|
|
cmp x26, x19
|
|
bne .L1574
|
|
ldp x19, x20, [sp, 16]
|
|
adrp x1, .LC100
|
|
ldp x21, x22, [sp, 32]
|
|
add x1, x1, :lo12:.LC100
|
|
ldp x23, x24, [sp, 48]
|
|
adrp x0, .LC101
|
|
ldp x25, x26, [sp, 64]
|
|
add x0, x0, :lo12:.LC101
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
b printf
|
|
.L1574:
|
|
cbnz w20, .L1569
|
|
mov w3, w23
|
|
mov x2, x22
|
|
mov x1, x27
|
|
mov x0, x25
|
|
bl printf
|
|
.L1569:
|
|
cmp w24, 4
|
|
bne .L1570
|
|
ldr w1, [x22, x19, lsl 2]
|
|
.L1576:
|
|
mov x0, x21
|
|
add w20, w20, 1
|
|
bl printf
|
|
cmp w20, 15
|
|
bls .L1573
|
|
mov w20, 0
|
|
add x1, x28, :lo12:.LC100
|
|
adrp x0, .LC101
|
|
add x0, x0, :lo12:.LC101
|
|
bl printf
|
|
.L1573:
|
|
add x19, x19, 1
|
|
add w23, w23, w24
|
|
b .L1568
|
|
.L1570:
|
|
cmp w24, 2
|
|
bne .L1572
|
|
ldrsh w1, [x22, x19, lsl 1]
|
|
b .L1576
|
|
.L1572:
|
|
ldrb w1, [x22, x19]
|
|
b .L1576
|
|
.size rknand_print_hex, .-rknand_print_hex
|
|
.section .text.hynix_get_read_retry_default,"ax",@progbits
|
|
.align 2
|
|
.global hynix_get_read_retry_default
|
|
.type hynix_get_read_retry_default, %function
|
|
hynix_get_read_retry_default:
|
|
stp x29, x30, [sp, -144]!
|
|
mov w2, -83
|
|
mov w1, -82
|
|
add x29, sp, 0
|
|
stp x25, x26, [sp, 64]
|
|
mov w25, w0
|
|
adrp x0, .LANCHOR6
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
cmp w25, 2
|
|
ldr x26, [x0, #:lo12:.LANCHOR6]
|
|
mov w0, -84
|
|
stp x19, x20, [sp, 16]
|
|
stp x27, x28, [sp, 80]
|
|
add x24, x26, 128
|
|
add x21, x26, 112
|
|
strb w0, [x26, 128]
|
|
mov w0, -81
|
|
strb w25, [x26, 112]
|
|
strb w2, [x26, 129]
|
|
strb w1, [x26, 130]
|
|
strb w0, [x26, 131]
|
|
bne .L1578
|
|
mov w0, -89
|
|
strb w0, [x21, 16]
|
|
adrp x0, .LANCHOR162+17
|
|
mov w1, -9
|
|
strb w1, [x0, #:lo12:.LANCHOR162+17]
|
|
.L1642:
|
|
mov w27, 7
|
|
b .L1685
|
|
.L1578:
|
|
cmp w25, 3
|
|
bne .L1580
|
|
mov x5, 0
|
|
.L1581:
|
|
sub w0, w5, #80
|
|
strb w0, [x24, x5]
|
|
add x5, x5, 1
|
|
cmp x5, 8
|
|
bne .L1581
|
|
mov w27, w5
|
|
mov w28, w5
|
|
.L1579:
|
|
sub w0, w25, #1
|
|
cmp w0, 1
|
|
bhi .L1587
|
|
adrp x25, .LANCHOR23
|
|
adrp x26, .LANCHOR29
|
|
add x25, x25, :lo12:.LANCHOR23
|
|
add x26, x26, :lo12:.LANCHOR29
|
|
mov w23, 0
|
|
mov w5, 55
|
|
.L1588:
|
|
ldrb w0, [x25]
|
|
cmp w0, w23
|
|
bhi .L1594
|
|
.L1595:
|
|
strb w28, [x21, 1]
|
|
strb w27, [x21, 2]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 144
|
|
ret
|
|
.L1580:
|
|
cmp w25, 4
|
|
bne .L1582
|
|
mov w5, -52
|
|
strb w5, [x26, 128]
|
|
mov w5, -65
|
|
strb w5, [x26, 129]
|
|
mov w5, -86
|
|
strb w5, [x26, 130]
|
|
mov w5, -85
|
|
mov w27, 8
|
|
strb w5, [x26, 131]
|
|
mov w28, w27
|
|
mov w5, -51
|
|
strb w2, [x26, 133]
|
|
strb w5, [x26, 132]
|
|
strb w1, [x26, 134]
|
|
strb w0, [x26, 135]
|
|
b .L1579
|
|
.L1582:
|
|
cmp w25, 5
|
|
bne .L1583
|
|
mov w0, 56
|
|
strb w0, [x26, 128]
|
|
mov w0, 57
|
|
strb w0, [x26, 129]
|
|
mov w0, 58
|
|
mov w27, 8
|
|
strb w0, [x26, 130]
|
|
mov w0, 59
|
|
strb w0, [x26, 131]
|
|
.L1685:
|
|
mov w28, 4
|
|
b .L1579
|
|
.L1583:
|
|
cmp w25, 6
|
|
bne .L1584
|
|
mov w0, 14
|
|
strb w0, [x26, 128]
|
|
mov w0, 15
|
|
strb w0, [x26, 129]
|
|
mov w0, 16
|
|
mov w27, 12
|
|
strb w0, [x26, 130]
|
|
mov w0, 17
|
|
strb w0, [x26, 131]
|
|
b .L1685
|
|
.L1584:
|
|
cmp w25, 7
|
|
bne .L1585
|
|
mov x0, 0
|
|
.L1586:
|
|
sub w1, w0, #80
|
|
strb w1, [x24, x0]
|
|
add x0, x0, 1
|
|
cmp x0, 8
|
|
bne .L1586
|
|
mov w0, -44
|
|
mov w27, 12
|
|
strb w0, [x26, 136]
|
|
mov w28, 10
|
|
mov w0, -43
|
|
strb w0, [x26, 137]
|
|
b .L1579
|
|
.L1585:
|
|
cmp w25, 8
|
|
bne .L1642
|
|
mov w0, 6
|
|
strb w0, [x26, 128]
|
|
mov w0, 7
|
|
strb w0, [x26, 129]
|
|
mov w0, 9
|
|
strb w25, [x26, 130]
|
|
strb w0, [x26, 131]
|
|
mov w27, 50
|
|
mov w0, 10
|
|
mov w28, 5
|
|
strb w0, [x26, 132]
|
|
b .L1579
|
|
.L1594:
|
|
ldrb w0, [x26, w23, sxtw]
|
|
mov x1, 32
|
|
mov w19, 160
|
|
mov x20, 0
|
|
umaddl x19, w19, w0, x1
|
|
adrp x1, .LANCHOR7
|
|
ubfiz x0, x0, 8, 8
|
|
ldr x22, [x1, #:lo12:.LANCHOR7]
|
|
add x19, x21, x19
|
|
add x22, x22, x0
|
|
.L1589:
|
|
str w5, [x22, 2056]
|
|
str w5, [x29, 136]
|
|
ldrb w0, [x24, x20]
|
|
str w0, [x22, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
ldr w0, [x22, 2048]
|
|
strb w0, [x19, x20]
|
|
add x20, x20, 1
|
|
cmp w28, w20, uxtb
|
|
ldr w5, [x29, 136]
|
|
bhi .L1589
|
|
adrp x2, .LANCHOR162
|
|
add x2, x2, :lo12:.LANCHOR162
|
|
mov x0, 0
|
|
.L1592:
|
|
add x7, x19, x0
|
|
add x4, x2, x0
|
|
mov x1, 1
|
|
.L1591:
|
|
lsl x3, x1, 2
|
|
lsl x8, x1, 3
|
|
ldrb w10, [x19, x0]
|
|
add x1, x1, 1
|
|
cmp x1, 7
|
|
ldrb w3, [x4, x3]
|
|
add w3, w3, w10
|
|
strb w3, [x7, x8]
|
|
bne .L1591
|
|
add x0, x0, 1
|
|
cmp x0, 4
|
|
bne .L1592
|
|
add w23, w23, 1
|
|
strb wzr, [x19, 16]
|
|
strb wzr, [x19, 24]
|
|
and w23, w23, 255
|
|
strb wzr, [x19, 32]
|
|
strb wzr, [x19, 40]
|
|
strb wzr, [x19, 48]
|
|
strb wzr, [x19, 41]
|
|
strb wzr, [x19, 49]
|
|
b .L1588
|
|
.L1587:
|
|
sub w0, w25, #3
|
|
cmp w0, 5
|
|
bhi .L1595
|
|
mul w24, w27, w28
|
|
sub w22, w28, #1
|
|
and x22, x22, 255
|
|
mov w20, 0
|
|
asr w23, w24, 1
|
|
lsl w0, w24, 4
|
|
str w0, [x29, 128]
|
|
lsl w0, w23, 1
|
|
str w0, [x29, 132]
|
|
sbfiz x0, x23, 1, 32
|
|
sub w24, w25, #5
|
|
str x0, [x29, 136]
|
|
adrp x0, .LANCHOR23
|
|
add x0, x0, :lo12:.LANCHOR23
|
|
str x0, [x29, 120]
|
|
add x0, x22, 1
|
|
str x0, [x29, 112]
|
|
.L1596:
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0]
|
|
cmp w0, w20
|
|
bls .L1595
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
mov w19, 160
|
|
ldrb w22, [x0, w20, sxtw]
|
|
mov w0, w22
|
|
bl zftl_flash_exit_slc_mode
|
|
mov x0, 32
|
|
ubfiz x2, x22, 8, 8
|
|
mov w1, 255
|
|
str w1, [x29, 108]
|
|
nop // between mem op and mult-accumulate
|
|
umaddl x19, w19, w22, x0
|
|
adrp x0, .LANCHOR7
|
|
ldr x0, [x0, #:lo12:.LANCHOR7]
|
|
add x19, x21, x19
|
|
add x22, x0, x2
|
|
str w1, [x22, 2056]
|
|
bl nandc_wait_flash_ready
|
|
cmp w25, 8
|
|
ldr w1, [x29, 108]
|
|
bne .L1597
|
|
mov w0, 120
|
|
str w0, [x22, 2056]
|
|
str wzr, [x22, 2052]
|
|
mov w0, 23
|
|
str wzr, [x22, 2052]
|
|
mov w1, 25
|
|
str wzr, [x22, 2052]
|
|
add x19, x26, 144
|
|
str w0, [x22, 2056]
|
|
mov w0, 4
|
|
str w0, [x22, 2056]
|
|
str w1, [x22, 2056]
|
|
mov w1, 218
|
|
str w1, [x22, 2056]
|
|
mov w1, 21
|
|
str wzr, [x22, 2056]
|
|
str wzr, [x22, 2052]
|
|
str wzr, [x22, 2052]
|
|
str w1, [x22, 2052]
|
|
.L1688:
|
|
str w0, [x22, 2052]
|
|
mov w0, 48
|
|
str wzr, [x22, 2052]
|
|
str w0, [x22, 2056]
|
|
bl nandc_wait_flash_ready
|
|
cmp w24, 1
|
|
ccmp w25, 8, 4, hi
|
|
beq .L1643
|
|
cmp w25, 7
|
|
mov w0, 32
|
|
mov w1, 2
|
|
csel w1, w1, w0, ne
|
|
.L1604:
|
|
adrp x8, .LANCHOR163
|
|
mov x7, 0
|
|
ldr x0, [x8, #:lo12:.LANCHOR163]
|
|
.L1605:
|
|
ldr w10, [x22, 2048]
|
|
strb w10, [x0, x7]
|
|
add x7, x7, 1
|
|
cmp w1, w7, uxtb
|
|
bhi .L1605
|
|
cmp w25, 8
|
|
bne .L1606
|
|
mov w1, 0
|
|
.L1608:
|
|
ldrb w7, [x0]
|
|
cmp w7, 50
|
|
beq .L1607
|
|
ldrb w7, [x0, 1]
|
|
cmp w7, 5
|
|
beq .L1607
|
|
add w1, w1, 1
|
|
add x0, x0, 4
|
|
and w1, w1, 255
|
|
cmp w1, 8
|
|
bne .L1608
|
|
.L1609:
|
|
adrp x0, .LC102
|
|
mov w1, 0
|
|
add x0, x0, :lo12:.LC102
|
|
bl printf
|
|
.L1611:
|
|
b .L1611
|
|
.L1597:
|
|
mov w0, 54
|
|
str w0, [x22, 2056]
|
|
cmp w25, 4
|
|
bne .L1599
|
|
mov w0, 64
|
|
str w1, [x22, 2052]
|
|
str w0, [x22, 2048]
|
|
mov w0, 204
|
|
.L1686:
|
|
str w0, [x22, 2052]
|
|
mov w0, 77
|
|
b .L1687
|
|
.L1599:
|
|
cmp w24, 1
|
|
bhi .L1601
|
|
ldrb w0, [x26, 128]
|
|
str w0, [x22, 2052]
|
|
mov w0, 82
|
|
.L1687:
|
|
str w0, [x22, 2048]
|
|
.L1600:
|
|
mov w0, 22
|
|
str w0, [x22, 2056]
|
|
mov w0, 23
|
|
str w0, [x22, 2056]
|
|
mov w0, 4
|
|
str w0, [x22, 2056]
|
|
mov w0, 25
|
|
str w0, [x22, 2056]
|
|
str wzr, [x22, 2056]
|
|
cmp w25, 6
|
|
str wzr, [x22, 2052]
|
|
str wzr, [x22, 2052]
|
|
bne .L1602
|
|
mov w0, 31
|
|
str w0, [x22, 2052]
|
|
.L1603:
|
|
mov w0, 2
|
|
b .L1688
|
|
.L1601:
|
|
cmp w25, 7
|
|
bne .L1600
|
|
mov w0, 174
|
|
str w0, [x22, 2052]
|
|
str wzr, [x22, 2048]
|
|
mov w0, 176
|
|
b .L1686
|
|
.L1602:
|
|
str wzr, [x22, 2052]
|
|
b .L1603
|
|
.L1643:
|
|
mov w1, 16
|
|
b .L1604
|
|
.L1607:
|
|
cmp w1, 6
|
|
bhi .L1609
|
|
.L1610:
|
|
ldr x7, [x8, #:lo12:.LANCHOR163]
|
|
mov x0, 0
|
|
.L1620:
|
|
ldr w1, [x29, 128]
|
|
cmp w1, w0
|
|
bgt .L1621
|
|
ldr x1, [x8, #:lo12:.LANCHOR163]
|
|
mov w10, 8
|
|
ldr x0, [x29, 136]
|
|
add x8, x1, x0
|
|
.L1623:
|
|
mov x0, 0
|
|
.L1622:
|
|
ldrh w11, [x8, x0, lsl 1]
|
|
mvn w11, w11
|
|
strh w11, [x8, x0, lsl 1]
|
|
add x0, x0, 1
|
|
cmp w23, w0
|
|
bgt .L1622
|
|
ldr w0, [x29, 132]
|
|
subs w10, w10, #1
|
|
add x8, x8, x0, uxtw 1
|
|
bne .L1623
|
|
mov x10, x1
|
|
mov w11, 0
|
|
mov w16, 1
|
|
.L1624:
|
|
mov w0, 0
|
|
mov w8, 0
|
|
.L1628:
|
|
mov x14, x10
|
|
lsl w15, w16, w8
|
|
mov w13, 16
|
|
mov w12, 0
|
|
.L1626:
|
|
ldrh w17, [x14]
|
|
ldr x2, [x29, 136]
|
|
bics wzr, w15, w17
|
|
cinc w12, w12, eq
|
|
add x14, x14, x2
|
|
subs w13, w13, #1
|
|
bne .L1626
|
|
cmp w12, 8
|
|
bls .L1627
|
|
orr w0, w0, w15
|
|
and w0, w0, 65535
|
|
.L1627:
|
|
add w8, w8, 1
|
|
cmp w8, 16
|
|
bne .L1628
|
|
strh w0, [x10], 2
|
|
add w11, w11, 1
|
|
cmp w23, w11
|
|
bgt .L1624
|
|
mov x0, 0
|
|
mov w8, 0
|
|
.L1631:
|
|
ldr w10, [x1, x0]
|
|
add x0, x0, 4
|
|
cmp w10, 0
|
|
cinc w8, w8, eq
|
|
cmp x0, 32
|
|
bne .L1631
|
|
cmp w8, 7
|
|
ble .L1632
|
|
mov w3, 1024
|
|
mov w2, 1
|
|
adrp x0, .LC103
|
|
add x0, x0, :lo12:.LC103
|
|
bl rknand_print_hex
|
|
adrp x0, .LC102
|
|
mov w1, 0
|
|
add x0, x0, :lo12:.LC102
|
|
bl printf
|
|
.L1633:
|
|
b .L1633
|
|
.L1606:
|
|
cmp w25, 7
|
|
bne .L1612
|
|
mov w1, 0
|
|
.L1614:
|
|
ldrb w7, [x0]
|
|
cmp w7, 12
|
|
beq .L1613
|
|
ldrb w7, [x0, 1]
|
|
cmp w7, 10
|
|
beq .L1613
|
|
add w1, w1, 1
|
|
add x0, x0, 4
|
|
and w1, w1, 255
|
|
cmp w1, 8
|
|
bne .L1614
|
|
.L1615:
|
|
adrp x0, .LC102
|
|
mov w1, 0
|
|
add x0, x0, :lo12:.LC102
|
|
bl printf
|
|
.L1616:
|
|
b .L1616
|
|
.L1613:
|
|
cmp w1, 6
|
|
bls .L1610
|
|
b .L1615
|
|
.L1612:
|
|
cmp w25, 6
|
|
bne .L1610
|
|
mov x1, 0
|
|
.L1617:
|
|
ldrb w7, [x0, x1]
|
|
cmp w7, 12
|
|
beq .L1610
|
|
add x7, x0, x1
|
|
ldrb w7, [x7, 8]
|
|
cmp w7, 4
|
|
beq .L1610
|
|
add x1, x1, 1
|
|
cmp x1, 8
|
|
bne .L1617
|
|
adrp x0, .LC102
|
|
mov w1, 0
|
|
add x0, x0, :lo12:.LC102
|
|
bl printf
|
|
.L1619:
|
|
b .L1619
|
|
.L1621:
|
|
ldr w1, [x22, 2048]
|
|
strb w1, [x7, x0]
|
|
add x0, x0, 1
|
|
b .L1620
|
|
.L1632:
|
|
cmp w25, 6
|
|
beq .L1645
|
|
cmp w25, 7
|
|
beq .L1646
|
|
cmp w25, 8
|
|
mov x1, 5
|
|
mov x0, 8
|
|
csel x0, x0, x1, ne
|
|
.L1634:
|
|
mov w8, 0
|
|
.L1635:
|
|
mov x1, 0
|
|
.L1636:
|
|
ldrb w10, [x7, x1]
|
|
strb w10, [x19, x1]
|
|
add x1, x1, 1
|
|
cmp w28, w1, uxtb
|
|
bhi .L1636
|
|
ldr x1, [x29, 112]
|
|
add w8, w8, 1
|
|
add x19, x19, x0
|
|
cmp w27, w8
|
|
add x7, x7, x1
|
|
bgt .L1635
|
|
mov w19, 255
|
|
str w19, [x22, 2056]
|
|
bl nandc_wait_flash_ready
|
|
cmp w24, 1
|
|
bhi .L1638
|
|
mov w0, 54
|
|
str w0, [x22, 2056]
|
|
ldrb w0, [x26, 128]
|
|
str w0, [x22, 2052]
|
|
str wzr, [x22, 2048]
|
|
mov w0, 22
|
|
str w0, [x22, 2056]
|
|
mov w0, 48
|
|
str wzr, [x22, 2056]
|
|
str wzr, [x22, 2052]
|
|
str wzr, [x22, 2052]
|
|
str w19, [x22, 2052]
|
|
str w19, [x22, 2052]
|
|
str w19, [x22, 2052]
|
|
.L1689:
|
|
str w0, [x22, 2056]
|
|
add w20, w20, 1
|
|
and w20, w20, 255
|
|
bl nandc_wait_flash_ready
|
|
b .L1596
|
|
.L1645:
|
|
mov x0, 4
|
|
b .L1634
|
|
.L1646:
|
|
mov x0, 10
|
|
b .L1634
|
|
.L1638:
|
|
cmp w25, 8
|
|
bne .L1640
|
|
mov w0, 190
|
|
b .L1689
|
|
.L1640:
|
|
mov w0, 56
|
|
b .L1689
|
|
.size hynix_get_read_retry_default, .-hynix_get_read_retry_default
|
|
.section .text.flash_get_read_retry_tbl,"ax",@progbits
|
|
.align 2
|
|
.global flash_get_read_retry_tbl
|
|
.type flash_get_read_retry_tbl, %function
|
|
flash_get_read_retry_tbl:
|
|
adrp x0, .LANCHOR32+19
|
|
ldrb w0, [x0, #:lo12:.LANCHOR32+19]
|
|
sub w1, w0, #1
|
|
and w1, w1, 255
|
|
cmp w1, 7
|
|
bhi .L1690
|
|
b hynix_get_read_retry_default
|
|
.L1690:
|
|
ret
|
|
.size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
|
|
.section .text.nandc_xfer_done,"ax",@progbits
|
|
.align 2
|
|
.global nandc_xfer_done
|
|
.type nandc_xfer_done, %function
|
|
nandc_xfer_done:
|
|
stp x29, x30, [sp, -80]!
|
|
adrp x0, .LANCHOR164
|
|
adrp x1, .LANCHOR27
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR7
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
stp x21, x22, [sp, 32]
|
|
strb wzr, [x0, #:lo12:.LANCHOR164]
|
|
cmp w1, 9
|
|
str x23, [sp, 48]
|
|
bne .L1693
|
|
ldr x20, [x19, #:lo12:.LANCHOR7]
|
|
mov x21, x0
|
|
ldr w0, [x20, 16]
|
|
str w0, [x29, 64]
|
|
ldr w0, [x20, 48]
|
|
tbnz x0, 1, .L1694
|
|
adrp x22, .LC106
|
|
adrp x23, .LC107
|
|
add x22, x22, :lo12:.LC106
|
|
add x23, x23, :lo12:.LC107
|
|
mov w21, 0
|
|
.L1695:
|
|
ldr w0, [x29, 64]
|
|
tbnz x0, 20, .L1697
|
|
ldr x0, [x19, #:lo12:.LANCHOR7]
|
|
add w21, w21, 1
|
|
tst x21, 16777215
|
|
ldr w0, [x0, 16]
|
|
str w0, [x29, 64]
|
|
bne .L1695
|
|
ldr w2, [x29, 64]
|
|
mov w1, w21
|
|
ldr w3, [x20, 64]
|
|
mov x0, x22
|
|
ubfx x3, x3, 16, 6
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR7]
|
|
mov w3, 64
|
|
mov w2, 4
|
|
mov x0, x23
|
|
bl rknand_print_hex
|
|
b .L1695
|
|
.L1696:
|
|
ldr w0, [x29, 64]
|
|
add w1, w1, 1
|
|
ubfx x0, x0, 22, 6
|
|
cmp w1, w0, lsl 12
|
|
bne .L1698
|
|
ldr w2, [x20, 64]
|
|
adrp x0, .LC105
|
|
ldr w3, [x29, 64]
|
|
add x0, x0, :lo12:.LC105
|
|
ubfx x2, x2, 16, 5
|
|
ubfx x3, x3, 22, 6
|
|
bl printf
|
|
ldr w0, [x29, 72]
|
|
mov w0, 1
|
|
strb w0, [x21, #:lo12:.LANCHOR164]
|
|
.L1697:
|
|
adrp x0, .LANCHOR52+32
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
str wzr, [x0, #:lo12:.LANCHOR52+32]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L1694:
|
|
mov w1, 0
|
|
.L1698:
|
|
ldr w2, [x20, 64]
|
|
ldr w0, [x29, 64]
|
|
ubfx x2, x2, 16, 6
|
|
ubfx x0, x0, 22, 6
|
|
cmp w2, w0
|
|
bge .L1697
|
|
ldr w0, [x20]
|
|
str w0, [x29, 72]
|
|
ldr w0, [x29, 72]
|
|
tbz x0, 13, .L1696
|
|
ldr w0, [x29, 72]
|
|
tbz x0, 17, .L1696
|
|
ldr w1, [x29, 72]
|
|
adrp x0, .LC104
|
|
add x0, x0, :lo12:.LC104
|
|
ubfx x1, x1, 17, 1
|
|
.L1727:
|
|
bl printf
|
|
b .L1697
|
|
.L1693:
|
|
ldr x20, [x19, #:lo12:.LANCHOR7]
|
|
mov w21, 0
|
|
ldr w0, [x20, 8]
|
|
str w0, [x29, 64]
|
|
ldr w0, [x20, 16]
|
|
tbnz x0, 1, .L1703
|
|
adrp x22, .LC106
|
|
adrp x23, .LC107
|
|
add x22, x22, :lo12:.LC106
|
|
add x23, x23, :lo12:.LC107
|
|
.L1704:
|
|
ldr w0, [x29, 64]
|
|
tbnz x0, 20, .L1697
|
|
ldr x0, [x19, #:lo12:.LANCHOR7]
|
|
add w21, w21, 1
|
|
tst x21, 16777215
|
|
ldr w0, [x0, 8]
|
|
str w0, [x29, 64]
|
|
bne .L1704
|
|
ldr w2, [x29, 64]
|
|
mov w1, w21
|
|
ldr w3, [x20, 28]
|
|
mov x0, x22
|
|
ubfx x3, x3, 16, 5
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR7]
|
|
mov w3, 64
|
|
mov w2, 4
|
|
mov x0, x23
|
|
bl rknand_print_hex
|
|
b .L1704
|
|
.L1703:
|
|
adrp x22, .LC105
|
|
adrp x23, .LC107
|
|
add x22, x22, :lo12:.LC105
|
|
add x23, x23, :lo12:.LC107
|
|
.L1705:
|
|
ldr w1, [x20, 28]
|
|
ldr w0, [x29, 64]
|
|
ubfx x1, x1, 16, 5
|
|
ubfx x0, x0, 22, 6
|
|
cmp w1, w0
|
|
bge .L1697
|
|
ldr x0, [x19, #:lo12:.LANCHOR7]
|
|
ldr w0, [x0]
|
|
str w0, [x29, 72]
|
|
ldr w0, [x29, 72]
|
|
tbz x0, 13, .L1706
|
|
ldr w0, [x29, 72]
|
|
tbz x0, 17, .L1706
|
|
adrp x0, .LC108
|
|
ldr w1, [x29, 72]
|
|
add x0, x0, :lo12:.LC108
|
|
b .L1727
|
|
.L1706:
|
|
add w21, w21, 1
|
|
tst x21, 16777215
|
|
bne .L1705
|
|
ldr w2, [x20, 28]
|
|
mov w1, w21
|
|
ldr w3, [x29, 64]
|
|
mov x0, x22
|
|
ubfx x2, x2, 16, 5
|
|
ubfx x3, x3, 22, 6
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR7]
|
|
mov w3, 64
|
|
mov w2, 4
|
|
mov x0, x23
|
|
bl rknand_print_hex
|
|
b .L1705
|
|
.size nandc_xfer_done, .-nandc_xfer_done
|
|
.section .text.nandc_xfer,"ax",@progbits
|
|
.align 2
|
|
.global nandc_xfer
|
|
.type nandc_xfer, %function
|
|
nandc_xfer:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w2, 255
|
|
mov x20, x3
|
|
stp x21, x22, [sp, 32]
|
|
mov x3, x4
|
|
and w22, w1, 255
|
|
mov x2, x20
|
|
mov w1, w19
|
|
mov w0, w22
|
|
mov x21, x4
|
|
bl nandc_xfer_start
|
|
mov w0, w22
|
|
bl nandc_xfer_done
|
|
cbnz w22, .L1747
|
|
adrp x0, .LANCHOR27
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
bne .L1730
|
|
adrp x22, .LANCHOR7
|
|
lsr w19, w19, 2
|
|
mov w3, 1
|
|
mov w2, 0
|
|
ldr x5, [x22, #:lo12:.LANCHOR7]
|
|
mov w0, 0
|
|
.L1731:
|
|
cmp w2, w19
|
|
bcc .L1735
|
|
ldr w19, [x5]
|
|
cmp w3, 0
|
|
mov w1, 512
|
|
csel w0, w0, w1, eq
|
|
mov w1, 8192
|
|
movk w1, 0x2, lsl 16
|
|
and w1, w19, w1
|
|
cmp w1, 139264
|
|
bne .L1737
|
|
mov w1, w19
|
|
adrp x0, .LC109
|
|
add x0, x0, :lo12:.LC109
|
|
bl printf
|
|
ldr x0, [x22, #:lo12:.LANCHOR7]
|
|
orr w19, w19, 131072
|
|
str w19, [x0]
|
|
mov w0, -1
|
|
.L1737:
|
|
tbz x19, 13, .L1738
|
|
adrp x1, .LANCHOR164
|
|
ldrb w1, [x1, #:lo12:.LANCHOR164]
|
|
cbz w1, .L1738
|
|
mov w1, w19
|
|
adrp x0, .LC110
|
|
add x0, x0, :lo12:.LC110
|
|
bl printf
|
|
ldr x0, [x22, #:lo12:.LANCHOR7]
|
|
mov w1, 1
|
|
str w1, [x0, 16]
|
|
.L1766:
|
|
mov w0, -1
|
|
.L1729:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L1735:
|
|
uxtw x1, w2
|
|
add x1, x1, 84
|
|
ldr w1, [x5, x1, lsl 2]
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
ldr w4, [x29, 56]
|
|
ubfx x4, x4, 26, 1
|
|
and w1, w4, w1, lsr 10
|
|
and w3, w3, w1
|
|
ldr w1, [x29, 56]
|
|
tbnz x1, 2, .L1749
|
|
ldr w1, [x29, 56]
|
|
tbnz x1, 18, .L1749
|
|
ldr w4, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
ubfx x4, x4, 3, 7
|
|
ubfx x1, x1, 19, 7
|
|
cmp w4, w1
|
|
ldr w1, [x29, 56]
|
|
ble .L1733
|
|
ubfx x1, x1, 3, 7
|
|
.L1734:
|
|
cmp w0, w1
|
|
csel w0, w0, w1, cs
|
|
.L1732:
|
|
add w2, w2, 1
|
|
b .L1731
|
|
.L1733:
|
|
ubfx x1, x1, 19, 7
|
|
b .L1734
|
|
.L1749:
|
|
mov w0, -1
|
|
b .L1732
|
|
.L1730:
|
|
adrp x0, .LANCHOR49
|
|
lsr w4, w19, 1
|
|
mov w3, 64
|
|
mov w1, 1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
mov w2, 0
|
|
adrp x6, .LANCHOR52
|
|
cmp w0, 25
|
|
mov w0, 128
|
|
csel w3, w3, w0, cc
|
|
mov w0, 0
|
|
.L1740:
|
|
add w5, w3, w0
|
|
cmp w2, w4
|
|
bcc .L1741
|
|
adrp x22, .LANCHOR7
|
|
lsr w19, w19, 2
|
|
mov w3, 0
|
|
mov w0, 0
|
|
ldr x4, [x22, #:lo12:.LANCHOR7]
|
|
.L1742:
|
|
cmp w3, w19
|
|
bcc .L1746
|
|
str wzr, [x4, 16]
|
|
mov w1, 8192
|
|
movk w1, 0x2, lsl 16
|
|
ldr w19, [x4]
|
|
and w1, w19, w1
|
|
cmp w1, 139264
|
|
bne .L1738
|
|
mov w1, w19
|
|
adrp x0, .LC111
|
|
add x0, x0, :lo12:.LC111
|
|
bl printf
|
|
ldr x0, [x22, #:lo12:.LANCHOR7]
|
|
orr w19, w19, 131072
|
|
str w19, [x0]
|
|
b .L1766
|
|
.L1741:
|
|
ldr x7, [x6, #:lo12:.LANCHOR52]
|
|
and x0, x0, 4294967292
|
|
ldr w0, [x7, x0]
|
|
lsl w7, w2, 2
|
|
add w2, w2, 1
|
|
strb w0, [x21, x7]
|
|
lsr w7, w0, 8
|
|
strb w7, [x21, w1, uxtw]
|
|
add w7, w1, 1
|
|
lsr w8, w0, 16
|
|
lsr w0, w0, 24
|
|
strb w8, [x21, x7]
|
|
add w7, w1, 2
|
|
add w1, w1, 4
|
|
strb w0, [x21, x7]
|
|
mov w0, w5
|
|
b .L1740
|
|
.L1746:
|
|
uxtw x1, w3
|
|
add x1, x1, 8
|
|
ldr w1, [x4, x1, lsl 2]
|
|
str w1, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
tbnz x1, 2, .L1752
|
|
ldr w1, [x29, 56]
|
|
tbnz x1, 15, .L1752
|
|
ldr w2, [x29, 56]
|
|
ubfx x6, x2, 3, 5
|
|
ldr w2, [x29, 56]
|
|
ldr w1, [x29, 56]
|
|
ubfx x2, x2, 27, 1
|
|
ubfx x5, x1, 16, 5
|
|
ldr w1, [x29, 56]
|
|
orr w2, w6, w2, lsl 5
|
|
ubfx x1, x1, 29, 1
|
|
orr w1, w5, w1, lsl 5
|
|
cmp w2, w1
|
|
ldr w1, [x29, 56]
|
|
bls .L1744
|
|
ubfx x2, x1, 3, 5
|
|
ldr w1, [x29, 56]
|
|
ubfx x1, x1, 27, 1
|
|
.L1765:
|
|
orr w1, w2, w1, lsl 5
|
|
cmp w0, w1
|
|
csel w0, w0, w1, cs
|
|
.L1743:
|
|
add w3, w3, 1
|
|
b .L1742
|
|
.L1744:
|
|
ubfx x2, x1, 16, 5
|
|
ldr w1, [x29, 56]
|
|
ubfx x1, x1, 29, 1
|
|
b .L1765
|
|
.L1752:
|
|
mov w0, -1
|
|
b .L1743
|
|
.L1738:
|
|
cmn w0, #1
|
|
beq .L1729
|
|
ldr w1, [x21]
|
|
cmn w1, #1
|
|
bne .L1729
|
|
ldr w1, [x21, 4]
|
|
cmn w1, #1
|
|
bne .L1729
|
|
ldr w1, [x20]
|
|
cmn w1, #1
|
|
mov w1, 512
|
|
csel w0, w0, w1, ne
|
|
b .L1729
|
|
.L1747:
|
|
mov w0, 0
|
|
b .L1729
|
|
.size nandc_xfer, .-nandc_xfer
|
|
.section .text.flash_read_page,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_page
|
|
.type flash_read_page, %function
|
|
flash_read_page:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR7
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 24
|
|
stp x23, x24, [sp, 48]
|
|
ldr x20, [x0, #:lo12:.LANCHOR7]
|
|
adrp x0, .LANCHOR31
|
|
stp x25, x26, [sp, 64]
|
|
mov x24, x2
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov x25, x3
|
|
mov w23, w4
|
|
ubfx x22, x1, 24, 2
|
|
sub w0, w19, w0
|
|
mov w19, 1
|
|
adrp x26, .LANCHOR21
|
|
lsl w19, w19, w0
|
|
sub w19, w19, #1
|
|
and w19, w19, w1
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w21
|
|
bl nandc_cs
|
|
cbnz w22, .L1768
|
|
mov w0, w21
|
|
bl zftl_flash_enter_slc_mode
|
|
.L1769:
|
|
ldr x1, [x26, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x1, 7]
|
|
cmp w0, 1
|
|
bne .L1771
|
|
ldrb w0, [x1, 12]
|
|
cmp w0, 2
|
|
bne .L1771
|
|
sxtw x0, w21
|
|
mov w2, 38
|
|
add x0, x0, 8
|
|
add x0, x20, x0, lsl 8
|
|
str w2, [x0, 8]
|
|
.L1771:
|
|
ubfiz x0, x21, 8, 8
|
|
add x20, x20, x0
|
|
and w0, w19, 255
|
|
str wzr, [x20, 2056]
|
|
str wzr, [x20, 2052]
|
|
str wzr, [x20, 2052]
|
|
str w0, [x20, 2052]
|
|
lsr w0, w19, 8
|
|
str w0, [x20, 2052]
|
|
lsr w0, w19, 16
|
|
str w0, [x20, 2052]
|
|
adrp x0, .LANCHOR30
|
|
ldrb w0, [x0, #:lo12:.LANCHOR30]
|
|
cbz w0, .L1772
|
|
lsr w0, w19, 24
|
|
str w0, [x20, 2052]
|
|
.L1772:
|
|
mov w0, 48
|
|
str w0, [x20, 2056]
|
|
ldrb w0, [x1, 12]
|
|
cmp w0, 3
|
|
bne .L1773
|
|
cbz w22, .L1773
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L1773
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L1773
|
|
add w19, w19, w19, lsl 1
|
|
sub w0, w19, #1
|
|
add w0, w0, w22
|
|
.L1782:
|
|
bl nandc_set_seed
|
|
bl nandc_wait_flash_ready
|
|
mov w0, 5
|
|
str w0, [x20, 2056]
|
|
str wzr, [x20, 2052]
|
|
mov w0, 224
|
|
str wzr, [x20, 2052]
|
|
mov w2, w23
|
|
str w0, [x20, 2056]
|
|
mov x4, x25
|
|
mov x3, x24
|
|
mov w1, 0
|
|
mov w0, w21
|
|
bl nandc_xfer
|
|
mov w2, w0
|
|
bl nandc_de_cs.constprop.32
|
|
mov w0, w2
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L1768:
|
|
ldr x0, [x26, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L1770
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L1770
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L1770
|
|
sxtw x0, w21
|
|
add x0, x0, 8
|
|
add x0, x20, x0, lsl 8
|
|
str w22, [x0, 8]
|
|
b .L1769
|
|
.L1770:
|
|
mov w0, w21
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L1769
|
|
.L1773:
|
|
mov w0, w19
|
|
b .L1782
|
|
.size flash_read_page, .-flash_read_page
|
|
.section .text.micron_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global micron_read_retrial
|
|
.type micron_read_retrial, %function
|
|
micron_read_retrial:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
adrp x0, .LANCHOR49
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
mov w24, w1
|
|
stp x21, x22, [sp, 32]
|
|
mov x25, x2
|
|
ldrb w21, [x0, #:lo12:.LANCHOR49]
|
|
mov x26, x3
|
|
stp x27, x28, [sp, 80]
|
|
mov w23, 0
|
|
str w4, [x29, 124]
|
|
bl nandc_wait_flash_ready
|
|
adrp x0, .LANCHOR7
|
|
add w21, w21, w21, lsl 1
|
|
asr w21, w21, 2
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
adrp x0, .LANCHOR166
|
|
add x0, x0, :lo12:.LANCHOR166
|
|
str x0, [x29, 112]
|
|
ubfiz x0, x20, 8, 8
|
|
add x19, x19, x0
|
|
.L1784:
|
|
mov w0, w20
|
|
bl zftl_flash_enter_slc_mode
|
|
mov w0, w20
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR19
|
|
mov w22, 0
|
|
add x0, x0, :lo12:.LANCHOR19
|
|
mov w28, -1
|
|
str x0, [x29, 104]
|
|
.L1785:
|
|
ldr x0, [x29, 112]
|
|
ldrb w0, [x0]
|
|
cmp w22, w0
|
|
bcc .L1790
|
|
.L1789:
|
|
mov w0, 239
|
|
str w0, [x19, 2056]
|
|
mov w0, 137
|
|
str w0, [x19, 2052]
|
|
mov x0, 1
|
|
bl udelay
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
cmp w28, w21
|
|
str wzr, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
bcc .L1791
|
|
cmn w28, #1
|
|
mov w0, 256
|
|
csel w28, w28, w0, eq
|
|
.L1791:
|
|
cmn w28, #1
|
|
cset w27, eq
|
|
cmp w28, 256
|
|
cset w0, eq
|
|
orr w0, w27, w0
|
|
cbz w0, .L1792
|
|
mov w4, w28
|
|
mov w3, w22
|
|
mov w2, w24
|
|
mov w1, w20
|
|
adrp x0, .LC113
|
|
add x0, x0, :lo12:.LC113
|
|
bl printf
|
|
eor w0, w23, 1
|
|
tst w27, w0
|
|
beq .L1793
|
|
mov w1, 3
|
|
mov w0, w20
|
|
mov w23, 1
|
|
bl mt_auto_read_calibration_config
|
|
b .L1784
|
|
.L1790:
|
|
mov w0, 239
|
|
str w0, [x19, 2056]
|
|
mov w0, 137
|
|
str w0, [x19, 2052]
|
|
add w27, w22, 1
|
|
mov x0, 1
|
|
bl udelay
|
|
str w27, [x19, 2048]
|
|
str wzr, [x19, 2048]
|
|
mov x3, x26
|
|
ldr w4, [x29, 124]
|
|
mov x2, x25
|
|
str wzr, [x19, 2048]
|
|
mov w1, w24
|
|
str wzr, [x19, 2048]
|
|
mov w0, w20
|
|
bl flash_read_page
|
|
mov w6, w0
|
|
ldr x0, [x29, 104]
|
|
ldr w0, [x0]
|
|
tbz x0, 12, .L1786
|
|
mov w4, w6
|
|
str w6, [x29, 120]
|
|
mov w3, w28
|
|
mov w2, w24
|
|
mov w1, w22
|
|
adrp x0, .LC112
|
|
add x0, x0, :lo12:.LC112
|
|
bl printf
|
|
ldr w6, [x29, 120]
|
|
.L1786:
|
|
cmn w6, #1
|
|
beq .L1787
|
|
adrp x0, .LANCHOR163
|
|
cmn w28, #1
|
|
csel w28, w28, w6, ne
|
|
cmp w6, w21
|
|
ldr x25, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x26, [x0, #:lo12:.LANCHOR165]
|
|
bcc .L1796
|
|
.L1787:
|
|
mov w22, w27
|
|
b .L1785
|
|
.L1796:
|
|
mov w28, w6
|
|
b .L1789
|
|
.L1793:
|
|
cbz w23, .L1794
|
|
mov w0, w20
|
|
mov w1, 0
|
|
bl mt_auto_read_calibration_config
|
|
cmn w28, #1
|
|
mov w0, 256
|
|
csel w28, w28, w0, eq
|
|
.L1794:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w28
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L1792:
|
|
cbz w23, .L1794
|
|
mov w1, 0
|
|
mov w0, w20
|
|
mov w28, 256
|
|
bl mt_auto_read_calibration_config
|
|
b .L1794
|
|
.size micron_read_retrial, .-micron_read_retrial
|
|
.section .text.toshiba_3d_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_3d_read_retrial
|
|
.type toshiba_3d_read_retrial, %function
|
|
toshiba_3d_read_retrial:
|
|
stp x29, x30, [sp, -144]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR16
|
|
stp x23, x24, [sp, 48]
|
|
mov w24, w1
|
|
stp x25, x26, [sp, 64]
|
|
and w23, w0, 255
|
|
stp x27, x28, [sp, 80]
|
|
mov x26, x2
|
|
stp x19, x20, [sp, 16]
|
|
mov x27, x3
|
|
mov w28, w4
|
|
bl nandc_wait_flash_ready
|
|
adrp x0, .LANCHOR7
|
|
mov w1, 46
|
|
mov w2, 56
|
|
ubfx x19, x24, 24, 2
|
|
ldr x25, [x0, #:lo12:.LANCHOR7]
|
|
and x0, x23, 255
|
|
add x21, x0, 8
|
|
str x0, [x29, 128]
|
|
ldrb w0, [x22, #:lo12:.LANCHOR16]
|
|
add x21, x25, x21, lsl 8
|
|
cmp w0, 36
|
|
mov w0, 26
|
|
csel w1, w2, w1, ne
|
|
str w1, [x29, 120]
|
|
mov w1, 10
|
|
csel w0, w1, w0, ne
|
|
str w0, [x29, 136]
|
|
cbnz w19, .L1814
|
|
add x0, x22, :lo12:.LANCHOR16
|
|
str x0, [x29, 120]
|
|
sxtw x0, w23
|
|
mov w19, -1
|
|
add x0, x0, 8
|
|
mov w20, 1
|
|
add x0, x25, x0, lsl 8
|
|
str x0, [x29, 112]
|
|
.L1821:
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0]
|
|
cmp w0, 36
|
|
bne .L1815
|
|
mov w1, w20
|
|
mov x0, x21
|
|
mov w2, 0
|
|
bl toshiba_tlc_set_rr_para
|
|
ldr x1, [x29, 112]
|
|
mov w0, 93
|
|
str w0, [x1, 8]
|
|
.L1816:
|
|
mov w4, w28
|
|
mov x3, x27
|
|
mov x2, x26
|
|
mov w1, w24
|
|
mov w0, w23
|
|
bl flash_read_page
|
|
mov w4, w0
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 4, .L1817
|
|
mov w3, w4
|
|
str w4, [x29, 108]
|
|
mov w2, w24
|
|
mov w1, w20
|
|
adrp x0, .LC114
|
|
add x0, x0, :lo12:.LC114
|
|
bl printf
|
|
ldr w4, [x29, 108]
|
|
.L1817:
|
|
cmn w4, #1
|
|
beq .L1818
|
|
adrp x0, .LANCHOR163
|
|
cmn w19, #1
|
|
csel w19, w19, w4, ne
|
|
ldr x26, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x27, [x0, #:lo12:.LANCHOR165]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w4, w0, lsr 2
|
|
bcc .L1836
|
|
.L1818:
|
|
ldr w0, [x29, 136]
|
|
add w20, w20, 1
|
|
cmp w0, w20
|
|
bne .L1821
|
|
.L1820:
|
|
ldrb w0, [x22, #:lo12:.LANCHOR16]
|
|
cmp w0, 36
|
|
bne .L1822
|
|
mov w2, 0
|
|
.L1859:
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl toshiba_tlc_set_rr_para
|
|
b .L1823
|
|
.L1815:
|
|
mov w1, w20
|
|
mov x0, x21
|
|
bl toshiba_3d_set_slc_rr_para
|
|
b .L1816
|
|
.L1836:
|
|
mov w19, w4
|
|
b .L1820
|
|
.L1822:
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl toshiba_3d_set_slc_rr_para
|
|
.L1823:
|
|
ldrb w0, [x22, #:lo12:.LANCHOR16]
|
|
cmp w0, 36
|
|
bne .L1832
|
|
ldr x0, [x29, 128]
|
|
add x25, x25, x0, lsl 8
|
|
mov w0, 85
|
|
str w0, [x25, 2056]
|
|
mov w0, 255
|
|
str wzr, [x25, 2052]
|
|
str wzr, [x25, 2048]
|
|
str w0, [x25, 2056]
|
|
.L1832:
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w19, w0, lsr 2
|
|
bcc .L1833
|
|
cmn w19, #1
|
|
mov w0, 256
|
|
csel w19, w19, w0, eq
|
|
.L1833:
|
|
cmp w19, 256
|
|
ccmn w19, #1, 4, ne
|
|
bne .L1834
|
|
adrp x0, .LC116
|
|
mov w4, w19
|
|
mov w3, w20
|
|
mov w2, w24
|
|
mov w1, w23
|
|
add x0, x0, :lo12:.LC116
|
|
bl printf
|
|
.L1834:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 144
|
|
ret
|
|
.L1814:
|
|
add x0, x22, :lo12:.LANCHOR16
|
|
str x0, [x29, 112]
|
|
sxtw x0, w23
|
|
mov w19, -1
|
|
add x0, x0, 8
|
|
mov w20, 1
|
|
add x0, x25, x0, lsl 8
|
|
str x0, [x29, 136]
|
|
.L1830:
|
|
ldr x0, [x29, 112]
|
|
ldrb w0, [x0]
|
|
cmp w0, 36
|
|
bne .L1824
|
|
mov x0, x21
|
|
mov w2, 1
|
|
mov w1, w20
|
|
bl toshiba_tlc_set_rr_para
|
|
mov w0, 93
|
|
.L1858:
|
|
ldr x1, [x29, 136]
|
|
mov w4, w28
|
|
mov x3, x27
|
|
mov x2, x26
|
|
str w0, [x1, 8]
|
|
mov w1, w24
|
|
mov w0, w23
|
|
bl flash_read_page
|
|
mov w4, w0
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 4, .L1826
|
|
mov w3, w4
|
|
str w4, [x29, 108]
|
|
mov w2, w24
|
|
mov w1, w20
|
|
adrp x0, .LC115
|
|
add x0, x0, :lo12:.LC115
|
|
bl printf
|
|
ldr w4, [x29, 108]
|
|
.L1826:
|
|
cmn w4, #1
|
|
beq .L1827
|
|
adrp x0, .LANCHOR163
|
|
cmn w19, #1
|
|
csel w19, w19, w4, ne
|
|
ldr x26, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x27, [x0, #:lo12:.LANCHOR165]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w4, w0, lsr 2
|
|
bcc .L1837
|
|
.L1827:
|
|
ldr w0, [x29, 120]
|
|
add w20, w20, 1
|
|
cmp w0, w20
|
|
bne .L1830
|
|
.L1829:
|
|
ldrb w0, [x22, #:lo12:.LANCHOR16]
|
|
cmp w0, 36
|
|
bne .L1831
|
|
mov w2, 1
|
|
b .L1859
|
|
.L1824:
|
|
mov x0, x21
|
|
mov w1, w20
|
|
bl toshiba_3d_set_tlc_rr_para
|
|
mov w0, 38
|
|
b .L1858
|
|
.L1837:
|
|
mov w19, w4
|
|
b .L1829
|
|
.L1831:
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl toshiba_3d_set_tlc_rr_para
|
|
b .L1823
|
|
.size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
|
|
.section .text.toshiba_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global toshiba_read_retrial
|
|
.type toshiba_read_retrial, %function
|
|
toshiba_read_retrial:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
stp x25, x26, [sp, 64]
|
|
mov w25, w1
|
|
mov x26, x2
|
|
str w4, [x29, 116]
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 255
|
|
stp x27, x28, [sp, 80]
|
|
mov x27, x3
|
|
stp x23, x24, [sp, 48]
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w19
|
|
bl zftl_flash_enter_slc_mode
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR7
|
|
adrp x1, .LANCHOR16
|
|
str x1, [x29, 120]
|
|
ldr x22, [x0, #:lo12:.LANCHOR7]
|
|
and x0, x19, 255
|
|
add x21, x0, 8
|
|
str x0, [x29, 104]
|
|
ldrb w0, [x1, #:lo12:.LANCHOR16]
|
|
add x21, x22, x21, lsl 8
|
|
sub w0, w0, #67
|
|
and w0, w0, 255
|
|
cmp w0, 1
|
|
bls .L1878
|
|
adrp x0, .LANCHOR26
|
|
ldrb w0, [x0, #:lo12:.LANCHOR26]
|
|
cbz w0, .L1879
|
|
mov w23, 1
|
|
mov w0, 1
|
|
bl nandc_set_if_mode
|
|
.L1862:
|
|
and x0, x19, 255
|
|
mov w1, 92
|
|
add x0, x22, x0, lsl 8
|
|
str w1, [x0, 2056]
|
|
mov w1, 197
|
|
str w1, [x0, 2056]
|
|
.L1861:
|
|
sxtw x0, w19
|
|
mov w20, 1
|
|
add x0, x0, 8
|
|
mov w24, -1
|
|
add x0, x22, x0, lsl 8
|
|
str x0, [x29, 96]
|
|
.L1863:
|
|
adrp x0, .LANCHOR166
|
|
ldrb w0, [x0, #:lo12:.LANCHOR166]
|
|
add w0, w0, 1
|
|
cmp w20, w0
|
|
bcc .L1872
|
|
mov w28, w24
|
|
.L1871:
|
|
ldr x0, [x29, 120]
|
|
mov w1, 0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR16]
|
|
sub w0, w0, #67
|
|
and w0, w0, 255
|
|
cmp w0, 1
|
|
mov x0, x21
|
|
bhi .L1873
|
|
bl sandisk_set_rr_para
|
|
.L1874:
|
|
sxtw x19, w19
|
|
mov w0, 255
|
|
add x19, x19, 8
|
|
add x22, x22, x19, lsl 8
|
|
str w0, [x22, 8]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w28, w0, lsr 2
|
|
bcc .L1875
|
|
cmn w28, #1
|
|
mov w0, 256
|
|
csel w28, w28, w0, eq
|
|
.L1875:
|
|
cmp w28, 256
|
|
ccmn w28, #1, 4, ne
|
|
bne .L1876
|
|
adrp x0, .LC116
|
|
mov w4, w28
|
|
mov w3, w20
|
|
mov w2, w25
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC116
|
|
bl printf
|
|
.L1876:
|
|
bl nandc_wait_flash_ready
|
|
cbz w23, .L1860
|
|
mov w0, 4
|
|
bl nandc_set_if_mode
|
|
.L1860:
|
|
mov w0, w28
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L1879:
|
|
mov w23, 0
|
|
b .L1862
|
|
.L1878:
|
|
mov w23, 0
|
|
b .L1861
|
|
.L1872:
|
|
ldr x0, [x29, 120]
|
|
mov w1, w20
|
|
ldrb w0, [x0, #:lo12:.LANCHOR16]
|
|
sub w0, w0, #67
|
|
and w0, w0, 255
|
|
cmp w0, 1
|
|
mov x0, x21
|
|
bhi .L1864
|
|
bl sandisk_set_rr_para
|
|
.L1865:
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR16]
|
|
cmp w0, 34
|
|
bne .L1866
|
|
adrp x0, .LANCHOR166
|
|
ldrb w0, [x0, #:lo12:.LANCHOR166]
|
|
sub w0, w0, #3
|
|
cmp w20, w0
|
|
bne .L1866
|
|
ldr x1, [x29, 96]
|
|
mov w0, 179
|
|
str w0, [x1, 8]
|
|
.L1866:
|
|
ldr x0, [x29, 104]
|
|
mov w1, 38
|
|
ldr w4, [x29, 116]
|
|
mov x3, x27
|
|
mov x2, x26
|
|
add x0, x22, x0, lsl 8
|
|
str w1, [x0, 2056]
|
|
mov w1, 93
|
|
str w1, [x0, 2056]
|
|
mov w1, w25
|
|
mov w0, w19
|
|
bl flash_read_page
|
|
mov w28, w0
|
|
cmn w0, #1
|
|
beq .L1869
|
|
cmn w24, #1
|
|
csel w24, w24, w0, ne
|
|
adrp x0, .LANCHOR163
|
|
ldr x26, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x27, [x0, #:lo12:.LANCHOR165]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w28, w0, lsr 2
|
|
bcc .L1871
|
|
.L1869:
|
|
add w20, w20, 1
|
|
b .L1863
|
|
.L1864:
|
|
bl toshiba_set_rr_para
|
|
b .L1865
|
|
.L1873:
|
|
bl toshiba_set_rr_para
|
|
b .L1874
|
|
.size toshiba_read_retrial, .-toshiba_read_retrial
|
|
.section .text.ymtc_3d_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global ymtc_3d_read_retrial
|
|
.type ymtc_3d_read_retrial, %function
|
|
ymtc_3d_read_retrial:
|
|
stp x29, x30, [sp, -112]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, -1
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
stp x23, x24, [sp, 48]
|
|
mov w23, w1
|
|
stp x25, x26, [sp, 64]
|
|
mov x24, x2
|
|
stp x27, x28, [sp, 80]
|
|
mov x25, x3
|
|
mov w26, w4
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w22
|
|
bl zftl_flash_enter_slc_mode
|
|
mov w0, w22
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x1, .LANCHOR7
|
|
ubfiz x21, x22, 8, 8
|
|
add x0, x21, 2048
|
|
adrp x27, .LANCHOR49
|
|
ldr x21, [x1, #:lo12:.LANCHOR7]
|
|
mov w20, 1
|
|
adrp x28, .LANCHOR163
|
|
adrp x5, .LANCHOR165
|
|
add x21, x21, x0
|
|
add x27, x27, :lo12:.LANCHOR49
|
|
tst x23, 50331648
|
|
bne .L1902
|
|
.L1897:
|
|
str x5, [x29, 104]
|
|
mov w1, w20
|
|
mov x0, x21
|
|
bl ymtc_3d_set_slc_rr_para
|
|
mov w4, w26
|
|
mov x3, x25
|
|
mov x2, x24
|
|
mov w1, w23
|
|
mov w0, w22
|
|
bl flash_read_page
|
|
ldr x5, [x29, 104]
|
|
cmn w0, #1
|
|
beq .L1894
|
|
ldrb w1, [x27]
|
|
cmn w19, #1
|
|
csel w19, w19, w0, ne
|
|
ldr x24, [x28, #:lo12:.LANCHOR163]
|
|
ldr x25, [x5, #:lo12:.LANCHOR165]
|
|
add w1, w1, w1, lsl 1
|
|
cmp w0, w1, lsr 2
|
|
bcc .L1905
|
|
.L1894:
|
|
add w20, w20, 1
|
|
cmp w20, 10
|
|
bne .L1897
|
|
.L1896:
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl ymtc_3d_set_slc_rr_para
|
|
.L1898:
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w19, w0, lsr 2
|
|
bcc .L1903
|
|
cmn w19, #1
|
|
mov w0, 256
|
|
csel w19, w19, w0, eq
|
|
.L1903:
|
|
cmp w19, 256
|
|
ccmn w19, #1, 4, ne
|
|
bne .L1904
|
|
adrp x0, .LC117
|
|
mov w4, w19
|
|
mov w3, w20
|
|
mov w2, w23
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC117
|
|
bl printf
|
|
.L1904:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L1905:
|
|
mov w19, w0
|
|
b .L1896
|
|
.L1902:
|
|
str x5, [x29, 104]
|
|
mov w1, w20
|
|
mov x0, x21
|
|
bl ymtc_3d_set_tlc_rr_para
|
|
mov w4, w26
|
|
mov x3, x25
|
|
mov x2, x24
|
|
mov w1, w23
|
|
mov w0, w22
|
|
bl flash_read_page
|
|
ldr x5, [x29, 104]
|
|
cmn w0, #1
|
|
beq .L1899
|
|
ldrb w1, [x27]
|
|
cmn w19, #1
|
|
csel w19, w19, w0, ne
|
|
ldr x24, [x28, #:lo12:.LANCHOR163]
|
|
ldr x25, [x5, #:lo12:.LANCHOR165]
|
|
add w1, w1, w1, lsl 1
|
|
cmp w0, w1, lsr 2
|
|
bcc .L1906
|
|
.L1899:
|
|
add w20, w20, 1
|
|
cmp w20, 51
|
|
bne .L1902
|
|
.L1901:
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl ymtc_3d_set_tlc_rr_para
|
|
b .L1898
|
|
.L1906:
|
|
mov w19, w0
|
|
b .L1901
|
|
.size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
|
|
.section .text.samsung_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global samsung_read_retrial
|
|
.type samsung_read_retrial, %function
|
|
samsung_read_retrial:
|
|
stp x29, x30, [sp, -112]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
mov x22, x2
|
|
stp x19, x20, [sp, 16]
|
|
str w4, [x29, 108]
|
|
mov w20, w1
|
|
stp x23, x24, [sp, 48]
|
|
mov x23, x3
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w21
|
|
bl zftl_flash_enter_slc_mode
|
|
mov w0, w21
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR7
|
|
tst x20, 50331648
|
|
and x5, x21, 255
|
|
ldr x0, [x0, #:lo12:.LANCHOR7]
|
|
bne .L1922
|
|
adrp x24, .LANCHOR167
|
|
adrp x27, .LC118
|
|
add x28, x0, x5, lsl 8
|
|
add x24, x24, :lo12:.LANCHOR167
|
|
add x27, x27, :lo12:.LC118
|
|
mov x26, 0
|
|
mov w25, -1
|
|
.L1927:
|
|
mov w0, 239
|
|
str w0, [x28, 2056]
|
|
mov w0, 141
|
|
str w0, [x28, 2052]
|
|
add x0, x24, x26
|
|
add w19, w26, 1
|
|
ldrsb w0, [x0, 1]
|
|
str w0, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
bl nandc_wait_flash_ready
|
|
ldr w4, [x29, 108]
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w20
|
|
mov w0, w21
|
|
bl flash_read_page
|
|
mov w4, w0
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 4, .L1923
|
|
mov w3, w4
|
|
str w4, [x29, 104]
|
|
mov w2, w20
|
|
mov w1, w19
|
|
mov x0, x27
|
|
bl printf
|
|
ldr w4, [x29, 104]
|
|
.L1923:
|
|
cmn w4, #1
|
|
beq .L1924
|
|
adrp x0, .LANCHOR163
|
|
cmn w25, #1
|
|
csel w25, w25, w4, ne
|
|
ldr x22, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x23, [x0, #:lo12:.LANCHOR165]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w4, w0, lsr 2
|
|
bcc .L1936
|
|
.L1924:
|
|
add x26, x26, 1
|
|
cmp x26, 25
|
|
bne .L1927
|
|
mov w19, 26
|
|
.L1926:
|
|
mov w0, 239
|
|
str w0, [x28, 2056]
|
|
mov w0, 141
|
|
str w0, [x28, 2052]
|
|
str wzr, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
str wzr, [x28, 2048]
|
|
.L1958:
|
|
bl nandc_wait_flash_ready
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w25, w0, lsr 2
|
|
bcc .L1934
|
|
cmn w25, #1
|
|
mov w0, 256
|
|
csel w25, w25, w0, eq
|
|
.L1934:
|
|
cmp w25, 256
|
|
ccmn w25, #1, 4, ne
|
|
bne .L1935
|
|
adrp x0, .LC120
|
|
mov w4, w25
|
|
mov w3, w19
|
|
mov w2, w20
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LC120
|
|
bl printf
|
|
.L1935:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w25
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L1936:
|
|
mov w25, w4
|
|
b .L1926
|
|
.L1922:
|
|
adrp x7, .LANCHOR168
|
|
add x7, x7, :lo12:.LANCHOR168
|
|
adrp x24, .LC119
|
|
add x28, x7, 4
|
|
add x27, x0, x5, lsl 8
|
|
add x24, x24, :lo12:.LC119
|
|
mov w25, -1
|
|
mov w19, 1
|
|
mov w26, 137
|
|
.L1933:
|
|
mov w0, 239
|
|
str w0, [x27, 2056]
|
|
str w26, [x27, 2052]
|
|
ldrb w0, [x28]
|
|
str w0, [x27, 2048]
|
|
ldrb w0, [x28, 1]
|
|
str w0, [x27, 2048]
|
|
ldrb w0, [x28, 2]
|
|
str w0, [x27, 2048]
|
|
ldrb w0, [x28, 3]
|
|
str w0, [x27, 2048]
|
|
bl nandc_wait_flash_ready
|
|
ldr w4, [x29, 108]
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w20
|
|
mov w0, w21
|
|
bl flash_read_page
|
|
mov w4, w0
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 4, .L1929
|
|
mov w3, w4
|
|
str w4, [x29, 104]
|
|
mov w2, w20
|
|
mov w1, w19
|
|
mov x0, x24
|
|
bl printf
|
|
ldr w4, [x29, 104]
|
|
.L1929:
|
|
cmn w4, #1
|
|
beq .L1930
|
|
adrp x0, .LANCHOR163
|
|
cmn w25, #1
|
|
csel w25, w25, w4, ne
|
|
ldr x22, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x23, [x0, #:lo12:.LANCHOR165]
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w4, w0, lsr 2
|
|
bcc .L1937
|
|
.L1930:
|
|
add w19, w19, 1
|
|
add x28, x28, 4
|
|
cmp w19, 26
|
|
bne .L1933
|
|
.L1932:
|
|
mov w0, 239
|
|
str w0, [x27, 2056]
|
|
mov w0, 137
|
|
str w0, [x27, 2052]
|
|
str wzr, [x27, 2048]
|
|
str wzr, [x27, 2048]
|
|
str wzr, [x27, 2048]
|
|
str wzr, [x27, 2048]
|
|
b .L1958
|
|
.L1937:
|
|
mov w25, w4
|
|
b .L1932
|
|
.size samsung_read_retrial, .-samsung_read_retrial
|
|
.section .text.hynix_read_retrial,"ax",@progbits
|
|
.align 2
|
|
.global hynix_read_retrial
|
|
.type hynix_read_retrial, %function
|
|
hynix_read_retrial:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
and x23, x0, 255
|
|
adrp x0, .LANCHOR6
|
|
stp x27, x28, [sp, 80]
|
|
stp x21, x22, [sp, 32]
|
|
mov w27, w4
|
|
ldr x28, [x0, #:lo12:.LANCHOR6]
|
|
mov w22, w1
|
|
stp x25, x26, [sp, 64]
|
|
mov x25, x2
|
|
add x28, x28, 112
|
|
stp x19, x20, [sp, 16]
|
|
add x0, x28, x23
|
|
mov x26, x3
|
|
mov x21, x23
|
|
mov w19, -1
|
|
ldrb w24, [x28, 2]
|
|
ldrb w20, [x0, 8]
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w23
|
|
bl zftl_flash_enter_slc_mode
|
|
mov w0, w23
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x6, .LANCHOR49
|
|
add x6, x6, :lo12:.LANCHOR49
|
|
mov w5, 0
|
|
adrp x7, .LANCHOR163
|
|
adrp x8, .LANCHOR165
|
|
.L1960:
|
|
cmp w5, w24
|
|
bcc .L1965
|
|
.L1964:
|
|
adrp x0, .LANCHOR49
|
|
add x23, x28, x23
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
strb w20, [x23, 8]
|
|
add w0, w0, w0, lsl 1
|
|
cmp w19, w0, lsr 2
|
|
bcc .L1966
|
|
cmn w19, #1
|
|
mov w0, 256
|
|
csel w19, w19, w0, eq
|
|
.L1966:
|
|
cmp w19, 256
|
|
ccmn w19, #1, 4, ne
|
|
bne .L1967
|
|
adrp x0, .LC121
|
|
mov w4, w19
|
|
mov w3, w5
|
|
mov w2, w22
|
|
mov w1, w5
|
|
add x0, x0, :lo12:.LC121
|
|
bl printf
|
|
.L1967:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L1965:
|
|
add w20, w20, 1
|
|
stp x6, x8, [x29, 96]
|
|
and w20, w20, 255
|
|
str x7, [x29, 112]
|
|
cmp w24, w20
|
|
str w5, [x29, 124]
|
|
csel w20, w20, wzr, hi
|
|
mov w0, w21
|
|
mov w1, w20
|
|
bl hynix_set_rr_para
|
|
mov w4, w27
|
|
mov x3, x26
|
|
mov x2, x25
|
|
mov w1, w22
|
|
mov w0, w21
|
|
bl flash_read_page
|
|
ldr w5, [x29, 124]
|
|
cmn w0, #1
|
|
ldp x6, x8, [x29, 96]
|
|
ldr x7, [x29, 112]
|
|
beq .L1962
|
|
ldrb w1, [x6]
|
|
cmn w19, #1
|
|
csel w19, w19, w0, ne
|
|
ldr x25, [x7, #:lo12:.LANCHOR163]
|
|
ldr x26, [x8, #:lo12:.LANCHOR165]
|
|
add w1, w1, w1, lsl 1
|
|
cmp w0, w1, lsr 2
|
|
bcc .L1968
|
|
.L1962:
|
|
add w5, w5, 1
|
|
b .L1960
|
|
.L1968:
|
|
mov w19, w0
|
|
b .L1964
|
|
.size hynix_read_retrial, .-hynix_read_retrial
|
|
.section .text.flash_ddr_tuning_read,"ax",@progbits
|
|
.align 2
|
|
.global flash_ddr_tuning_read
|
|
.type flash_ddr_tuning_read, %function
|
|
flash_ddr_tuning_read:
|
|
stp x29, x30, [sp, -144]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
stp x21, x22, [sp, 32]
|
|
mov w22, w1
|
|
stp x23, x24, [sp, 48]
|
|
mov x23, x2
|
|
stp x25, x26, [sp, 64]
|
|
mov x24, x3
|
|
stp x27, x28, [sp, 80]
|
|
adrp x25, .LANCHOR49
|
|
str w4, [x29, 136]
|
|
bl nandc_get_ddr_para
|
|
add x25, x25, :lo12:.LANCHOR49
|
|
str w0, [x29, 132]
|
|
adrp x0, .LANCHOR19
|
|
add x0, x0, :lo12:.LANCHOR19
|
|
mov w28, 0
|
|
str x0, [x29, 120]
|
|
mov w26, 0
|
|
adrp x0, .LC122
|
|
mov w27, 0
|
|
add x0, x0, :lo12:.LC122
|
|
mov w19, 1024
|
|
mov w21, -1
|
|
mov w7, 6
|
|
str wzr, [x29, 140]
|
|
str x0, [x29, 112]
|
|
.L1984:
|
|
mov w0, w7
|
|
str w7, [x29, 128]
|
|
bl nandc_set_ddr_para
|
|
ldr w4, [x29, 136]
|
|
mov x3, x24
|
|
mov x2, x23
|
|
mov w1, w22
|
|
mov w0, w20
|
|
bl flash_read_page
|
|
mov w4, w0
|
|
ldr x0, [x29, 120]
|
|
ldr w7, [x29, 128]
|
|
ldr w0, [x0]
|
|
tbz x0, 4, .L1979
|
|
ldr x0, [x29, 112]
|
|
mov w3, w4
|
|
mov w1, w7
|
|
str w4, [x29, 108]
|
|
str w7, [x29, 128]
|
|
mov w2, w22
|
|
bl printf
|
|
ldr w4, [x29, 108]
|
|
ldr w7, [x29, 128]
|
|
.L1979:
|
|
add w0, w19, 1
|
|
cmp w4, w0
|
|
bhi .L1980
|
|
adrp x0, .LANCHOR163
|
|
ldr x23, [x0, #:lo12:.LANCHOR163]
|
|
adrp x0, .LANCHOR165
|
|
ldr x24, [x0, #:lo12:.LANCHOR165]
|
|
ldrb w0, [x25]
|
|
cmp w4, w0, lsr 2
|
|
bcs .L1990
|
|
add w27, w27, 1
|
|
cmp w27, 7
|
|
bls .L1990
|
|
sub w28, w7, w27
|
|
mov w19, w4
|
|
mov w21, 0
|
|
.L1982:
|
|
ldr w0, [x29, 140]
|
|
cmp w27, w26
|
|
csel w28, w28, w0, cs
|
|
.L1983:
|
|
cbz w28, .L1985
|
|
adrp x0, .LANCHOR49
|
|
mov w1, 3
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
udiv w0, w0, w1
|
|
cmp w0, w19
|
|
bls .L1985
|
|
mov w1, w28
|
|
adrp x0, .LC123
|
|
add x0, x0, :lo12:.LC123
|
|
bl printf
|
|
mov w0, w28
|
|
.L2004:
|
|
bl nandc_set_ddr_para
|
|
cbz w21, .L1978
|
|
adrp x25, .LANCHOR48
|
|
ldrb w0, [x25, #:lo12:.LANCHOR48]
|
|
tbz x0, 0, .L1978
|
|
mov w2, w22
|
|
mov w1, w20
|
|
adrp x0, .LC124
|
|
add x0, x0, :lo12:.LC124
|
|
bl printf
|
|
mov w0, w20
|
|
bl flash_reset
|
|
mov w0, 1
|
|
bl flash_set_interface_mode
|
|
mov w0, 1
|
|
bl nandc_set_if_mode
|
|
adrp x0, .LANCHOR33
|
|
add x0, x0, :lo12:.LANCHOR33
|
|
mov w1, 2
|
|
strb w1, [x0, w20, sxtw]
|
|
mov w0, w20
|
|
bl zftl_flash_enter_slc_mode
|
|
ldr w4, [x29, 136]
|
|
mov x3, x24
|
|
mov x2, x23
|
|
mov w1, w22
|
|
mov w0, w20
|
|
bl flash_read_page
|
|
mov w19, w0
|
|
mov w3, w0
|
|
mov w2, w22
|
|
mov w1, w20
|
|
adrp x0, .LC125
|
|
add x0, x0, :lo12:.LC125
|
|
bl printf
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
cmp w19, w0
|
|
bhi .L1992
|
|
adrp x1, .LANCHOR169
|
|
ldr w0, [x1, #:lo12:.LANCHOR169]
|
|
add w0, w0, 1
|
|
str w0, [x1, #:lo12:.LANCHOR169]
|
|
cmp w0, 100
|
|
bls .L1988
|
|
adrp x0, .LANCHOR26
|
|
strb wzr, [x0, #:lo12:.LANCHOR26]
|
|
.L1978:
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 144
|
|
ret
|
|
.L1980:
|
|
cmp w27, w26
|
|
bls .L1991
|
|
sub w0, w28, w27
|
|
str w0, [x29, 140]
|
|
cmp w27, 7
|
|
bhi .L1983
|
|
mov w26, w27
|
|
.L1991:
|
|
mov w27, 0
|
|
b .L1981
|
|
.L1990:
|
|
mov w28, w7
|
|
mov w19, w4
|
|
mov w21, 0
|
|
.L1981:
|
|
add w7, w7, 2
|
|
cmp w7, 50
|
|
bne .L1984
|
|
b .L1982
|
|
.L1985:
|
|
ldrb w0, [x29, 132]
|
|
b .L2004
|
|
.L1992:
|
|
mov w19, w21
|
|
.L1988:
|
|
ldrb w0, [x25, #:lo12:.LANCHOR48]
|
|
bl flash_set_interface_mode
|
|
ldrb w0, [x25, #:lo12:.LANCHOR48]
|
|
bl nandc_set_if_mode
|
|
b .L1978
|
|
.size flash_ddr_tuning_read, .-flash_ddr_tuning_read
|
|
.section .text.flash_read_page_en,"ax",@progbits
|
|
.align 2
|
|
.global flash_read_page_en
|
|
.type flash_read_page_en, %function
|
|
flash_read_page_en:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
adrp x0, .LANCHOR23
|
|
stp x23, x24, [sp, 48]
|
|
stp x21, x22, [sp, 32]
|
|
mov w19, w1
|
|
str x25, [sp, 64]
|
|
mov x22, x2
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
mov x23, x3
|
|
mov w24, w4
|
|
mov x25, x0
|
|
cmp w1, w20
|
|
bhi .L2006
|
|
adrp x1, .LANCHOR170
|
|
adrp x0, .LC0
|
|
mov w2, 431
|
|
add x1, x1, :lo12:.LANCHOR170
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2006:
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w4, [x25, #:lo12:.LANCHOR23]
|
|
ldrb w21, [x0, w20, sxtw]
|
|
cmp w20, w4
|
|
bcc .L2007
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbnz x0, 6, .L2008
|
|
.L2032:
|
|
mov w0, -1
|
|
.L2005:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2008:
|
|
mov w3, w19
|
|
mov w2, w20
|
|
mov w1, w21
|
|
adrp x0, .LC126
|
|
add x0, x0, :lo12:.LC126
|
|
bl printf
|
|
b .L2032
|
|
.L2007:
|
|
tst x19, 50331648
|
|
bne .L2010
|
|
adrp x0, .LANCHOR0
|
|
adrp x1, .LANCHOR1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L2011
|
|
ldrb w0, [x1, #:lo12:.LANCHOR1]
|
|
cbz w0, .L2010
|
|
.L2011:
|
|
adrp x0, .LANCHOR2
|
|
ldrb w1, [x1, #:lo12:.LANCHOR1]
|
|
ldrh w2, [x0, #:lo12:.LANCHOR2]
|
|
udiv w0, w19, w2
|
|
mul w0, w0, w2
|
|
sub w19, w19, w0
|
|
cbz w1, .L2012
|
|
add w19, w0, w19, lsl 1
|
|
.L2010:
|
|
mov w4, w24
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w19
|
|
mov w0, w21
|
|
bl flash_read_page
|
|
cmn w0, #1
|
|
bne .L2005
|
|
adrp x20, .LANCHOR51
|
|
ldrb w25, [x20, #:lo12:.LANCHOR51]
|
|
cbnz w25, .L2013
|
|
.L2016:
|
|
adrp x0, .LANCHOR171
|
|
ldr x5, [x0, #:lo12:.LANCHOR171]
|
|
cbnz x5, .L2014
|
|
.L2015:
|
|
ldrb w4, [x20, #:lo12:.LANCHOR51]
|
|
mov w3, -1
|
|
mov w2, w19
|
|
mov w1, 0
|
|
adrp x0, .LC127
|
|
add x0, x0, :lo12:.LC127
|
|
bl printf
|
|
adrp x0, .LANCHOR26
|
|
ldrb w0, [x0, #:lo12:.LANCHOR26]
|
|
cbz w0, .L2032
|
|
mov w4, w24
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w19
|
|
mov w0, w21
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
b flash_ddr_tuning_read
|
|
.L2012:
|
|
adrp x1, .LANCHOR3
|
|
add x1, x1, :lo12:.LANCHOR3
|
|
ldrh w19, [x1, w19, uxtw 1]
|
|
add w19, w19, w0
|
|
b .L2010
|
|
.L2013:
|
|
strb wzr, [x20, #:lo12:.LANCHOR51]
|
|
mov w4, w24
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w19
|
|
mov w0, w21
|
|
bl flash_read_page
|
|
strb w25, [x20, #:lo12:.LANCHOR51]
|
|
cmn w0, #1
|
|
beq .L2016
|
|
b .L2005
|
|
.L2014:
|
|
mov w4, w24
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w1, w19
|
|
mov w0, w21
|
|
blr x5
|
|
cmn w0, #1
|
|
beq .L2015
|
|
b .L2005
|
|
.size flash_read_page_en, .-flash_read_page_en
|
|
.section .text.flash_get_last_written_page,"ax",@progbits
|
|
.align 2
|
|
.global flash_get_last_written_page
|
|
.type flash_get_last_written_page, %function
|
|
flash_get_last_written_page:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
and w23, w0, 255
|
|
adrp x0, .LANCHOR144
|
|
stp x19, x20, [sp, 16]
|
|
stp x25, x26, [sp, 64]
|
|
mov x24, x2
|
|
ldrh w19, [x0, #:lo12:.LANCHOR144]
|
|
adrp x0, .LANCHOR32+26
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w1, 65535
|
|
ldrh w26, [x0, #:lo12:.LANCHOR32+26]
|
|
sub w19, w19, #1
|
|
sxth w19, w19
|
|
stp x27, x28, [sp, 80]
|
|
mov x22, x3
|
|
mov w25, w4
|
|
mov w0, w23
|
|
mul w26, w26, w21
|
|
add w1, w19, w26
|
|
bl flash_read_page_en
|
|
cmp w0, 512
|
|
bne .L2034
|
|
mov w27, 0
|
|
mov w28, 2
|
|
.L2035:
|
|
cmp w27, w19
|
|
ble .L2038
|
|
.L2034:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2039
|
|
ldr w3, [x22]
|
|
adrp x0, .LC128
|
|
mov w2, w19
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC128
|
|
bl printf
|
|
.L2039:
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2038:
|
|
add w20, w27, w19
|
|
mov w4, w25
|
|
mov x3, x22
|
|
mov x2, x24
|
|
mov w0, w23
|
|
sdiv w20, w20, w28
|
|
add w1, w26, w20, sxth
|
|
bl flash_read_page_en
|
|
cmp w0, 512
|
|
bne .L2036
|
|
sub w19, w20, #1
|
|
sxth w19, w19
|
|
b .L2035
|
|
.L2036:
|
|
add w20, w20, 1
|
|
sxth w27, w20
|
|
b .L2035
|
|
.size flash_get_last_written_page, .-flash_get_last_written_page
|
|
.section .text.flash_get_last_written_page_ext,"ax",@progbits
|
|
.align 2
|
|
.global flash_get_last_written_page_ext
|
|
.type flash_get_last_written_page_ext, %function
|
|
flash_get_last_written_page_ext:
|
|
adrp x4, .LANCHOR31
|
|
mov w5, 24
|
|
and w0, w0, 65535
|
|
mov w6, 1
|
|
ldrb w4, [x4, #:lo12:.LANCHOR31]
|
|
sub w5, w5, w4
|
|
adrp x4, .LANCHOR74
|
|
ldrh w4, [x4, #:lo12:.LANCHOR74]
|
|
sub w5, w5, w4
|
|
mov w4, w3
|
|
mov x3, x2
|
|
mov x2, x1
|
|
lsl w6, w6, w5
|
|
sub w6, w6, #1
|
|
and w1, w6, w0
|
|
asr w0, w0, w5
|
|
b flash_get_last_written_page
|
|
.size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
|
|
.section .text.flash_ddr_para_scan,"ax",@progbits
|
|
.align 2
|
|
.global flash_ddr_para_scan
|
|
.type flash_ddr_para_scan, %function
|
|
flash_ddr_para_scan:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR48
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
ldrb w0, [x20, #:lo12:.LANCHOR48]
|
|
adrp x19, .LANCHOR26
|
|
stp x23, x24, [sp, 48]
|
|
mov w21, 1
|
|
mov w23, w1
|
|
str x25, [sp, 64]
|
|
strb w21, [x19, #:lo12:.LANCHOR26]
|
|
adrp x24, .LANCHOR173
|
|
bl flash_set_interface_mode
|
|
adrp x25, .LANCHOR172
|
|
ldrb w0, [x20, #:lo12:.LANCHOR48]
|
|
bl nandc_set_if_mode
|
|
ldr x3, [x25, #:lo12:.LANCHOR172]
|
|
mov w4, 4
|
|
ldr x2, [x24, #:lo12:.LANCHOR173]
|
|
mov w1, w23
|
|
mov w0, w22
|
|
bl flash_ddr_tuning_read
|
|
ldr x3, [x25, #:lo12:.LANCHOR172]
|
|
mov w4, 4
|
|
ldr x2, [x24, #:lo12:.LANCHOR173]
|
|
mov w1, w23
|
|
mov w0, w22
|
|
bl flash_read_page
|
|
cmn w0, #1
|
|
mov x0, x19
|
|
bne .L2046
|
|
ldrb w1, [x20, #:lo12:.LANCHOR48]
|
|
tbz x1, 0, .L2046
|
|
mov w0, 1
|
|
bl flash_set_interface_mode
|
|
mov w0, w21
|
|
bl nandc_set_if_mode
|
|
strb wzr, [x19, #:lo12:.LANCHOR26]
|
|
.L2047:
|
|
mov w0, 0
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2046:
|
|
mov w1, 1
|
|
strb w1, [x0, #:lo12:.LANCHOR26]
|
|
b .L2047
|
|
.size flash_ddr_para_scan, .-flash_ddr_para_scan
|
|
.section .text.flash_prog_page,"ax",@progbits
|
|
.align 2
|
|
.global flash_prog_page
|
|
.type flash_prog_page, %function
|
|
flash_prog_page:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR7
|
|
stp x25, x26, [sp, 64]
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, 24
|
|
ldr x26, [x0, #:lo12:.LANCHOR7]
|
|
adrp x0, .LANCHOR31
|
|
mov w22, w1
|
|
stp x23, x24, [sp, 48]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov x24, x2
|
|
mov x25, x3
|
|
and x19, x21, 255
|
|
sub w0, w20, w0
|
|
mov w20, 1
|
|
add x23, x19, 8
|
|
lsl w20, w20, w0
|
|
sub w20, w20, #1
|
|
and w20, w20, w1
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w21
|
|
bl hynix_reconfig_rr_para
|
|
mov w0, w21
|
|
bl nandc_cs
|
|
add x23, x26, x23, lsl 8
|
|
mov w0, w21
|
|
tst x22, 50331648
|
|
bne .L2053
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2054:
|
|
add x19, x26, x19, lsl 8
|
|
mov w0, 128
|
|
str w0, [x19, 2056]
|
|
and w0, w20, 255
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 16
|
|
str w0, [x19, 2052]
|
|
adrp x0, .LANCHOR30
|
|
ldrb w0, [x0, #:lo12:.LANCHOR30]
|
|
cbz w0, .L2055
|
|
lsr w0, w20, 24
|
|
str w0, [x19, 2052]
|
|
.L2055:
|
|
mov w0, w20
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x25
|
|
mov x3, x24
|
|
mov w1, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w21
|
|
bl nandc_xfer
|
|
mov w0, 16
|
|
str w0, [x19, 2056]
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x23
|
|
bl flash_read_status
|
|
mov w3, w0
|
|
bl nandc_de_cs.constprop.32
|
|
and w2, w3, 4
|
|
tbz x3, 2, .L2052
|
|
mov w1, w22
|
|
adrp x0, .LC129
|
|
add x0, x0, :lo12:.LC129
|
|
bl printf
|
|
mov w2, -1
|
|
.L2052:
|
|
mov w0, w2
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2053:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2054
|
|
.size flash_prog_page, .-flash_prog_page
|
|
.section .text.flash_test_blk,"ax",@progbits
|
|
.align 2
|
|
.global flash_test_blk
|
|
.type flash_test_blk, %function
|
|
flash_test_blk:
|
|
stp x29, x30, [sp, -64]!
|
|
mov w2, 32
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR163
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
ldr x0, [x22, #:lo12:.LANCHOR163]
|
|
adrp x21, .LANCHOR165
|
|
and w19, w1, 65535
|
|
str x23, [sp, 48]
|
|
mov w1, 165
|
|
bl ftl_memset
|
|
ldr x0, [x21, #:lo12:.LANCHOR165]
|
|
mov w2, 8
|
|
mov w1, 90
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR2
|
|
ldrh w0, [x0, #:lo12:.LANCHOR2]
|
|
mul w19, w0, w19
|
|
mov w0, w20
|
|
mov w1, w19
|
|
bl flash_erase_block
|
|
cmn w0, #1
|
|
bne .L2065
|
|
.L2067:
|
|
mov w21, -1
|
|
.L2066:
|
|
mov w1, w19
|
|
mov w0, w20
|
|
bl flash_erase_block
|
|
ldr x23, [sp, 48]
|
|
mov w0, w21
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L2065:
|
|
adrp x23, .LANCHOR32
|
|
add x23, x23, :lo12:.LANCHOR32
|
|
ldr x3, [x21, #:lo12:.LANCHOR165]
|
|
mov w1, w19
|
|
ldr x2, [x22, #:lo12:.LANCHOR163]
|
|
mov w0, w20
|
|
ldrb w4, [x23, 9]
|
|
bl flash_prog_page
|
|
cmn w0, #1
|
|
beq .L2067
|
|
ldrb w4, [x23, 9]
|
|
mov w1, w19
|
|
ldr x3, [x21, #:lo12:.LANCHOR165]
|
|
mov w0, w20
|
|
ldr x2, [x22, #:lo12:.LANCHOR163]
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2067
|
|
ldr x0, [x22, #:lo12:.LANCHOR163]
|
|
ldr w1, [x0]
|
|
mov w0, 42405
|
|
movk w0, 0xa5a5, lsl 16
|
|
cmp w1, w0
|
|
bne .L2067
|
|
ldr x0, [x21, #:lo12:.LANCHOR165]
|
|
ldr w1, [x0]
|
|
mov w0, 23130
|
|
movk w0, 0x5a5a, lsl 16
|
|
cmp w1, w0
|
|
csetm w21, ne
|
|
b .L2066
|
|
.size flash_test_blk, .-flash_test_blk
|
|
.section .text.id_block_prog_msb_ff_data,"ax",@progbits
|
|
.align 2
|
|
.global id_block_prog_msb_ff_data
|
|
.type id_block_prog_msb_ff_data, %function
|
|
id_block_prog_msb_ff_data:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w0, 255
|
|
adrp x0, .LANCHOR24
|
|
stp x19, x20, [sp, 16]
|
|
stp x23, x24, [sp, 48]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR24]
|
|
str x25, [sp, 64]
|
|
cbnz w0, .L2075
|
|
adrp x20, .LANCHOR32
|
|
add x20, x20, :lo12:.LANCHOR32
|
|
ldrb w0, [x20, 19]
|
|
sub w0, w0, #5
|
|
and w3, w0, 255
|
|
cmp w3, 63
|
|
bhi .L2075
|
|
and w19, w2, 65535
|
|
mov x2, 16391
|
|
movk x2, 0x4000, lsl 16
|
|
movk x2, 0x8000, lsl 48
|
|
lsr x0, x2, x3
|
|
tbz x0, 0, .L2075
|
|
adrp x21, .LANCHOR142
|
|
mov w23, w1
|
|
add x21, x21, :lo12:.LANCHOR142
|
|
mov w25, 65535
|
|
adrp x24, .LANCHOR163
|
|
.L2077:
|
|
ldrh w0, [x20, 10]
|
|
cmp w0, w19
|
|
bhi .L2078
|
|
.L2075:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldr x25, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2078:
|
|
ldrh w0, [x21, w19, sxtw 1]
|
|
cmp w0, w25
|
|
bne .L2075
|
|
ldr x0, [x24, #:lo12:.LANCHOR163]
|
|
mov w2, 16384
|
|
mov w1, 255
|
|
bl ftl_memset
|
|
ldr x3, [x24, #:lo12:.LANCHOR163]
|
|
add w1, w19, w23
|
|
ldrb w4, [x20, 9]
|
|
add w19, w19, 1
|
|
mov x2, x3
|
|
mov w0, w22
|
|
and w19, w19, 65535
|
|
bl flash_prog_page
|
|
b .L2077
|
|
.size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
|
|
.section .text.flash_start_one_pass_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_one_pass_page_prog
|
|
.type flash_start_one_pass_page_prog, %function
|
|
flash_start_one_pass_page_prog:
|
|
stp x29, x30, [sp, -32]!
|
|
and w8, w0, 255
|
|
and w7, w3, 255
|
|
adrp x0, .LANCHOR7
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w2, 255
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w7
|
|
bl nandc_cs
|
|
cbz w8, .L2081
|
|
sxtw x0, w7
|
|
add x0, x0, 8
|
|
add x0, x19, x0, lsl 8
|
|
str w8, [x0, 8]
|
|
.L2081:
|
|
ubfiz x0, x7, 8, 8
|
|
add x19, x19, x0
|
|
mov w0, 128
|
|
str w0, [x19, 2056]
|
|
and w0, w4, 255
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w4, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w4, 16
|
|
str w0, [x19, 2052]
|
|
adrp x0, .LANCHOR30
|
|
ldrb w0, [x0, #:lo12:.LANCHOR30]
|
|
cbz w0, .L2082
|
|
lsr w0, w4, 24
|
|
str w0, [x19, 2052]
|
|
.L2082:
|
|
mov w0, w4
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x6
|
|
mov x3, x5
|
|
mov w1, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w7
|
|
bl nandc_xfer
|
|
str w20, [x19, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
|
|
.section .text.flash_dual_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global flash_dual_page_prog
|
|
.type flash_dual_page_prog, %function
|
|
flash_dual_page_prog:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
stp x25, x26, [sp, 64]
|
|
mov x25, x2
|
|
adrp x2, .LANCHOR7
|
|
stp x21, x22, [sp, 32]
|
|
ubfiz x22, x20, 8, 8
|
|
stp x27, x28, [sp, 80]
|
|
add x0, x22, 2048
|
|
ldr x22, [x2, #:lo12:.LANCHOR7]
|
|
mov w19, 24
|
|
adrp x27, .LANCHOR19
|
|
add x22, x22, x0
|
|
adrp x0, .LANCHOR31
|
|
stp x23, x24, [sp, 48]
|
|
mov w21, w1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov x26, x3
|
|
mov x23, x4
|
|
mov x24, x5
|
|
sub w0, w19, w0
|
|
mov w19, 1
|
|
ubfx x28, x21, 24, 2
|
|
lsl w19, w19, w0
|
|
ldr w0, [x27, #:lo12:.LANCHOR19]
|
|
sub w19, w19, #1
|
|
and w19, w19, w1
|
|
tbz x0, 4, .L2091
|
|
adrp x0, .LC130
|
|
mov w3, w6
|
|
mov w2, w28
|
|
add x0, x0, :lo12:.LC130
|
|
bl printf
|
|
.L2091:
|
|
bl nandc_wait_flash_ready
|
|
mov w0, w20
|
|
bl nandc_cs
|
|
mov w0, w20
|
|
cbnz w28, .L2092
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2093:
|
|
mov x6, x26
|
|
mov x5, x25
|
|
mov w4, w19
|
|
mov w3, w20
|
|
mov w2, 16
|
|
mov w1, 0
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov x6, x24
|
|
mov x5, x23
|
|
add w4, w19, 1
|
|
mov w3, w20
|
|
mov w2, 16
|
|
mov w1, 0
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x22
|
|
bl flash_read_status
|
|
mov w3, w0
|
|
bl nandc_de_cs.constprop.32
|
|
and w2, w3, 4
|
|
tbz x3, 2, .L2090
|
|
ldr w0, [x27, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2095
|
|
adrp x0, .LC129
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC129
|
|
bl printf
|
|
.L2095:
|
|
mov w2, -1
|
|
.L2090:
|
|
mov w0, w2
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2092:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2093
|
|
.size flash_dual_page_prog, .-flash_dual_page_prog
|
|
.section .text.ymtc_flash_tlc_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global ymtc_flash_tlc_page_prog
|
|
.type ymtc_flash_tlc_page_prog, %function
|
|
ymtc_flash_tlc_page_prog:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w20, w0, 255
|
|
str x25, [sp, 64]
|
|
mov w25, w1
|
|
adrp x1, .LANCHOR7
|
|
stp x21, x22, [sp, 32]
|
|
ubfiz x22, x20, 8, 8
|
|
mov w19, 24
|
|
add x0, x22, 2048
|
|
ldr x22, [x1, #:lo12:.LANCHOR7]
|
|
mov w21, 1
|
|
stp x23, x24, [sp, 48]
|
|
add x22, x22, x0
|
|
adrp x0, .LANCHOR31
|
|
mov x23, x2
|
|
mov x24, x3
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
sub w19, w19, w0
|
|
bl nandc_wait_flash_ready
|
|
lsl w19, w21, w19
|
|
mov w0, w20
|
|
sub w19, w19, #1
|
|
bl nandc_cs
|
|
and w19, w19, w25
|
|
mov w0, w20
|
|
bl zftl_flash_exit_slc_mode
|
|
mov x6, x24
|
|
mov x5, x23
|
|
mov w4, w19
|
|
mov w3, w20
|
|
mov w1, w21
|
|
mov w2, 26
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov x6, x24
|
|
mov x5, x23
|
|
add w4, w19, w21
|
|
mov w3, w20
|
|
mov w1, w21
|
|
mov w2, 26
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov x6, x24
|
|
mov x5, x23
|
|
add w4, w19, 2
|
|
mov w3, w20
|
|
mov w1, w21
|
|
mov w2, 16
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov x0, x22
|
|
bl flash_read_status
|
|
mov w3, w0
|
|
bl nandc_de_cs.constprop.32
|
|
and w2, w3, 4
|
|
tbz x3, 2, .L2103
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2105
|
|
adrp x0, .LC131
|
|
mov w1, w25
|
|
add x0, x0, :lo12:.LC131
|
|
bl printf
|
|
.L2105:
|
|
mov w2, -1
|
|
.L2103:
|
|
mov w0, w2
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
|
|
.section .text.fw_flash_page_prog.constprop.29,"ax",@progbits
|
|
.align 2
|
|
.type fw_flash_page_prog.constprop.29, %function
|
|
fw_flash_page_prog.constprop.29:
|
|
stp x29, x30, [sp, -64]!
|
|
adrp x4, .LANCHOR32
|
|
add x4, x4, :lo12:.LANCHOR32
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x1
|
|
stp x21, x22, [sp, 32]
|
|
mov x21, x2
|
|
str x23, [sp, 48]
|
|
ldrb w19, [x4, 9]
|
|
udiv w19, w0, w19
|
|
adrp x0, .LANCHOR49
|
|
ldrb w23, [x0, #:lo12:.LANCHOR49]
|
|
adrp x0, .LANCHOR22
|
|
ldrb w0, [x0, #:lo12:.LANCHOR22]
|
|
bl nandc_bch_sel
|
|
ldrb w0, [x4, 7]
|
|
cmp w0, 9
|
|
bne .L2111
|
|
adrp x0, .LANCHOR24
|
|
ldrb w0, [x0, #:lo12:.LANCHOR24]
|
|
cbnz w0, .L2111
|
|
ldrb w0, [x4, 12]
|
|
cmp w0, 3
|
|
bne .L2112
|
|
mov x3, x21
|
|
mov x2, x20
|
|
mov w1, w19
|
|
mov w0, 0
|
|
bl ymtc_flash_tlc_page_prog
|
|
.L2115:
|
|
mov w4, w0
|
|
mov w0, w23
|
|
bl nandc_bch_sel
|
|
ldr x23, [sp, 48]
|
|
mov w0, w4
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L2112:
|
|
adrp x22, .LANCHOR163
|
|
mov w2, 16384
|
|
mov w1, 255
|
|
ldr x0, [x22, #:lo12:.LANCHOR163]
|
|
bl ftl_memset
|
|
ldr x5, [x22, #:lo12:.LANCHOR163]
|
|
mov w6, 4
|
|
mov x3, x21
|
|
mov x2, x20
|
|
mov x4, x5
|
|
mov w1, w19
|
|
mov w0, 0
|
|
bl flash_dual_page_prog
|
|
b .L2115
|
|
.L2111:
|
|
mov w4, 4
|
|
mov x3, x21
|
|
mov x2, x20
|
|
mov w1, w19
|
|
mov w0, 0
|
|
bl flash_prog_page
|
|
b .L2115
|
|
.size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29
|
|
.section .text.idb_write_data,"ax",@progbits
|
|
.align 2
|
|
.global idb_write_data
|
|
.type idb_write_data, %function
|
|
idb_write_data:
|
|
stp x29, x30, [sp, -272]!
|
|
cmp w1, 64
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, w1
|
|
stp x21, x22, [sp, 32]
|
|
mov w20, w3
|
|
stp x23, x24, [sp, 48]
|
|
adrp x22, .LANCHOR140
|
|
stp x25, x26, [sp, 64]
|
|
mov x24, x2
|
|
stp x27, x28, [sp, 80]
|
|
bne .L2117
|
|
ldr w0, [x2]
|
|
mov w1, 35899
|
|
movk w1, 0xfcdc, lsl 16
|
|
cmp w0, w1
|
|
mov w1, 19282
|
|
movk w1, 0x534e, lsl 16
|
|
ccmp w0, w1, 4, ne
|
|
beq .L2118
|
|
add w1, w1, 327680
|
|
cmp w0, w1
|
|
bne .L2117
|
|
.L2118:
|
|
adrp x21, .LANCHOR138
|
|
mov w1, 1
|
|
strb w1, [x22, #:lo12:.LANCHOR140]
|
|
ldr x0, [x21, #:lo12:.LANCHOR138]
|
|
cbnz x0, .L2119
|
|
mov w0, 262144
|
|
bl ftl_malloc
|
|
str x0, [x21, #:lo12:.LANCHOR138]
|
|
.L2119:
|
|
adrp x0, .LANCHOR174
|
|
mov w1, 64
|
|
str w1, [x0, #:lo12:.LANCHOR174]
|
|
.L2117:
|
|
ldrb w0, [x22, #:lo12:.LANCHOR140]
|
|
cbz w0, .L2185
|
|
adrp x0, .LANCHOR138
|
|
mov x23, x0
|
|
ldr x21, [x0, #:lo12:.LANCHOR138]
|
|
cbz x21, .L2185
|
|
add w0, w19, w20
|
|
str w0, [x29, 140]
|
|
cmp w0, 63
|
|
bls .L2121
|
|
cmp w19, 575
|
|
bhi .L2122
|
|
adrp x21, .LANCHOR141
|
|
ldr x0, [x21, #:lo12:.LANCHOR141]
|
|
cbz x0, .L2123
|
|
.L2126:
|
|
adrp x1, .LANCHOR139
|
|
mov w2, 1
|
|
ldr x0, [x23, #:lo12:.LANCHOR138]
|
|
cmp w19, 64
|
|
str w2, [x1, #:lo12:.LANCHOR139]
|
|
bhi .L2238
|
|
mov w4, 64
|
|
sub w4, w4, w19
|
|
sub w2, w20, w4
|
|
ubfiz x4, x4, 9, 25
|
|
lsl w2, w2, 9
|
|
add x1, x24, x4
|
|
.L2244:
|
|
bl ftl_memcpy
|
|
.L2127:
|
|
adrp x0, .LANCHOR174
|
|
ldr w0, [x0, #:lo12:.LANCHOR174]
|
|
cmp w19, w0
|
|
beq .L2181
|
|
strb wzr, [x22, #:lo12:.LANCHOR140]
|
|
b .L2181
|
|
.L2123:
|
|
mov w0, 262144
|
|
bl ftl_malloc
|
|
str x0, [x21, #:lo12:.LANCHOR141]
|
|
cbnz x0, .L2126
|
|
mov w0, -1
|
|
b .L2116
|
|
.L2238:
|
|
mov w2, 576
|
|
sub w2, w2, w19
|
|
cmp w20, w2
|
|
sub w3, w19, #64
|
|
csel w2, w20, w2, ls
|
|
ubfiz x3, x3, 9, 25
|
|
lsl w2, w2, 9
|
|
mov x1, x24
|
|
add x0, x0, x3
|
|
b .L2244
|
|
.L2121:
|
|
cmp w19, 575
|
|
bls .L2127
|
|
.L2122:
|
|
adrp x0, .LANCHOR139
|
|
ldr w0, [x0, #:lo12:.LANCHOR139]
|
|
cbz w0, .L2127
|
|
ldr w0, [x21]
|
|
mov w1, 35899
|
|
movk w1, 0xfcdc, lsl 16
|
|
cmp w0, w1
|
|
mov w1, 19282
|
|
movk w1, 0x534e, lsl 16
|
|
ccmp w0, w1, 4, ne
|
|
beq .L2128
|
|
add w1, w1, 327680
|
|
cmp w0, w1
|
|
bne .L2129
|
|
.L2128:
|
|
adrp x0, .LANCHOR0
|
|
mov x20, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR0]
|
|
str w1, [x29, 176]
|
|
adrp x1, .LANCHOR24
|
|
mov x24, x1
|
|
ldr w0, [x29, 176]
|
|
ldrb w2, [x1, #:lo12:.LANCHOR24]
|
|
str w2, [x29, 204]
|
|
cbz w0, .L2130
|
|
ldrh w0, [x29, 176]
|
|
str w0, [x29, 172]
|
|
uxtw x0, w2
|
|
cmp w0, 0
|
|
cset w0, eq
|
|
.L2241:
|
|
adrp x23, .LANCHOR32
|
|
add x23, x23, :lo12:.LANCHOR32
|
|
str w0, [x29, 200]
|
|
mov w0, 0
|
|
ldrb w19, [x23, 9]
|
|
ldrh w22, [x23, 26]
|
|
bl zftl_flash_exit_slc_mode
|
|
ldrb w0, [x24, #:lo12:.LANCHOR24]
|
|
add x1, x21, 258048
|
|
strb w0, [x20, #:lo12:.LANCHOR0]
|
|
mov w4, 16981
|
|
ldrh w20, [x23, 10]
|
|
add x1, x1, 2044
|
|
ldrb w0, [x23, 12]
|
|
mov w2, 65023
|
|
movk w4, 0x4f4f, lsl 16
|
|
mov w3, 4098
|
|
lsl w20, w20, 2
|
|
sdiv w20, w20, w0
|
|
mov w0, 512
|
|
cmp w20, 512
|
|
csel w20, w20, w0, lt
|
|
mov w0, 0
|
|
.L2137:
|
|
ldr w5, [x1]
|
|
cbnz w5, .L2133
|
|
cbnz w0, .L2134
|
|
str w4, [x1, 2048]
|
|
.L2135:
|
|
add w0, w0, 1
|
|
sub w2, w2, #1
|
|
cmp w0, w3
|
|
sub x1, x1, #4
|
|
csel w0, w0, wzr, ls
|
|
cmp w2, 4096
|
|
bne .L2137
|
|
.L2133:
|
|
ldr w1, [x21, w2, uxtw 2]
|
|
mov w3, w20
|
|
adrp x0, .LC132
|
|
add x0, x0, :lo12:.LC132
|
|
bl printf
|
|
str wzr, [x29, 180]
|
|
mul w0, w22, w19
|
|
str wzr, [x29, 192]
|
|
str w0, [x29, 128]
|
|
adrp x0, .LANCHOR51
|
|
add x0, x0, :lo12:.LANCHOR51
|
|
str x0, [x29, 184]
|
|
.L2176:
|
|
adrp x23, .LANCHOR141
|
|
mov w1, 0
|
|
mov w2, 512
|
|
ldr x0, [x23, #:lo12:.LANCHOR141]
|
|
bl ftl_memset
|
|
str x23, [x29, 160]
|
|
adrp x0, .LANCHOR6
|
|
ldr w1, [x29, 192]
|
|
ldr x0, [x0, #:lo12:.LANCHOR6]
|
|
add x0, x0, x1, uxtw
|
|
ldrb w19, [x0, 32]
|
|
cmp w19, 255
|
|
beq .L2138
|
|
ldr w0, [x29, 128]
|
|
mul w19, w19, w0
|
|
ldr w0, [x29, 200]
|
|
cbz w0, .L2139
|
|
and w0, w1, -3
|
|
adrp x24, .LANCHOR0
|
|
cmp w0, 1
|
|
adrp x22, .LANCHOR24
|
|
beq .L2140
|
|
ldr w0, [x29, 200]
|
|
cmp w0, 3
|
|
bne .L2141
|
|
.L2140:
|
|
ldrb w0, [x29, 172]
|
|
strb w0, [x24, #:lo12:.LANCHOR0]
|
|
strb w0, [x22, #:lo12:.LANCHOR24]
|
|
.L2139:
|
|
adrp x22, .LANCHOR32
|
|
add x27, x22, :lo12:.LANCHOR32
|
|
ldr x0, [x29, 184]
|
|
ldrb w24, [x27, 9]
|
|
ldrh w25, [x27, 26]
|
|
ldrb w0, [x0]
|
|
str w0, [x29, 136]
|
|
udiv w1, w19, w24
|
|
ldr x0, [x29, 184]
|
|
mul w25, w25, w24
|
|
strb wzr, [x0]
|
|
mov w0, 0
|
|
bl flash_erase_block
|
|
udiv w0, w19, w25
|
|
ldrb w1, [x27, 12]
|
|
msub w0, w0, w25, w19
|
|
str w0, [x29, 168]
|
|
sub w26, w19, w0
|
|
ldrh w0, [x27, 10]
|
|
cmp w19, w26
|
|
lsl w0, w0, 2
|
|
sdiv w0, w0, w1
|
|
str w0, [x29, 156]
|
|
bne .L2191
|
|
adrp x0, .LANCHOR27
|
|
ldrb w0, [x0, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
bne .L2191
|
|
ldr x0, [x29, 160]
|
|
mov w2, 1024
|
|
mov w1, 0
|
|
ldr x25, [x0, #:lo12:.LANCHOR141]
|
|
mov x0, x25
|
|
bl ftl_memset
|
|
mov w0, 18766
|
|
movk w0, 0x464e, lsl 16
|
|
str w0, [x25]
|
|
mov w0, 12
|
|
str w0, [x25, 4]
|
|
adrp x0, .LANCHOR24
|
|
strb wzr, [x25, 16]
|
|
str wzr, [x25, 12]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR24]
|
|
cbz w0, .L2143
|
|
ldrb w0, [x27, 29]
|
|
strb w0, [x25, 16]
|
|
.L2143:
|
|
add x1, x22, :lo12:.LANCHOR32
|
|
mov w0, 4
|
|
strb w0, [x25, 17]
|
|
cmp w24, 8
|
|
strb wzr, [x25, 20]
|
|
ldrh w0, [x1, 10]
|
|
ldrb w1, [x1, 12]
|
|
strh wzr, [x25, 22]
|
|
sdiv w0, w0, w1
|
|
mov w1, 16
|
|
strh w0, [x25, 18]
|
|
mov w0, 70
|
|
csel w0, w0, w1, hi
|
|
strb w0, [x25, 21]
|
|
mov w1, 12
|
|
add x0, x25, 12
|
|
bl js_hash
|
|
str w0, [x25, 8]
|
|
sub w0, w20, #4
|
|
str w0, [x29, 196]
|
|
.L2142:
|
|
adrp x27, .LANCHOR3
|
|
mov x23, x21
|
|
add x27, x27, :lo12:.LANCHOR3
|
|
adrp x0, .LANCHOR24
|
|
mov w28, 0
|
|
add x0, x0, :lo12:.LANCHOR24
|
|
str x0, [x29, 144]
|
|
.L2145:
|
|
ldr w0, [x29, 156]
|
|
cmp w0, w28
|
|
bhi .L2156
|
|
ldr x0, [x29, 160]
|
|
add x22, x22, :lo12:.LANCHOR32
|
|
mov w24, 4
|
|
mov w25, 0
|
|
mov w28, 0
|
|
ldr x23, [x0, #:lo12:.LANCHOR141]
|
|
ldrb w0, [x22, 9]
|
|
str w0, [x29, 144]
|
|
ldrh w0, [x22, 26]
|
|
ldr w1, [x29, 144]
|
|
mul w0, w0, w1
|
|
adrp x1, .LANCHOR51
|
|
strb wzr, [x1, #:lo12:.LANCHOR51]
|
|
udiv w1, w19, w0
|
|
msub w0, w1, w0, w19
|
|
str w0, [x29, 168]
|
|
sub w0, w19, w0
|
|
str w0, [x29, 152]
|
|
ldr w0, [x29, 168]
|
|
and w0, w0, 3
|
|
str w0, [x29, 160]
|
|
ldr w0, [x29, 196]
|
|
str w0, [x29, 156]
|
|
adrp x0, .LANCHOR3
|
|
add x0, x0, :lo12:.LANCHOR3
|
|
str x0, [x29, 112]
|
|
.L2157:
|
|
ldr w0, [x29, 156]
|
|
cmp w25, w0
|
|
bcc .L2171
|
|
ldr x0, [x29, 184]
|
|
ldrb w1, [x29, 136]
|
|
strb w1, [x0]
|
|
ldr w0, [x29, 200]
|
|
cbz w0, .L2172
|
|
mov w0, 0
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR0
|
|
strb wzr, [x0, #:lo12:.LANCHOR0]
|
|
adrp x0, .LANCHOR24
|
|
strb wzr, [x0, #:lo12:.LANCHOR24]
|
|
.L2172:
|
|
ldr w0, [x29, 196]
|
|
mov x2, 0
|
|
lsl w1, w0, 7
|
|
adrp x0, .LANCHOR141
|
|
ldr x0, [x0, #:lo12:.LANCHOR141]
|
|
.L2173:
|
|
mov w22, w2
|
|
cmp w2, w1
|
|
bcc .L2174
|
|
ldr w0, [x29, 180]
|
|
add w0, w0, 1
|
|
str w0, [x29, 180]
|
|
cmp w0, 5
|
|
bls .L2138
|
|
b .L2183
|
|
.L2130:
|
|
ldr w0, [x29, 204]
|
|
cmp w0, 3
|
|
beq .L2187
|
|
cmp w0, 2
|
|
mov w0, 2
|
|
csel w0, wzr, w0, ne
|
|
str w0, [x29, 172]
|
|
ldr w0, [x29, 204]
|
|
cmp w0, 2
|
|
mov w0, 3
|
|
csel w0, wzr, w0, ne
|
|
b .L2241
|
|
.L2187:
|
|
ldr w0, [x29, 204]
|
|
str w0, [x29, 172]
|
|
mov w0, 2
|
|
b .L2241
|
|
.L2134:
|
|
ldr w5, [x21, w0, uxtw 2]
|
|
str w5, [x1, 2048]
|
|
b .L2135
|
|
.L2141:
|
|
mov w0, 0
|
|
bl zftl_flash_exit_slc_mode
|
|
strb wzr, [x24, #:lo12:.LANCHOR0]
|
|
strb wzr, [x22, #:lo12:.LANCHOR24]
|
|
b .L2139
|
|
.L2191:
|
|
mov x25, 0
|
|
str w20, [x29, 196]
|
|
b .L2142
|
|
.L2156:
|
|
ldr w0, [x29, 168]
|
|
adrp x2, .LANCHOR24
|
|
add w4, w0, w28
|
|
ldrb w2, [x2, #:lo12:.LANCHOR24]
|
|
ubfx x4, x4, 2, 16
|
|
add w1, w4, 1
|
|
ldrh w0, [x27, w1, sxtw 1]
|
|
cbz w2, .L2147
|
|
adrp x0, .LANCHOR1
|
|
ldrb w7, [x0, #:lo12:.LANCHOR1]
|
|
lsl w0, w1, 1
|
|
cmp w7, 0
|
|
csel w0, w0, w1, ne
|
|
.L2147:
|
|
adrp x1, .LANCHOR27
|
|
ldrb w1, [x1, #:lo12:.LANCHOR27]
|
|
cmp w1, 9
|
|
bne .L2149
|
|
.L2242:
|
|
str w0, [x29, 208]
|
|
mov w0, 61424
|
|
str w0, [x29, 212]
|
|
ldrh w0, [x27, w4, sxtw 1]
|
|
cbnz w2, .L2151
|
|
mov w4, w0
|
|
.L2152:
|
|
mul w0, w24, w4
|
|
cbnz x25, .L2153
|
|
str w4, [x29, 152]
|
|
add x2, x29, 208
|
|
mov x1, x23
|
|
add w0, w0, w26
|
|
bl fw_flash_page_prog.constprop.29
|
|
ldr x0, [x29, 144]
|
|
ldr w4, [x29, 152]
|
|
ldrb w0, [x0]
|
|
cbnz w0, .L2154
|
|
udiv w1, w26, w24
|
|
add w2, w4, 1
|
|
bl id_block_prog_msb_ff_data
|
|
.L2154:
|
|
ldr w0, [x29, 196]
|
|
add x23, x23, 2048
|
|
add w0, w0, 16
|
|
cmp w28, w0
|
|
bcc .L2155
|
|
ldr w0, [x29, 196]
|
|
add w1, w0, 20
|
|
add x0, x21, 2048
|
|
cmp w28, w1
|
|
csel x23, x0, x23, cc
|
|
.L2155:
|
|
add w5, w28, 4
|
|
mov x25, 0
|
|
and w28, w5, 65535
|
|
b .L2145
|
|
.L2149:
|
|
sub w0, w0, #1
|
|
lsl w0, w0, 2
|
|
b .L2242
|
|
.L2151:
|
|
adrp x0, .LANCHOR1
|
|
ldrb w1, [x0, #:lo12:.LANCHOR1]
|
|
lsl w0, w4, 1
|
|
cmp w1, 0
|
|
csel w4, w0, w4, ne
|
|
b .L2152
|
|
.L2153:
|
|
add x2, x29, 208
|
|
mov x1, x25
|
|
add w0, w0, w26
|
|
bl fw_flash_page_prog.constprop.29
|
|
b .L2155
|
|
.L2171:
|
|
ldr w0, [x29, 160]
|
|
adrp x1, .LANCHOR24
|
|
sub w27, w24, w0
|
|
ldr w0, [x29, 168]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR24]
|
|
and w27, w27, 65535
|
|
add w22, w0, w25
|
|
ldr x0, [x29, 112]
|
|
udiv w22, w22, w24
|
|
and w22, w22, 65535
|
|
ldrh w0, [x0, w22, sxtw 1]
|
|
cbnz w1, .L2158
|
|
mov w22, w0
|
|
.L2159:
|
|
adrp x0, .LANCHOR22
|
|
ldr w1, [x29, 152]
|
|
ldrb w26, [x0, #:lo12:.LANCHOR22]
|
|
ldr w0, [x29, 160]
|
|
add w0, w0, w1
|
|
ldr w1, [x29, 144]
|
|
madd w22, w1, w22, w0
|
|
adrp x0, .LANCHOR32+9
|
|
ldrb w0, [x0, #:lo12:.LANCHOR32+9]
|
|
udiv w22, w22, w0
|
|
adrp x0, .LANCHOR49
|
|
ldrb w0, [x0, #:lo12:.LANCHOR49]
|
|
str w0, [x29, 132]
|
|
mov w0, w26
|
|
bl nandc_bch_sel
|
|
adrp x0, .LANCHOR26
|
|
add x0, x0, :lo12:.LANCHOR26
|
|
str x0, [x29, 120]
|
|
.L2160:
|
|
mov w4, w24
|
|
add x3, x29, 208
|
|
mov x2, x23
|
|
mov w1, w22
|
|
mov w0, 0
|
|
bl flash_read_page
|
|
mov w5, w0
|
|
cmn w0, #1
|
|
bne .L2161
|
|
ldr x0, [x29, 184]
|
|
ldrb w6, [x0]
|
|
cbnz w6, .L2162
|
|
.L2165:
|
|
adrp x0, .LANCHOR171
|
|
ldr x6, [x0, #:lo12:.LANCHOR171]
|
|
cbnz x6, .L2163
|
|
.L2164:
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0]
|
|
cbz w0, .L2161
|
|
mov w4, w24
|
|
add x3, x29, 208
|
|
mov x2, x23
|
|
mov w1, w22
|
|
mov w0, 0
|
|
bl flash_ddr_tuning_read
|
|
b .L2243
|
|
.L2158:
|
|
adrp x0, .LANCHOR1
|
|
ldrb w1, [x0, #:lo12:.LANCHOR1]
|
|
lsl w0, w22, 1
|
|
cmp w1, 0
|
|
csel w22, w0, w22, ne
|
|
b .L2159
|
|
.L2162:
|
|
ldr x0, [x29, 184]
|
|
mov w1, w22
|
|
stp w6, w5, [x29, 104]
|
|
mov w4, w24
|
|
add x3, x29, 208
|
|
mov x2, x23
|
|
strb wzr, [x0]
|
|
mov w0, 0
|
|
bl flash_read_page
|
|
cmn w0, #1
|
|
ldr x1, [x29, 184]
|
|
ldp w6, w5, [x29, 104]
|
|
strb w6, [x1]
|
|
beq .L2165
|
|
.L2243:
|
|
mov w5, w0
|
|
.L2161:
|
|
cmn w5, #1
|
|
cset w4, eq
|
|
cmp w26, 16
|
|
cset w0, ne
|
|
tst w4, w0
|
|
beq .L2167
|
|
mov w0, 16
|
|
mov w26, 16
|
|
bl nandc_bch_sel
|
|
b .L2160
|
|
.L2163:
|
|
str w5, [x29, 108]
|
|
mov w4, w24
|
|
add x3, x29, 208
|
|
mov x2, x23
|
|
mov w1, w22
|
|
mov w0, 0
|
|
blr x6
|
|
cmn w0, #1
|
|
ldr w5, [x29, 108]
|
|
beq .L2164
|
|
b .L2243
|
|
.L2167:
|
|
ldr w0, [x29, 132]
|
|
bl nandc_bch_sel
|
|
cmp w4, 0
|
|
ldr w0, [x29, 152]
|
|
csinv w28, w28, wzr, eq
|
|
cmp w25, 0
|
|
ccmp w19, w0, 0, eq
|
|
bne .L2169
|
|
cbnz w28, .L2169
|
|
ldr w1, [x23]
|
|
mov w0, 18766
|
|
movk w0, 0x464e, lsl 16
|
|
cmp w1, w0
|
|
bne .L2169
|
|
ldr w0, [x29, 156]
|
|
ldrb w24, [x23, 17]
|
|
add w0, w0, w27
|
|
str w0, [x29, 156]
|
|
.L2170:
|
|
add w25, w27, w25
|
|
and w25, w25, 65535
|
|
b .L2157
|
|
.L2169:
|
|
ubfiz x0, x27, 9, 16
|
|
str wzr, [x29, 160]
|
|
add x23, x23, x0
|
|
b .L2170
|
|
.L2174:
|
|
ldr w4, [x0, x2, lsl 2]
|
|
add x2, x2, 1
|
|
add x3, x21, x2, lsl 2
|
|
ldr w3, [x3, -4]
|
|
cmp w4, w3
|
|
beq .L2173
|
|
mov w2, 512
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
mov w1, w22
|
|
adrp x0, .LC133
|
|
add x0, x0, :lo12:.LC133
|
|
bl printf
|
|
mov w1, w19
|
|
mov w0, 0
|
|
bl flash_erase_block
|
|
.L2138:
|
|
ldr w0, [x29, 192]
|
|
add w0, w0, 1
|
|
str w0, [x29, 192]
|
|
cmp w0, 4
|
|
bne .L2176
|
|
.L2183:
|
|
mov w0, 0
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR0
|
|
ldrb w1, [x29, 176]
|
|
strb w1, [x0, #:lo12:.LANCHOR0]
|
|
ldr w0, [x29, 200]
|
|
cbz w0, .L2177
|
|
adrp x0, .LANCHOR24
|
|
ldrb w1, [x29, 204]
|
|
strb w1, [x0, #:lo12:.LANCHOR24]
|
|
.L2177:
|
|
mov w1, 2
|
|
adrp x0, .LANCHOR33
|
|
strb w1, [x0, #:lo12:.LANCHOR33]
|
|
mov w0, 0
|
|
bl zftl_flash_enter_slc_mode
|
|
ldr w0, [x29, 180]
|
|
cbnz w0, .L2129
|
|
adrp x0, .LC134
|
|
mov w1, 0
|
|
add x0, x0, :lo12:.LC134
|
|
bl printf
|
|
.L2129:
|
|
adrp x0, .LANCHOR139
|
|
adrp x19, .LANCHOR138
|
|
str wzr, [x0, #:lo12:.LANCHOR139]
|
|
adrp x0, .LANCHOR140
|
|
strb wzr, [x0, #:lo12:.LANCHOR140]
|
|
ldr x0, [x19, #:lo12:.LANCHOR138]
|
|
cbz x0, .L2179
|
|
bl free
|
|
str xzr, [x19, #:lo12:.LANCHOR138]
|
|
.L2179:
|
|
adrp x19, .LANCHOR141
|
|
ldr x0, [x19, #:lo12:.LANCHOR141]
|
|
cbz x0, .L2181
|
|
bl free
|
|
str xzr, [x19, #:lo12:.LANCHOR141]
|
|
.L2181:
|
|
adrp x0, .LANCHOR174
|
|
ldr w1, [x29, 140]
|
|
str w1, [x0, #:lo12:.LANCHOR174]
|
|
.L2185:
|
|
mov w0, 0
|
|
.L2116:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 272
|
|
ret
|
|
.size idb_write_data, .-idb_write_data
|
|
.section .text.flash_start_tlc_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_tlc_page_prog
|
|
.type flash_start_tlc_page_prog, %function
|
|
flash_start_tlc_page_prog:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x25, x26, [sp, 64]
|
|
and w25, w0, 255
|
|
adrp x0, .LANCHOR23
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w1, 255
|
|
stp x23, x24, [sp, 48]
|
|
and w26, w3, 255
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
and w22, w2, 255
|
|
mov w20, w4
|
|
mov x23, x5
|
|
mov x24, x6
|
|
cmp w1, w26
|
|
mov x19, x0
|
|
bhi .L2246
|
|
adrp x1, .LANCHOR175
|
|
adrp x0, .LC0
|
|
mov w2, 868
|
|
add x1, x1, :lo12:.LANCHOR175
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2246:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR23]
|
|
cmp w0, w26
|
|
bls .L2245
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w5, [x0, w26, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w5
|
|
bl nandc_cs
|
|
cbz w25, .L2248
|
|
sxtw x0, w5
|
|
add x0, x0, 8
|
|
add x0, x19, x0, lsl 8
|
|
str w25, [x0, 8]
|
|
.L2248:
|
|
ubfiz x0, x5, 8, 8
|
|
add x19, x19, x0
|
|
mov w0, 128
|
|
str w21, [x19, 2056]
|
|
str w0, [x19, 2056]
|
|
and w0, w20, 255
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 16
|
|
add w20, w20, w20, lsl 1
|
|
str w0, [x19, 2052]
|
|
sub w0, w20, #1
|
|
add w0, w0, w21
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x24
|
|
mov x3, x23
|
|
mov w1, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w5
|
|
bl nandc_xfer
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
str w22, [x19, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 80
|
|
b nandc_de_cs.constprop.32
|
|
.L2245:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
|
|
.section .text.queue_tlc_prog_cmd,"ax",@progbits
|
|
.align 2
|
|
.type queue_tlc_prog_cmd, %function
|
|
queue_tlc_prog_cmd:
|
|
stp x29, x30, [sp, -64]!
|
|
mov w2, 24
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
mov x21, x0
|
|
ldr x7, [x0]
|
|
adrp x0, .LANCHOR31
|
|
mov w22, 1
|
|
stp x19, x20, [sp, 16]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
str x23, [sp, 48]
|
|
mov w23, w1
|
|
sub w2, w2, w0
|
|
ldr w1, [x7, 40]
|
|
lsl w19, w22, w0
|
|
adrp x0, .LANCHOR36
|
|
lsl w20, w22, w2
|
|
sub w19, w19, #1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
sub w20, w20, #1
|
|
and w20, w20, w1
|
|
lsr w1, w1, w2
|
|
and w19, w19, w1
|
|
and w19, w19, 255
|
|
cbz w0, .L2254
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr x0, [x21]
|
|
mov w4, w20
|
|
mov w3, w19
|
|
mov w1, w22
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x21, 8]
|
|
add w4, w20, w22
|
|
mov w3, w19
|
|
mov w1, w22
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x21, 16]
|
|
add w4, w20, 2
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, w22
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
.L2255:
|
|
cbz w23, .L2253
|
|
ldr x1, [x21]
|
|
mov w0, 4
|
|
strb w0, [x1, 58]
|
|
mov w0, 1
|
|
strb w0, [x1, 59]
|
|
mov w0, -1
|
|
strb w0, [x1]
|
|
adrp x0, .LANCHOR59
|
|
add x0, x0, :lo12:.LANCHOR59
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldr x23, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
b buf_add_tail
|
|
.L2254:
|
|
ldr x5, [x7, 8]
|
|
mov w4, w20
|
|
ldr x6, [x7, 24]
|
|
mov w3, w19
|
|
ldrb w0, [x7, 60]
|
|
mov w1, w22
|
|
mov w2, 26
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldp x7, x0, [x21]
|
|
mov w4, w20
|
|
mov w3, w19
|
|
mov w2, 26
|
|
mov w1, 2
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x21, 16]
|
|
mov w4, w20
|
|
ldr x7, [x21]
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, 3
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
b .L2255
|
|
.L2253:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldr x23, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
|
|
.section .text.sblk_3d_tlc_dump_prog,"ax",@progbits
|
|
.align 2
|
|
.global sblk_3d_tlc_dump_prog
|
|
.type sblk_3d_tlc_dump_prog, %function
|
|
sblk_3d_tlc_dump_prog:
|
|
stp x29, x30, [sp, -48]!
|
|
mov w2, 24
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x0
|
|
ldr w1, [x0, 40]
|
|
adrp x0, .LANCHOR31
|
|
stp x21, x22, [sp, 32]
|
|
mov w22, 1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
sub w2, w2, w0
|
|
lsl w19, w22, w0
|
|
adrp x0, .LANCHOR36
|
|
lsl w21, w22, w2
|
|
sub w19, w19, #1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
sub w21, w21, #1
|
|
and w21, w21, w1
|
|
lsr w1, w1, w2
|
|
and w19, w19, w1
|
|
and w19, w19, 255
|
|
cbz w0, .L2259
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr x5, [x20, 8]
|
|
mov w4, w21
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w1, w22
|
|
mov w2, 26
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x5, [x20, 8]
|
|
add w4, w21, w22
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w1, w22
|
|
mov w2, 26
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x5, [x20, 8]
|
|
add w4, w21, 2
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, w22
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
.L2260:
|
|
bl nandc_wait_flash_ready
|
|
ldr w0, [x20, 40]
|
|
mov w1, 64
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
b flash_wait_device_ready
|
|
.L2259:
|
|
ldr x5, [x20, 8]
|
|
mov w4, w21
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w1, w22
|
|
mov w2, 26
|
|
mov w0, 0
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x5, [x20, 8]
|
|
mov w4, w21
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w2, 26
|
|
mov w1, 2
|
|
mov w0, 0
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x5, [x20, 8]
|
|
mov w4, w21
|
|
ldr x6, [x20, 24]
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, 3
|
|
mov w0, 0
|
|
bl flash_start_tlc_page_prog
|
|
b .L2260
|
|
.size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
|
|
.section .text.flash_start_3d_mlc_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_3d_mlc_page_prog
|
|
.type flash_start_3d_mlc_page_prog, %function
|
|
flash_start_3d_mlc_page_prog:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR23
|
|
stp x19, x20, [sp, 16]
|
|
stp x23, x24, [sp, 48]
|
|
and w24, w1, 255
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
mov w20, w2
|
|
mov x22, x3
|
|
mov x23, x4
|
|
cmp w1, w24
|
|
mov x19, x0
|
|
bhi .L2263
|
|
adrp x1, .LANCHOR176
|
|
adrp x0, .LC0
|
|
mov w2, 903
|
|
add x1, x1, :lo12:.LANCHOR176
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2263:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR23]
|
|
cmp w0, w24
|
|
bls .L2262
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w5, [x0, w24, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x19, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w5
|
|
bl nandc_cs
|
|
ubfiz x0, x5, 8, 8
|
|
add x19, x19, x0
|
|
mov w0, 128
|
|
str w0, [x19, 2056]
|
|
and w0, w20, 255
|
|
str wzr, [x19, 2052]
|
|
str wzr, [x19, 2052]
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 8
|
|
str w0, [x19, 2052]
|
|
lsr w0, w20, 16
|
|
str w0, [x19, 2052]
|
|
mov w0, w20
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x23
|
|
mov x3, x22
|
|
mov w1, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w5
|
|
bl nandc_xfer
|
|
str w21, [x19, 2056]
|
|
.L2262:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
|
|
.section .text.sblk_mlc_dump_prog,"ax",@progbits
|
|
.align 2
|
|
.global sblk_mlc_dump_prog
|
|
.type sblk_mlc_dump_prog, %function
|
|
sblk_mlc_dump_prog:
|
|
stp x29, x30, [sp, -48]!
|
|
mov w2, 24
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x0
|
|
ldr w1, [x0, 40]
|
|
adrp x0, .LANCHOR31
|
|
str x21, [sp, 32]
|
|
ldrb w19, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 1
|
|
sub w2, w2, w19
|
|
lsl w19, w0, w19
|
|
sub w19, w19, #1
|
|
lsl w21, w0, w2
|
|
sub w21, w21, #1
|
|
and w21, w21, w1
|
|
lsr w1, w1, w2
|
|
and w19, w19, w1
|
|
and w19, w19, 255
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2267
|
|
ldr w2, [x20, 40]
|
|
adrp x0, .LC135
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC135
|
|
add w3, w2, 1
|
|
bl printf
|
|
.L2267:
|
|
ldr x3, [x20, 8]
|
|
mov w2, w21
|
|
ldr x4, [x20, 24]
|
|
mov w1, w19
|
|
mov w0, 16
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x3, [x20, 8]
|
|
add w2, w21, 1
|
|
ldr x4, [x20, 24]
|
|
mov w1, w19
|
|
mov w0, 16
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr w0, [x20, 40]
|
|
mov w1, 64
|
|
bl flash_wait_device_ready
|
|
mov w2, w0
|
|
bl nandc_de_cs.constprop.32
|
|
ldr x21, [sp, 32]
|
|
mov w0, w2
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
|
|
.section .text.flash_start_page_prog,"ax",@progbits
|
|
.align 2
|
|
.global flash_start_page_prog
|
|
.type flash_start_page_prog, %function
|
|
flash_start_page_prog:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
adrp x0, .LANCHOR31
|
|
stp x19, x20, [sp, 16]
|
|
stp x25, x26, [sp, 64]
|
|
mov w19, 24
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov w20, 1
|
|
str x27, [sp, 80]
|
|
adrp x27, .LANCHOR23
|
|
sub w25, w19, w0
|
|
stp x23, x24, [sp, 48]
|
|
lsl w20, w20, w0
|
|
sub w20, w20, #1
|
|
lsr w0, w1, w25
|
|
and w20, w20, w0
|
|
ldrb w0, [x27, #:lo12:.LANCHOR23]
|
|
and w20, w20, 255
|
|
mov w24, w1
|
|
mov x22, x2
|
|
mov x23, x3
|
|
cmp w0, w20
|
|
bhi .L2273
|
|
adrp x1, .LANCHOR177
|
|
adrp x0, .LC0
|
|
mov w2, 956
|
|
add x1, x1, :lo12:.LANCHOR177
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2273:
|
|
ldrb w0, [x27, #:lo12:.LANCHOR23]
|
|
cmp w0, w20
|
|
bls .L2272
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
mov w19, 1
|
|
lsl w19, w19, w25
|
|
sub w19, w19, #1
|
|
ldrb w26, [x0, w20, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
and w19, w19, w24
|
|
ldr x25, [x0, #:lo12:.LANCHOR7]
|
|
bl nandc_rdy_status
|
|
cbnz w0, .L2275
|
|
ldrb w0, [x27, #:lo12:.LANCHOR23]
|
|
cmp w0, 1
|
|
bne .L2276
|
|
bl nandc_wait_flash_ready
|
|
.L2275:
|
|
mov w0, w26
|
|
bl hynix_reconfig_rr_para
|
|
mov w0, w26
|
|
bl nandc_cs
|
|
tst x24, 50331648
|
|
bne .L2277
|
|
mov w0, w19
|
|
bl slc_phy_page_address_calc
|
|
mov w19, w0
|
|
adrp x0, .LANCHOR0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L2278
|
|
mov w0, w26
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2278:
|
|
ubfiz x20, x26, 8, 8
|
|
mov w0, 128
|
|
add x20, x25, x20
|
|
str w0, [x20, 2056]
|
|
and w0, w19, 255
|
|
str wzr, [x20, 2052]
|
|
str wzr, [x20, 2052]
|
|
str w0, [x20, 2052]
|
|
lsr w0, w19, 8
|
|
str w0, [x20, 2052]
|
|
lsr w0, w19, 16
|
|
str w0, [x20, 2052]
|
|
adrp x0, .LANCHOR30
|
|
ldrb w0, [x0, #:lo12:.LANCHOR30]
|
|
cbz w0, .L2279
|
|
lsr w0, w19, 24
|
|
str w0, [x20, 2052]
|
|
.L2279:
|
|
mov w0, w19
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x23
|
|
mov x3, x22
|
|
mov w1, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w26
|
|
bl nandc_xfer
|
|
ldr x27, [sp, 80]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
str w21, [x20, 2056]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 96
|
|
b nandc_de_cs.constprop.32
|
|
.L2276:
|
|
mov w2, 64
|
|
mov w1, w19
|
|
mov w0, w20
|
|
bl flash_wait_device_ready_raw
|
|
b .L2275
|
|
.L2277:
|
|
mov w0, w26
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2278
|
|
.L2272:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x27, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.size flash_start_page_prog, .-flash_start_page_prog
|
|
.section .text.queue_prog_cmd,"ax",@progbits
|
|
.align 2
|
|
.type queue_prog_cmd, %function
|
|
queue_prog_cmd:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
ldr w1, [x0, 40]
|
|
ldr x3, [x0, 24]
|
|
ldr x2, [x0, 8]
|
|
str x19, [sp, 16]
|
|
mov x19, x0
|
|
mov w0, 16
|
|
bl flash_start_page_prog
|
|
adrp x0, .LANCHOR59
|
|
ldr w3, [x19, 40]
|
|
ldrb w1, [x0, #:lo12:.LANCHOR59]
|
|
cmp w1, 255
|
|
beq .L2288
|
|
adrp x2, .LANCHOR31
|
|
mov w5, 24
|
|
adrp x6, .LANCHOR55
|
|
add x6, x6, :lo12:.LANCHOR55
|
|
ldrb w4, [x2, #:lo12:.LANCHOR31]
|
|
mov w2, 1
|
|
mov x8, x6
|
|
sub w5, w5, w4
|
|
lsl w2, w2, w4
|
|
sub w2, w2, #1
|
|
and w2, w2, 65535
|
|
asr w3, w3, w5
|
|
and w3, w3, w2
|
|
.L2290:
|
|
add x7, x6, x1, lsl 6
|
|
ldr w4, [x7, 40]
|
|
lsr w4, w4, w5
|
|
and w4, w2, w4
|
|
cmp w3, w4
|
|
bne .L2289
|
|
ldrb w4, [x7, 58]
|
|
cmp w4, 7
|
|
bne .L2289
|
|
mov w1, 3
|
|
strb w1, [x7, 58]
|
|
.L2288:
|
|
mov w1, 3
|
|
strb w1, [x19, 58]
|
|
mov w1, 1
|
|
strb w1, [x19, 59]
|
|
mov w1, -1
|
|
strb w1, [x19]
|
|
mov x1, x19
|
|
add x0, x0, :lo12:.LANCHOR59
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
b buf_add_tail
|
|
.L2289:
|
|
lsl x1, x1, 6
|
|
ldrb w1, [x8, x1]
|
|
cmp w1, 255
|
|
bne .L2290
|
|
b .L2288
|
|
.size queue_prog_cmd, .-queue_prog_cmd
|
|
.section .text.flash_complete_plane_page_read,"ax",@progbits
|
|
.align 2
|
|
.global flash_complete_plane_page_read
|
|
.type flash_complete_plane_page_read, %function
|
|
flash_complete_plane_page_read:
|
|
stp x29, x30, [sp, -64]!
|
|
mov w4, 24
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
mov w24, w0
|
|
adrp x0, .LANCHOR31
|
|
stp x21, x22, [sp, 32]
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, 1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov x20, x1
|
|
mov x21, x2
|
|
sub w22, w4, w0
|
|
lsl w19, w19, w0
|
|
sub w19, w19, #1
|
|
lsr w0, w24, w22
|
|
and w19, w19, w0
|
|
adrp x0, .LANCHOR23
|
|
and w19, w19, 255
|
|
mov x23, x0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
cmp w1, w19
|
|
bhi .L2297
|
|
adrp x1, .LANCHOR178
|
|
adrp x0, .LC0
|
|
mov w2, 1070
|
|
add x1, x1, :lo12:.LANCHOR178
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2297:
|
|
ldrb w0, [x23, #:lo12:.LANCHOR23]
|
|
cmp w0, w19
|
|
bls .L2308
|
|
adrp x2, .LANCHOR29
|
|
add x2, x2, :lo12:.LANCHOR29
|
|
adrp x0, .LANCHOR7
|
|
mov w4, 1
|
|
lsl w4, w4, w22
|
|
sub w4, w4, #1
|
|
ldrb w8, [x2, w19, sxtw]
|
|
and w4, w4, w24
|
|
ldr x7, [x0, #:lo12:.LANCHOR7]
|
|
ubfx x24, x24, 24, 2
|
|
mov w0, w8
|
|
bl nandc_cs
|
|
cbnz w24, .L2299
|
|
mov w0, w4
|
|
bl slc_phy_page_address_calc
|
|
mov w4, w0
|
|
.L2299:
|
|
adrp x0, .LANCHOR25+16
|
|
and x1, x8, 255
|
|
and w6, w4, 255
|
|
lsr w5, w4, 8
|
|
ldrb w0, [x0, #:lo12:.LANCHOR25+16]
|
|
lsr w3, w4, 16
|
|
adrp x2, .LANCHOR30
|
|
cmp w0, 1
|
|
adrp x0, .LANCHOR21
|
|
bne .L2300
|
|
add x1, x7, x1, lsl 8
|
|
mov w7, 6
|
|
.L2326:
|
|
str w7, [x1, 2056]
|
|
str wzr, [x1, 2052]
|
|
str wzr, [x1, 2052]
|
|
str w6, [x1, 2052]
|
|
str w5, [x1, 2052]
|
|
str w3, [x1, 2052]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR30]
|
|
cbz w2, .L2322
|
|
lsr w2, w4, 24
|
|
str w2, [x1, 2052]
|
|
.L2322:
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
mov w2, 224
|
|
str w2, [x1, 2056]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L2306
|
|
cbz w24, .L2306
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L2306
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L2306
|
|
add w4, w4, w4, lsl 1
|
|
sub w0, w24, #1
|
|
add w0, w4, w0
|
|
.L2323:
|
|
bl nandc_set_seed
|
|
adrp x0, .LANCHOR32+9
|
|
mov x4, x21
|
|
mov x3, x20
|
|
mov w1, 0
|
|
ldrb w2, [x0, #:lo12:.LANCHOR32+9]
|
|
mov w0, w8
|
|
bl nandc_xfer
|
|
mov w2, w0
|
|
bl nandc_de_cs.constprop.32
|
|
mov w0, w2
|
|
.L2296:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.L2300:
|
|
ldr x10, [x0, #:lo12:.LANCHOR21]
|
|
add x1, x7, x1, lsl 8
|
|
ldrb w10, [x10, 12]
|
|
cmp w10, 3
|
|
bne .L2303
|
|
mov w7, 5
|
|
b .L2326
|
|
.L2303:
|
|
str wzr, [x1, 2056]
|
|
str wzr, [x1, 2052]
|
|
str wzr, [x1, 2052]
|
|
str w6, [x1, 2052]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR30]
|
|
str w5, [x1, 2052]
|
|
str w3, [x1, 2052]
|
|
cbz w2, .L2305
|
|
lsr w2, w4, 24
|
|
str w2, [x1, 2052]
|
|
.L2305:
|
|
mov w2, 5
|
|
str w2, [x1, 2056]
|
|
str wzr, [x1, 2052]
|
|
str wzr, [x1, 2052]
|
|
b .L2322
|
|
.L2306:
|
|
mov w0, w4
|
|
b .L2323
|
|
.L2308:
|
|
mov w0, -1
|
|
b .L2296
|
|
.size flash_complete_plane_page_read, .-flash_complete_plane_page_read
|
|
.section .text.flash_complete_page_read,"ax",@progbits
|
|
.align 2
|
|
.global flash_complete_page_read
|
|
.type flash_complete_page_read, %function
|
|
flash_complete_page_read:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
mov w21, w0
|
|
adrp x0, .LANCHOR31
|
|
stp x19, x20, [sp, 16]
|
|
mov x22, x1
|
|
mov w1, 24
|
|
ldrb w20, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 1
|
|
stp x23, x24, [sp, 48]
|
|
mov x23, x2
|
|
sub w1, w1, w20
|
|
stp x25, x26, [sp, 64]
|
|
lsl w20, w0, w20
|
|
sub w20, w20, #1
|
|
lsl w19, w0, w1
|
|
adrp x0, .LANCHOR23
|
|
lsr w1, w21, w1
|
|
stp x27, x28, [sp, 80]
|
|
and w20, w20, w1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR23]
|
|
sub w19, w19, #1
|
|
and w20, w20, 255
|
|
and w19, w19, w21
|
|
ubfx x24, x21, 24, 2
|
|
cmp w0, w20
|
|
bhi .L2328
|
|
adrp x1, .LANCHOR179
|
|
adrp x0, .LC0
|
|
mov w2, 1232
|
|
add x1, x1, :lo12:.LANCHOR179
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2328:
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w25, [x0, w20, sxtw]
|
|
adrp x0, .LANCHOR7
|
|
ldr x4, [x0, #:lo12:.LANCHOR7]
|
|
mov w0, w25
|
|
bl nandc_cs
|
|
cbnz w24, .L2329
|
|
mov w0, w19
|
|
bl slc_phy_page_address_calc
|
|
mov w19, w0
|
|
.L2329:
|
|
adrp x20, .LANCHOR32
|
|
add x0, x20, :lo12:.LANCHOR32
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L2330
|
|
ubfiz x0, x25, 8, 8
|
|
mov w1, 5
|
|
add x0, x4, x0
|
|
str w1, [x0, 2056]
|
|
and w1, w19, 255
|
|
str wzr, [x0, 2052]
|
|
str wzr, [x0, 2052]
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 8
|
|
str w1, [x0, 2052]
|
|
lsr w1, w19, 16
|
|
str w1, [x0, 2052]
|
|
mov w1, 224
|
|
str w1, [x0, 2056]
|
|
.L2330:
|
|
adrp x0, .LANCHOR21
|
|
ldr x0, [x0, #:lo12:.LANCHOR21]
|
|
ldrb w0, [x0, 12]
|
|
cmp w0, 3
|
|
bne .L2331
|
|
cbz w24, .L2331
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L2331
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbnz w0, .L2331
|
|
sub w0, w24, #1
|
|
add w1, w19, w19, lsl 1
|
|
add w0, w0, w1
|
|
.L2358:
|
|
add x28, x20, :lo12:.LANCHOR32
|
|
bl nandc_set_seed
|
|
mov x4, x23
|
|
mov x3, x22
|
|
mov w1, 0
|
|
mov w0, w25
|
|
ldrb w2, [x28, 9]
|
|
bl nandc_xfer
|
|
cmn w0, #1
|
|
bne .L2333
|
|
adrp x26, .LANCHOR51
|
|
ldrb w27, [x26, #:lo12:.LANCHOR51]
|
|
cbz w27, .L2334
|
|
ldrb w4, [x28, 9]
|
|
mov x3, x23
|
|
strb wzr, [x26, #:lo12:.LANCHOR51]
|
|
mov x2, x22
|
|
orr w1, w19, w24, lsl 24
|
|
mov w0, w25
|
|
bl flash_read_page
|
|
strb w27, [x26, #:lo12:.LANCHOR51]
|
|
cbnz w24, .L2335
|
|
.L2340:
|
|
adrp x1, .LANCHOR0
|
|
ldrb w1, [x1, #:lo12:.LANCHOR0]
|
|
cbz w1, .L2335
|
|
adrp x1, .LANCHOR49
|
|
ldrb w1, [x1, #:lo12:.LANCHOR49]
|
|
add w1, w1, w1, lsl 1
|
|
cmp w0, w1, lsr 2
|
|
blt .L2335
|
|
add x20, x20, :lo12:.LANCHOR32
|
|
ldrb w1, [x20, 19]
|
|
sub w1, w1, #4
|
|
and w1, w1, 255
|
|
cmp w1, 4
|
|
mov w1, 256
|
|
csel w0, w0, w1, hi
|
|
.L2327:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2331:
|
|
mov w0, w19
|
|
b .L2358
|
|
.L2335:
|
|
cmn w0, #1
|
|
bne .L2327
|
|
.L2341:
|
|
adrp x0, .LANCHOR171
|
|
ldr x5, [x0, #:lo12:.LANCHOR171]
|
|
cbnz x5, .L2337
|
|
.L2339:
|
|
adrp x0, .LANCHOR51
|
|
mov w3, -1
|
|
mov w2, w21
|
|
mov w1, 0
|
|
ldrb w4, [x0, #:lo12:.LANCHOR51]
|
|
adrp x0, .LC136
|
|
add x0, x0, :lo12:.LC136
|
|
bl printf
|
|
adrp x0, .LANCHOR26
|
|
ldrb w0, [x0, #:lo12:.LANCHOR26]
|
|
cbnz w0, .L2338
|
|
mov w0, -1
|
|
b .L2327
|
|
.L2337:
|
|
add x0, x20, :lo12:.LANCHOR32
|
|
mov x3, x23
|
|
mov x2, x22
|
|
orr w1, w19, w24, lsl 24
|
|
ldrb w4, [x0, 9]
|
|
mov w0, w25
|
|
blr x5
|
|
cmn w0, #1
|
|
beq .L2339
|
|
b .L2327
|
|
.L2338:
|
|
add x20, x20, :lo12:.LANCHOR32
|
|
orr w1, w19, w24, lsl 24
|
|
mov x3, x23
|
|
mov x2, x22
|
|
mov w0, w25
|
|
ldrb w4, [x20, 9]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
b flash_ddr_tuning_read
|
|
.L2334:
|
|
cbz w24, .L2340
|
|
b .L2341
|
|
.L2333:
|
|
cbnz w24, .L2327
|
|
b .L2340
|
|
.size flash_complete_page_read, .-flash_complete_page_read
|
|
.section .text.queue_wait_first_req_completed,"ax",@progbits
|
|
.align 2
|
|
.type queue_wait_first_req_completed, %function
|
|
queue_wait_first_req_completed:
|
|
stp x29, x30, [sp, -96]!
|
|
adrp x0, .LANCHOR59
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR59]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
cmp w0, 255
|
|
stp x25, x26, [sp, 64]
|
|
str x27, [sp, 80]
|
|
bne .L2360
|
|
.L2393:
|
|
mov w21, 0
|
|
b .L2359
|
|
.L2360:
|
|
adrp x19, .LANCHOR55
|
|
sxtw x20, w0
|
|
add x1, x19, :lo12:.LANCHOR55
|
|
add x1, x1, x20, lsl 6
|
|
ldrb w2, [x1, 58]
|
|
ldr w21, [x1, 40]
|
|
sub w3, w2, #1
|
|
cmp w3, 10
|
|
bhi .L2393
|
|
adrp x1, .L2363
|
|
add x1, x1, :lo12:.L2363
|
|
ldrh w1, [x1,w3,uxtw #1]
|
|
adr x3, .Lrtx2363
|
|
add x1, x3, w1, sxth #2
|
|
br x1
|
|
.Lrtx2363:
|
|
.section .rodata.queue_wait_first_req_completed,"a",@progbits
|
|
.align 0
|
|
.align 2
|
|
.L2363:
|
|
.2byte (.L2362 - .Lrtx2363) / 4
|
|
.2byte (.L2364 - .Lrtx2363) / 4
|
|
.2byte (.L2365 - .Lrtx2363) / 4
|
|
.2byte (.L2365 - .Lrtx2363) / 4
|
|
.2byte (.L2365 - .Lrtx2363) / 4
|
|
.2byte (.L2365 - .Lrtx2363) / 4
|
|
.2byte (.L2366 - .Lrtx2363) / 4
|
|
.2byte (.L2367 - .Lrtx2363) / 4
|
|
.2byte (.L2368 - .Lrtx2363) / 4
|
|
.2byte (.L2365 - .Lrtx2363) / 4
|
|
.2byte (.L2368 - .Lrtx2363) / 4
|
|
.section .text.queue_wait_first_req_completed
|
|
.L2362:
|
|
bl nandc_wait_flash_ready
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
add x0, x0, x20, lsl 6
|
|
ldp x1, x2, [x0, 8]
|
|
cbz x2, .L2369
|
|
ldrb w3, [x0, 56]
|
|
adrp x0, .LANCHOR131
|
|
ldrb w0, [x0, #:lo12:.LANCHOR131]
|
|
cmp w3, w0
|
|
csel x1, x1, x2, ne
|
|
.L2369:
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
mov w0, w21
|
|
add x20, x19, x20, lsl 6
|
|
ldr x2, [x20, 24]
|
|
bl flash_complete_page_read
|
|
str w0, [x20, 52]
|
|
mov w0, 13
|
|
strb w0, [x20, 58]
|
|
ldrb w0, [x20, 2]
|
|
orr w0, w0, 8
|
|
strb w0, [x20, 2]
|
|
b .L2393
|
|
.L2364:
|
|
bl nandc_wait_flash_ready
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
lsl x2, x20, 6
|
|
add x1, x0, x2
|
|
ldrb w21, [x0, x2]
|
|
add x0, x0, x21, lsl 6
|
|
ldr x24, [x0, 8]
|
|
ldp x26, x0, [x1, 8]
|
|
cbz x0, .L2370
|
|
ldrb w2, [x1, 56]
|
|
adrp x1, .LANCHOR131
|
|
ldrb w1, [x1, #:lo12:.LANCHOR131]
|
|
cmp w2, w1
|
|
csel x26, x26, x0, ne
|
|
.L2370:
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
add x0, x0, x21, lsl 6
|
|
ldr x1, [x0, 16]
|
|
cbz x1, .L2371
|
|
ldrb w2, [x0, 56]
|
|
adrp x0, .LANCHOR131
|
|
ldrb w0, [x0, #:lo12:.LANCHOR131]
|
|
cmp w2, w0
|
|
csel x24, x24, x1, ne
|
|
.L2371:
|
|
add x22, x19, :lo12:.LANCHOR55
|
|
mov x1, x26
|
|
add x27, x22, x20, lsl 6
|
|
add x22, x22, x21, lsl 6
|
|
ldr x2, [x27, 24]
|
|
ldr w0, [x27, 40]
|
|
bl flash_complete_plane_page_read
|
|
mov w23, w0
|
|
ldr x2, [x22, 24]
|
|
mov x1, x24
|
|
ldr w0, [x22, 40]
|
|
bl flash_complete_plane_page_read
|
|
mov w25, w0
|
|
cmn w23, #1
|
|
beq .L2372
|
|
ldr w0, [x27, 36]
|
|
cmn w0, #1
|
|
beq .L2373
|
|
ldr x1, [x27, 24]
|
|
ldr w1, [x1, 4]
|
|
cmp w0, w1
|
|
beq .L2373
|
|
.L2372:
|
|
adrp x0, .LANCHOR31
|
|
add x22, x19, :lo12:.LANCHOR55
|
|
add x22, x22, x20, lsl 6
|
|
mov w5, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w2
|
|
ldr x3, [x22, 24]
|
|
lsl w5, w5, w2
|
|
adrp x2, .LANCHOR131
|
|
sub w5, w5, #1
|
|
ldr w1, [x22, 40]
|
|
ldrb w4, [x2, #:lo12:.LANCHOR131]
|
|
mov x2, x26
|
|
lsl w6, w5, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w6
|
|
and w0, w0, w5
|
|
bl flash_read_page_en
|
|
mov w23, w0
|
|
ldr w2, [x22, 36]
|
|
cmn w2, #1
|
|
beq .L2374
|
|
ldr x0, [x22, 24]
|
|
ldr w4, [x0, 4]
|
|
cmp w2, w4
|
|
beq .L2374
|
|
adrp x1, .LANCHOR19
|
|
ldr w1, [x1, #:lo12:.LANCHOR19]
|
|
tbz x1, 6, .L2374
|
|
ldr w3, [x0]
|
|
adrp x0, .LC137
|
|
ldr w1, [x22, 40]
|
|
add x0, x0, :lo12:.LC137
|
|
bl printf
|
|
.L2374:
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
add x0, x0, x20, lsl 6
|
|
ldr w1, [x0, 36]
|
|
cmn w1, #1
|
|
beq .L2373
|
|
ldr x0, [x0, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w1, w0
|
|
beq .L2373
|
|
adrp x1, .LANCHOR180
|
|
adrp x0, .LC0
|
|
mov w2, 431
|
|
add x1, x1, :lo12:.LANCHOR180
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2373:
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
mov w1, 13
|
|
add x20, x0, x20, lsl 6
|
|
cmn w25, #1
|
|
strb w1, [x20, 58]
|
|
ldrb w1, [x20, 2]
|
|
str w23, [x20, 52]
|
|
orr w1, w1, 8
|
|
strb w1, [x20, 2]
|
|
beq .L2375
|
|
add x0, x0, x21, lsl 6
|
|
ldr w1, [x0, 36]
|
|
cmn w1, #1
|
|
beq .L2377
|
|
ldr x0, [x0, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w1, w0
|
|
beq .L2377
|
|
.L2375:
|
|
adrp x0, .LANCHOR31
|
|
add x20, x19, :lo12:.LANCHOR55
|
|
add x20, x20, x21, lsl 6
|
|
mov w5, 1
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w2
|
|
ldr x3, [x20, 24]
|
|
lsl w5, w5, w2
|
|
adrp x2, .LANCHOR131
|
|
sub w5, w5, #1
|
|
ldr w1, [x20, 40]
|
|
ldrb w4, [x2, #:lo12:.LANCHOR131]
|
|
mov x2, x24
|
|
lsl w6, w5, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w6
|
|
and w0, w0, w5
|
|
bl flash_read_page_en
|
|
ldr w2, [x20, 36]
|
|
cmn w2, #1
|
|
beq .L2379
|
|
ldr x0, [x20, 24]
|
|
ldr w4, [x0, 4]
|
|
cmp w2, w4
|
|
beq .L2379
|
|
adrp x1, .LANCHOR19
|
|
ldr w1, [x1, #:lo12:.LANCHOR19]
|
|
tbz x1, 6, .L2379
|
|
ldr w3, [x0]
|
|
adrp x0, .LC137
|
|
ldr w1, [x20, 40]
|
|
add x0, x0, :lo12:.LC137
|
|
bl printf
|
|
.L2379:
|
|
add x0, x19, :lo12:.LANCHOR55
|
|
add x0, x0, x21, lsl 6
|
|
ldr w1, [x0, 36]
|
|
cmn w1, #1
|
|
beq .L2377
|
|
ldr x0, [x0, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w1, w0
|
|
beq .L2377
|
|
adrp x1, .LANCHOR180
|
|
adrp x0, .LC0
|
|
mov w2, 450
|
|
add x1, x1, :lo12:.LANCHOR180
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2377:
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
mov w0, 13
|
|
add x21, x19, x21, lsl 6
|
|
strb w0, [x21, 58]
|
|
ldrb w0, [x21, 2]
|
|
str w23, [x21, 52]
|
|
orr w0, w0, 8
|
|
strb w0, [x21, 2]
|
|
b .L2393
|
|
.L2365:
|
|
mov w0, w21
|
|
mov w1, 64
|
|
bl flash_wait_device_ready
|
|
mov w21, w0
|
|
tbz x21, 6, .L2393
|
|
mov w0, 5
|
|
tst w21, w0
|
|
beq .L2381
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
mov w0, 12
|
|
add x20, x19, x20, lsl 6
|
|
mov w4, 12
|
|
mov w2, w21
|
|
ldrb w1, [x20, 1]
|
|
ldr w3, [x20, 40]
|
|
strb w0, [x20, 58]
|
|
adrp x0, .LC138
|
|
add x0, x0, :lo12:.LC138
|
|
bl printf
|
|
.L2451:
|
|
mov w0, -1
|
|
str w0, [x20, 52]
|
|
b .L2359
|
|
.L2381:
|
|
add x21, x19, :lo12:.LANCHOR55
|
|
mov w0, 13
|
|
add x21, x21, x20, lsl 6
|
|
strb w0, [x21, 58]
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 156]
|
|
mov w0, 20041
|
|
str wzr, [x21, 52]
|
|
movk w0, 0x444b, lsl 16
|
|
cmp w1, w0
|
|
bne .L2393
|
|
ldrh w0, [x21, 50]
|
|
cbnz w0, .L2393
|
|
adrp x0, .LANCHOR31
|
|
mov w5, 1
|
|
adrp x22, .LANCHOR172
|
|
ldr w1, [x21, 40]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
ldr x3, [x22, #:lo12:.LANCHOR172]
|
|
sub w0, w0, w2
|
|
lsl w5, w5, w2
|
|
adrp x2, .LANCHOR131
|
|
sub w5, w5, #1
|
|
ldrb w4, [x2, #:lo12:.LANCHOR131]
|
|
adrp x2, .LANCHOR173
|
|
lsl w6, w5, w0
|
|
ldr x2, [x2, #:lo12:.LANCHOR173]
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w6
|
|
and w0, w0, w5
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2382
|
|
ldr x1, [x22, #:lo12:.LANCHOR172]
|
|
ldr x2, [x21, 24]
|
|
ldr w1, [x1]
|
|
ldr w2, [x2]
|
|
cmp w2, w1
|
|
beq .L2393
|
|
.L2382:
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
adrp x1, .LANCHOR51
|
|
add x20, x19, x20, lsl 6
|
|
mov w3, w0
|
|
ldrb w4, [x1, #:lo12:.LANCHOR51]
|
|
adrp x0, .LC139
|
|
add x0, x0, :lo12:.LC139
|
|
ldrb w1, [x20, 1]
|
|
ldr w2, [x20, 40]
|
|
bl printf
|
|
mov w0, -1
|
|
str w0, [x20, 52]
|
|
b .L2393
|
|
.L2368:
|
|
cmp w2, 11
|
|
mov w1, 3
|
|
mov w5, 10
|
|
csel w5, w5, w1, eq
|
|
adrp x1, .LANCHOR31
|
|
mov w4, 24
|
|
mov w2, 1
|
|
add x22, x19, :lo12:.LANCHOR55
|
|
ldrb w3, [x1, #:lo12:.LANCHOR31]
|
|
ubfiz x0, x0, 6, 8
|
|
add x0, x22, x0
|
|
mov x24, x1
|
|
sub w4, w4, w3
|
|
lsl w2, w2, w3
|
|
sub w2, w2, #1
|
|
lsr w3, w21, w4
|
|
and w3, w3, w2
|
|
and w3, w3, 65535
|
|
.L2384:
|
|
ldrb w1, [x0]
|
|
cmp w1, 255
|
|
bne .L2391
|
|
mov w21, -1
|
|
b .L2359
|
|
.L2391:
|
|
sxtw x23, w1
|
|
ubfiz x0, x1, 6, 8
|
|
add x1, x22, x23, lsl 6
|
|
add x0, x22, x0
|
|
ldrb w6, [x1, 58]
|
|
cmp w6, w5
|
|
bne .L2384
|
|
ldr w1, [x1, 40]
|
|
lsr w1, w1, w4
|
|
and w1, w1, w2
|
|
cmp w3, w1
|
|
bne .L2384
|
|
mov w0, w21
|
|
mov w1, 64
|
|
bl flash_wait_device_ready
|
|
mov w21, w0
|
|
tbnz x21, 6, .L2386
|
|
.L2450:
|
|
mov w21, 0
|
|
b .L2387
|
|
.L2386:
|
|
tst x21, 15
|
|
beq .L2388
|
|
add x22, x22, x20, lsl 6
|
|
mov w2, w0
|
|
mov w4, 12
|
|
adrp x0, .LC140
|
|
add x0, x0, :lo12:.LC140
|
|
ldrb w1, [x22, 1]
|
|
ldr w3, [x22, 40]
|
|
bl printf
|
|
mov w0, 12
|
|
strb w0, [x22, 58]
|
|
mov w0, -1
|
|
str w0, [x22, 52]
|
|
.L2387:
|
|
add x1, x19, :lo12:.LANCHOR55
|
|
add x20, x1, x20, lsl 6
|
|
add x1, x1, x23, lsl 6
|
|
ldrb w0, [x20, 58]
|
|
strb w0, [x1, 58]
|
|
ldr w0, [x20, 52]
|
|
str w0, [x1, 52]
|
|
.L2359:
|
|
mov w0, w21
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2388:
|
|
add x21, x22, x20, lsl 6
|
|
mov w0, 13
|
|
strb w0, [x21, 58]
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 156]
|
|
mov w0, 20041
|
|
str wzr, [x21, 52]
|
|
movk w0, 0x444b, lsl 16
|
|
cmp w1, w0
|
|
bne .L2450
|
|
ldrh w0, [x21, 50]
|
|
cbnz w0, .L2450
|
|
ldrb w2, [x24, #:lo12:.LANCHOR31]
|
|
mov w5, 1
|
|
mov w0, 24
|
|
adrp x22, .LANCHOR172
|
|
sub w0, w0, w2
|
|
ldr w1, [x21, 40]
|
|
lsl w5, w5, w2
|
|
adrp x2, .LANCHOR131
|
|
sub w5, w5, #1
|
|
ldr x3, [x22, #:lo12:.LANCHOR172]
|
|
ldrb w4, [x2, #:lo12:.LANCHOR131]
|
|
adrp x2, .LANCHOR173
|
|
lsl w6, w5, w0
|
|
ldr x2, [x2, #:lo12:.LANCHOR173]
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w6
|
|
and w0, w0, w5
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2390
|
|
ldr x1, [x22, #:lo12:.LANCHOR172]
|
|
ldr x2, [x21, 24]
|
|
ldr w1, [x1]
|
|
ldr w2, [x2]
|
|
cmp w2, w1
|
|
beq .L2450
|
|
.L2390:
|
|
add x21, x19, :lo12:.LANCHOR55
|
|
adrp x1, .LANCHOR51
|
|
add x21, x21, x20, lsl 6
|
|
mov w3, w0
|
|
ldrb w4, [x1, #:lo12:.LANCHOR51]
|
|
adrp x0, .LC141
|
|
add x0, x0, :lo12:.LC141
|
|
ldrb w1, [x21, 1]
|
|
ldr w2, [x21, 40]
|
|
bl printf
|
|
mov w0, -1
|
|
str w0, [x21, 52]
|
|
b .L2450
|
|
.L2366:
|
|
mov w0, w21
|
|
mov w1, 32
|
|
bl flash_wait_device_ready
|
|
mov w21, w0
|
|
tbz x21, 5, .L2393
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
tst x21, 15
|
|
add x20, x19, x20, lsl 6
|
|
beq .L2392
|
|
mov w0, 12
|
|
strb w0, [x20, 58]
|
|
b .L2451
|
|
.L2392:
|
|
mov w0, 13
|
|
str wzr, [x20, 52]
|
|
strb w0, [x20, 58]
|
|
b .L2393
|
|
.L2367:
|
|
mov w1, 64
|
|
mov w0, w21
|
|
bl flash_wait_device_ready
|
|
tbz x0, 6, .L2393
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
add x19, x19, x20, lsl 6
|
|
str w0, [x19, 52]
|
|
mov w0, 7
|
|
strb w0, [x19, 58]
|
|
b .L2393
|
|
.size queue_wait_first_req_completed, .-queue_wait_first_req_completed
|
|
.section .text.sblk_prog_page,"ax",@progbits
|
|
.align 2
|
|
.global sblk_prog_page
|
|
.type sblk_prog_page, %function
|
|
sblk_prog_page:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldrh w0, [x0, 50]
|
|
and w20, w1, 255
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
cbz w0, .L2453
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L2453
|
|
ldr w1, [x19, 40]
|
|
adrp x0, .LC142
|
|
mov w2, w20
|
|
add x0, x0, :lo12:.LC142
|
|
bl printf
|
|
.L2453:
|
|
adrp x23, .LANCHOR44
|
|
adrp x25, .LANCHOR31
|
|
add x23, x23, :lo12:.LANCHOR44
|
|
add x26, x25, :lo12:.LANCHOR31
|
|
mov w21, 0
|
|
.L2454:
|
|
cbnz w20, .L2465
|
|
.L2481:
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2465:
|
|
ldrb w24, [x19]
|
|
ldr w22, [x19, 40]
|
|
.L2455:
|
|
mov w1, 1
|
|
mov w0, w22
|
|
bl queue_lun_state
|
|
cbnz w0, .L2456
|
|
cmp w20, 1
|
|
beq .L2457
|
|
ldrb w0, [x23]
|
|
cbz w0, .L2457
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbz w0, .L2458
|
|
.L2457:
|
|
mov x0, x19
|
|
bl queue_prog_cmd
|
|
.L2459:
|
|
subs w20, w20, #1
|
|
beq .L2481
|
|
ubfiz x24, x24, 6, 8
|
|
adrp x19, .LANCHOR55
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
add x19, x19, x24
|
|
b .L2454
|
|
.L2456:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2455
|
|
.L2458:
|
|
ldrb w1, [x25, #:lo12:.LANCHOR31]
|
|
mov w27, 24
|
|
mov w0, 1
|
|
sub w27, w27, w1
|
|
lsl w0, w0, w1
|
|
sub w0, w0, #1
|
|
lsr w27, w22, w27
|
|
and w27, w27, w0
|
|
ldrb w0, [x19]
|
|
and w27, w27, 65535
|
|
cmp w0, 255
|
|
bne .L2460
|
|
adrp x1, .LANCHOR181
|
|
adrp x0, .LC0
|
|
mov w2, 697
|
|
add x1, x1, :lo12:.LANCHOR181
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2460:
|
|
ldrb w0, [x19]
|
|
adrp x1, .LANCHOR55
|
|
add x1, x1, :lo12:.LANCHOR55
|
|
mov w3, 24
|
|
mov w28, 1
|
|
add x0, x1, x0, lsl 6
|
|
ldr w4, [x0, 40]
|
|
ldrb w0, [x26]
|
|
sub w3, w3, w0
|
|
lsl w0, w28, w0
|
|
sub w0, w0, #1
|
|
lsr w1, w4, w3
|
|
and w0, w0, w1
|
|
cmp w27, w0, uxth
|
|
bne .L2461
|
|
adrp x0, .LANCHOR74
|
|
ldrh w2, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR75
|
|
ldrb w1, [x0, #:lo12:.LANCHOR75]
|
|
sub w0, w3, w2
|
|
lsr w5, w22, w2
|
|
sub w3, w1, #1
|
|
lsl w0, w28, w0
|
|
sub w0, w0, #1
|
|
lsl w1, w28, w2
|
|
and w0, w0, w3
|
|
sub w1, w1, #1
|
|
and w0, w0, 65535
|
|
and w1, w1, 65535
|
|
and w5, w0, w5
|
|
lsr w2, w4, w2
|
|
and w0, w0, w2
|
|
and w22, w1, w22
|
|
cmp w5, w0
|
|
and w1, w1, w4
|
|
ccmp w22, w1, 0, ne
|
|
bne .L2461
|
|
cmp w21, w3
|
|
beq .L2461
|
|
ldr w1, [x19, 40]
|
|
mov w0, 17
|
|
ldr x2, [x19, 8]
|
|
add w21, w21, w28
|
|
ldr x3, [x19, 24]
|
|
bl flash_start_page_prog
|
|
strb w28, [x19, 59]
|
|
mov w0, 9
|
|
strb w0, [x19, 58]
|
|
mov w0, -1
|
|
strb w0, [x19]
|
|
mov x1, x19
|
|
adrp x0, .LANCHOR59
|
|
add x0, x0, :lo12:.LANCHOR59
|
|
bl buf_add_tail
|
|
b .L2459
|
|
.L2461:
|
|
mov x0, x19
|
|
mov w21, 0
|
|
bl queue_prog_cmd
|
|
b .L2459
|
|
.size sblk_prog_page, .-sblk_prog_page
|
|
.section .text.sblk_wait_write_queue_completed,"ax",@progbits
|
|
.align 2
|
|
.global sblk_wait_write_queue_completed
|
|
.type sblk_wait_write_queue_completed, %function
|
|
sblk_wait_write_queue_completed:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
adrp x19, .LANCHOR59
|
|
add x19, x19, :lo12:.LANCHOR59
|
|
.L2484:
|
|
ldrb w0, [x19]
|
|
cmp w0, 255
|
|
bne .L2485
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L2485:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2484
|
|
.size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
|
|
.section .text.ftl_flush,"ax",@progbits
|
|
.align 2
|
|
.global ftl_flush
|
|
.type ftl_flush, %function
|
|
ftl_flush:
|
|
stp x29, x30, [sp, -32]!
|
|
adrp x0, .LANCHOR129
|
|
add x29, sp, 0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR129]
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
adrp x20, .LANCHOR182
|
|
cbz w1, .L2488
|
|
ldrb w2, [x20, #:lo12:.LANCHOR182]
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
add x0, x0, x2, lsl 6
|
|
bl sblk_prog_page
|
|
.L2488:
|
|
mov w0, -1
|
|
strb wzr, [x19, #:lo12:.LANCHOR129]
|
|
strb w0, [x20, #:lo12:.LANCHOR182]
|
|
bl sblk_wait_write_queue_completed
|
|
bl ftl_write_completed
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, -1
|
|
ldp x29, x30, [sp], 32
|
|
b ftl_vpn_decrement
|
|
.size ftl_flush, .-ftl_flush
|
|
.section .text.ftl_read_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_read_page
|
|
.type ftl_read_page, %function
|
|
ftl_read_page:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 255
|
|
stp x21, x22, [sp, 32]
|
|
mov w20, w1
|
|
mov x21, x2
|
|
mov x22, x3
|
|
str x23, [sp, 48]
|
|
mov w23, w4
|
|
bl sblk_wait_write_queue_completed
|
|
mov w4, w23
|
|
mov x3, x22
|
|
mov x2, x21
|
|
mov w1, w20
|
|
mov w0, w19
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
b flash_read_page_en
|
|
.size ftl_read_page, .-ftl_read_page
|
|
.section .text.ftl_read_ppa_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_read_ppa_page
|
|
.type ftl_read_ppa_page, %function
|
|
ftl_read_ppa_page:
|
|
stp x29, x30, [sp, -64]!
|
|
mov w5, 1
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w20, w0
|
|
adrp x0, .LANCHOR31
|
|
mov w19, 24
|
|
stp x21, x22, [sp, 32]
|
|
mov x21, x1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
mov x22, x2
|
|
str x23, [sp, 48]
|
|
mov w23, w3
|
|
sub w19, w19, w0
|
|
lsl w5, w5, w0
|
|
sub w5, w5, #1
|
|
lsr w19, w20, w19
|
|
and w19, w19, w5
|
|
and w19, w19, 255
|
|
bl sblk_wait_write_queue_completed
|
|
mov w4, w23
|
|
mov x3, x22
|
|
mov x2, x21
|
|
mov w1, w20
|
|
mov w0, w19
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
b flash_read_page_en
|
|
.size ftl_read_ppa_page, .-ftl_read_ppa_page
|
|
.section .text.sblk_read_page,"ax",@progbits
|
|
.align 2
|
|
.global sblk_read_page
|
|
.type sblk_read_page, %function
|
|
sblk_read_page:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w22, w1, 255
|
|
stp x27, x28, [sp, 80]
|
|
mov w21, w22
|
|
stp x19, x20, [sp, 16]
|
|
adrp x27, .LANCHOR31
|
|
stp x23, x24, [sp, 48]
|
|
mov x19, x0
|
|
stp x25, x26, [sp, 64]
|
|
mov x23, x0
|
|
adrp x25, .LANCHOR183
|
|
add x28, x27, :lo12:.LANCHOR31
|
|
add x25, x25, :lo12:.LANCHOR183
|
|
.L2498:
|
|
cbnz w21, .L2508
|
|
.L2521:
|
|
adrp x19, .LANCHOR55
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
.L2509:
|
|
cbnz w22, .L2511
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, 0
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L2508:
|
|
ldrb w24, [x19]
|
|
ldr w26, [x19, 40]
|
|
.L2499:
|
|
mov w1, 0
|
|
mov w0, w26
|
|
bl queue_lun_state
|
|
cbnz w0, .L2500
|
|
cmp w21, 1
|
|
beq .L2505
|
|
ldrb w0, [x25]
|
|
cbnz w0, .L2502
|
|
.L2505:
|
|
mov x0, x19
|
|
bl queue_read_cmd
|
|
b .L2503
|
|
.L2500:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2499
|
|
.L2502:
|
|
ldrb w1, [x27, #:lo12:.LANCHOR31]
|
|
mov w20, 24
|
|
mov w0, 1
|
|
sub w20, w20, w1
|
|
lsl w0, w0, w1
|
|
sub w0, w0, #1
|
|
lsr w20, w26, w20
|
|
and w20, w20, w0
|
|
ldrb w0, [x19]
|
|
and w20, w20, 65535
|
|
cmp w0, 255
|
|
bne .L2504
|
|
adrp x1, .LANCHOR184
|
|
adrp x0, .LC0
|
|
mov w2, 782
|
|
add x1, x1, :lo12:.LANCHOR184
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2504:
|
|
ldrb w4, [x19]
|
|
adrp x2, .LANCHOR55
|
|
add x2, x2, :lo12:.LANCHOR55
|
|
ldrb w7, [x28]
|
|
mov w0, 24
|
|
mov w3, 1
|
|
sbfiz x5, x4, 6, 32
|
|
sub w0, w0, w7
|
|
add x6, x2, x5
|
|
lsl w3, w3, w7
|
|
sub w3, w3, #1
|
|
ldr w1, [x6, 40]
|
|
lsr w0, w1, w0
|
|
and w0, w0, w3
|
|
cmp w20, w0, uxth
|
|
bne .L2505
|
|
adrp x0, .LANCHOR111
|
|
ldrh w0, [x0, #:lo12:.LANCHOR111]
|
|
add w26, w0, w26
|
|
cmp w1, w26
|
|
bne .L2505
|
|
ldr w0, [x19, 40]
|
|
mov w26, -1
|
|
ldrb w24, [x2, x5]
|
|
adrp x20, .LANCHOR59
|
|
stp x6, x5, [x29, 96]
|
|
add x20, x20, :lo12:.LANCHOR59
|
|
str x2, [x29, 112]
|
|
sub w21, w21, #1
|
|
str w4, [x29, 120]
|
|
bl flash_start_plane_read
|
|
mov w3, 2
|
|
strb wzr, [x19, 59]
|
|
strb w3, [x19, 58]
|
|
mov x1, x19
|
|
strb w26, [x19]
|
|
mov x0, x20
|
|
str w3, [x29, 124]
|
|
bl buf_add_tail
|
|
ldp x6, x5, [x29, 96]
|
|
strb wzr, [x6, 59]
|
|
ldr x2, [x29, 112]
|
|
mov x0, x20
|
|
ldp w4, w3, [x29, 120]
|
|
strb w3, [x6, 58]
|
|
strb w26, [x2, x5]
|
|
ubfiz x1, x4, 6, 8
|
|
add x1, x2, x1
|
|
bl buf_add_tail
|
|
.L2503:
|
|
subs w21, w21, #1
|
|
beq .L2521
|
|
ubfiz x24, x24, 6, 8
|
|
adrp x19, .LANCHOR55
|
|
add x19, x19, :lo12:.LANCHOR55
|
|
add x19, x19, x24
|
|
b .L2498
|
|
.L2511:
|
|
ldrb w0, [x23, 58]
|
|
cmp w0, 13
|
|
bne .L2510
|
|
ldrb w0, [x23]
|
|
sub w22, w22, #1
|
|
cmp w0, 255
|
|
beq .L2510
|
|
ubfiz x23, x0, 6, 8
|
|
add x23, x19, x23
|
|
.L2510:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2509
|
|
.size sblk_read_page, .-sblk_read_page
|
|
.section .text.gc_check_data_one_wl,"ax",@progbits
|
|
.align 2
|
|
.global gc_check_data_one_wl
|
|
.type gc_check_data_one_wl, %function
|
|
gc_check_data_one_wl:
|
|
sub sp, sp, #112
|
|
stp x29, x30, [sp, 16]
|
|
add x29, sp, 16
|
|
stp x19, x20, [sp, 32]
|
|
adrp x19, .LANCHOR70
|
|
stp x21, x22, [sp, 48]
|
|
add x22, x19, :lo12:.LANCHOR70
|
|
adrp x20, .LANCHOR12
|
|
stp x23, x24, [sp, 64]
|
|
stp x25, x26, [sp, 80]
|
|
ldr x0, [x22, 8]
|
|
stp x27, x28, [sp, 96]
|
|
ldr x21, [x20, #:lo12:.LANCHOR12]
|
|
cbnz x0, .L2524
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
str x0, [x22, 8]
|
|
.L2524:
|
|
add x0, x19, :lo12:.LANCHOR70
|
|
ldr x22, [x0, 8]
|
|
cbnz x22, .L2525
|
|
adrp x1, .LANCHOR185
|
|
adrp x0, .LC0
|
|
mov w2, 729
|
|
add x1, x1, :lo12:.LANCHOR185
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2525:
|
|
adrp x27, .LANCHOR111
|
|
adrp x28, .LANCHOR78
|
|
add x26, x21, 96
|
|
add x27, x27, :lo12:.LANCHOR111
|
|
add x28, x28, :lo12:.LANCHOR78
|
|
mov w25, 0
|
|
.L2526:
|
|
ldrb w0, [x21, 89]
|
|
cmp w25, w0
|
|
bge .L2537
|
|
mov w24, 1
|
|
add x23, x19, :lo12:.LANCHOR70
|
|
b .L2538
|
|
.L2536:
|
|
ldrh w0, [x26]
|
|
ldrh w2, [x27]
|
|
ldrb w1, [x28]
|
|
cmp w1, 2
|
|
mul w2, w0, w2
|
|
beq .L2527
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbz w0, .L2528
|
|
.L2527:
|
|
ldrh w0, [x23, 16]
|
|
sub w3, w0, #1
|
|
add w0, w24, w2
|
|
add w0, w3, w0
|
|
orr w1, w0, w1, lsl 24
|
|
str w1, [x22, 40]
|
|
.L2529:
|
|
mov w1, 1
|
|
mov x0, x22
|
|
bl sblk_read_page
|
|
ldr w2, [x22, 52]
|
|
adrp x1, .LANCHOR159
|
|
cmn w2, #1
|
|
beq .L2532
|
|
ldrh w0, [x23, 22]
|
|
ldr x4, [x1, #:lo12:.LANCHOR159]
|
|
ldr x3, [x22, 24]
|
|
lsl x0, x0, 2
|
|
ldr w5, [x4, x0]
|
|
ldr w4, [x3, 4]
|
|
cmp w5, w4
|
|
bne .L2532
|
|
adrp x4, .LANCHOR160
|
|
ldr x4, [x4, #:lo12:.LANCHOR160]
|
|
ldr w4, [x4, x0]
|
|
ldr w0, [x3, 8]
|
|
cmp w4, w0
|
|
beq .L2533
|
|
.L2532:
|
|
ldrh w0, [x23, 22]
|
|
ldr x1, [x1, #:lo12:.LANCHOR159]
|
|
lsl x0, x0, 2
|
|
ldr w3, [x1, x0]
|
|
cmn w3, #1
|
|
beq .L2533
|
|
adrp x1, .LANCHOR19
|
|
ldr w1, [x1, #:lo12:.LANCHOR19]
|
|
tbz x1, 10, .L2534
|
|
ldr x1, [x22, 24]
|
|
adrp x4, .LANCHOR160
|
|
ldr x4, [x4, #:lo12:.LANCHOR160]
|
|
ldr w5, [x1, 12]
|
|
str w5, [sp]
|
|
ldr w4, [x4, x0]
|
|
adrp x0, .LC143
|
|
ldp w5, w6, [x1]
|
|
add x0, x0, :lo12:.LC143
|
|
ldr w7, [x1, 8]
|
|
ldr w1, [x22, 40]
|
|
bl printf
|
|
.L2534:
|
|
adrp x0, .LANCHOR124
|
|
ldrh w1, [x21, 80]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR124]
|
|
adrp x0, .LANCHOR11
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x1, lsl 1]
|
|
ldr x1, [x20, #:lo12:.LANCHOR12]
|
|
ldr w0, [x1, 556]
|
|
add w0, w0, 1
|
|
str w0, [x1, 556]
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 156]
|
|
mov w0, 20041
|
|
movk w0, 0x444b, lsl 16
|
|
cmp w1, w0
|
|
bne .L2541
|
|
cbnz w2, .L2541
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbnz w0, .L2541
|
|
ldr w0, [x22, 40]
|
|
bl ftl_mask_bad_block
|
|
.L2541:
|
|
mov w0, -1
|
|
.L2523:
|
|
ldp x19, x20, [sp, 32]
|
|
ldp x21, x22, [sp, 48]
|
|
ldp x23, x24, [sp, 64]
|
|
ldp x25, x26, [sp, 80]
|
|
ldp x27, x28, [sp, 96]
|
|
ldp x29, x30, [sp, 16]
|
|
add sp, sp, 112
|
|
ret
|
|
.L2528:
|
|
cmp w1, 3
|
|
ldrh w0, [x23, 16]
|
|
bne .L2530
|
|
adrp x1, .LANCHOR36
|
|
ldrb w1, [x1, #:lo12:.LANCHOR36]
|
|
cbz w1, .L2531
|
|
add w0, w0, w0, lsl 1
|
|
sub w1, w0, #1
|
|
add w0, w24, w2
|
|
add w0, w1, w0
|
|
orr w0, w0, 50331648
|
|
.L2556:
|
|
str w0, [x22, 40]
|
|
b .L2529
|
|
.L2531:
|
|
add w0, w0, w2
|
|
orr w0, w0, w24, lsl 24
|
|
b .L2556
|
|
.L2530:
|
|
add w0, w0, w2
|
|
b .L2556
|
|
.L2533:
|
|
ldrh w0, [x23, 22]
|
|
add w24, w24, 1
|
|
add w0, w0, 1
|
|
strh w0, [x23, 22]
|
|
.L2538:
|
|
ldrh w0, [x23, 20]
|
|
cmp w24, w0
|
|
ble .L2536
|
|
add w25, w25, 1
|
|
add x26, x26, 2
|
|
b .L2526
|
|
.L2537:
|
|
add x19, x19, :lo12:.LANCHOR70
|
|
ldrh w0, [x19, 16]
|
|
add w1, w0, 1
|
|
strh w1, [x19, 16]
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbz w1, .L2542
|
|
add w0, w0, 2
|
|
strh w0, [x19, 16]
|
|
.L2542:
|
|
.L2535:
|
|
mov w0, 0
|
|
b .L2523
|
|
.size gc_check_data_one_wl, .-gc_check_data_one_wl
|
|
.section .text.sblk_tlc_prog_one_page,"ax",@progbits
|
|
.align 2
|
|
.global sblk_tlc_prog_one_page
|
|
.type sblk_tlc_prog_one_page, %function
|
|
sblk_tlc_prog_one_page:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldr x0, [x0]
|
|
ldr w20, [x0, 40]
|
|
.L2558:
|
|
mov w1, 1
|
|
mov w0, w20
|
|
bl queue_lun_state
|
|
cbnz w0, .L2559
|
|
mov x0, x19
|
|
mov w1, 1
|
|
bl queue_tlc_prog_cmd
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.L2559:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2558
|
|
.size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
|
|
.section .text.sblk_xlc_prog_pages,"ax",@progbits
|
|
.align 2
|
|
.global sblk_xlc_prog_pages
|
|
.type sblk_xlc_prog_pages, %function
|
|
sblk_xlc_prog_pages:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x0
|
|
ldr x0, [x0]
|
|
stp x21, x22, [sp, 32]
|
|
mov x22, x1
|
|
stp x23, x24, [sp, 48]
|
|
mov w24, w2
|
|
ldr w19, [x0, 40]
|
|
str x25, [sp, 64]
|
|
.L2562:
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl queue_lun_state
|
|
cbnz w0, .L2563
|
|
cmp w24, 2
|
|
bne .L2564
|
|
adrp x0, .LANCHOR44
|
|
ldr x3, [x22]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR44]
|
|
cbz w0, .L2565
|
|
adrp x0, .LANCHOR31
|
|
ldr x7, [x20]
|
|
mov w25, 1
|
|
mov w2, 24
|
|
ldrb w0, [x0, #:lo12:.LANCHOR31]
|
|
ldr w3, [x3, 40]
|
|
sub w2, w2, w0
|
|
ldr w1, [x7, 40]
|
|
lsl w19, w25, w0
|
|
adrp x0, .LANCHOR36
|
|
lsl w21, w25, w2
|
|
sub w19, w19, #1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
sub w21, w21, #1
|
|
and w23, w1, w21
|
|
lsr w1, w1, w2
|
|
and w19, w19, w1
|
|
and w21, w21, w3
|
|
and w19, w19, 255
|
|
cbz w0, .L2566
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr x0, [x20]
|
|
mov w4, w23
|
|
mov w3, w19
|
|
mov w1, w25
|
|
mov w2, 17
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x22]
|
|
mov w4, w21
|
|
mov w3, w19
|
|
mov w1, w25
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x20, 8]
|
|
add w4, w23, w25
|
|
mov w3, w19
|
|
mov w1, w24
|
|
mov w2, 17
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x22, 8]
|
|
add w4, w21, w25
|
|
mov w3, w19
|
|
mov w1, w24
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x20, 16]
|
|
add w4, w23, 2
|
|
mov w3, w19
|
|
mov w2, 17
|
|
mov w1, 3
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x22, 16]
|
|
add w4, w21, 2
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, 3
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
mov w0, 0
|
|
bl flash_start_one_pass_page_prog
|
|
.L2567:
|
|
ldr x1, [x20]
|
|
mov w0, 5
|
|
strb w0, [x1, 58]
|
|
mov w0, 1
|
|
strb w0, [x1, 59]
|
|
mov w0, -1
|
|
strb w0, [x1]
|
|
adrp x0, .LANCHOR59
|
|
add x0, x0, :lo12:.LANCHOR59
|
|
bl buf_add_tail
|
|
.L2568:
|
|
mov w0, 0
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2563:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2562
|
|
.L2566:
|
|
ldr x5, [x7, 8]
|
|
mov w4, w23
|
|
ldr x6, [x7, 24]
|
|
mov w3, w19
|
|
ldrb w0, [x7, 60]
|
|
mov w1, w25
|
|
mov w2, 17
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x7, [x20]
|
|
mov w4, w21
|
|
ldr x0, [x22]
|
|
mov w3, w19
|
|
mov w1, w25
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldp x7, x0, [x20]
|
|
mov w4, w23
|
|
mov w3, w19
|
|
mov w1, w24
|
|
mov w2, 17
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x7, [x20]
|
|
mov w4, w21
|
|
ldr x0, [x22, 8]
|
|
mov w3, w19
|
|
mov w1, w24
|
|
mov w2, 26
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x7, [x20]
|
|
mov w4, w23
|
|
ldr x0, [x20, 16]
|
|
mov w3, w19
|
|
mov w2, 17
|
|
mov w1, 3
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x22, 16]
|
|
mov w4, w21
|
|
ldr x7, [x20]
|
|
mov w3, w19
|
|
mov w2, 16
|
|
mov w1, 3
|
|
ldr x5, [x0, 8]
|
|
ldr x6, [x0, 24]
|
|
ldrb w0, [x7, 60]
|
|
bl flash_start_tlc_page_prog
|
|
b .L2567
|
|
.L2565:
|
|
ldr w19, [x3, 40]
|
|
.L2569:
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl queue_lun_state
|
|
cbnz w0, .L2570
|
|
mov w1, 1
|
|
mov x0, x20
|
|
bl queue_tlc_prog_cmd
|
|
mov w1, 0
|
|
mov x0, x22
|
|
bl queue_tlc_prog_cmd
|
|
.L2571:
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl queue_lun_state
|
|
cbz w0, .L2568
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2571
|
|
.L2570:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2569
|
|
.L2564:
|
|
mov w1, 1
|
|
mov x0, x20
|
|
bl queue_tlc_prog_cmd
|
|
b .L2568
|
|
.size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
|
|
.section .text.sblk_3d_mlc_prog_pages,"ax",@progbits
|
|
.align 2
|
|
.global sblk_3d_mlc_prog_pages
|
|
.type sblk_3d_mlc_prog_pages, %function
|
|
sblk_3d_mlc_prog_pages:
|
|
stp x29, x30, [sp, -80]!
|
|
ubfiz x1, x1, 4, 32
|
|
add x1, x1, 8
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
add x21, x0, x1
|
|
stp x23, x24, [sp, 48]
|
|
adrp x23, .LANCHOR31
|
|
adrp x24, .LANCHOR59
|
|
str x25, [sp, 64]
|
|
add x23, x23, :lo12:.LANCHOR31
|
|
add x24, x24, :lo12:.LANCHOR59
|
|
add x25, x0, 8
|
|
stp x19, x20, [sp, 16]
|
|
mov w22, 1
|
|
.L2575:
|
|
cmp x21, x25
|
|
bne .L2578
|
|
mov w0, 0
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2578:
|
|
ldr x0, [x25, -8]
|
|
ldr w19, [x0, 40]
|
|
.L2576:
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl queue_lun_state
|
|
cbnz w0, .L2577
|
|
ldr x0, [x25, -8]
|
|
mov w2, 24
|
|
ldrb w1, [x23]
|
|
add x25, x25, 16
|
|
sub w2, w2, w1
|
|
ldr w0, [x0, 40]
|
|
lsl w19, w22, w1
|
|
lsl w20, w22, w2
|
|
sub w19, w19, #1
|
|
sub w20, w20, #1
|
|
and w20, w20, w0
|
|
lsr w0, w0, w2
|
|
and w19, w19, w0
|
|
and w19, w19, 255
|
|
mov w0, w19
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr x0, [x25, -24]
|
|
mov w2, w20
|
|
mov w1, w19
|
|
ldr x3, [x0, 8]
|
|
ldr x4, [x0, 24]
|
|
mov w0, 16
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr x0, [x25, -16]
|
|
add w2, w20, 1
|
|
mov w1, w19
|
|
ldr x3, [x0, 8]
|
|
ldr x4, [x0, 24]
|
|
mov w0, 16
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_de_cs.constprop.32
|
|
ldr x1, [x25, -24]
|
|
mov w0, 4
|
|
strb w22, [x1, 59]
|
|
strb w0, [x1, 58]
|
|
mov w0, -1
|
|
strb w0, [x1]
|
|
mov x0, x24
|
|
bl buf_add_tail
|
|
b .L2575
|
|
.L2577:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2576
|
|
.size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
|
|
.section .text.flash_prog_page_en,"ax",@progbits
|
|
.align 2
|
|
.global flash_prog_page_en
|
|
.type flash_prog_page_en, %function
|
|
flash_prog_page_en:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 255
|
|
and w0, w5, 255
|
|
stp x19, x20, [sp, 16]
|
|
str w0, [x29, 124]
|
|
adrp x0, .LANCHOR23
|
|
stp x23, x24, [sp, 48]
|
|
mov w20, w1
|
|
stp x27, x28, [sp, 80]
|
|
mov x23, x2
|
|
ldrb w1, [x0, #:lo12:.LANCHOR23]
|
|
mov x22, x3
|
|
stp x25, x26, [sp, 64]
|
|
mov w28, w4
|
|
ubfx x24, x20, 24, 2
|
|
cmp w1, w21
|
|
mov x19, x0
|
|
bhi .L2581
|
|
adrp x1, .LANCHOR186
|
|
adrp x0, .LC0
|
|
mov w2, 642
|
|
add x1, x1, :lo12:.LANCHOR186
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2581:
|
|
ldrb w0, [x19, #:lo12:.LANCHOR23]
|
|
cmp w0, w21
|
|
bls .L2592
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
ldrb w27, [x0, w21, sxtw]
|
|
cbnz w24, .L2594
|
|
adrp x0, .LANCHOR0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR0]
|
|
adrp x0, .LANCHOR1
|
|
cbz w1, .L2584
|
|
ldrb w1, [x0, #:lo12:.LANCHOR1]
|
|
cbz w1, .L2594
|
|
.L2584:
|
|
adrp x1, .LANCHOR2
|
|
ldrb w0, [x0, #:lo12:.LANCHOR1]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR2]
|
|
udiv w19, w20, w1
|
|
mul w19, w19, w1
|
|
sub w1, w20, w19
|
|
cbz w0, .L2585
|
|
add w19, w19, w1, lsl 1
|
|
.L2583:
|
|
adrp x24, .LANCHOR19
|
|
adrp x25, .LC144
|
|
add x24, x24, :lo12:.LANCHOR19
|
|
add x25, x25, :lo12:.LC144
|
|
adrp x26, .LANCHOR172
|
|
.L2589:
|
|
ldr w0, [x24]
|
|
tbz x0, 4, .L2586
|
|
mov w3, w19
|
|
mov w2, w20
|
|
mov w1, w27
|
|
mov x0, x25
|
|
bl printf
|
|
.L2586:
|
|
mov w4, w28
|
|
mov x3, x22
|
|
mov x2, x23
|
|
mov w1, w19
|
|
mov w0, w27
|
|
bl flash_prog_page
|
|
mov w5, w0
|
|
ldr w0, [x29, 124]
|
|
cbz w0, .L2587
|
|
adrp x6, .LANCHOR173
|
|
ldr x3, [x26, #:lo12:.LANCHOR172]
|
|
mov w4, w28
|
|
str x6, [x29, 112]
|
|
ldr x2, [x6, #:lo12:.LANCHOR173]
|
|
mov w1, w20
|
|
mov w0, w21
|
|
str w5, [x29, 104]
|
|
bl flash_read_page_en
|
|
cmp w0, 512
|
|
ldr x6, [x29, 112]
|
|
mov w4, w0
|
|
ccmn w0, #1, 4, ne
|
|
mov x7, x6
|
|
beq .L2588
|
|
ldr x0, [x6, #:lo12:.LANCHOR173]
|
|
ldr w1, [x23]
|
|
ldr w5, [x29, 104]
|
|
ldr w0, [x0]
|
|
cmp w1, w0
|
|
bne .L2588
|
|
ldr x0, [x26, #:lo12:.LANCHOR172]
|
|
ldr w1, [x22]
|
|
ldr w0, [x0]
|
|
cmp w1, w0
|
|
beq .L2587
|
|
.L2588:
|
|
str w4, [x29, 112]
|
|
mov w3, 4
|
|
str x7, [x29, 104]
|
|
mov w2, w3
|
|
mov x1, x23
|
|
adrp x0, .LC145
|
|
add x0, x0, :lo12:.LC145
|
|
bl rknand_print_hex
|
|
mov w3, 4
|
|
mov x1, x22
|
|
mov w2, w3
|
|
adrp x0, .LC146
|
|
add x0, x0, :lo12:.LC146
|
|
bl rknand_print_hex
|
|
adrp x0, .LANCHOR172
|
|
mov w3, 4
|
|
mov w2, w3
|
|
ldr x1, [x0, #:lo12:.LANCHOR172]
|
|
adrp x0, .LC147
|
|
add x0, x0, :lo12:.LC147
|
|
bl rknand_print_hex
|
|
ldr x7, [x29, 104]
|
|
mov w3, 4
|
|
adrp x0, .LC148
|
|
mov w2, w3
|
|
add x0, x0, :lo12:.LC148
|
|
ldr x1, [x7, #:lo12:.LANCHOR173]
|
|
bl rknand_print_hex
|
|
ldr w4, [x29, 112]
|
|
cmp w4, 512
|
|
beq .L2589
|
|
.L2591:
|
|
mov w1, w20
|
|
adrp x0, .LC149
|
|
add x0, x0, :lo12:.LC149
|
|
bl printf
|
|
adrp x1, .LANCHOR186
|
|
adrp x0, .LC0
|
|
mov w2, 685
|
|
add x1, x1, :lo12:.LANCHOR186
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2592:
|
|
mov w0, -1
|
|
b .L2580
|
|
.L2585:
|
|
adrp x0, .LANCHOR3
|
|
add x0, x0, :lo12:.LANCHOR3
|
|
ldrh w0, [x0, w1, uxtw 1]
|
|
add w19, w0, w19
|
|
b .L2583
|
|
.L2594:
|
|
mov w19, w20
|
|
b .L2583
|
|
.L2587:
|
|
mov w0, w5
|
|
cmn w5, #1
|
|
beq .L2591
|
|
.L2580:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.size flash_prog_page_en, .-flash_prog_page_en
|
|
.section .text.ftl_test_block,"ax",@progbits
|
|
.align 2
|
|
.global ftl_test_block
|
|
.type ftl_test_block, %function
|
|
ftl_test_block:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x24, .LANCHOR187
|
|
stp x21, x22, [sp, 32]
|
|
and w21, w0, 65535
|
|
ldr x0, [x24, #:lo12:.LANCHOR187]
|
|
mov w23, 0
|
|
stp x25, x26, [sp, 64]
|
|
adrp x25, .LANCHOR188
|
|
stp x19, x20, [sp, 16]
|
|
adrp x26, .LANCHOR112
|
|
stp x27, x28, [sp, 80]
|
|
mov w20, 0
|
|
str wzr, [x0]
|
|
add x0, x26, :lo12:.LANCHOR112
|
|
adrp x27, .LANCHOR75
|
|
str x0, [x29, 112]
|
|
str wzr, [x25, #:lo12:.LANCHOR188]
|
|
add x0, x27, :lo12:.LANCHOR75
|
|
str x0, [x29, 96]
|
|
.L2611:
|
|
ldr x0, [x29, 112]
|
|
ldrb w0, [x0]
|
|
cmp w0, w20
|
|
bls .L2621
|
|
add x0, x27, :lo12:.LANCHOR75
|
|
mov w22, 0
|
|
str x0, [x29, 120]
|
|
adrp x0, .LANCHOR19
|
|
add x0, x0, :lo12:.LANCHOR19
|
|
str x0, [x29, 104]
|
|
b .L2622
|
|
.L2620:
|
|
ldr x0, [x29, 104]
|
|
ldr w0, [x0]
|
|
tbz x0, 12, .L2612
|
|
adrp x0, .LC150
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC150
|
|
bl printf
|
|
.L2612:
|
|
ldr x0, [x29, 96]
|
|
ldrb w19, [x0]
|
|
madd w19, w21, w19, w22
|
|
and w19, w19, 65535
|
|
cbnz w20, .L2613
|
|
adrp x0, .LANCHOR6
|
|
ldr x0, [x0, #:lo12:.LANCHOR6]
|
|
ldrb w0, [x0, 47]
|
|
cmp w0, w19
|
|
bcs .L2614
|
|
.L2613:
|
|
and w28, w20, 255
|
|
mov w1, w19
|
|
mov w0, w28
|
|
bl flash_check_bad_block
|
|
cbnz w0, .L2614
|
|
adrp x0, .LANCHOR111
|
|
mov w1, w23
|
|
ldrh w7, [x0, #:lo12:.LANCHOR111]
|
|
mov w0, w28
|
|
mul w26, w7, w19
|
|
mov w2, w26
|
|
bl flash_erase_block_en
|
|
cbz w0, .L2615
|
|
adrp x0, .LANCHOR78
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
cmp w0, 2
|
|
bne .L2637
|
|
adrp x0, .LANCHOR0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR0]
|
|
cbz w0, .L2637
|
|
mov w2, w26
|
|
mov w1, 1
|
|
mov w0, w28
|
|
bl flash_erase_block_en
|
|
cbnz w0, .L2637
|
|
.L2619:
|
|
adrp x0, .LANCHOR78
|
|
mov w23, 1
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
add w26, w26, w0, lsl 24
|
|
.L2618:
|
|
adrp x0, .LANCHOR131
|
|
ldr x2, [x24, #:lo12:.LANCHOR187]
|
|
mov w5, 1
|
|
add x3, x25, :lo12:.LANCHOR188
|
|
ldrb w4, [x0, #:lo12:.LANCHOR131]
|
|
mov w1, w26
|
|
mov w0, w28
|
|
bl flash_prog_page_en
|
|
cbz w0, .L2614
|
|
.L2637:
|
|
mov w1, w19
|
|
mov w0, w28
|
|
bl flash_mask_bad_block
|
|
.L2614:
|
|
add w22, w22, 1
|
|
and w22, w22, 65535
|
|
.L2622:
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0]
|
|
cmp w0, w22
|
|
bhi .L2620
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
b .L2611
|
|
.L2615:
|
|
cbz w23, .L2618
|
|
b .L2619
|
|
.L2621:
|
|
cbz w23, .L2623
|
|
adrp x0, .LANCHOR9
|
|
mov w1, 2
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x21, x0, x21, uxth 2
|
|
ldrb w0, [x21, 2]
|
|
bfi w0, w1, 3, 2
|
|
strb w0, [x21, 2]
|
|
.L2623:
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, 0
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.size ftl_test_block, .-ftl_test_block
|
|
.section .text.ftl_prog_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_prog_page
|
|
.type ftl_prog_page, %function
|
|
ftl_prog_page:
|
|
stp x29, x30, [sp, -64]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 255
|
|
stp x21, x22, [sp, 32]
|
|
mov w20, w1
|
|
mov x21, x2
|
|
mov x22, x3
|
|
str x23, [sp, 48]
|
|
mov w23, w4
|
|
bl sblk_wait_write_queue_completed
|
|
mov w0, w19
|
|
mov w5, 1
|
|
mov w4, w23
|
|
mov x3, x22
|
|
mov x2, x21
|
|
mov w1, w20
|
|
bl flash_prog_page_en
|
|
mov w19, w0
|
|
cmn w0, #1
|
|
bne .L2638
|
|
mov w2, 2678
|
|
adrp x1, .LANCHOR189
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR189
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
adrp x0, .LC149
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC149
|
|
bl printf
|
|
.L2638:
|
|
mov w0, w19
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.size ftl_prog_page, .-ftl_prog_page
|
|
.section .text.ftl_info_flush,"ax",@progbits
|
|
.align 2
|
|
.global ftl_info_flush
|
|
.type ftl_info_flush, %function
|
|
ftl_info_flush:
|
|
stp x29, x30, [sp, -128]!
|
|
mov w1, 0
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR131
|
|
stp x23, x24, [sp, 48]
|
|
adrp x24, .LANCHOR110
|
|
ldrb w2, [x21, #:lo12:.LANCHOR131]
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR190
|
|
str w0, [x29, 116]
|
|
add x0, x20, :lo12:.LANCHOR190
|
|
stp x25, x26, [sp, 64]
|
|
lsl w2, w2, 1
|
|
stp x27, x28, [sp, 80]
|
|
bl ftl_memset
|
|
ldr x0, [x24, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x0, 74]
|
|
cmp w1, 1
|
|
bls .L2642
|
|
strh wzr, [x0, 150]
|
|
.L2642:
|
|
adrp x23, .LANCHOR191
|
|
add x19, x23, :lo12:.LANCHOR191
|
|
adrp x25, .LANCHOR111
|
|
mov w26, 0
|
|
add x0, x25, :lo12:.LANCHOR111
|
|
str x0, [x29, 104]
|
|
.L2655:
|
|
add x0, x23, :lo12:.LANCHOR191
|
|
adrp x22, .LANCHOR192
|
|
ldrh w1, [x25, #:lo12:.LANCHOR111]
|
|
add x7, x20, :lo12:.LANCHOR190
|
|
str w1, [x29, 120]
|
|
ldrh w27, [x0, 2]
|
|
ldr x0, [x24, #:lo12:.LANCHOR110]
|
|
ldrb w1, [x21, #:lo12:.LANCHOR131]
|
|
ldrb w28, [x23, #:lo12:.LANCHOR191]
|
|
ldr w6, [x0, 4]
|
|
lsl w1, w1, 9
|
|
add w6, w6, 1
|
|
str w6, [x0, 4]
|
|
ldr w0, [x29, 116]
|
|
str w0, [x20, #:lo12:.LANCHOR190]
|
|
ldr x0, [x22, #:lo12:.LANCHOR192]
|
|
str w6, [x7, 4]
|
|
bl js_hash
|
|
str w0, [x7, 8]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2643
|
|
adrp x0, .LC151
|
|
mov w3, w6
|
|
mov w2, w27
|
|
mov w1, w28
|
|
add x0, x0, :lo12:.LC151
|
|
bl printf
|
|
.L2643:
|
|
adrp x1, .LANCHOR94
|
|
ldrh w0, [x19, 2]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
cmp w1, w0
|
|
bhi .L2644
|
|
adrp x27, .LANCHOR193
|
|
adrp x3, .LC0
|
|
add x27, x27, :lo12:.LANCHOR193
|
|
add x3, x3, :lo12:.LC0
|
|
.L2651:
|
|
ldrb w0, [x19, 1]
|
|
adrp x28, .LANCHOR6
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
strb w0, [x19, 1]
|
|
cmp w0, 7
|
|
bls .L2645
|
|
mov x0, 0
|
|
.L2650:
|
|
ldr x2, [x28, #:lo12:.LANCHOR6]
|
|
add w1, w0, 8
|
|
and w26, w0, 65535
|
|
add x1, x2, x1, sxtw
|
|
ldrb w2, [x1, 32]
|
|
add w1, w2, 127
|
|
and w1, w1, 255
|
|
cmp w1, 125
|
|
bhi .L2646
|
|
mov x0, x3
|
|
str x3, [x29, 120]
|
|
mov w2, 846
|
|
mov x1, x27
|
|
bl printf
|
|
ldr x3, [x29, 120]
|
|
.L2649:
|
|
strb w26, [x19, 1]
|
|
mov w26, 1
|
|
.L2645:
|
|
ldr x0, [x28, #:lo12:.LANCHOR6]
|
|
ldrb w1, [x19, 1]
|
|
add x0, x0, x1
|
|
ldrb w28, [x0, 40]
|
|
strb w28, [x19]
|
|
cmp w28, 255
|
|
beq .L2651
|
|
ldr x0, [x29, 104]
|
|
ldrh w27, [x0]
|
|
mov w0, 0
|
|
mul w27, w27, w28
|
|
mov w1, w27
|
|
bl flash_erase_block
|
|
ldrb w4, [x21, #:lo12:.LANCHOR131]
|
|
mov w1, w27
|
|
ldr x2, [x22, #:lo12:.LANCHOR192]
|
|
add x3, x20, :lo12:.LANCHOR190
|
|
mov w0, 0
|
|
add w27, w27, 1
|
|
bl ftl_prog_page
|
|
mov w0, 1
|
|
strh w0, [x19, 2]
|
|
.L2652:
|
|
ldrb w4, [x21, #:lo12:.LANCHOR131]
|
|
mov w1, w27
|
|
ldr x2, [x22, #:lo12:.LANCHOR192]
|
|
add x3, x20, :lo12:.LANCHOR190
|
|
mov w0, 0
|
|
bl ftl_prog_page
|
|
cmn w0, #1
|
|
ldrh w1, [x19, 2]
|
|
adrp x0, .LANCHOR194
|
|
add w1, w1, 1
|
|
strh w1, [x19, 2]
|
|
beq .L2653
|
|
ldrb w1, [x0, #:lo12:.LANCHOR194]
|
|
cbz w1, .L2654
|
|
.L2653:
|
|
strb wzr, [x0, #:lo12:.LANCHOR194]
|
|
b .L2655
|
|
.L2646:
|
|
cmp w2, 255
|
|
bne .L2649
|
|
add x0, x0, 1
|
|
cmp x0, 8
|
|
bne .L2650
|
|
mov w26, w0
|
|
b .L2649
|
|
.L2644:
|
|
ldr w1, [x29, 120]
|
|
madd w27, w1, w28, w27
|
|
cbnz w0, .L2652
|
|
mov w1, w27
|
|
bl flash_erase_block
|
|
b .L2652
|
|
.L2654:
|
|
cbnz w26, .L2656
|
|
.L2664:
|
|
adrp x0, .LANCHOR191
|
|
ldrb w0, [x0, #:lo12:.LANCHOR191]
|
|
cmp w0, 255
|
|
bne .L2658
|
|
adrp x1, .LANCHOR193
|
|
adrp x0, .LC0
|
|
mov w2, 890
|
|
add x1, x1, :lo12:.LANCHOR193
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2658:
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, 0
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L2656:
|
|
ldrb w19, [x19, 1]
|
|
adrp x20, .LANCHOR193
|
|
adrp x21, .LC0
|
|
add x20, x20, :lo12:.LANCHOR193
|
|
add w19, w19, 1
|
|
add x21, x21, :lo12:.LC0
|
|
adrp x22, .LANCHOR6
|
|
.L2659:
|
|
cmp w19, 7
|
|
bhi .L2664
|
|
ldr x1, [x22, #:lo12:.LANCHOR6]
|
|
add w0, w19, 8
|
|
add x0, x1, x0, sxtw
|
|
ldrb w23, [x0, 32]
|
|
add w0, w23, 127
|
|
and w0, w0, 255
|
|
cmp w0, 125
|
|
bhi .L2660
|
|
mov w2, 881
|
|
mov x1, x20
|
|
mov x0, x21
|
|
bl printf
|
|
.L2661:
|
|
adrp x0, .LANCHOR111
|
|
ldrh w1, [x0, #:lo12:.LANCHOR111]
|
|
mov w0, 0
|
|
mul w1, w1, w23
|
|
bl flash_erase_block
|
|
b .L2662
|
|
.L2660:
|
|
cmp w23, 255
|
|
bne .L2661
|
|
.L2662:
|
|
add w19, w19, 1
|
|
and w19, w19, 65535
|
|
b .L2659
|
|
.size ftl_info_flush, .-ftl_info_flush
|
|
.section .text.ftl_info_blk_init,"ax",@progbits
|
|
.align 2
|
|
.global ftl_info_blk_init
|
|
.type ftl_info_blk_init, %function
|
|
ftl_info_blk_init:
|
|
stp x29, x30, [sp, -112]!
|
|
adrp x0, .LANCHOR195
|
|
adrp x1, .LANCHOR194
|
|
mov w2, 16384
|
|
add x29, sp, 0
|
|
strb wzr, [x0, #:lo12:.LANCHOR195]
|
|
mov w0, 1
|
|
strb w0, [x1, #:lo12:.LANCHOR194]
|
|
adrp x1, .LANCHOR196
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR192
|
|
strb w0, [x1, #:lo12:.LANCHOR196]
|
|
adrp x1, .LANCHOR9
|
|
ldr x0, [x21, #:lo12:.LANCHOR192]
|
|
mov x22, 7
|
|
str x0, [x1, #:lo12:.LANCHOR9]
|
|
adrp x1, .LANCHOR8
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR110
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
adrp x20, .LANCHOR191
|
|
stp x23, x24, [sp, 48]
|
|
adrp x23, .LANCHOR6
|
|
stp x25, x26, [sp, 64]
|
|
adrp x24, .LANCHOR131
|
|
add x1, x0, x1, lsl 2
|
|
stp x27, x28, [sp, 80]
|
|
str x1, [x19, #:lo12:.LANCHOR110]
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
adrp x26, .LANCHOR111
|
|
adrp x0, .LANCHOR197
|
|
mov w1, 0
|
|
mov w2, 16384
|
|
mov w27, 21574
|
|
ldr x0, [x0, #:lo12:.LANCHOR197]
|
|
add x26, x26, :lo12:.LANCHOR111
|
|
add x24, x24, :lo12:.LANCHOR131
|
|
movk w27, 0x494c, lsl 16
|
|
bl ftl_memset
|
|
ldr x1, [x23, #:lo12:.LANCHOR6]
|
|
add x0, x20, :lo12:.LANCHOR191
|
|
strb wzr, [x0, 1]
|
|
ldrb w1, [x1, 40]
|
|
strb w1, [x20, #:lo12:.LANCHOR191]
|
|
strh wzr, [x0, 2]
|
|
.L2680:
|
|
ldr x1, [x23, #:lo12:.LANCHOR6]
|
|
add w0, w22, 8
|
|
sxth w25, w22
|
|
mov w28, w22
|
|
add x0, x1, x0, sxtw
|
|
ldrb w0, [x0, 32]
|
|
cmp w0, 255
|
|
bne .L2679
|
|
.L2684:
|
|
sub x22, x22, #1
|
|
cmn x22, #1
|
|
bne .L2680
|
|
mov w25, 0
|
|
.L2681:
|
|
adrp x24, .LANCHOR19
|
|
ldr w0, [x24, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2685
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w2, 4800
|
|
mov w1, w22
|
|
ldr w3, [x0]
|
|
adrp x0, .LC153
|
|
add x0, x0, :lo12:.LC153
|
|
bl printf
|
|
.L2685:
|
|
cmn w22, #1
|
|
bne .L2686
|
|
ldr x0, [x21, #:lo12:.LANCHOR192]
|
|
mov w1, 0
|
|
mov w2, 16384
|
|
bl ftl_memset
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w1, 21574
|
|
movk w1, 0x494c, lsl 16
|
|
str w1, [x0]
|
|
mov w1, 36
|
|
movk w1, 0x6, lsl 16
|
|
str w1, [x0, 12]
|
|
mov w0, w22
|
|
.L2678:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L2679:
|
|
ldrh w6, [x26]
|
|
adrp x7, .LANCHOR190
|
|
ldrb w4, [x24]
|
|
add x7, x7, :lo12:.LANCHOR190
|
|
ldr x2, [x21, #:lo12:.LANCHOR192]
|
|
mov x3, x7
|
|
str x7, [x29, 96]
|
|
mul w6, w6, w0
|
|
mov w0, 0
|
|
str w6, [x29, 108]
|
|
mov w1, w6
|
|
bl ftl_read_page
|
|
mov w5, w0
|
|
cmn w0, #1
|
|
ldr w6, [x29, 108]
|
|
ldr x7, [x29, 96]
|
|
bne .L2682
|
|
ldrb w4, [x24]
|
|
mov x3, x7
|
|
ldr x2, [x21, #:lo12:.LANCHOR192]
|
|
add w1, w6, 1
|
|
mov w0, 0
|
|
bl ftl_read_page
|
|
mov w5, w0
|
|
.L2682:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2683
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w2, w5
|
|
str w5, [x29, 108]
|
|
mov w3, 749
|
|
mov w1, w28
|
|
ldr w4, [x0]
|
|
adrp x0, .LC152
|
|
add x0, x0, :lo12:.LC152
|
|
bl printf
|
|
ldr w5, [x29, 108]
|
|
.L2683:
|
|
cmn w5, #1
|
|
beq .L2684
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldr w0, [x0]
|
|
cmp w0, w27
|
|
bne .L2684
|
|
mov w22, w25
|
|
b .L2681
|
|
.L2686:
|
|
ldr x1, [x23, #:lo12:.LANCHOR6]
|
|
add w0, w25, 8
|
|
ldr x2, [x21, #:lo12:.LANCHOR192]
|
|
mov w4, 4
|
|
adrp x26, .LANCHOR131
|
|
mov w28, 21574
|
|
add x0, x1, x0, sxtw
|
|
adrp x27, .LC154
|
|
add x26, x26, :lo12:.LANCHOR131
|
|
add x27, x27, :lo12:.LC154
|
|
movk w28, 0x494c, lsl 16
|
|
ldrb w1, [x0, 32]
|
|
add x0, x20, :lo12:.LANCHOR191
|
|
strb w1, [x20, #:lo12:.LANCHOR191]
|
|
strb w25, [x0, 1]
|
|
adrp x25, .LANCHOR190
|
|
mov w0, 0
|
|
add x3, x25, :lo12:.LANCHOR190
|
|
bl flash_get_last_written_page
|
|
sxth w22, w0
|
|
add w0, w0, 1
|
|
ldrb w23, [x20, #:lo12:.LANCHOR191]
|
|
and w0, w0, 65535
|
|
str w0, [x29, 108]
|
|
adrp x0, .LANCHOR111
|
|
ldrh w0, [x0, #:lo12:.LANCHOR111]
|
|
madd w23, w23, w0, w22
|
|
.L2688:
|
|
tbnz w22, #31, .L2692
|
|
ldrb w4, [x26]
|
|
add x5, x25, :lo12:.LANCHOR190
|
|
ldr x2, [x21, #:lo12:.LANCHOR192]
|
|
mov x3, x5
|
|
mov w1, w23
|
|
mov w0, 0
|
|
str x5, [x29, 96]
|
|
bl ftl_read_page
|
|
cmn w0, #1
|
|
beq .L2689
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldr x5, [x29, 96]
|
|
ldr w0, [x0]
|
|
cmp w0, w28
|
|
bne .L2689
|
|
ldr w6, [x5, 8]
|
|
cbnz w6, .L2690
|
|
.L2692:
|
|
ldrh w0, [x29, 108]
|
|
add x20, x20, :lo12:.LANCHOR191
|
|
strh w0, [x20, 2]
|
|
bl ftl_tmp_into_update
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 64]
|
|
add w0, w0, 1
|
|
str w0, [x1, 64]
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
ldr w0, [x24, #:lo12:.LANCHOR19]
|
|
tbnz x0, 14, .L2691
|
|
.L2708:
|
|
mov w0, 0
|
|
b .L2678
|
|
.L2690:
|
|
ldr x0, [x21, #:lo12:.LANCHOR192]
|
|
ldrb w1, [x26]
|
|
lsl w1, w1, 9
|
|
bl js_hash
|
|
cmp w6, w0
|
|
beq .L2692
|
|
mov w1, w6
|
|
mov x0, x27
|
|
bl printf
|
|
.L2689:
|
|
sub w22, w22, #1
|
|
sub w23, w23, #1
|
|
sxth w22, w22
|
|
b .L2688
|
|
.L2691:
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 156]
|
|
adrp x0, .LC155
|
|
add x0, x0, :lo12:.LC155
|
|
bl printf
|
|
b .L2708
|
|
.size ftl_info_blk_init, .-ftl_info_blk_init
|
|
.section .text.ftl_ext_info_flush,"ax",@progbits
|
|
.align 2
|
|
.global ftl_ext_info_flush
|
|
.type ftl_ext_info_flush, %function
|
|
ftl_ext_info_flush:
|
|
stp x29, x30, [sp, -96]!
|
|
adrp x0, .LANCHOR12
|
|
add x29, sp, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
ldr w1, [x0, 520]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
cbz w1, .L2710
|
|
str wzr, [x0, 520]
|
|
.L2710:
|
|
adrp x20, .LANCHOR94
|
|
adrp x22, .LANCHOR198
|
|
adrp x21, .LANCHOR31
|
|
add x20, x20, :lo12:.LANCHOR94
|
|
add x22, x22, :lo12:.LANCHOR198
|
|
add x21, x21, :lo12:.LANCHOR31
|
|
mov w0, 0
|
|
bl ftl_total_vpn_update
|
|
.L2711:
|
|
adrp x23, .LANCHOR110
|
|
mov x24, x23
|
|
.L2714:
|
|
ldr x0, [x23, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 56]
|
|
add w1, w1, 1
|
|
str w1, [x0, 56]
|
|
ldrh w1, [x0, 140]
|
|
ldrh w0, [x20]
|
|
cmp w1, w0
|
|
bcc .L2712
|
|
bl ftl_ext_alloc_new_blk
|
|
.L2712:
|
|
ldr x0, [x24, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x0, 130]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L2713
|
|
adrp x0, .LC0
|
|
mov w2, 2211
|
|
mov x1, x22
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2713:
|
|
ldrb w19, [x21]
|
|
mov w0, 24
|
|
ldr x1, [x24, #:lo12:.LANCHOR110]
|
|
adrp x26, .LANCHOR131
|
|
sub w19, w0, w19
|
|
adrp x0, .LANCHOR74
|
|
adrp x27, .LANCHOR190
|
|
add x25, x27, :lo12:.LANCHOR190
|
|
ldrh w0, [x0, #:lo12:.LANCHOR74]
|
|
ldrh w2, [x1, 130]
|
|
sub w0, w19, w0
|
|
mov w19, 1
|
|
asr w28, w2, w0
|
|
lsl w19, w19, w0
|
|
adrp x0, .LANCHOR111
|
|
sub w19, w19, #1
|
|
and w19, w19, w2
|
|
ldrh w2, [x0, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x1, 140]
|
|
sxth w19, w19
|
|
mov w1, 0
|
|
madd w19, w19, w2, w0
|
|
ldrb w2, [x26, #:lo12:.LANCHOR131]
|
|
mov x0, x25
|
|
lsl w2, w2, 1
|
|
bl ftl_memset
|
|
ldr x0, [x24, #:lo12:.LANCHOR110]
|
|
ldrb w7, [x26, #:lo12:.LANCHOR131]
|
|
str wzr, [x27, #:lo12:.LANCHOR190]
|
|
ldr w0, [x0, 56]
|
|
lsl w1, w7, 9
|
|
str w0, [x25, 4]
|
|
adrp x0, .LANCHOR197
|
|
ldr x6, [x0, #:lo12:.LANCHOR197]
|
|
mov x0, x6
|
|
bl js_hash
|
|
mov x2, x6
|
|
mov w1, w19
|
|
str w0, [x25, 8]
|
|
mov w4, w7
|
|
mov x3, x25
|
|
mov w0, w28
|
|
bl ftl_prog_page
|
|
ldr x2, [x24, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x2, 140]
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
strh w1, [x2, 140]
|
|
cmp w1, 1
|
|
beq .L2714
|
|
cmn w0, #1
|
|
adrp x0, .LANCHOR196
|
|
beq .L2715
|
|
ldrb w1, [x0, #:lo12:.LANCHOR196]
|
|
cbz w1, .L2716
|
|
.L2715:
|
|
strb wzr, [x0, #:lo12:.LANCHOR196]
|
|
b .L2711
|
|
.L2716:
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.size ftl_ext_info_flush, .-ftl_ext_info_flush
|
|
.section .text.ftl_ext_info_init,"ax",@progbits
|
|
.align 2
|
|
.global ftl_ext_info_init
|
|
.type ftl_ext_info_init, %function
|
|
ftl_ext_info_init:
|
|
stp x29, x30, [sp, -128]!
|
|
adrp x0, .LANCHOR121
|
|
adrp x2, .LANCHOR74
|
|
mov w4, 4
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR110
|
|
strh wzr, [x0, #:lo12:.LANCHOR121]
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR197
|
|
stp x27, x28, [sp, 80]
|
|
stp x23, x24, [sp, 48]
|
|
adrp x24, .LANCHOR190
|
|
ldrh w1, [x0, 130]
|
|
adrp x0, .LANCHOR31
|
|
stp x25, x26, [sp, 64]
|
|
add x3, x24, :lo12:.LANCHOR190
|
|
ldrb w19, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w19
|
|
ldrh w19, [x2, #:lo12:.LANCHOR74]
|
|
ldr x2, [x21, #:lo12:.LANCHOR197]
|
|
sub w0, w0, w19
|
|
mov w19, 1
|
|
lsl w19, w19, w0
|
|
sub w19, w19, #1
|
|
asr w22, w1, w0
|
|
and w19, w19, w1
|
|
and w27, w22, 255
|
|
mov w1, w19
|
|
mov w0, w27
|
|
bl flash_get_last_written_page
|
|
sxth w23, w0
|
|
adrp x0, .LANCHOR19
|
|
stp x0, x24, [x29, 112]
|
|
ldr w1, [x0, #:lo12:.LANCHOR19]
|
|
tbz x1, 12, .L2727
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
adrp x1, .LANCHOR199
|
|
and w4, w22, 65535
|
|
mov w3, w23
|
|
mov w2, 2256
|
|
add x1, x1, :lo12:.LANCHOR199
|
|
ldrh w5, [x0, 130]
|
|
adrp x0, .LC156
|
|
add x0, x0, :lo12:.LC156
|
|
bl printf
|
|
.L2727:
|
|
adrp x25, .LANCHOR131
|
|
adrp x26, .LANCHOR111
|
|
mov w28, 20038
|
|
add x25, x25, :lo12:.LANCHOR131
|
|
add x26, x26, :lo12:.LANCHOR111
|
|
mov w24, 0
|
|
movk w28, 0x4549, lsl 16
|
|
.L2728:
|
|
and w22, w23, 65535
|
|
sub w0, w22, w24
|
|
tbnz x0, 15, .L2733
|
|
ldr x0, [x29, 120]
|
|
sub w1, w23, w24
|
|
ldrb w4, [x25]
|
|
add x5, x0, :lo12:.LANCHOR190
|
|
ldrh w0, [x26]
|
|
ldr x2, [x21, #:lo12:.LANCHOR197]
|
|
mov x3, x5
|
|
str x5, [x29, 104]
|
|
madd w1, w0, w19, w1
|
|
mov w0, w27
|
|
bl flash_read_page_en
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L2729
|
|
adrp x0, .LANCHOR12
|
|
ldr x5, [x29, 104]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0]
|
|
cmp w0, w28
|
|
bne .L2729
|
|
ldr w6, [x5, 8]
|
|
cbnz w6, .L2730
|
|
.L2733:
|
|
bl zftl_sblk_list_init
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x0, 140]
|
|
cmp w1, w23
|
|
bgt .L2732
|
|
add w22, w22, 1
|
|
strh w22, [x0, 140]
|
|
bl ftl_ext_info_flush
|
|
.L2732:
|
|
adrp x0, .LANCHOR12
|
|
mov w1, -1
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
strh w1, [x0, 584]
|
|
strh w1, [x0, 586]
|
|
strh w1, [x0, 588]
|
|
strh w1, [x0, 590]
|
|
mov w1, 65535
|
|
str w1, [x0, 560]
|
|
mov w1, -1
|
|
str w1, [x0, 564]
|
|
ldr x1, [x29, 112]
|
|
str wzr, [x0, 520]
|
|
str wzr, [x0, 604]
|
|
str wzr, [x0, 608]
|
|
ldr w1, [x1, #:lo12:.LANCHOR19]
|
|
tbz x1, 12, .L2735
|
|
ldr w3, [x0, 12]
|
|
adrp x1, .LANCHOR199
|
|
adrp x0, .LC158
|
|
mov w4, 0
|
|
mov w2, 0
|
|
add x1, x1, :lo12:.LANCHOR199
|
|
add x0, x0, :lo12:.LC158
|
|
bl printf
|
|
.L2735:
|
|
adrp x0, .LANCHOR72
|
|
mov w1, -1
|
|
ldp x19, x20, [sp, 16]
|
|
strh w1, [x0, #:lo12:.LANCHOR72]
|
|
ldp x21, x22, [sp, 32]
|
|
mov w0, 0
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L2730:
|
|
ldr x0, [x21, #:lo12:.LANCHOR197]
|
|
ldrb w1, [x25]
|
|
lsl w1, w1, 9
|
|
bl js_hash
|
|
cmp w6, w0
|
|
beq .L2733
|
|
adrp x0, .LC157
|
|
mov w1, w6
|
|
add x0, x0, :lo12:.LC157
|
|
bl printf
|
|
.L2729:
|
|
add w24, w24, 1
|
|
b .L2728
|
|
.size ftl_ext_info_init, .-ftl_ext_info_init
|
|
.section .text.ftl_prog_ppa_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_prog_ppa_page
|
|
.type ftl_prog_ppa_page, %function
|
|
ftl_prog_ppa_page:
|
|
adrp x4, .LANCHOR31
|
|
mov w5, 1
|
|
ldrb w6, [x4, #:lo12:.LANCHOR31]
|
|
mov w4, 24
|
|
sub w4, w4, w6
|
|
lsl w7, w5, w4
|
|
sub w7, w7, #1
|
|
lsl w5, w5, w6
|
|
sub w6, w5, #1
|
|
lsr w5, w0, w4
|
|
mov w4, w3
|
|
mov x3, x2
|
|
mov x2, x1
|
|
and w1, w7, w0
|
|
and w0, w6, w5
|
|
b ftl_prog_page
|
|
.size ftl_prog_ppa_page, .-ftl_prog_ppa_page
|
|
.section .text.ftl_write_last_log_page,"ax",@progbits
|
|
.align 2
|
|
.global ftl_write_last_log_page
|
|
.type ftl_write_last_log_page, %function
|
|
ftl_write_last_log_page:
|
|
ldrh w1, [x0, 6]
|
|
cmp w1, 1
|
|
bne .L2749
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x1, .LANCHOR117
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
stp x21, x22, [sp, 32]
|
|
ldr x20, [x1, #:lo12:.LANCHOR117]
|
|
ldrh w22, [x0, 12]
|
|
bl ftl_get_new_free_page
|
|
mov w21, w0
|
|
cmn w0, #1
|
|
beq .L2750
|
|
ldrh w0, [x19]
|
|
add x20, x20, x22, uxth 2
|
|
bl ftl_vpn_decrement
|
|
adrp x0, .LANCHOR188
|
|
mov w1, 15555
|
|
add x7, x0, :lo12:.LANCHOR188
|
|
movk w1, 0xf55f, lsl 16
|
|
str w1, [x0, #:lo12:.LANCHOR188]
|
|
adrp x0, .LANCHOR94
|
|
ldrh w1, [x0, #:lo12:.LANCHOR94]
|
|
adrp x0, .LANCHOR79
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
mul w1, w1, w0
|
|
mov x0, x20
|
|
lsl w1, w1, 2
|
|
bl js_hash
|
|
mov x1, x7
|
|
mov x2, 0
|
|
stp w0, wzr, [x7, 4]
|
|
mov w0, 2
|
|
str wzr, [x7, 12]
|
|
str wzr, [x1, 16]!
|
|
bl ftl_debug_info_fill
|
|
mov x2, x7
|
|
adrp x0, .LANCHOR131
|
|
mov x1, x20
|
|
ldrb w3, [x0, #:lo12:.LANCHOR131]
|
|
mov w0, w21
|
|
bl ftl_prog_ppa_page
|
|
.L2750:
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L2749:
|
|
mov w0, -1
|
|
ret
|
|
.size ftl_write_last_log_page, .-ftl_write_last_log_page
|
|
.section .text.ftl_dump_write_open_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_dump_write_open_sblk
|
|
.type ftl_dump_write_open_sblk, %function
|
|
ftl_dump_write_open_sblk:
|
|
sub sp, sp, #224
|
|
stp x29, x30, [sp, 48]
|
|
add x29, sp, 48
|
|
stp x19, x20, [sp, 64]
|
|
and w20, w0, 65535
|
|
adrp x0, .LANCHOR8
|
|
stp x21, x22, [sp, 80]
|
|
stp x23, x24, [sp, 96]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
stp x25, x26, [sp, 112]
|
|
stp x27, x28, [sp, 128]
|
|
cmp w0, w20
|
|
bls .L2755
|
|
adrp x0, .LANCHOR83
|
|
str x0, [x29, 120]
|
|
ldrb w1, [x0, #:lo12:.LANCHOR83]
|
|
cbnz w1, .L2757
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L2755
|
|
.L2757:
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L2755
|
|
adrp x0, .LANCHOR9
|
|
ubfiz x14, x20, 2, 16
|
|
mov x15, x0
|
|
ldr x1, [x0, #:lo12:.LANCHOR9]
|
|
add x1, x1, x14
|
|
ldrb w1, [x1, 2]
|
|
and w1, w1, 224
|
|
cmp w1, 160
|
|
bne .L2779
|
|
adrp x0, .LANCHOR78
|
|
ldrb w25, [x0, #:lo12:.LANCHOR78]
|
|
.L2758:
|
|
add x21, x29, 176
|
|
adrp x23, .LANCHOR94
|
|
mov w0, w20
|
|
adrp x26, .LANCHOR111
|
|
add x26, x26, :lo12:.LANCHOR111
|
|
mov w27, 0
|
|
strh w20, [x21, -32]!
|
|
mov w28, 0
|
|
add x1, x21, 16
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldrh w1, [x23, #:lo12:.LANCHOR94]
|
|
and w0, w0, 255
|
|
strb w0, [x29, 153]
|
|
strb wzr, [x29, 149]
|
|
strh wzr, [x29, 146]
|
|
mul w0, w0, w1
|
|
strh wzr, [x29, 154]
|
|
strh w0, [x29, 150]
|
|
ldr x0, [x15, #:lo12:.LANCHOR9]
|
|
add x1, x0, x14
|
|
ldr w5, [x0, x14]
|
|
ldrb w2, [x1, 2]
|
|
mov w1, w20
|
|
ldrh w4, [x0, x14]
|
|
adrp x0, .LC159
|
|
ubfx x5, x5, 11, 8
|
|
add x0, x0, :lo12:.LC159
|
|
ubfx x3, x2, 3, 2
|
|
and w4, w4, 2047
|
|
ubfx x2, x2, 5, 3
|
|
bl printf
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
mov x19, x0
|
|
mov w10, 0
|
|
add x0, x23, :lo12:.LANCHOR94
|
|
str x0, [x29, 128]
|
|
.L2759:
|
|
ldr x0, [x29, 128]
|
|
ldrh w0, [x0]
|
|
cmp w0, w27
|
|
bls .L2767
|
|
lsl w22, w27, 1
|
|
mov w28, 0
|
|
sub w0, w22, #1
|
|
add w22, w22, w27
|
|
str w0, [x29, 140]
|
|
sub w22, w22, #1
|
|
adrp x0, .LC160
|
|
add x0, x0, :lo12:.LC160
|
|
str x0, [x29, 112]
|
|
b .L2770
|
|
.L2779:
|
|
mov w25, 1
|
|
b .L2758
|
|
.L2768:
|
|
ldrh w12, [x21, x24]
|
|
mov w0, 65535
|
|
cmp w12, w0
|
|
bne .L2760
|
|
.L2766:
|
|
add w10, w10, 1
|
|
and w10, w10, 65535
|
|
.L2761:
|
|
cmp w25, w10
|
|
bcs .L2768
|
|
add w11, w28, 1
|
|
and w28, w11, 65535
|
|
.L2770:
|
|
ldrb w0, [x29, 153]
|
|
cmp w0, w28
|
|
bls .L2769
|
|
sxtw x24, w28
|
|
mov w10, 1
|
|
add x24, x24, 8
|
|
lsl x24, x24, 1
|
|
b .L2761
|
|
.L2760:
|
|
ldrh w3, [x26]
|
|
cmp w25, 3
|
|
mul w3, w3, w12
|
|
add w0, w3, w10
|
|
bne .L2762
|
|
adrp x1, .LANCHOR36
|
|
ldrb w1, [x1, #:lo12:.LANCHOR36]
|
|
cbz w1, .L2763
|
|
adrp x1, .LANCHOR78
|
|
add w0, w0, w22
|
|
ldrb w3, [x1, #:lo12:.LANCHOR78]
|
|
.L2793:
|
|
orr w3, w0, w3, lsl 24
|
|
b .L2764
|
|
.L2763:
|
|
add w3, w27, w3
|
|
orr w3, w3, w10, lsl 24
|
|
.L2764:
|
|
str w3, [x19, 40]
|
|
mov w1, 1
|
|
stp w10, w12, [x29, 104]
|
|
mov x0, x19
|
|
str w3, [x29, 136]
|
|
bl sblk_read_page
|
|
ldr w13, [x19, 52]
|
|
ldp w10, w12, [x29, 104]
|
|
cmp w13, 512
|
|
ccmn w13, #1, 4, ne
|
|
ldr w3, [x29, 136]
|
|
bne .L2766
|
|
ldr x1, [x19, 24]
|
|
mov w4, w13
|
|
ldr x0, [x19, 8]
|
|
str w10, [x29, 108]
|
|
str w13, [x29, 136]
|
|
ldr w2, [x1, 12]
|
|
str w2, [sp, 32]
|
|
ldr w2, [x1, 8]
|
|
str w2, [sp, 24]
|
|
ldr w2, [x1, 4]
|
|
str w2, [sp, 16]
|
|
mov w2, w27
|
|
ldr w1, [x1]
|
|
str w1, [sp, 8]
|
|
ldr w1, [x0, 12]
|
|
str w1, [sp]
|
|
mov w1, w12
|
|
ldp w5, w6, [x0]
|
|
ldr w7, [x0, 8]
|
|
ldr x0, [x29, 112]
|
|
bl printf
|
|
ldr w13, [x29, 136]
|
|
ldr w10, [x29, 108]
|
|
cmp w13, 512
|
|
bne .L2766
|
|
.L2767:
|
|
mov w4, w10
|
|
mov w3, w28
|
|
mov w2, w27
|
|
mov w1, w20
|
|
adrp x24, .LANCHOR131
|
|
adrp x0, .LC161
|
|
add x0, x0, :lo12:.LC161
|
|
bl printf
|
|
ldr x0, [x19, 8]
|
|
mov w1, 0
|
|
ldrb w2, [x24, #:lo12:.LANCHOR131]
|
|
adrp x25, .LANCHOR19
|
|
adrp x26, .LC162
|
|
add x25, x25, :lo12:.LANCHOR19
|
|
add x26, x26, :lo12:.LC162
|
|
lsl w2, w2, 9
|
|
bl ftl_memset
|
|
ldr x0, [x19, 24]
|
|
mov w1, 0
|
|
ldrb w2, [x24, #:lo12:.LANCHOR131]
|
|
lsl w2, w2, 1
|
|
bl ftl_memset
|
|
.L2771:
|
|
ldrh w0, [x23, #:lo12:.LANCHOR94]
|
|
cmp w0, w27
|
|
bls .L2777
|
|
lsl w0, w27, 1
|
|
str w0, [x29, 140]
|
|
ldr x0, [x29, 120]
|
|
mov w22, 0
|
|
add x28, x0, :lo12:.LANCHOR83
|
|
b .L2778
|
|
.L2762:
|
|
cmp w25, 2
|
|
bne .L2765
|
|
adrp x1, .LANCHOR78
|
|
ldrb w3, [x1, #:lo12:.LANCHOR78]
|
|
ldr w1, [x29, 140]
|
|
add w0, w1, w0
|
|
b .L2793
|
|
.L2765:
|
|
add w3, w27, w3
|
|
b .L2764
|
|
.L2769:
|
|
add w8, w27, 1
|
|
and w27, w8, 65535
|
|
b .L2759
|
|
.L2776:
|
|
ldr w0, [x25]
|
|
tbz x0, 12, .L2772
|
|
mov w2, w22
|
|
mov w1, w27
|
|
mov x0, x26
|
|
bl printf
|
|
.L2772:
|
|
ldrb w1, [x28]
|
|
adrp x2, .LANCHOR111
|
|
sxtw x0, w22
|
|
cbz w1, .L2773
|
|
add x0, x0, 8
|
|
ldrh w1, [x2, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x21, x0, lsl 1]
|
|
mul w0, w0, w1
|
|
orr w0, w0, w27
|
|
str w0, [x19, 40]
|
|
mov x0, x19
|
|
bl sblk_3d_tlc_dump_prog
|
|
.L2774:
|
|
add w22, w22, 1
|
|
and w22, w22, 65535
|
|
.L2778:
|
|
ldrb w0, [x29, 153]
|
|
cmp w0, w22
|
|
bhi .L2776
|
|
add w8, w27, 1
|
|
and w27, w8, 65535
|
|
b .L2771
|
|
.L2773:
|
|
adrp x1, .LANCHOR78
|
|
add x0, x0, 8
|
|
ldrb w1, [x1, #:lo12:.LANCHOR78]
|
|
cmp w1, 2
|
|
bne .L2775
|
|
ldrh w1, [x2, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x21, x0, lsl 1]
|
|
mul w0, w0, w1
|
|
ldr w1, [x29, 140]
|
|
orr w0, w0, w1
|
|
orr w0, w0, 33554432
|
|
str w0, [x19, 40]
|
|
mov x0, x19
|
|
bl sblk_mlc_dump_prog
|
|
b .L2774
|
|
.L2775:
|
|
ldrh w1, [x21, x0, lsl 1]
|
|
mov w6, 1
|
|
ldrh w0, [x2, #:lo12:.LANCHOR111]
|
|
mov w5, 0
|
|
ldrb w4, [x24, #:lo12:.LANCHOR131]
|
|
ldr x3, [x19, 24]
|
|
mul w1, w1, w0
|
|
adrp x0, .LANCHOR31
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
orr w1, w1, w27
|
|
str w1, [x19, 40]
|
|
sub w0, w0, w2
|
|
lsl w6, w6, w2
|
|
ldr x2, [x19, 8]
|
|
sub w6, w6, #1
|
|
lsl w7, w6, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w7
|
|
and w0, w0, w6
|
|
bl flash_prog_page_en
|
|
b .L2774
|
|
.L2777:
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
adrp x0, .LC163
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC163
|
|
bl printf
|
|
.L2755:
|
|
ldp x19, x20, [sp, 64]
|
|
ldp x21, x22, [sp, 80]
|
|
ldp x23, x24, [sp, 96]
|
|
ldp x25, x26, [sp, 112]
|
|
ldp x27, x28, [sp, 128]
|
|
ldp x29, x30, [sp, 48]
|
|
add sp, sp, 224
|
|
ret
|
|
.size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
|
|
.section .text.gc_ink_check_sblk,"ax",@progbits
|
|
.align 2
|
|
.global gc_ink_check_sblk
|
|
.type gc_ink_check_sblk, %function
|
|
gc_ink_check_sblk:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR70
|
|
add x0, x19, :lo12:.LANCHOR70
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
ldrh w1, [x0, 2110]
|
|
ldr x22, [x0, 2184]
|
|
cmp w1, 3
|
|
bhi .L2795
|
|
adrp x0, .L2797
|
|
mov x20, x19
|
|
add x0, x0, :lo12:.L2797
|
|
ldrh w0, [x0,w1,uxtw #1]
|
|
adr x1, .Lrtx2797
|
|
add x0, x1, w0, sxth #2
|
|
br x0
|
|
.Lrtx2797:
|
|
.section .rodata.gc_ink_check_sblk,"a",@progbits
|
|
.align 0
|
|
.align 2
|
|
.L2797:
|
|
.2byte (.L2796 - .Lrtx2797) / 4
|
|
.2byte (.L2798 - .Lrtx2797) / 4
|
|
.2byte (.L2799 - .Lrtx2797) / 4
|
|
.2byte (.L2800 - .Lrtx2797) / 4
|
|
.section .text.gc_ink_check_sblk
|
|
.L2796:
|
|
adrp x0, .LANCHOR107
|
|
add x24, x0, :lo12:.LANCHOR107
|
|
ldrh w0, [x0, #:lo12:.LANCHOR107]
|
|
cmp w0, 7
|
|
bls .L2794
|
|
adrp x0, .LANCHOR57
|
|
ldrb w0, [x0, #:lo12:.LANCHOR57]
|
|
cmp w0, 2
|
|
bls .L2794
|
|
adrp x21, .LANCHOR108
|
|
add x21, x21, :lo12:.LANCHOR108
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl _list_get_gc_head_node
|
|
and w0, w0, 65535
|
|
mov w23, 65535
|
|
cmp w0, w23
|
|
beq .L2794
|
|
adrp x22, .LANCHOR9
|
|
ubfiz x0, x0, 2, 16
|
|
ldr x1, [x22, #:lo12:.LANCHOR9]
|
|
ldrh w0, [x1, x0]
|
|
and w0, w0, 2047
|
|
cmp w0, 2
|
|
bgt .L2794
|
|
add x20, x19, :lo12:.LANCHOR70
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
str x0, [x20, 2184]
|
|
cbz x0, .L2794
|
|
mov x2, x24
|
|
mov w1, 0
|
|
mov x0, x21
|
|
bl _list_pop_index_node
|
|
and w14, w0, 65535
|
|
cmp w14, w23
|
|
bne .L2804
|
|
ldr x0, [x20, 2184]
|
|
bl zbuf_free
|
|
str xzr, [x20, 2184]
|
|
.L2794:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2804:
|
|
add x1, x20, 2162
|
|
mov w0, w14
|
|
bl ftl_get_blk_list_in_sblk
|
|
strb w0, [x20, 2155]
|
|
mov w0, 1
|
|
strh w0, [x20, 2110]
|
|
ldr x0, [x22, #:lo12:.LANCHOR9]
|
|
strh w14, [x20, 2146]
|
|
ubfiz x14, x14, 2, 16
|
|
strh wzr, [x20, 2148]
|
|
ldrh w1, [x0, x14]
|
|
adrp x0, .LANCHOR131
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
ldr x0, [x20, 2184]
|
|
lsl w2, w2, 9
|
|
tbz x1, 0, .L2805
|
|
mov w1, 85
|
|
.L2820:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x0, [x0, 8]
|
|
ldp x29, x30, [sp], 80
|
|
b ftl_memset
|
|
.L2805:
|
|
mov w1, 170
|
|
b .L2820
|
|
.L2798:
|
|
add x20, x19, :lo12:.LANCHOR70
|
|
mov w1, 0
|
|
ldrh w0, [x20, 2146]
|
|
bl ftl_erase_sblk
|
|
mov w0, 2
|
|
strh w0, [x20, 2110]
|
|
b .L2794
|
|
.L2799:
|
|
adrp x21, .LANCHOR111
|
|
mov w24, 65280
|
|
adrp x23, .LANCHOR31
|
|
add x21, x21, :lo12:.LANCHOR111
|
|
add x23, x23, :lo12:.LANCHOR31
|
|
mov w19, 0
|
|
movk w24, 0x55aa, lsl 16
|
|
bl sblk_wait_write_queue_completed
|
|
.L2806:
|
|
add x0, x20, :lo12:.LANCHOR70
|
|
ldrb w1, [x0, 2155]
|
|
cmp w1, w19
|
|
bhi .L2808
|
|
ldrh w1, [x0, 2148]
|
|
adrp x2, .LANCHOR94
|
|
add w1, w1, 1
|
|
ldrh w2, [x2, #:lo12:.LANCHOR94]
|
|
and w1, w1, 65535
|
|
strh w1, [x0, 2148]
|
|
cmp w2, w1
|
|
bhi .L2794
|
|
mov w1, 3
|
|
strh wzr, [x0, 2148]
|
|
strh w1, [x0, 2110]
|
|
b .L2794
|
|
.L2808:
|
|
add x1, x0, x19, sxtw 1
|
|
ldrh w2, [x1, 2162]
|
|
mov w1, 65535
|
|
cmp w2, w1
|
|
beq .L2807
|
|
ldrh w0, [x0, 2148]
|
|
mov w6, 1
|
|
ldrh w1, [x21]
|
|
mov w5, 0
|
|
ldr x3, [x22, 24]
|
|
madd w1, w1, w2, w0
|
|
ldr x2, [x22, 8]
|
|
mov w0, 24
|
|
stp w1, w24, [x2]
|
|
str wzr, [x3]
|
|
ldrb w4, [x23]
|
|
sub w0, w0, w4
|
|
lsl w6, w6, w4
|
|
adrp x4, .LANCHOR131
|
|
sub w6, w6, #1
|
|
ldrb w4, [x4, #:lo12:.LANCHOR131]
|
|
lsl w7, w6, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w7
|
|
and w0, w0, w6
|
|
bl flash_prog_page_en
|
|
.L2807:
|
|
add w19, w19, 1
|
|
and w19, w19, 65535
|
|
b .L2806
|
|
.L2800:
|
|
adrp x25, .LANCHOR111
|
|
add x19, x19, :lo12:.LANCHOR70
|
|
add x25, x25, :lo12:.LANCHOR111
|
|
mov w21, 0
|
|
mov w26, 65535
|
|
bl sblk_wait_write_queue_completed
|
|
.L2809:
|
|
ldrb w0, [x19, 2155]
|
|
cmp w0, w21
|
|
bhi .L2813
|
|
ldrh w0, [x19, 2148]
|
|
adrp x1, .LANCHOR94
|
|
add w0, w0, 1
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
and w0, w0, 65535
|
|
strh w0, [x19, 2148]
|
|
cmp w1, w0
|
|
bhi .L2794
|
|
ldr x0, [x19, 2184]
|
|
strh wzr, [x19, 2110]
|
|
bl zbuf_free
|
|
str xzr, [x19, 2184]
|
|
ldrh w0, [x19, 2112]
|
|
cmp w0, 15
|
|
bhi .L2814
|
|
add w1, w0, 1
|
|
add x0, x19, x0, sxtw 1
|
|
strh w1, [x19, 2112]
|
|
ldrh w1, [x19, 2146]
|
|
strh w1, [x0, 2114]
|
|
.L2815:
|
|
add x19, x20, :lo12:.LANCHOR70
|
|
adrp x0, .LC164
|
|
ldp x21, x22, [sp, 32]
|
|
add x0, x0, :lo12:.LC164
|
|
ldrh w2, [x19, 2112]
|
|
ldrh w1, [x19, 2146]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
b printf
|
|
.L2813:
|
|
add x24, x19, x21, sxtw 1
|
|
add x24, x24, 16
|
|
ldrh w0, [x24, 2146]
|
|
cmp w0, w26
|
|
beq .L2811
|
|
ldrh w1, [x19, 2148]
|
|
ldrh w23, [x25]
|
|
madd w23, w23, w0, w1
|
|
mov w1, 1
|
|
str w23, [x22, 40]
|
|
mov x0, x22
|
|
bl sblk_read_page
|
|
ldr x0, [x22, 8]
|
|
ldr w0, [x0]
|
|
cmp w23, w0
|
|
beq .L2811
|
|
mov w0, w23
|
|
bl ftl_mask_bad_block
|
|
mov w0, -1
|
|
strh w0, [x24, 2146]
|
|
.L2811:
|
|
add w21, w21, 1
|
|
and w21, w21, 65535
|
|
b .L2809
|
|
.L2814:
|
|
ldrh w0, [x19, 2146]
|
|
bl zftl_insert_free_list
|
|
b .L2815
|
|
.L2795:
|
|
strh wzr, [x0, 2110]
|
|
b .L2794
|
|
.size gc_ink_check_sblk, .-gc_ink_check_sblk
|
|
.section .text.ftl_ink_check_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_ink_check_sblk
|
|
.type ftl_ink_check_sblk, %function
|
|
ftl_ink_check_sblk:
|
|
stp x29, x30, [sp, -144]!
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
adrp x24, .LANCHOR9
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 65535
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ubfiz x23, x19, 2, 16
|
|
stp x21, x22, [sp, 32]
|
|
mov w1, w19
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
ldr w3, [x0, x23]
|
|
ldrh w2, [x0, x23]
|
|
adrp x0, .LC165
|
|
add x0, x0, :lo12:.LC165
|
|
ubfx x3, x3, 11, 8
|
|
and w2, w2, 2047
|
|
bl printf
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L2821
|
|
adrp x0, .LANCHOR8
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
cmp w0, w19
|
|
bls .L2821
|
|
add x21, x29, 144
|
|
mov w1, 0
|
|
mov w0, w19
|
|
bl ftl_erase_sblk
|
|
mov w0, w19
|
|
adrp x27, .LANCHOR131
|
|
strh w19, [x21, -32]!
|
|
add x1, x21, 16
|
|
bl ftl_get_blk_list_in_sblk
|
|
strb w0, [x29, 121]
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
mov x20, x0
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
ldrb w2, [x27, #:lo12:.LANCHOR131]
|
|
ldrh w0, [x0, x23]
|
|
lsl w2, w2, 9
|
|
and w0, w0, 2047
|
|
cmp w0, 1
|
|
bgt .L2823
|
|
mov w1, 85
|
|
.L2839:
|
|
ldr x0, [x20, 8]
|
|
adrp x28, .LANCHOR111
|
|
add x28, x28, :lo12:.LANCHOR111
|
|
mov w26, 0
|
|
bl ftl_memset
|
|
bl sblk_wait_write_queue_completed
|
|
mov w7, 65280
|
|
movk w7, 0x55aa, lsl 16
|
|
.L2825:
|
|
adrp x25, .LANCHOR94
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
cmp w0, w26
|
|
bls .L2828
|
|
adrp x25, .LANCHOR31
|
|
mov w22, 0
|
|
add x25, x25, :lo12:.LANCHOR31
|
|
b .L2829
|
|
.L2823:
|
|
mov w1, 170
|
|
b .L2839
|
|
.L2827:
|
|
add x0, x21, x22, sxtw 1
|
|
mov w1, 65535
|
|
ldrh w0, [x0, 16]
|
|
cmp w0, w1
|
|
beq .L2826
|
|
ldrh w1, [x28]
|
|
mov w6, 1
|
|
ldr x2, [x20, 8]
|
|
mov w5, 0
|
|
ldr x3, [x20, 24]
|
|
str w7, [x29, 108]
|
|
madd w1, w1, w0, w26
|
|
mov w0, 24
|
|
stp w1, w7, [x2]
|
|
str wzr, [x3]
|
|
ldrb w4, [x25]
|
|
sub w0, w0, w4
|
|
lsl w6, w6, w4
|
|
ldrb w4, [x27, #:lo12:.LANCHOR131]
|
|
sub w6, w6, #1
|
|
lsl w8, w6, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w8
|
|
and w0, w0, w6
|
|
bl flash_prog_page_en
|
|
ldr w7, [x29, 108]
|
|
.L2826:
|
|
add w22, w22, 1
|
|
and w22, w22, 65535
|
|
.L2829:
|
|
ldrb w0, [x29, 121]
|
|
cmp w0, w22
|
|
bhi .L2827
|
|
add w26, w26, 1
|
|
and w26, w26, 65535
|
|
b .L2825
|
|
.L2828:
|
|
adrp x26, .LANCHOR111
|
|
add x26, x26, :lo12:.LANCHOR111
|
|
mov w28, 0
|
|
.L2830:
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
cmp w0, w28
|
|
bls .L2835
|
|
mov w27, 0
|
|
b .L2836
|
|
.L2834:
|
|
sxtw x22, w27
|
|
mov w1, 65535
|
|
add x22, x22, 8
|
|
lsl x22, x22, 1
|
|
ldrh w0, [x21, x22]
|
|
cmp w0, w1
|
|
beq .L2832
|
|
ldrh w4, [x26]
|
|
mov w1, 1
|
|
madd w4, w4, w0, w28
|
|
mov x0, x20
|
|
str w4, [x20, 40]
|
|
str w4, [x29, 108]
|
|
bl sblk_read_page
|
|
ldr x0, [x20, 8]
|
|
ldr w4, [x29, 108]
|
|
ldr w0, [x0]
|
|
cmp w4, w0
|
|
beq .L2832
|
|
mov w0, w4
|
|
bl ftl_mask_bad_block
|
|
mov w0, -1
|
|
strh w0, [x21, x22]
|
|
.L2832:
|
|
add w2, w27, 1
|
|
and w27, w2, 65535
|
|
.L2836:
|
|
ldrb w0, [x29, 121]
|
|
cmp w0, w27
|
|
bhi .L2834
|
|
add w3, w28, 1
|
|
and w28, w3, 65535
|
|
b .L2830
|
|
.L2835:
|
|
mov x0, x20
|
|
bl zbuf_free
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
mov w1, w19
|
|
ldr w3, [x0, x23]
|
|
ldrh w2, [x0, x23]
|
|
adrp x0, .LC166
|
|
add x0, x0, :lo12:.LC166
|
|
ubfx x3, x3, 11, 8
|
|
and w2, w2, 2047
|
|
bl printf
|
|
.L2821:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 144
|
|
ret
|
|
.size ftl_ink_check_sblk, .-ftl_ink_check_sblk
|
|
.section .text.ftl_alloc_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_alloc_sblk
|
|
.type ftl_alloc_sblk, %function
|
|
ftl_alloc_sblk:
|
|
stp x29, x30, [sp, -80]!
|
|
cmp w0, 5
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
and w23, w0, 65535
|
|
stp x21, x22, [sp, 32]
|
|
mov w1, w23
|
|
stp x19, x20, [sp, 16]
|
|
cset w22, eq
|
|
mov w21, w0
|
|
str x25, [sp, 64]
|
|
mov w0, 0
|
|
bl zftl_get_free_sblk
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L2842
|
|
adrp x0, .LANCHOR9
|
|
ubfiz x25, x19, 2, 16
|
|
lsl w22, w22, 1
|
|
mov w24, w19
|
|
ldr x20, [x0, #:lo12:.LANCHOR9]
|
|
mov x23, x0
|
|
add x20, x20, x25
|
|
ldrb w1, [x20, 2]
|
|
tst w1, 224
|
|
beq .L2843
|
|
adrp x1, .LANCHOR200
|
|
adrp x0, .LC0
|
|
mov w2, 1012
|
|
add x1, x1, :lo12:.LANCHOR200
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2843:
|
|
ldrb w0, [x20, 2]
|
|
bfi w0, w21, 5, 3
|
|
ubfx x1, x0, 3, 2
|
|
orr w1, w22, w1
|
|
bfi w0, w1, 3, 2
|
|
strb w0, [x20, 2]
|
|
and w1, w0, 24
|
|
cmp w1, 24
|
|
bne .L2844
|
|
cbnz w22, .L2844
|
|
mov w1, 1
|
|
bfi w0, w1, 3, 2
|
|
strb w0, [x20, 2]
|
|
.L2844:
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x0, 150]
|
|
cbz w0, .L2845
|
|
ldr x0, [x23, #:lo12:.LANCHOR9]
|
|
ldrh w0, [x0, x25]
|
|
tst x0, 2047
|
|
bne .L2845
|
|
cbnz w22, .L2845
|
|
mov w0, w24
|
|
bl ftl_ink_check_sblk
|
|
.L2845:
|
|
mov w0, w19
|
|
ldr x25, [sp, 64]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2842:
|
|
bl print_ftl_debug_info
|
|
adrp x20, .LC167
|
|
mov w2, w21
|
|
add x20, x20, :lo12:.LC167
|
|
mov w1, w19
|
|
mov x0, x20
|
|
bl printf
|
|
mov w1, w23
|
|
mov w0, 0
|
|
bl zftl_get_free_sblk
|
|
and w19, w0, 65535
|
|
mov w2, w21
|
|
mov w1, w19
|
|
mov x0, x20
|
|
bl printf
|
|
bl dump_all_list_info
|
|
mov w2, 1031
|
|
adrp x1, .LANCHOR200
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR200
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L2845
|
|
.size ftl_alloc_sblk, .-ftl_alloc_sblk
|
|
.section .text.ftl_open_sblk_init,"ax",@progbits
|
|
.align 2
|
|
.global ftl_open_sblk_init
|
|
.type ftl_open_sblk_init, %function
|
|
ftl_open_sblk_init:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR79
|
|
stp x23, x24, [sp, 48]
|
|
adrp x22, .LC168
|
|
stp x19, x20, [sp, 16]
|
|
adrp x24, .LANCHOR94
|
|
mov x19, x0
|
|
mov w23, w1
|
|
add x24, x24, :lo12:.LANCHOR94
|
|
add x21, x21, :lo12:.LANCHOR79
|
|
add x22, x22, :lo12:.LC168
|
|
stp x25, x26, [sp, 64]
|
|
.L2855:
|
|
mov w25, 65535
|
|
.L2856:
|
|
mov w0, w23
|
|
bl ftl_alloc_sblk
|
|
and w20, w0, 65535
|
|
cmp w20, w25
|
|
beq .L2856
|
|
mov w1, 0
|
|
mov w0, w20
|
|
bl ftl_erase_sblk
|
|
add x1, x19, 16
|
|
mov w0, w20
|
|
bl ftl_get_blk_list_in_sblk
|
|
and w0, w0, 255
|
|
ldrh w1, [x24]
|
|
cmp w23, 2
|
|
strb w0, [x19, 9]
|
|
strh w20, [x19]
|
|
strh wzr, [x19, 2]
|
|
mul w0, w1, w0
|
|
strb wzr, [x19, 5]
|
|
strh w0, [x19, 6]
|
|
strh wzr, [x19, 10]
|
|
strb w23, [x19, 4]
|
|
beq .L2859
|
|
ldrb w0, [x21]
|
|
mul w0, w1, w0
|
|
and w0, w0, 65535
|
|
.L2857:
|
|
ldrb w2, [x21]
|
|
adrp x26, .LANCHOR11
|
|
strh w0, [x19, 12]
|
|
ubfiz x25, x20, 1, 16
|
|
mul w2, w2, w1
|
|
adrp x1, .LANCHOR117
|
|
ldr x3, [x1, #:lo12:.LANCHOR117]
|
|
mov w1, 255
|
|
lsl w2, w2, 2
|
|
add x0, x3, x0, uxth 2
|
|
bl ftl_memset
|
|
ldr x0, [x26, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x19, 6]
|
|
strh w1, [x0, x25]
|
|
ldrb w0, [x19, 9]
|
|
cbnz w0, .L2854
|
|
mov w1, w20
|
|
mov x0, x22
|
|
bl printf
|
|
ldr x0, [x26, #:lo12:.LANCHOR11]
|
|
mov w1, -1
|
|
strh w1, [x0, x25]
|
|
mov w0, 7
|
|
strb w0, [x19, 4]
|
|
b .L2855
|
|
.L2859:
|
|
mov w0, 0
|
|
b .L2857
|
|
.L2854:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.size ftl_open_sblk_init, .-ftl_open_sblk_init
|
|
.section .text.ftl_low_format_data_init,"ax",@progbits
|
|
.align 2
|
|
.global ftl_low_format_data_init
|
|
.type ftl_low_format_data_init, %function
|
|
ftl_low_format_data_init:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x0, .LANCHOR197
|
|
mov w2, 16384
|
|
mov w1, 0
|
|
add x29, sp, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR197]
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR110
|
|
str x21, [sp, 32]
|
|
bl ftl_memset
|
|
bl zftl_sblk_list_init
|
|
mov w0, 1
|
|
bl ftl_alloc_sblk
|
|
mov w1, 0
|
|
mov w21, w0
|
|
bl ftl_erase_sblk
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
mov w0, w21
|
|
add x1, x1, 672
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w20, [x0, 672]
|
|
strh wzr, [x0, 690]
|
|
mov w0, 65533
|
|
sub w1, w20, #1
|
|
cmp w0, w1, uxth
|
|
bcs .L2863
|
|
adrp x1, .LANCHOR201
|
|
adrp x0, .LC0
|
|
mov w2, 2484
|
|
add x1, x1, :lo12:.LANCHOR201
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2863:
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w2, 256
|
|
mov w1, 255
|
|
add x0, x0, 416
|
|
strh wzr, [x0, 280]
|
|
bl ftl_memset
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w2, 4096
|
|
mov w1, 0
|
|
add x0, x0, 704
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR31
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w2
|
|
adrp x2, .LANCHOR74
|
|
strh w21, [x1, 416]
|
|
adrp x21, .LANCHOR12
|
|
ldrh w2, [x2, #:lo12:.LANCHOR74]
|
|
strh w20, [x1, 692]
|
|
sub w0, w0, w2
|
|
asr w0, w20, w0
|
|
strh w0, [x1, 694]
|
|
mov w0, 1
|
|
strh w0, [x1, 688]
|
|
adrp x0, .LANCHOR202
|
|
ldrh w0, [x0, #:lo12:.LANCHOR202]
|
|
strh w0, [x1, 698]
|
|
mov w1, 20038
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
movk w1, 0x4549, lsl 16
|
|
str w1, [x0]
|
|
bl ftl_alloc_sys_blk
|
|
mov w20, w0
|
|
mov w1, 0
|
|
bl ftl_erase_phy_blk
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w1, 2
|
|
strh w20, [x0, 130]
|
|
mov w20, -1
|
|
strh wzr, [x0, 140]
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
add x0, x0, 16
|
|
strh w20, [x0, 568]
|
|
strh w20, [x0, 570]
|
|
strh w20, [x0, 572]
|
|
strh w20, [x0, 574]
|
|
bl ftl_open_sblk_init
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
mov w1, 3
|
|
add x0, x0, 48
|
|
bl ftl_open_sblk_init
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
add x0, x0, 136
|
|
ldrh w2, [x1, 134]
|
|
strh w2, [x0, -10]
|
|
strh w20, [x0, -56]
|
|
mov w2, -1
|
|
strh w20, [x0, -6]
|
|
str w2, [x0, 408]
|
|
strh wzr, [x0, -12]
|
|
strh wzr, [x0, -16]
|
|
strh wzr, [x0, -14]
|
|
strh w2, [x1, 126]
|
|
mov w2, 256
|
|
str wzr, [x0, 384]
|
|
mov w1, 255
|
|
str wzr, [x0, 388]
|
|
str wzr, [x0, 392]
|
|
bl ftl_memset
|
|
mov w2, 128
|
|
mov w1, 255
|
|
ldr x0, [x21, #:lo12:.LANCHOR12]
|
|
add x0, x0, 392
|
|
bl ftl_memset
|
|
bl ftl_ext_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
bl ftl_info_blk_init
|
|
ldr x21, [sp, 32]
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size ftl_low_format_data_init, .-ftl_low_format_data_init
|
|
.section .text.ftl_low_format,"ax",@progbits
|
|
.align 2
|
|
.global ftl_low_format
|
|
.type ftl_low_format, %function
|
|
ftl_low_format:
|
|
stp x29, x30, [sp, -80]!
|
|
mov w1, 0
|
|
adrp x0, .LC169
|
|
add x0, x0, :lo12:.LC169
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR203
|
|
stp x21, x22, [sp, 32]
|
|
add x20, x20, :lo12:.LANCHOR203
|
|
stp x25, x26, [sp, 64]
|
|
adrp x22, .LANCHOR6
|
|
mov x25, x22
|
|
stp x23, x24, [sp, 48]
|
|
mov w19, 8
|
|
adrp x23, .LC0
|
|
bl printf
|
|
.L2868:
|
|
ldr x0, [x22, #:lo12:.LANCHOR6]
|
|
add x0, x0, x19, sxtw
|
|
ldrb w21, [x0, 32]
|
|
add w0, w21, 127
|
|
and w0, w0, 255
|
|
cmp w0, 125
|
|
bhi .L2866
|
|
mov w2, 2539
|
|
mov x1, x20
|
|
add x0, x23, :lo12:.LC0
|
|
bl printf
|
|
.L2866:
|
|
cmp w21, 255
|
|
beq .L2867
|
|
adrp x0, .LANCHOR111
|
|
ldrh w1, [x0, #:lo12:.LANCHOR111]
|
|
mov w0, 0
|
|
mul w1, w1, w21
|
|
bl flash_erase_block
|
|
.L2867:
|
|
add w19, w19, 1
|
|
cmp w19, 16
|
|
bne .L2868
|
|
bl sblk_init
|
|
adrp x22, .LANCHOR9
|
|
bl ftl_info_blk_init
|
|
adrp x19, .LANCHOR8
|
|
adrp x0, .LANCHOR192
|
|
mov w2, 16384
|
|
mov w1, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR192]
|
|
bl ftl_memset
|
|
ldr x0, [x22, #:lo12:.LANCHOR9]
|
|
mov w3, 1
|
|
ldrh w2, [x19, #:lo12:.LANCHOR8]
|
|
add x2, x0, x2, lsl 2
|
|
.L2869:
|
|
cmp x0, x2
|
|
bne .L2870
|
|
adrp x21, .LANCHOR110
|
|
mov w1, 21574
|
|
adrp x24, .LANCHOR68
|
|
add x24, x24, :lo12:.LANCHOR68
|
|
ldr x0, [x21, #:lo12:.LANCHOR110]
|
|
movk w1, 0x494c, lsl 16
|
|
mov w20, 0
|
|
mov w26, 1
|
|
strh wzr, [x0, 148]
|
|
str w1, [x0]
|
|
.L2871:
|
|
ldrh w0, [x19, #:lo12:.LANCHOR8]
|
|
adrp x23, .LANCHOR75
|
|
cmp w0, w20
|
|
bhi .L2880
|
|
ldr x0, [x25, #:lo12:.LANCHOR6]
|
|
mov w4, 3
|
|
ldrb w2, [x23, #:lo12:.LANCHOR75]
|
|
mov w10, 15
|
|
ldr x6, [x21, #:lo12:.LANCHOR110]
|
|
cmp w2, 1
|
|
ldr x1, [x22, #:lo12:.LANCHOR9]
|
|
ldrb w0, [x0, 47]
|
|
csinc w4, w4, wzr, ne
|
|
and w4, w4, 255
|
|
and w8, w2, 65535
|
|
ldrh w3, [x6, 148]
|
|
udiv w0, w0, w2
|
|
and w5, w0, 65535
|
|
ubfiz x0, x0, 2, 8
|
|
add x0, x0, 4
|
|
add w20, w5, 1
|
|
add x0, x1, x0
|
|
.L2883:
|
|
cmp w2, 4
|
|
add x1, x1, 4
|
|
csel w7, w10, w4, eq
|
|
strb w7, [x1, -1]
|
|
ldrb w7, [x1, -2]
|
|
orr w7, w7, -32
|
|
strb w7, [x1, -2]
|
|
cmp x1, x0
|
|
bne .L2883
|
|
mul w5, w5, w8
|
|
mov w4, 16
|
|
add w0, w8, w3
|
|
sdiv w4, w4, w2
|
|
add w0, w5, w0, uxth
|
|
strh w0, [x6, 148]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
add w4, w20, w4
|
|
and w4, w4, 65535
|
|
strh w4, [x6, 134]
|
|
tbz x0, 12, .L2884
|
|
adrp x0, .LC170
|
|
mov w3, w20
|
|
mov w2, 128
|
|
mov w1, 2598
|
|
add x0, x0, :lo12:.LC170
|
|
bl printf
|
|
.L2884:
|
|
ldr x0, [x21, #:lo12:.LANCHOR110]
|
|
mov w2, 128
|
|
mov w1, 255
|
|
add x0, x0, 160
|
|
bl ftl_memset
|
|
adrp x0, .LANCHOR112
|
|
ldrb w10, [x23, #:lo12:.LANCHOR75]
|
|
adrp x3, .LANCHOR74
|
|
ldr x2, [x21, #:lo12:.LANCHOR110]
|
|
ldrb w16, [x0, #:lo12:.LANCHOR112]
|
|
adrp x0, .LANCHOR31
|
|
and w11, w10, 65535
|
|
ldr x15, [x22, #:lo12:.LANCHOR9]
|
|
ldrb w4, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
ldrh w8, [x2, 134]
|
|
sub w0, w0, w4
|
|
ldrh w4, [x3, #:lo12:.LANCHOR74]
|
|
mul w1, w20, w11
|
|
mov w3, 0
|
|
sub w0, w0, w4
|
|
mov w4, 1
|
|
and w1, w1, 65535
|
|
lsl w4, w4, w0
|
|
and w4, w4, 65535
|
|
.L2885:
|
|
cmp w20, w8
|
|
bcc .L2891
|
|
ldrh w0, [x19, #:lo12:.LANCHOR8]
|
|
strh w3, [x2, 112]
|
|
sub w0, w0, w8
|
|
strh wzr, [x2, 114]
|
|
strh w0, [x2, 116]
|
|
strh wzr, [x2, 118]
|
|
strh w8, [x2, 132]
|
|
bl ftl_low_format_data_init
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L2870:
|
|
ldrb w1, [x0, 2]
|
|
add x0, x0, 4
|
|
and w1, w1, 31
|
|
bfi w1, w3, 3, 2
|
|
strb w1, [x0, -2]
|
|
b .L2869
|
|
.L2880:
|
|
adrp x0, .LANCHOR81
|
|
strh w20, [x24]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR81]
|
|
cbnz w0, .L2872
|
|
mov w0, w20
|
|
bl ftl_test_block
|
|
.L2872:
|
|
ldrb w11, [x23, #:lo12:.LANCHOR75]
|
|
adrp x0, .LANCHOR112
|
|
ldr x6, [x22, #:lo12:.LANCHOR9]
|
|
mov w7, 0
|
|
ldrb w14, [x0, #:lo12:.LANCHOR112]
|
|
mov w10, 0
|
|
ldr x13, [x21, #:lo12:.LANCHOR110]
|
|
mov w8, 0
|
|
mul w12, w20, w11
|
|
add x6, x6, x20, uxth 2
|
|
.L2873:
|
|
cmp w8, w14
|
|
bcs .L2877
|
|
add w15, w11, w7
|
|
b .L2878
|
|
.L2876:
|
|
add w1, w7, w12
|
|
mov w0, w8
|
|
bl flash_check_bad_block
|
|
cbz w0, .L2874
|
|
ldrb w1, [x6, 3]
|
|
lsl w0, w26, w7
|
|
orr w0, w0, w1
|
|
strb w0, [x6, 3]
|
|
ldrh w0, [x13, 148]
|
|
add w0, w0, 1
|
|
strh w0, [x13, 148]
|
|
.L2875:
|
|
add w7, w7, 1
|
|
.L2878:
|
|
cmp w7, w15
|
|
bne .L2876
|
|
add w8, w8, 1
|
|
sub w12, w12, w11
|
|
and w8, w8, 65535
|
|
b .L2873
|
|
.L2874:
|
|
add w10, w10, 1
|
|
and w10, w10, 65535
|
|
b .L2875
|
|
.L2877:
|
|
cbnz w10, .L2879
|
|
ldrb w0, [x6, 2]
|
|
orr w0, w0, -32
|
|
strb w0, [x6, 2]
|
|
.L2879:
|
|
add w20, w20, 1
|
|
and w20, w20, 65535
|
|
b .L2871
|
|
.L2891:
|
|
add x13, x15, x20, uxth 2
|
|
mov w6, 0
|
|
mov w12, 0
|
|
mov w5, 0
|
|
ldrb w0, [x13, 2]
|
|
orr w0, w0, -32
|
|
strb w0, [x13, 2]
|
|
.L2886:
|
|
cmp w5, w16
|
|
bcc .L2893
|
|
add w20, w20, 1
|
|
add w1, w1, w11
|
|
and w20, w20, 65535
|
|
and w1, w1, 65535
|
|
b .L2885
|
|
.L2889:
|
|
ldrb w14, [x13, 3]
|
|
add w17, w12, w7
|
|
asr w14, w14, w17
|
|
tbnz x14, 0, .L2887
|
|
cmp w10, 1
|
|
bls .L2892
|
|
and w0, w0, 1
|
|
add w0, w1, w0
|
|
and w0, w0, 65535
|
|
.L2888:
|
|
add x14, x2, x3, sxtw 1
|
|
add w3, w3, 1
|
|
and w3, w3, 65535
|
|
add w0, w0, w6
|
|
strh w0, [x14, 160]
|
|
.L2887:
|
|
add x7, x7, 1
|
|
.L2890:
|
|
and w0, w7, 65535
|
|
cmp w0, w11
|
|
bcc .L2889
|
|
add w5, w5, 1
|
|
add w6, w4, w6
|
|
and w5, w5, 65535
|
|
add w12, w12, w10
|
|
and w6, w6, 65535
|
|
b .L2886
|
|
.L2892:
|
|
mov w0, w1
|
|
b .L2888
|
|
.L2893:
|
|
mov x7, 0
|
|
b .L2890
|
|
.size ftl_low_format, .-ftl_low_format
|
|
.section .text.ftl_re_low_format,"ax",@progbits
|
|
.align 2
|
|
.global ftl_re_low_format
|
|
.type ftl_re_low_format, %function
|
|
ftl_re_low_format:
|
|
stp x29, x30, [sp, -16]!
|
|
mov w1, 1
|
|
adrp x0, .LC171
|
|
add x0, x0, :lo12:.LC171
|
|
add x29, sp, 0
|
|
bl printf
|
|
bl sblk_init
|
|
bl ftl_info_blk_init
|
|
bl ftl_ext_info_init
|
|
adrp x0, .LANCHOR110
|
|
adrp x2, .LANCHOR8
|
|
mov w3, 0
|
|
mov w4, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
mov w5, 0
|
|
ldrh w7, [x2, #:lo12:.LANCHOR8]
|
|
adrp x2, .LANCHOR9
|
|
ldr x2, [x2, #:lo12:.LANCHOR9]
|
|
ldrh w1, [x0, 134]
|
|
add x2, x2, x1, uxth 2
|
|
.L2904:
|
|
cmp w1, w7
|
|
bcc .L2908
|
|
strh w5, [x0, 114]
|
|
strh w4, [x0, 118]
|
|
strh w3, [x0, 116]
|
|
strh wzr, [x0, 122]
|
|
strh wzr, [x0, 120]
|
|
strh wzr, [x0, 124]
|
|
bl ftl_low_format_data_init
|
|
mov w0, 0
|
|
ldp x29, x30, [sp], 16
|
|
ret
|
|
.L2908:
|
|
ldrb w6, [x2, 2]
|
|
and w8, w6, 31
|
|
strb w8, [x2, 2]
|
|
ands w6, w6, 24
|
|
bne .L2905
|
|
add w5, w5, 1
|
|
and w5, w5, 65535
|
|
.L2906:
|
|
add w1, w1, 1
|
|
add x2, x2, 4
|
|
and w1, w1, 65535
|
|
b .L2904
|
|
.L2905:
|
|
cmp w6, 16
|
|
bne .L2907
|
|
add w4, w4, 1
|
|
and w4, w4, 65535
|
|
b .L2906
|
|
.L2907:
|
|
add w3, w3, 1
|
|
and w3, w3, 65535
|
|
b .L2906
|
|
.size ftl_re_low_format, .-ftl_re_low_format
|
|
.section .text.pm_alloc_new_blk,"ax",@progbits
|
|
.align 2
|
|
.global pm_alloc_new_blk
|
|
.type pm_alloc_new_blk, %function
|
|
pm_alloc_new_blk:
|
|
stp x29, x30, [sp, -64]!
|
|
adrp x2, .LANCHOR79
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR110
|
|
stp x21, x22, [sp, 32]
|
|
ldr x1, [x20, #:lo12:.LANCHOR110]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x1, 690]
|
|
str x23, [sp, 48]
|
|
add w0, w0, 1
|
|
and w0, w0, 65535
|
|
strh w0, [x1, 690]
|
|
cmp w2, w0
|
|
bls .L2911
|
|
add x0, x1, x0, sxtw 1
|
|
ldrh w1, [x0, 672]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L2912
|
|
.L2911:
|
|
adrp x19, .LC168
|
|
add x19, x19, :lo12:.LC168
|
|
mov w23, 65535
|
|
adrp x22, .LANCHOR9
|
|
.L2913:
|
|
mov w0, 1
|
|
bl ftl_alloc_sblk
|
|
and w21, w0, 65535
|
|
cmp w21, w23
|
|
beq .L2913
|
|
mov w1, 0
|
|
mov w0, w21
|
|
bl ftl_erase_sblk
|
|
add x14, x20, :lo12:.LANCHOR110
|
|
ldr x1, [x20, #:lo12:.LANCHOR110]
|
|
mov w0, w21
|
|
add x1, x1, 672
|
|
bl ftl_get_blk_list_in_sblk
|
|
tst w0, 65535
|
|
bne .L2914
|
|
mov w1, w21
|
|
mov x0, x19
|
|
bl printf
|
|
ldr x0, [x22, #:lo12:.LANCHOR9]
|
|
add x21, x0, x21, uxth 2
|
|
ldrb w0, [x21, 2]
|
|
orr w0, w0, -32
|
|
strb w0, [x21, 2]
|
|
b .L2913
|
|
.L2914:
|
|
ldr x0, [x14]
|
|
adrp x1, .LANCHOR204
|
|
mov w2, 1
|
|
mov w19, 0
|
|
add x0, x0, 416
|
|
str w2, [x1, #:lo12:.LANCHOR204]
|
|
mov w1, 65535
|
|
strh wzr, [x0, 274]
|
|
.L2916:
|
|
ldrh w2, [x0]
|
|
cmp w2, w1
|
|
beq .L2915
|
|
add w19, w19, 1
|
|
add x0, x0, 2
|
|
and w19, w19, 65535
|
|
cmp w19, 128
|
|
bne .L2916
|
|
adrp x1, .LANCHOR205
|
|
adrp x0, .LC0
|
|
mov w2, 264
|
|
add x1, x1, :lo12:.LANCHOR205
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2915:
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
add x19, x0, x19, sxtw 1
|
|
ldrh w1, [x0, 688]
|
|
strh w21, [x19, 416]
|
|
add w1, w1, 1
|
|
strh w1, [x0, 688]
|
|
.L2912:
|
|
ldr x1, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x1, 690]
|
|
add x0, x0, 336
|
|
ldrh w19, [x1, x0, lsl 1]
|
|
mov w0, 65533
|
|
sub w1, w19, #1
|
|
cmp w0, w1, uxth
|
|
bcs .L2918
|
|
adrp x1, .LANCHOR205
|
|
adrp x0, .LC0
|
|
mov w2, 270
|
|
add x1, x1, :lo12:.LANCHOR205
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2918:
|
|
adrp x1, .LANCHOR31
|
|
mov w2, 24
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR31]
|
|
sub w2, w2, w1
|
|
adrp x1, .LANCHOR74
|
|
strh wzr, [x0, 696]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR74]
|
|
strh w19, [x0, 692]
|
|
sub w2, w2, w1
|
|
asr w4, w19, w2
|
|
strh w4, [x0, 694]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L2921
|
|
mov w0, 1
|
|
and w4, w4, 65535
|
|
lsl w2, w0, w2
|
|
mov w3, w19
|
|
adrp x0, .LC172
|
|
sub w2, w2, #1
|
|
mov w1, w19
|
|
add x0, x0, :lo12:.LC172
|
|
bl printf
|
|
.L2921:
|
|
mov w0, 0
|
|
ldr x23, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 64
|
|
ret
|
|
.size pm_alloc_new_blk, .-pm_alloc_new_blk
|
|
.section .text.pm_write_page,"ax",@progbits
|
|
.align 2
|
|
.global pm_write_page
|
|
.type pm_write_page, %function
|
|
pm_write_page:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, w0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR94
|
|
stp x23, x24, [sp, 48]
|
|
adrp x22, .LANCHOR111
|
|
adrp x24, .LANCHOR110
|
|
mov x23, x1
|
|
add x21, x21, :lo12:.LANCHOR94
|
|
mov x20, x24
|
|
add x22, x22, :lo12:.LANCHOR111
|
|
stp x25, x26, [sp, 64]
|
|
str x27, [sp, 80]
|
|
mov w25, 65535
|
|
.L2929:
|
|
ldr x0, [x24, #:lo12:.LANCHOR110]
|
|
ldr w1, [x0, 48]
|
|
ldrh w2, [x0, 696]
|
|
add w1, w1, 1
|
|
str w1, [x0, 48]
|
|
ldrh w1, [x21]
|
|
cmp w2, w1
|
|
bcs .L2930
|
|
ldrh w0, [x0, 692]
|
|
cmp w0, w25
|
|
bne .L2931
|
|
.L2930:
|
|
bl pm_alloc_new_blk
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
.L2931:
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x0, 692]
|
|
cmp w0, w25
|
|
bne .L2932
|
|
adrp x1, .LANCHOR206
|
|
adrp x0, .LC0
|
|
mov w2, 303
|
|
add x1, x1, :lo12:.LANCHOR206
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L2932:
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
adrp x27, .LANCHOR207
|
|
ldrh w1, [x22]
|
|
mov w2, 64
|
|
ldrh w26, [x0, 692]
|
|
ldrh w0, [x0, 696]
|
|
madd w26, w26, w1, w0
|
|
ldr x0, [x27, #:lo12:.LANCHOR207]
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
ldr x6, [x27, #:lo12:.LANCHOR207]
|
|
ldr x7, [x20, #:lo12:.LANCHOR110]
|
|
str w19, [x6]
|
|
ldr w0, [x7, 48]
|
|
str w0, [x6, 4]
|
|
adrp x0, .LANCHOR131
|
|
ldrb w8, [x0, #:lo12:.LANCHOR131]
|
|
mov x0, x23
|
|
lsl w1, w8, 9
|
|
bl js_hash
|
|
str w0, [x6, 8]
|
|
ldrb w0, [x7, 694]
|
|
mov x2, x23
|
|
mov w1, w26
|
|
mov w4, w8
|
|
mov x3, x6
|
|
bl ftl_prog_page
|
|
ldr x2, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x2, 696]
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
strh w1, [x2, 696]
|
|
cmp w1, 1
|
|
adrp x1, .LANCHOR208
|
|
beq .L2933
|
|
ldrb w3, [x1, #:lo12:.LANCHOR208]
|
|
cbz w3, .L2934
|
|
.L2933:
|
|
strb wzr, [x1, #:lo12:.LANCHOR208]
|
|
b .L2929
|
|
.L2934:
|
|
cmn w0, #1
|
|
bne .L2936
|
|
mov w1, w26
|
|
adrp x0, .LC173
|
|
add x0, x0, :lo12:.LC173
|
|
bl printf
|
|
b .L2929
|
|
.L2936:
|
|
ldrh w0, [x2, 698]
|
|
cmp w19, w0
|
|
bcs .L2937
|
|
add x19, x2, x19, uxtw 2
|
|
str w26, [x19, 704]
|
|
.L2937:
|
|
mov w0, 0
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.size pm_write_page, .-pm_write_page
|
|
.section .text.flash_info_flush,"ax",@progbits
|
|
.align 2
|
|
.global flash_info_flush
|
|
.type flash_info_flush, %function
|
|
flash_info_flush:
|
|
stp x29, x30, [sp, -112]!
|
|
adrp x0, .LANCHOR19
|
|
add x29, sp, 0
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
tbz x0, 12, .L2943
|
|
adrp x2, .LANCHOR209
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR209
|
|
mov w1, 365
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L2943:
|
|
adrp x23, .LANCHOR210
|
|
adrp x20, .LANCHOR6
|
|
mov w2, 64
|
|
mov w1, 0
|
|
ldr x0, [x23, #:lo12:.LANCHOR210]
|
|
adrp x21, .LANCHOR211
|
|
adrp x22, .LANCHOR2
|
|
adrp x24, .LC175
|
|
adrp x25, .LANCHOR144
|
|
add x22, x22, :lo12:.LANCHOR2
|
|
add x24, x24, :lo12:.LC175
|
|
add x25, x25, :lo12:.LANCHOR144
|
|
bl ftl_memset
|
|
add x27, x21, :lo12:.LANCHOR211
|
|
ldr x1, [x20, #:lo12:.LANCHOR6]
|
|
mov w3, 16
|
|
mov w2, 4
|
|
adrp x0, .LC174
|
|
add x0, x0, :lo12:.LC174
|
|
mov w26, 0
|
|
bl rknand_print_hex
|
|
ldr x6, [x20, #:lo12:.LANCHOR6]
|
|
add x0, x6, 16
|
|
ldr w1, [x6, 8]
|
|
bl js_hash
|
|
str w0, [x6, 12]
|
|
.L2944:
|
|
add x28, x21, :lo12:.LANCHOR211
|
|
ldrb w4, [x21, #:lo12:.LANCHOR211]
|
|
ldrh w19, [x22]
|
|
mov x0, x24
|
|
mov w1, w4
|
|
ldrh w3, [x28, 2]
|
|
stp w3, w4, [x29, 104]
|
|
mov w2, w3
|
|
bl printf
|
|
ldrh w0, [x25]
|
|
ldrh w1, [x28, 2]
|
|
sub w0, w0, #1
|
|
cmp w1, w0
|
|
ldp w3, w4, [x29, 104]
|
|
blt .L2945
|
|
ldr x6, [x20, #:lo12:.LANCHOR6]
|
|
ldrb w7, [x28, 1]
|
|
strh wzr, [x28, 2]
|
|
ldr w0, [x6, 4]
|
|
ldrh w1, [x6, 16]
|
|
add w0, w0, 1
|
|
str w0, [x6, 4]
|
|
ldrb w0, [x21, #:lo12:.LANCHOR211]
|
|
add w1, w1, 1
|
|
strb w0, [x28, 1]
|
|
mov x0, x6
|
|
strb w7, [x21, #:lo12:.LANCHOR211]
|
|
strh w1, [x0, 16]!
|
|
ldr w1, [x6, 8]
|
|
bl js_hash
|
|
ldrh w19, [x22]
|
|
str w0, [x6, 12]
|
|
mul w19, w19, w7
|
|
.L2954:
|
|
mov w1, w19
|
|
mov w0, 0
|
|
bl flash_erase_block
|
|
b .L2946
|
|
.L2949:
|
|
mov w26, 1
|
|
b .L2944
|
|
.L2945:
|
|
madd w19, w19, w4, w3
|
|
cbz w1, .L2954
|
|
.L2946:
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
mov w1, w19
|
|
ldr x3, [x23, #:lo12:.LANCHOR210]
|
|
mov w5, 1
|
|
mov w4, 4
|
|
ldr w0, [x2, 4]
|
|
str w0, [x3]
|
|
mov w0, 21321
|
|
movk w0, 0x5359, lsl 16
|
|
str w0, [x3, 4]
|
|
mov w0, 0
|
|
bl flash_prog_page_en
|
|
cmn w0, #1
|
|
ldrh w1, [x27, 2]
|
|
add w1, w1, 1
|
|
strh w1, [x27, 2]
|
|
bne .L2947
|
|
mov w1, w19
|
|
adrp x0, .LC176
|
|
add x0, x0, :lo12:.LC176
|
|
bl printf
|
|
b .L2944
|
|
.L2947:
|
|
cbz w26, .L2949
|
|
ldp x19, x20, [sp, 16]
|
|
mov w0, 0
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.size flash_info_flush, .-flash_info_flush
|
|
.section .text.flash_info_blk_init,"ax",@progbits
|
|
.align 2
|
|
.global flash_info_blk_init
|
|
.type flash_info_blk_init, %function
|
|
flash_info_blk_init:
|
|
stp x29, x30, [sp, -96]!
|
|
adrp x0, .LANCHOR19
|
|
add x29, sp, 0
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR6
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
str x27, [sp, 80]
|
|
tbz x0, 12, .L2956
|
|
ldr x4, [x20, #:lo12:.LANCHOR6]
|
|
adrp x2, .LANCHOR212
|
|
adrp x0, .LC177
|
|
mov w3, 2048
|
|
add x2, x2, :lo12:.LANCHOR212
|
|
mov w1, 50
|
|
add x0, x0, :lo12:.LC177
|
|
bl printf
|
|
.L2956:
|
|
adrp x24, .LANCHOR2
|
|
mov w23, 21321
|
|
add x26, x24, :lo12:.LANCHOR2
|
|
mov w22, 4
|
|
adrp x21, .LANCHOR210
|
|
movk w23, 0x5359, lsl 16
|
|
.L2960:
|
|
mov w19, 0
|
|
.L2959:
|
|
ldrh w1, [x26]
|
|
mov w4, 4
|
|
ldr x3, [x21, #:lo12:.LANCHOR210]
|
|
mov w0, 0
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
add x27, x21, :lo12:.LANCHOR210
|
|
add x25, x20, :lo12:.LANCHOR6
|
|
madd w1, w1, w22, w19
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2957
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
ldr w0, [x2]
|
|
cmp w0, w23
|
|
beq .L2958
|
|
.L2957:
|
|
add w19, w19, 1
|
|
cmp w19, 4
|
|
bne .L2959
|
|
add w22, w22, 1
|
|
cmp w22, 16
|
|
bne .L2960
|
|
.L2986:
|
|
mov w0, -1
|
|
.L2955:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x27, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2968:
|
|
ldr x0, [x25]
|
|
ldr w1, [x0]
|
|
cmp w1, w23
|
|
bne .L2969
|
|
ldr w22, [x0, 4]
|
|
.L2962:
|
|
add x23, x19, :lo12:.LANCHOR211
|
|
ldrh w0, [x24, #:lo12:.LANCHOR2]
|
|
ldr x3, [x21, #:lo12:.LANCHOR210]
|
|
mov w4, 4
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
ldrb w1, [x23, 1]
|
|
mul w1, w1, w0
|
|
mov w0, 0
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2963
|
|
ldr x0, [x20, #:lo12:.LANCHOR6]
|
|
mov w1, 21321
|
|
movk w1, 0x5359, lsl 16
|
|
ldr w2, [x0]
|
|
cmp w2, w1
|
|
bne .L2963
|
|
ldr w1, [x0, 4]
|
|
cmp w22, w1
|
|
bcs .L2963
|
|
ldrb w1, [x0, 37]
|
|
ldrb w0, [x0, 36]
|
|
strb w1, [x19, #:lo12:.LANCHOR211]
|
|
strb w0, [x23, 1]
|
|
.L2963:
|
|
ldrb w1, [x19, #:lo12:.LANCHOR211]
|
|
add x22, x19, :lo12:.LANCHOR211
|
|
ldr x3, [x21, #:lo12:.LANCHOR210]
|
|
mov w4, 4
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
mov w0, 0
|
|
bl flash_get_last_written_page
|
|
and w25, w0, 65535
|
|
add w1, w25, 1
|
|
ldrb w23, [x19, #:lo12:.LANCHOR211]
|
|
strh w1, [x22, 2]
|
|
mov w22, 0
|
|
ldrh w1, [x24, #:lo12:.LANCHOR2]
|
|
mov w24, 21321
|
|
movk w24, 0x5359, lsl 16
|
|
mul w23, w23, w1
|
|
add w23, w23, w0, sxth
|
|
.L2964:
|
|
sub w0, w25, w22
|
|
sxth w19, w0
|
|
tbz w19, #31, .L2967
|
|
cmn w19, #1
|
|
bne .L2966
|
|
ldr x0, [x20, #:lo12:.LANCHOR6]
|
|
ldr w1, [x0]
|
|
adrp x0, .LC178
|
|
add x0, x0, :lo12:.LC178
|
|
bl printf
|
|
b .L2986
|
|
.L2967:
|
|
ldr x3, [x21, #:lo12:.LANCHOR210]
|
|
mov w4, 4
|
|
ldr x2, [x20, #:lo12:.LANCHOR6]
|
|
sub w1, w23, w22
|
|
mov w0, 0
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
beq .L2965
|
|
ldr x0, [x20, #:lo12:.LANCHOR6]
|
|
ldr w0, [x0]
|
|
cmp w0, w24
|
|
beq .L2966
|
|
.L2965:
|
|
add w22, w22, 1
|
|
b .L2964
|
|
.L2966:
|
|
cmp w22, 1
|
|
bls .L2970
|
|
bl flash_info_flush
|
|
.L2970:
|
|
mov w0, 0
|
|
b .L2955
|
|
.L2958:
|
|
adrp x19, .LANCHOR211
|
|
add x1, x19, :lo12:.LANCHOR211
|
|
ldrb w3, [x2, 37]
|
|
mov w4, 4
|
|
ldrb w0, [x2, 36]
|
|
strb w3, [x1, 1]
|
|
ldrh w1, [x26]
|
|
ldr x3, [x27]
|
|
strb w0, [x19, #:lo12:.LANCHOR211]
|
|
mul w1, w1, w0
|
|
mov w0, 0
|
|
bl flash_read_page_en
|
|
cmn w0, #1
|
|
bne .L2968
|
|
.L2969:
|
|
mov w22, 0
|
|
b .L2962
|
|
.size flash_info_blk_init, .-flash_info_blk_init
|
|
.section .text.nand_flash_init,"ax",@progbits
|
|
.align 2
|
|
.global nand_flash_init
|
|
.type nand_flash_init, %function
|
|
nand_flash_init:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR19
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
str x27, [sp, 80]
|
|
tbz x0, 12, .L2988
|
|
adrp x2, .LANCHOR213
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR213
|
|
mov w1, 3451
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L2988:
|
|
adrp x0, .LANCHOR169
|
|
adrp x24, .LANCHOR21
|
|
adrp x22, .LANCHOR47
|
|
add x25, x22, :lo12:.LANCHOR47
|
|
str wzr, [x0, #:lo12:.LANCHOR169]
|
|
mov x0, x19
|
|
bl nandc_init
|
|
adrp x19, .LANCHOR32
|
|
add x0, x19, :lo12:.LANCHOR32
|
|
str x0, [x24, #:lo12:.LANCHOR21]
|
|
adrp x0, .LANCHOR23
|
|
adrp x23, .LANCHOR31
|
|
mov x26, x25
|
|
mov w1, 1
|
|
mov w20, 0
|
|
strb w1, [x0, #:lo12:.LANCHOR23]
|
|
mov w27, 44
|
|
mov w0, 3
|
|
mov w2, 8
|
|
strb w0, [x23, #:lo12:.LANCHOR31]
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR29
|
|
add x0, x0, :lo12:.LANCHOR29
|
|
bl ftl_memset
|
|
mov w2, 32
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR145
|
|
add x0, x0, :lo12:.LANCHOR145
|
|
bl ftl_memset
|
|
.L2994:
|
|
mov x1, x25
|
|
mov w0, w20
|
|
bl flash_read_id
|
|
cbnz w20, .L2989
|
|
ldrb w0, [x26]
|
|
sub w0, w0, #1
|
|
and w0, w0, 255
|
|
cmp w0, 253
|
|
bls .L2990
|
|
.L2992:
|
|
mov w22, -2
|
|
.L2987:
|
|
mov w0, w22
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L2990:
|
|
ldrb w0, [x26, 1]
|
|
cmp w0, 255
|
|
beq .L2992
|
|
.L2989:
|
|
ldrb w0, [x25]
|
|
cmp w0, 181
|
|
bne .L2993
|
|
strb w27, [x25]
|
|
.L2993:
|
|
add w20, w20, 1
|
|
add x25, x25, 8
|
|
and w20, w20, 255
|
|
cmp w20, 4
|
|
bne .L2994
|
|
adrp x0, .LANCHOR214
|
|
add x8, x0, :lo12:.LANCHOR214
|
|
add x8, x8, 1
|
|
mov x7, x0
|
|
add x12, x22, :lo12:.LANCHOR47
|
|
mov x10, 0
|
|
.L2997:
|
|
ldrb w2, [x8, -1]
|
|
mov w11, w10
|
|
lsl x25, x10, 5
|
|
mov x1, x12
|
|
mov x0, x8
|
|
bl flash_mem_cmp8
|
|
cbnz w0, .L2995
|
|
add x0, x7, :lo12:.LANCHOR214
|
|
ubfiz x11, x11, 5, 32
|
|
add x25, x0, x25
|
|
add x0, x0, x11
|
|
adrp x1, .LANCHOR215
|
|
add x4, x1, :lo12:.LANCHOR215
|
|
ldrb w3, [x0, 22]
|
|
mov x0, 0
|
|
.L2996:
|
|
lsl x5, x0, 5
|
|
mov w2, w0
|
|
ldrb w5, [x5, x4]
|
|
cmp w5, w3
|
|
beq .L2998
|
|
add x0, x0, 1
|
|
cmp x0, 4
|
|
bne .L2996
|
|
mov w2, w0
|
|
.L2998:
|
|
ubfiz x0, x2, 5, 32
|
|
add x1, x1, :lo12:.LANCHOR215
|
|
add x1, x1, x0
|
|
mov w2, 32
|
|
adrp x0, .LANCHOR25
|
|
add x20, x19, :lo12:.LANCHOR32
|
|
add x0, x0, :lo12:.LANCHOR25
|
|
adrp x26, .LANCHOR27
|
|
bl ftl_memcpy
|
|
mov w2, 32
|
|
mov x1, x25
|
|
mov x0, x20
|
|
bl ftl_memcpy
|
|
ldrb w0, [x26, #:lo12:.LANCHOR27]
|
|
cmp w0, 8
|
|
bhi .L2999
|
|
ldrb w0, [x20, 20]
|
|
cmp w0, 60
|
|
bls .L2999
|
|
mov w0, 60
|
|
strb w0, [x20, 20]
|
|
.L2999:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3029
|
|
adrp x2, .LANCHOR213
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR213
|
|
mov w1, 3478
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L3029:
|
|
ldr x0, [x24, #:lo12:.LANCHOR21]
|
|
ldrh w0, [x0, 10]
|
|
cmp w0, 1023
|
|
bls .L3000
|
|
mov w0, 2
|
|
strb w0, [x23, #:lo12:.LANCHOR31]
|
|
.L3000:
|
|
mov w0, 16384
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR173
|
|
adrp x23, .LANCHOR6
|
|
add x20, x19, :lo12:.LANCHOR32
|
|
adrp x25, .LANCHOR48
|
|
str x0, [x1, #:lo12:.LANCHOR173]
|
|
mov w0, 16384
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR163
|
|
str x0, [x1, #:lo12:.LANCHOR163]
|
|
mov w0, 2048
|
|
bl ftl_malloc
|
|
str x0, [x23, #:lo12:.LANCHOR6]
|
|
mov w0, 64
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR172
|
|
str x0, [x1, #:lo12:.LANCHOR172]
|
|
mov w0, 64
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR165
|
|
str x0, [x1, #:lo12:.LANCHOR165]
|
|
mov w0, 64
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR210
|
|
str x0, [x1, #:lo12:.LANCHOR210]
|
|
adrp x0, .LANCHOR216
|
|
strb wzr, [x0, #:lo12:.LANCHOR216]
|
|
bl flash_die_info_init
|
|
ldrb w0, [x20, 18]
|
|
bl flash_lsb_page_tbl_build
|
|
ldrb w0, [x20, 20]
|
|
adrp x20, .LANCHOR171
|
|
bl nandc_bch_sel
|
|
str xzr, [x20, #:lo12:.LANCHOR171]
|
|
ldr x2, [x24, #:lo12:.LANCHOR21]
|
|
ldrh w0, [x2, 16]
|
|
ubfx x1, x0, 8, 3
|
|
strb w1, [x25, #:lo12:.LANCHOR48]
|
|
adrp x1, .LANCHOR183
|
|
ubfx x3, x0, 3, 1
|
|
strb w3, [x1, #:lo12:.LANCHOR183]
|
|
adrp x1, .LANCHOR44
|
|
ubfx x3, x0, 4, 1
|
|
strb w3, [x1, #:lo12:.LANCHOR44]
|
|
adrp x1, .LANCHOR83
|
|
ubfx x3, x0, 12, 1
|
|
strb w3, [x1, #:lo12:.LANCHOR83]
|
|
adrp x1, .LANCHOR80
|
|
ubfx x3, x0, 13, 1
|
|
strb w3, [x1, #:lo12:.LANCHOR80]
|
|
adrp x1, .LANCHOR35
|
|
ubfx x3, x0, 11, 1
|
|
strb w3, [x1, #:lo12:.LANCHOR35]
|
|
adrp x3, .LANCHOR124
|
|
ldrb w1, [x2, 31]
|
|
ldrb w2, [x2, 28]
|
|
ubfx x4, x1, 1, 1
|
|
strb w4, [x3, #:lo12:.LANCHOR124]
|
|
adrp x3, .LANCHOR217
|
|
ubfx x4, x1, 2, 1
|
|
strb w4, [x3, #:lo12:.LANCHOR217]
|
|
adrp x3, .LANCHOR1
|
|
ubfx x4, x0, 14, 1
|
|
lsr w0, w0, 15
|
|
strb w4, [x3, #:lo12:.LANCHOR1]
|
|
adrp x3, .LANCHOR81
|
|
strb w0, [x3, #:lo12:.LANCHOR81]
|
|
adrp x0, .LANCHOR0
|
|
ubfx x3, x1, 3, 1
|
|
ubfx x1, x1, 4, 1
|
|
strb w2, [x0, #:lo12:.LANCHOR0]
|
|
adrp x0, .LANCHOR30
|
|
strb w3, [x0, #:lo12:.LANCHOR30]
|
|
adrp x0, .LANCHOR36
|
|
strb w1, [x0, #:lo12:.LANCHOR36]
|
|
adrp x1, .LANCHOR22
|
|
mov w0, 60
|
|
strb w0, [x1, #:lo12:.LANCHOR22]
|
|
ldrb w0, [x26, #:lo12:.LANCHOR27]
|
|
cmp w0, 9
|
|
bne .L3001
|
|
mov w3, 70
|
|
strb w3, [x1, #:lo12:.LANCHOR22]
|
|
.L3001:
|
|
add x1, x19, :lo12:.LANCHOR32
|
|
adrp x24, .LANCHOR24
|
|
strb w2, [x24, #:lo12:.LANCHOR24]
|
|
ldrb w2, [x1, 31]
|
|
tbz x2, 0, .L3002
|
|
ldrb w1, [x1, 29]
|
|
cbz w1, .L3003
|
|
mov w1, 2
|
|
.L3061:
|
|
strb w1, [x24, #:lo12:.LANCHOR24]
|
|
.L3002:
|
|
cmp w0, 8
|
|
bne .L3004
|
|
ldrb w0, [x22, #:lo12:.LANCHOR47]
|
|
mov w1, 137
|
|
cmp w0, 44
|
|
ccmp w0, w1, 4, ne
|
|
bne .L3004
|
|
add x0, x19, :lo12:.LANCHOR32
|
|
ldrb w0, [x0, 28]
|
|
cmp w0, 3
|
|
bne .L3004
|
|
strb wzr, [x24, #:lo12:.LANCHOR24]
|
|
.L3004:
|
|
add x1, x19, :lo12:.LANCHOR32
|
|
adrp x27, .LANCHOR16
|
|
ldrb w0, [x1, 19]
|
|
ldrh w1, [x1, 16]
|
|
strb w0, [x27, #:lo12:.LANCHOR16]
|
|
tbz x1, 6, .L3006
|
|
sub w1, w0, #17
|
|
and w1, w1, 255
|
|
cmp w1, 2
|
|
ccmp w0, 21, 4, hi
|
|
bne .L3007
|
|
adrp x1, micron_read_retrial
|
|
add x1, x1, :lo12:micron_read_retrial
|
|
str x1, [x20, #:lo12:.LANCHOR171]
|
|
cmp w0, 21
|
|
adrp x0, .LANCHOR166
|
|
beq .L3008
|
|
mov w1, 15
|
|
.L3063:
|
|
strb w1, [x0, #:lo12:.LANCHOR166]
|
|
.L3006:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3017
|
|
adrp x2, .LANCHOR213
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR213
|
|
mov w1, 3571
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L3017:
|
|
adrp x26, .LANCHOR26
|
|
ldrb w0, [x25, #:lo12:.LANCHOR48]
|
|
strb wzr, [x26, #:lo12:.LANCHOR26]
|
|
tbz x0, 0, .L3018
|
|
ldrb w0, [x22, #:lo12:.LANCHOR47]
|
|
cmp w0, 155
|
|
beq .L3019
|
|
mov w0, 4
|
|
bl flash_set_interface_mode
|
|
mov w0, 4
|
|
bl nandc_set_if_mode
|
|
.L3019:
|
|
mov w0, 1
|
|
bl flash_set_interface_mode
|
|
mov w0, 1
|
|
.L3065:
|
|
bl nandc_set_if_mode
|
|
bl flash_info_blk_init
|
|
mov w22, w0
|
|
cmn w0, #1
|
|
bne .L3021
|
|
ldr x0, [x23, #:lo12:.LANCHOR6]
|
|
mov w1, 17
|
|
strb w1, [x0, 32]
|
|
adrp x0, .LANCHOR33
|
|
strb wzr, [x0, #:lo12:.LANCHOR33]
|
|
mov w0, 0
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2987
|
|
.L2995:
|
|
add x10, x10, 1
|
|
add x8, x8, 32
|
|
cmp x10, 49
|
|
bne .L2997
|
|
b .L2992
|
|
.L3003:
|
|
mov w1, 3
|
|
b .L3061
|
|
.L3008:
|
|
mov w1, 4
|
|
b .L3063
|
|
.L3007:
|
|
sub w1, w0, #65
|
|
cmp w0, 33
|
|
and w1, w1, 255
|
|
ccmp w1, 1, 0, ne
|
|
bhi .L3010
|
|
adrp x0, toshiba_read_retrial
|
|
add x0, x0, :lo12:toshiba_read_retrial
|
|
str x0, [x20, #:lo12:.LANCHOR171]
|
|
adrp x0, .LANCHOR18
|
|
mov w1, 4
|
|
strb w1, [x0, #:lo12:.LANCHOR18]
|
|
.L3067:
|
|
mov w1, 7
|
|
.L3066:
|
|
adrp x0, .LANCHOR166
|
|
b .L3063
|
|
.L3010:
|
|
sub w2, w0, #34
|
|
sub w1, w0, #67
|
|
and w2, w2, 255
|
|
and w1, w1, 255
|
|
cmp w2, 1
|
|
ccmp w1, 1, 0, hi
|
|
bhi .L3011
|
|
adrp x2, toshiba_read_retrial
|
|
add x2, x2, :lo12:toshiba_read_retrial
|
|
str x2, [x20, #:lo12:.LANCHOR171]
|
|
cmp w0, 35
|
|
mov w2, 68
|
|
ccmp w0, w2, 4, ne
|
|
adrp x0, .LANCHOR166
|
|
beq .L3012
|
|
mov w2, 7
|
|
.L3062:
|
|
strb w2, [x0, #:lo12:.LANCHOR166]
|
|
cmp w1, 1
|
|
adrp x0, .LANCHOR18
|
|
bhi .L3014
|
|
mov w1, 4
|
|
.L3064:
|
|
strb w1, [x0, #:lo12:.LANCHOR18]
|
|
b .L3006
|
|
.L3012:
|
|
mov w2, 17
|
|
b .L3062
|
|
.L3014:
|
|
mov w1, 5
|
|
b .L3064
|
|
.L3011:
|
|
sub w1, w0, #36
|
|
and w1, w1, 255
|
|
cmp w1, 1
|
|
bhi .L3015
|
|
adrp x0, toshiba_3d_read_retrial
|
|
add x0, x0, :lo12:toshiba_3d_read_retrial
|
|
str x0, [x20, #:lo12:.LANCHOR171]
|
|
b .L3067
|
|
.L3015:
|
|
cmp w0, 50
|
|
bne .L3016
|
|
adrp x0, samsung_read_retrial
|
|
mov w1, 25
|
|
add x0, x0, :lo12:samsung_read_retrial
|
|
str x0, [x20, #:lo12:.LANCHOR171]
|
|
b .L3066
|
|
.L3016:
|
|
cmp w0, 81
|
|
bne .L3006
|
|
adrp x0, ymtc_3d_read_retrial
|
|
add x0, x0, :lo12:ymtc_3d_read_retrial
|
|
str x0, [x20, #:lo12:.LANCHOR171]
|
|
adrp x0, .LANCHOR166
|
|
mov w1, 7
|
|
strb w1, [x0, #:lo12:.LANCHOR166]
|
|
adrp x0, .LANCHOR50
|
|
strb wzr, [x0, #:lo12:.LANCHOR50]
|
|
b .L3006
|
|
.L3018:
|
|
mov w0, 4
|
|
b .L3065
|
|
.L3021:
|
|
add x19, x19, :lo12:.LANCHOR32
|
|
ldrb w0, [x19, 7]
|
|
cmp w0, 9
|
|
bne .L3022
|
|
ldr x0, [x23, #:lo12:.LANCHOR6]
|
|
ldrb w0, [x0, 20]
|
|
cmp w0, 1
|
|
beq .L3022
|
|
strb wzr, [x24, #:lo12:.LANCHOR24]
|
|
.L3022:
|
|
ldrb w0, [x27, #:lo12:.LANCHOR16]
|
|
sub w0, w0, #1
|
|
and w0, w0, 255
|
|
cmp w0, 7
|
|
bhi .L3023
|
|
adrp x0, hynix_read_retrial
|
|
add x0, x0, :lo12:hynix_read_retrial
|
|
str x0, [x20, #:lo12:.LANCHOR171]
|
|
.L3023:
|
|
ldrb w0, [x25, #:lo12:.LANCHOR48]
|
|
tbz x0, 2, .L3025
|
|
ldr x0, [x23, #:lo12:.LANCHOR6]
|
|
ldrb w0, [x0, 19]
|
|
cbz w0, .L3025
|
|
adrp x0, .LANCHOR211
|
|
ldrb w1, [x0, #:lo12:.LANCHOR211]
|
|
adrp x0, .LANCHOR2
|
|
ldrh w0, [x0, #:lo12:.LANCHOR2]
|
|
mul w1, w1, w0
|
|
mov w0, 0
|
|
bl flash_ddr_para_scan
|
|
ldrb w0, [x26, #:lo12:.LANCHOR26]
|
|
cbnz w0, .L3025
|
|
ldr x0, [x23, #:lo12:.LANCHOR6]
|
|
strb wzr, [x0, 19]
|
|
bl flash_info_flush
|
|
.L3025:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3027
|
|
adrp x2, .LANCHOR213
|
|
adrp x0, .LC94
|
|
add x2, x2, :lo12:.LANCHOR213
|
|
mov w1, 3674
|
|
add x0, x0, :lo12:.LC94
|
|
bl printf
|
|
.L3027:
|
|
bl nand_flash_print_info
|
|
mov w22, 0
|
|
b .L2987
|
|
.size nand_flash_init, .-nand_flash_init
|
|
.section .text.ftl_sysblk_dump,"ax",@progbits
|
|
.align 2
|
|
.global ftl_sysblk_dump
|
|
.type ftl_sysblk_dump, %function
|
|
ftl_sysblk_dump:
|
|
sub sp, sp, #144
|
|
stp x29, x30, [sp, 48]
|
|
add x29, sp, 48
|
|
stp x19, x20, [sp, 64]
|
|
mov w20, 0
|
|
stp x23, x24, [sp, 96]
|
|
and w23, w0, 65535
|
|
stp x25, x26, [sp, 112]
|
|
mov w0, 1
|
|
stp x27, x28, [sp, 128]
|
|
adrp x25, .LANCHOR94
|
|
stp x21, x22, [sp, 80]
|
|
bl buf_alloc
|
|
ldr x28, [x0, 8]
|
|
adrp x26, .LANCHOR111
|
|
adrp x27, .LANCHOR131
|
|
mov x24, x0
|
|
add x25, x25, :lo12:.LANCHOR94
|
|
add x26, x26, :lo12:.LANCHOR111
|
|
add x27, x27, :lo12:.LANCHOR131
|
|
mov w19, 0
|
|
.L3069:
|
|
ldrh w0, [x25]
|
|
cmp w0, w19
|
|
bhi .L3071
|
|
add x1, x28, 704
|
|
mov w3, 32
|
|
mov w2, 4
|
|
adrp x0, .LC179
|
|
add x0, x0, :lo12:.LC179
|
|
bl rknand_print_hex
|
|
mov x0, x24
|
|
bl zbuf_free
|
|
cbz w20, .L3072
|
|
adrp x1, .LANCHOR218
|
|
adrp x0, .LC0
|
|
mov w2, 1619
|
|
add x1, x1, :lo12:.LANCHOR218
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3072:
|
|
mov w0, w20
|
|
ldp x19, x20, [sp, 64]
|
|
ldp x21, x22, [sp, 80]
|
|
ldp x23, x24, [sp, 96]
|
|
ldp x25, x26, [sp, 112]
|
|
ldp x27, x28, [sp, 128]
|
|
ldp x29, x30, [sp, 48]
|
|
add sp, sp, 144
|
|
ret
|
|
.L3071:
|
|
ldrh w21, [x26]
|
|
ldrb w3, [x27]
|
|
ldr x1, [x24, 8]
|
|
ldr x2, [x24, 24]
|
|
madd w21, w21, w23, w19
|
|
mov w0, w21
|
|
bl ftl_read_ppa_page
|
|
mov w22, w0
|
|
ldr x1, [x24, 24]
|
|
mov w4, w0
|
|
ldr x0, [x24, 8]
|
|
mov w3, w21
|
|
ldr w2, [x1, 12]
|
|
str w2, [sp, 32]
|
|
ldr w2, [x1, 8]
|
|
str w2, [sp, 24]
|
|
ldr w2, [x1, 4]
|
|
str w2, [sp, 16]
|
|
mov w2, w19
|
|
add w19, w19, 1
|
|
ldr w1, [x1]
|
|
and w19, w19, 65535
|
|
str w1, [sp, 8]
|
|
ldr w1, [x0, 12]
|
|
str w1, [sp]
|
|
mov w1, w23
|
|
ldp w5, w6, [x0]
|
|
ldr w7, [x0, 8]
|
|
adrp x0, .LC160
|
|
add x0, x0, :lo12:.LC160
|
|
bl printf
|
|
cmp w22, 512
|
|
ccmn w22, #1, 4, ne
|
|
csinc w20, w20, wzr, ne
|
|
b .L3069
|
|
.size ftl_sysblk_dump, .-ftl_sysblk_dump
|
|
.section .text.ftl_open_sblk_recovery,"ax",@progbits
|
|
.align 2
|
|
.global ftl_open_sblk_recovery
|
|
.type ftl_open_sblk_recovery, %function
|
|
ftl_open_sblk_recovery:
|
|
stp x29, x30, [sp, -368]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR19
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
str x1, [x29, 136]
|
|
tbz x0, 12, .L3080
|
|
ldrh w1, [x19, 2]
|
|
adrp x0, .LC180
|
|
add x0, x0, :lo12:.LC180
|
|
bl printf
|
|
.L3080:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3081
|
|
ldrb w1, [x19, 5]
|
|
adrp x0, .LC181
|
|
add x0, x0, :lo12:.LC181
|
|
bl printf
|
|
.L3081:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3082
|
|
ldrh w1, [x19]
|
|
adrp x0, .LC182
|
|
add x0, x0, :lo12:.LC182
|
|
bl printf
|
|
.L3082:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3083
|
|
ldrh w2, [x19, 18]
|
|
adrp x0, .LC183
|
|
ldrh w1, [x19, 16]
|
|
add x0, x0, :lo12:.LC183
|
|
bl printf
|
|
.L3083:
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3084
|
|
ldrb w1, [x19, 9]
|
|
adrp x0, .LC184
|
|
add x0, x0, :lo12:.LC184
|
|
bl printf
|
|
.L3084:
|
|
ldrh w0, [x19, 10]
|
|
strh w0, [x19, 14]
|
|
adrp x0, .LANCHOR8
|
|
ldrh w1, [x19]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
cmp w1, w0
|
|
bcs .L3079
|
|
mov w0, 1
|
|
adrp x22, .LANCHOR131
|
|
bl buf_alloc
|
|
mov x20, x0
|
|
ldrb w0, [x22, #:lo12:.LANCHOR131]
|
|
add x26, x29, 176
|
|
mov w2, 64
|
|
mov w27, 2
|
|
ldr x1, [x20, 8]
|
|
sub w0, w0, #2
|
|
lsl w0, w0, 7
|
|
add x0, x1, x0, sxtw 2
|
|
mov w1, 255
|
|
str x0, [x29, 144]
|
|
mov x0, x26
|
|
bl ftl_memset
|
|
mov w2, 64
|
|
mov w1, 255
|
|
add x0, x29, 240
|
|
bl ftl_memset
|
|
mov w2, 64
|
|
mov w1, 255
|
|
add x0, x29, 304
|
|
bl ftl_memset
|
|
ldrb w23, [x19, 5]
|
|
adrp x0, .LANCHOR111
|
|
ldrh w24, [x19, 2]
|
|
add x0, x0, :lo12:.LANCHOR111
|
|
str wzr, [x29, 156]
|
|
str x0, [x29, 120]
|
|
.L3086:
|
|
adrp x25, .LANCHOR94
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
cmp w0, w24
|
|
bhi .L3101
|
|
.L3089:
|
|
ldrh w0, [x19, 10]
|
|
ldrh w1, [x19, 6]
|
|
ldrh w2, [x25, #:lo12:.LANCHOR94]
|
|
add w1, w1, w0
|
|
ldrb w0, [x19, 9]
|
|
strh w24, [x19, 2]
|
|
strb w23, [x19, 5]
|
|
mul w0, w0, w2
|
|
cmp w1, w0
|
|
beq .L3102
|
|
adrp x1, .LANCHOR219
|
|
adrp x0, .LC0
|
|
mov w2, 1802
|
|
add x1, x1, :lo12:.LANCHOR219
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3102:
|
|
adrp x2, .LANCHOR117
|
|
ldrh w3, [x19, 10]
|
|
mov w0, 0
|
|
mov w1, 0
|
|
ldr x4, [x2, #:lo12:.LANCHOR117]
|
|
str x2, [x29, 144]
|
|
.L3103:
|
|
cmp w1, w3
|
|
bcc .L3105
|
|
ldrb w23, [x19, 9]
|
|
adrp x24, .LANCHOR11
|
|
ldrh w1, [x25, #:lo12:.LANCHOR94]
|
|
madd w23, w23, w1, w0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
sub w23, w23, w3
|
|
and w23, w23, 65535
|
|
tbz x0, 12, .L3106
|
|
ldrh w1, [x19]
|
|
ldr x2, [x24, #:lo12:.LANCHOR11]
|
|
ubfiz x0, x1, 1, 16
|
|
ldrh w3, [x2, x0]
|
|
adrp x0, .LC187
|
|
mov w2, w23
|
|
add x0, x0, :lo12:.LC187
|
|
bl printf
|
|
.L3106:
|
|
ldr x0, [x24, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x19]
|
|
strh w23, [x0, x1, lsl 1]
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 14, .L3107
|
|
ldp w1, w2, [x29, 176]
|
|
adrp x0, .LC188
|
|
ldp w3, w4, [x29, 184]
|
|
add x0, x0, :lo12:.LC188
|
|
bl printf
|
|
.L3107:
|
|
ldr x0, [x20, 8]
|
|
mov w1, 0
|
|
ldrb w2, [x22, #:lo12:.LANCHOR131]
|
|
adrp x28, .LANCHOR79
|
|
mov x24, 0
|
|
lsl w2, w2, 9
|
|
bl ftl_memset
|
|
adrp x0, .LC190
|
|
add x0, x0, :lo12:.LC190
|
|
str x0, [x29, 128]
|
|
add x0, x28, :lo12:.LANCHOR79
|
|
str x0, [x29, 120]
|
|
.L3108:
|
|
ldrb w0, [x28, #:lo12:.LANCHOR79]
|
|
add x1, x28, :lo12:.LANCHOR79
|
|
str w24, [x29, 168]
|
|
mul w0, w0, w27
|
|
cmp w24, w0
|
|
bcc .L3120
|
|
adrp x24, .LC191
|
|
adrp x23, .LC190
|
|
add x24, x24, :lo12:.LC191
|
|
add x23, x23, :lo12:.LC190
|
|
mov x28, 0
|
|
str x1, [x29, 160]
|
|
.L3121:
|
|
ldr x0, [x29, 160]
|
|
ldrb w0, [x0]
|
|
mul w0, w0, w27
|
|
cmp w0, w28
|
|
bhi .L3127
|
|
mov x0, x20
|
|
bl zbuf_free
|
|
ldrh w1, [x19, 12]
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
ldrb w2, [x19, 9]
|
|
madd w0, w0, w2, w1
|
|
mov x1, -4
|
|
add x0, x1, x0, sxtw 2
|
|
ldr x1, [x29, 144]
|
|
ldr x1, [x1, #:lo12:.LANCHOR117]
|
|
ldr w0, [x1, x0]
|
|
cmn w0, #1
|
|
beq .L3128
|
|
adrp x1, .LANCHOR219
|
|
adrp x0, .LC0
|
|
mov w2, 1917
|
|
add x1, x1, :lo12:.LANCHOR219
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3128:
|
|
ldrh w0, [x19, 6]
|
|
cmp w0, 1
|
|
bne .L3079
|
|
mov x0, x19
|
|
bl ftl_write_last_log_page
|
|
.L3079:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 368
|
|
ret
|
|
.L3101:
|
|
ldrb w23, [x19, 5]
|
|
adrp x0, .LANCHOR195
|
|
add x0, x0, :lo12:.LANCHOR195
|
|
str x0, [x29, 128]
|
|
.L3087:
|
|
ldrb w0, [x19, 9]
|
|
cmp w0, w23
|
|
bhi .L3100
|
|
add w24, w24, 1
|
|
strb wzr, [x19, 5]
|
|
and w24, w24, 65535
|
|
b .L3086
|
|
.L3100:
|
|
add x0, x19, x23, sxtw 1
|
|
ldrh w0, [x0, 16]
|
|
str w0, [x29, 168]
|
|
mov w0, 65535
|
|
ldr w1, [x29, 168]
|
|
cmp w1, w0
|
|
beq .L3088
|
|
ldr x0, [x29, 120]
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
ldr x2, [x20, 24]
|
|
ldrh w0, [x0]
|
|
madd w0, w0, w1, w24
|
|
ldr x1, [x20, 8]
|
|
str w0, [x29, 160]
|
|
bl ftl_read_ppa_page
|
|
mov w28, w0
|
|
cmp w0, 512
|
|
beq .L3089
|
|
cmn w0, #1
|
|
beq .L3090
|
|
ldr x0, [x20, 24]
|
|
ldr w1, [x0]
|
|
cmn w1, #1
|
|
bne .L3090
|
|
ldr w0, [x0, 4]
|
|
cmn w0, #1
|
|
bne .L3090
|
|
ldr x0, [x20, 8]
|
|
ldr w0, [x0]
|
|
cmn w0, #1
|
|
beq .L3089
|
|
.L3090:
|
|
ldr x1, [x29, 128]
|
|
mov w0, 1
|
|
strb w0, [x1]
|
|
ldrb w0, [x19, 9]
|
|
ldrh w1, [x19, 10]
|
|
madd w0, w0, w24, w23
|
|
cmp w1, w0
|
|
beq .L3091
|
|
adrp x1, .LANCHOR219
|
|
adrp x0, .LC0
|
|
mov w2, 1694
|
|
add x1, x1, :lo12:.LANCHOR219
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3091:
|
|
ldrh w0, [x19, 10]
|
|
ldrh w1, [x19, 6]
|
|
ldrb w2, [x19, 9]
|
|
add w1, w1, w0
|
|
ldrh w0, [x25, #:lo12:.LANCHOR94]
|
|
mul w0, w0, w2
|
|
cmp w1, w0
|
|
beq .L3092
|
|
adrp x1, .LANCHOR219
|
|
adrp x0, .LC0
|
|
mov w2, 1695
|
|
add x1, x1, :lo12:.LANCHOR219
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3092:
|
|
ldrb w0, [x22, #:lo12:.LANCHOR131]
|
|
cmp w0, 8
|
|
bls .L3093
|
|
ldr x6, [x20, 24]
|
|
mov w1, 15555
|
|
movk w1, 0xf55f, lsl 16
|
|
ldr w0, [x6]
|
|
cmp w0, w1
|
|
beq .L3093
|
|
cmn w28, #1
|
|
beq .L3095
|
|
ldr w0, [x6, 4]
|
|
cmn w0, #1
|
|
beq .L3096
|
|
ldr w1, [x6, 16]
|
|
mov w0, 21320
|
|
movk w0, 0x4841, lsl 16
|
|
cmp w1, w0
|
|
bne .L3096
|
|
ldr x0, [x29, 144]
|
|
mov w1, 1024
|
|
bl js_hash
|
|
ldr w1, [x6, 20]
|
|
cmp w1, w0
|
|
beq .L3096
|
|
ldr w3, [x29, 160]
|
|
mov w5, w0
|
|
ldr w1, [x29, 168]
|
|
mov w4, w28
|
|
mov w2, w24
|
|
adrp x0, .LC185
|
|
add x0, x0, :lo12:.LC185
|
|
bl printf
|
|
ldr x1, [x29, 144]
|
|
mov w3, 16
|
|
mov w2, 4
|
|
adrp x0, .LC186
|
|
add x0, x0, :lo12:.LC186
|
|
bl rknand_print_hex
|
|
ldr x1, [x20, 24]
|
|
adrp x0, .LC147
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
mov w2, 4
|
|
add x0, x0, :lo12:.LC147
|
|
lsr w3, w3, 1
|
|
bl rknand_print_hex
|
|
.L3095:
|
|
ldrh w0, [x19, 6]
|
|
mov w27, 4
|
|
sub w0, w0, #1
|
|
strh w0, [x19, 6]
|
|
ldrh w0, [x19, 10]
|
|
add w0, w0, 1
|
|
strh w0, [x19, 10]
|
|
mov w0, 1
|
|
str w0, [x29, 156]
|
|
.L3088:
|
|
add w23, w23, 1
|
|
and w23, w23, 65535
|
|
b .L3087
|
|
.L3093:
|
|
cmn w28, #1
|
|
beq .L3095
|
|
.L3096:
|
|
ldr x1, [x20, 24]
|
|
ldr w0, [x1, 4]
|
|
cmn w0, #1
|
|
beq .L3095
|
|
ldr w1, [x1]
|
|
mov w2, 15555
|
|
movk w2, 0xf55f, lsl 16
|
|
cmp w1, w2
|
|
beq .L3095
|
|
bl lpa_hash_get_ppa
|
|
ldr x1, [x29, 136]
|
|
cbz x1, .L3098
|
|
ldr x3, [x20, 24]
|
|
ldr w1, [x3, 8]
|
|
cmp w0, w1
|
|
beq .L3098
|
|
cmn w0, #1
|
|
beq .L3098
|
|
adrp x4, .LANCHOR31
|
|
adrp x5, .LANCHOR74
|
|
mov w28, 24
|
|
mov w27, 1
|
|
ldrb w1, [x4, #:lo12:.LANCHOR31]
|
|
ldrh w6, [x5, #:lo12:.LANCHOR74]
|
|
sub w1, w28, w1
|
|
sub w1, w1, w6
|
|
lsr w2, w0, w6
|
|
adrp x6, .LANCHOR75
|
|
lsl w1, w27, w1
|
|
sub w1, w1, #1
|
|
and w1, w1, w2
|
|
ldrb w2, [x6, #:lo12:.LANCHOR75]
|
|
udiv w1, w1, w2
|
|
ldr x2, [x29, 136]
|
|
ldrh w2, [x2]
|
|
cmp w2, w1, uxth
|
|
bne .L3098
|
|
ldr w8, [x3]
|
|
adrp x7, .LANCHOR190
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
add x2, x7, :lo12:.LANCHOR190
|
|
ldr x1, [x20, 8]
|
|
str w8, [x29, 156]
|
|
str x7, [x29, 168]
|
|
stp x6, x4, [x29, 96]
|
|
str x5, [x29, 112]
|
|
bl ftl_read_ppa_page
|
|
ldr x7, [x29, 168]
|
|
ldr w8, [x29, 156]
|
|
ldr w0, [x7, #:lo12:.LANCHOR190]
|
|
cmp w8, w0
|
|
bhi .L3098
|
|
ldr x0, [x20, 24]
|
|
ldr w0, [x0, 8]
|
|
cmn w0, #1
|
|
beq .L3095
|
|
ldp x6, x4, [x29, 96]
|
|
ldr x5, [x29, 112]
|
|
ldrb w2, [x4, #:lo12:.LANCHOR31]
|
|
ldrh w1, [x5, #:lo12:.LANCHOR74]
|
|
sub w28, w28, w2
|
|
sub w28, w28, w1
|
|
lsr w0, w0, w1
|
|
lsl w27, w27, w28
|
|
sub w27, w27, #1
|
|
and w27, w27, w0
|
|
ldrb w0, [x6, #:lo12:.LANCHOR75]
|
|
udiv w0, w27, w0
|
|
bl ftl_vpn_decrement
|
|
b .L3095
|
|
.L3105:
|
|
ldrh w2, [x19, 12]
|
|
add w2, w2, w1
|
|
ldr w2, [x4, x2, lsl 2]
|
|
cmn w2, #1
|
|
beq .L3104
|
|
add w23, w0, 1
|
|
and w0, w23, 65535
|
|
.L3104:
|
|
add w1, w1, 1
|
|
b .L3103
|
|
.L3120:
|
|
ldr w0, [x26, x24, lsl 2]
|
|
cmn w0, #1
|
|
bne .L3109
|
|
.L3113:
|
|
adrp x0, .LANCHOR110
|
|
ldr x1, [x20, 24]
|
|
mov w23, -1
|
|
mov x2, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w0, [x0, 8]
|
|
stp w0, w23, [x1]
|
|
ldr x0, [x20, 8]
|
|
stp w23, wzr, [x1, 8]
|
|
str wzr, [x1, 16]!
|
|
str wzr, [x0]
|
|
mov w0, 2
|
|
bl ftl_debug_info_fill
|
|
.L3110:
|
|
ldr w0, [x29, 156]
|
|
cbz w0, .L3115
|
|
ldrh w0, [x19, 6]
|
|
cmp w0, 1
|
|
bls .L3115
|
|
add x0, x21, :lo12:.LANCHOR19
|
|
str x0, [x29, 160]
|
|
add x0, x22, :lo12:.LANCHOR131
|
|
str x0, [x29, 136]
|
|
.L3180:
|
|
mov x0, x19
|
|
bl ftl_get_new_free_page
|
|
mov w4, w0
|
|
ldr x0, [x29, 160]
|
|
ldr w0, [x0]
|
|
tbz x0, 14, .L3117
|
|
ldrh w0, [x19, 12]
|
|
mov w1, w4
|
|
ldrh w3, [x19, 10]
|
|
str w4, [x29, 112]
|
|
add w3, w3, w0
|
|
ldr x0, [x20, 24]
|
|
sub w3, w3, #1
|
|
ldr w2, [x0, 4]
|
|
ldr x0, [x29, 128]
|
|
bl printf
|
|
ldr w4, [x29, 112]
|
|
.L3117:
|
|
ldr x0, [x29, 120]
|
|
ldr w2, [x29, 168]
|
|
ldrh w1, [x19, 6]
|
|
ldrb w0, [x0]
|
|
mul w0, w0, w27
|
|
add w0, w0, 1
|
|
sub w0, w0, w2
|
|
cmp w1, w0
|
|
bls .L3115
|
|
ldr x0, [x29, 136]
|
|
ldr x1, [x20, 8]
|
|
ldr x2, [x20, 24]
|
|
str w4, [x29, 104]
|
|
ldrb w3, [x0]
|
|
mov w0, w4
|
|
bl ftl_prog_ppa_page
|
|
mov w1, w0
|
|
ldrh w0, [x19]
|
|
str w1, [x29, 112]
|
|
bl ftl_vpn_decrement
|
|
ldr w1, [x29, 112]
|
|
cmn w23, #1
|
|
ldr w4, [x29, 104]
|
|
ccmn w1, #1, 4, ne
|
|
beq .L3118
|
|
add x0, x29, 240
|
|
ldrh w1, [x19, 12]
|
|
str w4, [x0, x24, lsl 2]
|
|
ldrh w0, [x19, 10]
|
|
add w0, w0, w1
|
|
add x1, x29, 304
|
|
sub w0, w0, #1
|
|
str w0, [x1, x24, lsl 2]
|
|
.L3115:
|
|
add x24, x24, 1
|
|
b .L3108
|
|
.L3109:
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
ldr x1, [x20, 8]
|
|
ldr x2, [x20, 24]
|
|
bl ftl_read_ppa_page
|
|
mov w23, w0
|
|
ldr x0, [x20, 24]
|
|
ldr w0, [x0, 4]
|
|
bl lpa_hash_get_ppa
|
|
mov w4, w0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 14, .L3111
|
|
ldr x0, [x20, 24]
|
|
mov w1, w4
|
|
ldr w2, [x26, x24, lsl 2]
|
|
str w4, [x29, 160]
|
|
ldr w3, [x0, 4]
|
|
adrp x0, .LC189
|
|
add x0, x0, :lo12:.LC189
|
|
bl printf
|
|
ldr w4, [x29, 160]
|
|
.L3111:
|
|
ldr x1, [x20, 24]
|
|
mov x2, 0
|
|
ldr w0, [x26, x24, lsl 2]
|
|
cmp w4, w0
|
|
mov w0, 1
|
|
stp w4, w0, [x1, 8]
|
|
csinv w23, w23, wzr, eq
|
|
str wzr, [x1, 16]!
|
|
mov w0, 2
|
|
bl ftl_debug_info_fill
|
|
cmn w23, #1
|
|
bne .L3110
|
|
b .L3113
|
|
.L3118:
|
|
ldrh w0, [x19, 6]
|
|
cmp w0, 1
|
|
bls .L3115
|
|
cmn w23, #1
|
|
bne .L3180
|
|
b .L3115
|
|
.L3127:
|
|
add x0, x29, 240
|
|
ldr w0, [x0, x28, lsl 2]
|
|
cmn w0, #1
|
|
beq .L3123
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
ldr w0, [x26, x28, lsl 2]
|
|
ldr x1, [x20, 8]
|
|
ldr x2, [x20, 24]
|
|
bl ftl_read_ppa_page
|
|
cmp w0, 256
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3123
|
|
add x0, x29, 240
|
|
ldrb w3, [x22, #:lo12:.LANCHOR131]
|
|
ldr x1, [x20, 8]
|
|
ldr x2, [x20, 24]
|
|
ldr w0, [x0, x28, lsl 2]
|
|
bl ftl_read_ppa_page
|
|
mov w5, w0
|
|
ldr w0, [x21, #:lo12:.LANCHOR19]
|
|
tbz x0, 14, .L3125
|
|
ldr x0, [x20, 24]
|
|
mov w1, w5
|
|
ldr w3, [x26, x28, lsl 2]
|
|
str w5, [x29, 168]
|
|
ldr w2, [x0, 8]
|
|
mov x0, x23
|
|
bl printf
|
|
ldr w5, [x29, 168]
|
|
.L3125:
|
|
cmn w5, #1
|
|
beq .L3123
|
|
ldr x0, [x20, 24]
|
|
ldr w2, [x26, x28, lsl 2]
|
|
ldr w1, [x0, 8]
|
|
cmp w2, w1
|
|
bne .L3123
|
|
ldr w1, [x21, #:lo12:.LANCHOR19]
|
|
tbz x1, 14, .L3126
|
|
add x1, x29, 304
|
|
ldr w3, [x1, x28, lsl 2]
|
|
ldr w1, [x0, 4]
|
|
mov x0, x24
|
|
bl printf
|
|
.L3126:
|
|
add x1, x29, 304
|
|
ldr x0, [x20, 24]
|
|
ldr w1, [x1, x28, lsl 2]
|
|
str w1, [x29, 168]
|
|
ldr w1, [x0, 8]
|
|
ldrh w2, [x29, 168]
|
|
ldr w0, [x0, 4]
|
|
bl lpa_hash_update_ppa
|
|
.L3123:
|
|
add x28, x28, 1
|
|
b .L3121
|
|
.L3098:
|
|
ldr x3, [x20, 24]
|
|
adrp x0, .LANCHOR128
|
|
ldr w0, [x0, #:lo12:.LANCHOR128]
|
|
ldr w1, [x3, 4]
|
|
cmp w1, w0
|
|
bcs .L3095
|
|
ldrb w0, [x19, 9]
|
|
ldrh w1, [x25, #:lo12:.LANCHOR94]
|
|
ldrh w2, [x19, 10]
|
|
mul w0, w0, w1
|
|
sub w0, w0, #1
|
|
cmp w2, w0
|
|
bge .L3095
|
|
adrp x0, .LANCHOR110
|
|
ldr w1, [x3]
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldr w4, [x0, 8]
|
|
cmp w1, w4
|
|
bls .L3099
|
|
str w1, [x0, 8]
|
|
.L3099:
|
|
ldrh w0, [x19, 12]
|
|
add w2, w2, w0
|
|
ldp w0, w1, [x3, 4]
|
|
bl lpa_hash_update_ppa
|
|
ldr w0, [x29, 180]
|
|
str w0, [x29, 176]
|
|
ldr w0, [x29, 184]
|
|
str w0, [x29, 180]
|
|
ldr w0, [x29, 188]
|
|
str w0, [x29, 184]
|
|
ldr w0, [x29, 160]
|
|
str w0, [x29, 188]
|
|
b .L3095
|
|
.size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
|
|
.section .text.dump_ftl_info,"ax",@progbits
|
|
.align 2
|
|
.global dump_ftl_info
|
|
.type dump_ftl_info, %function
|
|
dump_ftl_info:
|
|
stp x29, x30, [sp, -48]!
|
|
adrp x0, .LANCHOR57
|
|
add x29, sp, 0
|
|
ldrb w1, [x0, #:lo12:.LANCHOR57]
|
|
adrp x0, .LC192
|
|
stp x19, x20, [sp, 16]
|
|
add x0, x0, :lo12:.LC192
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR110
|
|
adrp x19, .LANCHOR12
|
|
adrp x20, .LANCHOR94
|
|
bl printf
|
|
adrp x21, .LANCHOR8
|
|
adrp x0, .LANCHOR191
|
|
add x1, x0, :lo12:.LANCHOR191
|
|
ldrh w3, [x1, 2]
|
|
ldrb w2, [x1, 1]
|
|
ldrb w1, [x0, #:lo12:.LANCHOR191]
|
|
adrp x0, .LC193
|
|
add x0, x0, :lo12:.LC193
|
|
bl printf
|
|
ldr x0, [x22, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x0, 140]
|
|
ldrh w1, [x0, 130]
|
|
adrp x0, .LC194
|
|
add x0, x0, :lo12:.LC194
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR12]
|
|
adrp x0, .LC195
|
|
add x0, x0, :lo12:.LC195
|
|
ldrh w5, [x1, 26]
|
|
ldrh w4, [x1, 22]
|
|
ldrb w3, [x1, 21]
|
|
ldrh w2, [x1, 18]
|
|
ldrh w1, [x1, 16]
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR12]
|
|
adrp x0, .LC196
|
|
add x0, x0, :lo12:.LC196
|
|
ldrh w5, [x1, 58]
|
|
ldrh w4, [x1, 54]
|
|
ldrb w3, [x1, 53]
|
|
ldrh w2, [x1, 50]
|
|
ldrh w1, [x1, 48]
|
|
bl printf
|
|
ldr x1, [x19, #:lo12:.LANCHOR12]
|
|
adrp x19, .LANCHOR79
|
|
adrp x0, .LC197
|
|
add x0, x0, :lo12:.LC197
|
|
ldrh w5, [x1, 90]
|
|
ldrh w4, [x1, 86]
|
|
ldrb w3, [x1, 85]
|
|
ldrh w2, [x1, 82]
|
|
ldrh w1, [x1, 80]
|
|
bl printf
|
|
ldrb w0, [x19, #:lo12:.LANCHOR79]
|
|
mov w2, 4
|
|
ldrh w3, [x20, #:lo12:.LANCHOR94]
|
|
mul w3, w3, w0
|
|
adrp x0, .LANCHOR117
|
|
ldr x1, [x0, #:lo12:.LANCHOR117]
|
|
adrp x0, .LC198
|
|
lsl w3, w3, 1
|
|
add x0, x0, :lo12:.LC198
|
|
bl rknand_print_hex
|
|
adrp x0, .LANCHOR11
|
|
ldrh w3, [x21, #:lo12:.LANCHOR8]
|
|
mov w2, 2
|
|
ldr x1, [x0, #:lo12:.LANCHOR11]
|
|
adrp x0, .LC199
|
|
add x0, x0, :lo12:.LC199
|
|
bl rknand_print_hex
|
|
ldr x1, [x22, #:lo12:.LANCHOR110]
|
|
mov w2, 4
|
|
adrp x0, .LC179
|
|
add x0, x0, :lo12:.LC179
|
|
add x1, x1, 704
|
|
ldrh w3, [x1, -6]
|
|
bl rknand_print_hex
|
|
adrp x0, .LANCHOR9
|
|
ldrh w3, [x21, #:lo12:.LANCHOR8]
|
|
mov w2, 4
|
|
ldr x1, [x0, #:lo12:.LANCHOR9]
|
|
adrp x0, .LC200
|
|
add x0, x0, :lo12:.LC200
|
|
bl rknand_print_hex
|
|
mov w3, 256
|
|
mov w2, 2
|
|
adrp x1, .LANCHOR116
|
|
adrp x0, .LC201
|
|
add x1, x1, :lo12:.LANCHOR116
|
|
add x0, x0, :lo12:.LC201
|
|
bl rknand_print_hex
|
|
ldrb w0, [x19, #:lo12:.LANCHOR79]
|
|
mov w2, 2
|
|
ldrh w3, [x20, #:lo12:.LANCHOR94]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x19, x20, [sp, 16]
|
|
mul w3, w3, w0
|
|
adrp x0, .LANCHOR118
|
|
ldp x29, x30, [sp], 48
|
|
lsl w3, w3, 1
|
|
ldr x1, [x0, #:lo12:.LANCHOR118]
|
|
adrp x0, .LC202
|
|
add x0, x0, :lo12:.LC202
|
|
b rknand_print_hex
|
|
.size dump_ftl_info, .-dump_ftl_info
|
|
.section .text.pm_ppa_update_check,"ax",@progbits
|
|
.align 2
|
|
.global pm_ppa_update_check
|
|
.type pm_ppa_update_check, %function
|
|
pm_ppa_update_check:
|
|
adrp x4, .LANCHOR31
|
|
adrp x3, .LANCHOR74
|
|
mov w5, 24
|
|
ldrb w4, [x4, #:lo12:.LANCHOR31]
|
|
ldrh w3, [x3, #:lo12:.LANCHOR74]
|
|
sub w4, w5, w4
|
|
sub w5, w4, w3
|
|
mov w4, 1
|
|
lsr w3, w2, w3
|
|
lsl w4, w4, w5
|
|
sub w4, w4, #1
|
|
and w4, w4, w3
|
|
adrp x3, .LANCHOR75
|
|
ldrb w3, [x3, #:lo12:.LANCHOR75]
|
|
udiv w4, w4, w3
|
|
adrp x3, .LANCHOR9
|
|
ldr x3, [x3, #:lo12:.LANCHOR9]
|
|
add x4, x3, x4, uxth 2
|
|
ldrb w3, [x4, 2]
|
|
ubfx x3, x3, 5, 3
|
|
cmp w3, 1
|
|
ccmp w3, 7, 4, ne
|
|
bne .L3212
|
|
mov w3, w2
|
|
mov w2, w1
|
|
mov x1, x0
|
|
stp x29, x30, [sp, -16]!
|
|
adrp x0, .LC203
|
|
add x0, x0, :lo12:.LC203
|
|
add x29, sp, 0
|
|
bl printf
|
|
bl dump_ftl_info
|
|
mov w0, -1
|
|
ldp x29, x30, [sp], 16
|
|
ret
|
|
.L3212:
|
|
mov w0, 0
|
|
ret
|
|
.size pm_ppa_update_check, .-pm_ppa_update_check
|
|
.section .text.load_l2p_region,"ax",@progbits
|
|
.align 2
|
|
.type load_l2p_region, %function
|
|
load_l2p_region:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
and w19, w0, 65535
|
|
stp x21, x22, [sp, 32]
|
|
and x21, x1, 65535
|
|
stp x23, x24, [sp, 48]
|
|
cmp w21, 31
|
|
stp x25, x26, [sp, 64]
|
|
bls .L3218
|
|
adrp x1, .LANCHOR220
|
|
adrp x0, .LC0
|
|
mov w2, 32
|
|
add x1, x1, :lo12:.LANCHOR220
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3218:
|
|
adrp x20, .LANCHOR110
|
|
mov x25, x20
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w2, [x0, 698]
|
|
cmp w2, w19
|
|
bcs .L3219
|
|
mov w1, w19
|
|
adrp x0, .LC204
|
|
add x0, x0, :lo12:.LC204
|
|
bl printf
|
|
adrp x0, .LANCHOR221
|
|
mov w1, 255
|
|
ldrh w2, [x0, #:lo12:.LANCHOR221]
|
|
mov x0, 0
|
|
ldr x0, [x0, 8]
|
|
bl ftl_memset
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x0, 698]
|
|
cmp w0, w19
|
|
bcc .L3220
|
|
.L3230:
|
|
mov w0, 0
|
|
.L3217:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L3220:
|
|
mov w2, 37
|
|
.L3231:
|
|
adrp x1, .LANCHOR220
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR220
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L3230
|
|
.L3219:
|
|
add x0, x0, x19, sxtw 2
|
|
adrp x22, .LANCHOR135
|
|
add x1, x22, :lo12:.LANCHOR135
|
|
ldr w23, [x0, 704]
|
|
lsl x0, x21, 4
|
|
add x26, x1, x0
|
|
strh w19, [x1, x0]
|
|
strh wzr, [x26, 2]
|
|
cbnz w23, .L3222
|
|
mov w1, w19
|
|
mov w2, 0
|
|
adrp x0, .LC205
|
|
add x0, x0, :lo12:.LC205
|
|
bl printf
|
|
adrp x0, .LANCHOR221
|
|
mov w1, 255
|
|
ldrh w2, [x0, #:lo12:.LANCHOR221]
|
|
ldr x0, [x26, 8]
|
|
bl ftl_memset
|
|
b .L3230
|
|
.L3222:
|
|
adrp x20, .LANCHOR207
|
|
adrp x24, .LANCHOR131
|
|
ldr x1, [x26, 8]
|
|
mov w0, w23
|
|
ldr x2, [x20, #:lo12:.LANCHOR207]
|
|
ldrb w3, [x24, #:lo12:.LANCHOR131]
|
|
bl ftl_read_ppa_page
|
|
ldr x1, [x20, #:lo12:.LANCHOR207]
|
|
ldr w2, [x1]
|
|
cmp w2, w19
|
|
bne .L3223
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L3223
|
|
.L3227:
|
|
ldr x0, [x20, #:lo12:.LANCHOR207]
|
|
ldr w0, [x0]
|
|
cmp w19, w0
|
|
beq .L3230
|
|
mov w2, 73
|
|
b .L3231
|
|
.L3223:
|
|
mov w4, w23
|
|
mov w3, w0
|
|
mov w1, w19
|
|
adrp x0, .LC206
|
|
add x0, x0, :lo12:.LC206
|
|
bl printf
|
|
ldr x1, [x25, #:lo12:.LANCHOR110]
|
|
add x22, x22, :lo12:.LANCHOR135
|
|
add x21, x22, x21, lsl 4
|
|
mov w2, 4
|
|
add x1, x1, 704
|
|
adrp x0, .LC207
|
|
add x0, x0, :lo12:.LC207
|
|
ldrh w3, [x1, -6]
|
|
bl rknand_print_hex
|
|
ldr x1, [x21, 8]
|
|
mov w2, 4
|
|
ldrb w3, [x24, #:lo12:.LANCHOR131]
|
|
adrp x0, .LC186
|
|
add x0, x0, :lo12:.LC186
|
|
lsl w3, w3, 7
|
|
bl rknand_print_hex
|
|
ldr x1, [x20, #:lo12:.LANCHOR207]
|
|
mov w3, 16
|
|
mov w2, 4
|
|
adrp x0, .LC208
|
|
add x0, x0, :lo12:.LC208
|
|
bl rknand_print_hex
|
|
ldrb w3, [x24, #:lo12:.LANCHOR131]
|
|
mov w0, w23
|
|
ldr x2, [x20, #:lo12:.LANCHOR207]
|
|
ldr x1, [x21, 8]
|
|
bl ftl_read_ppa_page
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3226
|
|
adrp x0, .LANCHOR221
|
|
mov w1, 255
|
|
ldrh w2, [x0, #:lo12:.LANCHOR221]
|
|
ldr x0, [x21, 8]
|
|
bl ftl_memset
|
|
.L3228:
|
|
mov w0, -1
|
|
b .L3217
|
|
.L3226:
|
|
ldr x0, [x20, #:lo12:.LANCHOR207]
|
|
ldr w0, [x0]
|
|
cmp w19, w0
|
|
beq .L3227
|
|
b .L3228
|
|
.size load_l2p_region, .-load_l2p_region
|
|
.section .text.pm_gc,"ax",@progbits
|
|
.align 2
|
|
.global pm_gc
|
|
.type pm_gc, %function
|
|
pm_gc:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR110
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR148
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
ldrh w2, [x0, 688]
|
|
adrp x0, .LANCHOR152
|
|
str x27, [sp, 80]
|
|
mov x20, x0
|
|
ldrh w1, [x0, #:lo12:.LANCHOR152]
|
|
sub w1, w1, #1
|
|
cmp w2, w1
|
|
bge .L3233
|
|
ldr w0, [x21, #:lo12:.LANCHOR148]
|
|
cbz w0, .L3234
|
|
.L3233:
|
|
bl pm_free_sblk
|
|
ldr x2, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x20, #:lo12:.LANCHOR152]
|
|
sub w1, w1, #1
|
|
ldrh w3, [x2, 688]
|
|
cmp w3, w1
|
|
bge .L3235
|
|
ldr w1, [x21, #:lo12:.LANCHOR148]
|
|
cbz w1, .L3234
|
|
.L3235:
|
|
add x0, x2, x0, uxth 1
|
|
str wzr, [x21, #:lo12:.LANCHOR148]
|
|
mov w20, 65535
|
|
ldrh w21, [x0, 416]
|
|
cmp w21, w20
|
|
bne .L3237
|
|
adrp x1, .LANCHOR222
|
|
add x1, x1, :lo12:.LANCHOR222
|
|
mov w2, 182
|
|
adrp x0, .LC0
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
bl pm_free_sblk
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
add x0, x1, x0, uxth 1
|
|
ldrh w21, [x0, 416]
|
|
cmp w21, w20
|
|
beq .L3234
|
|
.L3237:
|
|
bl pm_select_ram_region
|
|
and x22, x0, 65535
|
|
lsl x0, x22, 4
|
|
adrp x20, .LANCHOR135
|
|
add x1, x20, :lo12:.LANCHOR135
|
|
mov x25, x22
|
|
add x23, x1, x0
|
|
ldrh w0, [x1, x0]
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
beq .L3238
|
|
ldr x1, [x23, 8]
|
|
cbz x1, .L3238
|
|
ldrsh w2, [x23, 2]
|
|
tbz w2, #31, .L3238
|
|
bl pm_write_page
|
|
ldrh w0, [x23, 2]
|
|
and w0, w0, 32767
|
|
strh w0, [x23, 2]
|
|
.L3238:
|
|
adrp x23, .LANCHOR74
|
|
adrp x24, .LANCHOR31
|
|
add x23, x23, :lo12:.LANCHOR74
|
|
add x24, x24, :lo12:.LANCHOR31
|
|
mov w27, 0
|
|
mov w26, 24
|
|
.L3239:
|
|
ldr x2, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x2, 698]
|
|
cmp w0, w27
|
|
bhi .L3242
|
|
bl pm_free_sblk
|
|
.L3234:
|
|
mov w0, 0
|
|
ldr x27, [sp, 80]
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L3242:
|
|
ldrb w0, [x24]
|
|
add x2, x2, x27, sxtw 2
|
|
ldrh w3, [x23]
|
|
sub w0, w26, w0
|
|
sub w1, w0, w3
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
ldr w1, [x2, 704]
|
|
sub w0, w0, #1
|
|
lsr w1, w1, w3
|
|
and w0, w0, w1
|
|
adrp x1, .LANCHOR75
|
|
ldrb w1, [x1, #:lo12:.LANCHOR75]
|
|
udiv w0, w0, w1
|
|
cmp w21, w0, uxth
|
|
bne .L3240
|
|
mov w1, w25
|
|
mov w0, w27
|
|
bl load_l2p_region
|
|
cbnz w0, .L3241
|
|
add x0, x20, :lo12:.LANCHOR135
|
|
add x0, x0, x22, lsl 4
|
|
ldr x1, [x0, 8]
|
|
mov w0, w27
|
|
bl pm_write_page
|
|
.L3241:
|
|
add x1, x20, :lo12:.LANCHOR135
|
|
lsl x0, x22, 4
|
|
mov w2, -1
|
|
strh w2, [x1, x0]
|
|
.L3240:
|
|
add w27, w27, 1
|
|
and w27, w27, 65535
|
|
b .L3239
|
|
.size pm_gc, .-pm_gc
|
|
.section .text.pm_flush_id,"ax",@progbits
|
|
.align 2
|
|
.global pm_flush_id
|
|
.type pm_flush_id, %function
|
|
pm_flush_id:
|
|
stp x29, x30, [sp, -32]!
|
|
ubfiz x0, x0, 4, 16
|
|
adrp x2, .LANCHOR135
|
|
add x2, x2, :lo12:.LANCHOR135
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
add x19, x2, x0
|
|
ldrh w0, [x2, x0]
|
|
ldr x1, [x19, 8]
|
|
bl pm_write_page
|
|
ldrh w0, [x19, 2]
|
|
and w0, w0, 32767
|
|
strh w0, [x19, 2]
|
|
adrp x19, .LANCHOR204
|
|
ldr w0, [x19, #:lo12:.LANCHOR204]
|
|
cbz w0, .L3251
|
|
bl pm_gc
|
|
str wzr, [x19, #:lo12:.LANCHOR204]
|
|
.L3251:
|
|
mov w0, 0
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size pm_flush_id, .-pm_flush_id
|
|
.section .text.pm_flush,"ax",@progbits
|
|
.align 2
|
|
.global pm_flush
|
|
.type pm_flush, %function
|
|
pm_flush:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR135
|
|
add x19, x19, :lo12:.LANCHOR135
|
|
mov w20, 0
|
|
add x19, x19, 2
|
|
.L3258:
|
|
ldrsh w0, [x19]
|
|
tbz w0, #31, .L3257
|
|
mov w0, w20
|
|
bl pm_flush_id
|
|
.L3257:
|
|
add w20, w20, 1
|
|
add x19, x19, 16
|
|
and w20, w20, 65535
|
|
cmp w20, 32
|
|
bne .L3258
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size pm_flush, .-pm_flush
|
|
.section .text.flt_sys_flush,"ax",@progbits
|
|
.align 2
|
|
.global flt_sys_flush
|
|
.type flt_sys_flush, %function
|
|
flt_sys_flush:
|
|
stp x29, x30, [sp, -16]!
|
|
add x29, sp, 0
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
ldp x29, x30, [sp], 16
|
|
mov w0, 0
|
|
b ftl_info_flush
|
|
.size flt_sys_flush, .-flt_sys_flush
|
|
.section .text.rk_ftl_de_init,"ax",@progbits
|
|
.align 2
|
|
.global rk_ftl_de_init
|
|
.type rk_ftl_de_init, %function
|
|
rk_ftl_de_init:
|
|
stp x29, x30, [sp, -16]!
|
|
add x29, sp, 0
|
|
bl zftl_flash_de_init
|
|
bl flt_sys_flush
|
|
ldp x29, x30, [sp], 16
|
|
b zftl_flash_de_init
|
|
.size rk_ftl_de_init, .-rk_ftl_de_init
|
|
.section .text.zftl_deinit,"ax",@progbits
|
|
.align 2
|
|
.global zftl_deinit
|
|
.type zftl_deinit, %function
|
|
zftl_deinit:
|
|
b rk_ftl_de_init
|
|
.size zftl_deinit, .-zftl_deinit
|
|
.section .text.pm_init,"ax",@progbits
|
|
.align 2
|
|
.global pm_init
|
|
.type pm_init, %function
|
|
pm_init:
|
|
stp x29, x30, [sp, -112]!
|
|
mov w1, 1
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
mov w24, w0
|
|
adrp x0, .LANCHOR148
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
adrp x19, .LANCHOR135
|
|
str wzr, [x0, #:lo12:.LANCHOR148]
|
|
adrp x0, .LANCHOR204
|
|
stp x25, x26, [sp, 64]
|
|
add x20, x19, :lo12:.LANCHOR135
|
|
str wzr, [x0, #:lo12:.LANCHOR204]
|
|
adrp x0, .LANCHOR208
|
|
stp x27, x28, [sp, 80]
|
|
adrp x22, .LANCHOR131
|
|
strb w1, [x0, #:lo12:.LANCHOR208]
|
|
mov w0, 64
|
|
bl ftl_malloc
|
|
add x23, x20, 512
|
|
adrp x1, .LANCHOR207
|
|
add x22, x22, :lo12:.LANCHOR131
|
|
mov x21, x1
|
|
mov w25, -1
|
|
str x0, [x1, #:lo12:.LANCHOR207]
|
|
.L3268:
|
|
strh w25, [x20]
|
|
strh wzr, [x20, 2]
|
|
cbz w24, .L3267
|
|
ldrb w0, [x22]
|
|
lsl w0, w0, 9
|
|
bl ftl_malloc
|
|
str x0, [x20, 8]
|
|
.L3267:
|
|
add x20, x20, 16
|
|
cmp x20, x23
|
|
bne .L3268
|
|
add x0, x19, :lo12:.LANCHOR135
|
|
adrp x20, .LANCHOR110
|
|
ldr x22, [x21, #:lo12:.LANCHOR207]
|
|
mov w4, 4
|
|
ldr x27, [x0, 8]
|
|
mov x3, x22
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
mov x2, x27
|
|
ldrh w1, [x0, 692]
|
|
ldrb w0, [x0, 694]
|
|
bl flash_get_last_written_page
|
|
sxth w26, w0
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
mov w24, w26
|
|
ldrh w2, [x0, 696]
|
|
cmp w2, w26
|
|
bgt .L3269
|
|
ldrh w1, [x0, 692]
|
|
mov w3, w26
|
|
adrp x0, .LC209
|
|
add x0, x0, :lo12:.LC209
|
|
adrp x25, .LANCHOR131
|
|
add x25, x25, :lo12:.LANCHOR131
|
|
adrp x28, .LC210
|
|
bl printf
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
ldrsh w21, [x0, 696]
|
|
adrp x0, .LANCHOR111
|
|
add x0, x0, :lo12:.LANCHOR111
|
|
str x0, [x29, 104]
|
|
.L3270:
|
|
cmp w21, w26
|
|
ble .L3273
|
|
adrp x0, .LANCHOR195
|
|
mov w1, 1
|
|
add w24, w24, 1
|
|
strb w1, [x0, #:lo12:.LANCHOR195]
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
strh w24, [x0, 696]
|
|
bl pm_free_sblk
|
|
.L3269:
|
|
add x19, x19, :lo12:.LANCHOR135
|
|
adrp x0, .LANCHOR221
|
|
mov w1, 255
|
|
ldrh w2, [x0, #:lo12:.LANCHOR221]
|
|
ldr x0, [x19, 8]
|
|
bl ftl_memset
|
|
ldr x1, [x19, 8]
|
|
mov w0, -1
|
|
bl pm_write_page
|
|
adrp x0, .LANCHOR195
|
|
ldrb w0, [x0, #:lo12:.LANCHOR195]
|
|
cbz w0, .L3274
|
|
ldr x1, [x19, 8]
|
|
mov w0, -1
|
|
bl pm_write_page
|
|
ldr x1, [x19, 8]
|
|
mov w0, -1
|
|
bl pm_write_page
|
|
ldr x1, [x19, 8]
|
|
mov w0, -1
|
|
bl pm_write_page
|
|
.L3274:
|
|
bl pm_free_sblk
|
|
bl pm_gc
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L3273:
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
mov x3, x22
|
|
ldr x1, [x29, 104]
|
|
mov x2, x27
|
|
ldrb w4, [x25]
|
|
ldrh w23, [x0, 692]
|
|
ldrh w1, [x1]
|
|
ldrb w0, [x0, 694]
|
|
madd w23, w23, w1, w21
|
|
mov w1, w23
|
|
bl flash_read_page_en
|
|
mov w4, w0
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
str w4, [x29, 100]
|
|
mov w2, w23
|
|
ldr w1, [x0, 48]
|
|
ldrh w3, [x0, 694]
|
|
add w1, w1, 1
|
|
str w1, [x0, 48]
|
|
add x0, x28, :lo12:.LC210
|
|
ldr w1, [x22]
|
|
bl printf
|
|
ldr w4, [x29, 100]
|
|
cmp w4, 512
|
|
ccmn w4, #1, 4, ne
|
|
beq .L3271
|
|
ldr x8, [x20, #:lo12:.LANCHOR110]
|
|
ldr w6, [x22]
|
|
ldrh w0, [x8, 698]
|
|
cmp w6, w0
|
|
bcs .L3271
|
|
ldr w7, [x22, 8]
|
|
cbz w7, .L3272
|
|
ldrb w1, [x25]
|
|
mov x0, x27
|
|
lsl w1, w1, 9
|
|
bl js_hash
|
|
cmp w7, w0
|
|
beq .L3272
|
|
adrp x0, .LC211
|
|
mov w1, w7
|
|
add x0, x0, :lo12:.LC211
|
|
bl printf
|
|
.L3271:
|
|
add w21, w21, 1
|
|
sxth w21, w21
|
|
b .L3270
|
|
.L3272:
|
|
add x6, x8, x6, uxtw 2
|
|
str w23, [x6, 704]
|
|
b .L3271
|
|
.size pm_init, .-pm_init
|
|
.section .text.pm_log2phys,"ax",@progbits
|
|
.align 2
|
|
.global pm_log2phys
|
|
.type pm_log2phys, %function
|
|
pm_log2phys:
|
|
stp x29, x30, [sp, -96]!
|
|
add x29, sp, 0
|
|
stp x25, x26, [sp, 64]
|
|
mov w25, w0
|
|
adrp x0, .LANCHOR128
|
|
stp x23, x24, [sp, 48]
|
|
stp x19, x20, [sp, 16]
|
|
mov w24, w2
|
|
stp x21, x22, [sp, 32]
|
|
mov x23, x1
|
|
ldr w2, [x0, #:lo12:.LANCHOR128]
|
|
str x27, [sp, 80]
|
|
cmp w25, w2
|
|
bcc .L3290
|
|
mov w1, w25
|
|
adrp x0, .LC212
|
|
add x0, x0, :lo12:.LC212
|
|
bl printf
|
|
mov w0, -1
|
|
cbnz w24, .L3289
|
|
str w0, [x23]
|
|
.L3289:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldr x27, [sp, 80]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L3290:
|
|
adrp x0, .LANCHOR131
|
|
adrp x21, .LANCHOR135
|
|
mov x19, 0
|
|
ldrb w20, [x0, #:lo12:.LANCHOR131]
|
|
add x0, x21, :lo12:.LANCHOR135
|
|
add x0, x0, 8
|
|
lsl w22, w20, 7
|
|
udiv w22, w25, w22
|
|
and w26, w22, 65535
|
|
.L3296:
|
|
ldr x1, [x0]
|
|
cbz x1, .L3292
|
|
ldrh w1, [x0, -8]
|
|
cmp w1, w26
|
|
bne .L3292
|
|
.L3293:
|
|
ubfiz w20, w20, 7, 9
|
|
msub w25, w26, w20, w25
|
|
and x25, x25, 65535
|
|
cbnz w24, .L3294
|
|
add x0, x21, :lo12:.LANCHOR135
|
|
adrp x1, .LANCHOR31
|
|
add x0, x0, x19, lsl 4
|
|
mov w2, 24
|
|
ldr x0, [x0, 8]
|
|
ldr w0, [x0, x25, lsl 2]
|
|
str w0, [x23]
|
|
ldrb w3, [x1, #:lo12:.LANCHOR31]
|
|
mov w1, 1
|
|
sub w2, w2, w3
|
|
lsl w1, w1, w3
|
|
sub w1, w1, #1
|
|
lsr w0, w0, w2
|
|
and w0, w0, w1
|
|
adrp x1, .LANCHOR112
|
|
ldrb w1, [x1, #:lo12:.LANCHOR112]
|
|
cmp w0, w1
|
|
bcc .L3295
|
|
mov w0, -1
|
|
str w0, [x23]
|
|
.L3295:
|
|
add x21, x21, :lo12:.LANCHOR135
|
|
add x19, x21, x19, lsl 4
|
|
ldrh w0, [x19, 2]
|
|
mvn x1, x0
|
|
tst x1, 32767
|
|
beq .L3299
|
|
add w0, w0, 1
|
|
strh w0, [x19, 2]
|
|
.L3299:
|
|
mov w0, 0
|
|
b .L3289
|
|
.L3294:
|
|
add x0, x21, :lo12:.LANCHOR135
|
|
ldr w2, [x23]
|
|
add x0, x0, x19, lsl 4
|
|
ldr x1, [x0, 8]
|
|
str w2, [x1, x25, lsl 2]
|
|
ldrh w1, [x0, 2]
|
|
orr w1, w1, -32768
|
|
strh w1, [x0, 2]
|
|
adrp x0, .LANCHOR136
|
|
strb w22, [x0, #:lo12:.LANCHOR136]
|
|
b .L3295
|
|
.L3292:
|
|
add w19, w19, 1
|
|
add x0, x0, 16
|
|
and x19, x19, 65535
|
|
cmp w19, 32
|
|
bne .L3296
|
|
bl pm_select_ram_region
|
|
and x19, x0, 65535
|
|
sbfiz x1, x19, 4, 32
|
|
add x2, x21, :lo12:.LANCHOR135
|
|
add x3, x2, x1
|
|
mov w27, w0
|
|
ldrh w2, [x2, x1]
|
|
mov w1, 65535
|
|
cmp w2, w1
|
|
beq .L3297
|
|
ldrsh w1, [x3, 2]
|
|
tbz w1, #31, .L3297
|
|
bl pm_flush_id
|
|
.L3297:
|
|
adrp x0, .LANCHOR223
|
|
mov w1, w27
|
|
strb w19, [x0, #:lo12:.LANCHOR223]
|
|
mov w0, w26
|
|
bl load_l2p_region
|
|
b .L3293
|
|
.size pm_log2phys, .-pm_log2phys
|
|
.section .text.gc_recovery,"ax",@progbits
|
|
.align 2
|
|
.global gc_recovery
|
|
.type gc_recovery, %function
|
|
gc_recovery:
|
|
sub sp, sp, #240
|
|
adrp x0, .LANCHOR12
|
|
adrp x1, .LANCHOR84
|
|
mov w2, 65535
|
|
stp x29, x30, [sp, 32]
|
|
add x29, sp, 32
|
|
stp x23, x24, [sp, 80]
|
|
ldr x23, [x0, #:lo12:.LANCHOR12]
|
|
strb wzr, [x1, #:lo12:.LANCHOR84]
|
|
adrp x1, .LANCHOR156
|
|
stp x25, x26, [sp, 96]
|
|
mov x26, x0
|
|
strb wzr, [x1, #:lo12:.LANCHOR156]
|
|
add x1, x23, 80
|
|
stp x19, x20, [sp, 48]
|
|
str x1, [x29, 168]
|
|
stp x21, x22, [sp, 64]
|
|
ldrh w1, [x23, 80]
|
|
stp x27, x28, [sp, 112]
|
|
cmp w1, w2
|
|
beq .L3306
|
|
mov w0, -1
|
|
strh w0, [x23, 130]
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
mov x27, x0
|
|
ldrb w0, [x23, 89]
|
|
add x1, x23, 80
|
|
adrp x3, .LANCHOR111
|
|
str x3, [x29, 152]
|
|
sub w0, w0, #1
|
|
add x0, x1, x0, sxtw 1
|
|
ldrh w1, [x3, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x0, 16]
|
|
mul w1, w0, w1
|
|
adrp x0, .LANCHOR78
|
|
str w1, [x29, 200]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR78]
|
|
str x0, [x29, 176]
|
|
cmp w2, 2
|
|
beq .L3307
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L3307
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbz w0, .L3308
|
|
.L3307:
|
|
adrp x0, .LANCHOR85
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
sub w0, w0, #1
|
|
add w0, w0, w1
|
|
orr w2, w0, w2, lsl 24
|
|
str w2, [x27, 40]
|
|
.L3309:
|
|
mov w1, 1
|
|
mov x0, x27
|
|
bl sblk_read_page
|
|
ldr w0, [x27, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L3310
|
|
ldr x0, [x27, 24]
|
|
ldr w1, [x0]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
cmp w1, w0
|
|
beq .L3311
|
|
.L3310:
|
|
mov x0, x27
|
|
bl zbuf_free
|
|
ldr x1, [x27, 24]
|
|
ldr x0, [x27, 8]
|
|
ldr w2, [x1, 12]
|
|
str w2, [sp, 16]
|
|
ldr w2, [x1, 8]
|
|
str w2, [sp, 8]
|
|
ldr w2, [x1, 4]
|
|
str w2, [sp]
|
|
ldp w3, w4, [x0]
|
|
ldp w5, w6, [x0, 8]
|
|
adrp x0, .LC213
|
|
ldr w7, [x1]
|
|
add x0, x0, :lo12:.LC213
|
|
ldr w1, [x27, 40]
|
|
ldr w2, [x27, 52]
|
|
bl printf
|
|
.L3400:
|
|
adrp x0, .LANCHOR11
|
|
ldrh w1, [x23, 80]
|
|
mov w25, 0
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x1, lsl 1]
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x23, 80]
|
|
strh w1, [x0, 130]
|
|
.L3312:
|
|
ldrh w0, [x23, 80]
|
|
adrp x2, .LANCHOR11
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ubfiz x1, x0, 1, 16
|
|
ldrh w1, [x2, x1]
|
|
cbnz w1, .L3356
|
|
bl ftl_dump_write_open_sblk
|
|
.L3356:
|
|
ldrh w1, [x23, 80]
|
|
mov w2, w25
|
|
adrp x0, .LC215
|
|
add x0, x0, :lo12:.LC215
|
|
bl printf
|
|
mov w0, -1
|
|
strh w0, [x23, 80]
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
mov w1, 65535
|
|
ldrh w0, [x0, 130]
|
|
cmp w0, w1
|
|
beq .L3357
|
|
adrp x1, .LANCHOR8
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
cmp w1, w0
|
|
bhi .L3358
|
|
adrp x1, .LANCHOR225
|
|
adrp x0, .LC0
|
|
mov w2, 517
|
|
add x1, x1, :lo12:.LANCHOR225
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3358:
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x0, 130]
|
|
bl ftl_free_sblk
|
|
.L3357:
|
|
adrp x0, .LANCHOR110
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
mov w0, -1
|
|
strh w0, [x1, 126]
|
|
ldr x1, [x26, #:lo12:.LANCHOR12]
|
|
strh w0, [x1, 130]
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
.L3305:
|
|
ldp x19, x20, [sp, 48]
|
|
ldp x21, x22, [sp, 64]
|
|
ldp x23, x24, [sp, 80]
|
|
ldp x25, x26, [sp, 96]
|
|
ldp x27, x28, [sp, 112]
|
|
ldp x29, x30, [sp, 32]
|
|
add sp, sp, 240
|
|
ret
|
|
.L3308:
|
|
cmp w2, 3
|
|
bne .L3309
|
|
adrp x0, .LANCHOR94
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
sub w0, w0, #1
|
|
add w0, w0, w1
|
|
orr w0, w0, 50331648
|
|
str w0, [x27, 40]
|
|
b .L3309
|
|
.L3311:
|
|
adrp x21, .LANCHOR224
|
|
adrp x19, .LANCHOR85
|
|
adrp x20, .LANCHOR79
|
|
adrp x24, .LANCHOR159
|
|
ldrb w0, [x21, #:lo12:.LANCHOR224]
|
|
cmp w0, 2
|
|
bne .L3313
|
|
ldr x0, [x29, 176]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
cmp w0, 3
|
|
bne .L3313
|
|
ldrh w2, [x19, #:lo12:.LANCHOR85]
|
|
adrp x22, .LANCHOR221
|
|
ldrb w1, [x20, #:lo12:.LANCHOR79]
|
|
ldr x3, [x24, #:lo12:.LANCHOR159]
|
|
ubfiz w2, w2, 2, 14
|
|
ldrh w0, [x22, #:lo12:.LANCHOR221]
|
|
mul w2, w2, w1
|
|
ldr x1, [x27, 8]
|
|
sub w2, w2, w0
|
|
and x0, x0, 65532
|
|
and w2, w2, 65535
|
|
add x0, x3, x0
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L3314
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbz w0, .L3315
|
|
.L3314:
|
|
ldr w0, [x27, 40]
|
|
sub w0, w0, #1
|
|
.L3394:
|
|
str w0, [x27, 40]
|
|
mov w1, 1
|
|
mov x0, x27
|
|
bl sblk_read_page
|
|
ldr w0, [x27, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L3317
|
|
ldr x0, [x27, 24]
|
|
ldr w1, [x0]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
cmp w1, w0
|
|
beq .L3318
|
|
.L3317:
|
|
mov x0, x27
|
|
bl zbuf_free
|
|
b .L3400
|
|
.L3315:
|
|
adrp x1, .LANCHOR94
|
|
ldr w0, [x29, 200]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
sub w0, w0, #1
|
|
add w0, w0, w1
|
|
orr w0, w0, 33554432
|
|
b .L3394
|
|
.L3318:
|
|
ldrh w2, [x22, #:lo12:.LANCHOR221]
|
|
.L3395:
|
|
ldr x1, [x27, 8]
|
|
adrp x22, .LANCHOR160
|
|
ldr x0, [x24, #:lo12:.LANCHOR159]
|
|
bl ftl_memcpy
|
|
ldrb w1, [x20, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x19, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w1
|
|
adrp x1, .LANCHOR131
|
|
ldrb w1, [x1, #:lo12:.LANCHOR131]
|
|
lsl w2, w0, 2
|
|
cmp w1, w0, lsr 6
|
|
bge .L3320
|
|
ldr x0, [x22, #:lo12:.LANCHOR160]
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
ldrb w21, [x21, #:lo12:.LANCHOR224]
|
|
cmp w21, 1
|
|
bne .L3361
|
|
ldrb w1, [x20, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x19, #:lo12:.LANCHOR85]
|
|
mul w0, w0, w1
|
|
adrp x1, .LANCHOR221
|
|
ldrh w1, [x1, #:lo12:.LANCHOR221]
|
|
sub w25, w1, w0, lsl 2
|
|
ldr x1, [x27, 8]
|
|
mov w2, w25
|
|
add x1, x1, x0, sxtw 2
|
|
ldr x0, [x22, #:lo12:.LANCHOR160]
|
|
bl ftl_memcpy
|
|
.L3321:
|
|
adrp x0, .LANCHOR94
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
str w0, [x29, 184]
|
|
ldr x0, [x29, 176]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
str w0, [x29, 188]
|
|
cmp w0, 2
|
|
bne .L3322
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbz w0, .L3323
|
|
.L3322:
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbz w0, .L3324
|
|
.L3323:
|
|
ldp w0, w1, [x29, 184]
|
|
mul w0, w0, w1
|
|
str w0, [x29, 184]
|
|
mov w0, 1
|
|
str w0, [x29, 188]
|
|
.L3324:
|
|
adrp x22, .LANCHOR35
|
|
mov w28, 0
|
|
add x0, x22, :lo12:.LANCHOR35
|
|
mov w10, 0
|
|
str x0, [x29, 112]
|
|
.L3325:
|
|
sub w0, w28, #1
|
|
str w0, [x29, 144]
|
|
ldr w0, [x29, 184]
|
|
cmp w0, w28
|
|
bls .L3338
|
|
add w0, w28, w28, lsl 1
|
|
mov x20, 0
|
|
sub w0, w0, #1
|
|
str w0, [x29, 164]
|
|
adrp x0, .LANCHOR36
|
|
add x0, x0, :lo12:.LANCHOR36
|
|
str x0, [x29, 120]
|
|
b .L3339
|
|
.L3313:
|
|
ldrh w2, [x19, #:lo12:.LANCHOR85]
|
|
ldrb w0, [x20, #:lo12:.LANCHOR79]
|
|
mul w2, w2, w0
|
|
lsl w2, w2, 2
|
|
b .L3395
|
|
.L3320:
|
|
ldr x1, [x27, 8]
|
|
mov w21, 0
|
|
add x1, x1, x0, sxtw 2
|
|
ldr x0, [x22, #:lo12:.LANCHOR160]
|
|
bl ftl_memcpy
|
|
.L3396:
|
|
mov w25, 0
|
|
b .L3321
|
|
.L3361:
|
|
mov w21, 1
|
|
b .L3396
|
|
.L3334:
|
|
ldp x1, x0, [x29, 128]
|
|
ldr x2, [x29, 176]
|
|
ldrh w0, [x0, 96]
|
|
ldrh w1, [x1]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR78]
|
|
cmp w2, 2
|
|
mul w0, w0, w1
|
|
str w0, [x29, 200]
|
|
add w1, w22, w0
|
|
beq .L3326
|
|
ldr x3, [x29, 112]
|
|
ldrb w3, [x3]
|
|
cbz w3, .L3327
|
|
.L3326:
|
|
ldr w0, [x29, 144]
|
|
add w1, w1, w0
|
|
orr w1, w1, w2, lsl 24
|
|
.L3397:
|
|
str w1, [x27, 40]
|
|
.L3328:
|
|
mov w1, 1
|
|
str x8, [x29, 96]
|
|
str w10, [x29, 104]
|
|
mov x0, x27
|
|
bl sblk_read_page
|
|
adrp x1, .LANCHOR160
|
|
ldr w10, [x29, 104]
|
|
ldr x0, [x27, 24]
|
|
ldr x8, [x29, 96]
|
|
cbz w21, .L3331
|
|
ldr x2, [x1, #:lo12:.LANCHOR160]
|
|
ldr w3, [x2, x8]
|
|
cbnz w3, .L3331
|
|
ldr w3, [x0, 8]
|
|
str w3, [x2, x8]
|
|
.L3331:
|
|
ldr x2, [x24, #:lo12:.LANCHOR159]
|
|
ldr w6, [x0, 4]
|
|
ldr w3, [x2, x8]
|
|
cmp w3, w6
|
|
bne .L3332
|
|
ldr x2, [x1, #:lo12:.LANCHOR160]
|
|
ldr w4, [x2, x8]
|
|
ldr w2, [x0, 8]
|
|
cmp w4, w2
|
|
beq .L3333
|
|
.L3332:
|
|
ldr x1, [x1, #:lo12:.LANCHOR160]
|
|
ldr w2, [x0, 12]
|
|
str w2, [sp]
|
|
str w10, [x29, 96]
|
|
ldr w4, [x1, x8]
|
|
ldr w5, [x0]
|
|
ldr w7, [x0, 8]
|
|
adrp x0, .LC214
|
|
ldr w1, [x27, 40]
|
|
add x0, x0, :lo12:.LC214
|
|
ldr w2, [x27, 52]
|
|
str x8, [x29, 104]
|
|
bl printf
|
|
ldr x0, [x24, #:lo12:.LANCHOR159]
|
|
ldr x8, [x29, 104]
|
|
ldr w10, [x29, 96]
|
|
ldr w0, [x0, x8]
|
|
cmn w0, #1
|
|
beq .L3333
|
|
mov x0, x27
|
|
bl zbuf_free
|
|
adrp x0, .LANCHOR11
|
|
ldrh w1, [x23, 80]
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x1, lsl 1]
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x23, 80]
|
|
strh w1, [x0, 130]
|
|
b .L3312
|
|
.L3327:
|
|
cmp w2, 3
|
|
bne .L3329
|
|
ldr x2, [x29, 120]
|
|
ldrb w2, [x2]
|
|
cbz w2, .L3330
|
|
ldr w0, [x29, 164]
|
|
add w1, w1, w0
|
|
orr w1, w1, 50331648
|
|
b .L3397
|
|
.L3330:
|
|
add w0, w28, w0
|
|
orr w0, w0, w22, lsl 24
|
|
.L3398:
|
|
str w0, [x27, 40]
|
|
b .L3328
|
|
.L3329:
|
|
add w0, w28, w0
|
|
b .L3398
|
|
.L3333:
|
|
add w10, w10, 1
|
|
add w22, w22, 1
|
|
add x8, x8, 4
|
|
.L3336:
|
|
ldr w0, [x29, 188]
|
|
cmp w0, w22
|
|
bcs .L3334
|
|
add x20, x20, 1
|
|
.L3339:
|
|
ldr x0, [x29, 168]
|
|
ldrb w0, [x0, 9]
|
|
cmp w0, w20
|
|
ble .L3335
|
|
add x0, x23, x20, lsl 1
|
|
str x0, [x29, 136]
|
|
ldr x0, [x29, 152]
|
|
sbfiz x8, x10, 2, 32
|
|
mov w22, 1
|
|
add x0, x0, :lo12:.LANCHOR111
|
|
str x0, [x29, 128]
|
|
b .L3336
|
|
.L3335:
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cmp w0, 0
|
|
cinc w28, w28, ne
|
|
add w28, w28, 1
|
|
b .L3325
|
|
.L3338:
|
|
mov x0, x27
|
|
bl zbuf_free
|
|
ldr x0, [x29, 168]
|
|
adrp x20, .LANCHOR11
|
|
ldrh w3, [x19, #:lo12:.LANCHOR85]
|
|
mov w25, 0
|
|
ldrh w2, [x23, 80]
|
|
mov w27, 0
|
|
ldr x1, [x20, #:lo12:.LANCHOR11]
|
|
mov w28, 0
|
|
ldrb w0, [x0, 9]
|
|
str x20, [x29, 144]
|
|
mul w0, w0, w3
|
|
strh w0, [x1, x2, lsl 1]
|
|
adrp x0, .LANCHOR74
|
|
add x0, x0, :lo12:.LANCHOR74
|
|
str x0, [x29, 104]
|
|
.L3340:
|
|
sub w0, w27, #1
|
|
str w0, [x29, 128]
|
|
ldr w0, [x29, 184]
|
|
cmp w0, w27
|
|
bls .L3354
|
|
add w22, w27, w27, lsl 1
|
|
mov x21, 0
|
|
sub w0, w22, #1
|
|
str w0, [x29, 120]
|
|
b .L3355
|
|
.L3350:
|
|
ldr x1, [x24, #:lo12:.LANCHOR159]
|
|
sbfiz x0, x28, 2, 32
|
|
ldr w20, [x1, x0]
|
|
cmn w20, #1
|
|
beq .L3341
|
|
adrp x1, .LANCHOR160
|
|
ldr x1, [x1, #:lo12:.LANCHOR160]
|
|
ldr w0, [x1, x0]
|
|
str w0, [x29, 164]
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 204]
|
|
cmn w0, #1
|
|
bne .L3342
|
|
mov w2, 0
|
|
add x1, x29, 204
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
.L3342:
|
|
ldr x0, [x29, 136]
|
|
ldr x1, [x29, 152]
|
|
ldr x2, [x29, 176]
|
|
ldrh w0, [x0, 96]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR111]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR78]
|
|
cmp w2, 2
|
|
mul w0, w0, w1
|
|
add w1, w22, w0
|
|
beq .L3343
|
|
adrp x6, .LANCHOR35
|
|
ldrb w6, [x6, #:lo12:.LANCHOR35]
|
|
cbz w6, .L3344
|
|
.L3343:
|
|
ldr w0, [x29, 128]
|
|
add w1, w0, w1
|
|
orr w1, w1, w2, lsl 24
|
|
str w1, [x29, 200]
|
|
.L3345:
|
|
ldp x0, x1, [x29, 104]
|
|
mov w19, 24
|
|
mov w2, 1
|
|
ldrb w1, [x1]
|
|
ldrh w0, [x0]
|
|
sub w19, w19, w1
|
|
ldr w1, [x29, 164]
|
|
sub w19, w19, w0
|
|
lsr w0, w1, w0
|
|
lsl w19, w2, w19
|
|
sub w19, w19, #1
|
|
and w19, w19, w0
|
|
adrp x0, .LANCHOR75
|
|
ldrb w0, [x0, #:lo12:.LANCHOR75]
|
|
udiv w19, w19, w0
|
|
ldr w0, [x29, 204]
|
|
cmp w1, w0
|
|
and x19, x19, 65535
|
|
bne .L3348
|
|
add x1, x29, 200
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
add w25, w25, 1
|
|
mov w0, w19
|
|
bl ftl_vpn_decrement
|
|
.L3349:
|
|
adrp x0, .LANCHOR9
|
|
add w28, w28, 1
|
|
ldr x0, [x0, #:lo12:.LANCHOR9]
|
|
add x0, x0, x19, lsl 2
|
|
ldrb w0, [x0, 2]
|
|
tst w0, 224
|
|
bne .L3341
|
|
ldr x0, [x29, 144]
|
|
lsl x19, x19, 1
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x0, x19]
|
|
cbz w1, .L3341
|
|
strh wzr, [x0, x19]
|
|
.L3341:
|
|
add w22, w22, 1
|
|
.L3352:
|
|
ldr w0, [x29, 188]
|
|
cmp w0, w22
|
|
bcs .L3350
|
|
add x21, x21, 1
|
|
.L3355:
|
|
ldr x0, [x29, 168]
|
|
ldrb w0, [x0, 9]
|
|
cmp w0, w21
|
|
ble .L3351
|
|
add x0, x23, x21, lsl 1
|
|
mov w22, 1
|
|
str x0, [x29, 136]
|
|
adrp x0, .LANCHOR31
|
|
add x0, x0, :lo12:.LANCHOR31
|
|
str x0, [x29, 112]
|
|
b .L3352
|
|
.L3344:
|
|
cmp w2, 3
|
|
bne .L3346
|
|
adrp x2, .LANCHOR36
|
|
ldrb w6, [x2, #:lo12:.LANCHOR36]
|
|
lsl w2, w22, 24
|
|
cbz w6, .L3347
|
|
ldr w0, [x29, 120]
|
|
add w1, w0, w1
|
|
orr w0, w1, w2
|
|
.L3399:
|
|
str w0, [x29, 200]
|
|
b .L3345
|
|
.L3347:
|
|
add w0, w27, w0
|
|
orr w0, w0, w2
|
|
b .L3399
|
|
.L3346:
|
|
add w0, w27, w0
|
|
b .L3399
|
|
.L3348:
|
|
ldr w1, [x29, 200]
|
|
cmp w0, w1
|
|
cinc w25, w25, eq
|
|
b .L3349
|
|
.L3351:
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cmp w0, 0
|
|
cinc w27, w27, ne
|
|
add w27, w27, 1
|
|
b .L3340
|
|
.L3354:
|
|
ldr x0, [x29, 144]
|
|
ldrh w1, [x23, 80]
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
strh w25, [x0, x1, lsl 1]
|
|
ldrh w0, [x23, 80]
|
|
bl zftl_insert_data_list
|
|
b .L3312
|
|
.L3306:
|
|
ldrh w0, [x23, 130]
|
|
cmp w0, w1
|
|
beq .L3305
|
|
adrp x19, .LANCHOR110
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldrh w1, [x1, 126]
|
|
cmp w1, w0
|
|
bne .L3360
|
|
bl pm_flush
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x0, 130]
|
|
bl ftl_free_sblk
|
|
ldr x0, [x19, #:lo12:.LANCHOR110]
|
|
mov w1, -1
|
|
strh w1, [x0, 126]
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
.L3360:
|
|
ldr x0, [x26, #:lo12:.LANCHOR12]
|
|
mov w1, -1
|
|
strh w1, [x0, 130]
|
|
b .L3305
|
|
.size gc_recovery, .-gc_recovery
|
|
.section .text.gc_update_l2p_map_new,"ax",@progbits
|
|
.align 2
|
|
.global gc_update_l2p_map_new
|
|
.type gc_update_l2p_map_new, %function
|
|
gc_update_l2p_map_new:
|
|
stp x29, x30, [sp, -176]!
|
|
adrp x0, .LANCHOR12
|
|
adrp x1, .LANCHOR85
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
ldr x21, [x0, #:lo12:.LANCHOR12]
|
|
stp x25, x26, [sp, 64]
|
|
ldrh w26, [x1, #:lo12:.LANCHOR85]
|
|
add x1, x21, 80
|
|
stp x23, x24, [sp, 48]
|
|
adrp x24, .LANCHOR19
|
|
stp x19, x20, [sp, 16]
|
|
stp x27, x28, [sp, 80]
|
|
stp x0, x1, [x29, 128]
|
|
ldrb w1, [x1, 9]
|
|
mul w26, w26, w1
|
|
ldr w1, [x24, #:lo12:.LANCHOR19]
|
|
tbz x1, 8, .L3402
|
|
ldrh w1, [x21, 80]
|
|
adrp x0, .LC216
|
|
add x0, x0, :lo12:.LC216
|
|
bl printf
|
|
.L3402:
|
|
adrp x23, .LANCHOR11
|
|
adrp x0, .LANCHOR224
|
|
ldrh w2, [x21, 80]
|
|
mov x22, 0
|
|
ldr x1, [x23, #:lo12:.LANCHOR11]
|
|
mov w25, 0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR224]
|
|
sub w0, w26, w0
|
|
strh w0, [x1, x2, lsl 1]
|
|
adrp x0, .LANCHOR131
|
|
add x0, x0, :lo12:.LANCHOR131
|
|
str x0, [x29, 104]
|
|
.L3403:
|
|
mov w28, w22
|
|
cmp w26, w22
|
|
bhi .L3413
|
|
ldr w0, [x24, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3414
|
|
ldr x0, [x29, 128]
|
|
mov w3, w25
|
|
ldr x1, [x23, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x21, 80]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldrh w2, [x1, x2, lsl 1]
|
|
ldrh w1, [x0, 80]
|
|
adrp x0, .LC219
|
|
add x0, x0, :lo12:.LC219
|
|
bl printf
|
|
.L3414:
|
|
ldrh w1, [x21, 80]
|
|
ldr x0, [x23, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x0, x1, lsl 1]
|
|
cmp w25, w0
|
|
beq .L3415
|
|
adrp x1, .LANCHOR226
|
|
adrp x0, .LC0
|
|
mov w2, 898
|
|
add x1, x1, :lo12:.LANCHOR226
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3415:
|
|
ldrh w1, [x21, 80]
|
|
ldr x0, [x23, #:lo12:.LANCHOR11]
|
|
strh w25, [x0, x1, lsl 1]
|
|
ldrh w0, [x21, 80]
|
|
bl zftl_insert_data_list
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 176
|
|
ret
|
|
.L3413:
|
|
adrp x27, .LANCHOR159
|
|
lsl x19, x22, 2
|
|
ldr x0, [x27, #:lo12:.LANCHOR159]
|
|
ldr w2, [x0, x19]
|
|
cmn w2, #1
|
|
beq .L3404
|
|
adrp x0, .LANCHOR131
|
|
ldrb w20, [x0, #:lo12:.LANCHOR131]
|
|
lsl w20, w20, 7
|
|
udiv w20, w2, w20
|
|
and w0, w20, 65535
|
|
str w0, [x29, 156]
|
|
ldr w0, [x24, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3405
|
|
ldr w1, [x29, 156]
|
|
adrp x0, .LC217
|
|
mov w3, w22
|
|
add x0, x0, :lo12:.LC217
|
|
bl printf
|
|
.L3405:
|
|
sub w28, w26, w28
|
|
add x28, x28, x22
|
|
lsl x0, x28, 2
|
|
str x0, [x29, 144]
|
|
adrp x0, .LC218
|
|
add x0, x0, :lo12:.LC218
|
|
str x0, [x29, 120]
|
|
adrp x0, .LANCHOR74
|
|
add x0, x0, :lo12:.LANCHOR74
|
|
str x0, [x29, 112]
|
|
.L3406:
|
|
ldr x0, [x29, 144]
|
|
cmp x0, x19
|
|
bne .L3412
|
|
.L3404:
|
|
add x22, x22, 1
|
|
b .L3403
|
|
.L3412:
|
|
ldr x0, [x27, #:lo12:.LANCHOR159]
|
|
ldr w20, [x0, x19]
|
|
cmn w20, #1
|
|
beq .L3407
|
|
ldr x0, [x29, 104]
|
|
ldr w1, [x29, 156]
|
|
ldrb w0, [x0]
|
|
lsl w0, w0, 7
|
|
udiv w0, w20, w0
|
|
cmp w1, w0, uxth
|
|
bne .L3407
|
|
adrp x0, .LANCHOR160
|
|
ldr x0, [x0, #:lo12:.LANCHOR160]
|
|
ldr w28, [x0, x19]
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 172]
|
|
cmn w0, #1
|
|
bne .L3408
|
|
mov w2, 0
|
|
add x1, x29, 172
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
.L3408:
|
|
ldr w3, [x29, 172]
|
|
cmp w28, w3
|
|
bne .L3409
|
|
adrp x0, .LANCHOR161
|
|
mov w2, 1
|
|
add x1, x29, 168
|
|
add w25, w25, 1
|
|
ldr x0, [x0, #:lo12:.LANCHOR161]
|
|
ldr w0, [x0, x19]
|
|
str w0, [x29, 168]
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
ldr x0, [x29, 112]
|
|
ldrh w2, [x0]
|
|
adrp x0, .LANCHOR31
|
|
ldrb w1, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
lsr w28, w28, w2
|
|
sub w0, w0, w1
|
|
sub w1, w0, w2
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
sub w0, w0, #1
|
|
and w28, w0, w28
|
|
adrp x0, .LANCHOR75
|
|
ldrb w0, [x0, #:lo12:.LANCHOR75]
|
|
udiv w0, w28, w0
|
|
.L3435:
|
|
bl ftl_vpn_decrement
|
|
ldr x0, [x27, #:lo12:.LANCHOR159]
|
|
mov w1, -1
|
|
str w1, [x0, x19]
|
|
.L3407:
|
|
add x19, x19, 4
|
|
b .L3406
|
|
.L3409:
|
|
ldr w0, [x24, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3411
|
|
ldr x0, [x29, 120]
|
|
mov w2, w28
|
|
mov w1, w20
|
|
bl printf
|
|
.L3411:
|
|
ldr x0, [x29, 136]
|
|
ldrh w0, [x0]
|
|
b .L3435
|
|
.size gc_update_l2p_map_new, .-gc_update_l2p_map_new
|
|
.section .text.gc_scan_src_blk_one_page,"ax",@progbits
|
|
.align 2
|
|
.global gc_scan_src_blk_one_page
|
|
.type gc_scan_src_blk_one_page, %function
|
|
gc_scan_src_blk_one_page:
|
|
stp x29, x30, [sp, -96]!
|
|
mov w3, 0
|
|
mov w4, 0
|
|
mov w5, 65535
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR70
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
adrp x21, .LANCHOR79
|
|
stp x25, x26, [sp, 64]
|
|
ldrb w6, [x21, #:lo12:.LANCHOR79]
|
|
ldrb w0, [x1, 4]
|
|
add x2, x1, x0, sxtw 1
|
|
ldrh w22, [x2, 40]
|
|
ldrh w2, [x1, 2]
|
|
.L3437:
|
|
cmp w22, w5
|
|
beq .L3439
|
|
cbz w4, .L3440
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
strh w2, [x1, 2]
|
|
.L3440:
|
|
cbz w3, .L3441
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
strb w0, [x1, 4]
|
|
.L3441:
|
|
mov w0, 1
|
|
adrp x23, .LANCHOR111
|
|
bl buf_alloc
|
|
adrp x24, .LANCHOR35
|
|
mov x25, x0
|
|
add x23, x23, :lo12:.LANCHOR111
|
|
add x24, x24, :lo12:.LANCHOR35
|
|
mov w26, 1
|
|
.L3442:
|
|
add x19, x20, :lo12:.LANCHOR70
|
|
ldrb w1, [x19, 6]
|
|
cmp w26, w1
|
|
ble .L3452
|
|
mov x0, x25
|
|
bl zbuf_free
|
|
ldrb w0, [x19, 4]
|
|
ldrb w1, [x21, #:lo12:.LANCHOR79]
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
strb w0, [x19, 4]
|
|
cmp w1, w0
|
|
bne .L3436
|
|
ldrh w0, [x19, 2]
|
|
strb wzr, [x19, 4]
|
|
add w0, w0, 1
|
|
strh w0, [x19, 2]
|
|
.L3436:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x29, x30, [sp], 96
|
|
ret
|
|
.L3439:
|
|
add w0, w0, 1
|
|
and w0, w0, 255
|
|
cmp w0, w6
|
|
bne .L3438
|
|
add w2, w2, 1
|
|
mov w0, 0
|
|
and w2, w2, 65535
|
|
mov w4, 1
|
|
.L3438:
|
|
add x3, x1, x0, sxtw 1
|
|
ldrh w22, [x3, 40]
|
|
mov w3, 1
|
|
b .L3437
|
|
.L3452:
|
|
ldrh w0, [x23]
|
|
cmp w1, 2
|
|
mul w0, w0, w22
|
|
bne .L3443
|
|
ldrh w1, [x19, 2]
|
|
lsl w1, w1, 1
|
|
.L3462:
|
|
sub w1, w1, #1
|
|
add w0, w26, w0
|
|
add w0, w1, w0
|
|
adrp x1, .LANCHOR78
|
|
ldrb w1, [x1, #:lo12:.LANCHOR78]
|
|
orr w0, w0, w1, lsl 24
|
|
.L3461:
|
|
str w0, [x25, 40]
|
|
mov w1, 1
|
|
mov x0, x25
|
|
bl sblk_read_page
|
|
ldr w0, [x25, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L3449
|
|
ldr x0, [x25, 24]
|
|
ldr w19, [x0, 4]
|
|
mov w0, w19
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 92]
|
|
cmn w0, #1
|
|
bne .L3450
|
|
adrp x0, .LANCHOR128
|
|
ldr w0, [x0, #:lo12:.LANCHOR128]
|
|
cmp w19, w0
|
|
bcs .L3450
|
|
mov w2, 0
|
|
add x1, x29, 92
|
|
mov w0, w19
|
|
bl pm_log2phys
|
|
.L3450:
|
|
ldr w2, [x25, 40]
|
|
ldr w0, [x29, 92]
|
|
cmp w2, w0
|
|
bne .L3449
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
adrp x4, .LANCHOR76
|
|
ldr x4, [x4, #:lo12:.LANCHOR76]
|
|
ldrh w0, [x1, 24]
|
|
ubfiz x3, x0, 2, 16
|
|
add w0, w0, 1
|
|
str w2, [x4, x3]
|
|
strh w0, [x1, 24]
|
|
.L3449:
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
add w26, w26, 1
|
|
ldrh w0, [x1, 26]
|
|
add w0, w0, 1
|
|
strh w0, [x1, 26]
|
|
b .L3442
|
|
.L3443:
|
|
cmp w1, 3
|
|
bne .L3445
|
|
ldrb w1, [x24]
|
|
cbnz w1, .L3446
|
|
adrp x1, .LANCHOR36
|
|
ldrb w1, [x1, #:lo12:.LANCHOR36]
|
|
cbz w1, .L3447
|
|
.L3446:
|
|
add x1, x20, :lo12:.LANCHOR70
|
|
ldrh w1, [x1, 2]
|
|
add w1, w1, w1, lsl 1
|
|
b .L3462
|
|
.L3447:
|
|
ldrh w1, [x19, 2]
|
|
add w0, w1, w0
|
|
orr w0, w0, w26, lsl 24
|
|
b .L3461
|
|
.L3445:
|
|
ldrh w1, [x19, 2]
|
|
add w0, w1, w0
|
|
b .L3461
|
|
.size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
|
|
.section .text.gc_scan_src_blk,"ax",@progbits
|
|
.align 2
|
|
.global gc_scan_src_blk
|
|
.type gc_scan_src_blk, %function
|
|
gc_scan_src_blk:
|
|
stp x29, x30, [sp, -112]!
|
|
mov w0, 65535
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR70
|
|
stp x19, x20, [sp, 16]
|
|
ldrh w1, [x21, #:lo12:.LANCHOR70]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
cmp w1, w0
|
|
stp x27, x28, [sp, 80]
|
|
bne .L3464
|
|
adrp x1, .LANCHOR227
|
|
adrp x0, .LC0
|
|
mov w2, 1505
|
|
add x1, x1, :lo12:.LANCHOR227
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3464:
|
|
ldrh w1, [x21, #:lo12:.LANCHOR70]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
beq .L3494
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3466
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x0, x1, 1, 16
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x2, x0]
|
|
adrp x0, .LC220
|
|
add x0, x0, :lo12:.LC220
|
|
bl printf
|
|
.L3466:
|
|
ldrh w0, [x21, #:lo12:.LANCHOR70]
|
|
add x14, x21, :lo12:.LANCHOR70
|
|
add x1, x14, 40
|
|
bl ftl_get_blk_list_in_sblk
|
|
and w1, w0, 255
|
|
strb w1, [x14, 5]
|
|
cbnz w1, .L3467
|
|
mov w0, -1
|
|
strh w0, [x21, #:lo12:.LANCHOR70]
|
|
.L3494:
|
|
mov w0, 0
|
|
b .L3463
|
|
.L3467:
|
|
adrp x4, .LANCHOR9
|
|
ldrh w3, [x21, #:lo12:.LANCHOR70]
|
|
mov x19, x4
|
|
ldr x1, [x4, #:lo12:.LANCHOR9]
|
|
mov x2, x3
|
|
add x1, x1, x3, lsl 2
|
|
ldrb w1, [x1, 2]
|
|
and w1, w1, 224
|
|
cmp w1, 32
|
|
beq .L3468
|
|
cmp w1, 224
|
|
beq .L3468
|
|
cbz w1, .L3469
|
|
adrp x1, .LANCHOR12
|
|
ldr x1, [x1, #:lo12:.LANCHOR12]
|
|
ldrh w3, [x1, 16]
|
|
cmp w3, w2
|
|
beq .L3468
|
|
ldrh w3, [x1, 48]
|
|
cmp w3, w2
|
|
beq .L3468
|
|
ldrh w1, [x1, 80]
|
|
cmp w1, w2
|
|
bne .L3514
|
|
.L3468:
|
|
add x0, x21, :lo12:.LANCHOR70
|
|
mov w1, -1
|
|
strh w1, [x21, #:lo12:.LANCHOR70]
|
|
strh wzr, [x0, 24]
|
|
b .L3494
|
|
.L3469:
|
|
adrp x0, .LANCHOR11
|
|
mov x19, x0
|
|
ldr x1, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x1, x3, lsl 1]
|
|
cbz w1, .L3471
|
|
adrp x1, .LANCHOR227
|
|
adrp x0, .LC0
|
|
mov w2, 1530
|
|
add x1, x1, :lo12:.LANCHOR227
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3471:
|
|
ldrh w1, [x21, #:lo12:.LANCHOR70]
|
|
ldr x0, [x19, #:lo12:.LANCHOR11]
|
|
strh wzr, [x0, x1, lsl 1]
|
|
b .L3468
|
|
.L3514:
|
|
and w0, w0, 255
|
|
sub w0, w0, #1
|
|
add x0, x14, x0, sxtw 1
|
|
ldrh w24, [x0, 40]
|
|
mov w0, 65535
|
|
cmp w24, w0
|
|
bne .L3472
|
|
adrp x1, .LANCHOR227
|
|
adrp x0, .LC0
|
|
mov w2, 1540
|
|
add x1, x1, :lo12:.LANCHOR227
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3472:
|
|
ldrh w1, [x21, #:lo12:.LANCHOR70]
|
|
adrp x23, .LANCHOR111
|
|
ldr x2, [x19, #:lo12:.LANCHOR9]
|
|
adrp x22, .LANCHOR94
|
|
ldrh w20, [x23, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x22, #:lo12:.LANCHOR94]
|
|
add x1, x2, x1, lsl 2
|
|
sub w0, w0, #1
|
|
and w0, w0, 65535
|
|
mul w20, w20, w24
|
|
ldrb w1, [x1, 2]
|
|
and w1, w1, 224
|
|
cmp w1, 160
|
|
bne .L3495
|
|
adrp x1, .LANCHOR78
|
|
ldrb w1, [x1, #:lo12:.LANCHOR78]
|
|
and w27, w1, 65535
|
|
cmp w1, 2
|
|
orr w20, w20, w1, lsl 24
|
|
bne .L3474
|
|
adrp x0, .LANCHOR85
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
sub w0, w0, #1
|
|
and w0, w0, 65535
|
|
.L3474:
|
|
adrp x1, .LANCHOR35
|
|
ldrb w1, [x1, #:lo12:.LANCHOR35]
|
|
cbnz w1, .L3475
|
|
adrp x1, .LANCHOR36
|
|
ldrb w1, [x1, #:lo12:.LANCHOR36]
|
|
cbz w1, .L3473
|
|
.L3475:
|
|
adrp x0, .LANCHOR85
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
sub w0, w0, #1
|
|
and w0, w0, 65535
|
|
.L3473:
|
|
add x25, x21, :lo12:.LANCHOR70
|
|
orr w20, w0, w20
|
|
mov w0, 1
|
|
strb w27, [x25, 6]
|
|
strh wzr, [x25, 2]
|
|
strb wzr, [x25, 4]
|
|
strh wzr, [x25, 26]
|
|
strh wzr, [x25, 28]
|
|
bl buf_alloc
|
|
mov x19, x0
|
|
str w20, [x0, 40]
|
|
mov w1, 1
|
|
bl sblk_read_page
|
|
strh wzr, [x25, 24]
|
|
ldr w0, [x19, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3476
|
|
.L3519:
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
.L3517:
|
|
mov w0, -1
|
|
.L3463:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L3495:
|
|
mov w27, 1
|
|
b .L3473
|
|
.L3476:
|
|
ldr x7, [x19, 24]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
ldr w1, [x7]
|
|
cmp w1, w0
|
|
beq .L3477
|
|
mov w2, 1578
|
|
.L3520:
|
|
adrp x1, .LANCHOR227
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR227
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L3519
|
|
.L3477:
|
|
adrp x0, .LANCHOR79
|
|
ldrh w26, [x22, #:lo12:.LANCHOR94]
|
|
ldrb w25, [x0, #:lo12:.LANCHOR79]
|
|
adrp x0, .LANCHOR224
|
|
ldrb w0, [x0, #:lo12:.LANCHOR224]
|
|
mul w26, w25, w26
|
|
cmp w0, 2
|
|
mul w26, w27, w26
|
|
and w26, w26, 65535
|
|
bne .L3478
|
|
cmp w27, 3
|
|
bne .L3478
|
|
adrp x1, .LANCHOR85
|
|
adrp x28, .LANCHOR221
|
|
adrp x27, .LANCHOR76
|
|
ldrh w1, [x1, #:lo12:.LANCHOR85]
|
|
ldrh w0, [x28, #:lo12:.LANCHOR221]
|
|
ldr x3, [x27, #:lo12:.LANCHOR76]
|
|
ubfiz w1, w1, 2, 14
|
|
mul w25, w25, w1
|
|
ldr x1, [x19, 8]
|
|
sub w25, w25, w0
|
|
and x0, x0, 65532
|
|
and w25, w25, 65535
|
|
add x0, x3, x0
|
|
mov w2, w25
|
|
bl ftl_memcpy
|
|
ldr x0, [x19, 24]
|
|
ldr w6, [x0, 4]
|
|
cbz w6, .L3479
|
|
ldr x0, [x19, 8]
|
|
mov w1, w25
|
|
bl js_hash
|
|
cmp w6, w0
|
|
beq .L3479
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
ldr x0, [x19, 24]
|
|
mov w3, w25
|
|
.L3518:
|
|
ldr w1, [x0, 4]
|
|
adrp x0, .LC221
|
|
ldr w2, [x19, 40]
|
|
add x0, x0, :lo12:.LC221
|
|
bl printf
|
|
b .L3517
|
|
.L3479:
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbnz w0, .L3480
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbz w0, .L3481
|
|
.L3480:
|
|
sub w0, w20, #1
|
|
str w0, [x19, 40]
|
|
.L3482:
|
|
mov w1, 1
|
|
mov x0, x19
|
|
bl sblk_read_page
|
|
ldr w0, [x19, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
beq .L3519
|
|
ldr x0, [x19, 24]
|
|
ldr w1, [x0]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
cmp w1, w0
|
|
beq .L3484
|
|
mov w2, 1619
|
|
b .L3520
|
|
.L3481:
|
|
ldrh w1, [x23, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x22, #:lo12:.LANCHOR94]
|
|
sub w0, w0, #1
|
|
and w0, w0, 65535
|
|
mul w24, w1, w24
|
|
orr w0, w0, 33554432
|
|
orr w24, w0, w24
|
|
str w24, [x19, 40]
|
|
b .L3482
|
|
.L3484:
|
|
ldrh w2, [x28, #:lo12:.LANCHOR221]
|
|
ldr x0, [x27, #:lo12:.LANCHOR76]
|
|
ldr x1, [x19, 8]
|
|
.L3516:
|
|
adrp x20, .LANCHOR76
|
|
bl ftl_memcpy
|
|
adrp x22, .LANCHOR74
|
|
adrp x23, .LANCHOR31
|
|
ldr x24, [x20, #:lo12:.LANCHOR76]
|
|
add x22, x22, :lo12:.LANCHOR74
|
|
add x23, x23, :lo12:.LANCHOR31
|
|
mov x25, 0
|
|
.L3487:
|
|
cmp w26, w25
|
|
bgt .L3492
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
adrp x0, .LANCHOR11
|
|
ldrh w1, [x21, #:lo12:.LANCHOR70]
|
|
add x3, x21, :lo12:.LANCHOR70
|
|
mov x19, x0
|
|
ldr x4, [x0, #:lo12:.LANCHOR11]
|
|
ubfiz x2, x1, 1, 16
|
|
ldrh w3, [x3, 24]
|
|
ldrh w2, [x4, x2]
|
|
cmp w2, w3
|
|
beq .L3493
|
|
adrp x0, .LC222
|
|
add x0, x0, :lo12:.LC222
|
|
bl printf
|
|
.L3493:
|
|
add x0, x21, :lo12:.LANCHOR70
|
|
ldrh w2, [x21, #:lo12:.LANCHOR70]
|
|
ldr x1, [x19, #:lo12:.LANCHOR11]
|
|
ldrh w3, [x0, 24]
|
|
strh w3, [x1, x2, lsl 1]
|
|
strh wzr, [x0, 28]
|
|
ldrh w0, [x0, 24]
|
|
b .L3463
|
|
.L3478:
|
|
ldr x6, [x19, 8]
|
|
lsl w20, w26, 2
|
|
mov w1, w20
|
|
mov x0, x6
|
|
bl js_hash
|
|
ldr w1, [x7, 4]
|
|
cmp w1, w0
|
|
beq .L3486
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
mov w3, w20
|
|
ldr x0, [x19, 24]
|
|
b .L3518
|
|
.L3486:
|
|
adrp x0, .LANCHOR76
|
|
mov w2, w20
|
|
mov x1, x6
|
|
ldr x0, [x0, #:lo12:.LANCHOR76]
|
|
b .L3516
|
|
.L3492:
|
|
ldr w0, [x24, x25, lsl 2]
|
|
cmn w0, #1
|
|
beq .L3489
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 108]
|
|
cmn w0, #1
|
|
bne .L3490
|
|
ldr w0, [x24, x25, lsl 2]
|
|
mov w2, 0
|
|
add x1, x29, 108
|
|
bl pm_log2phys
|
|
.L3490:
|
|
ldrb w0, [x23]
|
|
mov w1, 24
|
|
ldrh w2, [x22]
|
|
sub w0, w1, w0
|
|
ldr w3, [x29, 108]
|
|
sub w1, w0, w2
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
adrp x1, .LANCHOR75
|
|
sub w0, w0, #1
|
|
lsr w2, w3, w2
|
|
ldrb w1, [x1, #:lo12:.LANCHOR75]
|
|
and w0, w0, w2
|
|
ldrh w2, [x21, #:lo12:.LANCHOR70]
|
|
udiv w0, w0, w1
|
|
add x1, x21, :lo12:.LANCHOR70
|
|
cmp w0, w2
|
|
bne .L3489
|
|
ldrh w0, [x1, 24]
|
|
ldr x4, [x20, #:lo12:.LANCHOR76]
|
|
ubfiz x2, x0, 2, 16
|
|
add w0, w0, 1
|
|
str w3, [x4, x2]
|
|
strh w0, [x1, 24]
|
|
.L3489:
|
|
add x25, x25, 1
|
|
b .L3487
|
|
.size gc_scan_src_blk, .-gc_scan_src_blk
|
|
.section .text.gc_scan_static_data,"ax",@progbits
|
|
.align 2
|
|
.global gc_scan_static_data
|
|
.type gc_scan_static_data, %function
|
|
gc_scan_static_data:
|
|
stp x29, x30, [sp, -80]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x19, .LANCHOR12
|
|
stp x21, x22, [sp, 32]
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr w1, [x0, 544]
|
|
str x23, [sp, 48]
|
|
cmn w1, #1
|
|
beq .L3522
|
|
adrp x21, .LANCHOR228
|
|
adrp x22, .LC0
|
|
add x21, x21, :lo12:.LANCHOR228
|
|
add x22, x22, :lo12:.LC0
|
|
mov w20, 0
|
|
.L3530:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
mov w2, 0
|
|
add x1, x29, 76
|
|
ldr w0, [x0, 544]
|
|
bl pm_log2phys
|
|
ldr w0, [x29, 76]
|
|
cmn w0, #1
|
|
beq .L3523
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
ldr w1, [x29, 76]
|
|
mov x23, x0
|
|
str w1, [x0, 40]
|
|
mov w1, 1
|
|
bl sblk_read_page
|
|
ldr w0, [x23, 52]
|
|
cmp w0, 256
|
|
bne .L3524
|
|
adrp x0, .LANCHOR74
|
|
ldr w2, [x29, 76]
|
|
ldrh w3, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR31
|
|
ldrb w1, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
lsr w2, w2, w3
|
|
sub w0, w0, w1
|
|
mov w1, 1
|
|
sub w0, w0, w3
|
|
lsl w0, w1, w0
|
|
sub w0, w0, #1
|
|
and w0, w0, w2
|
|
adrp x2, .LANCHOR75
|
|
ldrb w3, [x2, #:lo12:.LANCHOR75]
|
|
mov w2, 0
|
|
udiv w0, w0, w3
|
|
bl gc_add_sblk
|
|
.L3524:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr x1, [x23, 24]
|
|
ldr w0, [x0, 544]
|
|
ldr w1, [x1, 4]
|
|
cmp w1, w0
|
|
beq .L3525
|
|
mov w2, 2163
|
|
mov x1, x21
|
|
mov x0, x22
|
|
bl printf
|
|
.L3525:
|
|
mov x0, x23
|
|
bl zbuf_free
|
|
.L3523:
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
adrp x2, .LANCHOR128
|
|
ldr w2, [x2, #:lo12:.LANCHOR128]
|
|
ldr w1, [x0, 544]
|
|
add w1, w1, 1
|
|
str w1, [x0, 544]
|
|
cmp w1, w2
|
|
bcc .L3526
|
|
mov w1, -1
|
|
str w1, [x0, 544]
|
|
ldr w1, [x0, 548]
|
|
add w1, w1, 1
|
|
str w1, [x0, 548]
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
.L3521:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldr x23, [sp, 48]
|
|
ldp x29, x30, [sp], 80
|
|
ret
|
|
.L3526:
|
|
ldr w0, [x29, 76]
|
|
cmn w0, #1
|
|
bne .L3521
|
|
adrp x1, .LANCHOR221
|
|
add w0, w20, 1
|
|
and w0, w0, 65535
|
|
ldrh w1, [x1, #:lo12:.LANCHOR221]
|
|
cmp w20, w1, lsr 2
|
|
bcs .L3521
|
|
mov w20, w0
|
|
b .L3530
|
|
.L3522:
|
|
ldr w1, [x0, 536]
|
|
adrp x3, .LANCHOR110
|
|
ldr w2, [x0, 12]
|
|
add w1, w1, 12959744
|
|
add w1, w1, 256
|
|
cmp w2, w1
|
|
bhi .L3532
|
|
ldr x4, [x3, #:lo12:.LANCHOR110]
|
|
mov w5, 5000
|
|
ldr w1, [x0, 540]
|
|
add w1, w1, w5
|
|
ldr w4, [x4, 44]
|
|
cmp w4, w1
|
|
bls .L3521
|
|
.L3532:
|
|
ldr x1, [x3, #:lo12:.LANCHOR110]
|
|
ldr w1, [x1, 44]
|
|
str w1, [x0, 540]
|
|
str w2, [x0, 536]
|
|
str wzr, [x0, 544]
|
|
b .L3521
|
|
.size gc_scan_static_data, .-gc_scan_static_data
|
|
.section .text.ftl_sblk_dump,"ax",@progbits
|
|
.align 2
|
|
.global ftl_sblk_dump
|
|
.type ftl_sblk_dump, %function
|
|
ftl_sblk_dump:
|
|
sub sp, sp, #288
|
|
and x0, x0, 65535
|
|
stp x29, x30, [sp, 48]
|
|
add x29, sp, 48
|
|
stp x23, x24, [sp, 96]
|
|
adrp x24, .LANCHOR9
|
|
lsl x23, x0, 2
|
|
stp x19, x20, [sp, 64]
|
|
str x0, [x29, 144]
|
|
mov x20, x0
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
str x1, [x29, 160]
|
|
add x1, x0, x23
|
|
stp x21, x22, [sp, 80]
|
|
stp x25, x26, [sp, 112]
|
|
ldr w5, [x0, x23]
|
|
ldrb w2, [x1, 2]
|
|
mov w1, w20
|
|
ldrh w4, [x0, x23]
|
|
adrp x0, .LC223
|
|
stp x27, x28, [sp, 128]
|
|
ubfx x5, x5, 11, 8
|
|
ubfx x3, x2, 3, 2
|
|
and w4, w4, 2047
|
|
ubfx x2, x2, 5, 3
|
|
add x0, x0, :lo12:.LC223
|
|
bl printf
|
|
mov w0, 65535
|
|
cmp w20, w0
|
|
beq .L3561
|
|
adrp x0, .LANCHOR8
|
|
ldrh w0, [x0, #:lo12:.LANCHOR8]
|
|
cmp w0, w20
|
|
bls .L3561
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
add x0, x0, x23
|
|
ldrb w0, [x0, 2]
|
|
and w0, w0, 224
|
|
cmp w0, 160
|
|
bne .L3562
|
|
adrp x0, .LANCHOR78
|
|
ldrb w25, [x0, #:lo12:.LANCHOR78]
|
|
.L3540:
|
|
add x28, x29, 240
|
|
adrp x21, .LANCHOR94
|
|
mov w0, w20
|
|
mov w19, 0
|
|
strh w20, [x28, -32]!
|
|
add x1, x28, 16
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldrh w2, [x21, #:lo12:.LANCHOR94]
|
|
and w1, w0, 255
|
|
strb w1, [x29, 217]
|
|
and w4, w0, 255
|
|
strb wzr, [x29, 213]
|
|
mov w3, w25
|
|
strh wzr, [x29, 210]
|
|
adrp x0, .LC224
|
|
mul w1, w1, w2
|
|
strh wzr, [x29, 218]
|
|
strh w1, [x29, 214]
|
|
add x0, x0, :lo12:.LC224
|
|
ldr x1, [x24, #:lo12:.LANCHOR9]
|
|
add x1, x1, x23
|
|
ldrb w2, [x1, 2]
|
|
mov w1, w20
|
|
ubfx x2, x2, 5, 3
|
|
bl printf
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
str x21, [x29, 136]
|
|
mov x26, x0
|
|
stp wzr, wzr, [x29, 168]
|
|
adrp x0, .LANCHOR111
|
|
str wzr, [x29, 176]
|
|
add x0, x0, :lo12:.LANCHOR111
|
|
str x0, [x29, 112]
|
|
.L3541:
|
|
ldr x0, [x29, 136]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w0, w19
|
|
bls .L3558
|
|
lsl w0, w19, 1
|
|
mov w22, 0
|
|
sub w1, w0, #1
|
|
add w0, w0, w19
|
|
sub w0, w0, #1
|
|
stp w1, w0, [x29, 152]
|
|
adrp x0, .LC160
|
|
add x0, x0, :lo12:.LC160
|
|
str x0, [x29, 120]
|
|
b .L3559
|
|
.L3562:
|
|
mov w25, 1
|
|
b .L3540
|
|
.L3555:
|
|
ldr x0, [x29, 128]
|
|
ldrh w11, [x28, x0]
|
|
mov w0, 65535
|
|
cmp w11, w0
|
|
beq .L3542
|
|
ldr x0, [x29, 112]
|
|
cmp w25, 3
|
|
ldrh w8, [x0]
|
|
mul w1, w8, w11
|
|
add w0, w21, w1
|
|
bne .L3543
|
|
adrp x2, .LANCHOR35
|
|
ldrb w2, [x2, #:lo12:.LANCHOR35]
|
|
cbz w2, .L3544
|
|
adrp x1, .LANCHOR78
|
|
ldrb w8, [x1, #:lo12:.LANCHOR78]
|
|
ldr w1, [x29, 156]
|
|
.L3571:
|
|
add w0, w0, w1
|
|
orr w27, w0, w8, lsl 24
|
|
b .L3545
|
|
.L3544:
|
|
adrp x2, .LANCHOR36
|
|
lsl w8, w21, 24
|
|
ldrb w2, [x2, #:lo12:.LANCHOR36]
|
|
cbz w2, .L3546
|
|
ldr w1, [x29, 156]
|
|
add w0, w0, w1
|
|
orr w27, w0, w8
|
|
.L3545:
|
|
str w27, [x26, 40]
|
|
mov w1, 1
|
|
str w11, [x29, 100]
|
|
mov x0, x26
|
|
bl sblk_read_page
|
|
ldr x1, [x26, 24]
|
|
mov w3, w27
|
|
ldr x0, [x26, 8]
|
|
ldr w12, [x26, 52]
|
|
ldr w11, [x29, 100]
|
|
ldr w2, [x1, 12]
|
|
mov w4, w12
|
|
str w2, [sp, 32]
|
|
str w12, [x29, 104]
|
|
ldr w2, [x1, 8]
|
|
str w2, [sp, 24]
|
|
ldr w2, [x1, 4]
|
|
str w2, [sp, 16]
|
|
mov w2, w19
|
|
ldr w1, [x1]
|
|
str w1, [sp, 8]
|
|
ldr w1, [x0, 12]
|
|
str w1, [sp]
|
|
mov w1, w11
|
|
ldp w5, w6, [x0]
|
|
ldr w7, [x0, 8]
|
|
ldr x0, [x29, 120]
|
|
bl printf
|
|
ldr w12, [x29, 104]
|
|
mov w1, 32
|
|
ldr w0, [x29, 168]
|
|
cmp w12, 512
|
|
ccmn w12, #1, 4, ne
|
|
csinc w0, w0, wzr, ne
|
|
str w0, [x29, 168]
|
|
ldr x0, [x24, #:lo12:.LANCHOR9]
|
|
add x0, x0, x23
|
|
ldrb w0, [x0, 2]
|
|
and w0, w0, 224
|
|
cmp w0, 224
|
|
ccmp w0, w1, 4, ne
|
|
beq .L3542
|
|
ldr x0, [x26, 24]
|
|
ldr w0, [x0, 4]
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 204]
|
|
cmn w0, #1
|
|
bne .L3549
|
|
ldr x0, [x26, 24]
|
|
mov w2, 0
|
|
add x1, x29, 204
|
|
ldr w0, [x0, 4]
|
|
bl pm_log2phys
|
|
.L3549:
|
|
ldr w0, [x29, 204]
|
|
cmp w27, w0
|
|
bne .L3550
|
|
ldr w0, [x29, 172]
|
|
mov w1, w27
|
|
add w0, w0, 1
|
|
str w0, [x29, 172]
|
|
ldr x0, [x26, 24]
|
|
ldr w3, [x29, 172]
|
|
ldr w2, [x0, 4]
|
|
adrp x0, .LC225
|
|
add x0, x0, :lo12:.LC225
|
|
bl printf
|
|
.L3550:
|
|
ldr x0, [x29, 160]
|
|
cbz x0, .L3552
|
|
ldr x0, [x29, 176]
|
|
ubfiz x3, x0, 2, 32
|
|
ldr x0, [x29, 160]
|
|
ldr w2, [x0, x3]
|
|
ldr x0, [x26, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w0, w2
|
|
beq .L3553
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3553
|
|
ldr w1, [x29, 176]
|
|
adrp x0, .LC226
|
|
str x3, [x29, 104]
|
|
add x0, x0, :lo12:.LC226
|
|
bl printf
|
|
ldr x3, [x29, 104]
|
|
.L3553:
|
|
ldr x1, [x26, 24]
|
|
ldr x0, [x29, 160]
|
|
ldr w1, [x1, 4]
|
|
ldr w0, [x0, x3]
|
|
cmp w1, w0
|
|
beq .L3552
|
|
cmn w0, #1
|
|
beq .L3552
|
|
adrp x1, .LANCHOR229
|
|
adrp x0, .LC0
|
|
mov w2, 1575
|
|
add x1, x1, :lo12:.LANCHOR229
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3552:
|
|
ldr w0, [x29, 176]
|
|
add w0, w0, 1
|
|
str w0, [x29, 176]
|
|
.L3542:
|
|
add w21, w21, 1
|
|
and w21, w21, 65535
|
|
.L3557:
|
|
cmp w25, w21
|
|
bcs .L3555
|
|
add w22, w22, 1
|
|
and w22, w22, 65535
|
|
.L3559:
|
|
ldrb w0, [x29, 217]
|
|
cmp w0, w22
|
|
bls .L3556
|
|
sxtw x0, w22
|
|
mov w21, 1
|
|
add x0, x0, 8
|
|
lsl x0, x0, 1
|
|
str x0, [x29, 128]
|
|
b .L3557
|
|
.L3546:
|
|
add w1, w19, w1
|
|
orr w27, w8, w1
|
|
b .L3545
|
|
.L3543:
|
|
cmp w25, 2
|
|
bne .L3547
|
|
adrp x1, .LANCHOR78
|
|
ldrb w8, [x1, #:lo12:.LANCHOR78]
|
|
ldr w1, [x29, 152]
|
|
b .L3571
|
|
.L3547:
|
|
add w27, w19, w1
|
|
b .L3545
|
|
.L3556:
|
|
add w19, w19, 1
|
|
and w19, w19, 65535
|
|
b .L3541
|
|
.L3558:
|
|
mov x0, x26
|
|
bl zbuf_free
|
|
adrp x0, .LANCHOR11
|
|
ldr x1, [x29, 144]
|
|
ldr w3, [x29, 172]
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x0, x1, lsl 1]
|
|
mov w1, w20
|
|
adrp x0, .LC227
|
|
add x0, x0, :lo12:.LC227
|
|
bl printf
|
|
ldr w0, [x29, 168]
|
|
.L3538:
|
|
ldp x19, x20, [sp, 64]
|
|
ldp x21, x22, [sp, 80]
|
|
ldp x23, x24, [sp, 96]
|
|
ldp x25, x26, [sp, 112]
|
|
ldp x27, x28, [sp, 128]
|
|
ldp x29, x30, [sp, 48]
|
|
add sp, sp, 288
|
|
ret
|
|
.L3561:
|
|
mov w0, 0
|
|
b .L3538
|
|
.size ftl_sblk_dump, .-ftl_sblk_dump
|
|
.section .text.zftl_read,"ax",@progbits
|
|
.align 2
|
|
.global zftl_read
|
|
.type zftl_read, %function
|
|
zftl_read:
|
|
sub sp, sp, #192
|
|
stp x29, x30, [sp, 16]
|
|
add x29, sp, 16
|
|
stp x19, x20, [sp, 32]
|
|
mov w19, w0
|
|
adrp x0, .LANCHOR19
|
|
stp x21, x22, [sp, 48]
|
|
stp x23, x24, [sp, 64]
|
|
mov w20, w1
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
mov w23, w2
|
|
stp x25, x26, [sp, 80]
|
|
mov x22, x3
|
|
stp x27, x28, [sp, 96]
|
|
tbz x0, 12, .L3573
|
|
mov w3, w2
|
|
adrp x0, .LC228
|
|
mov w2, w1
|
|
add x0, x0, :lo12:.LC228
|
|
mov w1, w19
|
|
bl printf
|
|
.L3573:
|
|
cbnz w19, .L3574
|
|
adrp x0, .LANCHOR67
|
|
mov w19, 24576
|
|
ldr w0, [x0, #:lo12:.LANCHOR67]
|
|
.L3575:
|
|
cmp w0, w20
|
|
ccmp w0, w23, 0, hi
|
|
bcc .L3608
|
|
add w1, w20, w23
|
|
cmp w0, w1
|
|
bcc .L3608
|
|
adrp x1, .LANCHOR110
|
|
adrp x24, .LANCHOR131
|
|
add w19, w19, w20
|
|
str x1, [x29, 112]
|
|
ldr x2, [x1, #:lo12:.LANCHOR110]
|
|
ldr w0, [x2, 24]
|
|
add w0, w0, w23
|
|
str w0, [x2, 24]
|
|
ldrb w0, [x24, #:lo12:.LANCHOR131]
|
|
udiv w2, w19, w0
|
|
stp wzr, w2, [x29, 152]
|
|
add w2, w23, w19
|
|
str w2, [x29, 148]
|
|
sub w2, w2, #1
|
|
udiv w0, w2, w0
|
|
ldr w2, [x29, 156]
|
|
mov x21, x2
|
|
sub w26, w0, w2
|
|
str w0, [x29, 144]
|
|
add w26, w26, 1
|
|
adrp x0, .LANCHOR134
|
|
add x28, x0, :lo12:.LANCHOR134
|
|
.L3577:
|
|
cbnz w26, .L3605
|
|
ldr w0, [x29, 152]
|
|
.L3572:
|
|
ldp x19, x20, [sp, 32]
|
|
ldp x21, x22, [sp, 48]
|
|
ldp x23, x24, [sp, 64]
|
|
ldp x25, x26, [sp, 80]
|
|
ldp x27, x28, [sp, 96]
|
|
ldp x29, x30, [sp, 16]
|
|
add sp, sp, 192
|
|
ret
|
|
.L3574:
|
|
cmp w19, 3
|
|
bhi .L3608
|
|
lsl w19, w19, 13
|
|
mov w0, 8192
|
|
b .L3575
|
|
.L3605:
|
|
ldr w0, [x29, 156]
|
|
ldrb w1, [x24, #:lo12:.LANCHOR131]
|
|
cmp w21, w0
|
|
ldr w0, [x29, 144]
|
|
and w25, w1, 65535
|
|
ccmp w21, w0, 4, ne
|
|
bne .L3609
|
|
ldr w0, [x29, 156]
|
|
cmp w21, w0
|
|
bne .L3579
|
|
udiv w3, w19, w1
|
|
and w0, w23, 65535
|
|
msub w1, w3, w1, w19
|
|
and w27, w1, 65535
|
|
sub w25, w25, w27
|
|
and w25, w25, 65535
|
|
cmp w23, w25
|
|
csel w25, w0, w25, cc
|
|
.L3578:
|
|
adrp x20, .LANCHOR55
|
|
add x1, x20, :lo12:.LANCHOR55
|
|
add x1, x1, 2
|
|
mov w0, 0
|
|
.L3582:
|
|
ldr w2, [x1, 34]
|
|
cmp w21, w2
|
|
bne .L3580
|
|
ldrb w2, [x1]
|
|
tbz x2, 3, .L3580
|
|
add x1, x20, :lo12:.LANCHOR55
|
|
ubfiz x0, x0, 6, 32
|
|
add x0, x1, x0
|
|
lsl w2, w25, 9
|
|
ubfiz x25, x25, 9, 16
|
|
ubfiz x27, x27, 9, 16
|
|
ldr x1, [x0, 8]
|
|
mov x0, x22
|
|
add x22, x22, x25
|
|
add x1, x1, x27
|
|
bl ftl_memcpy
|
|
.L3581:
|
|
add w21, w21, 1
|
|
sub w26, w26, #1
|
|
.L3588:
|
|
adrp x0, .LANCHOR57
|
|
ldrb w0, [x0, #:lo12:.LANCHOR57]
|
|
cmp w0, 2
|
|
bls .L3589
|
|
cbnz w26, .L3577
|
|
.L3589:
|
|
adrp x0, .LANCHOR134
|
|
ldrb w1, [x0, #:lo12:.LANCHOR134]
|
|
cbz w1, .L3577
|
|
adrp x25, .LANCHOR133
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
ldrb w2, [x25, #:lo12:.LANCHOR133]
|
|
add x0, x0, x2, lsl 6
|
|
bl sblk_read_page
|
|
adrp x0, .LANCHOR230
|
|
add x0, x0, :lo12:.LANCHOR230
|
|
str x0, [x29, 128]
|
|
adrp x0, .LC0
|
|
add x0, x0, :lo12:.LC0
|
|
str x0, [x29, 120]
|
|
.L3591:
|
|
ldrb w0, [x28]
|
|
cbnz w0, .L3604
|
|
mov w0, -1
|
|
strb wzr, [x28]
|
|
strb w0, [x25, #:lo12:.LANCHOR133]
|
|
b .L3577
|
|
.L3579:
|
|
ldr w0, [x29, 148]
|
|
msub w25, w1, w21, w0
|
|
and w25, w25, 255
|
|
.L3609:
|
|
mov w27, 0
|
|
b .L3578
|
|
.L3580:
|
|
add w0, w0, 1
|
|
add x1, x1, 64
|
|
cmp w0, 32
|
|
bne .L3582
|
|
mov w0, w21
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 172]
|
|
cmn w0, #1
|
|
bne .L3583
|
|
mov w2, 0
|
|
add x1, x29, 172
|
|
mov w0, w21
|
|
bl pm_log2phys
|
|
.L3583:
|
|
ldr w0, [x29, 172]
|
|
cmn w0, #1
|
|
bne .L3584
|
|
add x27, x24, :lo12:.LANCHOR131
|
|
mov w25, 0
|
|
.L3585:
|
|
ldrb w0, [x27]
|
|
cmp w25, w0
|
|
bcs .L3581
|
|
madd w0, w21, w0, w25
|
|
cmp w19, w0
|
|
bhi .L3586
|
|
ldr w1, [x29, 148]
|
|
cmp w1, w0
|
|
bls .L3586
|
|
mov x0, x22
|
|
add x22, x22, 512
|
|
mov w2, 512
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
.L3586:
|
|
add w25, w25, 1
|
|
b .L3585
|
|
.L3584:
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
cbz x0, .L3588
|
|
ldr x2, [x29, 112]
|
|
ldr x4, [x2, #:lo12:.LANCHOR110]
|
|
ldr w2, [x4, 40]
|
|
add w2, w2, 1
|
|
str w2, [x4, 40]
|
|
ldr w2, [x29, 172]
|
|
strb w25, [x0, 56]
|
|
ubfiz x25, x25, 9, 16
|
|
str x22, [x0, 16]
|
|
add x22, x22, x25
|
|
strb w27, [x0, 57]
|
|
stp w21, w2, [x0, 36]
|
|
str w2, [x0, 44]
|
|
bl zftl_add_read_buf
|
|
b .L3581
|
|
.L3604:
|
|
ldrb w0, [x25, #:lo12:.LANCHOR133]
|
|
cmp w0, 255
|
|
bne .L3592
|
|
ldp x0, x1, [x29, 120]
|
|
mov w2, 1281
|
|
bl printf
|
|
.L3592:
|
|
ldrb w27, [x25, #:lo12:.LANCHOR133]
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
ubfiz x1, x27, 6, 8
|
|
lsl x2, x27, 6
|
|
add x1, x0, x1
|
|
str x1, [x29, 136]
|
|
add x1, x0, x2
|
|
ldrb w0, [x0, x2]
|
|
strb w0, [x25, #:lo12:.LANCHOR133]
|
|
ldr w10, [x1, 52]
|
|
cmn w10, #1
|
|
bne .L3593
|
|
adrp x0, .LANCHOR12
|
|
str w10, [x29, 152]
|
|
ldr x1, [x0, #:lo12:.LANCHOR12]
|
|
ldr w0, [x1, 552]
|
|
add w0, w0, 1
|
|
str w0, [x1, 552]
|
|
.L3594:
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
add x0, x0, x27, lsl 6
|
|
ldr x3, [x0, 24]
|
|
ldr w0, [x0, 36]
|
|
ldr w1, [x3, 4]
|
|
cmp w1, w0
|
|
bne .L3595
|
|
cmn w10, #1
|
|
bne .L3596
|
|
.L3595:
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
ldrb w4, [x24, #:lo12:.LANCHOR131]
|
|
add x0, x0, x27, lsl 6
|
|
mov w5, 1
|
|
ldrb w1, [x0, 56]
|
|
ldp x2, x7, [x0, 8]
|
|
cmp w1, w4
|
|
ldr w1, [x0, 40]
|
|
adrp x0, .LANCHOR31
|
|
csel x2, x7, x2, cs
|
|
ldrb w6, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w6
|
|
lsl w5, w5, w6
|
|
sub w5, w5, #1
|
|
lsl w6, w5, w0
|
|
lsr w0, w1, w0
|
|
bic w1, w1, w6
|
|
and w0, w0, w5
|
|
bl flash_read_page_en
|
|
mov w10, w0
|
|
.L3596:
|
|
add x1, x20, :lo12:.LANCHOR55
|
|
add x1, x1, x27, lsl 6
|
|
ldr x0, [x1, 24]
|
|
ldr w3, [x1, 36]
|
|
ldr w1, [x0, 4]
|
|
cmp w1, w3
|
|
bne .L3598
|
|
cmn w10, #1
|
|
bne .L3599
|
|
.L3598:
|
|
adrp x1, .LANCHOR12
|
|
add x11, x20, :lo12:.LANCHOR55
|
|
add x11, x11, x27, lsl 6
|
|
str w10, [x29, 108]
|
|
ldr x2, [x1, #:lo12:.LANCHOR12]
|
|
str x11, [x29, 96]
|
|
ldr w1, [x2, 552]
|
|
add w1, w1, 1
|
|
str w1, [x2, 552]
|
|
ldrb w1, [x11, 1]
|
|
ldr w2, [x0, 12]
|
|
str w2, [sp]
|
|
mov w2, w10
|
|
ldp w5, w6, [x0]
|
|
ldr w7, [x0, 8]
|
|
adrp x0, .LC230
|
|
ldr w4, [x11, 40]
|
|
add x0, x0, :lo12:.LC230
|
|
bl printf
|
|
adrp x0, .LANCHOR74
|
|
ldr x11, [x29, 96]
|
|
ldrh w2, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR31
|
|
ldrb w1, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w1
|
|
sub w1, w0, w2
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
ldr w1, [x11, 40]
|
|
sub w0, w0, #1
|
|
lsr w1, w1, w2
|
|
and w0, w0, w1
|
|
adrp x1, .LANCHOR75
|
|
ldrb w2, [x1, #:lo12:.LANCHOR75]
|
|
mov x1, 0
|
|
udiv w0, w0, w2
|
|
bl ftl_sblk_dump
|
|
ldr w10, [x29, 108]
|
|
.L3599:
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
add x0, x0, x27, lsl 6
|
|
ldr x1, [x0, 24]
|
|
ldr w0, [x0, 36]
|
|
ldr w1, [x1, 4]
|
|
cmp w1, w0
|
|
bne .L3600
|
|
cmn w10, #1
|
|
bne .L3601
|
|
.L3600:
|
|
ldp x0, x1, [x29, 120]
|
|
mov w2, 1317
|
|
bl printf
|
|
.L3601:
|
|
add x0, x20, :lo12:.LANCHOR55
|
|
add x8, x0, x27, lsl 6
|
|
ldrb w0, [x24, #:lo12:.LANCHOR131]
|
|
ldrb w2, [x8, 56]
|
|
cmp w0, w2
|
|
bls .L3602
|
|
ldrb w0, [x8, 57]
|
|
lsl w2, w2, 9
|
|
ldr x1, [x8, 8]
|
|
ubfiz x0, x0, 9, 8
|
|
add x1, x1, x0
|
|
ldr x0, [x8, 16]
|
|
bl ftl_memcpy
|
|
.L3603:
|
|
ldr x1, [x29, 136]
|
|
adrp x0, .LANCHOR62
|
|
add x0, x0, :lo12:.LANCHOR62
|
|
bl buf_remove_buf
|
|
ldr x0, [x29, 136]
|
|
bl zbuf_free
|
|
ldrb w0, [x28]
|
|
sub w0, w0, #1
|
|
strb w0, [x28]
|
|
b .L3591
|
|
.L3593:
|
|
cmp w10, 256
|
|
bne .L3594
|
|
adrp x2, .LANCHOR31
|
|
adrp x0, .LANCHOR74
|
|
mov w4, 24
|
|
mov w5, 1
|
|
ldrb w2, [x2, #:lo12:.LANCHOR31]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR74]
|
|
sub w4, w4, w2
|
|
str w5, [x29, 96]
|
|
ldp w2, w3, [x1, 36]
|
|
sub w4, w4, w0
|
|
lsl w4, w5, w4
|
|
sub w4, w4, #1
|
|
lsr w0, w3, w0
|
|
and w4, w4, w0
|
|
adrp x0, .LANCHOR75
|
|
ldrb w0, [x0, #:lo12:.LANCHOR75]
|
|
udiv w4, w4, w0
|
|
adrp x0, .LC229
|
|
add x0, x0, :lo12:.LC229
|
|
stp w10, w4, [x29, 104]
|
|
and w1, w4, 65535
|
|
bl printf
|
|
ldr w5, [x29, 96]
|
|
mov w2, 0
|
|
ldr w4, [x29, 108]
|
|
mov w1, w5
|
|
mov w0, w4
|
|
bl gc_add_sblk
|
|
ldr w10, [x29, 104]
|
|
b .L3594
|
|
.L3602:
|
|
ldrb w0, [x8, 2]
|
|
and w0, w0, -9
|
|
strb w0, [x8, 2]
|
|
b .L3603
|
|
.L3608:
|
|
mov w0, -1
|
|
b .L3572
|
|
.size zftl_read, .-zftl_read
|
|
.section .text.zftl_sys_read,"ax",@progbits
|
|
.align 2
|
|
.global zftl_sys_read
|
|
.type zftl_sys_read, %function
|
|
zftl_sys_read:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
mov w1, w0
|
|
mov w0, 2
|
|
b zftl_read
|
|
.size zftl_sys_read, .-zftl_sys_read
|
|
.section .text.StorageSysDataLoad,"ax",@progbits
|
|
.align 2
|
|
.global StorageSysDataLoad
|
|
.type StorageSysDataLoad, %function
|
|
StorageSysDataLoad:
|
|
stp x29, x30, [sp, -32]!
|
|
mov w2, 512
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x19, x1
|
|
mov w20, w0
|
|
mov w1, 0
|
|
mov x0, x19
|
|
bl ftl_memset
|
|
mov x3, x19
|
|
mov w1, w20
|
|
ldp x19, x20, [sp, 16]
|
|
mov w2, 1
|
|
ldp x29, x30, [sp], 32
|
|
mov w0, 2
|
|
b zftl_read
|
|
.size StorageSysDataLoad, .-StorageSysDataLoad
|
|
.section .text.FlashBootVendorRead,"ax",@progbits
|
|
.align 2
|
|
.global FlashBootVendorRead
|
|
.type FlashBootVendorRead, %function
|
|
FlashBootVendorRead:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
add w1, w0, 512
|
|
mov w0, 2
|
|
b zftl_read
|
|
.size FlashBootVendorRead, .-FlashBootVendorRead
|
|
.section .text.ftl_read,"ax",@progbits
|
|
.align 2
|
|
.global ftl_read
|
|
.type ftl_read, %function
|
|
ftl_read:
|
|
and w0, w0, 255
|
|
b zftl_read
|
|
.size ftl_read, .-ftl_read
|
|
.section .text.ftl_vendor_read,"ax",@progbits
|
|
.align 2
|
|
.global ftl_vendor_read
|
|
.type ftl_vendor_read, %function
|
|
ftl_vendor_read:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
add w1, w0, 512
|
|
mov w0, 2
|
|
b zftl_read
|
|
.size ftl_vendor_read, .-ftl_vendor_read
|
|
.section .text.zftl_vendor_read,"ax",@progbits
|
|
.align 2
|
|
.global zftl_vendor_read
|
|
.type zftl_vendor_read, %function
|
|
zftl_vendor_read:
|
|
b ftl_vendor_read
|
|
.size zftl_vendor_read, .-zftl_vendor_read
|
|
.section .text.ftl_update_l2p_map,"ax",@progbits
|
|
.align 2
|
|
.global ftl_update_l2p_map
|
|
.type ftl_update_l2p_map, %function
|
|
ftl_update_l2p_map:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x21, x22, [sp, 32]
|
|
mov x22, x0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x0, .LANCHOR94
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
ldrh w23, [x0, #:lo12:.LANCHOR94]
|
|
ldrb w0, [x22, 9]
|
|
ldrh w19, [x22, 12]
|
|
mul w23, w23, w0
|
|
adrp x0, .LANCHOR117
|
|
str x0, [x29, 104]
|
|
ldr x1, [x0, #:lo12:.LANCHOR117]
|
|
add x19, x1, x19, lsl 2
|
|
add x1, x19, x23, sxtw 2
|
|
ldr w1, [x1, -4]
|
|
cmn w1, #1
|
|
beq .L3632
|
|
adrp x1, .LANCHOR231
|
|
adrp x0, .LC0
|
|
mov w2, 1998
|
|
add x1, x1, :lo12:.LANCHOR231
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3632:
|
|
adrp x27, .LANCHOR131
|
|
mov x24, 0
|
|
add x0, x27, :lo12:.LANCHOR131
|
|
mov w21, 0
|
|
str x0, [x29, 96]
|
|
.L3633:
|
|
cmp w24, w23
|
|
blt .L3639
|
|
adrp x0, .LANCHOR19
|
|
adrp x19, .LANCHOR11
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L3640
|
|
ldrh w1, [x22]
|
|
ldr x2, [x19, #:lo12:.LANCHOR11]
|
|
ubfiz x0, x1, 1, 16
|
|
ldrh w3, [x2, x0]
|
|
adrp x0, .LC234
|
|
mov w2, w21
|
|
add x0, x0, :lo12:.LC234
|
|
bl printf
|
|
.L3640:
|
|
ldrh w1, [x22]
|
|
ldr x0, [x19, #:lo12:.LANCHOR11]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x19, x20, [sp, 16]
|
|
strh w21, [x0, x1, lsl 1]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.L3639:
|
|
ldr w2, [x19, x24, lsl 2]
|
|
cmn w2, #1
|
|
beq .L3634
|
|
ldrb w20, [x27, #:lo12:.LANCHOR131]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
lsl w20, w20, 7
|
|
udiv w20, w2, w20
|
|
and w20, w20, 65535
|
|
tbz x0, 12, .L3635
|
|
adrp x0, .LC231
|
|
mov w3, w24
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC231
|
|
bl printf
|
|
.L3635:
|
|
adrp x25, .LANCHOR111
|
|
adrp x26, .LC232
|
|
mov x28, x24
|
|
add x25, x25, :lo12:.LANCHOR111
|
|
add x26, x26, :lo12:.LC232
|
|
.L3638:
|
|
ldr w1, [x19, x28, lsl 2]
|
|
cmn w1, #1
|
|
beq .L3636
|
|
ldr x0, [x29, 96]
|
|
ldrb w2, [x0]
|
|
lsl w2, w2, 7
|
|
udiv w1, w1, w2
|
|
cmp w20, w1, uxth
|
|
bne .L3636
|
|
ldrb w0, [x22, 9]
|
|
sdiv w1, w28, w0
|
|
msub w0, w1, w0, w28
|
|
add x0, x22, x0, sxtw 1
|
|
ldrh w2, [x0, 16]
|
|
ldrh w0, [x25]
|
|
madd w2, w2, w0, w1
|
|
mov x0, x26
|
|
str w2, [x29, 124]
|
|
ldr w1, [x19, x28, lsl 2]
|
|
bl pm_ppa_update_check
|
|
cbz w0, .L3637
|
|
ldr x0, [x29, 104]
|
|
mov w3, w23
|
|
mov w2, 4
|
|
ldr x1, [x0, #:lo12:.LANCHOR117]
|
|
adrp x0, .LC233
|
|
add x0, x0, :lo12:.LC233
|
|
bl rknand_print_hex
|
|
.L3637:
|
|
ldr w0, [x19, x28, lsl 2]
|
|
add w21, w21, 1
|
|
mov w2, 1
|
|
add x1, x29, 124
|
|
and w21, w21, 65535
|
|
bl pm_log2phys
|
|
mov w0, -1
|
|
str w0, [x19, x28, lsl 2]
|
|
.L3636:
|
|
add x28, x28, 1
|
|
cmp w23, w28
|
|
bgt .L3638
|
|
.L3634:
|
|
add x24, x24, 1
|
|
b .L3633
|
|
.size ftl_update_l2p_map, .-ftl_update_l2p_map
|
|
.section .text.ftl_alloc_new_data_sblk,"ax",@progbits
|
|
.align 2
|
|
.global ftl_alloc_new_data_sblk
|
|
.type ftl_alloc_new_data_sblk, %function
|
|
ftl_alloc_new_data_sblk:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov x20, x0
|
|
str x21, [sp, 32]
|
|
ldrh w21, [x0]
|
|
bl ftl_update_l2p_map
|
|
bl pm_flush
|
|
ldrh w0, [x20]
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
beq .L3662
|
|
bl zftl_insert_data_list
|
|
.L3662:
|
|
adrp x19, .LANCHOR12
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
add x0, x0, 16
|
|
cmp x20, x0
|
|
mov x0, x20
|
|
cset w1, ne
|
|
add w1, w1, 2
|
|
bl ftl_open_sblk_init
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0, 560]
|
|
cmp w0, w21
|
|
bne .L3664
|
|
mov w20, 65535
|
|
cmp w21, w20
|
|
beq .L3664
|
|
mov w1, w21
|
|
adrp x0, .LC235
|
|
add x0, x0, :lo12:.LC235
|
|
bl printf
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0, 564]
|
|
bl gc_mark_bad_ppa
|
|
ldr x0, [x19, #:lo12:.LANCHOR12]
|
|
mov w1, -1
|
|
str w20, [x0, 560]
|
|
str w1, [x0, 564]
|
|
.L3664:
|
|
bl ftl_ext_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
bl lpa_rebuild_hash
|
|
ldr x21, [sp, 32]
|
|
mov w0, 0
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
|
|
.section .text.ftl_write_commit,"ax",@progbits
|
|
.align 2
|
|
.global ftl_write_commit
|
|
.type ftl_write_commit, %function
|
|
ftl_write_commit:
|
|
stp x29, x30, [sp, -160]!
|
|
adrp x0, .LANCHOR55
|
|
add x29, sp, 0
|
|
stp x23, x24, [sp, 48]
|
|
add x24, x0, :lo12:.LANCHOR55
|
|
add x0, x24, 2050
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
str x0, [x29, 104]
|
|
.L3668:
|
|
adrp x2, .LANCHOR66
|
|
ldrb w1, [x2, #:lo12:.LANCHOR66]
|
|
cbz w1, .L3670
|
|
adrp x3, .LANCHOR65
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
sub w1, w1, #1
|
|
ldrb w4, [x3, #:lo12:.LANCHOR65]
|
|
strb w1, [x2, #:lo12:.LANCHOR66]
|
|
ubfiz x5, x4, 6, 8
|
|
add x5, x0, x5
|
|
stp x4, x5, [x29, 120]
|
|
lsl x4, x4, 6
|
|
add x5, x0, x4
|
|
ldrb w0, [x0, x4]
|
|
strb w0, [x3, #:lo12:.LANCHOR65]
|
|
adrp x0, .LANCHOR128
|
|
ldr w2, [x5, 36]
|
|
mov x19, x0
|
|
ldr w1, [x0, #:lo12:.LANCHOR128]
|
|
cmp w2, w1
|
|
bcc .L3672
|
|
adrp x1, .LANCHOR232
|
|
adrp x0, .LC0
|
|
mov w2, 604
|
|
add x1, x1, :lo12:.LANCHOR232
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3672:
|
|
ldr x0, [x29, 120]
|
|
ldr w1, [x19, #:lo12:.LANCHOR128]
|
|
add x0, x24, x0, lsl 6
|
|
ldr w22, [x0, 36]
|
|
cmp w22, w1
|
|
bcc .L3673
|
|
ldr x0, [x29, 128]
|
|
bl zbuf_free
|
|
mov w0, -1
|
|
.L3667:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 160
|
|
ret
|
|
.L3673:
|
|
ldrb w21, [x0, 57]
|
|
ldrb w20, [x0, 56]
|
|
ldr x26, [x0, 8]
|
|
ldr x23, [x0, 24]
|
|
adrp x0, .LANCHOR129
|
|
str x0, [x29, 112]
|
|
ldrb w1, [x0, #:lo12:.LANCHOR129]
|
|
cbz w1, .L3675
|
|
adrp x0, .LANCHOR182
|
|
ldrb w19, [x0, #:lo12:.LANCHOR182]
|
|
add x19, x24, x19, lsl 6
|
|
.L3676:
|
|
ldrb w0, [x19]
|
|
cmp w0, 255
|
|
bne .L3677
|
|
ldr w0, [x19, 36]
|
|
cmp w22, w0
|
|
bne .L3675
|
|
ldr x0, [x19, 8]
|
|
ubfiz x21, x21, 9, 8
|
|
lsl w2, w20, 9
|
|
add x1, x26, x21
|
|
add x0, x0, x21
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR131
|
|
ldr x2, [x19, 8]
|
|
ldr x1, [x19, 24]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR131]
|
|
add x1, x1, 16
|
|
sub w0, w0, #2
|
|
lsl w0, w0, 7
|
|
add x2, x2, x0, sxtw 2
|
|
mov w0, 2
|
|
bl ftl_debug_info_fill
|
|
ldr x0, [x29, 128]
|
|
bl zbuf_free
|
|
b .L3668
|
|
.L3677:
|
|
ubfiz x19, x0, 6, 8
|
|
add x19, x24, x19
|
|
b .L3676
|
|
.L3675:
|
|
mov w0, w22
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 156]
|
|
cmn w0, #1
|
|
bne .L3679
|
|
mov w2, 0
|
|
add x1, x29, 156
|
|
mov w0, w22
|
|
bl pm_log2phys
|
|
.L3679:
|
|
adrp x27, .LANCHOR12
|
|
ldr w2, [x29, 156]
|
|
add x0, x24, 2
|
|
mov w3, 0
|
|
ldr x19, [x27, #:lo12:.LANCHOR12]
|
|
mov x25, 0
|
|
add x19, x19, 16
|
|
.L3681:
|
|
ldr w1, [x0, 34]
|
|
cmp w22, w1
|
|
bne .L3680
|
|
ldrb w1, [x0]
|
|
tbz x1, 3, .L3680
|
|
ldr w2, [x0, 38]
|
|
and w1, w1, -9
|
|
ldr x25, [x0, 6]
|
|
mov w3, 1
|
|
strb w1, [x0]
|
|
.L3680:
|
|
ldr x1, [x29, 104]
|
|
add x0, x0, 64
|
|
cmp x0, x1
|
|
bne .L3681
|
|
cbz w3, .L3682
|
|
str w2, [x29, 156]
|
|
.L3682:
|
|
adrp x28, .LANCHOR131
|
|
str x28, [x29, 136]
|
|
ldrb w0, [x28, #:lo12:.LANCHOR131]
|
|
cmp w20, w0
|
|
bcs .L3708
|
|
add w20, w21, w20
|
|
cbz x25, .L3684
|
|
cbz w21, .L3685
|
|
lsl w2, w21, 9
|
|
mov x1, x25
|
|
mov x0, x26
|
|
bl ftl_memcpy
|
|
ldr x19, [x27, #:lo12:.LANCHOR12]
|
|
add x19, x19, 48
|
|
.L3685:
|
|
ldr x0, [x29, 136]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
cmp w20, w2
|
|
bcc .L3686
|
|
ldr x19, [x27, #:lo12:.LANCHOR12]
|
|
add x19, x19, 16
|
|
.L3708:
|
|
mov w25, 0
|
|
b .L3683
|
|
.L3686:
|
|
ubfiz x0, x20, 9, 9
|
|
sub w2, w2, w20
|
|
add x1, x25, x0
|
|
lsl w2, w2, 9
|
|
add x0, x26, x0
|
|
bl ftl_memcpy
|
|
b .L3708
|
|
.L3684:
|
|
ldr w0, [x29, 156]
|
|
cmn w0, #1
|
|
beq .L3687
|
|
mov w0, 1
|
|
bl buf_alloc
|
|
ldr w1, [x29, 156]
|
|
mov x28, x0
|
|
stp w22, w1, [x0, 36]
|
|
mov w1, 1
|
|
bl sblk_read_page
|
|
ldr x3, [x28, 24]
|
|
ldr w0, [x3, 4]
|
|
ldr w25, [x3, 12]
|
|
cmp w22, w0
|
|
add w25, w25, 1
|
|
bne .L3688
|
|
ldr w0, [x28, 52]
|
|
cmn w0, #1
|
|
bne .L3689
|
|
.L3688:
|
|
adrp x0, .LANCHOR31
|
|
mov w6, 1
|
|
ldr w1, [x28, 40]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w2
|
|
lsl w6, w6, w2
|
|
ldr x2, [x29, 136]
|
|
sub w6, w6, #1
|
|
lsl w7, w6, w0
|
|
ldrb w4, [x2, #:lo12:.LANCHOR131]
|
|
lsr w0, w1, w0
|
|
ldr x2, [x28, 8]
|
|
bic w1, w1, w7
|
|
and w0, w0, w6
|
|
bl flash_read_page_en
|
|
str w0, [x28, 52]
|
|
.L3689:
|
|
ldr x0, [x28, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w22, w0
|
|
bne .L3690
|
|
ldr w0, [x28, 52]
|
|
cmn w0, #1
|
|
bne .L3691
|
|
.L3690:
|
|
ldr x1, [x27, #:lo12:.LANCHOR12]
|
|
mov w3, w22
|
|
ldr w4, [x28, 52]
|
|
ldr w2, [x29, 156]
|
|
ldr w0, [x1, 552]
|
|
add w0, w0, 1
|
|
str w0, [x1, 552]
|
|
adrp x0, .LC236
|
|
add x0, x0, :lo12:.LC236
|
|
ldrb w1, [x28, 1]
|
|
bl printf
|
|
ldr x1, [x28, 24]
|
|
mov w3, 4
|
|
adrp x0, .LC208
|
|
mov w2, w3
|
|
add x0, x0, :lo12:.LC208
|
|
bl rknand_print_hex
|
|
.L3691:
|
|
ldr x0, [x28, 24]
|
|
ldr w0, [x0, 4]
|
|
cmp w22, w0
|
|
bne .L3692
|
|
ldr w0, [x28, 52]
|
|
cmn w0, #1
|
|
bne .L3693
|
|
.L3692:
|
|
adrp x1, .LANCHOR232
|
|
adrp x0, .LC0
|
|
mov w2, 696
|
|
add x1, x1, :lo12:.LANCHOR232
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3693:
|
|
cbz w21, .L3694
|
|
ldr w0, [x29, 156]
|
|
lsl w2, w21, 9
|
|
cmn w0, #1
|
|
beq .L3695
|
|
ldr x1, [x28, 8]
|
|
mov x0, x26
|
|
bl ftl_memcpy
|
|
.L3696:
|
|
ldr x19, [x27, #:lo12:.LANCHOR12]
|
|
add x19, x19, 48
|
|
.L3694:
|
|
ldr x0, [x29, 136]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
cmp w20, w2
|
|
bcc .L3697
|
|
bls .L3698
|
|
ldr x19, [x27, #:lo12:.LANCHOR12]
|
|
add x19, x19, 16
|
|
.L3698:
|
|
cbz x28, .L3683
|
|
ldrb w0, [x28, 2]
|
|
mov x1, x28
|
|
and w0, w0, -9
|
|
strb w0, [x28, 2]
|
|
adrp x0, .LANCHOR62
|
|
add x0, x0, :lo12:.LANCHOR62
|
|
bl buf_remove_buf
|
|
mov x0, x28
|
|
bl zbuf_free
|
|
.L3683:
|
|
ldrh w0, [x19, 6]
|
|
cbnz w0, .L3700
|
|
bl ftl_flush
|
|
mov x0, x19
|
|
bl ftl_alloc_new_data_sblk
|
|
.L3700:
|
|
mov x0, x19
|
|
bl ftl_get_new_free_page
|
|
mov w10, w0
|
|
ldr x0, [x29, 120]
|
|
mov x1, x23
|
|
adrp x20, .LANCHOR182
|
|
lsl x8, x0, 6
|
|
add x7, x24, x8
|
|
ldr w0, [x7, 32]
|
|
stp w0, w22, [x23]
|
|
str w25, [x23, 12]
|
|
ldr w0, [x29, 156]
|
|
str w0, [x23, 8]
|
|
ldr x0, [x29, 136]
|
|
str wzr, [x1, 16]!
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
mov w0, 2
|
|
sub w2, w2, #2
|
|
lsl w2, w2, 7
|
|
add x2, x26, x2, sxtw 2
|
|
bl ftl_debug_info_fill
|
|
ldr w0, [x29, 156]
|
|
mov w1, 10
|
|
stp w10, w0, [x7, 40]
|
|
mov w0, -1
|
|
strb w0, [x24, x8]
|
|
ldrb w0, [x7, 2]
|
|
orr w0, w0, w1
|
|
ldrh w1, [x19, 12]
|
|
strb w0, [x7, 2]
|
|
ldrh w0, [x19, 10]
|
|
add w0, w0, w1
|
|
ldr x1, [x29, 128]
|
|
sub w0, w0, #1
|
|
strh w0, [x7, 48]
|
|
add x0, x20, :lo12:.LANCHOR182
|
|
bl buf_add_tail
|
|
ldr x0, [x29, 112]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR129]
|
|
add w2, w2, 1
|
|
and w2, w2, 255
|
|
strb w2, [x0, #:lo12:.LANCHOR129]
|
|
adrp x0, .LANCHOR233
|
|
cmp w2, 2
|
|
str wzr, [x0, #:lo12:.LANCHOR233]
|
|
ldrh w0, [x19, 6]
|
|
bhi .L3701
|
|
cmp w0, 1
|
|
bne .L3671
|
|
.L3701:
|
|
ldrb w1, [x19, 5]
|
|
cmp w1, 0
|
|
mov w1, 0
|
|
cset w4, ne
|
|
cmp w0, 1
|
|
ldrb w0, [x20, #:lo12:.LANCHOR182]
|
|
csinc w4, w2, w4, eq
|
|
mov w3, w0
|
|
.L3705:
|
|
cmp w1, w4
|
|
bne .L3706
|
|
strb w3, [x20, #:lo12:.LANCHOR182]
|
|
and w1, w1, 255
|
|
ldr x3, [x29, 112]
|
|
sub w2, w2, w1
|
|
ubfiz x0, x0, 6, 8
|
|
add x0, x24, x0
|
|
strb w2, [x3, #:lo12:.LANCHOR129]
|
|
bl sblk_prog_page
|
|
ldrh w0, [x19, 6]
|
|
cmp w0, 1
|
|
bne .L3671
|
|
bl sblk_wait_write_queue_completed
|
|
bl ftl_write_completed
|
|
mov x0, x19
|
|
bl ftl_write_last_log_page
|
|
mov x0, x19
|
|
bl ftl_alloc_new_data_sblk
|
|
.L3671:
|
|
adrp x0, .LANCHOR66
|
|
ldrb w0, [x0, #:lo12:.LANCHOR66]
|
|
cbnz w0, .L3668
|
|
.L3670:
|
|
bl ftl_write_completed
|
|
mov w0, 0
|
|
b .L3667
|
|
.L3697:
|
|
ldr w0, [x29, 156]
|
|
sub w2, w2, w20
|
|
lsl w2, w2, 9
|
|
cmn w0, #1
|
|
ubfiz x0, x20, 7, 9
|
|
beq .L3699
|
|
ldr x1, [x28, 8]
|
|
lsl x0, x0, 2
|
|
add x1, x1, x0
|
|
add x0, x26, x0
|
|
bl ftl_memcpy
|
|
b .L3698
|
|
.L3699:
|
|
mov w1, 0
|
|
add x0, x26, x0, lsl 2
|
|
bl ftl_memset
|
|
b .L3698
|
|
.L3706:
|
|
ubfiz x3, x3, 6, 8
|
|
add w1, w1, 1
|
|
ldrb w3, [x24, x3]
|
|
b .L3705
|
|
.L3707:
|
|
lsl w2, w21, 9
|
|
mov x28, 0
|
|
mov w25, 0
|
|
.L3695:
|
|
mov w1, 0
|
|
mov x0, x26
|
|
bl ftl_memset
|
|
b .L3696
|
|
.L3687:
|
|
cbnz w21, .L3707
|
|
mov w25, 0
|
|
mov x28, 0
|
|
b .L3694
|
|
.size ftl_write_commit, .-ftl_write_commit
|
|
.section .text.gc_do_copy_back,"ax",@progbits
|
|
.align 2
|
|
.global gc_do_copy_back
|
|
.type gc_do_copy_back, %function
|
|
gc_do_copy_back:
|
|
stp x29, x30, [sp, -224]!
|
|
adrp x0, .LANCHOR84
|
|
add x29, sp, 0
|
|
ldrb w0, [x0, #:lo12:.LANCHOR84]
|
|
stp x19, x20, [sp, 16]
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
cbnz w0, .L3734
|
|
bl buf_alloc
|
|
mov x19, x0
|
|
cbz x0, .L3733
|
|
adrp x21, .LANCHOR70
|
|
add x3, x21, :lo12:.LANCHOR70
|
|
ldrh w2, [x3, 26]
|
|
mov w0, w2
|
|
bl gc_get_src_ppa_from_index
|
|
add w2, w2, 1
|
|
mov w22, w0
|
|
str w22, [x19, 40]
|
|
strh w2, [x3, 26]
|
|
mov w1, 1
|
|
mov x0, x19
|
|
bl sblk_read_page
|
|
ldr w0, [x19, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3736
|
|
adrp x1, .LANCHOR234
|
|
adrp x0, .LC0
|
|
mov w2, 1032
|
|
add x1, x1, :lo12:.LANCHOR234
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3736:
|
|
ldr x0, [x19, 24]
|
|
ldr w20, [x0, 4]
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 176]
|
|
cmn w0, #1
|
|
bne .L3737
|
|
mov w2, 0
|
|
add x1, x29, 176
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
.L3737:
|
|
ldr w23, [x29, 176]
|
|
cmp w22, w23
|
|
bne .L3738
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
add x1, x0, 2
|
|
add x0, x0, 2050
|
|
.L3741:
|
|
ldr w2, [x1, 34]
|
|
cmp w20, w2
|
|
bne .L3739
|
|
ldrb w2, [x1]
|
|
tbz x2, 1, .L3739
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3733
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
adrp x0, .LC237
|
|
mov w2, w22
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC237
|
|
ldrh w3, [x21, 26]
|
|
bl printf
|
|
.L3733:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 224
|
|
ret
|
|
.L3739:
|
|
add x1, x1, 64
|
|
cmp x1, x0
|
|
bne .L3741
|
|
adrp x0, .LANCHOR131
|
|
strb wzr, [x19, 57]
|
|
str w20, [x19, 36]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR131]
|
|
strb w0, [x19, 56]
|
|
ldr x0, [x19, 24]
|
|
ldr w1, [x0]
|
|
str w1, [x19, 32]
|
|
str wzr, [x0, 16]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3742
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
add x1, x21, :lo12:.LANCHOR70
|
|
mov w3, w0
|
|
mov w4, w22
|
|
adrp x0, .LC238
|
|
mov w2, w23
|
|
add x0, x0, :lo12:.LC238
|
|
ldrh w5, [x1, 26]
|
|
mov w1, w20
|
|
bl printf
|
|
.L3742:
|
|
mov x0, x19
|
|
bl ftl_gc_write_buf
|
|
bl ftl_write_commit
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
adrp x0, .LANCHOR110
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 60]
|
|
add w0, w0, 1
|
|
str w0, [x1, 60]
|
|
ldrh w0, [x21, 28]
|
|
add w0, w0, 1
|
|
strh w0, [x21, 28]
|
|
b .L3733
|
|
.L3738:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3743
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
mov w3, w0
|
|
mov w4, w22
|
|
adrp x0, .LC238
|
|
ldrh w5, [x21, 26]
|
|
mov w2, w23
|
|
mov w1, w20
|
|
add x0, x0, :lo12:.LC238
|
|
bl printf
|
|
.L3743:
|
|
mov x0, x19
|
|
bl zbuf_free
|
|
b .L3733
|
|
.L3734:
|
|
adrp x2, .LANCHOR12
|
|
adrp x1, .LANCHOR79
|
|
stp x1, x2, [x29, 136]
|
|
ldr x26, [x2, #:lo12:.LANCHOR12]
|
|
ldrb w3, [x1, #:lo12:.LANCHOR79]
|
|
add x26, x26, 80
|
|
ldrb w0, [x26, 9]
|
|
and w20, w0, 65535
|
|
cmp w3, w20
|
|
bhi .L3798
|
|
cmp w20, 2
|
|
mov w21, 2
|
|
csel w21, w20, w21, ls
|
|
and w21, w21, 65535
|
|
.L3744:
|
|
adrp x1, .LANCHOR78
|
|
str x1, [x29, 120]
|
|
ldrb w19, [x1, #:lo12:.LANCHOR78]
|
|
cmp w19, 3
|
|
bne .L3745
|
|
adrp x1, .LANCHOR35
|
|
ldrb w1, [x1, #:lo12:.LANCHOR35]
|
|
cbz w1, .L3746
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
ldrh w22, [x1, 2106]
|
|
adrp x1, .LANCHOR124
|
|
ldrb w1, [x1, #:lo12:.LANCHOR124]
|
|
sdiv w2, w22, w0
|
|
and w25, w2, 65535
|
|
cbz w1, .L3747
|
|
adrp x1, .LANCHOR235
|
|
add x1, x1, :lo12:.LANCHOR235
|
|
ldrh w1, [x1, w2, sxtw 1]
|
|
cmp w1, 0
|
|
cset w19, ne
|
|
.L3865:
|
|
add w19, w19, 1
|
|
.L3748:
|
|
msub w20, w20, w25, w22
|
|
and w20, w20, 65535
|
|
.L3749:
|
|
adrp x1, .LANCHOR85
|
|
mul w11, w19, w21
|
|
adrp x10, .LANCHOR235
|
|
sxtw x13, w25
|
|
ldrh w5, [x1, #:lo12:.LANCHOR85]
|
|
adrp x1, .LANCHOR224
|
|
add x10, x10, :lo12:.LANCHOR235
|
|
mov w2, 0
|
|
mul w0, w5, w0
|
|
ldrb w5, [x1, #:lo12:.LANCHOR224]
|
|
sub w5, w0, w5
|
|
adrp x0, .LANCHOR124
|
|
ldrb w12, [x0, #:lo12:.LANCHOR124]
|
|
adrp x0, .LANCHOR160
|
|
ldr x8, [x0, #:lo12:.LANCHOR160]
|
|
adrp x0, .LANCHOR70
|
|
add x6, x0, :lo12:.LANCHOR70
|
|
ldrh w14, [x6, 24]
|
|
.L3753:
|
|
cmp w2, w11
|
|
bge .L3806
|
|
add w4, w22, w2
|
|
cmp w4, w5
|
|
blt .L3754
|
|
cbz w12, .L3806
|
|
ldrh w0, [x10, x13, lsl 1]
|
|
cmp w0, w25
|
|
bcc .L3755
|
|
.L3806:
|
|
mov w23, 1
|
|
b .L3751
|
|
.L3798:
|
|
mov w21, 1
|
|
b .L3744
|
|
.L3747:
|
|
adrp x1, .LANCHOR217
|
|
ldrb w1, [x1, #:lo12:.LANCHOR217]
|
|
cbz w1, .L3800
|
|
sub w1, w25, #62
|
|
and w1, w1, 65535
|
|
cmp w1, 2159
|
|
bhi .L3801
|
|
udiv w19, w25, w19
|
|
add w19, w19, w19, lsl 1
|
|
sub w19, w25, w19
|
|
and w19, w19, 65535
|
|
cmp w19, 0
|
|
cset w19, eq
|
|
b .L3865
|
|
.L3800:
|
|
mov w19, 1
|
|
b .L3748
|
|
.L3801:
|
|
mov w19, 2
|
|
b .L3748
|
|
.L3746:
|
|
adrp x1, .LANCHOR83
|
|
ldrb w1, [x1, #:lo12:.LANCHOR83]
|
|
cbz w1, .L3750
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
add w20, w0, w0, lsl 1
|
|
ldrh w22, [x1, 2106]
|
|
adrp x1, .LANCHOR36
|
|
ldrb w1, [x1, #:lo12:.LANCHOR36]
|
|
sdiv w20, w22, w20
|
|
and w25, w20, 65535
|
|
mul w20, w0, w20
|
|
sub w20, w20, w20, lsl 2
|
|
add w20, w20, w22
|
|
sdiv w20, w20, w19
|
|
and w20, w20, 65535
|
|
cbz w1, .L3749
|
|
add w3, w25, w25, lsl 1
|
|
and w25, w3, 65535
|
|
b .L3749
|
|
.L3750:
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
adrp x2, .LANCHOR236
|
|
add x2, x2, :lo12:.LANCHOR236
|
|
ldrh w4, [x1, 2106]
|
|
sdiv w1, w4, w0
|
|
ldrh w23, [x2, w1, sxtw 1]
|
|
msub w20, w20, w1, w4
|
|
and w20, w20, 65535
|
|
lsr w25, w23, 3
|
|
and w23, w23, 7
|
|
cmp w23, 1
|
|
madd w22, w25, w0, w20
|
|
add w22, w22, w22, lsl 1
|
|
and w22, w22, 65535
|
|
beq .L3749
|
|
.L3751:
|
|
mul w0, w19, w21
|
|
stp wzr, w0, [x29, 152]
|
|
ubfiz w0, w21, 1, 15
|
|
str w0, [x29, 132]
|
|
msub w0, w0, w19, w22
|
|
and w0, w0, 65535
|
|
str w0, [x29, 128]
|
|
ldrh w0, [x29, 128]
|
|
str x0, [x29, 112]
|
|
adrp x0, .LANCHOR55
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
str x0, [x29, 104]
|
|
.L3756:
|
|
ldp w0, w1, [x29, 152]
|
|
ldrh w24, [x29, 152]
|
|
and w0, w0, 65535
|
|
str w0, [x29, 168]
|
|
cmp w0, w1
|
|
blt .L3780
|
|
ldr x0, [x29, 120]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
cmp w0, 3
|
|
add x0, x29, 176
|
|
bne .L3781
|
|
adrp x1, .LANCHOR35
|
|
ldrb w1, [x1, #:lo12:.LANCHOR35]
|
|
cbz w1, .L3782
|
|
ldr w2, [x29, 156]
|
|
mov w1, 0
|
|
sub w2, w2, #1
|
|
.L3783:
|
|
cmp w1, w2
|
|
blt .L3784
|
|
.L3869:
|
|
ldr x0, [x0, w2, sxtw 3]
|
|
mov w1, -1
|
|
strb w1, [x0]
|
|
mul w1, w21, w19
|
|
ldr x0, [x29, 176]
|
|
bl sblk_prog_page
|
|
b .L3785
|
|
.L3745:
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbnz w1, .L3752
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
mov w19, 1
|
|
ldrh w22, [x1, 2106]
|
|
sdiv w25, w22, w0
|
|
msub w20, w20, w25, w22
|
|
and w20, w20, 65535
|
|
b .L3749
|
|
.L3752:
|
|
adrp x1, .LANCHOR70
|
|
add x1, x1, :lo12:.LANCHOR70
|
|
mov w19, 2
|
|
ldrh w22, [x1, 2106]
|
|
sdiv w25, w22, w0
|
|
msub w20, w20, w25, w22
|
|
and w20, w20, 65535
|
|
b .L3749
|
|
.L3755:
|
|
tbz x2, 0, .L3806
|
|
.L3754:
|
|
sbfiz x4, x4, 2, 32
|
|
ldr w0, [x8, x4]
|
|
cmn w0, #1
|
|
bne .L3757
|
|
ldrh w7, [x6, 26]
|
|
cmp w7, w14
|
|
bcs .L3733
|
|
cbz w12, .L3758
|
|
ldrh w0, [x10, x13, lsl 1]
|
|
cmp w0, w25
|
|
bcs .L3758
|
|
tbz x2, 0, .L3758
|
|
ubfiz x0, x0, 2, 16
|
|
ldr w0, [x8, x0]
|
|
.L3866:
|
|
str w0, [x8, x4]
|
|
.L3757:
|
|
add w2, w2, 1
|
|
and w2, w2, 65535
|
|
b .L3753
|
|
.L3758:
|
|
mov w0, w7
|
|
bl gc_get_src_ppa_from_index
|
|
add w7, w7, 1
|
|
strh w7, [x6, 26]
|
|
b .L3866
|
|
.L3780:
|
|
ldr w0, [x29, 168]
|
|
add w0, w22, w0
|
|
str w0, [x29, 172]
|
|
sxtw x0, w0
|
|
str x0, [x29, 160]
|
|
adrp x0, .LANCHOR82
|
|
ldr x1, [x29, 160]
|
|
ldr x0, [x0, #:lo12:.LANCHOR82]
|
|
ldrb w0, [x0, x1]
|
|
cmp w0, 255
|
|
bne .L3760
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x27, x0
|
|
cbnz x0, .L3761
|
|
bl sblk_wait_write_queue_completed
|
|
bl ftl_write_completed
|
|
bl gc_write_completed
|
|
bl gc_free_temp_buf
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x27, x0
|
|
cbz x0, .L3733
|
|
.L3761:
|
|
adrp x0, .LANCHOR82
|
|
ldr x2, [x29, 160]
|
|
ldrb w1, [x27, 1]
|
|
ldr x0, [x0, #:lo12:.LANCHOR82]
|
|
strb w1, [x0, x2]
|
|
adrp x0, .LANCHOR70
|
|
add x1, x0, :lo12:.LANCHOR70
|
|
strb w23, [x27, 61]
|
|
ldrb w0, [x1, 7]
|
|
add w0, w0, 1
|
|
strb w0, [x1, 7]
|
|
add w0, w24, w22
|
|
strh w0, [x27, 48]
|
|
adrp x0, .LANCHOR85
|
|
ldr w1, [x29, 172]
|
|
ldrh w6, [x0, #:lo12:.LANCHOR85]
|
|
adrp x0, .LANCHOR224
|
|
ldrb w5, [x0, #:lo12:.LANCHOR224]
|
|
ldrb w0, [x26, 9]
|
|
mul w0, w0, w6
|
|
sub w0, w0, w5
|
|
cmp w1, w0
|
|
blt .L3762
|
|
adrp x1, .LANCHOR124
|
|
ldrb w1, [x1, #:lo12:.LANCHOR124]
|
|
cbz w1, .L3763
|
|
adrp x1, .LANCHOR235
|
|
add x1, x1, :lo12:.LANCHOR235
|
|
ldrh w1, [x1, w25, sxtw 1]
|
|
cmp w1, w25
|
|
bcs .L3763
|
|
tbnz x24, 0, .L3762
|
|
.L3763:
|
|
adrp x1, .LANCHOR159
|
|
ldr w3, [x29, 172]
|
|
mov w2, -1
|
|
cmp w5, 2
|
|
ldr x1, [x1, #:lo12:.LANCHOR159]
|
|
str w2, [x1, w3, sxtw 2]
|
|
bne .L3764
|
|
cmp w3, w0
|
|
adrp x28, .LANCHOR221
|
|
bne .L3765
|
|
ldrh w2, [x28, #:lo12:.LANCHOR221]
|
|
ldr x0, [x27, 8]
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR131
|
|
mov w1, 0
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
ldr x0, [x27, 24]
|
|
lsl w2, w2, 1
|
|
bl ftl_memset
|
|
ldr x6, [x27, 24]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
ldrh w1, [x28, #:lo12:.LANCHOR221]
|
|
str w0, [x6]
|
|
ldr x0, [x27, 8]
|
|
bl js_hash
|
|
str w0, [x6, 4]
|
|
ldr x0, [x29, 144]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0, 132]
|
|
stp w0, wzr, [x6, 8]
|
|
.L3766:
|
|
ldr x0, [x27, 24]
|
|
str wzr, [x0, 16]
|
|
.L3760:
|
|
adrp x0, .LANCHOR82
|
|
ldrsw x2, [x29, 168]
|
|
add x4, x29, 176
|
|
ldr x1, [x0, #:lo12:.LANCHOR82]
|
|
ldr x0, [x29, 160]
|
|
ldrb w5, [x1, x0]
|
|
adrp x0, .LANCHOR55
|
|
add x6, x0, :lo12:.LANCHOR55
|
|
mov x7, x5
|
|
ubfiz x0, x5, 6, 8
|
|
add x0, x6, x0
|
|
add x6, x6, x5, lsl 6
|
|
str x0, [x4, x2, lsl 3]
|
|
mov w0, 2
|
|
strh w0, [x6, 50]
|
|
ldr x0, [x29, 120]
|
|
strb w23, [x6, 61]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR78]
|
|
cmp w0, 3
|
|
bne .L3771
|
|
adrp x8, .LANCHOR35
|
|
ldrb w8, [x8, #:lo12:.LANCHOR35]
|
|
cbz w8, .L3772
|
|
adrp x0, .LANCHOR124
|
|
and w8, w24, 1
|
|
add w10, w8, w25
|
|
ldrb w0, [x0, #:lo12:.LANCHOR124]
|
|
cbz w0, .L3773
|
|
adrp x6, .LANCHOR235
|
|
add x6, x6, :lo12:.LANCHOR235
|
|
ldrh w6, [x6, w25, sxtw 1]
|
|
cmp w6, w25
|
|
bcs .L3773
|
|
cmp w8, 0
|
|
csel w10, w10, w6, eq
|
|
.L3773:
|
|
adrp x0, .LANCHOR55
|
|
add x6, x0, :lo12:.LANCHOR55
|
|
add x5, x6, x5, lsl 6
|
|
udiv w6, w24, w19
|
|
add w6, w6, w20
|
|
add x6, x26, x6, sxtw 1
|
|
ldrh w0, [x6, 16]
|
|
adrp x6, .LANCHOR111
|
|
ldrh w6, [x6, #:lo12:.LANCHOR111]
|
|
madd w0, w0, w6, w10
|
|
orr w0, w0, 50331648
|
|
str w0, [x5, 40]
|
|
.L3778:
|
|
adrp x0, .LANCHOR55
|
|
sbfiz x7, x7, 6, 32
|
|
add x0, x0, :lo12:.LANCHOR55
|
|
add x0, x0, x7
|
|
ldrh w5, [x0, 48]
|
|
ldr w6, [x0, 40]
|
|
adrp x0, .LANCHOR161
|
|
ldr x0, [x0, #:lo12:.LANCHOR161]
|
|
str w6, [x0, x5, lsl 2]
|
|
b .L3797
|
|
.L3765:
|
|
ldr x2, [x29, 136]
|
|
ldrh w0, [x28, #:lo12:.LANCHOR221]
|
|
ldrb w28, [x2, #:lo12:.LANCHOR79]
|
|
mul w28, w28, w6
|
|
lsl w28, w28, 2
|
|
sub w28, w28, w0
|
|
and x0, x0, 65532
|
|
add x1, x1, x0
|
|
ldr x0, [x27, 8]
|
|
mov w2, w28
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR131
|
|
mov w1, 0
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
ldr x0, [x27, 24]
|
|
lsl w2, w2, 1
|
|
bl ftl_memset
|
|
ldr x6, [x27, 24]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
mov w1, w28
|
|
str w0, [x6]
|
|
ldr x0, [x27, 8]
|
|
bl js_hash
|
|
str w0, [x6, 4]
|
|
ldr x0, [x29, 144]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0, 132]
|
|
str w0, [x6, 8]
|
|
mov w0, 1
|
|
str w0, [x6, 12]
|
|
b .L3766
|
|
.L3764:
|
|
ldr x0, [x29, 136]
|
|
ldrb w2, [x0, #:lo12:.LANCHOR79]
|
|
ldr x0, [x27, 8]
|
|
mul w2, w2, w6
|
|
lsl w2, w2, 2
|
|
bl ftl_memcpy
|
|
ldr x1, [x29, 136]
|
|
adrp x0, .LANCHOR85
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR79]
|
|
mul w0, w0, w1
|
|
adrp x1, .LANCHOR131
|
|
ldrb w1, [x1, #:lo12:.LANCHOR131]
|
|
lsl w2, w0, 2
|
|
cmp w1, w0, lsr 6
|
|
bge .L3767
|
|
adrp x1, .LANCHOR221
|
|
ldrh w1, [x1, #:lo12:.LANCHOR221]
|
|
sub w2, w1, w2
|
|
.L3767:
|
|
adrp x1, .LANCHOR160
|
|
ldr x5, [x27, 8]
|
|
ldr x1, [x1, #:lo12:.LANCHOR160]
|
|
add x0, x5, x0, sxtw 2
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR131
|
|
mov w1, 0
|
|
ldrb w2, [x0, #:lo12:.LANCHOR131]
|
|
ldr x0, [x27, 24]
|
|
lsl w2, w2, 1
|
|
bl ftl_memset
|
|
ldr x6, [x27, 24]
|
|
mov w0, 15555
|
|
movk w0, 0xf55f, lsl 16
|
|
str w0, [x6]
|
|
adrp x0, .LANCHOR85
|
|
ldrh w1, [x0, #:lo12:.LANCHOR85]
|
|
ldr x0, [x29, 136]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
mul w1, w1, w0
|
|
ldr x0, [x27, 8]
|
|
lsl w1, w1, 2
|
|
bl js_hash
|
|
str w0, [x6, 4]
|
|
ldr x0, [x29, 144]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldr w0, [x0, 132]
|
|
str w0, [x6, 8]
|
|
b .L3766
|
|
.L3762:
|
|
ldr x0, [x29, 160]
|
|
mov w1, 1
|
|
lsl x28, x0, 2
|
|
adrp x0, .LANCHOR160
|
|
ldr x0, [x0, #:lo12:.LANCHOR160]
|
|
ldr w0, [x0, x28]
|
|
str w0, [x27, 40]
|
|
mov x0, x27
|
|
bl sblk_read_page
|
|
ldr w0, [x27, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3769
|
|
adrp x0, .LANCHOR74
|
|
ldrh w2, [x0, #:lo12:.LANCHOR74]
|
|
adrp x0, .LANCHOR31
|
|
ldrb w1, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w1
|
|
sub w1, w0, w2
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
ldr w1, [x27, 40]
|
|
sub w0, w0, #1
|
|
lsr w1, w1, w2
|
|
and w0, w0, w1
|
|
adrp x1, .LANCHOR75
|
|
ldrb w2, [x1, #:lo12:.LANCHOR75]
|
|
mov x1, 0
|
|
udiv w0, w0, w2
|
|
bl ftl_sblk_dump
|
|
ldr w0, [x27, 52]
|
|
cmp w0, 512
|
|
ccmn w0, #1, 4, ne
|
|
bne .L3769
|
|
ldr x0, [x27, 24]
|
|
mov w1, -1
|
|
str w1, [x0, 4]
|
|
ldr w0, [x27, 52]
|
|
cmp w0, 512
|
|
ccmp w0, w1, 4, ne
|
|
bne .L3769
|
|
adrp x1, .LANCHOR234
|
|
adrp x0, .LC0
|
|
mov w2, 1223
|
|
add x1, x1, :lo12:.LANCHOR234
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3769:
|
|
ldr x0, [x27, 24]
|
|
adrp x1, .LANCHOR128
|
|
ldr w1, [x1, #:lo12:.LANCHOR128]
|
|
ldr w2, [x0, 4]
|
|
cmp w2, w1
|
|
bcc .L3770
|
|
mov w1, -1
|
|
str w1, [x0, 4]
|
|
.L3770:
|
|
adrp x1, .LANCHOR159
|
|
ldr w2, [x0, 4]
|
|
ldr x1, [x1, #:lo12:.LANCHOR159]
|
|
str w2, [x1, x28]
|
|
ldr w1, [x27, 40]
|
|
str w1, [x0, 8]
|
|
b .L3766
|
|
.L3772:
|
|
udiv w0, w24, w0
|
|
adrp x7, .LANCHOR36
|
|
ldrb w7, [x7, #:lo12:.LANCHOR36]
|
|
cbz w7, .L3775
|
|
add w7, w0, w20
|
|
adrp x8, .LANCHOR111
|
|
add x7, x26, x7, sxtw 1
|
|
add w0, w0, w0, lsl 1
|
|
ldrh w8, [x8, #:lo12:.LANCHOR111]
|
|
sub w0, w24, w0
|
|
ldrh w7, [x7, 16]
|
|
madd w7, w7, w8, w25
|
|
add w0, w7, w0, uxth
|
|
.L3870:
|
|
str w0, [x6, 40]
|
|
ldr x0, [x29, 104]
|
|
add x5, x0, x5, lsl 6
|
|
adrp x0, .LANCHOR161
|
|
ldr x6, [x0, #:lo12:.LANCHOR161]
|
|
mov w0, 3
|
|
ldrh w7, [x5, 48]
|
|
udiv w0, w24, w0
|
|
ldr w5, [x5, 40]
|
|
add w0, w0, w0, lsl 1
|
|
sub w0, w24, w0
|
|
and w0, w0, 65535
|
|
add w0, w0, 1
|
|
orr w0, w5, w0, lsl 24
|
|
str w0, [x6, x7, lsl 2]
|
|
.L3797:
|
|
adrp x0, .LANCHOR124
|
|
ldrb w0, [x0, #:lo12:.LANCHOR124]
|
|
cbz w0, .L3779
|
|
adrp x0, .LANCHOR235
|
|
add x0, x0, :lo12:.LANCHOR235
|
|
ldrh w0, [x0, w25, sxtw 1]
|
|
cmp w0, w25
|
|
bcs .L3779
|
|
tbz x24, 0, .L3779
|
|
ldr x3, [x29, 160]
|
|
mov w0, -1
|
|
strb w0, [x1, x3]
|
|
ldrh w1, [x29, 128]
|
|
ldr x0, [x4, x2, lsl 3]
|
|
ldr x2, [x29, 112]
|
|
strh w1, [x0, 48]
|
|
ldrb w1, [x0, 1]
|
|
adrp x0, .LANCHOR82
|
|
ldr x0, [x0, #:lo12:.LANCHOR82]
|
|
strb w1, [x0, x2]
|
|
adrp x0, .LANCHOR160
|
|
ldr w2, [x29, 172]
|
|
mov w1, -1
|
|
ldr x0, [x0, #:lo12:.LANCHOR160]
|
|
str w1, [x0, w2, sxtw 2]
|
|
.L3779:
|
|
ldr w0, [x29, 152]
|
|
add w0, w0, 1
|
|
str w0, [x29, 152]
|
|
b .L3756
|
|
.L3775:
|
|
add w0, w0, w20
|
|
adrp x7, .LANCHOR111
|
|
add x0, x26, x0, sxtw 1
|
|
ldrh w7, [x7, #:lo12:.LANCHOR111]
|
|
ldrh w0, [x0, 16]
|
|
madd w0, w0, w7, w25
|
|
b .L3870
|
|
.L3771:
|
|
cmp w0, 2
|
|
bne .L3778
|
|
adrp x0, .LANCHOR80
|
|
adrp x5, .LANCHOR111
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbnz w0, .L3777
|
|
ldr w0, [x29, 168]
|
|
ldrh w5, [x5, #:lo12:.LANCHOR111]
|
|
add w27, w20, w0
|
|
add x27, x26, x27, sxtw 1
|
|
ldrh w0, [x27, 16]
|
|
madd w0, w0, w5, w25
|
|
.L3867:
|
|
orr w0, w0, 33554432
|
|
str w0, [x6, 40]
|
|
b .L3778
|
|
.L3777:
|
|
add w0, w20, w24, lsr 1
|
|
ldrh w5, [x5, #:lo12:.LANCHOR111]
|
|
add x0, x26, x0, sxtw 1
|
|
ldrh w0, [x0, 16]
|
|
madd w0, w0, w5, w25
|
|
and w5, w24, 1
|
|
add w0, w0, w5
|
|
b .L3867
|
|
.L3784:
|
|
ldr x4, [x0, w1, sxtw 3]
|
|
add w1, w1, 1
|
|
ldr x5, [x0, w1, sxtw 3]
|
|
and w1, w1, 65535
|
|
ldrb w5, [x5, 1]
|
|
strb w5, [x4]
|
|
b .L3783
|
|
.L3782:
|
|
adrp x1, .LANCHOR83
|
|
ldrb w2, [x1, #:lo12:.LANCHOR83]
|
|
ldr x1, [x29, 176]
|
|
cbz w2, .L3786
|
|
.L3789:
|
|
strb wzr, [x1, 60]
|
|
b .L3788
|
|
.L3786:
|
|
cmp w23, 1
|
|
bne .L3787
|
|
mov w2, 9
|
|
.L3868:
|
|
strb w2, [x1, 60]
|
|
.L3788:
|
|
mov w2, w21
|
|
add x1, x0, 24
|
|
bl sblk_xlc_prog_pages
|
|
.L3785:
|
|
adrp x0, .LANCHOR83
|
|
ldrb w0, [x0, #:lo12:.LANCHOR83]
|
|
cbz w0, .L3794
|
|
add w21, w21, w21, lsl 1
|
|
and w21, w21, 65535
|
|
.L3795:
|
|
adrp x0, .LANCHOR110
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 52]
|
|
add w0, w0, w21
|
|
str w0, [x1, 52]
|
|
adrp x0, .LANCHOR70
|
|
add x25, x0, :lo12:.LANCHOR70
|
|
ldrh w0, [x25, 2106]
|
|
add w21, w21, w0
|
|
adrp x0, .LANCHOR85
|
|
and w21, w21, 65535
|
|
strh w21, [x25, 2106]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR85]
|
|
ldrb w1, [x26, 9]
|
|
mul w0, w0, w1
|
|
cmp w21, w0
|
|
blt .L3796
|
|
ldr x0, [x29, 144]
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
strh wzr, [x0, 86]
|
|
.L3796:
|
|
bl gc_write_completed
|
|
b .L3733
|
|
.L3787:
|
|
cmp w23, 2
|
|
bne .L3789
|
|
mov w2, 13
|
|
b .L3868
|
|
.L3781:
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbz w1, .L3807
|
|
adrp x1, .LANCHOR81
|
|
ldrb w1, [x1, #:lo12:.LANCHOR81]
|
|
cbnz w1, .L3791
|
|
.L3790:
|
|
ldr w2, [x29, 156]
|
|
sub w2, w2, #1
|
|
.L3792:
|
|
cmp w1, w2
|
|
bge .L3869
|
|
ldr x4, [x0, w1, sxtw 3]
|
|
add w1, w1, 1
|
|
ldr x5, [x0, w1, sxtw 3]
|
|
and w1, w1, 65535
|
|
ldrb w5, [x5, 1]
|
|
strb w5, [x4]
|
|
b .L3792
|
|
.L3807:
|
|
mov w1, 0
|
|
b .L3790
|
|
.L3791:
|
|
mov w1, w21
|
|
bl sblk_3d_mlc_prog_pages
|
|
b .L3785
|
|
.L3794:
|
|
adrp x0, .LANCHOR80
|
|
ldrb w0, [x0, #:lo12:.LANCHOR80]
|
|
cbnz w0, .L3808
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbz w0, .L3795
|
|
adrp x0, .LANCHOR124
|
|
ldrh w1, [x29, 156]
|
|
ldrb w0, [x0, #:lo12:.LANCHOR124]
|
|
cbz w0, .L3809
|
|
adrp x0, .LANCHOR235
|
|
add x0, x0, :lo12:.LANCHOR235
|
|
ldrh w0, [x0, w25, sxtw 1]
|
|
cmp w0, w25
|
|
csel w21, w21, w1, cc
|
|
b .L3795
|
|
.L3808:
|
|
ldr w21, [x29, 132]
|
|
b .L3795
|
|
.L3809:
|
|
mov w21, w1
|
|
b .L3795
|
|
.size gc_do_copy_back, .-gc_do_copy_back
|
|
.section .text.zftl_do_gc,"ax",@progbits
|
|
.align 2
|
|
.global zftl_do_gc
|
|
.type zftl_do_gc, %function
|
|
zftl_do_gc:
|
|
sub sp, sp, #144
|
|
adrp x1, .LANCHOR107
|
|
stp x29, x30, [sp, 16]
|
|
add x29, sp, 16
|
|
ldrh w1, [x1, #:lo12:.LANCHOR107]
|
|
stp x21, x22, [sp, 48]
|
|
adrp x22, .LANCHOR103
|
|
stp x19, x20, [sp, 32]
|
|
adrp x20, .LANCHOR156
|
|
stp x23, x24, [sp, 64]
|
|
adrp x23, .LANCHOR12
|
|
stp x25, x26, [sp, 80]
|
|
ldrh w21, [x22, #:lo12:.LANCHOR103]
|
|
ldrb w2, [x20, #:lo12:.LANCHOR156]
|
|
stp x27, x28, [sp, 96]
|
|
add w21, w1, w21
|
|
ldr x26, [x23, #:lo12:.LANCHOR12]
|
|
cmp w2, 6
|
|
bhi .L3988
|
|
mov w25, w0
|
|
and w21, w21, 65535
|
|
adrp x0, .L3874
|
|
add x0, x0, :lo12:.L3874
|
|
ldrh w0, [x0,w2,uxtw #1]
|
|
adr x2, .Lrtx3874
|
|
add x0, x2, w0, sxth #2
|
|
br x0
|
|
.Lrtx3874:
|
|
.section .rodata.zftl_do_gc,"a",@progbits
|
|
.align 0
|
|
.align 2
|
|
.L3874:
|
|
.2byte (.L3873 - .Lrtx3874) / 4
|
|
.2byte (.L3875 - .Lrtx3874) / 4
|
|
.2byte (.L3876 - .Lrtx3874) / 4
|
|
.2byte (.L3877 - .Lrtx3874) / 4
|
|
.2byte (.L3878 - .Lrtx3874) / 4
|
|
.2byte (.L3879 - .Lrtx3874) / 4
|
|
.2byte (.L3880 - .Lrtx3874) / 4
|
|
.section .text.zftl_do_gc
|
|
.L3879:
|
|
adrp x19, .LANCHOR70
|
|
add x24, x19, :lo12:.LANCHOR70
|
|
mov w22, 0
|
|
.L3881:
|
|
bl gc_check_data_one_wl
|
|
cbz w0, .L3984
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
add x19, x19, :lo12:.LANCHOR70
|
|
strh wzr, [x19, 56]
|
|
ldrh w0, [x0, 80]
|
|
bl ftl_free_sblk
|
|
adrp x2, .LANCHOR110
|
|
ldr x1, [x23, #:lo12:.LANCHOR12]
|
|
mov w0, -1
|
|
ldr x2, [x2, #:lo12:.LANCHOR110]
|
|
strh w0, [x1, 80]
|
|
strh w0, [x2, 126]
|
|
strh w0, [x1, 130]
|
|
ldr x0, [x19, 8]
|
|
bl zbuf_free
|
|
strb wzr, [x20, #:lo12:.LANCHOR156]
|
|
str xzr, [x19, 8]
|
|
b .L4074
|
|
.L3873:
|
|
adrp x0, .LANCHOR105
|
|
adrp x27, .LANCHOR97
|
|
ldrh w3, [x26, 80]
|
|
ldrh w22, [x0, #:lo12:.LANCHOR105]
|
|
adrp x0, .LANCHOR99
|
|
ldrh w24, [x27, #:lo12:.LANCHOR97]
|
|
ldrh w2, [x0, #:lo12:.LANCHOR99]
|
|
add w22, w1, w22
|
|
stp x0, x27, [x29, 112]
|
|
and w22, w22, 65535
|
|
add w24, w24, w2
|
|
mov w2, 65535
|
|
and w24, w24, 65535
|
|
cmp w3, w2
|
|
beq .L3882
|
|
cbnz w25, .L3883
|
|
adrp x0, .LANCHOR86
|
|
ldrh w0, [x0, #:lo12:.LANCHOR86]
|
|
cmp w21, w0, lsl 1
|
|
blt .L3883
|
|
.L3988:
|
|
mov w19, 16
|
|
b .L3871
|
|
.L3883:
|
|
adrp x5, .LANCHOR96
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
adrp x25, .LANCHOR84
|
|
ldrh w1, [x5, #:lo12:.LANCHOR96]
|
|
add w1, w1, 1
|
|
and w1, w1, 65535
|
|
strh w1, [x5, #:lo12:.LANCHOR96]
|
|
bl _list_get_gc_head_node
|
|
and w3, w0, 65535
|
|
mov w1, 65535
|
|
cmp w3, w1
|
|
beq .L3884
|
|
adrp x4, .LANCHOR11
|
|
ubfiz x3, x3, 1, 16
|
|
adrp x1, .LANCHOR157
|
|
mov x19, x1
|
|
ldr x4, [x4, #:lo12:.LANCHOR11]
|
|
ldr w2, [x1, #:lo12:.LANCHOR157]
|
|
add w2, w2, 1
|
|
str w2, [x1, #:lo12:.LANCHOR157]
|
|
ldrh w3, [x4, x3]
|
|
adrp x4, .LANCHOR94
|
|
ldrh w4, [x4, #:lo12:.LANCHOR94]
|
|
cmp w4, w3
|
|
bcs .L3885
|
|
adrp x1, .LANCHOR8
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
cmp w2, w1, lsr 4
|
|
bls .L3884
|
|
adrp x1, .LANCHOR100
|
|
ldrh w1, [x1, #:lo12:.LANCHOR100]
|
|
cmp w1, w3
|
|
bls .L3884
|
|
.L3885:
|
|
ldrb w2, [x25, #:lo12:.LANCHOR84]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
cbz w0, .L3886
|
|
mov w0, 1
|
|
str wzr, [x19, #:lo12:.LANCHOR157]
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
b .L3988
|
|
.L3884:
|
|
strh wzr, [x5, #:lo12:.LANCHOR96]
|
|
.L3886:
|
|
cmp w22, 15
|
|
bls .L3990
|
|
adrp x0, .LANCHOR91
|
|
ldrh w1, [x0, #:lo12:.LANCHOR91]
|
|
adrp x0, .LANCHOR101
|
|
ldrh w0, [x0, #:lo12:.LANCHOR101]
|
|
cmp w1, w0
|
|
bhi .L3990
|
|
cmp w24, 0
|
|
cset w19, eq
|
|
add w19, w19, 1
|
|
.L3887:
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 8, .L3888
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
mov w4, w22
|
|
ldrb w2, [x25, #:lo12:.LANCHOR84]
|
|
mov w3, w21
|
|
mov w1, 2807
|
|
ldrh w7, [x0, 122]
|
|
ldrh w6, [x0, 120]
|
|
ldrh w5, [x0, 124]
|
|
ldrh w0, [x26, 80]
|
|
str w0, [sp]
|
|
adrp x0, .LC239
|
|
add x0, x0, :lo12:.LC239
|
|
bl printf
|
|
.L3888:
|
|
ldrb w0, [x25, #:lo12:.LANCHOR84]
|
|
mov w2, 1
|
|
mov w1, w19
|
|
bl gc_search_src_blk
|
|
cmp w0, 0
|
|
ble .L3889
|
|
.L3890:
|
|
mov w0, 1
|
|
.L4076:
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
b .L3988
|
|
.L3990:
|
|
mov w19, 2
|
|
b .L3887
|
|
.L3889:
|
|
ldrb w0, [x25, #:lo12:.LANCHOR84]
|
|
mov w2, 1
|
|
mov w1, 3
|
|
bl gc_search_src_blk
|
|
cmp w0, 0
|
|
bgt .L3890
|
|
b .L3988
|
|
.L3882:
|
|
cmp w25, 1
|
|
bne .L3892
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
ldrh w0, [x0, 150]
|
|
cbz w0, .L3893
|
|
cmp w1, 8
|
|
bls .L3893
|
|
bl gc_ink_check_sblk
|
|
.L3893:
|
|
bl gc_scan_static_data
|
|
adrp x26, .LANCHOR84
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x0, 122]
|
|
cbz w0, .L3894
|
|
.L3895:
|
|
mov w0, 1
|
|
strb w0, [x26, #:lo12:.LANCHOR84]
|
|
b .L4076
|
|
.L3894:
|
|
bl gc_static_wearleveling
|
|
mov w19, w0
|
|
cbnz w0, .L3895
|
|
adrp x27, .LANCHOR158
|
|
cbz w22, .L3896
|
|
cmp w21, w24
|
|
adrp x1, .LANCHOR98
|
|
bcs .L3897
|
|
ldrh w0, [x1, #:lo12:.LANCHOR98]
|
|
cmp w0, w21
|
|
bhi .L3898
|
|
.L3897:
|
|
ldrh w1, [x1, #:lo12:.LANCHOR98]
|
|
add w0, w21, w24
|
|
cmp w0, w1
|
|
blt .L3898
|
|
adrp x0, .LANCHOR91
|
|
ldrh w1, [x0, #:lo12:.LANCHOR91]
|
|
adrp x0, .LANCHOR101
|
|
ldrh w0, [x0, #:lo12:.LANCHOR101]
|
|
cmp w1, w0
|
|
bcc .L3896
|
|
.L3898:
|
|
mov w0, 1
|
|
mov w1, 16
|
|
strb w0, [x26, #:lo12:.LANCHOR84]
|
|
adrp x0, .LANCHOR95
|
|
add x0, x0, :lo12:.LANCHOR95
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
adrp x28, .LANCHOR157
|
|
cmp w1, w2
|
|
beq .L3899
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x2, x1]
|
|
ldrh w1, [x27, #:lo12:.LANCHOR158]
|
|
cmp w2, w1
|
|
bcs .L3899
|
|
cmp w21, 2
|
|
bls .L3899
|
|
strb wzr, [x26, #:lo12:.LANCHOR84]
|
|
mov w2, 0
|
|
str wzr, [x28, #:lo12:.LANCHOR157]
|
|
mov w1, 1
|
|
bl gc_add_sblk
|
|
cbnz w0, .L3890
|
|
.L3899:
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR90
|
|
add x0, x0, :lo12:.LANCHOR90
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L3900
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x2, x1]
|
|
ldrh w1, [x27, #:lo12:.LANCHOR158]
|
|
cmp w2, w1
|
|
bcs .L3900
|
|
cmp w21, 2
|
|
bls .L3900
|
|
strb wzr, [x26, #:lo12:.LANCHOR84]
|
|
mov w2, 0
|
|
str wzr, [x28, #:lo12:.LANCHOR157]
|
|
mov w1, 1
|
|
bl gc_add_sblk
|
|
cbnz w0, .L3890
|
|
.L3900:
|
|
ldrh w0, [x27, #:lo12:.LANCHOR158]
|
|
adrp x1, .LANCHOR94
|
|
add w0, w0, 1
|
|
ldrh w5, [x1, #:lo12:.LANCHOR94]
|
|
and w0, w0, 65535
|
|
strh w0, [x27, #:lo12:.LANCHOR158]
|
|
cmp w0, w5, lsr 5
|
|
bls .L3901
|
|
mov w0, 4
|
|
strh w0, [x27, #:lo12:.LANCHOR158]
|
|
.L3901:
|
|
adrp x1, .LANCHOR87
|
|
ldr w0, [x28, #:lo12:.LANCHOR157]
|
|
strh wzr, [x1, #:lo12:.LANCHOR87]
|
|
adrp x1, .LANCHOR88
|
|
add w0, w0, 1
|
|
str w0, [x28, #:lo12:.LANCHOR157]
|
|
strh wzr, [x1, #:lo12:.LANCHOR88]
|
|
adrp x1, .LANCHOR89
|
|
strh wzr, [x1, #:lo12:.LANCHOR89]
|
|
adrp x1, .LANCHOR8
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
cmp w0, w1, lsr 5
|
|
adrp x0, .LANCHOR91
|
|
bls .L3902
|
|
ldrh w1, [x0, #:lo12:.LANCHOR91]
|
|
cmp w1, w22
|
|
bls .L3902
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
bl _list_get_gc_head_node
|
|
and w0, w0, 65535
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
bne .L3903
|
|
.L4064:
|
|
mov w19, 16
|
|
b .L3904
|
|
.L3903:
|
|
adrp x1, .LANCHOR11
|
|
ubfiz x0, x0, 1, 16
|
|
ldr x1, [x1, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x1, x0]
|
|
adrp x0, .LANCHOR79
|
|
ldrb w0, [x0, #:lo12:.LANCHOR79]
|
|
mul w0, w0, w5
|
|
cmp w1, w0
|
|
bgt .L4064
|
|
str wzr, [x28, #:lo12:.LANCHOR157]
|
|
mov w2, 4
|
|
.L4070:
|
|
mov w1, 2
|
|
.L4063:
|
|
ldrb w0, [x26, #:lo12:.LANCHOR84]
|
|
bl gc_search_src_blk
|
|
and w0, w0, 65535
|
|
cbz w0, .L4064
|
|
b .L3890
|
|
.L3902:
|
|
ldrh w1, [x0, #:lo12:.LANCHOR91]
|
|
adrp x0, .LANCHOR101
|
|
ldrh w0, [x0, #:lo12:.LANCHOR101]
|
|
cmp w1, w0
|
|
bcc .L3907
|
|
mov w2, 1
|
|
b .L4070
|
|
.L3907:
|
|
ldr x0, [x29, 120]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR97]
|
|
cbnz w0, .L3908
|
|
ldr x0, [x29, 112]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR99]
|
|
cmp w0, 8
|
|
bls .L3909
|
|
.L3908:
|
|
mov w2, 4
|
|
mov w1, 1
|
|
b .L4063
|
|
.L3909:
|
|
adrp x0, .LANCHOR70+2110
|
|
ldrh w0, [x0, #:lo12:.LANCHOR70+2110]
|
|
cbnz w0, .L4064
|
|
.L3904:
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
adrp x28, .LANCHOR84
|
|
mov w1, 1
|
|
mov x23, x28
|
|
strb w1, [x28, #:lo12:.LANCHOR84]
|
|
ldrh w0, [x0, 124]
|
|
cbz w0, .L3910
|
|
strb wzr, [x28, #:lo12:.LANCHOR84]
|
|
strb w1, [x20, #:lo12:.LANCHOR156]
|
|
.L3871:
|
|
mov w0, w19
|
|
ldp x19, x20, [sp, 32]
|
|
ldp x21, x22, [sp, 48]
|
|
ldp x23, x24, [sp, 64]
|
|
ldp x25, x26, [sp, 80]
|
|
ldp x27, x28, [sp, 96]
|
|
ldp x29, x30, [sp, 16]
|
|
add sp, sp, 144
|
|
ret
|
|
.L3896:
|
|
adrp x0, .LANCHOR94
|
|
ldrh w1, [x0, #:lo12:.LANCHOR94]
|
|
ldrh w0, [x27, #:lo12:.LANCHOR158]
|
|
cmp w0, w1, lsr 5
|
|
bcc .L4064
|
|
mov w0, 4
|
|
strh w0, [x27, #:lo12:.LANCHOR158]
|
|
b .L4064
|
|
.L3892:
|
|
adrp x0, .LANCHOR86
|
|
ldrh w0, [x0, #:lo12:.LANCHOR86]
|
|
cmp w0, w21
|
|
bcs .L4064
|
|
ldrh w0, [x26, 124]
|
|
cbz w0, .L3988
|
|
b .L4064
|
|
.L3910:
|
|
adrp x0, .LANCHOR86
|
|
mov x26, x0
|
|
ldrh w2, [x0, #:lo12:.LANCHOR86]
|
|
cmp w21, w2
|
|
bcs .L3911
|
|
cbz w22, .L3912
|
|
cmp w22, 16
|
|
bls .L3913
|
|
adrp x0, .LANCHOR91
|
|
ldrh w2, [x0, #:lo12:.LANCHOR91]
|
|
adrp x0, .LANCHOR101
|
|
ldrh w0, [x0, #:lo12:.LANCHOR101]
|
|
cmp w2, w0
|
|
bhi .L3913
|
|
mov w2, 4
|
|
mov w0, w1
|
|
bl gc_search_src_blk
|
|
tst w0, 65535
|
|
bne .L3914
|
|
.L4071:
|
|
mov w2, 4
|
|
mov w1, 3
|
|
ldrb w0, [x28, #:lo12:.LANCHOR84]
|
|
b .L4066
|
|
.L3914:
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
bl _list_get_gc_head_node
|
|
and w3, w0, 65535
|
|
mov w1, 65535
|
|
cmp w3, w1
|
|
beq .L3917
|
|
adrp x4, .LANCHOR11
|
|
ubfiz x3, x3, 1, 16
|
|
adrp x1, .LANCHOR157
|
|
mov x21, x1
|
|
ldr x4, [x4, #:lo12:.LANCHOR11]
|
|
ldr w2, [x1, #:lo12:.LANCHOR157]
|
|
add w2, w2, 1
|
|
str w2, [x1, #:lo12:.LANCHOR157]
|
|
ldrh w3, [x4, x3]
|
|
adrp x4, .LANCHOR94
|
|
ldrh w4, [x4, #:lo12:.LANCHOR94]
|
|
cmp w4, w3
|
|
bcs .L3918
|
|
adrp x1, .LANCHOR8
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
cmp w2, w1, lsr 4
|
|
bls .L3917
|
|
adrp x1, .LANCHOR100
|
|
ldrh w1, [x1, #:lo12:.LANCHOR100]
|
|
cmp w1, w3
|
|
bls .L3917
|
|
.L3918:
|
|
ldrb w2, [x23, #:lo12:.LANCHOR84]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
str wzr, [x21, #:lo12:.LANCHOR157]
|
|
adrp x0, .LANCHOR122
|
|
mov w1, 1
|
|
str w1, [x0, #:lo12:.LANCHOR122]
|
|
.L3917:
|
|
mov w0, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
b .L3871
|
|
.L3913:
|
|
mov w2, 1
|
|
mov w1, 2
|
|
mov w0, w2
|
|
bl gc_search_src_blk
|
|
tst w0, 65535
|
|
bne .L3917
|
|
ldrb w0, [x23, #:lo12:.LANCHOR84]
|
|
mov w2, 4
|
|
mov w1, 3
|
|
.L4066:
|
|
bl gc_search_src_blk
|
|
and w0, w0, 65535
|
|
.L3915:
|
|
cbnz w0, .L3917
|
|
b .L3871
|
|
.L3912:
|
|
strb wzr, [x28, #:lo12:.LANCHOR84]
|
|
cmp w21, 16
|
|
bls .L3920
|
|
mov w2, 4
|
|
mov w1, 3
|
|
mov w0, 0
|
|
b .L4066
|
|
.L3920:
|
|
mov w2, w1
|
|
mov w0, 0
|
|
bl gc_search_src_blk
|
|
tst w0, 65535
|
|
bne .L3917
|
|
b .L4071
|
|
.L3911:
|
|
cmp w25, 1
|
|
bne .L3871
|
|
cmp w21, w2, lsl 1
|
|
bge .L3921
|
|
cmp w24, w22, lsr 1
|
|
bcs .L3922
|
|
adrp x1, .LANCHOR91
|
|
ldrh w2, [x1, #:lo12:.LANCHOR91]
|
|
adrp x1, .LANCHOR101
|
|
ldrh w1, [x1, #:lo12:.LANCHOR101]
|
|
cmp w2, w1
|
|
bcs .L3922
|
|
adrp x1, .LANCHOR98
|
|
ldrh w1, [x1, #:lo12:.LANCHOR98]
|
|
lsr w1, w1, 2
|
|
strh w1, [x0, #:lo12:.LANCHOR86]
|
|
b .L3871
|
|
.L3922:
|
|
mov w1, 8
|
|
adrp x25, .LANCHOR95
|
|
add x0, x25, :lo12:.LANCHOR95
|
|
bl _list_get_gc_head_node
|
|
and w1, w0, 65535
|
|
mov w2, 65535
|
|
cmp w1, w2
|
|
beq .L3923
|
|
adrp x2, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
ldr x2, [x2, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x2, x1]
|
|
cmp w1, 3
|
|
bhi .L3923
|
|
cbz w21, .L3923
|
|
strb wzr, [x23, #:lo12:.LANCHOR84]
|
|
mov w2, 0
|
|
mov w1, 1
|
|
bl gc_add_sblk
|
|
cbnz w0, .L3917
|
|
.L3923:
|
|
mov w1, 0
|
|
adrp x0, .LANCHOR92
|
|
add x0, x0, :lo12:.LANCHOR92
|
|
bl _list_get_gc_head_node
|
|
and w28, w0, 65535
|
|
mov w1, 65535
|
|
mov w3, w28
|
|
cmp w28, w1
|
|
bne .L3924
|
|
.L3929:
|
|
cmp w22, 1
|
|
bhi .L3925
|
|
.L3926:
|
|
cmp w21, w24
|
|
adrp x21, .LANCHOR98
|
|
bcs .L3933
|
|
mov w1, 4
|
|
strb wzr, [x23, #:lo12:.LANCHOR84]
|
|
add x0, x25, :lo12:.LANCHOR95
|
|
bl _list_get_gc_head_node
|
|
and w0, w0, 65535
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
beq .L3933
|
|
adrp x1, .LANCHOR11
|
|
ubfiz x0, x0, 1, 16
|
|
adrp x2, .LANCHOR79
|
|
ldr x1, [x1, #:lo12:.LANCHOR11]
|
|
ldrb w2, [x2, #:lo12:.LANCHOR79]
|
|
ldrh w1, [x1, x0]
|
|
adrp x0, .LANCHOR94
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
mul w0, w0, w2
|
|
cmp w1, w0, lsr 1
|
|
ble .L3935
|
|
.L3933:
|
|
ldrh w0, [x21, #:lo12:.LANCHOR98]
|
|
lsr w0, w0, 2
|
|
strh w0, [x26, #:lo12:.LANCHOR86]
|
|
b .L3871
|
|
.L3924:
|
|
adrp x2, .LANCHOR157
|
|
adrp x4, .LANCHOR8
|
|
uxtw x28, w28
|
|
ldr w1, [x2, #:lo12:.LANCHOR157]
|
|
ldrh w4, [x4, #:lo12:.LANCHOR8]
|
|
add w1, w1, 1
|
|
str w1, [x2, #:lo12:.LANCHOR157]
|
|
cmp w1, w4, lsr 4
|
|
adrp x4, .LANCHOR11
|
|
bls .L3927
|
|
ldr x1, [x4, #:lo12:.LANCHOR11]
|
|
str wzr, [x2, #:lo12:.LANCHOR157]
|
|
ldrh w2, [x1, x28, lsl 1]
|
|
adrp x1, .LANCHOR100
|
|
ldrh w1, [x1, #:lo12:.LANCHOR100]
|
|
cmp w2, w1
|
|
bcs .L3927
|
|
mov w5, 1
|
|
str x4, [x29, 96]
|
|
strb w5, [x23, #:lo12:.LANCHOR84]
|
|
mov w2, 1
|
|
stp w3, w5, [x29, 104]
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
ldp w3, w5, [x29, 104]
|
|
ldr x4, [x29, 96]
|
|
cbz w0, .L3927
|
|
strb w5, [x20, #:lo12:.LANCHOR156]
|
|
b .L3871
|
|
.L3927:
|
|
ldr x0, [x4, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x0, x28, lsl 1]
|
|
adrp x0, .LANCHOR94
|
|
ldrh w0, [x0, #:lo12:.LANCHOR94]
|
|
cmp w1, w0, lsr 1
|
|
bhi .L3928
|
|
mov w2, 0
|
|
mov w1, 1
|
|
mov w0, w3
|
|
bl gc_add_sblk
|
|
b .L3917
|
|
.L3928:
|
|
ldp x2, x0, [x29, 112]
|
|
ldrh w2, [x2, #:lo12:.LANCHOR99]
|
|
ldrh w0, [x0, #:lo12:.LANCHOR97]
|
|
add w0, w0, w2
|
|
adrp x2, .LANCHOR98
|
|
ldrh w2, [x2, #:lo12:.LANCHOR98]
|
|
cmp w0, w2, lsl 1
|
|
ble .L3929
|
|
adrp x0, .LANCHOR100
|
|
ldrh w0, [x0, #:lo12:.LANCHOR100]
|
|
cmp w0, w1
|
|
bcc .L3926
|
|
b .L3929
|
|
.L3925:
|
|
mov w1, 1
|
|
strb w1, [x23, #:lo12:.LANCHOR84]
|
|
cmp w22, 16
|
|
bls .L3930
|
|
adrp x0, .LANCHOR91
|
|
ldrh w2, [x0, #:lo12:.LANCHOR91]
|
|
adrp x0, .LANCHOR101
|
|
ldrh w0, [x0, #:lo12:.LANCHOR101]
|
|
cmp w2, w0
|
|
bhi .L3930
|
|
mov w0, w1
|
|
mov w2, 4
|
|
.L4073:
|
|
bl gc_search_src_blk
|
|
ands w0, w0, 65535
|
|
bne .L3931
|
|
ldrb w0, [x23, #:lo12:.LANCHOR84]
|
|
mov w2, 4
|
|
mov w1, 3
|
|
bl gc_search_src_blk
|
|
and w0, w0, 65535
|
|
.L3931:
|
|
adrp x1, .LANCHOR98
|
|
cmp w21, w24, lsr 1
|
|
ldrh w1, [x1, #:lo12:.LANCHOR98]
|
|
bls .L4067
|
|
lsr w1, w1, 2
|
|
.L4068:
|
|
strh w1, [x26, #:lo12:.LANCHOR86]
|
|
b .L3915
|
|
.L3930:
|
|
mov w2, 1
|
|
mov w1, 2
|
|
mov w0, w2
|
|
b .L4073
|
|
.L3935:
|
|
mov w1, 3
|
|
mov w2, 4
|
|
mov w0, 0
|
|
bl gc_search_src_blk
|
|
ldrh w1, [x21, #:lo12:.LANCHOR98]
|
|
and w0, w0, 65535
|
|
.L4067:
|
|
lsr w1, w1, 1
|
|
b .L4068
|
|
.L3921:
|
|
adrp x1, .LANCHOR98
|
|
ldrh w1, [x1, #:lo12:.LANCHOR98]
|
|
lsr w1, w1, 2
|
|
strh w1, [x0, #:lo12:.LANCHOR86]
|
|
adrp x0, .LANCHOR70+2110
|
|
ldrh w0, [x0, #:lo12:.LANCHOR70+2110]
|
|
cmp w0, 0
|
|
csel w19, w19, wzr, ne
|
|
b .L3871
|
|
.L3875:
|
|
adrp x7, .LANCHOR70
|
|
mov w0, 65535
|
|
ldrh w1, [x7, #:lo12:.LANCHOR70]
|
|
cmp w1, w0
|
|
bne .L3936
|
|
bl gc_get_src_blk
|
|
strh w0, [x7, #:lo12:.LANCHOR70]
|
|
.L3936:
|
|
ldrh w0, [x7, #:lo12:.LANCHOR70]
|
|
mov w1, 65535
|
|
cmp w0, w1
|
|
beq .L3937
|
|
adrp x1, .LANCHOR8
|
|
ldrh w1, [x1, #:lo12:.LANCHOR8]
|
|
cmp w1, w0
|
|
bhi .L3937
|
|
mov w0, -1
|
|
strh w0, [x7, #:lo12:.LANCHOR70]
|
|
.L3937:
|
|
ldrh w3, [x7, #:lo12:.LANCHOR70]
|
|
mov w0, 65535
|
|
add x1, x7, :lo12:.LANCHOR70
|
|
cmp w3, w0
|
|
beq .L4075
|
|
adrp x0, .LANCHOR9
|
|
ldrh w5, [x1, 56]
|
|
uxtw x4, w3
|
|
ldr x2, [x0, #:lo12:.LANCHOR9]
|
|
add x2, x2, x4, lsl 2
|
|
cbz w5, .L3939
|
|
add x1, x1, 58
|
|
mov w0, 0
|
|
.L3941:
|
|
ldrh w6, [x1], 2
|
|
cmp w6, w3
|
|
bne .L3940
|
|
.L3945:
|
|
adrp x0, .LANCHOR70
|
|
mov w1, -1
|
|
strh w1, [x0, #:lo12:.LANCHOR70]
|
|
b .L3988
|
|
.L3940:
|
|
add w0, w0, 1
|
|
and w0, w0, 65535
|
|
cmp w5, w0
|
|
bne .L3941
|
|
.L3939:
|
|
ldrb w0, [x2, 2]
|
|
and w1, w0, 224
|
|
cmp w1, 224
|
|
beq .L3942
|
|
tst w0, 192
|
|
bne .L3943
|
|
.L3942:
|
|
adrp x0, .LANCHOR11
|
|
ldr x0, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x0, x4, lsl 1]
|
|
cbz w0, .L3945
|
|
mov w2, 3306
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L3945
|
|
.L3943:
|
|
mov w0, 2
|
|
b .L4076
|
|
.L3876:
|
|
bl gc_scan_src_blk
|
|
cmn w0, #1
|
|
bne .L3946
|
|
mov w0, 3
|
|
b .L4076
|
|
.L3946:
|
|
adrp x19, .LANCHOR70
|
|
mov w2, 65535
|
|
add x0, x19, :lo12:.LANCHOR70
|
|
ldrh w1, [x19, #:lo12:.LANCHOR70]
|
|
cmp w1, w2
|
|
beq .L3890
|
|
ldrh w2, [x0, 24]
|
|
cbz w2, .L3947
|
|
mov w1, 4
|
|
strh wzr, [x0, 26]
|
|
strb w1, [x20, #:lo12:.LANCHOR156]
|
|
b .L3988
|
|
.L3947:
|
|
mov w0, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
adrp x0, .LANCHOR11
|
|
ubfiz x1, x1, 1, 16
|
|
mov x20, x0
|
|
ldr x2, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x2, x1]
|
|
cbz w1, .L3948
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
mov w2, 3336
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3948:
|
|
ldrh w0, [x19, #:lo12:.LANCHOR70]
|
|
add x21, x19, :lo12:.LANCHOR70
|
|
bl ftl_free_sblk
|
|
ldr x0, [x20, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x19, #:lo12:.LANCHOR70]
|
|
strh wzr, [x0, x1, lsl 1]
|
|
ldrh w0, [x21, 30]
|
|
add w0, w0, 1
|
|
and w0, w0, 65535
|
|
cmp w0, 8
|
|
bhi .L3949
|
|
strh w0, [x21, 30]
|
|
b .L3945
|
|
.L3949:
|
|
strh wzr, [x21, 30]
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
b .L3945
|
|
.L3877:
|
|
adrp x19, .LANCHOR70
|
|
adrp x23, .LANCHOR94
|
|
add x22, x19, :lo12:.LANCHOR70
|
|
add x23, x23, :lo12:.LANCHOR94
|
|
.L4037:
|
|
bl gc_scan_src_blk_one_page
|
|
ldrh w1, [x22, 2]
|
|
ldrh w0, [x23]
|
|
cmp w1, w0
|
|
bcs .L3951
|
|
cmp w21, 7
|
|
bls .L4037
|
|
b .L3988
|
|
.L3951:
|
|
ldrh w3, [x22, 24]
|
|
ldrh w1, [x22]
|
|
cbz w3, .L3952
|
|
mov w0, 4
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
adrp x20, .LANCHOR11
|
|
ubfiz x0, x1, 1, 16
|
|
strh wzr, [x22, 26]
|
|
ldr x2, [x20, #:lo12:.LANCHOR11]
|
|
ldrh w2, [x2, x0]
|
|
cmp w3, w2
|
|
beq .L3953
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 10, .L3953
|
|
adrp x0, .LC240
|
|
add x0, x0, :lo12:.LC240
|
|
bl printf
|
|
.L3953:
|
|
ldrh w2, [x19, #:lo12:.LANCHOR70]
|
|
add x0, x19, :lo12:.LANCHOR70
|
|
ldr x1, [x20, #:lo12:.LANCHOR11]
|
|
ldrh w0, [x0, 24]
|
|
ldrh w1, [x1, x2, lsl 1]
|
|
cmp w1, w0
|
|
beq .L3954
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
mov w2, 3379
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3954:
|
|
add x0, x19, :lo12:.LANCHOR70
|
|
ldrh w1, [x19, #:lo12:.LANCHOR70]
|
|
ldrh w2, [x0, 24]
|
|
ldr x0, [x20, #:lo12:.LANCHOR11]
|
|
strh w2, [x0, x1, lsl 1]
|
|
b .L3988
|
|
.L3952:
|
|
adrp x0, .LANCHOR9
|
|
ldr x21, [x0, #:lo12:.LANCHOR9]
|
|
mov w0, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
adrp x0, .LANCHOR19
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
add x21, x21, x1, uxth 2
|
|
tbz x0, 8, .L3955
|
|
ldrb w2, [x21, 2]
|
|
adrp x0, .LC241
|
|
add x0, x0, :lo12:.LC241
|
|
ubfx x2, x2, 5, 3
|
|
bl printf
|
|
.L3955:
|
|
ldrb w0, [x21, 2]
|
|
and w1, w0, 224
|
|
cmp w1, 224
|
|
beq .L3956
|
|
tst w0, 192
|
|
bne .L3957
|
|
.L3956:
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
mov w2, 3389
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3957:
|
|
ldrh w0, [x19, #:lo12:.LANCHOR70]
|
|
add x20, x19, :lo12:.LANCHOR70
|
|
bl ftl_free_sblk
|
|
mov w0, -1
|
|
strh w0, [x19, #:lo12:.LANCHOR70]
|
|
ldrh w0, [x20, 30]
|
|
add w0, w0, 1
|
|
and w0, w0, 65535
|
|
cmp w0, 8
|
|
bhi .L3958
|
|
strh w0, [x20, 30]
|
|
b .L3988
|
|
.L3958:
|
|
strh wzr, [x20, 30]
|
|
.L4074:
|
|
bl flt_sys_flush
|
|
b .L3988
|
|
.L3878:
|
|
ldrh w1, [x26, 80]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L3959
|
|
adrp x0, .LANCHOR84
|
|
ldrb w19, [x0, #:lo12:.LANCHOR84]
|
|
cmp w19, 1
|
|
bne .L3959
|
|
bl ftl_flush
|
|
adrp x0, .LANCHOR70
|
|
add x1, x0, :lo12:.LANCHOR70
|
|
mov x20, x0
|
|
ldrh w1, [x1, 2192]
|
|
cbz w1, .L3960
|
|
mov w0, w19
|
|
mov w1, 5
|
|
.L4069:
|
|
bl zftl_gc_get_free_sblk
|
|
and w19, w0, 65535
|
|
mov w0, 65535
|
|
cmp w19, w0
|
|
beq .L3962
|
|
adrp x0, .LANCHOR9
|
|
ldr x21, [x0, #:lo12:.LANCHOR9]
|
|
add x21, x21, x19, uxth 2
|
|
ldrb w0, [x21, 2]
|
|
tst w0, 224
|
|
beq .L3963
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
mov w2, 3423
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3963:
|
|
ldrb w0, [x21, 2]
|
|
mov w1, 5
|
|
bfi w0, w1, 5, 3
|
|
orr w0, w0, 16
|
|
strb w0, [x21, 2]
|
|
.L3987:
|
|
mov w1, 1
|
|
mov w0, w19
|
|
bl ftl_erase_sblk
|
|
adrp x22, .LANCHOR85
|
|
mov w0, 5
|
|
strb w0, [x26, 84]
|
|
add x1, x26, 96
|
|
mov w0, w19
|
|
bl ftl_get_blk_list_in_sblk
|
|
and w0, w0, 255
|
|
adrp x1, .LANCHOR94
|
|
adrp x21, .LANCHOR79
|
|
strb w0, [x26, 89]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
ldrh w2, [x22, #:lo12:.LANCHOR85]
|
|
strh w19, [x26, 80]
|
|
strh wzr, [x26, 82]
|
|
mul w0, w0, w1
|
|
strb wzr, [x26, 85]
|
|
strh w0, [x26, 86]
|
|
mov w1, 255
|
|
ldrb w0, [x21, #:lo12:.LANCHOR79]
|
|
strh wzr, [x26, 90]
|
|
mul w2, w2, w0
|
|
adrp x0, .LANCHOR159
|
|
ldr x0, [x0, #:lo12:.LANCHOR159]
|
|
lsl w2, w2, 2
|
|
bl ftl_memset
|
|
ldrb w0, [x21, #:lo12:.LANCHOR79]
|
|
mov w1, 255
|
|
ldrh w2, [x22, #:lo12:.LANCHOR85]
|
|
mul w2, w2, w0
|
|
adrp x0, .LANCHOR160
|
|
ldr x0, [x0, #:lo12:.LANCHOR160]
|
|
lsl w2, w2, 2
|
|
bl ftl_memset
|
|
ldrb w0, [x21, #:lo12:.LANCHOR79]
|
|
mov w1, 255
|
|
ldrh w2, [x22, #:lo12:.LANCHOR85]
|
|
mul w2, w2, w0
|
|
adrp x0, .LANCHOR82
|
|
ldr x0, [x0, #:lo12:.LANCHOR82]
|
|
bl ftl_memset
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
mov w1, -1
|
|
str w19, [x0, 132]
|
|
strh w1, [x0, 128]
|
|
strh w1, [x0, 130]
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
adrp x0, .LANCHOR110
|
|
mov w1, -1
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
strh w19, [x0, 126]
|
|
add x0, x20, :lo12:.LANCHOR70
|
|
str w1, [x0, 2196]
|
|
strh wzr, [x0, 2106]
|
|
strh wzr, [x0, 56]
|
|
strh wzr, [x0, 2108]
|
|
strh wzr, [x0, 2194]
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
b .L3988
|
|
.L3960:
|
|
mov w1, 5
|
|
mov w0, 0
|
|
b .L4069
|
|
.L3959:
|
|
cmp w25, 1
|
|
mov w24, 4
|
|
csinc w24, w24, wzr, eq
|
|
cmp w21, 15
|
|
mov w0, w24
|
|
add w24, w24, 4
|
|
adrp x25, .LANCHOR84
|
|
adrp x21, .LANCHOR70
|
|
csel w24, w24, w0, ls
|
|
add x25, x25, :lo12:.LANCHOR84
|
|
add x19, x21, :lo12:.LANCHOR70
|
|
add x27, x26, 80
|
|
.L3966:
|
|
sub w24, w24, #1
|
|
and w24, w24, 255
|
|
cmp w24, 255
|
|
beq .L3988
|
|
bl gc_do_copy_back
|
|
ldrb w0, [x25]
|
|
cbnz w0, .L3967
|
|
adrp x0, .LANCHOR57
|
|
ldrb w0, [x0, #:lo12:.LANCHOR57]
|
|
cmp w0, 3
|
|
bhi .L3968
|
|
bl ftl_write_commit
|
|
.L3968:
|
|
ldrh w1, [x19, 26]
|
|
ldrh w0, [x19, 24]
|
|
cmp w1, w0
|
|
bcc .L3966
|
|
mov w0, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
bl ftl_write_commit
|
|
bl ftl_flush
|
|
adrp x0, .LANCHOR11
|
|
ldrh w2, [x19]
|
|
mov x19, x0
|
|
ldr x1, [x0, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x1, x2, lsl 1]
|
|
cbz w1, .L3970
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
mov w2, 3507
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L3970:
|
|
ldrh w0, [x21, #:lo12:.LANCHOR70]
|
|
ldr x2, [x19, #:lo12:.LANCHOR11]
|
|
ubfiz x1, x0, 1, 16
|
|
ldrh w1, [x2, x1]
|
|
cbnz w1, .L3971
|
|
bl ftl_free_sblk
|
|
b .L3945
|
|
.L3971:
|
|
mov w2, 1
|
|
mov w1, 0
|
|
bl gc_add_sblk
|
|
b .L3945
|
|
.L3967:
|
|
ldrh w0, [x19, 2194]
|
|
cbz w0, .L3972
|
|
strh wzr, [x19, 2194]
|
|
bl sblk_wait_write_queue_completed
|
|
bl gc_write_completed
|
|
ldr w0, [x19, 2196]
|
|
adrp x19, .LANCHOR110
|
|
cmn w0, #1
|
|
beq .L3973
|
|
adrp x1, .LANCHOR124
|
|
ldrb w1, [x1, #:lo12:.LANCHOR124]
|
|
cbnz w1, .L3974
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbz w1, .L3975
|
|
.L3974:
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldr w2, [x1, 156]
|
|
mov w1, 20041
|
|
movk w1, 0x444b, lsl 16
|
|
cmp w2, w1
|
|
bne .L3975
|
|
adrp x1, .LANCHOR74
|
|
ldrh w3, [x1, #:lo12:.LANCHOR74]
|
|
adrp x1, .LANCHOR31
|
|
ldrb w2, [x1, #:lo12:.LANCHOR31]
|
|
mov w1, 24
|
|
lsr w0, w0, w3
|
|
sub w1, w1, w2
|
|
sub w2, w1, w3
|
|
mov w1, 1
|
|
lsl w1, w1, w2
|
|
sub w1, w1, #1
|
|
and w0, w1, w0
|
|
adrp x1, .LANCHOR75
|
|
ldrb w1, [x1, #:lo12:.LANCHOR75]
|
|
udiv w0, w0, w1
|
|
adrp x1, .LANCHOR9
|
|
ldr x2, [x1, #:lo12:.LANCHOR9]
|
|
lsl x0, x0, 2
|
|
add x4, x2, x0
|
|
ldrb w1, [x4, 2]
|
|
tbz x1, 3, .L3973
|
|
adrp x5, .LANCHOR98
|
|
ldrh w3, [x22, #:lo12:.LANCHOR103]
|
|
ldrh w5, [x5, #:lo12:.LANCHOR98]
|
|
add w3, w3, 8
|
|
cmp w3, w5
|
|
bge .L3973
|
|
and w1, w1, -25
|
|
strb w1, [x4, 2]
|
|
adrp x1, .LANCHOR10
|
|
ldr w3, [x2, x0]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR10]
|
|
ldrh w4, [x2, x0]
|
|
ubfx x3, x3, 11, 8
|
|
and w5, w4, 2047
|
|
mul w1, w1, w3
|
|
lsr w3, w3, 3
|
|
add w1, w1, w1, lsl 1
|
|
add w1, w5, w1, lsr 2
|
|
bfi w4, w1, 0, 11
|
|
strh w4, [x2, x0]
|
|
ldr w1, [x2, x0]
|
|
bfi w1, w3, 11, 8
|
|
str w1, [x2, x0]
|
|
.L3973:
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
add x22, x21, :lo12:.LANCHOR70
|
|
strh wzr, [x22, 56]
|
|
ldrh w0, [x0, 80]
|
|
str wzr, [x22, 2196]
|
|
bl ftl_free_sblk
|
|
ldr x1, [x23, #:lo12:.LANCHOR12]
|
|
mov w0, -1
|
|
ldr x2, [x19, #:lo12:.LANCHOR110]
|
|
strh w0, [x1, 80]
|
|
strh w0, [x2, 126]
|
|
strh w0, [x1, 130]
|
|
ldr x0, [x22, 8]
|
|
cbz x0, .L3976
|
|
bl zbuf_free
|
|
.L3976:
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
str xzr, [x21, 8]
|
|
bl flt_sys_flush
|
|
mov w2, 3567
|
|
strb wzr, [x20, #:lo12:.LANCHOR156]
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L3988
|
|
.L3975:
|
|
bl ftl_mask_bad_block
|
|
b .L3973
|
|
.L3972:
|
|
ldrh w0, [x27, 6]
|
|
ldrh w1, [x19, 26]
|
|
cmp w0, 1
|
|
ldrh w0, [x19, 24]
|
|
bls .L3977
|
|
cmp w1, w0
|
|
bcc .L3966
|
|
mov w0, 1
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
ldrh w0, [x19, 56]
|
|
add w1, w0, 1
|
|
strh w1, [x19, 56]
|
|
add x0, x19, x0, sxtw 1
|
|
ldrh w1, [x19]
|
|
strh w1, [x0, 58]
|
|
mov w0, -1
|
|
strh w0, [x19]
|
|
b .L3988
|
|
.L3977:
|
|
mov w2, 5
|
|
strb w2, [x20, #:lo12:.LANCHOR156]
|
|
cmp w1, w0
|
|
bcc .L3978
|
|
ldrh w0, [x19, 56]
|
|
add w1, w0, 1
|
|
strh w1, [x19, 56]
|
|
add x0, x19, x0, sxtw 1
|
|
ldrh w1, [x19]
|
|
strh w1, [x0, 58]
|
|
mov w0, -1
|
|
strh w0, [x19]
|
|
.L3978:
|
|
bl ftl_flush
|
|
bl sblk_wait_write_queue_completed
|
|
bl gc_write_completed
|
|
ldr x0, [x23, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x26, 80]
|
|
strh w1, [x0, 128]
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
adrp x1, .LANCHOR94
|
|
add x0, x21, :lo12:.LANCHOR70
|
|
adrp x2, .LANCHOR35
|
|
ldrh w1, [x1, #:lo12:.LANCHOR94]
|
|
strh w1, [x0, 18]
|
|
adrp x1, .LANCHOR78
|
|
ldrb w2, [x2, #:lo12:.LANCHOR35]
|
|
strh wzr, [x0, 16]
|
|
ldrb w1, [x1, #:lo12:.LANCHOR78]
|
|
strh w1, [x0, 20]
|
|
cbz w2, .L3979
|
|
adrp x2, .LANCHOR85
|
|
ldrh w2, [x2, #:lo12:.LANCHOR85]
|
|
strh w2, [x0, 18]
|
|
mov w2, 1
|
|
strh w2, [x0, 20]
|
|
.L3979:
|
|
cmp w1, 2
|
|
bne .L3981
|
|
add x0, x21, :lo12:.LANCHOR70
|
|
ldrh w1, [x0, 18]
|
|
ubfiz w1, w1, 1, 15
|
|
strh w1, [x0, 18]
|
|
adrp x1, .LANCHOR80
|
|
ldrb w1, [x1, #:lo12:.LANCHOR80]
|
|
cbnz w1, .L3981
|
|
mov w1, 1
|
|
strh w1, [x0, 20]
|
|
.L3981:
|
|
add x21, x21, :lo12:.LANCHOR70
|
|
strh wzr, [x21, 22]
|
|
b .L3988
|
|
.L3984:
|
|
ldrh w1, [x24, 16]
|
|
ldrh w0, [x24, 18]
|
|
cmp w1, w0
|
|
bcc .L3985
|
|
mov w0, 6
|
|
strb w0, [x20, #:lo12:.LANCHOR156]
|
|
ldr x0, [x24, 8]
|
|
bl zbuf_free
|
|
str xzr, [x24, 8]
|
|
b .L3988
|
|
.L3985:
|
|
cmp w21, 15
|
|
bls .L3881
|
|
cmp w25, 1
|
|
bne .L3988
|
|
add w22, w22, 1
|
|
and w22, w22, 255
|
|
cmp w22, 4
|
|
bls .L3881
|
|
b .L3988
|
|
.L3880:
|
|
bl gc_update_l2p_map_new
|
|
mov w19, -1
|
|
bl gc_free_src_blk
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
strh w19, [x26, 80]
|
|
bl ftl_ext_info_flush
|
|
adrp x0, .LANCHOR110
|
|
ldr x0, [x0, #:lo12:.LANCHOR110]
|
|
strh w19, [x0, 126]
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
.L4075:
|
|
strb wzr, [x20, #:lo12:.LANCHOR156]
|
|
b .L3988
|
|
.L3962:
|
|
mov w2, 3430
|
|
adrp x1, .LANCHOR237
|
|
adrp x0, .LC0
|
|
add x1, x1, :lo12:.LANCHOR237
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
b .L3987
|
|
.size zftl_do_gc, .-zftl_do_gc
|
|
.section .text.zftl_init,"ax",@progbits
|
|
.align 2
|
|
.global zftl_init
|
|
.type zftl_init, %function
|
|
zftl_init:
|
|
stp x29, x30, [sp, -112]!
|
|
adrp x1, .LANCHOR65
|
|
mov w0, -1
|
|
add x29, sp, 0
|
|
strb w0, [x1, #:lo12:.LANCHOR65]
|
|
adrp x1, .LANCHOR66
|
|
stp x21, x22, [sp, 32]
|
|
adrp x22, .LANCHOR94
|
|
strb wzr, [x1, #:lo12:.LANCHOR66]
|
|
adrp x1, .LANCHOR133
|
|
stp x19, x20, [sp, 16]
|
|
adrp x21, .LANCHOR79
|
|
strb w0, [x1, #:lo12:.LANCHOR133]
|
|
adrp x1, .LANCHOR134
|
|
stp x23, x24, [sp, 48]
|
|
adrp x20, .LANCHOR221
|
|
strb wzr, [x1, #:lo12:.LANCHOR134]
|
|
adrp x1, .LANCHOR182
|
|
stp x25, x26, [sp, 64]
|
|
adrp x23, .LANCHOR8
|
|
strb w0, [x1, #:lo12:.LANCHOR182]
|
|
adrp x0, .LANCHOR129
|
|
mov w1, -1
|
|
stp x27, x28, [sp, 80]
|
|
strb wzr, [x0, #:lo12:.LANCHOR129]
|
|
adrp x0, .LANCHOR238
|
|
str w1, [x0, #:lo12:.LANCHOR238]
|
|
adrp x1, .LC242
|
|
adrp x0, .LC101
|
|
add x1, x1, :lo12:.LC242
|
|
add x0, x0, :lo12:.LC101
|
|
bl printf
|
|
adrp x1, .LANCHOR32
|
|
add x1, x1, :lo12:.LANCHOR32
|
|
adrp x0, .LANCHOR78
|
|
adrp x2, .LANCHOR131
|
|
adrp x3, .LANCHOR112
|
|
adrp x4, .LANCHOR75
|
|
ldrb w7, [x1, 12]
|
|
strb w7, [x0, #:lo12:.LANCHOR78]
|
|
ldrb w0, [x1, 9]
|
|
strb w0, [x2, #:lo12:.LANCHOR131]
|
|
adrp x2, .LANCHOR85
|
|
ldrh w5, [x1, 10]
|
|
strh w5, [x2, #:lo12:.LANCHOR85]
|
|
adrp x2, .LANCHOR23
|
|
ldrh w8, [x1, 14]
|
|
ubfiz w6, w0, 9, 7
|
|
ldrb w2, [x2, #:lo12:.LANCHOR23]
|
|
sdiv w11, w5, w7
|
|
strb w2, [x3, #:lo12:.LANCHOR112]
|
|
ldrb w3, [x1, 13]
|
|
adrp x1, .LANCHOR2
|
|
strb w3, [x4, #:lo12:.LANCHOR75]
|
|
ldrh w4, [x1, #:lo12:.LANCHOR2]
|
|
adrp x1, .LANCHOR111
|
|
strh w11, [x22, #:lo12:.LANCHOR94]
|
|
mul w2, w2, w3
|
|
strh w4, [x1, #:lo12:.LANCHOR111]
|
|
strh w8, [x23, #:lo12:.LANCHOR8]
|
|
mov w3, 1
|
|
and w2, w2, 255
|
|
strh w6, [x20, #:lo12:.LANCHOR221]
|
|
strb w2, [x21, #:lo12:.LANCHOR79]
|
|
mov w1, 0
|
|
.L4078:
|
|
cmp w4, w3
|
|
bcs .L4079
|
|
mul w10, w0, w5
|
|
adrp x3, .LANCHOR74
|
|
sub w1, w1, #1
|
|
mov w4, 0
|
|
strh w1, [x3, #:lo12:.LANCHOR74]
|
|
mov w1, 1
|
|
mul w3, w8, w10
|
|
lsr w12, w3, 21
|
|
.L4080:
|
|
cmp w12, w1
|
|
bcs .L4081
|
|
mov w1, 57344
|
|
sub w4, w4, #1
|
|
movk w1, 0x1c, lsl 16
|
|
mul w3, w3, w2
|
|
adrp x28, .LANCHOR128
|
|
sub w12, w6, #1
|
|
mul w1, w2, w1
|
|
adrp x24, .LANCHOR202
|
|
mul w11, w11, w2
|
|
adrp x27, .LANCHOR240
|
|
mul w10, w10, w2
|
|
adrp x26, .LANCHOR152
|
|
lsl w1, w1, w4
|
|
adrp x4, .LANCHOR67
|
|
sub w10, w10, #1
|
|
adrp x25, .LANCHOR98
|
|
str w1, [x4, #:lo12:.LANCHOR67]
|
|
adrp x4, .LANCHOR239
|
|
lsr w8, w8, 4
|
|
strh w8, [x25, #:lo12:.LANCHOR98]
|
|
str w3, [x4, #:lo12:.LANCHOR239]
|
|
add w3, w1, 24576
|
|
str w3, [x27, #:lo12:.LANCHOR240]
|
|
cmp w8, 79
|
|
udiv w0, w3, w0
|
|
udiv w3, w3, w10
|
|
str w0, [x28, #:lo12:.LANCHOR128]
|
|
add w0, w12, w0, lsl 2
|
|
add w3, w3, 8
|
|
udiv w0, w0, w6
|
|
strh w0, [x24, #:lo12:.LANCHOR202]
|
|
ubfiz w0, w0, 4, 16
|
|
sdiv w0, w0, w11
|
|
strh w0, [x26, #:lo12:.LANCHOR152]
|
|
adrp x0, .LANCHOR101
|
|
str x0, [x29, 104]
|
|
strh w3, [x0, #:lo12:.LANCHOR101]
|
|
bhi .L4082
|
|
mov w0, 80
|
|
strh w0, [x25, #:lo12:.LANCHOR98]
|
|
.L4082:
|
|
adrp x12, .LANCHOR126
|
|
mov w0, 2000
|
|
adrp x11, .LANCHOR125
|
|
adrp x3, .LANCHOR149
|
|
strh w0, [x12, #:lo12:.LANCHOR126]
|
|
mov w0, 50
|
|
adrp x8, .LANCHOR150
|
|
strh w0, [x11, #:lo12:.LANCHOR125]
|
|
mov w0, 256
|
|
strh w0, [x3, #:lo12:.LANCHOR149]
|
|
mov w0, 48
|
|
strh w0, [x8, #:lo12:.LANCHOR150]
|
|
adrp x0, .LANCHOR10
|
|
mov w10, 32
|
|
cmp w7, 2
|
|
mov x13, x11
|
|
strh w10, [x0, #:lo12:.LANCHOR10]
|
|
mov x7, x12
|
|
mov x14, x8
|
|
beq .L4083
|
|
adrp x15, .LANCHOR83
|
|
ldrb w15, [x15, #:lo12:.LANCHOR83]
|
|
cbz w15, .L4084
|
|
.L4083:
|
|
mov w8, 150
|
|
strh w8, [x13, #:lo12:.LANCHOR125]
|
|
mov w8, 64
|
|
strh w8, [x14, #:lo12:.LANCHOR150]
|
|
mov w8, 12
|
|
strh w8, [x0, #:lo12:.LANCHOR10]
|
|
adrp x8, .LANCHOR0
|
|
ldrb w8, [x8, #:lo12:.LANCHOR0]
|
|
cbnz w8, .L4085
|
|
mov w8, 4
|
|
strh w8, [x0, #:lo12:.LANCHOR10]
|
|
mov w0, 600
|
|
strh w0, [x7, #:lo12:.LANCHOR126]
|
|
mov w0, 128
|
|
strh w0, [x3, #:lo12:.LANCHOR149]
|
|
.L4085:
|
|
adrp x0, .LANCHOR36
|
|
ldrb w0, [x0, #:lo12:.LANCHOR36]
|
|
cbz w0, .L4087
|
|
mov w0, 200
|
|
strh w0, [x13, #:lo12:.LANCHOR125]
|
|
mov w0, 2000
|
|
strh w0, [x7, #:lo12:.LANCHOR126]
|
|
.L4087:
|
|
adrp x0, .LANCHOR122
|
|
mul w2, w5, w2
|
|
mov w3, 1
|
|
str wzr, [x0, #:lo12:.LANCHOR122]
|
|
adrp x0, .LANCHOR224
|
|
cmp w6, w2, lsl 2
|
|
strb w3, [x0, #:lo12:.LANCHOR224]
|
|
bge .L4089
|
|
mov w2, 2
|
|
strb w2, [x0, #:lo12:.LANCHOR224]
|
|
.L4089:
|
|
adrp x19, .LANCHOR19
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4090
|
|
str x4, [x29, 96]
|
|
adrp x0, .LC243
|
|
add x0, x0, :lo12:.LC243
|
|
bl printf
|
|
ldr x4, [x29, 96]
|
|
.L4090:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4091
|
|
ldr w1, [x4, #:lo12:.LANCHOR239]
|
|
adrp x0, .LC244
|
|
add x0, x0, :lo12:.LC244
|
|
bl printf
|
|
.L4091:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4092
|
|
ldr w1, [x28, #:lo12:.LANCHOR128]
|
|
adrp x0, .LC245
|
|
add x0, x0, :lo12:.LC245
|
|
bl printf
|
|
.L4092:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4093
|
|
ldr w1, [x27, #:lo12:.LANCHOR240]
|
|
adrp x0, .LC246
|
|
add x0, x0, :lo12:.LC246
|
|
bl printf
|
|
.L4093:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4094
|
|
ldrh w1, [x24, #:lo12:.LANCHOR202]
|
|
adrp x0, .LC247
|
|
add x0, x0, :lo12:.LC247
|
|
bl printf
|
|
.L4094:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4095
|
|
ldrh w1, [x20, #:lo12:.LANCHOR221]
|
|
adrp x0, .LC248
|
|
add x0, x0, :lo12:.LC248
|
|
bl printf
|
|
.L4095:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4096
|
|
ldrh w1, [x26, #:lo12:.LANCHOR152]
|
|
adrp x0, .LC249
|
|
add x0, x0, :lo12:.LC249
|
|
bl printf
|
|
.L4096:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4097
|
|
ldrh w1, [x25, #:lo12:.LANCHOR98]
|
|
adrp x0, .LC250
|
|
add x0, x0, :lo12:.LC250
|
|
bl printf
|
|
.L4097:
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4098
|
|
ldr x0, [x29, 104]
|
|
ldrh w1, [x0, #:lo12:.LANCHOR101]
|
|
adrp x0, .LC251
|
|
add x0, x0, :lo12:.LC251
|
|
bl printf
|
|
.L4098:
|
|
bl zbuf_init
|
|
adrp x25, .LANCHOR197
|
|
mov w0, 16384
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR192
|
|
str x0, [x1, #:lo12:.LANCHOR192]
|
|
mov w0, 16384
|
|
bl ftl_malloc
|
|
str x0, [x25, #:lo12:.LANCHOR197]
|
|
mov w0, 16384
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR187
|
|
str x0, [x1, #:lo12:.LANCHOR187]
|
|
mov w0, 6
|
|
ldrh w1, [x23, #:lo12:.LANCHOR8]
|
|
mul w0, w1, w0
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR4
|
|
str x0, [x1, #:lo12:.LANCHOR4]
|
|
ldrb w1, [x21, #:lo12:.LANCHOR79]
|
|
ldrh w0, [x22, #:lo12:.LANCHOR94]
|
|
mul w0, w0, w1
|
|
lsl w0, w0, 2
|
|
bl ftl_malloc
|
|
adrp x1, .LANCHOR118
|
|
ldr x2, [x25, #:lo12:.LANCHOR197]
|
|
adrp x25, .LANCHOR12
|
|
str x0, [x1, #:lo12:.LANCHOR118]
|
|
adrp x0, .LANCHOR117
|
|
ldrh w1, [x22, #:lo12:.LANCHOR94]
|
|
str x2, [x0, #:lo12:.LANCHOR117]
|
|
ldrb w0, [x21, #:lo12:.LANCHOR79]
|
|
mul w1, w1, w0
|
|
lsl w0, w1, 1
|
|
adrp x1, .LANCHOR11
|
|
add x3, x2, x0, sxtw 2
|
|
str x3, [x1, #:lo12:.LANCHOR11]
|
|
ldrh w1, [x23, #:lo12:.LANCHOR8]
|
|
add w1, w0, w1, lsr 1
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
add x1, x2, x1, sxtw 2
|
|
str x1, [x25, #:lo12:.LANCHOR12]
|
|
tbz x0, 12, .L4099
|
|
adrp x0, .LC252
|
|
add x0, x0, :lo12:.LC252
|
|
bl printf
|
|
.L4099:
|
|
ldrh w0, [x22, #:lo12:.LANCHOR94]
|
|
ldrb w21, [x21, #:lo12:.LANCHOR79]
|
|
ldrh w1, [x23, #:lo12:.LANCHOR8]
|
|
ldrh w22, [x24, #:lo12:.LANCHOR202]
|
|
mul w21, w0, w21
|
|
ldr w0, [x19, #:lo12:.LANCHOR19]
|
|
add w21, w1, w21, lsl 2
|
|
lsl w1, w1, 2
|
|
lsl w21, w21, 1
|
|
add w22, w1, w22, lsl 2
|
|
add w21, w21, 632
|
|
add w22, w22, 704
|
|
tbz x0, 12, .L4100
|
|
ldrh w3, [x20, #:lo12:.LANCHOR221]
|
|
adrp x0, .LC253
|
|
mov w2, w22
|
|
mov w1, w21
|
|
add x0, x0, :lo12:.LC253
|
|
bl printf
|
|
.L4100:
|
|
ldrh w0, [x20, #:lo12:.LANCHOR221]
|
|
cmp w21, w0
|
|
bhi .L4101
|
|
cmp w22, w0
|
|
bls .L4102
|
|
.L4101:
|
|
.L4155:
|
|
b .L4155
|
|
.L4079:
|
|
add w1, w1, 1
|
|
lsl w3, w3, 1
|
|
and w1, w1, 65535
|
|
b .L4078
|
|
.L4081:
|
|
add w4, w4, 1
|
|
lsl w1, w1, 1
|
|
and w4, w4, 65535
|
|
b .L4080
|
|
.L4084:
|
|
adrp x0, .LANCHOR35
|
|
ldrb w0, [x0, #:lo12:.LANCHOR35]
|
|
cbz w0, .L4087
|
|
mov w0, 1200
|
|
strh w10, [x11, #:lo12:.LANCHOR125]
|
|
strh w0, [x12, #:lo12:.LANCHOR126]
|
|
strh w10, [x8, #:lo12:.LANCHOR150]
|
|
b .L4087
|
|
.L4102:
|
|
bl sblk_init
|
|
bl ftl_info_blk_init
|
|
cmn w0, #1
|
|
beq .L4077
|
|
bl ftl_ext_info_init
|
|
adrp x19, .LANCHOR110
|
|
bl gc_init
|
|
mov w0, 1
|
|
bl pm_init
|
|
bl lpa_rebuild_hash
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
mov x1, 0
|
|
add x0, x0, 16
|
|
bl ftl_open_sblk_recovery
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
add x1, x0, 16
|
|
add x0, x0, 48
|
|
bl ftl_open_sblk_recovery
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 8]
|
|
add w0, w0, 16
|
|
str w0, [x1, 8]
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
add x0, x0, 16
|
|
bl ftl_info_data_recovery
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
add x0, x0, 48
|
|
bl ftl_info_data_recovery
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
add x0, x0, 80
|
|
bl ftl_info_data_recovery
|
|
bl gc_recovery
|
|
bl pm_flush
|
|
mov w0, 1
|
|
bl ftl_total_vpn_update
|
|
adrp x0, .LANCHOR195
|
|
ldrb w0, [x0, #:lo12:.LANCHOR195]
|
|
cbz w0, .L4104
|
|
ldr x1, [x19, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 68]
|
|
add w0, w0, 1
|
|
str w0, [x1, 68]
|
|
.L4104:
|
|
bl ftl_ext_info_flush
|
|
mov w0, 0
|
|
bl ftl_info_flush
|
|
bl print_ftl_debug_info
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x0, 124]
|
|
cbnz w0, .L4111
|
|
adrp x0, .LANCHOR103
|
|
adrp x1, .LANCHOR107
|
|
ldrh w0, [x0, #:lo12:.LANCHOR103]
|
|
ldrh w1, [x1, #:lo12:.LANCHOR107]
|
|
add w0, w0, w1
|
|
cmp w0, 7
|
|
ble .L4111
|
|
.L4107:
|
|
mov w0, 0
|
|
.L4077:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L4111:
|
|
adrp x20, .LANCHOR103
|
|
adrp x21, .LANCHOR107
|
|
add x20, x20, :lo12:.LANCHOR103
|
|
add x21, x21, :lo12:.LANCHOR107
|
|
mov w19, 16384
|
|
.L4108:
|
|
mov w1, 1
|
|
mov w0, 0
|
|
bl zftl_do_gc
|
|
mov w1, 1
|
|
mov w0, w1
|
|
bl zftl_do_gc
|
|
ldr x0, [x25, #:lo12:.LANCHOR12]
|
|
ldrh w1, [x0, 124]
|
|
cbnz w1, .L4106
|
|
ldrh w1, [x0, 80]
|
|
mov w0, 65535
|
|
cmp w1, w0
|
|
bne .L4106
|
|
ldrh w0, [x20]
|
|
ldrh w1, [x21]
|
|
add w0, w0, w1
|
|
cmp w0, 7
|
|
bgt .L4107
|
|
.L4106:
|
|
subs w19, w19, #1
|
|
bne .L4108
|
|
b .L4107
|
|
.size zftl_init, .-zftl_init
|
|
.section .text.rk_ftl_init,"ax",@progbits
|
|
.align 2
|
|
.global rk_ftl_init
|
|
.type rk_ftl_init, %function
|
|
rk_ftl_init:
|
|
stp x29, x30, [sp, -32]!
|
|
add x29, sp, 0
|
|
str x19, [sp, 16]
|
|
bl nand_flash_init
|
|
cbnz w0, .L4159
|
|
bl zftl_init
|
|
.L4159:
|
|
mov w19, w0
|
|
bl idb_init
|
|
mov w1, w19
|
|
adrp x0, .LC254
|
|
add x0, x0, :lo12:.LC254
|
|
bl printf
|
|
mov w0, w19
|
|
ldr x19, [sp, 16]
|
|
ldp x29, x30, [sp], 32
|
|
ret
|
|
.size rk_ftl_init, .-rk_ftl_init
|
|
.section .text.zftl_write,"ax",@progbits
|
|
.align 2
|
|
.global zftl_write
|
|
.type zftl_write, %function
|
|
zftl_write:
|
|
stp x29, x30, [sp, -112]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, w0
|
|
adrp x0, .LANCHOR19
|
|
stp x21, x22, [sp, 32]
|
|
stp x25, x26, [sp, 64]
|
|
mov w20, w1
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
mov w21, w2
|
|
stp x23, x24, [sp, 48]
|
|
mov x25, x3
|
|
stp x27, x28, [sp, 80]
|
|
tbz x0, 12, .L4162
|
|
ldr w4, [x25]
|
|
mov w3, w2
|
|
adrp x0, .LC255
|
|
mov w2, w1
|
|
add x0, x0, :lo12:.LC255
|
|
mov w1, w19
|
|
bl printf
|
|
.L4162:
|
|
cbnz w19, .L4163
|
|
adrp x0, .LANCHOR67
|
|
mov w19, 24576
|
|
ldr w0, [x0, #:lo12:.LANCHOR67]
|
|
.L4164:
|
|
cmp w0, w20
|
|
ccmp w0, w21, 0, hi
|
|
bcc .L4182
|
|
add w1, w20, w21
|
|
cmp w0, w1
|
|
bcc .L4182
|
|
adrp x26, .LANCHOR131
|
|
add w19, w19, w20
|
|
sub w22, w21, #1
|
|
adrp x27, .LANCHOR66
|
|
ldrb w0, [x26, #:lo12:.LANCHOR131]
|
|
add w22, w22, w19
|
|
adrp x28, .LANCHOR57
|
|
add x27, x27, :lo12:.LANCHOR66
|
|
add x28, x28, :lo12:.LANCHOR57
|
|
udiv w24, w19, w0
|
|
udiv w22, w22, w0
|
|
add x0, x26, :lo12:.LANCHOR131
|
|
str x0, [x29, 104]
|
|
mov w20, w24
|
|
sub w23, w22, w24
|
|
add w23, w23, 1
|
|
.L4166:
|
|
cbnz w23, .L4175
|
|
bl ftl_write_commit
|
|
adrp x20, .LANCHOR103
|
|
bl ftl_flush
|
|
adrp x19, .LANCHOR107
|
|
mov w1, 1
|
|
mov w0, 0
|
|
bl zftl_do_gc
|
|
adrp x0, .LANCHOR12
|
|
ldr x0, [x0, #:lo12:.LANCHOR12]
|
|
ldrh w0, [x0, 124]
|
|
cbnz w0, .L4176
|
|
ldrh w0, [x20, #:lo12:.LANCHOR103]
|
|
ldrh w1, [x19, #:lo12:.LANCHOR107]
|
|
add w0, w0, w1
|
|
cmp w0, 11
|
|
bgt .L4177
|
|
.L4176:
|
|
mov w1, 1
|
|
mov w0, 0
|
|
bl zftl_do_gc
|
|
.L4177:
|
|
add x20, x20, :lo12:.LANCHOR103
|
|
add x19, x19, :lo12:.LANCHOR107
|
|
.L4178:
|
|
ldrh w0, [x20]
|
|
ldrh w1, [x19]
|
|
add w0, w0, w1
|
|
cmp w0, 7
|
|
ble .L4179
|
|
mov w0, 0
|
|
.L4161:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 112
|
|
ret
|
|
.L4163:
|
|
cmp w19, 3
|
|
bhi .L4182
|
|
lsl w19, w19, 13
|
|
mov w0, 8192
|
|
b .L4164
|
|
.L4175:
|
|
ldrb w0, [x27]
|
|
cbz w0, .L4167
|
|
ldrb w0, [x28]
|
|
cmp w0, 2
|
|
bhi .L4167
|
|
bl ftl_write_commit
|
|
.L4167:
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x26, x0
|
|
cbnz x0, .L4168
|
|
bl ftl_write_commit
|
|
b .L4166
|
|
.L4168:
|
|
strb wzr, [x0, 57]
|
|
cmp w20, w24
|
|
ldr x0, [x29, 104]
|
|
ccmp w20, w22, 4, ne
|
|
ldrb w0, [x0]
|
|
strb w0, [x26, 56]
|
|
bne .L4171
|
|
cmp w20, w24
|
|
bne .L4172
|
|
udiv w1, w19, w0
|
|
msub w1, w1, w0, w19
|
|
and w1, w1, 255
|
|
strb w1, [x26, 57]
|
|
sub w0, w0, w1
|
|
and w0, w0, 255
|
|
cmp w21, w0
|
|
csel w0, w21, w0, cc
|
|
.L4190:
|
|
strb w0, [x26, 56]
|
|
.L4171:
|
|
ldr x4, [x26, 8]
|
|
mov x1, x25
|
|
ldrb w0, [x26, 57]
|
|
sub w23, w23, #1
|
|
ldrb w2, [x26, 56]
|
|
ubfiz x0, x0, 9, 8
|
|
lsl w2, w2, 9
|
|
add x0, x4, x0
|
|
bl ftl_memcpy
|
|
adrp x0, .LANCHOR110
|
|
ldr x1, [x0, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 8]
|
|
str w20, [x26, 36]
|
|
add w20, w20, 1
|
|
add w2, w0, 1
|
|
str w2, [x1, 8]
|
|
str w0, [x26, 32]
|
|
mov x0, x26
|
|
bl ftl_write_buf
|
|
ldrb w0, [x26, 56]
|
|
ubfiz x0, x0, 9, 8
|
|
add x25, x25, x0
|
|
b .L4166
|
|
.L4172:
|
|
add w1, w19, w21
|
|
msub w0, w0, w20, w1
|
|
b .L4190
|
|
.L4179:
|
|
mov w1, 1
|
|
mov w0, 0
|
|
bl zftl_do_gc
|
|
mov w1, 1
|
|
mov w0, w1
|
|
bl zftl_do_gc
|
|
b .L4178
|
|
.L4182:
|
|
mov w0, -1
|
|
b .L4161
|
|
.size zftl_write, .-zftl_write
|
|
.section .text.zftl_sys_write,"ax",@progbits
|
|
.align 2
|
|
.global zftl_sys_write
|
|
.type zftl_sys_write, %function
|
|
zftl_sys_write:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
mov w1, w0
|
|
mov w0, 2
|
|
b zftl_write
|
|
.size zftl_sys_write, .-zftl_sys_write
|
|
.section .text.StorageSysDataStore,"ax",@progbits
|
|
.align 2
|
|
.global StorageSysDataStore
|
|
.type StorageSysDataStore, %function
|
|
StorageSysDataStore:
|
|
mov x3, x1
|
|
mov w2, 1
|
|
mov w1, w0
|
|
mov w0, 2
|
|
b zftl_write
|
|
.size StorageSysDataStore, .-StorageSysDataStore
|
|
.section .text.FlashBootVendorWrite,"ax",@progbits
|
|
.align 2
|
|
.global FlashBootVendorWrite
|
|
.type FlashBootVendorWrite, %function
|
|
FlashBootVendorWrite:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
add w1, w0, 512
|
|
mov w0, 2
|
|
b zftl_write
|
|
.size FlashBootVendorWrite, .-FlashBootVendorWrite
|
|
.section .text.ftl_write,"ax",@progbits
|
|
.align 2
|
|
.global ftl_write
|
|
.type ftl_write, %function
|
|
ftl_write:
|
|
stp x29, x30, [sp, -48]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, w2
|
|
stp x21, x22, [sp, 32]
|
|
mov x20, x3
|
|
mov w22, w1
|
|
ands w21, w0, 255
|
|
bne .L4195
|
|
mov w3, w2
|
|
mov w0, 0
|
|
mov x2, x20
|
|
bl idb_write_data
|
|
.L4195:
|
|
mov x3, x20
|
|
mov w2, w19
|
|
mov w1, w22
|
|
mov w0, w21
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
b zftl_write
|
|
.size ftl_write, .-ftl_write
|
|
.section .text.ftl_vendor_write,"ax",@progbits
|
|
.align 2
|
|
.global ftl_vendor_write
|
|
.type ftl_vendor_write, %function
|
|
ftl_vendor_write:
|
|
mov x3, x2
|
|
mov w2, w1
|
|
add w1, w0, 512
|
|
mov w0, 2
|
|
b zftl_write
|
|
.size ftl_vendor_write, .-ftl_vendor_write
|
|
.section .text.zftl_vendor_write,"ax",@progbits
|
|
.align 2
|
|
.global zftl_vendor_write
|
|
.type zftl_vendor_write, %function
|
|
zftl_vendor_write:
|
|
b ftl_vendor_write
|
|
.size zftl_vendor_write, .-zftl_vendor_write
|
|
.section .text.zftl_discard,"ax",@progbits
|
|
.align 2
|
|
.global zftl_discard
|
|
.type zftl_discard, %function
|
|
zftl_discard:
|
|
stp x29, x30, [sp, -128]!
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
mov w19, w1
|
|
adrp x1, .LANCHOR67
|
|
stp x21, x22, [sp, 32]
|
|
stp x23, x24, [sp, 48]
|
|
ldr w1, [x1, #:lo12:.LANCHOR67]
|
|
stp x25, x26, [sp, 64]
|
|
stp x27, x28, [sp, 80]
|
|
cmp w0, w1
|
|
ccmp w19, w1, 2, cc
|
|
bhi .L4221
|
|
add w2, w0, w19
|
|
cmp w1, w2
|
|
bcc .L4221
|
|
adrp x24, .LANCHOR241
|
|
add w22, w0, 24576
|
|
adrp x0, .LANCHOR19
|
|
str x0, [x29, 104]
|
|
ldr w1, [x24, #:lo12:.LANCHOR241]
|
|
ldr w2, [x0, #:lo12:.LANCHOR19]
|
|
add w1, w19, w1
|
|
str w1, [x24, #:lo12:.LANCHOR241]
|
|
tbz x2, 12, .L4201
|
|
adrp x0, .LC256
|
|
mov w4, 0
|
|
mov w3, w19
|
|
mov w2, w22
|
|
add x0, x0, :lo12:.LC256
|
|
bl printf
|
|
.L4201:
|
|
adrp x23, .LANCHOR110
|
|
adrp x26, .LANCHOR131
|
|
ldr x0, [x23, #:lo12:.LANCHOR110]
|
|
ldr w27, [x0, 8]
|
|
add w1, w27, 1
|
|
str w1, [x0, 8]
|
|
bl ftl_write_commit
|
|
bl ftl_flush
|
|
ldrb w21, [x26, #:lo12:.LANCHOR131]
|
|
udiv w20, w22, w21
|
|
msub w25, w20, w21, w22
|
|
cbz w25, .L4202
|
|
sub w21, w21, w25
|
|
mov w0, w20
|
|
cmp w21, w19
|
|
csel w21, w21, w19, ls
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 120]
|
|
cmn w0, #1
|
|
bne .L4203
|
|
mov w2, 0
|
|
add x1, x29, 120
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
.L4203:
|
|
ldr w0, [x29, 120]
|
|
and w28, w21, 65535
|
|
cmn w0, #1
|
|
beq .L4205
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x3, x0
|
|
cbz x0, .L4205
|
|
strb w25, [x0, 57]
|
|
ubfiz x25, x25, 9, 25
|
|
strb w21, [x0, 56]
|
|
mov w1, 0
|
|
ldr x0, [x0, 8]
|
|
lsl w2, w28, 9
|
|
stp w27, w20, [x3, 32]
|
|
str x3, [x29, 96]
|
|
add x0, x0, x25
|
|
bl ftl_memset
|
|
ldr x3, [x29, 96]
|
|
mov x0, x3
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
ldr x1, [x23, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 76]
|
|
add w0, w0, 1
|
|
str w0, [x1, 76]
|
|
.L4205:
|
|
add w20, w20, 1
|
|
sub w19, w19, w28
|
|
.L4202:
|
|
cbz w19, .L4207
|
|
bl ftl_flush
|
|
.L4207:
|
|
adrp x25, .LANCHOR74
|
|
add x21, x26, :lo12:.LANCHOR131
|
|
add x25, x25, :lo12:.LANCHOR74
|
|
mov w0, -1
|
|
str w0, [x29, 124]
|
|
.L4208:
|
|
ldrb w0, [x21]
|
|
cmp w19, w0
|
|
bcs .L4213
|
|
cbz w19, .L4215
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 120]
|
|
cmn w0, #1
|
|
bne .L4216
|
|
mov w2, 0
|
|
add x1, x29, 120
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
.L4216:
|
|
ldr w0, [x29, 120]
|
|
cmn w0, #1
|
|
beq .L4215
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x21, x0
|
|
cbz x0, .L4215
|
|
strb wzr, [x0, 57]
|
|
strb w19, [x0, 56]
|
|
stp w27, w20, [x21, 32]
|
|
ldrb w0, [x26, #:lo12:.LANCHOR131]
|
|
cmp w19, w0
|
|
bcc .L4218
|
|
adrp x1, .LANCHOR242
|
|
adrp x0, .LC0
|
|
mov w2, 1493
|
|
add x1, x1, :lo12:.LANCHOR242
|
|
add x0, x0, :lo12:.LC0
|
|
bl printf
|
|
.L4218:
|
|
ldr x0, [x21, 8]
|
|
lsl w2, w19, 9
|
|
mov w1, 0
|
|
bl ftl_memset
|
|
mov x0, x21
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
ldr x1, [x23, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 76]
|
|
add w0, w0, 1
|
|
str w0, [x1, 76]
|
|
.L4215:
|
|
ldr w1, [x24, #:lo12:.LANCHOR241]
|
|
cmp w1, 8192
|
|
bls .L4222
|
|
ldr x0, [x29, 104]
|
|
ldr w0, [x0, #:lo12:.LANCHOR19]
|
|
tbz x0, 12, .L4219
|
|
adrp x0, .LC256
|
|
mov w4, 0
|
|
mov w3, w19
|
|
mov w2, w22
|
|
add x0, x0, :lo12:.LC256
|
|
bl printf
|
|
.L4219:
|
|
str wzr, [x24, #:lo12:.LANCHOR241]
|
|
bl flt_sys_flush
|
|
adrp x0, .LANCHOR122
|
|
mov w1, 1
|
|
str w1, [x0, #:lo12:.LANCHOR122]
|
|
.L4222:
|
|
mov w0, 0
|
|
b .L4199
|
|
.L4213:
|
|
mov w0, w20
|
|
bl lpa_hash_get_ppa
|
|
str w0, [x29, 120]
|
|
cmn w0, #1
|
|
beq .L4209
|
|
mov w0, 0
|
|
bl buf_alloc
|
|
mov x28, x0
|
|
cbz x0, .L4211
|
|
ldrb w2, [x21]
|
|
mov w1, 0
|
|
strb w2, [x0, 56]
|
|
strb wzr, [x0, 57]
|
|
ldr x0, [x0, 8]
|
|
lsl w2, w2, 9
|
|
stp w27, w20, [x28, 32]
|
|
bl ftl_memset
|
|
mov x0, x28
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
.L4248:
|
|
ldr x1, [x23, #:lo12:.LANCHOR110]
|
|
ldr w0, [x1, 76]
|
|
add w0, w0, 1
|
|
str w0, [x1, 76]
|
|
.L4211:
|
|
ldrb w0, [x21]
|
|
add w20, w20, 1
|
|
sub w19, w19, w0
|
|
b .L4208
|
|
.L4209:
|
|
mov w2, 0
|
|
add x1, x29, 120
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
ldr w0, [x29, 120]
|
|
cmn w0, #1
|
|
beq .L4211
|
|
add x1, x29, 124
|
|
mov w2, 1
|
|
mov w0, w20
|
|
bl pm_log2phys
|
|
adrp x0, .LANCHOR31
|
|
ldrh w2, [x25]
|
|
ldrb w1, [x0, #:lo12:.LANCHOR31]
|
|
mov w0, 24
|
|
sub w0, w0, w1
|
|
sub w1, w0, w2
|
|
mov w0, 1
|
|
lsl w0, w0, w1
|
|
ldr w1, [x29, 120]
|
|
sub w0, w0, #1
|
|
lsr w1, w1, w2
|
|
and w0, w0, w1
|
|
adrp x1, .LANCHOR75
|
|
ldrb w1, [x1, #:lo12:.LANCHOR75]
|
|
udiv w0, w0, w1
|
|
bl ftl_vpn_decrement
|
|
b .L4248
|
|
.L4221:
|
|
mov w0, -1
|
|
.L4199:
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x23, x24, [sp, 48]
|
|
ldp x25, x26, [sp, 64]
|
|
ldp x27, x28, [sp, 80]
|
|
ldp x29, x30, [sp], 128
|
|
ret
|
|
.size zftl_discard, .-zftl_discard
|
|
.section .text.ftl_discard,"ax",@progbits
|
|
.align 2
|
|
.global ftl_discard
|
|
.type ftl_discard, %function
|
|
ftl_discard:
|
|
mov w0, w1
|
|
mov w1, w2
|
|
b zftl_discard
|
|
.size ftl_discard, .-ftl_discard
|
|
.section .text.dump_pm_blk,"ax",@progbits
|
|
.align 2
|
|
.global dump_pm_blk
|
|
.type dump_pm_blk, %function
|
|
dump_pm_blk:
|
|
stp x29, x30, [sp, -48]!
|
|
mov w2, 4
|
|
adrp x0, .LC257
|
|
add x0, x0, :lo12:.LC257
|
|
add x29, sp, 0
|
|
stp x19, x20, [sp, 16]
|
|
adrp x20, .LANCHOR110
|
|
stp x21, x22, [sp, 32]
|
|
adrp x21, .LANCHOR152
|
|
ldr x1, [x20, #:lo12:.LANCHOR110]
|
|
mov w19, 0
|
|
mov w22, 65535
|
|
add x1, x1, 704
|
|
ldrh w3, [x1, -6]
|
|
bl rknand_print_hex
|
|
ldrh w3, [x21, #:lo12:.LANCHOR152]
|
|
add x21, x21, :lo12:.LANCHOR152
|
|
ldr x1, [x20, #:lo12:.LANCHOR110]
|
|
mov w2, 2
|
|
adrp x0, .LC258
|
|
add x0, x0, :lo12:.LC258
|
|
add x1, x1, 416
|
|
bl rknand_print_hex
|
|
.L4251:
|
|
ldrh w0, [x21]
|
|
cmp w0, w19
|
|
bhi .L4253
|
|
ldp x19, x20, [sp, 16]
|
|
ldp x21, x22, [sp, 32]
|
|
ldp x29, x30, [sp], 48
|
|
ret
|
|
.L4253:
|
|
ldr x0, [x20, #:lo12:.LANCHOR110]
|
|
add x0, x0, x19, sxtw 1
|
|
ldrh w0, [x0, 416]
|
|
cmp w0, w22
|
|
beq .L4252
|
|
mov x1, 0
|
|
bl ftl_sblk_dump
|
|
.L4252:
|
|
add w19, w19, 1
|
|
and w19, w19, 65535
|
|
b .L4251
|
|
.size dump_pm_blk, .-dump_pm_blk
|
|
.global g_pm_spare
|
|
.global pm_first_write
|
|
.global pm_force_gc
|
|
.global pm_gc_enable
|
|
.global pm_last_load_ram_id
|
|
.global pm_last_update_ram_id
|
|
.global pm_ram_info
|
|
.global sblk_gc_write_completed_queue_head
|
|
.global sblk_read_completed_queue_head
|
|
.global sblk_write_completed_queue_head
|
|
.global sblk_queue_head
|
|
.global slc_cache_sblk
|
|
.global xlc_data_sblk
|
|
.global slc_data_sblk
|
|
.global free_mix_sblk
|
|
.global free_xlc_sblk
|
|
.global free_slc_sblk
|
|
.global gp_data_xlc_data_head
|
|
.global gp_data_slc_data_head
|
|
.global gp_data_slc_cache_head
|
|
.global gp_free_mix_head
|
|
.global gp_free_xlc_head
|
|
.global gp_free_slc_head
|
|
.global gp_sblk_list_tbl
|
|
.global zftl_print_list_count
|
|
.global ftl_ext_info_first_write
|
|
.global ftl_sys_info_first_write
|
|
.global ftl_low_format_cur_blk
|
|
.global ftl_power_lost_flag
|
|
.global ftl_vpn_update_count
|
|
.global ftl_sblk_update_list_offset
|
|
.global ftl_sblk_update_list
|
|
.global ftl_sblk_vpn_update_id
|
|
.global ftl_sblk_lpa_tbl
|
|
.global ftl_sblk_vpn
|
|
.global gp_ftl_ext_info
|
|
.global gp_ftl_info
|
|
.global gp_blk_info
|
|
.global ftl_tmp_buffer
|
|
.global ftl_ext_info_data_buffer
|
|
.global ftl_info_data_buffer
|
|
.global ftl_tmp_spare
|
|
.global ftl_info_spare
|
|
.global g_ftl_info_blk
|
|
.global tlc_b05a_prog_tbl
|
|
.global tlc_prog_order
|
|
.global gc_des_ppa_tbl
|
|
.global gc_valid_page_ppa
|
|
.global gc_page_buf_id
|
|
.global gc_pre_ppa_tbl
|
|
.global gc_lpa_tbl
|
|
.global g_gc_info
|
|
.global gc_xlc_search_index
|
|
.global gc_xlc_data_index
|
|
.global gc_slc_cache_index
|
|
.global gc_slc_data_index
|
|
.global gc_free_slc_sblk_th
|
|
.global gc_slc_mode_vpn_th
|
|
.global gc_slc_mode_slc_vpn_th
|
|
.global gc_slc_mode_tlc_vpn_th
|
|
.global gc_tlc_mode_tlc_vpn_th
|
|
.global gc_tlc_mode_slc_vpn_th
|
|
.global gc_state
|
|
.global gc_mode
|
|
.global p_read_ahead_ext_buf
|
|
.global discard_sector_count
|
|
.global read_ahead_lpa
|
|
.global _ftl_gc_tag_page_num
|
|
.global read_buf_count
|
|
.global read_buf_head
|
|
.global write_commit_count
|
|
.global write_commit_head
|
|
.global write_buf_count
|
|
.global write_buf_head
|
|
.global ftl_flush_jiffies
|
|
.global lpa_hash
|
|
.global lpa_hash_index
|
|
.global _c_slc_to_xlc_ec_ratio
|
|
.global _c_mix_max_xlc_ec_count
|
|
.global _c_mix_max_slc_ec_count
|
|
.global _c_swl_xlc_gc_th
|
|
.global _c_swl_slc_gc_th
|
|
.global _gc_after_discard_en
|
|
.global _last_write_time
|
|
.global _last_read_time
|
|
.global _min_slc_super_block
|
|
.global _max_xlc_super_block
|
|
.global _c_max_pm_sblk
|
|
.global _c_ftl_pm_page_num
|
|
.global _c_totle_log_page
|
|
.global _c_totle_data_density
|
|
.global _c_user_data_density
|
|
.global _c_totle_phy_density
|
|
.global _c_ftl_block_addr_log2
|
|
.global _c_ftl_block_align_addr
|
|
.global _c_ftl_byte_pre_page
|
|
.global _c_ftl_nand_blks_per_die
|
|
.global _c_ftl_page_pre_slc_blk
|
|
.global _c_ftl_page_pre_blk
|
|
.global _c_ftl_blk_pre_plane
|
|
.global _c_ftl_nand_planes_num
|
|
.global _c_ftl_planes_per_die
|
|
.global _c_ftl_sec_per_page
|
|
.global _c_ftl_nand_die_num
|
|
.global _c_ftl_nand_type
|
|
.global zftl_debug
|
|
.global g_flash_blk_info
|
|
.global gp_flash_info
|
|
.global p_free_buf_head
|
|
.global free_buf_count
|
|
.global g_buf
|
|
.global nandc_ecc_sts
|
|
.global g_nandc_v6_master_info
|
|
.global nandc_randomizer_en
|
|
.global nandc_hw_seed
|
|
.global fill_spare_size
|
|
.global g_nandc_ecc_bits
|
|
.global g_nandc_tran_timeout
|
|
.global g_nandc_ver
|
|
.global gp_nandc
|
|
.global hy_f26_ref_value
|
|
.global sd15_tlc_rr
|
|
.global sd15_slc_rr
|
|
.global g_nand_para_info
|
|
.global gp_nand_para_info
|
|
.global g_nand_opt_para
|
|
.global g_msb_page_tbl
|
|
.global g_lsb_page_tbl
|
|
.global g_die_addr
|
|
.global g_die_cs_idx
|
|
.global IDByte
|
|
.global flash_read_retry
|
|
.global _c_ftl_cs_bits
|
|
.global g_maxRetryCount
|
|
.global g_maxRegNum
|
|
.global g_retryMode
|
|
.global g_flash_toggle_mode_en
|
|
.global g_flash_ymtc_3d_tlc_flag
|
|
.global g_flash_micron_3d_tlc_b16a
|
|
.global g_flash_micron_3d_tlc_b05a
|
|
.global g_flash_micron_3d_tlc_flag
|
|
.global g_flash_3d_mlc_flag
|
|
.global g_flash_3d_tlc_flag
|
|
.global g_flash_multi_page_prog_en
|
|
.global g_flash_multi_page_read_en
|
|
.global g_flash_interface_mode
|
|
.global g_idb_ecc_bits
|
|
.global g_idb_slc_mode_enable
|
|
.global g_one_pass_program
|
|
.global g_slc_mode_addr2
|
|
.global g_slc_mode_enable
|
|
.global g_flash_cur_mode
|
|
.global g_flash_six_addr
|
|
.global g_flash_slc_mode
|
|
.global g_slc_page_num
|
|
.global g_totle_phy_block
|
|
.global g_block_align_addr
|
|
.global g_flash_reversd_blks
|
|
.global g_nand_max_die
|
|
.global g_flash_tmp_spare_buffer
|
|
.global g_flash_tmp_page_buffer
|
|
.global g_flash_sys_spare_buffer
|
|
.global g_flash_spare_buffer
|
|
.global g_flash_page_buffer
|
|
.section .bss.IDByte,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR47,. + 0
|
|
.type IDByte, %object
|
|
.size IDByte, 32
|
|
IDByte:
|
|
.zero 32
|
|
.section .bss._c_ftl_blk_pre_plane,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR8,. + 0
|
|
.type _c_ftl_blk_pre_plane, %object
|
|
.size _c_ftl_blk_pre_plane, 2
|
|
_c_ftl_blk_pre_plane:
|
|
.zero 2
|
|
.section .bss._c_ftl_block_addr_log2,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR74,. + 0
|
|
.type _c_ftl_block_addr_log2, %object
|
|
.size _c_ftl_block_addr_log2, 2
|
|
_c_ftl_block_addr_log2:
|
|
.zero 2
|
|
.section .bss._c_ftl_block_align_addr,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR111,. + 0
|
|
.type _c_ftl_block_align_addr, %object
|
|
.size _c_ftl_block_align_addr, 2
|
|
_c_ftl_block_align_addr:
|
|
.zero 2
|
|
.section .bss._c_ftl_byte_pre_page,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR221,. + 0
|
|
.type _c_ftl_byte_pre_page, %object
|
|
.size _c_ftl_byte_pre_page, 2
|
|
_c_ftl_byte_pre_page:
|
|
.zero 2
|
|
.section .bss._c_ftl_cs_bits,"aw",@nobits
|
|
.set .LANCHOR31,. + 0
|
|
.type _c_ftl_cs_bits, %object
|
|
.size _c_ftl_cs_bits, 1
|
|
_c_ftl_cs_bits:
|
|
.zero 1
|
|
.section .bss._c_ftl_nand_blks_per_die,"aw",@nobits
|
|
.align 1
|
|
.type _c_ftl_nand_blks_per_die, %object
|
|
.size _c_ftl_nand_blks_per_die, 2
|
|
_c_ftl_nand_blks_per_die:
|
|
.zero 2
|
|
.section .bss._c_ftl_nand_die_num,"aw",@nobits
|
|
.set .LANCHOR112,. + 0
|
|
.type _c_ftl_nand_die_num, %object
|
|
.size _c_ftl_nand_die_num, 1
|
|
_c_ftl_nand_die_num:
|
|
.zero 1
|
|
.section .bss._c_ftl_nand_planes_num,"aw",@nobits
|
|
.set .LANCHOR79,. + 0
|
|
.type _c_ftl_nand_planes_num, %object
|
|
.size _c_ftl_nand_planes_num, 1
|
|
_c_ftl_nand_planes_num:
|
|
.zero 1
|
|
.section .bss._c_ftl_nand_type,"aw",@nobits
|
|
.set .LANCHOR78,. + 0
|
|
.type _c_ftl_nand_type, %object
|
|
.size _c_ftl_nand_type, 1
|
|
_c_ftl_nand_type:
|
|
.zero 1
|
|
.section .bss._c_ftl_page_pre_blk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR85,. + 0
|
|
.type _c_ftl_page_pre_blk, %object
|
|
.size _c_ftl_page_pre_blk, 2
|
|
_c_ftl_page_pre_blk:
|
|
.zero 2
|
|
.section .bss._c_ftl_page_pre_slc_blk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR94,. + 0
|
|
.type _c_ftl_page_pre_slc_blk, %object
|
|
.size _c_ftl_page_pre_slc_blk, 2
|
|
_c_ftl_page_pre_slc_blk:
|
|
.zero 2
|
|
.section .bss._c_ftl_planes_per_die,"aw",@nobits
|
|
.set .LANCHOR75,. + 0
|
|
.type _c_ftl_planes_per_die, %object
|
|
.size _c_ftl_planes_per_die, 1
|
|
_c_ftl_planes_per_die:
|
|
.zero 1
|
|
.section .bss._c_ftl_pm_page_num,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR202,. + 0
|
|
.type _c_ftl_pm_page_num, %object
|
|
.size _c_ftl_pm_page_num, 2
|
|
_c_ftl_pm_page_num:
|
|
.zero 2
|
|
.section .bss._c_ftl_sec_per_page,"aw",@nobits
|
|
.set .LANCHOR131,. + 0
|
|
.type _c_ftl_sec_per_page, %object
|
|
.size _c_ftl_sec_per_page, 1
|
|
_c_ftl_sec_per_page:
|
|
.zero 1
|
|
.section .bss._c_max_pm_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR152,. + 0
|
|
.type _c_max_pm_sblk, %object
|
|
.size _c_max_pm_sblk, 2
|
|
_c_max_pm_sblk:
|
|
.zero 2
|
|
.section .bss._c_mix_max_slc_ec_count,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR126,. + 0
|
|
.type _c_mix_max_slc_ec_count, %object
|
|
.size _c_mix_max_slc_ec_count, 2
|
|
_c_mix_max_slc_ec_count:
|
|
.zero 2
|
|
.section .bss._c_mix_max_xlc_ec_count,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR125,. + 0
|
|
.type _c_mix_max_xlc_ec_count, %object
|
|
.size _c_mix_max_xlc_ec_count, 2
|
|
_c_mix_max_xlc_ec_count:
|
|
.zero 2
|
|
.section .bss._c_slc_to_xlc_ec_ratio,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR10,. + 0
|
|
.type _c_slc_to_xlc_ec_ratio, %object
|
|
.size _c_slc_to_xlc_ec_ratio, 2
|
|
_c_slc_to_xlc_ec_ratio:
|
|
.zero 2
|
|
.section .bss._c_swl_slc_gc_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR149,. + 0
|
|
.type _c_swl_slc_gc_th, %object
|
|
.size _c_swl_slc_gc_th, 2
|
|
_c_swl_slc_gc_th:
|
|
.zero 2
|
|
.section .bss._c_swl_xlc_gc_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR150,. + 0
|
|
.type _c_swl_xlc_gc_th, %object
|
|
.size _c_swl_xlc_gc_th, 2
|
|
_c_swl_xlc_gc_th:
|
|
.zero 2
|
|
.section .bss._c_totle_data_density,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR240,. + 0
|
|
.type _c_totle_data_density, %object
|
|
.size _c_totle_data_density, 4
|
|
_c_totle_data_density:
|
|
.zero 4
|
|
.section .bss._c_totle_log_page,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR128,. + 0
|
|
.type _c_totle_log_page, %object
|
|
.size _c_totle_log_page, 4
|
|
_c_totle_log_page:
|
|
.zero 4
|
|
.section .bss._c_totle_phy_density,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR239,. + 0
|
|
.type _c_totle_phy_density, %object
|
|
.size _c_totle_phy_density, 4
|
|
_c_totle_phy_density:
|
|
.zero 4
|
|
.section .bss._c_user_data_density,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR67,. + 0
|
|
.type _c_user_data_density, %object
|
|
.size _c_user_data_density, 4
|
|
_c_user_data_density:
|
|
.zero 4
|
|
.section .bss._ftl_gc_tag_page_num,"aw",@nobits
|
|
.set .LANCHOR224,. + 0
|
|
.type _ftl_gc_tag_page_num, %object
|
|
.size _ftl_gc_tag_page_num, 1
|
|
_ftl_gc_tag_page_num:
|
|
.zero 1
|
|
.section .bss._gc_after_discard_en,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR122,. + 0
|
|
.type _gc_after_discard_en, %object
|
|
.size _gc_after_discard_en, 4
|
|
_gc_after_discard_en:
|
|
.zero 4
|
|
.section .bss._last_read_time,"aw",@nobits
|
|
.align 2
|
|
.type _last_read_time, %object
|
|
.size _last_read_time, 4
|
|
_last_read_time:
|
|
.zero 4
|
|
.section .bss._last_write_time,"aw",@nobits
|
|
.align 2
|
|
.type _last_write_time, %object
|
|
.size _last_write_time, 4
|
|
_last_write_time:
|
|
.zero 4
|
|
.section .bss._max_xlc_super_block,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR101,. + 0
|
|
.type _max_xlc_super_block, %object
|
|
.size _max_xlc_super_block, 2
|
|
_max_xlc_super_block:
|
|
.zero 2
|
|
.section .bss._min_slc_super_block,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR98,. + 0
|
|
.type _min_slc_super_block, %object
|
|
.size _min_slc_super_block, 2
|
|
_min_slc_super_block:
|
|
.zero 2
|
|
.section .bss.discard_sector_count,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR241,. + 0
|
|
.type discard_sector_count, %object
|
|
.size discard_sector_count, 4
|
|
discard_sector_count:
|
|
.zero 4
|
|
.section .bss.fill_spare_size,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR53,. + 0
|
|
.type fill_spare_size, %object
|
|
.size fill_spare_size, 2
|
|
fill_spare_size:
|
|
.zero 2
|
|
.section .bss.flash_ddr_tuning_sdr_read_count,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR169,. + 0
|
|
.type flash_ddr_tuning_sdr_read_count, %object
|
|
.size flash_ddr_tuning_sdr_read_count, 4
|
|
flash_ddr_tuning_sdr_read_count:
|
|
.zero 4
|
|
.section .bss.flash_read_retry,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR171,. + 0
|
|
.type flash_read_retry, %object
|
|
.size flash_read_retry, 8
|
|
flash_read_retry:
|
|
.zero 8
|
|
.section .bss.free_buf_count,"aw",@nobits
|
|
.set .LANCHOR57,. + 0
|
|
.type free_buf_count, %object
|
|
.size free_buf_count, 1
|
|
free_buf_count:
|
|
.zero 1
|
|
.section .bss.free_mix_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR107,. + 0
|
|
.type free_mix_sblk, %object
|
|
.size free_mix_sblk, 2
|
|
free_mix_sblk:
|
|
.zero 2
|
|
.section .bss.free_slc_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR103,. + 0
|
|
.type free_slc_sblk, %object
|
|
.size free_slc_sblk, 2
|
|
free_slc_sblk:
|
|
.zero 2
|
|
.section .bss.free_xlc_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR105,. + 0
|
|
.type free_xlc_sblk, %object
|
|
.size free_xlc_sblk, 2
|
|
free_xlc_sblk:
|
|
.zero 2
|
|
.section .bss.ftl_ext_info_data_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR197,. + 0
|
|
.type ftl_ext_info_data_buffer, %object
|
|
.size ftl_ext_info_data_buffer, 8
|
|
ftl_ext_info_data_buffer:
|
|
.zero 8
|
|
.section .bss.ftl_ext_info_first_write,"aw",@nobits
|
|
.set .LANCHOR196,. + 0
|
|
.type ftl_ext_info_first_write, %object
|
|
.size ftl_ext_info_first_write, 1
|
|
ftl_ext_info_first_write:
|
|
.zero 1
|
|
.section .bss.ftl_flush_jiffies,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR233,. + 0
|
|
.type ftl_flush_jiffies, %object
|
|
.size ftl_flush_jiffies, 4
|
|
ftl_flush_jiffies:
|
|
.zero 4
|
|
.section .bss.ftl_info_data_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR192,. + 0
|
|
.type ftl_info_data_buffer, %object
|
|
.size ftl_info_data_buffer, 8
|
|
ftl_info_data_buffer:
|
|
.zero 8
|
|
.section .bss.ftl_info_spare,"aw",@nobits
|
|
.align 6
|
|
.set .LANCHOR190,. + 0
|
|
.type ftl_info_spare, %object
|
|
.size ftl_info_spare, 256
|
|
ftl_info_spare:
|
|
.zero 256
|
|
.section .bss.ftl_low_format_cur_blk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR68,. + 0
|
|
.type ftl_low_format_cur_blk, %object
|
|
.size ftl_low_format_cur_blk, 2
|
|
ftl_low_format_cur_blk:
|
|
.zero 2
|
|
.section .bss.ftl_power_lost_flag,"aw",@nobits
|
|
.set .LANCHOR195,. + 0
|
|
.type ftl_power_lost_flag, %object
|
|
.size ftl_power_lost_flag, 1
|
|
ftl_power_lost_flag:
|
|
.zero 1
|
|
.section .bss.ftl_sblk_lpa_tbl,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR117,. + 0
|
|
.type ftl_sblk_lpa_tbl, %object
|
|
.size ftl_sblk_lpa_tbl, 8
|
|
ftl_sblk_lpa_tbl:
|
|
.zero 8
|
|
.section .bss.ftl_sblk_update_list,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR73,. + 0
|
|
.type ftl_sblk_update_list, %object
|
|
.size ftl_sblk_update_list, 16
|
|
ftl_sblk_update_list:
|
|
.zero 16
|
|
.section .bss.ftl_sblk_update_list_offset,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR123,. + 0
|
|
.type ftl_sblk_update_list_offset, %object
|
|
.size ftl_sblk_update_list_offset, 2
|
|
ftl_sblk_update_list_offset:
|
|
.zero 2
|
|
.section .bss.ftl_sblk_vpn,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR11,. + 0
|
|
.type ftl_sblk_vpn, %object
|
|
.size ftl_sblk_vpn, 8
|
|
ftl_sblk_vpn:
|
|
.zero 8
|
|
.section .bss.ftl_sblk_vpn_update_id,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR72,. + 0
|
|
.type ftl_sblk_vpn_update_id, %object
|
|
.size ftl_sblk_vpn_update_id, 2
|
|
ftl_sblk_vpn_update_id:
|
|
.zero 2
|
|
.section .bss.ftl_sys_info_first_write,"aw",@nobits
|
|
.set .LANCHOR194,. + 0
|
|
.type ftl_sys_info_first_write, %object
|
|
.size ftl_sys_info_first_write, 1
|
|
ftl_sys_info_first_write:
|
|
.zero 1
|
|
.section .bss.ftl_tmp_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR187,. + 0
|
|
.type ftl_tmp_buffer, %object
|
|
.size ftl_tmp_buffer, 8
|
|
ftl_tmp_buffer:
|
|
.zero 8
|
|
.section .bss.ftl_tmp_spare,"aw",@nobits
|
|
.align 6
|
|
.set .LANCHOR188,. + 0
|
|
.type ftl_tmp_spare, %object
|
|
.size ftl_tmp_spare, 256
|
|
ftl_tmp_spare:
|
|
.zero 256
|
|
.section .bss.ftl_vpn_update_count,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR121,. + 0
|
|
.type ftl_vpn_update_count, %object
|
|
.size ftl_vpn_update_count, 2
|
|
ftl_vpn_update_count:
|
|
.zero 2
|
|
.section .bss.g_block_align_addr,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR2,. + 0
|
|
.type g_block_align_addr, %object
|
|
.size g_block_align_addr, 2
|
|
g_block_align_addr:
|
|
.zero 2
|
|
.section .bss.g_buf,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR55,. + 0
|
|
.type g_buf, %object
|
|
.size g_buf, 2048
|
|
g_buf:
|
|
.zero 2048
|
|
.section .bss.g_die_addr,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR145,. + 0
|
|
.type g_die_addr, %object
|
|
.size g_die_addr, 32
|
|
g_die_addr:
|
|
.zero 32
|
|
.section .bss.g_die_cs_idx,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR29,. + 0
|
|
.type g_die_cs_idx, %object
|
|
.size g_die_cs_idx, 8
|
|
g_die_cs_idx:
|
|
.zero 8
|
|
.section .bss.g_flash_3d_mlc_flag,"aw",@nobits
|
|
.set .LANCHOR80,. + 0
|
|
.type g_flash_3d_mlc_flag, %object
|
|
.size g_flash_3d_mlc_flag, 1
|
|
g_flash_3d_mlc_flag:
|
|
.zero 1
|
|
.section .bss.g_flash_3d_tlc_flag,"aw",@nobits
|
|
.set .LANCHOR83,. + 0
|
|
.type g_flash_3d_tlc_flag, %object
|
|
.size g_flash_3d_tlc_flag, 1
|
|
g_flash_3d_tlc_flag:
|
|
.zero 1
|
|
.section .bss.g_flash_blk_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR211,. + 0
|
|
.type g_flash_blk_info, %object
|
|
.size g_flash_blk_info, 4
|
|
g_flash_blk_info:
|
|
.zero 4
|
|
.section .bss.g_flash_cur_mode,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR33,. + 0
|
|
.type g_flash_cur_mode, %object
|
|
.size g_flash_cur_mode, 4
|
|
g_flash_cur_mode:
|
|
.zero 4
|
|
.section .bss.g_flash_interface_mode,"aw",@nobits
|
|
.set .LANCHOR48,. + 0
|
|
.type g_flash_interface_mode, %object
|
|
.size g_flash_interface_mode, 1
|
|
g_flash_interface_mode:
|
|
.zero 1
|
|
.section .bss.g_flash_micron_3d_tlc_b05a,"aw",@nobits
|
|
.set .LANCHOR124,. + 0
|
|
.type g_flash_micron_3d_tlc_b05a, %object
|
|
.size g_flash_micron_3d_tlc_b05a, 1
|
|
g_flash_micron_3d_tlc_b05a:
|
|
.zero 1
|
|
.section .bss.g_flash_micron_3d_tlc_b16a,"aw",@nobits
|
|
.set .LANCHOR217,. + 0
|
|
.type g_flash_micron_3d_tlc_b16a, %object
|
|
.size g_flash_micron_3d_tlc_b16a, 1
|
|
g_flash_micron_3d_tlc_b16a:
|
|
.zero 1
|
|
.section .bss.g_flash_micron_3d_tlc_flag,"aw",@nobits
|
|
.set .LANCHOR35,. + 0
|
|
.type g_flash_micron_3d_tlc_flag, %object
|
|
.size g_flash_micron_3d_tlc_flag, 1
|
|
g_flash_micron_3d_tlc_flag:
|
|
.zero 1
|
|
.section .bss.g_flash_multi_page_prog_en,"aw",@nobits
|
|
.set .LANCHOR44,. + 0
|
|
.type g_flash_multi_page_prog_en, %object
|
|
.size g_flash_multi_page_prog_en, 1
|
|
g_flash_multi_page_prog_en:
|
|
.zero 1
|
|
.section .bss.g_flash_multi_page_read_en,"aw",@nobits
|
|
.set .LANCHOR183,. + 0
|
|
.type g_flash_multi_page_read_en, %object
|
|
.size g_flash_multi_page_read_en, 1
|
|
g_flash_multi_page_read_en:
|
|
.zero 1
|
|
.section .bss.g_flash_page_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR173,. + 0
|
|
.type g_flash_page_buffer, %object
|
|
.size g_flash_page_buffer, 8
|
|
g_flash_page_buffer:
|
|
.zero 8
|
|
.section .bss.g_flash_reversd_blks,"aw",@nobits
|
|
.set .LANCHOR216,. + 0
|
|
.type g_flash_reversd_blks, %object
|
|
.size g_flash_reversd_blks, 1
|
|
g_flash_reversd_blks:
|
|
.zero 1
|
|
.section .bss.g_flash_six_addr,"aw",@nobits
|
|
.set .LANCHOR30,. + 0
|
|
.type g_flash_six_addr, %object
|
|
.size g_flash_six_addr, 1
|
|
g_flash_six_addr:
|
|
.zero 1
|
|
.section .bss.g_flash_slc_mode,"aw",@nobits
|
|
.set .LANCHOR0,. + 0
|
|
.type g_flash_slc_mode, %object
|
|
.size g_flash_slc_mode, 1
|
|
g_flash_slc_mode:
|
|
.zero 1
|
|
.section .bss.g_flash_spare_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR172,. + 0
|
|
.type g_flash_spare_buffer, %object
|
|
.size g_flash_spare_buffer, 8
|
|
g_flash_spare_buffer:
|
|
.zero 8
|
|
.section .bss.g_flash_sys_spare_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR210,. + 0
|
|
.type g_flash_sys_spare_buffer, %object
|
|
.size g_flash_sys_spare_buffer, 8
|
|
g_flash_sys_spare_buffer:
|
|
.zero 8
|
|
.section .bss.g_flash_tmp_page_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR163,. + 0
|
|
.type g_flash_tmp_page_buffer, %object
|
|
.size g_flash_tmp_page_buffer, 8
|
|
g_flash_tmp_page_buffer:
|
|
.zero 8
|
|
.section .bss.g_flash_tmp_spare_buffer,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR165,. + 0
|
|
.type g_flash_tmp_spare_buffer, %object
|
|
.size g_flash_tmp_spare_buffer, 8
|
|
g_flash_tmp_spare_buffer:
|
|
.zero 8
|
|
.section .bss.g_flash_toggle_mode_en,"aw",@nobits
|
|
.set .LANCHOR26,. + 0
|
|
.type g_flash_toggle_mode_en, %object
|
|
.size g_flash_toggle_mode_en, 1
|
|
g_flash_toggle_mode_en:
|
|
.zero 1
|
|
.section .bss.g_flash_ymtc_3d_tlc_flag,"aw",@nobits
|
|
.set .LANCHOR36,. + 0
|
|
.type g_flash_ymtc_3d_tlc_flag, %object
|
|
.size g_flash_ymtc_3d_tlc_flag, 1
|
|
g_flash_ymtc_3d_tlc_flag:
|
|
.zero 1
|
|
.section .bss.g_ftl_info_blk,"aw",@nobits
|
|
.align 6
|
|
.set .LANCHOR191,. + 0
|
|
.type g_ftl_info_blk, %object
|
|
.size g_ftl_info_blk, 4
|
|
g_ftl_info_blk:
|
|
.zero 4
|
|
.section .bss.g_gc_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR70,. + 0
|
|
.type g_gc_info, %object
|
|
.size g_gc_info, 2216
|
|
g_gc_info:
|
|
.zero 2216
|
|
.section .bss.g_idb_ecc_bits,"aw",@nobits
|
|
.set .LANCHOR22,. + 0
|
|
.type g_idb_ecc_bits, %object
|
|
.size g_idb_ecc_bits, 1
|
|
g_idb_ecc_bits:
|
|
.zero 1
|
|
.section .bss.g_idb_slc_mode_enable,"aw",@nobits
|
|
.set .LANCHOR24,. + 0
|
|
.type g_idb_slc_mode_enable, %object
|
|
.size g_idb_slc_mode_enable, 1
|
|
g_idb_slc_mode_enable:
|
|
.zero 1
|
|
.section .bss.g_lsb_page_tbl,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR3,. + 0
|
|
.type g_lsb_page_tbl, %object
|
|
.size g_lsb_page_tbl, 1024
|
|
g_lsb_page_tbl:
|
|
.zero 1024
|
|
.section .bss.g_maxRegNum,"aw",@nobits
|
|
.set .LANCHOR18,. + 0
|
|
.type g_maxRegNum, %object
|
|
.size g_maxRegNum, 1
|
|
g_maxRegNum:
|
|
.zero 1
|
|
.section .bss.g_maxRetryCount,"aw",@nobits
|
|
.set .LANCHOR166,. + 0
|
|
.type g_maxRetryCount, %object
|
|
.size g_maxRetryCount, 1
|
|
g_maxRetryCount:
|
|
.zero 1
|
|
.section .bss.g_msb_page_tbl,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR142,. + 0
|
|
.type g_msb_page_tbl, %object
|
|
.size g_msb_page_tbl, 2048
|
|
g_msb_page_tbl:
|
|
.zero 2048
|
|
.section .bss.g_nand_max_die,"aw",@nobits
|
|
.set .LANCHOR23,. + 0
|
|
.type g_nand_max_die, %object
|
|
.size g_nand_max_die, 1
|
|
g_nand_max_die:
|
|
.zero 1
|
|
.section .bss.g_nand_opt_para,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR25,. + 0
|
|
.type g_nand_opt_para, %object
|
|
.size g_nand_opt_para, 32
|
|
g_nand_opt_para:
|
|
.zero 32
|
|
.section .bss.g_nandc_ecc_bits,"aw",@nobits
|
|
.set .LANCHOR49,. + 0
|
|
.type g_nandc_ecc_bits, %object
|
|
.size g_nandc_ecc_bits, 1
|
|
g_nandc_ecc_bits:
|
|
.zero 1
|
|
.section .bss.g_nandc_tran_timeout,"aw",@nobits
|
|
.set .LANCHOR164,. + 0
|
|
.type g_nandc_tran_timeout, %object
|
|
.size g_nandc_tran_timeout, 1
|
|
g_nandc_tran_timeout:
|
|
.zero 1
|
|
.section .bss.g_nandc_v6_master_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR52,. + 0
|
|
.type g_nandc_v6_master_info, %object
|
|
.size g_nandc_v6_master_info, 40
|
|
g_nandc_v6_master_info:
|
|
.zero 40
|
|
.section .bss.g_nandc_ver,"aw",@nobits
|
|
.set .LANCHOR27,. + 0
|
|
.type g_nandc_ver, %object
|
|
.size g_nandc_ver, 1
|
|
g_nandc_ver:
|
|
.zero 1
|
|
.section .bss.g_one_pass_program,"aw",@nobits
|
|
.set .LANCHOR81,. + 0
|
|
.type g_one_pass_program, %object
|
|
.size g_one_pass_program, 1
|
|
g_one_pass_program:
|
|
.zero 1
|
|
.section .bss.g_pm_spare,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR207,. + 0
|
|
.type g_pm_spare, %object
|
|
.size g_pm_spare, 8
|
|
g_pm_spare:
|
|
.zero 8
|
|
.section .bss.g_retryMode,"aw",@nobits
|
|
.set .LANCHOR16,. + 0
|
|
.type g_retryMode, %object
|
|
.size g_retryMode, 1
|
|
g_retryMode:
|
|
.zero 1
|
|
.section .bss.g_slc_mode_addr2,"aw",@nobits
|
|
.set .LANCHOR1,. + 0
|
|
.type g_slc_mode_addr2, %object
|
|
.size g_slc_mode_addr2, 1
|
|
g_slc_mode_addr2:
|
|
.zero 1
|
|
.section .bss.g_slc_mode_enable,"aw",@nobits
|
|
.type g_slc_mode_enable, %object
|
|
.size g_slc_mode_enable, 1
|
|
g_slc_mode_enable:
|
|
.zero 1
|
|
.section .bss.g_slc_page_num,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR144,. + 0
|
|
.type g_slc_page_num, %object
|
|
.size g_slc_page_num, 2
|
|
g_slc_page_num:
|
|
.zero 2
|
|
.section .bss.g_totle_phy_block,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR146,. + 0
|
|
.type g_totle_phy_block, %object
|
|
.size g_totle_phy_block, 2
|
|
g_totle_phy_block:
|
|
.zero 2
|
|
.section .bss.gc_des_ppa_tbl,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR161,. + 0
|
|
.type gc_des_ppa_tbl, %object
|
|
.size gc_des_ppa_tbl, 8
|
|
gc_des_ppa_tbl:
|
|
.zero 8
|
|
.section .bss.gc_free_slc_sblk_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR86,. + 0
|
|
.type gc_free_slc_sblk_th, %object
|
|
.size gc_free_slc_sblk_th, 2
|
|
gc_free_slc_sblk_th:
|
|
.zero 2
|
|
.section .bss.gc_lpa_tbl,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR159,. + 0
|
|
.type gc_lpa_tbl, %object
|
|
.size gc_lpa_tbl, 8
|
|
gc_lpa_tbl:
|
|
.zero 8
|
|
.section .bss.gc_mode,"aw",@nobits
|
|
.set .LANCHOR84,. + 0
|
|
.type gc_mode, %object
|
|
.size gc_mode, 1
|
|
gc_mode:
|
|
.zero 1
|
|
.section .bss.gc_page_buf_id,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR82,. + 0
|
|
.type gc_page_buf_id, %object
|
|
.size gc_page_buf_id, 8
|
|
gc_page_buf_id:
|
|
.zero 8
|
|
.section .bss.gc_pre_ppa_tbl,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR160,. + 0
|
|
.type gc_pre_ppa_tbl, %object
|
|
.size gc_pre_ppa_tbl, 8
|
|
gc_pre_ppa_tbl:
|
|
.zero 8
|
|
.section .bss.gc_search_count,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR157,. + 0
|
|
.type gc_search_count, %object
|
|
.size gc_search_count, 4
|
|
gc_search_count:
|
|
.zero 4
|
|
.section .bss.gc_slc_cache_index,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR88,. + 0
|
|
.type gc_slc_cache_index, %object
|
|
.size gc_slc_cache_index, 2
|
|
gc_slc_cache_index:
|
|
.zero 2
|
|
.section .bss.gc_slc_data_index,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR87,. + 0
|
|
.type gc_slc_data_index, %object
|
|
.size gc_slc_data_index, 2
|
|
gc_slc_data_index:
|
|
.zero 2
|
|
.section .bss.gc_slc_mode_slc_vpn_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR158,. + 0
|
|
.type gc_slc_mode_slc_vpn_th, %object
|
|
.size gc_slc_mode_slc_vpn_th, 2
|
|
gc_slc_mode_slc_vpn_th:
|
|
.zero 2
|
|
.section .bss.gc_slc_mode_tlc_vpn_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR93,. + 0
|
|
.type gc_slc_mode_tlc_vpn_th, %object
|
|
.size gc_slc_mode_tlc_vpn_th, 2
|
|
gc_slc_mode_tlc_vpn_th:
|
|
.zero 2
|
|
.section .bss.gc_slc_mode_vpn_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR69,. + 0
|
|
.type gc_slc_mode_vpn_th, %object
|
|
.size gc_slc_mode_vpn_th, 2
|
|
gc_slc_mode_vpn_th:
|
|
.zero 2
|
|
.section .bss.gc_state,"aw",@nobits
|
|
.set .LANCHOR156,. + 0
|
|
.type gc_state, %object
|
|
.size gc_state, 1
|
|
gc_state:
|
|
.zero 1
|
|
.section .bss.gc_tlc_mode_slc_vpn_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR102,. + 0
|
|
.type gc_tlc_mode_slc_vpn_th, %object
|
|
.size gc_tlc_mode_slc_vpn_th, 2
|
|
gc_tlc_mode_slc_vpn_th:
|
|
.zero 2
|
|
.section .bss.gc_tlc_mode_tlc_vpn_th,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR100,. + 0
|
|
.type gc_tlc_mode_tlc_vpn_th, %object
|
|
.size gc_tlc_mode_tlc_vpn_th, 2
|
|
gc_tlc_mode_tlc_vpn_th:
|
|
.zero 2
|
|
.section .bss.gc_valid_page_ppa,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR76,. + 0
|
|
.type gc_valid_page_ppa, %object
|
|
.size gc_valid_page_ppa, 8
|
|
gc_valid_page_ppa:
|
|
.zero 8
|
|
.section .bss.gc_xlc_data_index,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR89,. + 0
|
|
.type gc_xlc_data_index, %object
|
|
.size gc_xlc_data_index, 2
|
|
gc_xlc_data_index:
|
|
.zero 2
|
|
.section .bss.gc_xlc_search_index,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR96,. + 0
|
|
.type gc_xlc_search_index, %object
|
|
.size gc_xlc_search_index, 2
|
|
gc_xlc_search_index:
|
|
.zero 2
|
|
.section .bss.gp_blk_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR9,. + 0
|
|
.type gp_blk_info, %object
|
|
.size gp_blk_info, 8
|
|
gp_blk_info:
|
|
.zero 8
|
|
.section .bss.gp_data_slc_cache_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR90,. + 0
|
|
.type gp_data_slc_cache_head, %object
|
|
.size gp_data_slc_cache_head, 8
|
|
gp_data_slc_cache_head:
|
|
.zero 8
|
|
.section .bss.gp_data_slc_data_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR95,. + 0
|
|
.type gp_data_slc_data_head, %object
|
|
.size gp_data_slc_data_head, 8
|
|
gp_data_slc_data_head:
|
|
.zero 8
|
|
.section .bss.gp_data_xlc_data_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR92,. + 0
|
|
.type gp_data_xlc_data_head, %object
|
|
.size gp_data_xlc_data_head, 8
|
|
gp_data_xlc_data_head:
|
|
.zero 8
|
|
.section .bss.gp_flash_check_buf,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR141,. + 0
|
|
.type gp_flash_check_buf, %object
|
|
.size gp_flash_check_buf, 8
|
|
gp_flash_check_buf:
|
|
.zero 8
|
|
.section .bss.gp_flash_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR6,. + 0
|
|
.type gp_flash_info, %object
|
|
.size gp_flash_info, 8
|
|
gp_flash_info:
|
|
.zero 8
|
|
.section .bss.gp_free_mix_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR108,. + 0
|
|
.type gp_free_mix_head, %object
|
|
.size gp_free_mix_head, 8
|
|
gp_free_mix_head:
|
|
.zero 8
|
|
.section .bss.gp_free_slc_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR104,. + 0
|
|
.type gp_free_slc_head, %object
|
|
.size gp_free_slc_head, 8
|
|
gp_free_slc_head:
|
|
.zero 8
|
|
.section .bss.gp_free_xlc_head,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR106,. + 0
|
|
.type gp_free_xlc_head, %object
|
|
.size gp_free_xlc_head, 8
|
|
gp_free_xlc_head:
|
|
.zero 8
|
|
.section .bss.gp_ftl_ext_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR12,. + 0
|
|
.type gp_ftl_ext_info, %object
|
|
.size gp_ftl_ext_info, 8
|
|
gp_ftl_ext_info:
|
|
.zero 8
|
|
.section .bss.gp_ftl_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR110,. + 0
|
|
.type gp_ftl_info, %object
|
|
.size gp_ftl_info, 8
|
|
gp_ftl_info:
|
|
.zero 8
|
|
.section .bss.gp_nand_para_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR21,. + 0
|
|
.type gp_nand_para_info, %object
|
|
.size gp_nand_para_info, 8
|
|
gp_nand_para_info:
|
|
.zero 8
|
|
.section .bss.gp_nandc,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR7,. + 0
|
|
.type gp_nandc, %object
|
|
.size gp_nandc, 8
|
|
gp_nandc:
|
|
.zero 8
|
|
.section .bss.gp_sblk_list_tbl,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR4,. + 0
|
|
.type gp_sblk_list_tbl, %object
|
|
.size gp_sblk_list_tbl, 8
|
|
gp_sblk_list_tbl:
|
|
.zero 8
|
|
.section .bss.idb_buf,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR138,. + 0
|
|
.type idb_buf, %object
|
|
.size idb_buf, 8
|
|
idb_buf:
|
|
.zero 8
|
|
.section .bss.idb_last_lba,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR174,. + 0
|
|
.type idb_last_lba, %object
|
|
.size idb_last_lba, 4
|
|
idb_last_lba:
|
|
.zero 4
|
|
.section .bss.idb_need_write_back,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR139,. + 0
|
|
.type idb_need_write_back, %object
|
|
.size idb_need_write_back, 4
|
|
idb_need_write_back:
|
|
.zero 4
|
|
.section .bss.idb_write_enable,"aw",@nobits
|
|
.set .LANCHOR140,. + 0
|
|
.type idb_write_enable, %object
|
|
.size idb_write_enable, 1
|
|
idb_write_enable:
|
|
.zero 1
|
|
.section .bss.lpa_hash,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR116,. + 0
|
|
.type lpa_hash, %object
|
|
.size lpa_hash, 512
|
|
lpa_hash:
|
|
.zero 512
|
|
.section .bss.lpa_hash_index,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR118,. + 0
|
|
.type lpa_hash_index, %object
|
|
.size lpa_hash_index, 8
|
|
lpa_hash_index:
|
|
.zero 8
|
|
.section .bss.nandc_ecc_sts,"aw",@nobits
|
|
.align 3
|
|
.type nandc_ecc_sts, %object
|
|
.size nandc_ecc_sts, 16
|
|
nandc_ecc_sts:
|
|
.zero 16
|
|
.section .bss.nandc_hw_seed,"aw",@nobits
|
|
.set .LANCHOR50,. + 0
|
|
.type nandc_hw_seed, %object
|
|
.size nandc_hw_seed, 1
|
|
nandc_hw_seed:
|
|
.zero 1
|
|
.section .bss.nandc_randomizer_en,"aw",@nobits
|
|
.set .LANCHOR51,. + 0
|
|
.type nandc_randomizer_en, %object
|
|
.size nandc_randomizer_en, 1
|
|
nandc_randomizer_en:
|
|
.zero 1
|
|
.section .bss.p_free_buf_head,"aw",@nobits
|
|
.set .LANCHOR56,. + 0
|
|
.type p_free_buf_head, %object
|
|
.size p_free_buf_head, 1
|
|
p_free_buf_head:
|
|
.zero 1
|
|
.section .bss.p_read_ahead_ext_buf,"aw",@nobits
|
|
.align 3
|
|
.type p_read_ahead_ext_buf, %object
|
|
.size p_read_ahead_ext_buf, 8
|
|
p_read_ahead_ext_buf:
|
|
.zero 8
|
|
.section .bss.pm_first_write,"aw",@nobits
|
|
.set .LANCHOR208,. + 0
|
|
.type pm_first_write, %object
|
|
.size pm_first_write, 1
|
|
pm_first_write:
|
|
.zero 1
|
|
.section .bss.pm_force_gc,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR148,. + 0
|
|
.type pm_force_gc, %object
|
|
.size pm_force_gc, 4
|
|
pm_force_gc:
|
|
.zero 4
|
|
.section .bss.pm_gc_enable,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR204,. + 0
|
|
.type pm_gc_enable, %object
|
|
.size pm_gc_enable, 4
|
|
pm_gc_enable:
|
|
.zero 4
|
|
.section .bss.pm_last_load_ram_id,"aw",@nobits
|
|
.set .LANCHOR223,. + 0
|
|
.type pm_last_load_ram_id, %object
|
|
.size pm_last_load_ram_id, 1
|
|
pm_last_load_ram_id:
|
|
.zero 1
|
|
.section .bss.pm_last_update_ram_id,"aw",@nobits
|
|
.set .LANCHOR136,. + 0
|
|
.type pm_last_update_ram_id, %object
|
|
.size pm_last_update_ram_id, 1
|
|
pm_last_update_ram_id:
|
|
.zero 1
|
|
.section .bss.pm_ram_info,"aw",@nobits
|
|
.align 3
|
|
.set .LANCHOR135,. + 0
|
|
.type pm_ram_info, %object
|
|
.size pm_ram_info, 512
|
|
pm_ram_info:
|
|
.zero 512
|
|
.section .bss.read_ahead_lpa,"aw",@nobits
|
|
.align 2
|
|
.set .LANCHOR238,. + 0
|
|
.type read_ahead_lpa, %object
|
|
.size read_ahead_lpa, 4
|
|
read_ahead_lpa:
|
|
.zero 4
|
|
.section .bss.read_buf_count,"aw",@nobits
|
|
.set .LANCHOR134,. + 0
|
|
.type read_buf_count, %object
|
|
.size read_buf_count, 1
|
|
read_buf_count:
|
|
.zero 1
|
|
.section .bss.read_buf_head,"aw",@nobits
|
|
.set .LANCHOR133,. + 0
|
|
.type read_buf_head, %object
|
|
.size read_buf_head, 1
|
|
read_buf_head:
|
|
.zero 1
|
|
.section .bss.sblk_gc_write_completed_queue_head,"aw",@nobits
|
|
.set .LANCHOR63,. + 0
|
|
.type sblk_gc_write_completed_queue_head, %object
|
|
.size sblk_gc_write_completed_queue_head, 1
|
|
sblk_gc_write_completed_queue_head:
|
|
.zero 1
|
|
.section .bss.sblk_queue_head,"aw",@nobits
|
|
.set .LANCHOR59,. + 0
|
|
.type sblk_queue_head, %object
|
|
.size sblk_queue_head, 1
|
|
sblk_queue_head:
|
|
.zero 1
|
|
.section .bss.sblk_read_completed_queue_head,"aw",@nobits
|
|
.set .LANCHOR62,. + 0
|
|
.type sblk_read_completed_queue_head, %object
|
|
.size sblk_read_completed_queue_head, 1
|
|
sblk_read_completed_queue_head:
|
|
.zero 1
|
|
.section .bss.sblk_write_completed_queue_head,"aw",@nobits
|
|
.set .LANCHOR64,. + 0
|
|
.type sblk_write_completed_queue_head, %object
|
|
.size sblk_write_completed_queue_head, 1
|
|
sblk_write_completed_queue_head:
|
|
.zero 1
|
|
.section .bss.slc_cache_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR99,. + 0
|
|
.type slc_cache_sblk, %object
|
|
.size slc_cache_sblk, 2
|
|
slc_cache_sblk:
|
|
.zero 2
|
|
.section .bss.slc_data_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR97,. + 0
|
|
.type slc_data_sblk, %object
|
|
.size slc_data_sblk, 2
|
|
slc_data_sblk:
|
|
.zero 2
|
|
.section .bss.write_buf_count,"aw",@nobits
|
|
.set .LANCHOR66,. + 0
|
|
.type write_buf_count, %object
|
|
.size write_buf_count, 1
|
|
write_buf_count:
|
|
.zero 1
|
|
.section .bss.write_buf_head,"aw",@nobits
|
|
.set .LANCHOR65,. + 0
|
|
.type write_buf_head, %object
|
|
.size write_buf_head, 1
|
|
write_buf_head:
|
|
.zero 1
|
|
.section .bss.write_commit_count,"aw",@nobits
|
|
.set .LANCHOR129,. + 0
|
|
.type write_commit_count, %object
|
|
.size write_commit_count, 1
|
|
write_commit_count:
|
|
.zero 1
|
|
.section .bss.write_commit_head,"aw",@nobits
|
|
.set .LANCHOR182,. + 0
|
|
.type write_commit_head, %object
|
|
.size write_commit_head, 1
|
|
write_commit_head:
|
|
.zero 1
|
|
.section .bss.xlc_data_sblk,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR91,. + 0
|
|
.type xlc_data_sblk, %object
|
|
.size xlc_data_sblk, 2
|
|
xlc_data_sblk:
|
|
.zero 2
|
|
.section .bss.zftl_print_list_count,"aw",@nobits
|
|
.align 1
|
|
.set .LANCHOR109,. + 0
|
|
.type zftl_print_list_count, %object
|
|
.size zftl_print_list_count, 2
|
|
zftl_print_list_count:
|
|
.zero 2
|
|
.section .data.g_nand_para_info,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR32,. + 0
|
|
.type g_nand_para_info, %object
|
|
.size g_nand_para_info, 32
|
|
g_nand_para_info:
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -104
|
|
.byte -77
|
|
.byte 118
|
|
.byte 114
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 768
|
|
.byte 3
|
|
.byte 2
|
|
.hword 758
|
|
.hword 5593
|
|
.byte 0
|
|
.byte 37
|
|
.byte 60
|
|
.byte 32
|
|
.byte 2
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.section .data.hy_f26_ref_value,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR162,. + 0
|
|
.type hy_f26_ref_value, %object
|
|
.size hy_f26_ref_value, 28
|
|
hy_f26_ref_value:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 10
|
|
.byte 6
|
|
.byte 0
|
|
.byte -3
|
|
.byte -7
|
|
.byte -8
|
|
.byte 0
|
|
.byte -6
|
|
.byte -13
|
|
.byte -15
|
|
.byte 0
|
|
.byte -11
|
|
.byte -20
|
|
.byte -23
|
|
.byte 0
|
|
.byte 0
|
|
.byte -26
|
|
.byte -30
|
|
.byte 0
|
|
.byte 0
|
|
.byte -32
|
|
.byte -37
|
|
.section .data.nand_opt_para,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR215,. + 0
|
|
.type nand_opt_para, %object
|
|
.size nand_opt_para, 128
|
|
nand_opt_para:
|
|
.byte 1
|
|
.byte 0
|
|
.byte 49
|
|
.byte 63
|
|
.byte 0
|
|
.byte 49
|
|
.byte -128
|
|
.byte 21
|
|
.byte 0
|
|
.byte 50
|
|
.byte 17
|
|
.byte -128
|
|
.byte 112
|
|
.byte 120
|
|
.byte 120
|
|
.byte 3
|
|
.byte 1
|
|
.byte 0
|
|
.zero 14
|
|
.byte 2
|
|
.byte 0
|
|
.byte 49
|
|
.byte 63
|
|
.byte 0
|
|
.byte 49
|
|
.byte -128
|
|
.byte 21
|
|
.byte 0
|
|
.byte 0
|
|
.byte 17
|
|
.byte -127
|
|
.byte 112
|
|
.byte -15
|
|
.byte -14
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.zero 14
|
|
.byte 3
|
|
.byte 0
|
|
.byte 49
|
|
.byte 63
|
|
.byte 0
|
|
.byte 49
|
|
.byte -128
|
|
.byte 21
|
|
.byte 96
|
|
.byte 96
|
|
.byte 17
|
|
.byte -127
|
|
.byte 112
|
|
.byte -15
|
|
.byte -14
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.zero 14
|
|
.byte 4
|
|
.byte 0
|
|
.byte 49
|
|
.byte 63
|
|
.byte 0
|
|
.byte 49
|
|
.byte -128
|
|
.byte 21
|
|
.byte 96
|
|
.byte 96
|
|
.byte 17
|
|
.byte -127
|
|
.byte 112
|
|
.byte 112
|
|
.byte 112
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.zero 14
|
|
.section .data.sd15_slc_rr,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR40,. + 0
|
|
.type sd15_slc_rr, %object
|
|
.size sd15_slc_rr, 25
|
|
sd15_slc_rr:
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 16
|
|
.byte -16
|
|
.byte 24
|
|
.byte -24
|
|
.byte 32
|
|
.byte -32
|
|
.byte 32
|
|
.byte -40
|
|
.byte 48
|
|
.byte -48
|
|
.byte 56
|
|
.byte -56
|
|
.byte 64
|
|
.byte -64
|
|
.byte 72
|
|
.byte -72
|
|
.byte 80
|
|
.byte -80
|
|
.byte 88
|
|
.byte 96
|
|
.byte 104
|
|
.byte 112
|
|
.section .data.sd15_tlc_rr,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR39,. + 0
|
|
.type sd15_tlc_rr, %object
|
|
.size sd15_tlc_rr, 329
|
|
sd15_tlc_rr:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -32
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte -24
|
|
.byte -16
|
|
.byte 8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -24
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -24
|
|
.byte -8
|
|
.byte 8
|
|
.byte -8
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte -16
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 16
|
|
.byte -8
|
|
.byte 24
|
|
.byte 0
|
|
.byte 8
|
|
.byte -4
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 24
|
|
.byte 8
|
|
.byte 0
|
|
.byte -4
|
|
.byte -8
|
|
.byte 24
|
|
.byte 16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte 8
|
|
.byte 8
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -4
|
|
.byte 8
|
|
.byte -24
|
|
.byte 4
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 8
|
|
.byte -16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 8
|
|
.byte -24
|
|
.byte -32
|
|
.byte 16
|
|
.byte -24
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -24
|
|
.byte -32
|
|
.byte 8
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte 8
|
|
.byte -24
|
|
.byte 8
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte -32
|
|
.byte -4
|
|
.byte 0
|
|
.byte -24
|
|
.byte 4
|
|
.byte 0
|
|
.byte 16
|
|
.byte -24
|
|
.byte 16
|
|
.byte 0
|
|
.byte -24
|
|
.byte -4
|
|
.byte 0
|
|
.byte 8
|
|
.byte -32
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -32
|
|
.byte 0
|
|
.byte -32
|
|
.byte 0
|
|
.section .data.tlc_b05a_prog_tbl,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR235,. + 0
|
|
.type tlc_b05a_prog_tbl, %object
|
|
.size tlc_b05a_prog_tbl, 1536
|
|
tlc_b05a_prog_tbl:
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 0
|
|
.hword 9
|
|
.hword 0
|
|
.hword 11
|
|
.hword 0
|
|
.hword 13
|
|
.hword 0
|
|
.hword 15
|
|
.hword 0
|
|
.hword 17
|
|
.hword 0
|
|
.hword 19
|
|
.hword 0
|
|
.hword 21
|
|
.hword 0
|
|
.hword 23
|
|
.hword 0
|
|
.hword 25
|
|
.hword 0
|
|
.hword 27
|
|
.hword 0
|
|
.hword 29
|
|
.hword 0
|
|
.hword 31
|
|
.hword 0
|
|
.hword 33
|
|
.hword 0
|
|
.hword 35
|
|
.hword 0
|
|
.hword 37
|
|
.hword 0
|
|
.hword 39
|
|
.hword 0
|
|
.hword 41
|
|
.hword 0
|
|
.hword 43
|
|
.hword 0
|
|
.hword 45
|
|
.hword 0
|
|
.hword 47
|
|
.hword 0
|
|
.hword 49
|
|
.hword 0
|
|
.hword 51
|
|
.hword 0
|
|
.hword 53
|
|
.hword 0
|
|
.hword 55
|
|
.hword 0
|
|
.hword 25
|
|
.hword 58
|
|
.hword 0
|
|
.hword 27
|
|
.hword 61
|
|
.hword 0
|
|
.hword 29
|
|
.hword 64
|
|
.hword 0
|
|
.hword 31
|
|
.hword 67
|
|
.hword 0
|
|
.hword 33
|
|
.hword 70
|
|
.hword 0
|
|
.hword 35
|
|
.hword 73
|
|
.hword 0
|
|
.hword 37
|
|
.hword 76
|
|
.hword 0
|
|
.hword 39
|
|
.hword 79
|
|
.hword 0
|
|
.hword 41
|
|
.hword 82
|
|
.hword 0
|
|
.hword 43
|
|
.hword 85
|
|
.hword 0
|
|
.hword 45
|
|
.hword 88
|
|
.hword 0
|
|
.hword 47
|
|
.hword 91
|
|
.hword 0
|
|
.hword 49
|
|
.hword 94
|
|
.hword 0
|
|
.hword 51
|
|
.hword 97
|
|
.hword 0
|
|
.hword 53
|
|
.hword 100
|
|
.hword 0
|
|
.hword 55
|
|
.hword 103
|
|
.hword 0
|
|
.hword 58
|
|
.hword 106
|
|
.hword 0
|
|
.hword 61
|
|
.hword 109
|
|
.hword 0
|
|
.hword 64
|
|
.hword 112
|
|
.hword 0
|
|
.hword 67
|
|
.hword 115
|
|
.hword 0
|
|
.hword 70
|
|
.hword 118
|
|
.hword 0
|
|
.hword 73
|
|
.hword 121
|
|
.hword 0
|
|
.hword 76
|
|
.hword 124
|
|
.hword 0
|
|
.hword 79
|
|
.hword 127
|
|
.hword 0
|
|
.hword 82
|
|
.hword 130
|
|
.hword 0
|
|
.hword 85
|
|
.hword 133
|
|
.hword 0
|
|
.hword 88
|
|
.hword 136
|
|
.hword 0
|
|
.hword 91
|
|
.hword 139
|
|
.hword 0
|
|
.hword 94
|
|
.hword 142
|
|
.hword 0
|
|
.hword 97
|
|
.hword 145
|
|
.hword 0
|
|
.hword 100
|
|
.hword 148
|
|
.hword 0
|
|
.hword 103
|
|
.hword 151
|
|
.hword 0
|
|
.hword 106
|
|
.hword 154
|
|
.hword 0
|
|
.hword 109
|
|
.hword 157
|
|
.hword 0
|
|
.hword 112
|
|
.hword 160
|
|
.hword 0
|
|
.hword 115
|
|
.hword 163
|
|
.hword 0
|
|
.hword 118
|
|
.hword 166
|
|
.hword 0
|
|
.hword 121
|
|
.hword 169
|
|
.hword 0
|
|
.hword 124
|
|
.hword 172
|
|
.hword 0
|
|
.hword 127
|
|
.hword 175
|
|
.hword 0
|
|
.hword 130
|
|
.hword 178
|
|
.hword 0
|
|
.hword 133
|
|
.hword 181
|
|
.hword 0
|
|
.hword 136
|
|
.hword 184
|
|
.hword 0
|
|
.hword 139
|
|
.hword 187
|
|
.hword 0
|
|
.hword 142
|
|
.hword 190
|
|
.hword 0
|
|
.hword 145
|
|
.hword 193
|
|
.hword 0
|
|
.hword 148
|
|
.hword 196
|
|
.hword 0
|
|
.hword 151
|
|
.hword 199
|
|
.hword 0
|
|
.hword 154
|
|
.hword 202
|
|
.hword 0
|
|
.hword 157
|
|
.hword 205
|
|
.hword 0
|
|
.hword 160
|
|
.hword 208
|
|
.hword 0
|
|
.hword 163
|
|
.hword 211
|
|
.hword 0
|
|
.hword 166
|
|
.hword 214
|
|
.hword 0
|
|
.hword 169
|
|
.hword 217
|
|
.hword 0
|
|
.hword 172
|
|
.hword 220
|
|
.hword 0
|
|
.hword 175
|
|
.hword 223
|
|
.hword 0
|
|
.hword 178
|
|
.hword 226
|
|
.hword 0
|
|
.hword 181
|
|
.hword 229
|
|
.hword 0
|
|
.hword 184
|
|
.hword 232
|
|
.hword 0
|
|
.hword 187
|
|
.hword 235
|
|
.hword 0
|
|
.hword 190
|
|
.hword 238
|
|
.hword 0
|
|
.hword 193
|
|
.hword 241
|
|
.hword 0
|
|
.hword 196
|
|
.hword 244
|
|
.hword 0
|
|
.hword 199
|
|
.hword 247
|
|
.hword 0
|
|
.hword 202
|
|
.hword 250
|
|
.hword 0
|
|
.hword 205
|
|
.hword 253
|
|
.hword 0
|
|
.hword 208
|
|
.hword 256
|
|
.hword 0
|
|
.hword 211
|
|
.hword 259
|
|
.hword 0
|
|
.hword 214
|
|
.hword 262
|
|
.hword 0
|
|
.hword 217
|
|
.hword 265
|
|
.hword 0
|
|
.hword 220
|
|
.hword 268
|
|
.hword 0
|
|
.hword 223
|
|
.hword 271
|
|
.hword 0
|
|
.hword 226
|
|
.hword 274
|
|
.hword 0
|
|
.hword 229
|
|
.hword 277
|
|
.hword 0
|
|
.hword 232
|
|
.hword 280
|
|
.hword 0
|
|
.hword 235
|
|
.hword 283
|
|
.hword 0
|
|
.hword 238
|
|
.hword 286
|
|
.hword 0
|
|
.hword 241
|
|
.hword 289
|
|
.hword 0
|
|
.hword 244
|
|
.hword 292
|
|
.hword 0
|
|
.hword 247
|
|
.hword 295
|
|
.hword 0
|
|
.hword 250
|
|
.hword 298
|
|
.hword 0
|
|
.hword 253
|
|
.hword 301
|
|
.hword 0
|
|
.hword 256
|
|
.hword 304
|
|
.hword 0
|
|
.hword 259
|
|
.hword 307
|
|
.hword 0
|
|
.hword 262
|
|
.hword 310
|
|
.hword 0
|
|
.hword 265
|
|
.hword 313
|
|
.hword 0
|
|
.hword 268
|
|
.hword 316
|
|
.hword 0
|
|
.hword 271
|
|
.hword 319
|
|
.hword 0
|
|
.hword 274
|
|
.hword 322
|
|
.hword 0
|
|
.hword 277
|
|
.hword 325
|
|
.hword 0
|
|
.hword 280
|
|
.hword 328
|
|
.hword 0
|
|
.hword 283
|
|
.hword 331
|
|
.hword 0
|
|
.hword 286
|
|
.hword 334
|
|
.hword 0
|
|
.hword 289
|
|
.hword 337
|
|
.hword 0
|
|
.hword 292
|
|
.hword 340
|
|
.hword 0
|
|
.hword 295
|
|
.hword 343
|
|
.hword 0
|
|
.hword 298
|
|
.hword 346
|
|
.hword 0
|
|
.hword 301
|
|
.hword 349
|
|
.hword 0
|
|
.hword 304
|
|
.hword 352
|
|
.hword 0
|
|
.hword 307
|
|
.hword 355
|
|
.hword 0
|
|
.hword 310
|
|
.hword 358
|
|
.hword 0
|
|
.hword 313
|
|
.hword 361
|
|
.hword 0
|
|
.hword 316
|
|
.hword 364
|
|
.hword 0
|
|
.hword 319
|
|
.hword 367
|
|
.hword 0
|
|
.hword 322
|
|
.hword 370
|
|
.hword 0
|
|
.hword 325
|
|
.hword 373
|
|
.hword 0
|
|
.hword 328
|
|
.hword 376
|
|
.hword 0
|
|
.hword 331
|
|
.hword 379
|
|
.hword 0
|
|
.hword 334
|
|
.hword 382
|
|
.hword 0
|
|
.hword 337
|
|
.hword 385
|
|
.hword 0
|
|
.hword 340
|
|
.hword 388
|
|
.hword 0
|
|
.hword 343
|
|
.hword 391
|
|
.hword 0
|
|
.hword 346
|
|
.hword 394
|
|
.hword 0
|
|
.hword 349
|
|
.hword 397
|
|
.hword 0
|
|
.hword 352
|
|
.hword 400
|
|
.hword 0
|
|
.hword 355
|
|
.hword 403
|
|
.hword 0
|
|
.hword 358
|
|
.hword 406
|
|
.hword 0
|
|
.hword 361
|
|
.hword 409
|
|
.hword 0
|
|
.hword 364
|
|
.hword 412
|
|
.hword 0
|
|
.hword 367
|
|
.hword 415
|
|
.hword 0
|
|
.hword 370
|
|
.hword 418
|
|
.hword 0
|
|
.hword 373
|
|
.hword 421
|
|
.hword 0
|
|
.hword 376
|
|
.hword 424
|
|
.hword 0
|
|
.hword 379
|
|
.hword 427
|
|
.hword 0
|
|
.hword 382
|
|
.hword 430
|
|
.hword 0
|
|
.hword 385
|
|
.hword 433
|
|
.hword 0
|
|
.hword 388
|
|
.hword 436
|
|
.hword 0
|
|
.hword 391
|
|
.hword 439
|
|
.hword 0
|
|
.hword 394
|
|
.hword 442
|
|
.hword 0
|
|
.hword 397
|
|
.hword 445
|
|
.hword 0
|
|
.hword 400
|
|
.hword 448
|
|
.hword 0
|
|
.hword 403
|
|
.hword 451
|
|
.hword 0
|
|
.hword 406
|
|
.hword 454
|
|
.hword 0
|
|
.hword 409
|
|
.hword 457
|
|
.hword 0
|
|
.hword 412
|
|
.hword 460
|
|
.hword 0
|
|
.hword 415
|
|
.hword 463
|
|
.hword 0
|
|
.hword 418
|
|
.hword 466
|
|
.hword 0
|
|
.hword 421
|
|
.hword 469
|
|
.hword 0
|
|
.hword 424
|
|
.hword 472
|
|
.hword 0
|
|
.hword 427
|
|
.hword 475
|
|
.hword 0
|
|
.hword 430
|
|
.hword 478
|
|
.hword 0
|
|
.hword 433
|
|
.hword 481
|
|
.hword 0
|
|
.hword 436
|
|
.hword 484
|
|
.hword 0
|
|
.hword 439
|
|
.hword 487
|
|
.hword 0
|
|
.hword 442
|
|
.hword 490
|
|
.hword 0
|
|
.hword 445
|
|
.hword 493
|
|
.hword 0
|
|
.hword 448
|
|
.hword 496
|
|
.hword 0
|
|
.hword 451
|
|
.hword 499
|
|
.hword 0
|
|
.hword 454
|
|
.hword 502
|
|
.hword 0
|
|
.hword 457
|
|
.hword 505
|
|
.hword 0
|
|
.hword 460
|
|
.hword 508
|
|
.hword 0
|
|
.hword 463
|
|
.hword 511
|
|
.hword 0
|
|
.hword 466
|
|
.hword 514
|
|
.hword 0
|
|
.hword 469
|
|
.hword 517
|
|
.hword 0
|
|
.hword 472
|
|
.hword 520
|
|
.hword 0
|
|
.hword 475
|
|
.hword 523
|
|
.hword 0
|
|
.hword 478
|
|
.hword 526
|
|
.hword 0
|
|
.hword 481
|
|
.hword 529
|
|
.hword 0
|
|
.hword 484
|
|
.hword 532
|
|
.hword 0
|
|
.hword 487
|
|
.hword 535
|
|
.hword 0
|
|
.hword 490
|
|
.hword 538
|
|
.hword 0
|
|
.hword 493
|
|
.hword 541
|
|
.hword 0
|
|
.hword 496
|
|
.hword 544
|
|
.hword 0
|
|
.hword 499
|
|
.hword 547
|
|
.hword 0
|
|
.hword 502
|
|
.hword 550
|
|
.hword 0
|
|
.hword 505
|
|
.hword 553
|
|
.hword 0
|
|
.hword 508
|
|
.hword 556
|
|
.hword 0
|
|
.hword 511
|
|
.hword 559
|
|
.hword 0
|
|
.hword 514
|
|
.hword 562
|
|
.hword 0
|
|
.hword 517
|
|
.hword 565
|
|
.hword 0
|
|
.hword 520
|
|
.hword 568
|
|
.hword 0
|
|
.hword 523
|
|
.hword 571
|
|
.hword 0
|
|
.hword 526
|
|
.hword 574
|
|
.hword 0
|
|
.hword 529
|
|
.hword 577
|
|
.hword 0
|
|
.hword 532
|
|
.hword 580
|
|
.hword 0
|
|
.hword 535
|
|
.hword 583
|
|
.hword 0
|
|
.hword 538
|
|
.hword 586
|
|
.hword 0
|
|
.hword 541
|
|
.hword 589
|
|
.hword 0
|
|
.hword 544
|
|
.hword 592
|
|
.hword 0
|
|
.hword 547
|
|
.hword 595
|
|
.hword 0
|
|
.hword 550
|
|
.hword 598
|
|
.hword 0
|
|
.hword 553
|
|
.hword 601
|
|
.hword 0
|
|
.hword 556
|
|
.hword 604
|
|
.hword 0
|
|
.hword 559
|
|
.hword 607
|
|
.hword 0
|
|
.hword 562
|
|
.hword 610
|
|
.hword 0
|
|
.hword 565
|
|
.hword 613
|
|
.hword 0
|
|
.hword 568
|
|
.hword 616
|
|
.hword 0
|
|
.hword 571
|
|
.hword 619
|
|
.hword 0
|
|
.hword 574
|
|
.hword 622
|
|
.hword 0
|
|
.hword 577
|
|
.hword 625
|
|
.hword 0
|
|
.hword 580
|
|
.hword 628
|
|
.hword 0
|
|
.hword 583
|
|
.hword 631
|
|
.hword 0
|
|
.hword 586
|
|
.hword 634
|
|
.hword 0
|
|
.hword 589
|
|
.hword 637
|
|
.hword 0
|
|
.hword 592
|
|
.hword 640
|
|
.hword 0
|
|
.hword 595
|
|
.hword 643
|
|
.hword 0
|
|
.hword 598
|
|
.hword 646
|
|
.hword 0
|
|
.hword 601
|
|
.hword 649
|
|
.hword 0
|
|
.hword 604
|
|
.hword 652
|
|
.hword 0
|
|
.hword 607
|
|
.hword 655
|
|
.hword 0
|
|
.hword 610
|
|
.hword 658
|
|
.hword 0
|
|
.hword 613
|
|
.hword 661
|
|
.hword 0
|
|
.hword 616
|
|
.hword 664
|
|
.hword 0
|
|
.hword 619
|
|
.hword 667
|
|
.hword 0
|
|
.hword 622
|
|
.hword 670
|
|
.hword 0
|
|
.hword 625
|
|
.hword 673
|
|
.hword 0
|
|
.hword 628
|
|
.hword 676
|
|
.hword 0
|
|
.hword 631
|
|
.hword 679
|
|
.hword 0
|
|
.hword 634
|
|
.hword 682
|
|
.hword 0
|
|
.hword 637
|
|
.hword 685
|
|
.hword 0
|
|
.hword 640
|
|
.hword 688
|
|
.hword 0
|
|
.hword 643
|
|
.hword 691
|
|
.hword 0
|
|
.hword 646
|
|
.hword 694
|
|
.hword 0
|
|
.hword 649
|
|
.hword 697
|
|
.hword 0
|
|
.hword 652
|
|
.hword 700
|
|
.hword 0
|
|
.hword 655
|
|
.hword 703
|
|
.hword 0
|
|
.hword 658
|
|
.hword 706
|
|
.hword 0
|
|
.hword 661
|
|
.hword 709
|
|
.hword 0
|
|
.hword 664
|
|
.hword 712
|
|
.hword 0
|
|
.hword 667
|
|
.hword 715
|
|
.hword 0
|
|
.hword 670
|
|
.hword 718
|
|
.hword 0
|
|
.hword 673
|
|
.hword 721
|
|
.hword 0
|
|
.hword 676
|
|
.hword 724
|
|
.hword 0
|
|
.hword 679
|
|
.hword 727
|
|
.hword 0
|
|
.hword 682
|
|
.hword 730
|
|
.hword 0
|
|
.hword 685
|
|
.hword 733
|
|
.hword 0
|
|
.hword 688
|
|
.hword 736
|
|
.hword 0
|
|
.hword 691
|
|
.hword 739
|
|
.hword 0
|
|
.hword 694
|
|
.hword 742
|
|
.hword 0
|
|
.hword 697
|
|
.hword 745
|
|
.hword 0
|
|
.hword 700
|
|
.hword 748
|
|
.hword 0
|
|
.hword 703
|
|
.hword 751
|
|
.hword 0
|
|
.hword 706
|
|
.hword 0
|
|
.hword 709
|
|
.hword 0
|
|
.hword 712
|
|
.hword 0
|
|
.hword 715
|
|
.hword 0
|
|
.hword 718
|
|
.hword 0
|
|
.hword 721
|
|
.hword 0
|
|
.hword 724
|
|
.hword 0
|
|
.hword 727
|
|
.hword 0
|
|
.section .data.tlc_prog_order,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR236,. + 0
|
|
.type tlc_prog_order, %object
|
|
.size tlc_prog_order, 768
|
|
tlc_prog_order:
|
|
.hword 1
|
|
.hword 9
|
|
.hword 2
|
|
.hword 17
|
|
.hword 10
|
|
.hword 3
|
|
.hword 25
|
|
.hword 18
|
|
.hword 11
|
|
.hword 33
|
|
.hword 26
|
|
.hword 19
|
|
.hword 41
|
|
.hword 34
|
|
.hword 27
|
|
.hword 49
|
|
.hword 42
|
|
.hword 35
|
|
.hword 57
|
|
.hword 50
|
|
.hword 43
|
|
.hword 65
|
|
.hword 58
|
|
.hword 51
|
|
.hword 73
|
|
.hword 66
|
|
.hword 59
|
|
.hword 81
|
|
.hword 74
|
|
.hword 67
|
|
.hword 89
|
|
.hword 82
|
|
.hword 75
|
|
.hword 97
|
|
.hword 90
|
|
.hword 83
|
|
.hword 105
|
|
.hword 98
|
|
.hword 91
|
|
.hword 113
|
|
.hword 106
|
|
.hword 99
|
|
.hword 121
|
|
.hword 114
|
|
.hword 107
|
|
.hword 129
|
|
.hword 122
|
|
.hword 115
|
|
.hword 137
|
|
.hword 130
|
|
.hword 123
|
|
.hword 145
|
|
.hword 138
|
|
.hword 131
|
|
.hword 153
|
|
.hword 146
|
|
.hword 139
|
|
.hword 161
|
|
.hword 154
|
|
.hword 147
|
|
.hword 169
|
|
.hword 162
|
|
.hword 155
|
|
.hword 177
|
|
.hword 170
|
|
.hword 163
|
|
.hword 185
|
|
.hword 178
|
|
.hword 171
|
|
.hword 193
|
|
.hword 186
|
|
.hword 179
|
|
.hword 201
|
|
.hword 194
|
|
.hword 187
|
|
.hword 209
|
|
.hword 202
|
|
.hword 195
|
|
.hword 217
|
|
.hword 210
|
|
.hword 203
|
|
.hword 225
|
|
.hword 218
|
|
.hword 211
|
|
.hword 233
|
|
.hword 226
|
|
.hword 219
|
|
.hword 241
|
|
.hword 234
|
|
.hword 227
|
|
.hword 249
|
|
.hword 242
|
|
.hword 235
|
|
.hword 257
|
|
.hword 250
|
|
.hword 243
|
|
.hword 265
|
|
.hword 258
|
|
.hword 251
|
|
.hword 273
|
|
.hword 266
|
|
.hword 259
|
|
.hword 281
|
|
.hword 274
|
|
.hword 267
|
|
.hword 289
|
|
.hword 282
|
|
.hword 275
|
|
.hword 297
|
|
.hword 290
|
|
.hword 283
|
|
.hword 305
|
|
.hword 298
|
|
.hword 291
|
|
.hword 313
|
|
.hword 306
|
|
.hword 299
|
|
.hword 321
|
|
.hword 314
|
|
.hword 307
|
|
.hword 329
|
|
.hword 322
|
|
.hword 315
|
|
.hword 337
|
|
.hword 330
|
|
.hword 323
|
|
.hword 345
|
|
.hword 338
|
|
.hword 331
|
|
.hword 353
|
|
.hword 346
|
|
.hword 339
|
|
.hword 361
|
|
.hword 354
|
|
.hword 347
|
|
.hword 369
|
|
.hword 362
|
|
.hword 355
|
|
.hword 377
|
|
.hword 370
|
|
.hword 363
|
|
.hword 385
|
|
.hword 378
|
|
.hword 371
|
|
.hword 393
|
|
.hword 386
|
|
.hword 379
|
|
.hword 401
|
|
.hword 394
|
|
.hword 387
|
|
.hword 409
|
|
.hword 402
|
|
.hword 395
|
|
.hword 417
|
|
.hword 410
|
|
.hword 403
|
|
.hword 425
|
|
.hword 418
|
|
.hword 411
|
|
.hword 433
|
|
.hword 426
|
|
.hword 419
|
|
.hword 441
|
|
.hword 434
|
|
.hword 427
|
|
.hword 449
|
|
.hword 442
|
|
.hword 435
|
|
.hword 457
|
|
.hword 450
|
|
.hword 443
|
|
.hword 465
|
|
.hword 458
|
|
.hword 451
|
|
.hword 473
|
|
.hword 466
|
|
.hword 459
|
|
.hword 481
|
|
.hword 474
|
|
.hword 467
|
|
.hword 489
|
|
.hword 482
|
|
.hword 475
|
|
.hword 497
|
|
.hword 490
|
|
.hword 483
|
|
.hword 505
|
|
.hword 498
|
|
.hword 491
|
|
.hword 513
|
|
.hword 506
|
|
.hword 499
|
|
.hword 521
|
|
.hword 514
|
|
.hword 507
|
|
.hword 529
|
|
.hword 522
|
|
.hword 515
|
|
.hword 537
|
|
.hword 530
|
|
.hword 523
|
|
.hword 545
|
|
.hword 538
|
|
.hword 531
|
|
.hword 553
|
|
.hword 546
|
|
.hword 539
|
|
.hword 561
|
|
.hword 554
|
|
.hword 547
|
|
.hword 569
|
|
.hword 562
|
|
.hword 555
|
|
.hword 577
|
|
.hword 570
|
|
.hword 563
|
|
.hword 585
|
|
.hword 578
|
|
.hword 571
|
|
.hword 593
|
|
.hword 586
|
|
.hword 579
|
|
.hword 601
|
|
.hword 594
|
|
.hword 587
|
|
.hword 609
|
|
.hword 602
|
|
.hword 595
|
|
.hword 617
|
|
.hword 610
|
|
.hword 603
|
|
.hword 625
|
|
.hword 618
|
|
.hword 611
|
|
.hword 633
|
|
.hword 626
|
|
.hword 619
|
|
.hword 641
|
|
.hword 634
|
|
.hword 627
|
|
.hword 649
|
|
.hword 642
|
|
.hword 635
|
|
.hword 657
|
|
.hword 650
|
|
.hword 643
|
|
.hword 665
|
|
.hword 658
|
|
.hword 651
|
|
.hword 673
|
|
.hword 666
|
|
.hword 659
|
|
.hword 681
|
|
.hword 674
|
|
.hword 667
|
|
.hword 689
|
|
.hword 682
|
|
.hword 675
|
|
.hword 697
|
|
.hword 690
|
|
.hword 683
|
|
.hword 705
|
|
.hword 698
|
|
.hword 691
|
|
.hword 713
|
|
.hword 706
|
|
.hword 699
|
|
.hword 721
|
|
.hword 714
|
|
.hword 707
|
|
.hword 729
|
|
.hword 722
|
|
.hword 715
|
|
.hword 737
|
|
.hword 730
|
|
.hword 723
|
|
.hword 745
|
|
.hword 738
|
|
.hword 731
|
|
.hword 753
|
|
.hword 746
|
|
.hword 739
|
|
.hword 761
|
|
.hword 754
|
|
.hword 747
|
|
.hword 769
|
|
.hword 762
|
|
.hword 755
|
|
.hword 777
|
|
.hword 770
|
|
.hword 763
|
|
.hword 785
|
|
.hword 778
|
|
.hword 771
|
|
.hword 793
|
|
.hword 786
|
|
.hword 779
|
|
.hword 801
|
|
.hword 794
|
|
.hword 787
|
|
.hword 809
|
|
.hword 802
|
|
.hword 795
|
|
.hword 817
|
|
.hword 810
|
|
.hword 803
|
|
.hword 825
|
|
.hword 818
|
|
.hword 811
|
|
.hword 833
|
|
.hword 826
|
|
.hword 819
|
|
.hword 841
|
|
.hword 834
|
|
.hword 827
|
|
.hword 849
|
|
.hword 842
|
|
.hword 835
|
|
.hword 857
|
|
.hword 850
|
|
.hword 843
|
|
.hword 865
|
|
.hword 858
|
|
.hword 851
|
|
.hword 873
|
|
.hword 866
|
|
.hword 859
|
|
.hword 881
|
|
.hword 874
|
|
.hword 867
|
|
.hword 889
|
|
.hword 882
|
|
.hword 875
|
|
.hword 897
|
|
.hword 890
|
|
.hword 883
|
|
.hword 905
|
|
.hword 898
|
|
.hword 891
|
|
.hword 913
|
|
.hword 906
|
|
.hword 899
|
|
.hword 921
|
|
.hword 914
|
|
.hword 907
|
|
.hword 929
|
|
.hword 922
|
|
.hword 915
|
|
.hword 937
|
|
.hword 930
|
|
.hword 923
|
|
.hword 945
|
|
.hword 938
|
|
.hword 931
|
|
.hword 953
|
|
.hword 946
|
|
.hword 939
|
|
.hword 961
|
|
.hword 954
|
|
.hword 947
|
|
.hword 969
|
|
.hword 962
|
|
.hword 955
|
|
.hword 977
|
|
.hword 970
|
|
.hword 963
|
|
.hword 985
|
|
.hword 978
|
|
.hword 971
|
|
.hword 993
|
|
.hword 986
|
|
.hword 979
|
|
.hword 1001
|
|
.hword 994
|
|
.hword 987
|
|
.hword 1009
|
|
.hword 1002
|
|
.hword 995
|
|
.hword 1017
|
|
.hword 1010
|
|
.hword 1003
|
|
.hword 1018
|
|
.hword 1011
|
|
.hword 1019
|
|
.section .data.zftl_debug,"aw",@progbits
|
|
.align 2
|
|
.set .LANCHOR19,. + 0
|
|
.type zftl_debug, %object
|
|
.size zftl_debug, 4
|
|
zftl_debug:
|
|
.word 17476
|
|
.section .data.zftl_nand_flash_para_tbl,"aw",@progbits
|
|
.align 3
|
|
.set .LANCHOR214,. + 0
|
|
.type zftl_nand_flash_para_tbl, %object
|
|
.size zftl_nand_flash_para_tbl, 1568
|
|
zftl_nand_flash_para_tbl:
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -104
|
|
.byte -77
|
|
.byte 118
|
|
.byte 114
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 768
|
|
.byte 3
|
|
.byte 2
|
|
.hword 758
|
|
.hword 5593
|
|
.byte 0
|
|
.byte 37
|
|
.byte 60
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte 60
|
|
.byte -104
|
|
.byte -77
|
|
.byte 118
|
|
.byte 114
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 768
|
|
.byte 3
|
|
.byte 2
|
|
.hword 1478
|
|
.hword 5593
|
|
.byte 0
|
|
.byte 37
|
|
.byte 60
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -104
|
|
.byte -93
|
|
.byte 118
|
|
.byte 81
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 384
|
|
.byte 3
|
|
.byte 2
|
|
.hword 1446
|
|
.hword 1497
|
|
.byte 0
|
|
.byte 36
|
|
.byte 60
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 81
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1074
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 35
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -34
|
|
.byte -124
|
|
.byte -109
|
|
.byte 114
|
|
.byte 87
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2092
|
|
.hword 17857
|
|
.byte 2
|
|
.byte 33
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 81
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 2106
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 35
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -41
|
|
.byte -124
|
|
.byte -109
|
|
.byte 114
|
|
.byte 81
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1056
|
|
.hword 17857
|
|
.byte 2
|
|
.byte 35
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -41
|
|
.byte -124
|
|
.byte -109
|
|
.byte 114
|
|
.byte 80
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1060
|
|
.hword 17857
|
|
.byte 2
|
|
.byte 34
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 80
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1066
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 34
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -41
|
|
.byte -124
|
|
.byte -109
|
|
.byte 114
|
|
.byte 87
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1060
|
|
.hword 17857
|
|
.byte 2
|
|
.byte 33
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 87
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1058
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 33
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -104
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte -47
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1074
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 35
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 69
|
|
.byte 58
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 81
|
|
.byte 8
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 2106
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 68
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 69
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 81
|
|
.byte 8
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1074
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 68
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 69
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 87
|
|
.byte 8
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1058
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 66
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 4
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 69
|
|
.byte -34
|
|
.byte -108
|
|
.byte -109
|
|
.byte 118
|
|
.byte 80
|
|
.byte 8
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1066
|
|
.hword 17881
|
|
.byte 2
|
|
.byte 67
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 69
|
|
.byte -41
|
|
.byte -124
|
|
.byte -109
|
|
.byte 114
|
|
.byte 87
|
|
.byte 8
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1060
|
|
.hword 17857
|
|
.byte 2
|
|
.byte 66
|
|
.byte 40
|
|
.byte 32
|
|
.byte 2
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 1
|
|
.byte -94
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte 100
|
|
.byte 68
|
|
.byte 50
|
|
.byte -91
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1048
|
|
.hword 9671
|
|
.byte 5
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 512
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte 100
|
|
.byte 100
|
|
.byte 86
|
|
.byte -91
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 24
|
|
.hword 512
|
|
.byte 2
|
|
.byte 2
|
|
.hword 700
|
|
.hword 479
|
|
.byte 4
|
|
.byte 18
|
|
.byte 60
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte 68
|
|
.byte 68
|
|
.byte 75
|
|
.byte -87
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1064
|
|
.hword 479
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 100
|
|
.byte 84
|
|
.byte -87
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1024
|
|
.hword 479
|
|
.byte 4
|
|
.byte 18
|
|
.byte 60
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 5
|
|
.byte 44
|
|
.byte 100
|
|
.byte 100
|
|
.byte 84
|
|
.byte -92
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1024
|
|
.hword 455
|
|
.byte 4
|
|
.byte 18
|
|
.byte 60
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte 100
|
|
.byte 68
|
|
.byte 75
|
|
.byte -87
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 4
|
|
.hword 1024
|
|
.hword 449
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 100
|
|
.byte 60
|
|
.byte -91
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1024
|
|
.hword 479
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 68
|
|
.byte 52
|
|
.byte -92
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2184
|
|
.hword 9671
|
|
.byte 5
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 512
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte 100
|
|
.byte 100
|
|
.byte 60
|
|
.byte -91
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1044
|
|
.hword 471
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 68
|
|
.byte 50
|
|
.byte -86
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2184
|
|
.hword 9671
|
|
.byte 5
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 512
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte -60
|
|
.byte 52
|
|
.byte -86
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2184
|
|
.hword 9671
|
|
.byte 5
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 512
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 68
|
|
.byte 52
|
|
.byte -86
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2184
|
|
.hword 9671
|
|
.byte 5
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 512
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 6
|
|
.byte -101
|
|
.byte 73
|
|
.byte 1
|
|
.byte 0
|
|
.byte -101
|
|
.byte 73
|
|
.byte 9
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2144
|
|
.hword -23097
|
|
.byte 8
|
|
.byte 21
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.hword 256
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 100
|
|
.byte 60
|
|
.byte -87
|
|
.byte 4
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1024
|
|
.hword 479
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 1
|
|
.byte 5
|
|
.byte 44
|
|
.byte -124
|
|
.byte 88
|
|
.byte 50
|
|
.byte -95
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 768
|
|
.byte 3
|
|
.byte 1
|
|
.hword 1440
|
|
.hword 3527
|
|
.byte 0
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 1024
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 6
|
|
.byte 44
|
|
.byte -92
|
|
.byte 8
|
|
.byte 50
|
|
.byte -95
|
|
.byte 0
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 2304
|
|
.byte 3
|
|
.byte 1
|
|
.hword 1008
|
|
.hword 3521
|
|
.byte 0
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 4096
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 6
|
|
.byte 44
|
|
.byte -92
|
|
.byte 100
|
|
.byte 50
|
|
.byte -86
|
|
.byte 4
|
|
.byte 4
|
|
.byte 1
|
|
.byte 32
|
|
.hword 1024
|
|
.byte 2
|
|
.byte 1
|
|
.hword 2192
|
|
.hword 9671
|
|
.byte 10
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 1024
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.byte 6
|
|
.byte -101
|
|
.byte -61
|
|
.byte 72
|
|
.byte 37
|
|
.byte 16
|
|
.byte 0
|
|
.byte 9
|
|
.byte 1
|
|
.byte 32
|
|
.hword 1152
|
|
.byte 3
|
|
.byte 2
|
|
.hword 1006
|
|
.hword -27169
|
|
.byte 13
|
|
.byte 81
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.hword 2048
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 24
|
|
.byte 6
|
|
.byte -83
|
|
.byte -34
|
|
.byte 20
|
|
.byte -85
|
|
.byte 66
|
|
.byte 74
|
|
.byte 2
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1056
|
|
.hword 455
|
|
.byte 2
|
|
.byte 6
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 2
|
|
.byte -65
|
|
.byte -66
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte -34
|
|
.byte -108
|
|
.byte -21
|
|
.byte 116
|
|
.byte 68
|
|
.byte 2
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1066
|
|
.hword 473
|
|
.byte 1
|
|
.byte 7
|
|
.byte 40
|
|
.byte 32
|
|
.byte 4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte -34
|
|
.byte 20
|
|
.byte -89
|
|
.byte 66
|
|
.byte 74
|
|
.byte 2
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1060
|
|
.hword 473
|
|
.byte 2
|
|
.byte 5
|
|
.byte 40
|
|
.byte 32
|
|
.byte 4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 2
|
|
.byte -65
|
|
.byte -66
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte -41
|
|
.byte -108
|
|
.byte -111
|
|
.byte 96
|
|
.byte 68
|
|
.byte 2
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1046
|
|
.hword 473
|
|
.byte 1
|
|
.byte 3
|
|
.byte 40
|
|
.byte 32
|
|
.byte 4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte 58
|
|
.byte 20
|
|
.byte -85
|
|
.byte 66
|
|
.byte 74
|
|
.byte 2
|
|
.byte 1
|
|
.byte 32
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 2092
|
|
.hword 473
|
|
.byte 2
|
|
.byte 5
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte -41
|
|
.byte 20
|
|
.byte -98
|
|
.byte 52
|
|
.byte 74
|
|
.byte 2
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1056
|
|
.hword 473
|
|
.byte 2
|
|
.byte 5
|
|
.byte 40
|
|
.byte 32
|
|
.byte 4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -83
|
|
.byte 58
|
|
.byte 20
|
|
.byte 3
|
|
.byte 8
|
|
.byte 80
|
|
.byte 2
|
|
.byte 1
|
|
.byte 32
|
|
.hword 388
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1362
|
|
.hword 473
|
|
.byte 9
|
|
.byte 8
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 3
|
|
.byte 0
|
|
.hword 512
|
|
.byte 0
|
|
.byte -65
|
|
.byte -66
|
|
.byte 1
|
|
.byte 5
|
|
.byte -119
|
|
.byte 100
|
|
.byte 100
|
|
.byte 60
|
|
.byte -95
|
|
.byte 0
|
|
.byte 7
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 1
|
|
.hword 1024
|
|
.hword 455
|
|
.byte 4
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte -119
|
|
.byte -124
|
|
.byte 100
|
|
.byte 60
|
|
.byte -91
|
|
.byte 0
|
|
.byte 7
|
|
.byte 1
|
|
.byte 32
|
|
.hword 512
|
|
.byte 2
|
|
.byte 2
|
|
.hword 1024
|
|
.hword 455
|
|
.byte 4
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 512
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -119
|
|
.byte 100
|
|
.byte 68
|
|
.byte 75
|
|
.byte -87
|
|
.byte 0
|
|
.byte 7
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 4
|
|
.hword 1024
|
|
.hword 449
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -119
|
|
.byte -120
|
|
.byte 36
|
|
.byte 75
|
|
.byte -87
|
|
.byte -124
|
|
.byte 7
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 4
|
|
.hword 1024
|
|
.hword 449
|
|
.byte 3
|
|
.byte 17
|
|
.byte 40
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -119
|
|
.byte -120
|
|
.byte 4
|
|
.byte 75
|
|
.byte -87
|
|
.byte 0
|
|
.byte 7
|
|
.byte 1
|
|
.byte 16
|
|
.hword 256
|
|
.byte 2
|
|
.byte 4
|
|
.hword 1024
|
|
.hword 449
|
|
.byte 1
|
|
.byte 0
|
|
.byte 24
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 256
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte -119
|
|
.byte -92
|
|
.byte 8
|
|
.byte 50
|
|
.byte -95
|
|
.byte 0
|
|
.byte 7
|
|
.byte 1
|
|
.byte 32
|
|
.hword 2304
|
|
.byte 3
|
|
.byte 1
|
|
.hword 1008
|
|
.hword 3521
|
|
.byte 0
|
|
.byte 19
|
|
.byte 70
|
|
.byte 32
|
|
.byte 1
|
|
.byte 0
|
|
.byte 1
|
|
.byte 0
|
|
.hword 4096
|
|
.byte 3
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 6
|
|
.byte -20
|
|
.byte -34
|
|
.byte -108
|
|
.byte -61
|
|
.byte -92
|
|
.byte -54
|
|
.byte 0
|
|
.byte 1
|
|
.byte 32
|
|
.hword 792
|
|
.byte 2
|
|
.byte 1
|
|
.hword 688
|
|
.hword 1217
|
|
.byte 11
|
|
.byte 50
|
|
.byte 40
|
|
.byte 32
|
|
.byte 3
|
|
.byte 1
|
|
.byte 1
|
|
.byte 0
|
|
.hword 1024
|
|
.byte 1
|
|
.byte -38
|
|
.byte -33
|
|
.byte 0
|
|
.section .rodata.__func__.10004,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR242,. + 0
|
|
.type __func__.10004, %object
|
|
.size __func__.10004, 13
|
|
__func__.10004:
|
|
.string "_ftl_discard"
|
|
.section .rodata.__func__.10150,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR225,. + 0
|
|
.type __func__.10150, %object
|
|
.size __func__.10150, 12
|
|
__func__.10150:
|
|
.string "gc_recovery"
|
|
.section .rodata.__func__.10160,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR71,. + 0
|
|
.type __func__.10160, %object
|
|
.size __func__.10160, 12
|
|
__func__.10160:
|
|
.string "gc_add_sblk"
|
|
.section .rodata.__func__.10207,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR185,. + 0
|
|
.type __func__.10207, %object
|
|
.size __func__.10207, 21
|
|
__func__.10207:
|
|
.string "gc_check_data_one_wl"
|
|
.section .rodata.__func__.10239,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR226,. + 0
|
|
.type __func__.10239, %object
|
|
.size __func__.10239, 22
|
|
__func__.10239:
|
|
.string "gc_update_l2p_map_new"
|
|
.section .rodata.__func__.10252,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR77,. + 0
|
|
.type __func__.10252, %object
|
|
.size __func__.10252, 19
|
|
__func__.10252:
|
|
.string "gc_write_completed"
|
|
.section .rodata.__func__.10282,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR234,. + 0
|
|
.type __func__.10282, %object
|
|
.size __func__.10282, 16
|
|
__func__.10282:
|
|
.string "gc_do_copy_back"
|
|
.section .rodata.__func__.10309,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR127,. + 0
|
|
.type __func__.10309, %object
|
|
.size __func__.10309, 16
|
|
__func__.10309:
|
|
.string "gc_free_src_blk"
|
|
.section .rodata.__func__.10353,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR227,. + 0
|
|
.type __func__.10353, %object
|
|
.size __func__.10353, 16
|
|
__func__.10353:
|
|
.string "gc_scan_src_blk"
|
|
.section .rodata.__func__.10414,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR228,. + 0
|
|
.type __func__.10414, %object
|
|
.size __func__.10414, 20
|
|
__func__.10414:
|
|
.string "gc_scan_static_data"
|
|
.section .rodata.__func__.10508,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR237,. + 0
|
|
.type __func__.10508, %object
|
|
.size __func__.10508, 11
|
|
__func__.10508:
|
|
.string "zftl_do_gc"
|
|
.section .rodata.__func__.10603,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR5,. + 0
|
|
.type __func__.10603, %object
|
|
.size __func__.10603, 18
|
|
__func__.10603:
|
|
.string "_list_remove_node"
|
|
.section .rodata.__func__.10628,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR13,. + 0
|
|
.type __func__.10628, %object
|
|
.size __func__.10628, 23
|
|
__func__.10628:
|
|
.string "_list_update_data_list"
|
|
.section .rodata.__func__.10703,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR151,. + 0
|
|
.type __func__.10703, %object
|
|
.size __func__.10703, 20
|
|
__func__.10703:
|
|
.string "zftl_sblk_list_init"
|
|
.section .rodata.__func__.10737,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR193,. + 0
|
|
.type __func__.10737, %object
|
|
.size __func__.10737, 15
|
|
__func__.10737:
|
|
.string "ftl_info_flush"
|
|
.section .rodata.__func__.10792,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR200,. + 0
|
|
.type __func__.10792, %object
|
|
.size __func__.10792, 15
|
|
__func__.10792:
|
|
.string "ftl_alloc_sblk"
|
|
.section .rodata.__func__.10834,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR113,. + 0
|
|
.type __func__.10834, %object
|
|
.size __func__.10834, 18
|
|
__func__.10834:
|
|
.string "ftl_alloc_sys_blk"
|
|
.section .rodata.__func__.10844,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR114,. + 0
|
|
.type __func__.10844, %object
|
|
.size __func__.10844, 17
|
|
__func__.10844:
|
|
.string "ftl_free_sys_blk"
|
|
.section .rodata.__func__.10879,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR229,. + 0
|
|
.type __func__.10879, %object
|
|
.size __func__.10879, 14
|
|
__func__.10879:
|
|
.string "ftl_sblk_dump"
|
|
.section .rodata.__func__.10903,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR218,. + 0
|
|
.type __func__.10903, %object
|
|
.size __func__.10903, 16
|
|
__func__.10903:
|
|
.string "ftl_sysblk_dump"
|
|
.section .rodata.__func__.10928,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR219,. + 0
|
|
.type __func__.10928, %object
|
|
.size __func__.10928, 23
|
|
__func__.10928:
|
|
.string "ftl_open_sblk_recovery"
|
|
.section .rodata.__func__.10961,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR115,. + 0
|
|
.type __func__.10961, %object
|
|
.size __func__.10961, 23
|
|
__func__.10961:
|
|
.string "ftl_get_ppa_from_index"
|
|
.section .rodata.__func__.10982,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR231,. + 0
|
|
.type __func__.10982, %object
|
|
.size __func__.10982, 19
|
|
__func__.10982:
|
|
.string "ftl_update_l2p_map"
|
|
.section .rodata.__func__.11001,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR119,. + 0
|
|
.type __func__.11001, %object
|
|
.size __func__.11001, 22
|
|
__func__.11001:
|
|
.string "ftl_get_new_free_page"
|
|
.section .rodata.__func__.11012,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR120,. + 0
|
|
.type __func__.11012, %object
|
|
.size __func__.11012, 22
|
|
__func__.11012:
|
|
.string "ftl_ext_alloc_new_blk"
|
|
.section .rodata.__func__.11038,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR198,. + 0
|
|
.type __func__.11038, %object
|
|
.size __func__.11038, 19
|
|
__func__.11038:
|
|
.string "ftl_ext_info_flush"
|
|
.section .rodata.__func__.11050,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR199,. + 0
|
|
.type __func__.11050, %object
|
|
.size __func__.11050, 18
|
|
__func__.11050:
|
|
.string "ftl_ext_info_init"
|
|
.section .rodata.__func__.11089,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR201,. + 0
|
|
.type __func__.11089, %object
|
|
.size __func__.11089, 25
|
|
__func__.11089:
|
|
.string "ftl_low_format_data_init"
|
|
.section .rodata.__func__.11104,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR203,. + 0
|
|
.type __func__.11104, %object
|
|
.size __func__.11104, 15
|
|
__func__.11104:
|
|
.string "ftl_low_format"
|
|
.section .rodata.__func__.11152,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR189,. + 0
|
|
.type __func__.11152, %object
|
|
.size __func__.11152, 14
|
|
__func__.11152:
|
|
.string "ftl_prog_page"
|
|
.section .rodata.__func__.11275,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR180,. + 0
|
|
.type __func__.11275, %object
|
|
.size __func__.11275, 31
|
|
__func__.11275:
|
|
.string "queue_wait_first_req_completed"
|
|
.section .rodata.__func__.11329,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR181,. + 0
|
|
.type __func__.11329, %object
|
|
.size __func__.11329, 15
|
|
__func__.11329:
|
|
.string "sblk_prog_page"
|
|
.section .rodata.__func__.11356,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR184,. + 0
|
|
.type __func__.11356, %object
|
|
.size __func__.11356, 15
|
|
__func__.11356:
|
|
.string "sblk_read_page"
|
|
.section .rodata.__func__.11426,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR220,. + 0
|
|
.type __func__.11426, %object
|
|
.size __func__.11426, 16
|
|
__func__.11426:
|
|
.string "load_l2p_region"
|
|
.section .rodata.__func__.11442,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR153,. + 0
|
|
.type __func__.11442, %object
|
|
.size __func__.11442, 13
|
|
__func__.11442:
|
|
.string "pm_free_sblk"
|
|
.section .rodata.__func__.11466,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR222,. + 0
|
|
.type __func__.11466, %object
|
|
.size __func__.11466, 6
|
|
__func__.11466:
|
|
.string "pm_gc"
|
|
.section .rodata.__func__.11482,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR205,. + 0
|
|
.type __func__.11482, %object
|
|
.size __func__.11482, 17
|
|
__func__.11482:
|
|
.string "pm_alloc_new_blk"
|
|
.section .rodata.__func__.11492,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR206,. + 0
|
|
.type __func__.11492, %object
|
|
.size __func__.11492, 14
|
|
__func__.11492:
|
|
.string "pm_write_page"
|
|
.section .rodata.__func__.11510,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR137,. + 0
|
|
.type __func__.11510, %object
|
|
.size __func__.11510, 21
|
|
__func__.11510:
|
|
.string "pm_select_ram_region"
|
|
.section .rodata.__func__.8803,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR170,. + 0
|
|
.type __func__.8803, %object
|
|
.size __func__.8803, 19
|
|
__func__.8803:
|
|
.string "flash_read_page_en"
|
|
.section .rodata.__func__.8864,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR186,. + 0
|
|
.type __func__.8864, %object
|
|
.size __func__.8864, 19
|
|
__func__.8864:
|
|
.string "flash_prog_page_en"
|
|
.section .rodata.__func__.8880,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR43,. + 0
|
|
.type __func__.8880, %object
|
|
.size __func__.8880, 26
|
|
__func__.8880:
|
|
.string "flash_erase_duplane_block"
|
|
.section .rodata.__func__.8891,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR45,. + 0
|
|
.type __func__.8891, %object
|
|
.size __func__.8891, 21
|
|
__func__.8891:
|
|
.string "flash_erase_block_en"
|
|
.section .rodata.__func__.8905,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR28,. + 0
|
|
.type __func__.8905, %object
|
|
.size __func__.8905, 28
|
|
__func__.8905:
|
|
.string "flash_wait_device_ready_raw"
|
|
.section .rodata.__func__.8929,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR175,. + 0
|
|
.type __func__.8929, %object
|
|
.size __func__.8929, 26
|
|
__func__.8929:
|
|
.string "flash_start_tlc_page_prog"
|
|
.section .rodata.__func__.8940,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR176,. + 0
|
|
.type __func__.8940, %object
|
|
.size __func__.8940, 29
|
|
__func__.8940:
|
|
.string "flash_start_3d_mlc_page_prog"
|
|
.section .rodata.__func__.8958,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR177,. + 0
|
|
.type __func__.8958, %object
|
|
.size __func__.8958, 22
|
|
__func__.8958:
|
|
.string "flash_start_page_prog"
|
|
.section .rodata.__func__.8969,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR34,. + 0
|
|
.type __func__.8969, %object
|
|
.size __func__.8969, 22
|
|
__func__.8969:
|
|
.string "flash_start_page_read"
|
|
.section .rodata.__func__.8982,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR178,. + 0
|
|
.type __func__.8982, %object
|
|
.size __func__.8982, 31
|
|
__func__.8982:
|
|
.string "flash_complete_plane_page_read"
|
|
.section .rodata.__func__.8994,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR46,. + 0
|
|
.type __func__.8994, %object
|
|
.size __func__.8994, 23
|
|
__func__.8994:
|
|
.string "flash_start_plane_read"
|
|
.section .rodata.__func__.9007,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR179,. + 0
|
|
.type __func__.9007, %object
|
|
.size __func__.9007, 25
|
|
__func__.9007:
|
|
.string "flash_complete_page_read"
|
|
.section .rodata.__func__.9422,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR143,. + 0
|
|
.type __func__.9422, %object
|
|
.size __func__.9422, 20
|
|
__func__.9422:
|
|
.string "flash_die_info_init"
|
|
.section .rodata.__func__.9432,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR20,. + 0
|
|
.type __func__.9432, %object
|
|
.size __func__.9432, 22
|
|
__func__.9432:
|
|
.string "nand_flash_print_info"
|
|
.section .rodata.__func__.9477,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR213,. + 0
|
|
.type __func__.9477, %object
|
|
.size __func__.9477, 16
|
|
__func__.9477:
|
|
.string "nand_flash_init"
|
|
.section .rodata.__func__.9500,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR155,. + 0
|
|
.type __func__.9500, %object
|
|
.size __func__.9500, 11
|
|
__func__.9500:
|
|
.string "nandc_init"
|
|
.section .rodata.__func__.9665,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR58,. + 0
|
|
.type __func__.9665, %object
|
|
.size __func__.9665, 13
|
|
__func__.9665:
|
|
.string "buf_add_tail"
|
|
.section .rodata.__func__.9678,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR60,. + 0
|
|
.type __func__.9678, %object
|
|
.size __func__.9678, 10
|
|
__func__.9678:
|
|
.string "buf_alloc"
|
|
.section .rodata.__func__.9692,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR61,. + 0
|
|
.type __func__.9692, %object
|
|
.size __func__.9692, 16
|
|
__func__.9692:
|
|
.string "buf_remove_free"
|
|
.section .rodata.__func__.9713,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR212,. + 0
|
|
.type __func__.9713, %object
|
|
.size __func__.9713, 20
|
|
__func__.9713:
|
|
.string "flash_info_blk_init"
|
|
.section .rodata.__func__.9728,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR154,. + 0
|
|
.type __func__.9728, %object
|
|
.size __func__.9728, 21
|
|
__func__.9728:
|
|
.string "flash_info_data_init"
|
|
.section .rodata.__func__.9750,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR209,. + 0
|
|
.type __func__.9750, %object
|
|
.size __func__.9750, 17
|
|
__func__.9750:
|
|
.string "flash_info_flush"
|
|
.section .rodata.__func__.9826,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR147,. + 0
|
|
.type __func__.9826, %object
|
|
.size __func__.9826, 17
|
|
__func__.9826:
|
|
.string "lpa_rebuild_hash"
|
|
.section .rodata.__func__.9876,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR232,. + 0
|
|
.type __func__.9876, %object
|
|
.size __func__.9876, 17
|
|
__func__.9876:
|
|
.string "ftl_write_commit"
|
|
.section .rodata.__func__.9894,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR130,. + 0
|
|
.type __func__.9894, %object
|
|
.size __func__.9894, 14
|
|
__func__.9894:
|
|
.string "ftl_write_buf"
|
|
.section .rodata.__func__.9939,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR132,. + 0
|
|
.type __func__.9939, %object
|
|
.size __func__.9939, 18
|
|
__func__.9939:
|
|
.string "zftl_add_read_buf"
|
|
.section .rodata.__func__.9972,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR230,. + 0
|
|
.type __func__.9972, %object
|
|
.size __func__.9972, 10
|
|
__func__.9972:
|
|
.string "zftl_read"
|
|
.section .rodata._list_remove_node.str1.1,"aMS",@progbits,1
|
|
.LC0:
|
|
.string "\n!!!!! error @ func:%s - line:%d\n"
|
|
.section .rodata.dump_buf_info.str1.1,"aMS",@progbits,1
|
|
.LC41:
|
|
.string "sblk_queue_head = %d\n"
|
|
.LC42:
|
|
.string "sblk_read_completed_queue_head = %d\n"
|
|
.LC43:
|
|
.string "sblk_gc_write_completed_queue_head = %d\n"
|
|
.LC44:
|
|
.string "sblk_write_completed_queue_head = %d\n"
|
|
.LC45:
|
|
.string "p_free_buf_head = %d\n"
|
|
.LC46:
|
|
.string "free_buf_count = %d\n"
|
|
.LC47:
|
|
.string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n"
|
|
.section .rodata.dump_ftl_info.str1.1,"aMS",@progbits,1
|
|
.LC192:
|
|
.string "free_buf_count: %d\n"
|
|
.LC193:
|
|
.string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n"
|
|
.LC194:
|
|
.string "ftl_ext_info_blk blk:0x%x, page:0x%x\n"
|
|
.LC195:
|
|
.string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
|
|
.LC196:
|
|
.string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
|
|
.LC197:
|
|
.string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
|
|
.LC198:
|
|
.string "lpa:"
|
|
.LC199:
|
|
.string "vpn:"
|
|
.LC200:
|
|
.string "sblk:"
|
|
.LC201:
|
|
.string "lpa_hash:"
|
|
.LC202:
|
|
.string "lpa_hash_index:"
|
|
.section .rodata.dump_pm_blk.str1.1,"aMS",@progbits,1
|
|
.LC257:
|
|
.string "pm l2p:"
|
|
.LC258:
|
|
.string "pm blk:"
|
|
.section .rodata.dump_sblk_queue.str1.1,"aMS",@progbits,1
|
|
.LC79:
|
|
.string "dump_sblk_queue: %d\n"
|
|
.LC80:
|
|
.string "buf id= %d state = %d ppa = %x\n"
|
|
.section .rodata.flash_complete_page_read.str1.1,"aMS",@progbits,1
|
|
.LC136:
|
|
.string "flash_complete_page_read %x %x error_ecc %d %d\n"
|
|
.section .rodata.flash_ddr_tuning_read.str1.1,"aMS",@progbits,1
|
|
.LC122:
|
|
.string "%d flash_ddr_tuning_read %x ecc=%d\n"
|
|
.LC123:
|
|
.string "sync para %d\n"
|
|
.LC124:
|
|
.string "DDR mode Read error %x %x\n"
|
|
.LC125:
|
|
.string "SDR mode Read %x %x ecc:%x\n"
|
|
.section .rodata.flash_dual_page_prog.str1.1,"aMS",@progbits,1
|
|
.LC130:
|
|
.string "flash_prog_page %x %x %x\n"
|
|
.section .rodata.flash_erase_all.str1.1,"aMS",@progbits,1
|
|
.LC35:
|
|
.string "erase done: %x\n"
|
|
.section .rodata.flash_erase_block_en.str1.1,"aMS",@progbits,1
|
|
.LC33:
|
|
.string "flash_erase_block %x %x %x\n"
|
|
.LC34:
|
|
.string "flash_erase_block %d block = %x status = %x\n"
|
|
.section .rodata.flash_erase_duplane_block.str1.1,"aMS",@progbits,1
|
|
.LC31:
|
|
.string "flash_erase_duplane_block %x %x %x\n"
|
|
.LC32:
|
|
.string "flash_erase_duplane_block pageadd = %x status = %x\n"
|
|
.section .rodata.flash_get_last_written_page.str1.1,"aMS",@progbits,1
|
|
.LC128:
|
|
.string "flash_get_last_written_page: %x %x %x\n"
|
|
.section .rodata.flash_info_blk_init.str1.1,"aMS",@progbits,1
|
|
.LC177:
|
|
.string "...%d @ %s %d %p\n"
|
|
.LC178:
|
|
.string "no sys info %x\n"
|
|
.section .rodata.flash_info_data_init.str1.1,"aMS",@progbits,1
|
|
.LC94:
|
|
.string "...%d @ %s\n"
|
|
.section .rodata.flash_info_flush.str1.1,"aMS",@progbits,1
|
|
.LC174:
|
|
.string "finfo:"
|
|
.LC175:
|
|
.string "flash_info_flush id = %x, page = %x\n"
|
|
.LC176:
|
|
.string "sys_info_flush error:%x\n"
|
|
.section .rodata.flash_mask_bad_block.str1.1,"aMS",@progbits,1
|
|
.LC48:
|
|
.string "flash_mask_bad_block %d %d\n"
|
|
.section .rodata.flash_prog_page.str1.1,"aMS",@progbits,1
|
|
.LC129:
|
|
.string "flash_prog_page page_addr = %x status = %x\n"
|
|
.section .rodata.flash_prog_page_en.str1.1,"aMS",@progbits,1
|
|
.LC144:
|
|
.string "flash_prog_page_en:%x %x %x\n"
|
|
.LC145:
|
|
.string "w d:"
|
|
.LC146:
|
|
.string "w s:"
|
|
.LC147:
|
|
.string "spare"
|
|
.LC148:
|
|
.string "data"
|
|
.LC149:
|
|
.string "write error: %x\n"
|
|
.section .rodata.flash_read_id.str1.1,"aMS",@progbits,1
|
|
.LC38:
|
|
.string "No.%d FLASH ID:%x %x %x %x %x %x\n"
|
|
.section .rodata.flash_read_otp_data.str1.1,"aMS",@progbits,1
|
|
.LC39:
|
|
.string "otp:%x %x %x %x\n"
|
|
.section .rodata.flash_read_page_en.str1.1,"aMS",@progbits,1
|
|
.LC126:
|
|
.string "flash_read_page_en %x %x %x %x\n"
|
|
.LC127:
|
|
.string "flash_read_page_en %x %x error_ecc %d %d\n"
|
|
.section .rodata.flash_set_interface_mode.str1.1,"aMS",@progbits,1
|
|
.LC36:
|
|
.string "nand sdr mode %x\n"
|
|
.LC37:
|
|
.string "nand ddr mode %x\n"
|
|
.section .rodata.ftl_alloc_new_data_sblk.str1.1,"aMS",@progbits,1
|
|
.LC235:
|
|
.string "error gc_add_sblk: %x\n"
|
|
.section .rodata.ftl_alloc_sblk.str1.1,"aMS",@progbits,1
|
|
.LC167:
|
|
.string "alloc sblk %x %d\n"
|
|
.section .rodata.ftl_dump_write_open_sblk.str1.1,"aMS",@progbits,1
|
|
.LC159:
|
|
.string "ftl_sblk_dump_write = %x %d %d %d %d\n"
|
|
.LC160:
|
|
.string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
|
|
.LC161:
|
|
.string "ftl_sblk_dump_write2 = %x %d %d %d\n"
|
|
.LC162:
|
|
.string "ftl_sblk_dump_write = %x %x\n"
|
|
.LC163:
|
|
.string "ftl_sblk_dump_write done = %x\n"
|
|
.section .rodata.ftl_ext_info_init.str1.1,"aMS",@progbits,1
|
|
.LC156:
|
|
.string "%s %d %d %x %x\n"
|
|
.LC157:
|
|
.string "ext info hash %x error\n"
|
|
.LC158:
|
|
.string "%s %x %x %x\n"
|
|
.section .rodata.ftl_free_sblk.str1.1,"aMS",@progbits,1
|
|
.LC68:
|
|
.string "swl_slc_free_mini_ec_blk sblk %x\n"
|
|
.section .rodata.ftl_info_blk_init.str1.1,"aMS",@progbits,1
|
|
.LC152:
|
|
.string "%d %x @%d %x\n"
|
|
.LC153:
|
|
.string "ftl_info_blk_init %d %d %x\n"
|
|
.LC154:
|
|
.string "ftl info hash %x error\n"
|
|
.LC155:
|
|
.string "ink flag: %x\n"
|
|
.section .rodata.ftl_info_flush.str1.1,"aMS",@progbits,1
|
|
.LC151:
|
|
.string "g_ftl_info_blk blk = %x, page = %x version = %d\n"
|
|
.section .rodata.ftl_ink_check_sblk.str1.1,"aMS",@progbits,1
|
|
.LC165:
|
|
.string "ftl_ink_check_sblk = %x %d %d\n"
|
|
.LC166:
|
|
.string "ftl_ink_check_sblk = %x %d %d end\n"
|
|
.section .rodata.ftl_low_format.str1.1,"aMS",@progbits,1
|
|
.LC169:
|
|
.string "ftl_low_format %d\n"
|
|
.LC170:
|
|
.string "low format %d %d %d %d\n"
|
|
.section .rodata.ftl_mask_bad_block.str1.1,"aMS",@progbits,1
|
|
.LC66:
|
|
.string "mask bad block:cs %x %x block: %x %x\n"
|
|
.section .rodata.ftl_open_sblk_init.str1.1,"aMS",@progbits,1
|
|
.LC168:
|
|
.string "blk %x is bad block\n"
|
|
.section .rodata.ftl_open_sblk_recovery.str1.1,"aMS",@progbits,1
|
|
.LC180:
|
|
.string "saved_active_page = %x\n"
|
|
.LC181:
|
|
.string "saved_active_plane = %x\n"
|
|
.LC182:
|
|
.string "sblk = %x\n"
|
|
.LC183:
|
|
.string "phy_blk = %x %x\n"
|
|
.LC184:
|
|
.string "num_planes = %x\n"
|
|
.LC185:
|
|
.string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n"
|
|
.LC186:
|
|
.string "data:"
|
|
.LC187:
|
|
.string "sblk = %x, vpn0 = %d, vpn1 = %d\n"
|
|
.LC188:
|
|
.string "dump_write_lpa = %x %x %x %x\n"
|
|
.LC189:
|
|
.string "dump write new ppa = %x, last ppa = %x lpa = %x\n"
|
|
.LC190:
|
|
.string "dump write = %x %x %x\n"
|
|
.LC191:
|
|
.string "dump write hash update = %x %x %x\n"
|
|
.section .rodata.ftl_re_low_format.str1.1,"aMS",@progbits,1
|
|
.LC171:
|
|
.string "re low format %d\n"
|
|
.section .rodata.ftl_sblk_dump.str1.1,"aMS",@progbits,1
|
|
.LC223:
|
|
.string "ftl_sblk_dump = %x %d %d %d %d\n"
|
|
.LC224:
|
|
.string "ftl_sblk_dump = %x %x %x %x\n"
|
|
.LC225:
|
|
.string "page_addr = %x, lpa=%x vpn = %d\n"
|
|
.LC226:
|
|
.string "index= %x, lpa=%x\n"
|
|
.LC227:
|
|
.string "block = %x, vpn=%x check vpn = %x\n"
|
|
.section .rodata.ftl_sysblk_dump.str1.1,"aMS",@progbits,1
|
|
.LC179:
|
|
.string "l2p:"
|
|
.section .rodata.ftl_test_block.str1.1,"aMS",@progbits,1
|
|
.LC150:
|
|
.string "low format %d\n"
|
|
.section .rodata.ftl_update_l2p_map.str1.1,"aMS",@progbits,1
|
|
.LC231:
|
|
.string "ftl_update_l2p_map: %x %x %x\n"
|
|
.LC232:
|
|
.string "ftl_update_l2p_map"
|
|
.LC233:
|
|
.string "lpa_tbl:"
|
|
.LC234:
|
|
.string "sblk %x vpn: %d %d\n"
|
|
.section .rodata.ftl_vpn_decrement.str1.1,"aMS",@progbits,1
|
|
.LC65:
|
|
.string "ftl_vpn_decrement %x = %d, %d\n"
|
|
.section .rodata.ftl_write_commit.str1.1,"aMS",@progbits,1
|
|
.LC236:
|
|
.string "%d read error: ppa:%x, lpa:%x, status:%x\n"
|
|
.section .rodata.ftl_write_completed.str1.1,"aMS",@progbits,1
|
|
.LC77:
|
|
.string "ftl prog error =%x, lpa = %x, ppa= %x\n"
|
|
.LC78:
|
|
.string "ftl re prog: lpa = %x, ppa= %x\n"
|
|
.section .rodata.gc_add_sblk.str1.1,"aMS",@progbits,1
|
|
.LC49:
|
|
.string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n"
|
|
.LC50:
|
|
.string "gc_add_sblk = %d, %d, %d\n"
|
|
.LC51:
|
|
.string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n"
|
|
.LC52:
|
|
.string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n"
|
|
.section .rodata.gc_check_data_one_wl.str1.1,"aMS",@progbits,1
|
|
.LC143:
|
|
.string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
|
|
.section .rodata.gc_do_copy_back.str1.1,"aMS",@progbits,1
|
|
.LC237:
|
|
.string "gc page in buf: lpa %x ppa = %x pageindex= %x\n"
|
|
.LC238:
|
|
.string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
|
|
.section .rodata.gc_free_bad_sblk.str1.1,"aMS",@progbits,1
|
|
.LC67:
|
|
.string "gc_free_bad_sblk 0x%x\n"
|
|
.section .rodata.gc_free_src_blk.str1.1,"aMS",@progbits,1
|
|
.LC69:
|
|
.string "gc_free_src_blk = %x, vpn = %d\n"
|
|
.LC70:
|
|
.string "gc_free_src_blk %x, %d\n"
|
|
.section .rodata.gc_free_temp_buf.str1.1,"aMS",@progbits,1
|
|
.LC55:
|
|
.string "%d gc_free_temp_buf buf id= %x\n"
|
|
.section .rodata.gc_ink_check_sblk.str1.1,"aMS",@progbits,1
|
|
.LC164:
|
|
.string "%x: ink_scaned_blk_num %x\n"
|
|
.section .rodata.gc_mark_bad_ppa.str1.1,"aMS",@progbits,1
|
|
.LC53:
|
|
.string "gc_mark_bad_ppa %d %x %x\n"
|
|
.section .rodata.gc_recovery.str1.1,"aMS",@progbits,1
|
|
.LC213:
|
|
.string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
|
|
.LC214:
|
|
.string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
|
|
.LC215:
|
|
.string "gc_recovery: %x vpn = %x\n"
|
|
.section .rodata.gc_scan_src_blk.str1.1,"aMS",@progbits,1
|
|
.LC220:
|
|
.string "gc_scan_src_blk = %x, vpn = %d\n"
|
|
.LC221:
|
|
.string "js hash error:%x %x %x\n"
|
|
.LC222:
|
|
.string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n"
|
|
.section .rodata.gc_search_src_blk.str1.1,"aMS",@progbits,1
|
|
.LC57:
|
|
.string "zftl_get_gc_node cache = %x index = %d vpn = %x\n"
|
|
.LC58:
|
|
.string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n"
|
|
.section .rodata.gc_static_wearleveling.str1.1,"aMS",@progbits,1
|
|
.LC82:
|
|
.string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
|
|
.LC83:
|
|
.string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
|
|
.LC84:
|
|
.string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
|
|
.LC85:
|
|
.string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
|
|
.LC86:
|
|
.string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
|
|
.LC87:
|
|
.string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n"
|
|
.LC88:
|
|
.string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n"
|
|
.LC89:
|
|
.string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n"
|
|
.LC90:
|
|
.string "swl add slc gc = %x, %d, %d, %d, %d, %d\n"
|
|
.section .rodata.gc_update_l2p_map_new.str1.1,"aMS",@progbits,1
|
|
.LC216:
|
|
.string "gc_update_l2p_map_new sblk %x\n"
|
|
.LC217:
|
|
.string "gc_update_l2p_map_new: %x %x %x\n"
|
|
.LC218:
|
|
.string "lpa: %x %x %x\n"
|
|
.LC219:
|
|
.string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n"
|
|
.section .rodata.gc_write_completed.str1.1,"aMS",@progbits,1
|
|
.LC54:
|
|
.string "status: %x, ppa: %x\n"
|
|
.section .rodata.hynix_get_read_retry_default.str1.1,"aMS",@progbits,1
|
|
.LC102:
|
|
.string "otp error! %d"
|
|
.LC103:
|
|
.string "rr"
|
|
.section .rodata.hynix_read_retrial.str1.1,"aMS",@progbits,1
|
|
.LC121:
|
|
.string "hynix RR %d row=%x, count %d, status=%d\n"
|
|
.section .rodata.idb_write_data.str1.1,"aMS",@progbits,1
|
|
.LC132:
|
|
.string "1 write_idblock fix data %x %x %x\n"
|
|
.LC133:
|
|
.string "write_idblock check fail! %x\n"
|
|
.LC134:
|
|
.string "write_idblock fail! %x\n"
|
|
.section .rodata.load_l2p_region.str1.1,"aMS",@progbits,1
|
|
.LC204:
|
|
.string "region_id = %d, pm_max_region = %d\n"
|
|
.LC205:
|
|
.string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n"
|
|
.LC206:
|
|
.string "load_l2p_region = %x,%x,%x, %x\n"
|
|
.LC207:
|
|
.string "pm_ppa:"
|
|
.LC208:
|
|
.string "spare:"
|
|
.section .rodata.lpa_rebuild_hash.str1.1,"aMS",@progbits,1
|
|
.LC81:
|
|
.string "%s %d %d\n"
|
|
.section .rodata.micron_read_retrial.str1.1,"aMS",@progbits,1
|
|
.LC112:
|
|
.string "MT %d row=%x,last status %d,status = %d\n"
|
|
.LC113:
|
|
.string "MT RR %d row=%x,count %d,status=%d\n"
|
|
.section .rodata.nand_flash_print_info.str1.1,"aMS",@progbits,1
|
|
.LC1:
|
|
.string "...%s enter...\n"
|
|
.LC2:
|
|
.string "No.0 FLASH ID: %x %x %x %x %x %x\n"
|
|
.LC3:
|
|
.string "DiePerChip: %x\n"
|
|
.LC4:
|
|
.string "SectPerPage: %x\n"
|
|
.LC5:
|
|
.string "PagePerBlk: %x\n"
|
|
.LC6:
|
|
.string "Cell: %x\n"
|
|
.LC7:
|
|
.string "PlanePerDie: %x\n"
|
|
.LC8:
|
|
.string "BlkPerPlane: %x\n"
|
|
.LC9:
|
|
.string "die gap: %x\n"
|
|
.LC10:
|
|
.string "lsbMode: %x\n"
|
|
.LC11:
|
|
.string "ReadRetryMode: %x\n"
|
|
.LC12:
|
|
.string "ecc: %x\n"
|
|
.LC13:
|
|
.string "idb ecc: %x\n"
|
|
.LC14:
|
|
.string "OptMode: %x\n"
|
|
.LC15:
|
|
.string "g_nand_max_die: %x\n"
|
|
.LC16:
|
|
.string "Cache read enable: %x\n"
|
|
.LC17:
|
|
.string "Cache random read enable: %x\n"
|
|
.LC18:
|
|
.string "Cache prog enable: %x\n"
|
|
.LC19:
|
|
.string "multi read enable: %x\n"
|
|
.LC20:
|
|
.string "multi prog enable: %x\n"
|
|
.LC21:
|
|
.string "interleave enable: %x\n"
|
|
.LC22:
|
|
.string "read retry enable: %x\n"
|
|
.LC23:
|
|
.string "randomizer enable: %x\n"
|
|
.LC24:
|
|
.string "SDR enable: %x\n"
|
|
.LC25:
|
|
.string "ONFI enable: %x\n"
|
|
.LC26:
|
|
.string "TOGGLE enable: %x\n"
|
|
.LC27:
|
|
.string "g_flash_slc_mode: %x %x\n"
|
|
.LC28:
|
|
.string "MultiPlaneProgCmd: %x %x\n"
|
|
.LC29:
|
|
.string "MultiPlaneReadCmd: %x %x\n"
|
|
.LC30:
|
|
.string "g_flash_toggle_mode_en: %x\n"
|
|
.section .rodata.nandc_init.str1.1,"aMS",@progbits,1
|
|
.LC95:
|
|
.string "...%s enter... %p\n"
|
|
.LC96:
|
|
.string "0:%x %x %x %x %x\n"
|
|
.LC97:
|
|
.string "g_nandc_ver...%d\n"
|
|
.section .rodata.nandc_xfer.str1.1,"aMS",@progbits,1
|
|
.LC109:
|
|
.string "dqs data abort %x\n"
|
|
.LC110:
|
|
.string "dqs data timeout %x\n"
|
|
.LC111:
|
|
.string "xfer error %x\n"
|
|
.section .rodata.nandc_xfer_done.str1.1,"aMS",@progbits,1
|
|
.LC104:
|
|
.string "flash_abort_clear = %d\n"
|
|
.LC105:
|
|
.string "%d mtrans_cnt = %d page_num = %d\n"
|
|
.LC106:
|
|
.string "%d flReg.d32=%x %x\n"
|
|
.LC107:
|
|
.string "nandc:"
|
|
.LC108:
|
|
.string "nandc_xfer_done read error %x\n"
|
|
.section .rodata.pm_alloc_new_blk.str1.1,"aMS",@progbits,1
|
|
.LC172:
|
|
.string "pm_alloc_new_blk: %x %x %x %x\n"
|
|
.section .rodata.pm_free_sblk.str1.1,"aMS",@progbits,1
|
|
.LC92:
|
|
.string "GC PM block %x %x %x %d\n"
|
|
.LC93:
|
|
.string "ftl_free_no_use_map_blk %x %x %x %d\n"
|
|
.section .rodata.pm_init.str1.1,"aMS",@progbits,1
|
|
.LC209:
|
|
.string "pm_init posr %x %x %x\n"
|
|
.LC210:
|
|
.string "pm_init recovery %x %x %x\n"
|
|
.LC211:
|
|
.string "pm_init hash %x error\n"
|
|
.section .rodata.pm_log2phys.str1.1,"aMS",@progbits,1
|
|
.LC212:
|
|
.string "pm_log2phys lpn = %d, max lpn = %d\n"
|
|
.section .rodata.pm_ppa_update_check.str1.1,"aMS",@progbits,1
|
|
.LC203:
|
|
.string "%s w error lpn = %x, max ppa = %d\n"
|
|
.section .rodata.pm_write_page.str1.1,"aMS",@progbits,1
|
|
.LC173:
|
|
.string "pm_write_page write error: %x\n"
|
|
.section .rodata.print_ftl_debug_info.str1.1,"aMS",@progbits,1
|
|
.LC71:
|
|
.string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n"
|
|
.LC72:
|
|
.string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n"
|
|
.LC73:
|
|
.string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n"
|
|
.LC74:
|
|
.string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n"
|
|
.LC75:
|
|
.string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n"
|
|
.LC76:
|
|
.string "swl : %x %x %x %x %x %x\n"
|
|
.section .rodata.print_gc_debug_info.str1.1,"aMS",@progbits,1
|
|
.LC56:
|
|
.string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n"
|
|
.section .rodata.print_list_info.str1.1,"aMS",@progbits,1
|
|
.LC63:
|
|
.string "list count:%p %d\n"
|
|
.LC64:
|
|
.string "%d: node:%x %x %x %x, %d %d %d %d %d\n"
|
|
.section .rodata.queue_wait_first_req_completed.str1.1,"aMS",@progbits,1
|
|
.LC137:
|
|
.string "read: %x %x %x %x\n"
|
|
.LC138:
|
|
.string "0set buf %d,status = %x, ppa = %x lun state = %d\n"
|
|
.LC139:
|
|
.string "prog end %x %x error_ecc %d %d\n"
|
|
.LC140:
|
|
.string "1set buf %d,status = %x, ppa = %x lun state = %d\n"
|
|
.LC141:
|
|
.string "dp prog end %x %x error_ecc %d %d\n"
|
|
.section .rodata.random_seed,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR54,. + 0
|
|
.type random_seed, %object
|
|
.size random_seed, 256
|
|
random_seed:
|
|
.hword 22378
|
|
.hword 1512
|
|
.hword 25245
|
|
.hword 17827
|
|
.hword 25756
|
|
.hword 19440
|
|
.hword 9026
|
|
.hword 10030
|
|
.hword 29528
|
|
.hword 20467
|
|
.hword 29676
|
|
.hword 24432
|
|
.hword 31328
|
|
.hword 6872
|
|
.hword 13426
|
|
.hword 13842
|
|
.hword 8783
|
|
.hword 1108
|
|
.hword 782
|
|
.hword 28837
|
|
.hword 30729
|
|
.hword 9505
|
|
.hword 18676
|
|
.hword 23085
|
|
.hword 18730
|
|
.hword 1085
|
|
.hword 32609
|
|
.hword 14697
|
|
.hword 20858
|
|
.hword 15170
|
|
.hword 30365
|
|
.hword 1607
|
|
.hword 32298
|
|
.hword 4995
|
|
.hword 18905
|
|
.hword 1976
|
|
.hword 9592
|
|
.hword 20204
|
|
.hword 17443
|
|
.hword 13615
|
|
.hword 23330
|
|
.hword 29369
|
|
.hword 13947
|
|
.hword 9398
|
|
.hword 32398
|
|
.hword 8984
|
|
.hword 27600
|
|
.hword 21785
|
|
.hword 6019
|
|
.hword 6311
|
|
.hword 31598
|
|
.hword 30210
|
|
.hword 19327
|
|
.hword 13896
|
|
.hword 11347
|
|
.hword 27545
|
|
.hword 3107
|
|
.hword 26575
|
|
.hword 32270
|
|
.hword 19852
|
|
.hword 20601
|
|
.hword 8349
|
|
.hword 9290
|
|
.hword 29819
|
|
.hword 13579
|
|
.hword 3661
|
|
.hword 28676
|
|
.hword 27331
|
|
.hword 32574
|
|
.hword 8693
|
|
.hword 31253
|
|
.hword 9081
|
|
.hword 5399
|
|
.hword 6842
|
|
.hword 20087
|
|
.hword 5537
|
|
.hword 1274
|
|
.hword 11617
|
|
.hword 9530
|
|
.hword 4866
|
|
.hword 8035
|
|
.hword 23219
|
|
.hword 1178
|
|
.hword 23272
|
|
.hword 7383
|
|
.hword 18944
|
|
.hword 12488
|
|
.hword 12871
|
|
.hword 29340
|
|
.hword 20532
|
|
.hword 11022
|
|
.hword 22514
|
|
.hword 228
|
|
.hword 22363
|
|
.hword 24978
|
|
.hword 14584
|
|
.hword 12138
|
|
.hword 3092
|
|
.hword 17916
|
|
.hword 16863
|
|
.hword 14554
|
|
.hword 31457
|
|
.hword 29474
|
|
.hword 25311
|
|
.hword 24121
|
|
.hword 3684
|
|
.hword 28037
|
|
.hword 22865
|
|
.hword 22839
|
|
.hword 25217
|
|
.hword 13217
|
|
.hword 27186
|
|
.hword 14938
|
|
.hword 11180
|
|
.hword 29754
|
|
.hword 24180
|
|
.hword 15150
|
|
.hword 32455
|
|
.hword 20434
|
|
.hword 23848
|
|
.hword 29983
|
|
.hword 16120
|
|
.hword 14769
|
|
.hword 20041
|
|
.hword 29803
|
|
.hword 28406
|
|
.hword 17598
|
|
.hword 28087
|
|
.section .rodata.rk_ftl_init.str1.1,"aMS",@progbits,1
|
|
.LC254:
|
|
.string "zftl_init %x\n"
|
|
.section .rodata.rknand_print_hex.str1.1,"aMS",@progbits,1
|
|
.LC98:
|
|
.string "%s %p + 0x%x:"
|
|
.LC99:
|
|
.string "%x "
|
|
.LC100:
|
|
.string ""
|
|
.LC101:
|
|
.string "%s\n"
|
|
.section .rodata.samsung_14nm_mlc_rr,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR168,. + 0
|
|
.type samsung_14nm_mlc_rr, %object
|
|
.size samsung_14nm_mlc_rr, 104
|
|
samsung_14nm_mlc_rr:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 3
|
|
.byte -4
|
|
.byte -6
|
|
.byte 6
|
|
.byte 0
|
|
.byte 6
|
|
.byte -10
|
|
.byte -10
|
|
.byte 4
|
|
.byte -10
|
|
.byte 16
|
|
.byte 12
|
|
.byte -4
|
|
.byte 12
|
|
.byte 8
|
|
.byte -16
|
|
.byte 10
|
|
.byte -16
|
|
.byte 24
|
|
.byte 18
|
|
.byte -14
|
|
.byte 18
|
|
.byte -4
|
|
.byte -22
|
|
.byte -16
|
|
.byte -22
|
|
.byte -8
|
|
.byte 24
|
|
.byte -9
|
|
.byte 24
|
|
.byte 8
|
|
.byte -28
|
|
.byte -4
|
|
.byte -28
|
|
.byte 16
|
|
.byte 30
|
|
.byte 10
|
|
.byte 30
|
|
.byte 10
|
|
.byte -34
|
|
.byte 6
|
|
.byte -34
|
|
.byte 0
|
|
.byte 36
|
|
.byte -8
|
|
.byte 36
|
|
.byte -8
|
|
.byte -40
|
|
.byte -2
|
|
.byte -40
|
|
.byte -20
|
|
.byte -46
|
|
.byte -4
|
|
.byte -46
|
|
.byte -30
|
|
.byte 3
|
|
.byte 0
|
|
.byte 3
|
|
.byte -3
|
|
.byte -2
|
|
.byte -4
|
|
.byte -2
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte -10
|
|
.byte -6
|
|
.byte -8
|
|
.byte -6
|
|
.byte -14
|
|
.byte -9
|
|
.byte -8
|
|
.byte -9
|
|
.byte -18
|
|
.byte -52
|
|
.byte 22
|
|
.byte -52
|
|
.byte 10
|
|
.byte 42
|
|
.byte 4
|
|
.byte 42
|
|
.byte 4
|
|
.byte 48
|
|
.byte -9
|
|
.byte 48
|
|
.byte 4
|
|
.byte -58
|
|
.byte 12
|
|
.byte -58
|
|
.byte 0
|
|
.byte -64
|
|
.byte -24
|
|
.byte -64
|
|
.byte -6
|
|
.byte 9
|
|
.byte 18
|
|
.byte 9
|
|
.byte 8
|
|
.section .rodata.samsung_14nm_slc_rr,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR167,. + 0
|
|
.type samsung_14nm_slc_rr, %object
|
|
.size samsung_14nm_slc_rr, 26
|
|
samsung_14nm_slc_rr:
|
|
.byte 0
|
|
.byte 10
|
|
.byte -10
|
|
.byte 20
|
|
.byte -20
|
|
.byte 30
|
|
.byte -30
|
|
.byte 40
|
|
.byte -40
|
|
.byte 50
|
|
.byte -50
|
|
.byte 60
|
|
.byte -60
|
|
.byte -70
|
|
.byte -80
|
|
.byte -90
|
|
.byte -100
|
|
.byte -110
|
|
.byte -120
|
|
.byte -9
|
|
.byte 70
|
|
.byte 80
|
|
.byte 90
|
|
.byte -125
|
|
.byte -115
|
|
.byte 100
|
|
.section .rodata.samsung_read_retrial.str1.1,"aMS",@progbits,1
|
|
.LC118:
|
|
.string "samsung SRR %d row=%x, status=%d\n"
|
|
.LC119:
|
|
.string "samsung TRR %d row=%x, status=%d\n"
|
|
.LC120:
|
|
.string "samsung RR %d row=%x,count %d,status=%d\n"
|
|
.section .rodata.sandisk_prog_test_bad_block.str1.1,"aMS",@progbits,1
|
|
.LC40:
|
|
.string "bad block test:%x %x\n"
|
|
.section .rodata.sblk_mlc_dump_prog.str1.1,"aMS",@progbits,1
|
|
.LC135:
|
|
.string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n"
|
|
.section .rodata.sblk_prog_page.str1.1,"aMS",@progbits,1
|
|
.LC142:
|
|
.string "sblk_prog_page ppa = %x, count = %d\n"
|
|
.section .rodata.toshiba_15ref_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR14,. + 0
|
|
.type toshiba_15ref_value, %object
|
|
.size toshiba_15ref_value, 95
|
|
toshiba_15ref_value:
|
|
.byte 4
|
|
.byte 5
|
|
.byte 6
|
|
.byte 7
|
|
.byte 13
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 4
|
|
.byte 2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 0
|
|
.byte 124
|
|
.byte 124
|
|
.byte 0
|
|
.byte 122
|
|
.byte 0
|
|
.byte 122
|
|
.byte 122
|
|
.byte 0
|
|
.byte 11
|
|
.byte 126
|
|
.byte 118
|
|
.byte 116
|
|
.byte 0
|
|
.byte 120
|
|
.byte 2
|
|
.byte 120
|
|
.byte 122
|
|
.byte 0
|
|
.byte 126
|
|
.byte 4
|
|
.byte 126
|
|
.byte 122
|
|
.byte 0
|
|
.byte 16
|
|
.byte 118
|
|
.byte 114
|
|
.byte 112
|
|
.byte 0
|
|
.byte 118
|
|
.byte 4
|
|
.byte 118
|
|
.byte 120
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 118
|
|
.byte 0
|
|
.byte 2
|
|
.byte 0
|
|
.byte 126
|
|
.byte 124
|
|
.byte 0
|
|
.byte 6
|
|
.byte 10
|
|
.byte 6
|
|
.byte 2
|
|
.byte 0
|
|
.byte 116
|
|
.byte 124
|
|
.byte 116
|
|
.byte 118
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 124
|
|
.byte 126
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 120
|
|
.byte 120
|
|
.byte 0
|
|
.byte 124
|
|
.byte 118
|
|
.byte 116
|
|
.byte 114
|
|
.byte 0
|
|
.section .rodata.toshiba_3D_slc_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR38,. + 0
|
|
.type toshiba_3D_slc_value, %object
|
|
.size toshiba_3D_slc_value, 11
|
|
toshiba_3D_slc_value:
|
|
.byte -117
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -24
|
|
.byte 24
|
|
.byte -40
|
|
.byte 40
|
|
.byte -56
|
|
.byte 56
|
|
.section .rodata.toshiba_3D_tlc_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR37,. + 0
|
|
.type toshiba_3D_tlc_value, %object
|
|
.size toshiba_3D_tlc_value, 399
|
|
toshiba_3D_tlc_value:
|
|
.byte -119
|
|
.byte -119
|
|
.byte -119
|
|
.byte -119
|
|
.byte -118
|
|
.byte -118
|
|
.byte -118
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte -2
|
|
.byte -1
|
|
.byte 0
|
|
.byte -3
|
|
.byte -2
|
|
.byte 6
|
|
.byte -9
|
|
.byte -12
|
|
.byte -9
|
|
.byte -7
|
|
.byte -13
|
|
.byte -12
|
|
.byte -7
|
|
.byte -6
|
|
.byte -15
|
|
.byte -15
|
|
.byte -2
|
|
.byte -12
|
|
.byte -16
|
|
.byte -6
|
|
.byte -2
|
|
.byte -19
|
|
.byte -19
|
|
.byte -6
|
|
.byte -4
|
|
.byte -12
|
|
.byte -14
|
|
.byte -2
|
|
.byte -11
|
|
.byte -23
|
|
.byte -34
|
|
.byte -4
|
|
.byte -20
|
|
.byte -22
|
|
.byte -2
|
|
.byte -7
|
|
.byte -31
|
|
.byte -30
|
|
.byte -12
|
|
.byte -20
|
|
.byte -18
|
|
.byte 2
|
|
.byte -15
|
|
.byte -19
|
|
.byte -36
|
|
.byte -12
|
|
.byte -28
|
|
.byte -34
|
|
.byte -6
|
|
.byte -15
|
|
.byte -11
|
|
.byte 2
|
|
.byte -12
|
|
.byte -8
|
|
.byte -2
|
|
.byte 2
|
|
.byte -3
|
|
.byte -7
|
|
.byte -10
|
|
.byte -4
|
|
.byte -8
|
|
.byte -6
|
|
.byte -6
|
|
.byte -11
|
|
.byte -27
|
|
.byte -38
|
|
.byte -16
|
|
.byte -12
|
|
.byte -2
|
|
.byte 2
|
|
.byte -7
|
|
.byte -31
|
|
.byte -22
|
|
.byte -4
|
|
.byte -16
|
|
.byte -22
|
|
.byte -7
|
|
.byte -31
|
|
.byte -23
|
|
.byte -22
|
|
.byte -28
|
|
.byte -28
|
|
.byte -26
|
|
.byte 2
|
|
.byte -7
|
|
.byte -11
|
|
.byte -14
|
|
.byte -8
|
|
.byte -12
|
|
.byte -10
|
|
.byte -10
|
|
.byte -27
|
|
.byte -25
|
|
.byte -22
|
|
.byte -20
|
|
.byte -28
|
|
.byte -22
|
|
.byte -7
|
|
.byte -23
|
|
.byte -29
|
|
.byte -34
|
|
.byte -24
|
|
.byte -32
|
|
.byte -22
|
|
.byte -10
|
|
.byte -11
|
|
.byte -29
|
|
.byte -18
|
|
.byte -12
|
|
.byte -24
|
|
.byte -22
|
|
.byte 6
|
|
.byte 1
|
|
.byte -3
|
|
.byte -6
|
|
.byte 0
|
|
.byte -4
|
|
.byte -2
|
|
.byte 10
|
|
.byte -3
|
|
.byte -7
|
|
.byte -6
|
|
.byte 4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -10
|
|
.byte -23
|
|
.byte -39
|
|
.byte -22
|
|
.byte -19
|
|
.byte -24
|
|
.byte -18
|
|
.byte -14
|
|
.byte -23
|
|
.byte -29
|
|
.byte -30
|
|
.byte -15
|
|
.byte -30
|
|
.byte -30
|
|
.byte -7
|
|
.byte -27
|
|
.byte -35
|
|
.byte -26
|
|
.byte -15
|
|
.byte -24
|
|
.byte -26
|
|
.byte 6
|
|
.byte -11
|
|
.byte 5
|
|
.byte -2
|
|
.byte -16
|
|
.byte -16
|
|
.byte -2
|
|
.byte -2
|
|
.byte -15
|
|
.byte -15
|
|
.byte -20
|
|
.byte -8
|
|
.byte -16
|
|
.byte -18
|
|
.byte 6
|
|
.byte 5
|
|
.byte -15
|
|
.byte -2
|
|
.byte -24
|
|
.byte -28
|
|
.byte -22
|
|
.byte 10
|
|
.byte -15
|
|
.byte -3
|
|
.byte -30
|
|
.byte -8
|
|
.byte -24
|
|
.byte -30
|
|
.byte -10
|
|
.byte -27
|
|
.byte -19
|
|
.byte -30
|
|
.byte -12
|
|
.byte -16
|
|
.byte -10
|
|
.byte 14
|
|
.byte -19
|
|
.byte -3
|
|
.byte -30
|
|
.byte 4
|
|
.byte 4
|
|
.byte 6
|
|
.byte 2
|
|
.byte 1
|
|
.byte -3
|
|
.byte -10
|
|
.byte -8
|
|
.byte -4
|
|
.byte -6
|
|
.byte -2
|
|
.byte -15
|
|
.byte -11
|
|
.byte -26
|
|
.byte -8
|
|
.byte -20
|
|
.byte -30
|
|
.byte 6
|
|
.byte -19
|
|
.byte -3
|
|
.byte -46
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 6
|
|
.byte 9
|
|
.byte 5
|
|
.byte 2
|
|
.byte 4
|
|
.byte 8
|
|
.byte 6
|
|
.byte 8
|
|
.byte 9
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 8
|
|
.byte 6
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.byte -12
|
|
.byte -14
|
|
.byte -20
|
|
.byte -18
|
|
.byte -16
|
|
.byte -16
|
|
.byte -14
|
|
.byte -12
|
|
.byte -10
|
|
.byte -21
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -10
|
|
.byte -12
|
|
.byte -18
|
|
.byte -22
|
|
.byte -24
|
|
.byte -18
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -14
|
|
.byte -23
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -12
|
|
.byte -24
|
|
.byte -24
|
|
.byte -30
|
|
.byte -24
|
|
.byte -28
|
|
.byte -28
|
|
.byte -12
|
|
.byte -26
|
|
.byte -25
|
|
.byte -34
|
|
.byte -24
|
|
.byte -24
|
|
.byte -24
|
|
.byte -12
|
|
.byte -13
|
|
.byte -26
|
|
.byte -20
|
|
.byte -14
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -15
|
|
.byte -27
|
|
.byte -22
|
|
.byte -20
|
|
.byte -24
|
|
.byte -22
|
|
.byte -12
|
|
.byte -21
|
|
.byte -28
|
|
.byte -28
|
|
.byte -24
|
|
.byte -26
|
|
.byte -24
|
|
.byte 20
|
|
.byte 16
|
|
.byte 6
|
|
.byte 10
|
|
.byte 16
|
|
.byte 12
|
|
.byte 12
|
|
.byte 16
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 12
|
|
.byte 12
|
|
.byte 12
|
|
.byte 18
|
|
.byte 18
|
|
.byte 10
|
|
.byte 8
|
|
.byte 14
|
|
.byte 14
|
|
.byte 14
|
|
.byte 16
|
|
.byte 14
|
|
.byte 6
|
|
.byte 6
|
|
.byte 12
|
|
.byte 14
|
|
.byte 8
|
|
.byte 20
|
|
.byte 18
|
|
.byte 8
|
|
.byte 6
|
|
.byte 14
|
|
.byte 14
|
|
.byte 10
|
|
.byte 20
|
|
.byte 20
|
|
.byte 6
|
|
.byte 10
|
|
.byte 10
|
|
.byte 12
|
|
.byte 12
|
|
.byte 10
|
|
.byte 13
|
|
.byte 5
|
|
.byte 2
|
|
.byte 14
|
|
.byte 8
|
|
.byte 6
|
|
.byte 6
|
|
.byte 13
|
|
.byte 9
|
|
.byte 4
|
|
.byte 14
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.section .rodata.toshiba_3d_read_retrial.str1.1,"aMS",@progbits,1
|
|
.LC114:
|
|
.string "toshiba SRR %d row=%x, status=%d\n"
|
|
.LC115:
|
|
.string "toshiba TRR %d row=%x, status=%d\n"
|
|
.LC116:
|
|
.string "toshiba RR %d row=%x,count %d,status=%d\n"
|
|
.section .rodata.toshiba_A19ref_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR15,. + 0
|
|
.type toshiba_A19ref_value, %object
|
|
.size toshiba_A19ref_value, 45
|
|
toshiba_A19ref_value:
|
|
.byte 4
|
|
.byte 5
|
|
.byte 6
|
|
.byte 7
|
|
.byte 13
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 124
|
|
.byte 126
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 120
|
|
.byte 120
|
|
.byte 0
|
|
.byte 124
|
|
.byte 118
|
|
.byte 116
|
|
.byte 114
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 11
|
|
.byte 126
|
|
.byte 118
|
|
.byte 116
|
|
.byte 0
|
|
.byte 16
|
|
.byte 118
|
|
.byte 114
|
|
.byte 112
|
|
.byte 0
|
|
.byte 2
|
|
.byte 0
|
|
.byte 126
|
|
.byte 124
|
|
.byte 0
|
|
.section .rodata.toshiba_ref_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR17,. + 0
|
|
.type toshiba_ref_value, %object
|
|
.size toshiba_ref_value, 8
|
|
toshiba_ref_value:
|
|
.byte 0
|
|
.byte 4
|
|
.byte 124
|
|
.byte 120
|
|
.byte 116
|
|
.byte 8
|
|
.byte 12
|
|
.byte 112
|
|
.section .rodata.ymtc_3D_slc_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR42,. + 0
|
|
.type ymtc_3D_slc_value, %object
|
|
.size ymtc_3D_slc_value, 10
|
|
ymtc_3D_slc_value:
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -20
|
|
.byte 24
|
|
.byte -26
|
|
.byte 40
|
|
.byte -12
|
|
.byte 56
|
|
.section .rodata.ymtc_3D_tlc_value,"a",@progbits
|
|
.align 3
|
|
.set .LANCHOR41,. + 0
|
|
.type ymtc_3D_tlc_value, %object
|
|
.size ymtc_3D_tlc_value, 357
|
|
ymtc_3D_tlc_value:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -10
|
|
.byte -10
|
|
.byte -6
|
|
.byte -6
|
|
.byte -2
|
|
.byte 2
|
|
.byte 2
|
|
.byte -6
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte -6
|
|
.byte -8
|
|
.byte 6
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -2
|
|
.byte -2
|
|
.byte -2
|
|
.byte -4
|
|
.byte -4
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -11
|
|
.byte -2
|
|
.byte 2
|
|
.byte 4
|
|
.byte 4
|
|
.byte 6
|
|
.byte 6
|
|
.byte 6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -8
|
|
.byte -14
|
|
.byte -6
|
|
.byte -15
|
|
.byte -11
|
|
.byte 2
|
|
.byte -12
|
|
.byte -8
|
|
.byte -2
|
|
.byte 2
|
|
.byte -3
|
|
.byte -7
|
|
.byte -10
|
|
.byte -4
|
|
.byte -8
|
|
.byte -6
|
|
.byte -18
|
|
.byte -18
|
|
.byte -14
|
|
.byte -14
|
|
.byte -10
|
|
.byte -5
|
|
.byte -5
|
|
.byte -14
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -12
|
|
.byte -13
|
|
.byte -15
|
|
.byte -2
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -10
|
|
.byte -10
|
|
.byte -10
|
|
.byte -12
|
|
.byte -12
|
|
.byte -13
|
|
.byte -13
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -13
|
|
.byte -18
|
|
.byte -10
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -1
|
|
.byte -1
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -15
|
|
.byte -21
|
|
.byte -12
|
|
.byte -11
|
|
.byte -7
|
|
.byte -7
|
|
.byte -3
|
|
.byte 1
|
|
.byte 1
|
|
.byte -8
|
|
.byte -7
|
|
.byte -5
|
|
.byte -5
|
|
.byte -5
|
|
.byte -7
|
|
.byte -9
|
|
.byte 4
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -4
|
|
.byte -3
|
|
.byte -3
|
|
.byte -5
|
|
.byte -5
|
|
.byte -7
|
|
.byte -7
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -12
|
|
.byte -4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 3
|
|
.byte 5
|
|
.byte 5
|
|
.byte 5
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -9
|
|
.byte -15
|
|
.byte 2
|
|
.byte -7
|
|
.byte -11
|
|
.byte -14
|
|
.byte -8
|
|
.byte -12
|
|
.byte -10
|
|
.byte 6
|
|
.byte 1
|
|
.byte -3
|
|
.byte -6
|
|
.byte 0
|
|
.byte -4
|
|
.byte -2
|
|
.byte 10
|
|
.byte -3
|
|
.byte -7
|
|
.byte -6
|
|
.byte 4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -10
|
|
.byte -23
|
|
.byte -39
|
|
.byte -22
|
|
.byte -19
|
|
.byte -24
|
|
.byte -18
|
|
.byte -7
|
|
.byte -27
|
|
.byte -35
|
|
.byte -26
|
|
.byte -15
|
|
.byte -24
|
|
.byte -26
|
|
.byte 6
|
|
.byte -11
|
|
.byte 5
|
|
.byte -2
|
|
.byte -16
|
|
.byte -16
|
|
.byte -2
|
|
.byte -2
|
|
.byte -15
|
|
.byte -15
|
|
.byte -20
|
|
.byte -8
|
|
.byte -16
|
|
.byte -18
|
|
.byte 2
|
|
.byte 1
|
|
.byte -3
|
|
.byte -10
|
|
.byte -8
|
|
.byte -4
|
|
.byte -6
|
|
.byte -2
|
|
.byte -15
|
|
.byte -11
|
|
.byte -26
|
|
.byte -8
|
|
.byte -20
|
|
.byte -30
|
|
.byte 6
|
|
.byte -19
|
|
.byte -3
|
|
.byte -46
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 6
|
|
.byte 9
|
|
.byte 5
|
|
.byte 2
|
|
.byte 4
|
|
.byte 8
|
|
.byte 6
|
|
.byte 8
|
|
.byte 9
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 8
|
|
.byte 6
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.byte -12
|
|
.byte -14
|
|
.byte -20
|
|
.byte -18
|
|
.byte -16
|
|
.byte -16
|
|
.byte -14
|
|
.byte -12
|
|
.byte -10
|
|
.byte -21
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -10
|
|
.byte -12
|
|
.byte -18
|
|
.byte -22
|
|
.byte -24
|
|
.byte -18
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -14
|
|
.byte -23
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte 16
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 12
|
|
.byte 12
|
|
.byte 12
|
|
.byte 18
|
|
.byte 18
|
|
.byte 10
|
|
.byte 8
|
|
.byte 14
|
|
.byte 14
|
|
.byte 14
|
|
.byte 16
|
|
.byte 14
|
|
.byte 6
|
|
.byte 6
|
|
.byte 12
|
|
.byte 14
|
|
.byte 8
|
|
.byte 10
|
|
.byte 13
|
|
.byte 5
|
|
.byte 2
|
|
.byte 14
|
|
.byte 8
|
|
.byte 6
|
|
.byte 6
|
|
.byte 13
|
|
.byte 9
|
|
.byte 4
|
|
.byte 14
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.section .rodata.ymtc_3d_read_retrial.str1.1,"aMS",@progbits,1
|
|
.LC117:
|
|
.string "YMTC RR %d row=%x,count %d,status=%d\n"
|
|
.section .rodata.ymtc_flash_tlc_page_prog.str1.1,"aMS",@progbits,1
|
|
.LC131:
|
|
.string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n"
|
|
.section .rodata.zftl_discard.str1.1,"aMS",@progbits,1
|
|
.LC256:
|
|
.string "ftl_discard:(%x, %x, %x, %x)\n"
|
|
.section .rodata.zftl_do_gc.str1.1,"aMS",@progbits,1
|
|
.LC239:
|
|
.string "gc %d: %d %d %d %d %d %d %d\n"
|
|
.LC240:
|
|
.string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
|
|
.LC241:
|
|
.string "gc free %x, %d\n"
|
|
.section .rodata.zftl_gc_get_free_sblk.str1.1,"aMS",@progbits,1
|
|
.LC59:
|
|
.string "swl_tlc_free_mini_ec_blk alloc sblk %x\n"
|
|
.LC60:
|
|
.string "zftl_get_free_sblk %x %d, %p %d %d\n"
|
|
.LC61:
|
|
.string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n"
|
|
.section .rodata.zftl_get_free_sblk.str1.1,"aMS",@progbits,1
|
|
.LC62:
|
|
.string "swl_slc_free_mini_ec_blk alloc sblk %x\n"
|
|
.section .rodata.zftl_init.str1.1,"aMS",@progbits,1
|
|
.LC242:
|
|
.string "FTL version: 6.0.24 20210107"
|
|
.LC243:
|
|
.string "_c_user_data_density := %d\n"
|
|
.LC244:
|
|
.string "_c_totle_phy_density := %d\n"
|
|
.LC245:
|
|
.string "_c_totle_log_page := %d\n"
|
|
.LC246:
|
|
.string "_c_totle_data_density := %d\n"
|
|
.LC247:
|
|
.string "_c_ftl_pm_page_num := %d\n"
|
|
.LC248:
|
|
.string "_c_ftl_byte_pre_page := %d\n"
|
|
.LC249:
|
|
.string "_c_max_pm_sblk := %d\n"
|
|
.LC250:
|
|
.string "_min_slc_super_block := %d\n"
|
|
.LC251:
|
|
.string "_max_xlc_super_block := %d\n"
|
|
.LC252:
|
|
.string "gp_ftl_ext_info %p %p %p\n"
|
|
.LC253:
|
|
.string "flash info size: %d %d %d\n"
|
|
.section .rodata.zftl_read.str1.1,"aMS",@progbits,1
|
|
.LC228:
|
|
.string "ftl_read %x %x %x\n"
|
|
.LC229:
|
|
.string "ftl_read refresh =%x, lpa = %x, ppa= %x\n"
|
|
.LC230:
|
|
.string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n"
|
|
.section .rodata.zftl_sblk_list_init.str1.1,"aMS",@progbits,1
|
|
.LC91:
|
|
.string "free blk vpn error: %x %x\n"
|
|
.section .rodata.zftl_write.str1.1,"aMS",@progbits,1
|
|
.LC255:
|
|
.string "ftlwrite %x %x %x %x\n"
|
|
.hidden free
|