37095 lines
625 KiB
ArmAsm
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"
|