37095 lines
625 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-07-26
* function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D
* TLC and MLC.
*/
.arch armv7-a
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 4
.eabi_attribute 34, 1
.file "rk_zftl_arm_v7.c"
.syntax unified
.text
.align 2
.fpu softvfp
.type flash_mem_cmp8, %function
flash_mem_cmp8:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
mov r3, #0
cmp r3, r2
bne .L10
mov r0, #0
bx lr
.L2:
cmp r3, r2
bne .L5
mov r0, #0
ldr pc, [sp], #4
.L10:
str lr, [sp, #-4]!
.save {lr}
.L5:
ldrb lr, [r0, r3] @ zero_extendqisi2
ldrb ip, [r1, r3] @ zero_extendqisi2
add r3, r3, #1
cmp lr, ip
beq .L2
mov r0, r3
ldr pc, [sp], #4
.fnend
.size flash_mem_cmp8, .-flash_mem_cmp8
.global __aeabi_uidiv
.global __aeabi_uidivmod
.align 2
.syntax unified
.arm
.fpu softvfp
.type slc_phy_page_address_calc, %function
slc_phy_page_address_calc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r5, .L22
ldrb r3, [r5] @ zero_extendqisi2
cmp r3, #0
beq .L12
ldrb r3, [r5, #1] @ zero_extendqisi2
cmp r3, #0
beq .L13
.L12:
ldrh r6, [r5, #2]
mov r0, r4
mov r1, r6
bl __aeabi_uidiv
mov r1, r6
mul r7, r6, r0
mov r0, r4
bl __aeabi_uidivmod
ldrb r3, [r5, #1] @ zero_extendqisi2
lsl r1, r1, #1
cmp r3, #0
addeq r1, r5, r1
addne r4, r1, r7
ldrheq r4, [r1, #4]
addeq r4, r4, r7
.L13:
mov r0, r4
pop {r4, r5, r6, r7, r8, pc}
.L23:
.align 2
.L22:
.word .LANCHOR0
.fnend
.size slc_phy_page_address_calc, .-slc_phy_page_address_calc
.align 2
.global zftl_nandc_get_irq_status
.syntax unified
.arm
.fpu softvfp
.type zftl_nandc_get_irq_status, %function
zftl_nandc_get_irq_status:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L27
ldrb r3, [r3, #1028] @ zero_extendqisi2
cmp r3, #9
ldreq r0, [r0, #296]
ldrne r0, [r0, #372]
bx lr
.L28:
.align 2
.L27:
.word .LANCHOR0
.fnend
.size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
.section .text.unlikely,"ax",%progbits
.align 2
.syntax unified
.arm
.fpu softvfp
.type isxdigit, %function
isxdigit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
bic r3, r0, #32
sub r3, r3, #65
cmp r3, #25
bls .L31
sub r0, r0, #48
cmp r0, #9
movhi r0, #0
movls r0, #1
bx lr
.L31:
mov r0, #1
bx lr
.fnend
.size isxdigit, .-isxdigit
.text
.align 2
.global zftl_get_density
.syntax unified
.arm
.fpu softvfp
.type zftl_get_density, %function
zftl_get_density:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, #0
bne .L33
ldr r3, .L36
ldr r0, [r3, #1032]
bx lr
.L33:
cmp r0, #4
movcc r0, #8192
movcs r0, #0
bx lr
.L37:
.align 2
.L36:
.word .LANCHOR0
.fnend
.size zftl_get_density, .-zftl_get_density
.align 2
.syntax unified
.arm
.fpu softvfp
.type _list_remove_node, %function
_list_remove_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r5, #6
ldr r6, .L47
mul r5, r5, r1
movw r3, #65535
ldr r8, [r6, #1036]
ldrh ip, [r8, r5]
add r4, r8, r5
ldrh r1, [r4, #2]
cmp ip, r3
ldr r3, [r0]
bne .L39
cmp r1, ip
bne .L39
cmp r4, r3
popne {r4, r5, r6, r7, r8, r9, r10, pc}
.L39:
mov r9, r2
movw r2, #65535
cmp r1, r2
mov r7, r0
bne .L41
cmp r4, r3
beq .L41
mov r2, #202
ldr r1, .L47+4
ldr r0, .L47+8
bl printk
bl dump_stack
.L41:
ldr r3, [r7]
movw r2, #65535
cmp r4, r3
ldrh r3, [r8, r5]
bne .L42
cmp r3, r2
ldrne r2, [r6, #1036]
movne r1, #6
moveq r3, #0
streq r3, [r7]
mlane r3, r1, r3, r2
mvnne r2, #0
strne r3, [r7]
strhne r2, [r3, #2] @ movhi
.L44:
mvn r3, #0
strh r3, [r8, r5] @ movhi
strh r3, [r4, #2] @ movhi
ldrh r3, [r9]
sub r3, r3, #1
strh r3, [r9] @ movhi
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L42:
cmp r3, r2
ldrh r1, [r4, #2]
bne .L45
cmp r1, r3
movne r3, #6
ldrne r2, [r6, #1036]
mulne r1, r3, r1
mvnne r3, #0
strhne r3, [r2, r1] @ movhi
b .L44
.L45:
ldr r0, [r6, #1036]
mov r2, #6
mla r3, r2, r3, r0
strh r1, [r3, #2] @ movhi
ldrh r0, [r4, #2]
ldrh r1, [r8, r5]
ldr r3, [r6, #1036]
mul r2, r2, r0
strh r1, [r3, r2] @ movhi
b .L44
.L48:
.align 2
.L47:
.word .LANCHOR0
.word .LANCHOR1
.word .LC0
.fnend
.size _list_remove_node, .-_list_remove_node
.align 2
.syntax unified
.arm
.fpu softvfp
.type ndelay, %function
ndelay:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L50
add r0, r0, #996
add r0, r0, #3
umull r0, r1, r0, r3
ldr r3, .L50+4
ldr r3, [r3, #8]
lsr r0, r1, #6
bx r3 @ indirect register sibling call
.L51:
.align 2
.L50:
.word 274877907
.word arm_delay_ops
.fnend
.size ndelay, .-ndelay
.align 2
.syntax unified
.arm
.fpu softvfp
.type hynix_set_rr_para, %function
hynix_set_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r2, .L58
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
lsl r9, r0, #8
ldr r3, [r2, #1040]
ldr r6, [r2, #1044]
ldrb ip, [r3, #113] @ zero_extendqisi2
add r4, r3, #112
ldrb r2, [r3, #112] @ zero_extendqisi2
add r5, r6, r9
add r7, r3, #128
add r8, r3, #127
mul r1, r1, ip
cmp r2, #8
movne r2, #160
add r1, r1, #32
smlabbne r1, r2, r0, r1
mov r2, #54
str r2, [r5, #2056]
sub r2, ip, #1
add r4, r4, r1
add r7, r7, r2
sub r4, r4, #1
.L55:
cmp r8, r7
bne .L56
add r6, r6, r9
mov r3, #22
str r3, [r6, #2056]
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L56:
ldrb r3, [r8, #1]! @ zero_extendqisi2
mov r0, #120
str r3, [r5, #2052]
bl ndelay
ldrsb r3, [r4, #1]!
str r3, [r5, #2048]
b .L55
.L59:
.align 2
.L58:
.word .LANCHOR0
.fnend
.size hynix_set_rr_para, .-hynix_set_rr_para
.align 2
.syntax unified
.arm
.fpu softvfp
.type zftl_debug_proc_open, %function
zftl_debug_proc_open:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r4, r1
bl PDE_DATA
mov r2, r0
mov r0, r4
ldr r1, .L62
pop {r4, lr}
b single_open
.L63:
.align 2
.L62:
.word zftl_debug_proc_show
.fnend
.size zftl_debug_proc_open, .-zftl_debug_proc_open
.align 2
.syntax unified
.arm
.fpu softvfp
.type zftl_debug_proc_show, %function
zftl_debug_proc_show:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r4, r0
ldr r2, .L66
ldr r1, .L66+4
bl seq_printf
ldr r3, .L66+8
mov r0, r4
ldr r1, .L66+12
ldr r2, [r3]
bl seq_printf
mov r0, #0
pop {r4, pc}
.L67:
.align 2
.L66:
.word .LC1
.word .LC2
.word .LANCHOR2
.word .LC3
.fnend
.size zftl_debug_proc_show, .-zftl_debug_proc_show
.align 2
.global zftl_flash_suspend
.syntax unified
.arm
.fpu softvfp
.type zftl_flash_suspend, %function
zftl_flash_suspend:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L72
ldrb r2, [r3, #1028] @ zero_extendqisi2
cmp r2, #9
ldr r2, [r3, #1044]
ldr r1, [r2]
str r1, [r3, #1048]
ldr r1, [r2, #4]
str r1, [r3, #1052]
bne .L69
ldr r1, [r2, #16]
str r1, [r3, #1056]
ldr r1, [r2, #32]
str r1, [r3, #1060]
ldr r1, [r2, #80]
str r1, [r3, #1064]
ldr r1, [r2, #84]
str r1, [r3, #1068]
ldr r1, [r2, #520]
ldr r2, [r2, #8]
str r1, [r3, #1072]
.L71:
str r2, [r3, #1076]
bx lr
.L69:
ldr r1, [r2, #8]
str r1, [r3, #1056]
ldr r1, [r2, #12]
str r1, [r3, #1060]
ldr r1, [r2, #304]
str r1, [r3, #1064]
ldr r1, [r2, #308]
str r1, [r3, #1068]
ldr r1, [r2, #336]
ldr r2, [r2, #344]
str r1, [r3, #1072]
b .L71
.L73:
.align 2
.L72:
.word .LANCHOR0
.fnend
.size zftl_flash_suspend, .-zftl_flash_suspend
.align 2
.syntax unified
.arm
.fpu softvfp
.type nandc_irq_disable, %function
nandc_irq_disable:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L77
ldrb r3, [r3, #1028] @ zero_extendqisi2
cmp r3, #9
mov r3, #1
bne .L75
ldr r2, [r0, #292]
lsl r1, r3, r1
orr r3, r2, r1
str r3, [r0, #292]
ldr r3, [r0, #288]
bic r1, r3, r1
str r1, [r0, #288]
bx lr
.L75:
ldr r2, [r0, #368]
lsl r1, r3, r1
orr r3, r2, r1
str r3, [r0, #368]
ldr r3, [r0, #364]
bic r1, r3, r1
str r1, [r0, #364]
bx lr
.L78:
.align 2
.L77:
.word .LANCHOR0
.fnend
.size nandc_irq_disable, .-nandc_irq_disable
.align 2
.syntax unified
.arm
.fpu softvfp
.type _insert_free_list, %function
_insert_free_list:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L91
movw ip, #1080
ldrh ip, [r3, ip]
cmp ip, r1
bxls lr
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r4, r3
ldrh ip, [r2]
add ip, ip, #1
strh ip, [r2] @ movhi
mov ip, #6
mul r6, ip, r1
ldr r7, [r3, #1036]
mvn r3, #0
add lr, r7, r6
strh r3, [lr, #2] @ movhi
strh r3, [r7, r6] @ movhi
ldr r3, [r0]
cmp r3, #0
bne .L81
.L90:
str lr, [r0]
b .L79
.L81:
ldr r5, [r4, #1084]
add r2, r4, #1088
ldrh r10, [r2]
lsl r8, r1, #2
ldr r9, [r4, #1036]
movw fp, #65535
ldr r2, [r5, r1, lsl #2]
ldrh r8, [r5, r8]
str ip, [sp, #4]
ubfx r2, r2, #11, #8
smulbb r2, r2, r10
ubfx r8, r8, #0, #11
add r2, r2, r8
uxth r2, r2
str r2, [sp]
sub r2, r3, r9
asr r8, r2, #1
ldr r2, .L91+4
mul r2, r2, r8
uxth r2, r2
.L84:
ldr ip, [r5, r2, lsl #2]
lsl r8, r2, #2
ldrh r8, [r5, r8]
ubfx ip, ip, #11, #8
smulbb ip, ip, r10
ubfx r8, r8, #0, #11
add ip, ip, r8
ldr r8, [sp]
uxth ip, ip
cmp r8, ip
bls .L82
ldrh ip, [r3]
cmp ip, fp
bne .L83
strh r2, [lr, #2] @ movhi
strh r1, [r3] @ movhi
.L79:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L83:
ldr r3, [sp, #4]
mov r2, ip
mla r3, r3, ip, r9
b .L84
.L82:
ldrh ip, [r3, #2]
strh ip, [lr, #2] @ movhi
strh r2, [r7, r6] @ movhi
ldr r2, [r0]
cmp r3, r2
strheq r1, [r3, #2] @ movhi
beq .L90
.L85:
ldrh ip, [r3, #2]
mov r2, #6
ldr r0, [r4, #1036]
mul r2, r2, ip
strh r1, [r0, r2] @ movhi
strh r1, [r3, #2] @ movhi
b .L79
.L92:
.align 2
.L91:
.word .LANCHOR0
.word -1431655765
.fnend
.size _insert_free_list, .-_insert_free_list
.align 2
.syntax unified
.arm
.fpu softvfp
.type _insert_data_list, %function
_insert_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L116
movw ip, #1080
ldrh ip, [r3, ip]
cmp ip, r1
bxls lr
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, #6
ldrh ip, [r2]
mul r5, r5, r1
mov r4, r3
.pad #28
sub sp, sp, #28
add ip, ip, #1
strh ip, [r2] @ movhi
ldr r10, [r3, #1036]
mvn r3, #0
add lr, r10, r5
strh r3, [lr, #2] @ movhi
strh r3, [r10, r5] @ movhi
ldr r3, [r0]
cmp r3, #0
bne .L96
.L115:
str lr, [r0]
b .L93
.L96:
ldr r2, [r4, #1092]
add r8, r4, #1088
ldr r9, [r4, #1084]
ldrh r8, [r8]
str r2, [sp, #4]
lsl r2, r1, #1
ldr ip, [sp, #4]
ldrh r6, [lr, #4]
ldr r7, [r9, r1, lsl #2]
ldrh ip, [ip, r2]
muls ip, r6, ip
str r8, [sp, #8]
lsl r2, r1, #2
ldrhne r8, [sp, #8]
ubfx r7, r7, #11, #8
ldrh r2, [r9, r2]
smulbbne r7, r7, r8
ubfx r2, r2, #0, #11
addne r2, r2, r7
uxtahne ip, ip, r2
ldr r2, [r4, #1036]
cmp r6, #0
mvneq ip, #0
str r2, [sp, #12]
sub r2, r3, r2
asr r6, r2, #1
ldr r2, .L116+4
mul r2, r2, r6
movw r6, #1080
ldrh r4, [r4, r6]
mov r6, #0
uxth r2, r2
str r4, [sp, #16]
.L103:
sub r4, r1, r2
ldr r7, [sp, #16]
add r6, r6, #1
clz r4, r4
uxth r6, r6
lsr r4, r4, #5
cmp r6, r7
orrhi r4, r4, #1
cmp r4, #0
bne .L93
ldr r7, [sp, #4]
lsl r4, r2, #1
ldrh fp, [r3, #4]
ldr r8, [r9, r2, lsl #2]
ldrh r4, [r7, r4]
lsl r7, r2, #2
muls r4, fp, r4
ldrh r7, [r9, r7]
ubfx r8, r8, #11, #8
ubfx r7, r7, #0, #11
str r7, [sp, #20]
ldrhne r7, [sp, #8]
smulbbne r8, r8, r7
ldrne r7, [sp, #20]
addne r7, r7, r8
uxtahne r4, r4, r7
cmp fp, #0
cmpne ip, r4
bls .L101
ldrh r4, [r3]
movw r7, #65535
cmp r4, r7
bne .L102
strh r2, [lr, #2] @ movhi
strh r1, [r3] @ movhi
.L93:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L102:
ldr r2, [sp, #12]
mov r3, #6
mla r3, r3, r4, r2
mov r2, r4
b .L103
.L101:
ldrh ip, [r3, #2]
strh ip, [lr, #2] @ movhi
strh r2, [r10, r5] @ movhi
ldr r2, [r0]
cmp r3, r2
strheq r1, [r3, #2] @ movhi
beq .L115
.L104:
ldrh ip, [r3, #2]
ldr r2, .L116
ldr r0, [r2, #1036]
mov r2, #6
mul r2, r2, ip
strh r1, [r0, r2] @ movhi
strh r1, [r3, #2] @ movhi
b .L93
.L117:
.align 2
.L116:
.word .LANCHOR0
.word -1431655765
.fnend
.size _insert_data_list, .-_insert_data_list
.align 2
.syntax unified
.arm
.fpu softvfp
.type _list_update_data_list, %function
_list_update_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
ldr r5, .L129
ldr r3, [r5, #1096]
ldrh ip, [r3, #16]
cmp ip, r1
popeq {r4, r5, r6, r7, r8, r9, r10, pc}
ldrh ip, [r3, #48]
cmp ip, r1
popeq {r4, r5, r6, r7, r8, r9, r10, pc}
ldrh r3, [r3, #80]
cmp r3, r1
popeq {r4, r5, r6, r7, r8, r9, r10, pc}
mov r8, #6
ldr r10, [r5, #1036]
mul r8, r8, r1
ldr r3, [r0]
add r9, r10, r8
cmp r9, r3
popeq {r4, r5, r6, r7, r8, r9, r10, pc}
ldrh r3, [r9, #2]
mov r7, r2
movw r2, #65535
mov r4, r1
mov r6, r0
cmp r3, r2
bne .L122
ldrh r2, [r10, r8]
cmp r2, r3
bne .L122
movw r2, #273
ldr r1, .L129+4
ldr r0, .L129+8
bl printk
bl dump_stack
.L122:
ldrh r3, [r9, #2]
movw r2, #65535
cmp r3, r2
bne .L123
ldrh r2, [r10, r8]
cmp r2, r3
popeq {r4, r5, r6, r7, r8, r9, r10, pc}
.L123:
ldr r0, [r5, #1092]
lsl r2, r4, #1
ldrh r1, [r9, #4]
ldrh r2, [r0, r2]
cmp r1, #0
mvneq r1, #0
mulne r1, r1, r2
mov r2, #6
mul r2, r2, r3
ldr r3, .L129+12
asr ip, r2, #1
mul r3, r3, ip
lsl r3, r3, #1
ldrh ip, [r0, r3]
ldr r0, [r5, #1036]
add r2, r0, r2
ldrh r3, [r2, #4]
cmp r3, #0
mulne r3, r3, ip
mvneq r3, #0
cmp r1, r3
popcs {r4, r5, r6, r7, r8, r9, r10, pc}
mov r2, r7
mov r1, r4
mov r0, r6
bl _list_remove_node
mov r2, r7
mov r1, r4
mov r0, r6
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b _insert_data_list
.L130:
.align 2
.L129:
.word .LANCHOR0
.word .LANCHOR1+18
.word .LC0
.word -1431655765
.fnend
.size _list_update_data_list, .-_list_update_data_list
.section .text.unlikely
.align 2
.syntax unified
.arm
.fpu softvfp
.type rk_simple_strtoull.constprop.33, %function
rk_simple_strtoull.constprop.33:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldrb r3, [r0] @ zero_extendqisi2
cmp r3, #48
movne r2, r0
movne r5, #10
bne .L132
ldrb r3, [r0, #1] @ zero_extendqisi2
add r2, r0, #1
orr r3, r3, #32
cmp r3, #120
bne .L144
ldrb r0, [r0, #2] @ zero_extendqisi2
bl isxdigit
cmp r0, #0
addne r2, r4, #2
movne r5, #16
bne .L132
.L144:
mov r5, #8
.L132:
mov r6, #0
.L133:
mov r7, r2
ldrb r4, [r2], #1 @ zero_extendqisi2
mov r0, r4
bl isxdigit
cmp r0, #0
bne .L134
.L140:
cmp r1, #0
mov r0, r6
strne r7, [r1]
pop {r4, r5, r6, r7, r8, pc}
.L134:
sub r0, r4, #48
cmp r0, #9
orrhi r0, r4, #32
subhi r0, r0, #87
cmp r0, r5
bcs .L140
mla r6, r5, r6, r0
b .L133
.fnend
.size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33
.text
.align 2
.syntax unified
.arm
.fpu softvfp
.type nandc_de_cs.constprop.35, %function
nandc_de_cs.constprop.35:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L148
ldr r2, [r3, #1044]
ldr r3, [r2]
bfc r3, #0, #8
bfc r3, #17, #1
str r3, [r2]
bx lr
.L149:
.align 2
.L148:
.word .LANCHOR0
.fnend
.size nandc_de_cs.constprop.35, .-nandc_de_cs.constprop.35
.align 2
.global flash_read_status
.syntax unified
.arm
.fpu softvfp
.type flash_read_status, %function
flash_read_status:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
mov r3, #112
push {r4, lr}
.save {r4, lr}
mov r4, r0
str r3, [r0, #8]
mov r0, #120
bl ndelay
ldr r0, [r4]
uxtb r0, r0
pop {r4, pc}
.fnend
.size flash_read_status, .-flash_read_status
.align 2
.global toshiba_set_rr_para
.syntax unified
.arm
.fpu softvfp
.type toshiba_set_rr_para, %function
toshiba_set_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
add r8, r1, r1, lsl #2
ldr r9, .L161
mov r5, r0
mov r6, r1
mov r4, #0
ldr r7, .L161+4
add r10, r9, #41
.L153:
ldrb r3, [r7, #1101] @ zero_extendqisi2
cmp r4, r3
bcc .L157
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L157:
mov r3, #85
mov r0, #200
str r3, [r5, #8]
ldrsb r3, [r4, r10]
str r3, [r5, #4]
bl ndelay
ldrb r3, [r7, #1100] @ zero_extendqisi2
cmp r3, #34
addeq r3, r4, r8
addeq r3, r10, r3
beq .L160
cmp r3, #35
addne r3, r9, r6
ldrsbne r3, [r3, #181]
bne .L159
ldr r2, .L161+8
add r3, r4, r8
add r3, r2, r3
.L160:
ldrsb r3, [r3, #5]
.L159:
str r3, [r5]
add r4, r4, #1
b .L153
.L162:
.align 2
.L161:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR1+86
.fnend
.size toshiba_set_rr_para, .-toshiba_set_rr_para
.align 2
.global hynix_reconfig_rr_para
.syntax unified
.arm
.fpu softvfp
.type hynix_reconfig_rr_para, %function
hynix_reconfig_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r5, .L169
ldrb r2, [r5, #1100] @ zero_extendqisi2
sub r2, r2, #1
cmp r2, #7
pophi {r4, r5, r6, pc}
ldr r2, [r5, #1040]
mov r4, r0
add r2, r2, r0
ldrb r2, [r2, #120] @ zero_extendqisi2
cmp r2, #0
popeq {r4, r5, r6, pc}
mov r1, #0
bl hynix_set_rr_para
ldr r3, [r5, #1040]
mov r2, #0
add r3, r3, r4
strb r2, [r3, #120]
pop {r4, r5, r6, pc}
.L170:
.align 2
.L169:
.word .LANCHOR0
.fnend
.size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
.align 2
.global nand_flash_print_info
.syntax unified
.arm
.fpu softvfp
.type nand_flash_print_info, %function
nand_flash_print_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, lr}
.save {r4, lr}
.pad #16
ldr r4, .L290
ldr r3, [r4]
tst r3, #4096
beq .L172
ldr r1, .L290+4
ldr r0, .L290+8
bl printk
.L172:
ldr r3, [r4]
tst r3, #4096
beq .L173
ldr r3, .L290+12
ldr r0, [r3, #1104]
ldrb ip, [r0, #6] @ zero_extendqisi2
ldrb r3, [r0, #3] @ zero_extendqisi2
ldrb r2, [r0, #2] @ zero_extendqisi2
ldrb r1, [r0, #1] @ zero_extendqisi2
str ip, [sp, #8]
ldrb ip, [r0, #5] @ zero_extendqisi2
str ip, [sp, #4]
ldrb r0, [r0, #4] @ zero_extendqisi2
str r0, [sp]
ldr r0, .L290+16
bl printk
.L173:
ldr r3, [r4]
tst r3, #4096
beq .L174
ldr r3, .L290+12
ldr r0, .L290+20
ldr r3, [r3, #1104]
ldrb r1, [r3, #8] @ zero_extendqisi2
bl printk
.L174:
ldr r3, [r4]
tst r3, #4096
beq .L175
ldr r3, .L290+12
ldr r0, .L290+24
ldr r3, [r3, #1104]
ldrb r1, [r3, #9] @ zero_extendqisi2
bl printk
.L175:
ldr r3, [r4]
tst r3, #4096
beq .L176
ldr r3, .L290+12
ldr r0, .L290+28
ldr r3, [r3, #1104]
ldrh r1, [r3, #10]
bl printk
.L176:
ldr r3, [r4]
tst r3, #4096
beq .L177
ldr r3, .L290+12
ldr r0, .L290+32
ldr r3, [r3, #1104]
ldrb r1, [r3, #12] @ zero_extendqisi2
bl printk
.L177:
ldr r3, [r4]
tst r3, #4096
beq .L178
ldr r3, .L290+12
ldr r0, .L290+36
ldr r3, [r3, #1104]
ldrb r1, [r3, #13] @ zero_extendqisi2
bl printk
.L178:
ldr r3, [r4]
tst r3, #4096
beq .L179
ldr r3, .L290+12
ldr r0, .L290+40
ldr r3, [r3, #1104]
ldrh r1, [r3, #14]
bl printk
.L179:
ldr r3, [r4]
tst r3, #4096
beq .L180
ldr r3, .L290+12
ldr r0, .L290+44
ldr r3, [r3, #1104]
ldrb r1, [r3, #23] @ zero_extendqisi2
bl printk
.L180:
ldr r3, [r4]
tst r3, #4096
beq .L181
ldr r3, .L290+12
ldr r0, .L290+48
ldr r3, [r3, #1104]
ldrb r1, [r3, #18] @ zero_extendqisi2
bl printk
.L181:
ldr r3, [r4]
tst r3, #4096
beq .L182
ldr r3, .L290+12
ldr r0, .L290+52
ldr r3, [r3, #1104]
ldrb r1, [r3, #19] @ zero_extendqisi2
bl printk
.L182:
ldr r3, [r4]
tst r3, #4096
beq .L183
ldr r3, .L290+12
ldr r0, .L290+56
ldr r3, [r3, #1104]
ldrb r1, [r3, #20] @ zero_extendqisi2
bl printk
.L183:
ldr r3, [r4]
tst r3, #4096
beq .L184
ldr r3, .L290+12
ldr r0, .L290+60
ldrb r1, [r3, #1108] @ zero_extendqisi2
bl printk
.L184:
ldr r3, [r4]
tst r3, #4096
beq .L185
ldr r3, .L290+12
ldr r0, .L290+64
ldr r3, [r3, #1104]
ldrb r1, [r3, #22] @ zero_extendqisi2
bl printk
.L185:
ldr r3, [r4]
tst r3, #4096
beq .L186
ldr r3, .L290+12
ldr r0, .L290+68
ldrb r1, [r3, #1109] @ zero_extendqisi2
bl printk
.L186:
ldr r3, [r4]
tst r3, #4096
beq .L187
ldr r3, .L290+12
ldr r0, .L290+72
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
and r1, r1, #1
bl printk
.L187:
ldr r3, [r4]
tst r3, #4096
beq .L188
ldr r3, .L290+12
ldr r0, .L290+76
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #1, #1
bl printk
.L188:
ldr r3, [r4]
tst r3, #4096
beq .L189
ldr r3, .L290+12
ldr r0, .L290+80
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #2, #1
bl printk
.L189:
ldr r3, [r4]
tst r3, #4096
beq .L190
ldr r3, .L290+12
ldr r0, .L290+84
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #3, #1
bl printk
.L190:
ldr r3, [r4]
tst r3, #4096
beq .L191
ldr r3, .L290+12
ldr r0, .L290+88
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #4, #1
bl printk
.L191:
ldr r3, [r4]
tst r3, #4096
beq .L192
ldr r3, .L290+12
ldr r0, .L290+92
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #5, #1
bl printk
.L192:
ldr r3, [r4]
tst r3, #4096
beq .L193
ldr r3, .L290+12
ldr r0, .L290+96
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #6, #1
bl printk
.L193:
ldr r3, [r4]
tst r3, #4096
beq .L194
ldr r3, .L290+12
ldr r0, .L290+100
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #7, #1
bl printk
.L194:
ldr r3, [r4]
tst r3, #4096
beq .L195
ldr r3, .L290+12
ldr r0, .L290+104
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #8, #1
bl printk
.L195:
ldr r3, [r4]
tst r3, #4096
beq .L196
ldr r3, .L290+12
ldr r0, .L290+108
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #9, #1
bl printk
.L196:
ldr r3, [r4]
tst r3, #4096
beq .L197
ldr r3, .L290+12
ldr r0, .L290+112
ldr r3, [r3, #1104]
ldrh r1, [r3, #16]
ubfx r1, r1, #10, #1
bl printk
.L197:
ldr r3, [r4]
tst r3, #4096
beq .L198
ldr r3, .L290+12
ldr r0, .L290+116
ldrb r2, [r3, #1110] @ zero_extendqisi2
ldrb r1, [r3] @ zero_extendqisi2
bl printk
.L198:
ldr r3, [r4]
tst r3, #4096
beq .L199
ldr r3, .L290+12
ldr r0, .L290+120
ldrb r2, [r3, #1122] @ zero_extendqisi2
ldrb r1, [r3, #1121] @ zero_extendqisi2
bl printk
.L199:
ldr r3, [r4]
tst r3, #4096
beq .L200
ldr r3, .L290+12
ldr r0, .L290+124
ldrb r2, [r3, #1120] @ zero_extendqisi2
ldrb r1, [r3, #1119] @ zero_extendqisi2
bl printk
.L200:
ldr r3, [r4]
tst r3, #4096
beq .L171
ldr r3, .L290+12
ldr r0, .L290+128
ldrb r1, [r3, #1143] @ zero_extendqisi2
add sp, sp, #16
@ sp needed
pop {r4, lr}
b printk
.L171:
add sp, sp, #16
@ sp needed
pop {r4, pc}
.L291:
.align 2
.L290:
.word .LANCHOR2
.word .LANCHOR1+189
.word .LC4
.word .LANCHOR0
.word .LC5
.word .LC6
.word .LC7
.word .LC8
.word .LC9
.word .LC10
.word .LC11
.word .LC12
.word .LC13
.word .LC14
.word .LC15
.word .LC16
.word .LC17
.word .LC18
.word .LC19
.word .LC20
.word .LC21
.word .LC22
.word .LC23
.word .LC24
.word .LC25
.word .LC26
.word .LC27
.word .LC28
.word .LC29
.word .LC30
.word .LC31
.word .LC32
.word .LC33
.fnend
.size nand_flash_print_info, .-nand_flash_print_info
.align 2
.global timer_delay_ns
.syntax unified
.arm
.fpu softvfp
.type timer_delay_ns, %function
timer_delay_ns:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b ndelay
.fnend
.size timer_delay_ns, .-timer_delay_ns
.align 2
.global nandc_set_ddr_para
.syntax unified
.arm
.fpu softvfp
.type nandc_set_ddr_para, %function
nandc_set_ddr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r2, .L296
ldrb r3, [r2, #1028] @ zero_extendqisi2
ldr r2, [r2, #1044]
cmp r3, #9
lsl r3, r0, #16
lsl r0, r0, #8
orr r3, r3, r0
orr r3, r3, #3
streq r3, [r2, #80]
strne r3, [r2, #304]
bx lr
.L297:
.align 2
.L296:
.word .LANCHOR0
.fnend
.size nandc_set_ddr_para, .-nandc_set_ddr_para
.align 2
.global nandc_get_ddr_para
.syntax unified
.arm
.fpu softvfp
.type nandc_get_ddr_para, %function
nandc_get_ddr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L302
ldrb r2, [r3, #1028] @ zero_extendqisi2
ldr r3, [r3, #1044]
cmp r2, #9
ldreq r0, [r3, #80]
ldrne r0, [r3, #304]
ubfx r0, r0, #8, #8
bx lr
.L303:
.align 2
.L302:
.word .LANCHOR0
.fnend
.size nandc_get_ddr_para, .-nandc_get_ddr_para
.align 2
.global nandc_set_if_mode
.syntax unified
.arm
.fpu softvfp
.type nandc_set_if_mode, %function
nandc_set_if_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r1, .L312
ands ip, r0, #6
ldr r3, [r1, #1044]
ldr r2, [r3]
bfieq r2, ip, #13, #1
beq .L308
ldrb r1, [r1, #1028] @ zero_extendqisi2
orr r2, r2, #24576
bfc r2, #15, #1
tst r0, #4
orr r2, r2, #196608
movw r0, #8321
orrne r2, r2, #32768
cmp r1, #9
ldr r1, .L312+4
streq r0, [r3, #8]
strne r0, [r3, #344]
streq r1, [r3, #80]
moveq r1, #38
strne r1, [r3, #304]
movne r1, #38
streq r1, [r3, #84]
moveq r1, #39
strne r1, [r3, #308]
movne r1, #39
streq r1, [r3, #84]
strne r1, [r3, #308]
.L308:
str r2, [r3]
bx lr
.L313:
.align 2
.L312:
.word .LANCHOR0
.word 1052675
.fnend
.size nandc_set_if_mode, .-nandc_set_if_mode
.align 2
.global nandc_cs
.syntax unified
.arm
.fpu softvfp
.type nandc_cs, %function
nandc_cs:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L315
mov r2, #1
lsl r0, r2, r0
ldr r1, [r3, #1044]
ldr r3, [r1]
bfi r3, r0, #0, #8
str r3, [r1]
bx lr
.L316:
.align 2
.L315:
.word .LANCHOR0
.fnend
.size nandc_cs, .-nandc_cs
.align 2
.global flash_wait_device_ready_raw
.syntax unified
.arm
.fpu softvfp
.type flash_wait_device_ready_raw, %function
flash_wait_device_ready_raw:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r6, r0
ldr r4, .L326
mov r5, r1
str r2, [sp, #4]
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r0
bhi .L318
mov r2, #812
ldr r1, .L326+4
ldr r0, .L326+8
bl printk
bl dump_stack
.L318:
add r6, r4, r6
ldr r3, [r4, #1044]
ldrb r6, [r6, #1144] @ zero_extendqisi2
lsr r8, r5, #8
lsr r9, r5, #16
lsr r10, r5, #24
mov fp, #120
add r7, r3, r6, lsl #8
.L320:
mov r0, r6
bl nandc_cs
uxtb r2, r5
str fp, [r7, #2056]
mov r0, #120
str r2, [r7, #2052]
ldrb r2, [r4, #1152] @ zero_extendqisi2
str r8, [r7, #2052]
str r9, [r7, #2052]
cmp r2, #0
strne r10, [r7, #2052]
bl ndelay
ldr r0, [r7, #2048]
uxtb r0, r0
bl nandc_de_cs.constprop.35
ldr r3, [sp, #4]
bics r3, r3, r0
movne r2, #1
moveq r2, #0
cmp r0, #255
orreq r2, r2, #1
cmp r2, #0
bne .L320
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L327:
.align 2
.L326:
.word .LANCHOR0
.word .LANCHOR1+211
.word .LC0
.fnend
.size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
.align 2
.global flash_wait_device_ready
.syntax unified
.arm
.fpu softvfp
.type flash_wait_device_ready, %function
flash_wait_device_ready:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r3, #1
ldr r5, .L339
tst r0, #50331648
mov r7, r1
ldrb r6, [r5, #1153] @ zero_extendqisi2
rsb r2, r6, #24
lsl r6, r3, r6
lsl r4, r3, r2
sub r6, r6, #1
sub r4, r4, #1
and r6, r6, r0, asr r2
and r4, r4, r0
uxtb r6, r6
bne .L329
ldrb r3, [r5] @ zero_extendqisi2
cmp r3, #0
beq .L330
ldrb r3, [r5, #1] @ zero_extendqisi2
cmp r3, #0
beq .L329
.L330:
ldrh r8, [r5, #2]
mov r0, r4
mov r1, r8
bl __aeabi_uidiv
mov r1, r8
mul r9, r8, r0
mov r0, r4
bl __aeabi_uidivmod
ldrb r3, [r5, #1] @ zero_extendqisi2
lsl r1, r1, #1
cmp r3, #0
addeq r5, r5, r1
addne r4, r1, r9
ldrheq r4, [r5, #4]
addeq r4, r4, r9
.L329:
mov r2, r7
mov r1, r4
mov r0, r6
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b flash_wait_device_ready_raw
.L340:
.align 2
.L339:
.word .LANCHOR0
.fnend
.size flash_wait_device_ready, .-flash_wait_device_ready
.align 2
.global nandc_de_cs
.syntax unified
.arm
.fpu softvfp
.type nandc_de_cs, %function
nandc_de_cs:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L342
ldr r2, [r3, #1044]
ldr r3, [r2]
bfc r3, #0, #8
bfc r3, #17, #1
str r3, [r2]
bx lr
.L343:
.align 2
.L342:
.word .LANCHOR0
.fnend
.size nandc_de_cs, .-nandc_de_cs
.align 2
.global nandc_wait_flash_ready_no_delay
.syntax unified
.arm
.fpu softvfp
.type nandc_wait_flash_ready_no_delay, %function
nandc_wait_flash_ready_no_delay:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, lr}
.save {r4, r5, lr}
.pad #12
ldr r4, .L350
ldr r5, .L350+4
.L346:
ldr r3, [r5, #1044]
ldr r3, [r3]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #512
bne .L347
mov r0, #10
bl ndelay
subs r4, r4, #1
bne .L346
mvn r0, #0
.L344:
add sp, sp, #12
@ sp needed
pop {r4, r5, pc}
.L347:
mov r0, #0
b .L344
.L351:
.align 2
.L350:
.word 100000
.word .LANCHOR0
.fnend
.size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
.align 2
.global zftl_flash_enter_slc_mode
.syntax unified
.arm
.fpu softvfp
.type zftl_flash_enter_slc_mode, %function
zftl_flash_enter_slc_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L375
ldrb r2, [r3] @ zero_extendqisi2
cmp r2, #0
bxeq lr
cmp r2, #1
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
ldr r5, [r3, #1044]
bne .L355
ldr r3, .L375+4
ldrb r3, [r3, #33] @ zero_extendqisi2
cmp r3, #0
addne r4, r5, r0, lsl #8
bne .L374
pop {r4, r5, r6, r7, r8, pc}
.L355:
cmp r2, #2
mov r4, r0
bne .L357
add r3, r3, r0
ldrb r2, [r3, #1154] @ zero_extendqisi2
cmp r2, #0
popeq {r4, r5, r6, r7, r8, pc}
ldr r6, .L375+4
mov r2, #0
strb r2, [r3, #1154]
ldrb r3, [r6, #33] @ zero_extendqisi2
cmp r3, r2
popeq {r4, r5, r6, r7, r8, pc}
bl nandc_wait_flash_ready_no_delay
ldrb r3, [r6, #33] @ zero_extendqisi2
add r4, r5, r4, lsl #8
.L374:
str r3, [r4, #2056]
pop {r4, r5, r6, r7, r8, pc}
.L357:
cmp r2, #3
popne {r4, r5, r6, r7, r8, pc}
add r6, r3, r0
ldrb r3, [r6, #1154] @ zero_extendqisi2
cmp r3, #0
popeq {r4, r5, r6, r7, r8, pc}
add r4, r5, r4, lsl #8
mov r7, #0
bl nandc_wait_flash_ready_no_delay
mov r3, #239
mov r0, #100
str r3, [r4, #2056]
mov r3, #145
str r3, [r4, #2052]
strb r7, [r6, #1154]
bl ndelay
mov r3, #1
str r7, [r4, #2048]
mov r0, #150
str r3, [r4, #2048]
str r7, [r4, #2048]
str r7, [r4, #2048]
bl ndelay
bl nandc_wait_flash_ready_no_delay
mov r3, #218
mov r0, #50
str r3, [r4, #2056]
pop {r4, r5, r6, r7, r8, lr}
b ndelay
.L376:
.align 2
.L375:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
.align 2
.global zftl_flash_exit_slc_mode
.syntax unified
.arm
.fpu softvfp
.type zftl_flash_exit_slc_mode, %function
zftl_flash_exit_slc_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L402
ldrb r2, [r3] @ zero_extendqisi2
cmp r2, #0
bxeq lr
cmp r2, #1
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
ldr r7, [r3, #1044]
bne .L380
ldr r3, .L402+4
ldrb r3, [r3, #34] @ zero_extendqisi2
cmp r3, #0
addne r4, r7, r0, lsl #8
bne .L401
pop {r4, r5, r6, r7, r8, pc}
.L380:
cmp r2, #2
mov r4, r0
bne .L382
add r3, r3, r0
ldrb r2, [r3, #1154] @ zero_extendqisi2
cmp r2, #0
popne {r4, r5, r6, r7, r8, pc}
ldr r5, .L402+4
ldrb r2, [r5, #16] @ zero_extendqisi2
cmp r2, #2
movne r2, #4
strb r2, [r3, #1154]
ldrb r3, [r5, #34] @ zero_extendqisi2
cmp r3, #0
popeq {r4, r5, r6, r7, r8, pc}
bl nandc_wait_flash_ready_no_delay
ldrb r3, [r5, #34] @ zero_extendqisi2
add r4, r7, r4, lsl #8
.L401:
str r3, [r4, #2056]
pop {r4, r5, r6, r7, r8, pc}
.L382:
cmp r2, #3
popne {r4, r5, r6, r7, r8, pc}
add r6, r3, r0
ldrb r3, [r6, #1154] @ zero_extendqisi2
cmp r3, #0
popne {r4, r5, r6, r7, r8, pc}
ldr r8, .L402+4
lsl r4, r4, #8
bl nandc_wait_flash_ready_no_delay
ldrb r3, [r8, #16] @ zero_extendqisi2
add r5, r7, r4
mov r0, #100
add r4, r7, r4
cmp r3, #2
movne r3, #4
strb r3, [r6, #1154]
mov r3, #239
str r3, [r5, #2056]
mov r3, #145
str r3, [r5, #2052]
bl ndelay
ldrb r3, [r8, #11] @ zero_extendqisi2
mov r0, #150
cmp r3, #9
mov r3, #1
ldrbne r2, [r6, #1154] @ zero_extendqisi2
streq r3, [r5, #2048]
strne r2, [r5, #2048]
str r3, [r5, #2048]
mov r3, #0
str r3, [r5, #2048]
str r3, [r5, #2048]
bl ndelay
bl nandc_wait_flash_ready_no_delay
mov r3, #223
mov r0, #50
str r3, [r4, #2056]
pop {r4, r5, r6, r7, r8, lr}
b ndelay
.L403:
.align 2
.L402:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
.align 2
.global flash_start_page_read
.syntax unified
.arm
.fpu softvfp
.type flash_start_page_read, %function
flash_start_page_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mvn r2, #0
ldr r4, .L419
mov r7, r0
mov r10, r1
ldrb r3, [r4, #1153] @ zero_extendqisi2
rsb r5, r3, #24
lsr r6, r1, r5
bic r6, r6, r2, lsl r3
ldrb r3, [r4, #1109] @ zero_extendqisi2
uxtb r6, r6
cmp r3, r6
bhi .L405
movw r2, #1013
ldr r1, .L419+4
ldr r0, .L419+8
bl printk
bl dump_stack
.L405:
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r6
popls {r4, r5, r6, r7, r8, r9, r10, pc}
add r6, r4, r6
mvn r3, #0
ldrb r9, [r6, #1144] @ zero_extendqisi2
bic r5, r10, r3, lsl r5
ubfx r10, r10, #24, #2
ldr r6, [r4, #1044]
mov r0, r9
bl nandc_cs
cmp r10, #0
lsl r8, r9, #8
bne .L407
mov r0, r5
bl slc_phy_page_address_calc
ldrb r3, [r4] @ zero_extendqisi2
mov r5, r0
cmp r3, #0
beq .L408
mov r0, r9
bl zftl_flash_enter_slc_mode
.L408:
ldr r3, [r4, #1104]
ldrb r2, [r3, #7] @ zero_extendqisi2
cmp r2, #1
bne .L410
ldrb r3, [r3, #12] @ zero_extendqisi2
cmp r3, #2
addeq r3, r6, r8
moveq r2, #38
streq r2, [r3, #2056]
.L410:
add r3, r6, r8
mov r2, #0
str r2, [r3, #2056]
str r2, [r3, #2052]
str r2, [r3, #2052]
uxtb r2, r5
str r2, [r3, #2052]
lsr r2, r5, #8
str r2, [r3, #2052]
lsr r2, r5, #16
str r2, [r3, #2052]
ldrb r2, [r4, #1152] @ zero_extendqisi2
cmp r2, #0
lsrne r5, r5, #24
strne r5, [r3, #2052]
add r3, r6, r8
str r7, [r3, #2056]
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L407:
ldr r3, [r4, #1104]
ldrb r3, [r3, #12] @ zero_extendqisi2
cmp r3, #3
bne .L409
ldrb r3, [r4, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L409
ldrb r3, [r4, #1159] @ zero_extendqisi2
cmp r3, #0
addeq r3, r6, r8
streq r10, [r3, #2056]
beq .L408
.L409:
mov r0, r9
bl zftl_flash_exit_slc_mode
b .L408
.L420:
.align 2
.L419:
.word .LANCHOR0
.word .LANCHOR1+239
.word .LC0
.fnend
.size flash_start_page_read, .-flash_start_page_read
.align 2
.global nandc_wait_flash_ready
.syntax unified
.arm
.fpu softvfp
.type nandc_wait_flash_ready, %function
nandc_wait_flash_ready:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, lr}
.save {r4, r5, lr}
.pad #12
mov r0, #150
ldr r4, .L427
ldr r5, .L427+4
bl ndelay
.L423:
ldr r3, [r5, #1044]
ldr r3, [r3]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #512
bne .L424
mov r0, #10
bl ndelay
subs r4, r4, #1
bne .L423
mvn r0, #0
.L421:
add sp, sp, #12
@ sp needed
pop {r4, r5, pc}
.L424:
mov r0, #0
b .L421
.L428:
.align 2
.L427:
.word 100000
.word .LANCHOR0
.fnend
.size nandc_wait_flash_ready, .-nandc_wait_flash_ready
.align 2
.global sandisk_set_rr_para
.syntax unified
.arm
.fpu softvfp
.type sandisk_set_rr_para, %function
sandisk_set_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
mov r3, #239
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
str r3, [r0, #8]
mov r3, #17
mov r5, r0
mov r4, r1
str r3, [r0, #4]
mov r0, #200
bl ndelay
ldr r0, .L436
add r4, r4, r4, lsl #2
ldr r1, .L436+4
mov r2, #0
sub ip, r0, #45
.L430:
ldrb r3, [r1, #1101] @ zero_extendqisi2
cmp r2, r3
bcc .L433
pop {r4, r5, r6, lr}
b nandc_wait_flash_ready
.L433:
ldrb r3, [r1, #1100] @ zero_extendqisi2
cmp r3, #67
add r3, r2, r4
addeq r3, ip, r3
addne r3, r0, r3
ldrsb r3, [r3, #5]
add r2, r2, #1
str r3, [r5]
b .L430
.L437:
.align 2
.L436:
.word .LANCHOR1+86
.word .LANCHOR0
.fnend
.size sandisk_set_rr_para, .-sandisk_set_rr_para
.align 2
.global toshiba_3d_set_tlc_rr_para
.syntax unified
.arm
.fpu softvfp
.type toshiba_3d_set_tlc_rr_para, %function
toshiba_3d_set_tlc_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
add r1, r1, #1
ldr r5, .L440
rsb r1, r1, r1, lsl #3
mov r6, #0
mov r7, #213
mvn r3, #118
add r5, r5, r1
str r7, [r0, #8]
str r6, [r0, #4]
mov r4, r0
str r3, [r0, #4]
movw r3, #261
ldrsb r3, [r5, r3]
str r3, [r0]
movw r3, #262
ldrsb r3, [r5, r3]
str r3, [r0]
movw r3, #263
ldrsb r3, [r5, r3]
str r3, [r0]
add r3, r5, #264
ldrsb r3, [r3]
str r3, [r0]
bl nandc_wait_flash_ready
mvn r3, #117
str r7, [r4, #8]
str r6, [r4, #4]
str r3, [r4, #4]
movw r3, #265
ldrsb r3, [r5, r3]
str r3, [r4]
movw r3, #266
ldrsb r3, [r5, r3]
str r3, [r4]
movw r3, #267
ldrsb r3, [r5, r3]
str r3, [r4]
str r6, [r4]
pop {r4, r5, r6, r7, r8, lr}
b nandc_wait_flash_ready
.L441:
.align 2
.L440:
.word .LANCHOR1
.fnend
.size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
.align 2
.global toshiba_3d_set_slc_rr_para
.syntax unified
.arm
.fpu softvfp
.type toshiba_3d_set_slc_rr_para, %function
toshiba_3d_set_slc_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #213
mvn r2, #116
str r3, [r0, #8]
mov r3, #0
str r3, [r0, #4]
str r2, [r0, #4]
ldr r2, .L443
add r1, r2, r1
movw r2, #661
ldrsb r2, [r1, r2]
str r2, [r0]
str r3, [r0]
str r3, [r0]
str r3, [r0]
b nandc_wait_flash_ready
.L444:
.align 2
.L443:
.word .LANCHOR1
.fnend
.size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
.align 2
.global toshiba_tlc_set_rr_para
.syntax unified
.arm
.fpu softvfp
.type toshiba_tlc_set_rr_para, %function
toshiba_tlc_set_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
cmp r2, #0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r3, .L449
mov r6, #239
beq .L446
rsb r5, r1, r1, lsl #3
mov r2, #18
str r6, [r0, #8]
mov r4, r0
add r5, r3, r5
str r2, [r0, #4]
ldrb r3, [r5, #36] @ zero_extendqisi2
str r3, [r0]
ldrb r3, [r5, #37] @ zero_extendqisi2
str r3, [r0]
ldrb r3, [r5, #38] @ zero_extendqisi2
str r3, [r0]
ldrb r3, [r5, #39] @ zero_extendqisi2
str r3, [r0]
bl nandc_wait_flash_ready
mov r3, #19
str r6, [r4, #8]
str r3, [r4, #4]
ldrb r3, [r5, #40] @ zero_extendqisi2
str r3, [r4]
ldrb r3, [r5, #41] @ zero_extendqisi2
str r3, [r4]
ldrb r3, [r5, #42] @ zero_extendqisi2
str r3, [r4]
mov r3, #0
str r3, [r4]
.L447:
pop {r4, r5, r6, lr}
b nandc_wait_flash_ready
.L446:
mov ip, #20
add r5, r3, r1
str r6, [r0, #8]
str ip, [r0, #4]
ldrb r3, [r5, #365] @ zero_extendqisi2
str r3, [r0]
str r2, [r0]
str r2, [r0]
str r2, [r0]
b .L447
.L450:
.align 2
.L449:
.word .LANCHOR2
.fnend
.size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
.align 2
.global ymtc_3d_set_tlc_rr_para
.syntax unified
.arm
.fpu softvfp
.type ymtc_3d_set_tlc_rr_para, %function
ymtc_3d_set_tlc_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
rsb r1, r1, r1, lsl #3
ldr r5, .L453
mov r7, #239
mov r3, #160
mov r6, #0
str r7, [r0, #8]
mov r4, r0
add r5, r5, r1
str r3, [r0, #4]
movw r3, #671
ldrsb r3, [r5, r3]
str r3, [r0]
movw r3, #675
ldrsb r3, [r5, r3]
str r3, [r0]
str r6, [r0]
str r6, [r0]
bl nandc_wait_flash_ready
mov r3, #161
str r7, [r4, #8]
str r3, [r4, #4]
add r3, r5, #672
ldrsb r3, [r3]
str r3, [r4]
movw r3, #674
ldrsb r3, [r5, r3]
str r3, [r4]
add r3, r5, #676
ldrsb r3, [r3]
str r3, [r4]
str r6, [r4]
bl nandc_wait_flash_ready
mov r3, #162
str r7, [r4, #8]
str r3, [r4, #4]
movw r3, #673
ldrsb r3, [r5, r3]
str r3, [r4]
movw r3, #677
ldrsb r3, [r5, r3]
str r3, [r4]
str r6, [r4]
str r6, [r4]
pop {r4, r5, r6, r7, r8, lr}
b nandc_wait_flash_ready
.L454:
.align 2
.L453:
.word .LANCHOR1
.fnend
.size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
.align 2
.global ymtc_3d_set_slc_rr_para
.syntax unified
.arm
.fpu softvfp
.type ymtc_3d_set_slc_rr_para, %function
ymtc_3d_set_slc_rr_para:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #239
str r3, [r0, #8]
mov r3, #163
str r3, [r0, #4]
ldr r3, .L456
add r1, r3, r1
movw r3, #1028
ldrsb r3, [r1, r3]
str r3, [r0]
mov r3, #0
str r3, [r0]
str r3, [r0]
str r3, [r0]
b nandc_wait_flash_ready
.L457:
.align 2
.L456:
.word .LANCHOR1
.fnend
.size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
.align 2
.global flash_start_plane_read
.syntax unified
.arm
.fpu softvfp
.type flash_start_plane_read, %function
flash_start_plane_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r3, #1
ldr r4, .L487
ubfx r9, r0, #24, #2
ldrb r6, [r4, #1153] @ zero_extendqisi2
rsb r2, r6, #24
lsl r6, r3, r6
lsl r5, r3, r2
ldrb r3, [r4, #1109] @ zero_extendqisi2
sub r6, r6, #1
sub r5, r5, #1
and r6, r6, r0, lsr r2
and r7, r5, r0
and r5, r5, r1
uxtb r6, r6
cmp r3, r6
bhi .L459
movw r2, #1148
ldr r1, .L487+4
ldr r0, .L487+8
bl printk
bl dump_stack
.L459:
add r6, r4, r6
ldr r8, [r4, #1044]
ldrb r6, [r6, #1144] @ zero_extendqisi2
mov r0, r6
bl nandc_cs
cmp r9, #0
lsl r10, r6, #8
bne .L460
mov r0, r7
bl slc_phy_page_address_calc
mov r7, r0
mov r0, r5
bl slc_phy_page_address_calc
ldrb r3, [r4] @ zero_extendqisi2
mov r5, r0
cmp r3, #0
beq .L461
mov r0, r6
bl zftl_flash_enter_slc_mode
.L461:
ldrb r3, [r4, #1127] @ zero_extendqisi2
uxtb ip, r7
lsr r0, r7, #8
lsr r1, r7, #16
cmp r3, #1
bne .L463
ldrb r3, [r4, #1119] @ zero_extendqisi2
add r6, r8, r10
str r3, [r6, #2056]
mov r3, #0
str r3, [r6, #2052]
str r3, [r6, #2052]
ldrb r3, [r4, #1152] @ zero_extendqisi2
str ip, [r6, #2052]
str r0, [r6, #2052]
cmp r3, #0
ldrb r3, [r4, #1120] @ zero_extendqisi2
lsrne r7, r7, #24
str r1, [r6, #2052]
strne r7, [r6, #2052]
add r7, r8, r10
str r3, [r7, #2056]
bl nandc_wait_flash_ready
ldr r3, [r4, #1104]
cmp r9, #0
add r2, r8, r10
add r8, r8, r10
ldrb r3, [r3, #12] @ zero_extendqisi2
sub r3, r3, #3
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
mov r3, #0
strne r9, [r7, #2056]
str r3, [r2, #2056]
str r3, [r6, #2052]
str r3, [r6, #2052]
uxtb r3, r5
str r3, [r6, #2052]
lsr r3, r5, #8
str r3, [r6, #2052]
lsr r3, r5, #16
str r3, [r6, #2052]
ldrb r3, [r4, #1152] @ zero_extendqisi2
cmp r3, #0
lsrne r5, r5, #24
strne r5, [r6, #2052]
.L486:
mov r3, #48
str r3, [r8, #2056]
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L460:
ldr r3, [r4, #1104]
ldrb r3, [r3, #12] @ zero_extendqisi2
cmp r3, #3
bne .L462
ldrb r3, [r4, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L462
ldrb r3, [r4, #1159] @ zero_extendqisi2
cmp r3, #0
addeq r3, r8, r10
streq r9, [r3, #2056]
beq .L461
.L462:
mov r0, r6
bl zftl_flash_exit_slc_mode
b .L461
.L463:
ldr r2, [r4, #1104]
ldrb r3, [r2, #7] @ zero_extendqisi2
cmp r3, #1
bne .L468
ldrb r3, [r2, #12] @ zero_extendqisi2
cmp r3, #2
addeq r3, r8, r10
moveq lr, #38
streq lr, [r3, #2056]
.L468:
ldrb lr, [r4, #1119] @ zero_extendqisi2
add r3, r8, r10
cmp r9, #0
add r8, r8, r10
str lr, [r3, #2056]
str ip, [r3, #2052]
str r0, [r3, #2052]
str r1, [r3, #2052]
ldrb r2, [r2, #12] @ zero_extendqisi2
sub r2, r2, #3
clz r2, r2
lsr r2, r2, #5
moveq r2, #0
cmp r2, #0
ldrb r2, [r4, #1120] @ zero_extendqisi2
strne r9, [r3, #2056]
str r2, [r8, #2056]
uxtb r2, r5
str r2, [r3, #2052]
lsr r2, r5, #8
lsr r5, r5, #16
str r2, [r3, #2052]
str r5, [r3, #2052]
b .L486
.L488:
.align 2
.L487:
.word .LANCHOR0
.word .LANCHOR1+1038
.word .LC0
.fnend
.size flash_start_plane_read, .-flash_start_plane_read
.align 2
.global flash_set_interface_mode
.syntax unified
.arm
.fpu softvfp
.type flash_set_interface_mode, %function
flash_set_interface_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r8, r0
ldr r6, .L528
mov r10, #0
ldr r9, .L528+4
mov r7, r6
.L502:
ldrb r4, [r9, r10, lsl #3] @ zero_extendqisi2
ldr r5, [r6, #1044]
cmp r4, #69
beq .L490
add r3, r4, #119
sub r1, r4, #44
uxtb r2, r3
clz r1, r1
lsr r1, r1, #5
cmp r2, #18
ldrls r3, .L528+8
movhi r3, #1
mvnls r3, r3, lsr r2
and r3, r3, #1
eor r3, r3, #1
orrs r3, r1, r3
beq .L492
.L490:
cmp r8, #1
ldrb r1, [r7, #1192] @ zero_extendqisi2
bne .L493
tst r1, #1
beq .L492
ldr r3, .L528+12
ldr r3, [r3]
tst r3, #4096
beq .L494
ldr r0, .L528+16
bl printk
.L494:
lsl r2, r10, #8
cmp r4, #137
cmpne r4, #44
mov r1, #239
add r3, r5, r2
str r1, [r3, #2056]
bne .L495
.L527:
mov r1, #1
str r1, [r3, #2052]
mov r1, #5
b .L525
.L495:
cmp r4, #155
movne r1, #128
strne r1, [r3, #2052]
movne r1, #1
beq .L527
.L525:
str r1, [r3, #2048]
add r5, r5, r2
mov r3, #0
str r3, [r5, #2048]
str r3, [r5, #2048]
str r3, [r5, #2048]
.L492:
add r10, r10, #1
cmp r10, #4
bne .L502
bl nandc_wait_flash_ready
mov r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L493:
tst r1, #4
beq .L492
ldr r3, .L528+12
ldr r3, [r3]
tst r3, #4096
beq .L498
ldr r0, .L528+20
bl printk
.L498:
lsl r2, r10, #8
mov r1, #239
cmp r4, #137
cmpne r4, #44
add r3, r5, r2
str r1, [r3, #2056]
moveq r1, #1
moveq r1, #1
movne r1, #0
streq r1, [r3, #2052]
moveq r1, #35
beq .L525
cmp r4, #155
moveq r1, #1
movne r0, #128
streq r1, [r3, #2052]
moveq r1, #37
strne r0, [r3, #2052]
b .L525
.L529:
.align 2
.L528:
.word .LANCHOR0
.word .LANCHOR0+1160
.word 294913
.word .LANCHOR2
.word .LC34
.word .LC35
.fnend
.size flash_set_interface_mode, .-flash_set_interface_mode
.align 2
.syntax unified
.arm
.fpu softvfp
.type mt_auto_read_calibration_config, %function
mt_auto_read_calibration_config:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r1
mov r6, r0
bl nandc_wait_flash_ready
ldr r3, .L532
mov r0, #200
ldr r4, [r3, #1044]
mov r3, #239
add r4, r4, r6, lsl #8
str r3, [r4, #2056]
mov r3, #150
str r3, [r4, #2052]
bl ndelay
mov r3, #0
str r5, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
pop {r4, r5, r6, pc}
.L533:
.align 2
.L532:
.word .LANCHOR0
.fnend
.size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
.align 2
.global flash_reset
.syntax unified
.arm
.fpu softvfp
.type flash_reset, %function
flash_reset:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L535
ldr r3, [r3, #1044]
add r0, r3, r0, lsl #8
mov r3, #255
str r3, [r0, #2056]
b nandc_wait_flash_ready
.L536:
.align 2
.L535:
.word .LANCHOR0
.fnend
.size flash_reset, .-flash_reset
.align 2
.global flash_read_id
.syntax unified
.arm
.fpu softvfp
.type flash_read_id, %function
flash_read_id:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #16
mov r6, r0
ldr r3, .L540
mov r4, r1
ldr r5, [r3, #1044]
bl flash_reset
mov r0, r6
bl nandc_cs
add r5, r5, r6, lsl #8
mov r3, #144
mov r0, #200
str r3, [r5, #2056]
mov r3, #0
str r3, [r5, #2052]
bl ndelay
ldr r3, [r5, #2048]
strb r3, [r4]
ldr r3, [r5, #2048]
strb r3, [r4, #1]
ldr r3, [r5, #2048]
strb r3, [r4, #2]
ldr r3, [r5, #2048]
strb r3, [r4, #3]
ldr r3, [r5, #2048]
strb r3, [r4, #4]
ldr r3, [r5, #2048]
strb r3, [r4, #5]
ldr r3, [r5, #2048]
strb r3, [r4, #6]
ldr r3, [r5, #2048]
strb r3, [r4, #7]
bl nandc_de_cs.constprop.35
ldrb r2, [r4] @ zero_extendqisi2
sub r3, r2, #1
uxtb r3, r3
cmp r3, #253
bhi .L537
ldrb r1, [r4, #5] @ zero_extendqisi2
ldrb r3, [r4, #1] @ zero_extendqisi2
ldr r0, .L540+4
str r1, [sp, #12]
ldrb r1, [r4, #4] @ zero_extendqisi2
str r1, [sp, #8]
ldrb r1, [r4, #3] @ zero_extendqisi2
str r1, [sp, #4]
ldrb r1, [r4, #2] @ zero_extendqisi2
str r1, [sp]
add r1, r6, #1
bl printk
.L537:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, pc}
.L541:
.align 2
.L540:
.word .LANCHOR0
.word .LC36
.fnend
.size flash_read_id, .-flash_read_id
.align 2
.global flash_read_spare
.syntax unified
.arm
.fpu softvfp
.type flash_read_spare, %function
flash_read_spare:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r2
ldr r3, .L544
ldr r2, .L544+4
ldrb r3, [r3, #13] @ zero_extendqisi2
ldr r4, [r2, #1044]
mov r2, #0
lsl r3, r3, #9
add r4, r4, r0, lsl #8
str r2, [r4, #2056]
str r3, [r4, #2052]
lsr r3, r3, #8
str r3, [r4, #2052]
uxtb r3, r1
str r3, [r4, #2052]
lsr r3, r1, #8
lsr r1, r1, #16
str r3, [r4, #2052]
mov r3, #48
str r1, [r4, #2052]
str r3, [r4, #2056]
bl nandc_wait_flash_ready
ldr r3, [r4, #2048]
strb r3, [r5]
pop {r4, r5, r6, pc}
.L545:
.align 2
.L544:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size flash_read_spare, .-flash_read_spare
.align 2
.global flash_read_otp_data
.syntax unified
.arm
.fpu softvfp
.type flash_read_otp_data, %function
flash_read_otp_data:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L550
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r9, r0
lsl r9, r9, #8
mov r6, r1
mov r5, r2
ldr r8, [r3, #1044]
mov r10, #144
bl nandc_cs
mov r3, #239
mov r0, #50
add r4, r8, r9
mov r7, #0
str r3, [r4, #2056]
str r10, [r4, #2052]
bl ndelay
mov r3, #1
str r3, [r4, #2048]
str r7, [r4, #2048]
str r7, [r4, #2048]
str r7, [r4, #2048]
bl nandc_wait_flash_ready
mov r3, #238
ldr r0, .L550+4
str r3, [r4, #2056]
str r10, [r4, #2052]
ldr r2, [r4, #2048]
ldr r3, [r4, #2048]
ldr r1, [r4, #2048]
str r1, [sp]
mov r1, r6
bl printk
bl nandc_wait_flash_ready
uxtb r3, r6
str r7, [r4, #2056]
str r7, [r4, #2052]
str r7, [r4, #2052]
str r3, [r4, #2052]
lsr r3, r6, #8
lsr r6, r6, #16
str r3, [r4, #2052]
mov r3, #48
str r6, [r4, #2052]
str r3, [r4, #2056]
bl nandc_wait_flash_ready
add r3, r5, #16384
mov r2, r5
.L547:
ldr r1, [r4, #2048]
strb r1, [r2], #1
cmp r2, r3
bne .L547
add r8, r8, r9
mov r3, #239
str r3, [r8, #2056]
mov r3, #144
str r3, [r4, #2052]
mov r0, #50
bl ndelay
mov r3, #0
str r3, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b nandc_de_cs.constprop.35
.L551:
.align 2
.L550:
.word .LANCHOR0
.word .LC37
.fnend
.size flash_read_otp_data, .-flash_read_otp_data
.align 2
.global sandisk_prog_test_bad_block
.syntax unified
.arm
.fpu softvfp
.type sandisk_prog_test_bad_block, %function
sandisk_prog_test_bad_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
lsl r7, r0, #8
ldr r3, .L568
mov r8, r1
ldr r6, .L568+4
ldr r5, [r3, #1044]
ldrb r3, [r6, #33] @ zero_extendqisi2
add r4, r5, r7
cmp r3, #0
addne r2, r5, r7
addeq r3, r5, r7
moveq r2, #162
strne r3, [r2, #2056]
streq r2, [r3, #2056]
mov r3, #128
str r3, [r4, #2056]
mov r3, #0
str r3, [r4, #2052]
str r3, [r4, #2052]
uxtb r3, r1
str r3, [r4, #2052]
lsr r3, r1, #8
str r3, [r4, #2052]
lsr r3, r1, #16
str r3, [r4, #2052]
mov r3, #16
str r3, [r4, #2056]
bl nandc_wait_flash_ready
mov r3, #112
mov r0, #200
str r3, [r4, #2056]
bl ndelay
ldr r2, [r4, #2048]
cmp r2, #255
ldreq r2, [r4, #2048]
ands r4, r2, #5
beq .L556
ldr r3, [r6]
tst r3, #4096
beq .L556
mov r1, r8
ldr r0, .L568+8
bl printk
.L556:
ldrb r3, [r6, #34] @ zero_extendqisi2
mov r0, r4
cmp r3, #0
addne r5, r5, r7
strne r3, [r5, #2056]
pop {r4, r5, r6, r7, r8, pc}
.L569:
.align 2
.L568:
.word .LANCHOR0
.word .LANCHOR2
.word .LC38
.fnend
.size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
.align 2
.global nandc_rdy_status
.syntax unified
.arm
.fpu softvfp
.type nandc_rdy_status, %function
nandc_rdy_status:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L572
.pad #8
sub sp, sp, #8
ldr r3, [r3, #1044]
ldr r3, [r3]
str r3, [sp, #4]
ldr r0, [sp, #4]
ubfx r0, r0, #9, #1
add sp, sp, #8
@ sp needed
bx lr
.L573:
.align 2
.L572:
.word .LANCHOR0
.fnend
.size nandc_rdy_status, .-nandc_rdy_status
.align 2
.global nandc_bch_sel
.syntax unified
.arm
.fpu softvfp
.type nandc_bch_sel, %function
nandc_bch_sel:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
.pad #8
sub sp, sp, #8
mov r3, #0
str r3, [sp, #4]
ldr r2, [sp, #4]
orr r2, r2, #1
str r2, [sp, #4]
ldr r2, .L586
ldrb r1, [r2, #1028] @ zero_extendqisi2
strb r0, [r2, #1193]
cmp r1, #9
bne .L575
ldr r2, [r2, #1044]
cmp r0, #70
ldr r1, [sp, #4]
str r1, [r2, #16]
beq .L576
cmp r0, #60
moveq r3, #3
beq .L576
cmp r0, #40
moveq r3, #2
movne r3, #1
.L576:
mov r1, #0
str r1, [sp]
ldr r1, [sp]
bfi r1, r3, #25, #3
str r1, [sp]
ldr r3, [sp]
orr r3, r3, #1
str r3, [sp]
ldr r3, [sp]
str r3, [r2, #32]
.L574:
add sp, sp, #8
@ sp needed
bx lr
.L575:
ldr r1, [r2, #1044]
mov ip, #16
ldr r2, [sp, #4]
cmp r0, ip
str r2, [r1, #8]
str r3, [sp]
ldr r2, [sp]
bfi r2, ip, #8, #8
str r2, [sp]
ldr r2, [sp]
bfi r2, r3, #18, #1
str r2, [sp]
bne .L578
.L585:
ldr r2, [sp]
bfi r2, r3, #4, #1
str r2, [sp]
b .L579
.L578:
cmp r0, #24
ldreq r3, [sp]
orreq r3, r3, #16
streq r3, [sp]
beq .L579
ldr r2, [sp]
cmp r0, #40
orr r2, r2, #262144
str r2, [sp]
ldr r2, [sp]
orr r2, r2, #16
str r2, [sp]
beq .L585
.L579:
ldr r3, [sp]
orr r3, r3, #1
str r3, [sp]
ldr r3, [sp]
str r3, [r1, #12]
b .L574
.L587:
.align 2
.L586:
.word .LANCHOR0
.fnend
.size nandc_bch_sel, .-nandc_bch_sel
.align 2
.global zftl_flash_resume
.syntax unified
.arm
.fpu softvfp
.type zftl_flash_resume, %function
zftl_flash_resume:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
ldr r4, .L599
ldrb r3, [r4, #1028] @ zero_extendqisi2
ldr r2, [r4, #1048]
cmp r3, #9
ldr r3, [r4, #1044]
str r2, [r3]
ldr r2, [r4, #1052]
ldr r3, [r4, #1044]
str r2, [r3, #4]
ldr r2, [r4, #1056]
bne .L589
str r2, [r3, #16]
ldr r2, [r4, #1060]
str r2, [r3, #32]
ldr r2, [r4, #1064]
str r2, [r3, #80]
ldr r2, [r4, #1068]
str r2, [r3, #84]
ldr r2, [r4, #1072]
str r2, [r3, #520]
ldr r2, [r4, #1076]
str r2, [r3, #8]
.L591:
ldr r6, .L599+4
mov r5, #0
mov r8, #2
sub r7, r6, #6
.L590:
ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
bhi .L592
uxtb r9, r5
mov r0, r9
bl flash_reset
strb r8, [r5, r7]
mov r0, r9
bl zftl_flash_enter_slc_mode
.L592:
add r5, r5, #1
cmp r5, #4
bne .L590
ldrb r3, [r4, #1143] @ zero_extendqisi2
cmp r3, #0
beq .L593
mov r0, #1
bl nandc_set_if_mode
mov r0, r5
bl flash_set_interface_mode
mov r0, r5
bl nandc_set_if_mode
ldrb r0, [r4, #1065] @ zero_extendqisi2
bl nandc_set_ddr_para
.L593:
ldr r3, .L599+8
pop {r4, r5, r6, r7, r8, r9, r10, lr}
ldrb r0, [r3, #24] @ zero_extendqisi2
b nandc_bch_sel
.L589:
str r2, [r3, #8]
ldr r2, [r4, #1060]
str r2, [r3, #12]
ldr r2, [r4, #1064]
str r2, [r3, #304]
ldr r2, [r4, #1068]
str r2, [r3, #308]
ldr r2, [r4, #1072]
str r2, [r3, #336]
ldr r2, [r4, #1076]
str r2, [r3, #344]
b .L591
.L600:
.align 2
.L599:
.word .LANCHOR0
.word .LANCHOR0+1160
.word .LANCHOR2
.fnend
.size zftl_flash_resume, .-zftl_flash_resume
.align 2
.global rk_nandc_flash_ready
.syntax unified
.arm
.fpu softvfp
.type rk_nandc_flash_ready, %function
rk_nandc_flash_ready:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r1, #1
b nandc_irq_disable
.fnend
.size rk_nandc_flash_ready, .-rk_nandc_flash_ready
.align 2
.global nandc_iqr_wait_flash_ready
.syntax unified
.arm
.fpu softvfp
.type nandc_iqr_wait_flash_ready, %function
nandc_iqr_wait_flash_ready:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
ldr r4, .L607
ldr r0, [r4, #1044]
bl rk_nandc_rb_irq_flag_init
ldrb r3, [r4, #1028] @ zero_extendqisi2
ldr r0, [r4, #1044]
cmp r3, #9
ldreq r3, [r0, #292]
ldrne r3, [r0, #368]
orreq r3, r3, #2
orrne r3, r3, #2
streq r3, [r0, #292]
strne r3, [r0, #368]
ldreq r3, [r0, #288]
ldrne r3, [r0, #364]
orreq r3, r3, #2
orrne r3, r3, #2
streq r3, [r0, #288]
strne r3, [r0, #364]
ldr r3, [r0]
tst r3, #512
bne .L605
pop {r4, lr}
b wait_for_nand_flash_ready
.L605:
mov r1, #1
pop {r4, lr}
b nandc_irq_disable
.L608:
.align 2
.L607:
.word .LANCHOR0
.fnend
.size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
.align 2
.global flash_erase_duplane_block
.syntax unified
.arm
.fpu softvfp
.type flash_erase_duplane_block, %function
flash_erase_duplane_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r3
ldr r7, .L634
mov r4, r0
mov r5, r1
mov r6, r2
ldrb r3, [r7, #1109] @ zero_extendqisi2
cmp r3, r0
bhi .L610
movw r2, #695
ldr r1, .L634+4
ldr r0, .L634+8
bl printk
bl dump_stack
.L610:
ldrb r3, [r7, #1109] @ zero_extendqisi2
cmp r3, r4
bls .L619
ldr r3, .L634+12
add r4, r7, r4
ldrb r4, [r4, #1144] @ zero_extendqisi2
ldr r9, [r7, #1044]
ldr r3, [r3]
add r8, r4, #8
tst r3, #16
add r8, r9, r8, lsl #8
beq .L612
mov r3, r10
mov r2, r6
mov r1, r4
ldr r0, .L634+16
bl printk
.L612:
bl nandc_wait_flash_ready
mov r0, r4
bl nandc_cs
cmp r5, #0
mov r0, r4
bne .L613
bl zftl_flash_enter_slc_mode
.L614:
lsl r4, r4, #8
mov r3, #96
add r5, r9, r4
str r3, [r5, #2056]
uxtb r3, r6
str r3, [r5, #2052]
lsr r3, r6, #8
str r3, [r5, #2052]
lsr r3, r6, #16
str r3, [r5, #2052]
ldrb r3, [r7, #1152] @ zero_extendqisi2
cmp r3, #0
lsrne r3, r6, #24
strne r3, [r5, #2052]
ldrb r3, [r7, #1194] @ zero_extendqisi2
cmp r3, #0
movne fp, #0
bne .L616
add r3, r9, r4
mov r2, #208
str r2, [r3, #2056]
bl nandc_wait_flash_ready
mov r0, r8
bl flash_read_status
and fp, r0, #5
.L616:
mov r2, #96
add r3, r9, r4
str r2, [r3, #2056]
uxtb r3, r10
add r0, r9, r4
str r3, [r5, #2052]
lsr r3, r10, #8
str r3, [r5, #2052]
lsr r3, r10, #16
str r3, [r5, #2052]
ldrb r3, [r7, #1152] @ zero_extendqisi2
cmp r3, #0
mov r3, #208
lsrne r2, r10, #24
strne r2, [r5, #2052]
str r3, [r0, #2056]
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r0, r8
bl flash_read_status
bl nandc_de_cs.constprop.35
and r3, r0, #5
orrs fp, r3, fp
beq .L618
mov r2, r0
mov r1, r6
ldr r0, .L634+20
bl printk
.L618:
mov r0, fp
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L613:
bl zftl_flash_exit_slc_mode
b .L614
.L619:
mvn r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L635:
.align 2
.L634:
.word .LANCHOR0
.word .LANCHOR1+1061
.word .LC0
.word .LANCHOR2
.word .LC39
.word .LC40
.fnend
.size flash_erase_duplane_block, .-flash_erase_duplane_block
.align 2
.global flash_erase_block_en
.syntax unified
.arm
.fpu softvfp
.type flash_erase_block_en, %function
flash_erase_block_en:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r7, r0
ldr r5, .L655
mov fp, r1
mov r8, r2
ldrb r6, [r5, #1153] @ zero_extendqisi2
rsb r3, r6, #24
mvn r6, #0
bic r6, r2, r6, lsl r3
ldrb r3, [r5, #1109] @ zero_extendqisi2
cmp r3, r0
bhi .L637
movw r2, #757
ldr r1, .L655+4
ldr r0, .L655+8
bl printk
bl dump_stack
.L637:
ldrb r3, [r5, #1109] @ zero_extendqisi2
cmp r3, r7
bls .L644
add r3, r5, r7
ldr r9, [r5, #1044]
ldrb r4, [r3, #1144] @ zero_extendqisi2
ldr r3, .L655+12
add r10, r4, #8
ldr r3, [r3]
add r10, r9, r10, lsl #8
tst r3, #16
beq .L639
mov r3, fp
mov r2, r8
mov r1, r4
ldr r0, .L655+16
bl printk
.L639:
bl nandc_wait_flash_ready
mov r0, r4
bl nandc_cs
cmp fp, #0
mov r0, r4
bne .L640
bl zftl_flash_enter_slc_mode
.L641:
lsl r4, r4, #8
mov r2, #96
add r3, r9, r4
add r4, r9, r4
str r2, [r3, #2056]
uxtb r2, r6
str r2, [r3, #2052]
lsr r2, r6, #8
str r2, [r3, #2052]
lsr r2, r6, #16
str r2, [r3, #2052]
ldrb r2, [r5, #1152] @ zero_extendqisi2
cmp r2, #0
lsrne r6, r6, #24
strne r6, [r3, #2052]
mov r3, #208
str r3, [r4, #2056]
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r0, r10
bl flash_read_status
bl nandc_de_cs.constprop.35
ands r4, r0, #5
beq .L643
ldrh r1, [r5, #2]
mov r0, r8
bl __aeabi_uidiv
mov r3, r4
mvn r4, #0
mov r2, r0
mov r1, r7
ldr r0, .L655+20
bl printk
.L643:
mov r0, r4
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L640:
bl zftl_flash_exit_slc_mode
b .L641
.L644:
mvn r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L656:
.align 2
.L655:
.word .LANCHOR0
.word .LANCHOR1+1087
.word .LC0
.word .LANCHOR2
.word .LC41
.word .LC42
.fnend
.size flash_erase_block_en, .-flash_erase_block_en
.align 2
.global flash_erase_block
.syntax unified
.arm
.fpu softvfp
.type flash_erase_block, %function
flash_erase_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r2, r1
mov r1, #0
b flash_erase_block_en
.fnend
.size flash_erase_block, .-flash_erase_block
.align 2
.global flash_erase_all
.syntax unified
.arm
.fpu softvfp
.type flash_erase_all, %function
flash_erase_all:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L664
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r5, #0
ldr r7, .L664+4
ldrb r4, [r3, #17] @ zero_extendqisi2
ldrh r3, [r3, #18]
mov r8, r7
smulbb r4, r4, r3
uxth r4, r4
.L659:
ldrb r2, [r7, #1109] @ zero_extendqisi2
uxth r3, r5
cmp r2, r3
bhi .L662
mov r1, #0
ldr r0, .L664+8
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b printk
.L662:
uxtah r3, r7, r5
mov r6, #0
ldrb r9, [r3, #1144] @ zero_extendqisi2
.L660:
uxth r3, r6
cmp r4, r3
addls r5, r5, #1
bls .L659
.L661:
ldrh r1, [r8, #2]
mov r0, r9
mul r1, r6, r1
add r6, r6, #1
bl flash_erase_block
b .L660
.L665:
.align 2
.L664:
.word .LANCHOR2
.word .LANCHOR0
.word .LC43
.fnend
.size flash_erase_all, .-flash_erase_all
.align 2
.global rk_nandc_flash_xfer_completed
.syntax unified
.arm
.fpu softvfp
.type rk_nandc_flash_xfer_completed, %function
rk_nandc_flash_xfer_completed:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r1, #0
b nandc_irq_disable
.fnend
.size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
.align 2
.global nandc_xfer_start
.syntax unified
.arm
.fpu softvfp
.type nandc_xfer_start, %function
nandc_xfer_start:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #16
mov r5, r0
ldr r4, .L684
mov r0, r2
and r6, r5, #1
add ip, r1, #1
ldrb r2, [r4, #1028] @ zero_extendqisi2
cmp r2, #9
bne .L668
mov r1, #0
mov lr, #1
str r1, [sp, #4]
ubfx ip, ip, #1, #6
ldr r2, [sp, #4]
bfi r2, r6, #1, #1
str r2, [sp, #4]
ldr r2, [sp, #4]
orr r2, r2, #8
str r2, [sp, #4]
ldr r2, [sp, #4]
bfi r2, lr, #5, #2
str r2, [sp, #4]
ldr r2, [sp, #4]
orr r2, r2, #536870912
str r2, [sp, #4]
ldr r2, [sp, #4]
orr r2, r2, #1024
str r2, [sp, #4]
ldr r2, [sp, #4]
bfi r2, r1, #4, #1
str r2, [sp, #4]
ldr r2, [sp, #4]
bfi r2, ip, #22, #6
str r2, [sp, #4]
ldr r2, [sp, #4]
orr r2, r2, #128
str r2, [sp, #4]
ldrb r2, [r4, #1195] @ zero_extendqisi2
cmp r2, r1
beq .L669
ldrb r2, [r4, #1196] @ zero_extendqisi2
cmp r2, r1
ldrne r2, [sp, #4]
orrne r2, r2, #512
strne r2, [sp, #4]
.L669:
ldr r1, [sp, #4]
mov r2, r5
str r3, [r4, #1208]
str r0, [r4, #1204]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
bl rknand_dma_map_single
ldr r1, [sp, #4]
mov r2, r5
str r0, [r4, #1212]
clz r5, r5
ldr r0, [r4, #1208]
lsr r5, r5, #5
ubfx r1, r1, #22, #6
lsl r1, r1, #2
bl rknand_dma_map_single
mov r3, #1
ldr r2, [r4, #1212]
str r3, [r4, #1220]
mov r1, #16
ldr r3, [r4, #1044]
str r0, [r4, #1216]
str r2, [r3, #52]
str r0, [r3, #56]
ldr r2, [r3, #48]
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r1, #9, #5
mov r1, #2
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #448
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r1, #3, #3
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #4
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r5, #1, #1
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #1
str r2, [sp, #8]
movw r2, #1228
ldrh r1, [r4, r2]
ldr r2, [sp, #8]
bfi r2, r1, #16, #11
str r2, [sp, #8]
ldr r2, [sp, #8]
str r2, [r3, #48]
ldr r2, [sp, #4]
str r2, [r3, #16]
ldr r2, [sp, #4]
orr r2, r2, #4
str r2, [sp, #4]
ldr r2, [sp, #4]
str r2, [r3, #16]
.L667:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L668:
ldr r2, [r4, #1044]
mov lr, #16
ubfx ip, ip, #1, #6
ldr r2, [r2, #12]
str r2, [sp, #12]
ldr r2, [sp, #12]
bfi r2, lr, #8, #8
str r2, [sp, #12]
ldr r2, [sp, #12]
bfc r2, #3, #1
str r2, [sp, #12]
ldr r2, [sp, #12]
bfc r2, #5, #3
str r2, [sp, #12]
mov r2, #0
str r2, [sp, #4]
cmp r5, r2
ldr lr, [sp, #4]
ldreq r3, [r4, #1200]
bfi lr, r6, #1, #1
mov r6, #1
str lr, [sp, #4]
ldr lr, [sp, #4]
orr lr, lr, #8
str lr, [sp, #4]
ldr lr, [sp, #4]
bfi lr, r6, #5, #2
str lr, [sp, #4]
ldr lr, [sp, #4]
orr lr, lr, #536870912
str lr, [sp, #4]
ldr lr, [sp, #4]
orr lr, lr, #1024
str lr, [sp, #4]
ldr lr, [sp, #4]
bfi lr, r2, #4, #1
str lr, [sp, #4]
ldr lr, [sp, #4]
bfi lr, ip, #22, #6
str lr, [sp, #4]
streq r6, [r3]
beq .L675
ldrb ip, [r4, #1193] @ zero_extendqisi2
lsr r1, r1, #1
cmp ip, #25
mov ip, r2
movcc r6, #64
movcs r6, #128
.L673:
cmp ip, r1
add r7, r3, ip, lsl #2
add lr, r6, r2
blt .L674
.L675:
ldr r1, [sp, #4]
mov r2, r5
ldr r3, [r4, #1200]
str r0, [r4, #1204]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
str r3, [r4, #1208]
bl rknand_dma_map_single
ldr r1, [sp, #4]
mov r2, r5
str r0, [r4, #1212]
clz r5, r5
ldr r0, [r4, #1208]
lsr r5, r5, #5
ubfx r1, r1, #22, #6
lsl r1, r1, #7
bl rknand_dma_map_single
mov r3, #1
ldr r2, [r4, #1212]
str r3, [r4, #1220]
mov r1, #16
ldr r3, [r4, #1044]
str r0, [r4, #1216]
str r2, [r3, #20]
mov r2, #0
str r0, [r3, #24]
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r1, #9, #5
mov r1, #2
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #448
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r1, #3, #3
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #4
str r2, [sp, #8]
ldr r2, [sp, #8]
bfi r2, r5, #1, #1
str r2, [sp, #8]
ldr r2, [sp, #8]
orr r2, r2, #1
str r2, [sp, #8]
ldr r2, [sp, #8]
str r2, [r3, #16]
ldr r2, [sp, #12]
str r2, [r3, #12]
ldr r2, [sp, #4]
str r2, [r3, #8]
ldr r2, [sp, #4]
orr r2, r2, #4
str r2, [sp, #4]
ldr r2, [sp, #4]
str r2, [r3, #8]
b .L667
.L674:
ldr r8, [r7] @ unaligned
bic r2, r2, #3
ldr r7, [r4, #1200]
add ip, ip, #1
str r8, [r7, r2]
mov r2, lr
b .L673
.L685:
.align 2
.L684:
.word .LANCHOR0
.fnend
.size nandc_xfer_start, .-nandc_xfer_start
.align 2
.global nandc_set_seed
.syntax unified
.arm
.fpu softvfp
.type nandc_set_seed, %function
nandc_set_seed:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L693
and r0, r0, #127
lsl r0, r0, #1
ldrh r2, [r3, r0]
ldr r3, .L693+4
ldrb r1, [r3, #1196] @ zero_extendqisi2
cmp r1, #0
ldrb r1, [r3, #1028] @ zero_extendqisi2
ldr r3, [r3, #1044]
orrne r2, r2, #-1073741824
cmp r1, #9
streq r2, [r3, #520]
strne r2, [r3, #336]
bx lr
.L694:
.align 2
.L693:
.word .LANCHOR1+1108
.word .LANCHOR0
.fnend
.size nandc_set_seed, .-nandc_set_seed
.align 2
.global zftl_flash_de_init
.syntax unified
.arm
.fpu softvfp
.type zftl_flash_de_init, %function
zftl_flash_de_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
ldr r4, .L715
bl nandc_wait_flash_ready
ldrb r3, [r4] @ zero_extendqisi2
cmp r3, #0
beq .L696
ldrb r0, [r4, #1110] @ zero_extendqisi2
cmp r0, #0
bne .L696
ldrb r3, [r4, #1028] @ zero_extendqisi2
cmp r3, #9
beq .L696
bl zftl_flash_exit_slc_mode
.L696:
mov r0, #0
bl hynix_reconfig_rr_para
ldrb r3, [r4, #1143] @ zero_extendqisi2
cmp r3, #0
beq .L697
ldrb r3, [r4, #1192] @ zero_extendqisi2
tst r3, #1
beq .L697
mov r0, #1
bl flash_set_interface_mode
mov r0, #1
bl nandc_set_if_mode
mov r3, #0
strb r3, [r4, #1143]
.L697:
ldrb r3, [r4, #1196] @ zero_extendqisi2
cmp r3, #0
beq .L698
mov r0, #0
strb r0, [r4, #1196]
bl nandc_set_seed
mov r3, #1
strb r3, [r4, #1196]
.L698:
mov r0, #0
pop {r4, pc}
.L716:
.align 2
.L715:
.word .LANCHOR0
.fnend
.size zftl_flash_de_init, .-zftl_flash_de_init
.align 2
.global nandc_randomizer_enable
.syntax unified
.arm
.fpu softvfp
.type nandc_randomizer_enable, %function
nandc_randomizer_enable:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L718
strb r0, [r3, #1196]
bx lr
.L719:
.align 2
.L718:
.word .LANCHOR0
.fnend
.size nandc_randomizer_enable, .-nandc_randomizer_enable
.align 2
.global nandc_get_chip_if
.syntax unified
.arm
.fpu softvfp
.type nandc_get_chip_if, %function
nandc_get_chip_if:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L721
add r0, r0, #8
ldr r3, [r3, #1044]
add r0, r3, r0, lsl #8
bx lr
.L722:
.align 2
.L721:
.word .LANCHOR0
.fnend
.size nandc_get_chip_if, .-nandc_get_chip_if
.align 2
.global buf_reinit
.syntax unified
.arm
.fpu softvfp
.type buf_reinit, %function
buf_reinit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r2, .L726
mov r3, #0
mov r1, r3
.L724:
uxtb r0, r3
add r3, r3, #1
cmp r3, #32
strb r1, [r2, #2]
add ip, r0, #1
strb r0, [r2, #1]
strb ip, [r2]
add r2, r2, #48
str r1, [r2, #-40]
bne .L724
ldr r2, .L726+4
mvn r0, #0
strb r0, [r2, #2720]
strb r1, [r2, #2768]
strb r3, [r2, #2769]
bx lr
.L727:
.align 2
.L726:
.word .LANCHOR0+1232
.word .LANCHOR0
.fnend
.size buf_reinit, .-buf_reinit
.align 2
.global buf_add_tail
.syntax unified
.arm
.fpu softvfp
.type buf_add_tail, %function
buf_add_tail:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
mvn r3, #0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
strb r3, [r1]
mov r4, r1
ldrb r3, [r0] @ zero_extendqisi2
cmp r3, #255
bne .L729
ldrb r3, [r1, #1] @ zero_extendqisi2
mov r5, r0
cmp r3, #255
bne .L730
mov r2, #74
ldr r1, .L736
ldr r0, .L736+4
bl printk
bl dump_stack
.L730:
ldrb r3, [r4, #1] @ zero_extendqisi2
strb r3, [r5]
pop {r4, r5, r6, pc}
.L729:
ldr r2, .L736+8
mov r1, #48
mov r6, r2
.L734:
mov r5, r3
mla r3, r1, r3, r2
ldrb r3, [r3, #1232] @ zero_extendqisi2
cmp r3, #255
bne .L734
ldrb r3, [r4, #1] @ zero_extendqisi2
cmp r3, #255
bne .L732
mov r2, #81
ldr r1, .L736
ldr r0, .L736+4
bl printk
bl dump_stack
.L732:
mov r3, #48
ldrb r2, [r4, #1] @ zero_extendqisi2
mla r3, r3, r5, r6
strb r2, [r3, #1232]
pop {r4, r5, r6, pc}
.L737:
.align 2
.L736:
.word .LANCHOR1+1364
.word .LC0
.word .LANCHOR0
.fnend
.size buf_add_tail, .-buf_add_tail
.align 2
.syntax unified
.arm
.fpu softvfp
.type queue_read_cmd, %function
queue_read_cmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r4, r0
ldr r1, [r0, #24]
mov r0, #48
bl flash_start_page_read
mov r3, #1
mov r1, r4
strb r3, [r4, #42]
mov r3, #0
strb r3, [r4, #43]
mvn r3, #0
strb r3, [r4]
ldr r0, .L740
pop {r4, lr}
b buf_add_tail
.L741:
.align 2
.L740:
.word .LANCHOR0+2770
.fnend
.size queue_read_cmd, .-queue_read_cmd
.align 2
.global zbuf_free
.syntax unified
.arm
.fpu softvfp
.type zbuf_free, %function
zbuf_free:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
ldrb r3, [r0, #2] @ zero_extendqisi2
ldr r4, .L752
and r3, r3, #8
cmp r3, #0
strb r3, [r0, #2]
beq .L743
ldr r3, [r0, #20]
cmn r3, #1
beq .L743
mov r1, r0
add r0, r4, #2768
bl buf_add_tail
.L744:
ldrb r3, [r4, #2769] @ zero_extendqisi2
add r3, r3, #1
strb r3, [r4, #2769]
pop {r4, pc}
.L743:
ldrb r3, [r4, #2768] @ zero_extendqisi2
strb r3, [r0]
ldrb r3, [r0, #1] @ zero_extendqisi2
strb r3, [r4, #2768]
b .L744
.L753:
.align 2
.L752:
.word .LANCHOR0
.fnend
.size zbuf_free, .-zbuf_free
.align 2
.global buf_alloc
.syntax unified
.arm
.fpu softvfp
.type buf_alloc, %function
buf_alloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
ldr r4, .L765
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #0
beq .L755
.L758:
ldrb ip, [r4, #2768] @ zero_extendqisi2
cmp r5, #0
ldr r3, .L765+4
add r0, ip, ip, lsl #1
mov r2, r3
add r0, r3, r0, lsl #4
beq .L756
.L757:
mov r1, #48
mul r1, r1, ip
add r3, r4, r1
add r2, r2, r1
ldrb ip, [r3, #1232] @ zero_extendqisi2
mov r1, #0
strh r1, [r2, #34] @ movhi
str r1, [r3, #1240]
strb ip, [r4, #2768]
ldrb ip, [r4, #2769] @ zero_extendqisi2
strb r1, [r3, #1272]
strb r1, [r3, #1273]
sub ip, ip, #1
strb ip, [r4, #2769]
mov ip, #1
strb ip, [r3, #1234]
mvn ip, #0
strb ip, [r3, #1232]
str ip, [r3, #1252]
pop {r4, r5, r6, pc}
.L755:
mov r2, #121
ldr r1, .L765+8
ldr r0, .L765+12
bl printk
bl dump_stack
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #0
bne .L758
.L760:
mov r0, #0
pop {r4, r5, r6, pc}
.L756:
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #1
bne .L757
b .L760
.L766:
.align 2
.L765:
.word .LANCHOR0
.word .LANCHOR0+1232
.word .LANCHOR1+1377
.word .LC0
.fnend
.size buf_alloc, .-buf_alloc
.align 2
.global buf_remove_buf
.syntax unified
.arm
.fpu softvfp
.type buf_remove_buf, %function
buf_remove_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldrb ip, [r1, #1] @ zero_extendqisi2
ldrb r3, [r0] @ zero_extendqisi2
cmp ip, r3
bne .L768
ldrb r3, [r1] @ zero_extendqisi2
strb r3, [r0]
mov r0, #1
bx lr
.L771:
mov r2, r3
mla r3, lr, r3, r0
ldrb r3, [r3, #1232] @ zero_extendqisi2
cmp ip, r3
bne .L770
mla r2, lr, r2, r0
ldrb r3, [r1] @ zero_extendqisi2
mov r0, #1
strb r3, [r2, #1232]
mvn r3, #0
strb r3, [r1]
ldr pc, [sp], #4
.L768:
ldr r0, .L776
str lr, [sp, #-4]!
.save {lr}
mov lr, #48
.L770:
cmp r3, #255
bne .L771
mov r0, #0
ldr pc, [sp], #4
.L777:
.align 2
.L776:
.word .LANCHOR0
.fnend
.size buf_remove_buf, .-buf_remove_buf
.align 2
.global buf_remove_free
.syntax unified
.arm
.fpu softvfp
.type buf_remove_free, %function
buf_remove_free:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
ldr r4, .L784
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #0
bne .L779
mov r2, #172
ldr r1, .L784+4
ldr r0, .L784+8
bl printk
bl dump_stack
.L779:
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #0
popeq {r4, r5, r6, pc}
mov r1, r5
ldr r0, .L784+12
bl buf_remove_buf
cmp r0, #1
ldrbeq r3, [r4, #2769] @ zero_extendqisi2
subeq r3, r3, #1
strbeq r3, [r4, #2769]
ldrbeq r3, [r5, #2] @ zero_extendqisi2
orreq r3, r3, #1
strbeq r3, [r5, #2]
pop {r4, r5, r6, pc}
.L785:
.align 2
.L784:
.word .LANCHOR0
.word .LANCHOR1+1387
.word .LC0
.word .LANCHOR0+2768
.fnend
.size buf_remove_free, .-buf_remove_free
.align 2
.global dump_buf_info
.syntax unified
.arm
.fpu softvfp
.type dump_buf_info, %function
dump_buf_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #24
sub sp, sp, #24
ldr r5, .L790
ldr r0, .L790+4
ldrb r1, [r5, #2770] @ zero_extendqisi2
add r4, r5, #1232
bl printk
ldrb r1, [r5, #2771] @ zero_extendqisi2
add r5, r5, #2768
ldr r0, .L790+8
bl printk
ldrb r1, [r5, #4] @ zero_extendqisi2
ldr r0, .L790+12
bl printk
ldr r6, .L790+16
ldrb r1, [r5, #5] @ zero_extendqisi2
ldr r0, .L790+20
bl printk
ldrb r1, [r5] @ zero_extendqisi2
ldr r0, .L790+24
bl printk
ldrb r1, [r5, #1] @ zero_extendqisi2
ldr r0, .L790+28
bl printk
.L787:
ldr r0, [r4, #24]
add r4, r4, #48
ldrb r3, [r4, #-46] @ zero_extendqisi2
ldrb r2, [r4, #-48] @ zero_extendqisi2
ldrb r1, [r4, #-47] @ zero_extendqisi2
str r0, [sp, #16]
ldr r0, [r4, #-28]
str r0, [sp, #12]
ldr r0, [r4, #-12]
str r0, [sp, #8]
ldrb r0, [r4, #-6] @ zero_extendqisi2
str r0, [sp, #4]
ldrh r0, [r4, #-14]
str r0, [sp]
mov r0, r6
bl printk
cmp r4, r5
bne .L787
add sp, sp, #24
@ sp needed
pop {r4, r5, r6, pc}
.L791:
.align 2
.L790:
.word .LANCHOR0
.word .LC44
.word .LC45
.word .LC46
.word .LC50
.word .LC47
.word .LC48
.word .LC49
.fnend
.size dump_buf_info, .-dump_buf_info
.align 2
.global flash_check_bad_block
.syntax unified
.arm
.fpu softvfp
.type flash_check_bad_block, %function
flash_check_bad_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r2, .L793
lsr ip, r1, #5
and r1, r1, #31
ldrb r3, [r2, #17] @ zero_extendqisi2
ldrh r2, [r2, #18]
smulbb r3, r3, r2
ldr r2, .L793+4
uxth r3, r3
ldr r2, [r2, #1040]
add r3, r3, #31
asr r3, r3, #5
add r2, r2, ip, lsl #2
lsl r3, r3, #2
uxth r3, r3
mla r0, r0, r3, r2
ldr r0, [r0, #912]
lsr r0, r0, r1
and r0, r0, #1
bx lr
.L794:
.align 2
.L793:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size flash_check_bad_block, .-flash_check_bad_block
.align 2
.global flash_mask_bad_block
.syntax unified
.arm
.fpu softvfp
.type flash_mask_bad_block, %function
flash_mask_bad_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L797
mov r2, r1
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
mov r6, r1
mov r1, r0
ldrb r4, [r3, #17] @ zero_extendqisi2
ldrh r3, [r3, #18]
ldr r0, .L797+4
smulbb r4, r4, r3
bl printk
uxth r4, r4
ldr r3, .L797+8
mov r1, #1
add r0, r4, #31
asr r0, r0, #5
ldr r2, [r3, #1040]
lsl r0, r0, #2
uxth r0, r0
mul r0, r5, r0
lsr r5, r6, #5
and r6, r6, #31
add r0, r0, #912
add r0, r0, r5, lsl #2
ldr r3, [r2, r0]
orr r6, r3, r1, lsl r6
str r6, [r2, r0]
pop {r4, r5, r6, pc}
.L798:
.align 2
.L797:
.word .LANCHOR2
.word .LC51
.word .LANCHOR0
.fnend
.size flash_mask_bad_block, .-flash_mask_bad_block
.align 2
.global str2hex
.syntax unified
.arm
.fpu softvfp
.type str2hex, %function
str2hex:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldrb r3, [r0] @ zero_extendqisi2
cmp r3, #48
bne .L800
ldrb r3, [r0, #1] @ zero_extendqisi2
and r3, r3, #223
cmp r3, #88
addeq r0, r0, #2
.L800:
ldrb r3, [r0] @ zero_extendqisi2
and r3, r3, #223
cmp r3, #88
addeq r0, r0, #1
sub r3, r0, #1
mov r0, #0
.L802:
ldrb r2, [r3, #1]! @ zero_extendqisi2
cmp r2, #0
bne .L807
bx lr
.L807:
sub r1, r2, #48
uxtb ip, r1
cmp ip, #9
addls r0, r1, r0, lsl #4
bls .L802
sub r1, r2, #97
cmp r1, #5
subls r2, r2, #87
bls .L809
sub r1, r2, #65
cmp r1, #5
bxhi lr
sub r2, r2, #55
.L809:
add r0, r2, r0, lsl #4
b .L802
.fnend
.size str2hex, .-str2hex
.align 2
.global zftl_proc_debug_init
.syntax unified
.arm
.fpu softvfp
.type zftl_proc_debug_init, %function
zftl_proc_debug_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, lr}
.save {lr}
.pad #12
mov r2, #0
str r2, [sp]
mov r1, #292
ldr r3, .L812
ldr r0, .L812+4
bl proc_create_data
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.L813:
.align 2
.L812:
.word .LANCHOR1+1404
.word .LC52
.fnend
.size zftl_proc_debug_init, .-zftl_proc_debug_init
.align 2
.global ftl_print_info_to_buf
.syntax unified
.arm
.fpu softvfp
.type ftl_print_info_to_buf, %function
ftl_print_info_to_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #16
mov r6, r0
ldr r2, .L816
ldr r1, .L816+4
bl sprintf
ldr r1, .L816+8
add r4, r6, r0
ldr r5, .L816+12
ldrb r0, [r1, #10] @ zero_extendqisi2
ldrb r3, [r1, #6] @ zero_extendqisi2
ldrb r2, [r1, #5] @ zero_extendqisi2
str r0, [sp, #12]
ldrb r0, [r1, #9] @ zero_extendqisi2
str r0, [sp, #8]
ldrb r0, [r1, #8] @ zero_extendqisi2
str r0, [sp, #4]
mov r0, r4
ldrb r1, [r1, #7] @ zero_extendqisi2
str r1, [sp]
ldr r1, .L816+16
bl sprintf
ldr r2, [r5, #1032]
add r4, r4, r0
ldr r1, .L816+20
mov r0, r4
lsr r2, r2, #11
bl sprintf
ldr r2, [r5, #2776]
add r4, r4, r0
ldr r1, .L816+24
mov r0, r4
lsr r2, r2, #11
bl sprintf
add r4, r4, r0
ldr r1, .L816+28
mov r0, r4
add r4, r4, #10
bl strcpy
ldr r2, [r5, #2780]
mov r0, r4
ldr r1, .L816+32
bl sprintf
add r4, r4, r0
ldr r2, [r5, #1032]
ldr r1, .L816+36
mov r0, r4
bl sprintf
ldr r3, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+40
mov r0, r4
ldr r2, [r3, #524]
bl sprintf
ldr r3, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+44
mov r0, r4
ldr r2, [r3, #528]
bl sprintf
add r3, r5, #2784
add r4, r4, r0
ldrh r2, [r3]
mov r0, r4
ldr r1, .L816+48
bl sprintf
movw r3, #2786
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+52
bl sprintf
movw r3, #2788
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+56
bl sprintf
movw r3, #2790
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+60
bl sprintf
movw r3, #2792
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+64
bl sprintf
movw r3, #2794
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+68
bl sprintf
ldrb r1, [r5, #2797] @ zero_extendqisi2
add r4, r4, r0
ldrb r3, [r5, #2796] @ zero_extendqisi2
mov r0, r4
ldrb r2, [r5, #2769] @ zero_extendqisi2
str r1, [sp]
ldr r1, .L816+72
bl sprintf
ldr r2, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+76
mov r0, r4
ldrh r3, [r2, #146]
ldrh r2, [r2, #148]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+80
mov r0, r4
ldr r2, [r3, #16]
ldr r3, [r3, #20]
add r2, r3, r2, lsr #11
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+84
mov r0, r4
ldr r2, [r3, #24]
ldr r3, [r3, #28]
add r2, r3, r2, lsr #11
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+88
mov r0, r4
ldr r2, [r3, #64]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+92
mov r0, r4
ldr r2, [r3, #68]
bl sprintf
ldr r3, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+96
mov r0, r4
ldr r2, [r3, #12]
umull r2, r3, r2, r1
ldr r1, .L816+100
lsr r2, r3, #3
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldrb r2, [r5] @ zero_extendqisi2
mov r0, r4
ldrh r1, [r3, #150]
str r1, [sp]
ldr r1, .L816+104
ldr r3, [r3, #156]
bl sprintf
ldr r3, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+108
mov r0, r4
ldr r2, [r3, #556]
bl sprintf
ldr r3, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+112
mov r0, r4
ldr r2, [r3, #552]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+116
mov r0, r4
ldr r2, [r3, #52]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+120
mov r0, r4
ldr r2, [r3, #60]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+124
mov r0, r4
ldr r2, [r3, #76]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
ldr r1, .L816+128
mov r0, r4
ldr r2, [r3, #8]
bl sprintf
ldr r1, [r5, #1096]
add r4, r4, r0
mov r0, r4
ldrh r3, [r1, #22]
ldrh r2, [r1, #16]
ldrb r1, [r1, #25] @ zero_extendqisi2
str r1, [sp]
ldr r1, .L816+132
bl sprintf
ldr r1, [r5, #1096]
add r4, r4, r0
mov r0, r4
ldrh r3, [r1, #54]
ldrh r2, [r1, #48]
ldrb r1, [r1, #57] @ zero_extendqisi2
str r1, [sp]
ldr r1, .L816+136
bl sprintf
ldr r1, [r5, #1096]
add r4, r4, r0
mov r0, r4
ldrh r3, [r1, #86]
ldrh r2, [r1, #80]
ldrb r1, [r1, #89] @ zero_extendqisi2
str r1, [sp]
ldr r1, .L816+140
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
mov r0, r4
ldrh r1, [r3, #96]
ldrh r2, [r3, #74]
str r1, [sp, #8]
ldrh r1, [r3, #92]
str r1, [sp, #4]
ldrh r1, [r3, #88]
str r1, [sp]
ldr r1, .L816+144
ldr r3, [r3, #84]
bl sprintf
ldr r3, [r5, #2800]
add r4, r4, r0
mov r0, r4
ldrh r1, [r3, #98]
ldrh r2, [r3, #72]
str r1, [sp, #8]
ldrh r1, [r3, #94]
str r1, [sp, #4]
ldrh r1, [r3, #90]
str r1, [sp]
ldr r1, .L816+148
ldr r3, [r3, #80]
bl sprintf
movw r3, #2804
add r4, r4, r0
ldrh r2, [r5, r3]
mov r0, r4
ldr r1, .L816+152
bl sprintf
ldr r1, [r5, #2812]
add r4, r4, r0
movw r3, #2806
movw r2, #2808
ldrh r3, [r5, r3]
mov r0, r4
str r1, [sp, #8]
add r1, r5, #2816
ldrh r1, [r1]
ldrh r2, [r5, r2]
str r1, [sp, #4]
movw r1, #2818
ldrh r1, [r5, r1]
str r1, [sp]
ldr r1, .L816+156
bl sprintf
ldr r1, [r5, #1096]
add r4, r4, r0
movw r0, #590
movw r3, #586
ldrh r0, [r1, r0]
add r2, r1, #584
ldrh r3, [r1, r3]
add r1, r1, #588
ldrh r2, [r2]
str r0, [sp, #4]
mov r0, r4
ldrh r1, [r1]
str r1, [sp]
ldr r1, .L816+160
bl sprintf
ldr r2, [r5, #1096]
add r4, r4, r0
ldr r1, .L816+164
mov r0, r4
ldr r3, [r2, #548]
str r3, [sp, #8]
ldr r3, [r5, #2800]
ldr r3, [r3, #44]
str r3, [sp, #4]
ldr r3, [r2, #544]
str r3, [sp]
ldr r3, [r2, #540]
ldr r2, [r2, #536]
bl sprintf
add r0, r4, r0
sub r0, r0, r6
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, pc}
.L817:
.align 2
.L816:
.word .LC1
.word .LC2
.word .LANCHOR2
.word .LANCHOR0
.word .LC53
.word .LC54
.word .LC55
.word .LC56
.word .LC57
.word .LC58
.word .LC59
.word .LC60
.word .LC61
.word .LC62
.word .LC63
.word .LC64
.word .LC65
.word .LC66
.word .LC67
.word .LC68
.word .LC69
.word .LC70
.word .LC71
.word .LC72
.word -858993459
.word .LC73
.word .LC74
.word .LC75
.word .LC76
.word .LC77
.word .LC78
.word .LC79
.word .LC80
.word .LC81
.word .LC82
.word .LC83
.word .LC84
.word .LC85
.word .LC86
.word .LC87
.word .LC88
.word .LC89
.fnend
.size ftl_print_info_to_buf, .-ftl_print_info_to_buf
.align 2
.global zftl_proc_ftl_read
.syntax unified
.arm
.fpu softvfp
.type zftl_proc_ftl_read, %function
zftl_proc_ftl_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b ftl_print_info_to_buf
.fnend
.size zftl_proc_ftl_read, .-zftl_proc_ftl_read
.align 2
.global ftl_gc_write_buf
.syntax unified
.arm
.fpu softvfp
.type ftl_gc_write_buf, %function
ftl_gc_write_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r1, r0
ldrb r3, [r0, #2] @ zero_extendqisi2
ldr r4, .L821
orr r3, r3, #2
strb r3, [r0, #2]
add r0, r4, #2816
add r0, r0, #4
bl buf_add_tail
ldrb r0, [r4, #2796] @ zero_extendqisi2
add r0, r0, #1
uxtb r0, r0
strb r0, [r4, #2796]
pop {r4, pc}
.L822:
.align 2
.L821:
.word .LANCHOR0
.fnend
.size ftl_gc_write_buf, .-ftl_gc_write_buf
.align 2
.global gc_hook
.syntax unified
.arm
.fpu softvfp
.type gc_hook, %function
gc_hook:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
bx lr
.fnend
.size gc_hook, .-gc_hook
.align 2
.global vpn_check
.syntax unified
.arm
.fpu softvfp
.type vpn_check, %function
vpn_check:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
bx lr
.fnend
.size vpn_check, .-vpn_check
.align 2
.global ftl_scan_all_data
.syntax unified
.arm
.fpu softvfp
.type ftl_scan_all_data, %function
ftl_scan_all_data:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
bx lr
.fnend
.size ftl_scan_all_data, .-ftl_scan_all_data
.align 2
.global gc_add_sblk
.syntax unified
.arm
.fpu softvfp
.type gc_add_sblk, %function
gc_add_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #16
mov r5, r0
ldr r8, .L862
mov r4, r1
mov r9, r2
ldr r7, .L862+4
ldr r3, [r8]
tst r3, #256
beq .L827
movw r3, #2818
ldr r2, [r7, #1092]
ldrh r3, [r7, r3]
str r3, [sp, #12]
ldr r3, .L862+8
ldrh r3, [r3, #52]
str r3, [sp, #8]
lsl r3, r0, #1
ldrh r3, [r2, r3]
mov r2, r1
mov r1, r0
str r3, [sp, #4]
ldr r3, [r7, #1084]
add r3, r3, r0, lsl #2
ldr r0, .L862+12
ldrb r3, [r3, #2] @ zero_extendqisi2
lsr r3, r3, #5
str r3, [sp]
mov r3, r9
bl printk
.L827:
movw r3, #1080
ldrh r3, [r7, r3]
cmp r3, r5
bhi .L828
movw r2, #543
ldr r1, .L862+16
ldr r0, .L862+20
bl printk
bl dump_stack
.L828:
movw r3, #1080
ldrh r3, [r7, r3]
cmp r3, r5
bhi .L829
ldr r0, [r8]
ands r0, r0, #1024
beq .L826
mov r3, r9
mov r2, r4
mov r1, r5
ldr r0, .L862+24
bl printk
.L849:
mov r0, #0
b .L826
.L829:
ldr r2, [r7, #1092]
lsl r3, r5, #1
ldrh r3, [r2, r3]
ldr r2, [r7, #1084]
add r2, r2, r5, lsl #2
ldrb r2, [r2, #2] @ zero_extendqisi2
ands r6, r2, #224
bne .L831
cmp r3, #0
beq .L849
movw r2, #553
ldr r1, .L862+16
ldr r0, .L862+20
bl printk
bl dump_stack
b .L849
.L831:
movw r1, #2824
ldrh r1, [r7, r1]
cmp r1, r5
beq .L849
ldr r1, [r7, #1096]
ldrh r0, [r1, #48]
cmp r0, r5
beq .L849
ldrh r0, [r1, #16]
cmp r0, r5
beq .L849
ldrh r0, [r1, #80]
cmp r0, r5
beq .L849
ldr r0, .L862+8
mov ip, #0
ldrh r10, [r0, #52]!
.L832:
cmp ip, r10
bcc .L833
cmp r4, #0
bne .L837
ldr ip, .L862+28
mov r0, r4
ldrh lr, [ip, #-4]
cmp r5, lr
beq .L826
sub ip, ip, #2
.L836:
ldrh r6, [r0, ip]
cmp r5, r6
bne .L835
ldr r1, [r8]
ands r0, r1, #256
beq .L826
stm sp, {r5, lr}
lsr r2, r2, #5
mov r1, r5
ldr r0, .L862+32
bl printk
b .L849
.L833:
ldrh lr, [r0, #2]!
cmp lr, r5
beq .L849
add ip, ip, #1
b .L832
.L835:
add r0, r0, #2
cmp r0, #16
bne .L836
add r1, r1, r9, lsl #7
add r6, r1, #136
.L838:
ldr r1, [r8]
tst r1, #256
beq .L839
movw r1, #2818
stm sp, {r3, r10}
ldrh r1, [r7, r1]
lsr r3, r2, #5
ldr r0, .L862+36
mov r2, r4
str r1, [sp, #8]
mov r1, r5
bl printk
.L839:
mov r3, r6
add r1, r6, #128
movw r0, #65535
.L842:
mov r2, r3
add r3, r3, #2
ldrh ip, [r2]
cmp ip, r0
bne .L840
cmp r4, #0
strh r5, [r2] @ movhi
ldreq r3, [r7, #1096]
ldrne r2, [r7, #1096]
addeq r9, r3, r9, lsl #1
ldrhne r3, [r2, #124]
ldrheq r3, [r9, #120]
addne r3, r3, #1
strhne r3, [r2, #124] @ movhi
addeq r3, r3, #1
strheq r3, [r9, #120] @ movhi
.L861:
mov r0, #1
.L826:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L837:
add r6, r1, #392
b .L838
.L840:
cmp r3, r1
bne .L842
b .L861
.L863:
.align 2
.L862:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR0+2824
.word .LC90
.word .LANCHOR1+1448
.word .LC0
.word .LC91
.word .LANCHOR3-3152
.word .LC92
.word .LC93
.fnend
.size gc_add_sblk, .-gc_add_sblk
.align 2
.global gc_mark_bad_ppa
.syntax unified
.arm
.fpu softvfp
.type gc_mark_bad_ppa, %function
gc_mark_bad_ppa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L869
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r8, r0
ldr r5, .L869+4
mov r7, #1
sub r2, r3, #3136
ldrh r2, [r2, #-2]
ldrb r1, [r3, #-3136] @ zero_extendqisi2
add r5, r5, #4096
lsr r6, r0, r2
ldrb r0, [r5, #-2943] @ zero_extendqisi2
uxth r4, r6
rsb r0, r0, #24
sub r0, r0, r2
lsl r0, r7, r0
sub r0, r0, #1
and r0, r0, r6
bl __aeabi_uidiv
uxth r9, r0
mov r3, r8
mov r2, r4
ldr r1, [r5, #916]
ldr r0, .L869+8
bl printk
mov r1, r7
mov r2, #0
mov r0, r9
bl gc_add_sblk
ldr r3, [r5, #916]
mov r1, #0
ldr r0, .L869+12
movw ip, #1096
.L865:
uxth r2, r1
cmp r3, r2
bhi .L867
cmp r3, #5
bhi .L866
add r2, r3, #1
add r3, r3, #1088
str r2, [r5, #916]
add r3, r3, #8
ldr r2, .L869+12
lsl r3, r3, #1
strh r4, [r2, r3] @ movhi
b .L866
.L867:
add r2, r2, ip
add r1, r1, #1
lsl r2, r2, #1
ldrh r2, [r0, r2]
cmp r4, r2
bne .L865
.L866:
mov r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L870:
.align 2
.L869:
.word .LANCHOR3
.word .LANCHOR0
.word .LC94
.word .LANCHOR0+2824
.fnend
.size gc_mark_bad_ppa, .-gc_mark_bad_ppa
.align 2
.global gc_get_src_ppa_from_index
.syntax unified
.arm
.fpu softvfp
.type gc_get_src_ppa_from_index, %function
gc_get_src_ppa_from_index:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L872
ldr r3, [r3, #-3132]
ldr r0, [r3, r0, lsl #2]
bx lr
.L873:
.align 2
.L872:
.word .LANCHOR3
.fnend
.size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
.align 2
.global gc_write_completed
.syntax unified
.arm
.fpu softvfp
.type gc_write_completed, %function
gc_write_completed:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
.L875:
ldr r7, .L902
ldrb fp, [r7, #2772] @ zero_extendqisi2
mov r6, r7
cmp fp, #255
bne .L888
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L888:
mov r2, #48
add r10, r6, #1232
mul r2, r2, fp
str r10, [sp, #4]
add r0, r6, r2
add r2, r10, r2
ldrb r1, [r0, #1232] @ zero_extendqisi2
ldrh r8, [r2, #32]
strb r1, [r7, #2772]
ldr r1, [r0, #1268]
cmp r1, #0
beq .L876
ldr r3, .L902+4
mov r2, #1
strh r2, [r3] @ movhi
ldr r2, [r0, #1256]
add r0, r6, #4096
str r2, [r0, #912]
ldr r0, .L902+8
bl printk
mov r2, #956
ldr r1, .L902+12
ldr r0, .L902+16
bl printk
bl dump_stack
.L876:
ldr r5, .L902+20
ldrb r2, [r5, #-3128] @ zero_extendqisi2
mov r10, r5
cmp r2, #3
bne .L877
ldrb r2, [r7, #1158] @ zero_extendqisi2
cmp r2, #0
bne .L877
ldr r2, [r7, #1096]
ldrb r4, [r2, #89] @ zero_extendqisi2
ldrb r2, [r5, #-3127] @ zero_extendqisi2
cmp r2, r4
movhi r4, #1
bhi .L878
cmp r4, #2
movcs r4, #2
.L878:
add r4, r4, r4, lsl #1
.L879:
mov r2, #48
ldr r1, [r5, #-3124]
mla r2, r2, fp, r6
ldrb r1, [r1, r8] @ zero_extendqisi2
mov r9, r8
ldrb r2, [r2, #1233] @ zero_extendqisi2
cmp r1, r2
beq .L880
mov r2, #976
ldr r1, .L902+12
ldr r0, .L902+16
bl printk
bl dump_stack
.L880:
mov r2, #48
mla r3, r2, fp, r6
ldrb r3, [r3, #1277] @ zero_extendqisi2
cmp r3, #3
beq .L881
ldrb r3, [r5, #-3128] @ zero_extendqisi2
cmp r3, #3
bne .L881
ldrb r3, [r5, #-3120] @ zero_extendqisi2
cmp r3, #0
bne .L881
ldrb r3, [r7, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L881
ldrb r3, [r7, #1159] @ zero_extendqisi2
cmp r3, #0
bne .L881
ldrb r3, [r5, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L882
ldrb r3, [r5, #-3125] @ zero_extendqisi2
cmp r3, #0
bne .L881
.L882:
ldr r2, [r5, #-3124]
mov r3, #0
mov r1, #48
movw r0, #1277
mov ip, r3
add r8, r2, r8
.L883:
uxth r2, r3
cmp r4, r2
bls .L875
ldrb r2, [r8, r3] @ zero_extendqisi2
add r3, r3, #1
mla r2, r1, r2, r6
strb ip, [r2, r0]
b .L883
.L877:
ldrb r2, [r5, #-3126] @ zero_extendqisi2
cmp r2, #0
moveq r4, #1
beq .L879
ldrb r2, [r5, #-3125] @ zero_extendqisi2
cmp r2, #0
moveq r4, #1
movne r4, #2
b .L879
.L881:
ldr r3, .L902+24
mvn r5, #0
mov r7, #48
movw fp, #1277
strh r8, [r3] @ movhi
.L884:
sub r2, r9, r8
uxth r2, r2
cmp r4, r2
bls .L875
ldr r2, [r10, #-3124]
mov r1, #0
ldr r3, [sp, #4]
ldrb r0, [r2, r9] @ zero_extendqisi2
strb r5, [r2, r9]
add r9, r9, #1
mla r2, r7, r0, r6
add r0, r0, r0, lsl #1
strb r1, [r2, fp]
add r0, r3, r0, lsl #4
bl zbuf_free
ldrb r2, [r6, #2831] @ zero_extendqisi2
sub r2, r2, #1
strb r2, [r6, #2831]
b .L884
.L903:
.align 2
.L902:
.word .LANCHOR0
.word .LANCHOR0+5006
.word .LC95
.word .LANCHOR1+1460
.word .LC0
.word .LANCHOR3
.word .LANCHOR0+4928
.fnend
.size gc_write_completed, .-gc_write_completed
.align 2
.global gc_get_src_blk
.syntax unified
.arm
.fpu softvfp
.type gc_get_src_blk, %function
gc_get_src_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r1, .L916
ldr r3, [r1, #1096]
ldrh r2, [r3, #124]
cmp r2, #0
addne r3, r3, #392
movne r2, #1
bne .L906
ldr r0, .L916+4
ldrb r0, [r0, #-3119] @ zero_extendqisi2
add ip, r3, r0, lsl #1
ldrh ip, [ip, #120]
cmp ip, #0
beq .L911
add r3, r3, r0, lsl #7
add r3, r3, #136
.L906:
push {r4, lr}
.save {r4, lr}
add ip, r3, #128
movw lr, #65535
.L910:
mov r4, r3
ldrh r0, [r3], #2
cmp r0, lr
beq .L908
cmp r2, #0
mvn r3, #0
strh r3, [r4] @ movhi
ldreq r3, .L916+4
ldrne r2, [r1, #1096]
ldrbeq r2, [r3, #-3119] @ zero_extendqisi2
ldreq r3, [r1, #1096]
ldrhne r3, [r2, #124]
addeq r3, r3, r2, lsl #1
subne r3, r3, #1
strhne r3, [r2, #124] @ movhi
ldrheq r2, [r3, #120]
subeq r2, r2, #1
strheq r2, [r3, #120] @ movhi
pop {r4, pc}
.L908:
cmp r3, ip
bne .L910
pop {r4, pc}
.L911:
movw r0, #65535
bx lr
.L917:
.align 2
.L916:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size gc_get_src_blk, .-gc_get_src_blk
.align 2
.global gc_free_temp_buf
.syntax unified
.arm
.fpu softvfp
.type gc_free_temp_buf, %function
gc_free_temp_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r5, .L933
ldrb r0, [r5, #2831] @ zero_extendqisi2
cmp r0, #0
popeq {r4, r5, r6, pc}
ldrb r3, [r5, #2769] @ zero_extendqisi2
cmp r3, #1
bhi .L925
ldr r2, .L933+4
add r3, r5, #4928
ldrh r4, [r3]
movw ip, #1277
sub r3, r2, #3104
mov r6, r2
ldrh r0, [r3, #-14]
add r1, r4, #24
ldrb r3, [r2, #-3127] @ zero_extendqisi2
mul r3, r3, r0
cmp r3, r1
movcs r3, r1
ldr r1, [r2, #-3124]
mov r2, #48
.L920:
cmp r4, r3
bcc .L923
.L925:
mov r0, #0
pop {r4, r5, r6, pc}
.L923:
ldrb r0, [r1, r4] @ zero_extendqisi2
cmp r0, #255
beq .L921
mla lr, r2, r0, r5
ldrb lr, [lr, ip] @ zero_extendqisi2
cmp lr, #0
bne .L921
ldr r3, .L933+8
add r0, r0, r0, lsl #1
add r0, r3, r0, lsl #4
bl zbuf_free
ldr r3, .L933+12
ldr r3, [r3]
tst r3, #256
beq .L922
ldr r3, [r6, #-3124]
mov r1, r4
ldr r0, .L933+16
ldrb r2, [r3, r4] @ zero_extendqisi2
bl printk
.L922:
ldr r3, [r6, #-3124]
mvn r2, #0
mov r0, #1
strb r2, [r3, r4]
ldrb r3, [r5, #2831] @ zero_extendqisi2
add r3, r3, r2
strb r3, [r5, #2831]
pop {r4, r5, r6, pc}
.L921:
add r4, r4, #1
b .L920
.L934:
.align 2
.L933:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+1232
.word .LANCHOR2
.word .LC96
.fnend
.size gc_free_temp_buf, .-gc_free_temp_buf
.align 2
.global get_ink_scaned_blk
.syntax unified
.arm
.fpu softvfp
.type get_ink_scaned_blk, %function
get_ink_scaned_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r1, .L938
movw ip, #2108
ldrh r3, [r1, ip]
cmp r3, #0
addne r2, r3, #1040
subne r3, r3, #1
addne r2, r2, #11
strhne r3, [r1, ip] @ movhi
addne r2, r1, r2, lsl #1
ldrhne r0, [r2, #6]
movweq r0, #65535
bx lr
.L939:
.align 2
.L938:
.word .LANCHOR0+2824
.fnend
.size get_ink_scaned_blk, .-get_ink_scaned_blk
.align 2
.global print_gc_debug_info
.syntax unified
.arm
.fpu softvfp
.type print_gc_debug_info, %function
print_gc_debug_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, lr}
.save {lr}
.pad #20
movw ip, #2804
ldr r0, .L942
movw r1, #2824
movw r3, #2102
ldrh ip, [r0, ip]
add r2, r0, r1
ldrh r3, [r2, r3]
ldrh r1, [r0, r1]
ldrh r2, [r2, #2]
str ip, [sp, #8]
ldrb ip, [r0, #2831] @ zero_extendqisi2
str ip, [sp, #4]
ldrb r0, [r0, #2769] @ zero_extendqisi2
str r0, [sp]
ldr r0, .L942+4
bl printk
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L943:
.align 2
.L942:
.word .LANCHOR0
.word .LC97
.fnend
.size print_gc_debug_info, .-print_gc_debug_info
.align 2
.global _list_pop_index_node
.syntax unified
.arm
.fpu softvfp
.type _list_pop_index_node, %function
_list_pop_index_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r5, [r0]
cmp r5, #0
beq .L950
ldr r3, .L952
movw ip, #65535
mov lr, #6
ldr r4, [r3, #1036]
.L946:
cmp r1, #0
bne .L947
.L949:
sub r4, r5, r4
asr r3, r4, #1
ldr r4, .L952+4
mul r4, r4, r3
uxth r1, r4
bl _list_remove_node
mvn r3, #0
uxth r0, r4
strh r3, [r5] @ movhi
strh r3, [r5, #2] @ movhi
pop {r4, r5, r6, pc}
.L947:
ldrh r3, [r5]
cmp r3, ip
beq .L949
sub r1, r1, #1
mla r5, lr, r3, r4
uxth r1, r1
b .L946
.L950:
movw r0, #65535
pop {r4, r5, r6, pc}
.L953:
.align 2
.L952:
.word .LANCHOR0
.word -1431655765
.fnend
.size _list_pop_index_node, .-_list_pop_index_node
.align 2
.global _list_get_gc_head_node
.syntax unified
.arm
.fpu softvfp
.type _list_get_gc_head_node, %function
_list_get_gc_head_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r0, [r0]
cmp r0, #0
beq .L959
ldr r3, .L961
movw r2, #65535
mov ip, #6
ldr r3, [r3, #1036]
.L956:
cmp r1, #0
beq .L957
ldrh r0, [r0]
cmp r0, r2
bne .L958
bx lr
.L958:
sub r1, r1, #1
mla r0, ip, r0, r3
uxth r1, r1
b .L956
.L959:
movw r0, #65535
bx lr
.L957:
sub r0, r0, r3
asr r3, r0, #1
ldr r0, .L961+4
mul r0, r0, r3
uxth r0, r0
bx lr
.L962:
.align 2
.L961:
.word .LANCHOR0
.word -1431655765
.fnend
.size _list_get_gc_head_node, .-_list_get_gc_head_node
.align 2
.syntax unified
.arm
.fpu softvfp
.type zftl_get_gc_node.part.10, %function
zftl_get_gc_node.part.10:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r1, r0
ldr r0, .L964
b _list_get_gc_head_node
.L965:
.align 2
.L964:
.word .LANCHOR3-3116
.fnend
.size zftl_get_gc_node.part.10, .-zftl_get_gc_node.part.10
.align 2
.global gc_search_src_blk
.syntax unified
.arm
.fpu softvfp
.type gc_search_src_blk, %function
gc_search_src_blk:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #44
sub sp, sp, #44
ldr r5, .L1086
str r1, [sp, #24]
ldr r1, [r5, #1096]
str r0, [sp, #16]
str r2, [sp, #12]
add r3, r1, r0, lsl #1
ldrh r3, [r3, #120]
cmp r3, #0
str r3, [sp, #20]
movne r0, r3
bne .L966
ldr r3, .L1086+4
ldrh r2, [r3, #52]
cmp r2, #1
ldrls r0, .L1086+8
ldrhls ip, [sp, #20]
strhls ip, [r0, #-8] @ movhi
strhls ip, [r0, #-6] @ movhi
strhls ip, [r0, #-4] @ movhi
ldr r0, [sp, #16]
cmp r0, #0
bne .L970
ldr r10, .L1086+12
mov r7, r0
ldr fp, .L1086+16
mov r4, r0
.L971:
ldr r3, [sp, #12]
add r8, r3, #1
uxth r3, r7
cmp r3, r8
bge .L976
ldr r3, .L1086+20
mov r0, r3
str r3, [sp, #20]
ldrh r9, [r0], #6
mov r1, r9
bl _list_get_gc_head_node
add r2, r9, #1
ldr r3, [sp, #20]
movw r1, #65535
uxth r2, r2
cmp r0, r1
mov r6, r0
strh r2, [r3] @ movhi
beq .L972
ldr r3, [r10]
lsl r9, r0, #1
tst r3, #256
beq .L973
ldr r3, [r5, #1092]
mov r1, r0
mov r0, fp
ldrh r3, [r3, r9]
bl printk
.L973:
ldr r3, [r5, #1092]
ldrh r2, [r3, r9]
ldr r3, .L1086+24
ldrh r3, [r3]
cmp r2, r3
bcs .L974
mov r2, #0
mov r0, r6
mov r1, r2
bl gc_add_sblk
cmp r0, #0
beq .L975
add r4, r4, #1
ldr r3, [sp, #12]
uxth r4, r4
cmp r4, r3
bcc .L975
.L976:
ldr r3, [sp, #24]
tst r3, #2
beq .L978
movw r3, #2794
ldrh r3, [r5, r3]
cmp r3, #32
bls .L978
ldr r9, .L1086+28
mov fp, #0
ldr r6, .L1086+32
sub r10, r9, #12
.L979:
uxth r3, fp
cmp r8, r3
ble .L983
ldr r7, .L1086+36
mov r0, r10
ldrh r3, [r7]
mov r1, r3
str r3, [sp, #20]
bl _list_get_gc_head_node
ldr r3, [sp, #20]
add r3, r3, #1
strh r3, [r7] @ movhi
movw r3, #65535
cmp r0, r3
beq .L980
ldr r3, [r5, #1092]
lsl r2, r0, #1
ldrh r2, [r3, r2]
ldrh r3, [r6]
cmp r2, r3
bcs .L980
mov r2, #0
mov r1, r2
bl gc_add_sblk
cmp r0, #0
beq .L982
add r4, r4, #1
ldr r3, [sp, #12]
uxth r4, r4
cmp r4, r3
bcc .L982
.L983:
ldr r3, [sp, #12]
cmp r4, r3
bcs .L985
ldr r0, .L1086+40
ldrh r1, [r9, #-8]
ldrh r2, [r6]
sub r3, r0, #3104
ldrh ip, [r3, #-14]
ldrb r3, [r0, #-3127] @ zero_extendqisi2
mul r3, r3, ip
sub r3, r3, r1, lsr #2
cmp r2, r3
addlt r2, r2, r1, lsr #3
strhlt r2, [r6] @ movhi
.L978:
ldr r3, [sp, #24]
tst r3, #1
beq .L986
ldrh r6, [sp, #12]
cmp r4, r6
bcs .L986
mov r9, #0
movw r8, #65535
.L991:
ldr r10, .L1086+44
ldrh r7, [r10]
mov r0, r7
add r7, r7, #1
bl zftl_get_gc_node.part.10
cmp r0, r8
strh r7, [r10] @ movhi
beq .L987
mov r2, #0
mov r1, r2
bl gc_add_sblk
cmp r0, #0
beq .L988
add r4, r4, #1
uxth r4, r4
cmp r6, r4
bhi .L988
.L989:
ldr r3, .L1086+28
movw r2, #2818
ldrh r1, [r3, #-8]
.L1085:
ldrh r3, [r5, r2]
cmp r3, r1, lsr #1
bls .L986
sub r3, r3, r1, lsr #3
.L1082:
strh r3, [r5, r2] @ movhi
b .L986
.L974:
ldr r3, .L1086+8
mov r2, #0
strh r2, [r3, #-6] @ movhi
b .L976
.L972:
mov r2, #0
strh r2, [r3] @ movhi
b .L976
.L975:
add r7, r7, #1
b .L971
.L980:
mov r3, #0
strh r3, [r7] @ movhi
b .L983
.L982:
add fp, fp, #1
b .L979
.L985:
ldrh r3, [r6]
ldrh r2, [r9, #-8]
cmp r3, r2
subhi r3, r3, r2, lsr #3
strhhi r3, [r6] @ movhi
b .L978
.L987:
mov r3, #0
strh r3, [r10] @ movhi
.L990:
cmp r4, r6
bcs .L989
ldr r1, .L1086+28
movw r2, #2818
ldrh r3, [r5, r2]
ldrh r1, [r1, #-8]
cmp r3, r1
addcc r3, r3, r1, lsr #3
bcc .L1082
.L986:
ldr r3, .L1086+12
ldr r3, [r3]
tst r3, #256
beq .L1021
ldr r3, [sp, #12]
ldr r2, [sp, #24]
ldr r1, [sp, #16]
str r3, [sp]
mov r3, r4
ldr r0, .L1086+48
bl printk
.L1021:
mov r0, r4
.L966:
add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L988:
add r9, r9, #1
uxth r3, r9
cmp r6, r3
bhi .L991
b .L990
.L970:
ldr r4, .L1086+40
ldrb r7, [r4, #-3127] @ zero_extendqisi2
sub r4, r4, #3104
ldrh r0, [r4, #-14]
smulbb r7, r7, r0
ldr r0, [sp, #12]
cmp r0, #1
uxth r7, r7
bne .L992
cmp r2, #0
beq .L992
ldrh r0, [r1, #80]
movw r1, #65535
cmp r0, r1
movwne r1, #2102
ldrhne r1, [r3, r1]
subne r7, r7, r1
mov r1, #8
uxthne r7, r7
str r1, [sp, #12]
.L992:
mov r6, #0
movw r1, #2180
strh r6, [r3, r1] @ movhi
ldr r3, [sp, #24]
ldr r1, .L1086+28
ands r3, r3, #1
strh r6, [r1, #-6] @ movhi
mov r8, r1
str r3, [sp, #28]
ldreq r6, [sp, #28]
moveq r4, r6
beq .L993
movw r3, #2790
ldrh r1, [r1, #-4]
ldrh r3, [r5, r3]
cmp r3, r1, lsr #2
bhi .L994
movw r1, #2792
ldrh r1, [r5, r1]
cmp r1, r3
movcs r4, r6
bcs .L995
.L994:
cmp r2, #1
bls .L996
.L998:
mov r4, #0
.L997:
ldr r9, .L1086+52
mov r6, #0
mov r8, #64
movw fp, #65535
.L1001:
ldr r2, .L1086+44
ldrh r3, [r2]
str r2, [sp, #36]
mov r0, r3
str r3, [sp, #32]
bl zftl_get_gc_node.part.10
cmp r0, fp
mov r10, r0
ldr r2, [sp, #36]
beq .L999
ldr r3, [sp, #32]
mov r1, #0
add r3, r3, #1
strh r3, [r2] @ movhi
ldr r2, [sp, #16]
bl gc_add_sblk
cmp r0, #0
beq .L1000
ldr r3, [r5, #1092]
lsl r10, r10, #1
add r4, r4, #1
ldr r2, [sp, #12]
uxth r4, r4
ldrh r3, [r3, r10]
add r6, r6, r3
uxth r6, r6
cmp r7, r6
movcs r3, #0
movcc r3, #1
cmp r4, r2
orrcs r3, r3, #1
cmp r3, #0
bne .L995
ldr r2, .L1086+56
ldrh r3, [r9]
ldrh r2, [r2]
cmp r3, r2, lsl #1
ble .L1000
.L995:
movw r3, #2792
ldrh r2, [r5, r3]
ldr r3, .L1086+28
ldrh r3, [r3, #-4]
cmp r2, r3, lsr #2
bhi .L1022
movw r3, #2790
ldrh r3, [r5, r3]
add r3, r3, #8
cmp r2, r3
ble .L993
.L1022:
cmp r7, r6
bls .L993
ldrh r3, [sp, #16]
mov r8, #64
str r3, [sp, #32]
.L1004:
ldr fp, .L1086+20
mov r0, fp
ldrh r9, [r0], #6
mov r1, r9
bl _list_get_gc_head_node
movw r3, #65535
mov r10, r0
cmp r0, r3
beq .L1002
add r9, r9, #1
ldr r2, [sp, #32]
mov r1, #0
strh r9, [fp] @ movhi
bl gc_add_sblk
cmp r0, #0
beq .L1003
ldr r3, [r5, #1092]
lsl r10, r10, #1
add r4, r4, #1
ldr r2, [sp, #12]
uxth r4, r4
ldrh r3, [r3, r10]
add r6, r6, r3
uxth r6, r6
cmp r7, r6
movcs r3, #0
movcc r3, #1
cmp r4, r2
orrcs r3, r3, #1
cmp r3, #0
beq .L1003
.L993:
ldr r3, [sp, #24]
tst r3, #2
beq .L1005
movw r3, #2794
ldrh r3, [r5, r3]
cmp r3, #32
movls r3, #0
movhi r3, #1
cmp r6, r7
movcs r3, #0
cmp r3, #0
beq .L1005
ldr r10, .L1086+40
mov r5, #64
sub fp, r10, #3088
sub r3, fp, #12
str r3, [sp, #32]
.L1011:
ldr r8, .L1086+8
ldr r0, [sp, #32]
ldrh r9, [r8, #-4]
sub r2, r8, #4
str r2, [sp, #36]
mov r1, r9
bl _list_get_gc_head_node
movw r3, #65535
ldr r2, [sp, #36]
cmp r0, r3
beq .L1006
ldr r3, [sp, #12]
add r9, r9, #1
strh r9, [r8, #-4] @ movhi
cmp r3, #1
bne .L1007
ldrh r2, [r8, #-14]
ldrb r3, [r10, #-3127] @ zero_extendqisi2
smulbb r3, r3, r2
ldrh r2, [fp, #-8]
sub r3, r3, r2, lsr #3
ldr r2, .L1086+60
strh r3, [r2] @ movhi
.L1007:
ldr r9, .L1086
lsl r8, r0, #1
ldr r3, [r9, #1092]
ldrh r2, [r3, r8]
ldr r3, .L1086+60
ldrh r3, [r3]
cmp r2, r3
bcs .L1008
ldr r2, [sp, #16]
mov r1, #0
bl gc_add_sblk
cmp r0, #0
beq .L1009
ldr r3, [sp, #20]
add r4, r4, #1
ldr r2, [sp, #12]
uxth r4, r4
add r0, r3, #1
uxth r3, r0
str r3, [sp, #20]
ldr r3, [r9, #1092]
ldrh r3, [r3, r8]
add r6, r6, r3
uxth r6, r6
cmp r7, r6
movcs r3, #0
movcc r3, #1
cmp r4, r2
orrcs r3, r3, #1
cmp r3, #0
beq .L1009
.L1010:
ldr r3, [sp, #12]
ldr r0, .L1086+28
ldr r2, .L1086
cmp r4, r3
add lr, r0, #3088
bcc .L1012
ldr r3, [sp, #20]
cmp r3, #0
bne .L1013
movw r3, #2794
ldrh r1, [r2, r3]
ldrh r3, [r0, #-2]
cmp r1, r3
bls .L1013
.L1012:
ldr r3, .L1086+8
movw ip, #2808
ldrh r0, [r0, #-8]
ldrh r1, [r2, ip]
ldrh r5, [r3, #-14]
ldrb r3, [lr, #-3127] @ zero_extendqisi2
lsr r0, r0, #3
mul r3, r3, r5
sub r3, r3, r0
cmp r1, r3
addlt r1, r1, r0
strhlt r1, [r2, ip] @ movhi
.L1005:
ldr r3, [sp, #28]
cmp r3, #0
beq .L986
ldrh r9, [sp, #12]
cmp r6, r7
cmpcc r4, r9
bcs .L986
ldr r5, .L1086
mov r8, #64
.L1019:
ldr fp, .L1086+20
mov r0, fp
ldrh r10, [r0], #6
mov r1, r10
bl _list_get_gc_head_node
movw r3, #65535
cmp r0, r3
beq .L1015
add r10, r10, #1
ldr r2, [r5, #1092]
ldr r3, .L1086+64
strh r10, [fp] @ movhi
lsl r10, r0, #1
ldrh r1, [r2, r10]
ldrh r2, [r3]
cmp r1, r2
bcs .L1016
ldrh r2, [fp, #18]
ldrh r3, [r3, #-14]
cmp r3, r2, lsr #1
bls .L1017
.L1016:
ldr r2, [sp, #16]
mov r1, #0
bl gc_add_sblk
cmp r0, #0
beq .L1018
ldr r3, [r5, #1092]
add r4, r4, #1
uxth r4, r4
ldrh r3, [r3, r10]
add r6, r6, r3
uxth r6, r6
cmp r7, r6
cmpcs r9, r4
bhi .L1018
.L1017:
ldr r3, .L1086+28
cmp r4, r9
movw r2, #2806
ldrhcc r1, [r3, #-8]
bcc .L1085
ldrh r0, [r3, #-8]
ldr r3, .L1086+40
ldrh r1, [r5, r2]
ldrb r3, [r3, #-3127] @ zero_extendqisi2
mul r3, r0, r3
sub r3, r3, #32
cmp r1, r3
addlt r1, r1, r0, lsr #3
strhlt r1, [r5, r2] @ movhi
b .L986
.L996:
lsr r3, r3, #2
mov r0, #0
strh r3, [r4, #-8] @ movhi
bl zftl_get_gc_node.part.10
movw r2, #65535
cmp r0, r2
beq .L998
ldr r1, [r5, #1092]
lsl r3, r0, #1
ldrh r2, [r8, #-8]
ldrh r3, [r1, r3]
cmp r3, r2, lsr #2
bcs .L998
mov r3, #1
ldr r2, [sp, #16]
mov r1, #0
strh r3, [r4, #-8] @ movhi
bl gc_add_sblk
adds r4, r0, #0
movne r4, #1
b .L997
.L999:
mov r3, #0
strh r3, [r2] @ movhi
b .L995
.L1000:
sub r8, r8, #1
uxth r8, r8
cmp r8, #0
bne .L1001
b .L995
.L1002:
cmp r9, #64
movhi r3, #0
strhhi r3, [fp] @ movhi
b .L993
.L1003:
sub r8, r8, #1
uxth r8, r8
cmp r8, #0
bne .L1004
b .L993
.L1008:
ldr r3, .L1086+8
mov r2, #0
strh r2, [r3, #-4] @ movhi
b .L1010
.L1006:
mov r3, #0
strh r3, [r2] @ movhi
b .L1010
.L1009:
sub r5, r5, #1
uxth r5, r5
cmp r5, #0
bne .L1011
b .L1010
.L1013:
ldrh r0, [r0, #-8]
movw ip, #2808
ldrb r1, [lr, #-3127] @ zero_extendqisi2
ldrh r3, [r2, ip]
mul r1, r0, r1
cmp r3, r1
subgt r3, r3, r0, lsr #3
strhgt r3, [r2, ip] @ movhi
b .L986
.L1015:
cmp r10, #64
movhi r3, #0
strhhi r3, [fp] @ movhi
b .L1017
.L1018:
sub r8, r8, #1
uxth r8, r8
cmp r8, #0
bne .L1019
b .L1017
.L1087:
.align 2
.L1086:
.word .LANCHOR0
.word .LANCHOR0+2824
.word .LANCHOR3-3104
.word .LANCHOR2
.word .LC98
.word .LANCHOR3-3110
.word .LANCHOR0+2818
.word .LANCHOR3-3088
.word .LANCHOR0+2816
.word .LANCHOR3-3108
.word .LANCHOR3
.word .LANCHOR3-3112
.word .LC99
.word .LANCHOR0+2792
.word .LANCHOR0+2790
.word .LANCHOR0+2808
.word .LANCHOR0+2806
.fnend
.size gc_search_src_blk, .-gc_search_src_blk
.align 2
.global zftl_get_gc_node
.syntax unified
.arm
.fpu softvfp
.type zftl_get_gc_node, %function
zftl_get_gc_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r1, #5
mov r3, r0
moveq r1, r0
ldreq r0, .L1092
beq .L1091
cmp r1, #2
movne r1, r3
ldrne r0, .L1092+4
bne .L1091
b zftl_get_gc_node.part.10
.L1091:
b _list_get_gc_head_node
.L1093:
.align 2
.L1092:
.word .LANCHOR3-3100
.word .LANCHOR3-3104
.fnend
.size zftl_get_gc_node, .-zftl_get_gc_node
.align 2
.global zftl_insert_free_list
.syntax unified
.arm
.fpu softvfp
.type zftl_insert_free_list, %function
zftl_insert_free_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r2, .L1098
mov r1, r0
ldr r3, [r2, #1084]
add r3, r3, r0, lsl #2
ldrb r3, [r3, #2] @ zero_extendqisi2
ands r3, r3, #24
addeq r2, r2, #2784
ldreq r0, .L1098+4
beq .L1097
cmp r3, #16
ldr r0, .L1098+8
ldreq r2, .L1098+12
ldrne r2, .L1098+16
subeq r0, r0, #12
subne r0, r0, #8
.L1097:
b _insert_free_list
.L1099:
.align 2
.L1098:
.word .LANCHOR0
.word .LANCHOR3-3088
.word .LANCHOR3-3072
.word .LANCHOR0+2786
.word .LANCHOR0+2788
.fnend
.size zftl_insert_free_list, .-zftl_insert_free_list
.align 2
.global zftl_insert_data_list
.syntax unified
.arm
.fpu softvfp
.type zftl_insert_data_list, %function
zftl_insert_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1105
mov r1, r0
ldr r3, [r3, #1084]
add r3, r3, r0, lsl #2
ldrb r3, [r3, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #64
bne .L1101
ldr r2, .L1105+4
ldr r0, .L1105+8
.L1104:
b _insert_data_list
.L1101:
cmp r3, #96
ldreq r2, .L1105+12
ldreq r0, .L1105+16
beq .L1104
.L1102:
cmp r3, #160
bxne lr
ldr r2, .L1105+20
ldr r0, .L1105+24
b .L1104
.L1106:
.align 2
.L1105:
.word .LANCHOR0
.word .LANCHOR0+2790
.word .LANCHOR3-3116
.word .LANCHOR0+2792
.word .LANCHOR3-3104
.word .LANCHOR0+2794
.word .LANCHOR3-3100
.fnend
.size zftl_insert_data_list, .-zftl_insert_data_list
.align 2
.global zftl_gc_get_free_sblk
.syntax unified
.arm
.fpu softvfp
.type zftl_gc_get_free_sblk, %function
zftl_gc_get_free_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #16
movw r2, #65535
ldr r8, .L1126
ldr r3, [r8, #1096]
add r3, r3, #588
ldrh r4, [r3]
clz r3, r0
lsr r3, r3, #5
cmp r4, r2
moveq r3, #0
cmp r3, #0
beq .L1108
mov r1, r4
ldr r0, .L1126+4
bl printk
ldr r3, [r8, #1096]
mvn r2, #0
add r3, r3, #588
strh r2, [r3] @ movhi
.L1109:
mov r0, r4
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L1108:
movw r3, #2786
mov r7, r1
ldrh r1, [r8, r3]
movw r3, #2788
ldrh r3, [r8, r3]
mov r6, r0
mov r5, r8
ldr r0, .L1126+8
cmp r1, r3
bcc .L1110
add r2, r8, #2784
ldrh r2, [r2]
cmp r3, #0
cmpne r2, r1
bls .L1111
.L1110:
cmp r6, #0
ldr r2, .L1126+12
rsbne r1, r1, r1, lsl #3
lsreq r1, r3, #2
ubfxne r1, r1, #3, #16
sub r0, r0, #8
.L1125:
bl _list_pop_index_node
uxth r4, r0
movw r3, #65535
cmp r4, r3
bne .L1116
movw r3, #2788
mov r2, r7
ldrh r3, [r5, r3]
mov r1, r4
ldr r0, .L1126+16
str r3, [sp, #4]
ldr r3, .L1126+20
ldrh r3, [r3]
str r3, [sp]
ldr r3, .L1126+24
ldr r3, [r3, #-3088]
bl printk
.L1116:
cmp r6, #0
beq .L1109
ldr r3, .L1126+28
ldr r3, [r3]
tst r3, #256
beq .L1109
ldr ip, [r5, #1092]
lsl r0, r4, #1
ldr r1, [r5, #1084]
lsl r3, r4, #2
ldrh r0, [ip, r0]
add r2, r1, r3
ldrb r2, [r2, #2] @ zero_extendqisi2
str r0, [sp, #8]
ldrh r3, [r1, r3]
ldr r0, .L1126+32
ubfx r3, r3, #0, #11
str r3, [sp, #4]
ldr r3, [r1, r4, lsl #2]
mov r1, r4
ubfx r3, r3, #11, #8
str r3, [sp]
ubfx r3, r2, #3, #2
lsr r2, r2, #5
bl printk
b .L1109
.L1111:
cmp r6, #0
ldr r2, .L1126+36
lsrne r1, r1, #3
moveq r1, r6
sub r0, r0, #12
b .L1125
.L1127:
.align 2
.L1126:
.word .LANCHOR0
.word .LC100
.word .LANCHOR3-3072
.word .LANCHOR0+2788
.word .LC101
.word .LANCHOR0+2784
.word .LANCHOR3
.word .LANCHOR2
.word .LC102
.word .LANCHOR0+2786
.fnend
.size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
.align 2
.global zftl_get_free_sblk
.syntax unified
.arm
.fpu softvfp
.type zftl_get_free_sblk, %function
zftl_get_free_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
cmp r1, #5
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r7, r1
ldr r5, .L1141
bne .L1129
movw r3, #2786
ldr r0, .L1141+4
ldrh r1, [r5, r3]
movw r3, #2788
ldrh ip, [r5, r3]
cmp r1, ip
bcc .L1130
add r3, r5, #2784
ldrh r3, [r3]
cmp ip, #0
cmpne r3, r1
movhi r1, #1
movls r1, #0
ldrls r2, .L1141+8
subls r0, r0, #12
bls .L1140
.L1130:
ldr r2, .L1141+12
lsr r1, ip, #1
sub r0, r0, #8
.L1140:
bl _list_pop_index_node
uxth r4, r0
movw r3, #65535
cmp r4, r3
bne .L1134
movw r3, #2788
mov r2, r7
ldrh r3, [r5, r3]
mov r1, r4
ldr r0, .L1141+16
str r3, [sp, #4]
ldr r3, .L1141+20
ldrh r3, [r3]
str r3, [sp]
ldr r3, .L1141+24
ldr r3, [r3, #-3088]
bl printk
b .L1134
.L1129:
ldr r3, [r5, #1096]
movw r8, #590
ldrh r4, [r3, r8]
movw r3, #65535
cmp r1, #1
cmpne r4, r3
beq .L1133
mov r1, r4
ldr r0, .L1141+28
bl printk
ldr r3, [r5, #1096]
mvn r2, #0
strh r2, [r3, r8] @ movhi
.L1134:
mov r0, r4
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L1133:
add r3, r5, #2784
movw r2, #2788
ldrh r3, [r3]
mov r6, r0
ldrh r2, [r5, r2]
cmp r3, r2
bcc .L1135
movw r1, #2786
ldrh r1, [r5, r1]
cmp r2, #0
cmpne r1, r3
bls .L1136
.L1135:
bl get_ink_scaned_blk
movw r3, #65535
mov r4, r0
cmp r0, r3
bne .L1134
cmp r7, #1
ldr r2, .L1141+12
movweq r3, #2788
ldr r0, .L1141+32
ldrheq r6, [r5, r3]
lsreq r6, r6, #1
mov r1, r6
b .L1140
.L1136:
cmp r7, #1
ldr r2, .L1141+20
lsreq r6, r3, #1
ldr r0, .L1141+36
mov r1, r6
b .L1140
.L1142:
.align 2
.L1141:
.word .LANCHOR0
.word .LANCHOR3-3072
.word .LANCHOR0+2786
.word .LANCHOR0+2788
.word .LC101
.word .LANCHOR0+2784
.word .LANCHOR3
.word .LC103
.word .LANCHOR3-3080
.word .LANCHOR3-3088
.fnend
.size zftl_get_free_sblk, .-zftl_get_free_sblk
.align 2
.global zftl_remove_data_node
.syntax unified
.arm
.fpu softvfp
.type zftl_remove_data_node, %function
zftl_remove_data_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1148
mov r1, r0
ldr r3, [r3, #1084]
add r3, r3, r0, lsl #2
ldrb r3, [r3, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #64
bne .L1144
ldr r2, .L1148+4
ldr r0, .L1148+8
.L1147:
b _list_remove_node
.L1144:
cmp r3, #96
ldreq r2, .L1148+12
ldreq r0, .L1148+16
beq .L1147
.L1145:
cmp r3, #160
bxne lr
ldr r2, .L1148+20
ldr r0, .L1148+24
b .L1147
.L1149:
.align 2
.L1148:
.word .LANCHOR0
.word .LANCHOR0+2790
.word .LANCHOR3-3116
.word .LANCHOR0+2792
.word .LANCHOR3-3104
.word .LANCHOR0+2794
.word .LANCHOR3-3100
.fnend
.size zftl_remove_data_node, .-zftl_remove_data_node
.align 2
.global zftl_remove_free_node
.syntax unified
.arm
.fpu softvfp
.type zftl_remove_free_node, %function
zftl_remove_free_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r2, .L1154
mov r1, r0
ldr r3, [r2, #1084]
add r3, r3, r0, lsl #2
ldrb r3, [r3, #2] @ zero_extendqisi2
ands r3, r3, #24
addeq r2, r2, #2784
ldreq r0, .L1154+4
beq .L1153
cmp r3, #16
ldr r0, .L1154+8
ldreq r2, .L1154+12
ldrne r2, .L1154+16
subeq r0, r0, #12
subne r0, r0, #8
.L1153:
b _list_remove_node
.L1155:
.align 2
.L1154:
.word .LANCHOR0
.word .LANCHOR3-3088
.word .LANCHOR3-3072
.word .LANCHOR0+2786
.word .LANCHOR0+2788
.fnend
.size zftl_remove_free_node, .-zftl_remove_free_node
.align 2
.global zftl_list_update_data_list
.syntax unified
.arm
.fpu softvfp
.type zftl_list_update_data_list, %function
zftl_list_update_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1161
mov r1, r0
ldr r3, [r3, #1084]
add r3, r3, r0, lsl #2
ldrb r3, [r3, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #64
bne .L1157
ldr r2, .L1161+4
ldr r0, .L1161+8
.L1160:
b _list_update_data_list
.L1157:
cmp r3, #96
ldreq r2, .L1161+12
ldreq r0, .L1161+16
beq .L1160
.L1158:
cmp r3, #160
bxne lr
ldr r2, .L1161+20
ldr r0, .L1161+24
b .L1160
.L1162:
.align 2
.L1161:
.word .LANCHOR0
.word .LANCHOR0+2790
.word .LANCHOR3-3116
.word .LANCHOR0+2792
.word .LANCHOR3-3104
.word .LANCHOR0+2794
.word .LANCHOR3-3100
.fnend
.size zftl_list_update_data_list, .-zftl_list_update_data_list
.align 2
.global print_list_info
.syntax unified
.arm
.fpu softvfp
.type print_list_info, %function
print_list_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
mov r4, r0
ldrh r2, [r1]
.pad #36
sub sp, sp, #36
ldr r1, [r0]
ldr r0, .L1168
bl printk
ldr r4, [r4]
cmp r4, #0
beq .L1163
ldr r6, .L1168+4
mov r5, #0
ldr r7, .L1168+8
ldr r8, .L1168+12
.L1166:
ldr r2, [r6, #1036]
ldr r9, [r6, #1092]
ldr r1, [r6, #1084]
sub r2, r4, r2
ldrh r3, [r4]
asr r2, r2, #1
mul r2, r7, r2
uxth r2, r2
lsl lr, r2, #1
lsl r0, r2, #2
ldrh lr, [r9, lr]
add ip, r1, r0
str lr, [sp, #24]
ldrh r0, [r1, r0]
ubfx r0, r0, #0, #11
str r0, [sp, #20]
mov r0, r8
ldr r1, [r1, r2, lsl #2]
ubfx r1, r1, #11, #8
str r1, [sp, #16]
ldrb r1, [ip, #2] @ zero_extendqisi2
ubfx r1, r1, #3, #2
str r1, [sp, #12]
ldrb r1, [ip, #2] @ zero_extendqisi2
lsr r1, r1, #5
str r1, [sp, #8]
ldrh r1, [r4, #4]
str r1, [sp, #4]
ldrh r1, [r4, #2]
str r1, [sp]
mov r1, r5
bl printk
ldrh r4, [r4]
movw r3, #65535
cmp r4, r3
beq .L1163
ldr r3, [r6, #1036]
mov r2, #6
add r5, r5, #1
uxth r5, r5
mla r4, r2, r4, r3
ldr r3, .L1168+16
ldrh r3, [r3]
cmp r3, r5
bcs .L1166
.L1163:
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
.L1169:
.align 2
.L1168:
.word .LC104
.word .LANCHOR0
.word -1431655765
.word .LC105
.word .LANCHOR3-3076
.fnend
.size print_list_info, .-print_list_info
.align 2
.global dump_all_list_info
.syntax unified
.arm
.fpu softvfp
.type dump_all_list_info, %function
dump_all_list_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
ldr r5, .L1172
ldr r4, .L1172+4
sub r6, r5, #3088
sub r7, r5, #3072
mov r0, r6
sub r5, r5, #3104
add r1, r4, #2784
bl print_list_info
add r1, r4, #2784
sub r0, r7, #12
add r1, r1, #2
bl print_list_info
add r1, r4, #2784
sub r0, r7, #8
add r1, r1, #4
bl print_list_info
add r1, r4, #2784
sub r0, r5, #12
add r1, r1, #6
bl print_list_info
add r1, r4, #2784
mov r0, r5
add r1, r1, #8
bl print_list_info
add r1, r4, #2784
sub r0, r6, #12
add r1, r1, #10
pop {r4, r5, r6, r7, r8, lr}
b print_list_info
.L1173:
.align 2
.L1172:
.word .LANCHOR3
.word .LANCHOR0
.fnend
.size dump_all_list_info, .-dump_all_list_info
.align 2
.global ftl_tmp_into_update
.syntax unified
.arm
.fpu softvfp
.type ftl_tmp_into_update, %function
ftl_tmp_into_update:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1179
ldr r3, [r3, #2800]
ldr r2, [r3, #16]
cmp r2, #2048
ldrhi r1, [r3, #20]
addhi r1, r1, r2, lsr #11
ubfxhi r2, r2, #0, #11
strhi r2, [r3, #16]
ldr r2, [r3, #24]
strhi r1, [r3, #20]
cmp r2, #2048
ldrhi r1, [r3, #28]
addhi r1, r1, r2, lsr #11
ubfxhi r2, r2, #0, #11
strhi r2, [r3, #24]
ldr r2, [r3, #32]
strhi r1, [r3, #28]
cmp r2, #1024
ldrhi r1, [r3, #36]
addhi r1, r1, r2, lsr #10
ubfxhi r2, r2, #0, #10
strhi r2, [r3, #32]
ldr r2, [r3, #40]
strhi r1, [r3, #36]
cmp r2, #1024
ldrhi r1, [r3, #44]
addhi r1, r1, r2, lsr #10
ubfxhi r2, r2, #0, #10
strhi r2, [r3, #40]
strhi r1, [r3, #44]
bx lr
.L1180:
.align 2
.L1179:
.word .LANCHOR0
.fnend
.size ftl_tmp_into_update, .-ftl_tmp_into_update
.global __aeabi_idiv
.align 2
.global ftl_get_blk_list_in_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_get_blk_list_in_sblk, %function
ftl_get_blk_list_in_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r5, #0
ldr r9, .L1189
mov r10, r0
mov r6, r1
mov r7, r5
ldr r8, .L1189+4
ldr r3, [r9, #1084]
add r3, r3, r0, lsl #2
ldrb r2, [r3, #3] @ zero_extendqisi2
mov r3, r8
.L1182:
ldrb r1, [r8, #-3127] @ zero_extendqisi2
cmp r7, r1
blt .L1185
add r6, r6, r5, lsl #1
mov r2, r5
mvn r0, #0
.L1186:
ldrb r1, [r3, #-3127] @ zero_extendqisi2
cmp r2, r1
blt .L1187
mov r0, r5
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1185:
asr r1, r2, r7
tst r1, #1
bne .L1183
ldrb r4, [r8, #-3136] @ zero_extendqisi2
mov r0, r7
stm sp, {r2, r3}
lsl fp, r5, #1
add r5, r5, #1
mov r1, r4
bl __aeabi_idiv
ldr ip, .L1189+8
smulbb r4, r4, r10
ldrb r1, [r9, #1153] @ zero_extendqisi2
ldm sp, {r2, r3}
ldrh ip, [ip]
rsb r1, r1, #24
sub r1, r1, ip
add r0, r4, r0, lsl r1
uxth r0, r0
strh r0, [r6, fp] @ movhi
ldrb r1, [r8, #-3136] @ zero_extendqisi2
cmp r1, #1
subhi r1, r1, #1
andhi r1, r1, r7
addhi r0, r0, r1
strhhi r0, [r6, fp] @ movhi
.L1183:
add r7, r7, #1
b .L1182
.L1187:
strh r0, [r6], #2 @ movhi
add r2, r2, #1
b .L1186
.L1190:
.align 2
.L1189:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3138
.fnend
.size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
.align 2
.global ftl_erase_phy_blk
.syntax unified
.arm
.fpu softvfp
.type ftl_erase_phy_blk, %function
ftl_erase_phy_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r2, .L1197
ldr r3, .L1197+4
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r6, r1
sub r1, r2, #3136
sub r7, r2, #3072
ldrb r3, [r3, #1153] @ zero_extendqisi2
ldrh r4, [r1, #-2]
rsb r3, r3, #24
sub r3, r3, r4
mvn r4, #0
asr r5, r0, r3
bic r4, r0, r4, lsl r3
ldrb r3, [r2, #-3126] @ zero_extendqisi2
sxth r4, r4
uxtb r5, r5
cmp r3, #0
beq .L1192
ldrb r3, [r2, #-3125] @ zero_extendqisi2
cmp r3, #0
bne .L1192
ldrh r2, [r7, #-2]
clz r1, r6
lsr r1, r1, #5
mov r0, r5
mul r2, r4, r2
bl flash_erase_block_en
.L1192:
ldrh r2, [r7, #-2]
uxtb r1, r6
mov r0, r5
mul r2, r4, r2
pop {r4, r5, r6, r7, r8, lr}
b flash_erase_block_en
.L1198:
.align 2
.L1197:
.word .LANCHOR3
.word .LANCHOR0
.fnend
.size ftl_erase_phy_blk, .-ftl_erase_phy_blk
.align 2
.global ftl_erase_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_erase_sblk, %function
ftl_erase_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 80
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
lsl fp, r0, #2
ldr r4, .L1224
mov r8, r0
mov r7, r1
mov r6, #0
ldr r9, .L1224+4
.pad #84
sub sp, sp, #84
ldr r3, [r4, #1084]
add r3, r3, fp
ldrb r3, [r3, #3] @ zero_extendqisi2
str r3, [sp, #4]
.L1200:
ldr r3, .L1224+4
ldrb r3, [r3, #-3072] @ zero_extendqisi2
cmp r6, r3
bge .L1211
ldr r3, .L1224+4
mov r5, #0
ldrb r2, [r3, #-3136] @ zero_extendqisi2
sub r10, r2, #1
mul r3, r2, r8
mul ip, r2, r6
str r3, [sp, #8]
ldr r3, .L1224+8
ldrh r3, [r3]
str r3, [sp, #12]
mov r3, r5
b .L1212
.L1202:
ldr lr, [sp, #4]
add r1, ip, r3
asr r1, lr, r1
tst r1, #1
bne .L1201
ldr r0, [sp, #8]
add r1, sp, #80
add lr, r1, r5, lsl #2
and r1, r3, r10
add r5, r5, #1
add r1, r1, r0
ldr r0, [sp, #12]
mul r1, r0, r1
str r1, [lr, #-64]
.L1201:
add r3, r3, #1
.L1212:
cmp r3, r2
blt .L1202
cmp r2, #4
bne .L1203
uxtb r3, r7
mov r10, #0
str r3, [sp, #8]
uxtb r3, r6
.L1204:
cmp r10, r5
bne .L1205
.L1206:
add r6, r6, #1
b .L1200
.L1205:
add r2, sp, #16
mov r0, r3
ldr r2, [r2, r10, lsl #2]
add r10, r10, #1
ldr r1, [sp, #8]
str r3, [sp, #12]
bl flash_erase_block_en
ldr r3, [sp, #12]
b .L1204
.L1203:
cmp r5, #2
bne .L1207
ldrb r3, [r9, #-3126] @ zero_extendqisi2
uxtb r5, r6
cmp r3, #0
beq .L1208
ldrb r3, [r9, #-3125] @ zero_extendqisi2
cmp r3, #0
bne .L1208
clz r1, r7
ldr r3, [sp, #20]
ldr r2, [sp, #16]
lsr r1, r1, #5
mov r0, r5
bl flash_erase_duplane_block
.L1208:
ldr r3, [sp, #20]
uxtb r1, r7
ldr r2, [sp, #16]
mov r0, r5
bl flash_erase_duplane_block
b .L1206
.L1207:
cmp r5, #1
bne .L1206
ldrb r3, [r9, #-3126] @ zero_extendqisi2
uxtb r5, r6
cmp r3, #0
beq .L1210
ldrb r3, [r9, #-3125] @ zero_extendqisi2
cmp r3, #0
bne .L1210
clz r1, r7
ldr r2, [sp, #16]
lsr r1, r1, #5
mov r0, r5
bl flash_erase_block_en
.L1210:
ldr r2, [sp, #16]
uxtb r1, r7
mov r0, r5
bl flash_erase_block_en
b .L1206
.L1211:
cmp r7, #0
bne .L1213
ldr r2, [r4, #1084]
ldrh r3, [r2, fp]
add r1, r3, #1
bfi r3, r1, #0, #11
strh r3, [r2, fp] @ movhi
ldr r3, [r4, #2800]
ldr r2, [r3, #84]
ldrh r0, [r3, #96]
add r2, r2, #1
str r2, [r3, #84]
ldr r2, [r4, #1084]
ldrh r2, [r2, fp]
ubfx r2, r2, #0, #11
uxth r1, r2
cmp r0, r1
strhlt r2, [r3, #96] @ movhi
.L1215:
mov r0, #0
add sp, sp, #84
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1213:
ldr r1, [r4, #1084]
ldr r3, [r1, r8, lsl #2]
ubfx r2, r3, #11, #8
add r2, r2, #1
bfi r3, r2, #11, #8
str r3, [r1, r8, lsl #2]
ldr r3, [r4, #2800]
ldr r2, [r3, #80]
ldrh r1, [r3, #98]
add r2, r2, #1
str r2, [r3, #80]
ldr r2, [r4, #1084]
ldr r2, [r2, r8, lsl #2]
ubfx r2, r2, #11, #8
cmp r1, r2
strhcc r2, [r3, #98] @ movhi
b .L1215
.L1225:
.align 2
.L1224:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3074
.fnend
.size ftl_erase_sblk, .-ftl_erase_sblk
.align 2
.global ftl_alloc_sys_blk
.syntax unified
.arm
.fpu softvfp
.type ftl_alloc_sys_blk, %function
ftl_alloc_sys_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1236
push {r4, lr}
.save {r4, lr}
mov r4, r3
ldr r2, [r3, #2800]
ldrh r1, [r2, #136]
cmp r1, #63
movhi r3, #0
strhhi r3, [r2, #136] @ movhi
ldrh r3, [r2, #112]
cmp r3, #0
bne .L1228
movw r2, #1359
ldr r1, .L1236+4
ldr r0, .L1236+8
bl printk
bl dump_stack
.L1228:
ldr r3, [r4, #2800]
movw lr, #65535
mov ip, #0
.L1232:
ldrh r2, [r3, #136]
add r1, r3, r2, lsl #1
add r1, r1, #158
.L1229:
cmp r2, #63
strhgt ip, [r3, #136] @ movhi
bgt .L1232
.L1231:
ldrh r0, [r1, #2]!
cmp r0, lr
addeq r2, r2, #1
beq .L1229
.L1234:
add r1, r3, r2, lsl #1
mvn ip, #0
strh ip, [r1, #160] @ movhi
strh r2, [r3, #136] @ movhi
ldrh r2, [r3, #112]
add r2, r2, ip
strh r2, [r3, #112] @ movhi
pop {r4, pc}
.L1237:
.align 2
.L1236:
.word .LANCHOR0
.word .LANCHOR1+1479
.word .LC0
.fnend
.size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
.align 2
.global ftl_free_sys_blk
.syntax unified
.arm
.fpu softvfp
.type ftl_free_sys_blk, %function
ftl_free_sys_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1247
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
mov r4, r3
ldr r2, [r3, #2800]
ldrh r1, [r2, #138]
cmp r1, #63
movhi r3, #0
strhhi r3, [r2, #138] @ movhi
ldrh r3, [r2, #112]
cmp r3, #63
bls .L1240
movw r2, #1386
ldr r1, .L1247+4
ldr r0, .L1247+8
bl printk
bl dump_stack
.L1240:
ldr r3, [r4, #2800]
movw ip, #65535
mov r0, #0
.L1244:
ldrh r2, [r3, #138]
add r1, r3, r2, lsl #1
add r1, r1, #158
.L1241:
cmp r2, #63
strhgt r0, [r3, #138] @ movhi
bgt .L1244
.L1243:
ldrh lr, [r1, #2]!
cmp lr, ip
bne .L1242
add r1, r3, r2, lsl #1
strh r5, [r1, #160] @ movhi
strh r2, [r3, #138] @ movhi
ldrh r2, [r3, #112]
add r2, r2, #1
strh r2, [r3, #112] @ movhi
pop {r4, r5, r6, pc}
.L1242:
add r2, r2, #1
b .L1241
.L1248:
.align 2
.L1247:
.word .LANCHOR0
.word .LANCHOR1+1497
.word .LC0
.fnend
.size ftl_free_sys_blk, .-ftl_free_sys_blk
.align 2
.global ftl_info_data_recovery
.syntax unified
.arm
.fpu softvfp
.type ftl_info_data_recovery, %function
ftl_info_data_recovery:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movw r3, #65535
ldrh r6, [r0]
cmp r6, r3
popeq {r4, r5, r6, r7, r8, pc}
ldr r4, .L1259
lsl r8, r6, #2
ldr r5, [r4, #1084]
add r7, r5, r8
ldrb r3, [r7, #2] @ zero_extendqisi2
tst r3, #224
popne {r4, r5, r6, r7, r8, pc}
ldrb r2, [r0, #4] @ zero_extendqisi2
mov r0, r6
bfi r3, r2, #5, #3
strb r3, [r7, #2]
bl zftl_remove_free_node
ldrb r3, [r7, #2] @ zero_extendqisi2
ldr r2, [r4, #2800]
tst r3, #8
ldrhne r3, [r2, #116]
subne r3, r3, #1
strhne r3, [r2, #116] @ movhi
bne .L1254
tst r3, #24
ldrheq r3, [r2, #114]
ldrhne r3, [r2, #118]
subeq r3, r3, #1
subne r3, r3, #1
strheq r3, [r2, #114] @ movhi
strhne r3, [r2, #118] @ movhi
.L1254:
ldrb r3, [r7, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #160
bne .L1256
ldr r3, [r5, r6, lsl #2]
ubfx r2, r3, #11, #8
add r2, r2, #1
bfi r3, r2, #11, #8
str r3, [r5, r6, lsl #2]
ldr r2, [r4, #2800]
ldrh r3, [r2, #120]
sub r3, r3, #1
strh r3, [r2, #120] @ movhi
pop {r4, r5, r6, r7, r8, pc}
.L1256:
ldrh r2, [r5, r8]
cmp r3, #64
add r1, r2, #1
bfi r2, r1, #0, #11
strh r2, [r5, r8] @ movhi
bne .L1257
ldr r2, [r4, #2800]
ldrh r3, [r2, #122]
sub r3, r3, #1
strh r3, [r2, #122] @ movhi
pop {r4, r5, r6, r7, r8, pc}
.L1257:
cmp r3, #96
ldreq r2, [r4, #2800]
ldrheq r3, [r2, #124]
subeq r3, r3, #1
strheq r3, [r2, #124] @ movhi
pop {r4, r5, r6, r7, r8, pc}
.L1260:
.align 2
.L1259:
.word .LANCHOR0
.fnend
.size ftl_info_data_recovery, .-ftl_info_data_recovery
.align 2
.global ftl_get_ppa_from_index
.syntax unified
.arm
.fpu softvfp
.type ftl_get_ppa_from_index, %function
ftl_get_ppa_from_index:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1266
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r5, [r3, #1096]
ldr r3, .L1266+4
sub r2, r3, #3088
ldrb r3, [r3, #-3127] @ zero_extendqisi2
ldrh r2, [r2, #-8]
mul r1, r3, r2
cmp r0, r1
smulbbge r3, r3, r2
addlt r5, r5, #16
addge r5, r5, #48
ldrb r6, [r5, #9] @ zero_extendqisi2
subge r4, r0, r3
uxthge r4, r4
mov r1, r6
mov r0, r4
bl __aeabi_idiv
smulbb r6, r0, r6
movw r3, #65535
mov r7, r0
sub r4, r4, r6
uxth r4, r4
add r4, r5, r4, lsl #1
ldrh r4, [r4, #16]
cmp r4, r3
bne .L1264
movw r2, #1945
ldr r1, .L1266+8
ldr r0, .L1266+12
bl printk
bl dump_stack
.L1264:
ldr r3, .L1266+16
ldrh r0, [r3, #-2]
mla r0, r4, r0, r7
pop {r4, r5, r6, r7, r8, pc}
.L1267:
.align 2
.L1266:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR1+1514
.word .LC0
.word .LANCHOR3-3072
.fnend
.size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
.align 2
.global lpa_hash_get_ppa
.syntax unified
.arm
.fpu softvfp
.type lpa_hash_get_ppa, %function
lpa_hash_get_ppa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r2, .L1276
uxtb r3, r0
lsl r3, r3, #1
sub r1, r2, #3056
ldr ip, [r2, #-2552]
sub r1, r1, #14
ldrh r3, [r1, r3]
ldr r1, [r2, #-2556]
movw r2, #65535
cmp r3, r2
bne .L1275
mvn r0, #0
bx lr
.L1270:
lsl r3, r3, #1
ldrh r3, [ip, r3]
cmp r3, r2
bne .L1271
mvn r0, #0
ldr pc, [sp], #4
.L1275:
str lr, [sp, #-4]!
.save {lr}
.L1271:
ldr lr, [r1, r3, lsl #2]
cmp r0, lr
bne .L1270
mov r0, r3
ldr lr, [sp], #4
b ftl_get_ppa_from_index
.L1277:
.align 2
.L1276:
.word .LANCHOR3
.fnend
.size lpa_hash_get_ppa, .-lpa_hash_get_ppa
.align 2
.global ftl_get_new_free_page
.syntax unified
.arm
.fpu softvfp
.type ftl_get_new_free_page, %function
ftl_get_new_free_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
movw r3, #65535
ldrh r2, [r0]
mov r4, r0
cmp r2, r3
bne .L1279
movw r2, #2088
ldr r1, .L1287
ldr r0, .L1287+4
bl printk
bl dump_stack
.L1279:
ldr r3, .L1287+8
ldrh r2, [r4, #2]
ldrh r3, [r3, #-8]
cmp r2, r3
bne .L1280
movw r2, #2089
ldr r1, .L1287
ldr r0, .L1287+4
bl printk
bl dump_stack
.L1280:
ldrh r3, [r4, #6]
cmp r3, #0
bne .L1281
movw r2, #2090
ldr r1, .L1287
ldr r0, .L1287+4
bl printk
bl dump_stack
.L1281:
ldrb r3, [r4, #5] @ zero_extendqisi2
movw r2, #65535
mov r1, #0
add r3, r4, r3, lsl #1
ldrh r0, [r3, #16]
ldr r3, .L1287+12
ldrb ip, [r3, #-3127] @ zero_extendqisi2
.L1282:
cmp r0, r2
ldrb r3, [r4, #5] @ zero_extendqisi2
beq .L1284
ldr r1, .L1287+16
add r3, r3, #1
uxtb r3, r3
ldrh r2, [r4, #2]
ldrh r1, [r1, #-2]
cmp ip, r3
strb r3, [r4, #5]
addeq r3, r2, #1
strheq r3, [r4, #2] @ movhi
moveq r3, #0
strbeq r3, [r4, #5]
mul r0, r0, r1
ldrh r1, [r4, #6]
sub r1, r1, #1
strh r1, [r4, #6] @ movhi
orr r0, r0, r2
ldrh r1, [r4, #10]
add r1, r1, #1
strh r1, [r4, #10] @ movhi
pop {r4, pc}
.L1284:
add r3, r3, #1
uxtb r3, r3
cmp r3, ip
strb r3, [r4, #5]
ldrheq r3, [r4, #2]
strbeq r1, [r4, #5]
addeq r3, r3, #1
strheq r3, [r4, #2] @ movhi
ldrb r3, [r4, #5] @ zero_extendqisi2
add r3, r4, r3, lsl #1
ldrh r0, [r3, #16]
b .L1282
.L1288:
.align 2
.L1287:
.word .LANCHOR1+1537
.word .LC0
.word .LANCHOR3-3088
.word .LANCHOR3
.word .LANCHOR3-3072
.fnend
.size ftl_get_new_free_page, .-ftl_get_new_free_page
.align 2
.global ftl_ext_alloc_new_blk
.syntax unified
.arm
.fpu softvfp
.type ftl_ext_alloc_new_blk, %function
ftl_ext_alloc_new_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
bl ftl_alloc_sys_blk
sub r3, r0, #1
movw r2, #65533
uxth r3, r3
mov r4, r0
cmp r3, r2
bls .L1290
movw r2, #2125
ldr r1, .L1292
ldr r0, .L1292+4
bl printk
bl dump_stack
.L1290:
ldr r5, .L1292+8
mov r1, #0
mov r0, r4
bl ftl_erase_phy_blk
ldr r3, [r5, #2800]
ldrh r0, [r3, #130]
bl ftl_free_sys_blk
ldr r3, [r5, #2800]
mov r0, #0
strh r4, [r3, #130] @ movhi
strh r0, [r3, #140] @ movhi
pop {r4, r5, r6, pc}
.L1293:
.align 2
.L1292:
.word .LANCHOR1+1559
.word .LC0
.word .LANCHOR0
.fnend
.size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
.align 2
.global ftl_total_vpn_update
.syntax unified
.arm
.fpu softvfp
.type ftl_total_vpn_update, %function
ftl_total_vpn_update:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r2, .L1308
ldrh r3, [r2, #-4]
cmp r3, #4
cmpls r0, #0
bne .L1295
add r3, r3, #1
strh r3, [r2, #-4] @ movhi
bx lr
.L1295:
ldr r3, .L1308+4
mov r0, #0
movw ip, #1080
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
strh r0, [r2, #-4] @ movhi
movw r6, #65535
ldrh lr, [r3, ip]
mov ip, r0
ldr r2, [r3, #1084]
ldr r1, [r3, #1092]
add lr, r2, lr, lsl #2
sub r1, r1, #2
.L1297:
cmp r2, lr
bne .L1300
ldr r4, [r3, #1096]
ldr r3, [r3, #2800]
str ip, [r4, #524]
str r0, [r4, #528]
ldrh r1, [r3, #120]
cmp r1, #0
popeq {r4, r5, r6, pc}
bl __aeabi_uidiv
str r0, [r4, #532]
pop {r4, r5, r6, pc}
.L1300:
ldrh r4, [r1, #2]!
cmp r4, r6
beq .L1298
ldrb r5, [r2, #2] @ zero_extendqisi2
and r5, r5, #224
cmp r5, #160
addeq r0, r0, r4
addne ip, ip, r4
.L1298:
add r2, r2, #4
b .L1297
.L1309:
.align 2
.L1308:
.word .LANCHOR3-2544
.word .LANCHOR0
.fnend
.size ftl_total_vpn_update, .-ftl_total_vpn_update
.align 2
.global ftl_debug_info_fill
.syntax unified
.arm
.fpu softvfp
.type ftl_debug_info_fill, %function
ftl_debug_info_fill:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1317
ldrb r3, [r3, #-2546] @ zero_extendqisi2
cmp r3, #8
bls .L1314
sub r3, r0, #2
cmp r2, #0
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
streq r3, [r1]
streq r3, [r1, #4]
beq .L1314
ldr r3, .L1317+4
mov r0, r2
push {r4, lr}
.save {r4, lr}
mov r4, r1
str r3, [r1]
mov r1, #1024
bl js_hash
str r0, [r4, #4]
mov r0, #0
pop {r4, pc}
.L1314:
mov r0, #0
bx lr
.L1318:
.align 2
.L1317:
.word .LANCHOR3
.word 1212240712
.fnend
.size ftl_debug_info_fill, .-ftl_debug_info_fill
.align 2
.global ftl_vpn_update
.syntax unified
.arm
.fpu softvfp
.type ftl_vpn_update, %function
ftl_vpn_update:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r4, r0
bl zftl_list_update_data_list
lsl r4, r4, #1
ldr r3, .L1323
ldr r2, [r3, #1092]
ldrh r2, [r2, r4]
cmp r2, #0
moveq r0, #1
movne r0, #0
streq r0, [r3, #2812]
pop {r4, pc}
.L1324:
.align 2
.L1323:
.word .LANCHOR0
.fnend
.size ftl_vpn_update, .-ftl_vpn_update
.align 2
.global ftl_vpn_decrement
.syntax unified
.arm
.fpu softvfp
.type ftl_vpn_decrement, %function
ftl_vpn_decrement:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
movw r3, #65535
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
cmp r0, r3
mov r5, r0
beq .L1326
ldr r1, .L1335
lsl r3, r0, #1
ldr r2, [r1, #1092]
ldrh r4, [r2, r3]
cmp r4, #0
subne r4, r4, #1
strhne r4, [r2, r3] @ movhi
bne .L1326
ldr r3, [r1, #1084]
mov r2, r4
mov r1, r0
add r3, r3, r0, lsl #2
ldr r0, .L1335+4
ldrb r3, [r3, #2] @ zero_extendqisi2
lsr r3, r3, #5
bl printk
.L1332:
mov r0, #0
pop {r4, r5, r6, pc}
.L1326:
ldr r3, .L1335+8
ldrh r0, [r3, #-4]
mov r4, r3
cmp r5, r0
beq .L1332
movw r2, #65535
cmp r0, r2
strheq r5, [r3, #-4] @ movhi
beq .L1332
bl ftl_vpn_update
add r3, r4, #608
adds r0, r0, #0
ldrh r2, [r3]
movne r0, #1
add r2, r2, #1
uxth r2, r2
cmp r2, #7
movhi r2, #0
strh r2, [r3] @ movhi
ldrh r3, [r3]
ldrh r2, [r4, #-4]
strh r5, [r4, #-4] @ movhi
add r3, r4, r3, lsl #1
strh r2, [r3, #-2] @ movhi
pop {r4, r5, r6, pc}
.L1336:
.align 2
.L1335:
.word .LANCHOR0
.word .LC106
.word .LANCHOR3-3152
.fnend
.size ftl_vpn_decrement, .-ftl_vpn_decrement
.align 2
.global lpa_hash_update_ppa
.syntax unified
.arm
.fpu softvfp
.type lpa_hash_update_ppa, %function
lpa_hash_update_ppa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1349
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
uxtb r7, r0
movw r8, #65535
sub lr, r3, #3056
lsl r7, r7, #1
sub ip, lr, #14
ldr r6, [r3, #-2556]
ldrh ip, [ip, r7]
mov r5, r8
ldr r9, [r3, #-2552]
.L1338:
cmp ip, r5
beq .L1342
ldr r4, [r6, ip, lsl #2]
add r10, r6, ip, lsl #2
cmp r0, r4
lsl r4, ip, #1
bne .L1339
mvn ip, #0
cmp r8, r5
str ip, [r10]
lslne r8, r8, #1
ldr ip, [r3, #-2552]
ldrh r5, [ip, r4]
subeq ip, lr, #14
strheq r5, [ip, r7] @ movhi
strhne r5, [ip, r8] @ movhi
mvn r5, #0
ldr ip, [r3, #-2552]
strh r5, [ip, r4] @ movhi
.L1342:
ldr ip, [r3, #-2556]
cmn r1, #1
str r0, [ip, r2, lsl #2]
sub ip, lr, #14
ldrh lr, [ip, r7]
ldr r0, [r3, #-2552]
strh r2, [ip, r7] @ movhi
lsl r2, r2, #1
strh lr, [r0, r2] @ movhi
beq .L1344
ldr r0, .L1349+4
ldr r2, .L1349+8
ldrb ip, [r0, #1153] @ zero_extendqisi2
mvn r0, #0
ldrh r2, [r2, #-2]
rsb ip, ip, #24
sub ip, ip, r2
lsr r2, r1, r2
ldrb r1, [r3, #-3136] @ zero_extendqisi2
bic r0, r2, r0, lsl ip
bl __aeabi_uidiv
uxth r0, r0
bl ftl_vpn_decrement
.L1344:
mvn r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L1339:
mov r8, ip
ldrh ip, [r9, r4]
b .L1338
.L1350:
.align 2
.L1349:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR3-3136
.fnend
.size lpa_hash_update_ppa, .-lpa_hash_update_ppa
.align 2
.global ftl_mask_bad_block
.syntax unified
.arm
.fpu softvfp
.type ftl_mask_bad_block, %function
ftl_mask_bad_block:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r3, #1
ldr r7, .L1359
ldr ip, .L1359+4
ldrb r4, [r7, #1153] @ zero_extendqisi2
ldrb r5, [ip, #-3136]! @ zero_extendqisi2
rsb r1, r4, #24
lsl r4, r3, r4
sub r4, r4, #1
and r4, r4, r0, lsr r1
uxtb r4, r4
smulbb r2, r4, r5
uxtb r9, r2
ldrh r2, [ip, #-2]
sub r1, r1, r2
lsl r3, r3, r1
mov r1, r5
sub r3, r3, #1
and r0, r3, r0, lsr r2
uxth r10, r0
bl __aeabi_uidiv
ldr r3, .L1359+8
cmp r5, #1
subhi r2, r5, #1
mov r6, r0
andhi r2, r2, r10
uxth r8, r0
ldr r3, [r3]
addhi r2, r9, r2
uxtbhi r9, r2
tst r3, #16384
beq .L1353
uxth r3, r0
str r10, [sp]
mov r2, r9
ldr r0, .L1359+12
mov r1, r4
bl printk
.L1353:
movw r3, #1080
ldrh r3, [r7, r3]
cmp r3, r8
bls .L1351
ldr r3, [r7, #1084]
uxth r6, r6
add r6, r3, r6, lsl #2
mov r3, #1
ldrb r2, [r6, #3] @ zero_extendqisi2
orr r2, r2, r3, lsl r9
strb r2, [r6, #3]
.L1351:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L1360:
.align 2
.L1359:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR2
.word .LC107
.fnend
.size ftl_mask_bad_block, .-ftl_mask_bad_block
.align 2
.global gc_free_bad_sblk
.syntax unified
.arm
.fpu softvfp
.type gc_free_bad_sblk, %function
gc_free_bad_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r6, .L1382
ldr r3, [r6, #916]
cmp r3, #0
beq .L1378
ldr r8, .L1382+4
mov r7, #0
str r0, [sp, #4]
.L1363:
ldrb r2, [r8, #-3127] @ zero_extendqisi2
uxth r3, r7
cmp r2, r3
bhi .L1373
.L1378:
mov r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1373:
ldrb r9, [r8, #-3136] @ zero_extendqisi2
uxth r0, r7
ldr r10, .L1382+8
ldr fp, .L1382+12
mov r1, r9
bl __aeabi_idiv
ldrb r3, [r10, #1153] @ zero_extendqisi2
uxth r5, r9
ldrh r2, [sp, #4]
cmp r9, #1
ldrh r4, [fp], #2
mov r9, #0
rsb r3, r3, #24
str r10, [sp]
ldr r10, .L1382+16
sub r3, r3, r4
smulbb r4, r2, r5
subhi r5, r5, #1
andhi r5, r5, r7
add r4, r4, r0, lsl r3
uxth r4, r4
addhi r4, r4, r5
uxthhi r4, r4
.L1365:
ldr r1, [r6, #916]
uxth r5, r9
mov r3, r5
cmp r1, r5
addls r7, r7, #1
bls .L1363
.L1372:
add r3, r3, #1088
add r3, r3, #8
lsl r3, r3, #1
ldrh r3, [r10, r3]
cmp r3, r4
bne .L1366
mov r1, r4
ldr r0, .L1382+20
bl printk
ldrb r3, [r8, #-2542] @ zero_extendqisi2
cmp r3, #0
bne .L1367
ldrb r3, [r8, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L1368
.L1367:
ldr r3, [sp]
ldr r2, .L1382+24
ldr r3, [r3, #2800]
ldr r3, [r3, #156]
cmp r3, r2
beq .L1369
.L1368:
ldrh r0, [fp, #-2]
lsl r0, r4, r0
bl ftl_mask_bad_block
.L1369:
ldr r3, [r6, #916]
movw r0, #1097
movw ip, #1096
.L1370:
cmp r5, r3
bcc .L1371
sub r3, r3, #1
str r3, [r6, #916]
.L1366:
add r9, r9, #1
b .L1365
.L1371:
add r1, r5, r0
lsl r1, r1, #1
ldrh lr, [r10, r1]
add r1, r5, ip
lsl r1, r1, #1
add r5, r5, #1
uxth r5, r5
strh lr, [r10, r1] @ movhi
b .L1370
.L1383:
.align 2
.L1382:
.word .LANCHOR0+4096
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR3-3138
.word .LANCHOR0+2824
.word .LC108
.word 1145785929
.fnend
.size gc_free_bad_sblk, .-gc_free_bad_sblk
.align 2
.global ftl_free_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_free_sblk, %function
ftl_free_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
lsl r10, r0, #2
ldr r5, .L1407
.pad #20
sub sp, sp, #20
mov r7, r0
ldr r6, [r5, #1084]
add r8, r6, r10
ldrb r4, [r8, #2] @ zero_extendqisi2
tst r4, #8
lsr r3, r4, #5
str r3, [sp, #4]
beq .L1385
ldr r1, [r5, #2800]
ldrh r3, [r6, r10]
ldr fp, [r6, r0, lsl #2]
ldrh r2, [r1, #74]
ubfx r3, r3, #0, #11
str r3, [sp, #12]
ubfx fp, fp, #11, #8
add r2, r3, r2
uxth r3, r2
ldrh r2, [r1, #72]
add r1, r5, #1088
ldrh r9, [r1]
mov r0, r3
add r2, r2, fp
str r3, [sp]
uxth r2, r2
mov r1, r9
str r2, [sp, #8]
bl __aeabi_uidiv
ldr ip, .L1407+4
ldr r2, [sp, #8]
ldr r3, [sp, #12]
ldrh r1, [ip, #-12]
uxtah r0, r2, r0
cmp r0, r1
ble .L1386
movw r2, #2794
ldrh r0, [r5, r2]
movw r2, #2786
ldrh r2, [r5, r2]
add r0, r0, r2
sub r2, ip, #560
ldrh r1, [r2, #-2]
add r1, r1, #8
cmp r0, r1
bge .L1387
.L1392:
mov r2, #2
bfi r4, r2, #3, #2
b .L1403
.L1387:
movw r1, #2790
add r0, r5, #2784
ldrh r0, [r0]
ldrh r1, [r5, r1]
ldrh r2, [r2, #-4]
add r1, r1, r0
movw r0, #2792
ldrh r0, [r5, r0]
add r2, r2, #8
add r1, r1, r0
cmp r1, r2
.L1406:
bge .L1392
b .L1404
.L1386:
ldr r1, [sp]
mla r2, r2, r9, r1
ldrh r1, [ip, #-10]
cmp r2, r1
ble .L1388
movw r2, #2790
ldrh r1, [r5, r2]
add r2, r5, #2784
ldrh r2, [r2]
add r1, r1, r2
movw r2, #2792
ldrh r2, [r5, r2]
add r1, r1, r2
sub r2, ip, #560
ldrh r0, [r2, #-4]
add ip, r0, #8
cmp r1, ip
bge .L1390
.L1404:
bfc r4, #3, #2
.L1403:
strb r4, [r8, #2]
.L1388:
ldrb r2, [r8, #2] @ zero_extendqisi2
ands r2, r2, #24
bne .L1393
mul r9, r9, fp
ldrh r2, [r6, r10]
lsr fp, fp, #3
add r9, r9, r9, lsl #1
add r3, r3, r9, asr #2
bfi r2, r3, #0, #11
strh r2, [r6, r10] @ movhi
ldr r3, [r6, r7, lsl #2]
bfi r3, fp, #11, #8
str r3, [r6, r7, lsl #2]
.L1394:
mov r0, r7
bl zftl_remove_data_node
ldr r3, .L1407
mov r0, #0
ldr r2, [r3, #1084]
mov r4, r3
add r10, r2, r10
ldrb r2, [r10, #2] @ zero_extendqisi2
bfc r2, #5, #3
strb r2, [r10, #2]
lsl r2, r7, #1
ldr r1, [r3, #1092]
strh r0, [r1, r2] @ movhi
ldr r2, [sp, #4]
add r2, r2, #6
and r2, r2, #7
cmp r2, #4
bhi .L1397
mov r0, r7
bl gc_free_bad_sblk
.L1397:
ldrb r3, [r8, #2] @ zero_extendqisi2
tst r3, #8
beq .L1398
ldr r3, [r4, #1096]
movw r2, #586
ldrh r1, [r3, r2]
cmp r1, r7
bne .L1398
mvn r1, #0
strh r1, [r3, r2] @ movhi
movw r2, #590
ldrh r0, [r3, r2]
movw r1, #65535
cmp r0, r1
bne .L1398
strh r7, [r3, r2] @ movhi
mov r1, r7
ldr r0, .L1407+8
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b printk
.L1390:
movw ip, #2794
movw lr, #2786
ldrh ip, [r5, ip]
ldrh lr, [r5, lr]
ldrh r2, [r2, #-2]
add ip, ip, lr
add r2, r2, #8
cmp ip, r2
blt .L1392
add r0, r0, #24
cmp r1, r0
b .L1406
.L1393:
cmp r2, #16
bne .L1394
mov r0, r3
mov r1, r9
str r3, [sp]
bl __aeabi_idiv
add r0, r0, r0, lsl #1
ldr r2, [r6, r7, lsl #2]
add fp, fp, r0, asr #2
bfi r2, fp, #11, #8
str r2, [r6, r7, lsl #2]
ldr r3, [sp]
ldrh r2, [r6, r10]
asr r3, r3, #5
bfi r2, r3, #0, #11
strh r2, [r6, r10] @ movhi
b .L1394
.L1385:
tst r4, #24
bne .L1394
movw r3, #2788
ldrh r3, [r5, r3]
cmp r3, #0
bne .L1394
movw r3, #2786
ldrh r0, [r5, r3]
cmp r0, #15
bhi .L1394
movw r3, #2790
add r2, r5, #2784
ldrh r2, [r2]
ldrh r3, [r5, r3]
ldr ip, .L1407+12
add r3, r3, r2
movw r2, #2792
ldrh r2, [r5, r2]
ldrh r1, [ip, #-4]
add r3, r3, r2
add r1, r1, #16
cmp r3, r1
ble .L1394
movw r3, #2794
ldrh r2, [r5, r3]
ldrh r3, [ip, #-2]
add r2, r2, r0
add r3, r3, #8
cmp r2, r3
bge .L1394
mov r3, #2
add r5, r5, #1088
bfi r4, r3, #3, #2
ldrh r1, [r5]
strb r4, [r8, #2]
ldrh r4, [r6, r10]
ubfx r4, r4, #0, #11
mov r0, r4
asr r4, r4, #5
bl __aeabi_idiv
ldr r3, [r6, r7, lsl #2]
add r0, r0, r0, lsl #1
ubfx r2, r3, #11, #8
add r0, r2, r0, asr #2
bfi r3, r0, #11, #8
str r3, [r6, r7, lsl #2]
ldrh r3, [r6, r10]
bfi r3, r4, #0, #11
strh r3, [r6, r10] @ movhi
b .L1394
.L1398:
mov r0, r7
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b zftl_insert_free_list
.L1408:
.align 2
.L1407:
.word .LANCHOR0
.word .LANCHOR3-2528
.word .LC109
.word .LANCHOR3-3088
.fnend
.size ftl_free_sblk, .-ftl_free_sblk
.align 2
.global gc_free_src_blk
.syntax unified
.arm
.fpu softvfp
.type gc_free_src_blk, %function
gc_free_src_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r5, #0
ldr r8, .L1447
ldr r7, .L1447+4
mov r6, r8
.L1410:
ldrh r2, [r7, #52]
uxth r3, r5
cmp r2, r3
bhi .L1424
mov r3, #0
strh r3, [r7, #52] @ movhi
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L1424:
uxth r3, r5
add r3, r7, r3, lsl #1
ldrh r4, [r3, #54]
ldr r3, [r8, #1092]
lsl r9, r4, #1
ldrh r2, [r3, r9]
cmp r2, #0
beq .L1411
mov r1, r4
ldr r0, .L1447+8
bl printk
.L1411:
ldr r3, [r6, #1092]
mov r2, #0
strh r2, [r3, r9] @ movhi
ldr r3, [r6, #1092]
ldrh r3, [r3, r9]
cmp r3, r2
bne .L1412
ldr r3, .L1447+12
ldr r9, [r6, #1084]
ldr r3, [r3]
add r9, r9, r4, lsl #2
tst r3, #256
beq .L1413
ldrb r2, [r9, #2] @ zero_extendqisi2
mov r1, r4
ldr r0, .L1447+16
lsr r2, r2, #5
bl printk
.L1413:
ldrb r3, [r9, #2] @ zero_extendqisi2
and r2, r3, #224
and r3, r3, #192
cmp r3, #0
cmpne r2, #224
bne .L1414
movw r2, #1363
ldr r1, .L1447+20
ldr r0, .L1447+24
bl printk
bl dump_stack
.L1414:
mov r0, r4
bl ftl_free_sblk
ldr r3, [r6, #1096]
ldrh r1, [r3, #124]
cmp r1, #0
beq .L1415
add r0, r3, #392
mov r2, #0
.L1417:
ldrh ip, [r0], #2
cmp r4, ip
bne .L1416
add r2, r2, #196
mvn r0, #0
lsl r2, r2, #1
add r1, r1, r0
strh r0, [r3, r2] @ movhi
strh r1, [r3, #124] @ movhi
.L1415:
ldrh r1, [r3, #120]
cmp r1, #0
beq .L1418
add r0, r3, #136
mov r2, #0
.L1420:
ldrh ip, [r0], #2
cmp r4, ip
bne .L1419
mvn r0, #0
add r2, r3, r2, lsl #1
add r1, r1, r0
strh r0, [r2, #136] @ movhi
strh r1, [r3, #120] @ movhi
.L1418:
ldrh r1, [r3, #122]
cmp r1, #0
beq .L1421
add r0, r3, #264
mov r2, #0
.L1423:
ldrh ip, [r0], #2
cmp r4, ip
bne .L1422
add r2, r2, #132
mvn r0, #0
lsl r2, r2, #1
add r1, r1, r0
strh r0, [r3, r2] @ movhi
strh r1, [r3, #122] @ movhi
.L1421:
add r5, r5, #1
b .L1410
.L1416:
add r2, r2, #1
cmp r2, #64
bne .L1417
b .L1415
.L1419:
add r2, r2, #1
cmp r2, #64
bne .L1420
b .L1418
.L1422:
add r2, r2, #1
cmp r2, #64
bne .L1423
b .L1421
.L1412:
mov r1, #1
mov r0, r4
bl gc_add_sblk
b .L1421
.L1448:
.align 2
.L1447:
.word .LANCHOR0
.word .LANCHOR0+2824
.word .LC110
.word .LANCHOR2
.word .LC111
.word .LANCHOR1+1581
.word .LC0
.fnend
.size gc_free_src_blk, .-gc_free_src_blk
.align 2
.global print_ftl_debug_info
.syntax unified
.arm
.fpu softvfp
.type print_ftl_debug_info, %function
print_ftl_debug_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
.pad #32
sub sp, sp, #32
ldr r4, .L1451
ldr r1, [r4, #2800]
add r3, r4, #2784
ldr r0, [r4, #1096]
ldr ip, [r4, #2780]
ldrh r2, [r1, #146]
ldrh r3, [r3]
ldrh r1, [r1, #148]
str ip, [sp, #28]
ldr ip, [r0, #528]
str ip, [sp, #24]
ldr r0, [r0, #524]
str r0, [sp, #20]
movw r0, #2794
ldrh r0, [r4, r0]
str r0, [sp, #16]
movw r0, #2792
ldrh r0, [r4, r0]
str r0, [sp, #12]
movw r0, #2790
ldrh r0, [r4, r0]
str r0, [sp, #8]
movw r0, #2788
ldrh r0, [r4, r0]
str r0, [sp, #4]
movw r0, #2786
ldrh r0, [r4, r0]
str r0, [sp]
ldr r0, .L1451+4
bl printk
ldr r1, [r4, #2800]
ldrb r3, [r4, #2797] @ zero_extendqisi2
ldr r0, .L1451+8
ldr r2, [r1, #64]
str r2, [sp, #4]
ldr r2, [r1, #8]
str r2, [sp]
ldr r2, [r1, #28]
ldr r1, [r1, #20]
bl printk
ldr r1, [r4, #2800]
ldr r0, .L1451+12
ldr r3, [r1, #16]
ldr r2, [r1, #60]
ldr r1, [r1, #52]
lsr r3, r3, #11
bl printk
ldr r2, [r4, #2800]
ldrh r0, [r2, #98]
ldrh r3, [r2, #88]
ldrh r1, [r2, #74]
str r0, [sp, #24]
ldrh r0, [r2, #94]
str r0, [sp, #20]
ldrh r0, [r2, #90]
str r0, [sp, #16]
ldr r0, [r2, #80]
str r0, [sp, #12]
ldrh r0, [r2, #72]
str r0, [sp, #8]
ldrh r0, [r2, #96]
str r0, [sp, #4]
ldrh r0, [r2, #92]
str r0, [sp]
ldr r0, .L1451+16
ldr r2, [r2, #84]
bl printk
movw r0, #2804
movw r3, #2818
ldrh r0, [r4, r0]
movw r2, #2806
movw r1, #2808
ldrh r3, [r4, r3]
ldrh r2, [r4, r2]
str r0, [sp, #4]
add r0, r4, #2816
ldrh r0, [r0]
ldrh r1, [r4, r1]
str r0, [sp]
ldr r0, .L1451+20
bl printk
ldr ip, [r4, #2800]
movw r2, #586
ldr r0, [r4, #1096]
ldrh lr, [ip, #150]
add r3, r0, #588
add r1, r0, #584
ldrh r2, [r0, r2]
ldrh r3, [r3]
ldrh r1, [r1]
str lr, [sp, #8]
ldr ip, [ip, #156]
str ip, [sp, #4]
movw ip, #590
ldrh r0, [r0, ip]
str r0, [sp]
ldr r0, .L1451+24
bl printk
add sp, sp, #32
@ sp needed
pop {r4, pc}
.L1452:
.align 2
.L1451:
.word .LANCHOR0
.word .LC112
.word .LC113
.word .LC114
.word .LC115
.word .LC116
.word .LC117
.fnend
.size print_ftl_debug_info, .-print_ftl_debug_info
.align 2
.global ftl_write_buf
.syntax unified
.arm
.fpu softvfp
.type ftl_write_buf, %function
ftl_write_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
subs r4, r0, #0
bne .L1454
movw r2, #811
ldr r1, .L1464
ldr r0, .L1464+4
bl printk
bl dump_stack
bl print_ftl_debug_info
mvn r0, #0
pop {r4, r5, r6, pc}
.L1457:
mov r1, r4
ldr r0, .L1464+8
bl buf_add_tail
ldr r3, [r6, #2800]
ldrb r1, [r4, #40] @ zero_extendqisi2
ldrb r0, [r6, #2796] @ zero_extendqisi2
ldr r2, [r3, #16]
add r0, r0, #1
add r2, r2, r1
uxtb r0, r0
str r2, [r3, #16]
ldr r2, [r3, #32]
strb r0, [r6, #2796]
add r2, r2, #1
str r2, [r3, #32]
pop {r4, r5, r6, pc}
.L1454:
ldr r3, .L1464+12
ldrb r1, [r4, #40] @ zero_extendqisi2
ldrb r2, [r3, #-2546] @ zero_extendqisi2
mov r5, r3
cmp r1, r2
bls .L1459
movw r2, #818
ldr r1, .L1464
ldr r0, .L1464+4
bl printk
bl dump_stack
.L1459:
ldrb r3, [r4, #40] @ zero_extendqisi2
ldr r6, .L1464+16
cmp r3, #0
beq .L1456
ldrb r2, [r5, #-2546] @ zero_extendqisi2
cmp r2, r3
bcs .L1457
.L1456:
mov r0, r4
bl zbuf_free
ldrb r0, [r6, #2796] @ zero_extendqisi2
pop {r4, r5, r6, pc}
.L1465:
.align 2
.L1464:
.word .LANCHOR1+1597
.word .LC0
.word .LANCHOR0+2820
.word .LANCHOR3
.word .LANCHOR0
.fnend
.size ftl_write_buf, .-ftl_write_buf
.align 2
.global ftl_write_completed
.syntax unified
.arm
.fpu softvfp
.type ftl_write_completed, %function
ftl_write_completed:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r10, #0
ldr r8, .L1483
ldr r9, .L1483+4
mov r6, r8
.L1467:
ldrb r5, [r8, #2773] @ zero_extendqisi2
cmp r5, #255
bne .L1478
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L1478:
mov r2, #48
ldr r3, .L1483+8
mul r2, r2, r5
add r7, r5, r5, lsl #1
add r7, r3, r7, lsl #4
add r4, r8, r2
ldrb r1, [r4, #1232] @ zero_extendqisi2
strb r1, [r8, #2773]
ldr r1, [r4, #1268]
cmn r1, #1
bne .L1468
ldr r1, .L1483+12
ldrb r3, [r1, #-2542] @ zero_extendqisi2
cmp r3, #0
bne .L1469
ldrb r3, [r1, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L1470
.L1469:
ldr r3, [r6, #2800]
ldr r3, [r3, #156]
cmp r3, r9
beq .L1471
.L1470:
mov r10, #48
ldr r3, .L1483+16
mla r10, r10, r5, r6
ldrb r1, [r1, #-3136] @ zero_extendqisi2
ldrh r0, [r3]
ldrb r3, [r6, #1153] @ zero_extendqisi2
ldr r2, [r10, #1256]
rsb r3, r3, #24
sub r3, r3, r0
lsr r2, r2, r0
mvn r0, #0
bic r0, r2, r0, lsl r3
bl __aeabi_uidiv
ldr r3, [r6, #1096]
uxth r4, r0
movw r2, #65535
ldr r0, .L1483+20
ldr r1, [r3, #560]
cmp r1, r2
mov r1, r4
streq r4, [r3, #560]
ldreq r2, [r10, #1256]
streq r2, [r3, #564]
mov r3, #48
mla r5, r3, r5, r6
ldr r3, [r5, #1256]
ldr r2, [r5, #1252]
bl printk
ldr r3, [r6, #1096]
ldr r2, [r3, #556]
add r2, r2, #1
str r2, [r3, #556]
ldrh r2, [r3, #16]
cmp r2, r4
moveq r2, #0
strheq r2, [r3, #22] @ movhi
beq .L1471
ldrh r2, [r3, #48]
cmp r2, r4
moveq r2, #0
strheq r2, [r3, #54] @ movhi
.L1471:
mov r0, r7
mov r10, #1
bl ftl_write_buf
b .L1467
.L1468:
cmp r10, #1
bne .L1476
ldr r2, [r4, #1256]
ldr r1, [r4, #1252]
ldr r0, .L1483+24
bl printk
mov r0, r7
bl ftl_write_buf
b .L1467
.L1476:
add r3, r3, r2
ldr r1, [r4, #1260]
ldrh r2, [r3, #32]
ldr r0, [r4, #1252]
bl lpa_hash_update_ppa
ldrb r3, [r4, #1234] @ zero_extendqisi2
tst r3, #4
bicne r3, r3, #2
strbne r3, [r4, #1234]
bne .L1467
mov r0, r7
bl zbuf_free
b .L1467
.L1484:
.align 2
.L1483:
.word .LANCHOR0
.word 1145785929
.word .LANCHOR0+1232
.word .LANCHOR3
.word .LANCHOR3-3138
.word .LC118
.word .LC119
.fnend
.size ftl_write_completed, .-ftl_write_completed
.align 2
.global zftl_add_read_buf
.syntax unified
.arm
.fpu softvfp
.type zftl_add_read_buf, %function
zftl_add_read_buf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
subs r5, r0, #0
bne .L1486
movw r2, #1151
ldr r1, .L1491
ldr r0, .L1491+4
bl printk
bl dump_stack
pop {r4, r5, r6, lr}
b print_ftl_debug_info
.L1486:
ldr r4, .L1491+8
ldrb r2, [r5, #40] @ zero_extendqisi2
ldrb r3, [r4, #-2546] @ zero_extendqisi2
cmp r2, r3
bls .L1488
movw r2, #1158
ldr r1, .L1491
ldr r0, .L1491+4
bl printk
bl dump_stack
.L1488:
mov r1, r5
ldr r0, .L1491+12
bl buf_add_tail
ldrb r3, [r4, #-2535] @ zero_extendqisi2
add r3, r3, #1
strb r3, [r4, #-2535]
pop {r4, r5, r6, pc}
.L1492:
.align 2
.L1491:
.word .LANCHOR1+1611
.word .LC0
.word .LANCHOR3
.word .LANCHOR3-2536
.fnend
.size zftl_add_read_buf, .-zftl_add_read_buf
.align 2
.global sblk_init
.syntax unified
.arm
.fpu softvfp
.type sblk_init, %function
sblk_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1494
mvn r2, #0
mov r0, #0
strb r2, [r3, #2770]
strb r2, [r3, #2773]
strb r2, [r3, #2771]
strb r2, [r3, #2772]
bx lr
.L1495:
.align 2
.L1494:
.word .LANCHOR0
.fnend
.size sblk_init, .-sblk_init
.align 2
.global dump_sblk_queue
.syntax unified
.arm
.fpu softvfp
.type dump_sblk_queue, %function
dump_sblk_queue:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r5, .L1506
ldr r0, .L1506+4
ldrb r1, [r5, #2770] @ zero_extendqisi2
bl printk
ldrb r4, [r5, #2770] @ zero_extendqisi2
cmp r4, #255
popeq {r4, r5, r6, pc}
add r4, r4, r4, lsl #1
add r5, r5, #1232
ldr r6, .L1506+8
add r4, r5, r4, lsl #4
.L1498:
ldr r3, [r4, #24]
mov r0, r6
ldrb r2, [r4, #42] @ zero_extendqisi2
ldrb r1, [r4, #1] @ zero_extendqisi2
bl printk
ldrb r4, [r4] @ zero_extendqisi2
cmp r4, #255
popeq {r4, r5, r6, pc}
add r4, r4, r4, lsl #1
add r4, r5, r4, lsl #4
b .L1498
.L1507:
.align 2
.L1506:
.word .LANCHOR0
.word .LC120
.word .LC121
.fnend
.size dump_sblk_queue, .-dump_sblk_queue
.align 2
.global queue_lun_state
.syntax unified
.arm
.fpu softvfp
.type queue_lun_state, %function
queue_lun_state:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr lr, .L1520
ldrb ip, [lr, #2770] @ zero_extendqisi2
cmp ip, #255
beq .L1516
ldrb r3, [lr, #1153] @ zero_extendqisi2
mov r2, #1
mov r8, #48
movw r10, #1274
rsb r6, r3, #24
lsl r3, r2, r3
sub r3, r3, #1
uxth r3, r3
and r4, r3, r0, asr r6
str r4, [sp]
ldr r4, .L1520+4
sub r5, r4, #3136
ldrb r4, [r4, #-3136] @ zero_extendqisi2
ldrh r7, [r5, #-2]
sub r4, r4, #1
sub r5, r6, r7
uxth r4, r4
lsl r2, r2, r5
and r0, r4, r0, asr r7
sub r2, r2, #1
uxth r2, r2
and r0, r0, r2
str r0, [sp, #4]
.L1515:
mla r0, r8, ip, lr
ldr r9, [sp]
movw r5, #1256
ldr r5, [r0, r5]
and fp, r3, r5, lsr r6
cmp r9, fp
bne .L1510
and r5, r4, r5, lsr r7
ldr r9, [sp, #4]
ldrb r0, [r0, r10] @ zero_extendqisi2
and r5, r5, r2
cmp r9, r5
bne .L1511
cmp r1, #1
bne .L1508
.L1513:
sub r5, r0, #7
tst r5, #253
beq .L1510
.L1508:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1511:
cmp r1, #3
ldrls pc, [pc, r1, asl #2]
b .L1510
.L1512:
.word .L1508
.word .L1513
.word .L1514
.word .L1508
.L1514:
cmp r0, #11
bne .L1508
.L1510:
mla ip, r8, ip, lr
ldrb ip, [ip, #1232] @ zero_extendqisi2
cmp ip, #255
bne .L1515
.L1516:
mov r0, #0
b .L1508
.L1521:
.align 2
.L1520:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size queue_lun_state, .-queue_lun_state
.align 2
.global queue_remove_completed_req
.syntax unified
.arm
.fpu softvfp
.type queue_remove_completed_req, %function
queue_remove_completed_req:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1548
mov ip, #0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #20
sub sp, sp, #20
ldr r7, .L1548+4
mov r0, #48
mvn r4, #0
movw r5, #1275
ldrb r1, [r3, #2771] @ zero_extendqisi2
movw r6, #1233
ldrb r2, [r3, #2770] @ zero_extendqisi2
add r8, r3, #1232
add r9, r7, #1
add r10, r7, #2
str r1, [sp, #8]
ldrb r1, [r3, #2773] @ zero_extendqisi2
str r1, [sp, #12]
ldrb r1, [r3, #2772] @ zero_extendqisi2
str r1, [sp, #4]
.L1523:
cmp r2, #255
beq .L1524
mla fp, r0, r2, r3
movw lr, #1274
mov r1, r2
ldrb lr, [fp, lr] @ zero_extendqisi2
sub lr, lr, #12
cmp lr, #1
bls .L1525
cmp ip, #0
beq .L1522
.L1547:
strb r2, [r3, #2770]
b .L1522
.L1525:
mul ip, r0, r1
ldrb r2, [fp, #1232] @ zero_extendqisi2
add lr, r3, ip
ldrb fp, [lr, r5] @ zero_extendqisi2
strb r4, [lr, #1232]
cmp fp, #1
bne .L1528
add ip, r8, ip
ldrh ip, [ip, #34]
cmp ip, #0
ldreq ip, [sp, #12]
moveq lr, r10
ldrne ip, [sp, #4]
movne lr, r9
.L1529:
cmp ip, #255
bne .L1534
strb r2, [r3, #2770]
mov r2, #48
mla r3, r2, r1, r3
ldrb r3, [r3, #1233] @ zero_extendqisi2
strb r3, [lr]
.L1522:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1528:
cmp fp, #0
bne .L1530
ldr ip, [lr, #1252]
cmn ip, #1
ldrne ip, [sp, #8]
movne lr, r7
bne .L1529
.L1530:
mov ip, #1
b .L1523
.L1534:
mov lr, ip
mla ip, r0, ip, r3
ldrb ip, [ip, #1232] @ zero_extendqisi2
cmp ip, #255
bne .L1534
mla r1, r0, r1, r3
mla lr, r0, lr, r3
ldrb r1, [r1, r6] @ zero_extendqisi2
strb r1, [lr, #1232]
b .L1530
.L1524:
cmp ip, #0
beq .L1522
mvn r2, #0
b .L1547
.L1549:
.align 2
.L1548:
.word .LANCHOR0
.word .LANCHOR0+2771
.fnend
.size queue_remove_completed_req, .-queue_remove_completed_req
.align 2
.global pm_select_ram_region
.syntax unified
.arm
.fpu softvfp
.type pm_select_ram_region, %function
pm_select_ram_region:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r1, .L1561
mov r3, #0
movw r0, #65535
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r2, r1, #4
.L1552:
lsl ip, r3, #3
uxth r4, r3
ldrh ip, [ip, r1]
cmp ip, r0
beq .L1551
add r3, r3, #1
cmp r3, #32
bne .L1552
mov r4, r3
mov r1, #0
mov r3, #32768
sub ip, r2, #4
.L1554:
add r0, ip, r1, lsl #3
uxth lr, r1
ldrh r0, [r0, #2]
tst r0, #32768
bne .L1553
cmp r0, r3
movcc r3, r0
movcc r4, lr
.L1553:
add r1, r1, #1
cmp r1, #32
bne .L1554
cmp r4, #32
bne .L1551
ldr r3, .L1561+4
mvn r1, #0
sub r2, r2, #4
ldrb lr, [r3, #-2276] @ zero_extendqisi2
mov r3, #0
.L1556:
lsl ip, r3, #3
uxth r5, r3
add r0, r2, ip
ldrh r0, [r0, #2]
cmp r0, r1
bcs .L1555
ldrh ip, [ip, r2]
cmp ip, lr
movne r1, r0
movne r4, r5
.L1555:
add r3, r3, #1
cmp r3, #32
bne .L1556
cmp r4, #32
bne .L1551
movw r2, #377
ldr r1, .L1561+8
ldr r0, .L1561+12
bl printk
bl dump_stack
.L1551:
mov r0, r4
pop {r4, r5, r6, pc}
.L1562:
.align 2
.L1561:
.word .LANCHOR3-2532
.word .LANCHOR3
.word .LANCHOR1+1629
.word .LC0
.fnend
.size pm_select_ram_region, .-pm_select_ram_region
.align 2
.global ftl_memset
.syntax unified
.arm
.fpu softvfp
.type ftl_memset, %function
ftl_memset:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b memset
.fnend
.size ftl_memset, .-ftl_memset
.align 2
.global flash_lsb_page_tbl_build
.syntax unified
.arm
.fpu softvfp
.type flash_lsb_page_tbl_build, %function
flash_lsb_page_tbl_build:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
ldr r5, .L1618
mov r0, #1024
ldr r3, [r5, #1104]
ldrb r1, [r3, #12] @ zero_extendqisi2
bl __aeabi_idiv
cmp r6, #0
uxth r4, r0
bne .L1565
add r5, r5, #4
.L1566:
lsl r3, r6, #1
strh r6, [r3, r5] @ movhi
add r6, r6, #1
cmp r6, #512
bne .L1566
.L1572:
mov r2, #2048
mov r1, #255
ldr r0, .L1618+4
bl ftl_memset
ldr ip, .L1618+8
mov r3, #0
ldr r0, .L1618+4
.L1567:
lsl r2, r3, #1
add r3, r3, #1
ldrh r2, [r2, ip]
lsl r1, r2, #1
strh r2, [r0, r1] @ movhi
uxth r2, r3
cmp r2, r4
bcc .L1567
pop {r4, r5, r6, pc}
.L1565:
cmp r6, #1
bne .L1568
mov r3, #0
add r5, r5, #4
.L1571:
cmp r3, #3
uxth r2, r3
bls .L1569
tst r2, #1
movne r1, #3
moveq r1, #2
rsb r2, r1, r2, lsl #1
uxth r2, r2
.L1569:
lsl r1, r3, #1
add r3, r3, #1
cmp r3, #512
strh r2, [r1, r5] @ movhi
bne .L1571
b .L1572
.L1568:
cmp r6, #2
bne .L1573
mov r2, #0
add r5, r5, #4
.L1575:
uxth r3, r2
cmp r2, #1
lsl r1, r2, #1
add r2, r2, #1
lslhi r3, r3, #1
subhi r3, r3, #1
uxthhi r3, r3
cmp r2, #512
strh r3, [r1, r5] @ movhi
bne .L1575
b .L1572
.L1573:
cmp r6, #3
bne .L1576
mov r3, #0
add r5, r5, #4
.L1579:
cmp r3, #5
uxth r2, r3
bls .L1577
tst r2, #1
movne r1, #5
moveq r1, #4
rsb r2, r1, r2, lsl #1
uxth r2, r2
.L1577:
lsl r1, r3, #1
add r3, r3, #1
cmp r3, #512
strh r2, [r1, r5] @ movhi
bne .L1579
b .L1572
.L1576:
cmp r6, #4
mov r2, r5
mov r3, #0
bne .L1580
strh r3, [r5, #4] @ movhi
mov r3, #1
strh r3, [r5, #6] @ movhi
mov r3, #2
strh r3, [r5, #8] @ movhi
mov r3, #3
strh r3, [r5, #10] @ movhi
mov r3, #5
strh r3, [r5, #14] @ movhi
mov r3, #7
strh r3, [r5, #16] @ movhi
mov r3, #8
strh r6, [r5, #12] @ movhi
strh r3, [r5, #18]! @ movhi
.L1582:
tst r3, #1
movne r2, #7
moveq r2, #6
rsb r2, r2, r3, lsl #1
add r3, r3, #1
uxth r3, r3
strh r2, [r5, #2]! @ movhi
cmp r3, #512
bne .L1582
b .L1572
.L1580:
cmp r6, #5
bne .L1583
add r1, r5, #4
.L1584:
lsl r0, r3, #1
strh r3, [r0, r1] @ movhi
add r3, r3, #1
cmp r3, #16
bne .L1584
add r2, r2, #34
.L1585:
strh r3, [r2, #2]! @ movhi
add r3, r3, #2
uxth r3, r3
cmp r3, #1008
bne .L1585
b .L1572
.L1583:
cmp r6, #8
bne .L1586
add r5, r5, #4
.L1587:
strh r3, [r3, r5] @ movhi
add r3, r3, #2
cmp r3, #1024
bne .L1587
b .L1572
.L1586:
cmp r6, #9
bne .L1588
strh r3, [r5, #4] @ movhi
mov r3, #1
strh r3, [r5, #6] @ movhi
mov r3, #2
strh r3, [r5, #8]! @ movhi
movw r2, #1021
mov r3, #3
.L1589:
strh r3, [r5, #2]! @ movhi
add r3, r3, #2
uxth r3, r3
cmp r3, r2
bne .L1589
b .L1572
.L1588:
cmp r6, #10
bne .L1590
add r1, r5, #4
.L1591:
lsl r0, r3, #1
strh r3, [r0, r1] @ movhi
add r3, r3, #1
cmp r3, #63
bne .L1591
add r2, r2, #128
movw r1, #961
.L1592:
strh r3, [r2, #2]! @ movhi
add r3, r3, #2
uxth r3, r3
cmp r3, r1
bne .L1592
b .L1572
.L1590:
cmp r6, #11
bne .L1593
ldr r1, .L1618+8
mov r3, #0
.L1594:
lsl r0, r3, #1
strh r3, [r0, r1] @ movhi
add r3, r3, #1
cmp r3, #8
bne .L1594
add r2, r2, #18
.L1596:
tst r3, #1
movne r1, #7
moveq r1, #6
rsb r1, r1, r3, lsl #1
add r3, r3, #1
uxth r3, r3
strh r1, [r2, #2]! @ movhi
cmp r3, #512
bne .L1596
b .L1572
.L1593:
cmp r6, #13
bne .L1572
ldr r2, .L1618+12
mov r3, #0
.L1597:
strh r3, [r2, #2]! @ movhi
add r3, r3, #3
uxth r3, r3
cmp r3, #1536
bne .L1597
b .L1572
.L1619:
.align 2
.L1618:
.word .LANCHOR0
.word .LANCHOR3-2272
.word .LANCHOR0+4
.word .LANCHOR0+2
.fnend
.size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
.align 2
.global flash_die_info_init
.syntax unified
.arm
.fpu softvfp
.type flash_die_info_init, %function
flash_die_info_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r4, .L1638
ldr r3, [r4]
tst r3, #4096
beq .L1621
ldr r1, .L1638+4
ldr r0, .L1638+8
bl printk
.L1621:
ldrh r3, [r4, #30]
mov r7, #0
ldr r5, .L1638+12
ldr r9, .L1638+16
ldr r6, .L1638+20
strh r3, [r5, #2] @ movhi
ldrb r1, [r4, #16] @ zero_extendqisi2
add r8, r9, #6
ldrh r0, [r4, #14]
mov r10, r8
strb r7, [r5, #1109]
bl __aeabi_idiv
mov r2, #8
strh r0, [r6, #-224] @ movhi
mov r1, r7
ldr r0, .L1638+24
bl ftl_memset
mov r2, #32
mov r1, r7
sub r0, r6, #220
bl ftl_memset
.L1623:
mov r3, #2
ldrb r2, [r4, #4] @ zero_extendqisi2
strb r3, [r7, r9]
add r1, r8, r7, lsl #3
ldr r0, .L1638+28
bl flash_mem_cmp8
cmp r0, #0
ldr fp, .L1638+28
bne .L1622
ldrb r3, [r5, #1109] @ zero_extendqisi2
add r2, r6, r3, lsl #2
str r0, [r2, #-220]
uxtb r0, r7
add r2, r3, #1
add r3, r5, r3
strb r2, [r5, #1109]
strb r0, [r3, #1144]
bl zftl_flash_enter_slc_mode
.L1622:
add r7, r7, #1
cmp r7, #4
bne .L1623
ldrb r3, [r4, #12] @ zero_extendqisi2
cmp r3, #2
beq .L1624
.L1628:
ldrb r2, [r4, #17] @ zero_extendqisi2
ldrb r3, [r5, #1109] @ zero_extendqisi2
smulbb r3, r3, r2
ldrh r2, [r4, #18]
smulbb r3, r3, r2
strh r3, [r6, #-188] @ movhi
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1624:
ldrb r3, [r4, #4] @ zero_extendqisi2
mov r7, #0
ldrh r8, [r5, #2]
ldrb r9, [r4, #27] @ zero_extendqisi2
str r3, [sp]
ldrh r3, [r4, #18]
and r3, r3, #65280
mul r3, r8, r3
ldrb r8, [r4, #17] @ zero_extendqisi2
mul r8, r8, r3
lsl r3, r8, #1
.L1627:
ldr r2, [sp]
add r1, r10, r7, lsl #3
mov r0, fp
str r3, [sp, #4]
bl flash_mem_cmp8
cmp r0, #0
ldr r3, [sp, #4]
bne .L1625
ldrb r2, [r5, #1109] @ zero_extendqisi2
cmp r9, #0
moveq r0, r8
movne r0, r3
add r1, r6, r2, lsl #2
str r0, [r1, #-220]
add r1, r2, #1
add r2, r5, r2
strb r1, [r5, #1109]
strb r7, [r2, #1144]
.L1625:
add r7, r7, #1
cmp r7, #4
bne .L1627
b .L1628
.L1639:
.align 2
.L1638:
.word .LANCHOR2
.word .LANCHOR1+1650
.word .LC4
.word .LANCHOR0
.word .LANCHOR0+1154
.word .LANCHOR3
.word .LANCHOR0+1144
.word .LANCHOR2+5
.fnend
.size flash_die_info_init, .-flash_die_info_init
.align 2
.global lpa_hash_init
.syntax unified
.arm
.fpu softvfp
.type lpa_hash_init, %function
lpa_hash_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r2, #512
ldr r4, .L1642
mov r1, #255
sub r0, r4, #3056
sub r0, r0, #14
bl ftl_memset
sub r3, r4, #3088
ldrb r2, [r4, #-3127] @ zero_extendqisi2
ldrh r3, [r3, #-8]
mov r1, #255
ldr r0, [r4, #-2552]
pop {r4, lr}
mul r2, r2, r3
lsl r2, r2, #2
b ftl_memset
.L1643:
.align 2
.L1642:
.word .LANCHOR3
.fnend
.size lpa_hash_init, .-lpa_hash_init
.align 2
.global lpa_rebuild_hash
.syntax unified
.arm
.fpu softvfp
.type lpa_rebuild_hash, %function
lpa_rebuild_hash:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1656
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r3, [r3]
tst r3, #4096
beq .L1645
mov r3, #0
mov r2, #239
ldr r1, .L1656+4
ldr r0, .L1656+8
bl printk
.L1645:
ldr r4, .L1656+12
mov r2, #512
mov r1, #255
sub r5, r4, #3056
sub r6, r4, #3088
sub r5, r5, #14
mov r0, r5
bl ftl_memset
ldrh r3, [r6, #-8]
mov r1, #255
ldrb r2, [r4, #-3127] @ zero_extendqisi2
ldr r0, [r4, #-2552]
mul r2, r2, r3
lsl r2, r2, #2
bl ftl_memset
mov r1, #0
.L1646:
ldrh r0, [r6, #-8]
uxth ip, r1
ldrb r3, [r4, #-3127] @ zero_extendqisi2
mov r2, ip
mul r3, r3, r0
cmp ip, r3, lsl #1
blt .L1648
pop {r4, r5, r6, pc}
.L1648:
ldr r3, [r4, #-2556]
ldr r3, [r3, r2, lsl #2]
cmn r3, #1
beq .L1647
uxtb r3, r3
lsl r2, r2, #1
lsl r3, r3, #1
ldrh r0, [r5, r3]
strh ip, [r5, r3] @ movhi
ldr r3, [r4, #-2552]
strh r0, [r3, r2] @ movhi
.L1647:
add r1, r1, #1
b .L1646
.L1657:
.align 2
.L1656:
.word .LANCHOR2
.word .LANCHOR1+1670
.word .LC122
.word .LANCHOR3
.fnend
.size lpa_rebuild_hash, .-lpa_rebuild_hash
.align 2
.global zftl_read_flash_info
.syntax unified
.arm
.fpu softvfp
.type zftl_read_flash_info, %function
zftl_read_flash_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r2, #11
mov r1, #0
mov r4, r0
bl ftl_memset
ldr r2, .L1662
mov ip, #1
ldr r3, .L1662+4
ldrh r0, [r2, #2]
ldrb r1, [r3, #13] @ zero_extendqisi2
smulbb r1, r1, r0
ldr r0, .L1662+8
strh r1, [r4, #4] @ unaligned
ldrb r1, [r2, #1193] @ zero_extendqisi2
strb r1, [r4, #7]
ldr r1, [r2, #1032]
str r1, [r4] @ unaligned
ldrb r1, [r3, #13] @ zero_extendqisi2
strb r1, [r4, #6]
mov r1, #32
ldrb r3, [r3, #11] @ zero_extendqisi2
strb r1, [r4, #8]
ldrb r1, [r2, #1109] @ zero_extendqisi2
strb r3, [r4, #9]
mov r3, #0
strb r3, [r4, #10]
.L1659:
uxtb r2, r3
cmp r1, r2
bhi .L1660
pop {r4, pc}
.L1660:
ldrb lr, [r3, r0] @ zero_extendqisi2
add r3, r3, #1
ldrb r2, [r4, #10] @ zero_extendqisi2
orr r2, r2, ip, lsl lr
strb r2, [r4, #10]
b .L1659
.L1663:
.align 2
.L1662:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR0+1144
.fnend
.size zftl_read_flash_info, .-zftl_read_flash_info
.align 2
.global gc_static_wearleveling
.syntax unified
.arm
.fpu softvfp
.type gc_static_wearleveling, %function
gc_static_wearleveling:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
ldr r0, .L1779
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #44
sub sp, sp, #44
ldr r3, [r0, #2800]
ldr r3, [r3, #32]
cmp r3, #10240
bls .L1665
bl ftl_tmp_into_update
.L1665:
ldr r3, [r0, #1096]
ldr r2, [r3, #568]
ldr r1, [r3, #12]
add ip, r2, #35840
add ip, ip, #160
cmp r1, ip
bcs .L1666
ldr lr, [r0, #2800]
ldr ip, [r3, #572]
ldr lr, [lr, #36]
add ip, ip, #256
cmp lr, ip
movcc r0, #0
bcc .L1664
.L1666:
add r2, r2, #860160
add r2, r2, #3840
cmp r1, r2
bhi .L1668
ldr ip, [r0, #2800]
ldr r2, [r3, #572]
ldr ip, [ip, #36]
add r2, r2, #32
cmp ip, r2
movls r7, #0
movls r5, r7
bls .L1669
.L1668:
ldr r2, [r0, #2800]
mov r4, #0
ldr r5, .L1779
movw r10, #65535
ldr r8, .L1779+4
mov r6, r4
ldr r0, [r2, #36]
mov fp, r10
str r1, [r3, #568]
ldr r9, .L1779+8
str r0, [r3, #572]
ldrh r7, [r2, #134]
str r4, [sp, #36]
str r4, [sp, #32]
str r4, [sp, #28]
str r4, [sp, #24]
str r4, [sp, #16]
str r4, [sp, #20]
.L1670:
ldrh r3, [r8]
cmp r3, r7
bhi .L1679
ldr r0, [r5, #1096]
mov r3, #0
mov r2, #128
mov r1, #255
strh r3, [r0, #122] @ movhi
add r0, r0, #264
bl ftl_memset
ldr r2, [r5, #1096]
movw r3, #586
ldr r8, [r5, #1084]
ldrh r1, [r2, r3]
ldr r3, .L1779+8
ldr r3, [r3]
lsl r9, r1, #2
add r7, r8, r9
tst r3, #1024
beq .L1680
ldr ip, [r5, #1092]
lsl r0, r1, #1
ldr r3, [r8, r1, lsl #2]
ldrh r2, [r8, r9]
ldrh r0, [ip, r0]
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
str r0, [sp, #12]
ldrb r0, [r7, #3] @ zero_extendqisi2
str r0, [sp, #8]
ldrb r0, [r7, #2] @ zero_extendqisi2
lsr r0, r0, #5
str r0, [sp, #4]
ldrb r0, [r7, #2] @ zero_extendqisi2
ubfx r0, r0, #3, #2
str r0, [sp]
ldr r0, .L1779+12
bl printk
.L1680:
ldrb r3, [r7, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #32
bne .L1681
ldr r3, .L1779
ldr r3, [r3, #2800]
add r3, r3, #688
ldrh r3, [r3]
cmp r3, #2
ldrhi r3, .L1779+16
movhi r2, #1
strhi r2, [r3, #-184]
.L1681:
ldrb r2, [r7, #2] @ zero_extendqisi2
tst r2, #8
beq .L1682
ldr r5, .L1779
ldr r3, [r5, #2800]
ldrh r1, [r3, #96]
ldr r3, .L1779+16
ldrh r0, [r3, #-180]
ldrh r3, [r8, r9]
ubfx r3, r3, #0, #11
add r3, r3, r0, lsr #2
cmp r1, r3
ble .L1682
and r3, r2, #192
cmp r3, #64
bne .L1683
ldr r0, [r5, #1096]
movw r3, #586
mov r2, #1
mov r1, #0
ldrh r0, [r0, r3]
bl gc_add_sblk
ldr r2, .L1779+20
mov r1, #1
movw r3, #2180
strh r1, [r2, r3] @ movhi
.L1682:
ldr r1, .L1779
ldr r3, [r1, #1096]
ldr r7, [r1, #1084]
add r3, r3, #584
ldrh r5, [r3]
ldr r3, .L1779+8
ldr r3, [r3]
lsl r2, r5, #2
add r8, r7, r2
tst r3, #1024
beq .L1684
ldr r0, [r1, #1092]
lsl r1, r5, #1
ldr r3, [r7, r5, lsl #2]
ldrh r2, [r7, r2]
ldrh r1, [r0, r1]
ubfx r3, r3, #11, #8
ldr r0, .L1779+24
ubfx r2, r2, #0, #11
str r1, [sp, #12]
ldrb r1, [r8, #3] @ zero_extendqisi2
str r1, [sp, #8]
ldrb r1, [r8, #2] @ zero_extendqisi2
lsr r1, r1, #5
str r1, [sp, #4]
ldrb r1, [r8, #2] @ zero_extendqisi2
ubfx r1, r1, #3, #2
str r1, [sp]
mov r1, r5
bl printk
.L1684:
ldrb r3, [r8, #2] @ zero_extendqisi2
tst r3, #8
beq .L1685
ldr r8, .L1779
ldr r2, [r8, #2800]
ldrh r1, [r2, #98]
ldr r2, .L1779+16
ldrh r0, [r2, #-178]
ldr r2, [r7, r5, lsl #2]
ubfx r2, r2, #11, #8
add r2, r2, r0, lsr #2
cmp r1, r2
ble .L1685
and r2, r3, #192
cmp r2, #64
bne .L1686
ldr r3, [r8, #1096]
mov r2, #1
mov r1, #0
add r3, r3, #584
ldrh r0, [r3]
bl gc_add_sblk
ldr r2, .L1779+20
mov r1, #1
movw r3, #2180
strh r1, [r2, r3] @ movhi
.L1685:
ldr r3, .L1779+8
ldr r3, [r3]
tst r3, #1024
beq .L1687
ldr r1, .L1779
lsl ip, r4, #2
ldr r2, [r1, #1084]
add r0, r2, ip
ldr r3, [r2, r4, lsl #2]
ldrh r2, [r2, ip]
ldr ip, [r1, #1092]
lsl r1, r4, #1
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
ldrh r1, [ip, r1]
str r1, [sp, #12]
ldrb r1, [r0, #3] @ zero_extendqisi2
str r1, [sp, #8]
ldrb r1, [r0, #2] @ zero_extendqisi2
lsr r1, r1, #5
str r1, [sp, #4]
ldrb r1, [r0, #2] @ zero_extendqisi2
ldr r0, .L1779+28
ubfx r1, r1, #3, #2
str r1, [sp]
mov r1, r4
bl printk
.L1687:
ldr r3, .L1779+8
ldr r3, [r3]
tst r3, #1024
beq .L1688
ldr r1, .L1779
lsl ip, r6, #2
ldr r2, [r1, #1084]
add r0, r2, ip
ldr r3, [r2, r6, lsl #2]
ldrh r2, [r2, ip]
ldr ip, [r1, #1092]
lsl r1, r6, #1
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
ldrh r1, [ip, r1]
str r1, [sp, #12]
ldrb r1, [r0, #3] @ zero_extendqisi2
str r1, [sp, #8]
ldrb r1, [r0, #2] @ zero_extendqisi2
lsr r1, r1, #5
str r1, [sp, #4]
ldrb r1, [r0, #2] @ zero_extendqisi2
ldr r0, .L1779+32
ubfx r1, r1, #3, #2
str r1, [sp]
mov r1, r6
bl printk
.L1688:
ldr r5, .L1779
ldrh r3, [sp, #16]
ldr r1, [sp, #24]
ldr r4, [r5, #2800]
ldr r0, [sp, #36]
strh r3, [r4, #96] @ movhi
ldrh r3, [sp, #20]
strh r10, [r4, #92] @ movhi
strh fp, [r4, #94] @ movhi
strh r3, [r4, #98] @ movhi
bl __aeabi_uidiv
strh r0, [r4, #88] @ movhi
mov r6, r0
ldr r1, [sp, #28]
ldr r0, [sp, #32]
bl __aeabi_uidiv
strh r0, [r4, #90] @ movhi
ldr r4, .L1779+8
ldr r3, [r4]
tst r3, #1024
beq .L1689
uxth r0, r0
uxth r3, r6
ldr r2, [sp, #28]
str r0, [sp]
ldr r1, [sp, #24]
ldr r0, .L1779+36
bl printk
.L1689:
ldr r3, [r4]
ldr r4, .L1779+16
tst r3, #1024
beq .L1690
ldrh r3, [r4, #-178]
mov r2, fp
mov r1, r10
ldr r0, .L1779+40
str r3, [sp, #8]
ldrh r3, [r4, #-180]
str r3, [sp, #4]
ldr r3, [sp, #20]
str r3, [sp]
ldr r3, [sp, #16]
bl printk
.L1690:
ldr r3, [sp, #20]
sub r3, r3, fp
str r3, [sp, #24]
ldr r2, [sp, #24]
ldrh r3, [r4, #-178]
cmp r2, r3
bgt .L1691
ldr r3, [sp, #16]
ldrh r2, [r4, #-180]
sub r3, r3, r10
cmp r3, r2
movle r7, #0
movle r5, r7
ble .L1692
.L1691:
ldr r3, [r5, #1096]
mov r7, #0
ldr r4, [r3, #580]
ldr r3, [r5, #2800]
mov r5, r7
ldrh r9, [r3, #134]
uxth r4, r4
ldr r3, .L1779+20
add r3, r3, #2176
add r3, r3, #4
str r3, [sp, #20]
.L1693:
ldr r3, .L1779+4
ldrh r3, [r3]
cmp r9, r3
bcc .L1703
.L1702:
ldr r3, .L1779
ldr r3, [r3, #1096]
str r4, [r3, #580]
.L1692:
cmp fp, #0
beq .L1705
ldr r2, .L1779
ldr r4, .L1779+4
ldr r3, [r2, #2800]
mov r0, r2
ldrh r3, [r3, #134]
.L1706:
ldrh r2, [r4]
cmp r2, r3
bhi .L1708
ldr r3, [r0, #2800]
ldrh r2, [r3, #72]
add r2, fp, r2
strh r2, [r3, #72] @ movhi
ldrh r2, [r3, #98]
cmp fp, r2
subcc r2, r2, fp
strhcc r2, [r3, #98] @ movhi
.L1705:
cmp r10, #0
beq .L1711
ldr r3, .L1779
ldr r6, .L1779+4
ldr r2, [r3, #2800]
mov ip, r3
ldrh r0, [r2, #134]
.L1712:
ldrh r3, [r6]
cmp r3, r0
bhi .L1714
ldr r3, [ip, #2800]
ldrh r2, [r3, #74]
add r2, r10, r2
strh r2, [r3, #74] @ movhi
ldrh r2, [r3, #96]
cmp r10, r2
subcc r2, r2, r10
strhcc r2, [r3, #96] @ movhi
.L1711:
ldr r4, .L1779+44
mov r1, #0
sub r0, r4, #12
bl _list_get_gc_head_node
movw r2, #65535
cmp r0, r2
beq .L1669
ldr r2, .L1779
lsl r3, r0, #1
ldr r1, [r2, #1092]
ldrh r2, [r4, #-8]
ldrh r3, [r1, r3]
cmp r3, r2, lsr #1
bhi .L1669
add r5, r5, #1
mov r2, #1
mov r1, #0
bl gc_add_sblk
.L1669:
add r0, r5, r7
.L1664:
add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1679:
ldr r0, [r5, #1084]
lsl r1, r7, #2
add ip, r0, r1
ldrb r3, [ip, #2] @ zero_extendqisi2
and r2, r3, #224
cmp r2, #224
beq .L1671
tst r3, #8
beq .L1672
ldrh r2, [r0, r1]
ldr r3, [r0, r1]
ubfx r2, r2, #0, #11
ubfx r3, r3, #11, #8
.L1673:
ldr lr, [sp, #24]
cmp r10, r2
add lr, lr, #1
uxth lr, lr
str lr, [sp, #24]
ldr lr, [sp, #36]
add lr, lr, r2
str lr, [sp, #36]
ldrhi r10, [r5, #1096]
movwhi lr, #586
strhhi r7, [r10, lr] @ movhi
movhi r10, r2
.L1717:
ldr lr, [sp, #16]
cmp lr, r2
movcc lr, r2
movcc r4, r7
str lr, [sp, #16]
movw lr, #65535
cmp r3, lr
bne .L1675
.L1677:
cmp r2, #9
cmphi r3, #9
bhi .L1671
ldr r3, [r9]
tst r3, #256
beq .L1671
ldr r3, [r0, r1]
ldrh r2, [r0, r1]
lsl r1, r7, #1
ldr r0, [r5, #1092]
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
ldrh r1, [r0, r1]
ldr r0, .L1779+48
str r1, [sp, #12]
ldrb r1, [ip, #3] @ zero_extendqisi2
str r1, [sp, #8]
ldrb r1, [ip, #2] @ zero_extendqisi2
lsr r1, r1, #5
str r1, [sp, #4]
ldrb r1, [ip, #2] @ zero_extendqisi2
ubfx r1, r1, #3, #2
str r1, [sp]
mov r1, r7
bl printk
.L1671:
add r7, r7, #1
uxth r7, r7
b .L1670
.L1672:
tst r3, #24
ldrheq r2, [r0, r1]
movweq r3, #65535
ldrne r3, [r0, r1]
movwne r2, #65535
ubfxeq r2, r2, #0, #11
ubfxne r3, r3, #11, #8
beq .L1673
.L1675:
ldr lr, [sp, #28]
cmp fp, r3
movhi fp, r3
add lr, lr, #1
uxth lr, lr
str lr, [sp, #28]
ldr lr, [sp, #32]
add lr, lr, r3
str lr, [sp, #32]
ldrhi lr, [r5, #1096]
addhi lr, lr, #584
strhhi r7, [lr] @ movhi
ldr lr, [sp, #20]
cmp lr, r3
movcc lr, r3
movcc r6, r7
str lr, [sp, #20]
b .L1677
.L1683:
tst r2, #224
bne .L1682
ldr r3, [r5, #1096]
movw r8, #590
movw r2, #65535
ldrh r1, [r3, r8]
cmp r1, r2
bne .L1682
movw r7, #586
ldrh r0, [r3, r7]
add r3, r3, #588
ldrh r3, [r3]
cmp r3, r0
beq .L1682
bl zftl_remove_free_node
ldr r3, [r5, #1096]
ldrh r2, [r3, r7]
strh r2, [r3, r8] @ movhi
mvn r2, #0
strh r2, [r3, r7] @ movhi
b .L1682
.L1686:
and r3, r3, #248
cmp r3, #16
bne .L1685
ldr r3, [r8, #1096]
add r2, r3, #588
ldrh r1, [r2]
movw r2, #65535
cmp r1, r2
bne .L1685
add r2, r3, #584
ldrh r0, [r2]
movw r2, #590
ldrh r3, [r3, r2]
cmp r3, r0
beq .L1685
bl zftl_remove_free_node
ldr r3, [r8, #1096]
add r2, r3, #588
add r3, r3, #584
ldrh r1, [r3]
strh r1, [r2] @ movhi
mvn r2, #0
strh r2, [r3] @ movhi
b .L1685
.L1703:
add r4, r4, #1
uxth r4, r4
cmp r3, r4
ldr r3, .L1779
movls r4, #0
lsl r6, r4, #2
ldr r8, [r3, #1084]
add r2, r8, r6
ldrb r2, [r2, #2] @ zero_extendqisi2
and ip, r2, #224
and r1, r2, #192
cmp r1, #0
cmpne ip, #224
beq .L1695
ubfx r2, r2, #3, #2
ldr r0, .L1779+16
ands r1, r2, #1
beq .L1696
cmp ip, #160
.L1777:
bne .L1698
ldrh r2, [r0, #-178]
ldr r0, [sp, #24]
cmp r0, r2
ble .L1699
ldr r2, [r8, r6]
ubfx r2, r2, #11, #8
cmp r2, fp
bls .L1700
cmp r1, #0
beq .L1699
ldrh r2, [r8, r6]
ubfx r2, r2, #0, #11
cmp r2, r10
bgt .L1699
.L1700:
mov r2, #1
mov r1, #0
mov r0, r4
str r3, [sp, #28]
bl gc_add_sblk
ldr r3, [sp, #20]
mov r2, #1
add r5, r5, r2
strh r2, [r3] @ movhi
ldr r2, .L1779+8
ldr r3, [sp, #28]
ldr r2, [r2]
tst r2, #1024
beq .L1699
ldr r1, [r3, #1092]
lsl r2, r4, #1
ldr r3, [r3, #1084]
ldrh r0, [r1, r2]
ldr r1, [r8, r6]
add r3, r3, r6
ldrb r2, [r3, #2] @ zero_extendqisi2
ldr r3, .L1779+20
ubfx r1, r1, #11, #8
str r1, [sp, #8]
ldrh r1, [r8, r6]
lsr r2, r2, #5
ubfx r1, r1, #0, #11
str r1, [sp, #4]
mov r1, r4
ldrh r3, [r3, #52]
str r3, [sp]
mov r3, r0
ldr r0, .L1779+52
.L1778:
bl printk
.L1699:
cmp r7, #4
cmpls r5, #4
bhi .L1702
.L1695:
add r9, r9, #1
uxth r9, r9
b .L1693
.L1696:
cmp r2, #2
b .L1777
.L1698:
ldr r2, [sp, #16]
ldrh r0, [r0, #-180]
sub r2, r2, r10
cmp r2, r0
ble .L1699
ldrh r2, [r8, r6]
add r0, r10, #8
ubfx r2, r2, #0, #11
cmp r2, r0
ble .L1701
cmp r1, #0
beq .L1699
ldr r2, [r8, r6]
add r1, fp, #4
ubfx r2, r2, #11, #8
cmp r2, r1
bgt .L1699
.L1701:
mov r2, #1
mov r1, #0
mov r0, r4
str r3, [sp, #28]
bl gc_add_sblk
ldr r3, [sp, #20]
mov r2, #1
add r7, r7, r2
strh r2, [r3] @ movhi
ldr r2, .L1779+8
ldr r3, [sp, #28]
ldr r2, [r2]
tst r2, #1024
beq .L1699
ldr r1, [r3, #1092]
lsl r2, r4, #1
ldr r3, [r3, #1084]
ldrh r0, [r1, r2]
ldr r1, [r8, r6]
add r3, r3, r6
ldrb r2, [r3, #2] @ zero_extendqisi2
ldr r3, .L1779+20
ubfx r1, r1, #11, #8
str r1, [sp, #8]
ldrh r1, [r8, r6]
lsr r2, r2, #5
ubfx r1, r1, #0, #11
str r1, [sp, #4]
mov r1, r4
ldrh r3, [r3, #52]
str r3, [sp]
mov r3, r0
ldr r0, .L1779+56
b .L1778
.L1708:
ldr ip, [r0, #1084]
lsl lr, r3, #2
ldr r2, [ip, r3, lsl #2]
add r6, ip, lr
ubfx r1, r2, #11, #8
cmp fp, r1
bhi .L1707
ldrb r6, [r6, #2] @ zero_extendqisi2
tst r6, #24
subne r1, r1, fp
bfine r2, r1, #11, #8
strne r2, [ip, lr]
.L1707:
add r3, r3, #1
uxth r3, r3
b .L1706
.L1714:
ldr r4, [ip, #1084]
lsl lr, r0, #2
ldrh r3, [r4, lr]
add r1, r4, lr
ubfx r2, r3, #0, #11
cmp r2, r10
blt .L1713
ldrb r1, [r1, #2] @ zero_extendqisi2
and r1, r1, #24
cmp r1, #16
subne r2, r2, r10
bfine r3, r2, #0, #11
strhne r3, [r4, lr] @ movhi
.L1713:
add r0, r0, #1
uxth r0, r0
b .L1712
.L1780:
.align 2
.L1779:
.word .LANCHOR0
.word .LANCHOR0+1080
.word .LANCHOR2
.word .LC124
.word .LANCHOR3
.word .LANCHOR0+2824
.word .LC125
.word .LC126
.word .LC127
.word .LC128
.word .LC129
.word .LANCHOR3-3088
.word .LC123
.word .LC130
.word .LC131
.fnend
.size gc_static_wearleveling, .-gc_static_wearleveling
.align 2
.global zftl_sblk_list_init
.syntax unified
.arm
.fpu softvfp
.type zftl_sblk_list_init, %function
zftl_sblk_list_init:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r3, #1080
ldr r4, .L1813
mov r2, #6
mov r1, #0
.pad #20
sub sp, sp, #20
ldr r7, .L1813+4
mov r5, #0
ldrh r3, [r4, r3]
add r10, r4, #2784
ldr r0, [r4, #1036]
sub r8, r7, #3072
sub r9, r7, #3104
mul r2, r2, r3
bl ftl_memset
mov r3, #32
ldrh r1, [r9, #-14]
strh r3, [r8, #-4] @ movhi
movw r3, #2786
strh r5, [r4, r3] @ movhi
movw r3, #2788
strh r5, [r4, r3] @ movhi
movw r3, #2790
strh r5, [r4, r3] @ movhi
movw r3, #2794
strh r5, [r4, r3] @ movhi
movw r3, #2792
strh r5, [r4, r3] @ movhi
mov r0, #32768
ldrb r3, [r7, #-3127] @ zero_extendqisi2
str r5, [r7, #-3088]
str r5, [r7, #-3084]
str r5, [r7, #-3080]
mul r1, r1, r3
str r5, [r7, #-3104]
str r5, [r7, #-3116]
str r5, [r7, #-3100]
strh r5, [r10] @ movhi
bl __aeabi_idiv
sxth r3, r0
str r7, [sp, #8]
str r10, [sp, #12]
str r3, [sp, #4]
ldr r3, [r4, #2800]
ldrsh r6, [r3, #134]
strh r5, [r3, #146] @ movhi
.L1782:
ldr r3, .L1813+8
ldrh r3, [r3]
cmp r6, r3
blt .L1799
ldr r2, [sp, #12]
ldr r3, [r4, #2800]
ldrh r2, [r2]
strh r2, [r3, #114] @ movhi
movw r2, #2786
ldrh r2, [r4, r2]
strh r2, [r3, #118] @ movhi
movw r2, #2788
ldrh r2, [r4, r2]
strh r2, [r3, #116] @ movhi
movw r2, #2790
ldrh r2, [r4, r2]
strh r2, [r3, #122] @ movhi
movw r2, #2794
ldrh r2, [r4, r2]
strh r2, [r3, #120] @ movhi
movw r2, #2792
ldrh r2, [r4, r2]
strh r2, [r3, #124] @ movhi
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1799:
ldr r7, [r4, #1084]
add r7, r7, r6, lsl #2
ldrb r3, [r7, #3] @ zero_extendqisi2
cmp r3, #0
ldreq r1, [sp, #4]
beq .L1783
ldr r3, [sp, #8]
ldr ip, [r4, #2800]
ldrh r10, [r9, #-14]
ldrb lr, [r3, #-3127] @ zero_extendqisi2
mov r3, #0
mov r1, r3
.L1784:
cmp r3, lr
blt .L1787
cmp r1, #0
beq .L1788
mov r0, #32768
bl __aeabi_idiv
add r1, r0, #1
sxth r1, r1
.L1783:
lsl fp, r6, #1
ldr r0, [r4, #1036]
add r2, fp, r6
lsl r2, r2, #1
add ip, r0, r2
strh r1, [ip, #4] @ movhi
mvn r1, #0
strh r1, [ip, #2] @ movhi
strh r1, [r0, r2] @ movhi
ldrb r2, [r7, #2] @ zero_extendqisi2
and r2, r2, #224
cmp r2, #224
cmpne r2, #32
moveq r10, #1
movne r10, #0
beq .L1789
ldr r1, [r4, #1096]
ldrh r0, [r1, #16]
cmp r6, r0
beq .L1789
ldrh r0, [r1, #48]
cmp r6, r0
beq .L1789
ldrh r1, [r1, #80]
cmp r6, r1
beq .L1789
cmp r2, #64
bne .L1790
uxth r7, r6
ldr r2, .L1813+12
sub r0, r9, #12
mov r1, r7
.L1811:
bl _insert_data_list
ldr r2, [r4, #1092]
ldrh r3, [r2, fp]
cmp r3, #7
movls r2, r10
movls r1, #1
movls r0, r7
bls .L1809
.L1789:
add r6, r6, #1
sxth r6, r6
b .L1782
.L1787:
ldrb r2, [r7, #3] @ zero_extendqisi2
asr r2, r2, r3
add r3, r3, #1
tst r2, #1
ldrhne r2, [ip, #146]
addeq r1, r10, r1
sxtheq r1, r1
addne r2, r2, #1
strhne r2, [ip, #146] @ movhi
b .L1784
.L1788:
ldrb r3, [r7, #2] @ zero_extendqisi2
mvn r0, #0
orr r3, r3, #224
strb r3, [r7, #2]
lsl r3, r6, #1
ldr r2, [r4, #1092]
strh r0, [r2, r3] @ movhi
b .L1783
.L1790:
cmp r2, #96
uxtheq r7, r6
ldreq r2, .L1813+16
ldreq r0, .L1813+20
moveq r1, r7
beq .L1811
.L1791:
cmp r2, #160
uxtheq r7, r6
ldreq r2, .L1813+24
ldreq r0, .L1813+28
moveq r1, r7
beq .L1811
.L1792:
cmp r2, #0
bne .L1789
ldr r2, [r4, #1092]
uxth r10, r6
ldrh r2, [r2, fp]
cmp r2, #0
beq .L1793
cmp r5, #2
bgt .L1794
mov r1, r6
ldr r0, .L1813+32
bl printk
ldrb r3, [r7, #2] @ zero_extendqisi2
add r5, r5, #1
sxth r5, r5
mov r1, #1
mov r0, r10
tst r3, #16
movne r2, #5
moveq r2, #2
bfi r3, r2, #5, #3
mov r2, #0
strb r3, [r7, #2]
.L1809:
bl gc_add_sblk
b .L1789
.L1794:
mov r2, #656
ldr r1, .L1813+36
ldr r0, .L1813+40
bl printk
bl dump_stack
.L1793:
ldrb r3, [r7, #2] @ zero_extendqisi2
ands r3, r3, #24
bne .L1797
ldr r2, .L1813+44
mov r1, r10
ldr r0, .L1813+48
.L1807:
bl _insert_free_list
b .L1789
.L1797:
cmp r3, #16
ldreq r2, .L1813+52
moveq r1, r10
subeq r0, r8, #12
ldrne r2, .L1813+56
movne r1, r10
subne r0, r8, #8
b .L1807
.L1814:
.align 2
.L1813:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+1080
.word .LANCHOR0+2790
.word .LANCHOR0+2792
.word .LANCHOR3-3104
.word .LANCHOR0+2794
.word .LANCHOR3-3100
.word .LC132
.word .LANCHOR1+1687
.word .LC0
.word .LANCHOR0+2784
.word .LANCHOR3-3088
.word .LANCHOR0+2786
.word .LANCHOR0+2788
.fnend
.size zftl_sblk_list_init, .-zftl_sblk_list_init
.align 2
.global pm_free_sblk
.syntax unified
.arm
.fpu softvfp
.type pm_free_sblk, %function
pm_free_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 272
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #284
sub sp, sp, #284
ldr r5, .L1843
ldrh r3, [r5, #-176]
cmp r3, #128
bls .L1816
mov r2, #94
ldr r1, .L1843+4
ldr r0, .L1843+8
bl printk
bl dump_stack
.L1816:
ldr r4, .L1843+12
mov r2, #0
ldrh ip, [r5, #-176]
movw lr, #65535
ldr r1, [r4, #2800]
add r3, r1, #688
add r1, r1, #416
ldrh r0, [r3]
mov r3, r2
.L1819:
ldrh r6, [r1], #2
cmp r6, lr
addne r2, r2, #1
uxthne r2, r2
cmp r2, r0
bcs .L1818
cmp r2, ip
bcs .L1818
add r3, r3, #1
uxth r3, r3
cmp r3, #128
bne .L1819
.L1818:
add r3, r3, #1
mov r2, #256
uxth fp, r3
mov r1, #0
add r0, sp, #24
cmp fp, #129
mov r6, #0
moveq fp, #128
bl ftl_memset
ldr r7, [r4, #2800]
movw r3, #698
ldrb r8, [r4, #1153] @ zero_extendqisi2
ldrb r2, [r5, #-3136] @ zero_extendqisi2
ldrh r3, [r7, r3]
add r10, r7, #704
rsb r8, r8, #24
str r3, [sp, #12]
ldr r3, .L1843+16
ldrh r9, [r3, #-2]
sub r3, r8, r9
mvn r8, #0
mvn r8, r8, lsl r3
.L1821:
ldr r1, [sp, #12]
uxth r3, r6
cmp r1, r3
bhi .L1824
ldr r3, .L1843+20
add r8, sp, #24
ldrb r7, [r5, #-3127] @ zero_extendqisi2
movw r10, #65535
mov r6, #0
ldrh r3, [r3, #-8]
str r6, [sp, #12]
smulbb r7, r7, r3
uxth r7, r7
.L1830:
ldr r2, [r4, #2800]
add r3, r6, #208
lsl r3, r3, #1
ldrb r1, [r5, #-3136] @ zero_extendqisi2
uxth r9, r6
ldrh r3, [r2, r3]
add r0, r2, #692
ldrh r0, [r0]
str r2, [sp, #16]
str r3, [sp, #20]
bl __aeabi_idiv
ldr r3, [sp, #20]
ldr r2, [sp, #16]
cmp r0, r3
ldreq r0, .L1843+24
ldrbeq r1, [r5, #-3127] @ zero_extendqisi2
ldrheq r0, [r0]
smulbbeq r1, r1, r0
strheq r1, [r8] @ movhi
ldrh r1, [r8]
ldrh ip, [r2, #74]
cmp r1, #0
cmpne r1, r7
movcc r0, #1
movcs r0, #0
cmp r0, #0
ldr r0, [sp, #12]
movne r0, r9
movne r7, r1
str r0, [sp, #16]
str r0, [sp, #12]
movw r0, #65535
cmp r3, r0
cmpne ip, #2
bls .L1827
ldr ip, [r4, #1084]
lsl r0, r3, #2
ldrh r2, [r2, #92]
ldrh r0, [ip, r0]
add r2, r2, #4
ubfx r0, r0, #0, #11
cmp r0, r2
bgt .L1827
mov r10, r9
str r0, [sp]
mov r2, r1
ldr r0, .L1843+28
mov r1, r6
bl printk
.L1827:
ldrh r2, [r8]
cmp r2, #0
bne .L1828
ldr r1, [r4, #2800]
add r9, r6, #208
lsl r3, r9, #1
movw r0, #65535
ldrh r3, [r1, r3]
cmp r3, r0
beq .L1828
ldr r0, .L1843+32
ldr r0, [r0]
tst r0, #4096
beq .L1829
add r1, r1, #688
ldr r0, .L1843+36
ldrh r1, [r1]
str r1, [sp]
mov r1, r6
bl printk
.L1829:
ldr r3, [r4, #2800]
lsl r9, r9, #1
ldrh r0, [r3, r9]
bl ftl_free_sblk
ldr r3, [r4, #2800]
mvn r2, #0
strh r2, [r3, r9] @ movhi
add r3, r3, #688
ldrh r2, [r3]
sub r2, r2, #1
strh r2, [r3] @ movhi
.L1828:
add r6, r6, #1
add r8, r8, #2
uxth r3, r6
cmp fp, r3
bhi .L1830
ldr r3, [sp, #16]
movw r0, #65535
cmp r10, r0
movne r3, r10
mov r0, r3
add sp, sp, #284
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1824:
ldr r0, [r10], #4
mov r1, r2
str r2, [sp, #16]
and r0, r8, r0, lsr r9
bl __aeabi_uidiv
ldr r2, [sp, #16]
uxth r0, r0
add lr, r7, #416
add r1, sp, #24
mov r3, #0
.L1823:
ldrh ip, [lr], #2
add r3, r3, #1
uxth r3, r3
add r1, r1, #2
cmp r0, ip
ldrheq ip, [r1, #-2]
addeq ip, ip, #1
strheq ip, [r1, #-2] @ movhi
cmp fp, r3
bne .L1823
add r6, r6, #1
b .L1821
.L1844:
.align 2
.L1843:
.word .LANCHOR3
.word .LANCHOR1+1707
.word .LC0
.word .LANCHOR0
.word .LANCHOR3-3136
.word .LANCHOR3-3088
.word .LANCHOR3-3096
.word .LC133
.word .LANCHOR2
.word .LC134
.fnend
.size pm_free_sblk, .-pm_free_sblk
.align 2
.global ftl_memcpy
.syntax unified
.arm
.fpu softvfp
.type ftl_memcpy, %function
ftl_memcpy:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b memcpy
.fnend
.size ftl_memcpy, .-ftl_memcpy
.align 2
.global flash_info_data_init
.syntax unified
.arm
.fpu softvfp
.type flash_info_data_init, %function
flash_info_data_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L1852
push {r4, lr}
.save {r4, lr}
ldr r3, [r3]
tst r3, #4096
beq .L1847
ldr r2, .L1852+4
mov r1, #120
ldr r0, .L1852+8
bl printk
.L1847:
ldr r4, .L1852+12
mov r2, #2048
mov r1, #0
ldr r0, [r4, #1040]
bl ftl_memset
ldr r3, [r4, #1040]
ldr r2, .L1852+16
ldr r1, .L1852+20
str r2, [r3]
mov r3, #2032
ldr r0, [r4, #1040]
mov r2, #32
str r3, [r0, #8]
mov r3, #1
strh r3, [r0, #16] @ movhi
add r0, r0, #80
bl ftl_memcpy
ldr r0, [r4, #1040]
mov r2, #32
ldr r1, .L1852+24
pop {r4, lr}
add r0, r0, #48
b ftl_memcpy
.L1853:
.align 2
.L1852:
.word .LANCHOR2
.word .LANCHOR1+1720
.word .LC135
.word .LANCHOR0
.word 1398362953
.word .LANCHOR0+1111
.word .LANCHOR2+4
.fnend
.size flash_info_data_init, .-flash_info_data_init
.align 2
.global ftl_memcpy32
.syntax unified
.arm
.fpu softvfp
.type ftl_memcpy32, %function
ftl_memcpy32:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, #0
.L1855:
cmp r3, r2
bne .L1856
bx lr
.L1856:
ldr ip, [r1, r3, lsl #2]
str ip, [r0, r3, lsl #2]
add r3, r3, #1
b .L1855
.fnend
.size ftl_memcpy32, .-ftl_memcpy32
.align 2
.global ftl_memcmp
.syntax unified
.arm
.fpu softvfp
.type ftl_memcmp, %function
ftl_memcmp:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
b memcmp
.fnend
.size ftl_memcmp, .-ftl_memcmp
.align 2
.global timer_get_time
.syntax unified
.arm
.fpu softvfp
.type timer_get_time, %function
timer_get_time:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1859
ldr r0, [r3]
ldr r3, .L1859+4
ldr r3, [r3, #-168]
sub r0, r0, r3
b jiffies_to_msecs
.L1860:
.align 2
.L1859:
.word jiffies
.word .LANCHOR3
.fnend
.size timer_get_time, .-timer_get_time
.align 2
.global StorageSysDataLoad
.syntax unified
.arm
.fpu softvfp
.type StorageSysDataLoad, %function
StorageSysDataLoad:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r1
mov r5, r0
mov r2, #512
mov r1, #0
mov r0, r4
bl ftl_memset
bl rknand_device_lock
ldr r3, .L1863
mov r2, r4
mov r1, #1
mov r0, r5
ldr r3, [r3, #-160]
ldr r3, [r3, #12]
blx r3
mov r4, r0
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
.L1864:
.align 2
.L1863:
.word .LANCHOR3
.fnend
.size StorageSysDataLoad, .-StorageSysDataLoad
.align 2
.global StorageSysDataStore
.syntax unified
.arm
.fpu softvfp
.type StorageSysDataStore, %function
StorageSysDataStore:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r1
mov r4, r0
bl rknand_device_lock
ldr r3, .L1867
mov r2, r5
mov r1, #1
mov r0, r4
ldr r3, [r3, #-160]
ldr r3, [r3, #16]
blx r3
mov r4, r0
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
.L1868:
.align 2
.L1867:
.word .LANCHOR3
.fnend
.size StorageSysDataStore, .-StorageSysDataStore
.align 2
.global FlashBootVendorRead
.syntax unified
.arm
.fpu softvfp
.type FlashBootVendorRead, %function
FlashBootVendorRead:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r0
mov r5, r1
mov r6, r2
bl rknand_device_lock
ldr r3, .L1871
mov r2, r6
mov r1, r5
mov r0, r4
ldr r3, [r3, #-160]
ldr r3, [r3, #4]
blx r3
mov r4, r0
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
.L1872:
.align 2
.L1871:
.word .LANCHOR3
.fnend
.size FlashBootVendorRead, .-FlashBootVendorRead
.align 2
.global FlashBootVendorWrite
.syntax unified
.arm
.fpu softvfp
.type FlashBootVendorWrite, %function
FlashBootVendorWrite:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r0
mov r5, r1
mov r6, r2
bl rknand_device_lock
ldr r3, .L1875
mov r2, r6
mov r1, r5
mov r0, r4
ldr r3, [r3, #-160]
ldr r3, [r3, #8]
blx r3
mov r4, r0
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
.L1876:
.align 2
.L1875:
.word .LANCHOR3
.fnend
.size FlashBootVendorWrite, .-FlashBootVendorWrite
.align 2
.global flash_sram_load_store
.syntax unified
.arm
.fpu softvfp
.type flash_sram_load_store, %function
flash_sram_load_store:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr ip, .L1882
cmp r2, #0
moveq r2, r3
ldr ip, [ip, #-156]
add ip, ip, #4096
add ip, ip, r1
moveq r1, ip
strne lr, [sp, #-4]!
.save {lr}
movne r1, r0
ldrne lr, [sp], #4
movne r2, r3
movne r0, ip
.L1881:
b ftl_memcpy
.L1883:
.align 2
.L1882:
.word .LANCHOR3
.fnend
.size flash_sram_load_store, .-flash_sram_load_store
.align 2
.global FlashCs123Init
.syntax unified
.arm
.fpu softvfp
.type FlashCs123Init, %function
FlashCs123Init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
bx lr
.fnend
.size FlashCs123Init, .-FlashCs123Init
.align 2
.global ftl_dma32_malloc
.syntax unified
.arm
.fpu softvfp
.type ftl_dma32_malloc, %function
ftl_dma32_malloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
cmp r0, #8192
ble .L1886
b ftl_malloc
.L1886:
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r4, r0, #63
ldr r5, .L1890
bic r4, r4, #63
ldr r3, [r5, #-152]
cmp r4, r3
ble .L1887
mov r0, #16384
bl ftl_malloc
mov r3, #16384
str r0, [r5, #-148]
str r3, [r5, #-152]
.L1887:
ldr r3, [r5, #-152]
ldr r0, [r5, #-148]
sub r3, r3, r4
add r4, r0, r4
str r3, [r5, #-152]
str r4, [r5, #-148]
pop {r4, r5, r6, pc}
.L1891:
.align 2
.L1890:
.word .LANCHOR3
.fnend
.size ftl_dma32_malloc, .-ftl_dma32_malloc
.align 2
.global nandc_init
.syntax unified
.arm
.fpu softvfp
.type nandc_init, %function
nandc_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #16
mov r3, #0
ldr r5, .L1912
mov r6, r0
str r3, [sp, #12]
ldr r3, [r5]
tst r3, #4096
beq .L1893
mov r2, r0
ldr r1, .L1912+4
ldr r0, .L1912+8
bl printk
.L1893:
ldr r4, .L1912+12
mov r3, #6
ldr r2, [r6, #352]
strb r3, [r4, #1028]
ldr r3, .L1912+16
str r6, [r4, #1044]
cmp r2, r3
ldr r2, [r6, #128]
moveq r3, #8
strbeq r3, [r4, #1028]
ldr r3, .L1912+20
cmp r2, r3
ldr r2, .L1912+24
moveq r3, #9
strbeq r3, [r4, #1028]
ldrb r3, [r4, #1028] @ zero_extendqisi2
cmp r3, #9
bne .L1896
mov r3, #1
mov r1, #2
strb r3, [r4, #1195]
ldr r3, [sp, #12]
orr r3, r3, #256
str r3, [sp, #12]
ldr r3, [sp, #12]
bfi r3, r1, #18, #3
str r3, [sp, #12]
ldr r3, [sp, #12]
str r3, [r6]
mov r3, #0
ldr r0, [r4, #1044]
str r3, [r0, #520]
movw r3, #4161
str r3, [r0, #4]
movw r3, #8321
str r3, [r0, #8]
mov r3, #38
str r2, [r0, #80]
str r3, [r0, #84]
mov r3, #39
str r3, [r0, #84]
ldr r3, [r5]
tst r3, #4096
beq .L1898
ldr r1, [r0]
ldr r2, [r0, #8]
ldr r3, [r0, #80]
ldr ip, [r0, #84]
ldr r0, [r0, #88]
.L1911:
str r0, [sp, #4]
str ip, [sp]
ldr r0, .L1912+28
bl printk
.L1898:
mov r3, #1
movw r2, #1228
strb r3, [r4, #1196]
mov r3, #0
strh r3, [r4, r2] @ movhi
strb r3, [r4, #1193]
ldr r3, [r5]
tst r3, #4096
beq .L1892
ldrb r1, [r4, #1028] @ zero_extendqisi2
ldr r0, .L1912+32
bl printk
.L1892:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, pc}
.L1896:
ldr r3, [sp, #12]
mov r0, #1
mov r1, #0
strb r1, [r4, #1195]
orr r3, r3, #256
str r3, [sp, #12]
ldr r3, [sp, #12]
bfi r3, r0, #24, #3
mov r0, #2048
str r3, [sp, #12]
ldr r3, [sp, #12]
str r3, [r6]
ldr r3, [r4, #1044]
str r1, [r3, #336]
movw r1, #4193
str r1, [r3, #4]
movw r1, #8321
str r1, [r3, #344]
str r2, [r3, #304]
mov r2, #38
str r2, [r3, #308]
mov r2, #39
str r2, [r3, #308]
bl ftl_dma32_malloc
ldr r3, [r5]
str r0, [r4, #1200]
tst r3, #4096
beq .L1898
ldr r0, [r4, #1044]
ldr r1, [r0]
ldr r2, [r0, #344]
ldr r3, [r0, #304]
ldr ip, [r0, #308]
ldr r0, [r0, #312]
b .L1911
.L1913:
.align 2
.L1912:
.word .LANCHOR2
.word .LANCHOR1+1741
.word .LC136
.word .LANCHOR0
.word 1446522928
.word 1446588464
.word 1052675
.word .LC137
.word .LC138
.fnend
.size nandc_init, .-nandc_init
.align 2
.global zbuf_init
.syntax unified
.arm
.fpu softvfp
.type zbuf_init, %function
zbuf_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r5, #0
ldr r4, .L1918
mov r6, r5
ldr r7, .L1918+4
.L1915:
ldrb r0, [r7, #-2546] @ zero_extendqisi2
uxtb r3, r5
strb r6, [r4, #2]
add r5, r5, #1
add r2, r3, #1
strb r3, [r4, #1]
strb r2, [r4]
add r4, r4, #48
lsl r0, r0, #9
str r6, [r4, #-40]
bl ftl_dma32_malloc
str r0, [r4, #-44]
mov r0, #64
bl ftl_dma32_malloc
cmp r5, #32
str r0, [r4, #-36]
bne .L1915
ldr r3, .L1918+8
mvn r2, #0
strb r2, [r3, #2720]
strb r6, [r3, #2768]
strb r5, [r3, #2769]
pop {r4, r5, r6, r7, r8, pc}
.L1919:
.align 2
.L1918:
.word .LANCHOR0+1232
.word .LANCHOR3
.word .LANCHOR0
.fnend
.size zbuf_init, .-zbuf_init
.align 2
.global gc_init
.syntax unified
.arm
.fpu softvfp
.type gc_init, %function
gc_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movw r9, #2824
ldr r6, .L1922
mov r5, #0
movw r2, #2204
mov r1, r5
ldr r4, .L1922+4
add r7, r6, r9
mov r0, r7
sub r8, r4, #3088
strb r5, [r4, #-3119]
strb r5, [r4, #-144]
str r5, [r4, #-140]
strh r5, [r8, #-6] @ movhi
bl ftl_memset
mvn r3, #0
ldrb r0, [r4, #-3127] @ zero_extendqisi2
strh r3, [r6, r9] @ movhi
movw ip, #2806
ldrh r3, [r8, #-8]
str r5, [r6, #2832]
lsr r2, r3, #1
lsr r1, r3, #2
strh r2, [r7, #34] @ movhi
smulbb r2, r0, r3
strh r1, [r7, #32] @ movhi
sub r7, r4, #3104
strh r5, [r7, #-8] @ movhi
uxth r2, r2
strh r5, [r7, #-6] @ movhi
strh r5, [r7, #-4] @ movhi
sub lr, r2, #32
strh lr, [r6, ip] @ movhi
movw ip, #2808
strh r2, [r6, ip] @ movhi
add r2, r6, #2816
strh r3, [r2] @ movhi
mov r3, #4
strh r3, [r4, #-136] @ movhi
movw r3, #2818
strh r1, [r6, r3] @ movhi
ldrh r3, [r7, #-14]
mul r0, r0, r3
lsl r0, r0, #2
bl ftl_dma32_malloc
ldrh r3, [r7, #-14]
str r0, [r4, #-132]
ldrb r0, [r4, #-3127] @ zero_extendqisi2
mul r0, r0, r3
lsl r0, r0, #2
bl ftl_dma32_malloc
ldrh r3, [r7, #-14]
str r0, [r4, #-128]
ldrb r0, [r4, #-3127] @ zero_extendqisi2
mul r0, r0, r3
bl ftl_dma32_malloc
ldrh r3, [r7, #-14]
str r0, [r4, #-3124]
ldrb r0, [r4, #-3127] @ zero_extendqisi2
mul r0, r0, r3
lsl r0, r0, #2
bl ftl_dma32_malloc
ldrh r3, [r7, #-14]
str r0, [r4, #-3132]
ldrb r0, [r4, #-3127] @ zero_extendqisi2
mul r0, r0, r3
lsl r0, r0, #2
bl ftl_dma32_malloc
ldrh r3, [r8, #-4]
movw r2, #2804
str r0, [r4, #-124]
lsr r3, r3, #2
strh r3, [r6, r2] @ movhi
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L1923:
.align 2
.L1922:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size gc_init, .-gc_init
.align 2
.global rk_ftl_de_init
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_de_init, %function
rk_ftl_de_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
mov r1, #0
ldr r0, .L1926
bl printk
ldr r3, .L1926+4
pop {r4, lr}
ldr r3, [r3, #-160]
ldr r3, [r3, #40]
bx r3 @ indirect register sibling call
.L1927:
.align 2
.L1926:
.word .LC139
.word .LANCHOR3
.fnend
.size rk_ftl_de_init, .-rk_ftl_de_init
.align 2
.global rk_ftl_cache_write_back
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_cache_write_back, %function
rk_ftl_cache_write_back:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1929
mov r0, #0
ldr r3, [r3, #-160]
ldr r3, [r3, #32]
bx r3 @ indirect register sibling call
.L1930:
.align 2
.L1929:
.word .LANCHOR3
.fnend
.size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
.align 2
.global rk_nand_suspend
.syntax unified
.arm
.fpu softvfp
.type rk_nand_suspend, %function
rk_nand_suspend:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1932
ldr r3, [r3, #-160]
ldr r3, [r3, #44]
bx r3 @ indirect register sibling call
.L1933:
.align 2
.L1932:
.word .LANCHOR3
.fnend
.size rk_nand_suspend, .-rk_nand_suspend
.align 2
.global rk_nand_resume
.syntax unified
.arm
.fpu softvfp
.type rk_nand_resume, %function
rk_nand_resume:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1935
ldr r3, [r3, #-160]
ldr r3, [r3, #48]
bx r3 @ indirect register sibling call
.L1936:
.align 2
.L1935:
.word .LANCHOR3
.fnend
.size rk_nand_resume, .-rk_nand_resume
.align 2
.global rk_ftl_get_capacity
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_get_capacity, %function
rk_ftl_get_capacity:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1938
mov r0, #0
ldr r3, [r3, #-160]
ldr r3, [r3, #36]
bx r3
.L1939:
.align 2
.L1938:
.word .LANCHOR3
.fnend
.size rk_ftl_get_capacity, .-rk_ftl_get_capacity
.align 2
.global rk_nandc_get_irq_status
.syntax unified
.arm
.fpu softvfp
.type rk_nandc_get_irq_status, %function
rk_nandc_get_irq_status:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1941
ldr r3, [r3, #-160]
ldr r3, [r3, #60]
bx r3
.L1942:
.align 2
.L1941:
.word .LANCHOR3
.fnend
.size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
.align 2
.global rknand_proc_ftlread
.syntax unified
.arm
.fpu softvfp
.type rknand_proc_ftlread, %function
rknand_proc_ftlread:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1944
ldr r3, [r3, #-160]
ldr r3, [r3, #64]
bx r3
.L1945:
.align 2
.L1944:
.word .LANCHOR3
.fnend
.size rknand_proc_ftlread, .-rknand_proc_ftlread
.align 2
.global FtlRead
.syntax unified
.arm
.fpu softvfp
.type FtlRead, %function
FtlRead:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr ip, .L1948
str lr, [sp, #-4]!
.save {lr}
ldr ip, [ip, #-160]
ldr lr, [ip, #20]
mov ip, lr
ldr lr, [sp], #4
bx ip
.L1949:
.align 2
.L1948:
.word .LANCHOR3
.fnend
.size FtlRead, .-FtlRead
.align 2
.global FtlDiscard
.syntax unified
.arm
.fpu softvfp
.type FtlDiscard, %function
FtlDiscard:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1951
ldr r3, [r3, #-160]
ldr r3, [r3, #28]
bx r3
.L1952:
.align 2
.L1951:
.word .LANCHOR3
.fnend
.size FtlDiscard, .-FtlDiscard
.align 2
.global rk_ftl_garbage_collect
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_garbage_collect, %function
rk_ftl_garbage_collect:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1954
ldr r3, [r3, #-160]
ldr r3, [r3, #52]
bx r3
.L1955:
.align 2
.L1954:
.word .LANCHOR3
.fnend
.size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
.align 2
.global ReadFlashInfo
.syntax unified
.arm
.fpu softvfp
.type ReadFlashInfo, %function
ReadFlashInfo:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L1957
ldr r3, [r3, #-160]
ldr r3, [r3, #56]
bx r3 @ indirect register sibling call
.L1958:
.align 2
.L1957:
.word .LANCHOR3
.fnend
.size ReadFlashInfo, .-ReadFlashInfo
.align 2
.global rknand_print_hex
.syntax unified
.arm
.fpu softvfp
.type rknand_print_hex, %function
rknand_print_hex:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
mov ip, r2
push {r0, r1, r2, r3, r4, lr}
.save {lr}
.pad #20
mul r3, r3, ip
mov r2, #0
str r2, [sp, #12]
str ip, [sp]
stmib sp, {r1, r3}
mov r1, r0
mov r3, #16
ldr r0, .L1961
bl print_hex_dump
add sp, sp, #20
@ sp needed
ldr pc, [sp], #4
.L1962:
.align 2
.L1961:
.word .LC140
.fnend
.size rknand_print_hex, .-rknand_print_hex
.align 2
.global hynix_get_read_retry_default
.syntax unified
.arm
.fpu softvfp
.type hynix_get_read_retry_default, %function
hynix_get_read_retry_default:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, r0
ldr r6, .L2074
mvn r3, #83
cmp r5, #2
mvn r2, #81
.pad #52
sub sp, sp, #52
ldr r4, [r6, #1040]
strb r0, [r4, #112]
mvn r0, #82
strb r3, [r4, #128]
mvn r3, #80
add r1, r4, #128
strb r0, [r4, #129]
strb r2, [r4, #130]
strb r3, [r4, #131]
bne .L1964
mvn r3, #88
mov r10, #7
strb r3, [r4, #128]
mvn r2, #8
ldr r3, .L2074+4
strb r2, [r3, #407]
.L2068:
mov fp, #4
b .L1965
.L1964:
cmp r5, #3
bne .L1966
add r2, r4, #127
mov r3, #176
.L1967:
strb r3, [r2, #1]!
add r3, r3, #1
uxtb r3, r3
cmp r3, #184
bne .L1967
.L2069:
mov r10, #8
mov fp, r10
.L1965:
sub r3, r5, #1
cmp r3, #1
bhi .L1973
sub r9, fp, #1
mov r8, #0
uxtab r3, r1, r9
str r3, [sp, #4]
.L1974:
ldrb r2, [r6, #1109] @ zero_extendqisi2
uxtb r3, r8
cmp r2, r3
bhi .L1979
.L1980:
strb fp, [r4, #113]
strb r10, [r4, #114]
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L1966:
cmp r5, #4
bne .L1968
mvn ip, #51
strb r0, [r4, #133]
strb ip, [r4, #128]
mvn ip, #64
strb ip, [r4, #129]
mvn ip, #85
strb ip, [r4, #130]
mvn ip, #84
strb ip, [r4, #131]
mvn ip, #50
strb ip, [r4, #132]
strb r2, [r4, #134]
strb r3, [r4, #135]
b .L2069
.L1968:
cmp r5, #5
bne .L1969
mov r3, #56
mov r10, #8
strb r3, [r4, #128]
mov r3, #57
strb r3, [r4, #129]
mov r3, #58
strb r3, [r4, #130]
mov r3, #59
strb r3, [r4, #131]
b .L2068
.L1969:
cmp r5, #6
bne .L1970
mov r3, #14
mov r10, #12
strb r3, [r4, #128]
mov r3, #15
strb r3, [r4, #129]
mov r3, #16
strb r3, [r4, #130]
mov r3, #17
strb r3, [r4, #131]
b .L2068
.L1970:
cmp r5, #7
bne .L1971
add r2, r4, #127
mov r3, #176
.L1972:
strb r3, [r2, #1]!
add r3, r3, #1
uxtb r3, r3
cmp r3, #184
bne .L1972
mvn r3, #43
mov r10, #12
strb r3, [r4, #136]
mvn r3, #42
strb r3, [r4, #137]
mov fp, #10
b .L1965
.L1971:
cmp r5, #8
mov r3, #7
movne r10, r3
bne .L2068
strb r3, [r4, #129]
mov r3, #9
mov r2, #6
strb r3, [r4, #131]
mov r3, #10
strb r2, [r4, #128]
strb r5, [r4, #130]
mov r10, #50
strb r3, [r4, #132]
mov fp, #5
b .L1965
.L1979:
add r3, r6, r3
mov r5, #160
ldrb r3, [r3, #1144] @ zero_extendqisi2
add r1, r4, #127
ldr r7, [r6, #1044]
mla r5, r5, r3, r4
add r7, r7, r3, lsl #8
mov r3, #55
add r5, r5, #144
sub r9, r5, #1
.L1975:
str r3, [r7, #2056]
mov r0, #200
ldrb r2, [r1, #1]! @ zero_extendqisi2
str r3, [sp, #12]
str r2, [r7, #2052]
str r1, [sp, #8]
bl ndelay
ldr r3, [sp, #4]
ldr r1, [sp, #8]
ldr r2, [r7, #2048]
cmp r3, r1
ldr r3, [sp, #12]
strb r2, [r9, #1]!
bne .L1975
ldr lr, .L2074+8
mov r1, r5
mov r2, #0
.L1976:
mov r3, #1
add ip, lr, r2
.L1977:
ldrb r0, [ip, r3, lsl #2] @ zero_extendqisi2
ldrb r7, [r1] @ zero_extendqisi2
add r0, r0, r7
strb r0, [r1, r3, lsl #3]
add r3, r3, #1
cmp r3, #7
bne .L1977
add r2, r2, #1
add r1, r1, #1
cmp r2, #4
bne .L1976
mov r3, #0
add r8, r8, #1
strb r3, [r5, #16]
strb r3, [r5, #24]
strb r3, [r5, #32]
strb r3, [r5, #40]
strb r3, [r5, #48]
strb r3, [r5, #41]
strb r3, [r5, #49]
b .L1974
.L1973:
sub r3, r5, #3
cmp r3, #5
bhi .L1980
smulbb r3, fp, r10
asr r2, r3, #1
lsl r3, r3, #4
str r3, [sp, #44]
lsl r3, r2, #2
str r2, [sp, #4]
str r3, [sp, #36]
lsl r3, r2, #1
str r3, [sp, #20]
mov r3, #0
.L2073:
str r3, [sp, #16]
ldr r3, .L2074
ldrb r2, [r3, #1109] @ zero_extendqisi2
ldrb r3, [sp, #16] @ zero_extendqisi2
cmp r2, r3
bls .L1980
ldr r2, .L2074
mov r7, #255
add r3, r2, r3
ldrb r8, [r3, #1144] @ zero_extendqisi2
mov r0, r8
bl zftl_flash_exit_slc_mode
mov r0, #160
mla r0, r0, r8, r4
add r3, r0, #144
str r3, [sp, #32]
ldr r3, .L2074
ldr r9, [r3, #1044]
add r6, r9, r8, lsl #8
str r7, [r6, #2056]
bl nandc_wait_flash_ready
cmp r5, #8
bne .L1982
add r3, r4, #144
mov r2, #23
str r3, [sp, #32]
mov r3, #120
str r3, [r6, #2056]
mov r3, #0
str r3, [r6, #2052]
mov r1, #25
str r3, [r6, #2052]
str r3, [r6, #2052]
str r2, [r6, #2056]
mov r2, #4
str r2, [r6, #2056]
str r1, [r6, #2056]
mov r1, #218
str r1, [r6, #2056]
mov r1, #21
str r3, [r6, #2056]
str r3, [r6, #2052]
str r3, [r6, #2052]
str r1, [r6, #2052]
str r2, [r6, #2052]
str r3, [r6, #2052]
.L1983:
add r3, r9, r8, lsl #8
mov r2, #48
str r2, [r3, #2056]
bl nandc_wait_flash_ready
sub r3, r5, #5
cmp r5, #8
cmpne r3, #1
str r3, [sp, #40]
movls r2, #16
bls .L1989
cmp r5, #7
movne r2, #2
moveq r2, #32
.L1989:
ldr r3, .L2074+12
sub r2, r2, #1
add r6, r9, r8, lsl #8
ldr r3, [r3, #-120]
sub r1, r3, #1
uxtab r2, r3, r2
mov r0, r1
.L1990:
ldr ip, [r6, #2048]
strb ip, [r0, #1]!
cmp r0, r2
bne .L1990
cmp r5, #8
bne .L1991
mov r2, #0
.L1993:
ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
uxtb r1, r2
cmp r0, #50
beq .L1992
add r0, r3, r2, lsl #2
ldrb r0, [r0, #1] @ zero_extendqisi2
cmp r0, #5
beq .L1992
add r2, r2, #1
cmp r2, #8
bne .L1993
.L1994:
mov r1, #0
ldr r0, .L2074+16
bl printk
.L1996:
b .L1996
.L1982:
cmp r5, #4
mov r3, #54
str r3, [r6, #2056]
bne .L1984
mov r3, #64
str r7, [r6, #2052]
str r3, [r6, #2048]
mov r3, #204
.L2070:
str r3, [r6, #2052]
mov r3, #77
.L2071:
str r3, [r6, #2048]
.L1985:
add r3, r9, r8, lsl #8
mov r2, #22
cmp r5, #6
str r2, [r3, #2056]
mov r2, #23
str r2, [r3, #2056]
mov r2, #4
str r2, [r3, #2056]
mov r2, #25
str r2, [r3, #2056]
mov r2, #0
str r2, [r3, #2056]
str r2, [r3, #2052]
str r2, [r3, #2052]
moveq r2, #31
str r2, [r3, #2052]
mov r2, #2
str r2, [r3, #2052]
mov r2, #0
str r2, [r3, #2052]
b .L1983
.L1984:
sub r3, r5, #5
cmp r3, #1
ldrbls r3, [r4, #128] @ zero_extendqisi2
strls r3, [r6, #2052]
movls r3, #82
bls .L2071
cmp r5, #7
bne .L1985
mov r3, #174
str r3, [r6, #2052]
mov r3, #0
str r3, [r6, #2048]
mov r3, #176
b .L2070
.L1992:
cmp r1, #6
bhi .L1994
.L1995:
ldr r3, .L2074+12
ldr r2, [r3, #-120]
mov r3, r2
.L2005:
ldr r0, [sp, #44]
sub r1, r3, r2
cmp r0, r1
bgt .L2006
ldr r3, .L2074+12
ldr r1, [r3, #-120]
ldr r3, [sp, #20]
add r0, r1, r3
mov r3, #8
.L2008:
mov lr, r0
mov ip, #0
.L2007:
ldrh r7, [lr]
add ip, ip, #1
mvn r7, r7
strh r7, [lr], #2 @ movhi
ldr r7, [sp, #4]
cmp r7, ip
bgt .L2007
ldr ip, [sp, #36]
subs r3, r3, #1
add r0, r0, ip
bne .L2008
str r1, [sp, #8]
str r3, [sp, #12]
.L2009:
mov ip, #0
mov r0, ip
.L2013:
mov lr, #1
mov r7, #16
lsl lr, lr, r0
str r7, [sp, #28]
mov r7, #0
str lr, [sp, #24]
ldr lr, [sp, #8]
.L2011:
ldrh r3, [lr]
mov r1, r3
ldr r3, [sp, #24]
bics r3, r3, r1
ldr r3, [sp, #20]
addeq r7, r7, #1
add lr, lr, r3
ldr r3, [sp, #28]
subs r3, r3, #1
str r3, [sp, #28]
bne .L2011
cmp r7, #8
add r0, r0, #1
ldrhi r3, [sp, #24]
orrhi ip, ip, r3
uxthhi ip, ip
cmp r0, #16
bne .L2013
ldr r3, [sp, #8]
strh ip, [r3], #2 @ movhi
str r3, [sp, #8]
ldr r3, [sp, #12]
add r3, r3, #1
str r3, [sp, #12]
ldr r1, [sp, #12]
ldr r3, [sp, #4]
cmp r3, r1
bgt .L2009
ldr r3, .L2074+12
ldr r1, [r3, #-120]
mov r3, #0
sub r0, r1, #4
add ip, r1, #28
.L2016:
ldr lr, [r0, #4]!
cmp lr, #0
addeq r3, r3, #1
cmp ip, r0
bne .L2016
cmp r3, #7
ble .L2017
ldr r0, .L2074+20
mov r3, #1024
mov r2, #1
bl rknand_print_hex
mov r1, #0
ldr r0, .L2074+16
bl printk
.L2018:
b .L2018
.L1991:
cmp r5, #7
bne .L1997
mov r2, #0
.L1999:
ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
uxtb r1, r2
cmp r0, #12
beq .L1998
add r0, r3, r2, lsl #2
ldrb r0, [r0, #1] @ zero_extendqisi2
cmp r0, #10
beq .L1998
add r2, r2, #1
cmp r2, #8
bne .L1999
.L2000:
mov r1, #0
ldr r0, .L2074+16
bl printk
.L2001:
b .L2001
.L1998:
cmp r1, #6
bls .L1995
b .L2000
.L1997:
cmp r5, #6
bne .L1995
add r3, r3, #7
.L2002:
ldrb r2, [r1, #1]! @ zero_extendqisi2
cmp r2, #12
beq .L1995
ldrb r2, [r1, #8] @ zero_extendqisi2
cmp r2, #4
beq .L1995
cmp r1, r3
bne .L2002
mov r1, #0
ldr r0, .L2074+16
bl printk
.L2004:
b .L2004
.L2006:
ldr r1, [r6, #2048]
strb r1, [r3], #1
b .L2005
.L2017:
cmp r5, #6
moveq ip, #4
beq .L2019
cmp r5, #7
moveq ip, #10
beq .L2019
cmp r5, #8
movne ip, #8
moveq ip, #5
.L2019:
sub r3, fp, #1
ldr r0, [sp, #32]
uxtb r3, r3
mov lr, #0
add r3, r3, #1
str r3, [sp, #8]
.L2020:
mov r3, r0
mov r1, r2
.L2021:
ldrb r7, [r1], #1 @ zero_extendqisi2
strb r7, [r3], #1
sub r7, r1, r2
uxtb r7, r7
cmp fp, r7
bhi .L2021
ldr r3, [sp, #8]
add lr, lr, #1
cmp r10, lr
add r0, r0, ip
add r2, r2, r3
bgt .L2020
add r7, r9, r8, lsl #8
mov r8, #255
str r8, [r7, #2056]
bl nandc_wait_flash_ready
ldr r3, [sp, #40]
cmp r3, #1
bhi .L2023
mov r3, #54
mov r2, #22
str r3, [r7, #2056]
ldrb r3, [r4, #128] @ zero_extendqisi2
str r3, [r6, #2052]
mov r3, #0
str r3, [r6, #2048]
str r2, [r7, #2056]
str r3, [r7, #2056]
str r3, [r6, #2052]
str r3, [r6, #2052]
mov r3, #48
str r8, [r6, #2052]
str r8, [r6, #2052]
str r8, [r6, #2052]
.L2072:
str r3, [r7, #2056]
bl nandc_wait_flash_ready
ldr r3, [sp, #16]
add r3, r3, #1
b .L2073
.L2023:
cmp r5, #8
moveq r3, #190
movne r3, #56
b .L2072
.L2075:
.align 2
.L2074:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR2+390
.word .LANCHOR3
.word .LC141
.word .LC142
.fnend
.size hynix_get_read_retry_default, .-hynix_get_read_retry_default
.align 2
.global flash_get_read_retry_tbl
.syntax unified
.arm
.fpu softvfp
.type flash_get_read_retry_tbl, %function
flash_get_read_retry_tbl:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L2078
ldrb r0, [r3, #23] @ zero_extendqisi2
sub r3, r0, #1
cmp r3, #7
bxhi lr
b hynix_get_read_retry_default
.L2079:
.align 2
.L2078:
.word .LANCHOR2
.fnend
.size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
.align 2
.global nandc_xfer_done
.syntax unified
.arm
.fpu softvfp
.type nandc_xfer_done, %function
nandc_xfer_done:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r1, #0
ldr r4, .L2129
ldr r7, .L2129+4
ldrb r3, [r4, #1028] @ zero_extendqisi2
ldr r6, [r4, #1044]
strb r1, [r7, #-116]
cmp r3, #9
bne .L2081
ldr r3, [r6, #16]
str r3, [sp]
ldr r5, [r6, #48]
ubfx r5, r5, #1, #1
cmp r5, r1
bne .L2082
ldr r7, .L2129+8
ldr r8, .L2129+12
.L2083:
ldr r3, [sp]
tst r3, #1048576
beq .L2093
ldr r3, [r4, #1220]
cmp r3, #0
beq .L2091
ldr r1, [sp]
mov r2, #1
ldr r0, [r4, #1212]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
bl rknand_dma_unmap_single
ldr r1, [sp]
mov r2, #1
ubfx r1, r1, #22, #6
b .L2128
.L2082:
mov r5, r1
.L2084:
ldr r2, [r6, #64]
ldr r3, [sp]
ubfx r2, r2, #16, #6
ubfx r3, r3, #22, #6
cmp r2, r3
bge .L2086
ldr r3, [r4, #1044]
ldr r3, [r3]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #8192
beq .L2085
ldr r3, [sp, #4]
tst r3, #131072
beq .L2085
ldr r1, [sp, #4]
ldr r0, .L2129+16
ubfx r1, r1, #17, #1
bl printk
.L2086:
ldr r3, [r4, #1220]
cmp r3, #0
beq .L2091
ldr r1, [sp]
mov r2, #0
ldr r0, [r4, #1212]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
bl rknand_dma_unmap_single
ldr r1, [sp]
mov r2, #0
ubfx r1, r1, #22, #6
.L2128:
lsl r1, r1, #2
.L2126:
ldr r0, [r4, #1216]
bl rknand_dma_unmap_single
.L2091:
mov r3, #0
str r3, [r4, #1220]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L2085:
ldr r3, [sp]
add r5, r5, #1
ubfx r3, r3, #22, #6
cmp r5, r3, lsl #12
bne .L2087
ldr r2, [r6, #64]
mov r1, r5
ldr r3, [sp]
ldr r0, .L2129+20
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
bl printk
ldr r3, [sp, #4]
tst r3, #8192
mov r3, #1
strb r3, [r7, #-116]
bne .L2086
ldr r3, .L2129+24
ldr r0, .L2129+28
ldr r3, [r3, #4]
blx r3
b .L2086
.L2087:
mov r1, #10
mov r0, #5
bl usleep_range
b .L2084
.L2093:
ldr r3, [r4, #1044]
add r5, r5, #1
ldr r3, [r3, #16]
str r3, [sp]
bics r3, r5, #-16777216
bne .L2092
ldr r2, [sp]
mov r1, r5
ldr r3, [r6, #64]
mov r0, r7
ubfx r3, r3, #16, #6
bl printk
mov r3, #64
mov r2, #4
ldr r1, [r4, #1044]
mov r0, r8
bl rknand_print_hex
.L2092:
mov r1, #10
mov r0, #5
bl usleep_range
b .L2083
.L2081:
ldr r3, [r6, #8]
str r3, [sp]
ldr r5, [r6, #16]
ubfx r5, r5, #1, #1
cmp r5, #0
bne .L2095
ldr r7, .L2129+8
ldr r8, .L2129+12
.L2096:
ldr r3, [sp]
tst r3, #1048576
beq .L2103
ldr r3, [r4, #1220]
cmp r3, #0
beq .L2091
ldr r1, [sp]
mov r2, #1
ldr r0, [r4, #1212]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
bl rknand_dma_unmap_single
ldr r1, [sp]
mov r2, #1
ubfx r1, r1, #22, #6
b .L2127
.L2095:
ldr r7, .L2129+20
mov r5, r1
ldr r8, .L2129+12
.L2097:
ldr r2, [r6, #28]
ldr r3, [sp]
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
cmp r2, r3
bge .L2099
ldr r3, [r4, #1044]
ldr r3, [r3]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #8192
beq .L2098
ldr r3, [sp, #4]
tst r3, #131072
beq .L2098
ldr r1, [sp, #4]
ldr r0, .L2129+32
bl printk
.L2099:
ldr r3, [r4, #1220]
cmp r3, #0
beq .L2091
ldr r1, [sp]
mov r2, #0
ldr r0, [r4, #1212]
ubfx r1, r1, #22, #6
lsl r1, r1, #10
bl rknand_dma_unmap_single
ldr r1, [sp]
mov r2, #0
ubfx r1, r1, #22, #6
.L2127:
lsl r1, r1, #7
b .L2126
.L2098:
add r5, r5, #1
bics r3, r5, #-16777216
bne .L2100
ldr r2, [r6, #28]
mov r1, r5
ldr r3, [sp]
mov r0, r7
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
bl printk
mov r3, #64
mov r2, #4
ldr r1, [r4, #1044]
mov r0, r8
bl rknand_print_hex
.L2100:
mov r1, #10
mov r0, #5
bl usleep_range
b .L2097
.L2103:
ldr r3, [r4, #1044]
add r5, r5, #1
ldr r3, [r3, #8]
str r3, [sp]
bics r3, r5, #-16777216
bne .L2102
ldr r2, [sp]
mov r1, r5
ldr r3, [r6, #28]
mov r0, r7
ubfx r3, r3, #16, #5
bl printk
mov r3, #64
mov r2, #4
ldr r1, [r4, #1044]
mov r0, r8
bl rknand_print_hex
.L2102:
mov r1, #10
mov r0, #5
bl usleep_range
b .L2096
.L2130:
.align 2
.L2129:
.word .LANCHOR0
.word .LANCHOR3
.word .LC145
.word .LC146
.word .LC143
.word .LC144
.word arm_delay_ops
.word 644245000
.word .LC147
.fnend
.size nandc_xfer_done, .-nandc_xfer_done
.align 2
.global nandc_xfer
.syntax unified
.arm
.fpu softvfp
.type nandc_xfer, %function
nandc_xfer:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r4, r1
ldr r5, [sp, #32]
mov r8, r2
mov r6, r3
mov r1, r8
mov r2, r6
mov r0, r4
mov r3, r5
bl nandc_xfer_start
mov r0, r4
bl nandc_xfer_done
cmp r4, #0
movne r0, #0
bne .L2132
ldr r7, .L2170
ldrb r3, [r7, #1028] @ zero_extendqisi2
cmp r3, #9
bne .L2133
ldr r1, [r7, #1044]
lsr r8, r8, #2
mov r2, #1
mov r0, r4
.L2134:
cmp r4, r8
bcc .L2138
ldr r4, [r1]
cmp r2, #0
movne r0, #512
and r3, r4, #139264
cmp r3, #139264
bne .L2140
mov r1, r4
ldr r0, .L2170+4
bl printk
ldr r3, [r7, #1044]
mvn r0, #0
orr r4, r4, #131072
str r4, [r3]
.L2140:
tst r4, #8192
beq .L2141
ldr r3, .L2170+8
ldrb r3, [r3, #-116] @ zero_extendqisi2
cmp r3, #0
beq .L2141
mov r1, r4
ldr r0, .L2170+12
bl printk
ldr r3, [r7, #1044]
mov r2, #1
str r2, [r3, #16]
.L2169:
mvn r0, #0
.L2132:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L2138:
add r3, r4, #84
ldr r3, [r1, r3, lsl #2]
str r3, [sp, #4]
ldr ip, [sp, #4]
ldr r3, [sp, #4]
ubfx r3, r3, #26, #1
and r3, r3, ip, lsr #10
and r2, r2, r3
ldr r3, [sp, #4]
tst r3, #4
bne .L2152
ldr r3, [sp, #4]
tst r3, #262144
bne .L2152
ldr ip, [sp, #4]
ldr r3, [sp, #4]
ubfx ip, ip, #3, #7
ubfx r3, r3, #19, #7
cmp ip, r3
ldr r3, [sp, #4]
ubfxgt r3, r3, #3, #7
ubfxle r3, r3, #19, #7
cmp r0, r3
movcc r0, r3
.L2135:
add r4, r4, #1
b .L2134
.L2152:
mvn r0, #0
b .L2135
.L2133:
ldrb r3, [r7, #1193] @ zero_extendqisi2
lsr r0, r8, #1
mov r2, r5
mov r1, r4
cmp r3, #25
movcc lr, #64
movcs lr, #128
.L2143:
cmp r1, r0
add ip, lr, r4
add r2, r2, #4
bcc .L2144
ldr r1, [r7, #1044]
mov r2, #0
lsr r8, r8, #2
mov r0, r2
.L2145:
cmp r2, r8
bcc .L2149
mov r3, #0
str r3, [r1, #16]
ldr r4, [r1]
and r3, r4, #139264
cmp r3, #139264
bne .L2141
mov r1, r4
ldr r0, .L2170+16
bl printk
ldr r3, [r7, #1044]
orr r4, r4, #131072
str r4, [r3]
b .L2169
.L2144:
ldr r3, [r7, #1200]
bic r4, r4, #3
add r1, r1, #1
ldr r3, [r3, r4]
strb r3, [r2, #-4]
lsr r4, r3, #8
strb r4, [r2, #-3]
lsr r4, r3, #16
lsr r3, r3, #24
strb r4, [r2, #-2]
mov r4, ip
strb r3, [r2, #-1]
b .L2143
.L2149:
add r3, r2, #8
ldr r3, [r1, r3, lsl #2]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #4
bne .L2155
ldr r3, [sp, #4]
tst r3, #32768
bne .L2155
ldr ip, [sp, #4]
ldr r4, [sp, #4]
ldr r3, [sp, #4]
ldr lr, [sp, #4]
ubfx ip, ip, #3, #5
ubfx r4, r4, #27, #1
ubfx r3, r3, #16, #5
orr ip, ip, r4, lsl #5
ubfx lr, lr, #29, #1
orr r3, r3, lr, lsl #5
cmp ip, r3
ldr r3, [sp, #4]
ldrhi ip, [sp, #4]
ldrls ip, [sp, #4]
ubfxhi r3, r3, #3, #5
ubfxls r3, r3, #16, #5
ubfxhi ip, ip, #27, #1
ubfxls ip, ip, #29, #1
orr r3, r3, ip, lsl #5
cmp r0, r3
movcc r0, r3
.L2146:
add r2, r2, #1
b .L2145
.L2155:
mvn r0, #0
b .L2146
.L2141:
cmn r0, #1
beq .L2132
ldr r3, [r5]
cmn r3, #1
bne .L2132
ldr r3, [r5, #4]
cmn r3, #1
bne .L2132
ldr r3, [r6]
cmn r3, #1
moveq r0, #512
b .L2132
.L2171:
.align 2
.L2170:
.word .LANCHOR0
.word .LC148
.word .LANCHOR3
.word .LC149
.word .LC150
.fnend
.size nandc_xfer, .-nandc_xfer
.align 2
.global flash_read_page
.syntax unified
.arm
.fpu softvfp
.type flash_read_page, %function
flash_read_page:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r6, r0
ldr r7, .L2188
.pad #20
sub sp, sp, #20
ubfx r9, r1, #24, #2
mov r8, r3
str r2, [sp, #12]
lsl r10, r6, #8
ldrb r4, [r7, #1153] @ zero_extendqisi2
ldr r5, [r7, #1044]
rsb r0, r4, #24
mvn r4, #0
bic r4, r1, r4, lsl r0
bl nandc_wait_flash_ready
mov r0, r6
bl nandc_cs
cmp r9, #0
bne .L2173
mov r0, r6
bl zftl_flash_enter_slc_mode
.L2174:
ldr r2, [r7, #1104]
ldrb r1, [r2, #7] @ zero_extendqisi2
cmp r1, #1
bne .L2176
ldrb r1, [r2, #12] @ zero_extendqisi2
cmp r1, #2
addeq r1, r5, r10
moveq r0, #38
streq r0, [r1, #2056]
.L2176:
add fp, r5, r10
mov r1, #0
str r1, [fp, #2056]
mov r0, #48
str r1, [fp, #2052]
str r1, [fp, #2052]
uxtb r1, r4
str r1, [fp, #2052]
lsr r1, r4, #8
str r1, [fp, #2052]
lsr r1, r4, #16
str r1, [fp, #2052]
ldrb r1, [r7, #1152] @ zero_extendqisi2
cmp r1, #0
lsrne r1, r4, #24
strne r1, [fp, #2052]
add r1, r5, r10
str r0, [r1, #2056]
cmp r9, #0
ldrb r2, [r2, #12] @ zero_extendqisi2
sub r2, r2, #3
clz r2, r2
lsr r2, r2, #5
moveq r2, #0
cmp r2, #0
beq .L2178
ldrb r2, [r7, #1158] @ zero_extendqisi2
cmp r2, #0
bne .L2178
ldrb r3, [r7, #1159] @ zero_extendqisi2
cmp r3, #0
addeq r4, r4, r4, lsl #1
subeq r0, r4, #1
addeq r0, r0, r9
beq .L2187
.L2178:
mov r0, r4
.L2187:
bl nandc_set_seed
bl nandc_wait_flash_ready
add r3, r5, r10
mov r2, #5
str r2, [r3, #2056]
mov r1, #0
mov r2, #224
str r1, [fp, #2052]
mov r0, r6
str r1, [fp, #2052]
str r2, [r3, #2056]
ldr r3, [sp, #12]
ldrb r2, [sp, #56] @ zero_extendqisi2
str r8, [sp]
bl nandc_xfer
bl nandc_de_cs.constprop.35
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2173:
ldr r2, [r7, #1104]
ldrb r2, [r2, #12] @ zero_extendqisi2
cmp r2, #3
bne .L2175
ldrb r2, [r7, #1158] @ zero_extendqisi2
cmp r2, #0
bne .L2175
ldrb r2, [r7, #1159] @ zero_extendqisi2
cmp r2, #0
addeq r2, r5, r10
streq r9, [r2, #2056]
beq .L2174
.L2175:
mov r0, r6
bl zftl_flash_exit_slc_mode
b .L2174
.L2189:
.align 2
.L2188:
.word .LANCHOR0
.fnend
.size flash_read_page, .-flash_read_page
.align 2
.global micron_read_retrial
.syntax unified
.arm
.fpu softvfp
.type micron_read_retrial, %function
micron_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
ldr r4, .L2219
mov r6, r0
mov r10, r1
mov r9, #0
str r3, [sp, #16]
ldrb r3, [r4, #1193] @ zero_extendqisi2
str r2, [sp, #12]
add r3, r3, r3, lsl #1
asr r3, r3, #2
str r3, [sp, #8]
bl nandc_wait_flash_ready
ldr r5, [r4, #1044]
add r5, r5, r6, lsl #8
.L2191:
ldr fp, .L2219+4
mov r0, r6
mov r7, #0
mvn r4, #0
bl zftl_flash_enter_slc_mode
mov r0, r6
bl zftl_flash_exit_slc_mode
.L2192:
ldrb r3, [fp, #-108] @ zero_extendqisi2
cmp r7, r3
bcc .L2197
.L2196:
mov r3, #239
mov r0, #200
str r3, [r5, #2056]
mov r3, #137
str r3, [r5, #2052]
bl ndelay
mov r3, #0
str r3, [r5, #2048]
str r3, [r5, #2048]
str r3, [r5, #2048]
str r3, [r5, #2048]
ldr r3, [sp, #8]
cmp r4, r3
bcc .L2198
cmn r4, #1
movne r4, #256
.L2198:
cmn r4, #1
movne r8, #0
moveq r8, #1
cmp r4, #256
movne r1, r8
orreq r1, r8, #1
cmp r1, #0
beq .L2199
mov r1, r6
str r4, [sp]
mov r3, r7
mov r2, r10
ldr r0, .L2219+8
bl printk
eor r1, r9, #1
ands r1, r8, r1
beq .L2200
mov r1, #3
mov r0, r6
bl mt_auto_read_calibration_config
mov r9, #1
b .L2191
.L2197:
mov r3, #239
mov r0, #200
str r3, [r5, #2056]
mov r3, #137
str r3, [r5, #2052]
bl ndelay
add r3, r7, #1
ldr r2, [sp, #12]
str r3, [r5, #2048]
mov r1, r10
str r3, [sp, #20]
mov r3, #0
str r3, [r5, #2048]
mov r0, r6
str r3, [r5, #2048]
str r3, [r5, #2048]
ldr r3, [sp, #64]
str r3, [sp]
ldr r3, [sp, #16]
bl flash_read_page
ldr r3, .L2219+12
mov r8, r0
ldr r3, [r3]
tst r3, #4096
beq .L2193
str r0, [sp]
mov r3, r4
mov r2, r10
mov r1, r7
ldr r0, .L2219+16
bl printk
.L2193:
cmn r8, #1
beq .L2194
ldr r3, [fp, #-120]
cmn r4, #1
moveq r4, r8
str r3, [sp, #12]
ldr r3, [fp, #-112]
str r3, [sp, #16]
ldr r3, [sp, #8]
cmp r8, r3
bcc .L2203
.L2194:
ldr r7, [sp, #20]
b .L2192
.L2203:
mov r4, r8
b .L2196
.L2200:
cmp r9, #0
beq .L2201
mov r0, r6
bl mt_auto_read_calibration_config
cmn r4, #1
movne r4, #256
.L2201:
bl nandc_wait_flash_ready
mov r0, r4
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2199:
cmp r9, #0
beq .L2201
mov r0, r6
mov r4, #256
bl mt_auto_read_calibration_config
b .L2201
.L2220:
.align 2
.L2219:
.word .LANCHOR0
.word .LANCHOR3
.word .LC152
.word .LANCHOR2
.word .LC151
.fnend
.size micron_read_retrial, .-micron_read_retrial
.align 2
.global toshiba_3d_read_retrial
.syntax unified
.arm
.fpu softvfp
.type toshiba_3d_read_retrial, %function
toshiba_3d_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #36
sub sp, sp, #36
ldr r7, .L2269
mov r8, r0
ubfx r4, r1, #24, #2
mov r9, r1
str r3, [sp, #20]
add r6, r8, #8
str r2, [sp, #16]
mov r5, #1
bl nandc_wait_flash_ready
ldr r3, [r7, #1044]
str r3, [sp, #12]
add r6, r3, r6, lsl #8
ldrb r3, [r7, #1100] @ zero_extendqisi2
cmp r3, #36
movne r3, #56
moveq r3, #46
str r3, [sp, #28]
movne r3, #10
moveq r3, #26
cmp r4, #0
str r3, [sp, #24]
mvn r4, #0
ldr r3, [sp, #12]
add fp, r3, r8, lsl #8
bne .L2239
.L2230:
ldr r3, .L2269
ldrb r3, [r3, #1100] @ zero_extendqisi2
cmp r3, #36
bne .L2224
mov r2, #0
mov r1, r5
mov r0, r6
bl toshiba_tlc_set_rr_para
mov r3, #93
str r3, [fp, #2056]
.L2225:
ldr r3, [sp, #72]
mov r1, r9
ldr r2, [sp, #16]
mov r0, r8
str r3, [sp]
ldr r3, [sp, #20]
bl flash_read_page
ldr r3, .L2269+4
mov r10, r0
ldr r3, [r3]
tst r3, #16
beq .L2226
mov r3, r0
mov r2, r9
mov r1, r5
ldr r0, .L2269+8
bl printk
.L2226:
cmn r10, #1
beq .L2227
ldr r3, .L2269+12
cmn r4, #1
moveq r4, r10
ldr r2, [r3, #-120]
ldr r3, [r3, #-112]
str r2, [sp, #16]
str r3, [sp, #20]
ldrb r3, [r7, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r10, r3, asr #2
bcc .L2245
.L2227:
ldr r3, [sp, #24]
add r5, r5, #1
cmp r3, r5
bne .L2230
.L2229:
ldr r3, .L2269
ldrb r3, [r3, #1100] @ zero_extendqisi2
cmp r3, #36
moveq r2, #0
beq .L2268
mov r1, #0
mov r0, r6
bl toshiba_3d_set_slc_rr_para
.L2232:
ldr r3, .L2269
ldrb r3, [r3, #1100] @ zero_extendqisi2
cmp r3, #36
bne .L2241
ldr r3, [sp, #12]
mov r2, #85
add r3, r3, r8, lsl #8
str r2, [r3, #2056]
mov r2, #0
str r2, [r3, #2052]
str r2, [r3, #2048]
mov r2, #255
str r2, [r3, #2056]
.L2241:
ldrb r3, [r7, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r4, r3, asr #2
bcc .L2242
cmn r4, #1
movne r4, #256
.L2242:
cmn r4, #1
cmpne r4, #256
bne .L2243
str r4, [sp]
mov r3, r5
mov r2, r9
mov r1, r8
ldr r0, .L2269+16
bl printk
.L2243:
bl nandc_wait_flash_ready
mov r0, r4
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2224:
uxtb r1, r5
mov r0, r6
bl toshiba_3d_set_slc_rr_para
b .L2225
.L2245:
mov r4, r10
b .L2229
.L2239:
ldr r3, .L2269
ldrb r3, [r3, #1100] @ zero_extendqisi2
cmp r3, #36
bne .L2233
mov r2, #1
mov r1, r5
mov r0, r6
bl toshiba_tlc_set_rr_para
mov r3, #93
.L2267:
str r3, [fp, #2056]
mov r1, r9
ldr r3, [sp, #72]
mov r0, r8
ldr r2, [sp, #16]
str r3, [sp]
ldr r3, [sp, #20]
bl flash_read_page
ldr r3, .L2269+4
mov r10, r0
ldr r3, [r3]
tst r3, #16
beq .L2235
mov r3, r0
mov r2, r9
mov r1, r5
ldr r0, .L2269+20
bl printk
.L2235:
cmn r10, #1
beq .L2236
ldr r3, .L2269+12
cmn r4, #1
moveq r4, r10
ldr r2, [r3, #-120]
ldr r3, [r3, #-112]
str r2, [sp, #16]
str r3, [sp, #20]
ldrb r3, [r7, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r10, r3, asr #2
bcc .L2246
.L2236:
ldr r3, [sp, #28]
add r5, r5, #1
cmp r3, r5
bne .L2239
.L2238:
ldr r3, .L2269
ldrb r3, [r3, #1100] @ zero_extendqisi2
cmp r3, #36
bne .L2240
mov r2, #1
.L2268:
mov r1, #0
mov r0, r6
bl toshiba_tlc_set_rr_para
b .L2232
.L2233:
uxtb r1, r5
mov r0, r6
bl toshiba_3d_set_tlc_rr_para
mov r3, #38
b .L2267
.L2246:
mov r4, r10
b .L2238
.L2240:
mov r1, #0
mov r0, r6
bl toshiba_3d_set_tlc_rr_para
b .L2232
.L2270:
.align 2
.L2269:
.word .LANCHOR0
.word .LANCHOR2
.word .LC153
.word .LANCHOR3
.word .LC155
.word .LC154
.fnend
.size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
.align 2
.global toshiba_read_retrial
.syntax unified
.arm
.fpu softvfp
.type toshiba_read_retrial, %function
toshiba_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r6, r0
.pad #36
sub sp, sp, #36
ldr r5, .L2303
add r9, r6, #8
str r3, [sp, #20]
str r1, [sp, #12]
str r2, [sp, #16]
bl nandc_wait_flash_ready
mov r0, r6
bl zftl_flash_enter_slc_mode
mov r0, r6
bl zftl_flash_exit_slc_mode
ldrb r3, [r5, #1100] @ zero_extendqisi2
ldr r7, [r5, #1044]
sub r3, r3, #67
cmp r3, #1
lsl r3, r6, #8
add r9, r7, r9, lsl #8
str r3, [sp, #24]
movls r3, #0
strls r3, [sp, #8]
bls .L2272
ldrb r3, [r5, #1143] @ zero_extendqisi2
cmp r3, #0
beq .L2290
mov r0, #1
bl nandc_set_if_mode
mov r3, #1
.L2290:
str r3, [sp, #8]
lsl r3, r6, #8
mov r2, #92
add r3, r7, r3
str r2, [r3, #2056]
mov r2, #197
str r2, [r3, #2056]
.L2272:
ldr fp, .L2303+4
lsl r3, r6, #8
mov r8, #1
mvn r10, #0
str r3, [sp, #28]
.L2274:
ldrb r3, [fp, #-108] @ zero_extendqisi2
add r3, r3, #1
cmp r8, r3
bcc .L2283
mov r4, r10
.L2282:
ldrb r3, [r5, #1100] @ zero_extendqisi2
mov r1, #0
mov r0, r9
sub r3, r3, #67
cmp r3, #1
bhi .L2284
bl sandisk_set_rr_para
.L2285:
add r6, r7, r6, lsl #8
mov r3, #255
str r3, [r6, #2056]
ldrb r3, [r5, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r4, r3, asr #2
bcc .L2286
cmn r4, #1
movne r4, #256
.L2286:
cmn r4, #1
cmpne r4, #256
bne .L2287
str r4, [sp]
mov r3, r8
ldr r2, [sp, #12]
mov r1, r8
ldr r0, .L2303+8
bl printk
.L2287:
bl nandc_wait_flash_ready
ldr r3, [sp, #8]
cmp r3, #0
beq .L2271
mov r0, #4
bl nandc_set_if_mode
.L2271:
mov r0, r4
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2283:
ldrb r3, [r5, #1100] @ zero_extendqisi2
mov r0, r9
uxtb r1, r8
sub r3, r3, #67
cmp r3, #1
bhi .L2275
bl sandisk_set_rr_para
.L2276:
ldrb r3, [r5, #1100] @ zero_extendqisi2
cmp r3, #34
bne .L2277
ldr r3, .L2303+4
ldrb r3, [r3, #-108] @ zero_extendqisi2
sub r3, r3, #3
cmp r8, r3
ldreq r3, [sp, #28]
moveq r2, #179
addeq r3, r7, r3
streq r2, [r3, #2056]
.L2277:
ldr r3, [sp, #24]
mov r2, #38
add r1, sp, #12
mov r0, r6
add r3, r7, r3
str r2, [r3, #2056]
mov r2, #93
str r2, [r3, #2056]
ldr r3, [sp, #72]
str r3, [sp]
ldm r1, {r1, r2, r3}
bl flash_read_page
cmn r0, #1
mov r4, r0
beq .L2280
ldr r3, [fp, #-120]
cmn r10, #1
moveq r10, r0
str r3, [sp, #16]
ldr r3, [fp, #-112]
str r3, [sp, #20]
ldrb r3, [r5, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
bcc .L2282
.L2280:
add r8, r8, #1
b .L2274
.L2275:
bl toshiba_set_rr_para
b .L2276
.L2284:
bl toshiba_set_rr_para
b .L2285
.L2304:
.align 2
.L2303:
.word .LANCHOR0
.word .LANCHOR3
.word .LC155
.fnend
.size toshiba_read_retrial, .-toshiba_read_retrial
.align 2
.global ymtc_3d_read_retrial
.syntax unified
.arm
.fpu softvfp
.type ymtc_3d_read_retrial, %function
ymtc_3d_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r7, r0
.pad #20
sub sp, sp, #20
mov r8, r1
mov r9, r2
mov r10, r3
bl nandc_wait_flash_ready
mov r0, r7
mvn r4, #0
bl zftl_flash_enter_slc_mode
mov r0, r7
mov r5, #1
bl zftl_flash_exit_slc_mode
ldr r3, .L2334
tst r8, #50331648
add r2, r7, #8
ldr fp, .L2334+4
ldr r6, [r3, #1044]
str r3, [sp, #12]
add r6, r6, r2, lsl #8
bne .L2315
.L2310:
uxtb r1, r5
mov r0, r6
bl ymtc_3d_set_slc_rr_para
ldr r3, [sp, #56]
mov r2, r9
mov r1, r8
mov r0, r7
str r3, [sp]
mov r3, r10
bl flash_read_page
cmn r0, #1
beq .L2307
ldr r3, [sp, #12]
cmn r4, #1
moveq r4, r0
ldr r9, [fp, #-120]
ldr r10, [fp, #-112]
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
bcc .L2318
.L2307:
add r5, r5, #1
cmp r5, #10
bne .L2310
.L2309:
mov r1, #0
mov r0, r6
bl ymtc_3d_set_slc_rr_para
.L2311:
ldr r3, [sp, #12]
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r4, r3, asr #2
bcc .L2316
cmn r4, #1
movne r4, #256
.L2316:
cmn r4, #1
cmpne r4, #256
bne .L2317
str r4, [sp]
mov r3, r5
mov r2, r8
mov r1, r5
ldr r0, .L2334+8
bl printk
.L2317:
bl nandc_wait_flash_ready
mov r0, r4
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2318:
mov r4, r0
b .L2309
.L2315:
uxtb r1, r5
mov r0, r6
bl ymtc_3d_set_tlc_rr_para
ldr r3, [sp, #56]
mov r2, r9
mov r1, r8
mov r0, r7
str r3, [sp]
mov r3, r10
bl flash_read_page
cmn r0, #1
beq .L2312
ldr r3, [sp, #12]
cmn r4, #1
moveq r4, r0
ldr r9, [fp, #-120]
ldr r10, [fp, #-112]
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
bcc .L2319
.L2312:
add r5, r5, #1
cmp r5, #51
bne .L2315
.L2314:
mov r1, #0
mov r0, r6
bl ymtc_3d_set_tlc_rr_para
b .L2311
.L2319:
mov r4, r0
b .L2314
.L2335:
.align 2
.L2334:
.word .LANCHOR0
.word .LANCHOR3
.word .LC156
.fnend
.size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
.align 2
.global samsung_read_retrial
.syntax unified
.arm
.fpu softvfp
.type samsung_read_retrial, %function
samsung_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r0
.pad #28
sub sp, sp, #28
mov r7, r1
mov fp, r3
str r2, [sp, #16]
bl nandc_wait_flash_ready
mov r0, r9
bl zftl_flash_enter_slc_mode
mov r0, r9
bl zftl_flash_exit_slc_mode
ldr r3, .L2374
tst r7, #50331648
ldr r2, [r3, #1044]
str r3, [sp, #20]
str r2, [sp, #12]
bne .L2337
lsl r10, r9, #8
mvn r4, #0
mov r5, #1
add r6, r2, r10
.L2342:
mov r3, #239
str r3, [r6, #2056]
mov r3, #141
str r3, [r6, #2052]
ldr r3, .L2374+4
ldrsb r3, [r5, r3]
str r3, [r6, #2048]
mov r3, #0
str r3, [r6, #2048]
str r3, [r6, #2048]
str r3, [r6, #2048]
bl nandc_wait_flash_ready
ldr r3, [sp, #64]
mov r1, r7
ldr r2, [sp, #16]
mov r0, r9
str r3, [sp]
mov r3, fp
bl flash_read_page
ldr r3, .L2374+8
mov r8, r0
ldr r3, [r3]
tst r3, #16
beq .L2338
mov r3, r0
mov r2, r7
mov r1, r5
ldr r0, .L2374+12
bl printk
.L2338:
cmn r8, #1
beq .L2339
ldr r3, .L2374+16
cmn r4, #1
moveq r4, r8
ldr r2, [r3, #-120]
ldr fp, [r3, #-112]
ldr r3, [sp, #20]
str r2, [sp, #16]
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r8, r3, asr #2
bcc .L2351
.L2339:
add r5, r5, #1
cmp r5, #26
bne .L2342
.L2341:
ldr r3, [sp, #12]
add r10, r3, r10
mov r3, #239
str r3, [r10, #2056]
mov r3, #141
.L2373:
str r3, [r6, #2052]
mov r3, #0
str r3, [r6, #2048]
str r3, [r6, #2048]
str r3, [r6, #2048]
str r3, [r6, #2048]
bl nandc_wait_flash_ready
ldr r3, .L2374
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r4, r3, asr #2
bcc .L2349
cmn r4, #1
movne r4, #256
.L2349:
cmn r4, #1
cmpne r4, #256
bne .L2350
str r4, [sp]
mov r3, r5
mov r2, r7
mov r1, r5
ldr r0, .L2374+20
bl printk
.L2350:
bl nandc_wait_flash_ready
mov r0, r4
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2351:
mov r4, r8
b .L2341
.L2337:
lsl r3, r9, #8
lsl r2, r9, #8
ldr r8, .L2374+24
str r3, [sp, #20]
mvn r4, #0
ldr r3, [sp, #12]
mov r5, #1
add r6, r3, r2
.L2348:
mov r3, #239
str r3, [r6, #2056]
mov r3, #137
str r3, [r6, #2052]
ldrb r3, [r8, #4] @ zero_extendqisi2
str r3, [r6, #2048]
ldrb r3, [r8, #5] @ zero_extendqisi2
str r3, [r6, #2048]
ldrb r3, [r8, #6] @ zero_extendqisi2
str r3, [r6, #2048]
ldrb r3, [r8, #7] @ zero_extendqisi2
str r3, [r6, #2048]
bl nandc_wait_flash_ready
ldr r3, [sp, #64]
mov r1, r7
ldr r2, [sp, #16]
mov r0, r9
str r3, [sp]
mov r3, fp
bl flash_read_page
ldr r3, .L2374+8
mov r10, r0
ldr r3, [r3]
tst r3, #16
beq .L2344
mov r3, r0
mov r2, r7
mov r1, r5
ldr r0, .L2374+28
bl printk
.L2344:
cmn r10, #1
beq .L2345
ldr r3, .L2374+16
cmn r4, #1
moveq r4, r10
ldr r2, [r3, #-120]
ldr fp, [r3, #-112]
ldr r3, .L2374
str r2, [sp, #16]
ldrb r3, [r3, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r10, r3, asr #2
bcc .L2352
.L2345:
add r5, r5, #1
add r8, r8, #4
cmp r5, #26
bne .L2348
.L2347:
ldr r3, [sp, #12]
ldr r2, [sp, #20]
add r10, r3, r2
mov r3, #239
str r3, [r10, #2056]
mov r3, #137
b .L2373
.L2352:
mov r4, r10
b .L2347
.L2375:
.align 2
.L2374:
.word .LANCHOR0
.word .LANCHOR1+1752
.word .LANCHOR2
.word .LC157
.word .LANCHOR3
.word .LC159
.word .LANCHOR1+1778
.word .LC158
.fnend
.size samsung_read_retrial, .-samsung_read_retrial
.align 2
.global hynix_read_retrial
.syntax unified
.arm
.fpu softvfp
.type hynix_read_retrial, %function
hynix_read_retrial:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r3
ldr fp, .L2395
mov r9, r2
.pad #20
sub sp, sp, #20
mov r6, r0
mov r8, r1
mov r7, #0
ldr r3, [fp, #1040]
mvn r4, #0
add r2, r3, r0
ldrb r3, [r3, #114] @ zero_extendqisi2
str r2, [sp, #12]
ldrb r5, [r2, #120] @ zero_extendqisi2
str r3, [sp, #8]
bl nandc_wait_flash_ready
mov r0, r6
bl zftl_flash_enter_slc_mode
mov r0, r6
bl zftl_flash_exit_slc_mode
.L2377:
ldr r3, [sp, #8]
cmp r7, r3
bcc .L2382
.L2381:
ldr r3, [sp, #12]
strb r5, [r3, #120]
ldrb r3, [fp, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r4, r3, asr #2
bcc .L2383
cmn r4, #1
movne r4, #256
.L2383:
cmn r4, #1
cmpne r4, #256
bne .L2384
str r4, [sp]
mov r3, r7
mov r2, r8
mov r1, r7
ldr r0, .L2395+4
bl printk
.L2384:
bl nandc_wait_flash_ready
mov r0, r4
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2382:
ldr r3, [sp, #8]
add r5, r5, #1
uxtb r5, r5
mov r0, r6
cmp r3, r5
movls r5, #0
mov r1, r5
bl hynix_set_rr_para
ldr r3, [sp, #56]
mov r2, r9
mov r1, r8
mov r0, r6
str r3, [sp]
mov r3, r10
bl flash_read_page
cmn r0, #1
beq .L2379
ldr r3, .L2395+8
cmn r4, #1
moveq r4, r0
ldr r9, [r3, #-120]
ldr r10, [r3, #-112]
ldrb r3, [fp, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
bcc .L2385
.L2379:
add r7, r7, #1
b .L2377
.L2385:
mov r4, r0
b .L2381
.L2396:
.align 2
.L2395:
.word .LANCHOR0
.word .LC160
.word .LANCHOR3
.fnend
.size hynix_read_retrial, .-hynix_read_retrial
.align 2
.global flash_ddr_tuning_read
.syntax unified
.arm
.fpu softvfp
.type flash_ddr_tuning_read, %function
flash_ddr_tuning_read:
.fnstart
@ args = 4, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r4, #0
mov r5, r4
mov r6, #1024
mov r7, #6
mvn r10, #0
.pad #36
sub sp, sp, #36
mov r8, r0
mov fp, r1
str r2, [sp, #16]
str r3, [sp, #20]
bl nandc_get_ddr_para
str r0, [sp, #28]
str r4, [sp, #24]
str r4, [sp, #12]
.L2403:
uxtb r0, r7
bl nandc_set_ddr_para
ldr r3, [sp, #72]
mov r1, fp
ldr r2, [sp, #16]
mov r0, r8
str r3, [sp]
ldr r3, [sp, #20]
bl flash_read_page
ldr r3, .L2424
mov r9, r0
ldr r3, [r3]
tst r3, #16
beq .L2398
mov r3, r0
mov r2, fp
mov r1, r7
ldr r0, .L2424+4
bl printk
.L2398:
add r3, r6, #1
cmp r9, r3
bhi .L2399
ldr r3, .L2424+8
ldr r3, [r3, #-120]
str r3, [sp, #16]
ldr r3, .L2424+8
ldr r3, [r3, #-112]
str r3, [sp, #20]
ldr r3, .L2424+12
ldrb r3, [r3, #1193] @ zero_extendqisi2
cmp r9, r3, lsr #2
bcs .L2409
add r5, r5, #1
cmp r5, #7
bls .L2409
sub r4, r7, r5
mov r6, r9
mov r10, #0
.L2401:
ldr r2, [sp, #12]
ldr r3, [sp, #24]
cmp r5, r2
movcc r4, r3
.L2402:
cmp r4, #0
beq .L2404
ldr r3, .L2424+12
ldrb r2, [r3, #1193] @ zero_extendqisi2
ldr r3, .L2424+16
umull r2, r3, r2, r3
ubfx r3, r3, #1, #8
cmp r3, r6
bls .L2404
mov r1, r4
ldr r0, .L2424+20
bl printk
uxtb r0, r4
.L2423:
bl nandc_set_ddr_para
cmn r10, #1
bne .L2397
ldr r4, .L2424+12
ldrb r3, [r4, #1192] @ zero_extendqisi2
mov r5, r4
tst r3, #1
beq .L2397
mov r1, r8
mov r2, fp
ldr r0, .L2424+24
bl printk
mov r0, r8
bl flash_reset
mov r0, #1
bl flash_set_interface_mode
mov r0, #1
bl nandc_set_if_mode
add r3, r4, r8
mov r2, #2
mov r0, r8
strb r2, [r3, #1154]
bl zftl_flash_enter_slc_mode
ldr r3, [sp, #72]
mov r1, fp
ldr r2, [sp, #16]
mov r0, r8
str r3, [sp]
ldr r3, [sp, #20]
bl flash_read_page
mov r2, fp
mov r3, r0
mov r6, r0
mov r1, r8
ldr r0, .L2424+28
bl printk
ldrb r3, [r4, #1193] @ zero_extendqisi2
cmp r6, r3
bhi .L2411
ldr r2, .L2424+8
ldr r3, [r2, #-104]
add r3, r3, #1
cmp r3, #100
str r3, [r2, #-104]
movhi r3, #0
strbhi r3, [r4, #1143]
bhi .L2397
.L2407:
ldrb r0, [r5, #1192] @ zero_extendqisi2
bl flash_set_interface_mode
ldrb r0, [r5, #1192] @ zero_extendqisi2
bl nandc_set_if_mode
.L2397:
mov r0, r6
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2399:
ldr r3, [sp, #12]
cmp r5, r3
bls .L2410
cmp r5, #7
sub r3, r4, r5
str r3, [sp, #24]
bhi .L2402
str r5, [sp, #12]
.L2410:
mov r5, #0
b .L2400
.L2409:
mov r4, r7
mov r6, r9
mov r10, #0
.L2400:
add r7, r7, #2
cmp r7, #50
bne .L2403
b .L2401
.L2404:
ldrb r0, [sp, #28] @ zero_extendqisi2
b .L2423
.L2411:
mov r6, r10
b .L2407
.L2425:
.align 2
.L2424:
.word .LANCHOR2
.word .LC161
.word .LANCHOR3
.word .LANCHOR0
.word -1431655765
.word .LC162
.word .LC163
.word .LC164
.fnend
.size flash_ddr_tuning_read, .-flash_ddr_tuning_read
.align 2
.global flash_read_page_en
.syntax unified
.arm
.fpu softvfp
.type flash_read_page_en, %function
flash_read_page_en:
.fnstart
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r8, r3
ldr r5, .L2454
mov r10, r0
mov r4, r1
mov r7, r2
ldr r9, [sp, #48]
ldrb r3, [r5, #1109] @ zero_extendqisi2
cmp r3, r0
bhi .L2427
movw r2, #431
ldr r1, .L2454+4
ldr r0, .L2454+8
bl printk
bl dump_stack
.L2427:
add r3, r5, r10
ldrb r6, [r3, #1144] @ zero_extendqisi2
ldrb r3, [r5, #1109] @ zero_extendqisi2
cmp r10, r3
bcc .L2428
ldr r2, .L2454+12
ldr r2, [r2]
tst r2, #64
bne .L2429
.L2453:
mvn r0, #0
.L2426:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2429:
str r3, [sp]
mov r2, r10
mov r3, r4
mov r1, r6
ldr r0, .L2454+16
bl printk
b .L2453
.L2428:
tst r4, #50331648
bne .L2431
ldrb r3, [r5] @ zero_extendqisi2
cmp r3, #0
beq .L2432
ldrb r3, [r5, #1] @ zero_extendqisi2
cmp r3, #0
beq .L2431
.L2432:
ldrh r10, [r5, #2]
mov r0, r4
mov r1, r10
bl __aeabi_uidiv
mov r1, r10
mul fp, r10, r0
mov r0, r4
bl __aeabi_uidivmod
ldrb r3, [r5, #1] @ zero_extendqisi2
lsl r1, r1, #1
cmp r3, #0
addeq r1, r5, r1
addne r4, r1, fp
ldrheq r4, [r1, #4]
addeq r4, r4, fp
.L2431:
str r9, [sp]
mov r3, r8
mov r2, r7
mov r1, r4
mov r0, r6
bl flash_read_page
cmn r0, #1
bne .L2426
ldrb r10, [r5, #1196] @ zero_extendqisi2
cmp r10, #0
bne .L2434
.L2437:
ldr r3, .L2454+20
ldr r10, [r3, #-100]
cmp r10, #0
bne .L2435
.L2436:
ldrb r3, [r5, #1196] @ zero_extendqisi2
mov r2, r4
mov r1, #0
ldr r0, .L2454+24
str r3, [sp]
mvn r3, #0
bl printk
ldrb r3, [r5, #1143] @ zero_extendqisi2
cmp r3, #0
beq .L2453
str r9, [sp, #48]
mov r3, r8
mov r2, r7
mov r1, r4
mov r0, r6
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b flash_ddr_tuning_read
.L2434:
mov r3, #0
str r9, [sp]
strb r3, [r5, #1196]
mov r2, r7
mov r3, r8
mov r1, r4
mov r0, r6
bl flash_read_page
cmn r0, #1
strb r10, [r5, #1196]
beq .L2437
b .L2426
.L2435:
str r9, [sp]
mov r3, r8
mov r2, r7
mov r1, r4
mov r0, r6
blx r10
cmn r0, #1
bne .L2426
b .L2436
.L2455:
.align 2
.L2454:
.word .LANCHOR0
.word .LANCHOR1+1882
.word .LC0
.word .LANCHOR2
.word .LC165
.word .LANCHOR3
.word .LC166
.fnend
.size flash_read_page_en, .-flash_read_page_en
.align 2
.global flash_get_last_written_page
.syntax unified
.arm
.fpu softvfp
.type flash_get_last_written_page, %function
flash_get_last_written_page:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r1
ldr r5, .L2467
.pad #20
sub sp, sp, #20
mov r10, r0
mov fp, r2
ldr r1, .L2467+4
mov r9, r3
ldrh r6, [r5, #30]
ldrh r4, [r1, #-224]
ldr r1, [sp, #56]
mul r6, r8, r6
sub r4, r4, #1
sxth r4, r4
str r1, [sp]
add r1, r4, r6
bl flash_read_page_en
cmp r0, #512
str r5, [sp, #12]
moveq r7, #0
beq .L2458
.L2457:
ldr r3, [sp, #12]
ldr r3, [r3]
tst r3, #4096
beq .L2462
ldr r3, [r9]
mov r2, r4
mov r1, r8
ldr r0, .L2467+8
bl printk
.L2462:
mov r0, r4
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2461:
add r5, r7, r4
ldr r3, [sp, #56]
add r5, r5, r5, lsr #31
mov r2, fp
mov r0, r10
asr r5, r5, #1
str r3, [sp]
mov r3, r9
sxtah r1, r6, r5
bl flash_read_page_en
cmp r0, #512
subeq r4, r5, #1
addne r5, r5, #1
sxtheq r4, r4
sxthne r7, r5
.L2458:
cmp r7, r4
ble .L2461
b .L2457
.L2468:
.align 2
.L2467:
.word .LANCHOR2
.word .LANCHOR3
.word .LC167
.fnend
.size flash_get_last_written_page, .-flash_get_last_written_page
.align 2
.global flash_get_last_written_page_ext
.syntax unified
.arm
.fpu softvfp
.type flash_get_last_written_page_ext, %function
flash_get_last_written_page_ext:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr ip, .L2471
push {r0, r1, r2, lr}
.save {lr}
.pad #12
ldr lr, .L2471+4
ldrb ip, [ip, #1153] @ zero_extendqisi2
ldrh lr, [lr, #-2]
str r3, [sp]
mov r3, r2
rsb ip, ip, #24
mov r2, r1
sub ip, ip, lr
mvn r1, #0
asr lr, r0, ip
bic r1, r0, r1, lsl ip
uxtb r0, lr
bl flash_get_last_written_page
add sp, sp, #12
@ sp needed
ldr pc, [sp], #4
.L2472:
.align 2
.L2471:
.word .LANCHOR0
.word .LANCHOR3-3136
.fnend
.size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
.align 2
.global flash_ddr_para_scan
.syntax unified
.arm
.fpu softvfp
.type flash_ddr_para_scan, %function
flash_ddr_para_scan:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
.pad #12
mov r7, r0
ldr r4, .L2480
mov r6, #1
mov r8, r1
mov r9, #4
ldr r5, .L2480+4
ldrb r0, [r4, #1192] @ zero_extendqisi2
strb r6, [r4, #1143]
bl flash_set_interface_mode
ldrb r0, [r4, #1192] @ zero_extendqisi2
bl nandc_set_if_mode
ldr r3, [r5, #-96]
mov r1, r8
ldr r2, [r5, #-92]
mov r0, r7
str r9, [sp]
bl flash_ddr_tuning_read
ldr r3, [r5, #-96]
mov r1, r8
str r9, [sp]
mov r0, r7
ldr r2, [r5, #-92]
bl flash_read_page
cmn r0, #1
mov r3, r4
bne .L2474
ldrb r2, [r4, #1192] @ zero_extendqisi2
tst r2, #1
beq .L2474
mov r0, r6
bl flash_set_interface_mode
mov r0, r6
bl nandc_set_if_mode
mov r3, #0
strb r3, [r4, #1143]
.L2475:
mov r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
.L2474:
mov r2, #1
strb r2, [r3, #1143]
b .L2475
.L2481:
.align 2
.L2480:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size flash_ddr_para_scan, .-flash_ddr_para_scan
.align 2
.global flash_prog_page
.syntax unified
.arm
.fpu softvfp
.type flash_prog_page, %function
flash_prog_page:
.fnstart
@ args = 4, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov fp, r3
ldr r6, .L2494
.pad #20
sub sp, sp, #20
mov r4, r0
mov r7, r1
str r2, [sp, #12]
mvn r2, #0
ldrb r3, [r6, #1153] @ zero_extendqisi2
add r8, r0, #8
ldr r5, [r6, #1044]
rsb r3, r3, #24
bic r10, r1, r2, lsl r3
add r8, r5, r8, lsl #8
bl nandc_wait_flash_ready
mov r0, r4
bl hynix_reconfig_rr_para
mov r0, r4
bl nandc_cs
tst r7, #50331648
mov r0, r4
bne .L2483
bl zftl_flash_enter_slc_mode
.L2484:
lsl r9, r4, #8
mov r1, #128
mov r0, r10
add r2, r5, r9
add r5, r5, r9
str r1, [r2, #2056]
mov r1, #0
str r1, [r2, #2052]
str r1, [r2, #2052]
uxtb r1, r10
str r1, [r2, #2052]
lsr r1, r10, #8
str r1, [r2, #2052]
lsr r1, r10, #16
str r1, [r2, #2052]
ldrb r1, [r6, #1152] @ zero_extendqisi2
cmp r1, #0
lsrne r1, r10, #24
strne r1, [r2, #2052]
bl nandc_set_seed
ldr r3, .L2494+4
mov r1, #1
mov r0, r4
ldrb r2, [r3, #13] @ zero_extendqisi2
ldr r3, [sp, #12]
str fp, [sp]
bl nandc_xfer
mov r3, #16
str r3, [r5, #2056]
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r0, r8
bl flash_read_status
bl nandc_de_cs.constprop.35
ands r0, r0, #4
beq .L2482
mov r2, r0
mov r1, r7
ldr r0, .L2494+8
bl printk
mvn r0, #0
.L2482:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2483:
bl zftl_flash_exit_slc_mode
b .L2484
.L2495:
.align 2
.L2494:
.word .LANCHOR0
.word .LANCHOR2
.word .LC168
.fnend
.size flash_prog_page, .-flash_prog_page
.align 2
.global flash_test_blk
.syntax unified
.arm
.fpu softvfp
.type flash_test_blk, %function
flash_test_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
mov r6, r0
ldr r4, .L2507
mov r5, r1
mov r2, #32
mov r1, #165
ldr r0, [r4, #-120]
bl ftl_memset
mov r2, #8
mov r1, #90
ldr r0, [r4, #-112]
bl ftl_memset
ldr r3, .L2507+4
mov r0, r6
ldrh r3, [r3, #2]
mul r5, r5, r3
mov r1, r5
bl flash_erase_block
cmn r0, #1
bne .L2497
.L2499:
mvn r4, #0
.L2498:
mov r1, r5
mov r0, r6
bl flash_erase_block
mov r0, r4
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
.L2497:
ldr r7, .L2507+8
mov r1, r5
mov r0, r6
ldrb r3, [r7, #13] @ zero_extendqisi2
str r3, [sp]
ldr r3, [r4, #-112]
ldr r2, [r4, #-120]
bl flash_prog_page
cmn r0, #1
beq .L2499
ldrb r3, [r7, #13] @ zero_extendqisi2
mov r1, r5
mov r0, r6
str r3, [sp]
ldr r3, [r4, #-112]
ldr r2, [r4, #-120]
bl flash_read_page_en
cmn r0, #1
beq .L2499
ldr r3, [r4, #-120]
ldr r2, [r3]
ldr r3, .L2507+12
cmp r2, r3
bne .L2499
ldr r3, [r4, #-112]
ldr r4, [r3]
ldr r3, .L2507+16
subs r4, r4, r3
mvnne r4, #0
b .L2498
.L2508:
.align 2
.L2507:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR2
.word -1515870811
.word 1515870810
.fnend
.size flash_test_blk, .-flash_test_blk
.align 2
.global flash_start_one_pass_page_prog
.syntax unified
.arm
.fpu softvfp
.type flash_start_one_pass_page_prog, %function
flash_start_one_pass_page_prog:
.fnstart
@ args = 12, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r9, r3
ldr r6, .L2519
mov r10, r0
lsl r7, r9, #8
mov r0, r3
ldr r5, [sp, #40]
mov r8, r2
ldr r4, [r6, #1044]
bl nandc_cs
cmp r10, #0
mov r2, #128
addne r3, r4, r7
mov r0, r5
strne r10, [r3, #2056]
add r3, r4, r7
str r2, [r3, #2056]
mov r2, #0
str r2, [r3, #2052]
add r4, r4, r7
str r2, [r3, #2052]
uxtb r2, r5
str r2, [r3, #2052]
lsr r2, r5, #8
str r2, [r3, #2052]
lsr r2, r5, #16
str r2, [r3, #2052]
ldrb r2, [r6, #1152] @ zero_extendqisi2
cmp r2, #0
lsrne r2, r5, #24
strne r2, [r3, #2052]
bl nandc_set_seed
ldr r3, .L2519+4
mov r1, #1
mov r0, r9
ldrb r2, [r3, #13] @ zero_extendqisi2
ldr r3, [sp, #48]
str r3, [sp]
ldr r3, [sp, #44]
bl nandc_xfer
str r8, [r4, #2056]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L2520:
.align 2
.L2519:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
.align 2
.global flash_dual_page_prog
.syntax unified
.arm
.fpu softvfp
.type flash_dual_page_prog, %function
flash_dual_page_prog:
.fnstart
@ args = 12, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r3
ldr r3, .L2534
mov r9, r2
add r2, r0, #8
.pad #20
sub sp, sp, #20
ldr r6, .L2534+4
mov r4, r0
ldrb r5, [r3, #1153] @ zero_extendqisi2
mov r7, r1
ldr r8, [r3, #1044]
ubfx fp, r1, #24, #2
rsb r3, r5, #24
mvn r5, #0
bic r5, r1, r5, lsl r3
ldr r3, [r6]
add r8, r8, r2, lsl #8
tst r3, #16
beq .L2522
ldr r3, [sp, #64]
mov r2, fp
ldr r0, .L2534+8
bl printk
.L2522:
bl nandc_wait_flash_ready
mov r0, r4
bl nandc_cs
cmp fp, #0
mov r0, r4
bne .L2523
bl zftl_flash_enter_slc_mode
.L2524:
mov r1, #0
mov r3, r4
mov r2, #16
mov r0, r1
stm sp, {r5, r9, r10}
add r5, r5, #1
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [sp, #60]
mov r1, #0
mov r2, #16
mov r0, r1
str r5, [sp]
str r3, [sp, #8]
ldr r3, [sp, #56]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
mov r0, r8
bl flash_read_status
bl nandc_de_cs.constprop.35
ands r0, r0, #4
beq .L2521
ldr r3, [r6]
tst r3, #4096
beq .L2526
mov r2, r0
mov r1, r7
ldr r0, .L2534+12
bl printk
.L2526:
mvn r0, #0
.L2521:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2523:
bl zftl_flash_exit_slc_mode
b .L2524
.L2535:
.align 2
.L2534:
.word .LANCHOR0
.word .LANCHOR2
.word .LC169
.word .LC168
.fnend
.size flash_dual_page_prog, .-flash_dual_page_prog
.align 2
.global ymtc_flash_tlc_page_prog
.syntax unified
.arm
.fpu softvfp
.type ymtc_flash_tlc_page_prog, %function
ymtc_flash_tlc_page_prog:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #16
mov r10, r3
ldr r3, .L2543
mov r6, #1
mov r5, r0
mov r8, r2
add r2, r0, #8
mov r9, r1
ldrb r4, [r3, #1153] @ zero_extendqisi2
ldr r7, [r3, #1044]
rsb r4, r4, #24
lsl r4, r6, r4
add r7, r7, r2, lsl #8
sub r4, r4, #1
and r4, r4, r1
bl nandc_wait_flash_ready
mov r0, r5
bl nandc_cs
mov r0, r5
bl zftl_flash_exit_slc_mode
mov r3, r5
mov r2, #26
mov r1, r6
stm sp, {r4, r8, r10}
mov r0, #0
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
add r3, r4, r6
mov r2, #26
mov r1, r6
str r3, [sp]
mov r0, #0
mov r3, r5
stmib sp, {r8, r10}
add r4, r4, #2
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
mov r3, r5
mov r2, #16
mov r1, r6
mov r0, #0
stmib sp, {r8, r10}
str r4, [sp]
bl flash_start_one_pass_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r0, r7
bl flash_read_status
bl nandc_de_cs.constprop.35
ands r0, r0, #4
beq .L2536
ldr r3, .L2543+4
ldr r3, [r3]
tst r3, #4096
beq .L2538
mov r2, r0
mov r1, r9
ldr r0, .L2543+8
bl printk
.L2538:
mvn r0, #0
.L2536:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L2544:
.align 2
.L2543:
.word .LANCHOR0
.word .LANCHOR2
.word .LC170
.fnend
.size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
.section .text.unlikely
.align 2
.syntax unified
.arm
.fpu softvfp
.type fw_flash_page_prog.constprop.29, %function
fw_flash_page_prog.constprop.29:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
mov r6, r1
ldr r4, .L2551
.pad #20
sub sp, sp, #20
mov r7, r2
ldr r3, [r4, #1104]
ldrb r1, [r3, #9] @ zero_extendqisi2
bl __aeabi_uidiv
mov r5, r0
ldrb r0, [r4, #1108] @ zero_extendqisi2
ldrb r8, [r4, #1193] @ zero_extendqisi2
bl nandc_bch_sel
ldr r3, .L2551+4
ldrb r2, [r3, #11] @ zero_extendqisi2
cmp r2, #9
bne .L2546
ldrb r4, [r4, #1110] @ zero_extendqisi2
cmp r4, #0
bne .L2546
ldrb r3, [r3, #16] @ zero_extendqisi2
cmp r3, #3
bne .L2547
mov r3, r7
mov r2, r6
mov r1, r5
mov r0, r4
bl ymtc_flash_tlc_page_prog
.L2550:
mov r4, r0
mov r0, r8
bl nandc_bch_sel
mov r0, r4
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
.L2547:
ldr r9, .L2551+8
mov r2, #16384
mov r1, #255
ldr r0, [r9, #-120]
bl ftl_memset
ldr r3, [r9, #-120]
mov r2, #4
str r2, [sp, #8]
mov r1, r5
mov r2, r6
mov r0, r4
str r3, [sp, #4]
str r3, [sp]
mov r3, r7
bl flash_dual_page_prog
b .L2550
.L2546:
mov r3, #4
mov r2, r6
str r3, [sp]
mov r1, r5
mov r3, r7
mov r0, #0
bl flash_prog_page
b .L2550
.L2552:
.align 2
.L2551:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR3
.fnend
.size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29
.text
.align 2
.global flash_start_tlc_page_prog
.syntax unified
.arm
.fpu softvfp
.type flash_start_tlc_page_prog, %function
flash_start_tlc_page_prog:
.fnstart
@ args = 12, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r6, r3
ldr r4, .L2561
add r5, sp, #48
mov fp, r0
mov r7, r1
mov r8, r2
ldm r5, {r5, r9, r10}
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r6
bhi .L2554
mov r2, #868
ldr r1, .L2561+4
ldr r0, .L2561+8
bl printk
bl dump_stack
.L2554:
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r6
bls .L2553
add r6, r4, r6
ldr r4, [r4, #1044]
ldrb r6, [r6, #1144] @ zero_extendqisi2
mov r0, r6
bl nandc_cs
lsl r3, r6, #8
cmp fp, #0
addne r2, r4, r3
add r4, r4, r3
mov r3, #128
strne fp, [r2, #2056]
str r7, [r4, #2056]
str r3, [r4, #2056]
mov r3, #0
str r3, [r4, #2052]
str r3, [r4, #2052]
uxtb r3, r5
str r3, [r4, #2052]
lsr r3, r5, #8
str r3, [r4, #2052]
lsr r3, r5, #16
add r5, r5, r5, lsl #1
str r3, [r4, #2052]
sub r0, r5, #1
add r0, r0, r7
bl nandc_set_seed
ldr r3, .L2561+12
mov r1, #1
mov r0, r6
ldrb r2, [r3, #13] @ zero_extendqisi2
mov r3, r9
str r10, [sp]
bl nandc_xfer
str r8, [r4, #2056]
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b nandc_de_cs.constprop.35
.L2553:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2562:
.align 2
.L2561:
.word .LANCHOR0
.word .LANCHOR1+1901
.word .LC0
.word .LANCHOR2
.fnend
.size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
.align 2
.syntax unified
.arm
.fpu softvfp
.type queue_tlc_prog_cmd, %function
queue_tlc_prog_cmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #16
mov r8, r1
ldr r1, .L2568
mov r7, #1
mov r6, r0
ldr r2, [r0]
ldrb r3, [r1, #1153] @ zero_extendqisi2
ldr ip, [r2, #24]
rsb r0, r3, #24
lsl r4, r7, r3
ldrb r3, [r1, #1159] @ zero_extendqisi2
lsl r5, r7, r0
sub r4, r4, #1
and r4, r4, ip, lsr r0
cmp r3, #0
sub r5, r5, #1
and r5, r5, ip
uxtb r4, r4
beq .L2564
mov r0, r4
bl zftl_flash_exit_slc_mode
ldr r3, [r6]
mov r1, r7
mov r0, #0
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r5, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r6, #4]
mov r1, r7
mov r0, #0
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r3, [sp, #4]
add r3, r5, r7
str r3, [sp]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r6, #8]
add r5, r5, #2
mov r1, r7
mov r0, #0
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #16
ldr r3, [r3, #4]
str r5, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
.L2565:
cmp r8, #0
beq .L2563
ldr r1, [r6]
mov r3, #4
ldr r0, .L2568+4
strb r3, [r1, #42]
mov r3, #1
strb r3, [r1, #43]
mvn r3, #0
strb r3, [r1]
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, lr}
b buf_add_tail
.L2564:
ldr r3, [r2, #12]
mov r1, r7
ldrb r0, [r2, #44] @ zero_extendqisi2
str r3, [sp, #8]
ldr r3, [r2, #4]
mov r2, #26
str r5, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldm r6, {r2, r3}
mov r1, #2
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r5, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r6, #8]
mov r1, #3
ldr r2, [r6]
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #16
ldr r3, [r3, #4]
str r5, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
b .L2565
.L2563:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L2569:
.align 2
.L2568:
.word .LANCHOR0
.word .LANCHOR0+2770
.fnend
.size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
.align 2
.global sblk_3d_tlc_dump_prog
.syntax unified
.arm
.fpu softvfp
.type sblk_3d_tlc_dump_prog, %function
sblk_3d_tlc_dump_prog:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #16
mov r7, #1
ldr r2, .L2574
mov r5, r0
ldr r0, [r0, #24]
ldrb r3, [r2, #1153] @ zero_extendqisi2
ldrb r8, [r2, #1159] @ zero_extendqisi2
rsb r1, r3, #24
lsl r4, r7, r3
lsl r6, r7, r1
sub r4, r4, #1
cmp r8, #0
and r4, r4, r0, lsr r1
sub r6, r6, #1
and r6, r6, r0
uxtb r4, r4
beq .L2571
mov r0, r4
bl zftl_flash_exit_slc_mode
ldr r3, [r5, #12]
mov r2, #26
mov r1, r7
mov r0, #0
str r6, [sp]
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r5, #12]
mov r2, #26
mov r1, r7
mov r0, #0
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
add r3, r6, r7
str r3, [sp]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r5, #12]
add r6, r6, #2
str r6, [sp]
mov r2, #16
mov r1, r7
mov r0, #0
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
.L2572:
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r1, #64
ldr r0, [r5, #24]
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, lr}
b flash_wait_device_ready
.L2571:
ldr r3, [r5, #12]
mov r1, r7
mov r2, #26
mov r0, r8
str r6, [sp]
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r5, #12]
mov r2, #26
mov r1, #2
mov r0, r8
str r6, [sp]
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r5, #12]
mov r2, #16
str r6, [sp]
mov r1, #3
mov r0, r8
str r3, [sp, #8]
ldr r3, [r5, #4]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
b .L2572
.L2575:
.align 2
.L2574:
.word .LANCHOR0
.fnend
.size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
.align 2
.global flash_start_3d_mlc_page_prog
.syntax unified
.arm
.fpu softvfp
.type flash_start_3d_mlc_page_prog, %function
flash_start_3d_mlc_page_prog:
.fnstart
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r8, r3
ldr r4, .L2580
mov r7, r0
mov r5, r1
mov r6, r2
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r1
bhi .L2577
movw r2, #903
ldr r1, .L2580+4
ldr r0, .L2580+8
bl printk
bl dump_stack
.L2577:
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r5
bls .L2576
add r5, r4, r5
ldr r4, [r4, #1044]
ldrb r5, [r5, #1144] @ zero_extendqisi2
mov r0, r5
add r4, r4, r5, lsl #8
bl nandc_cs
mov r3, #128
mov r0, r6
str r3, [r4, #2056]
mov r3, #0
str r3, [r4, #2052]
str r3, [r4, #2052]
uxtb r3, r6
str r3, [r4, #2052]
lsr r3, r6, #8
str r3, [r4, #2052]
lsr r3, r6, #16
str r3, [r4, #2052]
bl nandc_set_seed
ldr r3, .L2580+12
mov r1, #1
mov r0, r5
ldrb r2, [r3, #13] @ zero_extendqisi2
ldr r3, [sp, #32]
str r3, [sp]
mov r3, r8
bl nandc_xfer
str r7, [r4, #2056]
.L2576:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L2581:
.align 2
.L2580:
.word .LANCHOR0
.word .LANCHOR1+1927
.word .LC0
.word .LANCHOR2
.fnend
.size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
.align 2
.global sblk_mlc_dump_prog
.syntax unified
.arm
.fpu softvfp
.type sblk_mlc_dump_prog, %function
sblk_mlc_dump_prog:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L2588
push {r0, r1, r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #8
mov r5, r0
ldr r1, [r0, #24]
ldrb r4, [r3, #1153] @ zero_extendqisi2
mov r3, #1
rsb r2, r4, #24
lsl r4, r3, r4
lsl r6, r3, r2
sub r4, r4, #1
sub r6, r6, #1
and r4, r4, r1, lsr r2
and r6, r6, r1
uxtb r4, r4
mov r0, r4
bl zftl_flash_exit_slc_mode
ldr r3, .L2588+4
ldr r3, [r3]
tst r3, #4096
beq .L2583
ldr r2, [r5, #24]
mov r1, r6
ldr r0, .L2588+8
add r3, r2, #1
bl printk
.L2583:
ldr r3, [r5, #12]
mov r2, r6
mov r1, r4
mov r0, #16
str r3, [sp]
ldr r3, [r5, #4]
bl flash_start_3d_mlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
ldr r3, [r5, #12]
add r2, r6, #1
mov r1, r4
mov r0, #16
str r3, [sp]
ldr r3, [r5, #4]
bl flash_start_3d_mlc_page_prog
bl nandc_iqr_wait_flash_ready
bl nandc_wait_flash_ready
mov r1, #64
ldr r0, [r5, #24]
bl flash_wait_device_ready
bl nandc_de_cs.constprop.35
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, pc}
.L2589:
.align 2
.L2588:
.word .LANCHOR0
.word .LANCHOR2
.word .LC171
.fnend
.size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
.align 2
.global flash_start_page_prog
.syntax unified
.arm
.fpu softvfp
.type flash_start_page_prog, %function
flash_start_page_prog:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r2
ldr r5, .L2605
mov fp, r3
mov r8, r1
.pad #20
sub sp, sp, #20
str r0, [sp, #12]
ldrb r2, [r5, #1153] @ zero_extendqisi2
rsb r4, r2, #24
lsr r3, r1, r4
mvn r1, #0
bic r3, r3, r1, lsl r2
ldrb r2, [r5, #1109] @ zero_extendqisi2
uxtb r9, r3
cmp r2, r9
bhi .L2591
mov r2, #956
ldr r1, .L2605+4
ldr r0, .L2605+8
bl printk
bl dump_stack
.L2591:
ldrb r2, [r5, #1109] @ zero_extendqisi2
cmp r2, r9
bls .L2590
mvn r2, #0
ldr r7, [r5, #1044]
bic r4, r8, r2, lsl r4
add r2, r5, r9
ldrb r6, [r2, #1144] @ zero_extendqisi2
bl nandc_rdy_status
cmp r0, #0
bne .L2593
ldrb r2, [r5, #1109] @ zero_extendqisi2
cmp r2, #1
bne .L2594
bl nandc_wait_flash_ready
.L2593:
mov r0, r6
bl hynix_reconfig_rr_para
mov r0, r6
bl nandc_cs
tst r8, #50331648
bne .L2595
mov r0, r4
bl slc_phy_page_address_calc
ldrb r3, [r5] @ zero_extendqisi2
mov r4, r0
cmp r3, #0
beq .L2596
mov r0, r6
bl zftl_flash_enter_slc_mode
.L2596:
lsl r8, r6, #8
mov r2, #128
mov r0, r4
add r3, r7, r8
add r7, r7, r8
str r2, [r3, #2056]
mov r2, #0
str r2, [r3, #2052]
str r2, [r3, #2052]
uxtb r2, r4
str r2, [r3, #2052]
lsr r2, r4, #8
str r2, [r3, #2052]
lsr r2, r4, #16
str r2, [r3, #2052]
ldrb r2, [r5, #1152] @ zero_extendqisi2
cmp r2, #0
lsrne r2, r4, #24
strne r2, [r3, #2052]
bl nandc_set_seed
ldr r3, .L2605+12
mov r1, #1
mov r0, r6
ldrb r2, [r3, #13] @ zero_extendqisi2
mov r3, r10
str fp, [sp]
bl nandc_xfer
ldr r3, [sp, #12]
str r3, [r7, #2056]
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b nandc_de_cs.constprop.35
.L2594:
mov r2, #64
mov r1, r4
mov r0, r9
bl flash_wait_device_ready_raw
b .L2593
.L2595:
mov r0, r6
bl zftl_flash_exit_slc_mode
b .L2596
.L2590:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2606:
.align 2
.L2605:
.word .LANCHOR0
.word .LANCHOR1+1956
.word .LC0
.word .LANCHOR2
.fnend
.size flash_start_page_prog, .-flash_start_page_prog
.align 2
.syntax unified
.arm
.fpu softvfp
.type queue_prog_cmd, %function
queue_prog_cmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r3, [r0, #12]
ldr r2, [r0, #4]
ldr r1, [r0, #24]
mov r0, #16
bl flash_start_page_prog
ldr r2, .L2616
ldr r0, [r4, #24]
ldrb r3, [r2, #2770] @ zero_extendqisi2
cmp r3, #255
beq .L2608
ldrb ip, [r2, #1153] @ zero_extendqisi2
mvn r1, #0
mov r5, #48
movw r8, #1256
movw r6, #1274
rsb r7, ip, #24
mvn r1, r1, lsl ip
uxth r1, r1
and r0, r1, r0, asr r7
.L2610:
mla ip, r5, r3, r2
ldr lr, [ip, r8]
and lr, r1, lr, lsr r7
cmp r0, lr
bne .L2609
add lr, ip, r6
ldrb ip, [ip, r6] @ zero_extendqisi2
cmp ip, #7
bne .L2609
mov r3, #3
strb r3, [lr]
.L2608:
mov r3, #3
mov r1, r4
strb r3, [r4, #42]
mov r3, #1
strb r3, [r4, #43]
mvn r3, #0
strb r3, [r4]
ldr r0, .L2616+4
pop {r4, r5, r6, r7, r8, lr}
b buf_add_tail
.L2609:
mla r3, r5, r3, r2
ldrb r3, [r3, #1232] @ zero_extendqisi2
cmp r3, #255
bne .L2610
b .L2608
.L2617:
.align 2
.L2616:
.word .LANCHOR0
.word .LANCHOR0+2770
.fnend
.size queue_prog_cmd, .-queue_prog_cmd
.align 2
.global flash_complete_plane_page_read
.syntax unified
.arm
.fpu softvfp
.type flash_complete_plane_page_read, %function
flash_complete_plane_page_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r10, r2
ldr r5, .L2649
mvn r2, #0
mov r6, r0
mov r9, r1
ldrb r3, [r5, #1153] @ zero_extendqisi2
rsb r4, r3, #24
lsr r7, r0, r4
bic r7, r7, r2, lsl r3
ldrb r3, [r5, #1109] @ zero_extendqisi2
uxtb r7, r7
cmp r3, r7
bhi .L2619
movw r2, #1070
ldr r1, .L2649+4
ldr r0, .L2649+8
bl printk
bl dump_stack
.L2619:
ldrb r3, [r5, #1109] @ zero_extendqisi2
mvn r0, #0
cmp r3, r7
bls .L2618
add r7, r5, r7
bic r4, r6, r0, lsl r4
ldrb r8, [r7, #1144] @ zero_extendqisi2
ubfx r6, r6, #24, #2
ldr r7, [r5, #1044]
mov r0, r8
bl nandc_cs
cmp r6, #0
bne .L2621
mov r0, r4
bl slc_phy_page_address_calc
mov r4, r0
.L2621:
ldrb r3, [r5, #1127] @ zero_extendqisi2
uxtb lr, r4
lsr ip, r4, #8
ldrb r0, [r5, #1152] @ zero_extendqisi2
cmp r3, #1
lsl r3, r8, #8
moveq r1, #6
addeq r2, r7, r3
beq .L2648
ldr r2, [r5, #1104]
ldrb r2, [r2, #12] @ zero_extendqisi2
cmp r2, #3
add r2, r7, r3
bne .L2625
mov r1, #5
.L2648:
str r1, [r2, #2056]
mov r1, #0
str r1, [r2, #2052]
cmp r0, #0
str r1, [r2, #2052]
lsr r1, r4, #16
str lr, [r2, #2052]
add r3, r7, r3
str ip, [r2, #2052]
str r1, [r2, #2052]
lsrne r1, r4, #24
strne r1, [r2, #2052]
.L2644:
mov r2, #224
cmp r6, #0
str r2, [r3, #2056]
ldr r3, [r5, #1104]
ldrb r3, [r3, #12] @ zero_extendqisi2
sub r3, r3, #3
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
beq .L2628
ldrb r3, [r5, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L2628
ldrb r3, [r5, #1159] @ zero_extendqisi2
cmp r3, #0
addeq r4, r4, r4, lsl #1
subeq r6, r6, #1
addeq r0, r4, r6
beq .L2645
.L2628:
mov r0, r4
.L2645:
bl nandc_set_seed
ldr r3, .L2649+12
mov r1, #0
mov r0, r8
ldrb r2, [r3, #13] @ zero_extendqisi2
mov r3, r9
str r10, [sp]
bl nandc_xfer
bl nandc_de_cs.constprop.35
.L2618:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L2625:
mov r1, #0
cmp r0, #0
str r1, [r2, #2056]
add r3, r7, r3
str r1, [r2, #2052]
str r1, [r2, #2052]
lsr r1, r4, #16
str lr, [r2, #2052]
str ip, [r2, #2052]
str r1, [r2, #2052]
lsrne r1, r4, #24
strne r1, [r2, #2052]
mov r1, #5
str r1, [r3, #2056]
mov r1, #0
str r1, [r2, #2052]
str r1, [r2, #2052]
b .L2644
.L2650:
.align 2
.L2649:
.word .LANCHOR0
.word .LANCHOR1+1978
.word .LC0
.word .LANCHOR2
.fnend
.size flash_complete_plane_page_read, .-flash_complete_plane_page_read
.align 2
.global flash_complete_page_read
.syntax unified
.arm
.fpu softvfp
.type flash_complete_page_read, %function
flash_complete_page_read:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r3, #1
ldr r4, .L2683
mov fp, r2
.pad #20
sub sp, sp, #20
mov r10, r1
str r0, [sp, #12]
ubfx r6, r0, #24, #2
ldrb r7, [r4, #1153] @ zero_extendqisi2
rsb r2, r7, #24
lsl r7, r3, r7
lsl r5, r3, r2
ldrb r3, [r4, #1109] @ zero_extendqisi2
sub r7, r7, #1
sub r5, r5, #1
and r7, r7, r0, lsr r2
and r5, r5, r0
uxtb r7, r7
cmp r3, r7
bhi .L2652
mov r2, #1232
ldr r1, .L2683+4
ldr r0, .L2683+8
bl printk
bl dump_stack
.L2652:
add r7, r4, r7
ldrb r9, [r7, #1144] @ zero_extendqisi2
ldr r7, [r4, #1044]
mov r0, r9
bl nandc_cs
cmp r6, #0
bne .L2653
mov r0, r5
bl slc_phy_page_address_calc
mov r5, r0
.L2653:
ldr r8, .L2683+12
ldrb r3, [r8, #16] @ zero_extendqisi2
cmp r3, #3
bne .L2654
add r7, r7, r9, lsl #8
mov r3, #5
str r3, [r7, #2056]
mov r3, #0
str r3, [r7, #2052]
str r3, [r7, #2052]
uxtb r3, r5
str r3, [r7, #2052]
lsr r3, r5, #8
str r3, [r7, #2052]
lsr r3, r5, #16
str r3, [r7, #2052]
mov r3, #224
str r3, [r7, #2056]
.L2654:
ldr r3, [r4, #1104]
cmp r6, #0
ldrb r3, [r3, #12] @ zero_extendqisi2
sub r3, r3, #3
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
beq .L2655
ldrb r3, [r4, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L2655
ldrb r3, [r4, #1159] @ zero_extendqisi2
cmp r3, #0
addeq r3, r5, r5, lsl #1
subeq r0, r6, #1
addeq r0, r0, r3
beq .L2682
.L2655:
mov r0, r5
.L2682:
bl nandc_set_seed
ldrb r2, [r8, #13] @ zero_extendqisi2
mov r3, r10
str fp, [sp]
mov r1, #0
mov r0, r9
bl nandc_xfer
cmn r0, #1
bne .L2657
ldrb r7, [r4, #1196] @ zero_extendqisi2
cmp r7, #0
beq .L2658
mov r3, #0
mov r2, r10
strb r3, [r4, #1196]
orr r1, r5, r6, lsl #24
ldrb r3, [r8, #13] @ zero_extendqisi2
mov r0, r9
str r3, [sp]
mov r3, fp
bl flash_read_page
cmp r6, #0
strb r7, [r4, #1196]
bne .L2659
.L2664:
ldrb r3, [r4] @ zero_extendqisi2
cmp r3, #0
beq .L2659
ldrb r3, [r4, #1193] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
blt .L2659
ldrb r3, [r8, #23] @ zero_extendqisi2
sub r3, r3, #4
cmp r3, #4
movls r0, #256
.L2651:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2659:
cmn r0, #1
bne .L2651
.L2665:
ldr r3, .L2683+16
ldr r7, [r3, #-100]
cmp r7, #0
bne .L2661
.L2663:
ldrb r3, [r4, #1196] @ zero_extendqisi2
mov r1, #0
ldr r2, [sp, #12]
ldr r0, .L2683+20
str r3, [sp]
mvn r3, #0
bl printk
ldrb r3, [r4, #1143] @ zero_extendqisi2
cmp r3, #0
mvneq r0, #0
beq .L2651
ldrb r3, [r8, #13] @ zero_extendqisi2
mov r2, r10
orr r1, r5, r6, lsl #24
mov r0, r9
str r3, [sp]
mov r3, fp
bl flash_ddr_tuning_read
b .L2651
.L2661:
ldrb r3, [r8, #13] @ zero_extendqisi2
mov r2, r10
orr r1, r5, r6, lsl #24
mov r0, r9
str r3, [sp]
mov r3, fp
blx r7
cmn r0, #1
bne .L2651
b .L2663
.L2658:
cmp r6, #0
beq .L2664
b .L2665
.L2657:
cmp r6, #0
bne .L2651
b .L2664
.L2684:
.align 2
.L2683:
.word .LANCHOR0
.word .LANCHOR1+2009
.word .LC0
.word .LANCHOR2
.word .LANCHOR3
.word .LC172
.fnend
.size flash_complete_page_read, .-flash_complete_page_read
.align 2
.syntax unified
.arm
.fpu softvfp
.type queue_wait_first_req_completed, %function
queue_wait_first_req_completed:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #20
sub sp, sp, #20
ldr r4, .L2779
ldrb r5, [r4, #2770] @ zero_extendqisi2
cmp r5, #255
bne .L2686
.L2719:
mov r7, #0
b .L2685
.L2686:
mov r8, #48
mla r2, r8, r5, r4
ldrb r3, [r2, #1274] @ zero_extendqisi2
ldr r7, [r2, #1256]
sub r2, r3, #1
cmp r2, #10
ldrls pc, [pc, r2, asl #2]
b .L2719
.L2689:
.word .L2688
.word .L2690
.word .L2691
.word .L2691
.word .L2691
.word .L2691
.word .L2692
.word .L2693
.word .L2694
.word .L2691
.word .L2694
.L2688:
mla r8, r8, r5, r4
bl nandc_wait_flash_ready
ldr r3, [r8, #1240]
ldr r1, [r8, #1236]
cmp r3, #0
beq .L2695
ldr r2, .L2779+4
ldrb r0, [r8, #1272] @ zero_extendqisi2
ldrb r2, [r2, #-2546] @ zero_extendqisi2
cmp r0, r2
moveq r1, r3
.L2695:
mov r3, #48
mov r0, r7
mla r4, r3, r5, r4
ldr r2, [r4, #1244]
bl flash_complete_page_read
str r0, [r4, #1268]
.L2778:
mov r3, #13
strb r3, [r4, #1274]
ldrb r3, [r4, #1234] @ zero_extendqisi2
orr r3, r3, #8
strb r3, [r4, #1234]
b .L2719
.L2690:
bl nandc_wait_flash_ready
mla r3, r8, r5, r4
ldrb r6, [r3, #1232] @ zero_extendqisi2
ldr r2, [r3, #1240]
ldr r9, [r3, #1236]
mla r8, r8, r6, r4
cmp r2, #0
ldr r10, [r8, #1236]
beq .L2696
ldrb r1, [r3, #1272] @ zero_extendqisi2
ldr r3, .L2779+4
ldrb r3, [r3, #-2546] @ zero_extendqisi2
cmp r1, r3
moveq r9, r2
.L2696:
mov r3, #48
mla r3, r3, r6, r4
ldr r2, [r3, #1240]
cmp r2, #0
beq .L2697
ldrb r1, [r3, #1272] @ zero_extendqisi2
ldr r3, .L2779+4
ldrb r3, [r3, #-2546] @ zero_extendqisi2
cmp r1, r3
moveq r10, r2
.L2697:
mov r7, #48
mov r1, r9
mla r3, r7, r5, r4
mla r7, r7, r6, r4
ldr r2, [r3, #1244]
ldr r0, [r3, #1256]
str r3, [sp, #12]
bl flash_complete_plane_page_read
ldr r2, [r7, #1244]
mov r8, r0
mov r1, r10
ldr r0, [r7, #1256]
bl flash_complete_plane_page_read
cmn r8, #1
mov fp, r0
beq .L2698
ldr r3, [sp, #12]
ldr r2, [r3, #1252]
cmn r2, #1
beq .L2699
ldr r3, [r3, #1244]
ldr r3, [r3, #4]
cmp r2, r3
beq .L2699
.L2698:
mov r7, #48
ldrb r3, [r4, #1153] @ zero_extendqisi2
mla r7, r7, r5, r4
mvn ip, #0
mvn ip, ip, lsl r3
rsb r1, r3, #24
ldr lr, [r7, #1256]
mov r2, r9
ldr r3, .L2779+4
ldrb r3, [r3, #-2546] @ zero_extendqisi2
and r0, ip, lr, lsr r1
bic r1, lr, ip, lsl r1
uxtb r0, r0
str r3, [sp]
ldr r3, [r7, #1244]
bl flash_read_page_en
ldr r2, [r7, #1252]
mov r8, r0
cmn r2, #1
beq .L2700
ldr r3, [r7, #1244]
ldr r1, [r3, #4]
cmp r2, r1
beq .L2700
ldr r0, .L2779+8
ldr r0, [r0]
tst r0, #64
beq .L2700
str r1, [sp]
ldr r0, .L2779+12
ldr r3, [r3]
ldr r1, [r7, #1256]
bl printk
.L2700:
mov r3, #48
mla r3, r3, r5, r4
ldr r2, [r3, #1252]
cmn r2, #1
beq .L2699
ldr r3, [r3, #1244]
ldr r3, [r3, #4]
cmp r2, r3
beq .L2699
movw r2, #431
ldr r1, .L2779+16
ldr r0, .L2779+20
bl printk
bl dump_stack
.L2699:
mov r3, #48
mov r2, #13
mla r5, r3, r5, r4
cmn fp, #1
strb r2, [r5, #1274]
ldrb r2, [r5, #1234] @ zero_extendqisi2
str r8, [r5, #1268]
orr r2, r2, #8
strb r2, [r5, #1234]
beq .L2701
mla r3, r3, r6, r4
ldr r2, [r3, #1252]
cmn r2, #1
beq .L2703
ldr r3, [r3, #1244]
ldr r3, [r3, #4]
cmp r2, r3
beq .L2703
.L2701:
mov r5, #48
ldrb r3, [r4, #1153] @ zero_extendqisi2
mla r5, r5, r6, r4
mvn ip, #0
mvn ip, ip, lsl r3
rsb r1, r3, #24
ldr lr, [r5, #1256]
mov r2, r10
ldr r3, .L2779+4
ldrb r3, [r3, #-2546] @ zero_extendqisi2
and r0, ip, lr, lsr r1
bic r1, lr, ip, lsl r1
uxtb r0, r0
str r3, [sp]
ldr r3, [r5, #1244]
bl flash_read_page_en
ldr r2, [r5, #1252]
cmn r2, #1
beq .L2705
ldr r3, [r5, #1244]
ldr r1, [r3, #4]
cmp r2, r1
beq .L2705
ldr r0, .L2779+8
ldr r0, [r0]
tst r0, #64
beq .L2705
str r1, [sp]
ldr r0, .L2779+12
ldr r3, [r3]
ldr r1, [r5, #1256]
bl printk
.L2705:
mov r3, #48
mla r3, r3, r6, r4
ldr r2, [r3, #1252]
cmn r2, #1
beq .L2703
ldr r3, [r3, #1244]
ldr r3, [r3, #4]
cmp r2, r3
beq .L2703
movw r2, #450
ldr r1, .L2779+16
ldr r0, .L2779+20
bl printk
bl dump_stack
.L2703:
mov r3, #48
mla r4, r3, r6, r4
str r8, [r4, #1268]
b .L2778
.L2691:
bl nandc_iqr_wait_flash_ready
mov r0, r7
mov r1, #64
bl flash_wait_device_ready
tst r0, #64
mov r7, r0
beq .L2719
ands r2, r0, #5
mov r3, #48
beq .L2707
mla r4, r3, r5, r4
mov r3, #12
mov r2, r0
ldr r0, .L2779+24
strb r3, [r4, #1274]
ldrb r1, [r4, #1233] @ zero_extendqisi2
str r3, [sp]
ldr r3, [r4, #1256]
bl printk
.L2777:
mvn r3, #0
str r3, [r4, #1268]
b .L2685
.L2707:
mul r3, r3, r5
mov r1, #13
add r7, r4, r3
str r2, [r7, #1268]
ldr r2, [r4, #2800]
strb r1, [r7, #1274]
ldr r1, [r2, #156]
ldr r2, .L2779+28
cmp r1, r2
bne .L2719
ldr r2, .L2779+32
add r3, r2, r3
ldrh r3, [r3, #34]
cmp r3, #0
bne .L2719
ldrb r3, [r4, #1153] @ zero_extendqisi2
mvn ip, #0
ldr lr, [r7, #1256]
ldr r6, .L2779+4
rsb r1, r3, #24
mvn ip, ip, lsl r3
ldrb r3, [r6, #-2546] @ zero_extendqisi2
and r0, ip, lr, lsr r1
bic r1, lr, ip, lsl r1
str r3, [sp]
uxtb r0, r0
ldr r3, [r6, #-96]
ldr r2, [r6, #-92]
bl flash_read_page_en
cmn r0, #1
mov r3, r0
beq .L2708
ldr r1, [r7, #1244]
ldr r2, [r6, #-96]
ldr r1, [r1]
ldr r2, [r2]
cmp r1, r2
beq .L2719
.L2708:
mov r2, #48
ldr r0, .L2779+36
mla r5, r2, r5, r4
ldrb r2, [r4, #1196] @ zero_extendqisi2
ldrb r1, [r5, #1233] @ zero_extendqisi2
str r2, [sp]
ldr r2, [r5, #1256]
bl printk
mvn r3, #0
str r3, [r5, #1268]
b .L2719
.L2694:
ldrb r1, [r4, #1153] @ zero_extendqisi2
mvn r2, #0
cmp r3, #11
ldr r9, .L2779+32
moveq r3, #10
movne r3, #3
rsb r0, r1, #24
mov lr, r3
mvn r2, r2, lsl r1
add r3, r5, r5, lsl #1
and r1, r2, r7, lsr r0
add r3, r9, r3, lsl #4
uxth r1, r1
mov r6, #48
movw r10, #1256
.L2710:
ldrb r8, [r3] @ zero_extendqisi2
cmp r8, #255
mvneq r7, #0
beq .L2685
.L2717:
mla ip, r6, r8, r4
movw fp, #1274
add r3, r8, r8, lsl #1
ldrb fp, [ip, fp] @ zero_extendqisi2
add r3, r9, r3, lsl #4
cmp fp, lr
bne .L2710
ldr ip, [ip, r10]
and ip, r2, ip, lsr r0
cmp r1, ip
bne .L2710
bl nandc_iqr_wait_flash_ready
mov r0, r7
mov r1, #64
bl flash_wait_device_ready
tst r0, #64
mov r7, r0
bne .L2712
.L2776:
mov r7, #0
b .L2713
.L2712:
ands r3, r0, #15
mul r6, r6, r5
beq .L2714
add r6, r4, r6
mov r9, #12
ldrb r1, [r6, #1233] @ zero_extendqisi2
mov r2, r0
str r9, [sp]
ldr r0, .L2779+40
ldr r3, [r6, #1256]
bl printk
mvn r3, #0
strb r9, [r6, #1274]
str r3, [r6, #1268]
.L2713:
mov r3, #48
mla r5, r3, r5, r4
mla r8, r3, r8, r4
ldrb r2, [r5, #1274] @ zero_extendqisi2
ldr r3, [r5, #1268]
strb r2, [r8, #1274]
str r3, [r8, #1268]
.L2685:
mov r0, r7
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2714:
add r7, r4, r6
mov r2, #13
str r3, [r7, #1268]
ldr r3, [r4, #2800]
strb r2, [r7, #1274]
ldr r2, [r3, #156]
ldr r3, .L2779+28
cmp r2, r3
bne .L2776
add r6, r9, r6
ldrh r3, [r6, #34]
cmp r3, #0
bne .L2776
ldrb r3, [r4, #1153] @ zero_extendqisi2
mvn ip, #0
ldr lr, [r7, #1256]
ldr r6, .L2779+4
rsb r1, r3, #24
mvn ip, ip, lsl r3
ldrb r3, [r6, #-2546] @ zero_extendqisi2
and r0, ip, lr, lsr r1
bic r1, lr, ip, lsl r1
str r3, [sp]
uxtb r0, r0
ldr r3, [r6, #-96]
ldr r2, [r6, #-92]
bl flash_read_page_en
cmn r0, #1
mov r3, r0
beq .L2716
ldr r1, [r7, #1244]
ldr r2, [r6, #-96]
ldr r1, [r1]
ldr r2, [r2]
cmp r1, r2
beq .L2776
.L2716:
mov r6, #48
ldrb r2, [r4, #1196] @ zero_extendqisi2
mla r6, r6, r5, r4
ldr r0, .L2779+44
ldrb r1, [r6, #1233] @ zero_extendqisi2
str r2, [sp]
ldr r2, [r6, #1256]
bl printk
mvn r3, #0
str r3, [r6, #1268]
b .L2776
.L2692:
mov r0, r7
mov r1, #32
bl flash_wait_device_ready
tst r0, #32
mov r7, r0
beq .L2719
ands r2, r0, #15
mov r3, #48
mla r4, r3, r5, r4
movne r3, #12
strbne r3, [r4, #1274]
bne .L2777
.L2718:
mov r3, #13
str r2, [r4, #1268]
strb r3, [r4, #1274]
b .L2719
.L2693:
mov r1, #64
mov r0, r7
bl flash_wait_device_ready
tst r0, #64
movne r3, #48
mlane r4, r3, r5, r4
movne r3, #7
strne r0, [r4, #1268]
strbne r3, [r4, #1274]
b .L2719
.L2780:
.align 2
.L2779:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR2
.word .LC173
.word .LANCHOR1+2034
.word .LC0
.word .LC174
.word 1145785929
.word .LANCHOR0+1232
.word .LC175
.word .LC176
.word .LC177
.fnend
.size queue_wait_first_req_completed, .-queue_wait_first_req_completed
.align 2
.global sblk_prog_page
.syntax unified
.arm
.fpu softvfp
.type sblk_prog_page, %function
sblk_prog_page:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r4, r0
ldrh r3, [r0, #34]
mov r5, r1
cmp r3, #0
beq .L2782
ldr r3, .L2812
ldr r3, [r3]
tst r3, #256
beq .L2782
mov r2, r1
ldr r1, [r0, #24]
ldr r0, .L2812+4
bl printk
.L2782:
ldr r8, .L2812+8
mov r6, #0
ldr fp, .L2812+12
.L2783:
cmp r5, #0
bne .L2794
.L2810:
mov r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2794:
ldrb r9, [r4] @ zero_extendqisi2
ldr r7, [r4, #24]
.L2784:
mov r1, #1
mov r0, r7
bl queue_lun_state
cmp r0, #0
bne .L2785
cmp r5, #1
beq .L2786
ldrb r3, [r8, #1194] @ zero_extendqisi2
cmp r3, #0
beq .L2786
ldrb r3, [r8, #1159] @ zero_extendqisi2
cmp r3, #0
beq .L2787
.L2786:
mov r0, r4
bl queue_prog_cmd
.L2788:
subs r5, r5, #1
beq .L2810
ldr r4, .L2812+16
add r9, r9, r9, lsl #1
add r4, r4, r9, lsl #4
b .L2783
.L2785:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2784
.L2787:
ldrb r2, [r8, #1153] @ zero_extendqisi2
mvn r3, #0
rsb r1, r2, #24
mvn r3, r3, lsl r2
ldrb r2, [r4] @ zero_extendqisi2
and r3, r3, r7, lsr r1
cmp r2, #255
uxth r3, r3
bne .L2789
movw r2, #697
ldr r1, .L2812+20
ldr r0, .L2812+24
str r3, [sp, #4]
bl printk
bl dump_stack
ldr r3, [sp, #4]
.L2789:
ldrb r2, [r4] @ zero_extendqisi2
mov r1, #48
mov r10, #1
mla r2, r1, r2, r8
ldrb r1, [r8, #1153] @ zero_extendqisi2
ldr r0, [r2, #1256]
rsb r2, r1, #24
lsl r1, r10, r1
sub r1, r1, #1
and r1, r1, r0, lsr r2
uxth r1, r1
cmp r3, r1
bne .L2790
ldr r3, .L2812+28
ldrb lr, [fp, #-3136] @ zero_extendqisi2
ldrh ip, [r3, #-2]
sub lr, lr, #1
sub r3, r2, ip
lsl r3, r10, r3
lsl r2, r10, ip
sub r3, r3, #1
sub r2, r2, #1
and r3, r3, lr
uxth r2, r2
uxth r3, r3
and r1, r3, r7, lsr ip
and r3, r3, r0, lsr ip
and ip, r2, r7
subs r7, r1, r3
and r2, r2, r0
movne r7, #1
cmp ip, r2
movne r7, #0
cmp r7, #0
beq .L2790
cmp r6, lr
beq .L2790
ldr r3, [r4, #12]
mov r0, #17
ldr r2, [r4, #4]
add r6, r6, r10
ldr r1, [r4, #24]
bl flash_start_page_prog
mov r3, #9
strb r10, [r4, #43]
strb r3, [r4, #42]
mvn r3, #0
strb r3, [r4]
mov r1, r4
ldr r0, .L2812+32
bl buf_add_tail
b .L2788
.L2790:
mov r0, r4
mov r6, #0
bl queue_prog_cmd
b .L2788
.L2813:
.align 2
.L2812:
.word .LANCHOR2
.word .LC178
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+1232
.word .LANCHOR1+2065
.word .LC0
.word .LANCHOR3-3136
.word .LANCHOR0+2770
.fnend
.size sblk_prog_page, .-sblk_prog_page
.align 2
.global sblk_wait_write_queue_completed
.syntax unified
.arm
.fpu softvfp
.type sblk_wait_write_queue_completed, %function
sblk_wait_write_queue_completed:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
ldr r4, .L2818
.L2815:
ldrb r3, [r4, #2770] @ zero_extendqisi2
cmp r3, #255
bne .L2816
pop {r4, pc}
.L2816:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2815
.L2819:
.align 2
.L2818:
.word .LANCHOR0
.fnend
.size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
.align 2
.global ftl_flush
.syntax unified
.arm
.fpu softvfp
.type ftl_flush, %function
ftl_flush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r4, .L2826
ldr r5, .L2826+4
ldrb r1, [r4, #2797] @ zero_extendqisi2
cmp r1, #0
beq .L2821
ldrb r3, [r5, #-88] @ zero_extendqisi2
add r0, r4, #1232
add r3, r3, r3, lsl #1
add r0, r0, r3, lsl #4
bl sblk_prog_page
.L2821:
mvn r3, #0
strb r3, [r5, #-88]
mov r3, #0
strb r3, [r4, #2797]
bl sblk_wait_write_queue_completed
bl ftl_write_completed
movw r0, #65535
pop {r4, r5, r6, lr}
b ftl_vpn_decrement
.L2827:
.align 2
.L2826:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size ftl_flush, .-ftl_flush
.align 2
.global zftl_cache_flush
.syntax unified
.arm
.fpu softvfp
.type zftl_cache_flush, %function
zftl_cache_flush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L2836
ldrb r3, [r3, #2797] @ zero_extendqisi2
cmp r3, #0
bxeq lr
push {r4, lr}
.save {r4, lr}
bl timer_get_time
ldr r3, .L2836+4
ldr r3, [r3, #-84]
add r3, r3, #100
cmp r0, r3
popls {r4, pc}
pop {r4, lr}
b ftl_flush
.L2837:
.align 2
.L2836:
.word .LANCHOR0
.word .LANCHOR3
.fnend
.size zftl_cache_flush, .-zftl_cache_flush
.align 2
.global ftl_read_page
.syntax unified
.arm
.fpu softvfp
.type ftl_read_page, %function
ftl_read_page:
.fnstart
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r8, [sp, #24]
mov r5, r1
mov r6, r2
mov r7, r3
bl sblk_wait_write_queue_completed
mov r3, r7
str r8, [sp, #24]
mov r2, r6
mov r1, r5
mov r0, r4
pop {r4, r5, r6, r7, r8, lr}
b flash_read_page_en
.fnend
.size ftl_read_page, .-ftl_read_page
.align 2
.global ftl_read_ppa_page
.syntax unified
.arm
.fpu softvfp
.type ftl_read_ppa_page, %function
ftl_read_ppa_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r8, r3
ldr r3, .L2842
mov r5, r0
mvn r4, #0
mov r6, r1
mov r7, r2
ldrb r0, [r3, #1153] @ zero_extendqisi2
rsb r3, r0, #24
mvn r4, r4, lsl r0
and r4, r4, r5, lsr r3
uxtb r4, r4
bl sblk_wait_write_queue_completed
mov r3, r7
str r8, [sp]
mov r2, r6
mov r1, r5
mov r0, r4
bl flash_read_page_en
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L2843:
.align 2
.L2842:
.word .LANCHOR0
.fnend
.size ftl_read_ppa_page, .-ftl_read_ppa_page
.align 2
.global sblk_read_page
.syntax unified
.arm
.fpu softvfp
.type sblk_read_page, %function
sblk_read_page:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r10, r0
mov r7, r1
mov r4, r0
mov r5, r1
.L2845:
cmp r5, #0
bne .L2855
.L2868:
ldr r4, .L2870
.L2856:
cmp r7, #0
bne .L2858
mov r0, r7
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2855:
ldrb r8, [r4] @ zero_extendqisi2
ldr fp, [r4, #24]
.L2846:
mov r1, #0
mov r0, fp
bl queue_lun_state
cmp r0, #0
bne .L2847
cmp r5, #1
beq .L2852
ldr r3, .L2870+4
ldrb r3, [r3, #-80] @ zero_extendqisi2
cmp r3, #0
bne .L2849
.L2852:
mov r0, r4
bl queue_read_cmd
b .L2850
.L2847:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2846
.L2849:
ldr r3, .L2870+8
ldrb r2, [r3, #1153] @ zero_extendqisi2
mvn r3, #0
rsb r1, r2, #24
mvn r3, r3, lsl r2
ldrb r2, [r4] @ zero_extendqisi2
and r3, r3, fp, lsr r1
cmp r2, #255
uxth r3, r3
bne .L2851
movw r2, #782
ldr r1, .L2870+12
ldr r0, .L2870+16
str r3, [sp]
bl printk
bl dump_stack
ldr r3, [sp]
.L2851:
ldr r2, .L2870+8
mov r6, #48
ldrb r9, [r4] @ zero_extendqisi2
ldrb ip, [r2, #1153] @ zero_extendqisi2
mla r6, r6, r9, r2
mvn r2, #0
mvn r2, r2, lsl ip
rsb r0, ip, #24
ldr r1, [r6, #1256]
and r2, r2, r1, lsr r0
uxth r2, r2
cmp r3, r2
bne .L2852
ldr r3, .L2870+20
ldrh r3, [r3]
add fp, r3, fp
cmp r1, fp
bne .L2852
ldr r0, [r4, #24]
mvn fp, #0
ldrb r8, [r6, #1232] @ zero_extendqisi2
add r9, r9, r9, lsl #1
add r5, r5, fp
bl flash_start_plane_read
mov r2, #2
mov r3, #0
strb r2, [r4, #42]
mov r1, r4
strb r3, [r4, #43]
ldr r0, .L2870+24
strb fp, [r4]
str r2, [sp, #4]
str r3, [sp]
bl buf_add_tail
ldr r1, .L2870
ldr r2, [sp, #4]
ldr r3, [sp]
strb fp, [r6, #1232]
strb r2, [r6, #1274]
add r1, r1, r9, lsl #4
strb r3, [r6, #1275]
ldr r0, .L2870+24
bl buf_add_tail
.L2850:
subs r5, r5, #1
beq .L2868
ldr r4, .L2870
add r8, r8, r8, lsl #1
add r4, r4, r8, lsl #4
b .L2845
.L2858:
ldrb r3, [r10, #42] @ zero_extendqisi2
cmp r3, #13
bne .L2857
ldrb r3, [r10] @ zero_extendqisi2
sub r7, r7, #1
cmp r3, #255
addne r3, r3, r3, lsl #1
addne r10, r4, r3, lsl #4
.L2857:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2856
.L2871:
.align 2
.L2870:
.word .LANCHOR0+1232
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR1+2080
.word .LC0
.word .LANCHOR3-3074
.word .LANCHOR0+2770
.fnend
.size sblk_read_page, .-sblk_read_page
.align 2
.global gc_check_data_one_wl
.syntax unified
.arm
.fpu softvfp
.type gc_check_data_one_wl, %function
gc_check_data_one_wl:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
ldr r5, .L2906
ldr r3, [r5, #2832]
ldr r10, [r5, #1096]
cmp r3, #0
bne .L2873
mov r0, #1
bl buf_alloc
str r0, [r5, #2832]
.L2873:
ldr r4, [r5, #2832]
cmp r4, #0
bne .L2874
movw r2, #729
ldr r1, .L2906+4
ldr r0, .L2906+8
bl printk
bl dump_stack
.L2874:
ldr r7, .L2906+12
add fp, r10, #96
mov r9, #0
.L2875:
ldrb r3, [r10, #89] @ zero_extendqisi2
ldr r6, .L2906+16
cmp r9, r3
bge .L2886
mov r8, #1
b .L2887
.L2885:
ldr r2, .L2906+20
ldrb r1, [r7, #-3128] @ zero_extendqisi2
ldrh r3, [fp]
ldrh r2, [r2, #-2]
cmp r1, #2
mul r2, r2, r3
beq .L2876
ldrb r3, [r5, #1158] @ zero_extendqisi2
cmp r3, #0
beq .L2877
.L2876:
ldrh r3, [r6, #12]
sub r3, r3, #1
add r3, r3, r2
add r3, r3, r8
orr r3, r3, r1, lsl #24
.L2905:
str r3, [r4, #24]
mov r1, #1
mov r0, r4
bl sblk_read_page
ldr r2, [r4, #36]
cmn r2, #1
beq .L2881
ldr r0, [r7, #-132]
ldrh r1, [r6, #18]
ldr r3, [r4, #12]
ldr ip, [r0, r1, lsl #2]
ldr r0, [r3, #4]
cmp ip, r0
bne .L2881
ldr r0, [r7, #-128]
ldr r3, [r3, #8]
ldr r1, [r0, r1, lsl #2]
cmp r1, r3
beq .L2882
.L2881:
ldrh r3, [r6, #18]
ldr r1, [r7, #-132]
lsl r0, r3, #2
ldr r3, [r1, r3, lsl #2]
cmn r3, #1
beq .L2882
ldr r1, .L2906+24
ldr r1, [r1]
tst r1, #1024
beq .L2883
ldr r1, [r4, #12]
ldr ip, [r1, #12]
str ip, [sp, #16]
ldr ip, [r1, #8]
str ip, [sp, #12]
ldr ip, [r1, #4]
str ip, [sp, #8]
ldr r1, [r1]
str r1, [sp, #4]
ldr r1, [r7, #-128]
ldr r1, [r1, r0]
ldr r0, .L2906+28
str r1, [sp]
ldr r1, [r4, #24]
bl printk
.L2883:
ldrh r3, [r10, #80]
mov r1, #0
ldr r2, [r5, #1092]
lsl r3, r3, #1
strh r1, [r2, r3] @ movhi
ldr r2, [r5, #1096]
ldr r3, [r2, #556]
add r3, r3, #1
str r3, [r2, #556]
ldr r3, [r5, #2800]
ldr r2, [r3, #156]
ldr r3, .L2906+32
cmp r2, r3
bne .L2890
ldrb r3, [r7, #-2542] @ zero_extendqisi2
cmp r3, r1
bne .L2890
ldrb r3, [r7, #-3126] @ zero_extendqisi2
cmp r3, r1
bne .L2890
ldr r0, [r4, #24]
bl ftl_mask_bad_block
.L2890:
mvn r0, #0
b .L2872
.L2877:
ldrh r3, [r6, #12]
cmp r1, #3
addne r3, r3, r2
bne .L2905
ldrb r1, [r5, #1159] @ zero_extendqisi2
cmp r1, #0
addne r3, r3, r3, lsl #1
addeq r3, r3, r2
orreq r3, r3, r8, lsl #24
subne r3, r3, #1
addne r3, r3, r2
addne r3, r3, r8
orrne r3, r3, #50331648
b .L2905
.L2882:
ldrh r3, [r6, #18]
add r8, r8, #1
add r3, r3, #1
strh r3, [r6, #18] @ movhi
.L2887:
ldrh r3, [r6, #16]
cmp r8, r3
ble .L2885
add r9, r9, #1
add fp, fp, #2
b .L2875
.L2886:
ldrh r3, [r6, #12]
add r2, r3, #1
strh r2, [r6, #12] @ movhi
ldr r2, .L2906+12
ldrb r0, [r2, #-3126] @ zero_extendqisi2
cmp r0, #0
movne r0, #0
addne r3, r3, #2
strhne r3, [r6, #12] @ movhi
.L2884:
.L2872:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2907:
.align 2
.L2906:
.word .LANCHOR0
.word .LANCHOR1+2095
.word .LC0
.word .LANCHOR3
.word .LANCHOR0+2824
.word .LANCHOR3-3072
.word .LANCHOR2
.word .LC179
.word 1145785929
.fnend
.size gc_check_data_one_wl, .-gc_check_data_one_wl
.align 2
.global sblk_tlc_prog_one_page
.syntax unified
.arm
.fpu softvfp
.type sblk_tlc_prog_one_page, %function
sblk_tlc_prog_one_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r0
ldr r3, [r0]
ldr r6, [r3, #24]
.L2909:
mov r1, #1
mov r0, r6
bl queue_lun_state
subs r5, r0, #0
bne .L2910
mov r0, r4
mov r1, #1
bl queue_tlc_prog_cmd
mov r0, r5
pop {r4, r5, r6, pc}
.L2910:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2909
.fnend
.size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
.align 2
.global sblk_xlc_prog_pages
.syntax unified
.arm
.fpu softvfp
.type sblk_xlc_prog_pages, %function
sblk_xlc_prog_pages:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, r0
ldr r3, [r0]
.pad #20
sub sp, sp, #20
mov r7, r1
mov fp, r2
ldr r4, [r3, #24]
.L2913:
mov r1, #1
mov r0, r4
bl queue_lun_state
subs r10, r0, #0
bne .L2914
cmp fp, #2
bne .L2915
ldr r1, .L2925
ldr lr, [r7]
ldrb r3, [r1, #1194] @ zero_extendqisi2
cmp r3, #0
ldreq r4, [lr, #24]
beq .L2920
ldrb r3, [r1, #1153] @ zero_extendqisi2
mov r9, #1
ldr r2, [r5]
ldr lr, [lr, #24]
rsb r0, r3, #24
ldr ip, [r2, #24]
lsl r4, r9, r3
ldrb r3, [r1, #1159] @ zero_extendqisi2
lsl r6, r9, r0
sub r4, r4, #1
sub r6, r6, #1
and r4, r4, ip, lsr r0
cmp r3, #0
and r8, ip, r6
uxtb r4, r4
and r6, r6, lr
beq .L2917
mov r0, r4
bl zftl_flash_exit_slc_mode
ldr r3, [r5]
mov r1, r9
mov r0, r10
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #17
ldr r3, [r3, #4]
str r8, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7]
mov r1, r9
mov r0, r10
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r6, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [r5, #4]
mov r1, fp
mov r0, r10
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #17
ldr r3, [r3, #4]
str r3, [sp, #4]
add r3, r8, r9
str r3, [sp]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7, #4]
mov r1, fp
mov r0, r10
add r8, r8, #2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r3, [sp, #4]
add r3, r6, r9
str r3, [sp]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [r5, #8]
mov r1, #3
mov r0, r10
add r6, r6, #2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #17
ldr r3, [r3, #4]
str r8, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7, #8]
mov r1, #3
mov r0, r10
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #16
ldr r3, [r3, #4]
str r6, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_one_pass_page_prog
.L2918:
ldr r1, [r5]
mov r3, #5
ldr r0, .L2925+4
strb r3, [r1, #42]
mov r3, #1
strb r3, [r1, #43]
mvn r3, #0
strb r3, [r1]
bl buf_add_tail
.L2919:
mov r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2914:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2913
.L2917:
ldr r3, [r2, #12]
mov r1, r9
ldrb r0, [r2, #44] @ zero_extendqisi2
str r3, [sp, #8]
ldr r3, [r2, #4]
mov r2, #17
str r8, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7]
mov r1, r9
ldr r2, [r5]
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r6, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_wait_flash_ready
ldm r5, {r2, r3}
mov r1, fp
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #17
ldr r3, [r3, #4]
str r8, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7, #4]
mov r1, fp
ldr r2, [r5]
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #26
ldr r3, [r3, #4]
str r6, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_wait_flash_ready
ldr r3, [r5, #8]
mov r1, #3
ldr r2, [r5]
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #17
ldr r3, [r3, #4]
str r8, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
bl nandc_wait_flash_ready
ldr r3, [r7, #8]
mov r1, #3
ldr r2, [r5]
ldrb r0, [r2, #44] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #8]
mov r2, #16
ldr r3, [r3, #4]
str r6, [sp]
str r3, [sp, #4]
mov r3, r4
bl flash_start_tlc_page_prog
b .L2918
.L2921:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
.L2920:
mov r1, #1
mov r0, r4
bl queue_lun_state
subs r6, r0, #0
bne .L2921
mov r1, #1
mov r0, r5
bl queue_tlc_prog_cmd
mov r1, r6
mov r0, r7
bl queue_tlc_prog_cmd
.L2922:
mov r1, #1
mov r0, r4
bl queue_lun_state
cmp r0, #0
beq .L2919
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2922
.L2915:
mov r1, #1
mov r0, r5
bl queue_tlc_prog_cmd
b .L2919
.L2926:
.align 2
.L2925:
.word .LANCHOR0
.word .LANCHOR0+2770
.fnend
.size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
.align 2
.global sblk_3d_mlc_prog_pages
.syntax unified
.arm
.fpu softvfp
.type sblk_3d_mlc_prog_pages, %function
sblk_3d_mlc_prog_pages:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r7, r1
ldr r9, .L2933
add r5, r0, #8
mov r8, #1
ldr r10, .L2933+4
.L2928:
cmp r7, #0
bne .L2931
mov r0, r7
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L2931:
ldr r3, [r5, #-8]
ldr r4, [r3, #24]
.L2929:
mov r1, #1
mov r0, r4
bl queue_lun_state
cmp r0, #0
bne .L2930
ldr r3, [r5, #-8]
sub r7, r7, #1
add r5, r5, #8
ldr r1, [r3, #24]
ldrb r3, [r9, #1153] @ zero_extendqisi2
rsb r2, r3, #24
lsl r4, r8, r3
lsl r6, r8, r2
sub r4, r4, #1
sub r6, r6, #1
and r4, r4, r1, lsr r2
and r6, r6, r1
uxtb r4, r4
mov r0, r4
bl zftl_flash_exit_slc_mode
ldr r3, [r5, #-16]
mov r1, r4
mov r0, #16
ldr r2, [r3, #12]
str r2, [sp]
mov r2, r6
ldr r3, [r3, #4]
bl flash_start_3d_mlc_page_prog
bl nandc_wait_flash_ready
ldr r3, [r5, #-12]
mov r1, r4
mov r0, #16
ldr r2, [r3, #12]
str r2, [sp]
add r2, r6, #1
ldr r3, [r3, #4]
bl flash_start_3d_mlc_page_prog
bl nandc_de_cs.constprop.35
ldr r1, [r5, #-16]
mov r3, #4
mov r0, r10
strb r3, [r1, #42]
mvn r3, #0
strb r8, [r1, #43]
strb r3, [r1]
bl buf_add_tail
b .L2928
.L2930:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
b .L2929
.L2934:
.align 2
.L2933:
.word .LANCHOR0
.word .LANCHOR0+2770
.fnend
.size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
.align 2
.global flash_prog_page_en
.syntax unified
.arm
.fpu softvfp
.type flash_prog_page_en, %function
flash_prog_page_en:
.fnstart
@ args = 8, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
mov r10, r3
ldr r4, .L2966
mov r8, r0
mov r5, r1
ldrb r3, [sp, #68] @ zero_extendqisi2
mov fp, r2
ubfx r7, r1, #24, #2
str r3, [sp, #20]
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r0
bhi .L2936
movw r2, #642
ldr r1, .L2966+4
ldr r0, .L2966+8
bl printk
bl dump_stack
.L2936:
ldrb r3, [r4, #1109] @ zero_extendqisi2
cmp r3, r8
mvnls r0, #0
bls .L2935
add r3, r4, r8
cmp r7, #0
ldrb r3, [r3, #1144] @ zero_extendqisi2
str r3, [sp, #12]
bne .L2949
ldrb r3, [r4] @ zero_extendqisi2
cmp r3, #0
beq .L2939
ldrb r3, [r4, #1] @ zero_extendqisi2
cmp r3, #0
beq .L2949
.L2939:
ldrh r7, [r4, #2]
mov r0, r5
mov r1, r7
bl __aeabi_uidiv
mov r1, r7
mul r6, r7, r0
mov r0, r5
bl __aeabi_uidivmod
ldrb r3, [r4, #1] @ zero_extendqisi2
lsl r1, r1, #1
cmp r3, #0
addeq r4, r4, r1
ldrheq r1, [r4, #4]
add r6, r1, r6
.L2938:
ldr r4, .L2966+12
ldr r7, .L2966+16
.L2944:
ldr r3, [r4]
tst r3, #16
beq .L2941
mov r3, r6
mov r2, r5
ldr r1, [sp, #12]
ldr r0, .L2966+20
bl printk
.L2941:
ldr r3, [sp, #64]
mov r2, fp
mov r1, r6
ldr r0, [sp, #12]
str r3, [sp]
mov r3, r10
bl flash_prog_page
ldr r3, [sp, #20]
str r0, [sp, #16]
cmp r3, #0
beq .L2942
ldr r3, [sp, #64]
mov r1, r5
mov r0, r8
str r3, [sp]
ldr r3, [r7, #-96]
ldr r2, [r7, #-92]
bl flash_read_page_en
cmn r0, #1
cmpne r0, #512
mov r9, r0
beq .L2943
ldr r3, [r7, #-92]
ldr r2, [fp]
ldr r3, [r3]
cmp r2, r3
bne .L2943
ldr r3, [r7, #-96]
ldr r2, [r10]
ldr r3, [r3]
cmp r2, r3
beq .L2942
.L2943:
mov r3, #4
mov r1, fp
mov r2, r3
ldr r0, .L2966+24
bl rknand_print_hex
mov r3, #4
mov r1, r10
mov r2, r3
ldr r0, .L2966+28
bl rknand_print_hex
mov r3, #4
ldr r1, [r7, #-96]
mov r2, r3
ldr r0, .L2966+32
bl rknand_print_hex
mov r3, #4
ldr r1, [r7, #-92]
mov r2, r3
ldr r0, .L2966+36
bl rknand_print_hex
cmp r9, #512
beq .L2944
.L2946:
mov r1, r5
ldr r0, .L2966+40
bl printk
mvn r4, #0
movw r2, #685
ldr r1, .L2966+4
ldr r0, .L2966+8
bl printk
bl dump_stack
.L2945:
mov r0, r4
.L2935:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2949:
mov r6, r5
b .L2938
.L2942:
ldr r4, [sp, #16]
cmn r4, #1
bne .L2945
b .L2946
.L2967:
.align 2
.L2966:
.word .LANCHOR0
.word .LANCHOR1+2116
.word .LC0
.word .LANCHOR2
.word .LANCHOR3
.word .LC180
.word .LC181
.word .LC182
.word .LC183
.word .LC184
.word .LC185
.fnend
.size flash_prog_page_en, .-flash_prog_page_en
.align 2
.global ftl_prog_page
.syntax unified
.arm
.fpu softvfp
.type ftl_prog_page, %function
ftl_prog_page:
.fnstart
@ args = 4, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
mov r4, r0
mov r7, r3
mov r5, r1
mov r6, r2
bl sblk_wait_write_queue_completed
mov r3, #1
mov r0, r4
str r3, [sp, #4]
mov r2, r6
ldr r3, [sp, #32]
mov r1, r5
str r3, [sp]
mov r3, r7
bl flash_prog_page_en
cmn r0, #1
mov r4, r0
bne .L2968
ldr r1, .L2971
movw r2, #2678
ldr r0, .L2971+4
bl printk
bl dump_stack
mov r1, r5
ldr r0, .L2971+8
bl printk
.L2968:
mov r0, r4
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
.L2972:
.align 2
.L2971:
.word .LANCHOR1+2135
.word .LC0
.word .LC185
.fnend
.size ftl_prog_page, .-ftl_prog_page
.align 2
.global ftl_info_flush
.syntax unified
.arm
.fpu softvfp
.type ftl_info_flush, %function
ftl_info_flush:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r1, #0
ldr r4, .L3010
.pad #20
sub sp, sp, #20
mov r9, r0
mov r8, #0
ldr r6, .L3010+4
ldrb r2, [r4, #-2546] @ zero_extendqisi2
ldr r0, [r4, #-76]
ldr r10, .L3010+8
ldr r7, .L3010+12
lsl r2, r2, #1
bl ftl_memset
ldr r3, [r6, #2800]
ldrh r2, [r3, #74]
cmp r2, #1
movhi r2, #0
strhhi r2, [r3, #150] @ movhi
.L2987:
ldr r3, .L3010+16
ldr r2, [r6, #2800]
ldrb r5, [r4, #-56] @ zero_extendqisi2
ldrh fp, [r3]
ldrh r3, [r4, #-54]
str r3, [sp, #8]
ldr r3, [r2, #4]
add r3, r3, #1
str r3, [r2, #4]
ldr r3, [r4, #-76]
str r9, [r3]
ldr r2, [r6, #2800]
ldrb r1, [r4, #-2546] @ zero_extendqisi2
ldr r3, [r4, #-76]
ldr r2, [r2, #4]
ldr r0, [r4, #-52]
lsl r1, r1, #9
str r3, [sp, #12]
str r2, [r3, #4]
bl js_hash
ldr r3, [sp, #12]
str r0, [r3, #8]
ldr r3, [r10]
tst r3, #4096
beq .L2975
ldr r3, [r6, #2800]
ldrh r2, [r4, #-54]
ldrb r1, [r4, #-56] @ zero_extendqisi2
ldr r3, [r3, #4]
ldr r0, .L3010+20
bl printk
.L2975:
ldr r3, .L3010+24
ldrh r0, [r4, #-54]
ldrh r3, [r3]
cmp r3, r0
bhi .L2976
ldr fp, .L3010+28
ldr r5, .L3010+32
.L2983:
ldrb r3, [r4, #-55] @ zero_extendqisi2
add r3, r3, #1
uxtb r3, r3
cmp r3, #7
strb r3, [r4, #-55]
bls .L2977
mov r3, #8
.L2982:
ldr r2, [r6, #1040]
sub r8, r3, #8
uxth r8, r8
add r2, r2, r3
ldrb r1, [r2, #32] @ zero_extendqisi2
add r2, r1, #127
uxtb r2, r2
cmp r2, #125
bhi .L2978
movw r2, #846
mov r1, fp
mov r0, r5
bl printk
bl dump_stack
.L2981:
strb r8, [r4, #-55]
mov r8, #1
.L2977:
ldr r3, [r6, #1040]
ldrb r2, [r4, #-55] @ zero_extendqisi2
add r3, r3, r2
ldrb r3, [r3, #40] @ zero_extendqisi2
cmp r3, #255
strb r3, [r4, #-56]
beq .L2983
ldrh r5, [r7, #-2]
mov r0, #0
mul r5, r3, r5
mov r1, r5
bl flash_erase_block
ldrb r3, [r4, #-2546] @ zero_extendqisi2
mov r1, r5
ldr r2, [r4, #-52]
mov r0, #0
str r3, [sp]
ldr r3, [r4, #-76]
bl ftl_prog_page
mov r3, #1
add r5, r5, r3
strh r3, [r4, #-54] @ movhi
.L2984:
ldrb r3, [r4, #-2546] @ zero_extendqisi2
mov r1, r5
ldr r2, [r4, #-52]
mov r0, #0
str r3, [sp]
ldr r3, [r4, #-76]
bl ftl_prog_page
ldrh r3, [r4, #-54]
cmn r0, #1
add r3, r3, #1
strh r3, [r4, #-54] @ movhi
beq .L2985
ldrb r3, [r4, #-48] @ zero_extendqisi2
cmp r3, #0
beq .L2986
.L2985:
mov r3, #0
strb r3, [r4, #-48]
b .L2987
.L2978:
cmp r1, #255
bne .L2981
add r3, r3, #1
cmp r3, #16
bne .L2982
mov r8, #8
b .L2981
.L2976:
ldr r3, [sp, #8]
cmp r0, #0
mla r5, fp, r5, r3
bne .L2984
mov r1, r5
bl flash_erase_block
b .L2984
.L2986:
cmp r8, #1
beq .L2988
.L2996:
ldrb r3, [r4, #-56] @ zero_extendqisi2
cmp r3, #255
bne .L2990
movw r2, #890
ldr r1, .L3010+28
ldr r0, .L3010+32
bl printk
bl dump_stack
.L2990:
mov r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L2988:
ldrb r5, [r4, #-55] @ zero_extendqisi2
ldr r8, .L3010+28
ldr r9, .L3010+32
add r5, r5, #1
.L2991:
cmp r5, #7
bhi .L2996
ldr r3, [r6, #1040]
add r3, r3, r5
ldrb r10, [r3, #40] @ zero_extendqisi2
add r3, r10, #127
uxtb r3, r3
cmp r3, #125
bhi .L2992
movw r2, #881
mov r1, r8
mov r0, r9
bl printk
bl dump_stack
.L2993:
ldrh r1, [r7, #-2]
mov r0, #0
mul r1, r10, r1
bl flash_erase_block
b .L2994
.L2992:
cmp r10, #255
bne .L2993
.L2994:
add r5, r5, #1
uxth r5, r5
b .L2991
.L3011:
.align 2
.L3010:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR3-3072
.word .LANCHOR3-3074
.word .LC186
.word .LANCHOR3-3096
.word .LANCHOR1+2149
.word .LC0
.fnend
.size ftl_info_flush, .-ftl_info_flush
.align 2
.global ftl_info_blk_init
.syntax unified
.arm
.fpu softvfp
.type ftl_info_blk_init, %function
ftl_info_blk_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r3, #1
ldr r4, .L3043
mov r6, #0
mov r1, r6
mov r2, #16384
ldr r5, .L3043+4
.pad #20
sub sp, sp, #20
strb r3, [r4, #-48]
strb r3, [r4, #-46]
movw r3, #1080
ldr r0, [r4, #-52]
ldrh r3, [r5, r3]
strb r6, [r4, #-47]
str r0, [r5, #1084]
ldr r10, .L3043+8
add r3, r0, r3, lsl #2
ldr r9, .L3043+12
str r3, [r5, #2800]
bl ftl_memset
mov r1, r6
mov r2, #16384
ldr r0, [r4, #-44]
bl ftl_memset
ldr r3, [r5, #1040]
strb r6, [r4, #-55]
strh r6, [r4, #-54] @ movhi
mov r6, #7
ldrb r3, [r3, #40] @ zero_extendqisi2
strb r3, [r4, #-56]
.L3014:
ldr r3, [r5, #1040]
sxth r8, r6
add r3, r3, r6
ldrb r7, [r3, #40] @ zero_extendqisi2
cmp r7, #255
bne .L3013
.L3018:
subs r6, r6, #1
bcs .L3014
mov r7, r6
mov r8, #0
.L3015:
ldr r6, .L3043+8
ldr r3, [r6]
tst r3, #4096
beq .L3019
ldr r3, [r5, #2800]
mov r2, #4800
mov r1, r7
ldr r0, .L3043+16
ldr r3, [r3]
bl printk
.L3019:
cmn r7, #1
bne .L3020
mov r2, #16384
mov r1, #0
ldr r0, [r4, #-52]
bl ftl_memset
ldr r3, [r5, #2800]
ldr r2, .L3043+12
str r2, [r3]
ldr r2, .L3043+20
ldr r3, [r5, #2800]
str r2, [r3, #12]
.L3042:
mov r0, r7
.L3012:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3013:
ldr r3, .L3043+24
mov r0, #0
ldr r2, [r4, #-52]
ldrh r3, [r3]
mul r7, r7, r3
ldrb r3, [r4, #-2546] @ zero_extendqisi2
str r3, [sp]
mov r1, r7
ldr r3, [r4, #-76]
bl ftl_read_page
cmn r0, #1
mov fp, r0
bne .L3016
ldrb r3, [r4, #-2546] @ zero_extendqisi2
add r1, r7, #1
ldr r2, [r4, #-52]
mov r0, #0
str r3, [sp]
ldr r3, [r4, #-76]
bl ftl_read_page
mov fp, r0
.L3016:
ldr r3, [r10]
tst r3, #4096
beq .L3017
ldr r3, [r5, #2800]
mov r2, fp
mov r1, r6
ldr r0, .L3043+28
ldr r3, [r3]
str r3, [sp]
movw r3, #749
bl printk
.L3017:
cmn fp, #1
beq .L3018
ldr r3, [r5, #2800]
ldr r3, [r3]
cmp r3, r9
bne .L3018
mov r7, r8
b .L3015
.L3020:
ldr r3, [r5, #1040]
mov r0, #0
ldr r2, [r4, #-52]
mov r7, #0
strb r8, [r4, #-55]
add r3, r3, r8
ldr r10, .L3043+12
ldrb r1, [r3, #40] @ zero_extendqisi2
mov r3, #4
str r3, [sp]
ldr r3, [r4, #-76]
strb r1, [r4, #-56]
bl flash_get_last_written_page
uxth r9, r0
ldrb r8, [r4, #-56] @ zero_extendqisi2
ldr fp, .L3043+32
add r3, r9, #1
uxth r3, r3
str r3, [sp, #8]
ldr r3, .L3043+36
ldrh r3, [r3, #-2]
mla r8, r3, r8, r0
.L3022:
sub r3, r9, r7
tst r3, #32768
bne .L3026
ldrb r3, [r4, #-2546] @ zero_extendqisi2
sub r1, r8, r7
ldr r2, [r4, #-52]
mov r0, #0
str r3, [sp]
ldr r3, [r4, #-76]
bl ftl_read_page
cmn r0, #1
beq .L3023
ldr r3, [r5, #2800]
ldr r3, [r3]
cmp r3, r10
bne .L3023
ldr r3, [r4, #-76]
ldr r3, [r3, #8]
cmp r3, #0
bne .L3024
.L3026:
ldrh r3, [sp, #8]
strh r3, [r4, #-54] @ movhi
bl ftl_tmp_into_update
ldr r2, [r5, #2800]
mov r0, #0
ldr r3, [r2, #64]
add r3, r3, #1
str r3, [r2, #64]
bl ftl_info_flush
mov r0, #0
bl ftl_info_flush
ldr r7, [r6]
ands r7, r7, #16384
beq .L3042
ldr r3, [r5, #2800]
ldr r0, .L3043+40
ldr r1, [r3, #156]
bl printk
mov r0, #0
b .L3012
.L3024:
ldrb r1, [r4, #-2546] @ zero_extendqisi2
ldr r0, [r4, #-52]
str r3, [sp, #12]
lsl r1, r1, #9
bl js_hash
ldr r3, [sp, #12]
cmp r3, r0
beq .L3026
ldr r3, [r4, #-76]
mov r0, fp
ldr r1, [r3, #8]
bl printk
.L3023:
add r7, r7, #1
b .L3022
.L3044:
.align 2
.L3043:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR2
.word 1229739078
.word .LC188
.word 393252
.word .LANCHOR3-3074
.word .LC187
.word .LC189
.word .LANCHOR3-3072
.word .LC190
.fnend
.size ftl_info_blk_init, .-ftl_info_blk_init
.align 2
.global ftl_ext_info_flush
.syntax unified
.arm
.fpu softvfp
.type ftl_ext_info_flush, %function
ftl_ext_info_flush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
.pad #12
bl timer_get_time
ldr r3, .L3061
ldr r5, .L3061+4
umull r0, r1, r0, r3
ldr r3, [r5, #1096]
ldr r0, [r3, #520]
lsr r1, r1, #5
cmp r1, r0
bls .L3046
ldr r2, [r3, #12]
sub r2, r2, r0
add r2, r2, r1
str r2, [r3, #12]
.L3060:
str r1, [r3, #520]
b .L3047
.L3046:
bcc .L3060
.L3047:
ldr r4, .L3061+8
mov r0, #0
bl ftl_total_vpn_update
sub r7, r4, #3136
.L3051:
ldr r3, [r5, #2800]
ldr r2, [r3, #56]
add r2, r2, #1
str r2, [r3, #56]
ldrh r2, [r3, #140]
ldr r3, .L3061+12
ldrh r3, [r3]
cmp r2, r3
bcc .L3049
bl ftl_ext_alloc_new_blk
.L3049:
ldr r3, [r5, #2800]
ldrh r2, [r3, #130]
movw r3, #65535
cmp r2, r3
bne .L3050
movw r2, #2211
ldr r1, .L3061+16
ldr r0, .L3061+20
bl printk
bl dump_stack
.L3050:
ldr r2, [r5, #2800]
ldrb r6, [r5, #1153] @ zero_extendqisi2
ldrh r1, [r7, #-2]
ldrh r3, [r2, #130]
rsb r6, r6, #24
ldr r0, [r4, #-76]
sub r6, r6, r1
mvn r1, #0
asr r8, r3, r6
bic r6, r3, r1, lsl r6
ldr r3, .L3061+24
sxth r6, r6
ldrh r1, [r3, #-2]
ldrh r3, [r2, #140]
ldrb r2, [r4, #-2546] @ zero_extendqisi2
mla r6, r1, r6, r3
lsl r2, r2, #1
mov r1, #0
bl ftl_memset
ldr r3, [r4, #-76]
mov r2, #0
str r2, [r3]
ldr r3, [r5, #2800]
ldrb r1, [r4, #-2546] @ zero_extendqisi2
ldr r9, [r4, #-76]
ldr r3, [r3, #56]
ldr r0, [r4, #-44]
lsl r1, r1, #9
str r3, [r9, #4]
bl js_hash
ldrb r3, [r4, #-2546] @ zero_extendqisi2
mov r1, r6
str r0, [r9, #8]
uxtb r0, r8
ldr r2, [r4, #-44]
str r3, [sp]
ldr r3, [r4, #-76]
bl ftl_prog_page
ldr r2, [r5, #2800]
ldrh r3, [r2, #140]
add r3, r3, #1
uxth r3, r3
cmp r3, #1
strh r3, [r2, #140] @ movhi
beq .L3051
cmn r0, #1
beq .L3052
ldrb r0, [r4, #-46] @ zero_extendqisi2
cmp r0, #0
beq .L3053
.L3052:
.L3048:
mov r3, #0
strb r3, [r4, #-46]
b .L3051
.L3053:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
.L3062:
.align 2
.L3061:
.word 1374389535
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3096
.word .LANCHOR1+2164
.word .LC0
.word .LANCHOR3-3072
.fnend
.size ftl_ext_info_flush, .-ftl_ext_info_flush
.align 2
.global ftl_ext_info_init
.syntax unified
.arm
.fpu softvfp
.type ftl_ext_info_init, %function
ftl_ext_info_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r2, #0
ldr r4, .L3083
.pad #20
sub sp, sp, #20
ldr r5, .L3083+4
sub r3, r4, #2544
strh r2, [r3, #-4] @ movhi
sub r2, r4, #3136
ldr r3, [r5, #2800]
ldrh r2, [r2, #-2]
ldrh r6, [r3, #130]
ldrb r3, [r5, #1153] @ zero_extendqisi2
rsb r3, r3, #24
sub r3, r3, r2
mvn r2, #0
asr r7, r6, r3
bic r6, r6, r2, lsl r3
uxtb r10, r7
mov r3, #4
str r3, [sp]
mov r1, r6
ldr r3, [r4, #-76]
mov r0, r10
ldr r2, [r4, #-44]
bl flash_get_last_written_page
ldr r3, .L3083+8
mov r8, r0
ldr r2, [r3]
str r3, [sp, #8]
tst r2, #4096
beq .L3064
ldr r3, [r5, #2800]
uxth r7, r7
mov r2, #2256
ldr r1, .L3083+12
ldrh r3, [r3, #130]
str r7, [sp]
str r3, [sp, #4]
mov r3, r0
ldr r0, .L3083+16
bl printk
.L3064:
ldr fp, .L3083+20
mov r9, #0
.L3065:
uxth r7, r8
sub r3, r7, r9
tst r3, #32768
bne .L3070
ldr r3, .L3083+24
sub r1, r8, r9
ldrh r0, [r3]
ldrb r3, [r4, #-2546] @ zero_extendqisi2
mla r1, r6, r0, r1
str r3, [sp]
ldr r3, [r4, #-76]
ldr r2, [r4, #-44]
mov r0, r10
bl flash_read_page_en
cmp r0, #512
cmnne r0, #1
beq .L3066
ldr r3, [r5, #1096]
ldr r2, .L3083+28
ldr r3, [r3]
cmp r3, r2
bne .L3066
ldr r3, [r4, #-76]
ldr r3, [r3, #8]
cmp r3, #0
bne .L3067
.L3070:
bl zftl_sblk_list_init
ldr r3, [r5, #2800]
ldrh r2, [r3, #140]
cmp r2, r8
bgt .L3069
add r7, r7, #1
strh r7, [r3, #140] @ movhi
bl ftl_ext_info_flush
.L3069:
ldr r4, [r5, #1096]
bl timer_get_time
ldr r3, .L3083+32
umull r0, r1, r0, r3
lsr r3, r1, #5
str r3, [r4, #520]
ldr r4, [r5, #1096]
bl timer_get_time
ldr r3, [r5, #1096]
mov r2, #0
str r0, [r4, #604]
add r1, r3, #584
str r2, [r3, #608]
mvn r2, #0
strh r2, [r1] @ movhi
movw r1, #586
strh r2, [r3, r1] @ movhi
add r1, r3, #588
strh r2, [r1] @ movhi
movw r1, #590
strh r2, [r3, r1] @ movhi
movw r1, #65535
str r2, [r3, #564]
ldr r2, [sp, #8]
str r1, [r3, #560]
ldr r2, [r2]
tst r2, #4096
beq .L3072
ldr r4, [r3, #520]
ldr r5, [r3, #12]
bl timer_get_time
mov r2, r4
str r0, [sp]
mov r3, r5
ldr r1, .L3083+12
ldr r0, .L3083+36
bl printk
.L3072:
ldr r3, .L3083+40
mvn r2, #0
mov r0, #0
strh r2, [r3, #-4] @ movhi
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3067:
ldrb r1, [r4, #-2546] @ zero_extendqisi2
ldr r0, [r4, #-44]
str r3, [sp, #12]
lsl r1, r1, #9
bl js_hash
ldr r3, [sp, #12]
cmp r3, r0
beq .L3070
ldr r3, [r4, #-76]
mov r0, fp
ldr r1, [r3, #8]
bl printk
.L3066:
add r9, r9, #1
b .L3065
.L3084:
.align 2
.L3083:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR1+2183
.word .LC191
.word .LC192
.word .LANCHOR3-3074
.word 1162432070
.word 1374389535
.word .LC193
.word .LANCHOR3-3152
.fnend
.size ftl_ext_info_init, .-ftl_ext_info_init
.align 2
.global ftl_prog_ppa_page
.syntax unified
.arm
.fpu softvfp
.type ftl_prog_ppa_page, %function
ftl_prog_ppa_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr ip, .L3087
push {r0, r1, r2, r4, r5, lr}
.save {r4, r5, lr}
.pad #12
ldrb r5, [ip, #1153] @ zero_extendqisi2
mov ip, #1
str r3, [sp]
mov r3, r2
mov r2, r1
rsb r4, r5, #24
lsl lr, ip, r4
lsl ip, ip, r5
sub ip, ip, #1
sub lr, lr, #1
and ip, ip, r0, lsr r4
and r1, lr, r0
uxtb r0, ip
bl ftl_prog_page
add sp, sp, #12
@ sp needed
pop {r4, r5, pc}
.L3088:
.align 2
.L3087:
.word .LANCHOR0
.fnend
.size ftl_prog_ppa_page, .-ftl_prog_ppa_page
.align 2
.global ftl_write_last_log_page
.syntax unified
.arm
.fpu softvfp
.type ftl_write_last_log_page, %function
ftl_write_last_log_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldrh r3, [r0, #6]
cmp r3, #1
bne .L3091
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r4, r0
ldr r5, .L3097
ldrh r8, [r0, #12]
ldr r6, [r5, #-2556]
bl ftl_get_new_free_page
cmn r0, #1
mov r7, r0
beq .L3092
ldrh r0, [r4]
add r6, r6, r8, lsl #2
bl ftl_vpn_decrement
ldr r3, [r5, #-40]
mov r0, r6
ldr r2, .L3097+4
str r2, [r3]
sub r3, r5, #3088
ldrh r3, [r3, #-8]
ldrb r1, [r5, #-3127] @ zero_extendqisi2
ldr r4, [r5, #-40]
mul r1, r1, r3
lsl r1, r1, #2
bl js_hash
ldr r1, [r5, #-40]
str r0, [r4, #4]
mov r4, #0
mov r2, r4
mov r0, #2
str r4, [r1, #8]
str r4, [r1, #12]
str r4, [r1, #16]!
bl ftl_debug_info_fill
ldrb r3, [r5, #-2546] @ zero_extendqisi2
mov r1, r6
ldr r2, [r5, #-40]
mov r0, r7
bl ftl_prog_ppa_page
.L3092:
mov r0, #0
pop {r4, r5, r6, r7, r8, pc}
.L3091:
mvn r0, #0
bx lr
.L3098:
.align 2
.L3097:
.word .LANCHOR3
.word -178307901
.fnend
.size ftl_write_last_log_page, .-ftl_write_last_log_page
.align 2
.global ftl_dump_write_open_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_dump_write_open_sblk, %function
ftl_dump_write_open_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 64
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r3, #1080
ldr r4, .L3138
.pad #108
sub sp, sp, #108
ldrh r3, [r4, r3]
cmp r3, r0
bls .L3099
ldr r3, .L3138+4
ldrb r2, [r3, #-3120] @ zero_extendqisi2
cmp r2, #0
bne .L3101
ldrb r2, [r3, #-3126] @ zero_extendqisi2
cmp r2, #0
beq .L3099
.L3101:
ldrb r2, [r4, #1158] @ zero_extendqisi2
cmp r2, #0
bne .L3099
ldr r2, [r4, #1084]
lsl r7, r0, #2
ldr r5, .L3138+8
add r1, sp, #88
mov r10, r0
strh r0, [sp, #72] @ movhi
add r2, r2, r7
mov r6, #0
ldrb r2, [r2, #2] @ zero_extendqisi2
and r2, r2, #224
cmp r2, #160
ldrbeq r8, [r3, #-3128] @ zero_extendqisi2
movne r8, #1
bl ftl_get_blk_list_in_sblk
ldrh r3, [r5, #-8]
uxtb r0, r0
strh r6, [sp, #74] @ movhi
strb r0, [sp, #81]
strb r6, [sp, #77]
smulbb r0, r3, r0
ldr r3, [r4, #1084]
strh r6, [sp, #82] @ movhi
strh r0, [sp, #78] @ movhi
add r2, r3, r7
ldr r1, [r3, r10, lsl #2]
ldrb r2, [r2, #2] @ zero_extendqisi2
ldr r0, .L3138+12
ubfx r1, r1, #11, #8
str r1, [sp, #4]
mov r1, r10
ldrh r3, [r3, r7]
mov r7, r6
ubfx r3, r3, #0, #11
str r3, [sp]
ubfx r3, r2, #3, #2
lsr r2, r2, #5
bl printk
mov r0, #1
bl buf_alloc
mov r4, r0
add r3, r5, #16
str r6, [sp, #44]
str r3, [sp, #64]
.L3103:
ldr r3, .L3138+16
uxth r5, r6
ldrh r3, [r3]
cmp r3, r5
bls .L3111
lsl r3, r5, #1
str r5, [sp, #52]
mov fp, #0
sub r2, r3, #1
add r3, r3, r5
sub r3, r3, #1
str r2, [sp, #48]
str r3, [sp, #56]
b .L3114
.L3112:
ldr r2, [sp, #60]
add r3, sp, #104
add r3, r3, r2
ldrh r3, [r3, #-32]
str r3, [sp, #40]
movw r3, #65535
ldr r2, [sp, #40]
cmp r2, r3
bne .L3104
.L3110:
add r7, r7, #1
uxth r7, r7
.L3105:
cmp r8, r7
bcs .L3112
add fp, fp, #1
.L3114:
uxth r3, fp
uxth r2, fp
str r3, [sp, #44]
ldrb r3, [sp, #81] @ zero_extendqisi2
cmp r3, r2
bls .L3113
mov r7, #1
add r3, r2, #8
lsl r3, r3, r7
str r3, [sp, #60]
b .L3105
.L3104:
ldr r3, [sp, #64]
cmp r8, #3
ldr r2, [sp, #40]
ldrh r3, [r3, #-2]
mul r3, r2, r3
bne .L3106
ldr r2, .L3138
ldrb r2, [r2, #1159] @ zero_extendqisi2
cmp r2, #0
uxtaheq r3, r3, r6
ldrne r2, [sp, #56]
orreq r3, r3, r7, lsl #24
beq .L3108
.L3137:
add r3, r2, r3
ldr r2, .L3138+4
add r3, r3, r7
ldrb r2, [r2, #-3128] @ zero_extendqisi2
orr r3, r3, r2, lsl #24
.L3108:
str r3, [r4, #24]
mov r1, #1
mov r0, r4
str r3, [sp, #68]
bl sblk_read_page
ldr r9, [r4, #36]
ldr r3, [sp, #68]
cmn r9, #1
cmpne r9, #512
bne .L3110
ldr r1, [r4, #12]
ldr r2, [r4, #4]
ldr r0, [r1, #12]
str r0, [sp, #32]
ldr r0, [r1, #8]
str r0, [sp, #28]
ldr r0, [r1, #4]
str r0, [sp, #24]
ldr r1, [r1]
ldr r0, .L3138+20
str r1, [sp, #20]
ldr r1, [r2, #12]
str r1, [sp, #16]
ldr r1, [r2, #8]
str r1, [sp, #12]
ldr r1, [r2, #4]
str r1, [sp, #8]
ldr r2, [r2]
ldr r1, [sp, #40]
str r9, [sp]
str r2, [sp, #4]
ldr r2, [sp, #52]
bl printk
cmp r9, #512
bne .L3110
.L3111:
uxth r2, r6
ldr r6, .L3138+4
ldr r3, [sp, #44]
mov r1, r10
str r7, [sp]
ldr r0, .L3138+24
bl printk
ldrb r2, [r6, #-2546] @ zero_extendqisi2
mov r1, #0
ldr r0, [r4, #4]
ldr fp, .L3138+28
lsl r2, r2, #9
bl ftl_memset
ldrb r2, [r6, #-2546] @ zero_extendqisi2
mov r1, #0
ldr r0, [r4, #12]
lsl r2, r2, #1
bl ftl_memset
.L3115:
ldr r7, .L3138+16
ldrh r3, [r7]
cmp r3, r5
bls .L3121
lsl r3, r5, #1
mov r8, #0
ldr r9, .L3138+32
add r7, r7, #24
str r3, [sp, #40]
b .L3122
.L3106:
cmp r8, #2
uxtahne r3, r3, r6
bne .L3108
ldr r2, [sp, #48]
b .L3137
.L3113:
add r6, r6, #1
b .L3103
.L3120:
ldr r3, [fp]
tst r3, #4096
uxth r3, r8
beq .L3116
mov r2, r3
mov r1, r5
mov r0, r9
str r3, [sp, #44]
bl printk
ldr r3, [sp, #44]
.L3116:
ldrb r2, [r6, #-3120] @ zero_extendqisi2
cmp r2, #0
beq .L3117
add r2, sp, #104
mov r0, r4
add r3, r2, r3, lsl #1
ldrh r2, [r3, #-16]
ldrh r3, [r7, #-2]
mul r3, r3, r2
orr r3, r3, r5
str r3, [r4, #24]
bl sblk_3d_tlc_dump_prog
.L3118:
add r8, r8, #1
.L3122:
ldrb r2, [sp, #81] @ zero_extendqisi2
uxth r3, r8
cmp r2, r3
bhi .L3120
add r5, r5, #1
uxth r5, r5
b .L3115
.L3117:
ldrb r1, [r6, #-3128] @ zero_extendqisi2
cmp r1, #2
bne .L3119
add r2, sp, #104
mov r0, r4
add r3, r2, r3, lsl #1
ldrh r2, [r3, #-16]
ldrh r3, [r7, #-2]
mul r3, r3, r2
ldr r2, [sp, #40]
orr r3, r3, r2
orr r3, r3, #33554432
str r3, [r4, #24]
bl sblk_mlc_dump_prog
b .L3118
.L3119:
add r1, sp, #104
ldrh ip, [r7, #-2]
add r3, r1, r3, lsl #1
ldrh r1, [r3, #-16]
ldr r3, .L3138
mul ip, ip, r1
ldrb r1, [r3, #1153] @ zero_extendqisi2
mvn r3, #0
rsb lr, r1, #24
orr ip, ip, r5
mvn r1, r3, lsl r1
str ip, [r4, #24]
str r2, [sp, #4]
and r0, r1, ip, lsr lr
ldrb r3, [r6, #-2546] @ zero_extendqisi2
bic r1, ip, r1, lsl lr
uxtb r0, r0
str r3, [sp]
ldr r3, [r4, #12]
ldr r2, [r4, #4]
bl flash_prog_page_en
b .L3118
.L3121:
mov r0, r4
bl zbuf_free
mov r1, r10
ldr r0, .L3138+36
bl printk
.L3099:
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3139:
.align 2
.L3138:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3088
.word .LC194
.word .LANCHOR3-3096
.word .LC195
.word .LC196
.word .LANCHOR2
.word .LC197
.word .LC198
.fnend
.size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
.align 2
.global gc_ink_check_sblk
.syntax unified
.arm
.fpu softvfp
.type gc_ink_check_sblk, %function
gc_ink_check_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
movw r3, #2106
ldr r4, .L3169
ldr r5, .L3169+4
ldrh r2, [r4, r3]
ldr r6, [r5, #904]
cmp r2, #3
ldrls pc, [pc, r2, asl #2]
b .L3141
.L3143:
.word .L3142
.word .L3144
.word .L3145
.word .L3146
.L3142:
ldr r8, .L3169+8
movw r3, #2788
ldrh r3, [r8, r3]
cmp r3, #7
bls .L3140
ldrb r3, [r8, #2769] @ zero_extendqisi2
cmp r3, #2
bls .L3140
ldr r7, .L3169+12
mov r1, #0
movw r9, #65535
sub r6, r7, #3072
sub r6, r6, #8
mov r0, r6
bl _list_get_gc_head_node
cmp r0, r9
beq .L3140
ldr r3, [r8, #1084]
lsl r0, r0, #2
ldrh r3, [r3, r0]
ubfx r3, r3, #0, #11
cmp r3, #2
bgt .L3140
mov r0, #1
bl buf_alloc
cmp r0, #0
str r0, [r5, #904]
beq .L3140
mov r0, r6
ldr r2, .L3169+16
mov r1, #0
bl _list_pop_index_node
uxth r10, r0
mov r6, r0
cmp r10, r9
bne .L3150
ldr r0, [r5, #904]
bl zbuf_free
mov r3, #0
str r3, [r5, #904]
.L3140:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L3150:
add r1, r4, #2144
mov r0, r10
add r1, r1, #14
uxth r6, r6
bl ftl_get_blk_list_in_sblk
movw r3, #2142
mov r2, #0
strh r10, [r4, r3] @ movhi
add r3, r4, #2144
strh r2, [r3] @ movhi
mov r2, #1
movw r3, #2106
lsl r6, r6, #2
strh r2, [r4, r3] @ movhi
ldr r3, [r8, #1084]
strb r0, [r5, #879]
ldrb r2, [r7, #-2546] @ zero_extendqisi2
ldrh r3, [r3, r6]
tst r3, #1
ldr r3, [r5, #904]
lsl r2, r2, #9
movne r1, #85
moveq r1, #170
ldr r0, [r3, #4]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b ftl_memset
.L3144:
movw r3, #2142
mov r1, #0
ldrh r0, [r4, r3]
bl ftl_erase_sblk
mov r2, #2
.L3168:
movw r3, #2106
.L3166:
strh r2, [r4, r3] @ movhi
b .L3140
.L3145:
ldr r8, .L3169+12
mov r7, #0
ldr r10, .L3169+20
bl sblk_wait_write_queue_completed
sub r9, r8, #3072
.L3152:
ldrb r2, [r5, #879] @ zero_extendqisi2
uxth r3, r7
cmp r2, r3
bhi .L3154
add r2, r4, #2144
ldr r1, .L3169+24
ldrh r3, [r2]
ldrh r1, [r1, #-8]
add r3, r3, #1
uxth r3, r3
cmp r1, r3
strh r3, [r2] @ movhi
bhi .L3140
mov r3, #0
strh r3, [r2] @ movhi
mov r2, #3
b .L3168
.L3154:
uxth r2, r7
add r3, r4, #2128
add r3, r3, #14
add r3, r3, r2, lsl #1
ldrh r1, [r3, #16]
movw r3, #65535
cmp r1, r3
beq .L3153
add r3, r4, #2144
ldrh ip, [r9, #-2]
ldrh r3, [r3]
mla ip, r1, ip, r3
ldr r3, [r6, #4]
str ip, [r3]
ldr r3, [r6, #4]
str r10, [r3, #4]
mov r3, #0
ldr r2, [r6, #12]
str r3, [r2]
ldr r2, .L3169+8
ldrb r1, [r2, #1153] @ zero_extendqisi2
mvn r2, #0
str r3, [sp, #4]
ldrb r3, [r8, #-2546] @ zero_extendqisi2
rsb lr, r1, #24
mvn r1, r2, lsl r1
str r3, [sp]
and r0, r1, ip, lsr lr
ldr r3, [r6, #12]
ldr r2, [r6, #4]
bic r1, ip, r1, lsl lr
uxtb r0, r0
bl flash_prog_page_en
.L3153:
add r7, r7, #1
b .L3152
.L3146:
add r10, r4, #2128
mov r9, #0
add r10, r10, #14
bl sblk_wait_write_queue_completed
.L3155:
ldrb r2, [r5, #879] @ zero_extendqisi2
uxth r3, r9
cmp r2, r3
bhi .L3159
add r2, r4, #2144
ldrh r3, [r2]
add r3, r3, #1
uxth r3, r3
strh r3, [r2] @ movhi
ldr r2, .L3169+24
ldrh r2, [r2, #-8]
cmp r2, r3
bhi .L3140
movw r3, #2106
mov r6, #0
ldr r0, [r5, #904]
strh r6, [r4, r3] @ movhi
bl zbuf_free
movw r2, #2108
str r6, [r5, #904]
ldrh r3, [r4, r2]
cmp r3, #15
bhi .L3160
add r1, r3, #1
add r3, r3, #1040
strh r1, [r4, r2] @ movhi
movw r2, #2142
add r3, r3, #12
ldrh r2, [r4, r2]
add r3, r4, r3, lsl #1
strh r2, [r3, #6] @ movhi
.L3161:
movw r3, #2108
ldr r0, .L3169+28
ldrh r2, [r4, r3]
movw r3, #2142
ldrh r1, [r4, r3]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, lr}
b printk
.L3159:
uxth r7, r9
movw r2, #65535
add r7, r7, #8
lsl r7, r7, #1
ldrh r3, [r10, r7]
cmp r3, r2
beq .L3157
ldr r2, .L3169+32
mov r1, #1
mov r0, r6
ldrh r8, [r2]
add r2, r4, #2144
ldrh r2, [r2]
mla r8, r3, r8, r2
str r8, [r6, #24]
bl sblk_read_page
ldr r3, [r6, #4]
ldr r3, [r3]
cmp r8, r3
beq .L3157
mov r0, r8
bl ftl_mask_bad_block
mvn r3, #0
strh r3, [r10, r7] @ movhi
.L3157:
add r9, r9, #1
b .L3155
.L3160:
movw r3, #2142
ldrh r0, [r4, r3]
bl zftl_insert_free_list
b .L3161
.L3141:
mov r2, #0
b .L3166
.L3170:
.align 2
.L3169:
.word .LANCHOR0+2824
.word .LANCHOR0+4096
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+2788
.word 1437269760
.word .LANCHOR3-3088
.word .LC199
.word .LANCHOR3-3074
.fnend
.size gc_ink_check_sblk, .-gc_ink_check_sblk
.align 2
.global ftl_ink_check_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_ink_check_sblk, %function
ftl_ink_check_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
lsl r9, r0, #2
ldr r6, .L3190
mov r5, r0
mov r1, r0
.pad #52
sub sp, sp, #52
ldr r2, [r6, #1084]
ldr r3, [r2, r0, lsl #2]
ldrh r2, [r2, r9]
ldr r0, .L3190+4
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
bl printk
movw r3, #65535
cmp r5, r3
beq .L3171
movw r3, #1080
ldrh r3, [r6, r3]
cmp r3, r5
bls .L3171
mov r1, #0
mov r0, r5
bl ftl_erase_sblk
mov r0, r5
add r1, sp, #32
strh r5, [sp, #16] @ movhi
mov r8, #0
bl ftl_get_blk_list_in_sblk
strb r0, [sp, #25]
mov r0, #1
bl buf_alloc
ldr r3, [r6, #1084]
mov r4, r0
ldr r10, .L3190+8
ldr fp, .L3190+12
ldrh r3, [r3, r9]
ldrb r2, [r10, #-2546] @ zero_extendqisi2
ldr r0, [r0, #4]
ubfx r3, r3, #0, #11
cmp r3, #1
lsl r2, r2, #9
movle r1, #85
movgt r1, #170
bl ftl_memset
bl sblk_wait_write_queue_completed
.L3175:
ldr r3, .L3190+16
ldrh r2, [r3]
uxth r3, r8
cmp r2, r3
bls .L3178
mov r7, #0
b .L3179
.L3177:
uxth r3, r7
add r2, sp, #48
add r3, r2, r3, lsl #1
ldrh r1, [r3, #-16]
movw r3, #65535
cmp r1, r3
beq .L3176
ldr r3, .L3190+20
ldrh ip, [r3]
uxth r3, r8
mla ip, r1, ip, r3
ldr r3, [r4, #4]
str ip, [r3]
ldr r3, [r4, #4]
str fp, [r3, #4]
mov r3, #0
ldr r2, [r4, #12]
str r3, [r2]
mvn r2, #0
ldrb r1, [r6, #1153] @ zero_extendqisi2
str r3, [sp, #4]
ldrb r3, [r10, #-2546] @ zero_extendqisi2
rsb lr, r1, #24
mvn r1, r2, lsl r1
str r3, [sp]
and r0, r1, ip, lsr lr
ldr r3, [r4, #12]
ldr r2, [r4, #4]
bic r1, ip, r1, lsl lr
uxtb r0, r0
bl flash_prog_page_en
.L3176:
add r7, r7, #1
.L3179:
ldrb r2, [sp, #25] @ zero_extendqisi2
uxth r3, r7
cmp r2, r3
bhi .L3177
add r8, r8, #1
b .L3175
.L3178:
mov r10, #0
.L3180:
ldr r3, .L3190+24
uxth r2, r10
ldrh r1, [r3, #-8]
cmp r1, r2
bls .L3185
mov fp, #0
str r2, [sp, #12]
b .L3186
.L3184:
uxth r7, fp
add r3, sp, #48
add r7, r7, #8
add r7, r3, r7, lsl #1
movw r3, #65535
ldrh r1, [r7, #-32]
cmp r1, r3
beq .L3182
ldr r0, .L3190+20
ldr r3, [sp, #12]
ldrh r8, [r0]
mov r0, r4
mla r8, r1, r8, r3
mov r1, #1
str r8, [r4, #24]
bl sblk_read_page
ldr r1, [r4, #4]
ldr r1, [r1]
cmp r8, r1
beq .L3182
mov r0, r8
bl ftl_mask_bad_block
mvn r1, #0
strh r1, [r7, #-32] @ movhi
.L3182:
add fp, fp, #1
.L3186:
ldrb r0, [sp, #25] @ zero_extendqisi2
uxth r1, fp
cmp r0, r1
bhi .L3184
add r10, r10, #1
b .L3180
.L3185:
mov r0, r4
bl zbuf_free
ldr r2, [r6, #1084]
mov r1, r5
ldr r0, .L3190+28
ldr r3, [r2, r5, lsl #2]
ldrh r2, [r2, r9]
ubfx r3, r3, #11, #8
ubfx r2, r2, #0, #11
bl printk
.L3171:
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3191:
.align 2
.L3190:
.word .LANCHOR0
.word .LC200
.word .LANCHOR3
.word 1437269760
.word .LANCHOR3-3096
.word .LANCHOR3-3074
.word .LANCHOR3-3088
.word .LC201
.fnend
.size ftl_ink_check_sblk, .-ftl_ink_check_sblk
.align 2
.global ftl_alloc_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_alloc_sblk, %function
ftl_alloc_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
uxth r5, r0
cmp r0, #5
mov r9, r0
mov r1, r5
mov r0, #0
movne r8, #0
moveq r8, #2
bl zftl_get_free_sblk
movw r3, #65535
mov r4, r0
cmp r0, r3
beq .L3194
ldr r6, .L3212
lsl r7, r0, #2
ldr r5, [r6, #1084]
add r5, r5, r7
ldrb r3, [r5, #2] @ zero_extendqisi2
tst r3, #224
beq .L3195
mov r2, #1012
ldr r1, .L3212+4
ldr r0, .L3212+8
bl printk
bl dump_stack
.L3195:
ldrb r3, [r5, #2] @ zero_extendqisi2
bfi r3, r9, #5, #3
uxtb r3, r3
ubfx r2, r3, #3, #2
orr r2, r8, r2
bfi r3, r2, #3, #2
clz r2, r8
strb r3, [r5, #2]
uxtb r3, r3
lsr r2, r2, #5
and r1, r3, #24
cmp r1, #24
cmpeq r8, #0
moveq r1, #1
bfieq r3, r1, #3, #2
strbeq r3, [r5, #2]
ldr r3, [r6, #2800]
ldrh r3, [r3, #150]
cmp r3, #0
beq .L3197
ldr r3, [r6, #1084]
ldrh r3, [r3, r7]
ubfx r3, r3, #0, #11
cmp r3, #0
movne r2, #0
andeq r2, r2, #1
cmp r2, #0
beq .L3197
mov r0, r4
bl ftl_ink_check_sblk
.L3197:
mov r0, r4
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L3194:
bl print_ftl_debug_info
mov r2, r9
mov r1, r4
ldr r0, .L3212+12
bl printk
mov r1, r5
mov r0, #0
bl zftl_get_free_sblk
mov r2, r9
mov r1, r0
mov r4, r0
ldr r0, .L3212+12
bl printk
bl dump_all_list_info
movw r2, #1031
ldr r1, .L3212+4
ldr r0, .L3212+8
bl printk
bl dump_stack
b .L3197
.L3213:
.align 2
.L3212:
.word .LANCHOR0
.word .LANCHOR1+2201
.word .LC0
.word .LC202
.fnend
.size ftl_alloc_sblk, .-ftl_alloc_sblk
.align 2
.global ftl_open_sblk_init
.syntax unified
.arm
.fpu softvfp
.type ftl_open_sblk_init, %function
ftl_open_sblk_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r4, r0
ldr r5, .L3222
mov r6, r1
mov r7, #0
sub r8, r5, #3088
.L3215:
movw r10, #65535
.L3216:
mov r0, r6
bl ftl_alloc_sblk
cmp r0, r10
mov r9, r0
beq .L3216
mov r1, #0
ldr fp, .L3222+4
bl ftl_erase_sblk
add r1, r4, #16
mov r0, r9
bl ftl_get_blk_list_in_sblk
strh r9, [r4] @ movhi
cmp r6, #2
ldrh r2, [r8, #-8]
uxtb r0, r0
ldrbne r3, [r5, #-3127] @ zero_extendqisi2
moveq r3, #0
ldrb r1, [r5, #-3127] @ zero_extendqisi2
lsl r10, r9, #1
strb r0, [r4, #9]
smulbb r0, r0, r2
strh r7, [r4, #2] @ movhi
smulbbne r3, r3, r2
strb r7, [r4, #5]
mul r2, r2, r1
strh r7, [r4, #10] @ movhi
strh r0, [r4, #6] @ movhi
mov r1, #255
ldr r0, [r5, #-2556]
uxthne r3, r3
strb r6, [r4, #4]
strh r3, [r4, #12] @ movhi
lsl r2, r2, #2
add r0, r0, r3, lsl #2
bl ftl_memset
ldr r3, [fp, #1092]
ldrh r2, [r4, #6]
strh r2, [r3, r10] @ movhi
ldrb r3, [r4, #9] @ zero_extendqisi2
cmp r3, #0
popne {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
mov r1, r9
ldr r0, .L3222+8
bl printk
ldr r3, [fp, #1092]
mvn r2, #0
strh r2, [r3, r10] @ movhi
mov r3, #7
strb r3, [r4, #4]
b .L3215
.L3223:
.align 2
.L3222:
.word .LANCHOR3
.word .LANCHOR0
.word .LC203
.fnend
.size ftl_open_sblk_init, .-ftl_open_sblk_init
.align 2
.global pm_alloc_new_blk
.syntax unified
.arm
.fpu softvfp
.type pm_alloc_new_blk, %function
pm_alloc_new_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
movw r1, #690
ldr r4, .L3242
ldr r7, .L3242+4
ldr r2, [r4, #2800]
ldrh r3, [r2, r1]
add r3, r3, #1
uxth r3, r3
strh r3, [r2, r1] @ movhi
ldrb r1, [r7, #-3127] @ zero_extendqisi2
cmp r1, r3
bls .L3225
add r3, r3, #336
lsl r3, r3, #1
ldrh r2, [r2, r3]
movw r3, #65535
cmp r2, r3
bne .L3226
.L3225:
ldr r5, .L3242+8
movw r8, #65535
.L3227:
mov r0, #1
bl ftl_alloc_sblk
cmp r0, r8
mov r6, r0
beq .L3227
mov r1, #0
bl ftl_erase_sblk
ldr r1, [r4, #2800]
mov r0, r6
add r1, r1, #672
bl ftl_get_blk_list_in_sblk
uxth r0, r0
cmp r0, #0
bne .L3228
mov r1, r6
mov r0, r5
bl printk
ldr r3, [r4, #1084]
add r6, r3, r6, lsl #2
ldrb r3, [r6, #2] @ zero_extendqisi2
orr r3, r3, #224
strb r3, [r6, #2]
b .L3227
.L3228:
ldr r2, [r4, #2800]
movw r3, #690
mov r5, #0
movw r1, #65535
strh r5, [r2, r3] @ movhi
add r2, r2, #416
mov r3, #1
str r3, [r7, #-36]
.L3230:
ldrh r0, [r2], #2
uxth r3, r5
cmp r0, r1
beq .L3229
add r5, r5, #1
cmp r5, #128
bne .L3230
mov r2, #264
ldr r1, .L3242+12
ldr r0, .L3242+16
bl printk
bl dump_stack
mov r3, r5
.L3229:
ldr r2, [r4, #2800]
add r3, r3, #208
lsl r3, r3, #1
strh r6, [r2, r3] @ movhi
add r3, r2, #688
ldrh r2, [r3]
add r2, r2, #1
strh r2, [r3] @ movhi
.L3226:
ldr r2, [r4, #2800]
movw r3, #690
ldrh r3, [r2, r3]
add r3, r3, #336
lsl r3, r3, #1
ldrh r5, [r2, r3]
movw r2, #65533
sub r3, r5, #1
uxth r3, r3
cmp r3, r2
bls .L3232
movw r2, #270
ldr r1, .L3242+12
ldr r0, .L3242+16
bl printk
bl dump_stack
.L3232:
ldr r1, [r4, #2800]
mov r2, #0
movw r0, #694
add r3, r1, #696
strh r2, [r3] @ movhi
ldr r3, .L3242+20
ldrb r2, [r4, #1153] @ zero_extendqisi2
ldrh r3, [r3, #-2]
rsb r2, r2, #24
sub r2, r2, r3
asr r3, r5, r2
strh r3, [r1, r0] @ movhi
add r1, r1, #692
strh r5, [r1] @ movhi
ldr r1, .L3242+24
ldr r1, [r1]
tst r1, #4096
beq .L3236
uxth r3, r3
mvn r1, #0
mvn r2, r1, lsl r2
ldr r0, .L3242+28
str r3, [sp]
mov r1, r5
mov r3, r5
bl printk
.L3236:
mov r0, #0
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L3243:
.align 2
.L3242:
.word .LANCHOR0
.word .LANCHOR3
.word .LC203
.word .LANCHOR1+2216
.word .LC0
.word .LANCHOR3-3136
.word .LANCHOR2
.word .LC204
.fnend
.size pm_alloc_new_blk, .-pm_alloc_new_blk
.align 2
.global pm_write_page
.syntax unified
.arm
.fpu softvfp
.type pm_write_page, %function
pm_write_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r5, r0
ldr r9, .L3258
mov r8, r1
mov r7, r9
.L3245:
ldr r3, [r9, #2800]
ldr r2, [r3, #48]
add r2, r2, #1
str r2, [r3, #48]
add r2, r3, #696
ldrh r1, [r2]
ldr r2, .L3258+4
ldrh r2, [r2]
cmp r1, r2
bcs .L3246
add r3, r3, #692
ldrh r2, [r3]
movw r3, #65535
cmp r2, r3
bne .L3247
.L3246:
bl pm_alloc_new_blk
mov r0, #0
bl ftl_info_flush
.L3247:
ldr r3, [r7, #2800]
add r3, r3, #692
ldrh r2, [r3]
movw r3, #65535
cmp r2, r3
bne .L3248
movw r2, #303
ldr r1, .L3258+8
ldr r0, .L3258+12
bl printk
bl dump_stack
.L3248:
ldr r3, [r7, #2800]
mov r1, #0
ldr r4, .L3258+16
add r2, r3, #692
add r3, r3, #696
ldrh r6, [r2]
sub r2, r4, #3072
ldrh r2, [r2, #-2]
ldrh r3, [r3]
ldr r0, [r4, #-32]
mla r6, r2, r6, r3
mov r2, #64
bl ftl_memset
ldr r3, [r4, #-32]
mov r0, r8
str r5, [r3]
ldr r3, [r7, #2800]
ldrb r1, [r4, #-2546] @ zero_extendqisi2
ldr r10, [r4, #-32]
ldr r3, [r3, #48]
lsl r1, r1, #9
str r3, [r10, #4]
bl js_hash
ldr r3, [r7, #2800]
mov r2, r8
str r0, [r10, #8]
mov r1, r6
ldrb r0, [r3, #694] @ zero_extendqisi2
ldrb r3, [r4, #-2546] @ zero_extendqisi2
str r3, [sp]
ldr r3, [r4, #-32]
bl ftl_prog_page
ldr r2, [r7, #2800]
add r1, r2, #696
ldrh r3, [r1]
add r3, r3, #1
uxth r3, r3
cmp r3, #1
strh r3, [r1] @ movhi
beq .L3249
ldrb r3, [r4, #-28] @ zero_extendqisi2
cmp r3, #0
beq .L3250
.L3249:
mov r3, #0
strb r3, [r4, #-28]
b .L3245
.L3250:
cmn r0, #1
bne .L3252
mov r1, r6
ldr r0, .L3258+20
bl printk
b .L3245
.L3252:
movw r3, #698
mov r0, #0
ldrh r3, [r2, r3]
cmp r5, r3
addcc r5, r5, #176
strcc r6, [r2, r5, lsl #2]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L3259:
.align 2
.L3258:
.word .LANCHOR0
.word .LANCHOR3-3096
.word .LANCHOR1+2233
.word .LC0
.word .LANCHOR3
.word .LC205
.fnend
.size pm_write_page, .-pm_write_page
.align 2
.global flash_info_flush
.syntax unified
.arm
.fpu softvfp
.type flash_info_flush, %function
flash_info_flush:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L3273
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #20
sub sp, sp, #20
ldr r3, [r3]
tst r3, #4096
beq .L3261
ldr r2, .L3273+4
movw r1, #365
ldr r0, .L3273+8
bl printk
.L3261:
ldr r4, .L3273+12
mov r2, #64
ldr r5, .L3273+16
mov r1, #0
ldr r9, .L3273+20
mov r7, #0
ldr r0, [r4, #-24]
mov r10, r7
bl ftl_memset
mov r3, #16
mov r2, #4
ldr r1, [r5, #1040]
ldr r0, .L3273+24
bl rknand_print_hex
ldr r8, .L3273+28
ldr r6, [r5, #1040]
ldr r1, [r6, #8]
add r0, r6, #16
bl js_hash
str r0, [r6, #12]
.L3262:
ldrb r6, [r4, #-20] @ zero_extendqisi2
mov r0, r9
ldrh fp, [r4, #-18]
ldrh r3, [r5, #2]
mov r1, r6
mov r2, fp
str r3, [sp, #12]
bl printk
ldrh r2, [r4, #-224]
ldrh r0, [r4, #-18]
ldr r3, [sp, #12]
sub r2, r2, #1
cmp r0, r2
blt .L3263
ldr r6, [r5, #1040]
ldrb r2, [r4, #-19] @ zero_extendqisi2
strh r10, [r4, #-18] @ movhi
ldr r3, [r6, #4]
mov r0, r6
add r3, r3, #1
str r3, [r6, #4]
ldrb r3, [r4, #-20] @ zero_extendqisi2
strb r2, [r4, #-20]
strb r3, [r4, #-19]
ldrh r3, [r6, #16]
add r3, r3, #1
strh r3, [r0, #16]! @ movhi
ldr r1, [r6, #8]
bl js_hash
ldrb r3, [r4, #-20] @ zero_extendqisi2
str r0, [r6, #12]
mov r0, #0
ldrh r6, [r5, #2]
mul r6, r6, r3
mov r1, r6
.L3272:
bl flash_erase_block
.L3264:
ldr r2, [r5, #1040]
mov fp, #1
ldr r3, [r4, #-24]
mov r1, r6
mov r0, #0
ldr r2, [r2, #4]
str r2, [r3]
mov r2, #4
ldr r3, [r4, #-24]
str r8, [r3, #4]
stm sp, {r2, fp}
ldr r2, [r5, #1040]
bl flash_prog_page_en
ldrh r3, [r4, #-18]
cmn r0, #1
add r3, r3, fp
strh r3, [r4, #-18] @ movhi
bne .L3265
mov r1, r6
ldr r0, .L3273+32
bl printk
b .L3262
.L3267:
mov r7, fp
b .L3262
.L3263:
cmp r0, #0
mla r6, r6, r3, fp
bne .L3264
mov r1, r6
b .L3272
.L3265:
cmp r7, #0
beq .L3267
mov r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3274:
.align 2
.L3273:
.word .LANCHOR2
.word .LANCHOR1+2247
.word .LC135
.word .LANCHOR3
.word .LANCHOR0
.word .LC207
.word .LC206
.word 1398362953
.word .LC208
.fnend
.size flash_info_flush, .-flash_info_flush
.align 2
.global flash_info_blk_init
.syntax unified
.arm
.fpu softvfp
.type flash_info_blk_init, %function
flash_info_blk_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L3307
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r4, .L3307+4
ldr r3, [r3]
tst r3, #4096
beq .L3276
ldr r3, [r4, #1040]
mov r1, #50
ldr r2, .L3307+8
ldr r0, .L3307+12
str r3, [sp]
mov r3, #2048
bl printk
.L3276:
ldr r5, .L3307+16
mov r7, #4
ldr r8, .L3307+20
.L3280:
mov r6, #0
.L3279:
ldrh r1, [r4, #2]
mov r9, #4
str r9, [sp]
mov r0, #0
ldr r3, [r5, #-24]
ldr r2, [r4, #1040]
mla r1, r7, r1, r6
bl flash_read_page_en
cmn r0, #1
beq .L3277
ldr r2, [r4, #1040]
ldr r3, [r2]
cmp r3, r8
beq .L3278
.L3277:
add r6, r6, #1
cmp r6, #4
bne .L3279
add r7, r7, #1
cmp r7, #16
bne .L3280
.L3306:
mvn r0, #0
.L3275:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3287:
str r9, [sp]
sub r1, r10, r7
ldr r3, [r5, #-24]
mov r0, #0
ldr r2, [r4, #1040]
bl flash_read_page_en
cmn r0, #1
beq .L3285
ldr r3, [r4, #1040]
ldr r3, [r3]
cmp r3, r8
beq .L3286
.L3285:
add r7, r7, #1
b .L3284
.L3286:
cmp r7, #1
bls .L3290
bl flash_info_flush
.L3290:
mov r0, #0
b .L3275
.L3278:
ldrb r1, [r2, #36] @ zero_extendqisi2
ldrh r0, [r4, #2]
ldrb r3, [r2, #37] @ zero_extendqisi2
strb r1, [r5, #-20]
str r9, [sp]
strb r3, [r5, #-19]
mul r1, r1, r0
ldr r3, [r5, #-24]
mov r0, #0
bl flash_read_page_en
cmn r0, #1
beq .L3289
ldr r3, [r4, #1040]
ldr r2, [r3]
cmp r2, r8
ldreq r6, [r3, #4]
beq .L3282
.L3289:
mov r6, #0
.L3282:
ldrh r0, [r4, #2]
mov r3, #4
ldrb r1, [r5, #-19] @ zero_extendqisi2
str r3, [sp]
ldr r2, [r4, #1040]
ldr r3, [r5, #-24]
mul r1, r0, r1
mov r0, #0
bl flash_read_page_en
cmn r0, #1
beq .L3283
ldr r3, [r4, #1040]
ldr r2, [r3]
cmp r2, r8
bne .L3283
ldr r2, [r3, #4]
cmp r6, r2
ldrbcc r2, [r3, #37] @ zero_extendqisi2
ldrbcc r3, [r3, #36] @ zero_extendqisi2
strbcc r2, [r5, #-20]
strbcc r3, [r5, #-19]
.L3283:
mov r9, #4
ldr r3, [r5, #-24]
ldrb r1, [r5, #-20] @ zero_extendqisi2
mov r0, #0
str r9, [sp]
mov r7, #0
ldr r2, [r4, #1040]
bl flash_get_last_written_page
uxth fp, r0
ldrb r10, [r5, #-20] @ zero_extendqisi2
add r3, fp, #1
strh r3, [r5, #-18] @ movhi
ldrh r3, [r4, #2]
mla r10, r3, r10, r0
.L3284:
sub r0, fp, r7
sxth r6, r0
cmp r6, #0
bge .L3287
cmn r6, #1
bne .L3286
ldr r3, [r4, #1040]
ldr r0, .L3307+24
ldr r1, [r3]
bl printk
b .L3306
.L3308:
.align 2
.L3307:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR1+2264
.word .LC209
.word .LANCHOR3
.word 1398362953
.word .LC210
.fnend
.size flash_info_blk_init, .-flash_info_blk_init
.align 2
.global nand_flash_init
.syntax unified
.arm
.fpu softvfp
.type nand_flash_init, %function
nand_flash_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r4, r0
ldr r6, .L3395
ldr r3, [r6]
tst r3, #4096
beq .L3310
ldr r2, .L3395+4
movw r1, #3450
ldr r0, .L3395+8
bl printk
.L3310:
ldr r5, .L3395+12
mov r7, #0
mov r0, r4
ldr r4, .L3395+16
ldr r9, .L3395+20
mov fp, #44
str r7, [r5, #-104]
bl nandc_init
ldr r3, .L3395+24
mov r2, #8
mov r1, r7
ldr r0, .L3395+28
mov r10, r9
str r3, [r4, #1104]
mov r3, #1
strb r3, [r4, #1109]
mov r3, #3
strb r3, [r4, #1153]
bl ftl_memset
mov r2, #32
mov r1, r7
sub r0, r5, #220
bl ftl_memset
.L3316:
lsl r8, r7, #3
uxtb r0, r7
add r1, r9, r8
bl flash_read_id
cmp r7, #0
bne .L3311
ldrb r3, [r4, #1160] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
bls .L3312
.L3314:
mvn r7, #1
.L3309:
mov r0, r7
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3312:
ldrb r3, [r4, #1161] @ zero_extendqisi2
cmp r3, #255
beq .L3314
.L3311:
ldrb r3, [r8, r10] @ zero_extendqisi2
add r7, r7, #1
cmp r3, #181
strbeq fp, [r8, r10]
cmp r7, #4
bne .L3316
ldr r9, .L3395+32
mov r7, #0
ldr r10, .L3395+20
.L3319:
lsl r8, r7, #5
ldrb r2, [r9, r7, lsl #5] @ zero_extendqisi2
mov r1, r10
add r0, r8, #1
add r0, r9, r0
bl flash_mem_cmp8
cmp r0, #0
bne .L3317
add r9, r9, r8
ldr r3, .L3395+36
add r8, r6, r8
ldrb r2, [r8, #440] @ zero_extendqisi2
mov r1, r3
.L3318:
ldrb ip, [r3, r0, lsl #5] @ zero_extendqisi2
cmp ip, r2
beq .L3320
add r0, r0, #1
cmp r0, #4
bne .L3318
.L3320:
add r1, r1, r0, lsl #5
mov r2, #32
ldr r0, .L3395+40
bl ftl_memcpy
mov r2, #32
mov r1, r9
ldr r0, .L3395+24
bl ftl_memcpy
ldrb r3, [r4, #1028] @ zero_extendqisi2
cmp r3, #8
bhi .L3321
ldrb r2, [r6, #24] @ zero_extendqisi2
cmp r2, #60
movhi r2, #60
strbhi r2, [r6, #24]
cmp r3, #6
beq .L3314
.L3321:
ldr r3, [r6]
tst r3, #4096
beq .L3323
ldr r2, .L3395+4
movw r1, #3480
ldr r0, .L3395+8
bl printk
.L3323:
ldr r3, [r4, #1104]
mov r0, #16384
mov r7, #0
ldrh r3, [r3, #10]
cmp r3, #1024
movcs r3, #2
strbcs r3, [r4, #1153]
bl ftl_malloc
str r0, [r5, #-92]
mov r0, #16384
bl ftl_malloc
str r0, [r5, #-120]
mov r0, #2048
bl ftl_dma32_malloc
str r0, [r4, #1040]
mov r0, #64
bl ftl_dma32_malloc
str r0, [r5, #-96]
mov r0, #64
bl ftl_dma32_malloc
str r0, [r5, #-112]
mov r0, #64
bl ftl_dma32_malloc
strb r7, [r5, #-16]
str r0, [r5, #-24]
bl flash_die_info_init
ldrb r0, [r6, #22] @ zero_extendqisi2
bl flash_lsb_page_tbl_build
ldrb r0, [r6, #24] @ zero_extendqisi2
bl nandc_bch_sel
ldr r1, [r4, #1104]
str r7, [r5, #-100]
ldrh r3, [r1, #16]
ubfx r2, r3, #8, #3
strb r2, [r4, #1192]
ubfx r2, r3, #3, #1
strb r2, [r5, #-80]
ubfx r2, r3, #4, #1
strb r2, [r4, #1194]
ubfx r2, r3, #12, #1
strb r2, [r5, #-3120]
ubfx r2, r3, #13, #1
strb r2, [r5, #-3126]
ubfx r2, r3, #11, #1
strb r2, [r4, #1158]
ldrb r2, [r1, #31] @ zero_extendqisi2
ldrb r1, [r1, #28] @ zero_extendqisi2
ubfx r0, r2, #1, #1
strb r0, [r5, #-2542]
ubfx r0, r2, #2, #1
strb r0, [r5, #-15]
ubfx r0, r3, #14, #1
lsr r3, r3, #15
strb r0, [r4, #1]
strb r1, [r4]
strb r3, [r5, #-3125]
ubfx r3, r2, #3, #1
strb r3, [r4, #1152]
mov r3, #60
strb r3, [r4, #1108]
ubfx r2, r2, #4, #1
ldrb r3, [r4, #1028] @ zero_extendqisi2
strb r2, [r4, #1159]
strb r1, [r4, #1110]
cmp r3, #9
moveq r2, #70
strbeq r2, [r4, #1108]
ldrb r2, [r6, #35] @ zero_extendqisi2
tst r2, #1
beq .L3326
ldrb r2, [r6, #33] @ zero_extendqisi2
cmp r2, #0
movne r2, #2
moveq r2, #3
strb r2, [r4, #1110]
.L3326:
cmp r3, #8
bne .L3328
ldrb r3, [r4, #1160] @ zero_extendqisi2
cmp r3, #137
cmpne r3, #44
bne .L3328
ldrb r3, [r6, #32] @ zero_extendqisi2
cmp r3, #3
moveq r3, #0
strbeq r3, [r4, #1110]
.L3328:
ldrh r2, [r6, #20]
ldrb r3, [r6, #23] @ zero_extendqisi2
tst r2, #64
strb r3, [r4, #1100]
beq .L3330
sub r2, r3, #17
cmp r3, #21
cmpne r2, #2
bhi .L3331
cmp r3, #21
ldr r2, .L3395+44
movne r3, #15
moveq r3, #4
str r2, [r5, #-100]
.L3391:
strb r3, [r5, #-108]
.L3330:
ldr r3, [r6]
tst r3, #4096
beq .L3341
ldr r2, .L3395+4
movw r1, #3573
ldr r0, .L3395+8
bl printk
.L3341:
mov r3, #0
strb r3, [r4, #1143]
ldrb r3, [r4, #1192] @ zero_extendqisi2
tst r3, #1
moveq r0, #4
beq .L3393
ldrb r3, [r4, #1160] @ zero_extendqisi2
cmp r3, #155
beq .L3343
mov r0, #4
bl flash_set_interface_mode
mov r0, #4
bl nandc_set_if_mode
.L3343:
mov r0, #1
bl flash_set_interface_mode
mov r0, #1
.L3393:
bl nandc_set_if_mode
bl flash_info_blk_init
cmn r0, #1
mov r7, r0
bne .L3345
ldr r3, [r4, #1040]
mov r2, #17
mov r0, #0
strb r0, [r4, #1154]
strb r2, [r3, #32]
bl zftl_flash_exit_slc_mode
b .L3309
.L3317:
add r7, r7, #1
cmp r7, #49
bne .L3319
b .L3314
.L3331:
sub r2, r3, #65
cmp r3, #33
cmpne r2, #1
bhi .L3334
ldr r3, .L3395+48
str r3, [r5, #-100]
mov r3, #4
strb r3, [r4, #1101]
.L3394:
mov r3, #7
b .L3391
.L3334:
sub r2, r3, #67
sub r1, r3, #34
uxtb r2, r2
cmp r2, #1
cmphi r1, #1
movls r1, #1
movhi r1, #0
bhi .L3335
cmp r3, #68
cmpne r3, #35
ldr r1, .L3395+48
movne r3, #7
moveq r3, #17
cmp r2, #1
strb r3, [r5, #-108]
movls r3, #4
movhi r3, #5
str r1, [r5, #-100]
strb r3, [r4, #1101]
b .L3330
.L3335:
sub r2, r3, #36
cmp r2, #1
ldrls r3, .L3395+52
strls r3, [r5, #-100]
bls .L3394
.L3339:
cmp r3, #50
ldreq r3, .L3395+56
streq r3, [r5, #-100]
moveq r3, #25
beq .L3391
.L3340:
cmp r3, #81
ldreq r3, .L3395+60
strbeq r1, [r4, #1195]
streq r3, [r5, #-100]
moveq r3, #7
strbeq r3, [r5, #-108]
b .L3330
.L3345:
ldrb r3, [r6, #11] @ zero_extendqisi2
cmp r3, #9
bne .L3346
ldr r3, [r4, #1040]
ldrb r3, [r3, #20] @ zero_extendqisi2
cmp r3, #1
movne r3, #0
strbne r3, [r4, #1110]
.L3346:
ldrb r3, [r4, #1100] @ zero_extendqisi2
sub r3, r3, #1
cmp r3, #7
ldrls r3, .L3395+64
strls r3, [r5, #-100]
ldrb r3, [r4, #1192] @ zero_extendqisi2
tst r3, #4
beq .L3349
ldr r3, [r4, #1040]
ldrb r3, [r3, #19] @ zero_extendqisi2
cmp r3, #0
beq .L3349
ldrb r3, [r5, #-20] @ zero_extendqisi2
mov r0, #0
ldrh r1, [r4, #2]
mul r1, r1, r3
bl flash_ddr_para_scan
ldrb r3, [r4, #1143] @ zero_extendqisi2
cmp r3, #0
bne .L3349
ldr r2, [r4, #1040]
strb r3, [r2, #19]
bl flash_info_flush
.L3349:
ldr r3, [r6]
tst r3, #4096
beq .L3351
ldr r2, .L3395+4
movw r1, #3676
ldr r0, .L3395+8
bl printk
.L3351:
bl nand_flash_print_info
mov r7, #0
b .L3309
.L3396:
.align 2
.L3395:
.word .LANCHOR2
.word .LANCHOR1+2284
.word .LC135
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR0+1160
.word .LANCHOR2+4
.word .LANCHOR0+1144
.word .LANCHOR2+418
.word .LANCHOR2+1986
.word .LANCHOR0+1111
.word micron_read_retrial
.word toshiba_read_retrial
.word toshiba_3d_read_retrial
.word samsung_read_retrial
.word ymtc_3d_read_retrial
.word hynix_read_retrial
.fnend
.size nand_flash_init, .-nand_flash_init
.align 2
.global ftl_sysblk_dump
.syntax unified
.arm
.fpu softvfp
.type ftl_sysblk_dump, %function
ftl_sysblk_dump:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r0
.pad #52
sub sp, sp, #52
mov r0, #1
mov r5, #0
ldr r10, .L3408
mov r6, r5
bl buf_alloc
ldr r3, [r0, #4]
mov r4, r0
str r3, [sp, #44]
.L3398:
ldr r3, .L3408+4
ldrh r2, [r3, #-8]
uxth r3, r5
cmp r2, r3
bhi .L3400
ldr r1, [sp, #44]
mov r3, #32
mov r2, #4
ldr r0, .L3408+8
add r1, r1, #704
bl rknand_print_hex
mov r0, r4
bl zbuf_free
cmp r6, #0
beq .L3401
movw r2, #1619
ldr r1, .L3408+12
ldr r0, .L3408+16
bl printk
bl dump_stack
.L3401:
mov r0, r6
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3400:
ldr r3, .L3408+20
uxth fp, r5
ldr r2, [r4, #12]
add r5, r5, #1
ldr r1, [r4, #4]
ldrh r7, [r3]
ldrb r3, [r10, #-2546] @ zero_extendqisi2
mla r7, r9, r7, fp
mov r0, r7
bl ftl_read_ppa_page
ldr r2, [r4, #12]
mov r8, r0
ldr r3, [r4, #4]
ldr r1, [r2, #12]
str r1, [sp, #32]
ldr r1, [r2, #8]
str r1, [sp, #28]
ldr r1, [r2, #4]
str r1, [sp, #24]
mov r1, r9
ldr r2, [r2]
str r2, [sp, #20]
ldr r2, [r3, #12]
str r2, [sp, #16]
ldr r2, [r3, #8]
str r2, [sp, #12]
ldr r2, [r3, #4]
str r2, [sp, #8]
mov r2, fp
ldr r3, [r3]
str r0, [sp]
ldr r0, .L3408+24
str r3, [sp, #4]
mov r3, r7
bl printk
cmn r8, #1
cmpne r8, #512
moveq r6, #1
b .L3398
.L3409:
.align 2
.L3408:
.word .LANCHOR3
.word .LANCHOR3-3088
.word .LC211
.word .LANCHOR1+2300
.word .LC0
.word .LANCHOR3-3074
.word .LC195
.fnend
.size ftl_sysblk_dump, .-ftl_sysblk_dump
.align 2
.global ftl_open_sblk_recovery
.syntax unified
.arm
.fpu softvfp
.type ftl_open_sblk_recovery, %function
ftl_open_sblk_recovery:
.fnstart
@ args = 0, pretend = 0, frame = 216
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #228
sub sp, sp, #228
ldr r5, .L3532
mov r4, r0
str r1, [sp, #28]
ldr r3, [r5]
tst r3, #4096
beq .L3411
ldrh r1, [r0, #2]
ldr r0, .L3532+4
bl printk
.L3411:
ldr r3, [r5]
tst r3, #4096
beq .L3412
ldrb r1, [r4, #5] @ zero_extendqisi2
ldr r0, .L3532+8
bl printk
.L3412:
ldr r3, [r5]
tst r3, #4096
beq .L3413
ldrh r1, [r4]
ldr r0, .L3532+12
bl printk
.L3413:
ldr r3, [r5]
tst r3, #4096
beq .L3414
ldrh r2, [r4, #18]
ldrh r1, [r4, #16]
ldr r0, .L3532+16
bl printk
.L3414:
ldr r3, [r5]
tst r3, #4096
beq .L3415
ldrb r1, [r4, #9] @ zero_extendqisi2
ldr r0, .L3532+20
bl printk
.L3415:
ldrh r3, [r4, #10]
ldr r1, .L3532+24
ldrh r2, [r4]
strh r3, [r4, #14] @ movhi
movw r3, #1080
ldrh r3, [r1, r3]
cmp r2, r3
bcs .L3410
mov r0, #1
bl buf_alloc
ldr r3, .L3532+28
mov r1, #255
ldr r2, [r0, #4]
mov r5, r0
add r0, sp, #32
ldrb r3, [r3, #-2546] @ zero_extendqisi2
sub r3, r3, #2
add r3, r2, r3, lsl #9
mov r2, #64
str r3, [sp, #16]
bl ftl_memset
mov r2, #64
mov r1, #255
add r0, sp, #96
bl ftl_memset
mov r2, #64
mov r1, #255
add r0, sp, #160
bl ftl_memset
ldrb r10, [r4, #5] @ zero_extendqisi2
mov r3, #2
ldrh r9, [r4, #2]
str r3, [sp, #12]
mov r3, #0
str r3, [sp, #24]
.L3417:
ldr r3, .L3532+32
ldrh r3, [r3]
cmp r3, r9
bhi .L3434
.L3420:
ldrh r3, [r4, #10]
ldr r1, .L3532+36
ldrh r2, [r4, #6]
ldrb r0, [r4, #9] @ zero_extendqisi2
strh r9, [r4, #2] @ movhi
add r2, r2, r3
ldrh r3, [r1, #-8]
strb r10, [r4, #5]
str r1, [sp, #16]
mul r3, r3, r0
cmp r2, r3
beq .L3435
movw r2, #1802
ldr r1, .L3532+40
ldr r0, .L3532+44
bl printk
bl dump_stack
.L3435:
ldr r6, .L3532+28
mov r7, #0
ldrh r0, [r4, #10]
mov r2, r7
ldr r3, [r6, #-2556]
.L3436:
cmp r2, r0
bcc .L3438
ldr r2, [sp, #16]
ldrb r3, [r4, #9] @ zero_extendqisi2
ldr r9, .L3532
ldrh r2, [r2, #-8]
ldr r10, .L3532+24
smulbb r3, r3, r2
sub r3, r3, r0
add r7, r7, r3
ldr r3, [r9]
uxth r7, r7
tst r3, #4096
beq .L3439
ldrh r1, [r4]
ldr r2, [r10, #1092]
ldr r0, .L3532+48
lsl r3, r1, #1
ldrh r3, [r2, r3]
mov r2, r7
bl printk
.L3439:
ldrh r3, [r4]
ldr r2, [r10, #1092]
lsl r3, r3, #1
strh r7, [r2, r3] @ movhi
ldr r3, [r9]
tst r3, #16384
beq .L3440
ldr r3, [sp, #44]
add r1, sp, #32
ldr r0, .L3532+52
str r3, [sp]
ldm r1, {r1, r2, r3}
bl printk
.L3440:
ldrb r2, [r6, #-2546] @ zero_extendqisi2
mov r8, #0
mov r1, #0
ldr r0, [r5, #4]
lsl r2, r2, #9
bl ftl_memset
.L3441:
ldrb r3, [r6, #-3127] @ zero_extendqisi2
ldr r2, [sp, #12]
mul r3, r2, r3
cmp r8, r3
bcc .L3453
ldr fp, .L3532+56
mov r7, #0
add r8, sp, #32
.L3454:
ldrb r3, [r6, #-3127] @ zero_extendqisi2
ldr r2, [sp, #12]
mul r3, r2, r3
cmp r7, r3
bcc .L3460
mov r0, r5
bl zbuf_free
ldr r3, [sp, #16]
ldrh r2, [r4, #12]
ldrb r1, [r4, #9] @ zero_extendqisi2
ldrh r3, [r3, #-8]
mla r3, r1, r3, r2
ldr r2, [r6, #-2556]
sub r3, r3, #-1073741823
ldr r3, [r2, r3, lsl #2]
cmn r3, #1
beq .L3461
movw r2, #1917
ldr r1, .L3532+40
ldr r0, .L3532+44
bl printk
bl dump_stack
.L3461:
ldrh r3, [r4, #6]
cmp r3, #1
bne .L3410
mov r0, r4
bl ftl_write_last_log_page
.L3410:
add sp, sp, #228
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3434:
ldrb r10, [r4, #5] @ zero_extendqisi2
ldr r6, .L3532+28
.L3418:
ldrb r3, [r4, #9] @ zero_extendqisi2
cmp r3, r10
movls r3, #0
strbls r3, [r4, #5]
addls r3, r9, #1
uxthls r9, r3
bls .L3417
.L3433:
add r3, r4, r10, lsl #1
ldrh r8, [r3, #16]
movw r3, #65535
cmp r8, r3
beq .L3419
ldr r3, .L3532+60
ldr r2, [r5, #12]
ldr r1, [r5, #4]
ldrh r3, [r3, #-2]
mla r3, r8, r3, r9
str r3, [sp, #20]
ldr r0, [sp, #20]
ldrb r3, [r6, #-2546] @ zero_extendqisi2
bl ftl_read_ppa_page
cmp r0, #512
mov r7, r0
beq .L3420
cmn r0, #1
beq .L3421
ldr r3, [r5, #12]
ldr r2, [r3]
cmn r2, #1
bne .L3421
ldr r3, [r3, #4]
cmn r3, #1
bne .L3421
ldr r3, [r5, #4]
ldr r3, [r3]
cmn r3, #1
beq .L3420
.L3421:
mov r3, #1
ldrh r2, [r4, #10]
strb r3, [r6, #-47]
ldrb r3, [r4, #9] @ zero_extendqisi2
mla r3, r9, r3, r10
cmp r2, r3
beq .L3422
movw r2, #1694
ldr r1, .L3532+40
ldr r0, .L3532+44
bl printk
bl dump_stack
.L3422:
ldrh r3, [r4, #10]
ldrh r2, [r4, #6]
add r2, r2, r3
ldr r3, .L3532+32
ldrh r1, [r3]
ldrb r3, [r4, #9] @ zero_extendqisi2
mul r3, r3, r1
cmp r2, r3
beq .L3423
movw r2, #1695
ldr r1, .L3532+40
ldr r0, .L3532+44
bl printk
bl dump_stack
.L3423:
ldrb r3, [r6, #-2546] @ zero_extendqisi2
cmp r3, #8
bls .L3424
ldr r3, [r5, #12]
ldr r1, .L3532+64
ldr r2, [r3]
cmp r2, r1
beq .L3424
cmn r7, #1
beq .L3426
ldr r2, [r3, #4]
cmn r2, #1
bne .L3427
.L3430:
ldr r3, [r5, #12]
ldr r0, [r3, #4]
cmn r0, #1
bne .L3428
.L3426:
ldrh r3, [r4, #6]
sub r3, r3, #1
strh r3, [r4, #6] @ movhi
ldrh r3, [r4, #10]
add r3, r3, #1
strh r3, [r4, #10] @ movhi
mov r3, #4
str r3, [sp, #12]
mov r3, #1
str r3, [sp, #24]
.L3419:
add r3, r10, #1
uxth r10, r3
b .L3418
.L3427:
ldr r2, [r3, #16]
ldr r1, .L3532+68
cmp r2, r1
bne .L3430
ldr fp, [r3, #20]
mov r1, #1024
ldr r0, [sp, #16]
bl js_hash
cmp fp, r0
beq .L3430
mov r1, #1024
ldr r0, [sp, #16]
bl js_hash
mov r2, r9
mov r1, r8
str r0, [sp, #4]
str r7, [sp]
ldr r3, [sp, #20]
ldr r0, .L3532+72
bl printk
mov r3, #16
mov r2, #4
ldr r1, [sp, #16]
ldr r0, .L3532+76
bl rknand_print_hex
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r2, #4
ldr r1, [r5, #12]
ldr r0, .L3532+80
lsr r3, r3, #1
bl rknand_print_hex
b .L3426
.L3424:
cmn r7, #1
bne .L3430
b .L3426
.L3428:
ldr r3, [r3]
ldr r2, .L3532+64
cmp r3, r2
beq .L3426
bl lpa_hash_get_ppa
ldr r3, [sp, #28]
mov r8, r0
cmp r3, #0
beq .L3431
ldr fp, [r5, #12]
ldr r3, [fp, #8]
cmp r3, r0
cmnne r0, #1
beq .L3431
ldr r3, .L3532+84
mov r7, #1
ldrb r1, [r6, #-3136] @ zero_extendqisi2
ldrh r0, [r3]
ldr r3, .L3532+24
ldrb r3, [r3, #1153] @ zero_extendqisi2
rsb r3, r3, #24
sub r3, r3, r0
lsl r3, r7, r3
sub r3, r3, #1
and r0, r3, r8, lsr r0
bl __aeabi_uidiv
ldr r3, [sp, #28]
uxth r0, r0
ldrh r3, [r3]
cmp r3, r0
bne .L3431
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r0, r8
ldr r2, [r6, #-76]
ldr r1, [r5, #4]
ldr fp, [fp]
bl ftl_read_ppa_page
ldr r3, [r6, #-76]
ldr r3, [r3]
cmp fp, r3
bhi .L3431
ldr r3, [r5, #12]
ldr r0, [r3, #8]
cmn r0, #1
beq .L3426
ldr r3, .L3532+84
ldrb r1, [r6, #-3136] @ zero_extendqisi2
ldrh r2, [r3]
ldr r3, .L3532+24
ldrb r3, [r3, #1153] @ zero_extendqisi2
rsb r3, r3, #24
sub r3, r3, r2
lsl r7, r7, r3
sub r7, r7, #1
and r0, r7, r0, lsr r2
bl __aeabi_uidiv
uxth r0, r0
bl ftl_vpn_decrement
b .L3426
.L3438:
ldrh r1, [r4, #12]
add r1, r1, r2
add r2, r2, #1
ldr r1, [r3, r1, lsl #2]
cmn r1, #1
addne r7, r7, #1
uxthne r7, r7
b .L3436
.L3453:
add r3, sp, #32
ldr r0, [r3, r8, lsl #2]
cmn r0, #1
bne .L3442
.L3446:
ldr r2, [r10, #2800]
mvn r7, #0
ldr r3, [r5, #12]
mov r0, #2
ldr r2, [r2, #8]
str r2, [r3]
mov r2, #0
ldr r3, [r5, #12]
str r7, [r3, #4]
ldr r3, [r5, #12]
str r7, [r3, #8]
ldr r3, [r5, #12]
str r2, [r3, #12]
ldr r3, [r5, #12]
str r2, [r3, #16]
ldr r3, [r5, #4]
str r2, [r3]
ldr r1, [r5, #12]
add r1, r1, #16
bl ftl_debug_info_fill
.L3443:
ldr r3, [sp, #24]
cmp r3, #1
bne .L3448
ldrh r3, [r4, #6]
cmp r3, #1
bls .L3448
.L3507:
mov r0, r4
bl ftl_get_new_free_page
ldr r3, [r9]
mov fp, r0
tst r3, #16384
beq .L3450
ldrh r2, [r4, #12]
mov r1, r0
ldrh r3, [r4, #10]
ldr r0, .L3532+88
add r3, r3, r2
ldr r2, [r5, #12]
sub r3, r3, #1
ldr r2, [r2, #4]
bl printk
.L3450:
ldrb r3, [r6, #-3127] @ zero_extendqisi2
ldr r1, [sp, #12]
ldrh r2, [r4, #6]
mul r3, r1, r3
add r3, r3, #1
sub r3, r3, r8
cmp r2, r3
bls .L3448
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r0, fp
ldr r2, [r5, #12]
ldr r1, [r5, #4]
bl ftl_prog_ppa_page
str r0, [sp, #20]
ldrh r0, [r4]
bl ftl_vpn_decrement
ldr r2, [sp, #20]
adds r3, r7, #1
movne r3, #1
cmn r2, #1
cmnne r7, #1
beq .L3451
add r3, sp, #96
ldrh r2, [r4, #12]
str fp, [r3, r8, lsl #2]
ldrh r3, [r4, #10]
add r3, r3, r2
add r2, sp, #160
sub r3, r3, #1
str r3, [r2, r8, lsl #2]
.L3448:
add r8, r8, #1
b .L3441
.L3442:
ldrb r3, [r6, #-2546] @ zero_extendqisi2
ldr r2, [r5, #12]
ldr r1, [r5, #4]
bl ftl_read_ppa_page
ldr r3, [r5, #12]
mov r7, r0
ldr r0, [r3, #4]
bl lpa_hash_get_ppa
ldr r3, [r9]
mov fp, r0
tst r3, #16384
beq .L3444
ldr r3, [r5, #12]
add r2, sp, #32
mov r1, r0
ldr r2, [r2, r8, lsl #2]
ldr r0, .L3532+92
ldr r3, [r3, #4]
bl printk
.L3444:
add r3, sp, #32
mov r2, #1
ldr r3, [r3, r8, lsl #2]
mov r0, #2
cmp fp, r3
ldr r3, [r5, #12]
mvnne r7, #0
str fp, [r3, #8]
ldr r3, [r5, #12]
str r2, [r3, #12]
mov r2, #0
ldr r3, [r5, #12]
str r2, [r3, #16]
ldr r1, [r5, #12]
add r1, r1, #16
bl ftl_debug_info_fill
cmn r7, #1
bne .L3443
b .L3446
.L3451:
ldrh r2, [r4, #6]
cmp r2, #1
movls r3, #0
andhi r3, r3, #1
cmp r3, #0
bne .L3507
b .L3448
.L3460:
add r10, sp, #96
ldr r3, [r10, r7, lsl #2]
cmn r3, #1
beq .L3456
ldrb r3, [r6, #-2546] @ zero_extendqisi2
ldr r2, [r5, #12]
ldr r1, [r5, #4]
ldr r0, [r8, r7, lsl #2]
bl ftl_read_ppa_page
cmn r0, #1
cmpne r0, #256
bne .L3456
ldrb r3, [r6, #-2546] @ zero_extendqisi2
ldr r0, [r10, r7, lsl #2]
ldr r2, [r5, #12]
ldr r1, [r5, #4]
bl ftl_read_ppa_page
ldr r3, [r9]
mov r10, r0
tst r3, #16384
beq .L3458
ldr r2, [r5, #12]
mov r1, r0
ldr r3, [r8, r7, lsl #2]
ldr r0, .L3532+88
ldr r2, [r2, #8]
bl printk
.L3458:
cmn r10, #1
beq .L3456
ldr r1, [r5, #12]
ldr r2, [r8, r7, lsl #2]
ldr r3, [r1, #8]
cmp r2, r3
bne .L3456
ldr r3, [r9]
add r10, sp, #160
tst r3, #16384
beq .L3459
ldr r3, [r10, r7, lsl #2]
mov r0, fp
ldr r1, [r1, #4]
bl printk
.L3459:
ldr r2, [r10, r7, lsl #2]
ldr r3, [r5, #12]
uxth r2, r2
ldmib r3, {r0, r1}
bl lpa_hash_update_ppa
.L3456:
add r7, r7, #1
b .L3454
.L3431:
ldr r1, [r5, #12]
ldr r2, .L3532+24
ldr r0, [r1, #4]
ldr r3, [r2, #2780]
cmp r0, r3
bcs .L3426
ldr r3, .L3532+32
ldrb ip, [r4, #9] @ zero_extendqisi2
ldrh r0, [r4, #10]
ldrh r3, [r3]
mul r3, r3, ip
sub r3, r3, #1
cmp r0, r3
bge .L3426
ldr r3, [r2, #2800]
ldr r1, [r1]
ldr r2, [r3, #8]
cmp r1, r2
strhi r1, [r3, #8]
ldrh r1, [r4, #12]
ldrh r2, [r4, #10]
ldr r3, [r5, #12]
add r2, r2, r1
uxth r2, r2
ldmib r3, {r0, r1}
bl lpa_hash_update_ppa
ldr r3, [sp, #36]
str r3, [sp, #32]
ldr r3, [sp, #40]
str r3, [sp, #36]
ldr r3, [sp, #44]
str r3, [sp, #40]
ldr r3, [sp, #20]
str r3, [sp, #44]
b .L3426
.L3533:
.align 2
.L3532:
.word .LANCHOR2
.word .LC212
.word .LC213
.word .LC214
.word .LC215
.word .LC216
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3096
.word .LANCHOR3-3088
.word .LANCHOR1+2316
.word .LC0
.word .LC219
.word .LC220
.word .LC223
.word .LANCHOR3-3072
.word -178307901
.word 1212240712
.word .LC217
.word .LC218
.word .LC183
.word .LANCHOR3-3138
.word .LC222
.word .LC221
.fnend
.size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
.align 2
.global dump_ftl_info
.syntax unified
.arm
.fpu softvfp
.type dump_ftl_info, %function
dump_ftl_info:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
movw r7, #1080
ldr r4, .L3536
ldr r5, .L3536+4
ldrb r1, [r4, #2769] @ zero_extendqisi2
ldr r0, .L3536+8
bl printk
ldrh r3, [r5, #-54]
sub r6, r5, #3088
ldrb r2, [r5, #-55] @ zero_extendqisi2
ldrb r1, [r5, #-56] @ zero_extendqisi2
ldr r0, .L3536+12
bl printk
ldr r3, [r4, #2800]
ldr r0, .L3536+16
ldrh r2, [r3, #140]
ldrh r1, [r3, #130]
bl printk
ldr r0, [r4, #1096]
ldrh ip, [r0, #26]
ldrb r3, [r0, #21] @ zero_extendqisi2
ldrh r2, [r0, #18]
ldrh r1, [r0, #16]
str ip, [sp, #4]
ldrh r0, [r0, #22]
str r0, [sp]
ldr r0, .L3536+20
bl printk
ldr r0, [r4, #1096]
ldrh ip, [r0, #58]
ldrb r3, [r0, #53] @ zero_extendqisi2
ldrh r2, [r0, #50]
ldrh r1, [r0, #48]
str ip, [sp, #4]
ldrh r0, [r0, #54]
str r0, [sp]
ldr r0, .L3536+24
bl printk
ldr r0, [r4, #1096]
ldrh ip, [r0, #90]
ldrb r3, [r0, #85] @ zero_extendqisi2
ldrh r2, [r0, #82]
ldrh r1, [r0, #80]
str ip, [sp, #4]
ldrh r0, [r0, #86]
str r0, [sp]
ldr r0, .L3536+28
bl printk
ldrh r2, [r6, #-8]
ldrb r3, [r5, #-3127] @ zero_extendqisi2
ldr r1, [r5, #-2556]
ldr r0, .L3536+32
mul r3, r3, r2
mov r2, #4
lsl r3, r3, #1
bl rknand_print_hex
ldrh r3, [r4, r7]
mov r2, #2
ldr r1, [r4, #1092]
ldr r0, .L3536+36
bl rknand_print_hex
ldr r1, [r4, #2800]
movw r3, #698
mov r2, #4
ldr r0, .L3536+40
ldrh r3, [r1, r3]
add r1, r1, #704
bl rknand_print_hex
ldrh r3, [r4, r7]
mov r2, #4
ldr r1, [r4, #1084]
ldr r0, .L3536+44
bl rknand_print_hex
sub r1, r5, #3056
mov r3, #256
mov r2, #2
sub r1, r1, #14
ldr r0, .L3536+48
bl rknand_print_hex
ldrh r2, [r6, #-8]
ldrb r3, [r5, #-3127] @ zero_extendqisi2
ldr r1, [r5, #-2552]
ldr r0, .L3536+52
mul r3, r3, r2
mov r2, #2
lsl r3, r3, #1
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, lr}
b rknand_print_hex
.L3537:
.align 2
.L3536:
.word .LANCHOR0
.word .LANCHOR3
.word .LC224
.word .LC225
.word .LC226
.word .LC227
.word .LC228
.word .LC229
.word .LC230
.word .LC231
.word .LC211
.word .LC232
.word .LC233
.word .LC234
.fnend
.size dump_ftl_info, .-dump_ftl_info
.align 2
.global pm_ppa_update_check
.syntax unified
.arm
.fpu softvfp
.type pm_ppa_update_check, %function
pm_ppa_update_check:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L3542
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r6, r2
ldr r7, .L3542+4
mov r4, r0
sub r2, r3, #3136
mov r5, r1
ldrh r0, [r2, #-2]
ldrb ip, [r7, #1153] @ zero_extendqisi2
ldrb r1, [r3, #-3136] @ zero_extendqisi2
mvn r3, #0
rsb ip, ip, #24
sub ip, ip, r0
lsr r0, r6, r0
bic r0, r0, r3, lsl ip
bl __aeabi_uidiv
ldr r3, [r7, #1084]
uxth r0, r0
add r0, r3, r0, lsl #2
ldrb r0, [r0, #2] @ zero_extendqisi2
lsr r0, r0, #5
cmp r0, #7
cmpne r0, #1
moveq r0, #1
movne r0, #0
popne {r4, r5, r6, r7, r8, pc}
mov r3, r6
mov r2, r5
mov r1, r4
ldr r0, .L3542+8
bl printk
bl dump_ftl_info
mvn r0, #0
pop {r4, r5, r6, r7, r8, pc}
.L3543:
.align 2
.L3542:
.word .LANCHOR3
.word .LANCHOR0
.word .LC235
.fnend
.size pm_ppa_update_check, .-pm_ppa_update_check
.align 2
.syntax unified
.arm
.fpu softvfp
.type load_l2p_region, %function
load_l2p_region:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
cmp r1, #31
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r7, r0
mov r6, r1
bls .L3545
mov r2, #32
ldr r1, .L3559
ldr r0, .L3559+4
bl printk
bl dump_stack
.L3545:
ldr r8, .L3559+8
movw r10, #698
ldr r5, .L3559+12
ldr r3, [r8, #2800]
mov r9, r8
ldrh r2, [r3, r10]
cmp r2, r7
bcs .L3546
mov r1, r7
ldr r0, .L3559+16
mov r4, #0
bl printk
ldrh r2, [r5, #-14]
mov r1, #255
ldr r0, [r4, #4]
bl ftl_memset
ldr r3, [r8, #2800]
ldrh r3, [r3, r10]
cmp r3, r7
bcc .L3547
.L3557:
mov r0, #0
.L3544:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L3547:
mov r2, #37
.L3558:
ldr r1, .L3559
ldr r0, .L3559+4
bl printk
bl dump_stack
b .L3557
.L3546:
add r2, r7, #176
lsl r6, r6, #3
ldr r4, [r3, r2, lsl #2]
ldr r3, .L3559+20
add r8, r5, r6
add r2, r3, r6
strh r7, [r3, r6] @ movhi
mov r3, #0
cmp r4, r3
strh r3, [r2, #2] @ movhi
bne .L3549
mov r2, r4
mov r1, r7
ldr r0, .L3559+24
bl printk
ldrh r2, [r5, #-14]
mov r1, #255
ldr r0, [r8, #-2528]
bl ftl_memset
b .L3557
.L3549:
ldrb r3, [r5, #-2546] @ zero_extendqisi2
mov r0, r4
ldr r2, [r5, #-32]
ldr r1, [r8, #-2528]
bl ftl_read_ppa_page
ldr r2, [r5, #-32]
mov r3, r0
ldr r2, [r2]
cmp r2, r7
bne .L3550
cmn r0, #1
cmpne r0, #512
beq .L3550
.L3554:
ldr r3, [r5, #-32]
ldr r3, [r3]
cmp r7, r3
beq .L3557
mov r2, #73
b .L3558
.L3550:
mov r1, r7
str r4, [sp]
ldr r0, .L3559+28
add r6, r5, r6
bl printk
ldr r1, [r9, #2800]
movw r3, #698
mov r2, #4
ldr r0, .L3559+32
ldrh r3, [r1, r3]
add r1, r1, #704
bl rknand_print_hex
ldrb r3, [r5, #-2546] @ zero_extendqisi2
mov r2, #4
ldr r1, [r6, #-2528]
ldr r0, .L3559+36
lsl r3, r3, #7
bl rknand_print_hex
mov r3, #16
mov r2, #4
ldr r1, [r5, #-32]
ldr r0, .L3559+40
bl rknand_print_hex
ldrb r3, [r5, #-2546] @ zero_extendqisi2
mov r0, r4
ldr r2, [r5, #-32]
ldr r1, [r6, #-2528]
bl ftl_read_ppa_page
cmn r0, #1
cmpne r0, #512
bne .L3553
ldrh r2, [r5, #-14]
mov r1, #255
ldr r0, [r6, #-2528]
bl ftl_memset
.L3555:
mvn r0, #0
b .L3544
.L3553:
ldr r3, [r5, #-32]
ldr r3, [r3]
cmp r7, r3
beq .L3554
b .L3555
.L3560:
.align 2
.L3559:
.word .LANCHOR1+2339
.word .LC0
.word .LANCHOR0
.word .LANCHOR3
.word .LC236
.word .LANCHOR3-2532
.word .LC237
.word .LC238
.word .LC239
.word .LC218
.word .LC240
.fnend
.size load_l2p_region, .-load_l2p_region
.align 2
.global pm_gc
.syntax unified
.arm
.fpu softvfp
.type pm_gc, %function
pm_gc:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r6, .L3579
ldr r4, .L3579+4
ldr r3, [r6, #2800]
add r3, r3, #688
ldrh r2, [r3]
ldrh r3, [r4, #-176]
sub r3, r3, #1
cmp r2, r3
bge .L3562
ldr r3, [r4, #-184]
cmp r3, #0
beq .L3563
.L3562:
bl pm_free_sblk
ldr r2, [r6, #2800]
add r3, r2, #688
ldrh r1, [r3]
ldrh r3, [r4, #-176]
sub r3, r3, #1
cmp r1, r3
bge .L3564
ldr r3, [r4, #-184]
cmp r3, #0
beq .L3563
.L3564:
uxth r0, r0
movw r5, #65535
mov r3, #0
add r0, r0, #208
str r3, [r4, #-184]
lsl r0, r0, #1
ldrh r9, [r2, r0]
cmp r9, r5
bne .L3566
mov r2, #182
ldr r1, .L3579+8
ldr r0, .L3579+12
bl printk
bl dump_stack
bl pm_free_sblk
uxth r0, r0
ldr r3, [r6, #2800]
add r0, r0, #208
lsl r0, r0, #1
ldrh r9, [r3, r0]
cmp r9, r5
beq .L3563
.L3566:
ldr r5, .L3579+16
bl pm_select_ram_region
lsl r7, r0, #3
mov r10, r0
movw r3, #65535
ldrh r0, [r5, r7]
add r8, r5, r7
add r5, r5, #4
cmp r0, r3
beq .L3567
add r3, r4, r7
ldr r1, [r3, #-2528]
cmp r1, #0
beq .L3567
ldrsh r3, [r8, #2]
cmp r3, #0
bge .L3567
bl pm_write_page
ldrh r3, [r8, #2]
ubfx r3, r3, #0, #15
strh r3, [r8, #2] @ movhi
.L3567:
sub r5, r5, #4
mov r8, #0
add r5, r5, r7
.L3568:
ldr r3, [r6, #2800]
movw r1, #698
uxth r2, r8
ldrh r1, [r3, r1]
cmp r1, r2
bhi .L3571
bl pm_free_sblk
.L3563:
mov r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3571:
ldr r1, .L3579+20
uxth fp, r8
ldrb r0, [r6, #1153] @ zero_extendqisi2
add ip, fp, #176
str r2, [sp, #4]
ldrh r1, [r1]
ldr r3, [r3, ip, lsl #2]
rsb r0, r0, #24
mvn ip, #0
sub r0, r0, r1
lsr r3, r3, r1
ldrb r1, [r4, #-3136] @ zero_extendqisi2
bic r0, r3, ip, lsl r0
bl __aeabi_uidiv
uxth r0, r0
ldr r2, [sp, #4]
cmp r9, r0
bne .L3569
mov r1, r10
mov r0, r2
bl load_l2p_region
cmp r0, #0
bne .L3570
add r3, r4, r7
mov r0, fp
ldr r1, [r3, #-2528]
bl pm_write_page
.L3570:
mvn r3, #0
strh r3, [r5] @ movhi
.L3569:
add r8, r8, #1
b .L3568
.L3580:
.align 2
.L3579:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR1+2355
.word .LC0
.word .LANCHOR3-2532
.word .LANCHOR3-3138
.fnend
.size pm_gc, .-pm_gc
.align 2
.global pm_flush_id
.syntax unified
.arm
.fpu softvfp
.type pm_flush_id, %function
pm_flush_id:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
lsl r0, r0, #3
ldr r4, .L3587
sub r3, r4, #2528
add r2, r4, r0
sub r3, r3, #4
ldr r1, [r2, #-2528]
add r5, r3, r0
ldrh r0, [r3, r0]
bl pm_write_page
ldrh r3, [r5, #2]
ubfx r3, r3, #0, #15
strh r3, [r5, #2] @ movhi
ldr r3, [r4, #-36]
cmp r3, #0
beq .L3582
bl pm_gc
mov r3, #0
str r3, [r4, #-36]
.L3582:
mov r0, #0
pop {r4, r5, r6, pc}
.L3588:
.align 2
.L3587:
.word .LANCHOR3
.fnend
.size pm_flush_id, .-pm_flush_id
.align 2
.global pm_flush
.syntax unified
.arm
.fpu softvfp
.type pm_flush, %function
pm_flush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, #0
ldr r5, .L3594
.L3591:
add r3, r5, r4, lsl #3
uxth r0, r4
ldrsh r3, [r3, #2]
cmp r3, #0
bge .L3590
bl pm_flush_id
.L3590:
add r4, r4, #1
cmp r4, #32
bne .L3591
mov r0, #0
pop {r4, r5, r6, pc}
.L3595:
.align 2
.L3594:
.word .LANCHOR3-2532
.fnend
.size pm_flush, .-pm_flush
.align 2
.global flt_sys_flush
.syntax unified
.arm
.fpu softvfp
.type flt_sys_flush, %function
flt_sys_flush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
bl ftl_flush
bl pm_flush
bl ftl_ext_info_flush
mov r0, #0
pop {r4, lr}
b ftl_info_flush
.fnend
.size flt_sys_flush, .-flt_sys_flush
.align 2
.global zftl_deinit
.syntax unified
.arm
.fpu softvfp
.type zftl_deinit, %function
zftl_deinit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
bl zftl_flash_de_init
bl flt_sys_flush
pop {r4, lr}
b zftl_flash_de_init
.fnend
.size zftl_deinit, .-zftl_deinit
.align 2
.global pm_init
.syntax unified
.arm
.fpu softvfp
.type pm_init, %function
pm_init:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, #0
ldr r8, .L3623
mvn r9, #0
mov r10, r5
mov r3, #1
ldr r4, .L3623+4
.pad #20
sub sp, sp, #20
mov r7, r0
mov r0, #64
str r5, [r4, #-184]
str r5, [r4, #-36]
strb r3, [r4, #-28]
bl ftl_dma32_malloc
str r0, [r4, #-32]
.L3602:
cmp r7, #0
mov r6, r8
strh r9, [r6, r5]! @ movhi
strh r10, [r6, #2] @ movhi
beq .L3601
ldrb r0, [r4, #-2546] @ zero_extendqisi2
lsl r0, r0, #9
bl ftl_dma32_malloc
str r0, [r6, #4]
.L3601:
add r5, r5, #8
cmp r5, #256
bne .L3602
ldr r5, .L3623+8
ldr r9, [r4, #-2528]
ldr r6, [r4, #-32]
ldr r3, [r5, #2800]
add r2, r3, #692
ldrb r0, [r3, #694] @ zero_extendqisi2
mov r3, #4
ldrh r1, [r2]
str r3, [sp]
mov r2, r9
mov r3, r6
bl flash_get_last_written_page
ldr r3, [r5, #2800]
mov r8, r0
add r2, r3, #696
ldrh r2, [r2]
cmp r2, r0
bgt .L3603
add r1, r3, #692
mov r3, r0
ldrh r1, [r1]
ldr r0, .L3623+12
bl printk
ldr r3, [r5, #2800]
add r3, r3, #696
ldrsh r7, [r3]
add r3, r8, #1
str r3, [sp, #12]
.L3604:
ldr r3, [sp, #12]
cmp r7, r3
blt .L3607
mov r3, #1
ldrh r2, [sp, #12]
strb r3, [r4, #-47]
ldr r3, [r5, #2800]
add r3, r3, #696
strh r2, [r3] @ movhi
bl pm_free_sblk
.L3603:
ldrh r2, [r4, #-14]
mov r1, #255
ldr r0, [r4, #-2528]
bl ftl_memset
ldr r1, [r4, #-2528]
mvn r0, #0
bl pm_write_page
ldrb r3, [r4, #-47] @ zero_extendqisi2
cmp r3, #0
beq .L3608
ldr r1, [r4, #-2528]
mvn r0, #0
bl pm_write_page
ldr r1, [r4, #-2528]
mvn r0, #0
bl pm_write_page
ldr r1, [r4, #-2528]
mvn r0, #0
bl pm_write_page
.L3608:
bl pm_free_sblk
bl pm_gc
mov r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3607:
ldr r3, [r5, #2800]
movw fp, #694
add r2, r3, #692
ldrb r0, [r3, fp] @ zero_extendqisi2
ldrh r8, [r2]
ldr r2, .L3623+16
ldrb r3, [r4, #-2546] @ zero_extendqisi2
ldrh r2, [r2]
str r3, [sp]
mov r3, r6
mla r8, r2, r8, r7
mov r2, r9
mov r1, r8
bl flash_read_page_en
ldr r3, [r5, #2800]
mov r10, r0
ldr r0, .L3623+20
ldr r2, [r3, #48]
add r2, r2, #1
str r2, [r3, #48]
mov r2, r8
ldrh r3, [r3, fp]
ldr r1, [r6]
bl printk
cmp r10, #512
cmnne r10, #1
beq .L3605
ldr r2, [r5, #2800]
movw r3, #698
ldrh r3, [r2, r3]
ldr r2, [r6]
cmp r2, r3
bcs .L3605
ldr r10, [r6, #8]
cmp r10, #0
beq .L3606
ldrb r1, [r4, #-2546] @ zero_extendqisi2
mov r0, r9
lsl r1, r1, #9
bl js_hash
cmp r10, r0
beq .L3606
ldr r1, [r6, #8]
ldr r0, .L3623+24
bl printk
.L3605:
add r7, r7, #1
sxth r7, r7
b .L3604
.L3606:
ldr r3, [r6]
ldr r2, [r5, #2800]
add r3, r3, #176
str r8, [r2, r3, lsl #2]
b .L3605
.L3624:
.align 2
.L3623:
.word .LANCHOR3-2532
.word .LANCHOR3
.word .LANCHOR0
.word .LC241
.word .LANCHOR3-3074
.word .LC242
.word .LC243
.fnend
.size pm_init, .-pm_init
.align 2
.global pm_log2phys
.syntax unified
.arm
.fpu softvfp
.type pm_log2phys, %function
pm_log2phys:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r7, r1
ldr r8, .L3641
mov r6, r0
mov r9, r2
ldr r10, .L3641+4
ldrb r4, [r8, #-2546] @ zero_extendqisi2
lsl r1, r4, #7
lsl r4, r4, #7
bl __aeabi_uidiv
str r0, [sp, #4]
ldrh fp, [sp, #4]
ldr r2, [r10, #2780]
smulbb r4, r4, fp
cmp r6, r2
sub r4, r6, r4
bcc .L3626
mov r1, r6
ldr r0, .L3641+8
bl printk
cmp r9, #0
mvn r0, #0
streq r0, [r7]
.L3625:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3626:
ldr r1, .L3641+12
uxth r4, r4
mov r2, #0
sub r6, r8, #2528
.L3632:
lsl r0, r2, #3
uxth r5, r2
add ip, r1, r0
ldr ip, [ip, #4]
cmp ip, #0
beq .L3628
ldrh r0, [r0, r1]
cmp r0, fp
bne .L3628
.L3629:
cmp r9, #0
lsl r5, r5, #3
bne .L3630
add r2, r8, r5
ldr r2, [r2, #-2528]
ldr r1, [r2, r4, lsl #2]
mvn r2, #0
str r1, [r7]
ldrb r0, [r10, #1153] @ zero_extendqisi2
ldrb r3, [r8, #-3072] @ zero_extendqisi2
rsb ip, r0, #24
mvn r2, r2, lsl r0
and r2, r2, r1, lsr ip
cmp r2, r3
mvncs r3, #0
strcs r3, [r7]
.L3631:
sub r6, r6, #4
movw r2, #32767
add r6, r6, r5
mov r0, #0
ldrh r3, [r6, #2]
ubfx r1, r3, #0, #15
cmp r1, r2
addne r3, r3, #1
strhne r3, [r6, #2] @ movhi
b .L3625
.L3630:
add r2, r8, r5
ldr r1, [r7]
ldr r2, [r2, #-2528]
ldrb r3, [sp, #4] @ zero_extendqisi2
str r1, [r2, r4, lsl #2]
sub r1, r6, #4
add r1, r1, r5
strb r3, [r8, #-2276]
ldrh r2, [r1, #2]
mvn r2, r2, lsl #17
mvn r2, r2, lsr #17
strh r2, [r1, #2] @ movhi
b .L3631
.L3628:
add r2, r2, #1
cmp r2, #32
bne .L3632
bl pm_select_ram_region
lsl r1, r0, #3
sub r2, r6, #4
mov r5, r0
add ip, r2, r1
ldrh r1, [r2, r1]
movw r2, #65535
cmp r1, r2
beq .L3633
ldrsh r2, [ip, #2]
cmp r2, #0
bge .L3633
bl pm_flush_id
.L3633:
mov r1, r5
mov r0, fp
strb r5, [r8, #-12]
bl load_l2p_region
b .L3629
.L3642:
.align 2
.L3641:
.word .LANCHOR3
.word .LANCHOR0
.word .LC244
.word .LANCHOR3-2532
.fnend
.size pm_log2phys, .-pm_log2phys
.align 2
.global gc_recovery
.syntax unified
.arm
.fpu softvfp
.type gc_recovery, %function
gc_recovery:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r3, #65535
ldr r8, .L3744
mov r5, #0
.pad #76
sub sp, sp, #76
ldr r7, .L3744+4
ldr r4, [r8, #1096]
strb r5, [r7, #-3119]
ldrh r2, [r4, #80]
strb r5, [r7, #-144]
cmp r2, r3
beq .L3644
mvn r3, #0
mov r0, #1
strh r3, [r4, #130] @ movhi
bl buf_alloc
ldrb r3, [r4, #89] @ zero_extendqisi2
mov r6, r0
ldrb r1, [r7, #-3128] @ zero_extendqisi2
add r3, r4, r3, lsl #1
cmp r1, #2
ldrh r2, [r3, #94]
sub r3, r7, #3072
ldrh r3, [r3, #-2]
mul r2, r3, r2
str r2, [sp, #64]
beq .L3645
ldrb r3, [r8, #1158] @ zero_extendqisi2
cmp r3, r5
bne .L3645
ldrb r3, [r8, #1159] @ zero_extendqisi2
cmp r3, r5
beq .L3646
.L3645:
ldr r3, .L3744+8
ldrh r3, [r3, #-14]
sub r3, r3, #1
add r3, r3, r2
orr r3, r3, r1, lsl #24
.L3734:
str r3, [r6, #24]
.L3647:
mov r1, #1
mov r0, r6
bl sblk_read_page
ldr r3, [r6, #36]
cmn r3, #1
cmpne r3, #512
beq .L3648
ldr r3, [r6, #12]
ldr r9, .L3744+12
ldr r3, [r3]
cmp r3, r9
beq .L3649
.L3648:
mov r0, r6
bl zbuf_free
ldr r2, [r6, #12]
ldr r3, [r6, #4]
ldr r0, .L3744+16
ldr r1, [r2, #12]
str r1, [sp, #24]
ldr r1, [r2, #8]
str r1, [sp, #20]
ldr r1, [r2, #4]
str r1, [sp, #16]
ldr r2, [r2]
str r2, [sp, #12]
ldr r2, [r3, #12]
str r2, [sp, #8]
ldr r2, [r3, #8]
str r2, [sp, #4]
ldr r2, [r3, #4]
str r2, [sp]
ldr r3, [r3]
ldr r2, [r6, #36]
ldr r1, [r6, #24]
bl printk
.L3742:
ldrh r3, [r4, #80]
mov r5, #0
ldr r2, [r8, #1092]
lsl r3, r3, #1
strh r5, [r2, r3] @ movhi
ldrh r2, [r4, #80]
ldr r3, [r8, #1096]
strh r2, [r3, #130] @ movhi
.L3650:
ldrh r0, [r4, #80]
ldr r6, .L3744
ldr r2, [r6, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #0
bne .L3694
bl ftl_dump_write_open_sblk
.L3694:
mov r2, r5
ldrh r1, [r4, #80]
ldr r0, .L3744+20
bl printk
mvn r3, #0
strh r3, [r4, #80] @ movhi
bl pm_flush
bl ftl_ext_info_flush
ldr r3, [r6, #1096]
movw r2, #65535
ldrh r3, [r3, #130]
cmp r3, r2
beq .L3695
movw r2, #1080
ldrh r2, [r6, r2]
cmp r2, r3
bhi .L3696
movw r2, #517
ldr r1, .L3744+24
ldr r0, .L3744+28
bl printk
bl dump_stack
.L3696:
ldr r3, [r6, #1096]
ldrh r0, [r3, #130]
bl ftl_free_sblk
.L3695:
ldr r2, [r6, #2800]
mvn r3, #0
mov r0, #0
strh r3, [r2, #126] @ movhi
ldr r2, [r6, #1096]
strh r3, [r2, #130] @ movhi
bl ftl_info_flush
.L3643:
add sp, sp, #76
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3646:
cmp r1, #3
bne .L3647
sub r3, r7, #3088
ldrh r3, [r3, #-8]
sub r3, r3, #1
add r3, r3, r2
orr r3, r3, #50331648
b .L3734
.L3649:
ldrb r3, [r7, #-11] @ zero_extendqisi2
ldr r5, .L3744+8
cmp r3, #2
bne .L3651
ldrb r3, [r7, #-3128] @ zero_extendqisi2
cmp r3, #3
bne .L3651
ldrh r2, [r5, #-14]
ldrh r0, [r7, #-14]
ldr r1, [r6, #4]
lsl r3, r2, #2
ldrb r2, [r7, #-3127] @ zero_extendqisi2
smulbb r2, r2, r3
ldr r3, [r7, #-132]
sub r2, r2, r0
lsr r0, r0, #2
uxth r2, r2
add r0, r3, r0, lsl #2
bl ftl_memcpy
ldrb r3, [r8, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L3652
ldrb r3, [r8, #1159] @ zero_extendqisi2
cmp r3, #0
beq .L3653
.L3652:
ldr r3, [r6, #24]
sub r3, r3, #1
.L3735:
str r3, [r6, #24]
mov r1, #1
mov r0, r6
bl sblk_read_page
ldr r3, [r6, #36]
cmn r3, #1
cmpne r3, #512
beq .L3655
ldr r3, [r6, #12]
ldr r3, [r3]
cmp r3, r9
beq .L3656
.L3655:
mov r0, r6
bl zbuf_free
b .L3742
.L3653:
ldr r3, [sp, #64]
ldrh r2, [r5, #8]
sub r3, r3, #1
add r3, r3, r2
orr r3, r3, #33554432
b .L3735
.L3656:
ldrh r2, [r7, #-14]
.L3736:
ldr r1, [r6, #4]
ldr r0, [r7, #-132]
bl ftl_memcpy
ldrh r3, [r5, #-14]
ldrb r2, [r7, #-3127] @ zero_extendqisi2
mul r2, r2, r3
ldrb r3, [r7, #-2546] @ zero_extendqisi2
cmp r3, r2, asr #6
lsl r2, r2, #2
bge .L3658
mov r1, #0
ldr r0, [r7, #-128]
bl ftl_memset
ldrb r10, [r7, #-11] @ zero_extendqisi2
cmp r10, #1
movne r10, #1
bne .L3737
ldrh r1, [r5, #-14]
ldrb r3, [r7, #-3127] @ zero_extendqisi2
ldrh r5, [r7, #-14]
ldr r0, [r7, #-128]
mul r3, r3, r1
ldr r1, [r6, #4]
lsl r3, r3, #2
sub r5, r5, r3
add r1, r1, r3
mov r2, r5
bl ftl_memcpy
.L3659:
ldr r3, .L3744+32
ldrh r3, [r3, #-8]
str r3, [sp, #44]
ldrb r3, [r7, #-3128] @ zero_extendqisi2
cmp r3, #2
str r3, [sp, #36]
bne .L3660
ldrb r3, [r7, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L3661
.L3660:
ldrb r3, [r8, #1158] @ zero_extendqisi2
cmp r3, #0
beq .L3662
.L3661:
ldr r3, [sp, #36]
ldr r2, [sp, #44]
mul r3, r3, r2
str r3, [sp, #44]
mov r3, #1
str r3, [sp, #36]
.L3662:
ldr r8, .L3744+4
mov r7, #0
str r7, [sp, #48]
.L3663:
ldr r3, [sp, #44]
cmp r3, r7
bls .L3676
add r3, r7, r7, lsl #1
sub r3, r3, #1
str r3, [sp, #52]
mov r3, #0
b .L3739
.L3651:
ldrh r3, [r5, #-14]
ldrb r2, [r7, #-3127] @ zero_extendqisi2
mul r2, r2, r3
lsl r2, r2, #2
b .L3736
.L3658:
ldr r1, [r6, #4]
mov r10, #0
ldr r0, [r7, #-128]
add r1, r1, r2
bl ftl_memcpy
.L3737:
mov r5, #0
b .L3659
.L3672:
ldr r3, [sp, #56]
ldrb r1, [r8, #-3128] @ zero_extendqisi2
ldrh r2, [r3, #96]
ldr r3, .L3744+36
cmp r1, #2
ldrh r3, [r3, #-2]
mul r3, r3, r2
str r3, [sp, #64]
beq .L3664
ldr r2, .L3744
ldrb r2, [r2, #1158] @ zero_extendqisi2
cmp r2, #0
beq .L3665
.L3664:
sub r2, r7, #1
add r3, r2, r3
add r3, r3, fp
orr r3, r3, r1, lsl #24
.L3738:
str r3, [r6, #24]
mov r1, #1
mov r0, r6
bl sblk_read_page
cmp r10, #0
beq .L3669
ldr r3, [r8, #-128]
ldr r2, [r3, r9]
cmp r2, #0
ldreq r2, [r6, #12]
ldreq r2, [r2, #8]
streq r2, [r3, r9]
.L3669:
ldr r3, [r8, #-132]
ldr r2, [r6, #12]
ldr r3, [r3, r9]
ldr r1, [r2, #4]
cmp r3, r1
bne .L3670
ldr r0, [r8, #-128]
ldr ip, [r0, r9]
ldr r0, [r2, #8]
cmp ip, r0
beq .L3671
.L3670:
ldr r0, [r2, #12]
str r0, [sp, #16]
ldr r0, [r2, #8]
str r1, [sp, #8]
str r0, [sp, #12]
ldr r2, [r2]
ldr r0, .L3744+40
str r2, [sp, #4]
ldr r2, [r8, #-128]
ldr r2, [r2, r9]
str r2, [sp]
ldr r2, [r6, #36]
ldr r1, [r6, #24]
bl printk
ldr r3, [r8, #-132]
ldr r3, [r3, r9]
cmn r3, #1
beq .L3671
mov r0, r6
bl zbuf_free
ldrh r3, [r4, #80]
mov r0, #0
ldr r2, .L3744
ldr r1, [r2, #1092]
lsl r3, r3, #1
strh r0, [r1, r3] @ movhi
ldrh r1, [r4, #80]
ldr r3, [r2, #1096]
strh r1, [r3, #130] @ movhi
b .L3650
.L3665:
cmp r1, #3
addne r3, r7, r3
bne .L3738
ldr r2, .L3744
ldrb r2, [r2, #1159] @ zero_extendqisi2
cmp r2, #0
ldrne r2, [sp, #52]
addeq r3, r7, r3
orreq r3, r3, fp, lsl #24
addne r3, r3, r2
addne r3, r3, fp
orrne r3, r3, #50331648
b .L3738
.L3671:
ldr r3, [sp, #48]
add fp, fp, #1
add r9, r9, #4
add r3, r3, #1
str r3, [sp, #48]
.L3674:
ldr r3, [sp, #36]
cmp r3, fp
bcs .L3672
ldr r3, [sp, #40]
add r3, r3, #1
.L3739:
str r3, [sp, #40]
ldr r2, [sp, #40]
ldrb r3, [r4, #89] @ zero_extendqisi2
cmp r2, r3
bge .L3673
ldr r3, [sp, #48]
mov fp, #1
lsl r9, r3, #2
add r3, r4, r2, lsl #1
str r3, [sp, #56]
b .L3674
.L3673:
ldrb r3, [r8, #-3126] @ zero_extendqisi2
cmp r3, #0
addne r7, r7, #1
add r7, r7, #1
b .L3663
.L3676:
mov r0, r6
mov r5, #0
bl zbuf_free
ldr r3, .L3744
mov r6, r5
ldrb r1, [r4, #89] @ zero_extendqisi2
mov r10, r5
ldrh r2, [r4, #80]
ldr r0, [r3, #1092]
ldr r3, .L3744+8
lsl r2, r2, #1
ldrh ip, [r3, #-14]
add r9, r3, #3104
smulbb r1, r1, ip
strh r1, [r0, r2] @ movhi
.L3678:
ldr r3, [sp, #44]
cmp r3, r6
bls .L3692
add r2, r6, r6, lsl #1
sub r3, r2, #1
str r3, [sp, #52]
mov r3, #0
b .L3741
.L3688:
ldr r2, [r9, #-132]
ldr fp, [r2, r10, lsl #2]
cmn fp, #1
beq .L3679
ldr r2, [r9, #-128]
mov r0, fp
ldr r3, [r2, r10, lsl #2]
str r3, [sp, #48]
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #68]
bne .L3680
mov r2, #0
add r1, sp, #68
mov r0, fp
bl pm_log2phys
.L3680:
ldr r3, [sp, #56]
ldr r1, .L3744+44
ldrb r0, [r9, #-3128] @ zero_extendqisi2
ldrh r2, [r3, #96]
ldrh r1, [r1]
cmp r0, #2
mul r2, r1, r2
beq .L3681
ldr r1, .L3744
ldrb ip, [r1, #1158] @ zero_extendqisi2
cmp ip, #0
beq .L3682
.L3681:
sub r1, r6, #1
add r2, r1, r2
add r2, r2, r8
orr r2, r2, r0, lsl #24
.L3740:
str r2, [sp, #64]
ldr r2, .L3744+48
ldr r3, [sp, #48]
ldrb r1, [r9, #-3136] @ zero_extendqisi2
ldrh ip, [r2, #-2]
ldr r2, .L3744
ldrb r0, [r2, #1153] @ zero_extendqisi2
mov r2, #1
str r2, [sp, #60]
rsb r0, r0, #24
sub r0, r0, ip
lsl r0, r2, r0
sub r0, r0, #1
and r0, r0, r3, lsr ip
bl __aeabi_uidiv
ldr r1, [sp, #68]
mov r7, r0
ldr r3, [sp, #48]
ldr r2, [sp, #60]
cmp r3, r1
bne .L3686
add r1, sp, #64
mov r0, fp
bl pm_log2phys
uxth r0, r7
add r5, r5, #1
bl ftl_vpn_decrement
.L3687:
ldr r1, .L3744
uxth r7, r7
add r10, r10, #1
ldr r2, [r1, #1084]
add r2, r2, r7, lsl #2
ldrb r2, [r2, #2] @ zero_extendqisi2
ands r0, r2, #224
bne .L3679
ldr r2, [r1, #1092]
lsl r7, r7, #1
ldrh r1, [r2, r7]
cmp r1, #0
strhne r0, [r2, r7] @ movhi
.L3679:
add r8, r8, #1
.L3690:
ldr r3, [sp, #36]
cmp r3, r8
bcs .L3688
ldr r3, [sp, #40]
add r3, r3, #1
.L3741:
str r3, [sp, #40]
ldrb r2, [r4, #89] @ zero_extendqisi2
ldr r3, [sp, #40]
cmp r3, r2
bge .L3689
add r3, r4, r3, lsl #1
mov r8, #1
str r3, [sp, #56]
b .L3690
.L3682:
cmp r0, #3
addne r2, r6, r2
bne .L3740
ldrb r1, [r1, #1159] @ zero_extendqisi2
cmp r1, #0
lsl r1, r8, #24
ldrne r3, [sp, #52]
addeq r2, r6, r2
addne r2, r2, r3
addne r2, r2, r8
orr r2, r2, r1
b .L3740
.L3686:
ldr r2, [sp, #64]
cmp r1, r2
addeq r5, r5, #1
b .L3687
.L3689:
ldrb r2, [r9, #-3126] @ zero_extendqisi2
cmp r2, #0
addne r6, r6, #1
add r6, r6, #1
b .L3678
.L3692:
ldrh r3, [r4, #80]
ldr r2, .L3744
ldr r2, [r2, #1092]
lsl r3, r3, #1
strh r5, [r2, r3] @ movhi
ldrh r0, [r4, #80]
bl zftl_insert_data_list
b .L3650
.L3644:
ldrh r3, [r4, #130]
cmp r3, r2
beq .L3643
ldr r2, [r8, #2800]
ldrh r2, [r2, #126]
cmp r2, r3
bne .L3698
bl pm_flush
ldr r3, [r8, #1096]
ldrh r0, [r3, #130]
bl ftl_free_sblk
ldr r3, [r8, #2800]
mvn r2, #0
mov r0, r5
strh r2, [r3, #126] @ movhi
bl ftl_info_flush
.L3698:
ldr r3, [r8, #1096]
mvn r2, #0
strh r2, [r3, #130] @ movhi
b .L3643
.L3745:
.align 2
.L3744:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR3-3104
.word -178307901
.word .LC245
.word .LC247
.word .LANCHOR1+2361
.word .LC0
.word .LANCHOR3-3088
.word .LANCHOR3-3072
.word .LC246
.word .LANCHOR3-3074
.word .LANCHOR3-3136
.fnend
.size gc_recovery, .-gc_recovery
.align 2
.global gc_update_l2p_map_new
.syntax unified
.arm
.fpu softvfp
.type gc_update_l2p_map_new, %function
gc_update_l2p_map_new:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
ldr r4, .L3781
ldr r3, .L3781+4
ldr r5, [r4, #1096]
ldrh r3, [r3, #-14]
ldrb r2, [r5, #89] @ zero_extendqisi2
mul r3, r2, r3
str r3, [sp]
ldr r3, .L3781+8
ldr r2, [r3]
mov fp, r3
tst r2, #256
beq .L3747
ldrh r1, [r5, #80]
ldr r0, .L3781+12
bl printk
.L3747:
ldr r2, .L3781+16
mov r7, #0
ldrh r3, [r5, #80]
mov r6, r7
ldr r0, [sp]
ldrb r2, [r2, #-11] @ zero_extendqisi2
ldr r8, .L3781+16
ldr r1, [r4, #1092]
lsl r3, r3, #1
sub r2, r0, r2
strh r2, [r1, r3] @ movhi
.L3748:
ldr r3, [sp]
cmp r6, r3
bne .L3757
ldr r3, [fp]
tst r3, #256
beq .L3758
ldrh r2, [r5, #80]
mov r3, r7
ldr r0, [r4, #1092]
ldr r1, [r4, #1096]
lsl r2, r2, #1
ldrh r1, [r1, #80]
ldrh r2, [r0, r2]
ldr r0, .L3781+20
bl printk
.L3758:
ldrh r3, [r5, #80]
ldr r2, [r4, #1092]
lsl r3, r3, #1
ldrh r3, [r2, r3]
cmp r7, r3
beq .L3759
movw r2, #898
ldr r1, .L3781+24
ldr r0, .L3781+28
bl printk
bl dump_stack
.L3759:
ldrh r3, [r5, #80]
ldr r2, [r4, #1092]
lsl r3, r3, #1
strh r7, [r2, r3] @ movhi
ldrh r0, [r5, #80]
bl zftl_insert_data_list
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3757:
ldr r3, [r8, #-132]
lsl r9, r6, #2
ldr r10, [r3, r6, lsl #2]
cmn r10, #1
beq .L3749
ldrb r1, [r8, #-2546] @ zero_extendqisi2
mov r0, r10
lsl r1, r1, #7
bl __aeabi_uidiv
uxth r3, r0
str r3, [sp, #12]
ldr r3, [fp]
tst r3, #256
beq .L3750
mov r3, r6
mov r2, r10
ldr r1, [sp, #12]
ldr r0, .L3781+32
bl printk
.L3750:
str r6, [sp, #8]
.L3756:
ldr r3, [r8, #-132]
ldr r10, [r3, r9]
cmn r10, #1
beq .L3751
ldrb r1, [r8, #-2546] @ zero_extendqisi2
mov r0, r10
lsl r1, r1, #7
bl __aeabi_uidiv
ldr r3, [sp, #12]
uxth r0, r0
cmp r3, r0
bne .L3751
ldr r3, [r8, #-128]
mov r0, r10
ldr r3, [r3, r9]
str r3, [sp, #4]
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #20]
bne .L3752
mov r2, #0
add r1, sp, #20
mov r0, r10
bl pm_log2phys
.L3752:
ldr r3, [sp, #20]
ldr r2, [sp, #4]
cmp r2, r3
bne .L3753
ldr r3, .L3781+16
add r1, sp, #24
mov r2, #1
mov r0, r10
add r7, r7, #1
ldr r3, [r3, #-124]
ldr r3, [r3, r9]
str r3, [r1, #-8]!
bl pm_log2phys
ldr r3, .L3781+36
ldr r2, [sp, #4]
ldrh r0, [r3]
ldrb r3, [r4, #1153] @ zero_extendqisi2
rsb r3, r3, #24
sub r3, r3, r0
lsr r0, r2, r0
ldr r2, .L3781+16
ldrb r1, [r2, #-3136] @ zero_extendqisi2
mvn r2, #0
bic r0, r0, r2, lsl r3
bl __aeabi_uidiv
uxth r0, r0
.L3780:
bl ftl_vpn_decrement
ldr r3, [r8, #-132]
mvn r2, #0
str r2, [r3, r9]
.L3751:
ldr r3, [sp, #8]
add r9, r9, #4
add r3, r3, #1
str r3, [sp, #8]
ldr r2, [sp, #8]
ldr r3, [sp]
cmp r3, r2
bne .L3756
.L3749:
add r6, r6, #1
b .L3748
.L3753:
ldr r2, [fp]
tst r2, #256
beq .L3755
ldr r2, [sp, #4]
mov r1, r10
ldr r0, .L3781+40
bl printk
.L3755:
ldrh r0, [r5, #80]
b .L3780
.L3782:
.align 2
.L3781:
.word .LANCHOR0
.word .LANCHOR3-3104
.word .LANCHOR2
.word .LC248
.word .LANCHOR3
.word .LC251
.word .LANCHOR1+2373
.word .LC0
.word .LC249
.word .LANCHOR3-3138
.word .LC250
.fnend
.size gc_update_l2p_map_new, .-gc_update_l2p_map_new
.align 2
.global gc_scan_src_blk_one_page
.syntax unified
.arm
.fpu softvfp
.type gc_scan_src_blk_one_page, %function
gc_scan_src_blk_one_page:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
mov r1, #0
ldr r5, .L3810
mov lr, r1
movw r0, #65535
ldr r4, .L3810+4
ldrb r3, [r5, #2828] @ zero_extendqisi2
ldr r7, .L3810+8
add r2, r4, r3, lsl #1
ldrb ip, [r7, #-3127] @ zero_extendqisi2
ldrh r8, [r2, #36]
ldrh r2, [r4, #2]
.L3784:
cmp r8, r0
beq .L3786
cmp lr, #0
mov r0, #1
strhne r2, [r4, #2] @ movhi
cmp r1, #0
strbne r3, [r5, #2828]
mov r9, #1
bl buf_alloc
mov r6, r0
.L3789:
ldrb r1, [r5, #2830] @ zero_extendqisi2
cmp r9, r1
ble .L3799
mov r0, r6
bl zbuf_free
ldrb r3, [r5, #2828] @ zero_extendqisi2
ldrb r2, [r7, #-3127] @ zero_extendqisi2
add r3, r3, #1
uxtb r3, r3
cmp r2, r3
strb r3, [r5, #2828]
ldrheq r3, [r4, #2]
addeq r3, r3, #1
strheq r3, [r4, #2] @ movhi
moveq r3, #0
strbeq r3, [r5, #2828]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L3786:
add r3, r3, #1
uxtb r3, r3
cmp r3, ip
moveq r3, #0
addeq r2, r2, #1
add r1, r4, r3, lsl #1
uxtheq r2, r2
ldrh r8, [r1, #36]
moveq lr, #1
mov r1, #1
b .L3784
.L3799:
ldr r3, .L3810+12
cmp r1, #2
ldrh r3, [r3]
mul r2, r8, r3
ldrheq r3, [r4, #2]
addeq r3, r2, r3, lsl #1
subeq r3, r3, #1
beq .L3809
cmp r1, #3
ldrhne r3, [r4, #2]
addne r3, r3, r2
bne .L3808
ldrb r3, [r5, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L3793
ldrb r3, [r5, #1159] @ zero_extendqisi2
cmp r3, #0
ldrheq r3, [r4, #2]
addeq r3, r3, r2
orreq r3, r3, r9, lsl #24
beq .L3808
.L3793:
ldrh r3, [r4, #2]
add r3, r3, r3, lsl #1
sub r3, r3, #1
add r3, r3, r2
.L3809:
ldrb r2, [r7, #-3128] @ zero_extendqisi2
add r3, r3, r9
orr r3, r3, r2, lsl #24
.L3808:
str r3, [r6, #24]
mov r1, #1
mov r0, r6
bl sblk_read_page
ldr r3, [r6, #36]
cmp r3, #512
cmnne r3, #1
beq .L3796
ldr r3, [r6, #12]
ldr r10, [r3, #4]
mov r0, r10
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #4]
bne .L3797
ldr r3, [r5, #2780]
cmp r10, r3
bcs .L3797
mov r2, #0
add r1, sp, #4
mov r0, r10
bl pm_log2phys
.L3797:
ldr r3, [r6, #24]
ldr r2, [sp, #4]
cmp r3, r2
ldrheq r1, [r4, #20]
ldreq r2, [r7, #-3132]
streq r3, [r2, r1, lsl #2]
ldrheq r3, [r4, #20]
addeq r3, r3, #1
strheq r3, [r4, #20] @ movhi
.L3796:
ldrh r3, [r4, #22]
add r9, r9, #1
add r3, r3, #1
strh r3, [r4, #22] @ movhi
b .L3789
.L3811:
.align 2
.L3810:
.word .LANCHOR0
.word .LANCHOR0+2824
.word .LANCHOR3
.word .LANCHOR3-3074
.fnend
.size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
.align 2
.global gc_scan_src_blk
.syntax unified
.arm
.fpu softvfp
.type gc_scan_src_blk, %function
gc_scan_src_blk:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r3, #2824
ldr r4, .L3867
.pad #28
sub sp, sp, #28
ldrh r2, [r4, r3]
movw r3, #65535
cmp r2, r3
bne .L3813
movw r2, #1505
ldr r1, .L3867+4
ldr r0, .L3867+8
bl printk
bl dump_stack
.L3813:
movw r3, #2824
ldrh r1, [r4, r3]
movw r3, #65535
cmp r1, r3
moveq r0, #0
beq .L3812
ldr r3, .L3867+12
ldr r3, [r3]
tst r3, #256
beq .L3815
ldr r2, [r4, #1092]
lsl r3, r1, #1
ldr r0, .L3867+16
ldrh r2, [r2, r3]
bl printk
.L3815:
ldr r7, .L3867+20
movw r5, #2824
bl timer_get_time
ldrh r0, [r4, r5]
add r1, r7, #36
bl ftl_get_blk_list_in_sblk
uxtb r0, r0
cmp r0, #0
strb r0, [r4, #2829]
mvneq r3, #0
strheq r3, [r4, r5] @ movhi
beq .L3812
ldrh r3, [r4, r5]
ldr r2, [r4, #1084]
add r2, r2, r3, lsl #2
ldrb r2, [r2, #2] @ zero_extendqisi2
and r2, r2, #224
cmp r2, #32
beq .L3817
cmp r2, #0
cmpne r2, #224
beq .L3818
ldr r2, [r4, #1096]
ldrh r1, [r2, #16]
cmp r1, r3
beq .L3817
ldrh r1, [r2, #48]
cmp r1, r3
beq .L3817
ldrh r2, [r2, #80]
cmp r2, r3
bne .L3860
.L3817:
mvn r2, #0
movw r3, #2824
mov r0, #0
strh r2, [r4, r3] @ movhi
strh r0, [r7, #20] @ movhi
.L3812:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3818:
cmp r2, #0
bne .L3817
ldr r2, [r4, #1092]
lsl r3, r3, #1
ldrh r3, [r2, r3]
cmp r3, #0
beq .L3820
movw r2, #1530
ldr r1, .L3867+4
ldr r0, .L3867+8
bl printk
bl dump_stack
.L3820:
movw r3, #2824
ldr r2, [r4, #1092]
ldrh r3, [r4, r3]
mov r1, #0
lsl r3, r3, #1
strh r1, [r2, r3] @ movhi
b .L3817
.L3860:
add r0, r7, r0, lsl #1
movw r3, #65535
ldrh r10, [r0, #34]
cmp r10, r3
bne .L3821
movw r2, #1540
ldr r1, .L3867+4
ldr r0, .L3867+8
bl printk
bl dump_stack
.L3821:
movw r2, #2824
ldr r8, .L3867+24
ldrh r0, [r4, r2]
ldr r2, [r4, #1084]
sub r1, r8, #3072
sub fp, r8, #3088
ldrh r6, [fp, #-8]
ldrh r3, [r1, #-2]
add r2, r2, r0, lsl #2
str r1, [sp, #4]
sub r6, r6, #1
ldrb r2, [r2, #2] @ zero_extendqisi2
uxth r6, r6
mul r3, r10, r3
and r2, r2, #224
cmp r2, #160
movne r9, #1
bne .L3822
ldrb r2, [r8, #-3128] @ zero_extendqisi2
cmp r2, #2
uxth r9, r2
orr r3, r3, r2, lsl #24
subeq r2, r8, #3104
ldrheq r6, [r2, #-14]
ldrb r2, [r4, #1158] @ zero_extendqisi2
subeq r6, r6, #1
uxtheq r6, r6
cmp r2, #0
bne .L3824
ldrb r2, [r4, #1159] @ zero_extendqisi2
cmp r2, #0
beq .L3822
.L3824:
ldr r2, .L3867+28
ldrh r6, [r2, #-14]
sub r6, r6, #1
uxth r6, r6
.L3822:
orr r6, r6, r3
strb r9, [r4, #2830]
mov r3, #0
mov r0, #1
strh r3, [r7, #2] @ movhi
strb r3, [r4, #2828]
strh r3, [r7, #22] @ movhi
strh r3, [r7, #24] @ movhi
str r3, [sp]
bl buf_alloc
mov r1, #1
str r6, [r0, #24]
mov r5, r0
bl sblk_read_page
ldr r3, [sp]
strh r3, [r7, #20] @ movhi
ldr r3, [r5, #36]
cmn r3, #1
cmpne r3, #512
bne .L3825
.L3865:
mov r0, r5
bl zbuf_free
.L3863:
mvn r0, #0
b .L3812
.L3825:
ldr r1, [r5, #12]
ldr r3, .L3867+32
ldr r2, [r1]
str r3, [sp, #8]
cmp r2, r3
beq .L3826
movw r2, #1578
.L3866:
ldr r1, .L3867+4
ldr r0, .L3867+8
bl printk
bl dump_stack
b .L3865
.L3826:
ldrb r2, [r8, #-3127] @ zero_extendqisi2
ldrh r3, [fp, #-8]
smulbb r3, r3, r2
smulbb r3, r3, r9
uxth r3, r3
str r3, [sp]
ldrb r3, [r8, #-11] @ zero_extendqisi2
cmp r3, #2
cmpeq r9, #3
bne .L3827
ldr r3, .L3867+28
ldrh r0, [r8, #-14]
ldr r1, [r5, #4]
ldrh r9, [r3, #-14]
ldr r3, [r8, #-3132]
lsl r9, r9, #2
smulbb r9, r9, r2
sub r9, r9, r0
lsr r0, r0, #2
uxth r9, r9
add r0, r3, r0, lsl #2
mov r2, r9
bl ftl_memcpy
ldr r3, [r5, #12]
ldr r3, [r3, #4]
cmp r3, #0
beq .L3828
mov r1, r9
ldr r0, [r5, #4]
str r3, [sp, #12]
bl js_hash
ldr r3, [sp, #12]
cmp r3, r0
beq .L3828
mov r0, r5
bl zbuf_free
ldr r1, [r5, #12]
mov r3, r9
.L3864:
ldr r2, [r5, #24]
ldr r1, [r1, #4]
ldr r0, .L3867+36
bl printk
b .L3863
.L3828:
ldrb r3, [r4, #1158] @ zero_extendqisi2
cmp r3, #0
bne .L3829
ldrb r3, [r4, #1159] @ zero_extendqisi2
cmp r3, #0
beq .L3830
.L3829:
sub r6, r6, #1
str r6, [r5, #24]
.L3831:
mov r1, #1
mov r0, r5
bl sblk_read_page
ldr r3, [r5, #36]
cmn r3, #1
cmpne r3, #512
beq .L3865
ldr r3, [r5, #12]
ldr r2, [sp, #8]
ldr r3, [r3]
cmp r3, r2
movwne r2, #1619
ldrheq r2, [r8, #-14]
bne .L3866
.L3862:
ldr r1, [r5, #4]
mov r9, #0
ldr r0, [r8, #-3132]
mov r10, #1
bl ftl_memcpy
ldr r6, [r8, #-3132]
sub r6, r6, #4
.L3836:
ldr r3, [sp]
cmp r9, r3
blt .L3841
mov r0, r5
bl zbuf_free
movw r3, #2824
ldr r2, [r4, #1092]
ldrh r1, [r4, r3]
lsl r3, r1, #1
ldrh r2, [r2, r3]
ldrh r3, [r7, #20]
cmp r2, r3
beq .L3842
ldr r0, .L3867+40
bl printk
.L3842:
movw r3, #2824
ldrh r1, [r7, #20]
ldrh r3, [r4, r3]
ldr r2, [r4, #1092]
lsl r3, r3, #1
strh r1, [r2, r3] @ movhi
mov r3, #0
strh r3, [r7, #24] @ movhi
ldrh r0, [r7, #20]
b .L3812
.L3830:
ldr r2, [sp, #4]
ldrh r3, [fp, #-8]
ldrh r2, [r2, #-2]
sub r3, r3, #1
uxth r3, r3
mul r10, r10, r2
orr r3, r3, #33554432
orr r10, r3, r10
str r10, [r5, #24]
b .L3831
.L3827:
ldr r3, [sp]
ldr r9, [r1, #4]
ldr r0, [r5, #4]
lsl r6, r3, #2
mov r1, r6
bl js_hash
cmp r9, r0
moveq r2, r6
beq .L3862
mov r0, r5
bl zbuf_free
ldr r1, [r5, #12]
mov r3, r6
b .L3864
.L3841:
ldr r0, [r6, #4]!
cmn r0, #1
beq .L3838
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #20]
bne .L3839
mov r2, #0
add r1, sp, #20
ldr r0, [r6]
bl pm_log2phys
.L3839:
ldr r3, .L3867+44
ldr fp, [sp, #20]
ldrb r1, [r8, #-3136] @ zero_extendqisi2
ldrh r0, [r3]
ldrb r3, [r4, #1153] @ zero_extendqisi2
rsb r3, r3, #24
sub r3, r3, r0
lsl r3, r10, r3
sub r3, r3, #1
and r0, r3, fp, lsr r0
bl __aeabi_uidiv
ldrh r3, [r7]
cmp r0, r3
ldreq r3, [r8, #-3132]
ldrheq r2, [r7, #20]
streq fp, [r3, r2, lsl #2]
ldrheq r3, [r7, #20]
addeq r3, r3, #1
strheq r3, [r7, #20] @ movhi
.L3838:
bl timer_get_time
add r9, r9, #1
b .L3836
.L3868:
.align 2
.L3867:
.word .LANCHOR0
.word .LANCHOR1+2395
.word .LC0
.word .LANCHOR2
.word .LC252
.word .LANCHOR0+2824
.word .LANCHOR3
.word .LANCHOR3-3104
.word -178307901
.word .LC253
.word .LC254
.word .LANCHOR3-3138
.fnend
.size gc_scan_src_blk, .-gc_scan_src_blk
.align 2
.global gc_scan_static_data
.syntax unified
.arm
.fpu softvfp
.type gc_scan_static_data, %function
gc_scan_static_data:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r4, .L3886
ldr r3, [r4, #1096]
ldr r2, [r3, #544]
cmn r2, #1
beq .L3870
ldr r6, .L3886+4
mov r7, #0
ldr r9, .L3886+8
sub r10, r6, #3136
.L3878:
ldr r3, [r4, #1096]
mov r2, #0
add r1, sp, #4
uxth r8, r7
ldr r0, [r3, #544]
bl pm_log2phys
ldr r3, [sp, #4]
cmn r3, #1
beq .L3871
mov r0, #1
bl buf_alloc
ldr r3, [sp, #4]
mov r5, r0
mov r1, #1
str r3, [r0, #24]
bl sblk_read_page
ldr r3, [r5, #36]
cmp r3, #256
bne .L3872
ldrb r3, [r4, #1153] @ zero_extendqisi2
mov fp, #1
ldrh r2, [r10, #-2]
ldr r0, [sp, #4]
rsb r3, r3, #24
ldrb r1, [r6, #-3136] @ zero_extendqisi2
sub r3, r3, r2
lsl r3, fp, r3
sub r3, r3, #1
and r0, r3, r0, lsr r2
bl __aeabi_uidiv
mov r2, #0
mov r1, fp
uxth r0, r0
bl gc_add_sblk
.L3872:
ldr r2, [r5, #12]
ldr r3, [r4, #1096]
ldr r2, [r2, #4]
ldr r3, [r3, #544]
cmp r2, r3
beq .L3873
movw r2, #2163
mov r1, r9
ldr r0, .L3886+12
bl printk
bl dump_stack
.L3873:
mov r0, r5
bl zbuf_free
.L3871:
ldr r3, [r4, #1096]
ldr r1, [r4, #2780]
ldr r2, [r3, #544]
add r2, r2, #1
cmp r2, r1
str r2, [r3, #544]
bcc .L3874
mvn r2, #0
str r2, [r3, #544]
ldr r2, [r3, #548]
add r2, r2, #1
str r2, [r3, #548]
bl ftl_flush
bl pm_flush
bl ftl_ext_info_flush
mov r0, #0
bl ftl_info_flush
.L3869:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3874:
ldr r3, [sp, #4]
cmn r3, #1
bne .L3869
ldrh r3, [r6, #-14]
add r7, r7, #1
cmp r8, r3, lsr #2
bcc .L3878
b .L3869
.L3870:
ldr r2, [r3, #536]
ldr r1, [r3, #12]
add r2, r2, #12910592
add r2, r2, #49408
cmp r1, r2
bhi .L3880
ldr r0, [r4, #2800]
ldr r2, [r3, #540]
ldr r0, [r0, #44]
add r2, r2, #4992
add r2, r2, #8
cmp r0, r2
bls .L3869
.L3880:
ldr r2, [r4, #2800]
ldr r2, [r2, #44]
str r1, [r3, #536]
str r2, [r3, #540]
mov r2, #0
str r2, [r3, #544]
b .L3869
.L3887:
.align 2
.L3886:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR1+2411
.word .LC0
.fnend
.size gc_scan_static_data, .-gc_scan_static_data
.align 2
.global gc_block_vpn_scan
.syntax unified
.arm
.fpu softvfp
.type gc_block_vpn_scan, %function
gc_block_vpn_scan:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r5, #1080
ldr r4, .L3922
.pad #44
sub sp, sp, #44
ldr r2, [r4, #1096]
ldrh r3, [r4, r5]
ldr r2, [r2, #608]
cmp r2, r3
bcs .L3888
bl timer_get_time
ldr r6, [r4, #1096]
ldr r3, [r6, #604]
add r3, r3, #29952
add r3, r3, #48
cmp r0, r3
bls .L3888
bl timer_get_time
ldr r3, [r4, #1096]
str r0, [r6, #604]
ldrh r1, [r4, r5]
ldr r2, [r3, #600]
cmp r2, r1
bcs .L3890
ldr r1, [r4, #2800]
ldrh r1, [r1, #134]
cmp r2, r1
bcs .L3891
.L3890:
ldr r2, [r4, #2800]
ldrh r2, [r2, #134]
str r2, [r3, #600]
.L3891:
ldr r5, [r3, #600]
movw r3, #65535
uxth r7, r5
cmp r7, r3
bne .L3892
movw r2, #2504
ldr r1, .L3922+4
ldr r0, .L3922+8
bl printk
bl dump_stack
.L3892:
ldr r3, [r4, #1096]
add r1, sp, #24
mov r0, r7
ldr r2, [r3, #600]
add r2, r2, #1
str r2, [r3, #600]
ldr r2, [r3, #608]
add r2, r2, #1
str r2, [r3, #608]
bl ftl_get_blk_list_in_sblk
uxth r3, r0
cmp r3, #0
beq .L3888
ldr r10, [r4, #1084]
uxth r5, r5
add r10, r10, r5, lsl #2
ldrb r3, [r10, #2] @ zero_extendqisi2
and r2, r3, #224
and r3, r3, #192
cmp r3, #0
cmpne r2, #224
beq .L3893
ldr r3, [r4, #1096]
ldrh r1, [r3, #16]
cmp r1, r7
beq .L3893
ldrh r1, [r3, #48]
cmp r1, r7
beq .L3893
ldrh r3, [r3, #80]
cmp r3, r7
bne .L3894
.L3893:
cmp r2, #0
bne .L3888
ldr r3, [r4, #1092]
lsl r5, r5, #1
ldrh r3, [r3, r5]
cmp r3, #0
beq .L3895
movw r2, #2521
ldr r1, .L3922+4
ldr r0, .L3922+8
bl printk
bl dump_stack
.L3895:
ldr r3, [r4, #1092]
mov r2, #0
strh r2, [r3, r5] @ movhi
.L3888:
add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3894:
uxth r0, r0
add r3, sp, #40
add r0, r3, r0, lsl #1
movw r3, #65535
ldrh r8, [r0, #-18]
cmp r8, r3
bne .L3897
movw r2, #2529
ldr r1, .L3922+4
ldr r0, .L3922+8
bl printk
bl dump_stack
.L3897:
ldr r6, .L3922+12
sub fp, r6, #3088
ldrh r2, [fp, #-8]
sub r2, r2, #1
uxth r3, r2
sub r2, r6, #3072
ldrh r1, [r2, #-2]
ldrb r2, [r10, #2] @ zero_extendqisi2
and r2, r2, #224
mul r1, r8, r1
cmp r2, #160
sub r2, r6, #3104
movne r8, #1
bne .L3898
ldrb r8, [r6, #-3128] @ zero_extendqisi2
cmp r8, #2
ldrheq r3, [r2, #-14]
orr r1, r1, r8, lsl #24
uxthne r8, r8
subeq r3, r3, #1
uxtheq r3, r3
.L3898:
orr r3, r3, r1
str r2, [sp, #12]
mov r0, #1
str r3, [sp, #8]
bl buf_alloc
ldr r3, [sp, #8]
mov r1, #1
mov r9, r0
str r3, [r0, #24]
bl sblk_read_page
ldr r2, [sp, #12]
mov r1, #255
ldr r0, [r6, #-3132]
ldrh r3, [r2, #-14]
ldrb r2, [r6, #-3127] @ zero_extendqisi2
mul r2, r2, r3
lsl r2, r2, #2
bl ftl_memset
ldr r2, [r9, #36]
cmn r2, #1
cmpne r2, #512
moveq r2, #1
movne r2, #0
moveq r2, #0
beq .L3921
ldr r3, [r9, #12]
ldr r1, [r3]
ldr r3, .L3922+16
cmp r1, r3
beq .L3901
.L3921:
mov r1, #1
mov r0, r7
bl gc_add_sblk
mov r0, r9
bl zbuf_free
b .L3888
.L3901:
ldrh r3, [fp, #-8]
mov fp, r2
ldrb r1, [r6, #-3127] @ zero_extendqisi2
smulbb r1, r1, r3
smulbb r8, r1, r8
uxth r3, r8
mov r8, r2
str r3, [sp, #12]
ldr r3, [r9, #4]
str r3, [sp, #8]
.L3902:
ldr r3, [sp, #12]
cmp fp, r3
blt .L3905
mov r0, r9
lsl r6, r5, #1
bl zbuf_free
ldr r3, .L3922+20
ldr r3, [r3]
tst r3, #256
beq .L3906
ldr r3, [r4, #1092]
mov r1, r5
ldr r0, .L3922+24
ldrh r2, [r3, r6]
ldrb r3, [r10, #2] @ zero_extendqisi2
lsr r3, r3, #5
str r3, [sp]
mov r3, r8
bl printk
.L3906:
ldr r3, [r4, #1092]
cmp r8, #31
strh r8, [r3, r6] @ movhi
bhi .L3888
mov r2, #0
mov r1, #1
mov r0, r7
bl gc_add_sblk
b .L3888
.L3905:
ldr r3, [sp, #8]
ldr r0, [r3, fp, lsl #2]
cmn r0, #1
beq .L3903
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #20]
bne .L3904
ldr r3, [sp, #8]
mov r2, #0
add r1, sp, #20
ldr r0, [r3, fp, lsl #2]
bl pm_log2phys
.L3904:
ldr r2, .L3922+28
mov r3, #1
ldr r0, [sp, #20]
ldrb r1, [r6, #-3136] @ zero_extendqisi2
ldrh ip, [r2]
ldrb r2, [r4, #1153] @ zero_extendqisi2
rsb r2, r2, #24
sub r2, r2, ip
lsl r2, r3, r2
sub r2, r2, #1
and r0, r2, r0, lsr ip
bl __aeabi_uidiv
cmp r5, r0
addeq r8, r8, #1
uxtheq r8, r8
.L3903:
add fp, fp, #1
b .L3902
.L3923:
.align 2
.L3922:
.word .LANCHOR0
.word .LANCHOR1+2431
.word .LC0
.word .LANCHOR3
.word -178307901
.word .LANCHOR2
.word .LC255
.word .LANCHOR3-3138
.fnend
.size gc_block_vpn_scan, .-gc_block_vpn_scan
.align 2
.global ftl_sblk_dump
.syntax unified
.arm
.fpu softvfp
.type ftl_sblk_dump, %function
ftl_sblk_dump:
.fnstart
@ args = 0, pretend = 0, frame = 80
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
lsl r3, r0, #2
ldr r4, .L3961
.pad #124
sub sp, sp, #124
lsl r2, r0, #2
mov r7, r0
str r3, [sp, #68]
ldr r3, [r4, #1084]
str r1, [sp, #60]
ldr r1, [r3, r0, lsl #2]
add r2, r3, r2
ldrb r2, [r2, #2] @ zero_extendqisi2
ubfx r1, r1, #11, #8
str r1, [sp, #4]
lsl r1, r0, #2
ldrh r3, [r3, r1]
mov r1, r0
ldr r0, .L3961+4
ubfx r3, r3, #0, #11
str r3, [sp]
ubfx r3, r2, #3, #2
lsr r2, r2, #5
bl printk
movw r3, #65535
cmp r7, r3
beq .L3947
movw r3, #1080
ldrh r3, [r4, r3]
cmp r3, r7
bls .L3947
ldr r3, [r4, #1084]
lsl r2, r7, #2
add r1, sp, #104
strh r7, [sp, #88] @ movhi
mov r0, r7
mov r5, #0
add r3, r3, r2
mov fp, r5
ldrb r3, [r3, #2] @ zero_extendqisi2
and r3, r3, #224
cmp r3, #160
ldreq r3, .L3961+8
movne r9, #1
ldrbeq r9, [r3, #-3128] @ zero_extendqisi2
bl ftl_get_blk_list_in_sblk
ldr r3, .L3961+12
uxtb r0, r0
lsl r2, r7, #2
strh r5, [sp, #90] @ movhi
strb r0, [sp, #97]
mov r1, r7
ldrh r3, [r3, #-8]
strb r5, [sp, #93]
strh r5, [sp, #98] @ movhi
smulbb r3, r3, r0
strh r3, [sp, #94] @ movhi
ldr r3, [r4, #1084]
add r3, r3, r2
ldrb r2, [r3, #2] @ zero_extendqisi2
mov r3, r9
str r0, [sp]
ldr r0, .L3961+16
lsr r2, r2, #5
bl printk
mov r0, #1
bl buf_alloc
mov r6, r0
str r5, [sp, #44]
str r5, [sp, #52]
.L3927:
ldr r3, .L3961+20
ldrh r2, [r3]
uxth r3, r5
cmp r2, r3
bls .L3944
str r3, [sp, #72]
lsl r3, r3, #1
sub r2, r3, #1
str r2, [sp, #76]
uxth r2, r5
add r3, r3, r2
sub r3, r3, #1
str r3, [sp, #64]
mov r3, #0
b .L3960
.L3941:
ldrh r3, [sp, #48]
add r2, sp, #120
add r3, r2, r3, lsl #1
ldrh r3, [r3, #-16]
str r3, [sp, #56]
movw r3, #65535
ldr r2, [sp, #56]
cmp r2, r3
beq .L3928
ldr r3, .L3961+24
cmp r9, #3
ldrh r4, [r3, #-2]
mul r3, r2, r4
bne .L3929
ldr r2, .L3961
ldrb r1, [r2, #1158] @ zero_extendqisi2
cmp r1, #0
ldrne r2, [sp, #64]
bne .L3958
ldrb r2, [r2, #1159] @ zero_extendqisi2
lsl r4, r8, #24
cmp r2, #0
ldrne r2, [sp, #64]
uxtaheq r3, r3, r5
addne r3, r3, r2
addne r3, r3, r8
orr r4, r4, r3
.L3931:
mov r1, #1
str r4, [r6, #24]
mov r0, r6
bl sblk_read_page
ldr r2, [r6, #12]
ldr r3, [r6, #4]
ldr r10, [r6, #36]
ldr r1, [r2, #12]
ldr r0, .L3961+28
str r1, [sp, #32]
ldr r1, [r2, #8]
str r1, [sp, #28]
ldr r1, [r2, #4]
str r1, [sp, #24]
ldr r2, [r2]
ldr r1, [sp, #56]
str r2, [sp, #20]
ldr r2, [r3, #12]
str r2, [sp, #16]
ldr r2, [r3, #8]
str r2, [sp, #12]
ldr r2, [r3, #4]
str r2, [sp, #8]
ldr r3, [r3]
ldr r2, [sp, #72]
str r10, [sp]
str r3, [sp, #4]
mov r3, r4
bl printk
ldr r3, [sp, #52]
cmn r10, #1
cmpne r10, #512
moveq r3, #1
ldr r0, .L3961+32
str r3, [sp, #52]
ldr r3, .L3961+36
ldr r3, [r3, #4]
blx r3
ldr r3, .L3961
ldr r2, [sp, #68]
ldr r3, [r3, #1084]
add r3, r3, r2
ldrb r2, [r3, #2] @ zero_extendqisi2
and r2, r2, #224
cmp r2, #32
cmpne r2, #224
moveq r10, #1
movne r10, #0
beq .L3928
ldr r3, [r6, #12]
ldr r0, [r3, #4]
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #84]
bne .L3935
ldr r3, [r6, #12]
mov r2, r10
add r1, sp, #84
ldr r0, [r3, #4]
bl pm_log2phys
.L3935:
ldr r3, [sp, #84]
cmp r4, r3
bne .L3936
ldr r3, [sp, #44]
mov r1, r4
ldr r2, [r6, #12]
ldr r0, .L3961+40
add r3, r3, #1
ldr r2, [r2, #4]
str r3, [sp, #44]
bl printk
.L3936:
ldr r3, [sp, #60]
cmp r3, #0
beq .L3938
ldr r2, [r3, fp, lsl #2]
lsl r4, fp, #2
ldr r3, [r6, #12]
ldr r3, [r3, #4]
cmp r3, r2
beq .L3939
ldr r3, .L3961+44
ldr r3, [r3]
tst r3, #4096
beq .L3939
mov r1, fp
ldr r0, .L3961+48
bl printk
.L3939:
ldr r3, [sp, #60]
ldr r2, [r6, #12]
ldr r3, [r3, r4]
ldr r2, [r2, #4]
cmp r2, r3
cmnne r3, #1
beq .L3938
movw r2, #1575
ldr r1, .L3961+52
ldr r0, .L3961+56
bl printk
bl dump_stack
.L3938:
add fp, fp, #1
.L3928:
add r8, r8, #1
uxth r8, r8
.L3943:
cmp r9, r8
bcs .L3941
ldr r3, [sp, #48]
add r3, r3, #1
.L3960:
str r3, [sp, #48]
ldrb r2, [sp, #97] @ zero_extendqisi2
ldrh r3, [sp, #48]
cmp r2, r3
bls .L3942
mov r8, #1
b .L3943
.L3929:
cmp r9, #2
uxtahne r4, r3, r5
bne .L3931
ldr r2, [sp, #76]
.L3958:
add r4, r3, r2
ldr r2, .L3961+8
add r3, r4, r8
ldrb r4, [r2, #-3128] @ zero_extendqisi2
orr r4, r3, r4, lsl #24
b .L3931
.L3942:
add r5, r5, #1
b .L3927
.L3944:
mov r0, r6
bl zbuf_free
ldr r3, .L3961
lsl r2, r7, #1
ldr r0, .L3961+60
ldr r1, [r3, #1092]
ldr r3, [sp, #44]
ldrh r2, [r1, r2]
mov r1, r7
bl printk
ldr r0, [sp, #52]
.L3924:
add sp, sp, #124
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3947:
mov r0, #0
b .L3924
.L3962:
.align 2
.L3961:
.word .LANCHOR0
.word .LC256
.word .LANCHOR3
.word .LANCHOR3-3088
.word .LC257
.word .LANCHOR3-3096
.word .LANCHOR3-3072
.word .LC195
.word 644245000
.word arm_delay_ops
.word .LC258
.word .LANCHOR2
.word .LC259
.word .LANCHOR1+2449
.word .LC0
.word .LC260
.fnend
.size ftl_sblk_dump, .-ftl_sblk_dump
.align 2
.global zftl_read
.syntax unified
.arm
.fpu softvfp
.type zftl_read, %function
zftl_read:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r7, r3
ldr r3, .L4026
.pad #76
sub sp, sp, #76
mov r4, r0
mov r6, r1
str r2, [sp, #24]
ldr r3, [r3]
tst r3, #4096
beq .L3964
mov r3, r2
mov r2, r1
mov r1, r0
ldr r0, .L4026+4
bl printk
.L3964:
cmp r4, #0
bne .L3965
ldr r3, .L4026+8
mov r4, #24576
ldr r3, [r3, #1032]
.L3966:
ldr r2, [sp, #24]
cmp r3, r2
cmpcs r3, r6
movls r5, #1
movhi r5, #0
bls .L3995
add r2, r6, r2
cmp r3, r2
bcc .L3995
add r3, r4, r6
ldr r4, .L4026+8
str r3, [sp, #28]
ldr r1, [sp, #24]
ldr r2, [r4, #2800]
ldr r0, [sp, #28]
ldr r3, [r2, #24]
add r3, r3, r1
str r3, [r2, #24]
ldr r3, .L4026+12
ldrb r6, [r3, #-2546] @ zero_extendqisi2
mov r1, r6
bl __aeabi_uidiv
ldr r3, [sp, #24]
mov r1, r6
ldr r2, [sp, #28]
str r0, [sp, #36]
add r3, r3, r2
sub r0, r3, #1
str r3, [sp, #44]
bl __aeabi_uidiv
ldr r3, [sp, #36]
str r5, [sp, #40]
ldr r6, [sp, #36]
ldr r5, .L4026+12
rsb r3, r3, #1
add r3, r3, r0
str r0, [sp, #48]
str r3, [sp, #32]
.L3968:
ldr r3, [sp, #32]
cmp r3, #0
bne .L3992
bl timer_get_time
str r0, [r5, #-8]
ldr r0, [sp, #40]
.L3963:
add sp, sp, #76
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L3965:
cmp r4, #3
bhi .L3995
lsl r4, r4, #13
mov r3, #8192
b .L3966
.L3992:
ldr r3, [sp, #36]
ldr r2, [sp, #48]
ldrb r1, [r5, #-2546] @ zero_extendqisi2
cmp r6, r2
cmpne r6, r3
moveq r10, #1
movne r10, #0
uxth r8, r1
bne .L3969
cmp r6, r3
bne .L3970
ldr r0, [sp, #28]
bl __aeabi_uidivmod
uxth r10, r1
ldr r3, [sp, #24]
sub r8, r8, r10
uxth r8, r8
cmp r3, r8
ldrhcc r8, [sp, #24]
.L3969:
ldr r2, .L4026+16
mov r3, #0
mov r9, r2
.L3973:
ldr r1, [r2, #20]
cmp r6, r1
bne .L3971
ldrb r1, [r2, #2] @ zero_extendqisi2
tst r1, #8
beq .L3971
mov r2, #48
lsl r8, r8, #9
mov r0, r7
mla r3, r2, r3, r4
add r7, r7, r8
mov r2, r8
ldr r1, [r3, #1236]
add r1, r1, r10, lsl #9
bl ftl_memcpy
.L3972:
ldr r3, [sp, #32]
add r6, r6, #1
sub r3, r3, #1
str r3, [sp, #32]
.L3979:
ldrb r3, [r4, #2769] @ zero_extendqisi2
ldr r2, [sp, #32]
cmp r2, #0
cmpne r3, #2
bhi .L3968
ldrb r1, [r5, #-2535] @ zero_extendqisi2
cmp r1, #0
beq .L3968
ldrb r0, [r5, #-2536] @ zero_extendqisi2
add r0, r0, r0, lsl #1
add r0, r9, r0, lsl #4
bl sblk_read_page
.L3981:
ldrb r3, [r5, #-2535] @ zero_extendqisi2
cmp r3, #0
bne .L3991
mvn r2, #0
strb r3, [r5, #-2535]
strb r2, [r5, #-2536]
b .L3968
.L3970:
ldr r3, [sp, #28]
mov r10, #0
ldr r2, [sp, #24]
add r8, r3, r2
mls r1, r6, r1, r8
uxtb r8, r1
b .L3969
.L3971:
add r3, r3, #1
add r2, r2, #48
cmp r3, #32
bne .L3973
mov r0, r6
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #68]
bne .L3974
mov r2, #0
add r1, sp, #68
mov r0, r6
bl pm_log2phys
.L3974:
ldr r3, [sp, #68]
cmn r3, #1
moveq r8, #0
beq .L3976
mov r0, #0
bl buf_alloc
subs r3, r0, #0
beq .L3979
ldr r1, [r4, #2800]
ldr r2, [r1, #40]
add r2, r2, #1
str r2, [r1, #40]
ldr r2, [sp, #68]
str r7, [r3, #8]
add r7, r7, r8, lsl #9
str r6, [r3, #20]
str r2, [r3, #24]
str r2, [r3, #28]
strb r8, [r3, #40]
strb r10, [r3, #41]
bl zftl_add_read_buf
b .L3972
.L3978:
mla r3, r3, r6, r8
ldr r2, [sp, #28]
ldr r1, [sp, #44]
cmp r2, r3
movls r2, #1
movhi r2, #0
cmp r1, r3
movls r2, #0
cmp r2, #0
beq .L3977
mov r0, r7
add r7, r7, #512
mov r2, #512
mov r1, #0
bl ftl_memset
.L3977:
add r8, r8, #1
.L3976:
ldrb r3, [r5, #-2546] @ zero_extendqisi2
cmp r8, r3
bcc .L3978
b .L3972
.L3991:
ldrb r3, [r5, #-2536] @ zero_extendqisi2
cmp r3, #255
bne .L3982
movw r2, #1284
ldr r1, .L4026+20
ldr r0, .L4026+24
bl printk
bl dump_stack
.L3982:
ldr r3, .L4026+12
ldr r1, .L4026+12
ldrb r9, [r3, #-2536] @ zero_extendqisi2
ldr r3, .L4026+16
add r2, r9, r9, lsl #1
add r3, r3, r2, lsl #4
mov r2, #48
mla r2, r2, r9, r4
str r3, [sp, #52]
ldr r10, [r2, #1268]
ldrb r3, [r2, #1232] @ zero_extendqisi2
cmn r10, #1
strb r3, [r1, #-2536]
bne .L3983
ldr r2, [r4, #1096]
str r10, [sp, #40]
ldr r3, [r2, #552]
add r3, r3, #1
str r3, [r2, #552]
.L3984:
mov r1, #48
cmn r10, #1
mla r1, r1, r9, r4
movne r2, #0
moveq r2, #1
ldr r3, [r1, #1244]
ldr r0, [r1, #1252]
ldr ip, [r3, #4]
cmp ip, r0
orrne r2, r2, #1
cmp r2, #0
beq .L3985
ldrb r0, [r4, #1153] @ zero_extendqisi2
mvn ip, #0
ldr lr, [r1, #1256]
ldrb fp, [r1, #1272] @ zero_extendqisi2
ldrb r8, [r5, #-2546] @ zero_extendqisi2
mvn ip, ip, lsl r0
ldr r10, [r1, #1236]
ldr r2, [r1, #1240]
rsb r1, r0, #24
and r0, ip, lr, lsr r1
cmp fp, r8
movcc r2, r10
str r8, [sp]
bic r1, lr, ip, lsl r1
uxtb r0, r0
bl flash_read_page_en
mov r10, r0
.L3985:
mov r8, #48
cmn r10, #1
mla r8, r8, r9, r4
movne fp, #0
moveq fp, #1
ldr r3, [r8, #1244]
ldr r2, [r8, #1252]
ldr r3, [r3, #4]
cmp r3, r2
moveq r3, fp
orrne r3, fp, #1
cmp r3, #0
beq .L3987
ldr r2, [r4, #1096]
ldr r0, .L4026+28
ldr r3, [r2, #552]
add r3, r3, #1
str r3, [r2, #552]
ldr r3, [r8, #1244]
ldrb r1, [r8, #1233] @ zero_extendqisi2
ldr r2, [r3, #12]
str r2, [sp, #16]
ldr r2, [r3, #8]
str r2, [sp, #12]
ldr r2, [r3, #4]
str r2, [sp, #8]
mov r2, r10
ldr r3, [r3]
str r3, [sp, #4]
ldr r3, [r8, #1256]
str r3, [sp]
ldr r3, [r8, #1252]
bl printk
ldr r3, .L4026+32
ldr r2, [r8, #1256]
ldrb r1, [r5, #-3136] @ zero_extendqisi2
ldrh r0, [r3, #-2]
ldrb r3, [r4, #1153] @ zero_extendqisi2
lsr r2, r2, r0
rsb r3, r3, #24
sub r3, r3, r0
mvn r0, #0
bic r0, r2, r0, lsl r3
bl __aeabi_uidiv
mov r1, #0
uxth r0, r0
bl ftl_sblk_dump
.L3987:
mov r3, #48
mla r3, r3, r9, r4
ldr r2, [r3, #1244]
ldr r3, [r3, #1252]
ldr r2, [r2, #4]
cmp r2, r3
orrne fp, fp, #1
cmp fp, #0
beq .L3988
movw r2, #1320
ldr r1, .L4026+20
ldr r0, .L4026+24
bl printk
bl dump_stack
.L3988:
mov r3, #48
mla r9, r3, r9, r4
ldrb r3, [r5, #-2546] @ zero_extendqisi2
ldrb r2, [r9, #1272] @ zero_extendqisi2
cmp r3, r2
ldrbls r3, [r9, #1234] @ zero_extendqisi2
bicls r3, r3, #8
strbls r3, [r9, #1234]
bls .L3990
ldrb r1, [r9, #1273] @ zero_extendqisi2
lsl r2, r2, #9
ldr r3, [r9, #1236]
ldr r0, [r9, #1240]
add r1, r3, r1, lsl #9
bl ftl_memcpy
.L3990:
ldr r1, [sp, #52]
ldr r0, .L4026+36
bl buf_remove_buf
ldr r0, [sp, #52]
bl zbuf_free
ldrb r3, [r5, #-2535] @ zero_extendqisi2
sub r3, r3, #1
strb r3, [r5, #-2535]
b .L3981
.L3983:
cmp r10, #256
bne .L3984
ldr r1, .L4026+40
mov fp, #1
ldrb r0, [r4, #1153] @ zero_extendqisi2
ldr r3, [r2, #1256]
ldrh ip, [r1]
rsb r0, r0, #24
str r2, [sp, #60]
ldr r2, .L4026+12
sub r0, r0, ip
str r3, [sp, #56]
lsl r0, fp, r0
ldrb r1, [r2, #-3136] @ zero_extendqisi2
sub r0, r0, #1
and r0, r0, r3, lsr ip
bl __aeabi_uidiv
ldr r2, [sp, #60]
mov r8, r0
uxth r1, r0
ldr r3, [sp, #56]
ldr r0, .L4026+44
ldr r2, [r2, #1252]
bl printk
mov r2, #0
mov r1, fp
uxth r0, r8
bl gc_add_sblk
b .L3984
.L3995:
mvn r0, #0
b .L3963
.L4027:
.align 2
.L4026:
.word .LANCHOR2
.word .LC261
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+1232
.word .LANCHOR1+2463
.word .LC0
.word .LC263
.word .LANCHOR3-3136
.word .LANCHOR0+2771
.word .LANCHOR3-3138
.word .LC262
.fnend
.size zftl_read, .-zftl_read
.align 2
.global zftl_vendor_read
.syntax unified
.arm
.fpu softvfp
.type zftl_vendor_read, %function
zftl_vendor_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, r2
mov r2, r1
add r1, r0, #512
mov r0, #2
b zftl_read
.fnend
.size zftl_vendor_read, .-zftl_vendor_read
.align 2
.global zftl_sys_read
.syntax unified
.arm
.fpu softvfp
.type zftl_sys_read, %function
zftl_sys_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, r2
mov r2, r1
mov r1, r0
mov r0, #2
b zftl_read
.fnend
.size zftl_sys_read, .-zftl_sys_read
.align 2
.syntax unified
.arm
.fpu softvfp
.type zftl_debug_proc_write, %function
zftl_debug_proc_write:
.fnstart
@ args = 0, pretend = 0, frame = 96
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
cmp r2, #79
.pad #132
sub sp, sp, #132
mvnhi r0, #21
add r6, sp, #48
str r6, [sp, #44]
bhi .L4030
mov r0, r6
mov r4, r2
bl rk_copy_from_user
cmp r0, #0
mvnne r0, #13
bne .L4030
add r3, sp, #128
mov r1, r6
add r3, r3, r4
strb r0, [r3, #-80]
ldr r0, .L4056
bl printk
mov r3, #16
mov r2, #1
mov r1, r6
ldr r0, .L4056+4
bl rknand_print_hex
bl rknand_device_lock
mov r2, #7
ldr r1, .L4056+8
mov r0, r6
bl memcmp
subs r7, r0, #0
bne .L4032
ldr r5, .L4056+12
movw r3, #698
mov r2, #4
ldr r0, .L4056+16
ldr r6, .L4056+20
movw r8, #65535
ldr r1, [r5, #2800]
ldrh r3, [r1, r3]
add r1, r1, #704
bl rknand_print_hex
ldr r1, [r5, #2800]
mov r2, #2
ldrh r3, [r6, #-176]
ldr r0, .L4056+24
add r1, r1, #416
bl rknand_print_hex
.L4033:
ldrh r3, [r6, #-176]
cmp r7, r3
blt .L4035
.L4036:
bl rknand_device_unlock
mov r0, r4
.L4030:
add sp, sp, #132
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4035:
mov r0, #300
bl msleep
ldr r2, [r5, #2800]
add r3, r7, #208
lsl r3, r3, #1
ldrh r0, [r2, r3]
cmp r0, r8
beq .L4034
mov r1, #0
bl ftl_sblk_dump
.L4034:
add r7, r7, #1
b .L4033
.L4032:
mov r2, #7
ldr r1, .L4056+28
mov r0, r6
bl memcmp
subs r5, r0, #0
bne .L4037
ldr r8, .L4056+12
movw r3, #698
mov r2, #4
ldr r0, .L4056+16
ldr r7, .L4056+20
ldr r1, [r8, #2800]
ldr r10, .L4056+32
ldr fp, .L4056+36
ldrh r3, [r1, r3]
add r1, r1, #704
bl rknand_print_hex
ldr r1, [r8, #2800]
mov r2, #2
ldrh r3, [r7, #-176]
ldr r0, .L4056+24
add r1, r1, #416
bl rknand_print_hex
mov r0, #50
bl msleep
ldr r0, .L4056+40
add r6, sp, #128
add r1, sp, #55
str r1, [r6, #-84]!
bl printk
mov r1, r6
ldr r0, [sp, #44]
bl rk_simple_strtoull.constprop.33
str r8, [sp, #36]
uxth r3, r0
ldr r8, .L4056+44
mov r6, r0
str r0, [sp, #40]
str r3, [sp, #32]
.L4039:
add r9, r8, r5
ldrh r1, [r8, r5]
ldrh r2, [r9, #2]
mov r0, r10
bl printk
ldrh r3, [r5, r8]
ldr r2, [sp, #32]
cmp r3, r2
bne .L4038
ldrb r3, [r7, #-2546] @ zero_extendqisi2
mov r0, fp
mov r2, #4
ldr r1, [r9, #4]
lsl r3, r3, #7
bl rknand_print_hex
mov r0, #50
bl msleep
.L4038:
add r5, r5, #8
cmp r5, #256
bne .L4039
mov r0, #300
uxth r6, r6
bl msleep
mov r0, #1
add r6, r6, #176
bl buf_alloc
ldr r3, [sp, #36]
mov r5, r0
mov r1, #1
ldr r3, [r3, #2800]
ldr r3, [r3, r6, lsl #2]
str r3, [r0, #24]
str r3, [sp, #40]
bl sblk_read_page
ldr r2, [r5, #12]
ldr r3, [r5, #4]
ldr r0, .L4056+48
ldr r1, [r2, #12]
str r1, [sp, #24]
ldr r1, [r2, #8]
str r1, [sp, #20]
ldr r1, [r2, #4]
str r1, [sp, #16]
ldr r2, [r2]
ldr r1, [sp, #40]
str r2, [sp, #12]
ldr r2, [r3, #12]
str r2, [sp, #8]
ldr r2, [r3, #8]
str r2, [sp, #4]
ldr r2, [r3, #4]
str r2, [sp]
ldr r3, [r3]
ldr r2, [r5, #36]
bl printk
ldrb r3, [r7, #-2546] @ zero_extendqisi2
mov r2, #4
ldr r1, [r5, #4]
ldr r0, .L4056+52
lsl r3, r3, #7
.L4055:
bl rknand_print_hex
mov r0, r5
bl zbuf_free
b .L4036
.L4037:
mov r2, #7
ldr r1, .L4056+56
mov r0, r6
bl memcmp
cmp r0, #0
bne .L4040
bl dump_ftl_info
b .L4036
.L4040:
mov r2, #9
ldr r1, .L4056+60
mov r0, r6
bl memcmp
cmp r0, #0
bne .L4041
add r1, sp, #128
add r0, sp, #57
str r0, [r1, #-84]!
bl rk_simple_strtoull.constprop.33
ldr r3, .L4056+64
str r0, [sp, #40]
strh r0, [r3, #-4] @ movhi
bl dump_all_list_info
b .L4036
.L4041:
mov r2, #8
ldr r1, .L4056+68
mov r0, r6
bl memcmp
cmp r0, #0
beq .L4036
mov r2, #8
ldr r1, .L4056+72
mov r0, r6
bl memcmp
cmp r0, #0
bne .L4043
add r5, sp, #128
add r1, sp, #56
ldr r0, .L4056+40
str r1, [r5, #-84]!
bl printk
mov r1, r5
ldr r0, [sp, #44]
bl rk_simple_strtoull.constprop.33
str r0, [sp, #40]
mov r0, #1
bl buf_alloc
ldr r3, [sp, #40]
mov r5, r0
mov r1, #1
ldr r6, .L4056+20
str r3, [r0, #24]
bl sblk_read_page
ldr r2, [r5, #12]
ldr r3, [r5, #4]
ldr r0, .L4056+48
ldr r1, [r2, #12]
str r1, [sp, #24]
ldr r1, [r2, #8]
str r1, [sp, #20]
ldr r1, [r2, #4]
str r1, [sp, #16]
ldr r2, [r2]
ldr r1, [sp, #40]
str r2, [sp, #12]
ldr r2, [r3, #12]
str r2, [sp, #8]
ldr r2, [r3, #8]
str r2, [sp, #4]
ldr r2, [r3, #4]
str r2, [sp]
ldr r3, [r3]
ldr r2, [r5, #36]
bl printk
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r2, #4
ldr r1, [r5, #4]
ldr r0, .L4056+76
lsl r3, r3, #7
bl rknand_print_hex
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r2, #4
ldr r1, [r5, #12]
ldr r0, .L4056+80
lsl r3, r3, #1
b .L4055
.L4043:
mov r2, #8
ldr r1, .L4056+84
mov r0, r6
bl memcmp
subs r7, r0, #0
bne .L4044
add r5, sp, #128
add r1, sp, #56
ldr r0, .L4056+40
str r1, [r5, #-84]!
bl printk
mov r1, r5
ldr r0, [sp, #44]
bl rk_simple_strtoull.constprop.33
mov r1, r7
str r0, [sp, #40]
uxth r0, r0
bl ftl_sblk_dump
b .L4036
.L4044:
mov r2, #10
ldr r1, .L4056+88
mov r0, r6
bl memcmp
cmp r0, #0
bne .L4045
add r1, sp, #58
add r5, sp, #128
ldr r0, .L4056+40
str r1, [r5, #-84]!
bl printk
mov r1, r5
ldr r0, [sp, #44]
bl rk_simple_strtoull.constprop.33
ldr r3, .L4056+92
str r0, [sp, #40]
str r0, [r3]
b .L4036
.L4045:
mov r0, r6
mov r2, #8
ldr r1, .L4056+96
bl memcmp
subs r6, r0, #0
bne .L4046
add r5, sp, #128
add r1, sp, #56
ldr r0, .L4056+40
str r1, [r5, #-84]!
bl printk
mov r1, r5
ldr r0, [sp, #44]
bl rk_simple_strtoull.constprop.33
mov r5, r0
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #40]
bne .L4047
mov r2, r6
add r1, sp, #40
mov r0, r5
bl pm_log2phys
.L4047:
ldr r2, [sp, #40]
mov r1, r5
ldr r0, .L4056+100
bl printk
b .L4036
.L4046:
ldr r0, .L4056+104
bl printk
ldr r0, .L4056+108
bl printk
ldr r0, .L4056+112
bl printk
ldr r0, .L4056+116
bl printk
ldr r0, .L4056+120
bl printk
ldr r0, .L4056+124
bl printk
ldr r0, .L4056+128
bl printk
ldr r0, .L4056+132
bl printk
ldr r0, .L4056+136
bl printk
b .L4036
.L4057:
.align 2
.L4056:
.word .LC264
.word .LC265
.word .LC266
.word .LANCHOR0
.word .LC267
.word .LANCHOR3
.word .LC268
.word .LC269
.word .LC271
.word .LC272
.word .LC270
.word .LANCHOR3-2532
.word .LC245
.word .LC273
.word .LC274
.word .LC275
.word .LANCHOR3-3072
.word .LC276
.word .LC277
.word .LC218
.word .LC240
.word .LC278
.word .LC279
.word .LANCHOR2
.word .LC280
.word .LC281
.word .LC282
.word .LC283
.word .LC284
.word .LC285
.word .LC286
.word .LC287
.word .LC288
.word .LC289
.word .LC290
.fnend
.size zftl_debug_proc_write, .-zftl_debug_proc_write
.global __aeabi_idivmod
.align 2
.global ftl_update_l2p_map
.syntax unified
.arm
.fpu softvfp
.type ftl_update_l2p_map, %function
ftl_update_l2p_map:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r7, r0
ldr r6, .L4088
.pad #28
sub sp, sp, #28
ldrb r8, [r0, #9] @ zero_extendqisi2
sub r3, r6, #3088
ldr r4, [r6, #-2556]
ldrh r3, [r3, #-8]
mul r8, r8, r3
ldrh r3, [r0, #12]
add r4, r4, r3, lsl #2
sub r3, r8, #-1073741823
ldr r3, [r4, r3, lsl #2]
cmn r3, #1
beq .L4059
movw r2, #1998
ldr r1, .L4088+4
ldr r0, .L4088+8
bl printk
bl dump_stack
.L4059:
mov r5, #0
sub r4, r4, #4
mov r10, r5
.L4060:
cmp r10, r8
bne .L4066
ldr r3, .L4088+12
ldr r4, .L4088+16
ldr r3, [r3]
tst r3, #4096
beq .L4067
ldrh r1, [r7]
ldr r2, [r4, #1092]
ldr r0, .L4088+20
lsl r3, r1, #1
ldrh r3, [r2, r3]
mov r2, r5
bl printk
.L4067:
ldrh r3, [r7]
ldr r2, [r4, #1092]
lsl r3, r3, #1
strh r5, [r2, r3] @ movhi
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4066:
ldr r9, [r4, #4]!
cmn r9, #1
beq .L4061
ldrb r1, [r6, #-2546] @ zero_extendqisi2
mov r0, r9
lsl r1, r1, #7
bl __aeabi_uidiv
uxth r3, r0
str r3, [sp, #4]
ldr r3, .L4088+12
ldr r3, [r3]
tst r3, #4096
beq .L4062
mov r3, r10
mov r2, r9
ldr r1, [sp, #4]
ldr r0, .L4088+24
bl printk
.L4062:
mov r9, r4
mov fp, r10
.L4065:
ldr r0, [r9]
cmn r0, #1
beq .L4063
ldrb r1, [r6, #-2546] @ zero_extendqisi2
lsl r1, r1, #7
bl __aeabi_uidiv
ldr r3, [sp, #4]
uxth r0, r0
cmp r3, r0
bne .L4063
ldrb r3, [r7, #9] @ zero_extendqisi2
mov r0, fp
mov r1, r3
str r3, [sp, #12]
bl __aeabi_idivmod
ldr r2, .L4088+28
add r1, r7, r1, lsl #1
ldr r3, [sp, #12]
ldrh r0, [r1, #16]
ldrh r2, [r2]
mov r1, r3
mul r2, r2, r0
mov r0, fp
str r2, [sp, #8]
bl __aeabi_idiv
ldr r2, [sp, #8]
add r2, r2, r0
ldr r0, .L4088+32
str r2, [sp, #20]
ldr r1, [r9]
bl pm_ppa_update_check
cmp r0, #0
beq .L4064
mov r3, r8
mov r2, #4
ldr r1, [r6, #-2556]
ldr r0, .L4088+36
bl rknand_print_hex
.L4064:
add r5, r5, #1
mov r2, #1
uxth r5, r5
add r1, sp, #20
ldr r0, [r9]
bl pm_log2phys
mvn r3, #0
str r3, [r9]
.L4063:
add fp, fp, #1
add r9, r9, #4
cmp r8, fp
bne .L4065
.L4061:
add r10, r10, #1
b .L4060
.L4089:
.align 2
.L4088:
.word .LANCHOR3
.word .LANCHOR1+2473
.word .LC0
.word .LANCHOR2
.word .LANCHOR0
.word .LC294
.word .LC291
.word .LANCHOR3-3074
.word .LC292
.word .LC293
.fnend
.size ftl_update_l2p_map, .-ftl_update_l2p_map
.align 2
.global ftl_alloc_new_data_sblk
.syntax unified
.arm
.fpu softvfp
.type ftl_alloc_new_data_sblk, %function
ftl_alloc_new_data_sblk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
ldrh r6, [r0]
bl ftl_update_l2p_map
bl pm_flush
ldrh r0, [r5]
movw r3, #65535
cmp r0, r3
beq .L4091
bl zftl_insert_data_list
.L4091:
ldr r4, .L4099
mov r0, r5
ldr r1, [r4, #1096]
add r1, r1, #16
cmp r5, r1
movw r5, #65535
moveq r1, #2
movne r1, #3
bl ftl_open_sblk_init
ldr r3, [r4, #1096]
cmp r6, r5
ldr r3, [r3, #560]
sub r3, r3, r6
clz r3, r3
lsr r3, r3, #5
moveq r3, #0
cmp r3, #0
beq .L4093
mov r1, r6
ldr r0, .L4099+4
bl printk
ldr r3, [r4, #1096]
ldr r0, [r3, #564]
bl gc_mark_bad_ppa
ldr r3, [r4, #1096]
mvn r2, #0
str r5, [r3, #560]
str r2, [r3, #564]
.L4093:
bl ftl_ext_info_flush
mov r0, #0
bl ftl_info_flush
bl lpa_rebuild_hash
mov r0, #0
pop {r4, r5, r6, pc}
.L4100:
.align 2
.L4099:
.word .LANCHOR0
.word .LC295
.fnend
.size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
.align 2
.global ftl_write_commit
.syntax unified
.arm
.fpu softvfp
.type ftl_write_commit, %function
ftl_write_commit:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #36
sub sp, sp, #36
ldr r8, .L4167
mov r9, r8
.L4102:
ldrb r2, [r8, #2796] @ zero_extendqisi2
cmp r2, #0
beq .L4104
ldrb r3, [r8, #2820] @ zero_extendqisi2
sub r2, r2, #1
ldr r1, .L4167+4
strb r2, [r8, #2796]
str r3, [sp, #12]
add r3, r3, r3, lsl #1
add r3, r1, r3, lsl #4
ldr r1, [sp, #12]
str r3, [sp, #20]
mov r3, #48
mla r3, r3, r1, r8
ldrb r1, [r3, #1232] @ zero_extendqisi2
ldr r2, [r3, #1252]
ldr r3, [r8, #2780]
strb r1, [r8, #2820]
cmp r2, r3
bcc .L4106
movw r2, #607
ldr r1, .L4167+8
ldr r0, .L4167+12
bl printk
bl dump_stack
.L4106:
ldr r2, [sp, #12]
mov r3, #48
mla r3, r3, r2, r9
ldr r2, [r9, #2780]
ldr r7, [r3, #1252]
cmp r7, r2
bcc .L4107
ldr r0, [sp, #20]
bl zbuf_free
mvn r0, #0
.L4101:
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4107:
ldr r2, [r3, #1244]
ldr fp, [r3, #1236]
ldrb r5, [r3, #1273] @ zero_extendqisi2
ldrb r3, [r3, #1272] @ zero_extendqisi2
str r2, [sp, #8]
str r3, [sp, #16]
ldrb r3, [r9, #2797] @ zero_extendqisi2
cmp r3, #0
beq .L4109
ldr r6, .L4167+16
ldr r3, .L4167+4
ldrb r4, [r6, #-88] @ zero_extendqisi2
add r4, r4, r4, lsl #1
add r4, r3, r4, lsl #4
.L4110:
ldrb r3, [r4] @ zero_extendqisi2
cmp r3, #255
bne .L4111
ldr r3, [r4, #20]
cmp r7, r3
bne .L4109
ldr r3, [sp, #16]
lsl r5, r5, #9
ldr r0, [r4, #4]
add r1, fp, r5
lsl r2, r3, #9
add r0, r0, r5
bl ftl_memcpy
ldrb r3, [r6, #-2546] @ zero_extendqisi2
mov r0, #2
ldr r2, [r4, #4]
ldr r1, [r4, #12]
sub r3, r3, #2
add r2, r2, r3, lsl #9
add r1, r1, #16
bl ftl_debug_info_fill
ldr r0, [sp, #20]
bl zbuf_free
b .L4102
.L4111:
ldr r2, .L4167+4
add r3, r3, r3, lsl #1
add r4, r2, r3, lsl #4
b .L4110
.L4109:
mov r0, r7
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #28]
bne .L4113
mov r2, #0
add r1, sp, #28
mov r0, r7
bl pm_log2phys
.L4113:
ldr r6, [r9, #1096]
mov r1, #0
ldr r3, .L4167+4
mov r4, r1
ldr ip, [sp, #28]
add r6, r6, #16
add r0, r3, #1536
.L4115:
ldr r2, [r3, #20]
cmp r7, r2
bne .L4114
ldrb r2, [r3, #2] @ zero_extendqisi2
tst r2, #8
ldrne r4, [r3, #4]
movne r1, #1
ldrne ip, [r3, #24]
bicne r2, r2, #8
strbne r2, [r3, #2]
.L4114:
add r3, r3, #48
cmp r3, r0
bne .L4115
ldr r3, .L4167+16
cmp r1, #0
ldr r2, [sp, #16]
strne ip, [sp, #28]
ldrb r3, [r3, #-2546] @ zero_extendqisi2
cmp r2, r3
bcs .L4142
cmp r4, #0
beq .L4118
cmp r5, #0
beq .L4119
lsl r2, r5, #9
mov r1, r4
mov r0, fp
bl ftl_memcpy
ldr r6, [r9, #1096]
add r6, r6, #48
.L4119:
ldr r3, [sp, #16]
add r5, r5, r3
ldr r3, .L4167+16
ldrb r2, [r3, #-2546] @ zero_extendqisi2
cmp r5, r2
ldrcs r6, [r9, #1096]
addcs r6, r6, #16
bcs .L4142
lsl r0, r5, #9
sub r2, r2, r5
lsl r2, r2, #9
add r1, r4, r0
add r0, fp, r0
bl ftl_memcpy
.L4142:
mov r10, #0
b .L4117
.L4118:
ldr r3, [sp, #28]
cmn r3, #1
beq .L4121
mov r0, #1
bl buf_alloc
ldr r3, [sp, #28]
mov r4, r0
str r7, [r0, #20]
mov r1, #1
str r3, [r0, #24]
bl sblk_read_page
ldr r3, [r4, #12]
ldr r2, [r3, #4]
ldr r10, [r3, #12]
cmp r7, r2
add r10, r10, #1
bne .L4122
ldr r2, [r4, #36]
cmn r2, #1
bne .L4123
.L4122:
ldrb r2, [r9, #1153] @ zero_extendqisi2
mvn ip, #0
ldr lr, [r4, #24]
rsb r1, r2, #24
mvn ip, ip, lsl r2
ldr r2, .L4167+16
and r0, ip, lr, lsr r1
bic r1, lr, ip, lsl r1
ldrb r2, [r2, #-2546] @ zero_extendqisi2
uxtb r0, r0
str r2, [sp]
ldr r2, [r4, #4]
bl flash_read_page_en
str r0, [r4, #36]
.L4123:
ldr r3, [r4, #12]
ldr r3, [r3, #4]
cmp r7, r3
bne .L4124
ldr r3, [r4, #36]
cmn r3, #1
bne .L4125
.L4124:
ldr r2, [r8, #1096]
ldr r0, .L4167+20
ldr r3, [r2, #552]
add r3, r3, #1
str r3, [r2, #552]
ldr r3, [r4, #36]
ldrb r1, [r4, #1] @ zero_extendqisi2
ldr r2, [sp, #28]
str r3, [sp]
mov r3, r7
bl printk
mov r3, #4
ldr r1, [r4, #12]
mov r2, r3
ldr r0, .L4167+24
bl rknand_print_hex
.L4125:
ldr r3, [r4, #12]
ldr r3, [r3, #4]
cmp r7, r3
bne .L4126
ldr r3, [r4, #36]
cmn r3, #1
bne .L4127
.L4126:
movw r2, #699
ldr r1, .L4167+8
ldr r0, .L4167+12
bl printk
bl dump_stack
.L4127:
cmp r5, #0
beq .L4128
ldr r3, [sp, #28]
lsl r2, r5, #9
cmn r3, #1
beq .L4129
ldr r1, [r4, #4]
mov r0, fp
bl ftl_memcpy
.L4130:
ldr r6, [r8, #1096]
add r6, r6, #48
.L4128:
ldr r3, [sp, #16]
add r5, r5, r3
ldr r3, .L4167+16
ldrb r2, [r3, #-2546] @ zero_extendqisi2
cmp r5, r2
bcc .L4131
ldrhi r6, [r8, #1096]
addhi r6, r6, #16
.L4132:
cmp r4, #0
beq .L4117
ldrb r3, [r4, #2] @ zero_extendqisi2
mov r1, r4
ldr r0, .L4167+28
bic r3, r3, #8
strb r3, [r4, #2]
bl buf_remove_buf
mov r0, r4
bl zbuf_free
.L4117:
ldrh r3, [r6, #6]
cmp r3, #0
bne .L4134
bl ftl_flush
mov r0, r6
bl ftl_alloc_new_data_sblk
.L4134:
mov r0, r6
mov r4, #48
bl ftl_get_new_free_page
ldr r3, [sp, #12]
str r0, [sp, #16]
mov r0, #2
mul r4, r4, r3
ldr r3, [sp, #8]
mov r1, r3
add r5, r9, r4
ldr r2, [r5, #1248]
str r10, [r3, #12]
stm r3, {r2, r7}
ldr r2, [sp, #28]
str r2, [r3, #8]
mov r2, #0
ldr r3, .L4167+16
str r2, [r1, #16]!
ldrb r2, [r3, #-2546] @ zero_extendqisi2
sub r2, r2, #2
add r2, fp, r2, lsl #9
bl ftl_debug_info_fill
ldr r3, [sp, #16]
ldr r1, [sp, #20]
ldr r0, .L4167+32
str r3, [r5, #1256]
ldr r3, [sp, #28]
str r3, [r5, #1260]
mvn r3, #0
strb r3, [r5, #1232]
ldrb r3, [r5, #1234] @ zero_extendqisi2
orr r3, r3, #10
strb r3, [r5, #1234]
ldr r3, .L4167+4
ldrh r2, [r6, #12]
add r4, r3, r4
ldrh r3, [r6, #10]
add r3, r3, r2
sub r3, r3, #1
strh r3, [r4, #32] @ movhi
bl buf_add_tail
ldrb r3, [r9, #2797] @ zero_extendqisi2
ldr r4, .L4167
add r3, r3, #1
strb r3, [r9, #2797]
bl timer_get_time
ldr r3, .L4167+16
ldrh r2, [r6, #6]
str r0, [r3, #-84]
ldrb r3, [r9, #2797] @ zero_extendqisi2
cmp r3, #2
bhi .L4135
cmp r2, #1
bne .L4105
.L4135:
ldr lr, .L4167+16
mov r5, #48
ldrb r1, [r6, #5] @ zero_extendqisi2
ldrb r0, [lr, #-88] @ zero_extendqisi2
cmp r1, #0
mov r1, #0
moveq ip, #1
movne ip, #2
cmp r2, #1
mov r2, r0
moveq ip, r3
.L4139:
cmp r1, ip
bne .L4140
uxtb r1, r1
add r0, r0, r0, lsl #1
strb r2, [lr, #-88]
sub r3, r3, r1
strb r3, [r4, #2797]
ldr r3, .L4167+4
add r0, r3, r0, lsl #4
bl sblk_prog_page
ldrh r3, [r6, #6]
cmp r3, #1
bne .L4105
bl sblk_wait_write_queue_completed
bl ftl_write_completed
mov r0, r6
bl ftl_write_last_log_page
mov r0, r6
bl ftl_alloc_new_data_sblk
.L4105:
ldrb r3, [r4, #2796] @ zero_extendqisi2
cmp r3, #0
bne .L4102
.L4104:
bl ftl_write_completed
mov r0, #0
b .L4101
.L4131:
ldr r3, [sp, #28]
sub r2, r2, r5
lsl r2, r2, #9
lsl r0, r5, #9
cmn r3, #1
beq .L4133
ldr r1, [r4, #4]
add r1, r1, r0
add r0, fp, r0
bl ftl_memcpy
b .L4132
.L4133:
mov r1, #0
add r0, fp, r0
bl ftl_memset
b .L4132
.L4140:
mla r2, r5, r2, r4
add r1, r1, #1
ldrb r2, [r2, #1232] @ zero_extendqisi2
b .L4139
.L4121:
cmp r5, #0
moveq r10, r5
moveq r4, r5
beq .L4128
lsl r2, r5, #9
mov r10, r4
.L4129:
mov r1, #0
mov r0, fp
bl ftl_memset
b .L4130
.L4168:
.align 2
.L4167:
.word .LANCHOR0
.word .LANCHOR0+1232
.word .LANCHOR1+2492
.word .LC0
.word .LANCHOR3
.word .LC296
.word .LC240
.word .LANCHOR0+2771
.word .LANCHOR3-88
.fnend
.size ftl_write_commit, .-ftl_write_commit
.align 2
.global gc_do_copy_back
.syntax unified
.arm
.fpu softvfp
.type gc_do_copy_back, %function
gc_do_copy_back:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #84
sub sp, sp, #84
ldr r7, .L4307
ldrb r0, [r7, #-3119] @ zero_extendqisi2
cmp r0, #0
bne .L4170
bl buf_alloc
subs r4, r0, #0
beq .L4169
ldr r5, .L4307+4
ldrh r2, [r5, #22]
mov r0, r2
bl gc_get_src_ppa_from_index
mov r1, #1
add r2, r2, #1
str r0, [r4, #24]
mov r6, r0
mov r0, r4
strh r2, [r5, #22] @ movhi
bl sblk_read_page
ldr r3, [r4, #36]
cmn r3, #1
cmpne r3, #512
bne .L4172
movw r2, #1032
ldr r1, .L4307+8
ldr r0, .L4307+12
bl printk
bl dump_stack
.L4172:
ldr r3, [r4, #12]
ldr r8, [r3, #4]
mov r0, r8
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #56]
bne .L4173
mov r2, #0
add r1, sp, #56
mov r0, r8
bl pm_log2phys
.L4173:
ldr r9, [sp, #56]
cmp r6, r9
bne .L4174
ldr r2, .L4307+16
mov r3, #0
sub r10, r2, #1232
.L4177:
add r1, r2, r3
ldr r0, [r1, #20]
cmp r8, r0
bne .L4175
ldrb r1, [r1, #2] @ zero_extendqisi2
tst r1, #2
beq .L4175
mov r0, r4
bl zbuf_free
ldr r3, .L4307+20
ldr r3, [r3]
tst r3, #256
beq .L4169
ldrh r3, [r5, #22]
mov r2, r6
mov r1, r8
ldr r0, .L4307+24
bl printk
.L4169:
add sp, sp, #84
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4175:
add r3, r3, #48
cmp r3, #1536
bne .L4177
ldrb r3, [r7, #-2546] @ zero_extendqisi2
mov r2, #0
str r8, [r4, #20]
strb r2, [r4, #41]
strb r3, [r4, #40]
ldr r3, [r4, #12]
ldr r1, [r3]
str r1, [r4, #16]
str r2, [r3, #16]
ldr r3, .L4307+20
ldr r3, [r3]
tst r3, #256
beq .L4178
mov r0, r8
bl lpa_hash_get_ppa
ldrh r3, [r5, #22]
mov r2, r9
str r6, [sp]
mov r1, r8
str r3, [sp, #4]
mov r3, r0
ldr r0, .L4307+28
bl printk
.L4178:
mov r0, r4
bl ftl_gc_write_buf
bl ftl_write_commit
ldr r2, [r10, #2800]
ldr r3, [r2, #60]
add r3, r3, #1
str r3, [r2, #60]
ldrh r3, [r5, #24]
add r3, r3, #1
strh r3, [r5, #24] @ movhi
b .L4169
.L4174:
ldr r3, .L4307+20
ldr r3, [r3]
tst r3, #256
beq .L4179
mov r0, r8
bl lpa_hash_get_ppa
ldrh r3, [r5, #22]
mov r2, r9
str r6, [sp]
mov r1, r8
str r3, [sp, #4]
mov r3, r0
ldr r0, .L4307+28
bl printk
.L4179:
mov r0, r4
bl zbuf_free
b .L4169
.L4170:
ldr r10, .L4307+32
ldr r3, [r10, #1096]
ldrb r9, [r3, #89] @ zero_extendqisi2
str r3, [sp, #12]
ldrb r3, [r7, #-3127] @ zero_extendqisi2
uxth r8, r9
cmp r3, r8
movhi r6, #1
bhi .L4180
cmp r8, #2
movcc r6, r8
movcs r6, #2
.L4180:
ldrb r5, [r7, #-3128] @ zero_extendqisi2
ldr r3, .L4307+4
cmp r5, #3
bne .L4181
ldrb r2, [r10, #1158] @ zero_extendqisi2
cmp r2, #0
beq .L4182
movw r2, #2102
mov r1, r9
ldrh fp, [r3, r2]
mov r0, fp
bl __aeabi_idiv
ldrb r3, [r7, #-2542] @ zero_extendqisi2
uxth r4, r0
cmp r3, #0
beq .L4183
ldr r3, .L4307+36
lsl r0, r0, #1
ldrh r3, [r3, r0]
cmp r3, #0
moveq r5, #1
movne r5, #2
.L4184:
smulbb r8, r8, r4
sub r8, fp, r8
uxth r3, r8
str r3, [sp, #20]
.L4185:
mul r3, r6, r5
ldr r9, .L4307+36
mov r8, #0
str r3, [sp, #16]
add r9, r9, r4, lsl #1
ldr r3, .L4307+4
.L4189:
ldr r1, [sp, #16]
uxth r0, r8
mov r2, r0
cmp r0, r1
bge .L4242
ldr r1, .L4307+40
add r2, fp, r2
ldrh ip, [r1]
ldr r1, [sp, #12]
ldrb r1, [r1, #89] @ zero_extendqisi2
mul r1, r1, ip
ldrb ip, [r7, #-11] @ zero_extendqisi2
sub r1, r1, ip
cmp r2, r1
blt .L4190
ldrb r1, [r7, #-2542] @ zero_extendqisi2
cmp r1, #0
beq .L4242
ldrh r1, [r9]
cmp r1, r4
bcc .L4191
.L4242:
mov r3, #1
str r3, [sp, #24]
b .L4187
.L4183:
ldrb r3, [r7, #-15] @ zero_extendqisi2
cmp r3, #0
moveq r5, #1
beq .L4184
sub r3, r4, #62
cmp r3, #2160
movcs r5, #2
bcs .L4184
mov r1, r5
mov r0, r4
bl __aeabi_uidivmod
uxth r1, r1
cmp r1, #0
movne r5, #1
moveq r5, #2
b .L4184
.L4182:
ldrb r2, [r7, #-3120] @ zero_extendqisi2
cmp r2, #0
movw r2, #2102
beq .L4186
ldrh fp, [r3, r2]
add r1, r9, r9, lsl #1
mov r0, fp
bl __aeabi_idiv
mul r9, r0, r9
ldr r2, .L4307+44
uxth r4, r0
sub r9, r9, r9, lsl #2
add r9, r9, fp
smull r2, r3, r9, r2
sub r9, r3, r9, asr #31
uxth r3, r9
str r3, [sp, #20]
ldrb r3, [r10, #1159] @ zero_extendqisi2
cmp r3, #0
addne r4, r4, r4, lsl #1
uxthne r4, r4
b .L4185
.L4186:
ldrh r10, [r3, r2]
mov r1, r9
mov r0, r10
bl __aeabi_idiv
ldr r2, .L4307+48
lsl r3, r0, #1
smulbb r8, r0, r8
ldrh r3, [r2, r3]
sub r10, r10, r8
lsr r4, r3, #3
and r3, r3, #7
str r3, [sp, #24]
uxth r3, r10
mla r9, r9, r4, r3
str r3, [sp, #20]
ldr r3, [sp, #24]
add r9, r9, r9, lsl #1
cmp r3, #1
uxth fp, r9
beq .L4185
.L4187:
mul r3, r6, r5
str r3, [sp, #36]
lsl r3, r6, #1
uxth r3, r3
str r3, [sp, #44]
ldrh r3, [sp, #44]
smulbb r3, r3, r5
sub r3, fp, r3
uxth r3, r3
str r3, [sp, #48]
mov r3, #0
str r3, [sp, #32]
ldr r3, .L4307+36
add r3, r3, r4, lsl #1
str r3, [sp, #40]
.L4192:
ldrh r9, [sp, #32]
ldr r2, [sp, #36]
ldr r7, .L4307
str r9, [sp, #28]
cmp r9, r2
blt .L4216
ldrb r3, [r7, #-3128] @ zero_extendqisi2
cmp r3, #3
bne .L4217
ldr r3, .L4307+32
ldrb r1, [r3, #1158] @ zero_extendqisi2
cmp r1, #0
movne r3, r2
movne r1, #0
subne r2, r3, #1
bne .L4219
ldrb r2, [r7, #-3120] @ zero_extendqisi2
ldr r3, [sp, #56]
cmp r2, #0
strbne r1, [r3, #44]
bne .L4305
ldr r1, [sp, #24]
cmp r1, #1
moveq r2, #9
beq .L4225
ldr r1, [sp, #24]
cmp r1, #2
moveq r2, #13
.L4225:
strb r2, [r3, #44]
.L4305:
mov r2, r6
add r1, sp, #68
add r0, sp, #56
bl sblk_xlc_prog_pages
.L4221:
ldrb r3, [r7, #-3120] @ zero_extendqisi2
ldr r2, .L4307+32
cmp r3, #0
addne r6, r6, r6, lsl #1
uxthne r6, r6
bne .L4231
ldrb r3, [r7, #-3126] @ zero_extendqisi2
cmp r3, #0
ldrne r6, [sp, #44]
bne .L4231
ldrb r3, [r2, #1158] @ zero_extendqisi2
cmp r3, #0
beq .L4231
smulbb r5, r6, r5
ldrb r3, [r7, #-2542] @ zero_extendqisi2
uxth r5, r5
cmp r3, #0
moveq r6, r5
beq .L4231
ldr r1, .L4307+36
lsl r3, r4, #1
ldrh r3, [r1, r3]
cmp r3, r4
movcs r6, r5
.L4231:
ldr r1, [r2, #2800]
ldr r0, .L4307+4
ldr r3, [r1, #52]
add r3, r3, r6
str r3, [r1, #52]
movw r1, #2102
ldrh r3, [r0, r1]
add r6, r6, r3
ldr r3, .L4307+52
uxth r6, r6
strh r6, [r0, r1] @ movhi
ldrh r1, [r3, #-14]
ldr r3, [sp, #12]
ldrb r3, [r3, #89] @ zero_extendqisi2
mul r3, r3, r1
cmp r6, r3
ldrge r3, [r2, #1096]
movge r2, #0
strhge r2, [r3, #86] @ movhi
bl gc_write_completed
b .L4169
.L4181:
ldrb r2, [r7, #-3126] @ zero_extendqisi2
mov r1, r9
cmp r2, #0
movw r2, #2102
ldrh fp, [r3, r2]
mov r0, fp
bne .L4188
bl __aeabi_idiv
uxth r4, r0
mov r5, #1
smulbb r8, r8, r4
sub r8, fp, r8
uxth r3, r8
str r3, [sp, #20]
b .L4185
.L4188:
bl __aeabi_idiv
uxth r4, r0
mov r5, #2
smulbb r8, r8, r4
sub r8, fp, r8
uxth r3, r8
str r3, [sp, #20]
b .L4185
.L4191:
tst r0, #1
beq .L4242
.L4190:
ldr r10, [r7, #-128]
ldr r1, [r10, r2, lsl #2]
cmn r1, #1
bne .L4193
ldrh r1, [r3, #22]
ldrh ip, [r3, #20]
cmp ip, r1
bls .L4169
ldrb ip, [r7, #-2542] @ zero_extendqisi2
cmp ip, #0
beq .L4194
ldrh ip, [r9]
cmp ip, r4
bcs .L4194
tst r0, #1
ldrne r1, [r10, ip, lsl #2]
strne r1, [r10, r2, lsl #2]
bne .L4193
.L4194:
mov r0, r1
str r3, [sp, #24]
bl gc_get_src_ppa_from_index
ldr r3, [sp, #24]
add r1, r1, #1
strh r1, [r3, #22] @ movhi
str r0, [r10, r2, lsl #2]
.L4193:
add r8, r8, #1
b .L4189
.L4216:
ldr r3, [sp, #28]
add r3, fp, r3
str r3, [sp, #16]
ldr r2, [sp, #16]
ldr r3, [r7, #-3124]
ldrb r3, [r3, r2] @ zero_extendqisi2
cmp r3, #255
bne .L4196
mov r0, #0
bl buf_alloc
subs r7, r0, #0
bne .L4197
bl sblk_wait_write_queue_completed
bl ftl_write_completed
bl gc_write_completed
bl gc_free_temp_buf
mov r0, r7
bl buf_alloc
subs r7, r0, #0
beq .L4169
.L4197:
ldr r2, .L4307
ldrb r1, [r7, #1] @ zero_extendqisi2
ldr r0, [sp, #16]
ldr r3, [r2, #-3124]
strb r1, [r3, r0]
ldr r1, .L4307+32
ldrb r3, [r1, #2831] @ zero_extendqisi2
add r3, r3, #1
strb r3, [r1, #2831]
add r3, r9, fp
strh r3, [r7, #32] @ movhi
ldrb r3, [sp, #24] @ zero_extendqisi2
strb r3, [r7, #45]
sub r3, r2, #3104
ldrh r1, [r3, #-14]
ldr r3, [sp, #12]
ldrb r3, [r3, #89] @ zero_extendqisi2
mul r3, r3, r1
ldrb r1, [r2, #-11] @ zero_extendqisi2
sub r3, r3, r1
cmp r0, r3
blt .L4198
ldrb r3, [r2, #-2542] @ zero_extendqisi2
cmp r3, #0
beq .L4199
ldr r3, [sp, #40]
ldrh r3, [r3]
cmp r3, r4
bcs .L4199
tst r9, #1
bne .L4198
.L4199:
ldr r8, .L4307
mvn r2, #0
ldr r1, [sp, #16]
ldr r10, .L4307+56
ldr r3, [r8, #-132]
str r2, [r3, r1, lsl #2]
ldrb r3, [r8, #-11] @ zero_extendqisi2
cmp r3, #2
bne .L4200
sub r3, r8, #3104
ldr r2, [sp, #16]
ldrh r1, [r3, #-14]
ldr r3, [sp, #12]
ldrb r3, [r3, #89] @ zero_extendqisi2
mul r3, r1, r3
sub r3, r3, #2
cmp r2, r3
ldrh r2, [r8, #-14]
bne .L4201
ldr r1, [r8, #-132]
ldr r0, [r7, #4]
bl ftl_memcpy
ldrb r2, [r8, #-2546] @ zero_extendqisi2
mov r1, #0
ldr r0, [r7, #12]
lsl r2, r2, #1
bl ftl_memset
ldr r3, [r7, #12]
str r10, [r3]
ldrh r1, [r8, #-14]
ldr r0, [r7, #4]
ldr r10, [r7, #12]
bl js_hash
ldr r2, .L4307+32
str r0, [r10, #4]
ldr r3, [r7, #12]
ldr r2, [r2, #1096]
ldr r2, [r2, #132]
str r2, [r3, #8]
mov r2, #0
ldr r3, [r7, #12]
.L4301:
str r2, [r3, #12]
.L4202:
ldr r3, [r7, #12]
mov r2, #0
str r2, [r3, #16]
.L4196:
ldr r3, .L4307
ldr r1, [sp, #16]
ldrb lr, [sp, #24] @ zero_extendqisi2
ldr r2, [r3, #-3124]
ldrb r7, [r2, r1] @ zero_extendqisi2
add r2, sp, #80
ldr r1, [sp, #28]
add r0, r7, r7, lsl #1
add ip, r2, r1, lsl #2
ldr r2, .L4307+32
add r1, r2, #1232
add r0, r1, r0, lsl #4
str r0, [ip, #-24]
mov ip, #48
mul ip, ip, r7
add r1, r1, ip
add r0, r2, ip
mov ip, #2
strb lr, [r0, #1277]
strh ip, [r1, #34] @ movhi
ldrb r1, [r3, #-3128] @ zero_extendqisi2
cmp r1, #3
bne .L4207
ldrb r1, [r2, #1158] @ zero_extendqisi2
cmp r1, #0
beq .L4208
ldrb r3, [r3, #-2542] @ zero_extendqisi2
and r8, r9, #1
add r8, r8, r4
cmp r3, #0
beq .L4209
ldr r3, [sp, #40]
ldr r2, [sp, #32]
ldrh r3, [r3]
cmp r3, r4
movcs r2, #0
andcc r2, r2, #1
cmp r2, #0
movne r8, r3
.L4209:
ldr r3, .L4307+32
mov r10, #48
mov r1, r5
mov r0, r9
mla r10, r10, r7, r3
bl __aeabi_uidiv
ldr r3, [sp, #20]
ldr r2, .L4307+60
uxtah r0, r3, r0
ldr r3, [sp, #12]
ldrh r2, [r2]
add r0, r3, r0, lsl #1
ldrh r3, [r0, #96]
mla r8, r2, r3, r8
orr r8, r8, #50331648
str r8, [r10, #1256]
.L4214:
mov r2, #48
ldr r3, .L4307+32
mul r7, r2, r7
add r2, r3, r7
add r3, r3, #1232
add r3, r3, r7
ldr r2, [r2, #1256]
ldrh r1, [r3, #32]
ldr r3, .L4307
ldr r3, [r3, #-124]
str r2, [r3, r1, lsl #2]
b .L4233
.L4201:
ldrb r3, [r8, #-3127] @ zero_extendqisi2
ldr r0, [r8, #-132]
mul r3, r1, r3
lsr r1, r2, #2
add r1, r0, r1, lsl #2
ldr r0, [r7, #4]
rsb r3, r2, r3, lsl #2
mov r2, r3
str r3, [sp, #52]
bl ftl_memcpy
ldrb r2, [r8, #-2546] @ zero_extendqisi2
mov r1, #0
ldr r0, [r7, #12]
lsl r2, r2, #1
bl ftl_memset
ldr r2, [r7, #12]
ldr r3, [sp, #52]
str r10, [r2]
mov r1, r3
ldr r0, [r7, #4]
ldr r8, [r7, #12]
bl js_hash
ldr r2, .L4307+32
str r0, [r8, #4]
ldr r3, [r7, #12]
ldr r2, [r2, #1096]
ldr r2, [r2, #132]
str r2, [r3, #8]
mov r2, #1
ldr r3, [r7, #12]
b .L4301
.L4200:
ldr r3, .L4307+52
ldrb r2, [r8, #-3127] @ zero_extendqisi2
ldr r1, [r8, #-132]
ldrh r3, [r3, #-14]
ldr r0, [r7, #4]
mul r2, r2, r3
lsl r2, r2, #2
bl ftl_memcpy
ldr r3, .L4307+52
ldrb r1, [r8, #-2546] @ zero_extendqisi2
ldr r0, [r7, #4]
ldrh r2, [r3, #-14]
ldrb r3, [r8, #-3127] @ zero_extendqisi2
mul r3, r3, r2
cmp r1, r3, asr #6
lsl r2, r3, #2
ldrhlt r1, [r8, #-14]
mov r3, r2
ldr r8, .L4307
add r0, r0, r3
sublt r2, r1, r2
ldr r1, [r8, #-128]
bl ftl_memcpy
ldrb r2, [r8, #-2546] @ zero_extendqisi2
mov r1, #0
ldr r0, [r7, #12]
lsl r2, r2, #1
bl ftl_memset
ldr r3, [r7, #12]
str r10, [r3]
sub r3, r8, #3104
ldrh r3, [r3, #-14]
ldrb r1, [r8, #-3127] @ zero_extendqisi2
ldr r0, [r7, #4]
ldr r10, [r7, #12]
mul r1, r1, r3
lsl r1, r1, #2
bl js_hash
ldr r2, .L4307+32
str r0, [r10, #4]
ldr r3, [r7, #12]
ldr r2, [r2, #1096]
ldr r2, [r2, #132]
.L4302:
str r2, [r3, #8]
b .L4202
.L4198:
ldr r8, .L4307
mov r1, #1
ldr r2, [sp, #16]
mov r0, r7
ldr r3, [r8, #-128]
ldr r3, [r3, r2, lsl #2]
str r3, [r7, #24]
bl sblk_read_page
ldr r3, [r7, #36]
cmn r3, #1
cmpne r3, #512
bne .L4205
ldr r3, .L4307+64
mvn r0, #0
ldr r2, [r7, #24]
ldrh r1, [r3]
ldr r3, .L4307+32
ldrb r3, [r3, #1153] @ zero_extendqisi2
lsr r2, r2, r1
rsb r3, r3, #24
sub r3, r3, r1
ldrb r1, [r8, #-3136] @ zero_extendqisi2
bic r0, r2, r0, lsl r3
bl __aeabi_uidiv
mov r1, #0
uxth r0, r0
bl ftl_sblk_dump
ldr r3, [r7, #36]
cmn r3, #1
cmpne r3, #512
bne .L4205
ldr r3, [r7, #12]
mvn r2, #0
str r2, [r3, #4]
ldr r3, [r7, #36]
cmp r3, r2
cmpne r3, #512
bne .L4205
movw r2, #1223
ldr r1, .L4307+8
ldr r0, .L4307+12
bl printk
bl dump_stack
.L4205:
ldr r3, [r7, #12]
ldr r2, .L4307+32
ldr r1, [r3, #4]
ldr r2, [r2, #2780]
cmp r1, r2
ldr r1, [sp, #16]
mvncs r2, #0
strcs r2, [r3, #4]
ldr r3, [r7, #12]
ldr r2, [r3, #4]
ldr r3, .L4307
ldr r3, [r3, #-132]
str r2, [r3, r1, lsl #2]
ldr r3, [r7, #12]
ldr r2, [r7, #24]
b .L4302
.L4208:
ldrb r3, [r2, #1159] @ zero_extendqisi2
ldr r1, .L4307+68
cmp r3, #0
umull r2, r3, r9, r1
beq .L4211
ldr r2, [sp, #20]
lsr r3, r3, #1
ldr ip, [sp, #12]
uxtah r2, r2, r3
add r3, r3, r3, lsl #1
add r2, ip, r2, lsl #1
ldr ip, .L4307+60
sub r3, r9, r3
ldrh r2, [r2, #96]
ldrh ip, [ip]
mla r2, ip, r2, r4
uxtah r3, r2, r3
.L4306:
str r3, [r0, #1256]
mov r0, #48
mul r7, r0, r7
ldr r3, .L4307+32
umull r0, r1, r9, r1
add r2, r3, #1232
add r2, r2, r7
add r7, r3, r7
ldrh ip, [r2, #32]
ldr r2, .L4307
lsr r1, r1, #1
ldr r3, [r7, #1256]
add r1, r1, r1, lsl #1
ldr r2, [r2, #-124]
sub r1, r9, r1
lsl r1, r1, #24
add r1, r1, #16777216
orr r1, r1, r3
str r1, [r2, ip, lsl #2]
.L4233:
ldr r3, .L4307
ldrb r2, [r3, #-2542] @ zero_extendqisi2
cmp r2, #0
beq .L4215
ldr r2, [sp, #40]
ldrh r2, [r2]
cmp r2, r4
bcs .L4215
tst r9, #1
beq .L4215
ldr r1, [r3, #-3124]
mvn r2, #0
ldr r0, [sp, #16]
ldr ip, [sp, #48]
strb r2, [r1, r0]
add r1, sp, #80
ldr r0, [sp, #28]
add r1, r1, r0, lsl #2
ldrh r0, [sp, #48]
ldr r1, [r1, #-24]
strh r0, [r1, #32] @ movhi
ldrb r0, [r1, #1] @ zero_extendqisi2
ldr r1, [r3, #-3124]
strb r0, [r1, ip]
ldr r1, [sp, #16]
ldr r3, [r3, #-128]
str r2, [r3, r1, lsl #2]
.L4215:
ldr r3, [sp, #32]
add r3, r3, #1
str r3, [sp, #32]
b .L4192
.L4211:
ldr r2, [sp, #20]
ubfx r3, r3, #1, #16
add r3, r2, r3
ldr r2, [sp, #12]
add r3, r2, r3, lsl #1
ldr r2, .L4307+60
ldrh r3, [r3, #96]
ldrh r2, [r2]
mla r3, r2, r3, r4
b .L4306
.L4207:
cmp r1, #2
bne .L4214
ldrb r3, [r3, #-3126] @ zero_extendqisi2
cmp r3, #0
bne .L4213
ldr r2, [sp, #20]
ldr r3, [sp, #28]
add r3, r3, r2
ldr r2, [sp, #12]
add r3, r2, r3, lsl #1
ldr r2, .L4307+60
ldrh r3, [r3, #96]
ldrh r2, [r2]
mla r3, r2, r3, r4
.L4303:
orr r3, r3, #33554432
str r3, [r0, #1256]
b .L4214
.L4213:
ldr r3, [sp, #20]
ldr r2, [sp, #12]
add r3, r3, r9, lsr #1
add r3, r2, r3, lsl #1
ldr r2, .L4307+60
ldrh r3, [r3, #96]
ldrh r2, [r2]
mla r3, r2, r3, r4
and r2, r9, #1
add r3, r3, r2
b .L4303
.L4220:
add r0, sp, #80
add ip, sp, #80
add r0, r0, r3, lsl #2
add r3, ip, r3, lsl #2
ldr r3, [r3, #-20]
ldr r0, [r0, #-24]
ldrb r3, [r3, #1] @ zero_extendqisi2
strb r3, [r0]
.L4219:
uxth r3, r1
add r1, r1, #1
cmp r3, r2
blt .L4220
add r3, sp, #80
add r2, r3, r2, lsl #2
ldr r3, [r2, #-24]
.L4304:
smulbb r1, r6, r5
mvn r2, #0
strb r2, [r3]
ldr r0, [sp, #56]
uxtb r1, r1
bl sblk_prog_page
b .L4221
.L4217:
ldrb r3, [r7, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L4226
ldrb r3, [r7, #-3125] @ zero_extendqisi2
cmp r3, #0
bne .L4227
.L4226:
ldr r2, [sp, #36]
sub r1, r2, #1
.L4228:
uxth r2, r3
add r3, r3, #1
cmp r2, r1
blt .L4229
add r3, sp, #80
add r1, r3, r1, lsl #2
ldr r3, [r1, #-24]
b .L4304
.L4227:
mov r1, r6
add r0, sp, #56
bl sblk_3d_mlc_prog_pages
b .L4221
.L4229:
add r0, sp, #80
add ip, sp, #80
add r0, r0, r2, lsl #2
add r2, ip, r2, lsl #2
ldr r2, [r2, #-20]
ldr r0, [r0, #-24]
ldrb r2, [r2, #1] @ zero_extendqisi2
strb r2, [r0]
b .L4228
.L4308:
.align 2
.L4307:
.word .LANCHOR3
.word .LANCHOR0+2824
.word .LANCHOR1+2509
.word .LC0
.word .LANCHOR0+1232
.word .LANCHOR2
.word .LC297
.word .LC298
.word .LANCHOR0
.word .LANCHOR2+2114
.word .LANCHOR3-3118
.word 1431655766
.word .LANCHOR2+3650
.word .LANCHOR3-3104
.word -178307901
.word .LANCHOR3-3074
.word .LANCHOR3-3138
.word -1431655765
.fnend
.size gc_do_copy_back, .-gc_do_copy_back
.align 2
.global zftl_do_gc
.syntax unified
.arm
.fpu softvfp
.type zftl_do_gc, %function
zftl_do_gc:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movw r3, #2788
ldr r4, .L4535
cmp r0, #1
.pad #36
sub sp, sp, #36
mov r10, r0
ldr r5, .L4535+4
add r9, r4, #2784
ldrh r8, [r4, r3]
ldrh r6, [r9]
movw r3, #2786
ldr r7, [r4, #1096]
ldrh fp, [r4, r3]
add r6, r8, r6
uxth r6, r6
beq .L4310
.L4322:
ldrb r3, [r5, #-144] @ zero_extendqisi2
cmp r3, #6
ldrls pc, [pc, r3, asl #2]
b .L4435
.L4313:
.word .L4312
.word .L4314
.word .L4315
.word .L4316
.word .L4317
.word .L4318
.word .L4319
.L4318:
ldr r8, .L4535+40
mov r7, #0
.L4320:
bl gc_check_data_one_wl
subs r9, r0, #0
beq .L4431
ldr r3, [r4, #1096]
mov r6, #0
strh r6, [r8, #52] @ movhi
ldrh r0, [r3, #80]
bl ftl_free_sblk
ldr r2, [r4, #1096]
mvn r3, #0
ldr r1, [r4, #2800]
ldr r0, [r4, #2832]
strh r3, [r2, #80] @ movhi
strh r3, [r1, #126] @ movhi
strh r3, [r2, #130] @ movhi
bl zbuf_free
str r6, [r4, #2832]
strb r6, [r5, #-144]
b .L4532
.L4310:
ldr r3, [r5, #-8]
cmp r3, #0
bne .L4321
ldr r2, [r5, #-4]
cmp r2, #0
beq .L4322
.L4321:
ldr r2, .L4535+60
ldrh r2, [r2, #-4]
cmp r6, r2, lsr #2
bls .L4322
movw r2, #2804
ldrh r2, [r4, r2]
cmp r2, r6
bcs .L4322
str r3, [sp, #24]
bl timer_get_time
ldr r3, [sp, #24]
add r3, r3, #20
cmp r3, r0
movcc r3, #0
strcc r3, [r5, #-8]
ldr r3, [r5, #-4]
add r3, r3, #20
str r3, [sp, #24]
bl timer_get_time
ldr r3, [sp, #24]
cmp r3, r0
movcc r3, #0
strcc r3, [r5, #-4]
ldr r3, [r4, #1096]
ldrh r3, [r3, #124]
cmp r3, #0
bne .L4322
.L4435:
mov r7, #16
b .L4309
.L4312:
movw r3, #2790
ldrh r2, [r7, #80]
ldrh r9, [r4, r3]
movw r3, #2792
ldrh r3, [r4, r3]
add r8, r8, fp
uxth r8, r8
add r9, r9, r3
movw r3, #65535
cmp r2, r3
uxth r9, r9
beq .L4325
cmp r10, #0
bne .L4326
movw r3, #2804
ldrh r3, [r4, r3]
cmp r6, r3, lsl #1
bge .L4435
.L4326:
ldr r10, .L4535+60
ldrh r1, [r10, #-6]
sub r0, r10, #12
add r1, r1, #1
uxth r1, r1
strh r1, [r10, #-6] @ movhi
bl _list_get_gc_head_node
movw r3, #65535
cmp r0, r3
beq .L4328
ldr r1, [r4, #1092]
lsl r2, r0, #1
ldr r3, [r5, #-140]
ldrh r2, [r1, r2]
ldrh r1, [r10, #-8]
add r3, r3, #1
str r3, [r5, #-140]
cmp r1, r2
bcs .L4329
movw r1, #1080
ldrh r1, [r4, r1]
cmp r3, r1, lsr #4
bls .L4328
movw r3, #2808
ldrh r3, [r4, r3]
cmp r3, r2
bls .L4328
.L4329:
ldrb r2, [r5, #-3119] @ zero_extendqisi2
mov r1, #0
bl gc_add_sblk
cmp r0, #0
beq .L4330
mov r3, #1
strb r3, [r5, #-144]
mov r3, #0
str r3, [r5, #-140]
b .L4435
.L4328:
mov r3, #0
strh r3, [r10, #-6] @ movhi
.L4330:
cmp r8, #15
movls r9, #2
bls .L4331
movw r3, #2794
clz r9, r9
ldrh r2, [r4, r3]
lsr r9, r9, #5
ldrh r3, [r10, #-2]
cmp r2, r3
orrhi r9, r9, #1
cmp r9, #0
movne r9, #2
moveq r9, #1
.L4331:
ldr r3, .L4535+8
ldr r3, [r3]
tst r3, #256
beq .L4332
ldrh r1, [r7, #80]
ldr r3, [r4, #1096]
ldrb r2, [r5, #-3119] @ zero_extendqisi2
str r1, [sp, #16]
ldrh r1, [r3, #122]
ldr r0, .L4535+12
str r1, [sp, #12]
ldrh r1, [r3, #120]
str r1, [sp, #8]
movw r1, #2807
ldrh r3, [r3, #124]
str r8, [sp]
str r3, [sp, #4]
mov r3, r6
bl printk
.L4332:
mov r2, #1
mov r1, r9
ldrb r0, [r5, #-3119] @ zero_extendqisi2
bl gc_search_src_blk
cmp r0, #0
ble .L4333
.L4334:
mov r3, #1
.L4533:
strb r3, [r5, #-144]
b .L4435
.L4333:
mov r2, #1
mov r1, #3
ldrb r0, [r5, #-3119] @ zero_extendqisi2
bl gc_search_src_blk
cmp r0, #0
bgt .L4334
b .L4435
.L4325:
cmp r10, #1
bne .L4335
ldr r3, [r4, #2800]
ldrh r3, [r3, #150]
cmp r3, #0
beq .L4336
movw r3, #2788
ldrh r3, [r4, r3]
cmp r3, #8
bls .L4336
bl gc_ink_check_sblk
.L4336:
bl gc_scan_static_data
ldr r3, [r4, #1096]
ldrh r3, [r3, #122]
cmp r3, #0
beq .L4337
.L4338:
mov r3, #1
strb r3, [r5, #-3119]
b .L4533
.L4337:
bl gc_static_wearleveling
subs r7, r0, #0
bne .L4338
bl gc_block_vpn_scan
cmp r8, #0
ldr fp, .L4535+60
beq .L4339
cmp r6, r9
bcs .L4340
ldrh r3, [fp, #-4]
cmp r3, r6
bhi .L4341
.L4340:
ldrh r2, [fp, #-4]
add r3, r6, r9
cmp r3, r2
blt .L4341
movw r3, #2794
ldrh r2, [r4, r3]
ldrh r3, [fp, #-2]
cmp r2, r3
bcc .L4339
.L4341:
mov r1, #1
mov r0, #16
strb r1, [r5, #-3119]
str r1, [sp, #24]
bl zftl_get_gc_node.part.10
movw r2, #65535
cmp r0, r2
beq .L4342
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldr r1, [sp, #24]
ldrh r3, [r2, r3]
ldrh r2, [r5, #-136]
cmp r3, r2
movcs r3, #0
movcc r3, #1
cmp r6, #2
movls r3, #0
cmp r3, #0
beq .L4342
mov r2, #0
strb r2, [r5, #-3119]
str r2, [r5, #-140]
bl gc_add_sblk
cmp r0, #0
bne .L4334
.L4342:
mov r1, #0
ldr r0, .L4535+16
bl _list_get_gc_head_node
movw r2, #65535
cmp r0, r2
beq .L4343
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
ldrh r2, [r5, #-136]
cmp r3, r2
movcs r3, #0
movcc r3, #1
cmp r6, #2
movls r3, #0
cmp r3, #0
beq .L4343
mov r2, #0
mov r1, #1
strb r2, [r5, #-3119]
str r2, [r5, #-140]
bl gc_add_sblk
cmp r0, #0
bne .L4334
.L4343:
ldrh r3, [r5, #-136]
ldrh r2, [fp, #-8]
ldr r0, .L4535+16
add r3, r3, #1
ldr r1, [r5, #-140]
uxth r3, r3
str r2, [sp, #28]
cmp r3, r2, lsr #5
strh r3, [r5, #-136] @ movhi
add r1, r1, #1
movhi r3, #4
str r1, [r5, #-140]
strhhi r3, [r5, #-136] @ movhi
mov r3, #0
strh r3, [r0, #-8] @ movhi
strh r3, [r0, #-6] @ movhi
strh r3, [r0, #-4] @ movhi
movw r0, #1080
ldrh r0, [r4, r0]
cmp r1, r0, lsr #5
bls .L4345
movw r1, #2794
ldrh r1, [r4, r1]
cmp r1, r8
bls .L4345
mov r1, r3
sub r0, fp, #12
str r3, [sp, #24]
bl _list_get_gc_head_node
movw r1, #65535
ldr r3, [sp, #24]
cmp r0, r1
ldr r2, [sp, #28]
bne .L4346
.L4519:
mov r7, #16
b .L4347
.L4346:
ldr r1, [r4, #1092]
lsl r0, r0, #1
ldrh r1, [r1, r0]
ldrb r0, [r5, #-3127] @ zero_extendqisi2
mul r2, r2, r0
cmp r1, r2
strle r3, [r5, #-140]
movle r2, #4
bgt .L4519
.L4527:
mov r1, #2
.L4518:
ldrb r0, [r5, #-3119] @ zero_extendqisi2
bl gc_search_src_blk
uxth r0, r0
cmp r0, #0
beq .L4519
b .L4334
.L4345:
movw r3, #2794
ldrh r2, [r4, r3]
ldrh r3, [fp, #-2]
cmp r2, r3
movcs r2, #1
bcs .L4527
.L4350:
movw r3, #2790
ldrh r3, [r4, r3]
cmp r3, #0
bne .L4351
movw r3, #2792
ldrh r3, [r4, r3]
cmp r3, #8
bls .L4352
.L4351:
mov r2, #4
mov r1, #1
b .L4518
.L4352:
ldr r2, .L4535+40
movw r3, #2106
ldrh r3, [r2, r3]
cmp r3, #0
bne .L4519
.L4347:
ldr r3, [r4, #2812]
cmp r3, #0
beq .L4353
mov r3, #0
mov r1, #0
str r3, [r4, #2812]
subs r3, r8, r3
movne r3, #1
cmp r6, #15
movhi r3, #0
ldr r0, .L4535+20
cmp r3, #0
movne r3, #1
strb r3, [r5, #-3119]
bl _list_get_gc_head_node
movw r2, #65535
cmp r0, r2
beq .L4356
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #8
bhi .L4356
mov r3, #1
ldrb r2, [r5, #-3119] @ zero_extendqisi2
mov r1, #0
str r3, [r4, #2812]
bl gc_add_sblk
cmp r0, #0
bne .L4334
.L4356:
mov r1, #0
ldr r0, .L4535+16
bl _list_get_gc_head_node
movw r2, #65535
cmp r0, r2
beq .L4357
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #4
bhi .L4357
mov r3, #1
ldrb r2, [r5, #-3119] @ zero_extendqisi2
mov r1, #0
str r3, [r4, #2812]
bl gc_add_sblk
cmp r0, #0
bne .L4334
.L4357:
mov r0, #0
bl zftl_get_gc_node.part.10
movw r2, #65535
cmp r0, r2
beq .L4353
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #4
bhi .L4353
mov r1, #1
ldrb r2, [r5, #-3119] @ zero_extendqisi2
str r1, [r4, #2812]
bl gc_add_sblk
cmp r0, #0
bne .L4334
.L4353:
ldr r3, [r4, #1096]
mov r1, #1
strb r1, [r5, #-3119]
ldrh fp, [r3, #124]
cmp fp, #0
movne r3, #0
strbne r1, [r5, #-144]
strbne r3, [r5, #-3119]
bne .L4309
movw r3, #2804
ldrh r2, [r4, r3]
cmp r6, r2
bcs .L4359
cmp r8, #0
beq .L4360
cmp r8, #16
bls .L4361
ldr r6, .L4535+60
movw r3, #2794
ldrh r2, [r4, r3]
ldrh r3, [r6, #-2]
cmp r2, r3
bhi .L4361
mov r2, #4
mov r0, r1
bl gc_search_src_blk
uxth r0, r0
cmp r0, #0
bne .L4362
.L4523:
ldrb r0, [r5, #-3119] @ zero_extendqisi2
mov r2, #4
mov r1, #3
.L4525:
bl gc_search_src_blk
uxth r0, r0
.L4363:
cmp r0, #0
bne .L4365
b .L4309
.L4339:
ldrh r3, [r5, #-136]
ldrh r2, [fp, #-8]
cmp r3, r2, lsr #5
movcs r3, #4
strhcs r3, [r5, #-136] @ movhi
b .L4519
.L4335:
movw r3, #2804
ldrh r3, [r4, r3]
cmp r3, r6
bcs .L4519
ldr r3, [r4, #1096]
ldrh r3, [r3, #124]
cmp r3, #0
beq .L4435
b .L4519
.L4362:
mov r1, fp
sub r0, r6, #12
bl _list_get_gc_head_node
movw r3, #65535
cmp r0, r3
beq .L4365
ldr r1, [r4, #1092]
lsl r2, r0, #1
ldr r3, [r5, #-140]
ldrh r2, [r1, r2]
ldrh r1, [r6, #-8]
add r3, r3, #1
str r3, [r5, #-140]
cmp r1, r2
bcs .L4366
movw r1, #1080
ldrh r1, [r4, r1]
cmp r3, r1, lsr #4
bls .L4365
movw r3, #2808
ldrh r3, [r4, r3]
cmp r3, r2
bls .L4365
.L4366:
ldrb r2, [r5, #-3119] @ zero_extendqisi2
mov r1, #0
bl gc_add_sblk
mov r3, #1
str r3, [r4, #2812]
mov r3, #0
str r3, [r5, #-140]
.L4365:
mov r3, #1
b .L4526
.L4361:
mov r2, #1
mov r1, #2
mov r0, r2
.L4529:
bl gc_search_src_blk
uxth r0, r0
cmp r0, #0
bne .L4365
b .L4523
.L4360:
cmp r6, #16
strb r8, [r5, #-3119]
movhi r2, #4
movhi r1, #3
movhi r0, r8
bhi .L4525
mov r2, r1
mov r0, r8
b .L4529
.L4359:
cmp r10, #1
bne .L4309
cmp r6, r2, lsl #1
bge .L4369
cmp r9, r8, lsr #1
bcs .L4370
ldr r2, .L4535+60
movw r1, #2794
ldrh r0, [r4, r1]
ldrh r1, [r2, #-2]
cmp r0, r1
ldrhcc r2, [r2, #-4]
lsrcc r2, r2, #2
strhcc r2, [r4, r3] @ movhi
bcc .L4309
.L4370:
mov r0, #8
bl zftl_get_gc_node.part.10
movw r2, #65535
cmp r0, r2
beq .L4371
ldr r2, [r4, #1092]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #3
movhi r3, #0
movls r3, #1
cmp r6, #0
moveq r3, #0
cmp r3, #0
beq .L4371
mov r2, #0
mov r1, #1
strb r2, [r5, #-3119]
bl gc_add_sblk
cmp r0, #0
bne .L4365
.L4371:
mov r1, #0
ldr r0, .L4535+20
bl _list_get_gc_head_node
movw r3, #65535
mov fp, r0
cmp r0, r3
ldr r10, .L4535+60
bne .L4372
.L4377:
cmp r8, #1
bhi .L4373
.L4374:
cmp r6, r9
bcs .L4381
mov r6, #0
mov r0, #4
strb r6, [r5, #-3119]
bl zftl_get_gc_node.part.10
movw r3, #65535
cmp r0, r3
beq .L4381
ldr r3, [r4, #1092]
lsl r0, r0, #1
ldrh r1, [r10, #-8]
ldrh r2, [r3, r0]
ldrb r3, [r5, #-3127] @ zero_extendqisi2
mul r3, r3, r1
cmp r2, r3, asr #1
ble .L4383
.L4381:
ldrh r3, [r10, #-4]
movw r2, #2804
lsr r3, r3, #2
strh r3, [r4, r2] @ movhi
.L4309:
mov r0, r7
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4372:
movw r2, #1080
ldr r3, [r5, #-140]
ldrh r2, [r4, r2]
add r3, r3, #1
str r3, [r5, #-140]
cmp r3, r2, lsr #4
lsl r3, r0, #1
str r3, [sp, #24]
bls .L4375
ldr r3, [r4, #1092]
lsl r2, r0, #1
mov r1, #0
str r1, [r5, #-140]
ldrh r2, [r3, r2]
movw r3, #2808
ldrh r3, [r4, r3]
cmp r2, r3
bcs .L4375
mov r3, #1
mov r2, r3
strb r3, [r5, #-3119]
str r3, [sp, #24]
bl gc_add_sblk
cmp r0, #0
ldr r3, [sp, #24]
beq .L4375
.L4526:
strb r3, [r5, #-144]
b .L4309
.L4375:
ldr r3, [r4, #1092]
lsl r2, fp, #1
ldrh r2, [r3, r2]
ldrh r3, [r10, #-8]
cmp r2, r3, lsr #1
bhi .L4376
mov r2, #0
mov r1, #1
mov r0, fp
bl gc_add_sblk
b .L4365
.L4376:
movw r3, #2790
movw r1, #2792
ldrh r1, [r4, r1]
ldrh r3, [r4, r3]
add r3, r3, r1
ldrh r1, [r10, #-4]
cmp r3, r1, lsl #1
ble .L4377
movw r3, #2808
ldrh r3, [r4, r3]
cmp r3, r2
bcc .L4374
b .L4377
.L4373:
cmp r8, #16
mov r1, #1
strb r1, [r5, #-3119]
bls .L4378
movw r3, #2794
ldrh r2, [r4, r3]
ldrh r3, [r10, #-2]
cmp r2, r3
movls r2, #4
movls r0, r1
bls .L4531
.L4378:
mov r2, #1
mov r1, #2
mov r0, r2
.L4531:
bl gc_search_src_blk
uxth r0, r0
cmp r0, #0
bne .L4379
mov r2, #4
mov r1, #3
ldrb r0, [r5, #-3119] @ zero_extendqisi2
bl gc_search_src_blk
uxth r0, r0
.L4379:
ldrh r3, [r10, #-4]
cmp r6, r9, lsr #1
movw r2, #2804
lsrhi r3, r3, #2
lsrls r3, r3, #1
.L4524:
strh r3, [r4, r2] @ movhi
b .L4363
.L4383:
mov r2, #4
mov r1, #3
mov r0, r6
bl gc_search_src_blk
ldrh r3, [r10, #-4]
uxth r0, r0
movw r2, #2804
lsr r3, r3, #1
b .L4524
.L4369:
ldr r2, .L4535+60
ldrh r2, [r2, #-4]
lsr r2, r2, #2
strh r2, [r4, r3] @ movhi
movw r3, #2106
ldr r2, .L4535+40
ldrh r3, [r2, r3]
cmp r3, #0
moveq r7, #0
b .L4309
.L4314:
movw r6, #2824
movw r3, #65535
ldrh r2, [r4, r6]
cmp r2, r3
bne .L4384
bl gc_get_src_blk
strh r0, [r4, r6] @ movhi
.L4384:
movw r3, #2824
movw r1, #65535
ldrh r2, [r4, r3]
cmp r2, r1
beq .L4385
movw r1, #1080
ldrh r1, [r4, r1]
cmp r1, r2
mvnls r2, #0
strhls r2, [r4, r3] @ movhi
.L4385:
movw r3, #2824
movw r1, #65535
ldrh r3, [r4, r3]
ldr r2, .L4535+40
cmp r3, r1
beq .L4534
ldrh ip, [r2, #52]
ldr r1, [r4, #1084]
cmp ip, #0
addne r2, r2, #52
movne r0, #0
add r1, r1, r3, lsl #2
bne .L4388
.L4387:
ldrb r2, [r1, #2] @ zero_extendqisi2
tst r2, #192
and r2, r2, #224
moveq r1, #1
movne r1, #0
cmp r2, #224
movne r2, r1
orreq r2, r1, #1
cmp r2, #0
beq .L4390
ldr r2, [r4, #1092]
lsl r3, r3, #1
ldrh r3, [r2, r3]
cmp r3, #0
beq .L4392
movw r2, #3306
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
b .L4392
.L4388:
uxth lr, r0
cmp lr, ip
bcs .L4387
ldrh lr, [r2, #2]!
add r0, r0, #1
cmp lr, r3
bne .L4388
.L4392:
mvn r2, #0
movw r3, #2824
strh r2, [r4, r3] @ movhi
b .L4435
.L4390:
mov r3, #2
b .L4533
.L4315:
bl gc_scan_src_blk
cmn r0, #1
moveq r3, #3
beq .L4533
movw r3, #2824
ldr r2, .L4535+40
ldrh r3, [r4, r3]
movw r1, #65535
mov r6, r2
cmp r3, r1
beq .L4334
ldrh r1, [r2, #20]
cmp r1, #0
movne r3, #4
strbne r3, [r5, #-144]
movne r3, #0
strhne r3, [r2, #22] @ movhi
bne .L4435
.L4394:
mov r2, #1
lsl r3, r3, #1
strb r2, [r5, #-144]
ldr r2, [r4, #1092]
ldrh r3, [r2, r3]
cmp r3, #0
beq .L4395
movw r2, #3336
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
.L4395:
movw r5, #2824
ldrh r0, [r4, r5]
bl ftl_free_sblk
ldrh r3, [r4, r5]
mov r5, #0
ldr r2, [r4, #1092]
lsl r3, r3, #1
strh r5, [r2, r3] @ movhi
ldrh r3, [r6, #26]
add r3, r3, #1
uxth r3, r3
cmp r3, #8
strhls r3, [r6, #26] @ movhi
bls .L4392
strh r5, [r6, #26] @ movhi
bl ftl_flush
bl pm_flush
bl ftl_ext_info_flush
mov r0, r5
bl ftl_info_flush
b .L4392
.L4316:
ldr r7, .L4535+40
mov r8, r7
.L4489:
bl gc_scan_src_blk_one_page
ldr r3, .L4535+24
ldrh r2, [r7, #2]
ldrh r3, [r3]
cmp r2, r3
bcs .L4398
cmp r6, #7
bls .L4489
b .L4435
.L4398:
ldrh r3, [r7, #20]
ldrh r1, [r7]
cmp r3, #0
beq .L4399
mov r2, #4
ldr r0, [r4, #1092]
strb r2, [r5, #-144]
mov r2, #0
strh r2, [r7, #22] @ movhi
lsl r2, r1, #1
ldrh r2, [r0, r2]
cmp r3, r2
beq .L4400
ldr r0, .L4535+8
ldr r0, [r0]
tst r0, #1024
beq .L4400
ldr r0, .L4535+28
bl printk
.L4400:
movw r3, #2824
ldr r2, [r4, #1092]
ldrh r3, [r4, r3]
lsl r3, r3, #1
ldrh r2, [r2, r3]
ldrh r3, [r8, #20]
cmp r2, r3
beq .L4401
movw r2, #3379
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
.L4401:
movw r3, #2824
ldrh r1, [r8, #20]
ldrh r3, [r4, r3]
ldr r2, [r4, #1092]
lsl r3, r3, #1
strh r1, [r2, r3] @ movhi
b .L4435
.L4399:
mov r3, #1
ldr r6, [r4, #1084]
strb r3, [r5, #-144]
ldr r3, .L4535+8
add r6, r6, r1, lsl #2
ldr r3, [r3]
tst r3, #256
beq .L4402
ldrb r2, [r6, #2] @ zero_extendqisi2
ldr r0, .L4535+32
lsr r2, r2, #5
bl printk
.L4402:
ldrb r3, [r6, #2] @ zero_extendqisi2
and r2, r3, #224
and r3, r3, #192
cmp r3, #0
cmpne r2, #224
bne .L4403
movw r2, #3389
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
.L4403:
movw r5, #2824
ldrh r0, [r4, r5]
bl ftl_free_sblk
mvn r3, #0
strh r3, [r4, r5] @ movhi
ldrh r3, [r8, #26]
add r3, r3, #1
uxth r3, r3
cmp r3, #8
movhi r3, #0
strhls r3, [r8, #26] @ movhi
strhhi r3, [r8, #26] @ movhi
bls .L4435
.L4532:
bl flt_sys_flush
b .L4435
.L4317:
cmp r10, #0
bne .L4405
movw r3, #2804
ldrh r3, [r4, r3]
cmp r3, r6
bcc .L4435
.L4405:
ldrh r2, [r7, #80]
movw r3, #65535
cmp r2, r3
bne .L4406
ldrb r8, [r5, #-3119] @ zero_extendqisi2
cmp r8, #1
bne .L4406
ldr r9, .L4535+40
bl ftl_flush
movw r3, #2180
mov r1, #5
ldrh r0, [r9, r3]
cmp r0, #0
movne r0, r8
bl zftl_gc_get_free_sblk
movw r3, #65535
mov r6, r0
cmp r0, r3
beq .L4409
ldr r8, [r4, #1084]
add r8, r8, r0, lsl #2
ldrb r3, [r8, #2] @ zero_extendqisi2
tst r3, #224
beq .L4410
movw r2, #3423
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
.L4410:
ldrb r3, [r8, #2] @ zero_extendqisi2
and r3, r3, #15
orr r3, r3, #176
strb r3, [r8, #2]
.L4434:
mov r1, #1
mov r0, r6
bl ftl_erase_sblk
mov r3, #5
add r1, r7, #96
strb r3, [r7, #84]
mov r0, r6
bl ftl_get_blk_list_in_sblk
ldr r2, .L4535+60
uxtb r0, r0
mov r8, #0
strh r6, [r7, #80] @ movhi
strb r0, [r7, #89]
mov r1, #255
ldrh r3, [r2, #-8]
strh r8, [r7, #82] @ movhi
strb r8, [r7, #85]
strh r8, [r7, #90] @ movhi
smulbb r0, r3, r0
ldrh r3, [r2, #-30]
strh r0, [r7, #86] @ movhi
sub r7, r2, #16
ldrb r2, [r5, #-3127] @ zero_extendqisi2
ldr r0, [r5, #-132]
mul r2, r2, r3
lsl r2, r2, #2
bl ftl_memset
ldrh r3, [r7, #-14]
mov r1, #255
ldrb r2, [r5, #-3127] @ zero_extendqisi2
ldr r0, [r5, #-128]
mul r2, r2, r3
lsl r2, r2, #2
bl ftl_memset
ldrh r3, [r7, #-14]
mov r1, #255
ldrb r2, [r5, #-3127] @ zero_extendqisi2
ldr r0, [r5, #-3124]
mvn r5, #0
mul r2, r2, r3
bl ftl_memset
ldr r3, [r4, #1096]
strh r5, [r3, #128] @ movhi
strh r5, [r3, #130] @ movhi
str r6, [r3, #132]
bl pm_flush
bl ftl_ext_info_flush
ldr r3, [r4, #2800]
movw r2, #2182
mov r0, r8
strh r8, [r9, #52] @ movhi
strh r6, [r3, #126] @ movhi
movw r3, #2102
strh r8, [r9, r3] @ movhi
ldr r3, .L4535+36
strh r8, [r9, r2] @ movhi
strh r8, [r3] @ movhi
str r5, [r3, #80]
bl ftl_info_flush
b .L4435
.L4536:
.align 2
.L4535:
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR2
.word .LC299
.word .LANCHOR3-3104
.word .LANCHOR3-3100
.word .LANCHOR3-3096
.word .LC300
.word .LC301
.word .LANCHOR0+4928
.word .LANCHOR0+2824
.word .LANCHOR0+4096
.word 1145785929
.word .LANCHOR3-3136
.word .LANCHOR0+1088
.word .LANCHOR3-3088
.word .LANCHOR1+2525
.word .LC0
.L4406:
cmp r10, #1
movne r8, #1
moveq r8, #4
cmp r6, #15
ldr r6, .L4535+40
addls r8, r8, #4
add r10, r6, #2176
add r10, r10, #6
.L4413:
sub r8, r8, #1
uxtb r8, r8
cmp r8, #255
beq .L4435
bl gc_do_copy_back
ldrb r3, [r5, #-3119] @ zero_extendqisi2
cmp r3, #0
bne .L4414
ldrb r3, [r4, #2769] @ zero_extendqisi2
cmp r3, #3
bhi .L4415
bl ftl_write_commit
.L4415:
ldrh r2, [r6, #22]
ldrh r3, [r6, #20]
cmp r2, r3
bcc .L4413
mov r3, #1
strb r3, [r5, #-144]
bl ftl_write_commit
bl ftl_flush
ldrh r3, [r6]
ldr r2, [r4, #1092]
lsl r3, r3, #1
ldrh r3, [r2, r3]
cmp r3, #0
beq .L4417
movw r2, #3507
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
.L4417:
movw r3, #2824
ldr r2, [r4, #1092]
ldrh r0, [r4, r3]
lsl r3, r0, #1
ldrh r3, [r2, r3]
cmp r3, #0
bne .L4418
bl ftl_free_sblk
b .L4392
.L4418:
mov r2, #1
mov r1, #0
bl gc_add_sblk
b .L4392
.L4414:
ldrh r3, [r10]
cmp r3, #0
beq .L4419
ldr r8, .L4535+44
mov r3, #0
strh r3, [r10] @ movhi
bl sblk_wait_write_queue_completed
bl gc_write_completed
ldr r0, [r8, #912]
cmn r0, #1
beq .L4420
ldrb r3, [r5, #-2542] @ zero_extendqisi2
cmp r3, #0
bne .L4421
ldrb r3, [r5, #-3126] @ zero_extendqisi2
cmp r3, #0
beq .L4422
.L4421:
ldr r3, [r4, #2800]
ldr r2, [r3, #156]
ldr r3, .L4535+48
cmp r2, r3
bne .L4422
ldr r7, .L4535+52
ldrb r3, [r4, #1153] @ zero_extendqisi2
ldrb r1, [r5, #-3136] @ zero_extendqisi2
ldrh r2, [r7, #-2]
rsb r3, r3, #24
sub r3, r3, r2
lsr r2, r0, r2
mvn r0, #0
bic r0, r2, r0, lsl r3
bl __aeabi_uidiv
ldr r3, [r4, #1084]
lsl lr, r0, #2
add ip, r3, lr
ldrb r2, [ip, #2] @ zero_extendqisi2
tst r2, #8
beq .L4420
ldrh r1, [r9]
ldrh r7, [r7, #44]
add r1, r1, #8
cmp r1, r7
bge .L4420
ldr r1, .L4535+56
bfc r2, #3, #2
strb r2, [ip, #2]
ldr r2, [r3, r0, lsl #2]
ldrh r1, [r1]
ldrh ip, [r3, lr]
ubfx r2, r2, #11, #8
mul r1, r2, r1
ubfx r7, ip, #0, #11
lsr r2, r2, #3
add r1, r1, r1, lsl #1
add r1, r7, r1, asr #2
bfi ip, r1, #0, #11
strh ip, [r3, lr] @ movhi
ldr r1, [r3, r0, lsl #2]
bfi r1, r2, #11, #8
str r1, [r3, r0, lsl #2]
.L4420:
ldr r3, [r4, #1096]
mov r7, #0
str r7, [r8, #912]
strh r7, [r6, #52] @ movhi
ldrh r0, [r3, #80]
bl ftl_free_sblk
ldr r0, [r4, #2832]
mvn r3, #0
ldr r2, [r4, #1096]
ldr r1, [r4, #2800]
cmp r0, r7
strh r3, [r2, #80] @ movhi
strh r3, [r1, #126] @ movhi
strh r3, [r2, #130] @ movhi
beq .L4423
bl zbuf_free
.L4423:
str r7, [r4, #2832]
bl flt_sys_flush
movw r2, #3567
ldr r1, .L4535+64
ldr r0, .L4535+68
strb r7, [r5, #-144]
bl printk
bl dump_stack
b .L4435
.L4422:
bl ftl_mask_bad_block
b .L4420
.L4419:
ldrh r3, [r7, #86]
ldrh r2, [r6, #22]
cmp r3, #1
ldrh r3, [r6, #20]
bls .L4424
cmp r2, r3
bcc .L4413
mov r3, #1
strb r3, [r5, #-144]
ldrh r3, [r6, #52]
add r2, r3, #1
strh r2, [r6, #52] @ movhi
add r3, r6, r3, lsl #1
ldrh r2, [r6]
strh r2, [r3, #54] @ movhi
mvn r3, #0
strh r3, [r6] @ movhi
b .L4435
.L4424:
cmp r2, r3
mov r1, #5
strb r1, [r5, #-144]
bcc .L4425
ldrh r3, [r6, #52]
add r2, r3, #1
strh r2, [r6, #52] @ movhi
add r3, r6, r3, lsl #1
ldrh r2, [r6]
strh r2, [r3, #54] @ movhi
mvn r3, #0
strh r3, [r6] @ movhi
.L4425:
bl ftl_flush
bl sblk_wait_write_queue_completed
bl gc_write_completed
ldrh r2, [r7, #80]
ldr r3, [r4, #1096]
strh r2, [r3, #128] @ movhi
bl pm_flush
bl ftl_ext_info_flush
ldr r2, .L4535+60
mov r3, #0
ldrb r1, [r4, #1158] @ zero_extendqisi2
strh r3, [r6, #12] @ movhi
ldrh r3, [r2, #-8]
cmp r1, #0
ldrhne r2, [r2, #-30]
strh r3, [r6, #14] @ movhi
ldrb r3, [r5, #-3128] @ zero_extendqisi2
strhne r2, [r6, #14] @ movhi
movne r2, #1
strh r3, [r6, #16] @ movhi
strhne r2, [r6, #16] @ movhi
cmp r3, #2
bne .L4428
ldrh r3, [r6, #14]
lsl r3, r3, #1
strh r3, [r6, #14] @ movhi
ldrb r3, [r5, #-3126] @ zero_extendqisi2
cmp r3, #0
moveq r3, #1
strheq r3, [r6, #16] @ movhi
.L4428:
mov r3, #0
strh r3, [r6, #18] @ movhi
b .L4435
.L4431:
ldrh r2, [r8, #12]
ldrh r3, [r8, #14]
cmp r2, r3
bcc .L4432
mov r3, #6
ldr r0, [r4, #2832]
strb r3, [r5, #-144]
bl zbuf_free
str r9, [r4, #2832]
b .L4435
.L4432:
cmp r6, #15
bls .L4320
cmp r10, #1
bne .L4435
add r7, r7, #1
uxtb r7, r7
cmp r7, #4
bls .L4320
b .L4435
.L4319:
bl gc_update_l2p_map_new
bl gc_free_src_blk
bl ftl_flush
mvn r6, #0
bl pm_flush
strh r6, [r7, #80] @ movhi
bl ftl_ext_info_flush
ldr r3, [r4, #2800]
mov r0, #0
strh r6, [r3, #126] @ movhi
bl ftl_info_flush
.L4534:
mov r3, #0
b .L4533
.L4409:
movw r2, #3430
ldr r1, .L4535+64
ldr r0, .L4535+68
bl printk
bl dump_stack
b .L4434
.fnend
.size zftl_do_gc, .-zftl_do_gc
.align 2
.global zftl_init
.syntax unified
.arm
.fpu softvfp
.type zftl_init, %function
zftl_init:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mvn r3, #0
ldr r5, .L4617
mov r6, #0
.pad #28
sub sp, sp, #28
ldr r4, .L4617+4
ldr r9, .L4617+8
ldr r1, .L4617+12
ldr r0, .L4617+16
strb r3, [r4, #2820]
strb r3, [r5, #-2536]
strb r3, [r5, #-88]
str r3, [r5]
strb r6, [r4, #2796]
strb r6, [r5, #-2535]
strb r6, [r4, #2797]
bl printk
ldrb r3, [r9, #16] @ zero_extendqisi2
sub r2, r5, #3104
ldrb r8, [r9, #13] @ zero_extendqisi2
str r3, [sp, #4]
ldrb r3, [sp, #4] @ zero_extendqisi2
ldr r1, [sp, #4]
lsl r10, r8, #9
strb r8, [r5, #-2546]
strb r3, [r5, #-3128]
uxth r10, r10
ldrh r3, [r9, #14]
strh r3, [r2, #-14] @ movhi
mov r0, r3
str r3, [sp, #12]
bl __aeabi_idiv
str r0, [sp, #8]
sub r2, r5, #3088
ldrh r3, [sp, #8]
mov r1, #1
ldrb r7, [r4, #1109] @ zero_extendqisi2
ldrh fp, [r9, #18]
strh r3, [r2, #-8] @ movhi
ldrb r2, [r9, #17] @ zero_extendqisi2
strb r7, [r5, #-3072]
ldr r3, [sp, #12]
ldrh r0, [r4, #2]
smulbb r7, r7, r2
strb r2, [r5, #-3136]
movw r2, #1080
strh r10, [r5, #-14] @ movhi
strh fp, [r4, r2] @ movhi
sub r2, r5, #3072
uxtb r7, r7
strh r0, [r2, #-2] @ movhi
strb r7, [r5, #-3127]
.L4538:
cmp r0, r1
uxth r2, r6
add r6, r6, #1
bcs .L4539
ldr r1, .L4617+20
sub r2, r2, #1
mov ip, #0
mov r0, #1
strh r2, [r1, #-2] @ movhi
mul r2, r3, r8
mul r1, r2, fp
str r2, [sp, #12]
lsr lr, r1, #21
.L4540:
cmp lr, r0
uxth r2, ip
add ip, ip, #1
bcs .L4541
ldr r9, .L4617+24
sub r2, r2, #1
uxth r2, r2
mul r1, r7, r1
ldr r6, .L4617
lsr fp, fp, #4
str r3, [sp, #20]
mul r0, r9, r7
str r1, [r4, #2776]
mov r1, r8
sub r8, r6, #3088
lsl r9, r0, r2
add r2, r9, #24576
str r9, [r4, #1032]
str r2, [r6, #4]
mov r0, r2
str r2, [sp, #16]
bl __aeabi_uidiv
sub ip, r10, #1
str r0, [r4, #2780]
mov r1, r10
add r0, ip, r0, lsl #2
bl __aeabi_uidiv
ldr r3, [sp, #8]
strh r0, [r6, #8] @ movhi
uxth r0, r0
lsl r0, r0, #4
mul r1, r7, r3
bl __aeabi_idiv
ldr r3, [sp, #12]
ldr r2, [sp, #16]
strh r0, [r6, #-176] @ movhi
mul r1, r7, r3
mov r0, r2
sub r1, r1, #1
bl __aeabi_uidiv
cmp fp, #79
strh fp, [r8, #-4] @ movhi
movls r2, #80
mov r1, #2000
strhls r2, [r8, #-4] @ movhi
add r0, r0, #8
ldr r2, .L4617+28
strh r0, [r8, #-2] @ movhi
mov r0, #32
ldr r3, [sp, #20]
strh r1, [r2, #-10] @ movhi
mov r1, #50
strh r1, [r2, #-12] @ movhi
mov r1, #256
strh r1, [r6, #-180] @ movhi
mov r1, #48
strh r1, [r6, #-178] @ movhi
ldr r1, .L4617+32
strh r0, [r1] @ movhi
ldr r1, [sp, #4]
cmp r1, #2
mov r1, r2
beq .L4543
ldrb ip, [r6, #-3120] @ zero_extendqisi2
cmp ip, #0
beq .L4544
.L4543:
mov r2, #150
mov r0, #12
strh r2, [r1, #-12] @ movhi
mov r2, #64
strh r2, [r6, #-178] @ movhi
ldr r2, .L4617+32
strh r0, [r2] @ movhi
ldrb r0, [r4] @ zero_extendqisi2
cmp r0, #0
moveq r0, #4
strheq r0, [r2] @ movhi
moveq r2, #600
strheq r2, [r1, #-10] @ movhi
moveq r2, #128
strheq r2, [r6, #-180] @ movhi
ldrb r2, [r4, #1159] @ zero_extendqisi2
cmp r2, #0
movne r2, #200
strhne r2, [r1, #-12] @ movhi
movne r2, #2000
strhne r2, [r1, #-10] @ movhi
.L4547:
mul r7, r7, r3
mov r2, #0
str r2, [r4, #2812]
mov r2, #1
strb r2, [r6, #-11]
cmp r10, r7, lsl #2
ldr r7, .L4617+8
movlt r3, #2
strblt r3, [r6, #-11]
ldr r3, [r7]
tst r3, #4096
beq .L4550
mov r1, r9
ldr r0, .L4617+36
bl printk
.L4550:
ldr r3, [r7]
tst r3, #4096
beq .L4551
ldr r1, [r4, #2776]
ldr r0, .L4617+40
bl printk
.L4551:
ldr r3, [r7]
tst r3, #4096
beq .L4552
ldr r1, [r4, #2780]
ldr r0, .L4617+44
bl printk
.L4552:
ldr r3, [r7]
tst r3, #4096
beq .L4553
ldr r1, [r6, #4]
ldr r0, .L4617+48
bl printk
.L4553:
ldr r3, [r7]
tst r3, #4096
beq .L4554
ldrh r1, [r6, #8]
ldr r0, .L4617+52
bl printk
.L4554:
ldr r3, [r7]
tst r3, #4096
beq .L4555
ldrh r1, [r6, #-14]
ldr r0, .L4617+56
bl printk
.L4555:
ldr r3, [r7]
tst r3, #4096
beq .L4556
ldrh r1, [r6, #-176]
ldr r0, .L4617+60
bl printk
.L4556:
ldr r3, [r7]
tst r3, #4096
beq .L4557
ldrh r1, [r8, #-4]
ldr r0, .L4617+64
bl printk
.L4557:
ldr r3, [r7]
tst r3, #4096
beq .L4558
ldrh r1, [r8, #-2]
ldr r0, .L4617+68
bl printk
.L4558:
bl zbuf_init
mov r0, #16384
movw r9, #1080
bl ftl_malloc
str r0, [r5, #-52]
mov r0, #16384
bl ftl_malloc
str r0, [r5, #-44]
mov r0, #16384
bl ftl_malloc
str r0, [r5, #12]
mov r0, #256
bl ftl_dma32_malloc
str r0, [r5, #-76]
mov r0, #256
bl ftl_dma32_malloc
ldrh r3, [r4, r9]
str r0, [r5, #-40]
mov r0, #6
mul r0, r0, r3
bl ftl_dma32_malloc
ldrh r3, [r8, #-8]
str r0, [r4, #1036]
ldrb r0, [r5, #-3127] @ zero_extendqisi2
mul r0, r0, r3
lsl r0, r0, #2
bl ftl_dma32_malloc
ldrh r1, [r8, #-8]
str r0, [r5, #-2552]
ldrb r0, [r5, #-3127] @ zero_extendqisi2
ldr r2, [r5, #-44]
ldrh ip, [r4, r9]
mul r0, r0, r1
str r2, [r5, #-2556]
lsl r1, r0, #1
add r3, r2, r0, lsl #3
ldr r0, [r7]
add r1, r1, ip, lsr #1
str r3, [r4, #1092]
add r1, r2, r1, lsl #2
tst r0, #4096
str r1, [r4, #1096]
beq .L4559
ldr r0, .L4617+72
bl printk
.L4559:
ldrh r2, [r8, #-8]
movw r3, #1080
ldrb r5, [r6, #-3127] @ zero_extendqisi2
ldrh r3, [r4, r3]
mul r5, r5, r2
ldrh r2, [r6, #8]
lsl r8, r3, #2
add r5, r3, r5, lsl #2
ldr r3, [r7]
add r8, r8, r2, lsl #2
lsl r5, r5, #1
tst r3, #4096
add r5, r5, #632
add r8, r8, #704
beq .L4560
ldrh r3, [r6, #-14]
mov r2, r8
mov r1, r5
ldr r0, .L4617+76
bl printk
.L4560:
ldrh r1, [r6, #-14]
cmp r8, r1
cmpls r5, r1
movhi r5, #1
movls r5, #0
bls .L4561
.L4615:
b .L4615
.L4539:
lsl r1, r1, #1
b .L4538
.L4541:
lsl r0, r0, #1
b .L4540
.L4544:
ldrb r1, [r4, #1158] @ zero_extendqisi2
cmp r1, #0
movne r1, #1200
strhne r0, [r2, #-12] @ movhi
strhne r1, [r2, #-10] @ movhi
strhne r0, [r6, #-178] @ movhi
b .L4547
.L4561:
bl sblk_init
bl gc_init
bl ftl_info_blk_init
cmn r0, #1
beq .L4537
bl ftl_ext_info_init
mov r0, #1
bl pm_init
bl lpa_rebuild_hash
ldr r0, [r4, #1096]
mov r1, r5
add r0, r0, #16
bl ftl_open_sblk_recovery
ldr r0, [r4, #1096]
add r1, r0, #16
add r0, r0, #48
bl ftl_open_sblk_recovery
ldr r2, [r4, #2800]
ldr r0, [r4, #1096]
ldr r3, [r2, #8]
add r0, r0, #16
add r3, r3, #16
str r3, [r2, #8]
bl ftl_info_data_recovery
ldr r0, [r4, #1096]
add r0, r0, #48
bl ftl_info_data_recovery
ldr r0, [r4, #1096]
add r0, r0, #80
bl ftl_info_data_recovery
bl gc_recovery
bl pm_flush
mov r0, #1
bl ftl_total_vpn_update
ldrb r3, [r6, #-47] @ zero_extendqisi2
cmp r3, #0
ldrne r2, [r4, #2800]
ldrne r3, [r2, #68]
addne r3, r3, #1
strne r3, [r2, #68]
bl ftl_ext_info_flush
mov r0, #0
bl ftl_info_flush
bl print_ftl_debug_info
ldr r3, [r4, #1096]
ldrh r3, [r3, #124]
cmp r3, #0
bne .L4571
ldr r3, .L4617+80
movw r2, #2788
ldrh r2, [r4, r2]
ldrh r3, [r3]
add r3, r3, r2
cmp r3, #7
ble .L4571
.L4567:
mov r0, #0
.L4537:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4571:
ldr r6, .L4617+80
mov r5, #16384
.L4568:
mov r1, #1
mov r0, #0
bl zftl_do_gc
mov r1, #1
mov r0, r1
bl zftl_do_gc
ldr r3, [r4, #1096]
ldrh r2, [r3, #124]
cmp r2, #0
bne .L4566
ldrh r2, [r3, #80]
movw r3, #65535
cmp r2, r3
bne .L4566
ldr r2, .L4617+84
ldrh r3, [r6]
ldrh r2, [r2]
add r3, r3, r2
cmp r3, #7
bgt .L4567
.L4566:
subs r5, r5, #1
bne .L4568
b .L4567
.L4618:
.align 2
.L4617:
.word .LANCHOR3
.word .LANCHOR0
.word .LANCHOR2
.word .LC1
.word .LC2
.word .LANCHOR3-3136
.word 1892352
.word .LANCHOR3-2528
.word .LANCHOR0+1088
.word .LC302
.word .LC303
.word .LC304
.word .LC305
.word .LC306
.word .LC307
.word .LC308
.word .LC309
.word .LC310
.word .LC311
.word .LC312
.word .LANCHOR0+2784
.word .LANCHOR0+2788
.fnend
.size zftl_init, .-zftl_init
.align 2
.global rk_ftl_init
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_init, %function
rk_ftl_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L4634
mov r0, #68
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r5, #0
ldr r4, .L4634+4
ldr r3, [r3]
str r5, [r4, #-164]
strb r5, [r4, #16]
str r3, [r4, #-168]
str r5, [r4, #-152]
bl ftl_dma32_malloc
cmp r0, r5
str r0, [r4, #-160]
bne .L4620
.L4622:
mvn r5, #0
.L4619:
mov r0, r5
pop {r4, r5, r6, r7, r8, pc}
.L4620:
mov r0, #2048
bl ftl_dma32_malloc
mov r1, r4
str r0, [r4, #20]
str r5, [r1, #24]!
sub r0, r4, #156
str r5, [r4, #-156]
bl rknand_get_reg_addr
ldr r3, [r4, #-156]
cmp r3, #0
beq .L4622
bl rk_nandc_irq_init
mov r3, #2048
mov r2, r5
mov r1, r5
ldr r0, [r4, #20]
bl flash_sram_load_store
bl rknand_flash_cs_init
ldr r3, [r4, #-160]
ldr r2, .L4634+8
ldr r0, [r4, #-156]
str r2, [r3, #40]
ldr r2, .L4634+12
str r2, [r3, #32]
ldr r2, .L4634+16
str r2, [r3, #44]
ldr r2, .L4634+20
str r2, [r3, #48]
ldr r2, .L4634+24
str r2, [r3, #36]
ldr r2, .L4634+28
str r2, [r3, #56]
ldr r2, .L4634+32
str r2, [r3, #20]
ldr r2, .L4634+36
str r2, [r3, #24]
ldr r2, .L4634+40
str r2, [r3, #12]
ldr r2, .L4634+44
str r2, [r3, #16]
ldr r2, .L4634+48
str r2, [r3, #4]
ldr r2, .L4634+52
str r2, [r3, #8]
ldr r2, .L4634+56
str r2, [r3, #60]
ldr r2, .L4634+60
str r2, [r3, #64]
ldr r2, .L4634+64
str r2, [r3, #52]
ldr r2, .L4634+68
str r2, [r3, #28]
bl nand_flash_init
subs r7, r0, #0
bne .L4623
bl zftl_init
mov r5, r0
bl zftl_proc_debug_init
mov r3, #1
strb r3, [r4, #16]
.L4624:
mov r1, r5
ldr r0, .L4634+72
bl printk
b .L4619
.L4623:
ldr r3, [r4, #-160]
mov r6, r4
ldr r2, .L4634+76
ldr r0, [r4, #-156]
ldr r4, .L4634+80
str r2, [r3, #40]
ldr r2, .L4634+84
str r2, [r3, #32]
ldr r2, .L4634+88
str r2, [r3, #44]
ldr r2, .L4634+92
str r2, [r3, #48]
ldr r2, .L4634+96
str r2, [r3, #36]
ldr r2, .L4634+100
str r2, [r3, #56]
ldr r2, .L4634+104
str r2, [r3, #20]
ldr r2, .L4634+108
str r2, [r3, #24]
ldr r2, .L4634+112
str r2, [r3, #12]
ldr r2, .L4634+116
str r2, [r3, #16]
ldr r2, .L4634+120
str r2, [r3, #4]
ldr r2, .L4634+124
str r2, [r3, #8]
ldr r2, .L4634+128
str r2, [r3, #60]
ldr r2, .L4634+132
str r2, [r3, #64]
ldr r2, .L4634+136
str r2, [r3, #52]
ldr r2, .L4634+140
str r2, [r3, #28]
bl FlashInit
cmn r7, #2
mov r5, r0
bne .L4625
mov r2, #32
ldr r1, .L4634+144
add r0, r4, #4
bl ftl_memcpy
ldrb r0, [r4, #22] @ zero_extendqisi2
bl flash_lsb_page_tbl_build
ldrh r3, [r4, #14]
strh r3, [r4, #30] @ movhi
.L4625:
ldr r3, .L4634+148
ldr r2, [r3]
ldr r3, .L4634+152
cmp r2, r3
ldr r2, .L4634+156
bne .L4626
ldr r3, .L4634+160
ldrb r3, [r3] @ zero_extendqisi2
cmp r3, #0
bne .L4627
.L4626:
mov r3, #0
strb r3, [r2, #1110]
strb r3, [r2]
.L4627:
ldr r1, .L4634+164
mov r0, #1
ldrh ip, [r4, #14]
mov r3, #0
str r3, [r6, #-100]
ldrb r1, [r1] @ zero_extendqisi2
strb r1, [r2, #1108]
ldr r1, .L4634+168
ldrb r1, [r1] @ zero_extendqisi2
strb r1, [r2, #1193]
.L4628:
cmp ip, r0
uxth r1, r3
add r3, r3, #1
bcs .L4629
sub r3, r1, #1
ldr r1, .L4634+172
strh r3, [r1, #-2] @ movhi
mov r3, #0
cmp r5, r3
strb r3, [r2, #1143]
bne .L4624
bl FtlInit
mov r5, r0
b .L4624
.L4629:
lsl r0, r0, #1
b .L4628
.L4635:
.align 2
.L4634:
.word jiffies
.word .LANCHOR3
.word zftl_deinit
.word zftl_cache_flush
.word zftl_flash_suspend
.word zftl_flash_resume
.word zftl_get_density
.word zftl_read_flash_info
.word zftl_read
.word zftl_write
.word zftl_sys_read
.word zftl_sys_write
.word zftl_vendor_read
.word zftl_vendor_write
.word zftl_nandc_get_irq_status
.word zftl_proc_ftl_read
.word zftl_do_gc
.word zftl_discard
.word .LC313
.word ftl_deinit
.word .LANCHOR2
.word ftl_cache_flush
.word ftl_flash_suspend
.word ftl_flash_resume
.word ftl_get_density
.word ftl_read_flash_info
.word ftl_read
.word ftl_write
.word ftl_sys_read
.word ftl_sys_write
.word ftl_vendor_read
.word ftl_vendor_write
.word ftl_nandc_get_irq_status
.word ftl_proc_ftl_read
.word ftl_do_gc
.word ftl_discard
.word gNandParaInfo
.word g_nandc_version_data
.word 1446522928
.word .LANCHOR0
.word gFlashSlcMode
.word gNandFlashIDBEccBits
.word gNandFlashEccBits
.word .LANCHOR3-3136
.fnend
.size rk_ftl_init, .-rk_ftl_init
.align 2
.global zftl_write
.syntax unified
.arm
.fpu softvfp
.type zftl_write, %function
zftl_write:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r10, r3
ldr r3, .L4666
.pad #36
sub sp, sp, #36
mov r4, r0
mov r6, r1
mov r5, r2
ldr r3, [r3]
tst r3, #4096
beq .L4637
ldr r3, [r10]
str r3, [sp]
mov r3, r2
mov r2, r1
mov r1, r0
ldr r0, .L4666+4
bl printk
.L4637:
cmp r4, #0
bne .L4638
ldr r3, .L4666+8
mov r4, #24576
ldr r2, [r3, #1032]
.L4639:
cmp r2, r5
cmpcs r2, r6
movls fp, #1
movhi fp, #0
bls .L4657
add r1, r6, r5
cmp r2, r1
bcc .L4657
ldr r8, .L4666+12
add r4, r4, r6
mov r0, r4
ldrb r6, [r8, #-2546] @ zero_extendqisi2
mov r1, r6
bl __aeabi_uidiv
mov r9, r0
sub r0, r5, #1
mov r1, r6
add r0, r0, r4
bl __aeabi_uidiv
str r8, [sp, #16]
sub r7, r0, r9
ldr r8, .L4666+8
add r7, r7, #1
mov r6, r9
add r3, r4, r5
str r0, [sp, #12]
str fp, [sp, #20]
str r3, [sp, #24]
.L4641:
cmp r7, #0
bne .L4650
bl ftl_write_commit
mov r1, #1
mov r0, r7
bl zftl_do_gc
ldr r3, [r8, #1096]
ldr r4, .L4666+16
ldrh r3, [r3, #124]
cmp r3, #0
bne .L4651
movw r2, #2788
ldrh r3, [r4]
ldrh r2, [r8, r2]
add r3, r3, r2
cmp r3, #11
bgt .L4652
.L4651:
mov r1, #1
mov r0, #0
bl zftl_do_gc
.L4652:
ldr r5, .L4666+20
.L4653:
ldrh r3, [r4]
ldrh r2, [r5]
add r3, r3, r2
cmp r3, #7
ble .L4654
bl timer_get_time
ldr r3, [sp, #16]
str r0, [r3, #-4]
mov r0, #0
.L4636:
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4638:
cmp r4, #3
bhi .L4657
lsl r4, r4, #13
mov r2, #8192
b .L4639
.L4650:
ldrb r3, [r8, #2796] @ zero_extendqisi2
cmp r3, #0
beq .L4642
ldrb r3, [r8, #2769] @ zero_extendqisi2
cmp r3, #2
bhi .L4642
bl ftl_write_commit
.L4642:
mov r0, #0
bl buf_alloc
subs fp, r0, #0
bne .L4643
bl ftl_write_commit
b .L4641
.L4643:
ldrb r3, [sp, #20] @ zero_extendqisi2
strb r3, [fp, #41]
ldr r3, [sp, #16]
ldrb r2, [r3, #-2546] @ zero_extendqisi2
ldr r3, [sp, #12]
strb r2, [fp, #40]
cmp r6, r3
cmpne r6, r9
bne .L4646
cmp r6, r9
smulbbne r2, r6, r2
ldrne r3, [sp, #24]
subne r2, r3, r2
bne .L4665
mov r1, r2
mov r0, r4
str r2, [sp, #28]
bl __aeabi_uidivmod
ldr r2, [sp, #28]
uxtb r1, r1
strb r1, [fp, #41]
sub r2, r2, r1
uxtb r2, r2
cmp r5, r2
strbcc r5, [fp, #40]
bcc .L4646
.L4665:
strb r2, [fp, #40]
.L4646:
ldrb ip, [fp, #41] @ zero_extendqisi2
mov r1, r10
ldrb r2, [fp, #40] @ zero_extendqisi2
sub r7, r7, #1
ldr r0, [fp, #4]
lsl r2, r2, #9
add r0, r0, ip, lsl #9
bl ftl_memcpy
ldr r1, [r8, #2800]
str r6, [fp, #20]
add r6, r6, #1
ldr r2, [r1, #8]
add r0, r2, #1
str r0, [r1, #8]
mov r0, fp
str r2, [fp, #16]
bl ftl_write_buf
ldrb r3, [fp, #40] @ zero_extendqisi2
add r10, r10, r3, lsl #9
b .L4641
.L4654:
mov r1, #1
mov r0, #0
bl zftl_do_gc
mov r1, #1
mov r0, r1
bl zftl_do_gc
b .L4653
.L4657:
mvn r0, #0
b .L4636
.L4667:
.align 2
.L4666:
.word .LANCHOR2
.word .LC314
.word .LANCHOR0
.word .LANCHOR3
.word .LANCHOR0+2784
.word .LANCHOR0+2788
.fnend
.size zftl_write, .-zftl_write
.align 2
.global zftl_vendor_write
.syntax unified
.arm
.fpu softvfp
.type zftl_vendor_write, %function
zftl_vendor_write:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, r2
mov r2, r1
add r1, r0, #512
mov r0, #2
b zftl_write
.fnend
.size zftl_vendor_write, .-zftl_vendor_write
.align 2
.global zftl_sys_write
.syntax unified
.arm
.fpu softvfp
.type zftl_sys_write, %function
zftl_sys_write:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r3, r2
mov r2, r1
mov r1, r0
mov r0, #2
b zftl_write
.fnend
.size zftl_sys_write, .-zftl_sys_write
.align 2
.global zftl_discard
.syntax unified
.arm
.fpu softvfp
.type zftl_discard, %function
zftl_discard:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #36
sub sp, sp, #36
ldr r7, .L4720
ldr r3, [r7, #1032]
cmp r1, r3
cmpls r0, r3
movcs r2, #1
movcc r2, #0
bcs .L4692
mov r4, r1
add r1, r0, r1
cmp r3, r1
bcc .L4692
ldr r3, .L4720+4
add r8, r0, #24576
ldr r6, .L4720+8
ldr r0, [r3]
ldr r1, [r6, #28]
str r3, [sp, #16]
tst r0, #4096
add r1, r4, r1
str r1, [r6, #28]
beq .L4672
str r2, [sp]
mov r3, r4
mov r2, r8
ldr r0, .L4720+12
bl printk
.L4672:
ldr r3, [r7, #2800]
ldr r10, [r3, #8]
add r2, r10, #1
str r2, [r3, #8]
bl ftl_write_commit
bl ftl_flush
ldrb r9, [r6, #-2546] @ zero_extendqisi2
mov r0, r8
mov r1, r9
bl __aeabi_uidiv
mov r1, r9
mov r5, r0
mov r0, r8
bl __aeabi_uidivmod
subs fp, r1, #0
beq .L4673
sub r9, r9, fp
mov r0, r5
cmp r9, r4
movcs r9, r4
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #24]
bne .L4674
mov r2, #0
add r1, sp, #24
mov r0, r5
bl pm_log2phys
.L4674:
ldr r3, [sp, #24]
cmn r3, #1
uxth r3, r9
str r3, [sp, #12]
beq .L4676
mov r0, #0
bl buf_alloc
subs r3, r0, #0
beq .L4676
ldr r0, [r3, #4]
mov r1, #0
str r5, [r3, #20]
strb fp, [r3, #41]
strb r9, [r3, #40]
str r10, [r3, #16]
add r0, r0, fp, lsl #9
str r3, [sp, #20]
ldr r3, [sp, #12]
lsl r2, r3, #9
bl ftl_memset
ldr r3, [sp, #20]
mov r0, r3
bl ftl_write_buf
bl ftl_write_commit
ldr r2, [r7, #2800]
ldr r3, [r2, #76]
add r3, r3, #1
str r3, [r2, #76]
.L4676:
ldr r3, [sp, #12]
add r5, r5, #1
sub r4, r4, r3
.L4673:
cmp r4, #0
beq .L4678
bl ftl_flush
.L4678:
mov r9, #0
mvn r3, #0
str r3, [sp, #28]
.L4679:
ldrb r3, [r6, #-2546] @ zero_extendqisi2
cmp r4, r3
bcs .L4684
cmp r4, #0
beq .L4686
mov r0, r5
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #24]
bne .L4687
mov r2, #0
add r1, sp, #24
mov r0, r5
bl pm_log2phys
.L4687:
ldr r3, [sp, #24]
cmn r3, #1
beq .L4686
mov r0, #0
bl buf_alloc
subs r9, r0, #0
beq .L4686
mov r3, #0
str r5, [r9, #20]
strb r3, [r9, #41]
ldrb r3, [r6, #-2546] @ zero_extendqisi2
strb r4, [r9, #40]
str r10, [r9, #16]
cmp r4, r3
bcc .L4689
movw r2, #1496
ldr r1, .L4720+16
ldr r0, .L4720+20
bl printk
bl dump_stack
.L4689:
lsl r2, r4, #9
mov r1, #0
ldr r0, [r9, #4]
bl ftl_memset
mov r0, r9
bl ftl_write_buf
bl ftl_write_commit
ldr r2, [r7, #2800]
ldr r3, [r2, #76]
add r3, r3, #1
str r3, [r2, #76]
.L4686:
ldr r1, [r6, #28]
cmp r1, #8192
bls .L4693
ldr r3, [sp, #16]
ldr r3, [r3]
tst r3, #4096
beq .L4690
mov r3, #0
mov r2, r8
str r3, [sp]
mov r3, r4
ldr r0, .L4720+12
bl printk
.L4690:
mov r4, #0
str r4, [r6, #28]
bl flt_sys_flush
mov r3, #1
str r3, [r7, #2812]
.L4693:
mov r0, #0
b .L4670
.L4684:
mov r0, r5
bl lpa_hash_get_ppa
cmn r0, #1
str r0, [sp, #24]
beq .L4680
mov r0, #0
bl buf_alloc
subs fp, r0, #0
beq .L4682
ldrb r2, [r6, #-2546] @ zero_extendqisi2
mov r1, #0
str r5, [fp, #20]
strb r9, [fp, #41]
strb r2, [fp, #40]
str r10, [fp, #16]
lsl r2, r2, #9
ldr r0, [fp, #4]
bl ftl_memset
mov r0, fp
bl ftl_write_buf
bl ftl_write_commit
.L4719:
ldr r2, [r7, #2800]
ldr r3, [r2, #76]
add r3, r3, #1
str r3, [r2, #76]
.L4682:
ldrb r3, [r6, #-2546] @ zero_extendqisi2
add r5, r5, #1
sub r4, r4, r3
b .L4679
.L4680:
mov r2, #0
add r1, sp, #24
mov r0, r5
bl pm_log2phys
ldr r3, [sp, #24]
cmn r3, #1
beq .L4682
mov r2, #1
add r1, sp, #28
mov r0, r5
bl pm_log2phys
ldr r3, .L4720+24
ldr r2, [sp, #24]
ldrb r1, [r6, #-3136] @ zero_extendqisi2
ldrh r0, [r3]
ldrb r3, [r7, #1153] @ zero_extendqisi2
lsr r2, r2, r0
rsb r3, r3, #24
sub r3, r3, r0
mvn r0, #0
bic r0, r2, r0, lsl r3
bl __aeabi_uidiv
uxth r0, r0
bl ftl_vpn_decrement
b .L4719
.L4692:
mvn r0, #0
.L4670:
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4721:
.align 2
.L4720:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR3
.word .LC315
.word .LANCHOR1+2536
.word .LC0
.word .LANCHOR3-3138
.fnend
.size zftl_discard, .-zftl_discard
.align 2
.global dump_pm_blk
.syntax unified
.arm
.fpu softvfp
.type dump_pm_blk, %function
dump_pm_blk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movw r3, #698
ldr r4, .L4727
mov r2, #4
mov r5, #0
movw r7, #65535
ldr r0, .L4727+4
ldr r1, [r4, #2800]
ldr r6, .L4727+8
ldrh r3, [r1, r3]
add r1, r1, #704
bl rknand_print_hex
ldr r1, [r4, #2800]
mov r2, #2
ldrh r3, [r6, #-176]
ldr r0, .L4727+12
add r1, r1, #416
bl rknand_print_hex
.L4723:
ldrh r2, [r6, #-176]
uxth r3, r5
cmp r2, r3
bhi .L4725
pop {r4, r5, r6, r7, r8, pc}
.L4725:
uxth r3, r5
ldr r2, [r4, #2800]
add r3, r3, #208
lsl r3, r3, #1
ldrh r0, [r2, r3]
cmp r0, r7
beq .L4724
mov r1, #0
bl ftl_sblk_dump
.L4724:
add r5, r5, #1
b .L4723
.L4728:
.align 2
.L4727:
.word .LANCHOR0
.word .LC267
.word .LANCHOR3
.word .LC268
.fnend
.size dump_pm_blk, .-dump_pm_blk
.align 2
.global id_block_prog_msb_ff_data
.syntax unified
.arm
.fpu softvfp
.type id_block_prog_msb_ff_data, %function
id_block_prog_msb_ff_data:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
ldr r5, .L4736
ldrb r3, [r5, #1110] @ zero_extendqisi2
cmp r3, #0
bne .L4729
ldr r3, [r5, #1104]
mov r4, r2
mov r10, r0
mov fp, r1
ldrb r3, [r3, #19] @ zero_extendqisi2
sub r2, r3, #5
cmp r3, #68
cmpne r2, #2
bls .L4731
sub r3, r3, #19
tst r3, #239
bne .L4729
.L4731:
ldr r6, .L4736+4
sub r7, r6, #2272
.L4733:
ldr r3, [r5, #1104]
ldrh r3, [r3, #10]
cmp r3, r4
bhi .L4734
.L4729:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4734:
lsl r9, r4, #1
add r8, r4, fp
mov r2, r8
ldr r0, .L4736+8
ldrh r3, [r7, r9]
mov r1, r4
bl printk
ldrh r2, [r7, r9]
movw r3, #65535
cmp r2, r3
bne .L4729
mov r2, #16384
mov r1, #255
ldr r0, [r6, #-120]
add r4, r4, #1
bl ftl_memset
ldr r3, [r5, #1104]
mov r1, r8
mov r0, r10
uxth r4, r4
ldrb r3, [r3, #9] @ zero_extendqisi2
str r3, [sp]
ldr r3, [r6, #-120]
mov r2, r3
bl flash_prog_page
b .L4733
.L4737:
.align 2
.L4736:
.word .LANCHOR0
.word .LANCHOR3
.word .LC316
.fnend
.size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
.align 2
.global write_idblock
.syntax unified
.arm
.fpu softvfp
.type write_idblock, %function
write_idblock:
.fnstart
@ args = 0, pretend = 0, frame = 160
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L4848
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #180
sub sp, sp, #180
ldr lr, [r1]
ldrb ip, [r3] @ zero_extendqisi2
ldr r4, .L4848+4
ldr r10, .L4848+8
str ip, [sp, #76]
ldrh ip, [sp, #76]
ldr r9, .L4848+12
cmp lr, r4
cmpne lr, r10
str ip, [sp, #40]
movne ip, #1
moveq ip, #0
cmp lr, r9
moveq ip, #0
andne ip, ip, #1
cmp ip, #0
beq .L4739
.L4847:
mvn r0, #0
.L4738:
add sp, sp, #180
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4739:
cmp r0, #15
bls .L4847
mov r5, r2
ldr r2, [r3, #1104]
mov fp, r0
mov r0, #256000
str r3, [sp, #16]
ldrb r6, [r2, #9] @ zero_extendqisi2
ldrh r8, [r2, #10]
ldr r2, .L4848+16
str r1, [sp, #32]
ldrh r7, [r2, #30]
ldrb r2, [r3, #1110] @ zero_extendqisi2
str r2, [sp, #96]
bl ftl_malloc
subs r3, r0, #0
str r3, [sp, #20]
beq .L4847
ldr r2, .L4848+20
ldrb r2, [r2, #16] @ zero_extendqisi2
cmp r2, #0
streq r2, [sp, #16]
beq .L4742
ldr r3, [sp, #16]
ldrb r2, [r3] @ zero_extendqisi2
ldrb r3, [r3, #1110] @ zero_extendqisi2
cmp r2, #0
clzne r3, r3
lsrne r3, r3, #5
bne .L4844
cmp r3, #3
streq r3, [sp, #40]
moveq r3, #2
beq .L4844
cmp r3, #2
ldr r3, [sp, #40]
moveq r3, #2
str r3, [sp, #40]
movne r3, #0
moveq r3, #3
.L4844:
str r3, [sp, #16]
.L4742:
add fp, fp, #508
add fp, fp, #3
lsr fp, fp, #9
cmp fp, #8
bls .L4798
cmp fp, #500
bhi .L4745
.L4744:
ldr r3, [sp, #32]
ldr r3, [r3]
cmp r3, r4
cmpne r3, r10
movne r4, #1
moveq r4, #0
cmp r3, r9
moveq r9, #0
andne r9, r4, #1
cmp r9, #0
beq .L4746
.L4745:
ldr r0, [sp, #20]
bl ftl_free
b .L4847
.L4798:
mov fp, #8
b .L4744
.L4746:
mov r0, r9
mul r8, r6, r8
bl zftl_flash_exit_slc_mode
ldr r3, .L4848
sub r0, r8, #1
mov r1, r8
add r0, r0, fp
ldrb r2, [r3, #1110] @ zero_extendqisi2
strb r2, [r3]
bl __aeabi_uidiv
ldr r3, [sp, #32]
movw r2, #63871
ldr ip, .L4848+24
str r0, [sp, #100]
movw r0, #4094
add r3, r3, #254976
add r3, r3, #512
.L4752:
ldr r1, [r3, #-4]!
cmp r1, #0
bne .L4747
cmp r9, #0
sub r2, r2, #1
ldrne r1, [sp, #32]
streq ip, [r3, #512]
ldrne r1, [r1, r9, lsl #2]
add r9, r9, #1
strne r1, [r3, #512]
cmp r9, r0
movhi r9, #0
cmp r2, #4096
bne .L4752
.L4751:
mul r3, r6, r7
mov r2, #4
mov r1, r5
ldr r0, .L4848+28
str r3, [sp, #72]
mov r3, #5
bl rknand_print_hex
mov r2, fp
mov r1, fp
ldr r0, .L4848+32
bl printk
sub r3, r5, #4
str r3, [sp, #48]
mov r3, #0
str r3, [sp, #36]
str r3, [sp, #24]
.L4792:
ldr r3, .L4848+20
ldrb r3, [r3, #16] @ zero_extendqisi2
cmp r3, #0
bne .L4753
ldr r3, [sp, #48]
ldr r1, [sp, #24]
ldr r2, [r3, #4]
ldr r3, [sp, #72]
mul r10, r2, r3
ldr r3, [sp, #100]
cmp r1, #0
cmpne r3, #1
bls .L4754
ldr r3, [sp, #48]
ldr r3, [r3]
add r3, r3, #1
cmp r2, r3
bne .L4754
.L4755:
ldr r3, [sp, #24]
add r3, r3, #1
str r3, [sp, #24]
ldr r3, [sp, #48]
add r3, r3, #4
str r3, [sp, #48]
ldr r3, [sp, #24]
cmp r3, #4
bne .L4792
.L4794:
mov r0, #0
bl zftl_flash_exit_slc_mode
ldr r3, .L4848
mov r0, #0
ldrb r2, [sp, #76] @ zero_extendqisi2
strb r2, [r3]
ldr r2, [sp, #16]
cmp r2, #0
ldrbne r2, [sp, #96] @ zero_extendqisi2
strbne r2, [r3, #1110]
mov r2, #2
strb r2, [r3, #1154]
bl zftl_flash_enter_slc_mode
ldr r0, [sp, #20]
bl ftl_free
ldr r3, [sp, #36]
clz r0, r3
lsr r0, r0, #5
rsb r0, r0, #0
b .L4738
.L4747:
ldr r0, .L4848+36
bl printk
b .L4751
.L4753:
ldr r5, .L4848
ldr r2, [sp, #24]
ldr r3, [r5, #1040]
add r3, r3, r2
ldrb r3, [r3, #32] @ zero_extendqisi2
cmp r3, #255
beq .L4755
ldr r2, [sp, #72]
mul r10, r2, r3
ldr r3, [sp, #16]
cmp r3, #0
beq .L4754
ldr r3, [sp, #24]
and r4, r3, #1
ldr r3, [sp, #16]
cmp r3, #3
orreq r4, r4, #1
cmp r4, #0
ldrbne r3, [sp, #40] @ zero_extendqisi2
strbne r3, [r5]
strbne r3, [r5, #1110]
bne .L4754
mov r0, r4
bl zftl_flash_exit_slc_mode
strb r4, [r5]
strb r4, [r5, #1110]
.L4754:
ldr r5, .L4848
mov r2, #512
mov r1, #0
ldr r0, [sp, #20]
bl ftl_memset
ldr r3, [r5, #1104]
mov r6, #0
mov r0, r10
ldrb r8, [r3, #9] @ zero_extendqisi2
ldrh r7, [r3, #10]
ldr r3, .L4848+16
mov r1, r8
ldrh r4, [r3, #30]
mul r7, r8, r7
ldrb r3, [r5, #1196] @ zero_extendqisi2
strb r6, [r5, #1196]
str r3, [sp, #104]
mul r4, r8, r4
bl __aeabi_uidiv
mov r1, r0
mov r0, r6
bl flash_erase_block
cmp r7, fp
movcs r0, #1
bcs .L4757
add r1, r10, r4
mov r0, r6
bl flash_erase_block
mov r0, #2
.L4757:
ldr r2, [r5, #1104]
ldrh r3, [r2, #10]
ldrb r1, [r2, #12] @ zero_extendqisi2
lsl r3, r3, #2
mul r0, r0, r3
bl __aeabi_idiv
mov r1, r4
str r0, [sp, #64]
mov r0, r10
bl __aeabi_uidivmod
sub r3, r10, r1
str r1, [sp, #56]
cmp r10, r3
str r3, [sp, #44]
bne .L4801
ldrb r3, [r5, #1028] @ zero_extendqisi2
cmp r3, #9
bne .L4801
ldr r3, .L4848+20
mov r2, #1024
mov r1, #0
ldr r4, [r3, #-92]
mov r0, r4
bl ftl_memset
ldr r2, .L4848+40
mov r3, #12
stm r4, {r2, r3}
mov r3, #0
strb r3, [r4, #16]
str r3, [r4, #12]
ldrb r3, [r5, #1110] @ zero_extendqisi2
cmp r3, #0
ldrne r3, [r5, #1104]
ldrbne r3, [r3, #29] @ zero_extendqisi2
strbne r3, [r4, #16]
mov r3, #4
strb r3, [r4, #17]
ldr r3, .L4848
ldr r3, [r3, #1104]
ldrb r1, [r3, #12] @ zero_extendqisi2
ldrh r0, [r3, #10]
bl __aeabi_idiv
cmp r8, #8
mov r3, #0
movhi r2, #70
movls r2, #16
mov r1, #12
strh r0, [r4, #18] @ movhi
strb r3, [r4, #20]
add r0, r4, r1
strh r3, [r4, #22] @ movhi
strb r2, [r4, #21]
bl js_hash
sub r3, fp, #4
str r0, [r4, #8]
str r3, [sp, #28]
.L4758:
ldr r9, [sp, #32]
mov r6, #0
ldr r7, .L4848
.L4761:
ldr r3, [sp, #64]
cmp r3, r6
bhi .L4772
ldr r3, .L4848+16
mov r4, #0
strb r4, [r7, #1196]
mov r0, r10
ldr r5, .L4848
mov r8, #4
ldrb r2, [r3, #13] @ zero_extendqisi2
ldrh r1, [r3, #30]
str r2, [sp, #80]
mul r1, r2, r1
bl __aeabi_uidivmod
sub r3, r10, r1
ldr r6, [sp, #20]
str r3, [sp, #84]
and r3, r1, #3
str r3, [sp, #56]
ldr r3, [sp, #28]
str r1, [sp, #52]
str r4, [sp, #64]
str r3, [sp, #68]
.L4773:
ldr r3, [sp, #68]
cmp r4, r3
bcc .L4787
ldrb r3, [sp, #104] @ zero_extendqisi2
ldr r4, .L4848
strb r3, [r4, #1196]
ldr r3, [sp, #16]
cmp r3, #0
beq .L4788
mov r0, #0
bl zftl_flash_exit_slc_mode
mov r3, #0
strb r3, [r4]
strb r3, [r4, #1110]
.L4788:
ldr r3, [sp, #28]
mov r2, #0
lsl r3, r3, #7
.L4790:
ldr r1, [sp, #20]
ldr r0, [r1, r2, lsl #2]
ldr r1, [sp, #32]
ldr r1, [r1, r2, lsl #2]
cmp r0, r1
beq .L4789
mov r2, #512
mov r1, #0
ldr r0, [sp, #20]
bl ftl_memset
mov r1, r10
mov r0, #0
bl flash_erase_block
b .L4755
.L4801:
str fp, [sp, #28]
mov r4, #0
b .L4758
.L4772:
ldr r3, [sp, #56]
ldrb r2, [r7, #1110] @ zero_extendqisi2
add r5, r3, r6
ubfx r5, r5, #2, #16
cmp r2, #0
add r0, r5, #1
lsl r1, r0, #1
add r3, r7, r1
ldrh r3, [r3, #4]
beq .L4763
ldrb r3, [r7, #1] @ zero_extendqisi2
cmp r3, #0
moveq r3, r0
movne r3, r1
.L4763:
ldrb r1, [r7, #1028] @ zero_extendqisi2
cmp r1, #9
subne r3, r3, #1
lslne r3, r3, #2
cmp r2, #0
str r3, [sp, #112]
movw r3, #61424
str r3, [sp, #116]
lsl r3, r5, #1
add r1, r7, r3
ldrh r1, [r1, #4]
moveq r5, r1
beq .L4768
ldrb r2, [r7, #1] @ zero_extendqisi2
cmp r2, #0
movne r5, r3
.L4768:
cmp r4, #0
mul r0, r5, r8
bne .L4769
ldr r3, [sp, #44]
add r3, r0, r3
ldr r0, .L4848+44
str r3, [sp, #60]
movw r3, #61424
str r3, [sp, #12]
add r3, sp, #176
mov r2, r3
ldr r1, [sp, #60]
ldr r3, [r2, #-64]!
str r3, [sp, #8]
ldr r3, [r9]
str r2, [sp, #52]
mov r2, r6
str r9, [sp]
str r3, [sp, #4]
mov r3, fp
bl printk
mov r1, r9
ldr r2, [sp, #52]
ldr r0, [sp, #60]
bl fw_flash_page_prog.constprop.29
ldrb r3, [r7, #1110] @ zero_extendqisi2
cmp r3, #0
bne .L4770
add r5, r5, #1
mov r1, r8
uxth r5, r5
ldr r0, [sp, #44]
bl __aeabi_uidiv
mov r2, r5
mov r1, r0
mov r0, r4
bl id_block_prog_msb_ff_data
.L4770:
ldr r3, [sp, #28]
add r9, r9, #2048
add r3, r3, #16
cmp r6, r3
bcc .L4771
ldr r3, [sp, #28]
add r3, r3, #20
cmp r6, r3
ldrcc r3, [sp, #32]
addcc r9, r3, #2048
.L4771:
add r6, r6, #4
mov r4, #0
uxth r6, r6
b .L4761
.L4769:
ldr r3, [sp, #44]
add r2, sp, #112
mov r1, r4
add r0, r0, r3
bl fw_flash_page_prog.constprop.29
b .L4771
.L4787:
ldr r3, [sp, #56]
mov r1, r8
sub r3, r8, r3
uxth r3, r3
str r3, [sp, #60]
ldr r3, [sp, #52]
add r0, r3, r4
bl __aeabi_uidiv
uxth r0, r0
ldrb r1, [r5, #1110] @ zero_extendqisi2
lsl r3, r0, #1
cmp r1, #0
add r2, r5, r3
ldrh r2, [r2, #4]
moveq r0, r2
beq .L4775
ldrb r2, [r5, #1] @ zero_extendqisi2
cmp r2, #0
movne r0, r3
.L4775:
ldr r2, [sp, #84]
ldr r3, [sp, #80]
ldrb r9, [r5, #1108] @ zero_extendqisi2
mla r3, r0, r3, r2
str r3, [sp, #88]
ldr r3, [r5, #1104]
ldr r2, [sp, #88]
ldrb r1, [r3, #9] @ zero_extendqisi2
ldr r3, [sp, #56]
add r0, r3, r2
bl __aeabi_uidiv
ldrb r3, [r5, #1193] @ zero_extendqisi2
str r0, [sp, #44]
mov r0, r9
str r3, [sp, #108]
bl nandc_bch_sel
.L4776:
str r8, [sp]
add r3, sp, #112
mov r2, r6
ldr r1, [sp, #44]
mov r0, #0
bl flash_read_page
cmn r0, #1
mov r7, r0
bne .L4777
ldrb r3, [r5, #1196] @ zero_extendqisi2
cmp r3, #0
str r3, [sp, #92]
bne .L4778
.L4781:
ldr r3, .L4848+20
ldr r3, [r3, #-100]
subs ip, r3, #0
bne .L4779
.L4780:
ldrb r3, [r5, #1143] @ zero_extendqisi2
cmp r3, #0
beq .L4777
str r8, [sp]
add r3, sp, #112
mov r2, r6
ldr r1, [sp, #44]
mov r0, #0
bl flash_ddr_tuning_read
b .L4846
.L4778:
mov r0, #0
add r3, sp, #112
strb r0, [r5, #1196]
mov r2, r6
str r8, [sp]
ldr r1, [sp, #44]
bl flash_read_page
ldrb r3, [sp, #92] @ zero_extendqisi2
cmn r0, #1
strb r3, [r5, #1196]
beq .L4781
.L4846:
mov r7, r0
.L4777:
cmn r7, #1
movne r7, #0
moveq r7, #1
cmp r9, #16
moveq r9, #0
andne r9, r7, #1
cmp r9, #0
beq .L4783
mov r0, #16
mov r9, #16
bl nandc_bch_sel
b .L4776
.L4779:
str r8, [sp]
add r3, sp, #112
mov r2, r6
ldr r1, [sp, #44]
mov r0, #0
blx ip
cmn r0, #1
beq .L4780
b .L4846
.L4783:
ldr r0, [sp, #108]
bl nandc_bch_sel
ldr r3, [sp, #64]
cmp r7, #0
mvnne r3, #0
str r3, [sp, #64]
ldr r3, [sp, #84]
ldr r2, [sp, #64]
cmp r10, r3
cmpeq r4, #0
moveq r3, #1
movne r3, #0
cmp r2, #0
movne r3, #0
andeq r3, r3, #1
cmp r3, #0
beq .L4785
ldr r3, [r6]
ldr r2, .L4848+40
cmp r3, r2
bne .L4785
ldr r3, [sp, #68]
ldr r2, [sp, #60]
ldrb r8, [r6, #17] @ zero_extendqisi2
add r3, r3, r2
str r3, [sp, #68]
.L4786:
ldr r3, [sp, #60]
add r4, r3, r4
uxth r4, r4
b .L4773
.L4785:
ldr r3, [sp, #60]
mov r2, r4
ldr r1, [sp, #88]
ldr r0, .L4848+48
add r6, r6, r3, lsl #9
ldr r3, [sp, #116]
str r3, [sp]
ldr r3, [sp, #112]
bl printk
mov r3, #0
str r3, [sp, #56]
b .L4786
.L4789:
add r2, r2, #1
cmp r3, r2
bne .L4790
ldr r3, [sp, #36]
add r3, r3, #1
cmp r3, #5
str r3, [sp, #36]
bls .L4755
b .L4794
.L4849:
.align 2
.L4848:
.word .LANCHOR0
.word -52655045
.word 1397640018
.word 1397967698
.word .LANCHOR2
.word .LANCHOR3
.word 1314014539
.word .LC318
.word .LC319
.word .LC317
.word 1179535694
.word .LC320
.word .LC321
.fnend
.size write_idblock, .-write_idblock
.align 2
.global write_loader_lba
.syntax unified
.arm
.fpu softvfp
.type write_loader_lba, %function
write_loader_lba:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
cmp r0, #64
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r5, r0
.pad #48
sub sp, sp, #48
mov r6, r1
mov r8, r2
ldr r4, .L4877
bne .L4851
ldr r3, .L4877+4
ldr r2, [r2]
ldr r1, .L4877+8
cmp r2, r1
cmpne r2, r3
add r1, r1, #327680
moveq r3, #1
movne r3, #0
cmp r2, r1
orreq r3, r3, #1
cmp r3, #0
beq .L4851
mov r3, #1
mov r0, #256000
strb r3, [r4, #32]
bl ftl_malloc
mov r2, #256000
mov r1, #0
str r0, [r4, #36]
bl ftl_memset
str r5, [r4, #40]
.L4851:
str r6, [sp]
mov r3, r5
ldr r2, [r8]
ldr r1, [r4, #36]
ldr r0, .L4877+12
bl printk
ldrb r3, [r4, #32] @ zero_extendqisi2
cmp r3, #0
beq .L4850
ldr r7, [r4, #36]
cmp r7, #0
beq .L4850
sub r0, r5, #64
cmp r0, #500
bcs .L4853
rsb r2, r5, #564
mov r1, r8
cmp r6, r2
add r0, r7, r0, lsl #9
movcc r2, r6
lsl r2, r2, #9
bl ftl_memcpy
.L4854:
ldr r3, [r4, #40]
cmp r5, r3
beq .L4863
mov r8, #0
mov r0, r7
strb r8, [r4, #32]
bl ftl_free
str r8, [r4, #36]
b .L4863
.L4853:
cmp r5, #564
bcc .L4854
ldr r3, .L4877+16
ldr r0, [r4, #40]
ldr r3, [r3, #1104]
sub r0, r0, #64
cmp r0, #500
ldrb r3, [r3, #9] @ zero_extendqisi2
movcs r0, #500
cmp r3, #4
beq .L4855
mov r3, #2
str r3, [sp, #8]
mov r3, #3
str r3, [sp, #12]
mov r3, #4
str r3, [sp, #16]
mov r3, #5
str r3, [sp, #20]
mov r3, #6
str r3, [sp, #24]
.L4856:
mov r3, #61952
.L4862:
ldr r2, [r7, r3, lsl #2]
cmp r2, #0
beq .L4860
add r3, r3, #2048
lsl r0, r3, #2
.L4861:
mov r1, r7
add r2, sp, #8
mov r7, #0
bl write_idblock
ldr r0, [r4, #36]
strb r7, [r4, #32]
bl ftl_free
str r7, [r4, #36]
.L4863:
add r5, r5, r6
str r5, [r4, #40]
.L4850:
add sp, sp, #48
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
.L4855:
mov r2, #0
add r3, sp, #8
.L4859:
cmp r0, #256
lslhi r1, r2, #1
strls r2, [r3, r2, lsl #2]
strhi r1, [r3, r2, lsl #2]
add r2, r2, #1
cmp r2, #5
bne .L4859
b .L4856
.L4860:
sub r3, r3, #1
cmp r3, #4096
bne .L4862
lsl r0, r0, #9
b .L4861
.L4878:
.align 2
.L4877:
.word .LANCHOR3
.word -52655045
.word 1397640018
.word .LC322
.word .LANCHOR0
.fnend
.size write_loader_lba, .-write_loader_lba
.align 2
.global FtlWrite
.syntax unified
.arm
.fpu softvfp
.type FtlWrite, %function
FtlWrite:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r6, r2
sub r2, r1, #64
mov r4, r1
cmp r2, #1984
mov r7, r3
movcs r2, #0
movcc r2, #1
cmp r0, #0
mov r5, r0
movne r2, #0
cmp r2, #0
beq .L4880
mov r2, r3
mov r1, r6
mov r0, r4
bl write_loader_lba
.L4880:
ldr r3, .L4885
mov r2, r6
mov r1, r4
mov r0, r5
ldr r3, [r3, #-160]
ldr lr, [r3, #24]
mov r3, r7
mov ip, lr
pop {r4, r5, r6, r7, r8, lr}
bx ip
.L4886:
.align 2
.L4885:
.word .LANCHOR3
.fnend
.size FtlWrite, .-FtlWrite
.align 2
.global rknand_sys_storage_ioctl
.syntax unified
.arm
.fpu softvfp
.type rknand_sys_storage_ioctl, %function
rknand_sys_storage_ioctl:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L4896
cmp r1, r3
bne .L4891
push {r4, lr}
.save {r4, lr}
bl rknand_dev_flush
mov r1, #0
ldr r0, .L4896+4
bl printk
mov r0, #0
pop {r4, pc}
.L4891:
mvn r0, #21
bx lr
.L4897:
.align 2
.L4896:
.word 1074029332
.word .LC323
.fnend
.size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
.align 2
.global rk_ftl_storage_sys_init
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_storage_sys_init, %function
rk_ftl_storage_sys_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
ldr r3, .L4899
mov r2, #0
mvn r1, #0
strb r2, [r3, #32]
str r1, [r3, #40]
str r2, [r3, #36]
str r2, [r3, #44]
b rknand_sys_storage_init
.L4900:
.align 2
.L4899:
.word .LANCHOR3
.fnend
.size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
.align 2
.global StorageSysDataDeInit
.syntax unified
.arm
.fpu softvfp
.type StorageSysDataDeInit, %function
StorageSysDataDeInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
mov r0, #0
bx lr
.fnend
.size StorageSysDataDeInit, .-StorageSysDataDeInit
.align 2
.global rk_ftl_vendor_storage_init
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_vendor_storage_init, %function
rk_ftl_vendor_storage_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
ldr r6, .L4913
ldr r3, [r6, #48]
cmp r3, #0
bne .L4903
mov r0, #65536
bl ftl_malloc
str r0, [r6, #48]
.L4903:
ldr r3, [r6, #48]
cmp r3, #0
beq .L4908
ldr r10, .L4913+4
mov r7, #0
ldr r9, .L4913+8
mov r4, r7
mov r8, r7
.L4906:
ldr r2, [r6, #48]
mov r1, #128
lsl r0, r8, #7
bl FlashBootVendorRead
cmp r0, #0
bne .L4909
ldr r1, [r6, #48]
mov r0, r10
add r2, r1, #61440
ldr r3, [r1, #4]
ldr r2, [r2, #4092]
ldr r1, [r1]
bl printk
ldr r5, [r6, #48]
ldr r3, [r5]
cmp r3, r9
bne .L4905
add r2, r5, #61440
ldr r3, [r5, #4]
ldr r2, [r2, #4092]
cmp r3, r4
sub r2, r2, r3
clz r2, r2
lsr r2, r2, #5
movls r2, #0
cmp r2, #0
movne r7, r8
movne r4, r3
.L4905:
add r8, r8, #1
cmp r8, #2
bne .L4906
cmp r4, #0
beq .L4907
mov r2, r5
mov r1, #128
lsl r0, r7, #7
bl FlashBootVendorRead
adds r0, r0, #0
movne r0, #1
rsb r0, r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L4907:
mov r2, #65536
mov r1, r4
mov r0, r5
bl memset
mov r3, #1
add r2, r5, #61440
str r3, [r5, #4]
mov r0, r4
str r9, [r5]
str r3, [r2, #4092]
ldr r3, .L4913+12
strh r4, [r5, #12] @ movhi
strh r3, [r5, #14] @ movhi
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L4908:
mvn r0, #11
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L4909:
mvn r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
.L4914:
.align 2
.L4913:
.word .LANCHOR3
.word .LC324
.word 1380668996
.word -1032
.fnend
.size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
.align 2
.global rk_ftl_vendor_read
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_vendor_read, %function
rk_ftl_vendor_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L4925
ldr ip, [r3, #48]
cmp ip, #0
beq .L4920
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r3, #0
ldrh r4, [ip, #10]
.L4917:
cmp r3, r4
bcc .L4919
mvn r0, #0
pop {r4, r5, r6, pc}
.L4919:
add lr, ip, r3, lsl #3
ldrh r5, [lr, #16]
cmp r5, r0
bne .L4918
ldrh r4, [lr, #20]
mov r0, r1
ldrh r1, [lr, #18]
cmp r4, r2
movcs r4, r2
add r1, r1, #1024
mov r2, r4
add r1, ip, r1
bl memcpy
mov r0, r4
pop {r4, r5, r6, pc}
.L4918:
add r3, r3, #1
b .L4917
.L4920:
mvn r0, #0
bx lr
.L4926:
.align 2
.L4925:
.word .LANCHOR3
.fnend
.size rk_ftl_vendor_read, .-rk_ftl_vendor_read
.align 2
.global rk_ftl_vendor_write
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_vendor_write, %function
rk_ftl_vendor_write:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
ldr r3, .L4948
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
ldr r4, [r3, #48]
cmp r4, #0
beq .L4942
mov r8, r2
ldrh r2, [r4, #10]
add r6, r8, #63
ldrh r3, [r4, #8]
mov fp, r1
bic r6, r6, #63
mov r7, #0
str r3, [sp, #4]
.L4929:
cmp r7, r2
bcc .L4937
ldrh r1, [r4, #14]
cmp r6, r1
bhi .L4942
add r3, r4, r2, lsl #3
uxth r6, r6
strh r0, [r3, #16] @ movhi
ldrh r2, [r4, #12]
strh r8, [r3, #20] @ movhi
strh r2, [r3, #18] @ movhi
add r2, r2, r6
sub r6, r1, r6
strh r2, [r4, #12] @ movhi
strh r6, [r4, #14] @ movhi
mov r2, r8
ldrh r0, [r3, #18]
mov r1, fp
add r0, r0, #1024
add r0, r4, r0
bl memcpy
ldrh r3, [r4, #10]
add r3, r3, #1
strh r3, [r4, #10] @ movhi
b .L4947
.L4937:
add r5, r4, r7, lsl #3
ldrh r3, [r5, #16]
cmp r3, r0
str r3, [sp, #8]
bne .L4930
ldrh r1, [r5, #20]
add r3, r4, #1024
add r1, r1, #63
bic r1, r1, #63
cmp r8, r1
str r1, [sp, #12]
bls .L4931
ldrh r1, [r4, #14]
cmp r6, r1
subls r2, r2, #1
ldrhls r10, [r5, #18]
strls r2, [sp, #16]
bls .L4932
.L4942:
mvn r0, #0
b .L4927
.L4933:
ldrh r9, [r5, #20]
add r0, r3, r10
ldrh r2, [r5, #16]
add r7, r7, #1
ldrh r1, [r5, #18]
strh r9, [r5, #12] @ movhi
add r9, r9, #63
bic r9, r9, #63
strh r2, [r5, #8] @ movhi
strh r10, [r5, #10] @ movhi
add r1, r3, r1
mov r2, r9
str r3, [sp, #20]
bl memcpy
ldr r3, [sp, #20]
add r10, r10, r9
.L4932:
ldr r2, [sp, #16]
add r5, r5, #8
cmp r7, r2
bcc .L4933
ldrh r2, [sp, #8]
add r7, r4, r7, lsl #3
uxth r5, r10
uxtah r0, r3, r10
strh r8, [r7, #20] @ movhi
strh r2, [r7, #16] @ movhi
mov r1, fp
strh r5, [r7, #18] @ movhi
mov r2, r8
bl memcpy
uxth r3, r6
ldrh r6, [r4, #14]
add r5, r5, r3
sub r6, r6, r3
ldr r3, [sp, #12]
strh r5, [r4, #12] @ movhi
add r6, r6, r3
strh r6, [r4, #14] @ movhi
.L4947:
ldr r3, [r4, #4]
add r2, r4, #61440
mov r1, #128
add r3, r3, #1
str r3, [r4, #4]
str r3, [r2, #4092]
mov r2, r4
ldrh r3, [r4, #8]
add r3, r3, #1
uxth r3, r3
cmp r3, #1
movhi r3, #0
strh r3, [r4, #8] @ movhi
ldr r3, [sp, #4]
lsl r0, r3, #7
bl FlashBootVendorWrite
mov r0, #0
.L4927:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L4931:
ldrh r0, [r5, #18]
mov r2, r8
mov r1, fp
add r0, r3, r0
bl memcpy
strh r8, [r5, #20] @ movhi
b .L4947
.L4930:
add r7, r7, #1
b .L4929
.L4949:
.align 2
.L4948:
.word .LANCHOR3
.fnend
.size rk_ftl_vendor_write, .-rk_ftl_vendor_write
.align 2
.global rk_ftl_vendor_storage_ioctl
.syntax unified
.arm
.fpu softvfp
.type rk_ftl_vendor_storage_ioctl, %function
rk_ftl_vendor_storage_ioctl:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r0, #9216
mov r5, r2
mov r6, r1
bl ftl_malloc
subs r4, r0, #0
mvneq r5, #0
beq .L4950
ldr r3, .L4966
cmp r6, r3
beq .L4953
add r3, r3, #1
cmp r6, r3
beq .L4954
.L4964:
mvn r5, #13
b .L4952
.L4953:
mov r2, #8
mov r1, r5
bl rk_copy_from_user
cmp r0, #0
bne .L4964
ldr r2, [r4]
ldr r3, .L4966+4
cmp r2, r3
beq .L4956
.L4957:
mvn r5, #0
.L4952:
mov r0, r4
bl kfree
.L4950:
mov r0, r5
pop {r4, r5, r6, pc}
.L4956:
ldrh r2, [r4, #6]
add r1, r4, #8
ldrh r0, [r4, #4]
bl rk_ftl_vendor_read
cmn r0, #1
beq .L4957
uxth r2, r0
strh r0, [r4, #6] @ movhi
mov r1, r4
mov r0, r5
add r2, r2, #8
bl rk_copy_to_user
subs r5, r0, #0
beq .L4952
b .L4964
.L4954:
mov r2, #8
mov r1, r5
bl rk_copy_from_user
cmp r0, #0
bne .L4964
ldr r2, [r4]
ldr r3, .L4966+4
cmp r2, r3
bne .L4957
ldrh r2, [r4, #6]
movw r3, #4087
cmp r2, r3
bhi .L4957
add r2, r2, #8
mov r1, r5
mov r0, r4
bl rk_copy_from_user
cmp r0, #0
bne .L4964
ldrh r2, [r4, #6]
add r1, r4, #8
ldrh r0, [r4, #4]
bl rk_ftl_vendor_write
mov r5, r0
b .L4952
.L4967:
.align 2
.L4966:
.word 1074034177
.word 1448232273
.fnend
.size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl
.global SecureBootUnlockTryCount
.global SecureBootCheckOK
.global SecureBootEn
.global gpVendor1Info
.global gpVendor0Info
.global g_idb_buffer
.global gSnSectorData
.global gpDrmKeyInfo
.global gpBootConfig
.global ftl_dma32_buffer_size
.global ftl_dma32_buffer
.global gLoaderBootInfo
.global RK29_NANDC1_REG_BASE
.global RK29_NANDC_REG_BASE
.global gp_ftl_api
.global rk_zftl_enable
.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 .rodata
.align 2
.set .LANCHOR1,. + 0
.type __func__.42945, %object
.size __func__.42945, 18
__func__.42945:
.ascii "_list_remove_node\000"
.type __func__.42970, %object
.size __func__.42970, 23
__func__.42970:
.ascii "_list_update_data_list\000"
.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
.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
.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
.type __func__.23463, %object
.size __func__.23463, 22
__func__.23463:
.ascii "nand_flash_print_info\000"
.type __func__.22936, %object
.size __func__.22936, 28
__func__.22936:
.ascii "flash_wait_device_ready_raw\000"
.type __func__.23000, %object
.size __func__.23000, 22
__func__.23000:
.ascii "flash_start_page_read\000"
.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
.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
.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
.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
.type __func__.23025, %object
.size __func__.23025, 23
__func__.23025:
.ascii "flash_start_plane_read\000"
.type __func__.22911, %object
.size __func__.22911, 26
__func__.22911:
.ascii "flash_erase_duplane_block\000"
.type __func__.22922, %object
.size __func__.22922, 21
__func__.22922:
.ascii "flash_erase_block_en\000"
.type random_seed, %object
.size random_seed, 256
random_seed:
.short 22378
.short 1512
.short 25245
.short 17827
.short 25756
.short 19440
.short 9026
.short 10030
.short 29528
.short 20467
.short 29676
.short 24432
.short 31328
.short 6872
.short 13426
.short 13842
.short 8783
.short 1108
.short 782
.short 28837
.short 30729
.short 9505
.short 18676
.short 23085
.short 18730
.short 1085
.short 32609
.short 14697
.short 20858
.short 15170
.short 30365
.short 1607
.short 32298
.short 4995
.short 18905
.short 1976
.short 9592
.short 20204
.short 17443
.short 13615
.short 23330
.short 29369
.short 13947
.short 9398
.short 32398
.short 8984
.short 27600
.short 21785
.short 6019
.short 6311
.short 31598
.short 30210
.short 19327
.short 13896
.short 11347
.short 27545
.short 3107
.short 26575
.short 32270
.short 19852
.short 20601
.short 8349
.short 9290
.short 29819
.short 13579
.short 3661
.short 28676
.short 27331
.short 32574
.short 8693
.short 31253
.short 9081
.short 5399
.short 6842
.short 20087
.short 5537
.short 1274
.short 11617
.short 9530
.short 4866
.short 8035
.short 23219
.short 1178
.short 23272
.short 7383
.short 18944
.short 12488
.short 12871
.short 29340
.short 20532
.short 11022
.short 22514
.short 228
.short 22363
.short 24978
.short 14584
.short 12138
.short 3092
.short 17916
.short 16863
.short 14554
.short 31457
.short 29474
.short 25311
.short 24121
.short 3684
.short 28037
.short 22865
.short 22839
.short 25217
.short 13217
.short 27186
.short 14938
.short 11180
.short 29754
.short 24180
.short 15150
.short 32455
.short 20434
.short 23848
.short 29983
.short 16120
.short 14769
.short 20041
.short 29803
.short 28406
.short 17598
.short 28087
.type __func__.23728, %object
.size __func__.23728, 13
__func__.23728:
.ascii "buf_add_tail\000"
.type __func__.23741, %object
.size __func__.23741, 10
__func__.23741:
.ascii "buf_alloc\000"
.type __func__.23755, %object
.size __func__.23755, 16
__func__.23755:
.ascii "buf_remove_free\000"
.space 1
.type zftl_debug_proc_fops, %object
.size zftl_debug_proc_fops, 44
zftl_debug_proc_fops:
.space 4
.word zftl_debug_proc_open
.word seq_read
.space 4
.word zftl_debug_proc_write
.word seq_lseek
.word single_release
.space 16
.type __func__.42478, %object
.size __func__.42478, 12
__func__.42478:
.ascii "gc_add_sblk\000"
.type __func__.42570, %object
.size __func__.42570, 19
__func__.42570:
.ascii "gc_write_completed\000"
.type __func__.43176, %object
.size __func__.43176, 18
__func__.43176:
.ascii "ftl_alloc_sys_blk\000"
.type __func__.43186, %object
.size __func__.43186, 17
__func__.43186:
.ascii "ftl_free_sys_blk\000"
.type __func__.43307, %object
.size __func__.43307, 23
__func__.43307:
.ascii "ftl_get_ppa_from_index\000"
.type __func__.43347, %object
.size __func__.43347, 22
__func__.43347:
.ascii "ftl_get_new_free_page\000"
.type __func__.43358, %object
.size __func__.43358, 22
__func__.43358:
.ascii "ftl_ext_alloc_new_blk\000"
.type __func__.42627, %object
.size __func__.42627, 16
__func__.42627:
.ascii "gc_free_src_blk\000"
.type __func__.42221, %object
.size __func__.42221, 14
__func__.42221:
.ascii "ftl_write_buf\000"
.type __func__.42266, %object
.size __func__.42266, 18
__func__.42266:
.ascii "zftl_add_read_buf\000"
.type __func__.43780, %object
.size __func__.43780, 21
__func__.43780:
.ascii "pm_select_ram_region\000"
.type __func__.23453, %object
.size __func__.23453, 20
__func__.23453:
.ascii "flash_die_info_init\000"
.type __func__.42153, %object
.size __func__.42153, 17
__func__.42153:
.ascii "lpa_rebuild_hash\000"
.type __func__.43045, %object
.size __func__.43045, 20
__func__.43045:
.ascii "zftl_sblk_list_init\000"
.type __func__.43712, %object
.size __func__.43712, 13
__func__.43712:
.ascii "pm_free_sblk\000"
.type __func__.23791, %object
.size __func__.23791, 21
__func__.23791:
.ascii "flash_info_data_init\000"
.type __func__.23549, %object
.size __func__.23549, 11
__func__.23549:
.ascii "nandc_init\000"
.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
.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
.type __func__.22834, %object
.size __func__.22834, 19
__func__.22834:
.ascii "flash_read_page_en\000"
.type __func__.22960, %object
.size __func__.22960, 26
__func__.22960:
.ascii "flash_start_tlc_page_prog\000"
.type __func__.22971, %object
.size __func__.22971, 29
__func__.22971:
.ascii "flash_start_3d_mlc_page_prog\000"
.type __func__.22989, %object
.size __func__.22989, 22
__func__.22989:
.ascii "flash_start_page_prog\000"
.type __func__.23013, %object
.size __func__.23013, 31
__func__.23013:
.ascii "flash_complete_plane_page_read\000"
.type __func__.23038, %object
.size __func__.23038, 25
__func__.23038:
.ascii "flash_complete_page_read\000"
.type __func__.43545, %object
.size __func__.43545, 31
__func__.43545:
.ascii "queue_wait_first_req_completed\000"
.type __func__.43599, %object
.size __func__.43599, 15
__func__.43599:
.ascii "sblk_prog_page\000"
.type __func__.43626, %object
.size __func__.43626, 15
__func__.43626:
.ascii "sblk_read_page\000"
.type __func__.42525, %object
.size __func__.42525, 21
__func__.42525:
.ascii "gc_check_data_one_wl\000"
.type __func__.22895, %object
.size __func__.22895, 19
__func__.22895:
.ascii "flash_prog_page_en\000"
.type __func__.43422, %object
.size __func__.43422, 14
__func__.43422:
.ascii "ftl_prog_page\000"
.type __func__.43079, %object
.size __func__.43079, 15
__func__.43079:
.ascii "ftl_info_flush\000"
.type __func__.43384, %object
.size __func__.43384, 19
__func__.43384:
.ascii "ftl_ext_info_flush\000"
.type __func__.43396, %object
.size __func__.43396, 18
__func__.43396:
.ascii "ftl_ext_info_init\000"
.type __func__.43134, %object
.size __func__.43134, 15
__func__.43134:
.ascii "ftl_alloc_sblk\000"
.type __func__.43752, %object
.size __func__.43752, 17
__func__.43752:
.ascii "pm_alloc_new_blk\000"
.type __func__.43762, %object
.size __func__.43762, 14
__func__.43762:
.ascii "pm_write_page\000"
.type __func__.23813, %object
.size __func__.23813, 17
__func__.23813:
.ascii "flash_info_flush\000"
.type __func__.23776, %object
.size __func__.23776, 20
__func__.23776:
.ascii "flash_info_blk_init\000"
.type __func__.23508, %object
.size __func__.23508, 16
__func__.23508:
.ascii "nand_flash_init\000"
.type __func__.43249, %object
.size __func__.43249, 16
__func__.43249:
.ascii "ftl_sysblk_dump\000"
.type __func__.43274, %object
.size __func__.43274, 23
__func__.43274:
.ascii "ftl_open_sblk_recovery\000"
.type __func__.43696, %object
.size __func__.43696, 16
__func__.43696:
.ascii "load_l2p_region\000"
.type __func__.43736, %object
.size __func__.43736, 6
__func__.43736:
.ascii "pm_gc\000"
.type __func__.42468, %object
.size __func__.42468, 12
__func__.42468:
.ascii "gc_recovery\000"
.type __func__.42557, %object
.size __func__.42557, 22
__func__.42557:
.ascii "gc_update_l2p_map_new\000"
.type __func__.42671, %object
.size __func__.42671, 16
__func__.42671:
.ascii "gc_scan_src_blk\000"
.type __func__.42732, %object
.size __func__.42732, 20
__func__.42732:
.ascii "gc_scan_static_data\000"
.type __func__.42795, %object
.size __func__.42795, 18
__func__.42795:
.ascii "gc_block_vpn_scan\000"
.type __func__.43225, %object
.size __func__.43225, 14
__func__.43225:
.ascii "ftl_sblk_dump\000"
.type __func__.42299, %object
.size __func__.42299, 10
__func__.42299:
.ascii "zftl_read\000"
.type __func__.43328, %object
.size __func__.43328, 19
__func__.43328:
.ascii "ftl_update_l2p_map\000"
.type __func__.42203, %object
.size __func__.42203, 17
__func__.42203:
.ascii "ftl_write_commit\000"
.type __func__.42600, %object
.size __func__.42600, 16
__func__.42600:
.ascii "gc_do_copy_back\000"
.type __func__.42850, %object
.size __func__.42850, 11
__func__.42850:
.ascii "zftl_do_gc\000"
.type __func__.42331, %object
.size __func__.42331, 13
__func__.42331:
.ascii "_ftl_discard\000"
.data
.align 2
.set .LANCHOR2,. + 0
.type zftl_debug, %object
.size zftl_debug, 4
zftl_debug:
.word 17476
.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
.short 768
.byte 3
.byte 2
.short 758
.short 5593
.byte 0
.byte 37
.byte 60
.byte 32
.byte 2
.byte 1
.byte 4
.byte 0
.short 256
.byte 1
.byte -94
.byte 0
.byte 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
.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
.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
.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
.short 768
.byte 3
.byte 2
.short 758
.short 5593
.byte 0
.byte 37
.byte 60
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 768
.byte 3
.byte 2
.short 1478
.short 5593
.byte 0
.byte 37
.byte 60
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 384
.byte 3
.byte 2
.short 1446
.short 1497
.byte 0
.byte 36
.byte 60
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1074
.short 17881
.byte 2
.byte 35
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 2092
.short 17857
.byte 2
.byte 33
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 2106
.short 17881
.byte 2
.byte 35
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 1056
.short 17857
.byte 2
.byte 35
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 1060
.short 17857
.byte 2
.byte 34
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1066
.short 17881
.byte 2
.byte 34
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 1060
.short 17857
.byte 2
.byte 33
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1058
.short 17881
.byte 2
.byte 33
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1074
.short 17881
.byte 2
.byte 35
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 2106
.short 17881
.byte 2
.byte 68
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1074
.short 17881
.byte 2
.byte 68
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1058
.short 17881
.byte 2
.byte 66
.byte 40
.byte 32
.byte 3
.byte 1
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1066
.short 17881
.byte 2
.byte 67
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 1060
.short 17857
.byte 2
.byte 66
.byte 40
.byte 32
.byte 2
.byte 1
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 1048
.short 9671
.byte 5
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 512
.byte 2
.byte 2
.short 700
.short 479
.byte 4
.byte 18
.byte 60
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1064
.short 479
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 2
.short 1024
.short 479
.byte 4
.byte 18
.byte 60
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 1024
.short 455
.byte 4
.byte 18
.byte 60
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 4
.short 1024
.short 449
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 2
.short 1024
.short 479
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 2184
.short 9671
.byte 5
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 1044
.short 471
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 2184
.short 9671
.byte 5
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 2184
.short 9671
.byte 5
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 2184
.short 9671
.byte 5
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 1
.short 2144
.short -23097
.byte 8
.byte 21
.byte 70
.byte 32
.byte 1
.byte 0
.byte 8
.byte 0
.short 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
.short 512
.byte 2
.byte 2
.short 1024
.short 479
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 768
.byte 3
.byte 1
.short 1440
.short 3527
.byte 0
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 2304
.byte 3
.byte 1
.short 1008
.short 3521
.byte 0
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 1024
.byte 2
.byte 1
.short 2192
.short 9671
.byte 10
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 1152
.byte 3
.byte 2
.short 1006
.short -27169
.byte 13
.byte 81
.byte 70
.byte 32
.byte 1
.byte 0
.byte 4
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1056
.short 455
.byte 2
.byte 6
.byte 40
.byte 32
.byte 3
.byte 1
.byte 3
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1066
.short 473
.byte 1
.byte 7
.byte 40
.byte 32
.byte 4
.byte 1
.byte 3
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1060
.short 473
.byte 2
.byte 5
.byte 40
.byte 32
.byte 4
.byte 1
.byte 3
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1046
.short 473
.byte 1
.byte 3
.byte 40
.byte 32
.byte 4
.byte 1
.byte 3
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 2092
.short 473
.byte 2
.byte 5
.byte 40
.byte 32
.byte 3
.byte 1
.byte 3
.byte 0
.short 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
.short 256
.byte 2
.byte 2
.short 1056
.short 473
.byte 2
.byte 5
.byte 40
.byte 32
.byte 4
.byte 1
.byte 3
.byte 0
.short 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
.short 388
.byte 2
.byte 2
.short 1362
.short 473
.byte 9
.byte 8
.byte 40
.byte 32
.byte 3
.byte 1
.byte 3
.byte 0
.short 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
.short 512
.byte 2
.byte 1
.short 1024
.short 455
.byte 4
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 512
.byte 2
.byte 2
.short 1024
.short 455
.byte 4
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 4
.short 1024
.short 449
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 4
.short 1024
.short 449
.byte 3
.byte 17
.byte 40
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 256
.byte 2
.byte 4
.short 1024
.short 449
.byte 1
.byte 0
.byte 24
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 2304
.byte 3
.byte 1
.short 1008
.short 3521
.byte 0
.byte 19
.byte 70
.byte 32
.byte 1
.byte 0
.byte 1
.byte 0
.short 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
.short 792
.byte 2
.byte 1
.short 688
.short 1217
.byte 11
.byte 50
.byte 40
.byte 32
.byte 3
.byte 1
.byte 1
.byte 0
.short 1024
.byte 1
.byte -38
.byte -33
.byte 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
.space 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
.space 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
.space 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
.space 14
.type tlc_b05a_prog_tbl, %object
.size tlc_b05a_prog_tbl, 1536
tlc_b05a_prog_tbl:
.short 0
.short 0
.short 0
.short 0
.short 0
.short 0
.short 0
.short 0
.short 9
.short 0
.short 11
.short 0
.short 13
.short 0
.short 15
.short 0
.short 17
.short 0
.short 19
.short 0
.short 21
.short 0
.short 23
.short 0
.short 25
.short 0
.short 27
.short 0
.short 29
.short 0
.short 31
.short 0
.short 33
.short 0
.short 35
.short 0
.short 37
.short 0
.short 39
.short 0
.short 41
.short 0
.short 43
.short 0
.short 45
.short 0
.short 47
.short 0
.short 49
.short 0
.short 51
.short 0
.short 53
.short 0
.short 55
.short 0
.short 25
.short 58
.short 0
.short 27
.short 61
.short 0
.short 29
.short 64
.short 0
.short 31
.short 67
.short 0
.short 33
.short 70
.short 0
.short 35
.short 73
.short 0
.short 37
.short 76
.short 0
.short 39
.short 79
.short 0
.short 41
.short 82
.short 0
.short 43
.short 85
.short 0
.short 45
.short 88
.short 0
.short 47
.short 91
.short 0
.short 49
.short 94
.short 0
.short 51
.short 97
.short 0
.short 53
.short 100
.short 0
.short 55
.short 103
.short 0
.short 58
.short 106
.short 0
.short 61
.short 109
.short 0
.short 64
.short 112
.short 0
.short 67
.short 115
.short 0
.short 70
.short 118
.short 0
.short 73
.short 121
.short 0
.short 76
.short 124
.short 0
.short 79
.short 127
.short 0
.short 82
.short 130
.short 0
.short 85
.short 133
.short 0
.short 88
.short 136
.short 0
.short 91
.short 139
.short 0
.short 94
.short 142
.short 0
.short 97
.short 145
.short 0
.short 100
.short 148
.short 0
.short 103
.short 151
.short 0
.short 106
.short 154
.short 0
.short 109
.short 157
.short 0
.short 112
.short 160
.short 0
.short 115
.short 163
.short 0
.short 118
.short 166
.short 0
.short 121
.short 169
.short 0
.short 124
.short 172
.short 0
.short 127
.short 175
.short 0
.short 130
.short 178
.short 0
.short 133
.short 181
.short 0
.short 136
.short 184
.short 0
.short 139
.short 187
.short 0
.short 142
.short 190
.short 0
.short 145
.short 193
.short 0
.short 148
.short 196
.short 0
.short 151
.short 199
.short 0
.short 154
.short 202
.short 0
.short 157
.short 205
.short 0
.short 160
.short 208
.short 0
.short 163
.short 211
.short 0
.short 166
.short 214
.short 0
.short 169
.short 217
.short 0
.short 172
.short 220
.short 0
.short 175
.short 223
.short 0
.short 178
.short 226
.short 0
.short 181
.short 229
.short 0
.short 184
.short 232
.short 0
.short 187
.short 235
.short 0
.short 190
.short 238
.short 0
.short 193
.short 241
.short 0
.short 196
.short 244
.short 0
.short 199
.short 247
.short 0
.short 202
.short 250
.short 0
.short 205
.short 253
.short 0
.short 208
.short 256
.short 0
.short 211
.short 259
.short 0
.short 214
.short 262
.short 0
.short 217
.short 265
.short 0
.short 220
.short 268
.short 0
.short 223
.short 271
.short 0
.short 226
.short 274
.short 0
.short 229
.short 277
.short 0
.short 232
.short 280
.short 0
.short 235
.short 283
.short 0
.short 238
.short 286
.short 0
.short 241
.short 289
.short 0
.short 244
.short 292
.short 0
.short 247
.short 295
.short 0
.short 250
.short 298
.short 0
.short 253
.short 301
.short 0
.short 256
.short 304
.short 0
.short 259
.short 307
.short 0
.short 262
.short 310
.short 0
.short 265
.short 313
.short 0
.short 268
.short 316
.short 0
.short 271
.short 319
.short 0
.short 274
.short 322
.short 0
.short 277
.short 325
.short 0
.short 280
.short 328
.short 0
.short 283
.short 331
.short 0
.short 286
.short 334
.short 0
.short 289
.short 337
.short 0
.short 292
.short 340
.short 0
.short 295
.short 343
.short 0
.short 298
.short 346
.short 0
.short 301
.short 349
.short 0
.short 304
.short 352
.short 0
.short 307
.short 355
.short 0
.short 310
.short 358
.short 0
.short 313
.short 361
.short 0
.short 316
.short 364
.short 0
.short 319
.short 367
.short 0
.short 322
.short 370
.short 0
.short 325
.short 373
.short 0
.short 328
.short 376
.short 0
.short 331
.short 379
.short 0
.short 334
.short 382
.short 0
.short 337
.short 385
.short 0
.short 340
.short 388
.short 0
.short 343
.short 391
.short 0
.short 346
.short 394
.short 0
.short 349
.short 397
.short 0
.short 352
.short 400
.short 0
.short 355
.short 403
.short 0
.short 358
.short 406
.short 0
.short 361
.short 409
.short 0
.short 364
.short 412
.short 0
.short 367
.short 415
.short 0
.short 370
.short 418
.short 0
.short 373
.short 421
.short 0
.short 376
.short 424
.short 0
.short 379
.short 427
.short 0
.short 382
.short 430
.short 0
.short 385
.short 433
.short 0
.short 388
.short 436
.short 0
.short 391
.short 439
.short 0
.short 394
.short 442
.short 0
.short 397
.short 445
.short 0
.short 400
.short 448
.short 0
.short 403
.short 451
.short 0
.short 406
.short 454
.short 0
.short 409
.short 457
.short 0
.short 412
.short 460
.short 0
.short 415
.short 463
.short 0
.short 418
.short 466
.short 0
.short 421
.short 469
.short 0
.short 424
.short 472
.short 0
.short 427
.short 475
.short 0
.short 430
.short 478
.short 0
.short 433
.short 481
.short 0
.short 436
.short 484
.short 0
.short 439
.short 487
.short 0
.short 442
.short 490
.short 0
.short 445
.short 493
.short 0
.short 448
.short 496
.short 0
.short 451
.short 499
.short 0
.short 454
.short 502
.short 0
.short 457
.short 505
.short 0
.short 460
.short 508
.short 0
.short 463
.short 511
.short 0
.short 466
.short 514
.short 0
.short 469
.short 517
.short 0
.short 472
.short 520
.short 0
.short 475
.short 523
.short 0
.short 478
.short 526
.short 0
.short 481
.short 529
.short 0
.short 484
.short 532
.short 0
.short 487
.short 535
.short 0
.short 490
.short 538
.short 0
.short 493
.short 541
.short 0
.short 496
.short 544
.short 0
.short 499
.short 547
.short 0
.short 502
.short 550
.short 0
.short 505
.short 553
.short 0
.short 508
.short 556
.short 0
.short 511
.short 559
.short 0
.short 514
.short 562
.short 0
.short 517
.short 565
.short 0
.short 520
.short 568
.short 0
.short 523
.short 571
.short 0
.short 526
.short 574
.short 0
.short 529
.short 577
.short 0
.short 532
.short 580
.short 0
.short 535
.short 583
.short 0
.short 538
.short 586
.short 0
.short 541
.short 589
.short 0
.short 544
.short 592
.short 0
.short 547
.short 595
.short 0
.short 550
.short 598
.short 0
.short 553
.short 601
.short 0
.short 556
.short 604
.short 0
.short 559
.short 607
.short 0
.short 562
.short 610
.short 0
.short 565
.short 613
.short 0
.short 568
.short 616
.short 0
.short 571
.short 619
.short 0
.short 574
.short 622
.short 0
.short 577
.short 625
.short 0
.short 580
.short 628
.short 0
.short 583
.short 631
.short 0
.short 586
.short 634
.short 0
.short 589
.short 637
.short 0
.short 592
.short 640
.short 0
.short 595
.short 643
.short 0
.short 598
.short 646
.short 0
.short 601
.short 649
.short 0
.short 604
.short 652
.short 0
.short 607
.short 655
.short 0
.short 610
.short 658
.short 0
.short 613
.short 661
.short 0
.short 616
.short 664
.short 0
.short 619
.short 667
.short 0
.short 622
.short 670
.short 0
.short 625
.short 673
.short 0
.short 628
.short 676
.short 0
.short 631
.short 679
.short 0
.short 634
.short 682
.short 0
.short 637
.short 685
.short 0
.short 640
.short 688
.short 0
.short 643
.short 691
.short 0
.short 646
.short 694
.short 0
.short 649
.short 697
.short 0
.short 652
.short 700
.short 0
.short 655
.short 703
.short 0
.short 658
.short 706
.short 0
.short 661
.short 709
.short 0
.short 664
.short 712
.short 0
.short 667
.short 715
.short 0
.short 670
.short 718
.short 0
.short 673
.short 721
.short 0
.short 676
.short 724
.short 0
.short 679
.short 727
.short 0
.short 682
.short 730
.short 0
.short 685
.short 733
.short 0
.short 688
.short 736
.short 0
.short 691
.short 739
.short 0
.short 694
.short 742
.short 0
.short 697
.short 745
.short 0
.short 700
.short 748
.short 0
.short 703
.short 751
.short 0
.short 706
.short 0
.short 709
.short 0
.short 712
.short 0
.short 715
.short 0
.short 718
.short 0
.short 721
.short 0
.short 724
.short 0
.short 727
.short 0
.type tlc_prog_order, %object
.size tlc_prog_order, 768
tlc_prog_order:
.short 1
.short 9
.short 2
.short 17
.short 10
.short 3
.short 25
.short 18
.short 11
.short 33
.short 26
.short 19
.short 41
.short 34
.short 27
.short 49
.short 42
.short 35
.short 57
.short 50
.short 43
.short 65
.short 58
.short 51
.short 73
.short 66
.short 59
.short 81
.short 74
.short 67
.short 89
.short 82
.short 75
.short 97
.short 90
.short 83
.short 105
.short 98
.short 91
.short 113
.short 106
.short 99
.short 121
.short 114
.short 107
.short 129
.short 122
.short 115
.short 137
.short 130
.short 123
.short 145
.short 138
.short 131
.short 153
.short 146
.short 139
.short 161
.short 154
.short 147
.short 169
.short 162
.short 155
.short 177
.short 170
.short 163
.short 185
.short 178
.short 171
.short 193
.short 186
.short 179
.short 201
.short 194
.short 187
.short 209
.short 202
.short 195
.short 217
.short 210
.short 203
.short 225
.short 218
.short 211
.short 233
.short 226
.short 219
.short 241
.short 234
.short 227
.short 249
.short 242
.short 235
.short 257
.short 250
.short 243
.short 265
.short 258
.short 251
.short 273
.short 266
.short 259
.short 281
.short 274
.short 267
.short 289
.short 282
.short 275
.short 297
.short 290
.short 283
.short 305
.short 298
.short 291
.short 313
.short 306
.short 299
.short 321
.short 314
.short 307
.short 329
.short 322
.short 315
.short 337
.short 330
.short 323
.short 345
.short 338
.short 331
.short 353
.short 346
.short 339
.short 361
.short 354
.short 347
.short 369
.short 362
.short 355
.short 377
.short 370
.short 363
.short 385
.short 378
.short 371
.short 393
.short 386
.short 379
.short 401
.short 394
.short 387
.short 409
.short 402
.short 395
.short 417
.short 410
.short 403
.short 425
.short 418
.short 411
.short 433
.short 426
.short 419
.short 441
.short 434
.short 427
.short 449
.short 442
.short 435
.short 457
.short 450
.short 443
.short 465
.short 458
.short 451
.short 473
.short 466
.short 459
.short 481
.short 474
.short 467
.short 489
.short 482
.short 475
.short 497
.short 490
.short 483
.short 505
.short 498
.short 491
.short 513
.short 506
.short 499
.short 521
.short 514
.short 507
.short 529
.short 522
.short 515
.short 537
.short 530
.short 523
.short 545
.short 538
.short 531
.short 553
.short 546
.short 539
.short 561
.short 554
.short 547
.short 569
.short 562
.short 555
.short 577
.short 570
.short 563
.short 585
.short 578
.short 571
.short 593
.short 586
.short 579
.short 601
.short 594
.short 587
.short 609
.short 602
.short 595
.short 617
.short 610
.short 603
.short 625
.short 618
.short 611
.short 633
.short 626
.short 619
.short 641
.short 634
.short 627
.short 649
.short 642
.short 635
.short 657
.short 650
.short 643
.short 665
.short 658
.short 651
.short 673
.short 666
.short 659
.short 681
.short 674
.short 667
.short 689
.short 682
.short 675
.short 697
.short 690
.short 683
.short 705
.short 698
.short 691
.short 713
.short 706
.short 699
.short 721
.short 714
.short 707
.short 729
.short 722
.short 715
.short 737
.short 730
.short 723
.short 745
.short 738
.short 731
.short 753
.short 746
.short 739
.short 761
.short 754
.short 747
.short 769
.short 762
.short 755
.short 777
.short 770
.short 763
.short 785
.short 778
.short 771
.short 793
.short 786
.short 779
.short 801
.short 794
.short 787
.short 809
.short 802
.short 795
.short 817
.short 810
.short 803
.short 825
.short 818
.short 811
.short 833
.short 826
.short 819
.short 841
.short 834
.short 827
.short 849
.short 842
.short 835
.short 857
.short 850
.short 843
.short 865
.short 858
.short 851
.short 873
.short 866
.short 859
.short 881
.short 874
.short 867
.short 889
.short 882
.short 875
.short 897
.short 890
.short 883
.short 905
.short 898
.short 891
.short 913
.short 906
.short 899
.short 921
.short 914
.short 907
.short 929
.short 922
.short 915
.short 937
.short 930
.short 923
.short 945
.short 938
.short 931
.short 953
.short 946
.short 939
.short 961
.short 954
.short 947
.short 969
.short 962
.short 955
.short 977
.short 970
.short 963
.short 985
.short 978
.short 971
.short 993
.short 986
.short 979
.short 1001
.short 994
.short 987
.short 1009
.short 1002
.short 995
.short 1017
.short 1010
.short 1003
.short 1018
.short 1011
.short 1019
.bss
.align 6
.set .LANCHOR0,. + 0
.set .LANCHOR3,. + 8184
.type g_flash_slc_mode, %object
.size g_flash_slc_mode, 1
g_flash_slc_mode:
.space 1
.type g_slc_mode_addr2, %object
.size g_slc_mode_addr2, 1
g_slc_mode_addr2:
.space 1
.type g_block_align_addr, %object
.size g_block_align_addr, 2
g_block_align_addr:
.space 2
.type g_lsb_page_tbl, %object
.size g_lsb_page_tbl, 1024
g_lsb_page_tbl:
.space 1024
.type g_nandc_ver, %object
.size g_nandc_ver, 1
g_nandc_ver:
.space 1
.space 3
.type _c_user_data_density, %object
.size _c_user_data_density, 4
_c_user_data_density:
.space 4
.type gp_sblk_list_tbl, %object
.size gp_sblk_list_tbl, 4
gp_sblk_list_tbl:
.space 4
.type gp_flash_info, %object
.size gp_flash_info, 4
gp_flash_info:
.space 4
.type gp_nandc, %object
.size gp_nandc, 4
gp_nandc:
.space 4
.type NANDC_FMCTL, %object
.size NANDC_FMCTL, 4
NANDC_FMCTL:
.space 4
.type NANDC_FMWAIT, %object
.size NANDC_FMWAIT, 4
NANDC_FMWAIT:
.space 4
.type NANDC_FLCTL, %object
.size NANDC_FLCTL, 4
NANDC_FLCTL:
.space 4
.type NANDC_BCHCTL, %object
.size NANDC_BCHCTL, 4
NANDC_BCHCTL:
.space 4
.type NANDC_DLL_CTL_REG0, %object
.size NANDC_DLL_CTL_REG0, 4
NANDC_DLL_CTL_REG0:
.space 4
.type NANDC_DLL_CTL_REG1, %object
.size NANDC_DLL_CTL_REG1, 4
NANDC_DLL_CTL_REG1:
.space 4
.type NANDC_RANDMZ_CFG, %object
.size NANDC_RANDMZ_CFG, 4
NANDC_RANDMZ_CFG:
.space 4
.type NANDC_FMWAIT_SYN, %object
.size NANDC_FMWAIT_SYN, 4
NANDC_FMWAIT_SYN:
.space 4
.type _c_ftl_blk_pre_plane, %object
.size _c_ftl_blk_pre_plane, 2
_c_ftl_blk_pre_plane:
.space 2
.space 2
.type gp_blk_info, %object
.size gp_blk_info, 4
gp_blk_info:
.space 4
.type _c_slc_to_xlc_ec_ratio, %object
.size _c_slc_to_xlc_ec_ratio, 2
_c_slc_to_xlc_ec_ratio:
.space 2
.space 2
.type ftl_sblk_vpn, %object
.size ftl_sblk_vpn, 4
ftl_sblk_vpn:
.space 4
.type gp_ftl_ext_info, %object
.size gp_ftl_ext_info, 4
gp_ftl_ext_info:
.space 4
.type g_retryMode, %object
.size g_retryMode, 1
g_retryMode:
.space 1
.type g_maxRegNum, %object
.size g_maxRegNum, 1
g_maxRegNum:
.space 1
.space 2
.type gp_nand_para_info, %object
.size gp_nand_para_info, 4
gp_nand_para_info:
.space 4
.type g_idb_ecc_bits, %object
.size g_idb_ecc_bits, 1
g_idb_ecc_bits:
.space 1
.type g_nand_max_die, %object
.size g_nand_max_die, 1
g_nand_max_die:
.space 1
.type g_idb_slc_mode_enable, %object
.size g_idb_slc_mode_enable, 1
g_idb_slc_mode_enable:
.space 1
.type g_nand_opt_para, %object
.size g_nand_opt_para, 32
g_nand_opt_para:
.space 32
.type g_flash_toggle_mode_en, %object
.size g_flash_toggle_mode_en, 1
g_flash_toggle_mode_en:
.space 1
.type g_die_cs_idx, %object
.size g_die_cs_idx, 8
g_die_cs_idx:
.space 8
.type g_flash_six_addr, %object
.size g_flash_six_addr, 1
g_flash_six_addr:
.space 1
.type _c_ftl_cs_bits, %object
.size _c_ftl_cs_bits, 1
_c_ftl_cs_bits:
.space 1
.type g_flash_cur_mode, %object
.size g_flash_cur_mode, 4
g_flash_cur_mode:
.space 4
.type g_flash_micron_3d_tlc_flag, %object
.size g_flash_micron_3d_tlc_flag, 1
g_flash_micron_3d_tlc_flag:
.space 1
.type g_flash_ymtc_3d_tlc_flag, %object
.size g_flash_ymtc_3d_tlc_flag, 1
g_flash_ymtc_3d_tlc_flag:
.space 1
.type IDByte, %object
.size IDByte, 32
IDByte:
.space 32
.type g_flash_interface_mode, %object
.size g_flash_interface_mode, 1
g_flash_interface_mode:
.space 1
.type g_nandc_ecc_bits, %object
.size g_nandc_ecc_bits, 1
g_nandc_ecc_bits:
.space 1
.type g_flash_multi_page_prog_en, %object
.size g_flash_multi_page_prog_en, 1
g_flash_multi_page_prog_en:
.space 1
.type nandc_hw_seed, %object
.size nandc_hw_seed, 1
nandc_hw_seed:
.space 1
.type nandc_randomizer_en, %object
.size nandc_randomizer_en, 1
nandc_randomizer_en:
.space 1
.space 3
.type g_nandc_v6_master_info, %object
.size g_nandc_v6_master_info, 28
g_nandc_v6_master_info:
.space 28
.type fill_spare_size, %object
.size fill_spare_size, 2
fill_spare_size:
.space 2
.space 2
.type g_buf, %object
.size g_buf, 1536
g_buf:
.space 1536
.type p_free_buf_head, %object
.size p_free_buf_head, 1
p_free_buf_head:
.space 1
.type free_buf_count, %object
.size free_buf_count, 1
free_buf_count:
.space 1
.type sblk_queue_head, %object
.size sblk_queue_head, 1
sblk_queue_head:
.space 1
.type sblk_read_completed_queue_head, %object
.size sblk_read_completed_queue_head, 1
sblk_read_completed_queue_head:
.space 1
.type sblk_gc_write_completed_queue_head, %object
.size sblk_gc_write_completed_queue_head, 1
sblk_gc_write_completed_queue_head:
.space 1
.type sblk_write_completed_queue_head, %object
.size sblk_write_completed_queue_head, 1
sblk_write_completed_queue_head:
.space 1
.space 2
.type _c_totle_phy_density, %object
.size _c_totle_phy_density, 4
_c_totle_phy_density:
.space 4
.type _c_totle_log_page, %object
.size _c_totle_log_page, 4
_c_totle_log_page:
.space 4
.type free_slc_sblk, %object
.size free_slc_sblk, 2
free_slc_sblk:
.space 2
.type free_xlc_sblk, %object
.size free_xlc_sblk, 2
free_xlc_sblk:
.space 2
.type free_mix_sblk, %object
.size free_mix_sblk, 2
free_mix_sblk:
.space 2
.type slc_data_sblk, %object
.size slc_data_sblk, 2
slc_data_sblk:
.space 2
.type slc_cache_sblk, %object
.size slc_cache_sblk, 2
slc_cache_sblk:
.space 2
.type xlc_data_sblk, %object
.size xlc_data_sblk, 2
xlc_data_sblk:
.space 2
.type write_buf_count, %object
.size write_buf_count, 1
write_buf_count:
.space 1
.type write_commit_count, %object
.size write_commit_count, 1
write_commit_count:
.space 1
.space 2
.type gp_ftl_info, %object
.size gp_ftl_info, 4
gp_ftl_info:
.space 4
.type gc_free_slc_sblk_th, %object
.size gc_free_slc_sblk_th, 2
gc_free_slc_sblk_th:
.space 2
.type gc_tlc_mode_slc_vpn_th, %object
.size gc_tlc_mode_slc_vpn_th, 2
gc_tlc_mode_slc_vpn_th:
.space 2
.type gc_tlc_mode_tlc_vpn_th, %object
.size gc_tlc_mode_tlc_vpn_th, 2
gc_tlc_mode_tlc_vpn_th:
.space 2
.space 2
.type _gc_after_discard_en, %object
.size _gc_after_discard_en, 4
_gc_after_discard_en:
.space 4
.type gc_slc_mode_tlc_vpn_th, %object
.size gc_slc_mode_tlc_vpn_th, 2
gc_slc_mode_tlc_vpn_th:
.space 2
.type gc_slc_mode_vpn_th, %object
.size gc_slc_mode_vpn_th, 2
gc_slc_mode_vpn_th:
.space 2
.type write_buf_head, %object
.size write_buf_head, 1
write_buf_head:
.space 1
.space 3
.type g_gc_info, %object
.size g_gc_info, 2204
g_gc_info:
.space 2204
.type ftl_sblk_vpn_update_id, %object
.size ftl_sblk_vpn_update_id, 2
ftl_sblk_vpn_update_id:
.space 2
.type ftl_sblk_update_list, %object
.size ftl_sblk_update_list, 16
ftl_sblk_update_list:
.space 16
.type _c_ftl_block_addr_log2, %object
.size _c_ftl_block_addr_log2, 2
_c_ftl_block_addr_log2:
.space 2
.type _c_ftl_planes_per_die, %object
.size _c_ftl_planes_per_die, 1
_c_ftl_planes_per_die:
.space 1
.space 3
.type gc_valid_page_ppa, %object
.size gc_valid_page_ppa, 4
gc_valid_page_ppa:
.space 4
.type _c_ftl_nand_type, %object
.size _c_ftl_nand_type, 1
_c_ftl_nand_type:
.space 1
.type _c_ftl_nand_planes_num, %object
.size _c_ftl_nand_planes_num, 1
_c_ftl_nand_planes_num:
.space 1
.type g_flash_3d_mlc_flag, %object
.size g_flash_3d_mlc_flag, 1
g_flash_3d_mlc_flag:
.space 1
.type g_one_pass_program, %object
.size g_one_pass_program, 1
g_one_pass_program:
.space 1
.type gc_page_buf_id, %object
.size gc_page_buf_id, 4
gc_page_buf_id:
.space 4
.type g_flash_3d_tlc_flag, %object
.size g_flash_3d_tlc_flag, 1
g_flash_3d_tlc_flag:
.space 1
.type gc_mode, %object
.size gc_mode, 1
gc_mode:
.space 1
.type _c_ftl_page_pre_blk, %object
.size _c_ftl_page_pre_blk, 2
_c_ftl_page_pre_blk:
.space 2
.type gp_data_slc_data_head, %object
.size gp_data_slc_data_head, 4
gp_data_slc_data_head:
.space 4
.type gc_slc_data_index, %object
.size gc_slc_data_index, 2
gc_slc_data_index:
.space 2
.type gc_slc_cache_index, %object
.size gc_slc_cache_index, 2
gc_slc_cache_index:
.space 2
.type gc_xlc_data_index, %object
.size gc_xlc_data_index, 2
gc_xlc_data_index:
.space 2
.space 2
.type gp_data_slc_cache_head, %object
.size gp_data_slc_cache_head, 4
gp_data_slc_cache_head:
.space 4
.type gp_data_xlc_data_head, %object
.size gp_data_xlc_data_head, 4
gp_data_xlc_data_head:
.space 4
.type _c_ftl_page_pre_slc_blk, %object
.size _c_ftl_page_pre_slc_blk, 2
_c_ftl_page_pre_slc_blk:
.space 2
.type gc_xlc_search_index, %object
.size gc_xlc_search_index, 2
gc_xlc_search_index:
.space 2
.type _min_slc_super_block, %object
.size _min_slc_super_block, 2
_min_slc_super_block:
.space 2
.type _max_xlc_super_block, %object
.size _max_xlc_super_block, 2
_max_xlc_super_block:
.space 2
.type gp_free_slc_head, %object
.size gp_free_slc_head, 4
gp_free_slc_head:
.space 4
.type gp_free_xlc_head, %object
.size gp_free_xlc_head, 4
gp_free_xlc_head:
.space 4
.type gp_free_mix_head, %object
.size gp_free_mix_head, 4
gp_free_mix_head:
.space 4
.type zftl_print_list_count, %object
.size zftl_print_list_count, 2
zftl_print_list_count:
.space 2
.type _c_ftl_block_align_addr, %object
.size _c_ftl_block_align_addr, 2
_c_ftl_block_align_addr:
.space 2
.type _c_ftl_nand_die_num, %object
.size _c_ftl_nand_die_num, 1
_c_ftl_nand_die_num:
.space 1
.space 1
.type lpa_hash, %object
.size lpa_hash, 512
lpa_hash:
.space 512
.space 2
.type ftl_sblk_lpa_tbl, %object
.size ftl_sblk_lpa_tbl, 4
ftl_sblk_lpa_tbl:
.space 4
.type lpa_hash_index, %object
.size lpa_hash_index, 4
lpa_hash_index:
.space 4
.type ftl_vpn_update_count, %object
.size ftl_vpn_update_count, 2
ftl_vpn_update_count:
.space 2
.type _c_ftl_sec_per_page, %object
.size _c_ftl_sec_per_page, 1
_c_ftl_sec_per_page:
.space 1
.space 1
.type ftl_sblk_update_list_offset, %object
.size ftl_sblk_update_list_offset, 2
ftl_sblk_update_list_offset:
.space 2
.type g_flash_micron_3d_tlc_b05a, %object
.size g_flash_micron_3d_tlc_b05a, 1
g_flash_micron_3d_tlc_b05a:
.space 1
.space 1
.type _c_mix_max_xlc_ec_count, %object
.size _c_mix_max_xlc_ec_count, 2
_c_mix_max_xlc_ec_count:
.space 2
.type _c_mix_max_slc_ec_count, %object
.size _c_mix_max_slc_ec_count, 2
_c_mix_max_slc_ec_count:
.space 2
.type read_buf_head, %object
.size read_buf_head, 1
read_buf_head:
.space 1
.type read_buf_count, %object
.size read_buf_count, 1
read_buf_count:
.space 1
.space 2
.type pm_ram_info, %object
.size pm_ram_info, 256
pm_ram_info:
.space 256
.type pm_last_update_ram_id, %object
.size pm_last_update_ram_id, 1
pm_last_update_ram_id:
.space 1
.space 3
.type g_msb_page_tbl, %object
.size g_msb_page_tbl, 2048
g_msb_page_tbl:
.space 2048
.type g_slc_page_num, %object
.size g_slc_page_num, 2
g_slc_page_num:
.space 2
.space 2
.type g_die_addr, %object
.size g_die_addr, 32
g_die_addr:
.space 32
.type g_totle_phy_block, %object
.size g_totle_phy_block, 2
g_totle_phy_block:
.space 2
.space 2
.type pm_force_gc, %object
.size pm_force_gc, 4
pm_force_gc:
.space 4
.type _c_swl_slc_gc_th, %object
.size _c_swl_slc_gc_th, 2
_c_swl_slc_gc_th:
.space 2
.type _c_swl_xlc_gc_th, %object
.size _c_swl_xlc_gc_th, 2
_c_swl_xlc_gc_th:
.space 2
.type _c_max_pm_sblk, %object
.size _c_max_pm_sblk, 2
_c_max_pm_sblk:
.space 2
.space 6
.type power_on_init_jiffies, %object
.size power_on_init_jiffies, 8
power_on_init_jiffies:
.space 8
.type gp_ftl_api, %object
.size gp_ftl_api, 4
gp_ftl_api:
.space 4
.type RK29_NANDC_REG_BASE, %object
.size RK29_NANDC_REG_BASE, 4
RK29_NANDC_REG_BASE:
.space 4
.type ftl_dma32_buffer_size, %object
.size ftl_dma32_buffer_size, 4
ftl_dma32_buffer_size:
.space 4
.type ftl_dma32_buffer, %object
.size ftl_dma32_buffer, 4
ftl_dma32_buffer:
.space 4
.type gc_state, %object
.size gc_state, 1
gc_state:
.space 1
.space 3
.type gc_search_count, %object
.size gc_search_count, 4
gc_search_count:
.space 4
.type gc_slc_mode_slc_vpn_th, %object
.size gc_slc_mode_slc_vpn_th, 2
gc_slc_mode_slc_vpn_th:
.space 2
.space 2
.type gc_lpa_tbl, %object
.size gc_lpa_tbl, 4
gc_lpa_tbl:
.space 4
.type gc_pre_ppa_tbl, %object
.size gc_pre_ppa_tbl, 4
gc_pre_ppa_tbl:
.space 4
.type gc_des_ppa_tbl, %object
.size gc_des_ppa_tbl, 4
gc_des_ppa_tbl:
.space 4
.type g_flash_tmp_page_buffer, %object
.size g_flash_tmp_page_buffer, 4
g_flash_tmp_page_buffer:
.space 4
.type g_nandc_tran_timeout, %object
.size g_nandc_tran_timeout, 1
g_nandc_tran_timeout:
.space 1
.space 3
.type g_flash_tmp_spare_buffer, %object
.size g_flash_tmp_spare_buffer, 4
g_flash_tmp_spare_buffer:
.space 4
.type g_maxRetryCount, %object
.size g_maxRetryCount, 1
g_maxRetryCount:
.space 1
.space 3
.type flash_ddr_tuning_sdr_read_count, %object
.size flash_ddr_tuning_sdr_read_count, 4
flash_ddr_tuning_sdr_read_count:
.space 4
.type flash_read_retry, %object
.size flash_read_retry, 4
flash_read_retry:
.space 4
.type g_flash_spare_buffer, %object
.size g_flash_spare_buffer, 4
g_flash_spare_buffer:
.space 4
.type g_flash_page_buffer, %object
.size g_flash_page_buffer, 4
g_flash_page_buffer:
.space 4
.type write_commit_head, %object
.size write_commit_head, 1
write_commit_head:
.space 1
.space 3
.type ftl_flush_jiffies, %object
.size ftl_flush_jiffies, 4
ftl_flush_jiffies:
.space 4
.type g_flash_multi_page_read_en, %object
.size g_flash_multi_page_read_en, 1
g_flash_multi_page_read_en:
.space 1
.space 3
.type ftl_info_spare, %object
.size ftl_info_spare, 4
ftl_info_spare:
.space 4
.space 16
.type g_ftl_info_blk, %object
.size g_ftl_info_blk, 4
g_ftl_info_blk:
.space 4
.type ftl_info_data_buffer, %object
.size ftl_info_data_buffer, 4
ftl_info_data_buffer:
.space 4
.type ftl_sys_info_first_write, %object
.size ftl_sys_info_first_write, 1
ftl_sys_info_first_write:
.space 1
.type ftl_power_lost_flag, %object
.size ftl_power_lost_flag, 1
ftl_power_lost_flag:
.space 1
.type ftl_ext_info_first_write, %object
.size ftl_ext_info_first_write, 1
ftl_ext_info_first_write:
.space 1
.space 1
.type ftl_ext_info_data_buffer, %object
.size ftl_ext_info_data_buffer, 4
ftl_ext_info_data_buffer:
.space 4
.type ftl_tmp_spare, %object
.size ftl_tmp_spare, 4
ftl_tmp_spare:
.space 4
.type pm_gc_enable, %object
.size pm_gc_enable, 4
pm_gc_enable:
.space 4
.type g_pm_spare, %object
.size g_pm_spare, 4
g_pm_spare:
.space 4
.type pm_first_write, %object
.size pm_first_write, 1
pm_first_write:
.space 1
.space 3
.type g_flash_sys_spare_buffer, %object
.size g_flash_sys_spare_buffer, 4
g_flash_sys_spare_buffer:
.space 4
.type g_flash_blk_info, %object
.size g_flash_blk_info, 4
g_flash_blk_info:
.space 4
.type g_flash_reversd_blks, %object
.size g_flash_reversd_blks, 1
g_flash_reversd_blks:
.space 1
.type g_flash_micron_3d_tlc_b16a, %object
.size g_flash_micron_3d_tlc_b16a, 1
g_flash_micron_3d_tlc_b16a:
.space 1
.type _c_ftl_byte_pre_page, %object
.size _c_ftl_byte_pre_page, 2
_c_ftl_byte_pre_page:
.space 2
.type pm_last_load_ram_id, %object
.size pm_last_load_ram_id, 1
pm_last_load_ram_id:
.space 1
.type _ftl_gc_tag_page_num, %object
.size _ftl_gc_tag_page_num, 1
_ftl_gc_tag_page_num:
.space 1
.space 2
.type _last_read_time, %object
.size _last_read_time, 4
_last_read_time:
.space 4
.type _last_write_time, %object
.size _last_write_time, 4
_last_write_time:
.space 4
.type read_ahead_lpa, %object
.size read_ahead_lpa, 4
read_ahead_lpa:
.space 4
.type _c_totle_data_density, %object
.size _c_totle_data_density, 4
_c_totle_data_density:
.space 4
.type _c_ftl_pm_page_num, %object
.size _c_ftl_pm_page_num, 2
_c_ftl_pm_page_num:
.space 2
.space 2
.type ftl_tmp_buffer, %object
.size ftl_tmp_buffer, 4
ftl_tmp_buffer:
.space 4
.type rk_zftl_enable, %object
.size rk_zftl_enable, 1
rk_zftl_enable:
.space 1
.space 3
.type gLoaderBootInfo, %object
.size gLoaderBootInfo, 4
gLoaderBootInfo:
.space 4
.type RK29_NANDC1_REG_BASE, %object
.size RK29_NANDC1_REG_BASE, 4
RK29_NANDC1_REG_BASE:
.space 4
.type discard_sector_count, %object
.size discard_sector_count, 4
discard_sector_count:
.space 4
.type idb_write_enable, %object
.size idb_write_enable, 1
idb_write_enable:
.space 1
.space 3
.type idb_buf, %object
.size idb_buf, 4
idb_buf:
.space 4
.type idb_last_lba, %object
.size idb_last_lba, 4
idb_last_lba:
.space 4
.type g_idb_buffer, %object
.size g_idb_buffer, 4
g_idb_buffer:
.space 4
.type g_vendor, %object
.size g_vendor, 4
g_vendor:
.space 4
.type SecureBootUnlockTryCount, %object
.size SecureBootUnlockTryCount, 4
SecureBootUnlockTryCount:
.space 4
.type SecureBootCheckOK, %object
.size SecureBootCheckOK, 4
SecureBootCheckOK:
.space 4
.type SecureBootEn, %object
.size SecureBootEn, 4
SecureBootEn:
.space 4
.type gpVendor1Info, %object
.size gpVendor1Info, 4
gpVendor1Info:
.space 4
.type gpVendor0Info, %object
.size gpVendor0Info, 4
gpVendor0Info:
.space 4
.type gSnSectorData, %object
.size gSnSectorData, 512
gSnSectorData:
.space 512
.type gpDrmKeyInfo, %object
.size gpDrmKeyInfo, 4
gpDrmKeyInfo:
.space 4
.type gpBootConfig, %object
.size gpBootConfig, 4
gpBootConfig:
.space 4
.type ftl_low_format_cur_blk, %object
.size ftl_low_format_cur_blk, 2
ftl_low_format_cur_blk:
.space 2
.space 2
.type p_read_ahead_ext_buf, %object
.size p_read_ahead_ext_buf, 4
p_read_ahead_ext_buf:
.space 4
.type _c_ftl_nand_blks_per_die, %object
.size _c_ftl_nand_blks_per_die, 2
_c_ftl_nand_blks_per_die:
.space 2
.type nandc_ecc_sts, %object
.size nandc_ecc_sts, 16
nandc_ecc_sts:
.space 16
.type g_slc_mode_enable, %object
.size g_slc_mode_enable, 1
g_slc_mode_enable:
.space 1
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
.ascii "\012!!!!! error @ func:%s - line:%d\012\000"
.LC1:
.ascii "FTL version: 6.0.24 20210716\000"
.LC2:
.ascii "%s\012\000"
.LC3:
.ascii "zftl_debug:0x%x\012\000"
.LC4:
.ascii "...%s enter...\012\000"
.LC5:
.ascii "No.0 FLASH ID: %x %x %x %x %x %x\012\000"
.LC6:
.ascii "DiePerChip: %x\012\000"
.LC7:
.ascii "SectPerPage: %x\012\000"
.LC8:
.ascii "PagePerBlk: %x\012\000"
.LC9:
.ascii "Cell: %x\012\000"
.LC10:
.ascii "PlanePerDie: %x\012\000"
.LC11:
.ascii "BlkPerPlane: %x\012\000"
.LC12:
.ascii "die gap: %x\012\000"
.LC13:
.ascii "lsbMode: %x\012\000"
.LC14:
.ascii "ReadRetryMode: %x\012\000"
.LC15:
.ascii "ecc: %x\012\000"
.LC16:
.ascii "idb ecc: %x\012\000"
.LC17:
.ascii "OptMode: %x\012\000"
.LC18:
.ascii "g_nand_max_die: %x\012\000"
.LC19:
.ascii "Cache read enable: %x\012\000"
.LC20:
.ascii "Cache random read enable: %x\012\000"
.LC21:
.ascii "Cache prog enable: %x\012\000"
.LC22:
.ascii "multi read enable: %x\012\000"
.LC23:
.ascii "multi prog enable: %x\012\000"
.LC24:
.ascii "interleave enable: %x\012\000"
.LC25:
.ascii "read retry enable: %x\012\000"
.LC26:
.ascii "randomizer enable: %x\012\000"
.LC27:
.ascii "SDR enable: %x\012\000"
.LC28:
.ascii "ONFI enable: %x\012\000"
.LC29:
.ascii "TOGGLE enable: %x\012\000"
.LC30:
.ascii "g_flash_slc_mode: %x %x\012\000"
.LC31:
.ascii "MultiPlaneProgCmd: %x %x\012\000"
.LC32:
.ascii "MultiPlaneReadCmd: %x %x\012\000"
.LC33:
.ascii "g_flash_toggle_mode_en: %x\012\000"
.LC34:
.ascii "nand sdr mode %x\012\000"
.LC35:
.ascii "nand ddr mode %x\012\000"
.LC36:
.ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
.LC37:
.ascii "otp:%x %x %x %x\012\000"
.LC38:
.ascii "bad block test:%x %x\012\000"
.LC39:
.ascii "flash_erase_duplane_block %x %x %x\012\000"
.LC40:
.ascii "flash_erase_duplane_block pageadd = %x status = %x\012"
.ascii "\000"
.LC41:
.ascii "flash_erase_block %x %x %x\012\000"
.LC42:
.ascii "flash_erase_block %d block = %x status = %x\012\000"
.LC43:
.ascii "erase done: %x\012\000"
.LC44:
.ascii "sblk_queue_head = %d\012\000"
.LC45:
.ascii "sblk_read_completed_queue_head = %d\012\000"
.LC46:
.ascii "sblk_gc_write_completed_queue_head = %d\012\000"
.LC47:
.ascii "sblk_write_completed_queue_head = %d\012\000"
.LC48:
.ascii "p_free_buf_head = %d\012\000"
.LC49:
.ascii "free_buf_count = %d\012\000"
.LC50:
.ascii "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st"
.ascii "ate=%d, op_status = %d lpa=%x, ppa=%x\012\000"
.LC51:
.ascii "flash_mask_bad_block %d %d\012\000"
.LC52:
.ascii "zftl_debug\000"
.LC53:
.ascii "FLASH ID: %x %x %x %x %x %x\012\000"
.LC54:
.ascii "density: %d MB\012\000"
.LC55:
.ascii "device density: %d MB\012\000"
.LC56:
.ascii "FTL INFO:\012\000"
.LC57:
.ascii "max_lpn = 0x%x\012\000"
.LC58:
.ascii "density = 0x%x\012\000"
.LC59:
.ascii "slc vpn = 0x%x\012\000"
.LC60:
.ascii "xlc vpn = 0x%x\012\000"
.LC61:
.ascii "free slc blk = 0x%x\012\000"
.LC62:
.ascii "free xlc blk = 0x%x\012\000"
.LC63:
.ascii "free mix blk = 0x%x\012\000"
.LC64:
.ascii "slc data blk = 0x%x\012\000"
.LC65:
.ascii "slc cache blk = 0x%x\012\000"
.LC66:
.ascii "xlc data blk = 0x%x\012\000"
.LC67:
.ascii "free buf = %d, %d, %d\012\000"
.LC68:
.ascii "bad blk = %d %d\012\000"
.LC69:
.ascii "TBW = %d MB\012\000"
.LC70:
.ascii "TBR = %d MB\012\000"
.LC71:
.ascii "POC = %d\012\000"
.LC72:
.ascii "PLC = %d\012\000"
.LC73:
.ascii "sys run time = %d S\012\000"
.LC74:
.ascii "slc mode = %x %x %x\012\000"
.LC75:
.ascii "prog err = %d\012\000"
.LC76:
.ascii "read err = %d\012\000"
.LC77:
.ascii "GC XLC page = %d\012\000"
.LC78:
.ascii "GC SLC page = %d\012\000"
.LC79:
.ascii "discard page = 0x%x\012\000"
.LC80:
.ascii "version = %d\012\000"
.LC81:
.ascii "acblk = 0x%x %d %d\012\000"
.LC82:
.ascii "tmblk = 0x%x %d %d\012\000"
.LC83:
.ascii "gcblk = 0x%x %d %d\012\000"
.LC84:
.ascii "slc ec = %d, %d, %d, %d, %d\012\000"
.LC85:
.ascii "xlc ec = %d, %d, %d, %d, %d\012\000"
.LC86:
.ascii "gc free blk th = %d\012\000"
.LC87:
.ascii "gc vpn th = %d %d %d %d %d\012\000"
.LC88:
.ascii "swl blk = %x %x %x %x\012\000"
.LC89:
.ascii "rf info = %x %x %x %x %x\012\000"
.LC90:
.ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000"
.LC91:
.ascii "gc_add_sblk = %d, %d, %d\012\000"
.LC92:
.ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000"
.LC93:
.ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000"
.LC94:
.ascii "gc_mark_bad_ppa %d %x %x\012\000"
.LC95:
.ascii "status: %x, ppa: %x\012\000"
.LC96:
.ascii "%d gc_free_temp_buf buf id= %x\012\000"
.LC97:
.ascii "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012"
.ascii "\000"
.LC98:
.ascii "zftl_get_gc_node cache = %x index = %d vpn = %x\012"
.ascii "\000"
.LC99:
.ascii "gc_search_src_blk mode = %x, src mode = %x, count= "
.ascii "%d %d\012\000"
.LC100:
.ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000"
.LC101:
.ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000"
.LC102:
.ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000"
.LC103:
.ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000"
.LC104:
.ascii "list count:%p %d\012\000"
.LC105:
.ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000"
.LC106:
.ascii "ftl_vpn_decrement %x = %d, %d\012\000"
.LC107:
.ascii "mask bad block:cs %x %x block: %x %x\012\000"
.LC108:
.ascii "gc_free_bad_sblk 0x%x\012\000"
.LC109:
.ascii "swl_slc_free_mini_ec_blk sblk %x\012\000"
.LC110:
.ascii "gc_free_src_blk = %x, vpn = %d\012\000"
.LC111:
.ascii "gc_free_src_blk %x, %d\012\000"
.LC112:
.ascii "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk"
.ascii ":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000"
.LC113:
.ascii "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000"
.LC114:
.ascii "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000"
.LC115:
.ascii "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000"
.LC116:
.ascii "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:"
.ascii "%d free_th: %d\012\000"
.LC117:
.ascii "swl : %x %x %x %x %x %x\012\000"
.LC118:
.ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000"
.LC119:
.ascii "ftl re prog: lpa = %x, ppa= %x\012\000"
.LC120:
.ascii "dump_sblk_queue: %d\012\000"
.LC121:
.ascii "buf id= %d state = %d ppa = %x\012\000"
.LC122:
.ascii "%s %d %d\012\000"
.LC123:
.ascii "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d"
.ascii " ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
.LC124:
.ascii "gc_static_wearleveling: min slc blk: %x,sec=%d,xec "
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
.LC125:
.ascii "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec "
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
.LC126:
.ascii "gc_static_wearleveling: max slc blk: %x,sec=%d,xec "
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
.LC127:
.ascii "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec "
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
.LC128:
.ascii "gc_static_wearleveling: slc blk: %x, tlc blk: %d av"
.ascii "g slc ec: %d, avg tlc ec: %d \012\000"
.LC129:
.ascii "gc_static_wearleveling: min slc ec: %x, min tlc ec:"
.ascii " %d max slc ec: %d, max tlc ec: %d; %d %d\012\000"
.LC130:
.ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000"
.LC131:
.ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000"
.LC132:
.ascii "free blk vpn error: %x %x\012\000"
.LC133:
.ascii "GC PM block %x %x %x %d\012\000"
.LC134:
.ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000"
.LC135:
.ascii "...%d @ %s\012\000"
.LC136:
.ascii "...%s enter... %p\012\000"
.LC137:
.ascii "0:%x %x %x %x %x\012\000"
.LC138:
.ascii "g_nandc_ver...%d\012\000"
.LC139:
.ascii "rk_ftl_de_init %x\012\000"
.LC140:
.ascii "\0013\000"
.LC141:
.ascii "otp error! %d\000"
.LC142:
.ascii "rr\000"
.LC143:
.ascii "flash_abort_clear = %d\012\000"
.LC144:
.ascii "%d mtrans_cnt = %d page_num = %d\012\000"
.LC145:
.ascii "%d flReg.d32=%x %x\012\000"
.LC146:
.ascii "nandc:\000"
.LC147:
.ascii "nandc_xfer_done read error %x\012\000"
.LC148:
.ascii "dqs data abort %x\012\000"
.LC149:
.ascii "dqs data timeout %x\012\000"
.LC150:
.ascii "xfer error %x\012\000"
.LC151:
.ascii "MT %d row=%x,last status %d,status = %d\012\000"
.LC152:
.ascii "MT RR %d row=%x,count %d,status=%d\012\000"
.LC153:
.ascii "toshiba SRR %d row=%x, status=%d\012\000"
.LC154:
.ascii "toshiba TRR %d row=%x, status=%d\012\000"
.LC155:
.ascii "toshiba RR %d row=%x,count %d,status=%d\012\000"
.LC156:
.ascii "YMTC RR %d row=%x,count %d,status=%d\012\000"
.LC157:
.ascii "samsung SRR %d row=%x, status=%d\012\000"
.LC158:
.ascii "samsung TRR %d row=%x, status=%d\012\000"
.LC159:
.ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
.LC160:
.ascii "hynix RR %d row=%x, count %d, status=%d\012\000"
.LC161:
.ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000"
.LC162:
.ascii "sync para %d\012\000"
.LC163:
.ascii "DDR mode Read error %x %x\012\000"
.LC164:
.ascii "SDR mode Read %x %x ecc:%x\012\000"
.LC165:
.ascii "flash_read_page_en %x %x %x %x\012\000"
.LC166:
.ascii "flash_read_page_en %x %x error_ecc %d %d\012\000"
.LC167:
.ascii "flash_get_last_written_page: %x %x %x\012\000"
.LC168:
.ascii "flash_prog_page page_addr = %x status = %x\012\000"
.LC169:
.ascii "flash_prog_page %x %x %x\012\000"
.LC170:
.ascii "ymtc_flash_tlc_page_prog page_addr = %x status = %x"
.ascii "\012\000"
.LC171:
.ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012"
.ascii "\000"
.LC172:
.ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000"
.LC173:
.ascii "read: %x %x %x %x\012\000"
.LC174:
.ascii "0set buf %d,status = %x, ppa = %x lun state = %d\012"
.ascii "\000"
.LC175:
.ascii "prog end %x %x error_ecc %d %d\012\000"
.LC176:
.ascii "1set buf %d,status = %x, ppa = %x lun state = %d\012"
.ascii "\000"
.LC177:
.ascii "dp prog end %x %x error_ecc %d %d\012\000"
.LC178:
.ascii "sblk_prog_page ppa = %x, count = %d\012\000"
.LC179:
.ascii "err: ppa = %x, status = %x, %x %x spare: %x %x %x %"
.ascii "x\012\000"
.LC180:
.ascii "flash_prog_page_en:%x %x %x\012\000"
.LC181:
.ascii "w d:\000"
.LC182:
.ascii "w s:\000"
.LC183:
.ascii "spare\000"
.LC184:
.ascii "data\000"
.LC185:
.ascii "write error: %x\012\000"
.LC186:
.ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012"
.ascii "\000"
.LC187:
.ascii "%d %x @%d %x\012\000"
.LC188:
.ascii "ftl_info_blk_init %d %d %x\012\000"
.LC189:
.ascii "ftl info hash %x error\012\000"
.LC190:
.ascii "ink flag: %x\012\000"
.LC191:
.ascii "%s %d %d %x %x\012\000"
.LC192:
.ascii "ext info hash %x error\012\000"
.LC193:
.ascii "%s %x %x %x\012\000"
.LC194:
.ascii "ftl_sblk_dump_write = %x %d %d %d %d\012\000"
.LC195:
.ascii "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x"
.ascii " %x %x, spare: %x %x %x %x\012\000"
.LC196:
.ascii "ftl_sblk_dump_write2 = %x %d %d %d\012\000"
.LC197:
.ascii "ftl_sblk_dump_write = %x %x\012\000"
.LC198:
.ascii "ftl_sblk_dump_write done = %x\012\000"
.LC199:
.ascii "%x: ink_scaned_blk_num %x\012\000"
.LC200:
.ascii "ftl_ink_check_sblk = %x %d %d\012\000"
.LC201:
.ascii "ftl_ink_check_sblk = %x %d %d end\012\000"
.LC202:
.ascii "alloc sblk %x %d\012\000"
.LC203:
.ascii "blk %x is bad block\012\000"
.LC204:
.ascii "pm_alloc_new_blk: %x %x %x %x\012\000"
.LC205:
.ascii "pm_write_page write error: %x\012\000"
.LC206:
.ascii "finfo:\000"
.LC207:
.ascii "flash_info_flush id = %x, page = %x\012\000"
.LC208:
.ascii "sys_info_flush error:%x\012\000"
.LC209:
.ascii "...%d @ %s %d %p\012\000"
.LC210:
.ascii "no sys info %x\012\000"
.LC211:
.ascii "l2p:\000"
.LC212:
.ascii "saved_active_page = %x\012\000"
.LC213:
.ascii "saved_active_plane = %x\012\000"
.LC214:
.ascii "sblk = %x\012\000"
.LC215:
.ascii "phy_blk = %x %x\012\000"
.LC216:
.ascii "num_planes = %x\012\000"
.LC217:
.ascii "recovery blk=%x, page=%x, ppa = %x, status = %x, ha"
.ascii "sh:%x\012\000"
.LC218:
.ascii "data:\000"
.LC219:
.ascii "sblk = %x, vpn0 = %d, vpn1 = %d\012\000"
.LC220:
.ascii "dump_write_lpa = %x %x %x %x\012\000"
.LC221:
.ascii "dump write new ppa = %x, last ppa = %x lpa = %x\012"
.ascii "\000"
.LC222:
.ascii "dump write = %x %x %x\012\000"
.LC223:
.ascii "dump write hash update = %x %x %x\012\000"
.LC224:
.ascii "free_buf_count: %d\012\000"
.LC225:
.ascii "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000"
.LC226:
.ascii "ftl_ext_info_blk blk:0x%x, page:0x%x\012\000"
.LC227:
.ascii "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
.ascii "_index:0x%x\012\000"
.LC228:
.ascii "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag"
.ascii "e_index:0x%x\012\000"
.LC229:
.ascii "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
.ascii "_index:0x%x\012\000"
.LC230:
.ascii "lpa:\000"
.LC231:
.ascii "vpn:\000"
.LC232:
.ascii "sblk:\000"
.LC233:
.ascii "lpa_hash:\000"
.LC234:
.ascii "lpa_hash_index:\000"
.LC235:
.ascii "%s w error lpn = %x, max ppa = %d\012\000"
.LC236:
.ascii "region_id = %d, pm_max_region = %d\012\000"
.LC237:
.ascii "load_l2p_region no ppa = %x , %x, all setting 0xff."
.ascii "...\012\000"
.LC238:
.ascii "load_l2p_region = %x,%x,%x, %x\012\000"
.LC239:
.ascii "pm_ppa:\000"
.LC240:
.ascii "spare:\000"
.LC241:
.ascii "pm_init posr %x %x %x\012\000"
.LC242:
.ascii "pm_init recovery %x %x %x\012\000"
.LC243:
.ascii "pm_init hash %x error\012\000"
.LC244:
.ascii "pm_log2phys lpn = %d, max lpn = %d\012\000"
.LC245:
.ascii "ppa = %x, status = %x, data:%x %x %x %x, spare: %x "
.ascii "%x %x %x\012\000"
.LC246:
.ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012"
.ascii "\000"
.LC247:
.ascii "gc_recovery: %x vpn = %x\012\000"
.LC248:
.ascii "gc_update_l2p_map_new sblk %x\012\000"
.LC249:
.ascii "gc_update_l2p_map_new: %x %x %x\012\000"
.LC250:
.ascii "lpa: %x %x %x\012\000"
.LC251:
.ascii "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012"
.ascii "\000"
.LC252:
.ascii "gc_scan_src_blk = %x, vpn = %d\012\000"
.LC253:
.ascii "js hash error:%x %x %x\012\000"
.LC254:
.ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000"
.LC255:
.ascii "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:"
.ascii "%d\012\000"
.LC256:
.ascii "ftl_sblk_dump = %x %d %d %d %d\012\000"
.LC257:
.ascii "ftl_sblk_dump = %x %x %x %x\012\000"
.LC258:
.ascii "page_addr = %x, lpa=%x vpn = %d\012\000"
.LC259:
.ascii "index= %x, lpa=%x\012\000"
.LC260:
.ascii "block = %x, vpn=%x check vpn = %x\012\000"
.LC261:
.ascii "ftl_read %x %x %x\012\000"
.LC262:
.ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000"
.LC263:
.ascii "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %"
.ascii "x %x %x\012\000"
.LC264:
.ascii "zftl debug cmd: %s\012\000"
.LC265:
.ascii "cmd:\000"
.LC266:
.ascii "dumpl2p\000"
.LC267:
.ascii "pm l2p:\000"
.LC268:
.ascii "pm blk:\000"
.LC269:
.ascii "dumppm:\000"
.LC270:
.ascii "p_cmd: %s\012\000"
.LC271:
.ascii "pm ram = %x, %x\012\000"
.LC272:
.ascii "ram:\000"
.LC273:
.ascii "pm:\000"
.LC274:
.ascii "dumpsys\000"
.LC275:
.ascii "dumplist:\000"
.LC276:
.ascii "vpncheck\000"
.LC277:
.ascii "dumpppa:\000"
.LC278:
.ascii "dumpblk:\000"
.LC279:
.ascii "setzdebug:\000"
.LC280:
.ascii "lpa2ppa:\000"
.LC281:
.ascii "lpa: %x--> ppa: %x\012\000"
.LC282:
.ascii "help:\012\000"
.LC283:
.ascii "1. echo dumpl2p > /proc/zftl_debug\012\000"
.LC284:
.ascii "2. echo dumppm:x > /proc/zftl_debug\012\000"
.LC285:
.ascii "3. echo dumpsys > /proc/zftl_debug\012\000"
.LC286:
.ascii "4. echo dumpppa:x > /proc/zftl_debug\012\000"
.LC287:
.ascii "5. echo vpncheck > /proc/zftl_debug\012\000"
.LC288:
.ascii "6. echo setzdebug:x > /proc/zftl_debug\012\000"
.LC289:
.ascii "7. echo dumplist:x > /proc/zftl_debug\012\000"
.LC290:
.ascii "8. echo lpa2ppa:x> /proc/zftl_debug\012\000"
.LC291:
.ascii "ftl_update_l2p_map: %x %x %x\012\000"
.LC292:
.ascii "ftl_update_l2p_map\000"
.LC293:
.ascii "lpa_tbl:\000"
.LC294:
.ascii "sblk %x vpn: %d %d\012\000"
.LC295:
.ascii "error gc_add_sblk: %x\012\000"
.LC296:
.ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000"
.LC297:
.ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000"
.LC298:
.ascii "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x "
.ascii "page_index= %d\012\000"
.LC299:
.ascii "gc %d: %d %d %d %d %d %d %d\012\000"
.LC300:
.ascii "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012"
.ascii "\000"
.LC301:
.ascii "gc free %x, %d\012\000"
.LC302:
.ascii "_c_user_data_density := %d\012\000"
.LC303:
.ascii "_c_totle_phy_density := %d\012\000"
.LC304:
.ascii "_c_totle_log_page := %d\012\000"
.LC305:
.ascii "_c_totle_data_density := %d\012\000"
.LC306:
.ascii "_c_ftl_pm_page_num := %d\012\000"
.LC307:
.ascii "_c_ftl_byte_pre_page := %d\012\000"
.LC308:
.ascii "_c_max_pm_sblk := %d\012\000"
.LC309:
.ascii "_min_slc_super_block := %d\012\000"
.LC310:
.ascii "_max_xlc_super_block := %d\012\000"
.LC311:
.ascii "gp_ftl_ext_info %p %p %p\012\000"
.LC312:
.ascii "flash info size: %d %d %d\012\000"
.LC313:
.ascii "ftl_init %x\012\000"
.LC314:
.ascii "ftlwrite %x %x %x %x\012\000"
.LC315:
.ascii "ftl_discard:(%x, %x, %x, %x)\012\000"
.LC316:
.ascii "id_block_prog_msb_ff_data slc page = %d pageadd=%x "
.ascii "%x\012\000"
.LC317:
.ascii "write_idblock fix data %x %x\012\000"
.LC318:
.ascii "idblk:\000"
.LC319:
.ascii "write_idblock totle_sec %x %x\012\000"
.LC320:
.ascii "prog page: %x %x %x, %p %x %x %x\012\000"
.LC321:
.ascii "read page: %x %x %x %x\012\000"
.LC322:
.ascii "wl_lba %p %x %x %x\012\000"
.LC323:
.ascii "return ret = %lx\012\000"
.LC324:
.ascii "\0013vendor storage %x,%x,%x\012\000"