You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36881 lines
629 KiB
36881 lines
629 KiB
/*
|
|
* Copyright (c) 2016-2017, Fuzhou Rockchip Electronics Co., Ltd
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
* date: 2021-01-07
|
|
*/
|
|
.arch 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, 0
|
|
.eabi_attribute 18, 2
|
|
.file "rk_zftl_arm_v7.S"
|
|
.section .text.flash_mem_cmp8,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_mem_cmp8, %function
|
|
flash_mem_cmp8:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
movs r3, #0
|
|
push {r4, r5, lr}
|
|
.L2:
|
|
cmp r3, r2
|
|
bne .L5
|
|
movs r0, #0
|
|
pop {r4, r5, pc}
|
|
.L5:
|
|
ldrb r5, [r0, r3] @ zero_extendqisi2
|
|
ldrb r4, [r1, r3] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
cmp r5, r4
|
|
beq .L2
|
|
mov r0, r3
|
|
pop {r4, r5, pc}
|
|
.size flash_mem_cmp8, .-flash_mem_cmp8
|
|
.global __aeabi_uidiv
|
|
.global __aeabi_uidivmod
|
|
.section .text.slc_phy_page_address_calc,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type slc_phy_page_address_calc, %function
|
|
slc_phy_page_address_calc:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
ldr r3, .L16
|
|
ldr r7, .L16+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L7
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
cbz r3, .L8
|
|
.L7:
|
|
ldr r3, .L16+8
|
|
mov r0, r4
|
|
ldrh r5, [r3]
|
|
mov r1, r5
|
|
bl __aeabi_uidiv
|
|
mov r1, r5
|
|
mul r6, r5, r0
|
|
mov r0, r4
|
|
bl __aeabi_uidivmod
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
cbz r3, .L9
|
|
add r4, r6, r1, lsl #1
|
|
.L8:
|
|
mov r0, r4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L9:
|
|
ldr r3, .L16+12
|
|
ldrh r4, [r3, r1, lsl #1]
|
|
add r4, r4, r6
|
|
b .L8
|
|
.L17:
|
|
.align 2
|
|
.L16:
|
|
.word .LANCHOR0
|
|
.word .LANCHOR1
|
|
.word .LANCHOR2
|
|
.word .LANCHOR3
|
|
.size slc_phy_page_address_calc, .-slc_phy_page_address_calc
|
|
.section .text._list_remove_node,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _list_remove_node, %function
|
|
_list_remove_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
movs r5, #6
|
|
ldr r6, .L26
|
|
muls r5, r1, r5
|
|
movw r3, #65535
|
|
mov r8, r2
|
|
mov r10, r0
|
|
ldr r7, [r6]
|
|
ldrh r1, [r7, r5]
|
|
adds r4, r7, r5
|
|
ldrh r2, [r4, #2]
|
|
cmp r1, r3
|
|
ldr r3, [r0]
|
|
bne .L19
|
|
cmp r2, r1
|
|
bne .L19
|
|
cmp r4, r3
|
|
bne .L18
|
|
.L19:
|
|
movw r1, #65535
|
|
cmp r2, r1
|
|
bne .L21
|
|
cmp r4, r3
|
|
beq .L21
|
|
movs r2, #202
|
|
ldr r1, .L26+4
|
|
ldr r0, .L26+8
|
|
bl printf
|
|
.L21:
|
|
ldr r3, [r10]
|
|
movw r1, #65535
|
|
cmp r4, r3
|
|
ldrh r3, [r7, r5]
|
|
bne .L22
|
|
cmp r3, r1
|
|
ittee ne
|
|
ldrne r0, [r6]
|
|
movne r2, #6
|
|
moveq r3, #0
|
|
streq r3, [r10]
|
|
ittt ne
|
|
mlane r3, r2, r3, r0
|
|
strne r3, [r10]
|
|
strhne r1, [r3, #2] @ movhi
|
|
.L24:
|
|
movw r3, #65535
|
|
strh r3, [r7, r5] @ movhi
|
|
strh r3, [r4, #2] @ movhi
|
|
ldrh r3, [r8]
|
|
subs r3, r3, #1
|
|
strh r3, [r8] @ movhi
|
|
.L18:
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L22:
|
|
cmp r3, r1
|
|
ldrh r1, [r4, #2]
|
|
bne .L25
|
|
cmp r1, r3
|
|
beq .L24
|
|
movs r2, #6
|
|
ldr r0, [r6]
|
|
muls r1, r2, r1
|
|
strh r3, [r0, r1] @ movhi
|
|
b .L24
|
|
.L25:
|
|
ldr r0, [r6]
|
|
movs r2, #6
|
|
mla r6, r2, r3, r0
|
|
strh r1, [r6, #2] @ movhi
|
|
ldrh r1, [r4, #2]
|
|
muls r2, r1, r2
|
|
strh r3, [r0, r2] @ movhi
|
|
b .L24
|
|
.L27:
|
|
.align 2
|
|
.L26:
|
|
.word .LANCHOR4
|
|
.word .LANCHOR5
|
|
.word .LC0
|
|
.size _list_remove_node, .-_list_remove_node
|
|
.section .text.hynix_set_rr_para,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type hynix_set_rr_para, %function
|
|
hynix_set_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
lsls r7, r0, #8
|
|
ldr r3, .L33
|
|
ldr r4, .L33+4
|
|
ldr r6, [r3]
|
|
ldr r8, [r4]
|
|
ldrb r2, [r6, #113] @ zero_extendqisi2
|
|
add r4, r6, #112
|
|
ldrb r5, [r6, #112] @ zero_extendqisi2
|
|
add ip, r6, #128
|
|
adds r6, r6, #127
|
|
muls r1, r2, r1
|
|
cmp r5, #8
|
|
it ne
|
|
movne r5, #160
|
|
add r2, r2, #-1
|
|
add r10, ip, r2
|
|
add r1, r1, #32
|
|
it ne
|
|
smlabbne r1, r5, r0, r1
|
|
add r5, r8, r7
|
|
add r4, r4, r1
|
|
movs r1, #54
|
|
subs r4, r4, #1
|
|
str r1, [r5, #2056]
|
|
.L31:
|
|
cmp r6, r10
|
|
bne .L32
|
|
add r7, r7, r8
|
|
movs r3, #22
|
|
str r3, [r7, #2056]
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L32:
|
|
ldrb r3, [r6, #1]! @ zero_extendqisi2
|
|
movs r0, #1
|
|
str r3, [r5, #2052]
|
|
bl udelay
|
|
ldrsb r3, [r4, #1]!
|
|
str r3, [r5, #2048]
|
|
b .L31
|
|
.L34:
|
|
.align 2
|
|
.L33:
|
|
.word .LANCHOR6
|
|
.word .LANCHOR7
|
|
.size hynix_set_rr_para, .-hynix_set_rr_para
|
|
.section .text._insert_free_list,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _insert_free_list, %function
|
|
_insert_free_list:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L43
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldrh r3, [r3]
|
|
cmp r3, r1
|
|
bls .L35
|
|
ldrh r3, [r2]
|
|
movw r10, #65535
|
|
ldr r7, [r0]
|
|
adds r3, r3, #1
|
|
strh r3, [r2] @ movhi
|
|
movs r2, #6
|
|
ldr r3, .L43+4
|
|
mul lr, r2, r1
|
|
ldr r5, [r3]
|
|
add r6, r5, lr
|
|
strh r10, [r6, #2] @ movhi
|
|
strh r10, [r5, lr] @ movhi
|
|
cbnz r7, .L37
|
|
.L42:
|
|
str r6, [r0]
|
|
b .L35
|
|
.L37:
|
|
ldr r3, .L43+8
|
|
str r2, [sp, #4]
|
|
ldr ip, [r3]
|
|
ldr r3, .L43+12
|
|
ldrh r4, [ip, r1, lsl #2]
|
|
ldrh r8, [r3]
|
|
ldr r3, [ip, r1, lsl #2]
|
|
ubfx r4, r4, #0, #11
|
|
ubfx r3, r3, #11, #8
|
|
smulbb r3, r3, r8
|
|
add r3, r3, r4
|
|
uxth r3, r3
|
|
str r3, [sp]
|
|
subs r3, r7, r5
|
|
asrs r4, r3, #1
|
|
ldr r3, .L43+16
|
|
muls r3, r4, r3
|
|
mov r4, r7
|
|
uxth r3, r3
|
|
.L40:
|
|
ldr r2, [ip, r3, lsl #2]
|
|
ldrh fp, [ip, r3, lsl #2]
|
|
ubfx r2, r2, #11, #8
|
|
smulbb r2, r2, r8
|
|
ubfx fp, fp, #0, #11
|
|
add r2, r2, fp
|
|
uxth fp, r2
|
|
ldr r2, [sp]
|
|
cmp r2, fp
|
|
bls .L38
|
|
ldrh r2, [r4]
|
|
cmp r2, r10
|
|
bne .L39
|
|
strh r3, [r6, #2] @ movhi
|
|
strh r1, [r4] @ movhi
|
|
.L35:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L39:
|
|
ldr r3, [sp, #4]
|
|
mla r4, r3, r2, r5
|
|
mov r3, r2
|
|
b .L40
|
|
.L38:
|
|
ldrh r2, [r4, #2]
|
|
cmp r7, r4
|
|
strh r2, [r6, #2] @ movhi
|
|
strh r3, [r5, lr] @ movhi
|
|
bne .L41
|
|
strh r1, [r7, #2] @ movhi
|
|
b .L42
|
|
.L41:
|
|
ldrh r2, [r4, #2]
|
|
movs r3, #6
|
|
muls r3, r2, r3
|
|
strh r1, [r5, r3] @ movhi
|
|
strh r1, [r4, #2] @ movhi
|
|
b .L35
|
|
.L44:
|
|
.align 2
|
|
.L43:
|
|
.word .LANCHOR8
|
|
.word .LANCHOR4
|
|
.word .LANCHOR9
|
|
.word .LANCHOR10
|
|
.word -1431655765
|
|
.size _insert_free_list, .-_insert_free_list
|
|
.section .text._insert_data_list,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _insert_data_list, %function
|
|
_insert_data_list:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L67
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov lr, r0
|
|
sub sp, sp, #24
|
|
ldrh r3, [r3]
|
|
cmp r3, r1
|
|
bls .L45
|
|
ldrh r3, [r2]
|
|
ldr r0, [r0]
|
|
adds r3, r3, #1
|
|
strh r3, [r2] @ movhi
|
|
ldr r3, .L67+4
|
|
ldr r5, [r3]
|
|
movs r3, #6
|
|
mul r10, r3, r1
|
|
movw r3, #65535
|
|
add r6, r5, r10
|
|
strh r3, [r6, #2] @ movhi
|
|
strh r3, [r5, r10] @ movhi
|
|
cbnz r0, .L48
|
|
.L66:
|
|
str r6, [lr]
|
|
b .L45
|
|
.L48:
|
|
ldr r3, .L67+8
|
|
ldrh r7, [r6, #4]
|
|
ldr r3, [r3]
|
|
ldrh r4, [r3, r1, lsl #1]
|
|
muls r4, r7, r4
|
|
str r3, [sp, #8]
|
|
ldr r3, .L67+12
|
|
str r4, [sp]
|
|
ldr r8, [r3]
|
|
ldr r3, [r8, r1, lsl #2]
|
|
ubfx r2, r3, #11, #8
|
|
ldr r3, .L67+16
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldrh r3, [r8, r1, lsl #2]
|
|
ubfx r3, r3, #0, #11
|
|
beq .L49
|
|
ldrh r4, [sp, #12]
|
|
smulbb r2, r2, r4
|
|
add r3, r3, r2
|
|
ldr r2, [sp]
|
|
uxtah r3, r2, r3
|
|
str r3, [sp]
|
|
.L49:
|
|
ldr r3, [sp]
|
|
cmp r7, #0
|
|
it eq
|
|
moveq r3, #-1
|
|
movs r7, #0
|
|
str r7, [sp, #4]
|
|
str r3, [sp]
|
|
subs r3, r0, r5
|
|
asrs r2, r3, #1
|
|
ldr r3, .L67+20
|
|
muls r3, r2, r3
|
|
ldr r2, .L67
|
|
ldrh r2, [r2]
|
|
uxth r3, r3
|
|
str r2, [sp, #20]
|
|
mov r2, r0
|
|
.L55:
|
|
ldr r7, [sp, #4]
|
|
adds r7, r7, #1
|
|
uxth r7, r7
|
|
mov r4, r7
|
|
str r7, [sp, #4]
|
|
ldr r7, [sp, #20]
|
|
cmp r4, r7
|
|
bhi .L45
|
|
cmp r1, r3
|
|
beq .L45
|
|
ldrh r7, [r2, #4]
|
|
ldr r4, [r8, r3, lsl #2]
|
|
ldrh ip, [r8, r3, lsl #2]
|
|
str r7, [sp, #16]
|
|
ldr r7, [sp, #8]
|
|
ubfx fp, r4, #11, #8
|
|
ldr r4, [sp, #16]
|
|
ubfx ip, ip, #0, #11
|
|
ldrh r7, [r7, r3, lsl #1]
|
|
muls r7, r4, r7
|
|
itt ne
|
|
ldrhne r4, [sp, #12]
|
|
smulbbne fp, fp, r4
|
|
ldr r4, [sp, #16]
|
|
itt ne
|
|
addne fp, fp, ip
|
|
uxtahne r7, r7, fp
|
|
cbz r4, .L53
|
|
ldr r4, [sp]
|
|
cmp r4, r7
|
|
bls .L53
|
|
ldrh r7, [r2]
|
|
movw r4, #65535
|
|
cmp r7, r4
|
|
bne .L54
|
|
strh r3, [r6, #2] @ movhi
|
|
strh r1, [r2] @ movhi
|
|
.L45:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L54:
|
|
movs r3, #6
|
|
mla r2, r3, r7, r5
|
|
mov r3, r7
|
|
b .L55
|
|
.L53:
|
|
ldrh r4, [r2, #2]
|
|
cmp r0, r2
|
|
strh r4, [r6, #2] @ movhi
|
|
strh r3, [r5, r10] @ movhi
|
|
bne .L56
|
|
strh r1, [r0, #2] @ movhi
|
|
b .L66
|
|
.L56:
|
|
ldrh r0, [r2, #2]
|
|
movs r3, #6
|
|
muls r3, r0, r3
|
|
strh r1, [r5, r3] @ movhi
|
|
strh r1, [r2, #2] @ movhi
|
|
b .L45
|
|
.L68:
|
|
.align 2
|
|
.L67:
|
|
.word .LANCHOR8
|
|
.word .LANCHOR4
|
|
.word .LANCHOR11
|
|
.word .LANCHOR9
|
|
.word .LANCHOR10
|
|
.word -1431655765
|
|
.size _insert_data_list, .-_insert_data_list
|
|
.section .text._list_update_data_list,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _list_update_data_list, %function
|
|
_list_update_data_list:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L79
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r6, r2
|
|
mov r7, r0
|
|
mov r4, r1
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #16]
|
|
cmp r2, r1
|
|
beq .L69
|
|
ldrh r2, [r3, #48]
|
|
cmp r2, r1
|
|
beq .L69
|
|
ldrh r3, [r3, #80]
|
|
cmp r3, r1
|
|
beq .L69
|
|
ldr r3, .L79+4
|
|
movs r5, #6
|
|
muls r5, r1, r5
|
|
ldr r2, [r0]
|
|
ldr fp, [r3]
|
|
mov r8, r3
|
|
add r10, fp, r5
|
|
cmp r10, r2
|
|
beq .L69
|
|
ldrh r3, [r10, #2]
|
|
movw r2, #65535
|
|
cmp r3, r2
|
|
bne .L73
|
|
ldrh r2, [fp, r5]
|
|
cmp r2, r3
|
|
bne .L73
|
|
movw r2, #273
|
|
ldr r1, .L79+8
|
|
ldr r0, .L79+12
|
|
bl printf
|
|
.L73:
|
|
ldrh r3, [r10, #2]
|
|
movw r2, #65535
|
|
cmp r3, r2
|
|
bne .L74
|
|
ldrh r2, [fp, r5]
|
|
cmp r2, r3
|
|
beq .L69
|
|
.L74:
|
|
ldr r2, .L79+16
|
|
ldr r0, [r2]
|
|
ldrh r2, [r10, #4]
|
|
ldrh r1, [r0, r4, lsl #1]
|
|
cbz r2, .L77
|
|
muls r2, r1, r2
|
|
.L75:
|
|
movs r1, #6
|
|
muls r1, r3, r1
|
|
ldr r3, .L79+20
|
|
asrs r5, r1, #1
|
|
muls r3, r5, r3
|
|
ldrh r5, [r0, r3, lsl #1]
|
|
ldr r0, [r8]
|
|
add r1, r1, r0
|
|
ldrh r3, [r1, #4]
|
|
cbz r3, .L78
|
|
muls r3, r5, r3
|
|
.L76:
|
|
cmp r2, r3
|
|
bcs .L69
|
|
mov r2, r6
|
|
mov r1, r4
|
|
mov r0, r7
|
|
bl _list_remove_node
|
|
mov r2, r6
|
|
mov r1, r4
|
|
mov r0, r7
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b _insert_data_list
|
|
.L77:
|
|
mov r2, #-1
|
|
b .L75
|
|
.L78:
|
|
mov r3, #-1
|
|
b .L76
|
|
.L69:
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L80:
|
|
.align 2
|
|
.L79:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR4
|
|
.word .LANCHOR13
|
|
.word .LC0
|
|
.word .LANCHOR11
|
|
.word -1431655765
|
|
.size _list_update_data_list, .-_list_update_data_list
|
|
.section .text.nandc_de_cs.constprop.32,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_de_cs.constprop.32, %function
|
|
nandc_de_cs.constprop.32:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L82
|
|
ldr r2, [r3]
|
|
ldr r3, [r2]
|
|
bfc r3, #0, #8
|
|
bfc r3, #17, #1
|
|
str r3, [r2]
|
|
bx lr
|
|
.L83:
|
|
.align 2
|
|
.L82:
|
|
.word .LANCHOR7
|
|
.size nandc_de_cs.constprop.32, .-nandc_de_cs.constprop.32
|
|
.section .text.flash_read_status,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_status
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_status, %function
|
|
flash_read_status:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
movs r3, #112
|
|
push {r4, lr}
|
|
mov r4, r0
|
|
str r3, [r0, #8]
|
|
movs r0, #1
|
|
bl udelay
|
|
ldr r0, [r4]
|
|
uxtb r0, r0
|
|
pop {r4, pc}
|
|
.size flash_read_status, .-flash_read_status
|
|
.section .text.toshiba_set_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_set_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_set_rr_para, %function
|
|
toshiba_set_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
add r7, r1, r1, lsl #2
|
|
ldr r10, .L93+12
|
|
mov r5, r0
|
|
mov r6, r1
|
|
movs r4, #0
|
|
ldr r8, .L93+16
|
|
.L86:
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r4, r3
|
|
bcc .L90
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L90:
|
|
movs r3, #85
|
|
movs r0, #1
|
|
str r3, [r5, #8]
|
|
ldrsb r3, [r4, r8]
|
|
str r3, [r5, #4]
|
|
bl udelay
|
|
ldr r3, .L93
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #34
|
|
bne .L87
|
|
adds r3, r4, r7
|
|
add r3, r3, r8
|
|
.L92:
|
|
ldrsb r3, [r3, #5]
|
|
.L91:
|
|
str r3, [r5]
|
|
adds r4, r4, #1
|
|
b .L86
|
|
.L87:
|
|
cmp r3, #35
|
|
bne .L89
|
|
ldr r3, .L93+4
|
|
adds r2, r4, r7
|
|
add r3, r3, r2
|
|
b .L92
|
|
.L89:
|
|
ldr r3, .L93+8
|
|
ldrsb r3, [r3, r6]
|
|
b .L91
|
|
.L94:
|
|
.align 2
|
|
.L93:
|
|
.word .LANCHOR15
|
|
.word .LANCHOR16
|
|
.word .LANCHOR17
|
|
.word .LANCHOR18
|
|
.word .LANCHOR14
|
|
.size toshiba_set_rr_para, .-toshiba_set_rr_para
|
|
.section .text.hynix_reconfig_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global hynix_reconfig_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type hynix_reconfig_rr_para, %function
|
|
hynix_reconfig_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
mov r4, r0
|
|
ldr r3, .L100
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
cmp r3, #7
|
|
bhi .L95
|
|
ldr r5, .L100+4
|
|
ldr r3, [r5]
|
|
add r3, r3, r0
|
|
ldrb r3, [r3, #120] @ zero_extendqisi2
|
|
cbz r3, .L95
|
|
movs r1, #0
|
|
bl hynix_set_rr_para
|
|
ldr r0, [r5]
|
|
movs r3, #0
|
|
add r0, r0, r4
|
|
strb r3, [r0, #120]
|
|
.L95:
|
|
pop {r3, r4, r5, pc}
|
|
.L101:
|
|
.align 2
|
|
.L100:
|
|
.word .LANCHOR15
|
|
.word .LANCHOR6
|
|
.size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para
|
|
.section .text.nand_flash_print_info,"ax",%progbits
|
|
.align 1
|
|
.global nand_flash_print_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nand_flash_print_info, %function
|
|
nand_flash_print_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, lr}
|
|
sub sp, sp, #20
|
|
ldr r4, .L220
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L103
|
|
ldr r1, .L220+4
|
|
ldr r0, .L220+8
|
|
bl printf
|
|
.L103:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L104
|
|
ldr r3, .L220+12
|
|
ldr r0, [r3]
|
|
ldrb r5, [r0, #6] @ zero_extendqisi2
|
|
ldrb r3, [r0, #3] @ zero_extendqisi2
|
|
ldrb r2, [r0, #2] @ zero_extendqisi2
|
|
ldrb r1, [r0, #1] @ zero_extendqisi2
|
|
str r5, [sp, #8]
|
|
ldrb r5, [r0, #5] @ zero_extendqisi2
|
|
str r5, [sp, #4]
|
|
ldrb r0, [r0, #4] @ zero_extendqisi2
|
|
str r0, [sp]
|
|
ldr r0, .L220+16
|
|
bl printf
|
|
.L104:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L105
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+20
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #8] @ zero_extendqisi2
|
|
bl printf
|
|
.L105:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L106
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+24
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #9] @ zero_extendqisi2
|
|
bl printf
|
|
.L106:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L107
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+28
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #10]
|
|
bl printf
|
|
.L107:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L108
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+32
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #12] @ zero_extendqisi2
|
|
bl printf
|
|
.L108:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L109
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+36
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #13] @ zero_extendqisi2
|
|
bl printf
|
|
.L109:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L110
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+40
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #14]
|
|
bl printf
|
|
.L110:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L111
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+44
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #23] @ zero_extendqisi2
|
|
bl printf
|
|
.L111:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L112
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+48
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #18] @ zero_extendqisi2
|
|
bl printf
|
|
.L112:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L113
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+52
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #19] @ zero_extendqisi2
|
|
bl printf
|
|
.L113:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L114
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+56
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #20] @ zero_extendqisi2
|
|
bl printf
|
|
.L114:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L115
|
|
ldr r3, .L220+60
|
|
ldr r0, .L220+64
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
.L115:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L116
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+68
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #22] @ zero_extendqisi2
|
|
bl printf
|
|
.L116:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L117
|
|
ldr r3, .L220+72
|
|
ldr r0, .L220+76
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
.L117:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L118
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+80
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #16] @ zero_extendqisi2
|
|
and r1, r1, #1
|
|
bl printf
|
|
.L118:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L119
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+84
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #1, #1
|
|
bl printf
|
|
.L119:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L120
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+88
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #2, #1
|
|
bl printf
|
|
.L120:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L121
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+92
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #3, #1
|
|
bl printf
|
|
.L121:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L122
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+96
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #4, #1
|
|
bl printf
|
|
.L122:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L123
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+100
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #5, #1
|
|
bl printf
|
|
.L123:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L124
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+104
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #6, #1
|
|
bl printf
|
|
.L124:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L125
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+108
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #7, #1
|
|
bl printf
|
|
.L125:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L126
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+112
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #8, #1
|
|
bl printf
|
|
.L126:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L127
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+116
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #9, #1
|
|
bl printf
|
|
.L127:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L128
|
|
ldr r3, .L220+12
|
|
ldr r0, .L220+120
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #16]
|
|
ubfx r1, r1, #10, #1
|
|
bl printf
|
|
.L128:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L129
|
|
ldr r3, .L220+124
|
|
ldr r0, .L220+128
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, .L220+132
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
.L129:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L130
|
|
ldr r3, .L220+136
|
|
ldr r0, .L220+140
|
|
ldrb r2, [r3, #11] @ zero_extendqisi2
|
|
ldrb r1, [r3, #10] @ zero_extendqisi2
|
|
bl printf
|
|
.L130:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L131
|
|
ldr r3, .L220+136
|
|
ldr r0, .L220+144
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldrb r1, [r3, #8] @ zero_extendqisi2
|
|
bl printf
|
|
.L131:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L102
|
|
ldr r3, .L220+148
|
|
b .L221
|
|
.L222:
|
|
.align 2
|
|
.L220:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR20
|
|
.word .LC1
|
|
.word .LANCHOR21
|
|
.word .LC2
|
|
.word .LC3
|
|
.word .LC4
|
|
.word .LC5
|
|
.word .LC6
|
|
.word .LC7
|
|
.word .LC8
|
|
.word .LC9
|
|
.word .LC10
|
|
.word .LC11
|
|
.word .LC12
|
|
.word .LANCHOR22
|
|
.word .LC13
|
|
.word .LC14
|
|
.word .LANCHOR23
|
|
.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 .LANCHOR24
|
|
.word .LC27
|
|
.word .LANCHOR0
|
|
.word .LANCHOR25
|
|
.word .LC28
|
|
.word .LC29
|
|
.word .LANCHOR26
|
|
.L221:
|
|
ldr r0, .L223
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
pop {r4, r5, lr}
|
|
b printf
|
|
.L102:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
pop {r4, r5, pc}
|
|
.L224:
|
|
.align 2
|
|
.L223:
|
|
.word .LC30
|
|
.size nand_flash_print_info, .-nand_flash_print_info
|
|
.section .text.timer_delay_ns,"ax",%progbits
|
|
.align 1
|
|
.global timer_delay_ns
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type timer_delay_ns, %function
|
|
timer_delay_ns:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L226
|
|
addw r0, r0, #999
|
|
umull r0, r1, r0, r3
|
|
lsrs r0, r1, #6
|
|
b udelay
|
|
.L227:
|
|
.align 2
|
|
.L226:
|
|
.word 274877907
|
|
.size timer_delay_ns, .-timer_delay_ns
|
|
.section .text.nandc_set_ddr_para,"ax",%progbits
|
|
.align 1
|
|
.global nandc_set_ddr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_set_ddr_para, %function
|
|
nandc_set_ddr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L231
|
|
ldr r2, .L231+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldr r2, [r2]
|
|
cmp r3, #9
|
|
lsl r3, r0, #16
|
|
lsl r0, r0, #8
|
|
orr r3, r3, r0
|
|
orr r3, r3, #3
|
|
ite eq
|
|
streq r3, [r2, #80]
|
|
strne r3, [r2, #304]
|
|
bx lr
|
|
.L232:
|
|
.align 2
|
|
.L231:
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.size nandc_set_ddr_para, .-nandc_set_ddr_para
|
|
.section .text.nandc_get_ddr_para,"ax",%progbits
|
|
.align 1
|
|
.global nandc_get_ddr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_get_ddr_para, %function
|
|
nandc_get_ddr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L237
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
ldr r3, .L237+4
|
|
ldr r3, [r3]
|
|
ite eq
|
|
ldreq r0, [r3, #80]
|
|
ldrne r0, [r3, #304]
|
|
ubfx r0, r0, #8, #8
|
|
bx lr
|
|
.L238:
|
|
.align 2
|
|
.L237:
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.size nandc_get_ddr_para, .-nandc_get_ddr_para
|
|
.section .text.nandc_set_if_mode,"ax",%progbits
|
|
.align 1
|
|
.global nandc_set_if_mode
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_set_if_mode, %function
|
|
nandc_set_if_mode:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L247
|
|
ands r1, r0, #6
|
|
ldr r3, [r3]
|
|
ldr r2, [r3]
|
|
beq .L240
|
|
lsls r1, r0, #29
|
|
ldr r1, .L247+4
|
|
orr r2, r2, #24576
|
|
bfc r2, #15, #1
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
orr r2, r2, #196608
|
|
it mi
|
|
orrmi r2, r2, #32768
|
|
cmp r1, #9
|
|
ldr r1, .L247+8
|
|
bne .L242
|
|
movw r0, #8321
|
|
str r0, [r3, #8]
|
|
str r1, [r3, #80]
|
|
movs r1, #38
|
|
str r1, [r3, #84]
|
|
movs r1, #39
|
|
str r1, [r3, #84]
|
|
.L243:
|
|
str r2, [r3]
|
|
bx lr
|
|
.L242:
|
|
movw r0, #8322
|
|
str r0, [r3, #344]
|
|
str r1, [r3, #304]
|
|
movs r1, #38
|
|
str r1, [r3, #308]
|
|
movs r1, #39
|
|
str r1, [r3, #308]
|
|
b .L243
|
|
.L240:
|
|
bfi r2, r1, #13, #1
|
|
b .L243
|
|
.L248:
|
|
.align 2
|
|
.L247:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR27
|
|
.word 1052675
|
|
.size nandc_set_if_mode, .-nandc_set_if_mode
|
|
.section .text.nandc_cs,"ax",%progbits
|
|
.align 1
|
|
.global nandc_cs
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_cs, %function
|
|
nandc_cs:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L250
|
|
movs r2, #1
|
|
lsl r0, r2, r0
|
|
ldr r1, [r3]
|
|
ldr r3, [r1]
|
|
bfi r3, r0, #0, #8
|
|
str r3, [r1]
|
|
bx lr
|
|
.L251:
|
|
.align 2
|
|
.L250:
|
|
.word .LANCHOR7
|
|
.size nandc_cs, .-nandc_cs
|
|
.section .text.flash_wait_device_ready_raw,"ax",%progbits
|
|
.align 1
|
|
.global flash_wait_device_ready_raw
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_wait_device_ready_raw, %function
|
|
flash_wait_device_ready_raw:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L262
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r0
|
|
mov r5, r1
|
|
mov fp, r2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r0
|
|
bhi .L253
|
|
mov r2, #812
|
|
ldr r1, .L262+4
|
|
ldr r0, .L262+8
|
|
bl printf
|
|
.L253:
|
|
ldr r3, .L262+12
|
|
lsrs r7, r5, #8
|
|
lsr r8, r5, #16
|
|
lsr r10, r5, #24
|
|
ldrb r6, [r3, r4] @ zero_extendqisi2
|
|
ldr r3, .L262+16
|
|
ldr r4, [r3]
|
|
add r4, r4, r6, lsl #8
|
|
.L259:
|
|
mov r0, r6
|
|
bl nandc_cs
|
|
movs r3, #120
|
|
str r3, [r4, #2056]
|
|
uxtb r3, r5
|
|
str r3, [r4, #2052]
|
|
ldr r3, .L262+20
|
|
str r7, [r4, #2052]
|
|
str r8, [r4, #2052]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L254
|
|
str r10, [r4, #2052]
|
|
.L254:
|
|
movs r0, #1
|
|
bl udelay
|
|
ldr r0, [r4, #2048]
|
|
uxtb r0, r0
|
|
bl nandc_de_cs.constprop.32
|
|
bics r3, fp, r0
|
|
bne .L259
|
|
cmp r0, #255
|
|
beq .L259
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L263:
|
|
.align 2
|
|
.L262:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR28
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR30
|
|
.size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw
|
|
.section .text.flash_wait_device_ready,"ax",%progbits
|
|
.align 1
|
|
.global flash_wait_device_ready
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_wait_device_ready, %function
|
|
flash_wait_device_ready:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
tst r0, #50331648
|
|
ldr r3, .L274
|
|
mov r7, r1
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
mov r3, #1
|
|
rsb r6, r5, #24
|
|
lsl r5, r3, r5
|
|
lsl r4, r3, r6
|
|
asr r6, r0, r6
|
|
add r5, r5, #-1
|
|
add r4, r4, #-1
|
|
and r5, r5, r6
|
|
and r4, r4, r0
|
|
uxtb r5, r5
|
|
bne .L265
|
|
ldr r3, .L274+4
|
|
ldr r10, .L274+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L266
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cbz r3, .L265
|
|
.L266:
|
|
ldr r3, .L274+8
|
|
mov r0, r4
|
|
ldrh r6, [r3]
|
|
mov r1, r6
|
|
bl __aeabi_uidiv
|
|
mov r1, r6
|
|
mul r8, r6, r0
|
|
mov r0, r4
|
|
bl __aeabi_uidivmod
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cbz r3, .L267
|
|
add r4, r8, r1, lsl #1
|
|
.L265:
|
|
mov r2, r7
|
|
mov r1, r4
|
|
mov r0, r5
|
|
pop {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
b flash_wait_device_ready_raw
|
|
.L267:
|
|
ldr r3, .L274+12
|
|
ldrh r4, [r3, r1, lsl #1]
|
|
add r4, r4, r8
|
|
b .L265
|
|
.L275:
|
|
.align 2
|
|
.L274:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR0
|
|
.word .LANCHOR2
|
|
.word .LANCHOR3
|
|
.word .LANCHOR1
|
|
.size flash_wait_device_ready, .-flash_wait_device_ready
|
|
.section .text.nandc_de_cs,"ax",%progbits
|
|
.align 1
|
|
.global nandc_de_cs
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_de_cs, %function
|
|
nandc_de_cs:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L277
|
|
ldr r2, [r3]
|
|
ldr r3, [r2]
|
|
bfc r3, #0, #8
|
|
bfc r3, #17, #1
|
|
str r3, [r2]
|
|
bx lr
|
|
.L278:
|
|
.align 2
|
|
.L277:
|
|
.word .LANCHOR7
|
|
.size nandc_de_cs, .-nandc_de_cs
|
|
.section .text.nandc_wait_flash_ready_no_delay,"ax",%progbits
|
|
.align 1
|
|
.global nandc_wait_flash_ready_no_delay
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_wait_flash_ready_no_delay, %function
|
|
nandc_wait_flash_ready_no_delay:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, lr}
|
|
ldr r4, .L284
|
|
ldr r5, .L284+4
|
|
.L281:
|
|
ldr r3, [r5]
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #22
|
|
bmi .L282
|
|
movs r0, #1
|
|
bl udelay
|
|
subs r4, r4, #1
|
|
bne .L281
|
|
mov r0, #-1
|
|
.L279:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, pc}
|
|
.L282:
|
|
movs r0, #0
|
|
b .L279
|
|
.L285:
|
|
.align 2
|
|
.L284:
|
|
.word 100000
|
|
.word .LANCHOR7
|
|
.size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay
|
|
.section .text.zftl_flash_enter_slc_mode,"ax",%progbits
|
|
.align 1
|
|
.global zftl_flash_enter_slc_mode
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_flash_enter_slc_mode, %function
|
|
zftl_flash_enter_slc_mode:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
ldr r3, .L305
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L286
|
|
ldr r2, .L305+4
|
|
cmp r3, #1
|
|
ldr r4, [r2]
|
|
bne .L289
|
|
ldr r3, .L305+8
|
|
ldrb r3, [r3, #29] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L286
|
|
.L304:
|
|
add r4, r4, r7, lsl #8
|
|
str r3, [r4, #2056]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L289:
|
|
cmp r3, #2
|
|
bne .L291
|
|
ldr r3, .L305+12
|
|
ldrb r2, [r3, r0] @ zero_extendqisi2
|
|
cbz r2, .L286
|
|
ldr r5, .L305+8
|
|
movs r2, #0
|
|
strb r2, [r3, r0]
|
|
ldrb r3, [r5, #29] @ zero_extendqisi2
|
|
cbz r3, .L286
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldrb r3, [r5, #29] @ zero_extendqisi2
|
|
b .L304
|
|
.L291:
|
|
cmp r3, #3
|
|
bne .L286
|
|
ldr r6, .L305+12
|
|
ldrb r3, [r6, r0] @ zero_extendqisi2
|
|
cbz r3, .L286
|
|
add r4, r4, r7, lsl #8
|
|
movs r5, #0
|
|
bl nandc_wait_flash_ready_no_delay
|
|
movs r3, #239
|
|
strb r5, [r6, r7]
|
|
str r3, [r4, #2056]
|
|
movs r3, #145
|
|
str r3, [r4, #2052]
|
|
movs r6, #1
|
|
movs r0, #1
|
|
bl udelay
|
|
str r5, [r4, #2048]
|
|
mov r0, r6
|
|
str r6, [r4, #2048]
|
|
str r5, [r4, #2048]
|
|
str r5, [r4, #2048]
|
|
bl udelay
|
|
bl nandc_wait_flash_ready_no_delay
|
|
movs r3, #218
|
|
mov r0, r6
|
|
str r3, [r4, #2056]
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b udelay
|
|
.L286:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L306:
|
|
.align 2
|
|
.L305:
|
|
.word .LANCHOR0
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.word .LANCHOR33
|
|
.size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode
|
|
.section .text.zftl_flash_exit_slc_mode,"ax",%progbits
|
|
.align 1
|
|
.global zftl_flash_exit_slc_mode
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_flash_exit_slc_mode, %function
|
|
zftl_flash_exit_slc_mode:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r4, r0
|
|
ldr r3, .L328
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L307
|
|
ldr r2, .L328+4
|
|
cmp r3, #1
|
|
ldr r6, [r2]
|
|
bne .L310
|
|
ldr r3, .L328+8
|
|
ldrb r3, [r3, #30] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L307
|
|
.L327:
|
|
add r4, r6, r4, lsl #8
|
|
str r3, [r4, #2056]
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L310:
|
|
cmp r3, #2
|
|
bne .L312
|
|
ldr r2, .L328+12
|
|
ldrb r3, [r2, r0] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L307
|
|
ldr r5, .L328+8
|
|
ldrb r3, [r5, #12] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
it ne
|
|
movne r3, #4
|
|
strb r3, [r2, r0]
|
|
ldrb r3, [r5, #30] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L307
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldrb r3, [r5, #30] @ zero_extendqisi2
|
|
b .L327
|
|
.L312:
|
|
cmp r3, #3
|
|
bne .L307
|
|
ldr r7, .L328+12
|
|
ldrb r3, [r7, r0] @ zero_extendqisi2
|
|
cbnz r3, .L307
|
|
ldr r10, .L328+8
|
|
lsl r8, r4, #8
|
|
bl nandc_wait_flash_ready_no_delay
|
|
ldrb r3, [r10, #12] @ zero_extendqisi2
|
|
add r5, r6, r8
|
|
movs r0, #1
|
|
add r6, r6, r8
|
|
cmp r3, #2
|
|
it ne
|
|
movne r3, #4
|
|
strb r3, [r7, r4]
|
|
movs r3, #239
|
|
str r3, [r5, #2056]
|
|
movs r3, #145
|
|
str r3, [r5, #2052]
|
|
bl udelay
|
|
ldrb r3, [r10, #7] @ zero_extendqisi2
|
|
movs r0, #1
|
|
cmp r3, #9
|
|
mov r3, #1
|
|
itet ne
|
|
ldrbne r2, [r7, r4] @ zero_extendqisi2
|
|
streq r3, [r5, #2048]
|
|
strne r2, [r5, #2048]
|
|
str r3, [r5, #2048]
|
|
movs r3, #0
|
|
str r3, [r5, #2048]
|
|
str r3, [r5, #2048]
|
|
bl udelay
|
|
bl nandc_wait_flash_ready_no_delay
|
|
movs r3, #223
|
|
movs r0, #1
|
|
str r3, [r6, #2056]
|
|
pop {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
b udelay
|
|
.L307:
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L329:
|
|
.align 2
|
|
.L328:
|
|
.word .LANCHOR0
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.word .LANCHOR33
|
|
.size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode
|
|
.section .text.flash_start_page_read,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_page_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_page_read, %function
|
|
flash_start_page_read:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L344
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
ldr r4, .L344+4
|
|
mov fp, r1
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r7, r2, #24
|
|
lsls r3, r3, r2
|
|
lsr r2, r1, r7
|
|
subs r3, r3, #1
|
|
ands r3, r3, r2
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
uxtb r8, r3
|
|
cmp r2, r8
|
|
bhi .L331
|
|
movw r2, #1013
|
|
ldr r1, .L344+8
|
|
ldr r0, .L344+12
|
|
bl printf
|
|
.L331:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, r8
|
|
bls .L330
|
|
ldr r3, .L344+16
|
|
movs r4, #1
|
|
lsls r4, r4, r7
|
|
ldr r6, .L344+20
|
|
ldrb r10, [r3, r8] @ zero_extendqisi2
|
|
subs r4, r4, #1
|
|
ldr r3, .L344+24
|
|
and r4, r4, fp
|
|
ubfx fp, fp, #24, #2
|
|
mov r0, r10
|
|
ldr r7, [r3]
|
|
lsl r8, r10, #8
|
|
bl nandc_cs
|
|
cmp fp, #0
|
|
bne .L333
|
|
mov r0, r4
|
|
bl slc_phy_page_address_calc
|
|
ldr r3, .L344+28
|
|
mov r4, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L334
|
|
mov r0, r10
|
|
bl zftl_flash_enter_slc_mode
|
|
.L334:
|
|
ldr r3, [r6]
|
|
ldrb r2, [r3, #7] @ zero_extendqisi2
|
|
cmp r2, #1
|
|
bne .L336
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
ittt eq
|
|
addeq r3, r7, r8
|
|
moveq r2, #38
|
|
streq r2, [r3, #2056]
|
|
.L336:
|
|
add r3, r7, r8
|
|
movs r2, #0
|
|
str r2, [r3, #2056]
|
|
str r2, [r3, #2052]
|
|
str r2, [r3, #2052]
|
|
uxtb r2, r4
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #8
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #16
|
|
str r2, [r3, #2052]
|
|
ldr r2, .L344+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L337
|
|
lsrs r4, r4, #24
|
|
str r4, [r3, #2052]
|
|
.L337:
|
|
add r3, r7, r8
|
|
str r5, [r3, #2056]
|
|
.L330:
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L333:
|
|
ldr r3, [r6]
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L335
|
|
ldr r3, .L344+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L335
|
|
ldr r3, .L344+40
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L335
|
|
add r3, r7, r8
|
|
str fp, [r3, #2056]
|
|
b .L334
|
|
.L335:
|
|
mov r0, r10
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L334
|
|
.L345:
|
|
.align 2
|
|
.L344:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR34
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR21
|
|
.word .LANCHOR7
|
|
.word .LANCHOR0
|
|
.word .LANCHOR30
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.size flash_start_page_read, .-flash_start_page_read
|
|
.section .text.nandc_wait_flash_ready,"ax",%progbits
|
|
.align 1
|
|
.global nandc_wait_flash_ready
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_wait_flash_ready, %function
|
|
nandc_wait_flash_ready:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, lr}
|
|
movs r0, #1
|
|
ldr r4, .L351
|
|
ldr r5, .L351+4
|
|
bl udelay
|
|
.L348:
|
|
ldr r3, [r5]
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #22
|
|
bmi .L349
|
|
movs r0, #1
|
|
bl udelay
|
|
subs r4, r4, #1
|
|
bne .L348
|
|
mov r0, #-1
|
|
.L346:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, pc}
|
|
.L349:
|
|
movs r0, #0
|
|
b .L346
|
|
.L352:
|
|
.align 2
|
|
.L351:
|
|
.word 100000
|
|
.word .LANCHOR7
|
|
.size nandc_wait_flash_ready, .-nandc_wait_flash_ready
|
|
.section .text.sandisk_set_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global sandisk_set_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sandisk_set_rr_para, %function
|
|
sandisk_set_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r3, #239
|
|
str r3, [r0, #8]
|
|
movs r3, #17
|
|
mov r5, r0
|
|
mov r4, r1
|
|
str r3, [r0, #4]
|
|
movs r0, #1
|
|
bl udelay
|
|
ldr r3, .L359
|
|
add r4, r4, r4, lsl #2
|
|
ldr r6, .L359+4
|
|
movs r2, #0
|
|
ldr r7, .L359+8
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
ldr r3, .L359+12
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
.L354:
|
|
cmp r2, r1
|
|
bcc .L357
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b nandc_wait_flash_ready
|
|
.L357:
|
|
adds r3, r2, r4
|
|
cmp r0, #67
|
|
ite eq
|
|
addeq r3, r3, r7
|
|
addne r3, r3, r6
|
|
ldrsb r3, [r3, #5]
|
|
adds r2, r2, #1
|
|
str r3, [r5]
|
|
b .L354
|
|
.L360:
|
|
.align 2
|
|
.L359:
|
|
.word .LANCHOR18
|
|
.word .LANCHOR16
|
|
.word .LANCHOR14
|
|
.word .LANCHOR15
|
|
.size sandisk_set_rr_para, .-sandisk_set_rr_para
|
|
.section .text.toshiba_3d_set_tlc_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_3d_set_tlc_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_3d_set_tlc_rr_para, %function
|
|
toshiba_3d_set_tlc_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r6, #0
|
|
movs r7, #213
|
|
mvn r3, #118
|
|
adds r1, r1, #1
|
|
mov r4, r0
|
|
str r7, [r0, #8]
|
|
rsb r1, r1, r1, lsl #3
|
|
str r6, [r0, #4]
|
|
str r3, [r0, #4]
|
|
ldr r3, .L362
|
|
adds r5, r3, r1
|
|
ldrsb r3, [r3, r1]
|
|
str r3, [r0]
|
|
ldrsb r3, [r5, #1]
|
|
str r3, [r0]
|
|
ldrsb r3, [r5, #2]
|
|
str r3, [r0]
|
|
ldrsb r3, [r5, #3]
|
|
str r3, [r0]
|
|
bl nandc_wait_flash_ready
|
|
mvn r3, #117
|
|
str r7, [r4, #8]
|
|
str r6, [r4, #4]
|
|
str r3, [r4, #4]
|
|
ldrsb r3, [r5, #4]
|
|
str r3, [r4]
|
|
ldrsb r3, [r5, #5]
|
|
str r3, [r4]
|
|
ldrsb r3, [r5, #6]
|
|
str r3, [r4]
|
|
str r6, [r4]
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b nandc_wait_flash_ready
|
|
.L363:
|
|
.align 2
|
|
.L362:
|
|
.word .LANCHOR37
|
|
.size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para
|
|
.section .text.toshiba_3d_set_slc_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_3d_set_slc_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_3d_set_slc_rr_para, %function
|
|
toshiba_3d_set_slc_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movs r3, #213
|
|
mvn r2, #116
|
|
str r3, [r0, #8]
|
|
movs r3, #0
|
|
str r3, [r0, #4]
|
|
str r2, [r0, #4]
|
|
ldr r2, .L365
|
|
add r1, r1, r2
|
|
ldrsb r2, [r1, #1]
|
|
str r2, [r0]
|
|
str r3, [r0]
|
|
str r3, [r0]
|
|
str r3, [r0]
|
|
b nandc_wait_flash_ready
|
|
.L366:
|
|
.align 2
|
|
.L365:
|
|
.word .LANCHOR38
|
|
.size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para
|
|
.section .text.toshiba_tlc_set_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_tlc_set_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_tlc_set_rr_para, %function
|
|
toshiba_tlc_set_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
movs r6, #239
|
|
mov r4, r0
|
|
str r6, [r0, #8]
|
|
cbz r2, .L368
|
|
movs r3, #18
|
|
rsb r1, r1, r1, lsl #3
|
|
str r3, [r0, #4]
|
|
ldr r3, .L370
|
|
adds r5, r3, r1
|
|
ldrb r3, [r3, r1] @ zero_extendqisi2
|
|
str r3, [r0]
|
|
ldrb r3, [r5, #1] @ zero_extendqisi2
|
|
str r3, [r0]
|
|
ldrb r3, [r5, #2] @ zero_extendqisi2
|
|
str r3, [r0]
|
|
ldrb r3, [r5, #3] @ zero_extendqisi2
|
|
str r3, [r0]
|
|
bl nandc_wait_flash_ready
|
|
movs r3, #19
|
|
str r6, [r4, #8]
|
|
str r3, [r4, #4]
|
|
ldrb r3, [r5, #4] @ zero_extendqisi2
|
|
str r3, [r4]
|
|
ldrb r3, [r5, #5] @ zero_extendqisi2
|
|
str r3, [r4]
|
|
ldrb r3, [r5, #6] @ zero_extendqisi2
|
|
str r3, [r4]
|
|
movs r3, #0
|
|
str r3, [r4]
|
|
.L369:
|
|
pop {r4, r5, r6, lr}
|
|
b nandc_wait_flash_ready
|
|
.L368:
|
|
movs r3, #20
|
|
str r3, [r0, #4]
|
|
ldr r3, .L370+4
|
|
ldrb r3, [r3, r1] @ zero_extendqisi2
|
|
str r3, [r0]
|
|
str r2, [r0]
|
|
str r2, [r0]
|
|
str r2, [r0]
|
|
b .L369
|
|
.L371:
|
|
.align 2
|
|
.L370:
|
|
.word .LANCHOR39
|
|
.word .LANCHOR40
|
|
.size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para
|
|
.section .text.ymtc_3d_set_tlc_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global ymtc_3d_set_tlc_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ymtc_3d_set_tlc_rr_para, %function
|
|
ymtc_3d_set_tlc_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r7, #239
|
|
movs r3, #160
|
|
str r7, [r0, #8]
|
|
rsb r1, r1, r1, lsl #3
|
|
movs r6, #0
|
|
str r3, [r0, #4]
|
|
mov r4, r0
|
|
ldr r3, .L373
|
|
adds r5, r3, r1
|
|
ldrsb r3, [r3, r1]
|
|
str r3, [r0]
|
|
ldrsb r3, [r5, #4]
|
|
str r3, [r0]
|
|
str r6, [r0]
|
|
str r6, [r0]
|
|
bl nandc_wait_flash_ready
|
|
movs r3, #161
|
|
str r7, [r4, #8]
|
|
str r3, [r4, #4]
|
|
ldrsb r3, [r5, #1]
|
|
str r3, [r4]
|
|
ldrsb r3, [r5, #3]
|
|
str r3, [r4]
|
|
ldrsb r3, [r5, #5]
|
|
str r3, [r4]
|
|
str r6, [r4]
|
|
bl nandc_wait_flash_ready
|
|
movs r3, #162
|
|
str r7, [r4, #8]
|
|
str r3, [r4, #4]
|
|
ldrsb r3, [r5, #2]
|
|
str r3, [r4]
|
|
ldrsb r3, [r5, #6]
|
|
str r3, [r4]
|
|
str r6, [r4]
|
|
str r6, [r4]
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b nandc_wait_flash_ready
|
|
.L374:
|
|
.align 2
|
|
.L373:
|
|
.word .LANCHOR41
|
|
.size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para
|
|
.section .text.ymtc_3d_set_slc_rr_para,"ax",%progbits
|
|
.align 1
|
|
.global ymtc_3d_set_slc_rr_para
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ymtc_3d_set_slc_rr_para, %function
|
|
ymtc_3d_set_slc_rr_para:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movs r3, #239
|
|
str r3, [r0, #8]
|
|
movs r3, #163
|
|
str r3, [r0, #4]
|
|
ldr r3, .L376
|
|
ldrsb r3, [r3, r1]
|
|
str r3, [r0]
|
|
movs r3, #0
|
|
str r3, [r0]
|
|
str r3, [r0]
|
|
str r3, [r0]
|
|
b nandc_wait_flash_ready
|
|
.L377:
|
|
.align 2
|
|
.L376:
|
|
.word .LANCHOR42
|
|
.size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para
|
|
.section .text.flash_erase_duplane_block,"ax",%progbits
|
|
.align 1
|
|
.global flash_erase_duplane_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_erase_duplane_block, %function
|
|
flash_erase_duplane_block:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r2
|
|
ldr r4, .L402
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r10, r3
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
cmp r2, r0
|
|
bhi .L379
|
|
movw r2, #695
|
|
ldr r1, .L402+4
|
|
ldr r0, .L402+8
|
|
bl printf
|
|
.L379:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, r7
|
|
bls .L388
|
|
ldr r3, .L402+12
|
|
ldrb r4, [r3, r7] @ zero_extendqisi2
|
|
ldr r3, .L402+16
|
|
add r7, r4, #8
|
|
ldr r8, [r3]
|
|
ldr r3, .L402+20
|
|
ldr r3, [r3]
|
|
add r7, r8, r7, lsl #8
|
|
lsls r3, r3, #27
|
|
bpl .L381
|
|
mov r3, r10
|
|
mov r2, r5
|
|
mov r1, r4
|
|
ldr r0, .L402+24
|
|
bl printf
|
|
.L381:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
bl nandc_cs
|
|
mov r0, r4
|
|
cmp r6, #0
|
|
bne .L382
|
|
bl zftl_flash_enter_slc_mode
|
|
.L383:
|
|
lsls r4, r4, #8
|
|
movs r3, #96
|
|
add r6, r8, r4
|
|
str r3, [r6, #2056]
|
|
uxtb r3, r5
|
|
str r3, [r6, #2052]
|
|
lsrs r3, r5, #8
|
|
str r3, [r6, #2052]
|
|
lsrs r3, r5, #16
|
|
str r3, [r6, #2052]
|
|
ldr r3, .L402+28
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cbz r2, .L384
|
|
lsrs r2, r5, #24
|
|
str r2, [r6, #2052]
|
|
.L384:
|
|
ldr r2, .L402+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
bne .L389
|
|
add r2, r8, r4
|
|
movs r1, #208
|
|
str r1, [r2, #2056]
|
|
str r3, [sp, #4]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl flash_read_status
|
|
ldr r3, [sp, #4]
|
|
and fp, r0, #5
|
|
.L385:
|
|
add r2, r8, r4
|
|
movs r1, #96
|
|
str r1, [r2, #2056]
|
|
uxtb r2, r10
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r2, [r6, #2052]
|
|
lsr r2, r10, #8
|
|
str r2, [r6, #2052]
|
|
lsr r2, r10, #16
|
|
str r2, [r6, #2052]
|
|
cbz r3, .L386
|
|
lsr r2, r10, #24
|
|
str r2, [r6, #2052]
|
|
.L386:
|
|
movs r3, #208
|
|
add r0, r8, r4
|
|
str r3, [r0, #2056]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl flash_read_status
|
|
bl nandc_de_cs.constprop.32
|
|
and r3, r0, #5
|
|
orrs fp, r3, fp
|
|
beq .L387
|
|
mov r2, r0
|
|
mov r1, r5
|
|
ldr r0, .L402+36
|
|
bl printf
|
|
.L387:
|
|
mov r0, fp
|
|
.L378:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L382:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L383
|
|
.L389:
|
|
mov fp, #0
|
|
b .L385
|
|
.L388:
|
|
mov r0, #-1
|
|
b .L378
|
|
.L403:
|
|
.align 2
|
|
.L402:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR43
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR19
|
|
.word .LC31
|
|
.word .LANCHOR30
|
|
.word .LANCHOR44
|
|
.word .LC32
|
|
.size flash_erase_duplane_block, .-flash_erase_duplane_block
|
|
.section .text.flash_erase_block_en,"ax",%progbits
|
|
.align 1
|
|
.global flash_erase_block_en
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_erase_block_en, %function
|
|
flash_erase_block_en:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L422
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r2
|
|
ldr r5, .L422+4
|
|
mov r6, r0
|
|
mov fp, r1
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
rsb r3, r4, #24
|
|
movs r4, #1
|
|
lsls r4, r4, r3
|
|
subs r4, r4, #1
|
|
ands r4, r4, r2
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
cmp r2, r0
|
|
bhi .L405
|
|
movw r2, #757
|
|
ldr r1, .L422+8
|
|
ldr r0, .L422+12
|
|
bl printf
|
|
.L405:
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
cmp r3, r6
|
|
bls .L412
|
|
ldr r3, .L422+16
|
|
ldrb r5, [r3, r6] @ zero_extendqisi2
|
|
ldr r3, .L422+20
|
|
add r10, r5, #8
|
|
ldr r8, [r3]
|
|
ldr r3, .L422+24
|
|
ldr r3, [r3]
|
|
add r10, r8, r10, lsl #8
|
|
lsls r3, r3, #27
|
|
bpl .L407
|
|
mov r3, fp
|
|
mov r2, r7
|
|
mov r1, r5
|
|
ldr r0, .L422+28
|
|
bl printf
|
|
.L407:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r5
|
|
bl nandc_cs
|
|
mov r0, r5
|
|
cmp fp, #0
|
|
bne .L408
|
|
bl zftl_flash_enter_slc_mode
|
|
.L409:
|
|
lsls r5, r5, #8
|
|
movs r2, #96
|
|
add r3, r8, r5
|
|
str r2, [r3, #2056]
|
|
uxtb r2, r4
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #8
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #16
|
|
str r2, [r3, #2052]
|
|
ldr r2, .L422+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L410
|
|
lsrs r4, r4, #24
|
|
str r4, [r3, #2052]
|
|
.L410:
|
|
movs r3, #208
|
|
add r5, r5, r8
|
|
str r3, [r5, #2056]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r10
|
|
bl flash_read_status
|
|
bl nandc_de_cs.constprop.32
|
|
ands r4, r0, #5
|
|
beq .L411
|
|
ldr r3, .L422+36
|
|
mov r0, r7
|
|
ldrh r1, [r3]
|
|
bl __aeabi_uidiv
|
|
mov r3, r4
|
|
mov r4, #-1
|
|
mov r2, r0
|
|
mov r1, r6
|
|
ldr r0, .L422+40
|
|
bl printf
|
|
.L411:
|
|
mov r0, r4
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L408:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L409
|
|
.L412:
|
|
mov r0, #-1
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L423:
|
|
.align 2
|
|
.L422:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR45
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR19
|
|
.word .LC33
|
|
.word .LANCHOR30
|
|
.word .LANCHOR2
|
|
.word .LC34
|
|
.size flash_erase_block_en, .-flash_erase_block_en
|
|
.section .text.flash_erase_block,"ax",%progbits
|
|
.align 1
|
|
.global flash_erase_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_erase_block, %function
|
|
flash_erase_block:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
mov r2, r1
|
|
movs r1, #0
|
|
b flash_erase_block_en
|
|
.size flash_erase_block, .-flash_erase_block
|
|
.section .text.flash_erase_all,"ax",%progbits
|
|
.align 1
|
|
.global flash_erase_all
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_erase_all, %function
|
|
flash_erase_all:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L430
|
|
push {r4, r5, r6, r7, r8, lr}
|
|
movs r5, #0
|
|
ldr r7, .L430+4
|
|
ldrb r4, [r3, #13] @ zero_extendqisi2
|
|
ldrh r3, [r3, #14]
|
|
smulbb r4, r4, r3
|
|
uxth r4, r4
|
|
.L426:
|
|
ldr r3, .L430+8
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
uxth r3, r5
|
|
cmp r2, r3
|
|
bhi .L429
|
|
movs r1, #0
|
|
ldr r0, .L430+12
|
|
pop {r4, r5, r6, r7, r8, lr}
|
|
b printf
|
|
.L429:
|
|
ldr r2, .L430+16
|
|
uxth r3, r5
|
|
movs r6, #0
|
|
ldrb r8, [r2, r3] @ zero_extendqisi2
|
|
.L427:
|
|
uxth r3, r6
|
|
cmp r4, r3
|
|
bhi .L428
|
|
adds r5, r5, #1
|
|
b .L426
|
|
.L428:
|
|
ldrh r1, [r7]
|
|
mov r0, r8
|
|
muls r1, r6, r1
|
|
adds r6, r6, #1
|
|
bl flash_erase_block
|
|
b .L427
|
|
.L431:
|
|
.align 2
|
|
.L430:
|
|
.word .LANCHOR32
|
|
.word .LANCHOR2
|
|
.word .LANCHOR23
|
|
.word .LC35
|
|
.word .LANCHOR29
|
|
.size flash_erase_all, .-flash_erase_all
|
|
.section .text.flash_start_plane_read,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_plane_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_plane_read, %function
|
|
flash_start_plane_read:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L460
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ubfx r10, r0, #24, #2
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r2, r5, #24
|
|
lsl r4, r3, r2
|
|
lsl r5, r3, r5
|
|
ldr r3, .L460+4
|
|
lsr r2, r0, r2
|
|
subs r5, r5, #1
|
|
ands r5, r5, r2
|
|
subs r4, r4, #1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
uxtb r5, r5
|
|
and r7, r4, r0
|
|
ands r4, r4, r1
|
|
cmp r3, r5
|
|
bhi .L433
|
|
movw r2, #1148
|
|
ldr r1, .L460+8
|
|
ldr r0, .L460+12
|
|
bl printf
|
|
.L433:
|
|
ldr r3, .L460+16
|
|
ldr fp, .L460+44
|
|
ldrb r5, [r3, r5] @ zero_extendqisi2
|
|
ldr r3, .L460+20
|
|
mov r0, r5
|
|
ldr r6, [r3]
|
|
lsl r8, r5, #8
|
|
bl nandc_cs
|
|
cmp r10, #0
|
|
bne .L434
|
|
mov r0, r7
|
|
bl slc_phy_page_address_calc
|
|
mov r7, r0
|
|
mov r0, r4
|
|
bl slc_phy_page_address_calc
|
|
ldr r3, .L460+24
|
|
mov r4, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L435
|
|
mov r0, r5
|
|
bl zftl_flash_enter_slc_mode
|
|
.L435:
|
|
ldr r2, .L460+28
|
|
uxtb ip, r7
|
|
lsrs r0, r7, #8
|
|
ldrb r3, [r2, #16] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L437
|
|
ldrb r3, [r2, #8] @ zero_extendqisi2
|
|
add r5, r6, r8
|
|
str r3, [r5, #2056]
|
|
movs r3, #0
|
|
str r3, [r5, #2052]
|
|
str r3, [r5, #2052]
|
|
lsrs r3, r7, #16
|
|
str ip, [r5, #2052]
|
|
str r0, [r5, #2052]
|
|
str r3, [r5, #2052]
|
|
ldr r3, .L460+32
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cbz r1, .L438
|
|
lsrs r7, r7, #24
|
|
str r7, [r5, #2052]
|
|
.L438:
|
|
ldrb r2, [r2, #9] @ zero_extendqisi2
|
|
add r7, r6, r8
|
|
str r3, [sp, #4]
|
|
str r2, [r7, #2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr r2, [fp]
|
|
ldr r3, [sp, #4]
|
|
ldrb r2, [r2, #12] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
bne .L439
|
|
cmp r10, #0
|
|
beq .L439
|
|
str r10, [r7, #2056]
|
|
.L439:
|
|
movs r2, #0
|
|
add r1, r6, r8
|
|
str r2, [r1, #2056]
|
|
str r2, [r5, #2052]
|
|
str r2, [r5, #2052]
|
|
uxtb r2, r4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r2, [r5, #2052]
|
|
lsrs r2, r4, #8
|
|
str r2, [r5, #2052]
|
|
lsrs r2, r4, #16
|
|
str r2, [r5, #2052]
|
|
cbz r3, .L440
|
|
lsrs r4, r4, #24
|
|
str r4, [r5, #2052]
|
|
.L440:
|
|
add r6, r6, r8
|
|
.L459:
|
|
movs r3, #48
|
|
str r3, [r6, #2056]
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L434:
|
|
ldr r3, [fp]
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L436
|
|
ldr r3, .L460+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L436
|
|
ldr r3, .L460+40
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L436
|
|
add r3, r6, r8
|
|
str r10, [r3, #2056]
|
|
b .L435
|
|
.L436:
|
|
mov r0, r5
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L435
|
|
.L437:
|
|
ldr r1, [fp]
|
|
ldrb r3, [r1, #7] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L442
|
|
ldrb r3, [r1, #12] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
ittt eq
|
|
addeq r3, r6, r8
|
|
moveq r5, #38
|
|
streq r5, [r3, #2056]
|
|
.L442:
|
|
ldrb r5, [r2, #8] @ zero_extendqisi2
|
|
lsrs r7, r7, #16
|
|
add r3, r6, r8
|
|
str r5, [r3, #2056]
|
|
str ip, [r3, #2052]
|
|
str r0, [r3, #2052]
|
|
str r7, [r3, #2052]
|
|
ldrb r1, [r1, #12] @ zero_extendqisi2
|
|
cmp r1, #3
|
|
bne .L443
|
|
cmp r10, #0
|
|
beq .L443
|
|
str r10, [r3, #2056]
|
|
.L443:
|
|
ldrb r2, [r2, #9] @ zero_extendqisi2
|
|
add r6, r6, r8
|
|
str r2, [r6, #2056]
|
|
uxtb r2, r4
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #8
|
|
lsrs r4, r4, #16
|
|
str r2, [r3, #2052]
|
|
str r4, [r3, #2052]
|
|
b .L459
|
|
.L461:
|
|
.align 2
|
|
.L460:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR46
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR0
|
|
.word .LANCHOR25
|
|
.word .LANCHOR30
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word .LANCHOR21
|
|
.size flash_start_plane_read, .-flash_start_plane_read
|
|
.section .text.flash_set_interface_mode,"ax",%progbits
|
|
.align 1
|
|
.global flash_set_interface_mode
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_set_interface_mode, %function
|
|
flash_set_interface_mode:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r6, r0
|
|
ldr r7, .L506
|
|
mov r10, #0
|
|
ldr r8, .L506+24
|
|
.L476:
|
|
ldrb r5, [r7, r10, lsl #3] @ zero_extendqisi2
|
|
cmp r5, #69
|
|
beq .L463
|
|
cmp r5, #44
|
|
beq .L463
|
|
add r3, r5, #119
|
|
uxtb r3, r3
|
|
cmp r3, #18
|
|
bhi .L464
|
|
ldr r2, .L506+4
|
|
lsr r3, r2, r3
|
|
lsls r2, r3, #31
|
|
bpl .L464
|
|
.L463:
|
|
ldr r3, .L506+8
|
|
cmp r6, #1
|
|
ldr r4, [r8]
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bne .L465
|
|
lsls r3, r1, #31
|
|
bpl .L464
|
|
ldr r3, .L506+12
|
|
ldr r3, [r3]
|
|
lsls r0, r3, #19
|
|
bpl .L466
|
|
ldr r0, .L506+16
|
|
bl printf
|
|
.L466:
|
|
lsl r3, r10, #8
|
|
cmp r5, #44
|
|
mov r1, #239
|
|
add r2, r4, r3
|
|
str r1, [r2, #2056]
|
|
beq .L467
|
|
cmp r5, #137
|
|
bne .L468
|
|
.L467:
|
|
adds r2, r4, r3
|
|
.L505:
|
|
movs r1, #1
|
|
str r1, [r2, #2052]
|
|
movs r1, #5
|
|
.L502:
|
|
add r4, r4, r3
|
|
str r1, [r2, #2048]
|
|
.L504:
|
|
movs r3, #0
|
|
str r3, [r4, #2048]
|
|
str r3, [r4, #2048]
|
|
str r3, [r4, #2048]
|
|
.L464:
|
|
add r10, r10, #1
|
|
cmp r10, #4
|
|
bne .L476
|
|
bl nandc_wait_flash_ready
|
|
movs r0, #0
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L468:
|
|
cmp r5, #155
|
|
beq .L505
|
|
movs r1, #128
|
|
str r1, [r2, #2052]
|
|
movs r1, #1
|
|
b .L502
|
|
.L465:
|
|
lsls r2, r1, #29
|
|
bpl .L464
|
|
ldr r3, .L506+12
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L471
|
|
ldr r0, .L506+20
|
|
bl printf
|
|
.L471:
|
|
lsl r2, r10, #8
|
|
cmp r5, #44
|
|
mov r1, #239
|
|
add r3, r4, r2
|
|
str r1, [r3, #2056]
|
|
beq .L472
|
|
cmp r5, #137
|
|
bne .L473
|
|
.L472:
|
|
movs r1, #1
|
|
adds r3, r4, r2
|
|
str r1, [r3, #2052]
|
|
movs r1, #35
|
|
.L503:
|
|
str r1, [r3, #2048]
|
|
add r4, r4, r2
|
|
b .L504
|
|
.L473:
|
|
cmp r5, #155
|
|
itett eq
|
|
moveq r1, #1
|
|
movne r1, #128
|
|
streq r1, [r3, #2052]
|
|
moveq r1, #37
|
|
itt ne
|
|
strne r1, [r3, #2052]
|
|
movne r1, #0
|
|
b .L503
|
|
.L507:
|
|
.align 2
|
|
.L506:
|
|
.word .LANCHOR47
|
|
.word 294913
|
|
.word .LANCHOR48
|
|
.word .LANCHOR19
|
|
.word .LC36
|
|
.word .LC37
|
|
.word .LANCHOR7
|
|
.size flash_set_interface_mode, .-flash_set_interface_mode
|
|
.section .text.mt_auto_read_calibration_config,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type mt_auto_read_calibration_config, %function
|
|
mt_auto_read_calibration_config:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
mov r5, r1
|
|
mov r6, r0
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, .L509
|
|
movs r0, #1
|
|
ldr r4, [r3]
|
|
movs r3, #239
|
|
add r4, r4, r6, lsl #8
|
|
str r3, [r4, #2056]
|
|
movs r3, #150
|
|
str r3, [r4, #2052]
|
|
bl udelay
|
|
movs r3, #0
|
|
str r5, [r4, #2048]
|
|
str r3, [r4, #2048]
|
|
str r3, [r4, #2048]
|
|
str r3, [r4, #2048]
|
|
pop {r4, r5, r6, pc}
|
|
.L510:
|
|
.align 2
|
|
.L509:
|
|
.word .LANCHOR7
|
|
.size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config
|
|
.section .text.flash_reset,"ax",%progbits
|
|
.align 1
|
|
.global flash_reset
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_reset, %function
|
|
flash_reset:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L512
|
|
ldr r3, [r3]
|
|
add r0, r3, r0, lsl #8
|
|
movs r3, #255
|
|
str r3, [r0, #2056]
|
|
b nandc_wait_flash_ready
|
|
.L513:
|
|
.align 2
|
|
.L512:
|
|
.word .LANCHOR7
|
|
.size flash_reset, .-flash_reset
|
|
.section .text.flash_read_id,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_id
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_id, %function
|
|
flash_read_id:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, lr}
|
|
mov r6, r0
|
|
ldr r3, .L516
|
|
mov r4, r1
|
|
ldr r5, [r3]
|
|
bl flash_reset
|
|
mov r0, r6
|
|
bl nandc_cs
|
|
add r5, r5, r6, lsl #8
|
|
movs r3, #144
|
|
movs r0, #1
|
|
str r3, [r5, #2056]
|
|
movs r3, #0
|
|
str r3, [r5, #2052]
|
|
bl udelay
|
|
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.32
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
subs r3, r2, #1
|
|
uxtb r3, r3
|
|
cmp r3, #253
|
|
bhi .L514
|
|
ldrb r1, [r4, #5] @ zero_extendqisi2
|
|
ldrb r3, [r4, #1] @ zero_extendqisi2
|
|
ldr r0, .L516+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]
|
|
adds r1, r6, #1
|
|
bl printf
|
|
.L514:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, pc}
|
|
.L517:
|
|
.align 2
|
|
.L516:
|
|
.word .LANCHOR7
|
|
.word .LC38
|
|
.size flash_read_id, .-flash_read_id
|
|
.section .text.flash_read_spare,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_spare
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_spare, %function
|
|
flash_read_spare:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
mov r5, r2
|
|
ldr r3, .L519
|
|
ldr r2, .L519+4
|
|
ldrb r3, [r3, #9] @ zero_extendqisi2
|
|
ldr r4, [r2]
|
|
movs r2, #0
|
|
lsls r3, r3, #9
|
|
add r4, r4, r0, lsl #8
|
|
str r2, [r4, #2056]
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r3, #8
|
|
str r3, [r4, #2052]
|
|
uxtb r3, r1
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r1, #8
|
|
lsrs r1, r1, #16
|
|
str r3, [r4, #2052]
|
|
movs r3, #48
|
|
str r1, [r4, #2052]
|
|
str r3, [r4, #2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r4, #2048]
|
|
strb r3, [r5]
|
|
pop {r3, r4, r5, pc}
|
|
.L520:
|
|
.align 2
|
|
.L519:
|
|
.word .LANCHOR32
|
|
.word .LANCHOR7
|
|
.size flash_read_spare, .-flash_read_spare
|
|
.section .text.flash_read_otp_data,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_otp_data
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_otp_data, %function
|
|
flash_read_otp_data:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L524
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r0
|
|
lsl r8, r8, #8
|
|
mov r6, r1
|
|
mov r5, r2
|
|
ldr r7, [r3]
|
|
mov fp, #144
|
|
bl nandc_cs
|
|
movs r3, #239
|
|
movs r0, #1
|
|
add r4, r7, r8
|
|
mov r10, #0
|
|
str r3, [r4, #2056]
|
|
str fp, [r4, #2052]
|
|
bl udelay
|
|
movs r3, #1
|
|
str r3, [r4, #2048]
|
|
str r10, [r4, #2048]
|
|
str r10, [r4, #2048]
|
|
str r10, [r4, #2048]
|
|
bl nandc_wait_flash_ready
|
|
movs r3, #238
|
|
ldr r0, .L524+4
|
|
str r3, [r4, #2056]
|
|
str fp, [r4, #2052]
|
|
ldr r2, [r4, #2048]
|
|
ldr r3, [r4, #2048]
|
|
ldr r1, [r4, #2048]
|
|
str r1, [sp]
|
|
mov r1, r6
|
|
bl printf
|
|
bl nandc_wait_flash_ready
|
|
uxtb r3, r6
|
|
str r10, [r4, #2056]
|
|
str r10, [r4, #2052]
|
|
str r10, [r4, #2052]
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r6, #8
|
|
lsrs r6, r6, #16
|
|
str r3, [r4, #2052]
|
|
movs r3, #48
|
|
str r6, [r4, #2052]
|
|
str r3, [r4, #2056]
|
|
bl nandc_wait_flash_ready
|
|
add r3, r5, #16384
|
|
mov r2, r5
|
|
.L522:
|
|
ldr r1, [r4, #2048]
|
|
strb r1, [r2], #1
|
|
cmp r2, r3
|
|
bne .L522
|
|
add r7, r7, r8
|
|
movs r3, #239
|
|
str r3, [r7, #2056]
|
|
movs r3, #144
|
|
str r3, [r4, #2052]
|
|
movs r0, #1
|
|
bl udelay
|
|
movs 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, r10, fp, lr}
|
|
b nandc_de_cs.constprop.32
|
|
.L525:
|
|
.align 2
|
|
.L524:
|
|
.word .LANCHOR7
|
|
.word .LC39
|
|
.size flash_read_otp_data, .-flash_read_otp_data
|
|
.section .text.sandisk_prog_test_bad_block,"ax",%progbits
|
|
.align 1
|
|
.global sandisk_prog_test_bad_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sandisk_prog_test_bad_block, %function
|
|
sandisk_prog_test_bad_block:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, lr}
|
|
mov r8, r1
|
|
ldr r3, .L541
|
|
lsls r6, r0, #8
|
|
ldr r7, .L541+4
|
|
ldr r5, [r3]
|
|
ldrb r3, [r7, #29] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L527
|
|
adds r2, r5, r6
|
|
str r3, [r2, #2056]
|
|
.L528:
|
|
adds r4, r5, r6
|
|
movs r3, #128
|
|
str r3, [r4, #2056]
|
|
movs r3, #0
|
|
str r3, [r4, #2052]
|
|
str r3, [r4, #2052]
|
|
uxtb r3, r8
|
|
str r3, [r4, #2052]
|
|
lsr r3, r8, #8
|
|
str r3, [r4, #2052]
|
|
lsr r3, r8, #16
|
|
str r3, [r4, #2052]
|
|
movs r3, #16
|
|
str r3, [r4, #2056]
|
|
bl nandc_wait_flash_ready
|
|
movs r3, #112
|
|
movs r0, #1
|
|
str r3, [r4, #2056]
|
|
bl udelay
|
|
ldr r2, [r4, #2048]
|
|
cmp r2, #255
|
|
it eq
|
|
ldreq r2, [r4, #2048]
|
|
ands r4, r2, #5
|
|
beq .L530
|
|
ldr r3, .L541+8
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L530
|
|
mov r1, r8
|
|
ldr r0, .L541+12
|
|
bl printf
|
|
.L530:
|
|
ldrb r3, [r7, #30] @ zero_extendqisi2
|
|
cbz r3, .L526
|
|
add r5, r5, r6
|
|
str r3, [r5, #2056]
|
|
.L526:
|
|
mov r0, r4
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L527:
|
|
adds r3, r5, r6
|
|
movs r2, #162
|
|
str r2, [r3, #2056]
|
|
b .L528
|
|
.L542:
|
|
.align 2
|
|
.L541:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.word .LANCHOR19
|
|
.word .LC40
|
|
.size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block
|
|
.section .text.nandc_rdy_status,"ax",%progbits
|
|
.align 1
|
|
.global nandc_rdy_status
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_rdy_status, %function
|
|
nandc_rdy_status:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L544
|
|
sub sp, sp, #8
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r0, [sp, #4]
|
|
ubfx r0, r0, #9, #1
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.L545:
|
|
.align 2
|
|
.L544:
|
|
.word .LANCHOR7
|
|
.size nandc_rdy_status, .-nandc_rdy_status
|
|
.section .text.nandc_bch_sel,"ax",%progbits
|
|
.align 1
|
|
.global nandc_bch_sel
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_bch_sel, %function
|
|
nandc_bch_sel:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
movs r3, #0
|
|
push {r0, r1, r4, lr}
|
|
str r3, [sp, #4]
|
|
ldr r2, [sp, #4]
|
|
orr r2, r2, #1
|
|
str r2, [sp, #4]
|
|
ldr r2, .L557
|
|
strb r0, [r2]
|
|
ldr r2, .L557+4
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #9
|
|
ldr r2, .L557+8
|
|
bne .L547
|
|
ldr r2, [r2]
|
|
cmp r0, #70
|
|
ldr r1, [sp, #4]
|
|
str r1, [r2, #16]
|
|
beq .L548
|
|
cmp r0, #60
|
|
beq .L554
|
|
cmp r0, #40
|
|
ite eq
|
|
moveq r3, #2
|
|
movne r3, #1
|
|
.L548:
|
|
movs 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]
|
|
.L546:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, pc}
|
|
.L554:
|
|
movs r3, #3
|
|
b .L548
|
|
.L547:
|
|
ldr r1, [r2]
|
|
movs r4, #16
|
|
ldr r2, [sp, #4]
|
|
cmp r0, r4
|
|
str r2, [r1, #8]
|
|
str r3, [sp]
|
|
ldr r2, [sp]
|
|
bfi r2, r4, #8, #8
|
|
str r2, [sp]
|
|
ldr r2, [sp]
|
|
bfi r2, r3, #18, #1
|
|
str r2, [sp]
|
|
bne .L550
|
|
.L556:
|
|
ldr r2, [sp]
|
|
bfi r2, r3, #4, #1
|
|
str r2, [sp]
|
|
b .L551
|
|
.L550:
|
|
cmp r0, #24
|
|
bne .L552
|
|
ldr r3, [sp]
|
|
orr r3, r3, #16
|
|
str r3, [sp]
|
|
.L551:
|
|
ldr r3, [sp]
|
|
orr r3, r3, #1
|
|
str r3, [sp]
|
|
ldr r3, [sp]
|
|
str r3, [r1, #12]
|
|
b .L546
|
|
.L552:
|
|
ldr r2, [sp]
|
|
cmp r0, #40
|
|
orr r2, r2, #262144
|
|
str r2, [sp]
|
|
ldr r2, [sp]
|
|
orr r2, r2, #16
|
|
str r2, [sp]
|
|
bne .L551
|
|
b .L556
|
|
.L558:
|
|
.align 2
|
|
.L557:
|
|
.word .LANCHOR49
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.size nandc_bch_sel, .-nandc_bch_sel
|
|
.section .text.zftl_nandc_get_irq_status,"ax",%progbits
|
|
.align 1
|
|
.global zftl_nandc_get_irq_status
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_nandc_get_irq_status, %function
|
|
zftl_nandc_get_irq_status:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L562
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
ite eq
|
|
ldreq r0, [r0, #296]
|
|
ldrne r0, [r0, #372]
|
|
bx lr
|
|
.L563:
|
|
.align 2
|
|
.L562:
|
|
.word .LANCHOR27
|
|
.size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status
|
|
.section .text.rk_nandc_flash_ready,"ax",%progbits
|
|
.align 1
|
|
.global rk_nandc_flash_ready
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rk_nandc_flash_ready, %function
|
|
rk_nandc_flash_ready:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size rk_nandc_flash_ready, .-rk_nandc_flash_ready
|
|
.section .text.nandc_iqr_wait_flash_ready,"ax",%progbits
|
|
.align 1
|
|
.global nandc_iqr_wait_flash_ready
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_iqr_wait_flash_ready, %function
|
|
nandc_iqr_wait_flash_ready:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready
|
|
.section .text.rk_nandc_flash_xfer_completed,"ax",%progbits
|
|
.align 1
|
|
.global rk_nandc_flash_xfer_completed
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rk_nandc_flash_xfer_completed, %function
|
|
rk_nandc_flash_xfer_completed:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
|
|
.section .text.nandc_xfer_start,"ax",%progbits
|
|
.align 1
|
|
.global nandc_xfer_start
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_xfer_start, %function
|
|
nandc_xfer_start:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
ldr r0, .L583
|
|
and lr, r5, #1
|
|
ldr r4, .L583+4
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
ldr r7, .L583+8
|
|
cmp r0, #9
|
|
add r0, r1, #1
|
|
bne .L568
|
|
movs r6, #0
|
|
mov ip, #1
|
|
str r6, [sp, #4]
|
|
ubfx r0, r0, #1, #6
|
|
ldr r1, [sp, #4]
|
|
bfi r1, lr, #1, #1
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
orr r1, r1, #8
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
bfi r1, ip, #5, #2
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
orr r1, r1, #536870912
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
orr r1, r1, #1024
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
bfi r1, r6, #4, #1
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
bfi r1, r0, #22, #6
|
|
str r1, [sp, #4]
|
|
ldr r1, [sp, #4]
|
|
orr r1, r1, #128
|
|
str r1, [sp, #4]
|
|
ldr r1, .L583+12
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L569
|
|
ldr r1, .L583+16
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L569
|
|
ldr r1, [sp, #4]
|
|
orr r1, r1, #512
|
|
str r1, [sp, #4]
|
|
.L569:
|
|
ldr r1, [sp, #4]
|
|
bic r0, r2, #63
|
|
str r3, [r4, #8]
|
|
clz r5, r5
|
|
str r3, [r4, #16]
|
|
add r3, r2, #63
|
|
bic r3, r3, #63
|
|
ubfx r1, r1, #22, #6
|
|
add r1, r3, r1, lsl #10
|
|
str r2, [r4, #4]
|
|
str r2, [r4, #12]
|
|
lsrs r5, r5, #5
|
|
bl flush_dcache_range
|
|
ldr r0, [r4, #8]
|
|
add r1, r0, #63
|
|
bic r0, r0, #63
|
|
bic r1, r1, #63
|
|
adds r1, r1, #64
|
|
bl flush_dcache_range
|
|
movs r3, #1
|
|
ldr r2, [r4, #12]
|
|
str r3, [r4, #20]
|
|
movs r1, #16
|
|
ldr r3, [r7]
|
|
str r2, [r3, #52]
|
|
ldr r2, [r4, #16]
|
|
str r2, [r3, #56]
|
|
ldr r2, [r3, #48]
|
|
str r2, [sp, #8]
|
|
ldr r2, [sp, #8]
|
|
bfi r2, r1, #9, #5
|
|
movs 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, .L583+20
|
|
ldrh r1, [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]
|
|
.L567:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L568:
|
|
ldr r6, [r7]
|
|
mov ip, #16
|
|
ubfx r0, r0, #1, #6
|
|
ldr r6, [r6, #12]
|
|
str r6, [sp, #12]
|
|
ldr r6, [sp, #12]
|
|
bfi r6, ip, #8, #8
|
|
str r6, [sp, #12]
|
|
ldr r6, [sp, #12]
|
|
bfc r6, #3, #1
|
|
str r6, [sp, #12]
|
|
ldr r6, [sp, #12]
|
|
bfc r6, #5, #3
|
|
str r6, [sp, #12]
|
|
movs r6, #0
|
|
str r6, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
bfi ip, lr, #1, #1
|
|
mov lr, #1
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
orr ip, ip, #8
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
bfi ip, lr, #5, #2
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
orr ip, ip, #536870912
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
orr ip, ip, #1024
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
bfi ip, r6, #4, #1
|
|
str ip, [sp, #4]
|
|
ldr ip, [sp, #4]
|
|
bfi ip, r0, #22, #6
|
|
str ip, [sp, #4]
|
|
cmp r5, #0
|
|
beq .L571
|
|
ldr r0, .L583+24
|
|
lsrs r1, r1, #1
|
|
ldr r8, [r4]
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
cmp r0, #25
|
|
mov r0, r6
|
|
ite cc
|
|
movcc lr, #64
|
|
movcs lr, #128
|
|
.L573:
|
|
cmp r0, r1
|
|
add fp, r3, r0, lsl #2
|
|
add r10, lr, r6
|
|
blt .L574
|
|
.L575:
|
|
ldr r3, [r4]
|
|
bic r0, r2, #63
|
|
ldr r1, [sp, #4]
|
|
clz r5, r5
|
|
str r2, [r4, #4]
|
|
lsrs r5, r5, #5
|
|
str r3, [r4, #8]
|
|
str r3, [r4, #16]
|
|
add r3, r2, #63
|
|
bic r3, r3, #63
|
|
ubfx r1, r1, #22, #6
|
|
add r1, r3, r1, lsl #10
|
|
str r2, [r4, #12]
|
|
bl flush_dcache_range
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [sp, #4]
|
|
add r3, r0, #63
|
|
bic r0, r0, #63
|
|
bic r3, r3, #63
|
|
ubfx r1, r1, #22, #6
|
|
add r1, r3, r1, lsl #7
|
|
bl flush_dcache_range
|
|
movs r3, #1
|
|
ldr r2, [r4, #12]
|
|
str r3, [r4, #20]
|
|
movs r1, #16
|
|
ldr r3, [r7]
|
|
str r2, [r3, #20]
|
|
ldr r2, [r4, #16]
|
|
str r2, [r3, #24]
|
|
movs r2, #0
|
|
str r2, [sp, #8]
|
|
ldr r2, [sp, #8]
|
|
bfi r2, r1, #9, #5
|
|
movs 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 .L567
|
|
.L574:
|
|
ldrh ip, [r3, r0, lsl #2]
|
|
bic r6, r6, #3
|
|
ldrh fp, [fp, #2]
|
|
adds r0, r0, #1
|
|
orr ip, ip, fp, lsl #16
|
|
str ip, [r8, r6]
|
|
mov r6, r10
|
|
b .L573
|
|
.L571:
|
|
ldr r3, [r4]
|
|
str lr, [r3]
|
|
b .L575
|
|
.L584:
|
|
.align 2
|
|
.L583:
|
|
.word .LANCHOR27
|
|
.word .LANCHOR52
|
|
.word .LANCHOR7
|
|
.word .LANCHOR50
|
|
.word .LANCHOR51
|
|
.word .LANCHOR53
|
|
.word .LANCHOR49
|
|
.size nandc_xfer_start, .-nandc_xfer_start
|
|
.section .text.nandc_set_seed,"ax",%progbits
|
|
.align 1
|
|
.global nandc_set_seed
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_set_seed, %function
|
|
nandc_set_seed:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r2, .L592
|
|
and r0, r0, #127
|
|
ldr r3, .L592+4
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
cbz r2, .L586
|
|
orr r3, r3, #-1073741824
|
|
.L586:
|
|
ldr r2, .L592+8
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #9
|
|
ldr r2, .L592+12
|
|
ldr r2, [r2]
|
|
ite eq
|
|
streq r3, [r2, #520]
|
|
strne r3, [r2, #336]
|
|
bx lr
|
|
.L593:
|
|
.align 2
|
|
.L592:
|
|
.word .LANCHOR51
|
|
.word .LANCHOR54
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.size nandc_set_seed, .-nandc_set_seed
|
|
.section .text.zftl_flash_de_init,"ax",%progbits
|
|
.align 1
|
|
.global zftl_flash_de_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_flash_de_init, %function
|
|
zftl_flash_de_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, .L613
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L595
|
|
ldr r3, .L613+4
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
cbnz r0, .L595
|
|
ldr r3, .L613+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
beq .L595
|
|
bl zftl_flash_exit_slc_mode
|
|
.L595:
|
|
ldr r4, .L613+12
|
|
movs r0, #0
|
|
bl hynix_reconfig_rr_para
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cbz r3, .L596
|
|
ldr r3, .L613+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
lsls r3, r3, #31
|
|
bpl .L596
|
|
movs r0, #1
|
|
bl flash_set_interface_mode
|
|
movs r0, #1
|
|
bl nandc_set_if_mode
|
|
movs r3, #0
|
|
strb r3, [r4]
|
|
.L596:
|
|
ldr r1, .L613+20
|
|
ldrb r3, [r1] @ zero_extendqisi2
|
|
cbz r3, .L597
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
bl nandc_set_seed
|
|
movs r3, #1
|
|
strb r3, [r1]
|
|
.L597:
|
|
movs r0, #0
|
|
pop {r4, pc}
|
|
.L614:
|
|
.align 2
|
|
.L613:
|
|
.word .LANCHOR0
|
|
.word .LANCHOR24
|
|
.word .LANCHOR27
|
|
.word .LANCHOR26
|
|
.word .LANCHOR48
|
|
.word .LANCHOR51
|
|
.size zftl_flash_de_init, .-zftl_flash_de_init
|
|
.section .text.nandc_randomizer_enable,"ax",%progbits
|
|
.align 1
|
|
.global nandc_randomizer_enable
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_randomizer_enable, %function
|
|
nandc_randomizer_enable:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L616
|
|
strb r0, [r3]
|
|
bx lr
|
|
.L617:
|
|
.align 2
|
|
.L616:
|
|
.word .LANCHOR51
|
|
.size nandc_randomizer_enable, .-nandc_randomizer_enable
|
|
.section .text.nandc_get_chip_if,"ax",%progbits
|
|
.align 1
|
|
.global nandc_get_chip_if
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_get_chip_if, %function
|
|
nandc_get_chip_if:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L619
|
|
adds r0, r0, #8
|
|
ldr r3, [r3]
|
|
add r0, r3, r0, lsl #8
|
|
bx lr
|
|
.L620:
|
|
.align 2
|
|
.L619:
|
|
.word .LANCHOR7
|
|
.size nandc_get_chip_if, .-nandc_get_chip_if
|
|
.section .text.buf_reinit,"ax",%progbits
|
|
.align 1
|
|
.global buf_reinit
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type buf_reinit, %function
|
|
buf_reinit:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L624
|
|
movs r2, #0
|
|
push {r4, r5, lr}
|
|
mov r1, r2
|
|
mov r4, r3
|
|
.L622:
|
|
uxtb r0, r2
|
|
adds r2, r2, #1
|
|
cmp r2, #32
|
|
strb r1, [r3, #2]
|
|
add r5, r0, #1
|
|
strb r0, [r3, #1]
|
|
strb r5, [r3]
|
|
add r3, r3, #48
|
|
str r1, [r3, #-40]
|
|
bne .L622
|
|
movs r3, #255
|
|
strb r3, [r4, #1488]
|
|
ldr r3, .L624+4
|
|
strb r1, [r3]
|
|
ldr r3, .L624+8
|
|
strb r2, [r3]
|
|
pop {r4, r5, pc}
|
|
.L625:
|
|
.align 2
|
|
.L624:
|
|
.word .LANCHOR55
|
|
.word .LANCHOR56
|
|
.word .LANCHOR57
|
|
.size buf_reinit, .-buf_reinit
|
|
.section .text.buf_add_tail,"ax",%progbits
|
|
.align 1
|
|
.global buf_add_tail
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type buf_add_tail, %function
|
|
buf_add_tail:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
movs r3, #255
|
|
push {r4, r5, r6, lr}
|
|
strb r3, [r1]
|
|
mov r5, r0
|
|
mov r4, r1
|
|
ldrb r3, [r0] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L627
|
|
ldrb r3, [r1, #1] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L628
|
|
movs r2, #74
|
|
ldr r1, .L633
|
|
ldr r0, .L633+4
|
|
bl printf
|
|
.L628:
|
|
ldrb r3, [r4, #1] @ zero_extendqisi2
|
|
strb r3, [r5]
|
|
pop {r4, r5, r6, pc}
|
|
.L627:
|
|
ldr r2, .L633+8
|
|
movs r1, #48
|
|
mov r6, r2
|
|
.L632:
|
|
mov r5, r3
|
|
muls r3, r1, r3
|
|
ldrb r3, [r2, r3] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L632
|
|
ldrb r3, [r4, #1] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L630
|
|
movs r2, #81
|
|
ldr r1, .L633
|
|
ldr r0, .L633+4
|
|
bl printf
|
|
.L630:
|
|
movs r3, #48
|
|
ldrb r2, [r4, #1] @ zero_extendqisi2
|
|
muls r3, r5, r3
|
|
strb r2, [r6, r3]
|
|
pop {r4, r5, r6, pc}
|
|
.L634:
|
|
.align 2
|
|
.L633:
|
|
.word .LANCHOR58
|
|
.word .LC0
|
|
.word .LANCHOR55
|
|
.size buf_add_tail, .-buf_add_tail
|
|
.section .text.queue_read_cmd,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_read_cmd, %function
|
|
queue_read_cmd:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
mov r4, r0
|
|
ldr r1, [r0, #24]
|
|
movs r0, #48
|
|
bl flash_start_page_read
|
|
movs r3, #1
|
|
mov r1, r4
|
|
strb r3, [r4, #42]
|
|
movs r3, #0
|
|
strb r3, [r4, #43]
|
|
movs r3, #255
|
|
strb r3, [r4]
|
|
ldr r0, .L636
|
|
pop {r4, lr}
|
|
b buf_add_tail
|
|
.L637:
|
|
.align 2
|
|
.L636:
|
|
.word .LANCHOR59
|
|
.size queue_read_cmd, .-queue_read_cmd
|
|
.section .text.zbuf_free,"ax",%progbits
|
|
.align 1
|
|
.global zbuf_free
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zbuf_free, %function
|
|
zbuf_free:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
mov r1, r0
|
|
ldrb r3, [r0, #2] @ zero_extendqisi2
|
|
and r3, r3, #8
|
|
strb r3, [r0, #2]
|
|
cbz r3, .L639
|
|
ldr r3, [r0, #20]
|
|
adds r3, r3, #1
|
|
beq .L639
|
|
ldr r0, .L647
|
|
bl buf_add_tail
|
|
.L640:
|
|
ldr r2, .L647+4
|
|
ldrb r3, [r2] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
strb r3, [r2]
|
|
pop {r3, pc}
|
|
.L639:
|
|
ldr r3, .L647
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
strb r2, [r1]
|
|
ldrb r2, [r1, #1] @ zero_extendqisi2
|
|
strb r2, [r3]
|
|
b .L640
|
|
.L648:
|
|
.align 2
|
|
.L647:
|
|
.word .LANCHOR56
|
|
.word .LANCHOR57
|
|
.size zbuf_free, .-zbuf_free
|
|
.section .text.buf_alloc,"ax",%progbits
|
|
.align 1
|
|
.global buf_alloc
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type buf_alloc, %function
|
|
buf_alloc:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r0
|
|
ldr r4, .L659
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cbz r3, .L650
|
|
.L653:
|
|
ldr r5, .L659+4
|
|
ldr r2, .L659+8
|
|
ldrb r6, [r5] @ zero_extendqisi2
|
|
add r0, r6, r6, lsl #1
|
|
add r0, r2, r0, lsl #4
|
|
cbz r7, .L651
|
|
.L652:
|
|
movs r1, #48
|
|
muls r1, r6, r1
|
|
ldrb r6, [r2, r1] @ zero_extendqisi2
|
|
adds r3, r2, r1
|
|
strb r6, [r5]
|
|
ldrb r5, [r4] @ zero_extendqisi2
|
|
subs r5, r5, #1
|
|
strb r5, [r4]
|
|
movs r4, #1
|
|
strb r4, [r3, #2]
|
|
movs r4, #255
|
|
strb r4, [r2, r1]
|
|
mov r2, #-1
|
|
str r2, [r3, #20]
|
|
movs r2, #0
|
|
strh r2, [r3, #34] @ movhi
|
|
str r2, [r3, #8]
|
|
strb r2, [r3, #40]
|
|
strb r2, [r3, #41]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L650:
|
|
movs r2, #121
|
|
ldr r1, .L659+12
|
|
ldr r0, .L659+16
|
|
bl printf
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L653
|
|
.L655:
|
|
movs r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L651:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bne .L652
|
|
b .L655
|
|
.L660:
|
|
.align 2
|
|
.L659:
|
|
.word .LANCHOR57
|
|
.word .LANCHOR56
|
|
.word .LANCHOR55
|
|
.word .LANCHOR60
|
|
.word .LC0
|
|
.size buf_alloc, .-buf_alloc
|
|
.section .text.buf_remove_buf,"ax",%progbits
|
|
.align 1
|
|
.global buf_remove_buf
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type buf_remove_buf, %function
|
|
buf_remove_buf:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, lr}
|
|
ldrb r4, [r1, #1] @ zero_extendqisi2
|
|
ldrb r3, [r0] @ zero_extendqisi2
|
|
cmp r4, r3
|
|
bne .L662
|
|
ldrb r3, [r1] @ zero_extendqisi2
|
|
strb r3, [r0]
|
|
.L667:
|
|
movs r0, #1
|
|
pop {r4, r5, pc}
|
|
.L665:
|
|
mov r5, r3
|
|
muls r3, r2, r3
|
|
ldrb r3, [r0, r3] @ zero_extendqisi2
|
|
cmp r4, r3
|
|
bne .L664
|
|
muls r2, r5, r2
|
|
ldrb r3, [r1] @ zero_extendqisi2
|
|
strb r3, [r0, r2]
|
|
movs r3, #255
|
|
strb r3, [r1]
|
|
b .L667
|
|
.L662:
|
|
ldr r0, .L668
|
|
movs r2, #48
|
|
.L664:
|
|
cmp r3, #255
|
|
bne .L665
|
|
movs r0, #0
|
|
pop {r4, r5, pc}
|
|
.L669:
|
|
.align 2
|
|
.L668:
|
|
.word .LANCHOR55
|
|
.size buf_remove_buf, .-buf_remove_buf
|
|
.section .text.buf_remove_free,"ax",%progbits
|
|
.align 1
|
|
.global buf_remove_free
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type buf_remove_free, %function
|
|
buf_remove_free:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r4, .L675
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cbnz r3, .L671
|
|
movs r2, #172
|
|
ldr r1, .L675+4
|
|
ldr r0, .L675+8
|
|
bl printf
|
|
.L671:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cbz r3, .L670
|
|
mov r1, r5
|
|
ldr r0, .L675+12
|
|
bl buf_remove_buf
|
|
cmp r0, #1
|
|
bne .L670
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
strb r3, [r4]
|
|
ldrb r3, [r5, #2] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
strb r3, [r5, #2]
|
|
.L670:
|
|
pop {r3, r4, r5, pc}
|
|
.L676:
|
|
.align 2
|
|
.L675:
|
|
.word .LANCHOR57
|
|
.word .LANCHOR61
|
|
.word .LC0
|
|
.word .LANCHOR56
|
|
.size buf_remove_free, .-buf_remove_free
|
|
.section .text.dump_buf_info,"ax",%progbits
|
|
.align 1
|
|
.global dump_buf_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type dump_buf_info, %function
|
|
dump_buf_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L680
|
|
push {r4, r5, r6, lr}
|
|
sub sp, sp, #24
|
|
ldr r0, .L680+4
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, .L680+8
|
|
ldr r0, .L680+12
|
|
ldr r4, .L680+16
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, .L680+20
|
|
add r5, r4, #1536
|
|
ldr r0, .L680+24
|
|
ldr r6, .L680+28
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, .L680+32
|
|
ldr r0, .L680+36
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, .L680+40
|
|
ldr r0, .L680+44
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, .L680+48
|
|
ldr r0, .L680+52
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
.L678:
|
|
ldr r0, [r4, #24]
|
|
adds r4, r4, #48
|
|
ldrb r3, [r4, #-46] @ zero_extendqisi2
|
|
ldrb r2, [r4, #-48] @ zero_extendqisi2
|
|
str r0, [sp, #16]
|
|
ldr r0, [r4, #-28]
|
|
ldrb r1, [r4, #-47] @ zero_extendqisi2
|
|
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 printf
|
|
cmp r4, r5
|
|
bne .L678
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, pc}
|
|
.L681:
|
|
.align 2
|
|
.L680:
|
|
.word .LANCHOR59
|
|
.word .LC41
|
|
.word .LANCHOR62
|
|
.word .LC42
|
|
.word .LANCHOR55
|
|
.word .LANCHOR63
|
|
.word .LC43
|
|
.word .LC47
|
|
.word .LANCHOR64
|
|
.word .LC44
|
|
.word .LANCHOR56
|
|
.word .LC45
|
|
.word .LANCHOR57
|
|
.word .LC46
|
|
.size dump_buf_info, .-dump_buf_info
|
|
.section .text.flash_check_bad_block,"ax",%progbits
|
|
.align 1
|
|
.global flash_check_bad_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_check_bad_block, %function
|
|
flash_check_bad_block:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r2, .L683
|
|
push {r4, lr}
|
|
lsrs r4, r1, #5
|
|
and r1, r1, #31
|
|
ldrb r3, [r2, #13] @ zero_extendqisi2
|
|
ldrh r2, [r2, #14]
|
|
smulbb r3, r3, r2
|
|
ldr r2, .L683+4
|
|
uxth r3, r3
|
|
ldr r2, [r2]
|
|
adds r3, r3, #31
|
|
asrs r3, r3, #5
|
|
add r2, r2, r4, lsl #2
|
|
lsls r3, r3, #2
|
|
uxth r3, r3
|
|
mla r0, r0, r3, r2
|
|
ldr r0, [r0, #912]
|
|
lsrs r0, r0, r1
|
|
and r0, r0, #1
|
|
pop {r4, pc}
|
|
.L684:
|
|
.align 2
|
|
.L683:
|
|
.word .LANCHOR32
|
|
.word .LANCHOR6
|
|
.size flash_check_bad_block, .-flash_check_bad_block
|
|
.section .text.flash_mask_bad_block,"ax",%progbits
|
|
.align 1
|
|
.global flash_mask_bad_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_mask_bad_block, %function
|
|
flash_mask_bad_block:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L686
|
|
mov r2, r1
|
|
push {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
mov r6, r1
|
|
mov r1, r0
|
|
ldrb r4, [r3, #13] @ zero_extendqisi2
|
|
ldrh r3, [r3, #14]
|
|
ldr r0, .L686+4
|
|
smulbb r4, r4, r3
|
|
bl printf
|
|
uxth r4, r4
|
|
ldr r3, .L686+8
|
|
add r0, r4, #31
|
|
asrs r0, r0, #5
|
|
ldr r2, [r3]
|
|
movs r3, #1
|
|
lsls r0, r0, #2
|
|
uxth r0, r0
|
|
muls r0, r5, r0
|
|
lsrs r5, r6, #5
|
|
and r6, r6, #31
|
|
lsl r6, r3, r6
|
|
add r0, r0, #912
|
|
add r0, r0, r5, lsl #2
|
|
ldr r3, [r2, r0]
|
|
orrs r3, r3, r6
|
|
str r3, [r2, r0]
|
|
pop {r4, r5, r6, pc}
|
|
.L687:
|
|
.align 2
|
|
.L686:
|
|
.word .LANCHOR32
|
|
.word .LC48
|
|
.word .LANCHOR6
|
|
.size flash_mask_bad_block, .-flash_mask_bad_block
|
|
.section .text.ftl_gc_write_buf,"ax",%progbits
|
|
.align 1
|
|
.global ftl_gc_write_buf
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_gc_write_buf, %function
|
|
ftl_gc_write_buf:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
mov r1, r0
|
|
ldrb r3, [r0, #2] @ zero_extendqisi2
|
|
orr r3, r3, #2
|
|
strb r3, [r0, #2]
|
|
ldr r0, .L689
|
|
bl buf_add_tail
|
|
ldr r3, .L689+4
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
adds r0, r0, #1
|
|
uxtb r0, r0
|
|
strb r0, [r3]
|
|
pop {r3, pc}
|
|
.L690:
|
|
.align 2
|
|
.L689:
|
|
.word .LANCHOR65
|
|
.word .LANCHOR66
|
|
.size ftl_gc_write_buf, .-ftl_gc_write_buf
|
|
.section .text.zftl_cache_flush,"ax",%progbits
|
|
.align 1
|
|
.global zftl_cache_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_cache_flush, %function
|
|
zftl_cache_flush:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size zftl_cache_flush, .-zftl_cache_flush
|
|
.section .text.zftl_get_density,"ax",%progbits
|
|
.align 1
|
|
.global zftl_get_density
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_get_density, %function
|
|
zftl_get_density:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
cbnz r0, .L693
|
|
ldr r3, .L696
|
|
ldr r0, [r3]
|
|
bx lr
|
|
.L693:
|
|
cmp r0, #4
|
|
ite cc
|
|
movcc r0, #8192
|
|
movcs r0, #0
|
|
bx lr
|
|
.L697:
|
|
.align 2
|
|
.L696:
|
|
.word .LANCHOR67
|
|
.size zftl_get_density, .-zftl_get_density
|
|
.section .text.gc_hook,"ax",%progbits
|
|
.align 1
|
|
.global gc_hook
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_hook, %function
|
|
gc_hook:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size gc_hook, .-gc_hook
|
|
.section .text.vpn_check,"ax",%progbits
|
|
.align 1
|
|
.global vpn_check
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type vpn_check, %function
|
|
vpn_check:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size vpn_check, .-vpn_check
|
|
.section .text.ftl_scan_all_data,"ax",%progbits
|
|
.align 1
|
|
.global ftl_scan_all_data
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_scan_all_data, %function
|
|
ftl_scan_all_data:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size ftl_scan_all_data, .-ftl_scan_all_data
|
|
.section .text.FtlGetCurEraseBlock,"ax",%progbits
|
|
.align 1
|
|
.global FtlGetCurEraseBlock
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FtlGetCurEraseBlock, %function
|
|
FtlGetCurEraseBlock:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L702
|
|
ldrh r0, [r3]
|
|
bx lr
|
|
.L703:
|
|
.align 2
|
|
.L702:
|
|
.word .LANCHOR68
|
|
.size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock
|
|
.section .text.FtlGetAllBlockNum,"ax",%progbits
|
|
.align 1
|
|
.global FtlGetAllBlockNum
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FtlGetAllBlockNum, %function
|
|
FtlGetAllBlockNum:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L705
|
|
ldrh r0, [r3]
|
|
bx lr
|
|
.L706:
|
|
.align 2
|
|
.L705:
|
|
.word .LANCHOR8
|
|
.size FtlGetAllBlockNum, .-FtlGetAllBlockNum
|
|
.section .text.FtlLowFormat,"ax",%progbits
|
|
.align 1
|
|
.global FtlLowFormat
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FtlLowFormat, %function
|
|
FtlLowFormat:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movs r0, #0
|
|
bx lr
|
|
.size FtlLowFormat, .-FtlLowFormat
|
|
.section .text.gc_add_sblk,"ax",%progbits
|
|
.align 1
|
|
.global gc_add_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_add_sblk, %function
|
|
gc_add_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r2
|
|
ldr r3, .L743
|
|
mov r5, r0
|
|
mov r4, r1
|
|
ldr r2, [r3]
|
|
mov r10, r3
|
|
tst r2, #256
|
|
beq .L709
|
|
ldr r3, .L743+4
|
|
mov r2, r1
|
|
mov r1, r0
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L743+8
|
|
ldrh r3, [r3, #52]
|
|
str r3, [sp, #8]
|
|
ldr r3, .L743+12
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
str r3, [sp, #4]
|
|
ldr r3, .L743+16
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldr r0, .L743+20
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
lsrs r3, r3, #5
|
|
str r3, [sp]
|
|
mov r3, r8
|
|
bl printf
|
|
.L709:
|
|
ldr r6, .L743+24
|
|
ldrh r2, [r6]
|
|
cmp r2, r5
|
|
bhi .L710
|
|
movw r2, #543
|
|
ldr r1, .L743+28
|
|
ldr r0, .L743+32
|
|
bl printf
|
|
.L710:
|
|
ldrh r3, [r6]
|
|
cmp r3, r5
|
|
bhi .L711
|
|
ldr r0, [r10]
|
|
ands r0, r0, #1024
|
|
beq .L708
|
|
mov r3, r8
|
|
mov r2, r4
|
|
mov r1, r5
|
|
ldr r0, .L743+36
|
|
bl printf
|
|
.L731:
|
|
movs r0, #0
|
|
b .L708
|
|
.L711:
|
|
ldr r2, .L743+16
|
|
ldr r3, .L743+12
|
|
ldr r2, [r2]
|
|
ldr r3, [r3]
|
|
add r2, r2, r5, lsl #2
|
|
ldrh r3, [r3, r5, lsl #1]
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
ands r6, r2, #224
|
|
bne .L713
|
|
cmp r3, #0
|
|
beq .L731
|
|
movw r2, #553
|
|
ldr r1, .L743+28
|
|
ldr r0, .L743+32
|
|
bl printf
|
|
b .L731
|
|
.L713:
|
|
ldr r6, .L743+8
|
|
ldrh r1, [r6]
|
|
cmp r1, r5
|
|
beq .L731
|
|
ldr r7, .L743+40
|
|
ldr r1, [r7]
|
|
ldrh r0, [r1, #48]
|
|
cmp r0, r5
|
|
beq .L731
|
|
ldrh r0, [r1, #16]
|
|
cmp r0, r5
|
|
beq .L731
|
|
ldrh r0, [r1, #80]
|
|
cmp r0, r5
|
|
beq .L731
|
|
ldrh ip, [r6, #52]!
|
|
movs r0, #0
|
|
.L714:
|
|
cmp r0, ip
|
|
bcc .L715
|
|
cmp r4, #0
|
|
bne .L719
|
|
ldr r0, .L743+44
|
|
ldrh r6, [r0]
|
|
mov r0, r4
|
|
cmp r5, r6
|
|
beq .L708
|
|
ldr lr, .L743+56
|
|
.L718:
|
|
ldrh fp, [lr, r0, lsl #1]
|
|
cmp r5, fp
|
|
bne .L717
|
|
ldr r0, [r10]
|
|
ands r0, r0, #256
|
|
beq .L708
|
|
stm sp, {r5, r6}
|
|
lsrs r2, r2, #5
|
|
mov r1, r5
|
|
ldr r0, .L743+48
|
|
bl printf
|
|
b .L731
|
|
.L715:
|
|
ldrh lr, [r6, #2]!
|
|
cmp lr, r5
|
|
beq .L731
|
|
adds r0, r0, #1
|
|
b .L714
|
|
.L717:
|
|
adds r0, r0, #1
|
|
cmp r0, #8
|
|
bne .L718
|
|
add r1, r1, r8, lsl #7
|
|
add r6, r1, #136
|
|
.L720:
|
|
ldr r1, [r10]
|
|
lsls r1, r1, #23
|
|
bpl .L721
|
|
ldr r1, .L743+4
|
|
ldr r0, .L743+52
|
|
ldrh r1, [r1]
|
|
stm sp, {r3, ip}
|
|
lsrs r3, r2, #5
|
|
mov r2, r4
|
|
str r1, [sp, #8]
|
|
mov r1, r5
|
|
bl printf
|
|
.L721:
|
|
mov r3, r6
|
|
add r1, r6, #128
|
|
movw r0, #65535
|
|
.L724:
|
|
mov r2, r3
|
|
adds r3, r3, #2
|
|
ldrh r6, [r2]
|
|
cmp r6, r0
|
|
bne .L722
|
|
strh r5, [r2] @ movhi
|
|
cbz r4, .L723
|
|
ldr r2, [r7]
|
|
ldrh r3, [r2, #124]
|
|
adds r3, r3, #1
|
|
strh r3, [r2, #124] @ movhi
|
|
.L742:
|
|
movs r0, #1
|
|
.L708:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L719:
|
|
add r6, r1, #392
|
|
b .L720
|
|
.L723:
|
|
ldr r3, [r7]
|
|
add r8, r3, r8, lsl #1
|
|
ldrh r3, [r8, #120]
|
|
adds r3, r3, #1
|
|
strh r3, [r8, #120] @ movhi
|
|
b .L742
|
|
.L722:
|
|
cmp r3, r1
|
|
bne .L724
|
|
b .L742
|
|
.L744:
|
|
.align 2
|
|
.L743:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR69
|
|
.word .LANCHOR70
|
|
.word .LANCHOR11
|
|
.word .LANCHOR9
|
|
.word .LC49
|
|
.word .LANCHOR8
|
|
.word .LANCHOR71
|
|
.word .LC0
|
|
.word .LC50
|
|
.word .LANCHOR12
|
|
.word .LANCHOR72
|
|
.word .LC51
|
|
.word .LC52
|
|
.word .LANCHOR73
|
|
.size gc_add_sblk, .-gc_add_sblk
|
|
.section .text.gc_mark_bad_ppa,"ax",%progbits
|
|
.align 1
|
|
.global gc_mark_bad_ppa
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_mark_bad_ppa, %function
|
|
gc_mark_bad_ppa:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r7, r0
|
|
ldr r3, .L749
|
|
movs r6, #1
|
|
ldr r2, .L749+4
|
|
ldrh r3, [r3]
|
|
ldr r8, .L749+16
|
|
lsr r4, r0, r3
|
|
ldrb r0, [r2] @ zero_extendqisi2
|
|
uxth r5, r4
|
|
rsb r0, r0, #24
|
|
subs r0, r0, r3
|
|
ldr r3, .L749+8
|
|
lsl r0, r6, r0
|
|
subs r0, r0, #1
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
ands r0, r0, r4
|
|
bl __aeabi_uidiv
|
|
uxth r10, r0
|
|
mov r3, r7
|
|
mov r2, r5
|
|
ldr r1, [r8, #2188]
|
|
ldr r0, .L749+12
|
|
bl printf
|
|
mov r1, r6
|
|
movs r2, #0
|
|
mov r0, r10
|
|
bl gc_add_sblk
|
|
ldr r3, [r8, #2188]
|
|
movs r1, #0
|
|
.L746:
|
|
uxth r2, r1
|
|
cmp r3, r2
|
|
bhi .L748
|
|
cmp r3, #5
|
|
itttt ls
|
|
addls r2, r3, #1
|
|
addls r3, r3, #1096
|
|
strls r2, [r8, #2188]
|
|
strhls r5, [r8, r3, lsl #1] @ movhi
|
|
b .L747
|
|
.L748:
|
|
add r2, r2, #1096
|
|
adds r1, r1, #1
|
|
ldrh r2, [r8, r2, lsl #1]
|
|
cmp r5, r2
|
|
bne .L746
|
|
.L747:
|
|
movs r0, #0
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L750:
|
|
.align 2
|
|
.L749:
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LC53
|
|
.word .LANCHOR70
|
|
.size gc_mark_bad_ppa, .-gc_mark_bad_ppa
|
|
.section .text.gc_get_src_ppa_from_index,"ax",%progbits
|
|
.align 1
|
|
.global gc_get_src_ppa_from_index
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_get_src_ppa_from_index, %function
|
|
gc_get_src_ppa_from_index:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L752
|
|
ldr r3, [r3]
|
|
ldr r0, [r3, r0, lsl #2]
|
|
bx lr
|
|
.L753:
|
|
.align 2
|
|
.L752:
|
|
.word .LANCHOR76
|
|
.size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index
|
|
.section .text.gc_write_completed,"ax",%progbits
|
|
.align 1
|
|
.global gc_write_completed
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_write_completed, %function
|
|
gc_write_completed:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r5, .L781
|
|
.L755:
|
|
ldr r1, .L781+4
|
|
ldrb r8, [r1] @ zero_extendqisi2
|
|
cmp r8, #255
|
|
bne .L768
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L768:
|
|
movs r3, #48
|
|
mul r3, r3, r8
|
|
adds r2, r5, r3
|
|
ldrb r3, [r5, r3] @ zero_extendqisi2
|
|
ldrh r6, [r2, #32]
|
|
strb r3, [r1]
|
|
ldr r1, [r2, #36]
|
|
cbz r1, .L756
|
|
ldr r3, .L781+8
|
|
movs r0, #1
|
|
ldr r2, [r2, #24]
|
|
strh r0, [r3, #2182] @ movhi
|
|
ldr r0, .L781+12
|
|
str r2, [r3, #2184]
|
|
bl printf
|
|
mov r2, #956
|
|
ldr r1, .L781+16
|
|
ldr r0, .L781+20
|
|
bl printf
|
|
.L756:
|
|
ldr r10, .L781+56
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L757
|
|
ldr r3, .L781+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L757
|
|
ldr r3, .L781+28
|
|
ldr r3, [r3]
|
|
ldrb r4, [r3, #89] @ zero_extendqisi2
|
|
ldr r3, .L781+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r4
|
|
bhi .L769
|
|
cmp r4, #2
|
|
it cs
|
|
movcs r4, #2
|
|
.L758:
|
|
add r4, r4, r4, lsl #1
|
|
.L759:
|
|
ldr r3, .L781+36
|
|
movs r2, #48
|
|
mla r2, r2, r8, r5
|
|
ldr r1, [r3]
|
|
mov r7, r6
|
|
mov fp, r3
|
|
ldrb r2, [r2, #1] @ zero_extendqisi2
|
|
ldrb r1, [r1, r6] @ zero_extendqisi2
|
|
cmp r1, r2
|
|
beq .L760
|
|
mov r2, #976
|
|
ldr r1, .L781+16
|
|
ldr r0, .L781+20
|
|
str r3, [sp, #4]
|
|
bl printf
|
|
ldr r3, [sp, #4]
|
|
.L760:
|
|
movs r2, #48
|
|
mla r8, r2, r8, r5
|
|
ldrb r2, [r8, #45] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
beq .L761
|
|
ldrb r2, [r10] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
bne .L761
|
|
ldr r2, .L781+40
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L761
|
|
ldr r2, .L781+24
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L761
|
|
ldr r2, .L781+44
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L761
|
|
ldr r2, .L781+48
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L762
|
|
ldr r2, .L781+52
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L761
|
|
.L762:
|
|
ldr r2, [r3]
|
|
movs r3, #0
|
|
movs r1, #48
|
|
mov r0, r3
|
|
add r6, r6, r2
|
|
.L763:
|
|
uxth r2, r3
|
|
cmp r4, r2
|
|
bls .L755
|
|
ldrb r2, [r6, r3] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
mla r2, r1, r2, r5
|
|
strb r0, [r2, #45]
|
|
b .L763
|
|
.L769:
|
|
movs r4, #1
|
|
b .L758
|
|
.L757:
|
|
ldr r3, .L781+48
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L770
|
|
ldr r3, .L781+52
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
ite eq
|
|
moveq r4, #1
|
|
movne r4, #2
|
|
b .L759
|
|
.L770:
|
|
movs r4, #1
|
|
b .L759
|
|
.L761:
|
|
ldr r3, .L781+8
|
|
mov r10, #255
|
|
strh r6, [r3, #2104] @ movhi
|
|
mov r8, r3
|
|
movs r3, #48
|
|
.L764:
|
|
subs r2, r7, r6
|
|
uxth r2, r2
|
|
cmp r4, r2
|
|
bls .L755
|
|
ldr r2, [fp]
|
|
movs r1, #0
|
|
str r3, [sp, #4]
|
|
ldrb r0, [r2, r7] @ zero_extendqisi2
|
|
strb r10, [r2, r7]
|
|
adds r7, r7, #1
|
|
mla r2, r3, r0, r5
|
|
add r0, r0, r0, lsl #1
|
|
strb r1, [r2, #45]
|
|
add r0, r5, r0, lsl #4
|
|
bl zbuf_free
|
|
ldrb r2, [r8, #7] @ zero_extendqisi2
|
|
ldr r3, [sp, #4]
|
|
subs r2, r2, #1
|
|
strb r2, [r8, #7]
|
|
b .L764
|
|
.L782:
|
|
.align 2
|
|
.L781:
|
|
.word .LANCHOR55
|
|
.word .LANCHOR63
|
|
.word .LANCHOR70
|
|
.word .LC54
|
|
.word .LANCHOR77
|
|
.word .LC0
|
|
.word .LANCHOR35
|
|
.word .LANCHOR12
|
|
.word .LANCHOR79
|
|
.word .LANCHOR82
|
|
.word .LANCHOR83
|
|
.word .LANCHOR36
|
|
.word .LANCHOR80
|
|
.word .LANCHOR81
|
|
.word .LANCHOR78
|
|
.size gc_write_completed, .-gc_write_completed
|
|
.section .text.gc_get_src_blk,"ax",%progbits
|
|
.align 1
|
|
.global gc_get_src_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_get_src_blk, %function
|
|
gc_get_src_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L792
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r2, [r3]
|
|
ldr r3, .L792+4
|
|
ldrh r4, [r2, #124]
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cbz r4, .L784
|
|
add r3, r2, #392
|
|
movs r4, #1
|
|
.L785:
|
|
add r6, r3, #128
|
|
movw r5, #65535
|
|
.L789:
|
|
mov r7, r3
|
|
ldrh r0, [r3], #2
|
|
cmp r0, r5
|
|
beq .L787
|
|
strh r5, [r7] @ movhi
|
|
cbz r4, .L788
|
|
ldrh r3, [r2, #124]
|
|
subs r3, r3, #1
|
|
strh r3, [r2, #124] @ movhi
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L784:
|
|
add r3, r1, #60
|
|
ldrh r3, [r2, r3, lsl #1]
|
|
cbz r3, .L790
|
|
add r3, r2, r1, lsl #7
|
|
adds r3, r3, #136
|
|
b .L785
|
|
.L788:
|
|
add r2, r2, r1, lsl #1
|
|
ldrh r3, [r2, #120]
|
|
subs r3, r3, #1
|
|
strh r3, [r2, #120] @ movhi
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L787:
|
|
cmp r3, r6
|
|
bne .L789
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L790:
|
|
movw r0, #65535
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L793:
|
|
.align 2
|
|
.L792:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR84
|
|
.size gc_get_src_blk, .-gc_get_src_blk
|
|
.section .text.gc_free_temp_buf,"ax",%progbits
|
|
.align 1
|
|
.global gc_free_temp_buf
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_free_temp_buf, %function
|
|
gc_free_temp_buf:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r5, .L808
|
|
ldrb r0, [r5, #7] @ zero_extendqisi2
|
|
cbz r0, .L794
|
|
ldr r3, .L808+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
bhi .L801
|
|
ldr r3, .L808+8
|
|
movs r7, #48
|
|
ldrh r4, [r5, #2104]
|
|
ldr r6, .L808+12
|
|
ldrh r2, [r3]
|
|
ldr r3, .L808+16
|
|
add r1, r4, #24
|
|
ldr r0, .L808+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r2, r3, r2
|
|
cmp r2, r1
|
|
it cs
|
|
movcs r2, r1
|
|
ldr r1, [r6]
|
|
.L796:
|
|
cmp r4, r2
|
|
bcc .L799
|
|
.L801:
|
|
movs r0, #0
|
|
.L794:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L799:
|
|
ldrb r3, [r1, r4] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
beq .L797
|
|
mla ip, r7, r3, r0
|
|
ldrb ip, [ip, #45] @ zero_extendqisi2
|
|
cmp ip, #0
|
|
bne .L797
|
|
add r3, r3, r3, lsl #1
|
|
add r0, r0, r3, lsl #4
|
|
bl zbuf_free
|
|
ldr r3, .L808+24
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L798
|
|
ldr r3, [r6]
|
|
mov r1, r4
|
|
ldr r0, .L808+28
|
|
ldrb r2, [r3, r4] @ zero_extendqisi2
|
|
bl printf
|
|
.L798:
|
|
ldr r3, [r6]
|
|
movs r2, #255
|
|
movs r0, #1
|
|
strb r2, [r3, r4]
|
|
ldrb r3, [r5, #7] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
strb r3, [r5, #7]
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L797:
|
|
adds r4, r4, #1
|
|
b .L796
|
|
.L809:
|
|
.align 2
|
|
.L808:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR57
|
|
.word .LANCHOR85
|
|
.word .LANCHOR82
|
|
.word .LANCHOR79
|
|
.word .LANCHOR55
|
|
.word .LANCHOR19
|
|
.word .LC55
|
|
.size gc_free_temp_buf, .-gc_free_temp_buf
|
|
.section .text.get_ink_scaned_blk,"ax",%progbits
|
|
.align 1
|
|
.global get_ink_scaned_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type get_ink_scaned_blk, %function
|
|
get_ink_scaned_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r2, .L813
|
|
ldrh r3, [r2, #2108]
|
|
cbz r3, .L812
|
|
add r1, r2, r3, lsl #1
|
|
subs r3, r3, #1
|
|
strh r3, [r2, #2108] @ movhi
|
|
ldrh r0, [r1, #2108]
|
|
bx lr
|
|
.L812:
|
|
movw r0, #65535
|
|
bx lr
|
|
.L814:
|
|
.align 2
|
|
.L813:
|
|
.word .LANCHOR70
|
|
.size get_ink_scaned_blk, .-get_ink_scaned_blk
|
|
.section .text.print_gc_debug_info,"ax",%progbits
|
|
.align 1
|
|
.global print_gc_debug_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type print_gc_debug_info, %function
|
|
print_gc_debug_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, lr}
|
|
ldr r4, .L816
|
|
ldr r0, .L816+4
|
|
ldrh r4, [r4]
|
|
ldrh r3, [r0, #2102]
|
|
ldrh r2, [r0, #2]
|
|
ldrh r1, [r0]
|
|
str r4, [sp, #8]
|
|
ldrb r0, [r0, #7] @ zero_extendqisi2
|
|
str r0, [sp, #4]
|
|
ldr r0, .L816+8
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
str r0, [sp]
|
|
ldr r0, .L816+12
|
|
bl printf
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, pc}
|
|
.L817:
|
|
.align 2
|
|
.L816:
|
|
.word .LANCHOR86
|
|
.word .LANCHOR70
|
|
.word .LANCHOR57
|
|
.word .LC56
|
|
.size print_gc_debug_info, .-print_gc_debug_info
|
|
.section .text._list_pop_index_node,"ax",%progbits
|
|
.align 1
|
|
.global _list_pop_index_node
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _list_pop_index_node, %function
|
|
_list_pop_index_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r5, [r0]
|
|
cbz r5, .L824
|
|
ldr r3, .L825
|
|
movw r6, #65535
|
|
movs r7, #6
|
|
ldr r4, [r3]
|
|
.L820:
|
|
cbnz r1, .L821
|
|
.L823:
|
|
subs r4, r5, r4
|
|
asrs r3, r4, #1
|
|
ldr r4, .L825+4
|
|
muls r4, r3, r4
|
|
uxth r1, r4
|
|
bl _list_remove_node
|
|
movw r3, #65535
|
|
uxth r0, r4
|
|
strh r3, [r5] @ movhi
|
|
strh r3, [r5, #2] @ movhi
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L821:
|
|
ldrh r3, [r5]
|
|
cmp r3, r6
|
|
beq .L823
|
|
subs r1, r1, #1
|
|
mla r5, r7, r3, r4
|
|
uxth r1, r1
|
|
b .L820
|
|
.L824:
|
|
movw r0, #65535
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L826:
|
|
.align 2
|
|
.L825:
|
|
.word .LANCHOR4
|
|
.word -1431655765
|
|
.size _list_pop_index_node, .-_list_pop_index_node
|
|
.section .text._list_get_gc_head_node,"ax",%progbits
|
|
.align 1
|
|
.global _list_get_gc_head_node
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type _list_get_gc_head_node, %function
|
|
_list_get_gc_head_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r0, [r0]
|
|
push {r4, lr}
|
|
cbz r0, .L832
|
|
ldr r3, .L834
|
|
movw r2, #65535
|
|
movs r4, #6
|
|
ldr r3, [r3]
|
|
.L829:
|
|
cbz r1, .L830
|
|
ldrh r0, [r0]
|
|
cmp r0, r2
|
|
bne .L831
|
|
pop {r4, pc}
|
|
.L831:
|
|
subs r1, r1, #1
|
|
mla r0, r4, r0, r3
|
|
uxth r1, r1
|
|
b .L829
|
|
.L832:
|
|
movw r0, #65535
|
|
pop {r4, pc}
|
|
.L830:
|
|
subs r0, r0, r3
|
|
asrs r3, r0, #1
|
|
ldr r0, .L834+4
|
|
muls r0, r3, r0
|
|
uxth r0, r0
|
|
pop {r4, pc}
|
|
.L835:
|
|
.align 2
|
|
.L834:
|
|
.word .LANCHOR4
|
|
.word -1431655765
|
|
.size _list_get_gc_head_node, .-_list_get_gc_head_node
|
|
.section .text.gc_search_src_blk,"ax",%progbits
|
|
.align 1
|
|
.global gc_search_src_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_search_src_blk, %function
|
|
gc_search_src_blk:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L947
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #32
|
|
str r0, [sp, #12]
|
|
mov r6, r2
|
|
ldr r0, [r3]
|
|
ldr r3, [sp, #12]
|
|
str r1, [sp, #20]
|
|
adds r3, r3, #60
|
|
ldrh r7, [r0, r3, lsl #1]
|
|
cbz r7, .L837
|
|
mov r0, r7
|
|
.L836:
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L837:
|
|
ldr r3, .L947+4
|
|
ldrh r2, [r3, #52]
|
|
cmp r2, #1
|
|
bhi .L839
|
|
ldr r1, .L947+8
|
|
strh r7, [r1] @ movhi
|
|
ldr r1, .L947+12
|
|
strh r7, [r1] @ movhi
|
|
ldr r1, .L947+16
|
|
strh r7, [r1] @ movhi
|
|
.L839:
|
|
ldr r1, [sp, #12]
|
|
cmp r1, #0
|
|
bne .L840
|
|
ldr r7, .L947+12
|
|
mov r8, r1
|
|
mov r4, r1
|
|
.L841:
|
|
uxth r3, r8
|
|
cmp r6, r3
|
|
blt .L846
|
|
ldrh r10, [r7]
|
|
ldr r0, .L947+20
|
|
mov r1, r10
|
|
bl _list_get_gc_head_node
|
|
add r2, r10, #1
|
|
movw r3, #65535
|
|
uxth r2, r2
|
|
cmp r0, r3
|
|
mov r5, r0
|
|
strh r2, [r7] @ movhi
|
|
beq .L842
|
|
ldr r3, .L947+24
|
|
ldr r10, .L947+48
|
|
ldr r3, [r3]
|
|
tst r3, #256
|
|
beq .L843
|
|
ldr r3, [r10]
|
|
mov r1, r0
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
ldr r0, .L947+28
|
|
bl printf
|
|
.L843:
|
|
ldr r3, [r10]
|
|
ldrh r2, [r3, r5, lsl #1]
|
|
ldr r3, .L947+32
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L842
|
|
movs r2, #0
|
|
mov r0, r5
|
|
mov r1, r2
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
beq .L845
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
cmp r4, r6
|
|
bcc .L845
|
|
.L846:
|
|
ldr r3, [sp, #20]
|
|
lsls r0, r3, #30
|
|
bpl .L848
|
|
ldr r3, .L947+36
|
|
ldrh r3, [r3]
|
|
cmp r3, #32
|
|
bls .L848
|
|
ldr r5, .L947+40
|
|
mov r10, #0
|
|
ldr r7, .L947+16
|
|
.L849:
|
|
uxth r3, r10
|
|
cmp r6, r3
|
|
blt .L853
|
|
ldrh r8, [r7]
|
|
ldr r0, .L947+44
|
|
mov r1, r8
|
|
add r8, r8, #1
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
strh r8, [r7] @ movhi
|
|
cmp r0, r2
|
|
beq .L850
|
|
ldr r2, .L947+48
|
|
ldrh r3, [r5]
|
|
ldr r2, [r2]
|
|
ldrh r2, [r2, r0, lsl #1]
|
|
cmp r2, r3
|
|
bcs .L850
|
|
movs r2, #0
|
|
mov r1, r2
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
beq .L852
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
cmp r4, r6
|
|
bcc .L852
|
|
.L853:
|
|
cmp r4, r6
|
|
ldr r1, .L947+52
|
|
bcs .L855
|
|
ldr r3, .L947+56
|
|
ldrh r1, [r1]
|
|
ldrh r2, [r5]
|
|
ldrh r0, [r3]
|
|
ldr r3, .L947+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r0, r3
|
|
sub r3, r3, r1, lsr #2
|
|
cmp r2, r3
|
|
bge .L848
|
|
add r2, r2, r1, lsr #3
|
|
strh r2, [r5] @ movhi
|
|
.L848:
|
|
ldr r3, [sp, #20]
|
|
lsls r1, r3, #31
|
|
bpl .L856
|
|
uxth r5, r6
|
|
cmp r4, r5
|
|
bcs .L856
|
|
ldr r10, .L947+8
|
|
movs r7, #0
|
|
ldr r8, .L947+68
|
|
.L861:
|
|
ldrh fp, [r10]
|
|
mov r0, r8
|
|
mov r1, fp
|
|
add fp, fp, #1
|
|
bl _list_get_gc_head_node
|
|
movw r3, #65535
|
|
strh fp, [r10] @ movhi
|
|
cmp r0, r3
|
|
beq .L857
|
|
movs r2, #0
|
|
mov r1, r2
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
beq .L858
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
cmp r5, r4
|
|
bhi .L858
|
|
.L859:
|
|
ldr r3, .L947+52
|
|
ldr r2, .L947+32
|
|
ldrh r1, [r3]
|
|
ldrh r3, [r2]
|
|
cmp r3, r1, lsr #1
|
|
bls .L856
|
|
sub r3, r3, r1, lsr #3
|
|
b .L946
|
|
.L842:
|
|
movs r3, #0
|
|
strh r3, [r7] @ movhi
|
|
b .L846
|
|
.L845:
|
|
add r8, r8, #1
|
|
b .L841
|
|
.L850:
|
|
movs r3, #0
|
|
strh r3, [r7] @ movhi
|
|
b .L853
|
|
.L852:
|
|
add r10, r10, #1
|
|
b .L849
|
|
.L855:
|
|
ldrh r3, [r5]
|
|
ldrh r2, [r1]
|
|
cmp r3, r2
|
|
itt hi
|
|
subhi r3, r3, r2, lsr #3
|
|
strhhi r3, [r5] @ movhi
|
|
b .L848
|
|
.L857:
|
|
movs r3, #0
|
|
strh r3, [r10] @ movhi
|
|
.L860:
|
|
cmp r4, r5
|
|
bcs .L859
|
|
ldr r2, .L947+32
|
|
ldr r1, .L947+52
|
|
ldrh r3, [r2]
|
|
ldrh r1, [r1]
|
|
cmp r3, r1
|
|
bcs .L856
|
|
add r3, r3, r1, lsr #3
|
|
.L946:
|
|
strh r3, [r2] @ movhi
|
|
.L856:
|
|
ldr r3, .L947+24
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L892
|
|
str r6, [sp]
|
|
mov r3, r4
|
|
ldr r2, [sp, #20]
|
|
ldr r1, [sp, #12]
|
|
ldr r0, .L947+64
|
|
bl printf
|
|
.L892:
|
|
mov r0, r4
|
|
b .L836
|
|
.L858:
|
|
adds r7, r7, #1
|
|
uxth r3, r7
|
|
cmp r5, r3
|
|
bhi .L861
|
|
b .L860
|
|
.L948:
|
|
.align 2
|
|
.L947:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR70
|
|
.word .LANCHOR87
|
|
.word .LANCHOR88
|
|
.word .LANCHOR89
|
|
.word .LANCHOR90
|
|
.word .LANCHOR19
|
|
.word .LC57
|
|
.word .LANCHOR69
|
|
.word .LANCHOR91
|
|
.word .LANCHOR93
|
|
.word .LANCHOR92
|
|
.word .LANCHOR11
|
|
.word .LANCHOR94
|
|
.word .LANCHOR85
|
|
.word .LANCHOR79
|
|
.word .LC58
|
|
.word .LANCHOR95
|
|
.L840:
|
|
ldr r1, .L949
|
|
cmp r6, #1
|
|
ldr r4, .L949+4
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
ldrh r4, [r4]
|
|
smulbb r1, r1, r4
|
|
uxth r1, r1
|
|
str r1, [sp, #16]
|
|
bne .L862
|
|
cbz r2, .L862
|
|
ldrh r0, [r0, #80]
|
|
movw r1, #65535
|
|
cmp r0, r1
|
|
beq .L895
|
|
ldr r0, [sp, #16]
|
|
ldrh r1, [r3, #2102]
|
|
subs r1, r0, r1
|
|
uxth r1, r1
|
|
str r1, [sp, #16]
|
|
.L895:
|
|
movs r6, #8
|
|
.L862:
|
|
movs r5, #0
|
|
strh r5, [r3, #2180] @ movhi
|
|
ldr r3, .L949+8
|
|
strh r5, [r3] @ movhi
|
|
ldr r3, [sp, #20]
|
|
ands r3, r3, #1
|
|
str r3, [sp, #24]
|
|
beq .L896
|
|
ldr r3, .L949+12
|
|
ldr r1, .L949+16
|
|
ldrh r3, [r3]
|
|
ldrh r1, [r1]
|
|
cmp r3, r1, lsr #2
|
|
bhi .L864
|
|
ldr r1, .L949+20
|
|
ldrh r1, [r1]
|
|
cmp r1, r3
|
|
bcs .L897
|
|
.L864:
|
|
cmp r2, #1
|
|
bls .L866
|
|
.L868:
|
|
movs r4, #0
|
|
.L867:
|
|
ldr r10, .L949+64
|
|
movs r5, #0
|
|
mov r8, #64
|
|
.L871:
|
|
ldrh r3, [r10]
|
|
ldr r0, .L949+24
|
|
mov r1, r3
|
|
str r3, [sp, #28]
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
mov fp, r0
|
|
cmp r0, r2
|
|
beq .L869
|
|
ldr r3, [sp, #28]
|
|
ldr r2, [sp, #12]
|
|
adds r1, r3, #1
|
|
strh r1, [r10] @ movhi
|
|
movs r1, #0
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
beq .L870
|
|
ldr r3, .L949+28
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
ldr r3, [r3]
|
|
cmp r4, r6
|
|
ldrh r3, [r3, fp, lsl #1]
|
|
add r5, r5, r3
|
|
uxth r5, r5
|
|
bcs .L865
|
|
ldr r3, [sp, #16]
|
|
cmp r3, r5
|
|
bcc .L865
|
|
ldr r3, .L949+20
|
|
ldr r2, .L949+12
|
|
ldrh r3, [r3]
|
|
ldrh r2, [r2]
|
|
cmp r3, r2, lsl #1
|
|
ble .L870
|
|
.L865:
|
|
ldr r3, .L949+20
|
|
ldrh r2, [r3]
|
|
ldr r3, .L949+16
|
|
ldrh r3, [r3]
|
|
cmp r2, r3, lsr #2
|
|
bhi .L893
|
|
ldr r3, .L949+12
|
|
ldrh r3, [r3]
|
|
adds r3, r3, #8
|
|
cmp r2, r3
|
|
ble .L863
|
|
.L893:
|
|
ldr r3, [sp, #16]
|
|
cmp r3, r5
|
|
bls .L863
|
|
ldr r10, .L949+56
|
|
mov r8, #64
|
|
.L874:
|
|
ldrh r3, [r10]
|
|
ldr r0, .L949+32
|
|
mov r1, r3
|
|
str r3, [sp, #28]
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
mov fp, r0
|
|
cmp r0, r2
|
|
ldr r3, [sp, #28]
|
|
beq .L872
|
|
adds r3, r3, #1
|
|
ldr r2, [sp, #12]
|
|
movs r1, #0
|
|
strh r3, [r10] @ movhi
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
beq .L873
|
|
ldr r3, .L949+28
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
ldr r3, [r3]
|
|
cmp r4, r6
|
|
ldrh r3, [r3, fp, lsl #1]
|
|
add r5, r5, r3
|
|
uxth r5, r5
|
|
bcs .L863
|
|
ldr r3, [sp, #16]
|
|
cmp r3, r5
|
|
bcs .L873
|
|
.L863:
|
|
ldr r3, [sp, #20]
|
|
lsls r2, r3, #30
|
|
bpl .L875
|
|
ldr r3, .L949+36
|
|
ldrh r3, [r3]
|
|
cmp r3, #32
|
|
bls .L875
|
|
ldr r3, [sp, #16]
|
|
cmp r5, r3
|
|
bcs .L875
|
|
ldr r10, .L949+68
|
|
movs r3, #64
|
|
.L881:
|
|
ldrh fp, [r10]
|
|
ldr r0, .L949+40
|
|
str r3, [sp, #28]
|
|
mov r1, fp
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
mov r8, r0
|
|
cmp r0, r2
|
|
beq .L876
|
|
cmp r6, #1
|
|
add r1, fp, #1
|
|
strh r1, [r10] @ movhi
|
|
ldr r3, [sp, #28]
|
|
bne .L877
|
|
ldr r2, .L949
|
|
ldr r1, .L949+4
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrh r1, [r1]
|
|
smulbb r2, r2, r1
|
|
ldr r1, .L949+44
|
|
ldrh r1, [r1]
|
|
sub r2, r2, r1, lsr #3
|
|
ldr r1, .L949+48
|
|
strh r2, [r1] @ movhi
|
|
.L877:
|
|
ldr fp, .L949+28
|
|
str r3, [sp, #28]
|
|
ldr r2, [fp]
|
|
ldrh r1, [r2, r8, lsl #1]
|
|
ldr r2, .L949+48
|
|
ldrh r2, [r2]
|
|
cmp r1, r2
|
|
bcs .L878
|
|
ldr r2, [sp, #12]
|
|
movs r1, #0
|
|
mov r0, r8
|
|
bl gc_add_sblk
|
|
ldr r3, [sp, #28]
|
|
cmp r0, #0
|
|
beq .L879
|
|
ldr r2, [fp]
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
adds r7, r7, #1
|
|
uxth r7, r7
|
|
ldrh r2, [r2, r8, lsl #1]
|
|
cmp r4, r6
|
|
add r5, r5, r2
|
|
uxth r5, r5
|
|
bcs .L880
|
|
ldr r2, [sp, #16]
|
|
cmp r2, r5
|
|
bcs .L879
|
|
.L880:
|
|
cmp r4, r6
|
|
ldr r0, .L949+44
|
|
ldr r2, .L949+48
|
|
bcc .L882
|
|
cmp r7, #0
|
|
bne .L883
|
|
ldr r3, .L949+36
|
|
ldrh r1, [r3]
|
|
ldr r3, .L949+52
|
|
ldrh r3, [r3]
|
|
cmp r1, r3
|
|
bls .L883
|
|
.L882:
|
|
ldrh r3, [r0]
|
|
ldrh r1, [r2]
|
|
lsrs r0, r3, #3
|
|
ldr r3, .L949+4
|
|
ldrh r7, [r3]
|
|
ldr r3, .L949
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r7, r3
|
|
subs r3, r3, r0
|
|
cmp r1, r3
|
|
bge .L875
|
|
adds r3, r1, r0
|
|
strh r3, [r2] @ movhi
|
|
.L875:
|
|
ldr r3, [sp, #24]
|
|
cmp r3, #0
|
|
beq .L856
|
|
uxth fp, r6
|
|
cmp r4, fp
|
|
bcs .L856
|
|
ldr r3, [sp, #16]
|
|
cmp r5, r3
|
|
bcs .L856
|
|
ldr r3, .L949+56
|
|
mov r8, #64
|
|
.L891:
|
|
ldrh r2, [r3]
|
|
ldr r0, .L949+32
|
|
str r3, [sp, #28]
|
|
mov r1, r2
|
|
str r2, [sp, #24]
|
|
bl _list_get_gc_head_node
|
|
movw r1, #65535
|
|
mov r10, r0
|
|
cmp r0, r1
|
|
ldr r7, .L949+60
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
beq .L885
|
|
adds r2, r2, #1
|
|
strh r2, [r3] @ movhi
|
|
ldr r2, .L949+28
|
|
ldr r2, [r2]
|
|
ldrh r1, [r2, r0, lsl #1]
|
|
ldrh r2, [r7]
|
|
cmp r1, r2
|
|
bcs .L886
|
|
ldr r2, .L949+16
|
|
ldrh r1, [r2]
|
|
ldr r2, .L949+20
|
|
ldrh r2, [r2]
|
|
cmp r2, r1, lsr #1
|
|
bls .L887
|
|
.L886:
|
|
ldr r2, [sp, #12]
|
|
movs r1, #0
|
|
mov r0, r10
|
|
str r3, [sp, #24]
|
|
bl gc_add_sblk
|
|
ldr r3, [sp, #24]
|
|
cmp r0, #0
|
|
beq .L888
|
|
ldr r2, .L949+28
|
|
adds r4, r4, #1
|
|
uxth r4, r4
|
|
ldr r2, [r2]
|
|
cmp fp, r4
|
|
ldrh r2, [r2, r10, lsl #1]
|
|
add r5, r5, r2
|
|
uxth r5, r5
|
|
bls .L889
|
|
ldr r2, [sp, #16]
|
|
cmp r2, r5
|
|
bcs .L888
|
|
.L890:
|
|
ldr r3, .L949+44
|
|
ldrh r2, [r3]
|
|
ldrh r3, [r7]
|
|
cmp r3, r2, lsr #1
|
|
bls .L856
|
|
sub r3, r3, r2, lsr #3
|
|
strh r3, [r7] @ movhi
|
|
b .L856
|
|
.L950:
|
|
.align 2
|
|
.L949:
|
|
.word .LANCHOR79
|
|
.word .LANCHOR85
|
|
.word .LANCHOR96
|
|
.word .LANCHOR97
|
|
.word .LANCHOR98
|
|
.word .LANCHOR99
|
|
.word .LANCHOR95
|
|
.word .LANCHOR11
|
|
.word .LANCHOR90
|
|
.word .LANCHOR91
|
|
.word .LANCHOR92
|
|
.word .LANCHOR94
|
|
.word .LANCHOR100
|
|
.word .LANCHOR101
|
|
.word .LANCHOR88
|
|
.word .LANCHOR102
|
|
.word .LANCHOR87
|
|
.word .LANCHOR89
|
|
.L866:
|
|
ldr r4, .L951
|
|
lsrs r3, r3, #2
|
|
movs r1, #0
|
|
ldr r0, .L951+4
|
|
strh r3, [r4] @ movhi
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
beq .L868
|
|
ldr r2, .L951+8
|
|
ldr r1, [r2]
|
|
ldr r2, .L951+12
|
|
ldrh r3, [r1, r0, lsl #1]
|
|
ldrh r2, [r2]
|
|
cmp r3, r2, lsr #2
|
|
bcs .L868
|
|
movs r3, #1
|
|
ldr r2, [sp, #12]
|
|
movs r1, #0
|
|
strh r3, [r4] @ movhi
|
|
bl gc_add_sblk
|
|
adds r4, r0, #0
|
|
it ne
|
|
movne r4, #1
|
|
b .L867
|
|
.L869:
|
|
movs r3, #0
|
|
strh r3, [r10] @ movhi
|
|
b .L865
|
|
.L870:
|
|
add r8, r8, #-1
|
|
uxth r8, r8
|
|
cmp r8, #0
|
|
bne .L871
|
|
b .L865
|
|
.L872:
|
|
cmp r3, #64
|
|
bls .L863
|
|
movs r3, #0
|
|
strh r3, [r10] @ movhi
|
|
b .L863
|
|
.L873:
|
|
add r8, r8, #-1
|
|
uxth r8, r8
|
|
cmp r8, #0
|
|
bne .L874
|
|
b .L863
|
|
.L896:
|
|
ldr r5, [sp, #24]
|
|
mov r4, r5
|
|
b .L863
|
|
.L878:
|
|
ldr r3, .L951+16
|
|
movs r2, #0
|
|
strh r2, [r3] @ movhi
|
|
b .L880
|
|
.L876:
|
|
movs r3, #0
|
|
strh r3, [r10] @ movhi
|
|
b .L880
|
|
.L879:
|
|
subs r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #0
|
|
bne .L881
|
|
b .L880
|
|
.L883:
|
|
ldr r1, .L951+20
|
|
ldrh r0, [r0]
|
|
ldrh r3, [r2]
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
muls r1, r0, r1
|
|
cmp r3, r1
|
|
ble .L856
|
|
sub r3, r3, r0, lsr #3
|
|
b .L946
|
|
.L885:
|
|
cmp r2, #64
|
|
bls .L887
|
|
movs r2, #0
|
|
strh r2, [r3] @ movhi
|
|
.L887:
|
|
cmp r4, fp
|
|
bcc .L890
|
|
.L889:
|
|
ldr r3, .L951+12
|
|
ldrh r2, [r7]
|
|
ldrh r1, [r3]
|
|
ldr r3, .L951+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r1, r3
|
|
subs r3, r3, #32
|
|
cmp r2, r3
|
|
itt lt
|
|
addlt r2, r2, r1, lsr #3
|
|
strhlt r2, [r7] @ movhi
|
|
b .L856
|
|
.L888:
|
|
add r8, r8, #-1
|
|
uxth r8, r8
|
|
cmp r8, #0
|
|
bne .L891
|
|
b .L887
|
|
.L897:
|
|
mov r4, r5
|
|
b .L865
|
|
.L952:
|
|
.align 2
|
|
.L951:
|
|
.word .LANCHOR87
|
|
.word .LANCHOR95
|
|
.word .LANCHOR11
|
|
.word .LANCHOR94
|
|
.word .LANCHOR89
|
|
.word .LANCHOR79
|
|
.size gc_search_src_blk, .-gc_search_src_blk
|
|
.section .text.zftl_get_gc_node,"ax",%progbits
|
|
.align 1
|
|
.global zftl_get_gc_node
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_get_gc_node, %function
|
|
zftl_get_gc_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
cmp r1, #5
|
|
bne .L954
|
|
mov r1, r0
|
|
ldr r0, .L957
|
|
.L956:
|
|
b _list_get_gc_head_node
|
|
.L954:
|
|
cmp r1, #2
|
|
mov r1, r0
|
|
ite eq
|
|
ldreq r0, .L957+4
|
|
ldrne r0, .L957+8
|
|
b .L956
|
|
.L958:
|
|
.align 2
|
|
.L957:
|
|
.word .LANCHOR92
|
|
.word .LANCHOR95
|
|
.word .LANCHOR90
|
|
.size zftl_get_gc_node, .-zftl_get_gc_node
|
|
.section .text.zftl_insert_free_list,"ax",%progbits
|
|
.align 1
|
|
.global zftl_insert_free_list
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_insert_free_list, %function
|
|
zftl_insert_free_list:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L963
|
|
mov r1, r0
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
ands r3, r3, #24
|
|
bne .L960
|
|
ldr r2, .L963+4
|
|
ldr r0, .L963+8
|
|
.L962:
|
|
b _insert_free_list
|
|
.L960:
|
|
cmp r3, #16
|
|
ittee eq
|
|
ldreq r2, .L963+12
|
|
ldreq r0, .L963+16
|
|
ldrne r2, .L963+20
|
|
ldrne r0, .L963+24
|
|
b .L962
|
|
.L964:
|
|
.align 2
|
|
.L963:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR103
|
|
.word .LANCHOR104
|
|
.word .LANCHOR105
|
|
.word .LANCHOR106
|
|
.word .LANCHOR107
|
|
.word .LANCHOR108
|
|
.size zftl_insert_free_list, .-zftl_insert_free_list
|
|
.section .text.zftl_insert_data_list,"ax",%progbits
|
|
.align 1
|
|
.global zftl_insert_data_list
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_insert_data_list, %function
|
|
zftl_insert_data_list:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L970
|
|
mov r1, r0
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #64
|
|
bne .L966
|
|
ldr r2, .L970+4
|
|
ldr r0, .L970+8
|
|
.L969:
|
|
b _insert_data_list
|
|
.L966:
|
|
cmp r3, #96
|
|
bne .L967
|
|
ldr r2, .L970+12
|
|
ldr r0, .L970+16
|
|
b .L969
|
|
.L967:
|
|
cmp r3, #160
|
|
bne .L965
|
|
ldr r2, .L970+20
|
|
ldr r0, .L970+24
|
|
b .L969
|
|
.L965:
|
|
bx lr
|
|
.L971:
|
|
.align 2
|
|
.L970:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR97
|
|
.word .LANCHOR95
|
|
.word .LANCHOR99
|
|
.word .LANCHOR90
|
|
.word .LANCHOR91
|
|
.word .LANCHOR92
|
|
.size zftl_insert_data_list, .-zftl_insert_data_list
|
|
.section .text.zftl_gc_get_free_sblk,"ax",%progbits
|
|
.align 1
|
|
.global zftl_gc_get_free_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_gc_get_free_sblk, %function
|
|
zftl_gc_get_free_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
|
|
movw r5, #65535
|
|
ldr r8, .L993+48
|
|
mov r4, r0
|
|
mov r6, r1
|
|
ldr r3, [r8]
|
|
ldrh r7, [r3, #588]
|
|
cmp r7, r5
|
|
beq .L973
|
|
cbnz r0, .L973
|
|
mov r1, r7
|
|
ldr r0, .L993
|
|
bl printf
|
|
ldr r3, [r8]
|
|
strh r5, [r3, #588] @ movhi
|
|
.L974:
|
|
mov r0, r7
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L973:
|
|
ldr r3, .L993+4
|
|
ldr r5, .L993+8
|
|
ldrh r1, [r3]
|
|
ldrh r3, [r5]
|
|
cmp r1, r3
|
|
bcc .L975
|
|
ldr r2, .L993+12
|
|
ldrh r2, [r2]
|
|
cmp r2, r1
|
|
bls .L976
|
|
cmp r3, #0
|
|
beq .L976
|
|
.L975:
|
|
cmp r4, #0
|
|
bne .L977
|
|
lsrs r1, r3, #2
|
|
.L978:
|
|
ldr r2, .L993+8
|
|
ldr r0, .L993+16
|
|
.L992:
|
|
bl _list_pop_index_node
|
|
uxth r7, r0
|
|
movw r3, #65535
|
|
cmp r7, r3
|
|
bne .L981
|
|
ldrh r3, [r5]
|
|
mov r2, r6
|
|
mov r1, r7
|
|
ldr r0, .L993+20
|
|
str r3, [sp, #4]
|
|
ldr r3, .L993+12
|
|
ldrh r3, [r3]
|
|
str r3, [sp]
|
|
ldr r3, .L993+24
|
|
ldr r3, [r3]
|
|
bl printf
|
|
.L981:
|
|
cmp r4, #0
|
|
beq .L974
|
|
ldr r3, .L993+28
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L974
|
|
ldr r3, .L993+32
|
|
ldr r1, .L993+36
|
|
ldr r0, .L993+40
|
|
ldr r3, [r3]
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1, r7, lsl #1]
|
|
add r2, r3, r7, lsl #2
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrh r1, [r3, r7, lsl #2]
|
|
ubfx r1, r1, #0, #11
|
|
str r1, [sp, #4]
|
|
mov r1, r7
|
|
ldr r3, [r3, r7, lsl #2]
|
|
ubfx r3, r3, #11, #8
|
|
str r3, [sp]
|
|
ubfx r3, r2, #3, #2
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
b .L974
|
|
.L977:
|
|
rsb r1, r1, r1, lsl #3
|
|
ubfx r1, r1, #3, #16
|
|
b .L978
|
|
.L976:
|
|
cbz r4, .L982
|
|
lsrs r1, r1, #3
|
|
.L980:
|
|
ldr r2, .L993+4
|
|
ldr r0, .L993+44
|
|
b .L992
|
|
.L982:
|
|
mov r1, r4
|
|
b .L980
|
|
.L994:
|
|
.align 2
|
|
.L993:
|
|
.word .LC59
|
|
.word .LANCHOR105
|
|
.word .LANCHOR107
|
|
.word .LANCHOR103
|
|
.word .LANCHOR108
|
|
.word .LC60
|
|
.word .LANCHOR104
|
|
.word .LANCHOR19
|
|
.word .LANCHOR9
|
|
.word .LANCHOR11
|
|
.word .LC61
|
|
.word .LANCHOR106
|
|
.word .LANCHOR12
|
|
.size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk
|
|
.section .text.zftl_get_free_sblk,"ax",%progbits
|
|
.align 1
|
|
.global zftl_get_free_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_get_free_sblk, %function
|
|
zftl_get_free_sblk:
|
|
@ 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}
|
|
mov r5, r0
|
|
mov r6, r1
|
|
bne .L996
|
|
ldr r3, .L1017
|
|
ldr r2, .L1017+4
|
|
ldrh r3, [r3]
|
|
ldrh r1, [r2]
|
|
cmp r3, r1
|
|
bcc .L997
|
|
ldr r2, .L1017+8
|
|
ldrh r2, [r2]
|
|
cmp r2, r3
|
|
bls .L998
|
|
cbz r1, .L998
|
|
.L997:
|
|
ldr r2, .L1017+4
|
|
lsrs r1, r1, #1
|
|
.L1016:
|
|
ldr r0, .L1017+12
|
|
b .L1015
|
|
.L998:
|
|
ldr r2, .L1017
|
|
movs r1, #0
|
|
ldr r0, .L1017+16
|
|
.L1015:
|
|
bl _list_pop_index_node
|
|
uxth r4, r0
|
|
movw r3, #65535
|
|
cmp r4, r3
|
|
bne .L1001
|
|
ldr r3, .L1017+4
|
|
mov r2, r6
|
|
mov r1, r4
|
|
ldr r0, .L1017+20
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r3, .L1017+8
|
|
ldrh r3, [r3]
|
|
str r3, [sp]
|
|
ldr r3, .L1017+24
|
|
ldr r3, [r3]
|
|
bl printf
|
|
b .L1001
|
|
.L996:
|
|
ldr r8, .L1017+32
|
|
movw r7, #65535
|
|
ldr r3, [r8]
|
|
ldrh r4, [r3, #590]
|
|
cmp r4, r7
|
|
beq .L1000
|
|
cmp r1, #1
|
|
beq .L1000
|
|
mov r1, r4
|
|
ldr r0, .L1017+28
|
|
bl printf
|
|
ldr r3, [r8]
|
|
strh r7, [r3, #590] @ movhi
|
|
.L1001:
|
|
mov r0, r4
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L1000:
|
|
ldr r3, .L1017+8
|
|
ldr r7, .L1017+4
|
|
ldrh r2, [r3]
|
|
ldrh r1, [r7]
|
|
cmp r2, r1
|
|
bcc .L1002
|
|
ldr r3, .L1017
|
|
ldrh r3, [r3]
|
|
cmp r3, r2
|
|
bls .L1003
|
|
cbz r1, .L1003
|
|
.L1002:
|
|
bl get_ink_scaned_blk
|
|
movw r3, #65535
|
|
mov r4, r0
|
|
cmp r0, r3
|
|
bne .L1001
|
|
cmp r6, #1
|
|
ldr r2, .L1017+4
|
|
itt eq
|
|
ldrheq r5, [r7]
|
|
lsreq r5, r5, #1
|
|
mov r1, r5
|
|
b .L1016
|
|
.L1003:
|
|
cmp r6, #1
|
|
ldr r0, .L1017+24
|
|
it eq
|
|
lsreq r5, r2, #1
|
|
ldr r2, .L1017+8
|
|
mov r1, r5
|
|
b .L1015
|
|
.L1018:
|
|
.align 2
|
|
.L1017:
|
|
.word .LANCHOR105
|
|
.word .LANCHOR107
|
|
.word .LANCHOR103
|
|
.word .LANCHOR108
|
|
.word .LANCHOR106
|
|
.word .LC60
|
|
.word .LANCHOR104
|
|
.word .LC62
|
|
.word .LANCHOR12
|
|
.size zftl_get_free_sblk, .-zftl_get_free_sblk
|
|
.section .text.zftl_remove_data_node,"ax",%progbits
|
|
.align 1
|
|
.global zftl_remove_data_node
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_remove_data_node, %function
|
|
zftl_remove_data_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1024
|
|
mov r1, r0
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #64
|
|
bne .L1020
|
|
ldr r2, .L1024+4
|
|
ldr r0, .L1024+8
|
|
.L1023:
|
|
b _list_remove_node
|
|
.L1020:
|
|
cmp r3, #96
|
|
bne .L1021
|
|
ldr r2, .L1024+12
|
|
ldr r0, .L1024+16
|
|
b .L1023
|
|
.L1021:
|
|
cmp r3, #160
|
|
bne .L1019
|
|
ldr r2, .L1024+20
|
|
ldr r0, .L1024+24
|
|
b .L1023
|
|
.L1019:
|
|
bx lr
|
|
.L1025:
|
|
.align 2
|
|
.L1024:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR97
|
|
.word .LANCHOR95
|
|
.word .LANCHOR99
|
|
.word .LANCHOR90
|
|
.word .LANCHOR91
|
|
.word .LANCHOR92
|
|
.size zftl_remove_data_node, .-zftl_remove_data_node
|
|
.section .text.zftl_remove_free_node,"ax",%progbits
|
|
.align 1
|
|
.global zftl_remove_free_node
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_remove_free_node, %function
|
|
zftl_remove_free_node:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1030
|
|
mov r1, r0
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
ands r3, r3, #24
|
|
bne .L1027
|
|
ldr r2, .L1030+4
|
|
ldr r0, .L1030+8
|
|
.L1029:
|
|
b _list_remove_node
|
|
.L1027:
|
|
cmp r3, #16
|
|
ittee eq
|
|
ldreq r2, .L1030+12
|
|
ldreq r0, .L1030+16
|
|
ldrne r2, .L1030+20
|
|
ldrne r0, .L1030+24
|
|
b .L1029
|
|
.L1031:
|
|
.align 2
|
|
.L1030:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR103
|
|
.word .LANCHOR104
|
|
.word .LANCHOR105
|
|
.word .LANCHOR106
|
|
.word .LANCHOR107
|
|
.word .LANCHOR108
|
|
.size zftl_remove_free_node, .-zftl_remove_free_node
|
|
.section .text.zftl_list_update_data_list,"ax",%progbits
|
|
.align 1
|
|
.global zftl_list_update_data_list
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_list_update_data_list, %function
|
|
zftl_list_update_data_list:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1037
|
|
mov r1, r0
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #64
|
|
bne .L1033
|
|
ldr r2, .L1037+4
|
|
ldr r0, .L1037+8
|
|
.L1036:
|
|
b _list_update_data_list
|
|
.L1033:
|
|
cmp r3, #96
|
|
bne .L1034
|
|
ldr r2, .L1037+12
|
|
ldr r0, .L1037+16
|
|
b .L1036
|
|
.L1034:
|
|
cmp r3, #160
|
|
bne .L1032
|
|
ldr r2, .L1037+20
|
|
ldr r0, .L1037+24
|
|
b .L1036
|
|
.L1032:
|
|
bx lr
|
|
.L1038:
|
|
.align 2
|
|
.L1037:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR97
|
|
.word .LANCHOR95
|
|
.word .LANCHOR99
|
|
.word .LANCHOR90
|
|
.word .LANCHOR91
|
|
.word .LANCHOR92
|
|
.size zftl_list_update_data_list, .-zftl_list_update_data_list
|
|
.section .text.print_list_info,"ax",%progbits
|
|
.align 1
|
|
.global print_list_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type print_list_info, %function
|
|
print_list_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
ldrh r2, [r1]
|
|
sub sp, sp, #36
|
|
ldr r1, [r0]
|
|
ldr r0, .L1043
|
|
bl printf
|
|
ldr r4, [r4]
|
|
cmp r4, #0
|
|
beq .L1039
|
|
ldr r6, .L1043+4
|
|
movs r5, #0
|
|
ldr r7, .L1043+8
|
|
.L1042:
|
|
ldr r2, [r6]
|
|
ldr r0, .L1043+12
|
|
ldr r3, .L1043+16
|
|
subs r2, r4, r2
|
|
asrs r2, r2, #1
|
|
ldr r0, [r0]
|
|
ldr r1, [r3]
|
|
muls r2, r7, r2
|
|
ldrh r3, [r4]
|
|
uxth r2, r2
|
|
ldrh r0, [r0, r2, lsl #1]
|
|
add ip, r1, r2, lsl #2
|
|
str r0, [sp, #24]
|
|
ldrh r0, [r1, r2, lsl #2]
|
|
ubfx r0, r0, #0, #11
|
|
str r0, [sp, #20]
|
|
ldr r1, [r1, r2, lsl #2]
|
|
ldr r0, .L1043+20
|
|
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
|
|
lsrs 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 printf
|
|
ldrh r4, [r4]
|
|
movw r3, #65535
|
|
cmp r4, r3
|
|
beq .L1039
|
|
ldr r3, [r6]
|
|
movs r2, #6
|
|
adds r5, r5, #1
|
|
uxth r5, r5
|
|
mla r4, r2, r4, r3
|
|
ldr r3, .L1043+24
|
|
ldrh r3, [r3]
|
|
cmp r3, r5
|
|
bcs .L1042
|
|
.L1039:
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L1044:
|
|
.align 2
|
|
.L1043:
|
|
.word .LC63
|
|
.word .LANCHOR4
|
|
.word -1431655765
|
|
.word .LANCHOR11
|
|
.word .LANCHOR9
|
|
.word .LC64
|
|
.word .LANCHOR109
|
|
.size print_list_info, .-print_list_info
|
|
.section .text.dump_all_list_info,"ax",%progbits
|
|
.align 1
|
|
.global dump_all_list_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type dump_all_list_info, %function
|
|
dump_all_list_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
ldr r1, .L1046
|
|
ldr r0, .L1046+4
|
|
bl print_list_info
|
|
ldr r1, .L1046+8
|
|
ldr r0, .L1046+12
|
|
bl print_list_info
|
|
ldr r1, .L1046+16
|
|
ldr r0, .L1046+20
|
|
bl print_list_info
|
|
ldr r1, .L1046+24
|
|
ldr r0, .L1046+28
|
|
bl print_list_info
|
|
ldr r1, .L1046+32
|
|
ldr r0, .L1046+36
|
|
bl print_list_info
|
|
ldr r1, .L1046+40
|
|
ldr r0, .L1046+44
|
|
pop {r3, lr}
|
|
b print_list_info
|
|
.L1047:
|
|
.align 2
|
|
.L1046:
|
|
.word .LANCHOR103
|
|
.word .LANCHOR104
|
|
.word .LANCHOR105
|
|
.word .LANCHOR106
|
|
.word .LANCHOR107
|
|
.word .LANCHOR108
|
|
.word .LANCHOR97
|
|
.word .LANCHOR95
|
|
.word .LANCHOR99
|
|
.word .LANCHOR90
|
|
.word .LANCHOR91
|
|
.word .LANCHOR92
|
|
.size dump_all_list_info, .-dump_all_list_info
|
|
.section .text.ftl_tmp_into_update,"ax",%progbits
|
|
.align 1
|
|
.global ftl_tmp_into_update
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_tmp_into_update, %function
|
|
ftl_tmp_into_update:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1053
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #16]
|
|
cmp r2, #2048
|
|
bls .L1049
|
|
ldr r1, [r3, #20]
|
|
add r1, r1, r2, lsr #11
|
|
ubfx r2, r2, #0, #11
|
|
str r2, [r3, #16]
|
|
str r1, [r3, #20]
|
|
.L1049:
|
|
ldr r2, [r3, #24]
|
|
cmp r2, #2048
|
|
bls .L1050
|
|
ldr r1, [r3, #28]
|
|
add r1, r1, r2, lsr #11
|
|
ubfx r2, r2, #0, #11
|
|
str r2, [r3, #24]
|
|
str r1, [r3, #28]
|
|
.L1050:
|
|
ldr r2, [r3, #32]
|
|
cmp r2, #1024
|
|
bls .L1051
|
|
ldr r1, [r3, #36]
|
|
add r1, r1, r2, lsr #10
|
|
ubfx r2, r2, #0, #10
|
|
str r2, [r3, #32]
|
|
str r1, [r3, #36]
|
|
.L1051:
|
|
ldr r2, [r3, #40]
|
|
cmp r2, #1024
|
|
bls .L1048
|
|
ldr r1, [r3, #44]
|
|
add r1, r1, r2, lsr #10
|
|
ubfx r2, r2, #0, #10
|
|
str r2, [r3, #40]
|
|
str r1, [r3, #44]
|
|
.L1048:
|
|
bx lr
|
|
.L1054:
|
|
.align 2
|
|
.L1053:
|
|
.word .LANCHOR110
|
|
.size ftl_tmp_into_update, .-ftl_tmp_into_update
|
|
.global __aeabi_idiv
|
|
.section .text.ftl_get_blk_list_in_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_get_blk_list_in_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_get_blk_list_in_sblk, %function
|
|
ftl_get_blk_list_in_sblk:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r4, #0
|
|
ldr r3, .L1064
|
|
mov r8, r1
|
|
mov r5, r4
|
|
ldr r2, .L1064+4
|
|
ldr r3, [r3]
|
|
ldrb r10, [r2] @ zero_extendqisi2
|
|
ldr r2, .L1064+8
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #3] @ zero_extendqisi2
|
|
uxth r7, r10
|
|
ldrb fp, [r2] @ zero_extendqisi2
|
|
smulbb r0, r0, r7
|
|
ldr r2, .L1064+12
|
|
str r3, [sp, #4]
|
|
subs r7, r7, #1
|
|
ldr r3, .L1064+16
|
|
sxth r7, r7
|
|
uxth r6, r0
|
|
rsb fp, fp, #24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
.L1056:
|
|
cmp r5, r3
|
|
blt .L1060
|
|
mov r2, r4
|
|
movw r1, #65535
|
|
.L1061:
|
|
cmp r2, r3
|
|
blt .L1062
|
|
mov r0, r4
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1060:
|
|
ldr r1, [sp, #4]
|
|
asrs r1, r1, r5
|
|
lsls r1, r1, #31
|
|
bmi .L1057
|
|
mov r1, r10
|
|
mov r0, r5
|
|
str r2, [sp, #12]
|
|
str r3, [sp, #8]
|
|
bl __aeabi_idiv
|
|
ldr r2, [sp, #12]
|
|
cmp r10, #1
|
|
ldr r3, [sp, #8]
|
|
ldrh r1, [r2]
|
|
sub r1, fp, r1
|
|
lsl r0, r0, r1
|
|
it hi
|
|
andhi r1, r7, r5
|
|
add r0, r0, r6
|
|
uxth r0, r0
|
|
it hi
|
|
addhi r0, r0, r1
|
|
strh r0, [r8, r4, lsl #1] @ movhi
|
|
adds r4, r4, #1
|
|
.L1057:
|
|
adds r5, r5, #1
|
|
b .L1056
|
|
.L1062:
|
|
strh r1, [r8, r2, lsl #1] @ movhi
|
|
adds r2, r2, #1
|
|
b .L1061
|
|
.L1065:
|
|
.align 2
|
|
.L1064:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR75
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR79
|
|
.size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
|
|
.section .text.ftl_erase_phy_blk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_erase_phy_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_erase_phy_blk, %function
|
|
ftl_erase_phy_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r5, r1
|
|
ldr r3, .L1071
|
|
ldr r7, .L1071+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r4, r3, #24
|
|
ldr r3, .L1071+8
|
|
ldrh r3, [r3]
|
|
subs r3, r4, r3
|
|
movs r4, #1
|
|
asr r6, r0, r3
|
|
lsls r4, r4, r3
|
|
ldr r3, .L1071+12
|
|
subs r4, r4, #1
|
|
uxtb r6, r6
|
|
ands r4, r4, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
sxth r4, r4
|
|
cbz r3, .L1067
|
|
ldr r3, .L1071+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L1067
|
|
ldrh r2, [r7]
|
|
clz r1, r1
|
|
lsrs r1, r1, #5
|
|
mov r0, r6
|
|
muls r2, r4, r2
|
|
bl flash_erase_block_en
|
|
.L1067:
|
|
ldrh r2, [r7]
|
|
uxtb r1, r5
|
|
mov r0, r6
|
|
muls r2, r4, r2
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b flash_erase_block_en
|
|
.L1072:
|
|
.align 2
|
|
.L1071:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR111
|
|
.word .LANCHOR74
|
|
.word .LANCHOR80
|
|
.word .LANCHOR81
|
|
.size ftl_erase_phy_blk, .-ftl_erase_phy_blk
|
|
.section .text.ftl_erase_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_erase_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_erase_sblk, %function
|
|
ftl_erase_sblk:
|
|
@ args = 0, pretend = 0, frame = 72
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r2, .L1097
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r6, r0
|
|
mov r7, r1
|
|
movs r5, #0
|
|
mov r8, r2
|
|
sub sp, sp, #72
|
|
ldr r3, [r2]
|
|
add r3, r3, r0, lsl #2
|
|
ldrb r3, [r3, #3] @ zero_extendqisi2
|
|
str r3, [sp, #4]
|
|
.L1074:
|
|
ldr r3, .L1097+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r5, r3
|
|
bge .L1085
|
|
ldr r3, .L1097+8
|
|
movs r4, #0
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, .L1097+12
|
|
add ip, r2, #-1
|
|
ldrh r0, [r3]
|
|
mul r10, r2, r5
|
|
mov r3, r4
|
|
mul lr, r2, r6
|
|
b .L1086
|
|
.L1076:
|
|
ldr r1, [sp, #4]
|
|
add fp, r3, r10
|
|
asr r1, r1, fp
|
|
lsls r1, r1, #31
|
|
bmi .L1075
|
|
add r1, sp, #72
|
|
add fp, r1, r4, lsl #2
|
|
and r1, r3, ip
|
|
add r1, r1, lr
|
|
muls r1, r0, r1
|
|
adds r4, r4, #1
|
|
str r1, [fp, #-64]
|
|
.L1075:
|
|
adds r3, r3, #1
|
|
.L1086:
|
|
cmp r3, r2
|
|
blt .L1076
|
|
cmp r2, #4
|
|
bne .L1077
|
|
uxtb fp, r7
|
|
mov r10, #0
|
|
.L1078:
|
|
cmp r10, r4
|
|
bne .L1079
|
|
.L1080:
|
|
adds r5, r5, #1
|
|
b .L1074
|
|
.L1079:
|
|
add r3, sp, #8
|
|
mov r1, fp
|
|
ldr r2, [r3, r10, lsl #2]
|
|
uxtb r0, r5
|
|
add r10, r10, #1
|
|
bl flash_erase_block_en
|
|
b .L1078
|
|
.L1077:
|
|
cmp r4, #2
|
|
bne .L1081
|
|
ldr r3, .L1097+16
|
|
uxtb r4, r5
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L1082
|
|
ldr r3, .L1097+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L1082
|
|
clz r1, r7
|
|
ldr r3, [sp, #12]
|
|
ldr r2, [sp, #8]
|
|
lsrs r1, r1, #5
|
|
mov r0, r4
|
|
bl flash_erase_duplane_block
|
|
.L1082:
|
|
ldr r3, [sp, #12]
|
|
uxtb r1, r7
|
|
ldr r2, [sp, #8]
|
|
mov r0, r4
|
|
bl flash_erase_duplane_block
|
|
b .L1080
|
|
.L1081:
|
|
cmp r4, #1
|
|
bne .L1080
|
|
ldr r3, .L1097+16
|
|
uxtb r4, r5
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L1084
|
|
ldr r3, .L1097+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L1084
|
|
clz r1, r7
|
|
ldr r2, [sp, #8]
|
|
lsrs r1, r1, #5
|
|
mov r0, r4
|
|
bl flash_erase_block_en
|
|
.L1084:
|
|
ldr r2, [sp, #8]
|
|
uxtb r1, r7
|
|
mov r0, r4
|
|
bl flash_erase_block_en
|
|
b .L1080
|
|
.L1085:
|
|
ldr r1, .L1097+24
|
|
ldr r0, [r8]
|
|
cbnz r7, .L1087
|
|
ldrh r2, [r0, r6, lsl #2]
|
|
adds r3, r2, #1
|
|
ubfx r3, r3, #0, #11
|
|
bfi r2, r3, #0, #11
|
|
strh r2, [r0, r6, lsl #2] @ movhi
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #84]
|
|
adds r1, r1, #1
|
|
str r1, [r2, #84]
|
|
ldrh r1, [r2, #96]
|
|
cmp r1, r3
|
|
bge .L1089
|
|
strh r3, [r2, #96] @ movhi
|
|
.L1089:
|
|
movs r0, #0
|
|
add sp, sp, #72
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1087:
|
|
ldr r2, [r0, r6, lsl #2]
|
|
ubfx r3, r2, #11, #8
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
bfi r2, r3, #11, #8
|
|
uxth r3, r3
|
|
str r2, [r0, r6, lsl #2]
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #80]
|
|
adds r1, r1, #1
|
|
str r1, [r2, #80]
|
|
ldrh r1, [r2, #98]
|
|
cmp r1, r3
|
|
it cc
|
|
strhcc r3, [r2, #98] @ movhi
|
|
b .L1089
|
|
.L1098:
|
|
.align 2
|
|
.L1097:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR112
|
|
.word .LANCHOR75
|
|
.word .LANCHOR111
|
|
.word .LANCHOR80
|
|
.word .LANCHOR81
|
|
.word .LANCHOR110
|
|
.size ftl_erase_sblk, .-ftl_erase_sblk
|
|
.section .text.ftl_alloc_sys_blk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_alloc_sys_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_alloc_sys_blk, %function
|
|
ftl_alloc_sys_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, .L1108
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #136]
|
|
cmp r1, #63
|
|
itt hi
|
|
movhi r3, #0
|
|
strhhi r3, [r2, #136] @ movhi
|
|
ldrh r3, [r2, #112]
|
|
cbnz r3, .L1101
|
|
movw r2, #1359
|
|
ldr r1, .L1108+4
|
|
ldr r0, .L1108+8
|
|
bl printf
|
|
.L1101:
|
|
ldr r3, [r4]
|
|
movw r4, #65535
|
|
mov r6, r4
|
|
movs r5, #0
|
|
.L1105:
|
|
ldrh r2, [r3, #136]
|
|
add r1, r3, r2, lsl #1
|
|
adds r1, r1, #158
|
|
.L1102:
|
|
cmp r2, #63
|
|
ble .L1104
|
|
strh r5, [r3, #136] @ movhi
|
|
b .L1105
|
|
.L1104:
|
|
ldrh r0, [r1, #2]!
|
|
cmp r0, r4
|
|
bne .L1107
|
|
adds r2, r2, #1
|
|
b .L1102
|
|
.L1107:
|
|
add r1, r2, #80
|
|
strh r6, [r3, r1, lsl #1] @ movhi
|
|
strh r2, [r3, #136] @ movhi
|
|
ldrh r2, [r3, #112]
|
|
subs r2, r2, #1
|
|
strh r2, [r3, #112] @ movhi
|
|
pop {r4, r5, r6, pc}
|
|
.L1109:
|
|
.align 2
|
|
.L1108:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR113
|
|
.word .LC0
|
|
.size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk
|
|
.section .text.ftl_free_sys_blk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_free_sys_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_free_sys_blk, %function
|
|
ftl_free_sys_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
ldr r4, .L1118
|
|
ldr r2, [r4]
|
|
ldrh r1, [r2, #138]
|
|
cmp r1, #63
|
|
itt hi
|
|
movhi r3, #0
|
|
strhhi r3, [r2, #138] @ movhi
|
|
ldrh r3, [r2, #112]
|
|
cmp r3, #63
|
|
bls .L1112
|
|
movw r2, #1386
|
|
ldr r1, .L1118+4
|
|
ldr r0, .L1118+8
|
|
bl printf
|
|
.L1112:
|
|
ldr r3, [r4]
|
|
movs r0, #0
|
|
movw r4, #65535
|
|
.L1116:
|
|
ldrh r2, [r3, #138]
|
|
add r1, r3, r2, lsl #1
|
|
adds r1, r1, #158
|
|
.L1113:
|
|
cmp r2, #63
|
|
ble .L1115
|
|
strh r0, [r3, #138] @ movhi
|
|
b .L1116
|
|
.L1115:
|
|
ldrh r6, [r1, #2]!
|
|
cmp r6, r4
|
|
bne .L1114
|
|
add r1, r2, #80
|
|
strh r5, [r3, r1, lsl #1] @ movhi
|
|
strh r2, [r3, #138] @ movhi
|
|
ldrh r2, [r3, #112]
|
|
adds r2, r2, #1
|
|
strh r2, [r3, #112] @ movhi
|
|
pop {r4, r5, r6, pc}
|
|
.L1114:
|
|
adds r2, r2, #1
|
|
b .L1113
|
|
.L1119:
|
|
.align 2
|
|
.L1118:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR114
|
|
.word .LC0
|
|
.size ftl_free_sys_blk, .-ftl_free_sys_blk
|
|
.section .text.ftl_info_data_recovery,"ax",%progbits
|
|
.align 1
|
|
.global ftl_info_data_recovery
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_info_data_recovery, %function
|
|
ftl_info_data_recovery:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
movw r3, #65535
|
|
ldrh r4, [r0]
|
|
cmp r4, r3
|
|
beq .L1120
|
|
ldr r3, .L1129
|
|
ldr r5, [r3]
|
|
add r6, r5, r4, lsl #2
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
tst r3, #224
|
|
bne .L1120
|
|
ldrb r2, [r0, #4] @ zero_extendqisi2
|
|
mov r0, r4
|
|
bfi r3, r2, #5, #3
|
|
strb r3, [r6, #2]
|
|
bl zftl_remove_free_node
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
ldr r2, .L1129+4
|
|
tst r3, #8
|
|
ldr r0, [r2]
|
|
beq .L1124
|
|
ldrh r1, [r0, #116]
|
|
subs r1, r1, #1
|
|
strh r1, [r0, #116] @ movhi
|
|
.L1125:
|
|
and r3, r3, #224
|
|
cmp r3, #160
|
|
bne .L1127
|
|
ldr r3, [r5, r4, lsl #2]
|
|
ldr r2, [r2]
|
|
ubfx r1, r3, #11, #8
|
|
adds r1, r1, #1
|
|
bfi r3, r1, #11, #8
|
|
str r3, [r5, r4, lsl #2]
|
|
ldrh r3, [r2, #120]
|
|
subs r3, r3, #1
|
|
strh r3, [r2, #120] @ movhi
|
|
pop {r4, r5, r6, pc}
|
|
.L1124:
|
|
tst r3, #24
|
|
itete eq
|
|
ldrheq r1, [r0, #114]
|
|
ldrhne r1, [r0, #118]
|
|
addeq r1, r1, #-1
|
|
addne r1, r1, #-1
|
|
ite eq
|
|
strheq r1, [r0, #114] @ movhi
|
|
strhne r1, [r0, #118] @ movhi
|
|
b .L1125
|
|
.L1127:
|
|
ldrh r1, [r5, r4, lsl #2]
|
|
cmp r3, #64
|
|
add r0, r1, #1
|
|
bfi r1, r0, #0, #11
|
|
strh r1, [r5, r4, lsl #2] @ movhi
|
|
bne .L1128
|
|
ldr r2, [r2]
|
|
ldrh r3, [r2, #122]
|
|
subs r3, r3, #1
|
|
strh r3, [r2, #122] @ movhi
|
|
pop {r4, r5, r6, pc}
|
|
.L1128:
|
|
cmp r3, #96
|
|
itttt eq
|
|
ldreq r2, [r2]
|
|
ldrheq r3, [r2, #124]
|
|
addeq r3, r3, #-1
|
|
strheq r3, [r2, #124] @ movhi
|
|
.L1120:
|
|
pop {r4, r5, r6, pc}
|
|
.L1130:
|
|
.align 2
|
|
.L1129:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR110
|
|
.size ftl_info_data_recovery, .-ftl_info_data_recovery
|
|
.section .text.ftl_get_ppa_from_index,"ax",%progbits
|
|
.align 1
|
|
.global ftl_get_ppa_from_index
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_get_ppa_from_index, %function
|
|
ftl_get_ppa_from_index:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
ldr r3, .L1135
|
|
ldr r5, [r3]
|
|
ldr r3, .L1135+4
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1135+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
mul r1, r3, r2
|
|
cmp r0, r1
|
|
itet ge
|
|
smulbbge r3, r3, r2
|
|
addlt r5, r5, #16
|
|
addge r5, r5, #48
|
|
ldrb r6, [r5, #9] @ zero_extendqisi2
|
|
itt ge
|
|
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
|
|
subs r4, r4, r6
|
|
uxth r4, r4
|
|
adds r4, r4, #8
|
|
ldrh r4, [r5, r4, lsl #1]
|
|
cmp r4, r3
|
|
bne .L1134
|
|
movw r2, #1945
|
|
ldr r1, .L1135+12
|
|
ldr r0, .L1135+16
|
|
bl printf
|
|
.L1134:
|
|
ldr r3, .L1135+20
|
|
ldrh r0, [r3]
|
|
mla r0, r4, r0, r7
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1136:
|
|
.align 2
|
|
.L1135:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR94
|
|
.word .LANCHOR79
|
|
.word .LANCHOR115
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index
|
|
.section .text.lpa_hash_get_ppa,"ax",%progbits
|
|
.align 1
|
|
.global lpa_hash_get_ppa
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type lpa_hash_get_ppa, %function
|
|
lpa_hash_get_ppa:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1141
|
|
uxtb r2, r0
|
|
push {r4, r5}
|
|
ldrh r3, [r3, r2, lsl #1]
|
|
ldr r2, .L1141+4
|
|
ldr r1, [r2]
|
|
ldr r2, .L1141+8
|
|
ldr r4, [r2]
|
|
movw r2, #65535
|
|
.L1138:
|
|
cmp r3, r2
|
|
bne .L1140
|
|
mov r0, #-1
|
|
pop {r4, r5}
|
|
bx lr
|
|
.L1140:
|
|
ldr r5, [r1, r3, lsl #2]
|
|
cmp r0, r5
|
|
bne .L1139
|
|
mov r0, r3
|
|
pop {r4, r5}
|
|
b ftl_get_ppa_from_index
|
|
.L1139:
|
|
ldrh r3, [r4, r3, lsl #1]
|
|
b .L1138
|
|
.L1142:
|
|
.align 2
|
|
.L1141:
|
|
.word .LANCHOR116
|
|
.word .LANCHOR117
|
|
.word .LANCHOR118
|
|
.size lpa_hash_get_ppa, .-lpa_hash_get_ppa
|
|
.section .text.ftl_get_new_free_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_get_new_free_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_get_new_free_page, %function
|
|
ftl_get_new_free_page:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldrh r2, [r0]
|
|
push {r3, r4, r5, lr}
|
|
movw r3, #65535
|
|
mov r4, r0
|
|
cmp r2, r3
|
|
bne .L1144
|
|
movw r2, #2088
|
|
ldr r1, .L1151
|
|
ldr r0, .L1151+4
|
|
bl printf
|
|
.L1144:
|
|
ldr r3, .L1151+8
|
|
ldrh r2, [r4, #2]
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bne .L1145
|
|
movw r2, #2089
|
|
ldr r1, .L1151
|
|
ldr r0, .L1151+4
|
|
bl printf
|
|
.L1145:
|
|
ldrh r3, [r4, #6]
|
|
cbnz r3, .L1146
|
|
movw r2, #2090
|
|
ldr r1, .L1151
|
|
ldr r0, .L1151+4
|
|
bl printf
|
|
.L1146:
|
|
ldrb r3, [r4, #5] @ zero_extendqisi2
|
|
movw r2, #65535
|
|
movs r1, #0
|
|
adds r3, r3, #8
|
|
ldrh r0, [r4, r3, lsl #1]
|
|
ldr r3, .L1151+12
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
.L1147:
|
|
cmp r0, r2
|
|
ldrb r3, [r4, #5] @ zero_extendqisi2
|
|
beq .L1149
|
|
ldr r1, .L1151+16
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
ldrh r2, [r4, #2]
|
|
ldrh r1, [r1]
|
|
cmp r5, r3
|
|
strb r3, [r4, #5]
|
|
itttt eq
|
|
addeq r3, r2, #1
|
|
strheq r3, [r4, #2] @ movhi
|
|
moveq r3, #0
|
|
strbeq r3, [r4, #5]
|
|
muls r0, r1, r0
|
|
ldrh r1, [r4, #6]
|
|
subs r1, r1, #1
|
|
strh r1, [r4, #6] @ movhi
|
|
orrs r0, r0, r2
|
|
ldrh r1, [r4, #10]
|
|
adds r1, r1, #1
|
|
strh r1, [r4, #10] @ movhi
|
|
pop {r3, r4, r5, pc}
|
|
.L1149:
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, r5
|
|
strb r3, [r4, #5]
|
|
itttt eq
|
|
ldrheq r3, [r4, #2]
|
|
strbeq r1, [r4, #5]
|
|
addeq r3, r3, #1
|
|
strheq r3, [r4, #2] @ movhi
|
|
ldrb r3, [r4, #5] @ zero_extendqisi2
|
|
adds r3, r3, #8
|
|
ldrh r0, [r4, r3, lsl #1]
|
|
b .L1147
|
|
.L1152:
|
|
.align 2
|
|
.L1151:
|
|
.word .LANCHOR119
|
|
.word .LC0
|
|
.word .LANCHOR94
|
|
.word .LANCHOR79
|
|
.word .LANCHOR111
|
|
.size ftl_get_new_free_page, .-ftl_get_new_free_page
|
|
.section .text.ftl_ext_alloc_new_blk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_ext_alloc_new_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_ext_alloc_new_blk, %function
|
|
ftl_ext_alloc_new_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
bl ftl_alloc_sys_blk
|
|
subs r3, r0, #1
|
|
movw r2, #65533
|
|
uxth r3, r3
|
|
mov r4, r0
|
|
cmp r3, r2
|
|
bls .L1154
|
|
movw r2, #2125
|
|
ldr r1, .L1155
|
|
ldr r0, .L1155+4
|
|
bl printf
|
|
.L1154:
|
|
ldr r5, .L1155+8
|
|
movs r1, #0
|
|
mov r0, r4
|
|
bl ftl_erase_phy_blk
|
|
ldr r3, [r5]
|
|
ldrh r0, [r3, #130]
|
|
bl ftl_free_sys_blk
|
|
ldr r3, [r5]
|
|
movs r0, #0
|
|
strh r4, [r3, #130] @ movhi
|
|
strh r0, [r3, #140] @ movhi
|
|
pop {r3, r4, r5, pc}
|
|
.L1156:
|
|
.align 2
|
|
.L1155:
|
|
.word .LANCHOR120
|
|
.word .LC0
|
|
.word .LANCHOR110
|
|
.size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk
|
|
.section .text.ftl_total_vpn_update,"ax",%progbits
|
|
.align 1
|
|
.global ftl_total_vpn_update
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_total_vpn_update, %function
|
|
ftl_total_vpn_update:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r2, .L1168
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r1, r2
|
|
ldrh r3, [r2]
|
|
cmp r3, #4
|
|
bhi .L1158
|
|
cbnz r0, .L1158
|
|
adds r3, r3, #1
|
|
strh r3, [r2] @ movhi
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1158:
|
|
ldr r2, .L1168+4
|
|
movs r3, #0
|
|
mov r0, r3
|
|
movw ip, #65535
|
|
strh r3, [r1] @ movhi
|
|
ldrh r5, [r2]
|
|
ldr r2, .L1168+8
|
|
ldr r6, [r2]
|
|
ldr r2, .L1168+12
|
|
ldr r7, [r2]
|
|
mov r2, r3
|
|
.L1160:
|
|
uxth r1, r3
|
|
cmp r5, r1
|
|
bhi .L1163
|
|
ldr r3, .L1168+16
|
|
ldr r4, [r3]
|
|
ldr r3, .L1168+20
|
|
str r2, [r4, #524]
|
|
ldr r3, [r3]
|
|
str r0, [r4, #528]
|
|
ldrh r1, [r3, #120]
|
|
cbz r1, .L1157
|
|
bl __aeabi_uidiv
|
|
str r0, [r4, #532]
|
|
.L1157:
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1163:
|
|
ldrh r1, [r6, r3, lsl #1]
|
|
cmp r1, ip
|
|
beq .L1161
|
|
add r4, r7, r3, lsl #2
|
|
ldrb r4, [r4, #2] @ zero_extendqisi2
|
|
and r4, r4, #224
|
|
cmp r4, #160
|
|
ite eq
|
|
addeq r0, r0, r1
|
|
addne r2, r2, r1
|
|
.L1161:
|
|
adds r3, r3, #1
|
|
b .L1160
|
|
.L1169:
|
|
.align 2
|
|
.L1168:
|
|
.word .LANCHOR121
|
|
.word .LANCHOR8
|
|
.word .LANCHOR11
|
|
.word .LANCHOR9
|
|
.word .LANCHOR12
|
|
.word .LANCHOR110
|
|
.size ftl_total_vpn_update, .-ftl_total_vpn_update
|
|
.section .text.ftl_vpn_update,"ax",%progbits
|
|
.align 1
|
|
.global ftl_vpn_update
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_vpn_update, %function
|
|
ftl_vpn_update:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
mov r4, r0
|
|
bl zftl_list_update_data_list
|
|
ldr r3, .L1173
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, r4, lsl #1]
|
|
cbnz r3, .L1172
|
|
ldr r3, .L1173+4
|
|
movs r0, #1
|
|
str r0, [r3]
|
|
pop {r4, pc}
|
|
.L1172:
|
|
movs r0, #0
|
|
pop {r4, pc}
|
|
.L1174:
|
|
.align 2
|
|
.L1173:
|
|
.word .LANCHOR11
|
|
.word .LANCHOR122
|
|
.size ftl_vpn_update, .-ftl_vpn_update
|
|
.section .text.ftl_vpn_decrement,"ax",%progbits
|
|
.align 1
|
|
.global ftl_vpn_decrement
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_vpn_decrement, %function
|
|
ftl_vpn_decrement:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
movw r3, #65535
|
|
cmp r0, r3
|
|
mov r5, r0
|
|
beq .L1176
|
|
ldr r3, .L1184
|
|
ldr r3, [r3]
|
|
ldrh r4, [r3, r0, lsl #1]
|
|
cbnz r4, .L1177
|
|
ldr r3, .L1184+4
|
|
mov r1, r0
|
|
mov r2, r4
|
|
ldr r3, [r3]
|
|
add r3, r3, r0, lsl #2
|
|
ldr r0, .L1184+8
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
lsrs r3, r3, #5
|
|
bl printf
|
|
.L1182:
|
|
movs r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.L1177:
|
|
subs r4, r4, #1
|
|
strh r4, [r3, r0, lsl #1] @ movhi
|
|
.L1176:
|
|
ldr r3, .L1184+12
|
|
ldrh r0, [r3]
|
|
mov r4, r3
|
|
cmp r5, r0
|
|
beq .L1182
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
bne .L1179
|
|
strh r5, [r3] @ movhi
|
|
b .L1182
|
|
.L1179:
|
|
bl ftl_vpn_update
|
|
ldr r3, .L1184+16
|
|
adds r0, r0, #0
|
|
it ne
|
|
movne r0, #1
|
|
ldrh r1, [r4]
|
|
strh r5, [r4] @ movhi
|
|
ldrh r2, [r3]
|
|
adds r2, r2, #1
|
|
uxth r2, r2
|
|
cmp r2, #7
|
|
it hi
|
|
movhi r2, #0
|
|
strh r2, [r3] @ movhi
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1184+20
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
pop {r3, r4, r5, pc}
|
|
.L1185:
|
|
.align 2
|
|
.L1184:
|
|
.word .LANCHOR11
|
|
.word .LANCHOR9
|
|
.word .LC65
|
|
.word .LANCHOR72
|
|
.word .LANCHOR123
|
|
.word .LANCHOR73
|
|
.size ftl_vpn_decrement, .-ftl_vpn_decrement
|
|
.section .text.lpa_hash_update_ppa,"ax",%progbits
|
|
.align 1
|
|
.global lpa_hash_update_ppa
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type lpa_hash_update_ppa, %function
|
|
lpa_hash_update_ppa:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
uxtb ip, r0
|
|
ldr r4, .L1197
|
|
movw r6, #65535
|
|
mov fp, r6
|
|
ldr r5, .L1197+4
|
|
ldr lr, [r4]
|
|
ldr r4, .L1197+8
|
|
ldrh r3, [r5, ip, lsl #1]
|
|
ldr r4, [r4]
|
|
.L1187:
|
|
cmp r3, fp
|
|
beq .L1191
|
|
ldr r7, [lr, r3, lsl #2]
|
|
add r8, lr, r3, lsl #2
|
|
cmp r0, r7
|
|
bne .L1188
|
|
cmp r6, fp
|
|
mov r10, #-1
|
|
ite eq
|
|
ldrheq r6, [r4, r3, lsl #1]
|
|
ldrhne r7, [r4, r3, lsl #1]
|
|
str r10, [r8]
|
|
ite eq
|
|
strheq r6, [r5, ip, lsl #1] @ movhi
|
|
strhne r7, [r4, r6, lsl #1] @ movhi
|
|
movw r6, #65535
|
|
strh r6, [r4, r3, lsl #1] @ movhi
|
|
.L1191:
|
|
ldrh r3, [r5, ip, lsl #1]
|
|
str r0, [lr, r2, lsl #2]
|
|
strh r2, [r5, ip, lsl #1] @ movhi
|
|
strh r3, [r4, r2, lsl #1] @ movhi
|
|
adds r3, r1, #1
|
|
beq .L1193
|
|
ldr r3, .L1197+12
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1197+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r0, r3, r2
|
|
movs r3, #1
|
|
lsls r3, r3, r0
|
|
lsr r0, r1, r2
|
|
ldr r2, .L1197+20
|
|
subs r3, r3, #1
|
|
ands r0, r0, r3
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
uxth r0, r0
|
|
bl ftl_vpn_decrement
|
|
.L1193:
|
|
mov r0, #-1
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1188:
|
|
mov r6, r3
|
|
ldrh r3, [r4, r3, lsl #1]
|
|
b .L1187
|
|
.L1198:
|
|
.align 2
|
|
.L1197:
|
|
.word .LANCHOR117
|
|
.word .LANCHOR116
|
|
.word .LANCHOR118
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.size lpa_hash_update_ppa, .-lpa_hash_update_ppa
|
|
.section .text.ftl_mask_bad_block,"ax",%progbits
|
|
.align 1
|
|
.global ftl_mask_bad_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_mask_bad_block, %function
|
|
ftl_mask_bad_block:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1206
|
|
push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r1, r4, #24
|
|
lsl r4, r3, r4
|
|
lsr r2, r0, r1
|
|
subs r4, r4, #1
|
|
ands r4, r4, r2
|
|
ldr r2, .L1206+4
|
|
uxtb r4, r4
|
|
ldrb r5, [r2] @ zero_extendqisi2
|
|
smulbb r2, r4, r5
|
|
uxtb r8, r2
|
|
ldr r2, .L1206+8
|
|
ldrh r6, [r2]
|
|
lsr r2, r0, r6
|
|
subs r0, r1, r6
|
|
lsl r0, r3, r0
|
|
mov r1, r5
|
|
subs r0, r0, #1
|
|
ands r0, r0, r2
|
|
uxth r10, r0
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L1206+12
|
|
cmp r5, #1
|
|
it hi
|
|
addhi r2, r5, #-1
|
|
mov r6, r0
|
|
it hi
|
|
andhi r2, r2, r10
|
|
uxth r7, r0
|
|
ldr r3, [r3]
|
|
itt hi
|
|
addhi r2, r2, r8
|
|
uxtbhi r8, r2
|
|
lsls r3, r3, #17
|
|
bpl .L1201
|
|
uxth r3, r0
|
|
str r10, [sp]
|
|
mov r2, r8
|
|
ldr r0, .L1206+16
|
|
mov r1, r4
|
|
bl printf
|
|
.L1201:
|
|
ldr r3, .L1206+20
|
|
ldrh r3, [r3]
|
|
cmp r3, r7
|
|
bls .L1199
|
|
ldr r3, .L1206+24
|
|
uxth r6, r6
|
|
movs r2, #1
|
|
lsl r8, r2, r8
|
|
ldr r3, [r3]
|
|
add r6, r3, r6, lsl #2
|
|
ldrb r2, [r6, #3] @ zero_extendqisi2
|
|
orr r2, r2, r8
|
|
strb r2, [r6, #3]
|
|
.L1199:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L1207:
|
|
.align 2
|
|
.L1206:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR74
|
|
.word .LANCHOR19
|
|
.word .LC66
|
|
.word .LANCHOR8
|
|
.word .LANCHOR9
|
|
.size ftl_mask_bad_block, .-ftl_mask_bad_block
|
|
.section .text.gc_free_bad_sblk,"ax",%progbits
|
|
.align 1
|
|
.global gc_free_bad_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_free_bad_sblk, %function
|
|
gc_free_bad_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r0
|
|
ldr r4, .L1228
|
|
ldr r3, [r4, #2188]
|
|
cbz r3, .L1225
|
|
mov fp, #0
|
|
.L1210:
|
|
ldr r3, .L1228+4
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
uxth r3, fp
|
|
cmp r2, r3
|
|
bhi .L1220
|
|
.L1225:
|
|
movs r0, #0
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1220:
|
|
ldr r3, .L1228+8
|
|
uxth r0, fp
|
|
mov r10, #0
|
|
ldrb r7, [r3] @ zero_extendqisi2
|
|
mov r1, r7
|
|
bl __aeabi_idiv
|
|
ldr r3, .L1228+12
|
|
uxth r6, r7
|
|
cmp r7, #1
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
ldr r3, .L1228+16
|
|
rsb r5, r5, #24
|
|
ldrh r2, [r3]
|
|
mov r7, r3
|
|
sub r5, r5, r2
|
|
lsl r0, r0, r5
|
|
smulbb r5, r8, r6
|
|
itt hi
|
|
addhi r6, r6, #-1
|
|
andhi r6, r6, fp
|
|
add r5, r5, r0
|
|
uxth r5, r5
|
|
itt hi
|
|
addhi r5, r5, r6
|
|
uxthhi r5, r5
|
|
.L1212:
|
|
ldr r0, [r4, #2188]
|
|
uxth r6, r10
|
|
mov r1, r6
|
|
cmp r0, r6
|
|
bhi .L1219
|
|
add fp, fp, #1
|
|
b .L1210
|
|
.L1219:
|
|
add r1, r1, #1096
|
|
ldrh r1, [r4, r1, lsl #1]
|
|
cmp r1, r5
|
|
bne .L1213
|
|
mov r1, r5
|
|
ldr r0, .L1228+20
|
|
bl printf
|
|
ldr r1, .L1228+24
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbnz r1, .L1214
|
|
ldr r1, .L1228+28
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L1215
|
|
.L1214:
|
|
ldr r1, .L1228+32
|
|
ldr r3, .L1228+36
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, #156]
|
|
cmp r1, r3
|
|
beq .L1216
|
|
.L1215:
|
|
ldrh r0, [r7]
|
|
lsl r0, r5, r0
|
|
bl ftl_mask_bad_block
|
|
.L1216:
|
|
ldr r1, [r4, #2188]
|
|
.L1217:
|
|
cmp r6, r1
|
|
bcc .L1218
|
|
subs r1, r1, #1
|
|
str r1, [r4, #2188]
|
|
.L1213:
|
|
add r10, r10, #1
|
|
b .L1212
|
|
.L1218:
|
|
addw r0, r6, #1097
|
|
adds r3, r6, #1
|
|
ldrh ip, [r4, r0, lsl #1]
|
|
add r0, r6, #1096
|
|
uxth r6, r3
|
|
strh ip, [r4, r0, lsl #1] @ movhi
|
|
b .L1217
|
|
.L1229:
|
|
.align 2
|
|
.L1228:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR79
|
|
.word .LANCHOR75
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LC67
|
|
.word .LANCHOR124
|
|
.word .LANCHOR80
|
|
.word .LANCHOR110
|
|
.word 1145785929
|
|
.size gc_free_bad_sblk, .-gc_free_bad_sblk
|
|
.section .text.ftl_free_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_free_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_free_sblk, %function
|
|
ftl_free_sblk:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
ldr r3, .L1251
|
|
ldr r6, [r3]
|
|
lsls r3, r0, #2
|
|
adds r7, r6, r3
|
|
ldrb r4, [r7, #2] @ zero_extendqisi2
|
|
lsls r2, r4, #28
|
|
lsr r3, r4, #5
|
|
str r3, [sp, #4]
|
|
bpl .L1231
|
|
ldr r3, .L1251+4
|
|
ldrh fp, [r6, r0, lsl #2]
|
|
ldr r1, .L1251+8
|
|
ldr r3, [r3]
|
|
ldr r0, [r6, r0, lsl #2]
|
|
ubfx fp, fp, #0, #11
|
|
ldrh r8, [r1]
|
|
ldrh r2, [r3, #74]
|
|
ldrh r3, [r3, #72]
|
|
ubfx r10, r0, #11, #8
|
|
mov r1, r8
|
|
add r2, r2, fp
|
|
uxth r2, r2
|
|
add r3, r3, r10
|
|
uxth r3, r3
|
|
mov r0, r2
|
|
str r2, [sp, #8]
|
|
str r3, [sp, #12]
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #12]
|
|
ldr r1, .L1251+12
|
|
ldr r2, [sp, #8]
|
|
ldrh r1, [r1]
|
|
uxtah r0, r3, r0
|
|
cmp r0, r1
|
|
ble .L1232
|
|
ldr r3, .L1251+16
|
|
ldr r1, .L1251+20
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1251+24
|
|
ldrh r1, [r1]
|
|
adds r2, r2, #7
|
|
ldrh r3, [r3]
|
|
add r3, r3, r1
|
|
cmp r2, r3
|
|
blt .L1233
|
|
.L1238:
|
|
movs r3, #2
|
|
bfi r4, r3, #3, #2
|
|
b .L1248
|
|
.L1233:
|
|
ldr r3, .L1251+28
|
|
ldr r1, .L1251+32
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1251+36
|
|
ldrh r1, [r1]
|
|
adds r2, r2, #7
|
|
ldrh r3, [r3]
|
|
add r3, r3, r1
|
|
ldr r1, .L1251+40
|
|
ldrh r1, [r1]
|
|
add r3, r3, r1
|
|
cmp r2, r3
|
|
blt .L1238
|
|
.L1250:
|
|
bfc r4, #3, #2
|
|
.L1248:
|
|
strb r4, [r7, #2]
|
|
.L1234:
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
ands r3, r3, #24
|
|
bne .L1239
|
|
mul r8, r8, r10
|
|
ldrh r3, [r6, r5, lsl #2]
|
|
lsr r10, r10, #3
|
|
add r8, r8, r8, lsl #1
|
|
add fp, fp, r8, asr #2
|
|
bfi r3, fp, #0, #11
|
|
strh r3, [r6, r5, lsl #2] @ movhi
|
|
ldr r3, [r6, r5, lsl #2]
|
|
bfi r3, r10, #11, #8
|
|
str r3, [r6, r5, lsl #2]
|
|
.L1240:
|
|
mov r0, r5
|
|
bl zftl_remove_data_node
|
|
ldr r3, .L1251
|
|
lsls r2, r5, #2
|
|
ldr r3, [r3]
|
|
add r3, r3, r2
|
|
ldrb r2, [r3, #2] @ zero_extendqisi2
|
|
bfc r2, #5, #3
|
|
strb r2, [r3, #2]
|
|
movs r2, #0
|
|
ldr r3, .L1251+44
|
|
ldr r3, [r3]
|
|
strh r2, [r3, r5, lsl #1] @ movhi
|
|
ldr r3, [sp, #4]
|
|
adds r3, r3, #6
|
|
and r3, r3, #7
|
|
cmp r3, #4
|
|
bhi .L1243
|
|
mov r0, r5
|
|
bl gc_free_bad_sblk
|
|
.L1243:
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
lsls r3, r3, #28
|
|
bpl .L1244
|
|
ldr r3, .L1251+48
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #586]
|
|
cmp r2, r5
|
|
bne .L1244
|
|
ldrh r1, [r3, #590]
|
|
movw r2, #65535
|
|
strh r2, [r3, #586] @ movhi
|
|
cmp r1, r2
|
|
bne .L1244
|
|
strh r5, [r3, #590] @ movhi
|
|
mov r1, r5
|
|
ldr r0, .L1251+52
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b printf
|
|
.L1232:
|
|
mla r3, r3, r8, r2
|
|
ldr r2, .L1251+56
|
|
ldrh r2, [r2]
|
|
cmp r3, r2
|
|
ble .L1234
|
|
ldr r3, .L1251+28
|
|
ldr r1, .L1251+32
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1251+36
|
|
ldrh r1, [r1]
|
|
ldrh r3, [r3]
|
|
add r3, r3, r1
|
|
ldr r1, .L1251+40
|
|
ldrh r1, [r1]
|
|
add r3, r3, r1
|
|
adds r1, r2, #7
|
|
cmp r1, r3
|
|
bge .L1250
|
|
ldr r1, .L1251+16
|
|
ldr ip, .L1251+20
|
|
ldrh r0, [r1]
|
|
ldr r1, .L1251+24
|
|
ldrh ip, [ip]
|
|
adds r0, r0, #7
|
|
ldrh r1, [r1]
|
|
add r1, r1, ip
|
|
cmp r0, r1
|
|
bge .L1238
|
|
adds r2, r2, #23
|
|
cmp r3, r2
|
|
bgt .L1238
|
|
b .L1250
|
|
.L1239:
|
|
cmp r3, #16
|
|
bne .L1240
|
|
mov r0, fp
|
|
mov r1, r8
|
|
bl __aeabi_idiv
|
|
add r0, r0, r0, lsl #1
|
|
ldr r3, [r6, r5, lsl #2]
|
|
asr fp, fp, #5
|
|
add r10, r10, r0, asr #2
|
|
bfi r3, r10, #11, #8
|
|
str r3, [r6, r5, lsl #2]
|
|
bfi r3, fp, #0, #11
|
|
.L1249:
|
|
strh r3, [r6, r5, lsl #2] @ movhi
|
|
b .L1240
|
|
.L1231:
|
|
tst r4, #24
|
|
bne .L1240
|
|
ldr r3, .L1251+60
|
|
ldrh r3, [r3]
|
|
cmp r3, #0
|
|
bne .L1240
|
|
ldr r3, .L1251+20
|
|
ldrh r1, [r3]
|
|
cmp r1, #15
|
|
bhi .L1240
|
|
ldr r3, .L1251+36
|
|
ldr r2, .L1251+32
|
|
ldrh r3, [r3]
|
|
ldrh r2, [r2]
|
|
add r3, r3, r2
|
|
ldr r2, .L1251+40
|
|
ldrh r2, [r2]
|
|
add r3, r3, r2
|
|
ldr r2, .L1251+28
|
|
ldrh r2, [r2]
|
|
adds r2, r2, #16
|
|
cmp r3, r2
|
|
ble .L1240
|
|
ldr r3, .L1251+16
|
|
ldrh r2, [r3]
|
|
ldr r3, .L1251+24
|
|
adds r2, r2, #7
|
|
ldrh r3, [r3]
|
|
add r3, r3, r1
|
|
cmp r2, r3
|
|
blt .L1240
|
|
movs r3, #2
|
|
bfi r4, r3, #3, #2
|
|
ldr r3, .L1251+8
|
|
strb r4, [r7, #2]
|
|
ldrh r4, [r6, r0, lsl #2]
|
|
ldrh r1, [r3]
|
|
ubfx r4, r4, #0, #11
|
|
mov r0, r4
|
|
asrs r4, r4, #5
|
|
bl __aeabi_idiv
|
|
ldr r3, [r6, r5, 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, r5, lsl #2]
|
|
bfi r3, r4, #0, #11
|
|
b .L1249
|
|
.L1244:
|
|
mov r0, r5
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b zftl_insert_free_list
|
|
.L1252:
|
|
.align 2
|
|
.L1251:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR110
|
|
.word .LANCHOR10
|
|
.word .LANCHOR125
|
|
.word .LANCHOR101
|
|
.word .LANCHOR105
|
|
.word .LANCHOR91
|
|
.word .LANCHOR98
|
|
.word .LANCHOR103
|
|
.word .LANCHOR97
|
|
.word .LANCHOR99
|
|
.word .LANCHOR11
|
|
.word .LANCHOR12
|
|
.word .LC68
|
|
.word .LANCHOR126
|
|
.word .LANCHOR107
|
|
.size ftl_free_sblk, .-ftl_free_sblk
|
|
.section .text.gc_free_src_blk,"ax",%progbits
|
|
.align 1
|
|
.global gc_free_src_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_free_src_blk, %function
|
|
gc_free_src_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r5, #0
|
|
ldr r6, .L1290
|
|
.L1254:
|
|
uxth r2, r5
|
|
ldr r3, .L1290+4
|
|
ldrh r1, [r3, #52]
|
|
cmp r1, r2
|
|
bhi .L1268
|
|
movs r2, #0
|
|
strh r2, [r3, #52] @ movhi
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1268:
|
|
uxth r2, r5
|
|
add r3, r3, r2, lsl #1
|
|
ldrh r4, [r3, #54]
|
|
ldr r3, [r6]
|
|
ldrh r2, [r3, r4, lsl #1]
|
|
cbz r2, .L1255
|
|
mov r1, r4
|
|
ldr r0, .L1290+8
|
|
bl printf
|
|
.L1255:
|
|
ldr r3, [r6]
|
|
movs r2, #0
|
|
strh r2, [r3, r4, lsl #1] @ movhi
|
|
ldr r3, .L1290+12
|
|
ldr r7, [r3]
|
|
ldr r3, .L1290+16
|
|
ldr r3, [r3]
|
|
add r7, r7, r4, lsl #2
|
|
lsls r3, r3, #23
|
|
bpl .L1256
|
|
ldrb r2, [r7, #2] @ zero_extendqisi2
|
|
mov r1, r4
|
|
ldr r0, .L1290+20
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
.L1256:
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
and r2, r3, #224
|
|
cmp r2, #224
|
|
beq .L1257
|
|
tst r3, #192
|
|
bne .L1258
|
|
.L1257:
|
|
movw r2, #1363
|
|
ldr r1, .L1290+24
|
|
ldr r0, .L1290+28
|
|
bl printf
|
|
.L1258:
|
|
mov r0, r4
|
|
bl ftl_free_sblk
|
|
ldr r3, .L1290+32
|
|
ldr r3, [r3]
|
|
ldrh r1, [r3, #124]
|
|
cbz r1, .L1259
|
|
add r0, r3, #392
|
|
movs r2, #0
|
|
.L1261:
|
|
ldrh r7, [r0], #2
|
|
cmp r4, r7
|
|
bne .L1260
|
|
adds r2, r2, #196
|
|
movw r0, #65535
|
|
subs r1, r1, #1
|
|
strh r0, [r3, r2, lsl #1] @ movhi
|
|
strh r1, [r3, #124] @ movhi
|
|
.L1259:
|
|
ldrh r1, [r3, #120]
|
|
cbz r1, .L1262
|
|
add r0, r3, #136
|
|
movs r2, #0
|
|
.L1264:
|
|
ldrh r7, [r0], #2
|
|
cmp r4, r7
|
|
bne .L1263
|
|
adds r2, r2, #68
|
|
movw r0, #65535
|
|
subs r1, r1, #1
|
|
strh r0, [r3, r2, lsl #1] @ movhi
|
|
strh r1, [r3, #120] @ movhi
|
|
.L1262:
|
|
ldrh r1, [r3, #122]
|
|
cbz r1, .L1265
|
|
add r0, r3, #264
|
|
movs r2, #0
|
|
.L1267:
|
|
ldrh r7, [r0], #2
|
|
cmp r4, r7
|
|
bne .L1266
|
|
adds r2, r2, #132
|
|
movw r0, #65535
|
|
subs r1, r1, #1
|
|
strh r0, [r3, r2, lsl #1] @ movhi
|
|
strh r1, [r3, #122] @ movhi
|
|
.L1265:
|
|
adds r5, r5, #1
|
|
b .L1254
|
|
.L1260:
|
|
adds r2, r2, #1
|
|
cmp r2, #64
|
|
bne .L1261
|
|
b .L1259
|
|
.L1263:
|
|
adds r2, r2, #1
|
|
cmp r2, #64
|
|
bne .L1264
|
|
b .L1262
|
|
.L1266:
|
|
adds r2, r2, #1
|
|
cmp r2, #64
|
|
bne .L1267
|
|
b .L1265
|
|
.L1291:
|
|
.align 2
|
|
.L1290:
|
|
.word .LANCHOR11
|
|
.word .LANCHOR70
|
|
.word .LC69
|
|
.word .LANCHOR9
|
|
.word .LANCHOR19
|
|
.word .LC70
|
|
.word .LANCHOR127
|
|
.word .LC0
|
|
.word .LANCHOR12
|
|
.size gc_free_src_blk, .-gc_free_src_blk
|
|
.section .text.print_ftl_debug_info,"ax",%progbits
|
|
.align 1
|
|
.global print_ftl_debug_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type print_ftl_debug_info, %function
|
|
print_ftl_debug_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
sub sp, sp, #32
|
|
ldr r4, .L1293
|
|
ldr r5, .L1293+4
|
|
ldr r6, .L1293+8
|
|
ldr r1, [r4]
|
|
ldr r0, [r5]
|
|
ldr r6, [r6]
|
|
ldr r3, .L1293+12
|
|
ldrh r2, [r1, #146]
|
|
ldrh r1, [r1, #148]
|
|
ldrh r3, [r3]
|
|
str r6, [sp, #28]
|
|
ldr r6, [r0, #528]
|
|
str r6, [sp, #24]
|
|
ldr r0, [r0, #524]
|
|
str r0, [sp, #20]
|
|
ldr r0, .L1293+16
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #16]
|
|
ldr r0, .L1293+20
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #12]
|
|
ldr r0, .L1293+24
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #8]
|
|
ldr r0, .L1293+28
|
|
ldrh r0, [r0]
|
|
str r0, [sp, #4]
|
|
ldr r0, .L1293+32
|
|
ldrh r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, .L1293+36
|
|
bl printf
|
|
ldr r1, [r4]
|
|
ldr r3, .L1293+40
|
|
ldr r0, .L1293+44
|
|
ldr r2, [r1, #64]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r2, [sp, #4]
|
|
ldr r2, [r1, #8]
|
|
str r2, [sp]
|
|
ldr r2, [r1, #28]
|
|
ldr r1, [r1, #20]
|
|
bl printf
|
|
ldr r1, [r4]
|
|
ldr r0, .L1293+48
|
|
ldr r3, [r1, #16]
|
|
ldr r2, [r1, #60]
|
|
ldr r1, [r1, #52]
|
|
lsrs r3, r3, #11
|
|
bl printf
|
|
ldr r2, [r4]
|
|
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, .L1293+52
|
|
ldr r2, [r2, #84]
|
|
bl printf
|
|
ldr r0, .L1293+56
|
|
ldr r3, .L1293+60
|
|
ldr r2, .L1293+64
|
|
ldrh r0, [r0]
|
|
ldr r1, .L1293+68
|
|
ldrh r3, [r3]
|
|
ldrh r2, [r2]
|
|
ldrh r1, [r1]
|
|
str r0, [sp, #4]
|
|
ldr r0, .L1293+72
|
|
ldrh r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, .L1293+76
|
|
bl printf
|
|
ldr r4, [r4]
|
|
ldr r0, [r5]
|
|
ldrh r5, [r4, #150]
|
|
ldrh r3, [r0, #588]
|
|
ldrh r2, [r0, #586]
|
|
ldrh r1, [r0, #584]
|
|
str r5, [sp, #8]
|
|
ldr r4, [r4, #156]
|
|
str r4, [sp, #4]
|
|
ldrh r0, [r0, #590]
|
|
str r0, [sp]
|
|
ldr r0, .L1293+80
|
|
bl printf
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, pc}
|
|
.L1294:
|
|
.align 2
|
|
.L1293:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR12
|
|
.word .LANCHOR128
|
|
.word .LANCHOR103
|
|
.word .LANCHOR91
|
|
.word .LANCHOR99
|
|
.word .LANCHOR97
|
|
.word .LANCHOR107
|
|
.word .LANCHOR105
|
|
.word .LC71
|
|
.word .LANCHOR129
|
|
.word .LC72
|
|
.word .LC73
|
|
.word .LC74
|
|
.word .LANCHOR86
|
|
.word .LANCHOR69
|
|
.word .LANCHOR102
|
|
.word .LANCHOR100
|
|
.word .LANCHOR93
|
|
.word .LC75
|
|
.word .LC76
|
|
.size print_ftl_debug_info, .-print_ftl_debug_info
|
|
.section .text.ftl_write_buf,"ax",%progbits
|
|
.align 1
|
|
.global ftl_write_buf
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_write_buf, %function
|
|
ftl_write_buf:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
mov r4, r0
|
|
cbnz r0, .L1296
|
|
mov r2, #808
|
|
ldr r1, .L1305
|
|
ldr r0, .L1305+4
|
|
bl printf
|
|
bl print_ftl_debug_info
|
|
mov r0, #-1
|
|
pop {r4, r5, r6, pc}
|
|
.L1299:
|
|
mov r1, r4
|
|
ldr r0, .L1305+8
|
|
bl buf_add_tail
|
|
ldr r3, .L1305+12
|
|
ldrb r1, [r4, #40] @ zero_extendqisi2
|
|
ldrb r0, [r6] @ zero_extendqisi2
|
|
ldr r3, [r3]
|
|
adds r0, r0, #1
|
|
ldr r2, [r3, #16]
|
|
uxtb r0, r0
|
|
strb r0, [r6]
|
|
add r2, r2, r1
|
|
str r2, [r3, #16]
|
|
ldr r2, [r3, #32]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #32]
|
|
pop {r4, r5, r6, pc}
|
|
.L1296:
|
|
ldr r5, .L1305+16
|
|
ldrb r1, [r0, #40] @ zero_extendqisi2
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
cmp r1, r2
|
|
bls .L1301
|
|
movw r2, #815
|
|
ldr r1, .L1305
|
|
ldr r0, .L1305+4
|
|
bl printf
|
|
.L1301:
|
|
ldrb r3, [r4, #40] @ zero_extendqisi2
|
|
ldr r6, .L1305+20
|
|
cbz r3, .L1298
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
cmp r2, r3
|
|
bcs .L1299
|
|
.L1298:
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
ldrb r0, [r6] @ zero_extendqisi2
|
|
pop {r4, r5, r6, pc}
|
|
.L1306:
|
|
.align 2
|
|
.L1305:
|
|
.word .LANCHOR130
|
|
.word .LC0
|
|
.word .LANCHOR65
|
|
.word .LANCHOR110
|
|
.word .LANCHOR131
|
|
.word .LANCHOR66
|
|
.size ftl_write_buf, .-ftl_write_buf
|
|
.section .text.ftl_write_completed,"ax",%progbits
|
|
.align 1
|
|
.global ftl_write_completed
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_write_completed, %function
|
|
ftl_write_completed:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov fp, #0
|
|
ldr r8, .L1323+36
|
|
ldr r10, .L1323+40
|
|
.L1308:
|
|
ldrb r6, [r8] @ zero_extendqisi2
|
|
cmp r6, #255
|
|
bne .L1319
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1319:
|
|
movs r3, #48
|
|
ldr r5, .L1323
|
|
muls r3, r6, r3
|
|
add r7, r6, r6, lsl #1
|
|
add r7, r5, r7, lsl #4
|
|
adds r4, r5, r3
|
|
ldrb r3, [r5, r3] @ zero_extendqisi2
|
|
strb r3, [r8]
|
|
ldr r3, [r4, #36]
|
|
adds r3, r3, #1
|
|
bne .L1309
|
|
ldr r3, .L1323+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L1310
|
|
ldr r3, .L1323+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L1311
|
|
.L1310:
|
|
ldr r3, .L1323+12
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #156]
|
|
cmp r3, r10
|
|
beq .L1312
|
|
.L1311:
|
|
ldr r2, .L1323+16
|
|
movs r3, #48
|
|
mla r3, r3, r6, r5
|
|
ldr fp, .L1323+44
|
|
ldrh r1, [r2]
|
|
ldr r2, .L1323+20
|
|
ldr r3, [r3, #24]
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
str r3, [sp, #4]
|
|
rsb r2, r2, #24
|
|
subs r0, r2, r1
|
|
movs r2, #1
|
|
lsls r2, r2, r0
|
|
lsr r0, r3, r1
|
|
ldr r1, .L1323+24
|
|
subs r2, r2, #1
|
|
ands r0, r0, r2
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
ldr r2, [fp]
|
|
movw r1, #65535
|
|
uxth r4, r0
|
|
ldr r0, .L1323+28
|
|
ldr r3, [r2, #560]
|
|
cmp r3, r1
|
|
ldr r3, [sp, #4]
|
|
it eq
|
|
streq r4, [r2, #560]
|
|
mov r1, r4
|
|
it eq
|
|
streq r3, [r2, #564]
|
|
movs r2, #48
|
|
mla r5, r2, r6, r5
|
|
ldr r2, [r5, #20]
|
|
bl printf
|
|
ldr r3, [fp]
|
|
ldr r2, [r3, #556]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #556]
|
|
ldrh r2, [r3, #16]
|
|
cmp r2, r4
|
|
bne .L1314
|
|
movs r2, #0
|
|
strh r2, [r3, #22] @ movhi
|
|
.L1312:
|
|
mov r0, r7
|
|
mov fp, #1
|
|
bl ftl_write_buf
|
|
b .L1308
|
|
.L1314:
|
|
ldrh r2, [r3, #48]
|
|
cmp r2, r4
|
|
itt eq
|
|
moveq r2, #0
|
|
strheq r2, [r3, #54] @ movhi
|
|
b .L1312
|
|
.L1309:
|
|
cmp fp, #0
|
|
beq .L1317
|
|
ldr r2, [r4, #24]
|
|
ldr r1, [r4, #20]
|
|
ldr r0, .L1323+32
|
|
bl printf
|
|
mov r0, r7
|
|
bl ftl_write_buf
|
|
b .L1308
|
|
.L1317:
|
|
ldrh r2, [r4, #32]
|
|
ldr r1, [r4, #28]
|
|
ldr r0, [r4, #20]
|
|
bl lpa_hash_update_ppa
|
|
ldrb r3, [r4, #2] @ zero_extendqisi2
|
|
lsls r2, r3, #29
|
|
bpl .L1318
|
|
bic r3, r3, #2
|
|
strb r3, [r4, #2]
|
|
b .L1308
|
|
.L1318:
|
|
mov r0, r7
|
|
bl zbuf_free
|
|
b .L1308
|
|
.L1324:
|
|
.align 2
|
|
.L1323:
|
|
.word .LANCHOR55
|
|
.word .LANCHOR124
|
|
.word .LANCHOR80
|
|
.word .LANCHOR110
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LC77
|
|
.word .LC78
|
|
.word .LANCHOR64
|
|
.word 1145785929
|
|
.word .LANCHOR12
|
|
.size ftl_write_completed, .-ftl_write_completed
|
|
.section .text.zftl_add_read_buf,"ax",%progbits
|
|
.align 1
|
|
.global zftl_add_read_buf
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_add_read_buf, %function
|
|
zftl_add_read_buf:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
mov r4, r0
|
|
cbnz r0, .L1326
|
|
movw r2, #1148
|
|
ldr r1, .L1330
|
|
ldr r0, .L1330+4
|
|
bl printf
|
|
pop {r4, lr}
|
|
b print_ftl_debug_info
|
|
.L1326:
|
|
ldr r3, .L1330+8
|
|
ldrb r2, [r0, #40] @ zero_extendqisi2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r2, r3
|
|
bls .L1328
|
|
movw r2, #1155
|
|
ldr r1, .L1330
|
|
ldr r0, .L1330+4
|
|
bl printf
|
|
.L1328:
|
|
mov r1, r4
|
|
ldr r0, .L1330+12
|
|
bl buf_add_tail
|
|
ldr r2, .L1330+16
|
|
ldrb r3, [r2] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
strb r3, [r2]
|
|
pop {r4, pc}
|
|
.L1331:
|
|
.align 2
|
|
.L1330:
|
|
.word .LANCHOR132
|
|
.word .LC0
|
|
.word .LANCHOR131
|
|
.word .LANCHOR133
|
|
.word .LANCHOR134
|
|
.size zftl_add_read_buf, .-zftl_add_read_buf
|
|
.section .text.sblk_init,"ax",%progbits
|
|
.align 1
|
|
.global sblk_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_init, %function
|
|
sblk_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r2, .L1333
|
|
movs r3, #255
|
|
movs r0, #0
|
|
strb r3, [r2]
|
|
ldr r2, .L1333+4
|
|
strb r3, [r2]
|
|
ldr r2, .L1333+8
|
|
strb r3, [r2]
|
|
ldr r2, .L1333+12
|
|
strb r3, [r2]
|
|
bx lr
|
|
.L1334:
|
|
.align 2
|
|
.L1333:
|
|
.word .LANCHOR59
|
|
.word .LANCHOR64
|
|
.word .LANCHOR62
|
|
.word .LANCHOR63
|
|
.size sblk_init, .-sblk_init
|
|
.section .text.dump_sblk_queue,"ax",%progbits
|
|
.align 1
|
|
.global dump_sblk_queue
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type dump_sblk_queue, %function
|
|
dump_sblk_queue:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
ldr r4, .L1344
|
|
ldr r0, .L1344+4
|
|
ldrb r1, [r4] @ zero_extendqisi2
|
|
bl printf
|
|
ldrb r4, [r4] @ zero_extendqisi2
|
|
cmp r4, #255
|
|
beq .L1335
|
|
ldr r5, .L1344+8
|
|
add r4, r4, r4, lsl #1
|
|
ldr r6, .L1344+12
|
|
add r4, r5, r4, lsl #4
|
|
.L1337:
|
|
ldr r3, [r4, #24]
|
|
mov r0, r6
|
|
ldrb r2, [r4, #42] @ zero_extendqisi2
|
|
ldrb r1, [r4, #1] @ zero_extendqisi2
|
|
bl printf
|
|
ldrb r4, [r4] @ zero_extendqisi2
|
|
cmp r4, #255
|
|
beq .L1335
|
|
add r4, r4, r4, lsl #1
|
|
add r4, r5, r4, lsl #4
|
|
b .L1337
|
|
.L1335:
|
|
pop {r4, r5, r6, pc}
|
|
.L1345:
|
|
.align 2
|
|
.L1344:
|
|
.word .LANCHOR59
|
|
.word .LC79
|
|
.word .LANCHOR55
|
|
.word .LC80
|
|
.size dump_sblk_queue, .-dump_sblk_queue
|
|
.section .text.queue_lun_state,"ax",%progbits
|
|
.align 1
|
|
.global queue_lun_state
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_lun_state, %function
|
|
queue_lun_state:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1365
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldrb r6, [r3] @ zero_extendqisi2
|
|
cmp r6, #255
|
|
beq .L1354
|
|
ldr r3, .L1365+4
|
|
movs r2, #1
|
|
ldr r10, .L1365+16
|
|
mov r8, #48
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb ip, r3, #24
|
|
lsl r3, r2, r3
|
|
asr r4, r0, ip
|
|
subs r3, r3, #1
|
|
uxth r3, r3
|
|
ands r4, r4, r3
|
|
str r4, [sp]
|
|
ldr r4, .L1365+8
|
|
ldrh lr, [r4]
|
|
sub r4, ip, lr
|
|
lsls r2, r2, r4
|
|
ldr r4, .L1365+12
|
|
subs r2, r2, #1
|
|
ldrb r7, [r4] @ zero_extendqisi2
|
|
asr r4, r0, lr
|
|
uxth r2, r2
|
|
subs r7, r7, #1
|
|
uxth r7, r7
|
|
ands r4, r4, r7
|
|
and r0, r4, r2
|
|
str r0, [sp, #4]
|
|
.L1353:
|
|
mla fp, r8, r6, r10
|
|
ldr r5, [fp, #24]
|
|
lsr r0, r5, ip
|
|
ands r0, r0, r3
|
|
mov r4, r0
|
|
ldr r0, [sp]
|
|
cmp r0, r4
|
|
bne .L1348
|
|
lsr r5, r5, lr
|
|
ldr r4, [sp, #4]
|
|
ldrb r0, [fp, #42] @ zero_extendqisi2
|
|
ands r5, r5, r7
|
|
ands r5, r5, r2
|
|
cmp r4, r5
|
|
bne .L1349
|
|
cmp r1, #1
|
|
bne .L1346
|
|
.L1351:
|
|
cmp r0, #7
|
|
beq .L1348
|
|
cmp r0, #9
|
|
.L1362:
|
|
bne .L1346
|
|
.L1348:
|
|
mul r6, r8, r6
|
|
ldr r0, .L1365+16
|
|
ldrb r6, [r0, r6] @ zero_extendqisi2
|
|
cmp r6, #255
|
|
bne .L1353
|
|
.L1354:
|
|
movs r0, #0
|
|
.L1346:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1349:
|
|
cmp r1, #3
|
|
bhi .L1348
|
|
adr r5, .L1350
|
|
ldr pc, [r5, r1, lsl #2]
|
|
.p2align 2
|
|
.L1350:
|
|
.word .L1346+1
|
|
.word .L1351+1
|
|
.word .L1352+1
|
|
.word .L1346+1
|
|
.p2align 1
|
|
.L1352:
|
|
cmp r0, #11
|
|
b .L1362
|
|
.L1366:
|
|
.align 2
|
|
.L1365:
|
|
.word .LANCHOR59
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR75
|
|
.word .LANCHOR55
|
|
.size queue_lun_state, .-queue_lun_state
|
|
.section .text.queue_remove_completed_req,"ax",%progbits
|
|
.align 1
|
|
.global queue_remove_completed_req
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_remove_completed_req, %function
|
|
queue_remove_completed_req:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov ip, #0
|
|
ldr r5, .L1392
|
|
movs r4, #48
|
|
mov fp, #255
|
|
ldr r6, .L1392+4
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
ldr r1, .L1392+8
|
|
ldr r7, .L1392+12
|
|
str r3, [sp, #4]
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
ldrb r2, [r1] @ zero_extendqisi2
|
|
ldrb r10, [r7] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, .L1392+16
|
|
.L1368:
|
|
cmp r2, #255
|
|
beq .L1369
|
|
mul r8, r4, r2
|
|
mov r0, r2
|
|
add lr, r3, r8
|
|
ldrb lr, [lr, #42] @ zero_extendqisi2
|
|
sub lr, lr, #12
|
|
cmp lr, #1
|
|
bls .L1370
|
|
.L1369:
|
|
cmp ip, #0
|
|
beq .L1367
|
|
strb r2, [r1]
|
|
b .L1367
|
|
.L1370:
|
|
mul lr, r4, r0
|
|
ldrb r2, [r3, r8] @ zero_extendqisi2
|
|
add ip, r3, lr
|
|
strb fp, [r3, lr]
|
|
ldrb lr, [ip, #43] @ zero_extendqisi2
|
|
cmp lr, #1
|
|
bne .L1373
|
|
ldrh ip, [ip, #34]
|
|
cmp ip, #0
|
|
bne .L1381
|
|
mov ip, r10
|
|
mov lr, r7
|
|
.L1374:
|
|
cmp ip, #255
|
|
bne .L1379
|
|
strb r2, [r1]
|
|
movs r2, #48
|
|
mla r3, r2, r0, r3
|
|
ldrb r3, [r3, #1] @ zero_extendqisi2
|
|
strb r3, [lr]
|
|
.L1367:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1373:
|
|
cmp lr, #0
|
|
bne .L1375
|
|
ldr ip, [ip, #20]
|
|
cmp ip, #-1
|
|
beq .L1375
|
|
ldr ip, [sp, #4]
|
|
mov lr, r5
|
|
b .L1374
|
|
.L1381:
|
|
ldr ip, [sp]
|
|
mov lr, r6
|
|
b .L1374
|
|
.L1379:
|
|
mov lr, ip
|
|
mul ip, r4, ip
|
|
ldrb ip, [r3, ip] @ zero_extendqisi2
|
|
cmp ip, #255
|
|
bne .L1379
|
|
mla r0, r4, r0, r3
|
|
mul lr, r4, lr
|
|
ldrb r0, [r0, #1] @ zero_extendqisi2
|
|
strb r0, [r3, lr]
|
|
.L1375:
|
|
mov ip, #1
|
|
b .L1368
|
|
.L1393:
|
|
.align 2
|
|
.L1392:
|
|
.word .LANCHOR62
|
|
.word .LANCHOR63
|
|
.word .LANCHOR59
|
|
.word .LANCHOR64
|
|
.word .LANCHOR55
|
|
.size queue_remove_completed_req, .-queue_remove_completed_req
|
|
.section .text.pm_select_ram_region,"ax",%progbits
|
|
.align 1
|
|
.global pm_select_ram_region
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_select_ram_region, %function
|
|
pm_select_ram_region:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r2, .L1404
|
|
movw r0, #65535
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r3, #0
|
|
mov r1, r2
|
|
.L1396:
|
|
ldrh r5, [r2, r3, lsl #3]
|
|
uxth r4, r3
|
|
cmp r5, r0
|
|
beq .L1395
|
|
adds r3, r3, #1
|
|
cmp r3, #32
|
|
bne .L1396
|
|
movs r2, #0
|
|
mov r4, r3
|
|
mov r0, #32768
|
|
.L1398:
|
|
add r3, r1, r2, lsl #3
|
|
uxth r5, r2
|
|
ldrh r3, [r3, #2]
|
|
lsls r6, r3, #16
|
|
bmi .L1397
|
|
cmp r3, r0
|
|
itt cc
|
|
movcc r0, r3
|
|
movcc r4, r5
|
|
.L1397:
|
|
adds r2, r2, #1
|
|
cmp r2, #32
|
|
bne .L1398
|
|
cmp r4, #32
|
|
bne .L1395
|
|
ldr r3, .L1404+4
|
|
mov r2, #-1
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
movs r3, #0
|
|
.L1400:
|
|
add r0, r1, r3, lsl #3
|
|
uxth r6, r3
|
|
ldrh r0, [r0, #2]
|
|
cmp r0, r2
|
|
bcs .L1399
|
|
ldrh r7, [r1, r3, lsl #3]
|
|
cmp r7, r5
|
|
itt ne
|
|
movne r2, r0
|
|
movne r4, r6
|
|
.L1399:
|
|
adds r3, r3, #1
|
|
cmp r3, #32
|
|
bne .L1400
|
|
cmp r4, #32
|
|
bne .L1395
|
|
movw r2, #377
|
|
ldr r1, .L1404+8
|
|
ldr r0, .L1404+12
|
|
bl printf
|
|
.L1395:
|
|
mov r0, r4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1405:
|
|
.align 2
|
|
.L1404:
|
|
.word .LANCHOR135
|
|
.word .LANCHOR136
|
|
.word .LANCHOR137
|
|
.word .LC0
|
|
.size pm_select_ram_region, .-pm_select_ram_region
|
|
.section .text.idb_init,"ax",%progbits
|
|
.align 1
|
|
.global idb_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type idb_init, %function
|
|
idb_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1407
|
|
movs r0, #0
|
|
str r0, [r3]
|
|
ldr r3, .L1407+4
|
|
str r0, [r3]
|
|
ldr r3, .L1407+8
|
|
strb r0, [r3]
|
|
ldr r3, .L1407+12
|
|
str r0, [r3]
|
|
bx lr
|
|
.L1408:
|
|
.align 2
|
|
.L1407:
|
|
.word .LANCHOR138
|
|
.word .LANCHOR139
|
|
.word .LANCHOR140
|
|
.word .LANCHOR141
|
|
.size idb_init, .-idb_init
|
|
.section .text.ftl_memset,"ax",%progbits
|
|
.align 1
|
|
.global ftl_memset
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_memset, %function
|
|
ftl_memset:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b memset
|
|
.size ftl_memset, .-ftl_memset
|
|
.section .text.flash_lsb_page_tbl_build,"ax",%progbits
|
|
.align 1
|
|
.global flash_lsb_page_tbl_build
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_lsb_page_tbl_build, %function
|
|
flash_lsb_page_tbl_build:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
mov r5, r0
|
|
ldr r3, .L1463
|
|
mov r0, #1024
|
|
ldr r3, [r3]
|
|
ldrb r1, [r3, #12] @ zero_extendqisi2
|
|
bl __aeabi_idiv
|
|
uxth r4, r0
|
|
cbnz r5, .L1411
|
|
ldr r3, .L1463+4
|
|
.L1412:
|
|
strh r5, [r3, r5, lsl #1] @ movhi
|
|
adds r5, r5, #1
|
|
cmp r5, #512
|
|
bne .L1412
|
|
.L1418:
|
|
movs r1, #255
|
|
mov r2, #2048
|
|
ldr r0, .L1463+8
|
|
bl ftl_memset
|
|
ldr r0, .L1463+4
|
|
movs r3, #0
|
|
ldr r1, .L1463+8
|
|
.L1413:
|
|
ldrh r2, [r0, r3, lsl #1]
|
|
adds r3, r3, #1
|
|
strh r2, [r1, r2, lsl #1] @ movhi
|
|
uxth r2, r3
|
|
cmp r2, r4
|
|
bcc .L1413
|
|
pop {r3, r4, r5, pc}
|
|
.L1411:
|
|
cmp r5, #1
|
|
bne .L1414
|
|
ldr r1, .L1463+4
|
|
movs r3, #0
|
|
.L1417:
|
|
cmp r3, #3
|
|
uxth r2, r3
|
|
bls .L1415
|
|
tst r2, #1
|
|
ite ne
|
|
movne r0, #3
|
|
moveq r0, #2
|
|
rsb r2, r0, r2, lsl #1
|
|
uxth r2, r2
|
|
.L1415:
|
|
strh r2, [r1, r3, lsl #1] @ movhi
|
|
adds r3, r3, #1
|
|
cmp r3, #512
|
|
bne .L1417
|
|
b .L1418
|
|
.L1414:
|
|
cmp r5, #2
|
|
bne .L1419
|
|
ldr r1, .L1463+4
|
|
movs r2, #0
|
|
.L1421:
|
|
uxth r3, r2
|
|
cmp r2, #1
|
|
ittt hi
|
|
lslhi r3, r3, #1
|
|
addhi r3, r3, #-1
|
|
uxthhi r3, r3
|
|
strh r3, [r1, r2, lsl #1] @ movhi
|
|
adds r2, r2, #1
|
|
cmp r2, #512
|
|
bne .L1421
|
|
b .L1418
|
|
.L1419:
|
|
cmp r5, #3
|
|
bne .L1422
|
|
ldr r1, .L1463+4
|
|
movs r3, #0
|
|
.L1425:
|
|
cmp r3, #5
|
|
uxth r2, r3
|
|
bls .L1423
|
|
tst r2, #1
|
|
ite ne
|
|
movne r0, #5
|
|
moveq r0, #4
|
|
rsb r2, r0, r2, lsl #1
|
|
uxth r2, r2
|
|
.L1423:
|
|
strh r2, [r1, r3, lsl #1] @ movhi
|
|
adds r3, r3, #1
|
|
cmp r3, #512
|
|
bne .L1425
|
|
b .L1418
|
|
.L1422:
|
|
cmp r5, #4
|
|
mov r3, #0
|
|
bne .L1426
|
|
ldr r2, .L1463+4
|
|
strh r3, [r2] @ movhi
|
|
movs r3, #1
|
|
strh r3, [r2, #2] @ movhi
|
|
movs r3, #2
|
|
strh r3, [r2, #4] @ movhi
|
|
movs r3, #3
|
|
strh r3, [r2, #6] @ movhi
|
|
movs r3, #5
|
|
strh r3, [r2, #10] @ movhi
|
|
movs r3, #7
|
|
strh r3, [r2, #12] @ movhi
|
|
movs r3, #8
|
|
strh r5, [r2, #8] @ movhi
|
|
strh r3, [r2, #14]! @ movhi
|
|
.L1428:
|
|
tst r3, #1
|
|
ite ne
|
|
movne r1, #7
|
|
moveq r1, #6
|
|
rsb r1, r1, r3, lsl #1
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
strh r1, [r2, #2]! @ movhi
|
|
cmp r3, #512
|
|
bne .L1428
|
|
b .L1418
|
|
.L1426:
|
|
cmp r5, #5
|
|
bne .L1429
|
|
ldr r2, .L1463+4
|
|
.L1430:
|
|
strh r3, [r2, r3, lsl #1] @ movhi
|
|
adds r3, r3, #1
|
|
cmp r3, #16
|
|
bne .L1430
|
|
ldr r2, .L1463+12
|
|
.L1431:
|
|
strh r3, [r2, #2]! @ movhi
|
|
adds r3, r3, #2
|
|
uxth r3, r3
|
|
cmp r3, #1008
|
|
bne .L1431
|
|
b .L1418
|
|
.L1429:
|
|
cmp r5, #8
|
|
bne .L1432
|
|
ldr r2, .L1463+4
|
|
.L1433:
|
|
strh r3, [r3, r2] @ movhi
|
|
adds r3, r3, #2
|
|
cmp r3, #1024
|
|
bne .L1433
|
|
b .L1418
|
|
.L1432:
|
|
cmp r5, #9
|
|
bne .L1434
|
|
ldr r2, .L1463+4
|
|
movw r1, #1021
|
|
strh r3, [r2] @ movhi
|
|
movs r3, #1
|
|
strh r3, [r2, #2] @ movhi
|
|
mov r3, r2
|
|
movs r2, #2
|
|
strh r2, [r3, #4]! @ movhi
|
|
movs r2, #3
|
|
.L1435:
|
|
strh r2, [r3, #2]! @ movhi
|
|
adds r2, r2, #2
|
|
uxth r2, r2
|
|
cmp r2, r1
|
|
bne .L1435
|
|
b .L1418
|
|
.L1434:
|
|
cmp r5, #10
|
|
bne .L1436
|
|
ldr r2, .L1463+4
|
|
.L1437:
|
|
strh r3, [r2, r3, lsl #1] @ movhi
|
|
adds r3, r3, #1
|
|
cmp r3, #63
|
|
bne .L1437
|
|
ldr r2, .L1463+16
|
|
movw r1, #961
|
|
.L1438:
|
|
strh r3, [r2, #2]! @ movhi
|
|
adds r3, r3, #2
|
|
uxth r3, r3
|
|
cmp r3, r1
|
|
bne .L1438
|
|
b .L1418
|
|
.L1436:
|
|
cmp r5, #11
|
|
bne .L1439
|
|
ldr r2, .L1463+4
|
|
movs r3, #0
|
|
.L1440:
|
|
strh r3, [r2, r3, lsl #1] @ movhi
|
|
adds r3, r3, #1
|
|
cmp r3, #8
|
|
bne .L1440
|
|
ldr r1, .L1463+20
|
|
.L1442:
|
|
tst r3, #1
|
|
ite ne
|
|
movne r2, #7
|
|
moveq r2, #6
|
|
rsb r2, r2, r3, lsl #1
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
strh r2, [r1, #2]! @ movhi
|
|
cmp r3, #512
|
|
bne .L1442
|
|
b .L1418
|
|
.L1439:
|
|
cmp r5, #13
|
|
bne .L1418
|
|
ldr r2, .L1463+24
|
|
movs r3, #0
|
|
.L1443:
|
|
strh r3, [r2, #2]! @ movhi
|
|
adds r3, r3, #3
|
|
uxth r3, r3
|
|
cmp r3, #1536
|
|
bne .L1443
|
|
b .L1418
|
|
.L1464:
|
|
.align 2
|
|
.L1463:
|
|
.word .LANCHOR21
|
|
.word .LANCHOR3
|
|
.word .LANCHOR142
|
|
.word .LANCHOR3+30
|
|
.word .LANCHOR3+124
|
|
.word .LANCHOR3+14
|
|
.word .LANCHOR3-2
|
|
.size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build
|
|
.section .text.flash_die_info_init,"ax",%progbits
|
|
.align 1
|
|
.global flash_die_info_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_die_info_init, %function
|
|
flash_die_info_init:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1482
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L1466
|
|
ldr r1, .L1482+4
|
|
ldr r0, .L1482+8
|
|
bl printf
|
|
.L1466:
|
|
ldr r4, .L1482+12
|
|
movs r6, #0
|
|
ldr r5, .L1482+16
|
|
ldr r7, .L1482+20
|
|
ldrh r3, [r4, #26]
|
|
ldrb r1, [r4, #12] @ zero_extendqisi2
|
|
ldrh r0, [r4, #10]
|
|
strh r3, [r7] @ movhi
|
|
strb r6, [r5]
|
|
bl __aeabi_idiv
|
|
ldr r10, .L1482+48
|
|
movs r2, #8
|
|
ldr r3, .L1482+24
|
|
mov r1, r6
|
|
mov r8, r10
|
|
strh r0, [r3] @ movhi
|
|
ldr r0, .L1482+28
|
|
bl ftl_memset
|
|
movs r2, #32
|
|
mov r1, r6
|
|
ldr r0, .L1482+32
|
|
bl ftl_memset
|
|
.L1468:
|
|
ldr r3, .L1482+36
|
|
movs r2, #2
|
|
add r1, r10, r6, lsl #3
|
|
ldr r0, .L1482+40
|
|
strb r2, [r6, r3]
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
bl flash_mem_cmp8
|
|
cbnz r0, .L1467
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
ldr r2, .L1482+32
|
|
str r0, [r2, r3, lsl #2]
|
|
adds r2, r3, #1
|
|
strb r2, [r5]
|
|
uxtb r0, r6
|
|
ldr r2, .L1482+28
|
|
strb r0, [r2, r3]
|
|
bl zftl_flash_enter_slc_mode
|
|
.L1467:
|
|
adds r6, r6, #1
|
|
cmp r6, #4
|
|
bne .L1468
|
|
ldrb r3, [r4, #8] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
beq .L1469
|
|
.L1473:
|
|
ldrb r2, [r4, #13] @ zero_extendqisi2
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
smulbb r3, r3, r2
|
|
ldrh r2, [r4, #14]
|
|
smulbb r3, r3, r2
|
|
ldr r2, .L1482+44
|
|
strh r3, [r2] @ movhi
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1469:
|
|
ldrh r6, [r7]
|
|
movs r7, #0
|
|
ldrb r3, [r4, #13] @ zero_extendqisi2
|
|
ldrb r10, [r4] @ zero_extendqisi2
|
|
ldrb fp, [r4, #23] @ zero_extendqisi2
|
|
muls r3, r6, r3
|
|
ldrh r6, [r4, #14]
|
|
and r6, r6, #65280
|
|
muls r6, r3, r6
|
|
lsls r3, r6, #1
|
|
str r3, [sp]
|
|
ldr r3, .L1482+28
|
|
.L1472:
|
|
mov r2, r10
|
|
add r1, r8, r7, lsl #3
|
|
ldr r0, .L1482+40
|
|
str r3, [sp, #4]
|
|
bl flash_mem_cmp8
|
|
ldr r3, [sp, #4]
|
|
cbnz r0, .L1470
|
|
ldr r1, [sp]
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
ldr r0, .L1482+32
|
|
cmp fp, #0
|
|
it eq
|
|
moveq r1, r6
|
|
strb r7, [r3, r2]
|
|
str r1, [r0, r2, lsl #2]
|
|
adds r1, r2, #1
|
|
strb r1, [r5]
|
|
.L1470:
|
|
adds r7, r7, #1
|
|
cmp r7, #4
|
|
bne .L1472
|
|
b .L1473
|
|
.L1483:
|
|
.align 2
|
|
.L1482:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR143
|
|
.word .LC1
|
|
.word .LANCHOR32
|
|
.word .LANCHOR23
|
|
.word .LANCHOR2
|
|
.word .LANCHOR144
|
|
.word .LANCHOR29
|
|
.word .LANCHOR145
|
|
.word .LANCHOR33
|
|
.word .LANCHOR32+1
|
|
.word .LANCHOR146
|
|
.word .LANCHOR47
|
|
.size flash_die_info_init, .-flash_die_info_init
|
|
.section .text.lpa_hash_init,"ax",%progbits
|
|
.align 1
|
|
.global lpa_hash_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type lpa_hash_init, %function
|
|
lpa_hash_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
mov r2, #512
|
|
movs r1, #255
|
|
ldr r0, .L1485
|
|
bl ftl_memset
|
|
ldr r3, .L1485+4
|
|
movs r1, #255
|
|
ldr r2, .L1485+8
|
|
ldrh r3, [r3]
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
muls r2, r3, r2
|
|
ldr r3, .L1485+12
|
|
ldr r0, [r3]
|
|
lsls r2, r2, #2
|
|
pop {r3, lr}
|
|
b ftl_memset
|
|
.L1486:
|
|
.align 2
|
|
.L1485:
|
|
.word .LANCHOR116
|
|
.word .LANCHOR94
|
|
.word .LANCHOR79
|
|
.word .LANCHOR118
|
|
.size lpa_hash_init, .-lpa_hash_init
|
|
.section .text.lpa_rebuild_hash,"ax",%progbits
|
|
.align 1
|
|
.global lpa_rebuild_hash
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type lpa_rebuild_hash, %function
|
|
lpa_rebuild_hash:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
ldr r3, .L1498
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L1488
|
|
movs r3, #0
|
|
movs r2, #239
|
|
ldr r1, .L1498+4
|
|
ldr r0, .L1498+8
|
|
bl printf
|
|
.L1488:
|
|
ldr r6, .L1498+12
|
|
mov r2, #512
|
|
ldr r4, .L1498+16
|
|
movs r1, #255
|
|
ldr r0, .L1498+20
|
|
bl ftl_memset
|
|
ldrh r3, [r4]
|
|
movs r1, #255
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
ldr r5, .L1498+24
|
|
muls r2, r3, r2
|
|
ldr r0, [r5]
|
|
lsls r2, r2, #2
|
|
bl ftl_memset
|
|
ldr r3, .L1498+28
|
|
movs r2, #0
|
|
ldrb r6, [r6] @ zero_extendqisi2
|
|
ldr ip, [r5]
|
|
ldr r7, [r3]
|
|
ldr r0, .L1498+20
|
|
.L1489:
|
|
ldrh r3, [r4]
|
|
uxth r5, r2
|
|
mov r1, r5
|
|
muls r3, r6, r3
|
|
cmp r5, r3, lsl #1
|
|
blt .L1491
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L1491:
|
|
ldr r3, [r7, r1, lsl #2]
|
|
adds r2, r2, #1
|
|
cmp r3, #-1
|
|
itttt ne
|
|
uxtbne r3, r3
|
|
ldrhne lr, [r0, r3, lsl #1]
|
|
strhne r5, [r0, r3, lsl #1] @ movhi
|
|
strhne lr, [ip, r1, lsl #1] @ movhi
|
|
b .L1489
|
|
.L1499:
|
|
.align 2
|
|
.L1498:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR147
|
|
.word .LC81
|
|
.word .LANCHOR79
|
|
.word .LANCHOR94
|
|
.word .LANCHOR116
|
|
.word .LANCHOR118
|
|
.word .LANCHOR117
|
|
.size lpa_rebuild_hash, .-lpa_rebuild_hash
|
|
.section .text.zftl_read_flash_info,"ax",%progbits
|
|
.align 1
|
|
.global zftl_read_flash_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_read_flash_info, %function
|
|
zftl_read_flash_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
movs r2, #11
|
|
movs r1, #0
|
|
mov r4, r0
|
|
bl ftl_memset
|
|
ldr r1, .L1503
|
|
movs r2, #0
|
|
ldr r3, .L1503+4
|
|
strb r2, [r4, #10]
|
|
ldrb r0, [r1, #9] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
smulbb r3, r3, r0
|
|
uxth r3, r3
|
|
strb r3, [r4, #4]
|
|
lsrs r3, r3, #8
|
|
strb r3, [r4, #5]
|
|
ldr r3, .L1503+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
strb r3, [r4, #7]
|
|
ldr r3, .L1503+12
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
strb r5, [r4]
|
|
ldrb r5, [r3, #1] @ zero_extendqisi2
|
|
strb r5, [r4, #1]
|
|
ldrb r5, [r3, #2] @ zero_extendqisi2
|
|
ldrb r3, [r3, #3] @ zero_extendqisi2
|
|
strb r0, [r4, #6]
|
|
strb r5, [r4, #2]
|
|
movs r5, #1
|
|
strb r3, [r4, #3]
|
|
movs r3, #32
|
|
strb r3, [r4, #8]
|
|
ldrb r3, [r1, #7] @ zero_extendqisi2
|
|
ldr r0, .L1503+16
|
|
strb r3, [r4, #9]
|
|
ldr r3, .L1503+20
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
mov r3, r2
|
|
.L1501:
|
|
uxtb r2, r3
|
|
cmp r1, r2
|
|
bhi .L1502
|
|
pop {r4, r5, r6, pc}
|
|
.L1502:
|
|
ldrb r2, [r3, r0] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
ldrb r6, [r4, #10] @ zero_extendqisi2
|
|
lsl r2, r5, r2
|
|
orrs r2, r2, r6
|
|
strb r2, [r4, #10]
|
|
b .L1501
|
|
.L1504:
|
|
.align 2
|
|
.L1503:
|
|
.word .LANCHOR32
|
|
.word .LANCHOR2
|
|
.word .LANCHOR49
|
|
.word .LANCHOR67
|
|
.word .LANCHOR29
|
|
.word .LANCHOR23
|
|
.size zftl_read_flash_info, .-zftl_read_flash_info
|
|
.section .text.gc_static_wearleveling,"ax",%progbits
|
|
.align 1
|
|
.global gc_static_wearleveling
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_static_wearleveling, %function
|
|
gc_static_wearleveling:
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r0, .L1624
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #48
|
|
ldr r3, [r0]
|
|
ldr r3, [r3, #32]
|
|
cmp r3, #10240
|
|
bls .L1506
|
|
bl ftl_tmp_into_update
|
|
.L1506:
|
|
ldr r3, .L1624+4
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #568]
|
|
ldr r1, [r3, #12]
|
|
add r4, r2, #35840
|
|
adds r4, r4, #160
|
|
cmp r1, r4
|
|
bcs .L1507
|
|
ldr r5, [r0]
|
|
ldr r4, [r3, #572]
|
|
ldr r5, [r5, #36]
|
|
add r4, r4, #256
|
|
cmp r5, r4
|
|
bcc .L1561
|
|
.L1507:
|
|
add r2, r2, #860160
|
|
add r2, r2, #3840
|
|
cmp r1, r2
|
|
bhi .L1509
|
|
ldr r4, [r0]
|
|
ldr r2, [r3, #572]
|
|
ldr r4, [r4, #36]
|
|
adds r2, r2, #32
|
|
cmp r4, r2
|
|
bls .L1562
|
|
.L1509:
|
|
ldr r2, [r0]
|
|
movw r4, #65535
|
|
ldr r10, .L1624+12
|
|
mov fp, r4
|
|
movs r5, #0
|
|
ldrh r7, [r2, #134]
|
|
ldr r0, [r2, #36]
|
|
str r5, [sp, #24]
|
|
str r1, [r3, #568]
|
|
str r0, [r3, #572]
|
|
str r5, [sp, #40]
|
|
str r5, [sp, #44]
|
|
str r5, [sp, #36]
|
|
str r5, [sp, #32]
|
|
str r5, [sp, #20]
|
|
str r5, [sp, #28]
|
|
.L1511:
|
|
ldr r3, .L1624+8
|
|
ldrh r3, [r3]
|
|
cmp r3, r7
|
|
bhi .L1522
|
|
ldr r7, .L1624+4
|
|
movs r3, #0
|
|
movs r1, #255
|
|
movs r2, #128
|
|
ldr r0, [r7]
|
|
strh r3, [r0, #122] @ movhi
|
|
add r0, r0, #264
|
|
bl ftl_memset
|
|
ldr r3, [r7]
|
|
ldrh r7, [r3, #586]
|
|
ldr r3, .L1624+12
|
|
ldr r8, [r3]
|
|
ldr r3, .L1624+16
|
|
ldr r3, [r3]
|
|
add r10, r8, r7, lsl #2
|
|
lsls r1, r3, #21
|
|
bpl .L1523
|
|
ldr r1, .L1624+20
|
|
ldr r3, [r8, r7, lsl #2]
|
|
ldrh r2, [r8, r7, lsl #2]
|
|
ldr r1, [r1]
|
|
ubfx r3, r3, #11, #8
|
|
ldr r0, .L1624+24
|
|
ubfx r2, r2, #0, #11
|
|
ldrh r1, [r1, r7, lsl #1]
|
|
str r1, [sp, #12]
|
|
ldrb r1, [r10, #3] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrb r1, [r10, #2] @ zero_extendqisi2
|
|
lsrs r1, r1, #5
|
|
str r1, [sp, #4]
|
|
ldrb r1, [r10, #2] @ zero_extendqisi2
|
|
ubfx r1, r1, #3, #2
|
|
str r1, [sp]
|
|
mov r1, r7
|
|
bl printf
|
|
.L1523:
|
|
ldrb r3, [r10, #2] @ zero_extendqisi2
|
|
and r1, r3, #224
|
|
cmp r1, #32
|
|
bne .L1524
|
|
ldr r2, .L1624
|
|
ldr r2, [r2]
|
|
ldrh r2, [r2, #688]
|
|
cmp r2, #2
|
|
ittt hi
|
|
ldrhi r2, .L1624+28
|
|
movhi r0, #1
|
|
strhi r0, [r2]
|
|
.L1524:
|
|
lsls r2, r3, #28
|
|
bpl .L1525
|
|
ldr r2, .L1624
|
|
ldr r2, [r2]
|
|
ldrh r0, [r2, #96]
|
|
ldr r2, .L1624+32
|
|
ldrh ip, [r2]
|
|
ldrh r2, [r8, r7, lsl #2]
|
|
ubfx r2, r2, #0, #11
|
|
add r2, r2, ip, lsr #2
|
|
cmp r0, r2
|
|
ble .L1525
|
|
and r3, r3, #192
|
|
ldr r7, .L1624+4
|
|
cmp r3, #64
|
|
bne .L1526
|
|
ldr r3, [r7]
|
|
movs r2, #1
|
|
movs r1, #0
|
|
ldrh r0, [r3, #586]
|
|
bl gc_add_sblk
|
|
ldr r3, .L1624+36
|
|
movs r2, #1
|
|
strh r2, [r3, #2180] @ movhi
|
|
.L1525:
|
|
ldr r3, .L1624+4
|
|
ldr r3, [r3]
|
|
ldrh r7, [r3, #584]
|
|
ldr r3, .L1624+12
|
|
ldr r8, [r3]
|
|
ldr r3, .L1624+16
|
|
ldr r3, [r3]
|
|
add r10, r8, r7, lsl #2
|
|
lsls r6, r3, #21
|
|
bpl .L1527
|
|
ldr r1, .L1624+20
|
|
ldr r3, [r8, r7, lsl #2]
|
|
ldrh r2, [r8, r7, lsl #2]
|
|
ldr r1, [r1]
|
|
ubfx r3, r3, #11, #8
|
|
ldr r0, .L1624+40
|
|
ubfx r2, r2, #0, #11
|
|
ldrh r1, [r1, r7, lsl #1]
|
|
str r1, [sp, #12]
|
|
ldrb r1, [r10, #3] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrb r1, [r10, #2] @ zero_extendqisi2
|
|
lsrs r1, r1, #5
|
|
str r1, [sp, #4]
|
|
ldrb r1, [r10, #2] @ zero_extendqisi2
|
|
ubfx r1, r1, #3, #2
|
|
str r1, [sp]
|
|
mov r1, r7
|
|
bl printf
|
|
.L1527:
|
|
ldrb r3, [r10, #2] @ zero_extendqisi2
|
|
lsls r0, r3, #28
|
|
bpl .L1528
|
|
ldr r2, .L1624
|
|
ldr r2, [r2]
|
|
ldrh r1, [r2, #98]
|
|
ldr r2, .L1624+44
|
|
ldrh r0, [r2]
|
|
ldr r2, [r8, r7, lsl #2]
|
|
ubfx r2, r2, #11, #8
|
|
add r2, r2, r0, lsr #2
|
|
cmp r1, r2
|
|
ble .L1528
|
|
and r2, r3, #192
|
|
cmp r2, #64
|
|
bne .L1529
|
|
ldr r3, .L1624+4
|
|
movs r2, #1
|
|
movs r1, #0
|
|
ldr r3, [r3]
|
|
ldrh r0, [r3, #584]
|
|
bl gc_add_sblk
|
|
ldr r3, .L1624+36
|
|
movs r2, #1
|
|
strh r2, [r3, #2180] @ movhi
|
|
.L1528:
|
|
ldr r3, .L1624+16
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #21
|
|
bpl .L1530
|
|
ldr r3, .L1624+12
|
|
ldr r1, .L1624+20
|
|
ldr r2, [r3]
|
|
ldr r1, [r1]
|
|
ldr r3, [r2, r5, lsl #2]
|
|
ldrh r1, [r1, r5, lsl #1]
|
|
add r0, r2, r5, lsl #2
|
|
ldrh r2, [r2, r5, lsl #2]
|
|
ubfx r3, r3, #11, #8
|
|
str r1, [sp, #12]
|
|
ldrb r1, [r0, #3] @ zero_extendqisi2
|
|
ubfx r2, r2, #0, #11
|
|
str r1, [sp, #8]
|
|
ldrb r1, [r0, #2] @ zero_extendqisi2
|
|
lsrs r1, r1, #5
|
|
str r1, [sp, #4]
|
|
ldrb r1, [r0, #2] @ zero_extendqisi2
|
|
ldr r0, .L1624+48
|
|
ubfx r1, r1, #3, #2
|
|
str r1, [sp]
|
|
mov r1, r5
|
|
bl printf
|
|
.L1530:
|
|
ldr r3, .L1624+16
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #21
|
|
bpl .L1531
|
|
ldr r3, .L1624+12
|
|
ldr r1, [sp, #24]
|
|
ldr r5, [sp, #24]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #24]
|
|
add r0, r2, r3, lsl #2
|
|
ldr r3, [r2, r3, lsl #2]
|
|
ldrh r2, [r2, r1, lsl #2]
|
|
ldr r1, .L1624+20
|
|
ubfx r3, r3, #11, #8
|
|
ubfx r2, r2, #0, #11
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1, r5, lsl #1]
|
|
str r1, [sp, #12]
|
|
ldrb r1, [r0, #3] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrb r1, [r0, #2] @ zero_extendqisi2
|
|
lsrs r1, r1, #5
|
|
str r1, [sp, #4]
|
|
ldrb r1, [r0, #2] @ zero_extendqisi2
|
|
ldr r0, .L1624+52
|
|
ubfx r1, r1, #3, #2
|
|
str r1, [sp]
|
|
mov r1, r5
|
|
bl printf
|
|
.L1531:
|
|
ldr r6, .L1624
|
|
ldrh r3, [sp, #20]
|
|
ldr r1, [sp, #32]
|
|
ldr r5, [r6]
|
|
ldr r0, [sp, #40]
|
|
strh r3, [r5, #96] @ movhi
|
|
ldrh r3, [sp, #28]
|
|
strh r4, [r5, #92] @ movhi
|
|
strh fp, [r5, #94] @ movhi
|
|
strh r3, [r5, #98] @ movhi
|
|
bl __aeabi_uidiv
|
|
ldr r1, [sp, #36]
|
|
mov r7, r0
|
|
strh r0, [r5, #88] @ movhi
|
|
ldr r0, [sp, #44]
|
|
bl __aeabi_uidiv
|
|
strh r0, [r5, #90] @ movhi
|
|
ldr r5, .L1624+16
|
|
ldr r3, [r5]
|
|
lsls r3, r3, #21
|
|
bpl .L1532
|
|
uxth r0, r0
|
|
uxth r3, r7
|
|
ldr r2, [sp, #36]
|
|
str r0, [sp]
|
|
ldr r1, [sp, #32]
|
|
ldr r0, .L1624+56
|
|
bl printf
|
|
.L1532:
|
|
ldr r3, [r5]
|
|
ldr r5, .L1624+44
|
|
tst r3, #1024
|
|
beq .L1533
|
|
ldrh r3, [r5]
|
|
mov r2, fp
|
|
mov r1, r4
|
|
ldr r0, .L1624+60
|
|
str r3, [sp, #8]
|
|
b .L1625
|
|
.L1626:
|
|
.align 2
|
|
.L1624:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR12
|
|
.word .LANCHOR8
|
|
.word .LANCHOR9
|
|
.word .LANCHOR19
|
|
.word .LANCHOR11
|
|
.word .LC83
|
|
.word .LANCHOR148
|
|
.word .LANCHOR149
|
|
.word .LANCHOR70
|
|
.word .LC84
|
|
.word .LANCHOR150
|
|
.word .LC85
|
|
.word .LC86
|
|
.word .LC87
|
|
.word .LC88
|
|
.L1625:
|
|
ldr r3, .L1627
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
bl printf
|
|
.L1533:
|
|
ldr r3, [sp, #28]
|
|
sub r3, r3, fp
|
|
str r3, [sp, #24]
|
|
ldr r2, [sp, #24]
|
|
ldrh r3, [r5]
|
|
cmp r2, r3
|
|
bgt .L1534
|
|
ldr r2, .L1627
|
|
ldr r3, [sp, #20]
|
|
ldrh r2, [r2]
|
|
subs r3, r3, r4
|
|
cmp r3, r2
|
|
ble .L1563
|
|
.L1534:
|
|
ldr r3, .L1627+4
|
|
mov r8, #0
|
|
ldr r3, [r3]
|
|
ldrh r5, [r3, #580]
|
|
ldr r3, [r6]
|
|
mov r6, r8
|
|
ldrh r10, [r3, #134]
|
|
.L1536:
|
|
ldr r3, .L1627+8
|
|
ldrh r3, [r3]
|
|
cmp r10, r3
|
|
bcc .L1546
|
|
.L1545:
|
|
ldr r3, .L1627+4
|
|
ldr r3, [r3]
|
|
str r5, [r3, #580]
|
|
.L1535:
|
|
cmp fp, #0
|
|
beq .L1548
|
|
ldr r3, .L1627+12
|
|
ldr r1, [r3]
|
|
ldr r3, .L1627+8
|
|
ldrh r2, [r1, #134]
|
|
ldrh r7, [r3]
|
|
ldr r3, .L1627+16
|
|
ldr r3, [r3]
|
|
add r3, r3, r2, lsl #2
|
|
.L1549:
|
|
cmp r2, r7
|
|
bcc .L1551
|
|
ldrh r3, [r1, #72]
|
|
add r3, r3, fp
|
|
strh r3, [r1, #72] @ movhi
|
|
ldrh r3, [r1, #98]
|
|
cmp fp, r3
|
|
itt cc
|
|
subcc r3, r3, fp
|
|
strhcc r3, [r1, #98] @ movhi
|
|
.L1548:
|
|
cbz r4, .L1554
|
|
ldr r3, .L1627+12
|
|
ldr r1, [r3]
|
|
ldr r3, .L1627+8
|
|
ldrh r2, [r1, #134]
|
|
ldrh ip, [r3]
|
|
ldr r3, .L1627+16
|
|
ldr r3, [r3]
|
|
add r3, r3, r2, lsl #2
|
|
.L1555:
|
|
cmp r2, ip
|
|
bcc .L1557
|
|
ldrh r3, [r1, #74]
|
|
add r3, r3, r4
|
|
strh r3, [r1, #74] @ movhi
|
|
ldrh r3, [r1, #96]
|
|
cmp r4, r3
|
|
itt cc
|
|
subcc r4, r3, r4
|
|
strhcc r4, [r1, #96] @ movhi
|
|
.L1554:
|
|
movs r1, #0
|
|
ldr r0, .L1627+20
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
beq .L1510
|
|
ldr r2, .L1627+24
|
|
ldr r1, [r2]
|
|
ldr r2, .L1627+28
|
|
ldrh r3, [r1, r0, lsl #1]
|
|
ldrh r2, [r2]
|
|
cmp r3, r2, lsr #1
|
|
bhi .L1510
|
|
adds r6, r6, #1
|
|
movs r2, #1
|
|
movs r1, #0
|
|
bl gc_add_sblk
|
|
.L1510:
|
|
add r0, r6, r8
|
|
.L1505:
|
|
add sp, sp, #48
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1522:
|
|
ldr r0, [r10]
|
|
lsls r1, r7, #2
|
|
add ip, r0, r1
|
|
ldrb r3, [ip, #2] @ zero_extendqisi2
|
|
and r2, r3, #224
|
|
cmp r2, #224
|
|
beq .L1512
|
|
ubfx lr, r3, #3, #2
|
|
tst lr, #1
|
|
beq .L1513
|
|
ldrh r3, [r0, r1]
|
|
ldr r2, [r0, r1]
|
|
ubfx r3, r3, #0, #11
|
|
ubfx r2, r2, #11, #8
|
|
.L1514:
|
|
ldr r6, [sp, #32]
|
|
cmp r4, r3
|
|
add r8, r6, #1
|
|
uxth r6, r8
|
|
str r6, [sp, #32]
|
|
ldr r6, [sp, #40]
|
|
add r6, r6, r3
|
|
str r6, [sp, #40]
|
|
bls .L1560
|
|
ldr r4, .L1627+4
|
|
ldr r4, [r4]
|
|
strh r7, [r4, #586] @ movhi
|
|
mov r4, r3
|
|
.L1560:
|
|
ldr r6, [sp, #20]
|
|
movw r8, #65535
|
|
cmp r6, r3
|
|
itt cc
|
|
movcc r5, r7
|
|
strcc r3, [sp, #20]
|
|
cmp r2, r8
|
|
bne .L1516
|
|
.L1518:
|
|
cmp r3, #9
|
|
bls .L1521
|
|
.L1512:
|
|
adds r7, r7, #1
|
|
uxth r7, r7
|
|
b .L1511
|
|
.L1513:
|
|
tst r3, #24
|
|
bne .L1515
|
|
ldrh r3, [r0, r1]
|
|
movw r2, #65535
|
|
ubfx r3, r3, #0, #11
|
|
b .L1514
|
|
.L1515:
|
|
ldr r3, [r0, r1]
|
|
ubfx r2, r3, #11, #8
|
|
movw r3, #65535
|
|
.L1516:
|
|
ldr r6, [sp, #36]
|
|
cmp fp, r2
|
|
it hi
|
|
movhi fp, r2
|
|
add r8, r6, #1
|
|
uxth r6, r8
|
|
it hi
|
|
ldrhi r8, .L1627+4
|
|
str r6, [sp, #36]
|
|
ldr r6, [sp, #44]
|
|
it hi
|
|
ldrhi r8, [r8]
|
|
add r6, r6, r2
|
|
str r6, [sp, #44]
|
|
ldr r6, [sp, #28]
|
|
it hi
|
|
strhhi r7, [r8, #584] @ movhi
|
|
cmp r6, r2
|
|
itt cc
|
|
strcc r7, [sp, #24]
|
|
strcc r2, [sp, #28]
|
|
cmp r2, #9
|
|
bhi .L1518
|
|
.L1521:
|
|
ldr r3, .L1627+32
|
|
ldr r3, [r3]
|
|
lsls r6, r3, #23
|
|
bpl .L1512
|
|
ldr r3, [r0, r1]
|
|
ldrh r2, [r0, r1]
|
|
ldr r1, .L1627+24
|
|
ubfx r3, r3, #11, #8
|
|
ldr r0, .L1627+36
|
|
ubfx r2, r2, #0, #11
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1, r7, lsl #1]
|
|
str r1, [sp, #12]
|
|
ldrb r1, [ip, #3] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrb r1, [ip, #2] @ zero_extendqisi2
|
|
str lr, [sp]
|
|
lsrs r1, r1, #5
|
|
str r1, [sp, #4]
|
|
mov r1, r7
|
|
bl printf
|
|
b .L1512
|
|
.L1526:
|
|
cmp r1, #0
|
|
bne .L1525
|
|
ldr r3, [r7]
|
|
movw r2, #65535
|
|
ldrh r8, [r3, #590]
|
|
cmp r8, r2
|
|
bne .L1525
|
|
ldrh r0, [r3, #586]
|
|
ldrh r3, [r3, #588]
|
|
cmp r3, r0
|
|
beq .L1525
|
|
bl zftl_remove_free_node
|
|
ldr r3, [r7]
|
|
ldrh r2, [r3, #586]
|
|
strh r8, [r3, #586] @ movhi
|
|
strh r2, [r3, #590] @ movhi
|
|
b .L1525
|
|
.L1529:
|
|
and r3, r3, #248
|
|
cmp r3, #16
|
|
bne .L1528
|
|
ldr r8, .L1627+4
|
|
movw r2, #65535
|
|
ldr r3, [r8]
|
|
ldrh r7, [r3, #588]
|
|
cmp r7, r2
|
|
bne .L1528
|
|
ldrh r0, [r3, #584]
|
|
ldrh r3, [r3, #590]
|
|
cmp r3, r0
|
|
beq .L1528
|
|
bl zftl_remove_free_node
|
|
ldr r3, [r8]
|
|
ldrh r2, [r3, #584]
|
|
strh r7, [r3, #584] @ movhi
|
|
strh r2, [r3, #588] @ movhi
|
|
b .L1528
|
|
.L1628:
|
|
.align 2
|
|
.L1627:
|
|
.word .LANCHOR149
|
|
.word .LANCHOR12
|
|
.word .LANCHOR8
|
|
.word .LANCHOR110
|
|
.word .LANCHOR9
|
|
.word .LANCHOR92
|
|
.word .LANCHOR11
|
|
.word .LANCHOR94
|
|
.word .LANCHOR19
|
|
.word .LC82
|
|
.L1546:
|
|
adds r5, r5, #1
|
|
uxth r5, r5
|
|
cmp r3, r5
|
|
it ls
|
|
movls r5, #0
|
|
ldr r3, .L1629
|
|
lsls r7, r5, #2
|
|
ldr r3, [r3]
|
|
adds r2, r3, r7
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
tst r2, #192
|
|
beq .L1538
|
|
and r0, r2, #224
|
|
cmp r0, #224
|
|
beq .L1538
|
|
ubfx r2, r2, #3, #2
|
|
ands r1, r2, #1
|
|
beq .L1539
|
|
cmp r0, #160
|
|
.L1622:
|
|
bne .L1541
|
|
ldr r2, .L1629+4
|
|
ldr r0, [sp, #24]
|
|
ldrh r2, [r2]
|
|
cmp r0, r2
|
|
ble .L1542
|
|
ldr r2, [r3, r7]
|
|
ubfx r2, r2, #11, #8
|
|
cmp r2, fp
|
|
bls .L1543
|
|
cbz r1, .L1542
|
|
ldrh r2, [r3, r7]
|
|
ubfx r2, r2, #0, #11
|
|
cmp r2, r4
|
|
bgt .L1542
|
|
.L1543:
|
|
movs r2, #1
|
|
movs r1, #0
|
|
mov r0, r5
|
|
str r3, [sp, #28]
|
|
bl gc_add_sblk
|
|
ldr r0, .L1629+8
|
|
movs r2, #1
|
|
add r6, r6, r2
|
|
ldr r3, [sp, #28]
|
|
strh r2, [r0, #2180] @ movhi
|
|
ldr r2, .L1629+12
|
|
ldr r2, [r2]
|
|
tst r2, #1024
|
|
beq .L1542
|
|
ldr r2, .L1629+16
|
|
ldr r1, [r3, r7]
|
|
ldr r2, [r2]
|
|
ubfx r1, r1, #11, #8
|
|
ldrh ip, [r2, r5, lsl #1]
|
|
ldr r2, .L1629
|
|
ldr r2, [r2]
|
|
add r2, r2, r7
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrh r1, [r3, r7]
|
|
lsrs r2, r2, #5
|
|
ubfx r1, r1, #0, #11
|
|
str r1, [sp, #4]
|
|
mov r1, r5
|
|
ldrh r3, [r0, #52]
|
|
ldr r0, .L1629+20
|
|
str r3, [sp]
|
|
mov r3, ip
|
|
.L1623:
|
|
bl printf
|
|
.L1542:
|
|
cmp r6, #4
|
|
bhi .L1545
|
|
cmp r8, #4
|
|
bhi .L1545
|
|
.L1538:
|
|
add r10, r10, #1
|
|
uxth r10, r10
|
|
b .L1536
|
|
.L1539:
|
|
cmp r2, #2
|
|
b .L1622
|
|
.L1541:
|
|
ldr r0, .L1629+24
|
|
ldr r2, [sp, #20]
|
|
ldrh r0, [r0]
|
|
subs r2, r2, r4
|
|
cmp r2, r0
|
|
ble .L1542
|
|
ldrh r2, [r3, r7]
|
|
add r0, r4, #8
|
|
ubfx r2, r2, #0, #11
|
|
cmp r2, r0
|
|
ble .L1544
|
|
cmp r1, #0
|
|
beq .L1542
|
|
ldr r2, [r3, r7]
|
|
add r1, fp, #4
|
|
ubfx r2, r2, #11, #8
|
|
cmp r2, r1
|
|
bgt .L1542
|
|
.L1544:
|
|
movs r2, #1
|
|
movs r1, #0
|
|
mov r0, r5
|
|
str r3, [sp, #28]
|
|
bl gc_add_sblk
|
|
ldr r0, .L1629+8
|
|
movs r2, #1
|
|
add r8, r8, r2
|
|
ldr r3, [sp, #28]
|
|
strh r2, [r0, #2180] @ movhi
|
|
ldr r2, .L1629+12
|
|
ldr r2, [r2]
|
|
tst r2, #1024
|
|
beq .L1542
|
|
ldr r2, .L1629+16
|
|
ldr r1, [r3, r7]
|
|
ldr r2, [r2]
|
|
ubfx r1, r1, #11, #8
|
|
ldrh ip, [r2, r5, lsl #1]
|
|
ldr r2, .L1629
|
|
ldr r2, [r2]
|
|
add r2, r2, r7
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
str r1, [sp, #8]
|
|
ldrh r1, [r3, r7]
|
|
lsrs r2, r2, #5
|
|
ubfx r1, r1, #0, #11
|
|
str r1, [sp, #4]
|
|
mov r1, r5
|
|
ldrh r3, [r0, #52]
|
|
ldr r0, .L1629+28
|
|
str r3, [sp]
|
|
mov r3, ip
|
|
b .L1623
|
|
.L1563:
|
|
mov r8, #0
|
|
mov r6, r8
|
|
b .L1535
|
|
.L1551:
|
|
ldr r0, [r3]
|
|
ubfx r5, r0, #11, #8
|
|
cmp fp, r5
|
|
bhi .L1550
|
|
ldrb ip, [r3, #2] @ zero_extendqisi2
|
|
tst ip, #24
|
|
ittt ne
|
|
subne r5, r5, fp
|
|
bfine r0, r5, #11, #8
|
|
strne r0, [r3]
|
|
.L1550:
|
|
adds r2, r2, #1
|
|
adds r3, r3, #4
|
|
uxth r2, r2
|
|
b .L1549
|
|
.L1557:
|
|
ldrh r0, [r3]
|
|
ubfx r5, r0, #0, #11
|
|
cmp r5, r4
|
|
blt .L1556
|
|
ldrb r7, [r3, #2] @ zero_extendqisi2
|
|
and r7, r7, #24
|
|
cmp r7, #16
|
|
ittt ne
|
|
subne r5, r5, r4
|
|
bfine r0, r5, #0, #11
|
|
strhne r0, [r3] @ movhi
|
|
.L1556:
|
|
adds r2, r2, #1
|
|
adds r3, r3, #4
|
|
uxth r2, r2
|
|
b .L1555
|
|
.L1562:
|
|
mov r8, #0
|
|
mov r6, r8
|
|
b .L1510
|
|
.L1561:
|
|
movs r0, #0
|
|
b .L1505
|
|
.L1630:
|
|
.align 2
|
|
.L1629:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR150
|
|
.word .LANCHOR70
|
|
.word .LANCHOR19
|
|
.word .LANCHOR11
|
|
.word .LC89
|
|
.word .LANCHOR149
|
|
.word .LC90
|
|
.size gc_static_wearleveling, .-gc_static_wearleveling
|
|
.section .text.zftl_sblk_list_init,"ax",%progbits
|
|
.align 1
|
|
.global zftl_sblk_list_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_sblk_list_init, %function
|
|
zftl_sblk_list_init:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r2, #6
|
|
ldr r8, .L1663+84
|
|
sub sp, sp, #24
|
|
movs r1, #0
|
|
movs r4, #0
|
|
ldr fp, .L1663+88
|
|
ldrh r3, [r8]
|
|
ldr r6, .L1663
|
|
ldr r0, [fp]
|
|
ldr r10, .L1663+80
|
|
muls r2, r3, r2
|
|
ldr r7, .L1663+4
|
|
bl ftl_memset
|
|
ldr r3, .L1663+8
|
|
movs r2, #32
|
|
ldr r1, .L1663+12
|
|
mov r0, #32768
|
|
strh r4, [r10] @ movhi
|
|
str r4, [r3]
|
|
ldr r3, .L1663+16
|
|
ldrh r1, [r1]
|
|
strh r4, [r7] @ movhi
|
|
str r4, [r3]
|
|
ldr r3, .L1663+20
|
|
str r4, [r3]
|
|
ldr r3, .L1663+24
|
|
str r4, [r3]
|
|
ldr r3, .L1663+28
|
|
str r4, [r3]
|
|
ldr r3, .L1663+32
|
|
str r4, [r3]
|
|
ldr r3, .L1663+36
|
|
strh r2, [r3] @ movhi
|
|
ldr r2, .L1663+40
|
|
ldr r3, .L1663+44
|
|
strh r4, [r2] @ movhi
|
|
ldr r2, .L1663+48
|
|
strh r4, [r3] @ movhi
|
|
str r3, [sp, #4]
|
|
strh r4, [r2] @ movhi
|
|
ldr r2, .L1663+52
|
|
strh r4, [r2] @ movhi
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
muls r1, r2, r1
|
|
bl __aeabi_idiv
|
|
ldr r2, .L1663+56
|
|
sxth r3, r0
|
|
str fp, [sp, #12]
|
|
mov fp, r10
|
|
str r3, [sp]
|
|
ldr r1, [r2]
|
|
ldr r3, [sp, #4]
|
|
ldr r10, .L1663+92
|
|
ldrsh r5, [r1, #134]
|
|
str r8, [sp, #8]
|
|
mov r8, r3
|
|
strh r4, [r1, #146] @ movhi
|
|
str r2, [sp, #16]
|
|
str r6, [sp, #20]
|
|
.L1632:
|
|
ldr r3, [sp, #8]
|
|
ldrh r3, [r3]
|
|
cmp r5, r3
|
|
blt .L1649
|
|
ldr r3, [sp, #16]
|
|
ldrh r2, [r8]
|
|
ldr r3, [r3]
|
|
strh r2, [r3, #114] @ movhi
|
|
ldrh r2, [r7]
|
|
strh r2, [r3, #118] @ movhi
|
|
ldrh r2, [fp]
|
|
strh r2, [r3, #116] @ movhi
|
|
ldr r2, .L1663+40
|
|
ldrh r2, [r2]
|
|
strh r2, [r3, #122] @ movhi
|
|
ldr r2, .L1663+48
|
|
ldrh r2, [r2]
|
|
strh r2, [r3, #120] @ movhi
|
|
ldr r2, .L1663+52
|
|
ldrh r2, [r2]
|
|
strh r2, [r3, #124] @ movhi
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1649:
|
|
ldr r6, [r10]
|
|
add r6, r6, r5, lsl #2
|
|
ldrb r0, [r6, #3] @ zero_extendqisi2
|
|
cmp r0, #0
|
|
beq .L1650
|
|
ldr r3, [sp, #20]
|
|
ldrb lr, [r3] @ zero_extendqisi2
|
|
ldr r3, .L1663+56
|
|
ldr ip, [r3]
|
|
ldr r3, .L1663+12
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #4]
|
|
movs r3, #0
|
|
mov r1, r3
|
|
.L1634:
|
|
cmp r3, lr
|
|
blt .L1637
|
|
cmp r1, #0
|
|
beq .L1638
|
|
mov r0, #32768
|
|
bl __aeabi_idiv
|
|
adds r1, r0, #1
|
|
sxth r1, r1
|
|
.L1633:
|
|
ldr r3, [sp, #12]
|
|
lsls r0, r5, #1
|
|
adds r2, r0, r5
|
|
ldr r3, [r3]
|
|
add ip, r3, r2, lsl #1
|
|
strh r1, [ip, #4] @ movhi
|
|
movw r1, #65535
|
|
strh r1, [ip, #2] @ movhi
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #32
|
|
beq .L1639
|
|
cmp r3, #224
|
|
beq .L1639
|
|
ldr r2, .L1663+60
|
|
ldr r2, [r2]
|
|
ldrh r1, [r2, #16]
|
|
cmp r5, r1
|
|
beq .L1639
|
|
ldrh r1, [r2, #48]
|
|
cmp r5, r1
|
|
beq .L1639
|
|
ldrh r2, [r2, #80]
|
|
cmp r5, r2
|
|
beq .L1639
|
|
cmp r3, #64
|
|
bne .L1640
|
|
ldr r2, .L1663+40
|
|
uxth r1, r5
|
|
ldr r0, .L1663+28
|
|
.L1661:
|
|
bl _insert_data_list
|
|
.L1639:
|
|
adds r5, r5, #1
|
|
sxth r5, r5
|
|
b .L1632
|
|
.L1637:
|
|
asr r2, r0, r3
|
|
adds r3, r3, #1
|
|
lsls r2, r2, #31
|
|
itete mi
|
|
ldrhmi r2, [ip, #146]
|
|
ldrpl r2, [sp, #4]
|
|
addmi r2, r2, #1
|
|
addpl r1, r1, r2
|
|
ite mi
|
|
strhmi r2, [ip, #146] @ movhi
|
|
sxthpl r1, r1
|
|
b .L1634
|
|
.L1638:
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
movw r2, #65535
|
|
orr r3, r3, #224
|
|
strb r3, [r6, #2]
|
|
ldr r3, .L1663+64
|
|
ldr r3, [r3]
|
|
strh r2, [r3, r5, lsl #1] @ movhi
|
|
b .L1633
|
|
.L1650:
|
|
ldr r1, [sp]
|
|
b .L1633
|
|
.L1640:
|
|
cmp r3, #96
|
|
bne .L1641
|
|
ldr r2, .L1663+52
|
|
uxth r1, r5
|
|
ldr r0, .L1663+24
|
|
b .L1661
|
|
.L1641:
|
|
cmp r3, #160
|
|
bne .L1642
|
|
ldr r2, .L1663+48
|
|
uxth r1, r5
|
|
ldr r0, .L1663+32
|
|
b .L1661
|
|
.L1642:
|
|
cmp r3, #0
|
|
bne .L1639
|
|
ldr r3, .L1663+64
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, r0]
|
|
cbz r2, .L1643
|
|
cmp r4, #2
|
|
bgt .L1644
|
|
mov r1, r5
|
|
ldr r0, .L1663+68
|
|
bl printf
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
adds r4, r4, #1
|
|
movs r1, #1
|
|
uxth r0, r5
|
|
sxth r4, r4
|
|
lsls r2, r3, #27
|
|
ite mi
|
|
movmi r2, #5
|
|
movpl r2, #2
|
|
bfi r3, r2, #5, #3
|
|
movs r2, #0
|
|
strb r3, [r6, #2]
|
|
bl gc_add_sblk
|
|
b .L1639
|
|
.L1644:
|
|
mov r2, #656
|
|
ldr r1, .L1663+72
|
|
ldr r0, .L1663+76
|
|
bl printf
|
|
.L1643:
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
uxth r1, r5
|
|
ands r3, r3, #24
|
|
bne .L1647
|
|
ldr r2, .L1663+44
|
|
ldr r0, .L1663+8
|
|
.L1662:
|
|
bl _insert_free_list
|
|
b .L1639
|
|
.L1647:
|
|
cmp r3, #16
|
|
ittee eq
|
|
ldreq r2, .L1663+4
|
|
ldreq r0, .L1663+16
|
|
ldrne r2, .L1663+80
|
|
ldrne r0, .L1663+20
|
|
b .L1662
|
|
.L1664:
|
|
.align 2
|
|
.L1663:
|
|
.word .LANCHOR79
|
|
.word .LANCHOR105
|
|
.word .LANCHOR104
|
|
.word .LANCHOR85
|
|
.word .LANCHOR106
|
|
.word .LANCHOR108
|
|
.word .LANCHOR90
|
|
.word .LANCHOR95
|
|
.word .LANCHOR92
|
|
.word .LANCHOR109
|
|
.word .LANCHOR97
|
|
.word .LANCHOR103
|
|
.word .LANCHOR91
|
|
.word .LANCHOR99
|
|
.word .LANCHOR110
|
|
.word .LANCHOR12
|
|
.word .LANCHOR11
|
|
.word .LC91
|
|
.word .LANCHOR151
|
|
.word .LC0
|
|
.word .LANCHOR107
|
|
.word .LANCHOR8
|
|
.word .LANCHOR4
|
|
.word .LANCHOR9
|
|
.size zftl_sblk_list_init, .-zftl_sblk_list_init
|
|
.section .text.pm_free_sblk,"ax",%progbits
|
|
.align 1
|
|
.global pm_free_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_free_sblk, %function
|
|
pm_free_sblk:
|
|
@ args = 0, pretend = 0, frame = 272
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #280
|
|
ldr r5, .L1690
|
|
ldrh r2, [r5]
|
|
cmp r2, #128
|
|
bls .L1666
|
|
movs r2, #94
|
|
ldr r1, .L1690+4
|
|
ldr r0, .L1690+8
|
|
bl printf
|
|
.L1666:
|
|
ldr r4, .L1690+12
|
|
movs r2, #0
|
|
ldrh r5, [r5]
|
|
mov r3, r2
|
|
movw r6, #65535
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, #688]
|
|
add r1, r1, #416
|
|
.L1669:
|
|
ldrh r7, [r1], #2
|
|
cmp r7, r6
|
|
itt ne
|
|
addne r2, r2, #1
|
|
uxthne r2, r2
|
|
cmp r2, r0
|
|
bcs .L1668
|
|
cmp r2, r5
|
|
bcs .L1668
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #128
|
|
bne .L1669
|
|
.L1668:
|
|
adds r3, r3, #1
|
|
mov r2, #256
|
|
uxth r3, r3
|
|
movs r1, #0
|
|
add r0, sp, #24
|
|
cmp r3, #129
|
|
mov r5, #1
|
|
it eq
|
|
moveq r3, #128
|
|
movs r6, #0
|
|
str r3, [sp, #8]
|
|
add fp, sp, #24
|
|
bl ftl_memset
|
|
ldr r2, .L1690+16
|
|
ldr r7, [r4]
|
|
ldrh r8, [r2]
|
|
ldr r2, .L1690+20
|
|
add r10, r7, #704
|
|
ldrh r3, [r7, #698]
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
rsb r2, r2, #24
|
|
sub r2, r2, r8
|
|
lsls r5, r5, r2
|
|
ldr r2, .L1690+24
|
|
subs r5, r5, #1
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
.L1671:
|
|
uxth r1, r6
|
|
cmp r3, r1
|
|
bhi .L1674
|
|
ldr r3, .L1690+28
|
|
movs r5, #0
|
|
ldr r2, .L1690+32
|
|
movw r10, #65535
|
|
mov r8, r5
|
|
ldrb r6, [r3] @ zero_extendqisi2
|
|
ldrh r2, [r2]
|
|
str r3, [sp, #12]
|
|
smulbb r6, r6, r2
|
|
uxth r6, r6
|
|
.L1680:
|
|
ldr r2, [r4]
|
|
add r7, r5, #208
|
|
uxth fp, r5
|
|
ldrh r3, [r2, r7, lsl #1]
|
|
ldrh r0, [r2, #692]
|
|
str r2, [sp, #16]
|
|
str r3, [sp, #20]
|
|
ldr r3, .L1690+24
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl __aeabi_idiv
|
|
ldr r3, [sp, #20]
|
|
ldr r2, [sp, #16]
|
|
cmp r0, r3
|
|
bne .L1675
|
|
ldr r1, [sp, #12]
|
|
ldr r0, .L1690+32
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
ldrh r0, [r0]
|
|
smulbb r1, r1, r0
|
|
add r0, sp, #24
|
|
strh r1, [r0, r5, lsl #1] @ movhi
|
|
.L1675:
|
|
add r1, sp, #24
|
|
ldrh r1, [r1, r5, lsl #1]
|
|
cmp r1, r6
|
|
bcs .L1676
|
|
cmp r1, #0
|
|
itt ne
|
|
movne r8, fp
|
|
movne r6, r1
|
|
.L1676:
|
|
ldrh r0, [r2, #74]
|
|
cmp r0, #2
|
|
bls .L1677
|
|
movw r0, #65535
|
|
cmp r3, r0
|
|
beq .L1677
|
|
ldr r0, .L1690+36
|
|
ldrh r2, [r2, #92]
|
|
ldr r0, [r0]
|
|
adds r2, r2, #4
|
|
ldrh r0, [r0, r3, lsl #2]
|
|
ubfx r0, r0, #0, #11
|
|
cmp r0, r2
|
|
bgt .L1677
|
|
mov r10, fp
|
|
str r0, [sp]
|
|
mov r2, r1
|
|
ldr r0, .L1690+40
|
|
mov r1, r5
|
|
bl printf
|
|
.L1677:
|
|
add r3, sp, #24
|
|
ldrh r2, [r3, r5, lsl #1]
|
|
cbnz r2, .L1678
|
|
ldr r1, [r4]
|
|
movw r0, #65535
|
|
ldrh r3, [r1, r7, lsl #1]
|
|
cmp r3, r0
|
|
beq .L1678
|
|
ldr r0, .L1690+44
|
|
ldr r0, [r0]
|
|
lsls r0, r0, #19
|
|
bpl .L1679
|
|
ldrh r1, [r1, #688]
|
|
ldr r0, .L1690+48
|
|
str r1, [sp]
|
|
mov r1, r5
|
|
bl printf
|
|
.L1679:
|
|
ldr r3, [r4]
|
|
ldrh r0, [r3, r7, lsl #1]
|
|
bl ftl_free_sblk
|
|
ldr r3, [r4]
|
|
movw r2, #65535
|
|
strh r2, [r3, r7, lsl #1] @ movhi
|
|
ldrh r2, [r3, #688]
|
|
subs r2, r2, #1
|
|
strh r2, [r3, #688] @ movhi
|
|
.L1678:
|
|
adds r5, r5, #1
|
|
ldr r2, [sp, #8]
|
|
uxth r3, r5
|
|
cmp r3, r2
|
|
bcc .L1680
|
|
movw r0, #65535
|
|
cmp r10, r0
|
|
ite ne
|
|
movne r0, r10
|
|
moveq r0, r8
|
|
add sp, sp, #280
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1674:
|
|
ldr r0, [r10], #4
|
|
mov r1, r2
|
|
str r3, [sp, #20]
|
|
str r2, [sp, #16]
|
|
lsr r0, r0, r8
|
|
ands r0, r0, r5
|
|
bl __aeabi_uidiv
|
|
uxth r3, r0
|
|
ldr r2, [sp, #16]
|
|
add lr, r7, #416
|
|
str r3, [sp, #12]
|
|
movs r1, #0
|
|
ldr r3, [sp, #20]
|
|
.L1673:
|
|
ldrh ip, [lr], #2
|
|
ldr r0, [sp, #12]
|
|
cmp r0, ip
|
|
ldr r0, [sp, #8]
|
|
ittt eq
|
|
ldrheq ip, [fp, r1, lsl #1]
|
|
addeq ip, ip, #1
|
|
strheq ip, [fp, r1, lsl #1] @ movhi
|
|
adds r1, r1, #1
|
|
uxth ip, r1
|
|
cmp r0, ip
|
|
bhi .L1673
|
|
adds r6, r6, #1
|
|
b .L1671
|
|
.L1691:
|
|
.align 2
|
|
.L1690:
|
|
.word .LANCHOR152
|
|
.word .LANCHOR153
|
|
.word .LC0
|
|
.word .LANCHOR110
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR79
|
|
.word .LANCHOR94
|
|
.word .LANCHOR9
|
|
.word .LC92
|
|
.word .LANCHOR19
|
|
.word .LC93
|
|
.size pm_free_sblk, .-pm_free_sblk
|
|
.section .text.ftl_memcpy,"ax",%progbits
|
|
.align 1
|
|
.global ftl_memcpy
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_memcpy, %function
|
|
ftl_memcpy:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b memcpy
|
|
.size ftl_memcpy, .-ftl_memcpy
|
|
.section .text.flash_info_data_init,"ax",%progbits
|
|
.align 1
|
|
.global flash_info_data_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_info_data_init, %function
|
|
flash_info_data_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1698
|
|
push {r4, lr}
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L1694
|
|
ldr r2, .L1698+4
|
|
movs r1, #120
|
|
ldr r0, .L1698+8
|
|
bl printf
|
|
.L1694:
|
|
ldr r4, .L1698+12
|
|
mov r2, #2048
|
|
movs r1, #0
|
|
ldr r0, [r4]
|
|
bl ftl_memset
|
|
ldr r0, [r4]
|
|
movs r2, #32
|
|
ldr r3, .L1698+16
|
|
ldr r1, .L1698+20
|
|
adds r0, r0, #80
|
|
str r3, [r0, #-80]
|
|
mov r3, #2032
|
|
str r3, [r0, #-72]
|
|
movs r3, #1
|
|
strh r3, [r0, #-64] @ movhi
|
|
bl ftl_memcpy
|
|
ldr r0, [r4]
|
|
movs r2, #32
|
|
ldr r1, .L1698+24
|
|
pop {r4, lr}
|
|
adds r0, r0, #48
|
|
b ftl_memcpy
|
|
.L1699:
|
|
.align 2
|
|
.L1698:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR154
|
|
.word .LC94
|
|
.word .LANCHOR6
|
|
.word 1398362953
|
|
.word .LANCHOR25
|
|
.word .LANCHOR32
|
|
.size flash_info_data_init, .-flash_info_data_init
|
|
.section .text.ftl_memcpy32,"ax",%progbits
|
|
.align 1
|
|
.global ftl_memcpy32
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_memcpy32, %function
|
|
ftl_memcpy32:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
movs r3, #0
|
|
push {r4, lr}
|
|
.L1701:
|
|
cmp r3, r2
|
|
bne .L1702
|
|
pop {r4, pc}
|
|
.L1702:
|
|
ldr r4, [r1, r3, lsl #2]
|
|
str r4, [r0, r3, lsl #2]
|
|
adds r3, r3, #1
|
|
b .L1701
|
|
.size ftl_memcpy32, .-ftl_memcpy32
|
|
.section .text.ftl_memcmp,"ax",%progbits
|
|
.align 1
|
|
.global ftl_memcmp
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_memcmp, %function
|
|
ftl_memcmp:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b memcmp
|
|
.size ftl_memcmp, .-ftl_memcmp
|
|
.section .text.rknand_get_clk_rate,"ax",%progbits
|
|
.align 1
|
|
.global rknand_get_clk_rate
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rknand_get_clk_rate, %function
|
|
rknand_get_clk_rate:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r0, .L1705
|
|
bx lr
|
|
.L1706:
|
|
.align 2
|
|
.L1705:
|
|
.word 148000000
|
|
.size rknand_get_clk_rate, .-rknand_get_clk_rate
|
|
.section .text.ftl_malloc,"ax",%progbits
|
|
.align 1
|
|
.global ftl_malloc
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_malloc, %function
|
|
ftl_malloc:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movs r1, #0
|
|
b kmalloc
|
|
.size ftl_malloc, .-ftl_malloc
|
|
.section .text.nandc_init,"ax",%progbits
|
|
.align 1
|
|
.global nandc_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_init, %function
|
|
nandc_init:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, lr}
|
|
movs r3, #0
|
|
ldr r6, .L1727
|
|
sub sp, sp, #20
|
|
mov r4, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [r6]
|
|
lsls r0, r3, #19
|
|
bpl .L1709
|
|
mov r2, r4
|
|
ldr r1, .L1727+4
|
|
ldr r0, .L1727+8
|
|
bl printf
|
|
.L1709:
|
|
ldr r1, [r4, #352]
|
|
movs r3, #6
|
|
ldr r2, .L1727+12
|
|
ldr r5, .L1727+16
|
|
ldr r7, .L1727+20
|
|
cmp r1, r2
|
|
ldr r2, [r4, #128]
|
|
strb r3, [r5]
|
|
itt eq
|
|
moveq r3, #8
|
|
strbeq r3, [r5]
|
|
ldr r3, .L1727+24
|
|
str r4, [r7]
|
|
cmp r2, r3
|
|
ldr r2, .L1727+28
|
|
itt eq
|
|
moveq r3, #9
|
|
strbeq r3, [r5]
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
ldr r3, .L1727+32
|
|
bne .L1712
|
|
movs r1, #1
|
|
strb r1, [r3]
|
|
movs r1, #2
|
|
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, [r4]
|
|
movs r3, #0
|
|
str r3, [r4, #520]
|
|
movw r3, #4161
|
|
str r3, [r4, #4]
|
|
movw r3, #8321
|
|
str r3, [r4, #8]
|
|
movs r3, #38
|
|
str r2, [r4, #80]
|
|
str r3, [r4, #84]
|
|
movs r3, #39
|
|
str r3, [r4, #84]
|
|
ldr r3, [r6]
|
|
lsls r1, r3, #19
|
|
bpl .L1714
|
|
ldr r1, [r4]
|
|
ldr r2, [r4, #8]
|
|
ldr r3, [r4, #80]
|
|
ldr r0, [r4, #84]
|
|
ldr r4, [r4, #88]
|
|
stm sp, {r0, r4}
|
|
.L1726:
|
|
ldr r0, .L1727+36
|
|
bl printf
|
|
.L1714:
|
|
ldr r3, .L1727+40
|
|
movs r2, #1
|
|
strb r2, [r3]
|
|
movs r3, #0
|
|
ldr r2, .L1727+44
|
|
strh r3, [r2] @ movhi
|
|
ldr r2, .L1727+48
|
|
strb r3, [r2]
|
|
ldr r3, [r6]
|
|
lsls r3, r3, #19
|
|
bpl .L1708
|
|
ldrb r1, [r5] @ zero_extendqisi2
|
|
ldr r0, .L1727+52
|
|
bl printf
|
|
.L1708:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L1712:
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r1, [r3]
|
|
ldr r3, [sp, #12]
|
|
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, [r4]
|
|
movw r3, #4193
|
|
str r1, [r4, #336]
|
|
str r3, [r4, #4]
|
|
movw r3, #8321
|
|
str r3, [r4, #344]
|
|
movs r3, #38
|
|
str r2, [r4, #304]
|
|
str r3, [r4, #308]
|
|
movs r3, #39
|
|
str r3, [r4, #308]
|
|
bl ftl_malloc
|
|
ldr r3, .L1727+56
|
|
str r0, [r3]
|
|
ldr r3, [r6]
|
|
lsls r2, r3, #19
|
|
bpl .L1714
|
|
ldr r0, [r7]
|
|
ldr r1, [r0]
|
|
ldr r2, [r0, #344]
|
|
ldr r3, [r0, #304]
|
|
ldr r4, [r0, #308]
|
|
ldr r0, [r0, #312]
|
|
str r4, [sp]
|
|
str r0, [sp, #4]
|
|
b .L1726
|
|
.L1728:
|
|
.align 2
|
|
.L1727:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR155
|
|
.word .LC95
|
|
.word 1446522928
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.word 1446588464
|
|
.word 1052675
|
|
.word .LANCHOR50
|
|
.word .LC96
|
|
.word .LANCHOR51
|
|
.word .LANCHOR53
|
|
.word .LANCHOR49
|
|
.word .LC97
|
|
.word .LANCHOR52
|
|
.size nandc_init, .-nandc_init
|
|
.section .text.zbuf_init,"ax",%progbits
|
|
.align 1
|
|
.global zbuf_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zbuf_init, %function
|
|
zbuf_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, lr}
|
|
movs r5, #0
|
|
ldr r4, .L1732
|
|
mov r6, r5
|
|
ldr r8, .L1732+12
|
|
mov r7, r4
|
|
.L1730:
|
|
ldrb r0, [r8] @ zero_extendqisi2
|
|
uxtb r3, r5
|
|
strb r6, [r4, #2]
|
|
adds r5, r5, #1
|
|
adds r2, r3, #1
|
|
strb r3, [r4, #1]
|
|
strb r2, [r4]
|
|
adds r4, r4, #48
|
|
str r6, [r4, #-40]
|
|
lsls r0, r0, #9
|
|
bl ftl_malloc
|
|
str r0, [r4, #-44]
|
|
movs r0, #64
|
|
bl ftl_malloc
|
|
cmp r5, #32
|
|
str r0, [r4, #-36]
|
|
bne .L1730
|
|
movs r3, #255
|
|
strb r3, [r7, #1488]
|
|
ldr r3, .L1732+4
|
|
strb r6, [r3]
|
|
ldr r3, .L1732+8
|
|
strb r5, [r3]
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L1733:
|
|
.align 2
|
|
.L1732:
|
|
.word .LANCHOR55
|
|
.word .LANCHOR56
|
|
.word .LANCHOR57
|
|
.word .LANCHOR131
|
|
.size zbuf_init, .-zbuf_init
|
|
.section .text.gc_init,"ax",%progbits
|
|
.align 1
|
|
.global gc_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_init, %function
|
|
gc_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1735
|
|
movw r2, #2204
|
|
push {r4, r5, r6, lr}
|
|
movs r4, #0
|
|
ldr r5, .L1735+4
|
|
mov r1, r4
|
|
strb r4, [r3]
|
|
ldr r3, .L1735+8
|
|
mov r0, r5
|
|
strb r4, [r3]
|
|
ldr r3, .L1735+12
|
|
str r4, [r3]
|
|
ldr r3, .L1735+16
|
|
strh r4, [r3] @ movhi
|
|
bl ftl_memset
|
|
movw r3, #65535
|
|
str r4, [r5, #8]
|
|
strh r3, [r5] @ movhi
|
|
ldr r3, .L1735+20
|
|
ldrh r3, [r3]
|
|
lsrs r2, r3, #1
|
|
lsrs r1, r3, #2
|
|
strh r2, [r5, #34] @ movhi
|
|
ldr r2, .L1735+24
|
|
strh r1, [r5, #32] @ movhi
|
|
ldr r5, .L1735+28
|
|
strh r4, [r2] @ movhi
|
|
ldr r2, .L1735+32
|
|
strh r4, [r2] @ movhi
|
|
ldr r2, .L1735+36
|
|
strh r4, [r2] @ movhi
|
|
ldr r4, .L1735+40
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
smulbb r2, r0, r3
|
|
uxth r2, r2
|
|
sub r6, r2, #32
|
|
strh r6, [r5] @ movhi
|
|
ldr r5, .L1735+44
|
|
strh r2, [r5] @ movhi
|
|
ldr r2, .L1735+48
|
|
ldr r5, .L1735+52
|
|
strh r3, [r2] @ movhi
|
|
movs r2, #4
|
|
ldr r3, .L1735+56
|
|
strh r2, [r3] @ movhi
|
|
ldr r3, .L1735+60
|
|
strh r1, [r3] @ movhi
|
|
ldrh r3, [r5]
|
|
muls r0, r3, r0
|
|
lsls r0, r0, #2
|
|
bl ftl_malloc
|
|
ldr r3, .L1735+64
|
|
str r0, [r3]
|
|
ldrh r3, [r5]
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
muls r0, r3, r0
|
|
lsls r0, r0, #2
|
|
bl ftl_malloc
|
|
ldr r3, .L1735+68
|
|
str r0, [r3]
|
|
ldrh r3, [r5]
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
muls r0, r3, r0
|
|
bl ftl_malloc
|
|
ldr r3, .L1735+72
|
|
str r0, [r3]
|
|
ldrh r3, [r5]
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
muls r0, r3, r0
|
|
lsls r0, r0, #2
|
|
bl ftl_malloc
|
|
ldr r3, .L1735+76
|
|
str r0, [r3]
|
|
ldrh r3, [r5]
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
muls r0, r3, r0
|
|
lsls r0, r0, #2
|
|
bl ftl_malloc
|
|
ldr r3, .L1735+80
|
|
ldr r2, .L1735+84
|
|
str r0, [r3]
|
|
ldr r3, .L1735+88
|
|
ldrh r3, [r3]
|
|
lsrs r3, r3, #2
|
|
strh r3, [r2] @ movhi
|
|
pop {r4, r5, r6, pc}
|
|
.L1736:
|
|
.align 2
|
|
.L1735:
|
|
.word .LANCHOR84
|
|
.word .LANCHOR70
|
|
.word .LANCHOR156
|
|
.word .LANCHOR157
|
|
.word .LANCHOR96
|
|
.word .LANCHOR94
|
|
.word .LANCHOR87
|
|
.word .LANCHOR102
|
|
.word .LANCHOR88
|
|
.word .LANCHOR89
|
|
.word .LANCHOR79
|
|
.word .LANCHOR100
|
|
.word .LANCHOR93
|
|
.word .LANCHOR85
|
|
.word .LANCHOR158
|
|
.word .LANCHOR69
|
|
.word .LANCHOR159
|
|
.word .LANCHOR160
|
|
.word .LANCHOR82
|
|
.word .LANCHOR76
|
|
.word .LANCHOR161
|
|
.word .LANCHOR86
|
|
.word .LANCHOR98
|
|
.size gc_init, .-gc_init
|
|
.section .text.ftl_free,"ax",%progbits
|
|
.align 1
|
|
.global ftl_free
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_free, %function
|
|
ftl_free:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b free
|
|
.size ftl_free, .-ftl_free
|
|
.section .text.js_hash,"ax",%progbits
|
|
.align 1
|
|
.global js_hash
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type js_hash, %function
|
|
js_hash:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1741
|
|
add r1, r1, r0
|
|
push {r4, lr}
|
|
.L1739:
|
|
cmp r0, r1
|
|
bne .L1740
|
|
mov r0, r3
|
|
pop {r4, pc}
|
|
.L1740:
|
|
lsrs r2, r3, #2
|
|
ldrb r4, [r0], #1 @ zero_extendqisi2
|
|
add r2, r2, r3, lsl #5
|
|
add r2, r2, r4
|
|
eors r3, r3, r2
|
|
b .L1739
|
|
.L1742:
|
|
.align 2
|
|
.L1741:
|
|
.word 1204201446
|
|
.size js_hash, .-js_hash
|
|
.section .text.ftl_debug_info_fill,"ax",%progbits
|
|
.align 1
|
|
.global ftl_debug_info_fill
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_debug_info_fill, %function
|
|
ftl_debug_info_fill:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1749
|
|
push {r4, lr}
|
|
mov r4, r1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #8
|
|
bls .L1744
|
|
cmp r0, #2
|
|
bne .L1745
|
|
cbz r2, .L1745
|
|
ldr r3, .L1749+4
|
|
mov r0, r2
|
|
str r3, [r1]
|
|
mov r1, #1024
|
|
bl js_hash
|
|
str r0, [r4, #4]
|
|
.L1744:
|
|
movs r0, #0
|
|
pop {r4, pc}
|
|
.L1745:
|
|
movs r3, #0
|
|
str r3, [r4]
|
|
str r3, [r4, #4]
|
|
b .L1744
|
|
.L1750:
|
|
.align 2
|
|
.L1749:
|
|
.word .LANCHOR131
|
|
.word 1212240712
|
|
.size ftl_debug_info_fill, .-ftl_debug_info_fill
|
|
.section .text.timer_get_time,"ax",%progbits
|
|
.align 1
|
|
.global timer_get_time
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type timer_get_time, %function
|
|
timer_get_time:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movs r0, #0
|
|
bx lr
|
|
.size timer_get_time, .-timer_get_time
|
|
.section .text.FlashCs123Init,"ax",%progbits
|
|
.align 1
|
|
.global FlashCs123Init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FlashCs123Init, %function
|
|
FlashCs123Init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
bx lr
|
|
.size FlashCs123Init, .-FlashCs123Init
|
|
.section .text.rk_nand_de_init,"ax",%progbits
|
|
.align 1
|
|
.global rk_nand_de_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rk_nand_de_init, %function
|
|
rk_nand_de_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b zftl_flash_de_init
|
|
.size rk_nand_de_init, .-rk_nand_de_init
|
|
.section .text.ftl_get_density,"ax",%progbits
|
|
.align 1
|
|
.global ftl_get_density
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_get_density, %function
|
|
ftl_get_density:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b zftl_get_density
|
|
.size ftl_get_density, .-ftl_get_density
|
|
.section .text.ftl_get_capacity,"ax",%progbits
|
|
.align 1
|
|
.global ftl_get_capacity
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_get_capacity, %function
|
|
ftl_get_capacity:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1756
|
|
ldr r0, [r3]
|
|
bx lr
|
|
.L1757:
|
|
.align 2
|
|
.L1756:
|
|
.word .LANCHOR67
|
|
.size ftl_get_capacity, .-ftl_get_capacity
|
|
.section .text.rknand_print_hex,"ax",%progbits
|
|
.align 1
|
|
.global rknand_print_hex
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rknand_print_hex, %function
|
|
rknand_print_hex:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r6, #0
|
|
ldr r10, .L1767+12
|
|
mov r7, r1
|
|
mov r8, r2
|
|
mov fp, r3
|
|
mov r5, r6
|
|
mov r4, r6
|
|
str r0, [sp, #4]
|
|
.L1759:
|
|
cmp r4, fp
|
|
bne .L1765
|
|
ldr r1, .L1767
|
|
ldr r0, .L1767+4
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b printf
|
|
.L1765:
|
|
cbnz r5, .L1760
|
|
mov r3, r6
|
|
mov r2, r7
|
|
ldr r1, [sp, #4]
|
|
ldr r0, .L1767+8
|
|
bl printf
|
|
.L1760:
|
|
cmp r8, #4
|
|
bne .L1761
|
|
ldr r1, [r7, r4, lsl #2]
|
|
.L1766:
|
|
mov r0, r10
|
|
adds r5, r5, #1
|
|
bl printf
|
|
cmp r5, #15
|
|
bls .L1764
|
|
movs r5, #0
|
|
ldr r1, .L1767
|
|
ldr r0, .L1767+4
|
|
bl printf
|
|
.L1764:
|
|
adds r4, r4, #1
|
|
add r6, r6, r8
|
|
b .L1759
|
|
.L1761:
|
|
cmp r8, #2
|
|
ite eq
|
|
ldrsheq r1, [r7, r4, lsl #1]
|
|
ldrbne r1, [r7, r4] @ zero_extendqisi2
|
|
b .L1766
|
|
.L1768:
|
|
.align 2
|
|
.L1767:
|
|
.word .LC100
|
|
.word .LC101
|
|
.word .LC98
|
|
.word .LC99
|
|
.size rknand_print_hex, .-rknand_print_hex
|
|
.section .text.hynix_get_read_retry_default,"ax",%progbits
|
|
.align 1
|
|
.global hynix_get_read_retry_default
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type hynix_get_read_retry_default, %function
|
|
hynix_get_read_retry_default:
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1880
|
|
cmp r0, #2
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #56
|
|
mov r1, #173
|
|
mov r2, #174
|
|
mov r4, r0
|
|
ldr fp, [r3]
|
|
add r3, fp, #128
|
|
strb r0, [fp, #112]
|
|
str r3, [sp]
|
|
mov r3, #172
|
|
strb r3, [fp, #128]
|
|
mov r3, #175
|
|
strb r1, [fp, #129]
|
|
strb r2, [fp, #130]
|
|
strb r3, [fp, #131]
|
|
bne .L1770
|
|
movs r3, #167
|
|
mov r8, #7
|
|
strb r3, [fp, #128]
|
|
movs r2, #247
|
|
ldr r3, .L1880+4
|
|
strb r2, [r3, #17]
|
|
.L1874:
|
|
mov r10, #4
|
|
b .L1771
|
|
.L1770:
|
|
cmp r0, #3
|
|
bne .L1772
|
|
add r2, fp, #127
|
|
movs r3, #176
|
|
.L1773:
|
|
strb r3, [r2, #1]!
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #184
|
|
bne .L1773
|
|
.L1875:
|
|
mov r8, #8
|
|
mov r10, r8
|
|
.L1771:
|
|
subs r3, r4, #1
|
|
cmp r3, #1
|
|
bhi .L1779
|
|
movs r6, #0
|
|
.L1780:
|
|
ldr r3, .L1880+8
|
|
uxtb r2, r6
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cmp r1, r2
|
|
bhi .L1785
|
|
.L1786:
|
|
strb r10, [fp, #113]
|
|
strb r8, [fp, #114]
|
|
add sp, sp, #56
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1772:
|
|
cmp r0, #4
|
|
bne .L1774
|
|
movs r0, #204
|
|
strb r1, [fp, #133]
|
|
strb r0, [fp, #128]
|
|
movs r0, #191
|
|
strb r0, [fp, #129]
|
|
movs r0, #170
|
|
strb r0, [fp, #130]
|
|
movs r0, #171
|
|
strb r0, [fp, #131]
|
|
movs r0, #205
|
|
strb r0, [fp, #132]
|
|
strb r2, [fp, #134]
|
|
strb r3, [fp, #135]
|
|
b .L1875
|
|
.L1774:
|
|
cmp r0, #5
|
|
bne .L1775
|
|
movs r3, #56
|
|
mov r8, #8
|
|
strb r3, [fp, #128]
|
|
movs r3, #57
|
|
strb r3, [fp, #129]
|
|
movs r3, #58
|
|
strb r3, [fp, #130]
|
|
movs r3, #59
|
|
strb r3, [fp, #131]
|
|
b .L1874
|
|
.L1775:
|
|
cmp r0, #6
|
|
bne .L1776
|
|
movs r3, #14
|
|
mov r8, #12
|
|
strb r3, [fp, #128]
|
|
movs r3, #15
|
|
strb r3, [fp, #129]
|
|
movs r3, #16
|
|
strb r3, [fp, #130]
|
|
movs r3, #17
|
|
strb r3, [fp, #131]
|
|
b .L1874
|
|
.L1776:
|
|
cmp r0, #7
|
|
bne .L1777
|
|
add r2, fp, #127
|
|
movs r3, #176
|
|
.L1778:
|
|
strb r3, [r2, #1]!
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #184
|
|
bne .L1778
|
|
movs r3, #212
|
|
mov r8, #12
|
|
strb r3, [fp, #136]
|
|
movs r3, #213
|
|
strb r3, [fp, #137]
|
|
mov r10, #10
|
|
b .L1771
|
|
.L1777:
|
|
cmp r0, #8
|
|
mov r3, #7
|
|
bne .L1833
|
|
strb r3, [fp, #129]
|
|
movs r3, #9
|
|
movs r2, #6
|
|
strb r3, [fp, #131]
|
|
movs r3, #10
|
|
strb r2, [fp, #128]
|
|
strb r0, [fp, #130]
|
|
mov r8, #50
|
|
strb r3, [fp, #132]
|
|
mov r10, #5
|
|
b .L1771
|
|
.L1833:
|
|
mov r8, r3
|
|
b .L1874
|
|
.L1785:
|
|
ldr r3, .L1880+12
|
|
movs r4, #160
|
|
ldr r1, .L1880+16
|
|
add r7, fp, #127
|
|
ldr r0, [sp]
|
|
ldrb r2, [r3, r2] @ zero_extendqisi2
|
|
ldr r5, [r1]
|
|
add r1, r10, #-1
|
|
uxtab r1, r0, r1
|
|
mla r4, r4, r2, fp
|
|
str r1, [sp, #4]
|
|
add r5, r5, r2, lsl #8
|
|
movs r1, #55
|
|
adds r4, r4, #144
|
|
addw r2, r5, #2056
|
|
subs r3, r4, #1
|
|
.L1781:
|
|
str r1, [r2]
|
|
ldrb r0, [r7, #1]! @ zero_extendqisi2
|
|
str r3, [sp, #16]
|
|
str r1, [sp, #12]
|
|
str r0, [r5, #2052]
|
|
movs r0, #1
|
|
str r2, [sp, #8]
|
|
bl udelay
|
|
ldr r2, [sp, #4]
|
|
ldr r0, [r5, #2048]
|
|
ldr r3, [sp, #16]
|
|
cmp r2, r7
|
|
ldr r1, [sp, #12]
|
|
ldr r2, [sp, #8]
|
|
strb r0, [r3, #1]!
|
|
bne .L1781
|
|
ldr r3, .L1880+4
|
|
mov r0, r4
|
|
movs r1, #0
|
|
.L1782:
|
|
movs r2, #1
|
|
adds r7, r3, r1
|
|
.L1783:
|
|
ldrb r5, [r7, r2, lsl #2] @ zero_extendqisi2
|
|
ldrb lr, [r0] @ zero_extendqisi2
|
|
add r5, r5, lr
|
|
strb r5, [r0, r2, lsl #3]
|
|
adds r2, r2, #1
|
|
cmp r2, #7
|
|
bne .L1783
|
|
adds r1, r1, #1
|
|
adds r0, r0, #1
|
|
cmp r1, #4
|
|
bne .L1782
|
|
movs r2, #0
|
|
adds r6, r6, #1
|
|
strb r2, [r4, #16]
|
|
strb r2, [r4, #24]
|
|
strb r2, [r4, #32]
|
|
strb r2, [r4, #40]
|
|
strb r2, [r4, #48]
|
|
strb r2, [r4, #41]
|
|
strb r2, [r4, #49]
|
|
b .L1780
|
|
.L1779:
|
|
subs r3, r4, #3
|
|
cmp r3, #5
|
|
bhi .L1786
|
|
smulbb r3, r8, r10
|
|
asrs r2, r3, #1
|
|
lsls r3, r3, #4
|
|
str r3, [sp, #48]
|
|
lsls r3, r2, #2
|
|
str r2, [sp, #8]
|
|
str r3, [sp, #44]
|
|
lsls r3, r2, #1
|
|
str r3, [sp, #24]
|
|
movs r3, #0
|
|
.L1879:
|
|
str r3, [sp, #20]
|
|
ldr r3, .L1880+8
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
cmp r2, r3
|
|
bls .L1786
|
|
ldr r2, .L1880+12
|
|
movs r6, #255
|
|
ldrb r3, [r2, r3] @ zero_extendqisi2
|
|
mov r0, r3
|
|
str r3, [sp]
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, [sp]
|
|
movs r1, #160
|
|
ldr r2, [sp]
|
|
mla r1, r1, r3, fp
|
|
add r3, r1, #144
|
|
str r3, [sp, #40]
|
|
ldr r3, .L1880+16
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
add r5, r3, r2, lsl #8
|
|
str r6, [r5, #2056]
|
|
bl nandc_wait_flash_ready
|
|
cmp r4, #8
|
|
bne .L1788
|
|
add r3, fp, #144
|
|
movs r2, #23
|
|
str r3, [sp, #40]
|
|
movs r3, #120
|
|
str r3, [r5, #2056]
|
|
movs r3, #0
|
|
str r3, [r5, #2052]
|
|
movs r1, #25
|
|
str r3, [r5, #2052]
|
|
str r3, [r5, #2052]
|
|
str r2, [r5, #2056]
|
|
movs r2, #4
|
|
str r2, [r5, #2056]
|
|
str r1, [r5, #2056]
|
|
movs r1, #218
|
|
str r1, [r5, #2056]
|
|
movs r1, #21
|
|
str r3, [r5, #2056]
|
|
str r3, [r5, #2052]
|
|
str r3, [r5, #2052]
|
|
str r1, [r5, #2052]
|
|
str r2, [r5, #2052]
|
|
str r3, [r5, #2052]
|
|
.L1789:
|
|
ldm sp, {r2, r3}
|
|
add r3, r3, r2, lsl #8
|
|
movs r2, #48
|
|
str r2, [r3, #2056]
|
|
bl nandc_wait_flash_ready
|
|
subs r3, r4, #5
|
|
cmp r3, #1
|
|
str r3, [sp, #28]
|
|
bls .L1835
|
|
cmp r4, #8
|
|
beq .L1835
|
|
cmp r4, #7
|
|
ite ne
|
|
movne r2, #2
|
|
moveq r2, #32
|
|
.L1795:
|
|
ldr r3, .L1880+20
|
|
subs r2, r2, #1
|
|
ldr r5, [sp, #4]
|
|
ldr r6, [sp]
|
|
ldr r3, [r3]
|
|
add r7, r5, r6, lsl #8
|
|
subs r1, r3, #1
|
|
uxtab r2, r3, r2
|
|
mov r0, r1
|
|
.L1796:
|
|
ldr r5, [r7, #2048]
|
|
strb r5, [r0, #1]!
|
|
cmp r2, r0
|
|
bne .L1796
|
|
cmp r4, #8
|
|
bne .L1797
|
|
movs r2, #0
|
|
.L1799:
|
|
ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
|
|
uxtb r1, r2
|
|
cmp r0, #50
|
|
beq .L1798
|
|
add r0, r3, r2, lsl #2
|
|
ldrb r0, [r0, #1] @ zero_extendqisi2
|
|
cmp r0, #5
|
|
beq .L1798
|
|
adds r2, r2, #1
|
|
cmp r2, #8
|
|
bne .L1799
|
|
.L1800:
|
|
movs r1, #0
|
|
ldr r0, .L1880+24
|
|
bl printf
|
|
.L1802:
|
|
b .L1802
|
|
.L1788:
|
|
cmp r4, #4
|
|
mov r3, #54
|
|
str r3, [r5, #2056]
|
|
bne .L1790
|
|
movs r3, #64
|
|
str r6, [r5, #2052]
|
|
str r3, [r5, #2048]
|
|
movs r3, #204
|
|
.L1876:
|
|
str r3, [r5, #2052]
|
|
movs r3, #77
|
|
b .L1877
|
|
.L1881:
|
|
.align 2
|
|
.L1880:
|
|
.word .LANCHOR6
|
|
.word .LANCHOR162
|
|
.word .LANCHOR23
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR163
|
|
.word .LC102
|
|
.L1790:
|
|
subs r3, r4, #5
|
|
cmp r3, #1
|
|
bhi .L1792
|
|
ldrb r3, [fp, #128] @ zero_extendqisi2
|
|
str r3, [r5, #2052]
|
|
movs r3, #82
|
|
.L1877:
|
|
str r3, [r5, #2048]
|
|
.L1791:
|
|
ldm sp, {r2, r3}
|
|
cmp r4, #6
|
|
add r3, r3, r2, lsl #8
|
|
mov r2, #22
|
|
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]
|
|
it eq
|
|
moveq r2, #31
|
|
str r2, [r3, #2052]
|
|
movs r2, #2
|
|
str r2, [r3, #2052]
|
|
movs r2, #0
|
|
str r2, [r3, #2052]
|
|
b .L1789
|
|
.L1792:
|
|
cmp r4, #7
|
|
bne .L1791
|
|
movs r3, #174
|
|
str r3, [r5, #2052]
|
|
movs r3, #0
|
|
str r3, [r5, #2048]
|
|
movs r3, #176
|
|
b .L1876
|
|
.L1835:
|
|
movs r2, #16
|
|
b .L1795
|
|
.L1798:
|
|
cmp r1, #6
|
|
bhi .L1800
|
|
.L1801:
|
|
ldr r3, .L1882
|
|
ldr ip, [r3]
|
|
mov r3, ip
|
|
.L1811:
|
|
ldr r1, [sp, #48]
|
|
sub r2, r3, ip
|
|
cmp r1, r2
|
|
bgt .L1812
|
|
ldr r3, .L1882
|
|
ldr r1, [r3]
|
|
ldr r3, [sp, #24]
|
|
adds r2, r1, r3
|
|
movs r3, #8
|
|
.L1814:
|
|
mov r5, r2
|
|
movs r0, #0
|
|
.L1813:
|
|
ldrh r6, [r5]
|
|
adds r0, r0, #1
|
|
mvns r6, r6
|
|
strh r6, [r5], #2 @ movhi
|
|
ldr r6, [sp, #8]
|
|
cmp r6, r0
|
|
bgt .L1813
|
|
ldr r0, [sp, #44]
|
|
subs r3, r3, #1
|
|
add r2, r2, r0
|
|
bne .L1814
|
|
mov r6, r1
|
|
str r3, [sp, #16]
|
|
.L1815:
|
|
movs r0, #0
|
|
mov r2, r0
|
|
.L1819:
|
|
movs r3, #1
|
|
mov lr, r6
|
|
lsl r5, r3, r2
|
|
movs r3, #0
|
|
str r3, [sp, #12]
|
|
str r5, [sp, #32]
|
|
movs r5, #16
|
|
str r5, [sp, #36]
|
|
.L1817:
|
|
ldrh r3, [lr]
|
|
str r3, [sp, #52]
|
|
ldr r3, [sp, #32]
|
|
mov r5, r3
|
|
ldr r3, [sp, #52]
|
|
bics r3, r5, r3
|
|
ittt eq
|
|
ldreq r3, [sp, #12]
|
|
addeq r3, r3, #1
|
|
streq r3, [sp, #12]
|
|
ldr r3, [sp, #24]
|
|
add lr, lr, r3
|
|
ldr r3, [sp, #36]
|
|
subs r3, r3, #1
|
|
str r3, [sp, #36]
|
|
bne .L1817
|
|
ldr r3, [sp, #12]
|
|
adds r2, r2, #1
|
|
cmp r3, #8
|
|
ittt hi
|
|
ldrhi r3, [sp, #32]
|
|
orrhi r0, r0, r3
|
|
uxthhi r0, r0
|
|
cmp r2, #16
|
|
bne .L1819
|
|
ldr r3, [sp, #16]
|
|
strh r0, [r6], #2 @ movhi
|
|
adds r3, r3, #1
|
|
str r3, [sp, #16]
|
|
ldr r2, [sp, #16]
|
|
ldr r3, [sp, #8]
|
|
cmp r3, r2
|
|
bgt .L1815
|
|
subs r2, r1, #4
|
|
add r0, r1, #28
|
|
movs r3, #0
|
|
.L1822:
|
|
ldr r5, [r2, #4]!
|
|
cbnz r5, .L1821
|
|
adds r3, r3, #1
|
|
.L1821:
|
|
cmp r0, r2
|
|
bne .L1822
|
|
cmp r3, #7
|
|
ble .L1823
|
|
ldr r0, .L1882+4
|
|
mov r3, #1024
|
|
movs r2, #1
|
|
bl rknand_print_hex
|
|
movs r1, #0
|
|
ldr r0, .L1882+8
|
|
bl printf
|
|
.L1824:
|
|
b .L1824
|
|
.L1797:
|
|
cmp r4, #7
|
|
bne .L1803
|
|
movs r2, #0
|
|
.L1805:
|
|
ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
|
|
uxtb r1, r2
|
|
cmp r0, #12
|
|
beq .L1804
|
|
add r0, r3, r2, lsl #2
|
|
ldrb r0, [r0, #1] @ zero_extendqisi2
|
|
cmp r0, #10
|
|
beq .L1804
|
|
adds r2, r2, #1
|
|
cmp r2, #8
|
|
bne .L1805
|
|
.L1806:
|
|
movs r1, #0
|
|
ldr r0, .L1882+8
|
|
bl printf
|
|
.L1807:
|
|
b .L1807
|
|
.L1804:
|
|
cmp r1, #6
|
|
bls .L1801
|
|
b .L1806
|
|
.L1803:
|
|
cmp r4, #6
|
|
bne .L1801
|
|
adds r3, r3, #7
|
|
.L1808:
|
|
ldrb r2, [r1, #1]! @ zero_extendqisi2
|
|
cmp r2, #12
|
|
beq .L1801
|
|
ldrb r2, [r1, #8] @ zero_extendqisi2
|
|
cmp r2, #4
|
|
beq .L1801
|
|
cmp r3, r1
|
|
bne .L1808
|
|
movs r1, #0
|
|
ldr r0, .L1882+8
|
|
bl printf
|
|
.L1810:
|
|
b .L1810
|
|
.L1812:
|
|
ldr r2, [r7, #2048]
|
|
strb r2, [r3], #1
|
|
b .L1811
|
|
.L1823:
|
|
cmp r4, #6
|
|
beq .L1837
|
|
cmp r4, #7
|
|
beq .L1838
|
|
cmp r4, #8
|
|
ite ne
|
|
movne r0, #8
|
|
moveq r0, #5
|
|
.L1825:
|
|
add r3, r10, #-1
|
|
ldr r1, [sp, #40]
|
|
uxtb r3, r3
|
|
movs r5, #0
|
|
adds r3, r3, #1
|
|
.L1826:
|
|
mov lr, r1
|
|
mov r2, ip
|
|
.L1827:
|
|
ldrb r6, [r2], #1 @ zero_extendqisi2
|
|
strb r6, [lr], #1
|
|
sub r6, r2, ip
|
|
uxtb r6, r6
|
|
cmp r10, r6
|
|
bhi .L1827
|
|
adds r5, r5, #1
|
|
add ip, ip, r3
|
|
cmp r8, r5
|
|
add r1, r1, r0
|
|
bgt .L1826
|
|
ldm sp, {r2, r3}
|
|
movs r6, #255
|
|
add r5, r3, r2, lsl #8
|
|
str r6, [r5, #2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [sp, #28]
|
|
cmp r3, #1
|
|
bhi .L1829
|
|
movs r3, #54
|
|
movs r2, #22
|
|
str r3, [r5, #2056]
|
|
ldrb r3, [fp, #128] @ zero_extendqisi2
|
|
str r3, [r7, #2052]
|
|
movs r3, #0
|
|
str r3, [r7, #2048]
|
|
str r2, [r5, #2056]
|
|
str r3, [r5, #2056]
|
|
str r3, [r7, #2052]
|
|
str r3, [r7, #2052]
|
|
movs r3, #48
|
|
str r6, [r7, #2052]
|
|
str r6, [r7, #2052]
|
|
str r6, [r7, #2052]
|
|
.L1878:
|
|
str r3, [r5, #2056]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [sp, #20]
|
|
adds r3, r3, #1
|
|
b .L1879
|
|
.L1837:
|
|
movs r0, #4
|
|
b .L1825
|
|
.L1838:
|
|
movs r0, #10
|
|
b .L1825
|
|
.L1829:
|
|
cmp r4, #8
|
|
ite eq
|
|
moveq r3, #190
|
|
movne r3, #56
|
|
b .L1878
|
|
.L1883:
|
|
.align 2
|
|
.L1882:
|
|
.word .LANCHOR163
|
|
.word .LC103
|
|
.word .LC102
|
|
.size hynix_get_read_retry_default, .-hynix_get_read_retry_default
|
|
.section .text.flash_get_read_retry_tbl,"ax",%progbits
|
|
.align 1
|
|
.global flash_get_read_retry_tbl
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_get_read_retry_tbl, %function
|
|
flash_get_read_retry_tbl:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
ldr r3, .L1886
|
|
ldrb r0, [r3, #19] @ zero_extendqisi2
|
|
subs r3, r0, #1
|
|
cmp r3, #7
|
|
bhi .L1884
|
|
b hynix_get_read_retry_default
|
|
.L1884:
|
|
bx lr
|
|
.L1887:
|
|
.align 2
|
|
.L1886:
|
|
.word .LANCHOR32
|
|
.size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
|
|
.section .text.nandc_xfer_done,"ax",%progbits
|
|
.align 1
|
|
.global nandc_xfer_done
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_xfer_done, %function
|
|
nandc_xfer_done:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L1923
|
|
push {r0, r1, r4, r5, r6, r7, r8, lr}
|
|
movs r1, #0
|
|
ldr r4, .L1923+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldr r5, .L1923+8
|
|
strb r1, [r4]
|
|
cmp r3, #9
|
|
ldr r6, [r5]
|
|
bne .L1889
|
|
ldr r3, [r6, #16]
|
|
str r3, [sp]
|
|
ldr r3, [r6, #48]
|
|
ubfx r3, r3, #1, #1
|
|
cmp r3, #0
|
|
bne .L1894
|
|
ldr r7, .L1923+12
|
|
mov r4, r3
|
|
ldr r8, .L1923+32
|
|
.L1891:
|
|
ldr r3, [sp]
|
|
lsls r0, r3, #11
|
|
bmi .L1893
|
|
ldr r3, [r5]
|
|
adds r4, r4, #1
|
|
ldr r3, [r3, #16]
|
|
str r3, [sp]
|
|
bics r3, r4, #-16777216
|
|
bne .L1891
|
|
ldr r2, [sp]
|
|
mov r1, r4
|
|
ldr r3, [r6, #64]
|
|
mov r0, r7
|
|
ubfx r3, r3, #16, #6
|
|
bl printf
|
|
movs r3, #64
|
|
movs r2, #4
|
|
ldr r1, [r5]
|
|
mov r0, r8
|
|
bl rknand_print_hex
|
|
b .L1891
|
|
.L1892:
|
|
ldr r3, [sp]
|
|
adds r1, r1, #1
|
|
ubfx r3, r3, #22, #6
|
|
cmp r1, r3, lsl #12
|
|
bne .L1894
|
|
ldr r2, [r6, #64]
|
|
ldr r3, [sp]
|
|
ldr r0, .L1923+16
|
|
ubfx r2, r2, #16, #5
|
|
ubfx r3, r3, #22, #6
|
|
bl printf
|
|
ldr r3, [sp, #4]
|
|
movs r3, #1
|
|
strb r3, [r4]
|
|
.L1893:
|
|
ldr r3, .L1923+20
|
|
movs r2, #0
|
|
str r2, [r3, #20]
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L1894:
|
|
ldr r2, [r6, #64]
|
|
ldr r3, [sp]
|
|
ubfx r2, r2, #16, #6
|
|
ubfx r3, r3, #22, #6
|
|
cmp r2, r3
|
|
bge .L1893
|
|
ldr r3, [r6]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
lsls r7, r3, #18
|
|
bpl .L1892
|
|
ldr r3, [sp, #4]
|
|
lsls r5, r3, #14
|
|
bpl .L1892
|
|
ldr r1, [sp, #4]
|
|
ldr r0, .L1923+24
|
|
ubfx r1, r1, #17, #1
|
|
.L1922:
|
|
bl printf
|
|
b .L1893
|
|
.L1889:
|
|
ldr r3, [r6, #8]
|
|
str r3, [sp]
|
|
ldr r4, [r6, #16]
|
|
ubfx r4, r4, #1, #1
|
|
cbnz r4, .L1899
|
|
ldr r7, .L1923+12
|
|
ldr r8, .L1923+32
|
|
.L1900:
|
|
ldr r3, [sp]
|
|
lsls r3, r3, #11
|
|
bmi .L1893
|
|
ldr r3, [r5]
|
|
adds r4, r4, #1
|
|
ldr r3, [r3, #8]
|
|
str r3, [sp]
|
|
bics r3, r4, #-16777216
|
|
bne .L1900
|
|
ldr r2, [sp]
|
|
mov r1, r4
|
|
ldr r3, [r6, #28]
|
|
mov r0, r7
|
|
ubfx r3, r3, #16, #5
|
|
bl printf
|
|
movs r3, #64
|
|
movs r2, #4
|
|
ldr r1, [r5]
|
|
mov r0, r8
|
|
bl rknand_print_hex
|
|
b .L1900
|
|
.L1899:
|
|
ldr r7, .L1923+16
|
|
mov r4, r1
|
|
ldr r8, .L1923+32
|
|
.L1901:
|
|
ldr r2, [r6, #28]
|
|
ldr r3, [sp]
|
|
ubfx r2, r2, #16, #5
|
|
ubfx r3, r3, #22, #6
|
|
cmp r2, r3
|
|
bge .L1893
|
|
ldr r3, [r5]
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
lsls r1, r3, #18
|
|
bpl .L1902
|
|
ldr r3, [sp, #4]
|
|
lsls r2, r3, #14
|
|
bpl .L1902
|
|
ldr r1, [sp, #4]
|
|
ldr r0, .L1923+28
|
|
b .L1922
|
|
.L1902:
|
|
adds r4, r4, #1
|
|
bics r3, r4, #-16777216
|
|
bne .L1901
|
|
ldr r2, [r6, #28]
|
|
mov r1, r4
|
|
ldr r3, [sp]
|
|
mov r0, r7
|
|
ubfx r2, r2, #16, #5
|
|
ubfx r3, r3, #22, #6
|
|
bl printf
|
|
movs r3, #64
|
|
movs r2, #4
|
|
ldr r1, [r5]
|
|
mov r0, r8
|
|
bl rknand_print_hex
|
|
b .L1901
|
|
.L1924:
|
|
.align 2
|
|
.L1923:
|
|
.word .LANCHOR27
|
|
.word .LANCHOR164
|
|
.word .LANCHOR7
|
|
.word .LC106
|
|
.word .LC105
|
|
.word .LANCHOR52
|
|
.word .LC104
|
|
.word .LC108
|
|
.word .LC107
|
|
.size nandc_xfer_done, .-nandc_xfer_done
|
|
.section .text.nandc_xfer,"ax",%progbits
|
|
.align 1
|
|
.global nandc_xfer
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nandc_xfer, %function
|
|
nandc_xfer:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, lr}
|
|
mov r4, r1
|
|
ldr r5, [sp, #32]
|
|
mov r7, r2
|
|
mov r6, r3
|
|
mov r0, r4
|
|
mov r2, r6
|
|
mov r1, r7
|
|
mov r3, r5
|
|
bl nandc_xfer_start
|
|
mov r0, r4
|
|
bl nandc_xfer_done
|
|
cmp r4, #0
|
|
bne .L1944
|
|
ldr r3, .L1963
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
bne .L1927
|
|
ldr r3, .L1963+4
|
|
lsrs r7, r7, #2
|
|
movs r2, #1
|
|
mov r0, r4
|
|
ldr r1, [r3]
|
|
mov r8, r3
|
|
.L1928:
|
|
cmp r4, r7
|
|
bcc .L1932
|
|
ldr r4, [r1]
|
|
cmp r2, #0
|
|
it ne
|
|
movne r0, #512
|
|
and r3, r4, #139264
|
|
cmp r3, #139264
|
|
bne .L1934
|
|
mov r1, r4
|
|
ldr r0, .L1963+8
|
|
bl printf
|
|
ldr r3, [r8]
|
|
mov r0, #-1
|
|
orr r4, r4, #131072
|
|
str r4, [r3]
|
|
.L1934:
|
|
lsls r2, r4, #18
|
|
bpl .L1935
|
|
ldr r3, .L1963+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L1935
|
|
mov r1, r4
|
|
ldr r0, .L1963+16
|
|
bl printf
|
|
ldr r3, [r8]
|
|
movs r2, #1
|
|
str r2, [r3, #16]
|
|
.L1962:
|
|
mov r0, #-1
|
|
.L1926:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L1932:
|
|
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
|
|
ands r2, r2, r3
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #29
|
|
bmi .L1946
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #13
|
|
bmi .L1946
|
|
ldr r3, [sp, #4]
|
|
ubfx ip, r3, #3, #7
|
|
ldr r3, [sp, #4]
|
|
ubfx r3, r3, #19, #7
|
|
cmp ip, r3
|
|
ldr r3, [sp, #4]
|
|
ite gt
|
|
ubfxgt r3, r3, #3, #7
|
|
ubfxle r3, r3, #19, #7
|
|
cmp r0, r3
|
|
it cc
|
|
movcc r0, r3
|
|
.L1929:
|
|
adds r4, r4, #1
|
|
b .L1928
|
|
.L1946:
|
|
mov r0, #-1
|
|
b .L1929
|
|
.L1927:
|
|
ldr r3, .L1963+20
|
|
lsrs r0, r7, #1
|
|
ldr r8, .L1963+28
|
|
mov r1, r4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #25
|
|
mov r3, r5
|
|
ite cc
|
|
movcc lr, #64
|
|
movcs lr, #128
|
|
.L1937:
|
|
cmp r1, r0
|
|
add ip, lr, r4
|
|
add r3, r3, #4
|
|
bcc .L1938
|
|
lsrs r4, r7, #2
|
|
ldr r7, .L1963+4
|
|
movs r2, #0
|
|
mov r0, r2
|
|
ldr r1, [r7]
|
|
.L1939:
|
|
cmp r2, r4
|
|
bcc .L1943
|
|
movs r3, #0
|
|
str r3, [r1, #16]
|
|
ldr r4, [r1]
|
|
and r3, r4, #139264
|
|
cmp r3, #139264
|
|
bne .L1935
|
|
mov r1, r4
|
|
ldr r0, .L1963+24
|
|
bl printf
|
|
ldr r3, [r7]
|
|
orr r4, r4, #131072
|
|
str r4, [r3]
|
|
b .L1962
|
|
.L1938:
|
|
ldr r2, [r8]
|
|
bic r4, r4, #3
|
|
adds r1, r1, #1
|
|
ldr r2, [r2, r4]
|
|
strb r2, [r3, #-4]
|
|
lsrs r4, r2, #8
|
|
strb r4, [r3, #-3]
|
|
lsrs r4, r2, #16
|
|
lsrs r2, r2, #24
|
|
strb r4, [r3, #-2]
|
|
mov r4, ip
|
|
strb r2, [r3, #-1]
|
|
b .L1937
|
|
.L1943:
|
|
add r3, r2, #8
|
|
ldr r3, [r1, r3, lsl #2]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #29
|
|
bmi .L1949
|
|
ldr r3, [sp, #4]
|
|
lsls r3, r3, #16
|
|
bmi .L1949
|
|
ldr r3, [sp, #4]
|
|
ubfx ip, r3, #3, #5
|
|
ldr r3, [sp, #4]
|
|
ubfx r8, r3, #27, #1
|
|
ldr r3, [sp, #4]
|
|
ldr lr, [sp, #4]
|
|
orr ip, ip, r8, lsl #5
|
|
ubfx r3, r3, #16, #5
|
|
ubfx lr, lr, #29, #1
|
|
orr r3, r3, lr, lsl #5
|
|
cmp ip, r3
|
|
ldr r3, [sp, #4]
|
|
itete hi
|
|
ldrhi ip, [sp, #4]
|
|
ldrls ip, [sp, #4]
|
|
ubfxhi r3, r3, #3, #5
|
|
ubfxls r3, r3, #16, #5
|
|
ite hi
|
|
ubfxhi ip, ip, #27, #1
|
|
ubfxls ip, ip, #29, #1
|
|
orr r3, r3, ip, lsl #5
|
|
cmp r0, r3
|
|
it cc
|
|
movcc r0, r3
|
|
.L1940:
|
|
adds r2, r2, #1
|
|
b .L1939
|
|
.L1949:
|
|
mov r0, #-1
|
|
b .L1940
|
|
.L1935:
|
|
adds r3, r0, #1
|
|
beq .L1926
|
|
ldr r3, [r5]
|
|
adds r3, r3, #1
|
|
bne .L1926
|
|
ldr r3, [r5, #4]
|
|
adds r3, r3, #1
|
|
bne .L1926
|
|
ldr r3, [r6]
|
|
adds r3, r3, #1
|
|
it eq
|
|
moveq r0, #512
|
|
b .L1926
|
|
.L1944:
|
|
movs r0, #0
|
|
b .L1926
|
|
.L1964:
|
|
.align 2
|
|
.L1963:
|
|
.word .LANCHOR27
|
|
.word .LANCHOR7
|
|
.word .LC109
|
|
.word .LANCHOR164
|
|
.word .LC110
|
|
.word .LANCHOR49
|
|
.word .LC111
|
|
.word .LANCHOR52
|
|
.size nandc_xfer, .-nandc_xfer
|
|
.section .text.flash_read_page,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_page, %function
|
|
flash_read_page:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r3
|
|
ldr r3, .L1980
|
|
mov r5, r0
|
|
ubfx r10, r1, #24, #2
|
|
lsl fp, r5, #8
|
|
str r2, [sp, #12]
|
|
ldr r8, [r3]
|
|
ldr r3, .L1980+4
|
|
ldr r6, .L1980+8
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
rsb r3, r4, #24
|
|
movs r4, #1
|
|
lsls r4, r4, r3
|
|
subs r4, r4, #1
|
|
ands r4, r4, r1
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r5
|
|
bl nandc_cs
|
|
cmp r10, #0
|
|
bne .L1966
|
|
mov r0, r5
|
|
bl zftl_flash_enter_slc_mode
|
|
.L1967:
|
|
ldr r3, [r6]
|
|
ldrb r2, [r3, #7] @ zero_extendqisi2
|
|
cmp r2, #1
|
|
bne .L1969
|
|
ldrb r2, [r3, #12] @ zero_extendqisi2
|
|
cmp r2, #2
|
|
ittt eq
|
|
addeq r2, r8, fp
|
|
moveq r1, #38
|
|
streq r1, [r2, #2056]
|
|
.L1969:
|
|
add r6, r8, fp
|
|
movs r1, #0
|
|
str r1, [r6, #2056]
|
|
str r1, [r6, #2052]
|
|
str r1, [r6, #2052]
|
|
uxtb r1, r4
|
|
str r1, [r6, #2052]
|
|
lsrs r1, r4, #8
|
|
str r1, [r6, #2052]
|
|
lsrs r1, r4, #16
|
|
str r1, [r6, #2052]
|
|
ldr r1, .L1980+12
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L1970
|
|
lsrs r1, r4, #24
|
|
str r1, [r6, #2052]
|
|
.L1970:
|
|
add r1, r8, fp
|
|
movs r0, #48
|
|
str r0, [r1, #2056]
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L1971
|
|
cmp r10, #0
|
|
beq .L1971
|
|
ldr r3, .L1980+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L1971
|
|
ldr r3, .L1980+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L1971
|
|
add r4, r4, r4, lsl #1
|
|
subs r0, r4, #1
|
|
add r0, r0, r10
|
|
.L1979:
|
|
bl nandc_set_seed
|
|
bl nandc_wait_flash_ready
|
|
add r3, r8, fp
|
|
movs r1, #5
|
|
str r1, [r3, #2056]
|
|
movs r2, #224
|
|
movs r1, #0
|
|
mov r0, r5
|
|
str r1, [r6, #2052]
|
|
str r1, [r6, #2052]
|
|
str r2, [r3, #2056]
|
|
ldr r3, [sp, #12]
|
|
ldrb r2, [sp, #48] @ zero_extendqisi2
|
|
str r7, [sp]
|
|
bl nandc_xfer
|
|
bl nandc_de_cs.constprop.32
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1966:
|
|
ldr r2, [r6]
|
|
ldrb r2, [r2, #12] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
bne .L1968
|
|
ldr r2, .L1980+16
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L1968
|
|
ldr r2, .L1980+20
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L1968
|
|
add r2, r8, fp
|
|
str r10, [r2, #2056]
|
|
b .L1967
|
|
.L1968:
|
|
mov r0, r5
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L1967
|
|
.L1971:
|
|
mov r0, r4
|
|
b .L1979
|
|
.L1981:
|
|
.align 2
|
|
.L1980:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR31
|
|
.word .LANCHOR21
|
|
.word .LANCHOR30
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.size flash_read_page, .-flash_read_page
|
|
.section .text.micron_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global micron_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type micron_read_retrial, %function
|
|
micron_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #24
|
|
str r3, [sp, #20]
|
|
mov r6, r0
|
|
mov fp, r1
|
|
mov r10, #0
|
|
ldr r3, .L2006
|
|
str r2, [sp, #16]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
asrs r3, r3, #2
|
|
str r3, [sp, #8]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, .L2006+4
|
|
ldr r5, [r3]
|
|
add r5, r5, r6, lsl #8
|
|
.L1983:
|
|
mov r0, r6
|
|
mov r8, #0
|
|
mov r4, #-1
|
|
bl zftl_flash_enter_slc_mode
|
|
mov r0, r6
|
|
bl zftl_flash_exit_slc_mode
|
|
.L1984:
|
|
ldr r3, .L2006+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r8, r3
|
|
bcc .L1989
|
|
.L1988:
|
|
movs r3, #239
|
|
movs r0, #1
|
|
str r3, [r5, #2056]
|
|
movs r3, #137
|
|
str r3, [r5, #2052]
|
|
movs r7, #0
|
|
bl udelay
|
|
ldr r3, [sp, #8]
|
|
str r7, [r5, #2048]
|
|
str r7, [r5, #2048]
|
|
cmp r4, r3
|
|
str r7, [r5, #2048]
|
|
str r7, [r5, #2048]
|
|
bcc .L1990
|
|
adds r1, r4, #1
|
|
mov r3, r8
|
|
it ne
|
|
movne r4, #256
|
|
mov r2, fp
|
|
str r4, [sp]
|
|
mov r1, r6
|
|
ldr r0, .L2006+12
|
|
bl printf
|
|
cmp r10, #0
|
|
bne .L1992
|
|
adds r2, r4, #1
|
|
bne .L1993
|
|
movs r1, #3
|
|
mov r0, r6
|
|
bl mt_auto_read_calibration_config
|
|
mov r10, #1
|
|
b .L1983
|
|
.L1989:
|
|
movs r3, #239
|
|
movs r0, #1
|
|
str r3, [r5, #2056]
|
|
movs r3, #137
|
|
str r3, [r5, #2052]
|
|
bl udelay
|
|
add r3, r8, #1
|
|
ldr r2, [sp, #16]
|
|
str r3, [r5, #2048]
|
|
mov r1, fp
|
|
str r3, [sp, #12]
|
|
movs r3, #0
|
|
str r3, [r5, #2048]
|
|
mov r0, r6
|
|
str r3, [r5, #2048]
|
|
str r3, [r5, #2048]
|
|
ldr r3, [sp, #56]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
bl flash_read_page
|
|
ldr r3, .L2006+16
|
|
mov r7, r0
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L1985
|
|
str r0, [sp]
|
|
mov r3, r4
|
|
mov r2, fp
|
|
mov r1, r8
|
|
ldr r0, .L2006+20
|
|
bl printf
|
|
.L1985:
|
|
adds r0, r7, #1
|
|
beq .L1986
|
|
ldr r3, .L2006+24
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r7
|
|
ldr r3, [r3]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L2006+28
|
|
ldr r3, [r3]
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #8]
|
|
cmp r7, r3
|
|
bcc .L1995
|
|
.L1986:
|
|
ldr r8, [sp, #12]
|
|
b .L1984
|
|
.L1995:
|
|
mov r4, r7
|
|
b .L1988
|
|
.L1992:
|
|
mov r1, r7
|
|
mov r0, r6
|
|
bl mt_auto_read_calibration_config
|
|
adds r3, r4, #1
|
|
it ne
|
|
movne r4, #256
|
|
.L1993:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L1990:
|
|
cmp r10, #0
|
|
beq .L1993
|
|
mov r1, r7
|
|
mov r0, r6
|
|
bl mt_auto_read_calibration_config
|
|
mov r4, #256
|
|
b .L1993
|
|
.L2007:
|
|
.align 2
|
|
.L2006:
|
|
.word .LANCHOR49
|
|
.word .LANCHOR7
|
|
.word .LANCHOR166
|
|
.word .LC113
|
|
.word .LANCHOR19
|
|
.word .LC112
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.size micron_read_retrial, .-micron_read_retrial
|
|
.section .text.toshiba_3d_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_3d_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_3d_read_retrial, %function
|
|
toshiba_3d_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #24
|
|
mov r7, r0
|
|
str r2, [sp, #8]
|
|
mov r8, r1
|
|
ubfx r4, r1, #24, #2
|
|
str r3, [sp, #12]
|
|
add r6, r7, #8
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, .L2051
|
|
ldr fp, [r3]
|
|
ldr r3, .L2051+4
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
add r6, fp, r6, lsl #8
|
|
cmp r2, #36
|
|
ite ne
|
|
movne r2, #56
|
|
moveq r2, #46
|
|
str r2, [sp, #20]
|
|
ite ne
|
|
movne r2, #10
|
|
moveq r2, #26
|
|
str r2, [sp, #16]
|
|
cmp r4, #0
|
|
bne .L2010
|
|
mov r4, #-1
|
|
movs r5, #1
|
|
str r3, [sp, #20]
|
|
.L2017:
|
|
ldr r3, [sp, #20]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #36
|
|
bne .L2011
|
|
movs r2, #0
|
|
mov r1, r5
|
|
mov r0, r6
|
|
bl toshiba_tlc_set_rr_para
|
|
add r3, fp, r7, lsl #8
|
|
movs r2, #93
|
|
str r2, [r3, #2056]
|
|
.L2012:
|
|
ldr r3, [sp, #56]
|
|
mov r1, r8
|
|
ldr r2, [sp, #8]
|
|
mov r0, r7
|
|
str r3, [sp]
|
|
ldr r3, [sp, #12]
|
|
bl flash_read_page
|
|
ldr r3, .L2051+8
|
|
mov r10, r0
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #27
|
|
bpl .L2013
|
|
mov r3, r0
|
|
mov r2, r8
|
|
mov r1, r5
|
|
ldr r0, .L2051+12
|
|
bl printf
|
|
.L2013:
|
|
cmp r10, #-1
|
|
beq .L2014
|
|
ldr r3, .L2051+16
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r10
|
|
ldr r3, [r3]
|
|
str r3, [sp, #8]
|
|
ldr r3, .L2051+20
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2051+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r10, r3, asr #2
|
|
bcc .L2032
|
|
.L2014:
|
|
ldr r3, [sp, #16]
|
|
adds r5, r5, #1
|
|
cmp r3, r5
|
|
bne .L2017
|
|
.L2016:
|
|
ldr r3, .L2051+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #36
|
|
bne .L2018
|
|
movs r2, #0
|
|
.L2050:
|
|
movs r1, #0
|
|
mov r0, r6
|
|
bl toshiba_tlc_set_rr_para
|
|
b .L2019
|
|
.L2011:
|
|
uxtb r1, r5
|
|
mov r0, r6
|
|
bl toshiba_3d_set_slc_rr_para
|
|
b .L2012
|
|
.L2032:
|
|
mov r4, r10
|
|
b .L2016
|
|
.L2018:
|
|
movs r1, #0
|
|
mov r0, r6
|
|
bl toshiba_3d_set_slc_rr_para
|
|
.L2019:
|
|
ldr r3, .L2051+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #36
|
|
bne .L2028
|
|
add r3, fp, r7, lsl #8
|
|
movs r2, #85
|
|
str r2, [r3, #2056]
|
|
movs r2, #0
|
|
str r2, [r3, #2052]
|
|
str r2, [r3, #2048]
|
|
movs r2, #255
|
|
str r2, [r3, #2056]
|
|
.L2028:
|
|
ldr r3, .L2051+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r4, r3, asr #2
|
|
bcc .L2029
|
|
adds r3, r4, #1
|
|
mov r2, r8
|
|
it ne
|
|
movne r4, #256
|
|
mov r3, r5
|
|
str r4, [sp]
|
|
mov r1, r7
|
|
ldr r0, .L2051+28
|
|
bl printf
|
|
.L2029:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2010:
|
|
mov r4, #-1
|
|
movs r5, #1
|
|
str r3, [sp, #16]
|
|
.L2026:
|
|
ldr r3, [sp, #16]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #36
|
|
bne .L2020
|
|
movs r2, #1
|
|
mov r1, r5
|
|
mov r0, r6
|
|
bl toshiba_tlc_set_rr_para
|
|
add r3, fp, r7, lsl #8
|
|
movs r2, #93
|
|
.L2049:
|
|
str r2, [r3, #2056]
|
|
mov r1, r8
|
|
ldr r3, [sp, #56]
|
|
mov r0, r7
|
|
ldr r2, [sp, #8]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #12]
|
|
bl flash_read_page
|
|
ldr r3, .L2051+8
|
|
mov r10, r0
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #27
|
|
bpl .L2022
|
|
mov r3, r0
|
|
mov r2, r8
|
|
mov r1, r5
|
|
ldr r0, .L2051+32
|
|
bl printf
|
|
.L2022:
|
|
cmp r10, #-1
|
|
beq .L2023
|
|
ldr r3, .L2051+16
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r10
|
|
ldr r3, [r3]
|
|
str r3, [sp, #8]
|
|
ldr r3, .L2051+20
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2051+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r10, r3, asr #2
|
|
bcc .L2033
|
|
.L2023:
|
|
ldr r3, [sp, #20]
|
|
adds r5, r5, #1
|
|
cmp r3, r5
|
|
bne .L2026
|
|
.L2025:
|
|
ldr r3, .L2051+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #36
|
|
bne .L2027
|
|
movs r2, #1
|
|
b .L2050
|
|
.L2020:
|
|
uxtb r1, r5
|
|
mov r0, r6
|
|
bl toshiba_3d_set_tlc_rr_para
|
|
add r3, fp, r7, lsl #8
|
|
movs r2, #38
|
|
b .L2049
|
|
.L2033:
|
|
mov r4, r10
|
|
b .L2025
|
|
.L2027:
|
|
movs r1, #0
|
|
mov r0, r6
|
|
bl toshiba_3d_set_tlc_rr_para
|
|
b .L2019
|
|
.L2052:
|
|
.align 2
|
|
.L2051:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR15
|
|
.word .LANCHOR19
|
|
.word .LC114
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.word .LANCHOR49
|
|
.word .LC116
|
|
.word .LC115
|
|
.size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial
|
|
.section .text.toshiba_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global toshiba_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type toshiba_read_retrial, %function
|
|
toshiba_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
sub sp, sp, #24
|
|
add r10, r5, #8
|
|
str r2, [sp, #12]
|
|
str r3, [sp, #16]
|
|
str r1, [sp, #8]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r5
|
|
bl zftl_flash_enter_slc_mode
|
|
mov r0, r5
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, .L2080
|
|
ldr r2, .L2080+4
|
|
ldr r7, [r3]
|
|
ldrb r3, [r2] @ zero_extendqisi2
|
|
str r2, [sp, #20]
|
|
subs r3, r3, #67
|
|
add r10, r7, r10, lsl #8
|
|
cmp r3, #1
|
|
bls .L2071
|
|
ldr r3, .L2080+8
|
|
ldrb r6, [r3] @ zero_extendqisi2
|
|
cbz r6, .L2055
|
|
movs r6, #1
|
|
movs r0, #1
|
|
bl nandc_set_if_mode
|
|
.L2055:
|
|
add r3, r7, r5, lsl #8
|
|
movs r2, #92
|
|
str r2, [r3, #2056]
|
|
movs r2, #197
|
|
str r2, [r3, #2056]
|
|
.L2054:
|
|
mov r8, #1
|
|
mov fp, #-1
|
|
.L2056:
|
|
ldr r3, .L2080+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
cmp r8, r3
|
|
bcc .L2065
|
|
mov r4, fp
|
|
.L2064:
|
|
ldr r3, .L2080+4
|
|
movs r1, #0
|
|
mov r0, r10
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #67
|
|
cmp r3, #1
|
|
bhi .L2066
|
|
bl sandisk_set_rr_para
|
|
.L2067:
|
|
add r5, r7, r5, lsl #8
|
|
movs r3, #255
|
|
str r3, [r5, #2056]
|
|
ldr r3, .L2080+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r4, r3, asr #2
|
|
bcc .L2068
|
|
adds r3, r4, #1
|
|
ldr r2, [sp, #8]
|
|
it ne
|
|
movne r4, #256
|
|
mov r3, r8
|
|
str r4, [sp]
|
|
mov r1, r8
|
|
ldr r0, .L2080+20
|
|
bl printf
|
|
.L2068:
|
|
bl nandc_wait_flash_ready
|
|
cbz r6, .L2053
|
|
movs r0, #4
|
|
bl nandc_set_if_mode
|
|
.L2053:
|
|
mov r0, r4
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2071:
|
|
movs r6, #0
|
|
b .L2054
|
|
.L2065:
|
|
ldr r3, [sp, #20]
|
|
mov r0, r10
|
|
uxtb r1, r8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #67
|
|
cmp r3, #1
|
|
bhi .L2057
|
|
bl sandisk_set_rr_para
|
|
.L2058:
|
|
ldr r3, .L2080+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #34
|
|
bne .L2059
|
|
ldr r3, .L2080+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #3
|
|
cmp r8, r3
|
|
ittt eq
|
|
addeq r3, r7, r5, lsl #8
|
|
moveq r2, #179
|
|
streq r2, [r3, #2056]
|
|
.L2059:
|
|
add r3, r7, r5, lsl #8
|
|
movs r2, #38
|
|
add r1, sp, #8
|
|
str r2, [r3, #2056]
|
|
movs r2, #93
|
|
str r2, [r3, #2056]
|
|
mov r0, r5
|
|
ldr r3, [sp, #56]
|
|
str r3, [sp]
|
|
ldm r1, {r1, r2, r3}
|
|
bl flash_read_page
|
|
adds r2, r0, #1
|
|
mov r4, r0
|
|
beq .L2062
|
|
ldr r3, .L2080+24
|
|
cmp fp, #-1
|
|
it eq
|
|
moveq fp, r0
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2080+28
|
|
ldr r3, [r3]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L2080+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r0, r3, asr #2
|
|
bcc .L2064
|
|
.L2062:
|
|
add r8, r8, #1
|
|
b .L2056
|
|
.L2057:
|
|
bl toshiba_set_rr_para
|
|
b .L2058
|
|
.L2066:
|
|
bl toshiba_set_rr_para
|
|
b .L2067
|
|
.L2081:
|
|
.align 2
|
|
.L2080:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR15
|
|
.word .LANCHOR26
|
|
.word .LANCHOR166
|
|
.word .LANCHOR49
|
|
.word .LC116
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.size toshiba_read_retrial, .-toshiba_read_retrial
|
|
.section .text.ymtc_3d_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global ymtc_3d_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ymtc_3d_read_retrial, %function
|
|
ymtc_3d_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r0
|
|
mov r8, r1
|
|
mov r10, r2
|
|
mov fp, r3
|
|
mov r4, #-1
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
movs r5, #1
|
|
bl zftl_flash_enter_slc_mode
|
|
mov r0, r7
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r2, .L2106
|
|
tst r8, #50331648
|
|
add r3, r7, #8
|
|
ldr r6, [r2]
|
|
add r6, r6, r3, lsl #8
|
|
bne .L2092
|
|
.L2087:
|
|
uxtb r1, r5
|
|
mov r0, r6
|
|
bl ymtc_3d_set_slc_rr_para
|
|
ldr r3, [sp, #40]
|
|
mov r1, r8
|
|
mov r2, r10
|
|
mov r0, r7
|
|
str r3, [sp]
|
|
mov r3, fp
|
|
bl flash_read_page
|
|
adds r1, r0, #1
|
|
beq .L2084
|
|
ldr r3, .L2106+4
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r0
|
|
ldr r10, [r3]
|
|
ldr r3, .L2106+8
|
|
ldr fp, [r3]
|
|
ldr r3, .L2106+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r0, r3, asr #2
|
|
bcc .L2095
|
|
.L2084:
|
|
adds r5, r5, #1
|
|
cmp r5, #10
|
|
bne .L2087
|
|
.L2086:
|
|
movs r1, #0
|
|
mov r0, r6
|
|
bl ymtc_3d_set_slc_rr_para
|
|
.L2088:
|
|
ldr r3, .L2106+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r4, r3, asr #2
|
|
bcc .L2093
|
|
adds r3, r4, #1
|
|
mov r2, r8
|
|
it ne
|
|
movne r4, #256
|
|
mov r3, r5
|
|
str r4, [sp]
|
|
mov r1, r5
|
|
ldr r0, .L2106+16
|
|
bl printf
|
|
.L2093:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2095:
|
|
mov r4, r0
|
|
b .L2086
|
|
.L2092:
|
|
uxtb r1, r5
|
|
mov r0, r6
|
|
bl ymtc_3d_set_tlc_rr_para
|
|
ldr r3, [sp, #40]
|
|
mov r2, r10
|
|
mov r1, r8
|
|
mov r0, r7
|
|
str r3, [sp]
|
|
mov r3, fp
|
|
bl flash_read_page
|
|
adds r2, r0, #1
|
|
beq .L2089
|
|
ldr r3, .L2106+4
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r0
|
|
ldr r10, [r3]
|
|
ldr r3, .L2106+8
|
|
ldr fp, [r3]
|
|
ldr r3, .L2106+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r0, r3, asr #2
|
|
bcc .L2096
|
|
.L2089:
|
|
adds r5, r5, #1
|
|
cmp r5, #51
|
|
bne .L2092
|
|
.L2091:
|
|
movs r1, #0
|
|
mov r0, r6
|
|
bl ymtc_3d_set_tlc_rr_para
|
|
b .L2088
|
|
.L2096:
|
|
mov r4, r0
|
|
b .L2091
|
|
.L2107:
|
|
.align 2
|
|
.L2106:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.word .LANCHOR49
|
|
.word .LC117
|
|
.size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial
|
|
.section .text.samsung_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global samsung_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type samsung_read_retrial, %function
|
|
samsung_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r0
|
|
sub sp, sp, #24
|
|
mov r8, r1
|
|
str r3, [sp, #16]
|
|
str r2, [sp, #12]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl zftl_flash_enter_slc_mode
|
|
mov r0, r7
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, .L2141
|
|
tst r8, #50331648
|
|
ldr r3, [r3]
|
|
str r3, [sp, #8]
|
|
bne .L2109
|
|
lsl fp, r7, #8
|
|
mov r4, #-1
|
|
movs r5, #1
|
|
add r6, r3, fp
|
|
.L2114:
|
|
movs r3, #239
|
|
str r3, [r6, #2056]
|
|
movs r3, #141
|
|
str r3, [r6, #2052]
|
|
ldr r3, .L2141+4
|
|
ldrsb r3, [r5, r3]
|
|
str r3, [r6, #2048]
|
|
movs r3, #0
|
|
str r3, [r6, #2048]
|
|
str r3, [r6, #2048]
|
|
str r3, [r6, #2048]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [sp, #56]
|
|
mov r1, r8
|
|
ldr r2, [sp, #12]
|
|
mov r0, r7
|
|
str r3, [sp]
|
|
ldr r3, [sp, #16]
|
|
bl flash_read_page
|
|
ldr r3, .L2141+8
|
|
mov r10, r0
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #27
|
|
bpl .L2110
|
|
mov r3, r0
|
|
mov r2, r8
|
|
mov r1, r5
|
|
ldr r0, .L2141+12
|
|
bl printf
|
|
.L2110:
|
|
cmp r10, #-1
|
|
beq .L2111
|
|
ldr r3, .L2141+16
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r10
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2141+20
|
|
ldr r3, [r3]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L2141+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r10, r3, asr #2
|
|
bcc .L2123
|
|
.L2111:
|
|
adds r5, r5, #1
|
|
cmp r5, #26
|
|
bne .L2114
|
|
.L2113:
|
|
ldr r3, [sp, #8]
|
|
add r3, r3, fp
|
|
mov fp, r3
|
|
movs r3, #239
|
|
str r3, [fp, #2056]
|
|
movs r3, #141
|
|
.L2140:
|
|
str r3, [r6, #2052]
|
|
movs 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, .L2141+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r4, r3, asr #2
|
|
bcc .L2121
|
|
adds r3, r4, #1
|
|
mov r2, r8
|
|
it ne
|
|
movne r4, #256
|
|
mov r3, r5
|
|
str r4, [sp]
|
|
mov r1, r5
|
|
ldr r0, .L2141+28
|
|
bl printf
|
|
.L2121:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2123:
|
|
mov r4, r10
|
|
b .L2113
|
|
.L2109:
|
|
ldr r3, [sp, #8]
|
|
mov r4, #-1
|
|
ldr r10, .L2141+36
|
|
movs r5, #1
|
|
add r6, r3, r7, lsl #8
|
|
addw r3, r6, #2056
|
|
str r3, [sp, #20]
|
|
.L2120:
|
|
ldr r3, [sp, #20]
|
|
mov r2, r3
|
|
movs r3, #239
|
|
str r3, [r2]
|
|
movs r3, #137
|
|
str r3, [r6, #2052]
|
|
ldrb r3, [r10, #4] @ zero_extendqisi2
|
|
str r3, [r6, #2048]
|
|
ldrb r3, [r10, #5] @ zero_extendqisi2
|
|
str r3, [r6, #2048]
|
|
ldrb r3, [r10, #6] @ zero_extendqisi2
|
|
str r3, [r6, #2048]
|
|
ldrb r3, [r10, #7] @ zero_extendqisi2
|
|
str r3, [r6, #2048]
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [sp, #56]
|
|
mov r1, r8
|
|
ldr r2, [sp, #12]
|
|
mov r0, r7
|
|
str r3, [sp]
|
|
ldr r3, [sp, #16]
|
|
bl flash_read_page
|
|
ldr r3, .L2141+8
|
|
mov fp, r0
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #27
|
|
bpl .L2116
|
|
mov r3, r0
|
|
mov r2, r8
|
|
mov r1, r5
|
|
ldr r0, .L2141+32
|
|
bl printf
|
|
.L2116:
|
|
cmp fp, #-1
|
|
beq .L2117
|
|
ldr r3, .L2141+16
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, fp
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2141+20
|
|
ldr r3, [r3]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L2141+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp fp, r3, asr #2
|
|
bcc .L2124
|
|
.L2117:
|
|
adds r5, r5, #1
|
|
add r10, r10, #4
|
|
cmp r5, #26
|
|
bne .L2120
|
|
.L2119:
|
|
ldr r3, [sp, #8]
|
|
add r7, r3, r7, lsl #8
|
|
movs r3, #239
|
|
str r3, [r7, #2056]
|
|
movs r3, #137
|
|
b .L2140
|
|
.L2124:
|
|
mov r4, fp
|
|
b .L2119
|
|
.L2142:
|
|
.align 2
|
|
.L2141:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR167
|
|
.word .LANCHOR19
|
|
.word .LC118
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.word .LANCHOR49
|
|
.word .LC120
|
|
.word .LC119
|
|
.word .LANCHOR168
|
|
.size samsung_read_retrial, .-samsung_read_retrial
|
|
.section .text.hynix_read_retrial,"ax",%progbits
|
|
.align 1
|
|
.global hynix_read_retrial
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type hynix_read_retrial, %function
|
|
hynix_read_retrial:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r6, r0
|
|
str r3, [sp, #12]
|
|
mov r8, r1
|
|
movs r7, #0
|
|
mov r4, #-1
|
|
ldr r3, .L2157
|
|
str r2, [sp, #8]
|
|
ldr r3, [r3]
|
|
add r10, r3, r0
|
|
ldrb fp, [r3, #114] @ zero_extendqisi2
|
|
ldrb r5, [r10, #120] @ zero_extendqisi2
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r6
|
|
bl zftl_flash_enter_slc_mode
|
|
mov r0, r6
|
|
bl zftl_flash_exit_slc_mode
|
|
.L2144:
|
|
cmp r7, fp
|
|
bcc .L2149
|
|
.L2148:
|
|
ldr r3, .L2157+4
|
|
strb r5, [r10, #120]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r4, r3, asr #2
|
|
bcc .L2150
|
|
adds r3, r4, #1
|
|
mov r2, r8
|
|
it ne
|
|
movne r4, #256
|
|
mov r3, r7
|
|
str r4, [sp]
|
|
mov r1, r7
|
|
ldr r0, .L2157+8
|
|
bl printf
|
|
.L2150:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2149:
|
|
adds r5, r5, #1
|
|
mov r0, r6
|
|
uxtb r5, r5
|
|
cmp fp, r5
|
|
it ls
|
|
movls r5, #0
|
|
mov r1, r5
|
|
bl hynix_set_rr_para
|
|
ldr r3, [sp, #48]
|
|
mov r1, r8
|
|
ldr r2, [sp, #8]
|
|
mov r0, r6
|
|
str r3, [sp]
|
|
ldr r3, [sp, #12]
|
|
bl flash_read_page
|
|
adds r2, r0, #1
|
|
beq .L2146
|
|
ldr r3, .L2157+12
|
|
cmp r4, #-1
|
|
it eq
|
|
moveq r4, r0
|
|
ldr r3, [r3]
|
|
str r3, [sp, #8]
|
|
ldr r3, .L2157+16
|
|
ldr r3, [r3]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2157+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r0, r3, asr #2
|
|
bcc .L2152
|
|
.L2146:
|
|
adds r7, r7, #1
|
|
b .L2144
|
|
.L2152:
|
|
mov r4, r0
|
|
b .L2148
|
|
.L2158:
|
|
.align 2
|
|
.L2157:
|
|
.word .LANCHOR6
|
|
.word .LANCHOR49
|
|
.word .LC121
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.size hynix_read_retrial, .-hynix_read_retrial
|
|
.section .text.flash_ddr_tuning_read,"ax",%progbits
|
|
.align 1
|
|
.global flash_ddr_tuning_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_ddr_tuning_read, %function
|
|
flash_ddr_tuning_read:
|
|
@ args = 4, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r4, #0
|
|
sub sp, sp, #32
|
|
mov r5, r4
|
|
mov r6, #1024
|
|
movs r7, #6
|
|
str r3, [sp, #20]
|
|
mov r8, r0
|
|
mov fp, r1
|
|
str r2, [sp, #16]
|
|
bl nandc_get_ddr_para
|
|
mov r3, #-1
|
|
str r0, [sp, #28]
|
|
str r4, [sp, #24]
|
|
str r4, [sp, #12]
|
|
str r3, [sp, #8]
|
|
.L2165:
|
|
uxtb r0, r7
|
|
bl nandc_set_ddr_para
|
|
ldr r3, [sp, #64]
|
|
mov r1, fp
|
|
ldr r2, [sp, #16]
|
|
mov r0, r8
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
bl flash_read_page
|
|
ldr r3, .L2185
|
|
mov r10, r0
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #27
|
|
bpl .L2160
|
|
mov r3, r0
|
|
mov r2, fp
|
|
mov r1, r7
|
|
ldr r0, .L2185+4
|
|
bl printf
|
|
.L2160:
|
|
adds r3, r6, #1
|
|
cmp r10, r3
|
|
bhi .L2161
|
|
ldr r3, .L2185+8
|
|
ldr r3, [r3]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L2185+12
|
|
ldr r3, [r3]
|
|
str r3, [sp, #20]
|
|
ldr r3, .L2185+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r10, r3, lsr #2
|
|
bcs .L2171
|
|
adds r5, r5, #1
|
|
cmp r5, #7
|
|
bls .L2171
|
|
subs r4, r7, r5
|
|
mov r6, r10
|
|
movs r3, #0
|
|
str r3, [sp, #8]
|
|
.L2163:
|
|
ldr r3, [sp, #24]
|
|
ldr r2, [sp, #12]
|
|
cmp r5, r2
|
|
it cc
|
|
movcc r4, r3
|
|
.L2164:
|
|
cmp r4, #0
|
|
beq .L2166
|
|
ldr r3, .L2185+16
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, .L2185+20
|
|
umull r2, r3, r2, r3
|
|
ubfx r3, r3, #1, #8
|
|
cmp r3, r6
|
|
bls .L2166
|
|
mov r1, r4
|
|
ldr r0, .L2185+24
|
|
bl printf
|
|
uxtb r0, r4
|
|
.L2184:
|
|
bl nandc_set_ddr_para
|
|
ldr r3, [sp, #8]
|
|
cmp r3, #0
|
|
beq .L2159
|
|
ldr r4, .L2185+28
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
lsls r3, r3, #31
|
|
bpl .L2159
|
|
mov r1, r8
|
|
mov r2, fp
|
|
ldr r0, .L2185+32
|
|
bl printf
|
|
mov r0, r8
|
|
bl flash_reset
|
|
movs r0, #1
|
|
bl flash_set_interface_mode
|
|
movs r0, #1
|
|
bl nandc_set_if_mode
|
|
ldr r3, .L2185+36
|
|
movs r2, #2
|
|
mov r0, r8
|
|
strb r2, [r3, r8]
|
|
bl zftl_flash_enter_slc_mode
|
|
ldr r3, [sp, #64]
|
|
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, .L2185+40
|
|
bl printf
|
|
ldr r3, .L2185+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r6, r3
|
|
bhi .L2173
|
|
ldr r2, .L2185+44
|
|
ldr r3, [r2]
|
|
adds r3, r3, #1
|
|
cmp r3, #100
|
|
str r3, [r2]
|
|
bls .L2169
|
|
ldr r3, .L2185+48
|
|
movs r2, #0
|
|
strb r2, [r3]
|
|
.L2159:
|
|
mov r0, r6
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2161:
|
|
ldr r3, [sp, #12]
|
|
cmp r5, r3
|
|
bls .L2172
|
|
cmp r5, #7
|
|
sub r3, r4, r5
|
|
str r3, [sp, #24]
|
|
bhi .L2164
|
|
str r5, [sp, #12]
|
|
.L2172:
|
|
movs r5, #0
|
|
b .L2162
|
|
.L2171:
|
|
mov r4, r7
|
|
mov r6, r10
|
|
movs r3, #0
|
|
str r3, [sp, #8]
|
|
.L2162:
|
|
adds r7, r7, #2
|
|
cmp r7, #50
|
|
bne .L2165
|
|
b .L2163
|
|
.L2166:
|
|
ldrb r0, [sp, #28] @ zero_extendqisi2
|
|
b .L2184
|
|
.L2173:
|
|
ldr r6, [sp, #8]
|
|
.L2169:
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
bl flash_set_interface_mode
|
|
ldrb r0, [r4] @ zero_extendqisi2
|
|
bl nandc_set_if_mode
|
|
b .L2159
|
|
.L2186:
|
|
.align 2
|
|
.L2185:
|
|
.word .LANCHOR19
|
|
.word .LC122
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.word .LANCHOR49
|
|
.word -1431655765
|
|
.word .LC123
|
|
.word .LANCHOR48
|
|
.word .LC124
|
|
.word .LANCHOR33
|
|
.word .LC125
|
|
.word .LANCHOR169
|
|
.word .LANCHOR26
|
|
.size flash_ddr_tuning_read, .-flash_ddr_tuning_read
|
|
.section .text.flash_read_page_en,"ax",%progbits
|
|
.align 1
|
|
.global flash_read_page_en
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_read_page_en, %function
|
|
flash_read_page_en:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r3
|
|
ldr r3, .L2214
|
|
mov r7, r2
|
|
mov r5, r0
|
|
mov r4, r1
|
|
ldr r10, [sp, #48]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
mov fp, r3
|
|
cmp r2, r0
|
|
bhi .L2188
|
|
movw r2, #431
|
|
ldr r1, .L2214+4
|
|
ldr r0, .L2214+8
|
|
bl printf
|
|
.L2188:
|
|
ldr r3, .L2214+12
|
|
ldrb r6, [r3, r5] @ zero_extendqisi2
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
cmp r5, r3
|
|
bcc .L2189
|
|
ldr r2, .L2214+16
|
|
ldr r2, [r2]
|
|
lsls r0, r2, #25
|
|
bmi .L2190
|
|
.L2213:
|
|
mov r0, #-1
|
|
.L2187:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2190:
|
|
str r3, [sp]
|
|
mov r2, r5
|
|
mov r3, r4
|
|
mov r1, r6
|
|
ldr r0, .L2214+20
|
|
bl printf
|
|
b .L2213
|
|
.L2189:
|
|
tst r4, #50331648
|
|
bne .L2192
|
|
ldr r3, .L2214+24
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, .L2214+28
|
|
cbz r2, .L2193
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cbz r2, .L2192
|
|
.L2193:
|
|
ldr r2, .L2214+32
|
|
mov r0, r4
|
|
str r3, [sp, #12]
|
|
ldrh r5, [r2]
|
|
mov r1, r5
|
|
bl __aeabi_uidiv
|
|
mov r1, r5
|
|
mul fp, r5, r0
|
|
mov r0, r4
|
|
bl __aeabi_uidivmod
|
|
ldr r3, [sp, #12]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2194
|
|
add r4, fp, r1, lsl #1
|
|
.L2192:
|
|
mov r1, r4
|
|
str r10, [sp]
|
|
mov r3, r8
|
|
mov r2, r7
|
|
mov r0, r6
|
|
bl flash_read_page
|
|
adds r1, r0, #1
|
|
bne .L2187
|
|
ldr r5, .L2214+36
|
|
ldrb fp, [r5] @ zero_extendqisi2
|
|
cmp fp, #0
|
|
bne .L2195
|
|
.L2198:
|
|
ldr r3, .L2214+40
|
|
ldr fp, [r3]
|
|
cmp fp, #0
|
|
bne .L2196
|
|
.L2197:
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
mov r2, r4
|
|
movs r1, #0
|
|
ldr r0, .L2214+44
|
|
str r3, [sp]
|
|
mov r3, #-1
|
|
bl printf
|
|
ldr r3, .L2214+48
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2213
|
|
str r10, [sp, #48]
|
|
mov r3, r8
|
|
mov r2, r7
|
|
mov r1, r4
|
|
mov r0, r6
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b flash_ddr_tuning_read
|
|
.L2194:
|
|
ldr r3, .L2214+52
|
|
ldrh r4, [r3, r1, lsl #1]
|
|
add r4, r4, fp
|
|
b .L2192
|
|
.L2195:
|
|
movs r3, #0
|
|
mov r2, r7
|
|
strb r3, [r5]
|
|
mov r1, r4
|
|
str r10, [sp]
|
|
mov r3, r8
|
|
mov r0, r6
|
|
bl flash_read_page
|
|
adds r2, r0, #1
|
|
strb fp, [r5]
|
|
beq .L2198
|
|
b .L2187
|
|
.L2196:
|
|
mov r3, r8
|
|
str r10, [sp]
|
|
mov r2, r7
|
|
mov r1, r4
|
|
mov r0, r6
|
|
blx fp
|
|
adds r3, r0, #1
|
|
beq .L2197
|
|
b .L2187
|
|
.L2215:
|
|
.align 2
|
|
.L2214:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR170
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR19
|
|
.word .LC126
|
|
.word .LANCHOR0
|
|
.word .LANCHOR1
|
|
.word .LANCHOR2
|
|
.word .LANCHOR51
|
|
.word .LANCHOR171
|
|
.word .LC127
|
|
.word .LANCHOR26
|
|
.word .LANCHOR3
|
|
.size flash_read_page_en, .-flash_read_page_en
|
|
.section .text.flash_get_last_written_page,"ax",%progbits
|
|
.align 1
|
|
.global flash_get_last_written_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_get_last_written_page, %function
|
|
flash_get_last_written_page:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r1
|
|
ldr r1, .L2226
|
|
mov fp, r2
|
|
mov r10, r3
|
|
str r0, [sp, #12]
|
|
ldrh r4, [r1]
|
|
ldr r1, .L2226+4
|
|
subs r4, r4, #1
|
|
ldrh r6, [r1, #26]
|
|
sxth r4, r4
|
|
ldr r1, [sp, #48]
|
|
mul r6, r8, r6
|
|
str r1, [sp]
|
|
adds r1, r4, r6
|
|
bl flash_read_page_en
|
|
cmp r0, #512
|
|
bne .L2217
|
|
movs r7, #0
|
|
.L2218:
|
|
cmp r7, r4
|
|
ble .L2221
|
|
.L2217:
|
|
ldr r3, .L2226+8
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L2222
|
|
ldr r3, [r10]
|
|
mov r2, r4
|
|
mov r1, r8
|
|
ldr r0, .L2226+12
|
|
bl printf
|
|
.L2222:
|
|
mov r0, r4
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2221:
|
|
adds r5, r7, r4
|
|
ldr r3, [sp, #48]
|
|
add r5, r5, r5, lsr #31
|
|
mov r2, fp
|
|
ldr r0, [sp, #12]
|
|
asrs r5, r5, #1
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
sxtah r1, r6, r5
|
|
bl flash_read_page_en
|
|
cmp r0, #512
|
|
itete eq
|
|
addeq r4, r5, #-1
|
|
addne r5, r5, #1
|
|
sxtheq r4, r4
|
|
sxthne r7, r5
|
|
b .L2218
|
|
.L2227:
|
|
.align 2
|
|
.L2226:
|
|
.word .LANCHOR144
|
|
.word .LANCHOR32
|
|
.word .LANCHOR19
|
|
.word .LC128
|
|
.size flash_get_last_written_page, .-flash_get_last_written_page
|
|
.section .text.flash_get_last_written_page_ext,"ax",%progbits
|
|
.align 1
|
|
.global flash_get_last_written_page_ext
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_get_last_written_page_ext, %function
|
|
flash_get_last_written_page_ext:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, lr}
|
|
ldr r4, .L2229
|
|
ldr r5, .L2229+4
|
|
ldrb r4, [r4] @ zero_extendqisi2
|
|
ldrh r5, [r5]
|
|
rsb r4, r4, #24
|
|
str r3, [sp]
|
|
mov r3, r2
|
|
mov r2, r1
|
|
subs r4, r4, r5
|
|
movs r5, #1
|
|
lsls r5, r5, r4
|
|
asr r4, r0, r4
|
|
subs r5, r5, #1
|
|
and r1, r5, r0
|
|
uxtb r0, r4
|
|
bl flash_get_last_written_page
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, pc}
|
|
.L2230:
|
|
.align 2
|
|
.L2229:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
|
|
.section .text.flash_ddr_para_scan,"ax",%progbits
|
|
.align 1
|
|
.global flash_ddr_para_scan
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_ddr_para_scan, %function
|
|
flash_ddr_para_scan:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r0
|
|
ldr r6, .L2237
|
|
movs r5, #1
|
|
mov r8, r1
|
|
ldr r4, .L2237+4
|
|
ldr fp, .L2237+8
|
|
ldr r10, .L2237+12
|
|
ldrb r0, [r6] @ zero_extendqisi2
|
|
strb r5, [r4]
|
|
bl flash_set_interface_mode
|
|
ldrb r0, [r6] @ zero_extendqisi2
|
|
bl nandc_set_if_mode
|
|
movs r3, #4
|
|
ldr r2, [r10]
|
|
str r3, [sp]
|
|
mov r1, r8
|
|
ldr r3, [fp]
|
|
mov r0, r7
|
|
bl flash_ddr_tuning_read
|
|
movs r3, #4
|
|
ldr r2, [r10]
|
|
str r3, [sp]
|
|
mov r1, r8
|
|
ldr r3, [fp]
|
|
mov r0, r7
|
|
bl flash_read_page
|
|
adds r0, r0, #1
|
|
mov r3, r4
|
|
bne .L2232
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
lsls r2, r2, #31
|
|
bpl .L2232
|
|
mov r0, r5
|
|
bl flash_set_interface_mode
|
|
mov r0, r5
|
|
bl nandc_set_if_mode
|
|
movs r3, #0
|
|
strb r3, [r4]
|
|
.L2233:
|
|
movs r0, #0
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2232:
|
|
movs r2, #1
|
|
strb r2, [r3]
|
|
b .L2233
|
|
.L2238:
|
|
.align 2
|
|
.L2237:
|
|
.word .LANCHOR48
|
|
.word .LANCHOR26
|
|
.word .LANCHOR172
|
|
.word .LANCHOR173
|
|
.size flash_ddr_para_scan, .-flash_ddr_para_scan
|
|
.section .text.flash_prog_page,"ax",%progbits
|
|
.align 1
|
|
.global flash_prog_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_prog_page, %function
|
|
flash_prog_page:
|
|
@ args = 4, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r10, r2
|
|
str r3, [sp, #12]
|
|
mov r4, r0
|
|
mov r6, r1
|
|
add r7, r0, #8
|
|
ldr r3, .L2250
|
|
ldr r5, [r3]
|
|
ldr r3, .L2250+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r7, r5, r7, lsl #8
|
|
rsb r2, r3, #24
|
|
movs r3, #1
|
|
lsls r3, r3, r2
|
|
subs r3, r3, #1
|
|
and fp, r3, r1
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r4
|
|
bl hynix_reconfig_rr_para
|
|
mov r0, r4
|
|
bl nandc_cs
|
|
tst r6, #50331648
|
|
mov r0, r4
|
|
bne .L2240
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2241:
|
|
lsl r8, r4, #8
|
|
movs r1, #128
|
|
add r2, r5, r8
|
|
str r1, [r2, #2056]
|
|
movs r1, #0
|
|
str r1, [r2, #2052]
|
|
str r1, [r2, #2052]
|
|
uxtb r1, fp
|
|
str r1, [r2, #2052]
|
|
lsr r1, fp, #8
|
|
str r1, [r2, #2052]
|
|
lsr r1, fp, #16
|
|
str r1, [r2, #2052]
|
|
ldr r1, .L2250+8
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L2242
|
|
lsr r1, fp, #24
|
|
str r1, [r2, #2052]
|
|
.L2242:
|
|
mov r0, fp
|
|
add r5, r5, r8
|
|
bl nandc_set_seed
|
|
ldr r3, .L2250+12
|
|
movs r1, #1
|
|
mov r0, r4
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldr r3, [sp, #12]
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
bl nandc_xfer
|
|
movs r3, #16
|
|
str r3, [r5, #2056]
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl flash_read_status
|
|
bl nandc_de_cs.constprop.32
|
|
ands r0, r0, #4
|
|
beq .L2239
|
|
mov r2, r0
|
|
mov r1, r6
|
|
ldr r0, .L2250+16
|
|
bl printf
|
|
mov r0, #-1
|
|
.L2239:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2240:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2241
|
|
.L2251:
|
|
.align 2
|
|
.L2250:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR31
|
|
.word .LANCHOR30
|
|
.word .LANCHOR32
|
|
.word .LC129
|
|
.size flash_prog_page, .-flash_prog_page
|
|
.section .text.flash_test_blk,"ax",%progbits
|
|
.align 1
|
|
.global flash_test_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_test_blk, %function
|
|
flash_test_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, lr}
|
|
movs r2, #32
|
|
ldr r7, .L2262
|
|
mov r6, r0
|
|
mov r4, r1
|
|
movs r1, #165
|
|
ldr r5, .L2262+4
|
|
ldr r0, [r7]
|
|
bl ftl_memset
|
|
movs r2, #8
|
|
movs r1, #90
|
|
ldr r0, [r5]
|
|
bl ftl_memset
|
|
ldr r3, .L2262+8
|
|
mov r0, r6
|
|
ldrh r3, [r3]
|
|
muls r4, r3, r4
|
|
mov r1, r4
|
|
bl flash_erase_block
|
|
adds r0, r0, #1
|
|
bne .L2253
|
|
.L2255:
|
|
mov r5, #-1
|
|
.L2254:
|
|
mov r1, r4
|
|
mov r0, r6
|
|
bl flash_erase_block
|
|
mov r0, r5
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L2253:
|
|
ldr r8, .L2262+12
|
|
mov r1, r4
|
|
mov r0, r6
|
|
ldrb r3, [r8, #9] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r2, [r7]
|
|
ldr r3, [r5]
|
|
bl flash_prog_page
|
|
adds r0, r0, #1
|
|
beq .L2255
|
|
ldrb r3, [r8, #9] @ zero_extendqisi2
|
|
mov r1, r4
|
|
mov r0, r6
|
|
str r3, [sp]
|
|
ldr r2, [r7]
|
|
ldr r3, [r5]
|
|
bl flash_read_page_en
|
|
adds r0, r0, #1
|
|
beq .L2255
|
|
ldr r3, [r7]
|
|
ldr r3, [r3]
|
|
cmp r3, #-1515870811
|
|
bne .L2255
|
|
ldr r3, [r5]
|
|
ldr r5, [r3]
|
|
subs r5, r5, #1515870810
|
|
it ne
|
|
movne r5, #-1
|
|
b .L2254
|
|
.L2263:
|
|
.align 2
|
|
.L2262:
|
|
.word .LANCHOR163
|
|
.word .LANCHOR165
|
|
.word .LANCHOR2
|
|
.word .LANCHOR32
|
|
.size flash_test_blk, .-flash_test_blk
|
|
.section .text.id_block_prog_msb_ff_data,"ax",%progbits
|
|
.align 1
|
|
.global id_block_prog_msb_ff_data
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type id_block_prog_msb_ff_data, %function
|
|
id_block_prog_msb_ff_data:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L2271
|
|
push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r6, r0
|
|
mov r7, r1
|
|
mov r4, r2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L2264
|
|
ldr r5, .L2271+4
|
|
ldrb r2, [r5, #19] @ zero_extendqisi2
|
|
subs r3, r2, #5
|
|
uxtb r3, r3
|
|
cmp r3, #30
|
|
bhi .L2266
|
|
ldr r2, .L2271+8
|
|
lsr r3, r2, r3
|
|
lsls r3, r3, #31
|
|
bmi .L2268
|
|
.L2264:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L2269:
|
|
ldrh r2, [r10, r4, lsl #1]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L2264
|
|
mov r2, #16384
|
|
movs r1, #255
|
|
ldr r0, [r8]
|
|
bl ftl_memset
|
|
ldrb r3, [r5, #9] @ zero_extendqisi2
|
|
adds r1, r4, r7
|
|
adds r4, r4, #1
|
|
mov r0, r6
|
|
uxth r4, r4
|
|
str r3, [sp]
|
|
ldr r3, [r8]
|
|
mov r2, r3
|
|
bl flash_prog_page
|
|
.L2270:
|
|
ldrh r3, [r5, #10]
|
|
cmp r3, r4
|
|
bhi .L2269
|
|
b .L2264
|
|
.L2266:
|
|
cmp r2, #68
|
|
bne .L2264
|
|
.L2268:
|
|
ldr r10, .L2271+12
|
|
ldr r8, .L2271+16
|
|
b .L2270
|
|
.L2272:
|
|
.align 2
|
|
.L2271:
|
|
.word .LANCHOR24
|
|
.word .LANCHOR32
|
|
.word 1073758215
|
|
.word .LANCHOR142
|
|
.word .LANCHOR163
|
|
.size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data
|
|
.section .text.flash_start_one_pass_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_one_pass_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_one_pass_page_prog, %function
|
|
flash_start_one_pass_page_prog:
|
|
@ args = 12, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r7, r3
|
|
ldr r3, .L2282
|
|
mov r10, r0
|
|
mov r0, r7
|
|
mov r8, r2
|
|
ldr r5, [sp, #40]
|
|
lsls r6, r7, #8
|
|
ldr r4, [r3]
|
|
bl nandc_cs
|
|
cmp r10, #0
|
|
beq .L2274
|
|
adds r3, r4, r6
|
|
str r10, [r3, #2056]
|
|
.L2274:
|
|
adds r3, r4, r6
|
|
movs r2, #128
|
|
str r2, [r3, #2056]
|
|
movs r2, #0
|
|
str r2, [r3, #2052]
|
|
str r2, [r3, #2052]
|
|
uxtb r2, r5
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r5, #8
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r5, #16
|
|
str r2, [r3, #2052]
|
|
ldr r2, .L2282+4
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L2275
|
|
lsrs r2, r5, #24
|
|
str r2, [r3, #2052]
|
|
.L2275:
|
|
mov r0, r5
|
|
add r4, r4, r6
|
|
bl nandc_set_seed
|
|
ldr r3, .L2282+8
|
|
movs r1, #1
|
|
mov r0, r7
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldr r3, [sp, #48]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #44]
|
|
bl nandc_xfer
|
|
str r8, [r4, #2056]
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L2283:
|
|
.align 2
|
|
.L2282:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR30
|
|
.word .LANCHOR32
|
|
.size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog
|
|
.section .text.flash_dual_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global flash_dual_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_dual_page_prog, %function
|
|
flash_dual_page_prog:
|
|
@ args = 12, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #24
|
|
str r2, [sp, #20]
|
|
mov fp, r3
|
|
add r3, r0, #8
|
|
mov r5, r0
|
|
ldr r2, .L2296
|
|
mov r6, r1
|
|
ubfx r8, r1, #24, #2
|
|
ldr r7, [r2]
|
|
add r7, r7, r3, lsl #8
|
|
ldr r3, .L2296+4
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
rsb r3, r4, #24
|
|
movs r4, #1
|
|
lsls r4, r4, r3
|
|
ldr r3, .L2296+8
|
|
subs r4, r4, #1
|
|
ldr r2, [r3]
|
|
ands r4, r4, r1
|
|
mov r10, r3
|
|
tst r2, #16
|
|
beq .L2285
|
|
ldr r3, [sp, #64]
|
|
mov r2, r8
|
|
ldr r0, .L2296+12
|
|
bl printf
|
|
.L2285:
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r5
|
|
bl nandc_cs
|
|
mov r0, r5
|
|
cmp r8, #0
|
|
bne .L2286
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2287:
|
|
ldr r3, [sp, #20]
|
|
movs r1, #0
|
|
movs r2, #16
|
|
mov r0, r1
|
|
str r4, [sp]
|
|
adds r4, r4, #1
|
|
str r3, [sp, #4]
|
|
mov r3, r5
|
|
str fp, [sp, #8]
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [sp, #60]
|
|
movs r1, #0
|
|
movs r2, #16
|
|
mov r0, r1
|
|
str r4, [sp]
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #56]
|
|
str r3, [sp, #4]
|
|
mov r3, r5
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl flash_read_status
|
|
bl nandc_de_cs.constprop.32
|
|
ands r0, r0, #4
|
|
beq .L2284
|
|
ldr r3, [r10]
|
|
lsls r3, r3, #19
|
|
bpl .L2289
|
|
mov r2, r0
|
|
mov r1, r6
|
|
ldr r0, .L2296+16
|
|
bl printf
|
|
.L2289:
|
|
mov r0, #-1
|
|
.L2284:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2286:
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2287
|
|
.L2297:
|
|
.align 2
|
|
.L2296:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR31
|
|
.word .LANCHOR19
|
|
.word .LC130
|
|
.word .LC129
|
|
.size flash_dual_page_prog, .-flash_dual_page_prog
|
|
.section .text.ymtc_flash_tlc_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global ymtc_flash_tlc_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ymtc_flash_tlc_page_prog, %function
|
|
ymtc_flash_tlc_page_prog:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r10, r2
|
|
ldr r2, .L2304
|
|
mov fp, r3
|
|
add r3, r0, #8
|
|
movs r6, #1
|
|
mov r5, r0
|
|
mov r8, r1
|
|
ldr r7, [r2]
|
|
add r7, r7, r3, lsl #8
|
|
ldr r3, .L2304+4
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
rsb r4, r4, #24
|
|
lsl r4, r6, r4
|
|
subs r4, r4, #1
|
|
ands 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
|
|
movs r2, #26
|
|
mov r1, r6
|
|
stm sp, {r4, r10, fp}
|
|
movs r0, #0
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
adds r3, r4, r6
|
|
movs r2, #26
|
|
mov r1, r6
|
|
str r3, [sp]
|
|
movs r0, #0
|
|
mov r3, r5
|
|
str fp, [sp, #8]
|
|
adds r4, r4, #2
|
|
str r10, [sp, #4]
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov r3, r5
|
|
movs r2, #16
|
|
mov r1, r6
|
|
movs r0, #0
|
|
str fp, [sp, #8]
|
|
str r10, [sp, #4]
|
|
str r4, [sp]
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
mov r0, r7
|
|
bl flash_read_status
|
|
bl nandc_de_cs.constprop.32
|
|
ands r0, r0, #4
|
|
beq .L2298
|
|
ldr r3, .L2304+8
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L2300
|
|
mov r2, r0
|
|
mov r1, r8
|
|
ldr r0, .L2304+12
|
|
bl printf
|
|
.L2300:
|
|
mov r0, #-1
|
|
.L2298:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2305:
|
|
.align 2
|
|
.L2304:
|
|
.word .LANCHOR7
|
|
.word .LANCHOR31
|
|
.word .LANCHOR19
|
|
.word .LC131
|
|
.size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog
|
|
.section .text.fw_flash_page_prog.constprop.29,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type fw_flash_page_prog.constprop.29, %function
|
|
fw_flash_page_prog.constprop.29:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, lr}
|
|
mov r5, r1
|
|
ldr r8, .L2311+12
|
|
sub sp, sp, #20
|
|
mov r6, r2
|
|
ldrb r1, [r8, #9] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L2311
|
|
mov r4, r0
|
|
ldrb r10, [r3] @ zero_extendqisi2
|
|
ldr r3, .L2311+4
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
bl nandc_bch_sel
|
|
ldrb r3, [r8, #7] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
bne .L2307
|
|
ldr r3, .L2311+8
|
|
ldrb r7, [r3] @ zero_extendqisi2
|
|
cbnz r7, .L2307
|
|
ldrb r3, [r8, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L2308
|
|
mov r3, r6
|
|
mov r2, r5
|
|
mov r1, r4
|
|
mov r0, r7
|
|
bl ymtc_flash_tlc_page_prog
|
|
.L2310:
|
|
mov r4, r0
|
|
mov r0, r10
|
|
bl nandc_bch_sel
|
|
mov r0, r4
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L2308:
|
|
ldr r8, .L2311+16
|
|
mov r2, #16384
|
|
movs r1, #255
|
|
ldr r0, [r8]
|
|
bl ftl_memset
|
|
ldr r3, [r8]
|
|
movs r2, #4
|
|
str r2, [sp, #8]
|
|
mov r1, r4
|
|
mov r2, r5
|
|
mov r0, r7
|
|
str r3, [sp, #4]
|
|
str r3, [sp]
|
|
mov r3, r6
|
|
bl flash_dual_page_prog
|
|
b .L2310
|
|
.L2307:
|
|
movs r3, #4
|
|
mov r2, r5
|
|
str r3, [sp]
|
|
mov r1, r4
|
|
mov r3, r6
|
|
movs r0, #0
|
|
bl flash_prog_page
|
|
b .L2310
|
|
.L2312:
|
|
.align 2
|
|
.L2311:
|
|
.word .LANCHOR49
|
|
.word .LANCHOR22
|
|
.word .LANCHOR24
|
|
.word .LANCHOR32
|
|
.word .LANCHOR163
|
|
.size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29
|
|
.section .text.idb_write_data,"ax",%progbits
|
|
.align 1
|
|
.global idb_write_data
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type idb_write_data, %function
|
|
idb_write_data:
|
|
@ args = 0, pretend = 0, frame = 144
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
cmp r1, #64
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r1
|
|
sub sp, sp, #152
|
|
mov r7, r2
|
|
mov r5, r3
|
|
ldr r6, .L2442
|
|
bne .L2314
|
|
ldr r3, [r2]
|
|
ldr r2, .L2442+4
|
|
cmp r3, r2
|
|
beq .L2315
|
|
ldr r2, .L2442+8
|
|
cmp r3, r2
|
|
beq .L2315
|
|
add r2, r2, #327680
|
|
cmp r3, r2
|
|
bne .L2314
|
|
.L2315:
|
|
ldr r8, .L2442+16
|
|
movs r2, #1
|
|
strb r2, [r6]
|
|
ldr r3, [r8]
|
|
cbnz r3, .L2316
|
|
mov r0, #262144
|
|
bl ftl_malloc
|
|
str r0, [r8]
|
|
.L2316:
|
|
ldr r3, .L2442+12
|
|
movs r2, #64
|
|
str r2, [r3]
|
|
.L2314:
|
|
ldrb r0, [r6] @ zero_extendqisi2
|
|
cmp r0, #0
|
|
beq .L2313
|
|
ldr r3, .L2442+16
|
|
ldr r10, [r3]
|
|
mov r8, r3
|
|
cmp r10, #0
|
|
beq .L2441
|
|
adds r3, r4, r5
|
|
cmp r3, #63
|
|
str r3, [sp, #72]
|
|
bls .L2318
|
|
cmp r4, #576
|
|
bcs .L2319
|
|
ldr r10, .L2442+24
|
|
ldr r3, [r10]
|
|
cbz r3, .L2320
|
|
.L2323:
|
|
ldr r3, .L2442+20
|
|
cmp r4, #64
|
|
mov r2, #1
|
|
ldr r0, [r8]
|
|
str r2, [r3]
|
|
bhi .L2436
|
|
rsb r1, r4, #64
|
|
subs r2, r5, r1
|
|
add r1, r7, r1, lsl #9
|
|
lsls r2, r2, #9
|
|
.L2440:
|
|
bl ftl_memcpy
|
|
.L2324:
|
|
ldr r3, .L2442+12
|
|
ldr r3, [r3]
|
|
cmp r4, r3
|
|
itt ne
|
|
movne r3, #0
|
|
strbne r3, [r6]
|
|
b .L2381
|
|
.L2320:
|
|
mov r0, #262144
|
|
bl ftl_malloc
|
|
str r0, [r10]
|
|
cmp r0, #0
|
|
bne .L2323
|
|
mov r0, #-1
|
|
b .L2313
|
|
.L2436:
|
|
rsb r2, r4, #576
|
|
sub r3, r4, #64
|
|
cmp r2, r5
|
|
mov r1, r7
|
|
it cs
|
|
movcs r2, r5
|
|
add r0, r0, r3, lsl #9
|
|
lsls r2, r2, #9
|
|
b .L2440
|
|
.L2443:
|
|
.align 2
|
|
.L2442:
|
|
.word .LANCHOR140
|
|
.word -52655045
|
|
.word 1397640018
|
|
.word .LANCHOR174
|
|
.word .LANCHOR138
|
|
.word .LANCHOR139
|
|
.word .LANCHOR141
|
|
.L2318:
|
|
cmp r4, #576
|
|
bcc .L2324
|
|
.L2319:
|
|
ldr r3, .L2444
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L2324
|
|
ldr r3, [r10]
|
|
ldr r2, .L2444+4
|
|
cmp r3, r2
|
|
beq .L2325
|
|
ldr r2, .L2444+8
|
|
cmp r3, r2
|
|
beq .L2325
|
|
add r2, r2, #327680
|
|
cmp r3, r2
|
|
bne .L2326
|
|
.L2325:
|
|
ldr r7, .L2444+12
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
str r3, [sp, #24]
|
|
ldr r3, .L2444+16
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
mov r8, r3
|
|
ldr r3, [sp, #24]
|
|
str r2, [sp, #12]
|
|
cmp r3, #0
|
|
beq .L2327
|
|
clz fp, r2
|
|
ldrh r3, [sp, #24]
|
|
lsr fp, fp, #5
|
|
str r3, [sp, #36]
|
|
.L2328:
|
|
ldr r6, .L2444+20
|
|
movs r0, #0
|
|
ldrb r5, [r6, #9] @ zero_extendqisi2
|
|
ldrh r4, [r6, #26]
|
|
bl zftl_flash_exit_slc_mode
|
|
ldrh r0, [r6, #10]
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
ldrb r1, [r6, #12] @ zero_extendqisi2
|
|
movw r6, #4098
|
|
strb r3, [r7]
|
|
lsls r0, r0, #2
|
|
ldr r7, .L2444+24
|
|
bl __aeabi_idiv
|
|
cmp r0, #512
|
|
mov r3, r0
|
|
it ge
|
|
movge r3, #512
|
|
add r1, r10, #260096
|
|
str r3, [sp, #32]
|
|
movw r2, #65023
|
|
movs r3, #0
|
|
.L2334:
|
|
ldr r0, [r1, #-4]!
|
|
cbnz r0, .L2330
|
|
cmp r3, #0
|
|
bne .L2331
|
|
str r7, [r1, #2048]
|
|
.L2332:
|
|
adds r3, r3, #1
|
|
subs r2, r2, #1
|
|
cmp r3, r6
|
|
it hi
|
|
movhi r3, #0
|
|
cmp r2, #4096
|
|
bne .L2334
|
|
.L2330:
|
|
ldr r3, [sp, #32]
|
|
ldr r1, [r10, r2, lsl #2]
|
|
ldr r0, .L2444+28
|
|
bl printf
|
|
mul r3, r5, r4
|
|
str r3, [sp, #84]
|
|
movs r3, #0
|
|
str r3, [sp, #16]
|
|
str r3, [sp, #28]
|
|
.L2376:
|
|
ldr r3, .L2444+32
|
|
mov r2, #512
|
|
movs r1, #0
|
|
ldr r0, [r3]
|
|
bl ftl_memset
|
|
ldr r3, .L2444+36
|
|
ldr r2, [sp, #28]
|
|
ldr r3, [r3]
|
|
add r3, r3, r2
|
|
ldrb r3, [r3, #32] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
beq .L2335
|
|
ldr r2, [sp, #84]
|
|
muls r3, r2, r3
|
|
str r3, [sp, #8]
|
|
cmp fp, #0
|
|
beq .L2336
|
|
ldr r3, [sp, #28]
|
|
ldr r5, .L2444+12
|
|
ldr r4, .L2444+16
|
|
bic r3, r3, #2
|
|
cmp r3, #1
|
|
beq .L2337
|
|
cmp fp, #3
|
|
bne .L2338
|
|
.L2337:
|
|
ldrb r3, [sp, #36] @ zero_extendqisi2
|
|
.L2438:
|
|
strb r3, [r5]
|
|
strb r3, [r4]
|
|
.L2336:
|
|
ldr r7, .L2444+20
|
|
movs r5, #0
|
|
ldr r3, .L2444+40
|
|
ldr r0, [sp, #8]
|
|
ldrb r6, [r7, #9] @ zero_extendqisi2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldrh r4, [r7, #26]
|
|
mov r1, r6
|
|
str r3, [sp, #76]
|
|
ldr r3, .L2444+40
|
|
muls r4, r6, r4
|
|
strb r5, [r3]
|
|
bl __aeabi_uidiv
|
|
mov r1, r0
|
|
mov r0, r5
|
|
bl flash_erase_block
|
|
mov r1, r4
|
|
ldr r0, [sp, #8]
|
|
bl __aeabi_uidivmod
|
|
ldrh r0, [r7, #10]
|
|
ldr r3, [sp, #8]
|
|
str r1, [sp, #44]
|
|
subs r3, r3, r1
|
|
lsls r0, r0, #2
|
|
ldrb r1, [r7, #12] @ zero_extendqisi2
|
|
str r3, [sp, #40]
|
|
bl __aeabi_idiv
|
|
ldr r3, [sp, #8]
|
|
ldr r2, [sp, #40]
|
|
str r0, [sp, #48]
|
|
cmp r3, r2
|
|
bne .L2391
|
|
ldr r3, .L2444+44
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
bne .L2391
|
|
ldr r3, .L2444+32
|
|
mov r2, #1024
|
|
mov r1, r5
|
|
ldr r4, [r3]
|
|
mov r0, r4
|
|
bl ftl_memset
|
|
ldr r2, .L2444+48
|
|
movs r3, #12
|
|
str r5, [r4, #12]
|
|
strb r5, [r4, #16]
|
|
stm r4, {r2, r3}
|
|
ldr r3, .L2444+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2340
|
|
ldrb r3, [r7, #29] @ zero_extendqisi2
|
|
strb r3, [r4, #16]
|
|
.L2340:
|
|
movs r3, #4
|
|
strb r3, [r4, #17]
|
|
ldr r3, .L2444+20
|
|
ldrb r1, [r3, #12] @ zero_extendqisi2
|
|
ldrh r0, [r3, #10]
|
|
bl __aeabi_idiv
|
|
cmp r6, #8
|
|
mov r3, #0
|
|
ite hi
|
|
movhi r2, #70
|
|
movls r2, #16
|
|
movs r1, #12
|
|
strh r0, [r4, #18] @ movhi
|
|
strb r3, [r4, #20]
|
|
adds r0, r4, r1
|
|
strh r3, [r4, #22] @ movhi
|
|
strb r2, [r4, #21]
|
|
bl js_hash
|
|
ldr r3, [sp, #32]
|
|
str r0, [r4, #8]
|
|
subs r3, r3, #4
|
|
str r3, [sp, #20]
|
|
.L2339:
|
|
mov r8, r10
|
|
movs r7, #0
|
|
.L2342:
|
|
ldr r3, [sp, #48]
|
|
cmp r3, r7
|
|
bhi .L2353
|
|
ldr r3, .L2444+32
|
|
movs r4, #0
|
|
ldr r0, [sp, #8]
|
|
movs r6, #4
|
|
ldr r5, [r3]
|
|
ldr r3, .L2444+20
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldrh r1, [r3, #26]
|
|
ldr r3, .L2444+40
|
|
str r2, [sp, #64]
|
|
strb r4, [r3]
|
|
muls r1, r2, r1
|
|
bl __aeabi_uidivmod
|
|
ldr r3, [sp, #8]
|
|
str r1, [sp, #44]
|
|
str r4, [sp, #56]
|
|
subs r3, r3, r1
|
|
str r3, [sp, #68]
|
|
and r3, r1, #3
|
|
str r3, [sp, #48]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp, #60]
|
|
.L2354:
|
|
ldr r3, [sp, #60]
|
|
cmp r4, r3
|
|
bcc .L2370
|
|
ldr r3, .L2444+40
|
|
ldrb r2, [sp, #76] @ zero_extendqisi2
|
|
strb r2, [r3]
|
|
cmp fp, #0
|
|
beq .L2371
|
|
movs r0, #0
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r2, .L2444+12
|
|
movs r3, #0
|
|
strb r3, [r2]
|
|
ldr r2, .L2444+16
|
|
strb r3, [r2]
|
|
.L2371:
|
|
ldr r3, [sp, #20]
|
|
movs r4, #0
|
|
lsls r1, r3, #7
|
|
ldr r3, .L2444+32
|
|
ldr r0, [r3]
|
|
.L2372:
|
|
cmp r4, r1
|
|
bne .L2374
|
|
ldr r3, [sp, #16]
|
|
adds r3, r3, #1
|
|
cmp r3, #5
|
|
str r3, [sp, #16]
|
|
bls .L2335
|
|
b .L2383
|
|
.L2327:
|
|
ldr r3, [sp, #12]
|
|
cmp r3, #3
|
|
beq .L2387
|
|
cmp r3, #2
|
|
bne .L2388
|
|
str r3, [sp, #36]
|
|
mov fp, #3
|
|
b .L2328
|
|
.L2387:
|
|
ldr r3, [sp, #12]
|
|
mov fp, #2
|
|
str r3, [sp, #36]
|
|
b .L2328
|
|
.L2388:
|
|
ldr r3, [sp, #24]
|
|
str r3, [sp, #36]
|
|
mov fp, r3
|
|
b .L2328
|
|
.L2331:
|
|
ldr r0, [r10, r3, lsl #2]
|
|
str r0, [r1, #2048]
|
|
b .L2332
|
|
.L2338:
|
|
movs r0, #0
|
|
bl zftl_flash_exit_slc_mode
|
|
movs r3, #0
|
|
b .L2438
|
|
.L2391:
|
|
ldr r3, [sp, #32]
|
|
mov r4, r5
|
|
str r3, [sp, #20]
|
|
b .L2339
|
|
.L2445:
|
|
.align 2
|
|
.L2444:
|
|
.word .LANCHOR139
|
|
.word -52655045
|
|
.word 1397640018
|
|
.word .LANCHOR0
|
|
.word .LANCHOR24
|
|
.word .LANCHOR32
|
|
.word 1330594389
|
|
.word .LC132
|
|
.word .LANCHOR141
|
|
.word .LANCHOR6
|
|
.word .LANCHOR51
|
|
.word .LANCHOR27
|
|
.word 1179535694
|
|
.L2353:
|
|
ldr r3, [sp, #44]
|
|
adds r5, r3, r7
|
|
ldr r3, .L2446
|
|
ubfx r5, r5, #2, #16
|
|
adds r2, r5, #1
|
|
ldrh r0, [r3, r2, lsl #1]
|
|
ldr r3, .L2446+4
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cmp r1, #0
|
|
bne .L2343
|
|
mov r2, r0
|
|
.L2344:
|
|
ldr r0, .L2446+8
|
|
ldr r3, .L2446
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
cmp r0, #9
|
|
itt ne
|
|
addne r2, r2, #-1
|
|
lslne r2, r2, #2
|
|
str r2, [sp, #88]
|
|
movw r2, #61424
|
|
str r2, [sp, #92]
|
|
ldrh r2, [r3, r5, lsl #1]
|
|
cbnz r1, .L2348
|
|
mov r5, r2
|
|
.L2349:
|
|
mul r0, r5, r6
|
|
add r2, sp, #88
|
|
cbnz r4, .L2350
|
|
ldr r3, [sp, #40]
|
|
mov r1, r8
|
|
add r0, r0, r3
|
|
bl fw_flash_page_prog.constprop.29
|
|
ldr r3, .L2446+4
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cbnz r2, .L2351
|
|
adds r5, r5, #1
|
|
mov r1, r6
|
|
uxth r5, r5
|
|
ldr r0, [sp, #40]
|
|
bl __aeabi_uidiv
|
|
mov r2, r5
|
|
mov r1, r0
|
|
mov r0, r4
|
|
bl id_block_prog_msb_ff_data
|
|
.L2351:
|
|
ldr r3, [sp, #20]
|
|
add r8, r8, #2048
|
|
add r2, r3, #16
|
|
cmp r7, r2
|
|
bcc .L2352
|
|
add r2, r3, #20
|
|
cmp r7, r2
|
|
bcs .L2352
|
|
add r8, r10, #2048
|
|
.L2352:
|
|
adds r3, r7, #4
|
|
movs r4, #0
|
|
uxth r7, r3
|
|
b .L2342
|
|
.L2343:
|
|
ldr r0, .L2446+12
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
cmp r0, #0
|
|
beq .L2344
|
|
lsls r2, r2, #1
|
|
b .L2344
|
|
.L2348:
|
|
ldr r2, .L2446+12
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
beq .L2349
|
|
lsls r5, r5, #1
|
|
b .L2349
|
|
.L2350:
|
|
ldr r3, [sp, #40]
|
|
mov r1, r4
|
|
add r0, r0, r3
|
|
bl fw_flash_page_prog.constprop.29
|
|
b .L2352
|
|
.L2370:
|
|
ldr r3, [sp, #48]
|
|
mov r1, r6
|
|
subs r3, r6, r3
|
|
uxth r3, r3
|
|
str r3, [sp, #52]
|
|
ldr r3, [sp, #44]
|
|
adds r0, r3, r4
|
|
bl __aeabi_uidiv
|
|
ldr r2, .L2446+4
|
|
uxth r0, r0
|
|
ldr r3, .L2446
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
cmp r2, #0
|
|
bne .L2355
|
|
mov r0, r3
|
|
.L2356:
|
|
ldr r3, .L2446+16
|
|
ldr r2, [sp, #68]
|
|
ldrb r8, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #48]
|
|
add r3, r3, r2
|
|
ldr r2, .L2446+20
|
|
ldrb r1, [r2, #9] @ zero_extendqisi2
|
|
ldr r2, [sp, #64]
|
|
mla r0, r0, r2, r3
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L2446+24
|
|
str r0, [sp, #40]
|
|
mov r0, r8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp, #80]
|
|
bl nandc_bch_sel
|
|
.L2357:
|
|
str r6, [sp]
|
|
add r3, sp, #88
|
|
mov r2, r5
|
|
ldr r1, [sp, #40]
|
|
movs r0, #0
|
|
bl flash_read_page
|
|
adds r0, r0, #1
|
|
bne .L2358
|
|
ldr r3, .L2446+28
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
mov r7, r3
|
|
cmp r3, #0
|
|
bne .L2359
|
|
.L2362:
|
|
ldr r3, .L2446+32
|
|
ldr r3, [r3]
|
|
mov r7, r3
|
|
cmp r3, #0
|
|
bne .L2360
|
|
.L2361:
|
|
ldr r3, .L2446+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2364
|
|
str r6, [sp]
|
|
add r3, sp, #88
|
|
mov r2, r5
|
|
ldr r1, [sp, #40]
|
|
movs r0, #0
|
|
bl flash_ddr_tuning_read
|
|
adds r0, r0, #1
|
|
bne .L2358
|
|
.L2364:
|
|
cmp r8, #16
|
|
bne .L2365
|
|
mov r7, #-1
|
|
.L2366:
|
|
ldr r0, [sp, #80]
|
|
bl nandc_bch_sel
|
|
ldr r3, [sp, #56]
|
|
cmp r7, #0
|
|
it ne
|
|
movne r3, #-1
|
|
ldr r2, [sp, #68]
|
|
str r3, [sp, #56]
|
|
ldr r3, [sp, #8]
|
|
cmp r3, r2
|
|
bne .L2368
|
|
cmp r4, #0
|
|
bne .L2368
|
|
ldr r3, [sp, #56]
|
|
cmp r3, #0
|
|
bne .L2368
|
|
ldr r2, [r5]
|
|
ldr r3, .L2446+40
|
|
cmp r2, r3
|
|
bne .L2368
|
|
ldr r3, [sp, #60]
|
|
ldr r2, [sp, #52]
|
|
ldrb r6, [r5, #17] @ zero_extendqisi2
|
|
add r3, r3, r2
|
|
str r3, [sp, #60]
|
|
.L2369:
|
|
ldr r3, [sp, #52]
|
|
add r3, r3, r4
|
|
uxth r4, r3
|
|
b .L2354
|
|
.L2355:
|
|
ldr r3, .L2446+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2356
|
|
lsls r0, r0, #1
|
|
b .L2356
|
|
.L2359:
|
|
ldr r3, .L2446+28
|
|
movs r0, #0
|
|
mov r2, r5
|
|
ldr r1, [sp, #40]
|
|
strb r0, [r3]
|
|
add r3, sp, #88
|
|
str r6, [sp]
|
|
bl flash_read_page
|
|
ldr r3, .L2446+28
|
|
adds r0, r0, #1
|
|
strb r7, [r3]
|
|
beq .L2362
|
|
.L2358:
|
|
movs r7, #0
|
|
b .L2366
|
|
.L2360:
|
|
str r6, [sp]
|
|
add r3, sp, #88
|
|
mov r2, r5
|
|
ldr r1, [sp, #40]
|
|
movs r0, #0
|
|
blx r7
|
|
adds r0, r0, #1
|
|
beq .L2361
|
|
b .L2358
|
|
.L2365:
|
|
movs r0, #16
|
|
mov r8, #16
|
|
bl nandc_bch_sel
|
|
b .L2357
|
|
.L2368:
|
|
ldr r3, [sp, #52]
|
|
add r5, r5, r3, lsl #9
|
|
movs r3, #0
|
|
str r3, [sp, #48]
|
|
b .L2369
|
|
.L2374:
|
|
ldr r2, [r0, r4, lsl #2]
|
|
ldr r3, [r10, r4, lsl #2]
|
|
cmp r2, r3
|
|
beq .L2373
|
|
mov r2, #512
|
|
movs r1, #0
|
|
bl ftl_memset
|
|
mov r1, r4
|
|
ldr r0, .L2446+44
|
|
bl printf
|
|
ldr r1, [sp, #8]
|
|
movs r0, #0
|
|
bl flash_erase_block
|
|
.L2335:
|
|
ldr r3, [sp, #28]
|
|
adds r3, r3, #1
|
|
cmp r3, #4
|
|
str r3, [sp, #28]
|
|
bne .L2376
|
|
.L2383:
|
|
movs r0, #0
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, .L2446+48
|
|
ldrb r2, [sp, #24] @ zero_extendqisi2
|
|
strb r2, [r3]
|
|
cmp fp, #0
|
|
beq .L2377
|
|
ldr r3, .L2446+4
|
|
ldrb r2, [sp, #12] @ zero_extendqisi2
|
|
strb r2, [r3]
|
|
.L2377:
|
|
ldr r3, .L2446+52
|
|
movs r2, #2
|
|
movs r0, #0
|
|
strb r2, [r3]
|
|
bl zftl_flash_enter_slc_mode
|
|
ldr r3, [sp, #16]
|
|
cbnz r3, .L2326
|
|
mov r1, r3
|
|
ldr r0, .L2446+56
|
|
bl printf
|
|
.L2326:
|
|
ldr r5, .L2446+60
|
|
movs r4, #0
|
|
ldr r3, .L2446+64
|
|
ldr r0, [r5]
|
|
str r4, [r3]
|
|
ldr r3, .L2446+68
|
|
strb r4, [r3]
|
|
cbz r0, .L2379
|
|
bl free
|
|
str r4, [r5]
|
|
.L2379:
|
|
ldr r4, .L2446+72
|
|
ldr r0, [r4]
|
|
cbz r0, .L2381
|
|
bl free
|
|
movs r3, #0
|
|
str r3, [r4]
|
|
.L2381:
|
|
ldr r3, .L2446+76
|
|
ldr r2, [sp, #72]
|
|
str r2, [r3]
|
|
.L2441:
|
|
movs r0, #0
|
|
.L2313:
|
|
add sp, sp, #152
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2373:
|
|
adds r4, r4, #1
|
|
b .L2372
|
|
.L2447:
|
|
.align 2
|
|
.L2446:
|
|
.word .LANCHOR3
|
|
.word .LANCHOR24
|
|
.word .LANCHOR27
|
|
.word .LANCHOR1
|
|
.word .LANCHOR22
|
|
.word .LANCHOR32
|
|
.word .LANCHOR49
|
|
.word .LANCHOR51
|
|
.word .LANCHOR171
|
|
.word .LANCHOR26
|
|
.word 1179535694
|
|
.word .LC133
|
|
.word .LANCHOR0
|
|
.word .LANCHOR33
|
|
.word .LC134
|
|
.word .LANCHOR138
|
|
.word .LANCHOR139
|
|
.word .LANCHOR140
|
|
.word .LANCHOR141
|
|
.word .LANCHOR174
|
|
.size idb_write_data, .-idb_write_data
|
|
.section .text.flash_start_tlc_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_tlc_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_tlc_page_prog, %function
|
|
flash_start_tlc_page_prog:
|
|
@ args = 12, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r6, r3
|
|
mov r8, r2
|
|
ldr r3, [sp, #56]
|
|
mov r4, r0
|
|
mov r7, r1
|
|
ldr r2, .L2455
|
|
str r3, [sp, #12]
|
|
ldr r5, [sp, #48]
|
|
ldrb r3, [r2] @ zero_extendqisi2
|
|
mov fp, r2
|
|
ldr r10, [sp, #52]
|
|
cmp r3, r6
|
|
bhi .L2449
|
|
mov r2, #868
|
|
ldr r1, .L2455+4
|
|
ldr r0, .L2455+8
|
|
bl printf
|
|
.L2449:
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
cmp r3, r6
|
|
bls .L2448
|
|
ldr r3, .L2455+12
|
|
ldrb r6, [r3, r6] @ zero_extendqisi2
|
|
ldr r3, .L2455+16
|
|
mov r0, r6
|
|
ldr fp, [r3]
|
|
bl nandc_cs
|
|
lsls r3, r6, #8
|
|
cbz r4, .L2451
|
|
add r1, fp, r3
|
|
str r4, [r1, #2056]
|
|
.L2451:
|
|
add r4, fp, r3
|
|
movs r3, #128
|
|
str r7, [r4, #2056]
|
|
str r3, [r4, #2056]
|
|
movs r3, #0
|
|
str r3, [r4, #2052]
|
|
str r3, [r4, #2052]
|
|
uxtb r3, r5
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r5, #8
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r5, #16
|
|
add r5, r5, r5, lsl #1
|
|
str r3, [r4, #2052]
|
|
subs r0, r5, #1
|
|
add r0, r0, r7
|
|
bl nandc_set_seed
|
|
ldr r3, .L2455+20
|
|
movs r1, #1
|
|
mov r0, r6
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldr r3, [sp, #12]
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
bl nandc_xfer
|
|
str r8, [r4, #2056]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b nandc_de_cs.constprop.32
|
|
.L2448:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2456:
|
|
.align 2
|
|
.L2455:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR175
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog
|
|
.section .text.queue_tlc_prog_cmd,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_tlc_prog_cmd, %function
|
|
queue_tlc_prog_cmd:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
|
|
movs r7, #1
|
|
ldr r3, .L2461
|
|
mov r6, r0
|
|
mov r8, r1
|
|
ldr r2, [r0]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldr r1, [r2, #24]
|
|
rsb r0, r3, #24
|
|
lsl r4, r7, r3
|
|
ldr r3, .L2461+4
|
|
lsl r5, r7, r0
|
|
subs r4, r4, #1
|
|
subs r5, r5, #1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ands r5, r5, r1
|
|
lsrs r1, r1, r0
|
|
ands r4, r4, r1
|
|
uxtb r4, r4
|
|
cmp r3, #0
|
|
beq .L2458
|
|
mov r0, r4
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, [r6]
|
|
mov r1, r7
|
|
movs r0, #0
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs 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_wait_flash_ready
|
|
ldr r3, [r6, #4]
|
|
mov r1, r7
|
|
movs r0, #0
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #4]
|
|
adds r3, r5, r7
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #8]
|
|
adds r5, r5, #2
|
|
mov r1, r7
|
|
movs r0, #0
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #16
|
|
ldr r3, [r3, #4]
|
|
str r5, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
.L2459:
|
|
cmp r8, #0
|
|
beq .L2457
|
|
ldr r1, [r6]
|
|
movs r3, #4
|
|
ldr r0, .L2461+8
|
|
strb r3, [r1, #42]
|
|
movs r3, #1
|
|
strb r3, [r1, #43]
|
|
movs r3, #255
|
|
strb r3, [r1]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, lr}
|
|
b buf_add_tail
|
|
.L2458:
|
|
ldr r3, [r2, #12]
|
|
mov r1, r7
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
str r3, [sp, #8]
|
|
ldr r3, [r2, #4]
|
|
movs r2, #26
|
|
str r5, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldm r6, {r2, r3}
|
|
movs r1, #2
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str r5, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #8]
|
|
movs r1, #3
|
|
ldr r2, [r6]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #16
|
|
ldr r3, [r3, #4]
|
|
str r5, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
b .L2459
|
|
.L2457:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L2462:
|
|
.align 2
|
|
.L2461:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR36
|
|
.word .LANCHOR59
|
|
.size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd
|
|
.section .text.sblk_3d_tlc_dump_prog,"ax",%progbits
|
|
.align 1
|
|
.global sblk_3d_tlc_dump_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_3d_tlc_dump_prog, %function
|
|
sblk_3d_tlc_dump_prog:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
|
|
movs r7, #1
|
|
ldr r3, .L2466
|
|
mov r5, r0
|
|
ldr r2, [r0, #24]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r1, r3, #24
|
|
lsl r4, r7, r3
|
|
lsl r6, r7, r1
|
|
ldr r3, .L2466+4
|
|
subs r6, r6, #1
|
|
subs r4, r4, #1
|
|
ands r6, r6, r2
|
|
lsrs r2, r2, r1
|
|
ldrb r8, [r3] @ zero_extendqisi2
|
|
ands r4, r4, r2
|
|
uxtb r4, r4
|
|
cmp r8, #0
|
|
beq .L2464
|
|
mov r0, r4
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, [r5, #12]
|
|
movs r2, #26
|
|
mov r1, r7
|
|
str r6, [sp]
|
|
movs r0, #0
|
|
str r3, [sp, #8]
|
|
ldr r3, [r5, #4]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #12]
|
|
movs r2, #26
|
|
mov r1, r7
|
|
movs r0, #0
|
|
str r3, [sp, #8]
|
|
ldr r3, [r5, #4]
|
|
str r3, [sp, #4]
|
|
adds r3, r6, r7
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #12]
|
|
adds r6, r6, #2
|
|
str r6, [sp]
|
|
movs r2, #16
|
|
mov r1, r7
|
|
movs r0, #0
|
|
str r3, [sp, #8]
|
|
ldr r3, [r5, #4]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
.L2465:
|
|
bl nandc_wait_flash_ready
|
|
movs r1, #64
|
|
ldr r0, [r5, #24]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, lr}
|
|
b flash_wait_device_ready
|
|
.L2464:
|
|
ldr r3, [r0, #12]
|
|
mov r1, r7
|
|
movs r2, #26
|
|
str r3, [sp, #8]
|
|
ldr r3, [r0, #4]
|
|
mov r0, r8
|
|
str r6, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #12]
|
|
movs r2, #26
|
|
movs 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_wait_flash_ready
|
|
ldr r3, [r5, #12]
|
|
movs r2, #16
|
|
str r6, [sp]
|
|
movs 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 .L2465
|
|
.L2467:
|
|
.align 2
|
|
.L2466:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR36
|
|
.size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
|
|
.section .text.flash_start_3d_mlc_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_3d_mlc_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_3d_mlc_page_prog, %function
|
|
flash_start_3d_mlc_page_prog:
|
|
@ args = 4, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, lr}
|
|
mov r5, r2
|
|
ldr r4, .L2471
|
|
mov r7, r0
|
|
mov r6, r1
|
|
mov r8, r3
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
cmp r2, r1
|
|
bhi .L2469
|
|
movw r2, #903
|
|
ldr r1, .L2471+4
|
|
ldr r0, .L2471+8
|
|
bl printf
|
|
.L2469:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, r6
|
|
bls .L2468
|
|
ldr r3, .L2471+12
|
|
ldrb r6, [r3, r6] @ zero_extendqisi2
|
|
ldr r3, .L2471+16
|
|
mov r0, r6
|
|
ldr r4, [r3]
|
|
bl nandc_cs
|
|
movs r3, #128
|
|
mov r0, r5
|
|
add r4, r4, r6, lsl #8
|
|
str r3, [r4, #2056]
|
|
movs r3, #0
|
|
str r3, [r4, #2052]
|
|
str r3, [r4, #2052]
|
|
uxtb r3, r5
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r5, #8
|
|
str r3, [r4, #2052]
|
|
lsrs r3, r5, #16
|
|
str r3, [r4, #2052]
|
|
bl nandc_set_seed
|
|
ldr r3, .L2471+20
|
|
movs r1, #1
|
|
mov r0, r6
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp]
|
|
mov r3, r8
|
|
bl nandc_xfer
|
|
str r7, [r4, #2056]
|
|
.L2468:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L2472:
|
|
.align 2
|
|
.L2471:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR176
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
|
|
.section .text.sblk_mlc_dump_prog,"ax",%progbits
|
|
.align 1
|
|
.global sblk_mlc_dump_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_mlc_dump_prog, %function
|
|
sblk_mlc_dump_prog:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L2478
|
|
push {r0, r1, r4, r5, r6, lr}
|
|
mov r5, r0
|
|
ldr r2, [r0, #24]
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r1, r4, #24
|
|
lsl r6, r3, r1
|
|
lsl r4, r3, r4
|
|
subs r6, r6, #1
|
|
subs r4, r4, #1
|
|
ands r6, r6, r2
|
|
lsrs r2, r2, r1
|
|
ands r4, r4, r2
|
|
uxtb r4, r4
|
|
mov r0, r4
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, .L2478+4
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L2474
|
|
ldr r2, [r5, #24]
|
|
mov r1, r6
|
|
ldr r0, .L2478+8
|
|
adds r3, r2, #1
|
|
bl printf
|
|
.L2474:
|
|
ldr r3, [r5, #12]
|
|
mov r2, r6
|
|
mov r1, r4
|
|
movs r0, #16
|
|
str r3, [sp]
|
|
ldr r3, [r5, #4]
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #12]
|
|
adds r2, r6, #1
|
|
mov r1, r4
|
|
movs r0, #16
|
|
str r3, [sp]
|
|
ldr r3, [r5, #4]
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
movs r1, #64
|
|
ldr r0, [r5, #24]
|
|
bl flash_wait_device_ready
|
|
bl nandc_de_cs.constprop.32
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, pc}
|
|
.L2479:
|
|
.align 2
|
|
.L2478:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR19
|
|
.word .LC135
|
|
.size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
|
|
.section .text.flash_start_page_prog,"ax",%progbits
|
|
.align 1
|
|
.global flash_start_page_prog
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_start_page_prog, %function
|
|
flash_start_page_prog:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov fp, r2
|
|
str r3, [sp, #12]
|
|
mov r8, r1
|
|
ldr r3, .L2494
|
|
ldr r6, .L2494+4
|
|
str r0, [sp, #8]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r4, r2, #24
|
|
lsls r3, r3, r2
|
|
lsr r2, r1, r4
|
|
subs r3, r3, #1
|
|
ands r3, r3, r2
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
uxtb r10, r3
|
|
cmp r2, r10
|
|
bhi .L2481
|
|
mov r2, #956
|
|
ldr r1, .L2494+8
|
|
ldr r0, .L2494+12
|
|
bl printf
|
|
.L2481:
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
cmp r2, r10
|
|
bls .L2480
|
|
movs r2, #1
|
|
lsl r4, r2, r4
|
|
ldr r2, .L2494+16
|
|
subs r4, r4, #1
|
|
ldrb r5, [r2, r10] @ zero_extendqisi2
|
|
and r4, r4, r8
|
|
ldr r2, .L2494+20
|
|
ldr r7, [r2]
|
|
bl nandc_rdy_status
|
|
cbnz r0, .L2483
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
cmp r2, #1
|
|
bne .L2484
|
|
bl nandc_wait_flash_ready
|
|
.L2483:
|
|
mov r0, r5
|
|
bl hynix_reconfig_rr_para
|
|
mov r0, r5
|
|
bl nandc_cs
|
|
tst r8, #50331648
|
|
bne .L2485
|
|
mov r0, r4
|
|
bl slc_phy_page_address_calc
|
|
ldr r3, .L2494+24
|
|
mov r4, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2486
|
|
mov r0, r5
|
|
bl zftl_flash_enter_slc_mode
|
|
.L2486:
|
|
lsls r6, r5, #8
|
|
movs r2, #128
|
|
adds r3, r7, r6
|
|
str r2, [r3, #2056]
|
|
movs r2, #0
|
|
str r2, [r3, #2052]
|
|
str r2, [r3, #2052]
|
|
uxtb r2, r4
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #8
|
|
str r2, [r3, #2052]
|
|
lsrs r2, r4, #16
|
|
str r2, [r3, #2052]
|
|
ldr r2, .L2494+28
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L2487
|
|
lsrs r2, r4, #24
|
|
str r2, [r3, #2052]
|
|
.L2487:
|
|
mov r0, r4
|
|
add r7, r7, r6
|
|
bl nandc_set_seed
|
|
ldr r3, .L2494+32
|
|
movs r1, #1
|
|
mov r0, r5
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
ldr r3, [sp, #12]
|
|
str r3, [sp]
|
|
mov r3, fp
|
|
bl nandc_xfer
|
|
ldr r3, [sp, #8]
|
|
str r3, [r7, #2056]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b nandc_de_cs.constprop.32
|
|
.L2484:
|
|
movs r2, #64
|
|
mov r1, r4
|
|
mov r0, r10
|
|
bl flash_wait_device_ready_raw
|
|
b .L2483
|
|
.L2485:
|
|
mov r0, r5
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L2486
|
|
.L2480:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2495:
|
|
.align 2
|
|
.L2494:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR177
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR0
|
|
.word .LANCHOR30
|
|
.word .LANCHOR32
|
|
.size flash_start_page_prog, .-flash_start_page_prog
|
|
.section .text.queue_prog_cmd,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_prog_cmd, %function
|
|
queue_prog_cmd:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
ldr r3, [r0, #12]
|
|
ldr r2, [r0, #4]
|
|
ldr r1, [r0, #24]
|
|
movs r0, #16
|
|
bl flash_start_page_prog
|
|
ldr r3, .L2504
|
|
ldr r2, [r4, #24]
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
cmp r0, #255
|
|
beq .L2497
|
|
ldr r3, .L2504+4
|
|
movs r7, #48
|
|
ldr ip, .L2504+8
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
mov lr, ip
|
|
rsb r6, r1, #24
|
|
lsls r3, r3, r1
|
|
asrs r2, r2, r6
|
|
subs r3, r3, #1
|
|
uxth r3, r3
|
|
ands r2, r2, r3
|
|
.L2499:
|
|
mla r5, r7, r0, ip
|
|
ldr r1, [r5, #24]
|
|
lsrs r1, r1, r6
|
|
ands r1, r1, r3
|
|
cmp r2, r1
|
|
bne .L2498
|
|
add r1, r5, #42
|
|
ldrb r5, [r5, #42] @ zero_extendqisi2
|
|
cmp r5, #7
|
|
bne .L2498
|
|
movs r3, #3
|
|
strb r3, [r1]
|
|
.L2497:
|
|
movs r3, #3
|
|
mov r1, r4
|
|
strb r3, [r4, #42]
|
|
movs r3, #1
|
|
strb r3, [r4, #43]
|
|
movs r3, #255
|
|
strb r3, [r4]
|
|
ldr r0, .L2504
|
|
pop {r3, r4, r5, r6, r7, lr}
|
|
b buf_add_tail
|
|
.L2498:
|
|
muls r0, r7, r0
|
|
ldrb r0, [lr, r0] @ zero_extendqisi2
|
|
cmp r0, #255
|
|
bne .L2499
|
|
b .L2497
|
|
.L2505:
|
|
.align 2
|
|
.L2504:
|
|
.word .LANCHOR59
|
|
.word .LANCHOR31
|
|
.word .LANCHOR55
|
|
.size queue_prog_cmd, .-queue_prog_cmd
|
|
.section .text.flash_complete_plane_page_read,"ax",%progbits
|
|
.align 1
|
|
.global flash_complete_plane_page_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_complete_plane_page_read, %function
|
|
flash_complete_plane_page_read:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L2536
|
|
push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
|
|
movs r5, #1
|
|
mov r8, r2
|
|
mov r6, r0
|
|
mov r7, r1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r4, r3, #24
|
|
lsls r5, r5, r3
|
|
lsr r3, r0, r4
|
|
subs r5, r5, #1
|
|
ands r5, r5, r3
|
|
ldr r3, .L2536+4
|
|
uxtb r5, r5
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
mov r10, r3
|
|
cmp r2, r5
|
|
bhi .L2507
|
|
movw r2, #1070
|
|
ldr r1, .L2536+8
|
|
ldr r0, .L2536+12
|
|
bl printf
|
|
.L2507:
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r3, r5
|
|
bls .L2518
|
|
ldr r3, .L2536+16
|
|
movs r0, #1
|
|
lsl r4, r0, r4
|
|
ldrb r10, [r3, r5] @ zero_extendqisi2
|
|
subs r4, r4, #1
|
|
ldr r3, .L2536+20
|
|
ands r4, r4, r6
|
|
ubfx r6, r6, #24, #2
|
|
mov r0, r10
|
|
ldr r5, [r3]
|
|
bl nandc_cs
|
|
cbnz r6, .L2509
|
|
mov r0, r4
|
|
bl slc_phy_page_address_calc
|
|
mov r4, r0
|
|
.L2509:
|
|
ldr r3, .L2536+24
|
|
uxtb ip, r4
|
|
lsrs r0, r4, #8
|
|
lsrs r1, r4, #16
|
|
ldrb r3, [r3, #16] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
lsl r3, r10, #8
|
|
bne .L2510
|
|
adds r2, r5, r3
|
|
mov lr, #6
|
|
.L2535:
|
|
str lr, [r2, #2056]
|
|
mov lr, #0
|
|
str lr, [r2, #2052]
|
|
str lr, [r2, #2052]
|
|
str ip, [r2, #2052]
|
|
str r0, [r2, #2052]
|
|
str r1, [r2, #2052]
|
|
ldr r1, .L2536+28
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L2514
|
|
lsrs r1, r4, #24
|
|
str r1, [r2, #2052]
|
|
.L2514:
|
|
add r3, r3, r5
|
|
.L2531:
|
|
movs r2, #224
|
|
str r2, [r3, #2056]
|
|
ldr r3, .L2536+32
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L2516
|
|
cmp r6, #0
|
|
beq .L2516
|
|
ldr r3, .L2536+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L2516
|
|
ldr r3, .L2536+40
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L2516
|
|
add r4, r4, r4, lsl #1
|
|
subs r6, r6, #1
|
|
adds r0, r4, r6
|
|
.L2532:
|
|
bl nandc_set_seed
|
|
ldr r3, .L2536+44
|
|
movs r1, #0
|
|
mov r0, r10
|
|
ldrb r2, [r3, #9] @ zero_extendqisi2
|
|
mov r3, r7
|
|
str r8, [sp]
|
|
bl nandc_xfer
|
|
bl nandc_de_cs.constprop.32
|
|
.L2506:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L2510:
|
|
ldr r2, .L2536+32
|
|
ldr r2, [r2]
|
|
ldrb r2, [r2, #12] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
add r2, r5, r3
|
|
bne .L2513
|
|
mov lr, #5
|
|
b .L2535
|
|
.L2513:
|
|
mov lr, #0
|
|
str lr, [r2, #2056]
|
|
str lr, [r2, #2052]
|
|
str lr, [r2, #2052]
|
|
str ip, [r2, #2052]
|
|
str r0, [r2, #2052]
|
|
str r1, [r2, #2052]
|
|
ldr r1, .L2536+28
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L2515
|
|
lsrs r1, r4, #24
|
|
str r1, [r2, #2052]
|
|
.L2515:
|
|
movs r1, #5
|
|
add r3, r3, r5
|
|
str r1, [r3, #2056]
|
|
movs r1, #0
|
|
str r1, [r2, #2052]
|
|
str r1, [r2, #2052]
|
|
b .L2531
|
|
.L2516:
|
|
mov r0, r4
|
|
b .L2532
|
|
.L2518:
|
|
mov r0, #-1
|
|
b .L2506
|
|
.L2537:
|
|
.align 2
|
|
.L2536:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR178
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR25
|
|
.word .LANCHOR30
|
|
.word .LANCHOR21
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word .LANCHOR32
|
|
.size flash_complete_plane_page_read, .-flash_complete_plane_page_read
|
|
.section .text.flash_complete_page_read,"ax",%progbits
|
|
.align 1
|
|
.global flash_complete_page_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_complete_page_read, %function
|
|
flash_complete_page_read:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov fp, r0
|
|
ldr r3, .L2569
|
|
mov r10, r1
|
|
ubfx r5, r0, #24, #2
|
|
str r2, [sp, #8]
|
|
ldrb r6, [r3] @ zero_extendqisi2
|
|
movs r3, #1
|
|
rsb r2, r6, #24
|
|
lsl r4, r3, r2
|
|
lsl r6, r3, r6
|
|
ldr r3, .L2569+4
|
|
lsr r2, r0, r2
|
|
subs r6, r6, #1
|
|
ands r6, r6, r2
|
|
subs r4, r4, #1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
uxtb r6, r6
|
|
ands r4, r4, r0
|
|
cmp r3, r6
|
|
bhi .L2539
|
|
mov r2, #1232
|
|
ldr r1, .L2569+8
|
|
ldr r0, .L2569+12
|
|
bl printf
|
|
.L2539:
|
|
ldr r3, .L2569+16
|
|
ldrb r8, [r3, r6] @ zero_extendqisi2
|
|
ldr r3, .L2569+20
|
|
mov r0, r8
|
|
ldr r6, [r3]
|
|
bl nandc_cs
|
|
cbnz r5, .L2540
|
|
mov r0, r4
|
|
bl slc_phy_page_address_calc
|
|
mov r4, r0
|
|
.L2540:
|
|
ldr r7, .L2569+24
|
|
ldrb r3, [r7, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L2541
|
|
add r6, r6, r8, lsl #8
|
|
movs r3, #5
|
|
str r3, [r6, #2056]
|
|
movs r3, #0
|
|
str r3, [r6, #2052]
|
|
str r3, [r6, #2052]
|
|
uxtb r3, r4
|
|
str r3, [r6, #2052]
|
|
lsrs r3, r4, #8
|
|
str r3, [r6, #2052]
|
|
lsrs r3, r4, #16
|
|
str r3, [r6, #2052]
|
|
movs r3, #224
|
|
str r3, [r6, #2056]
|
|
.L2541:
|
|
ldr r3, .L2569+28
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #12] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L2542
|
|
cmp r5, #0
|
|
beq .L2542
|
|
ldr r3, .L2569+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L2542
|
|
ldr r3, .L2569+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L2542
|
|
add r3, r4, r4, lsl #1
|
|
subs r0, r5, #1
|
|
add r0, r0, r3
|
|
.L2568:
|
|
bl nandc_set_seed
|
|
ldr r3, [sp, #8]
|
|
movs r1, #0
|
|
ldrb r2, [r7, #9] @ zero_extendqisi2
|
|
mov r0, r8
|
|
str r3, [sp]
|
|
mov r3, r10
|
|
bl nandc_xfer
|
|
adds r1, r0, #1
|
|
bne .L2544
|
|
ldr r6, .L2569+40
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
str r3, [sp, #12]
|
|
cmp r3, #0
|
|
beq .L2545
|
|
movs r3, #0
|
|
mov r2, r10
|
|
strb r3, [r6]
|
|
orr r1, r4, r5, lsl #24
|
|
ldrb r3, [r7, #9] @ zero_extendqisi2
|
|
mov r0, r8
|
|
str r3, [sp]
|
|
ldr r3, [sp, #8]
|
|
bl flash_read_page
|
|
ldrb r3, [sp, #12] @ zero_extendqisi2
|
|
strb r3, [r6]
|
|
cbnz r5, .L2546
|
|
.L2551:
|
|
ldr r3, .L2569+44
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2546
|
|
ldr r3, .L2569+48
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r3, r3, r3, lsl #1
|
|
cmp r0, r3, asr #2
|
|
blt .L2546
|
|
ldrb r3, [r7, #19] @ zero_extendqisi2
|
|
subs r3, r3, #4
|
|
cmp r3, #4
|
|
it ls
|
|
movls r0, #256
|
|
.L2538:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2542:
|
|
mov r0, r4
|
|
b .L2568
|
|
.L2546:
|
|
adds r2, r0, #1
|
|
bne .L2538
|
|
.L2552:
|
|
ldr r3, .L2569+52
|
|
ldr r6, [r3]
|
|
cbnz r6, .L2548
|
|
.L2550:
|
|
ldr r3, .L2569+40
|
|
mov r2, fp
|
|
movs r1, #0
|
|
ldr r0, .L2569+56
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
mov r3, #-1
|
|
bl printf
|
|
ldr r3, .L2569+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L2549
|
|
mov r0, #-1
|
|
b .L2538
|
|
.L2548:
|
|
ldrb r3, [r7, #9] @ zero_extendqisi2
|
|
mov r2, r10
|
|
orr r1, r4, r5, lsl #24
|
|
mov r0, r8
|
|
str r3, [sp]
|
|
ldr r3, [sp, #8]
|
|
blx r6
|
|
adds r3, r0, #1
|
|
beq .L2550
|
|
b .L2538
|
|
.L2549:
|
|
ldrb r3, [r7, #9] @ zero_extendqisi2
|
|
mov r2, r10
|
|
orr r1, r4, r5, lsl #24
|
|
mov r0, r8
|
|
str r3, [sp]
|
|
ldr r3, [sp, #8]
|
|
bl flash_ddr_tuning_read
|
|
b .L2538
|
|
.L2545:
|
|
cmp r5, #0
|
|
beq .L2551
|
|
b .L2552
|
|
.L2544:
|
|
cmp r5, #0
|
|
bne .L2538
|
|
b .L2551
|
|
.L2570:
|
|
.align 2
|
|
.L2569:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR23
|
|
.word .LANCHOR179
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR7
|
|
.word .LANCHOR32
|
|
.word .LANCHOR21
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word .LANCHOR51
|
|
.word .LANCHOR0
|
|
.word .LANCHOR49
|
|
.word .LANCHOR171
|
|
.word .LC136
|
|
.word .LANCHOR26
|
|
.size flash_complete_page_read, .-flash_complete_page_read
|
|
.section .text.queue_wait_first_req_completed,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type queue_wait_first_req_completed, %function
|
|
queue_wait_first_req_completed:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r3, .L2664
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
cmp r5, #255
|
|
bne .L2572
|
|
.L2605:
|
|
movs r6, #0
|
|
b .L2571
|
|
.L2572:
|
|
ldr r4, .L2664+4
|
|
movs r7, #48
|
|
mla r2, r7, r5, r4
|
|
ldrb r3, [r2, #42] @ zero_extendqisi2
|
|
ldr r6, [r2, #24]
|
|
subs r2, r3, #1
|
|
cmp r2, #10
|
|
bhi .L2605
|
|
tbh [pc, r2, lsl #1]
|
|
.L2575:
|
|
.2byte (.L2574-.L2575)/2
|
|
.2byte (.L2576-.L2575)/2
|
|
.2byte (.L2577-.L2575)/2
|
|
.2byte (.L2577-.L2575)/2
|
|
.2byte (.L2577-.L2575)/2
|
|
.2byte (.L2577-.L2575)/2
|
|
.2byte (.L2578-.L2575)/2
|
|
.2byte (.L2579-.L2575)/2
|
|
.2byte (.L2580-.L2575)/2
|
|
.2byte (.L2577-.L2575)/2
|
|
.2byte (.L2580-.L2575)/2
|
|
.p2align 1
|
|
.L2574:
|
|
mla r7, r7, r5, r4
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r7, #8]
|
|
ldr r1, [r7, #4]
|
|
cbz r3, .L2581
|
|
ldr r2, .L2664+8
|
|
ldrb r0, [r7, #40] @ zero_extendqisi2
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r0, r2
|
|
it eq
|
|
moveq r1, r3
|
|
.L2581:
|
|
movs r3, #48
|
|
mov r0, r6
|
|
mla r4, r3, r5, r4
|
|
ldr r2, [r4, #12]
|
|
bl flash_complete_page_read
|
|
str r0, [r4, #36]
|
|
.L2663:
|
|
movs r3, #13
|
|
strb r3, [r4, #42]
|
|
ldrb r3, [r4, #2] @ zero_extendqisi2
|
|
orr r3, r3, #8
|
|
strb r3, [r4, #2]
|
|
b .L2605
|
|
.L2576:
|
|
bl nandc_wait_flash_ready
|
|
mul r2, r7, r5
|
|
ldrb r6, [r4, r2] @ zero_extendqisi2
|
|
adds r3, r4, r2
|
|
ldr r2, [r3, #8]
|
|
ldr fp, [r3, #4]
|
|
mla r7, r7, r6, r4
|
|
ldr r10, [r7, #4]
|
|
cbz r2, .L2582
|
|
ldrb r1, [r3, #40] @ zero_extendqisi2
|
|
ldr r3, .L2664+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r1, r3
|
|
it eq
|
|
moveq fp, r2
|
|
.L2582:
|
|
movs r3, #48
|
|
mla r3, r3, r6, r4
|
|
ldr r2, [r3, #8]
|
|
cbz r2, .L2583
|
|
ldrb r1, [r3, #40] @ zero_extendqisi2
|
|
ldr r3, .L2664+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r1, r3
|
|
it eq
|
|
moveq r10, r2
|
|
.L2583:
|
|
movs r3, #48
|
|
mov r1, fp
|
|
mla r7, r3, r5, r4
|
|
str r3, [sp, #12]
|
|
ldr r2, [r7, #12]
|
|
ldr r0, [r7, #24]
|
|
bl flash_complete_plane_page_read
|
|
ldr r3, [sp, #12]
|
|
mov r8, r0
|
|
mov r1, r10
|
|
mla r3, r3, r6, r4
|
|
ldr r2, [r3, #12]
|
|
ldr r0, [r3, #24]
|
|
bl flash_complete_plane_page_read
|
|
cmp r8, #-1
|
|
str r0, [sp, #12]
|
|
beq .L2584
|
|
ldr r3, [r7, #20]
|
|
adds r2, r3, #1
|
|
beq .L2585
|
|
ldr r2, [r7, #12]
|
|
ldr r2, [r2, #4]
|
|
cmp r3, r2
|
|
beq .L2585
|
|
.L2584:
|
|
movs r7, #48
|
|
ldr r3, .L2664+12
|
|
mla r7, r7, r5, r4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
movs r0, #1
|
|
ldr r1, [r7, #24]
|
|
rsb r2, r3, #24
|
|
lsls r0, r0, r3
|
|
subs r3, r0, #1
|
|
lsr r0, r1, r2
|
|
lsl ip, r3, r2
|
|
mov r2, fp
|
|
ands r0, r0, r3
|
|
ldr r3, .L2664+8
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, [r7, #12]
|
|
bl flash_read_page_en
|
|
ldr r2, [r7, #20]
|
|
mov r8, r0
|
|
adds r3, r2, #1
|
|
beq .L2586
|
|
ldr r3, [r7, #12]
|
|
ldr r1, [r3, #4]
|
|
cmp r2, r1
|
|
beq .L2586
|
|
ldr r0, .L2664+16
|
|
ldr r0, [r0]
|
|
lsls r0, r0, #25
|
|
bpl .L2586
|
|
str r1, [sp]
|
|
ldr r1, [r7, #24]
|
|
ldr r3, [r3]
|
|
ldr r0, .L2664+20
|
|
bl printf
|
|
.L2586:
|
|
movs r3, #48
|
|
mla r3, r3, r5, r4
|
|
ldr r2, [r3, #20]
|
|
adds r0, r2, #1
|
|
beq .L2585
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r2, r3
|
|
beq .L2585
|
|
movw r2, #431
|
|
ldr r1, .L2664+24
|
|
ldr r0, .L2664+28
|
|
bl printf
|
|
.L2585:
|
|
movs r3, #48
|
|
movs r2, #13
|
|
mla r5, r3, r5, r4
|
|
strb r2, [r5, #42]
|
|
ldrb r2, [r5, #2] @ zero_extendqisi2
|
|
str r8, [r5, #36]
|
|
orr r2, r2, #8
|
|
strb r2, [r5, #2]
|
|
ldr r2, [sp, #12]
|
|
adds r2, r2, #1
|
|
beq .L2587
|
|
mla r3, r3, r6, r4
|
|
ldr r2, [r3, #20]
|
|
adds r1, r2, #1
|
|
beq .L2589
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r2, r3
|
|
beq .L2589
|
|
.L2587:
|
|
ldr r3, .L2664+12
|
|
movs r5, #48
|
|
mla r5, r5, r6, r4
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
movs r0, #1
|
|
ldr r1, [r5, #24]
|
|
rsb r3, r2, #24
|
|
lsls r0, r0, r2
|
|
mov r2, r10
|
|
subs r0, r0, #1
|
|
lsl r7, r0, r3
|
|
lsr r3, r1, r3
|
|
ands r0, r0, r3
|
|
ldr r3, .L2664+8
|
|
bic r1, r1, r7
|
|
uxtb r0, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, [r5, #12]
|
|
bl flash_read_page_en
|
|
ldr r2, [r5, #20]
|
|
adds r3, r2, #1
|
|
beq .L2591
|
|
ldr r3, [r5, #12]
|
|
ldr r1, [r3, #4]
|
|
cmp r2, r1
|
|
beq .L2591
|
|
ldr r0, .L2664+16
|
|
ldr r0, [r0]
|
|
lsls r7, r0, #25
|
|
bpl .L2591
|
|
str r1, [sp]
|
|
ldr r0, .L2664+20
|
|
ldr r3, [r3]
|
|
ldr r1, [r5, #24]
|
|
bl printf
|
|
.L2591:
|
|
movs r3, #48
|
|
mla r3, r3, r6, r4
|
|
ldr r2, [r3, #20]
|
|
adds r0, r2, #1
|
|
beq .L2589
|
|
ldr r3, [r3, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r2, r3
|
|
beq .L2589
|
|
mov r2, #450
|
|
ldr r1, .L2664+24
|
|
ldr r0, .L2664+28
|
|
bl printf
|
|
.L2589:
|
|
movs r3, #48
|
|
mla r4, r3, r6, r4
|
|
str r8, [r4, #36]
|
|
b .L2663
|
|
.L2577:
|
|
movs r1, #64
|
|
mov r0, r6
|
|
bl flash_wait_device_ready
|
|
lsls r1, r0, #25
|
|
mov r6, r0
|
|
bpl .L2605
|
|
ands r2, r0, #5
|
|
mov r3, #48
|
|
beq .L2593
|
|
mla r4, r3, r5, r4
|
|
movs r3, #12
|
|
mov r2, r0
|
|
ldr r0, .L2664+32
|
|
strb r3, [r4, #42]
|
|
ldrb r1, [r4, #1] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, [r4, #24]
|
|
bl printf
|
|
.L2662:
|
|
mov r3, #-1
|
|
str r3, [r4, #36]
|
|
b .L2571
|
|
.L2665:
|
|
.align 2
|
|
.L2664:
|
|
.word .LANCHOR59
|
|
.word .LANCHOR55
|
|
.word .LANCHOR131
|
|
.word .LANCHOR31
|
|
.word .LANCHOR19
|
|
.word .LC137
|
|
.word .LANCHOR180
|
|
.word .LC0
|
|
.word .LC138
|
|
.L2593:
|
|
mla r6, r3, r5, r4
|
|
movs r3, #13
|
|
strb r3, [r6, #42]
|
|
ldr r3, .L2666
|
|
str r2, [r6, #36]
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #156]
|
|
ldr r3, .L2666+4
|
|
cmp r2, r3
|
|
bne .L2605
|
|
ldrh r3, [r6, #34]
|
|
cmp r3, #0
|
|
bne .L2605
|
|
ldr r3, .L2666+8
|
|
movs r0, #1
|
|
ldr r1, [r6, #24]
|
|
ldr r7, .L2666+12
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
rsb r3, r2, #24
|
|
lsls r0, r0, r2
|
|
ldr r2, .L2666+16
|
|
subs r0, r0, #1
|
|
lsl ip, r0, r3
|
|
lsr r3, r1, r3
|
|
ands r0, r0, r3
|
|
ldr r3, .L2666+20
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, [r7]
|
|
ldr r2, [r2]
|
|
bl flash_read_page_en
|
|
adds r2, r0, #1
|
|
mov r3, r0
|
|
beq .L2594
|
|
ldr r1, [r6, #12]
|
|
ldr r2, [r7]
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
cmp r1, r2
|
|
beq .L2605
|
|
.L2594:
|
|
movs r2, #48
|
|
ldr r0, .L2666+24
|
|
mla r4, r2, r5, r4
|
|
ldr r2, .L2666+28
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrb r1, [r4, #1] @ zero_extendqisi2
|
|
str r2, [sp]
|
|
ldr r2, [r4, #24]
|
|
bl printf
|
|
mov r3, #-1
|
|
str r3, [r4, #36]
|
|
b .L2605
|
|
.L2580:
|
|
ldr r7, .L2666+8
|
|
cmp r3, #11
|
|
mov r3, #1
|
|
add r2, r5, r5, lsl #1
|
|
it eq
|
|
moveq r0, #10
|
|
ldrb ip, [r7] @ zero_extendqisi2
|
|
add r2, r4, r2, lsl #4
|
|
mov r10, r7
|
|
it ne
|
|
movne r0, #3
|
|
movs r7, #48
|
|
rsb r1, ip, #24
|
|
lsl r3, r3, ip
|
|
lsr ip, r6, r1
|
|
subs r3, r3, #1
|
|
and ip, ip, r3
|
|
uxth ip, ip
|
|
.L2596:
|
|
ldrb r8, [r2] @ zero_extendqisi2
|
|
cmp r8, #255
|
|
bne .L2603
|
|
mov r6, #-1
|
|
b .L2571
|
|
.L2603:
|
|
mla lr, r7, r8, r4
|
|
add r2, r8, r8, lsl #1
|
|
ldrb fp, [lr, #42] @ zero_extendqisi2
|
|
add r2, r4, r2, lsl #4
|
|
cmp fp, r0
|
|
bne .L2596
|
|
ldr lr, [lr, #24]
|
|
lsr lr, lr, r1
|
|
and lr, lr, r3
|
|
cmp ip, lr
|
|
bne .L2596
|
|
mov r0, r6
|
|
movs r1, #64
|
|
bl flash_wait_device_ready
|
|
mov r6, r0
|
|
lsls r0, r6, #25
|
|
bmi .L2598
|
|
.L2661:
|
|
movs r6, #0
|
|
b .L2599
|
|
.L2598:
|
|
ands r3, r6, #15
|
|
mul r7, r7, r5
|
|
beq .L2600
|
|
add r7, r7, r4
|
|
mov r10, #12
|
|
ldrb r1, [r7, #1] @ zero_extendqisi2
|
|
mov r2, r6
|
|
str r10, [sp]
|
|
ldr r3, [r7, #24]
|
|
ldr r0, .L2666+32
|
|
bl printf
|
|
mov r3, #-1
|
|
strb r10, [r7, #42]
|
|
str r3, [r7, #36]
|
|
.L2599:
|
|
movs r3, #48
|
|
mla r5, r3, r5, r4
|
|
mla r8, r3, r8, r4
|
|
ldrb r2, [r5, #42] @ zero_extendqisi2
|
|
ldr r3, [r5, #36]
|
|
strb r2, [r8, #42]
|
|
str r3, [r8, #36]
|
|
.L2571:
|
|
mov r0, r6
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2600:
|
|
adds r6, r4, r7
|
|
movs r2, #13
|
|
str r3, [r6, #36]
|
|
ldr r3, .L2666
|
|
strb r2, [r6, #42]
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #156]
|
|
ldr r3, .L2666+4
|
|
cmp r2, r3
|
|
bne .L2661
|
|
ldrh r3, [r6, #34]
|
|
cmp r3, #0
|
|
bne .L2661
|
|
ldrb r2, [r10] @ zero_extendqisi2
|
|
movs r0, #1
|
|
ldr r1, [r6, #24]
|
|
ldr r7, .L2666+12
|
|
rsb r3, r2, #24
|
|
lsls r0, r0, r2
|
|
ldr r2, .L2666+16
|
|
subs r0, r0, #1
|
|
lsl ip, r0, r3
|
|
lsr r3, r1, r3
|
|
ands r0, r0, r3
|
|
ldr r3, .L2666+20
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, [r7]
|
|
ldr r2, [r2]
|
|
bl flash_read_page_en
|
|
adds r1, r0, #1
|
|
mov r3, r0
|
|
beq .L2602
|
|
ldr r1, [r6, #12]
|
|
ldr r2, [r7]
|
|
ldr r1, [r1]
|
|
ldr r2, [r2]
|
|
cmp r1, r2
|
|
beq .L2661
|
|
.L2602:
|
|
ldr r2, .L2666+28
|
|
movs r6, #48
|
|
mla r6, r6, r5, r4
|
|
ldr r0, .L2666+36
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrb r1, [r6, #1] @ zero_extendqisi2
|
|
str r2, [sp]
|
|
ldr r2, [r6, #24]
|
|
bl printf
|
|
mov r3, #-1
|
|
str r3, [r6, #36]
|
|
b .L2661
|
|
.L2578:
|
|
mov r0, r6
|
|
movs r1, #32
|
|
bl flash_wait_device_ready
|
|
lsls r2, r0, #26
|
|
mov r6, r0
|
|
bpl .L2605
|
|
ands r2, r0, #15
|
|
mov r3, #48
|
|
mla r4, r3, r5, r4
|
|
beq .L2604
|
|
movs r3, #12
|
|
strb r3, [r4, #42]
|
|
b .L2662
|
|
.L2604:
|
|
movs r3, #13
|
|
str r2, [r4, #36]
|
|
strb r3, [r4, #42]
|
|
b .L2605
|
|
.L2579:
|
|
movs r1, #64
|
|
mov r0, r6
|
|
bl flash_wait_device_ready
|
|
lsls r3, r0, #25
|
|
bpl .L2605
|
|
movs r3, #48
|
|
mla r4, r3, r5, r4
|
|
movs r3, #7
|
|
str r0, [r4, #36]
|
|
strb r3, [r4, #42]
|
|
b .L2605
|
|
.L2667:
|
|
.align 2
|
|
.L2666:
|
|
.word .LANCHOR110
|
|
.word 1145785929
|
|
.word .LANCHOR31
|
|
.word .LANCHOR172
|
|
.word .LANCHOR173
|
|
.word .LANCHOR131
|
|
.word .LC139
|
|
.word .LANCHOR51
|
|
.word .LC140
|
|
.word .LC141
|
|
.size queue_wait_first_req_completed, .-queue_wait_first_req_completed
|
|
.section .text.sblk_prog_page,"ax",%progbits
|
|
.align 1
|
|
.global sblk_prog_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_prog_page, %function
|
|
sblk_prog_page:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldrh r3, [r0, #34]
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r0
|
|
mov r5, r1
|
|
cbz r3, .L2669
|
|
ldr r3, .L2698
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L2669
|
|
mov r2, r1
|
|
ldr r1, [r0, #24]
|
|
ldr r0, .L2698+4
|
|
bl printf
|
|
.L2669:
|
|
ldr fp, .L2698+40
|
|
movs r7, #0
|
|
.L2670:
|
|
cbnz r5, .L2681
|
|
.L2697:
|
|
movs r0, #0
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2681:
|
|
ldrb r8, [r4] @ zero_extendqisi2
|
|
ldr r6, [r4, #24]
|
|
.L2671:
|
|
movs r1, #1
|
|
mov r0, r6
|
|
bl queue_lun_state
|
|
cbnz r0, .L2672
|
|
cmp r5, #1
|
|
beq .L2673
|
|
ldr r3, .L2698+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2673
|
|
ldr r3, .L2698+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2674
|
|
.L2673:
|
|
mov r0, r4
|
|
bl queue_prog_cmd
|
|
.L2675:
|
|
subs r5, r5, #1
|
|
beq .L2697
|
|
ldr r4, .L2698+16
|
|
add r8, r8, r8, lsl #1
|
|
add r4, r4, r8, lsl #4
|
|
b .L2670
|
|
.L2672:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2671
|
|
.L2674:
|
|
ldrb r1, [fp] @ zero_extendqisi2
|
|
movs r2, #1
|
|
rsb r3, r1, #24
|
|
lsls r2, r2, r1
|
|
lsr r3, r6, r3
|
|
subs r2, r2, #1
|
|
ands r3, r3, r2
|
|
uxth r3, r3
|
|
str r3, [sp, #4]
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L2676
|
|
movw r2, #697
|
|
ldr r1, .L2698+20
|
|
ldr r0, .L2698+24
|
|
bl printf
|
|
.L2676:
|
|
ldr r2, .L2698+16
|
|
movs r1, #48
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
mov r10, #1
|
|
mla r3, r1, r3, r2
|
|
ldr r1, [r3, #24]
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
rsb r2, r3, #24
|
|
lsl r3, r10, r3
|
|
lsr r0, r1, r2
|
|
subs r3, r3, #1
|
|
ands r3, r3, r0
|
|
ldr r0, [sp, #4]
|
|
uxth r3, r3
|
|
cmp r0, r3
|
|
bne .L2677
|
|
ldr r3, .L2698+28
|
|
ldrh r0, [r3]
|
|
ldr r3, .L2698+32
|
|
ldrb ip, [r3] @ zero_extendqisi2
|
|
subs r3, r2, r0
|
|
lsl r2, r10, r0
|
|
lsl r3, r10, r3
|
|
subs r2, r2, #1
|
|
subs r3, r3, #1
|
|
uxth r2, r2
|
|
add ip, ip, #-1
|
|
and r3, r3, ip
|
|
uxth r3, r3
|
|
and lr, r2, r6
|
|
ands r2, r2, r1
|
|
lsrs r6, r6, r0
|
|
lsrs r1, r1, r0
|
|
ands r6, r6, r3
|
|
ands r1, r1, r3
|
|
cmp r6, r1
|
|
beq .L2677
|
|
cmp lr, r2
|
|
bne .L2677
|
|
cmp r7, ip
|
|
beq .L2677
|
|
ldr r3, [r4, #12]
|
|
movs r0, #17
|
|
ldr r2, [r4, #4]
|
|
add r7, r7, r10
|
|
ldr r1, [r4, #24]
|
|
bl flash_start_page_prog
|
|
movs r3, #9
|
|
strb r10, [r4, #43]
|
|
strb r3, [r4, #42]
|
|
movs r3, #255
|
|
strb r3, [r4]
|
|
mov r1, r4
|
|
ldr r0, .L2698+36
|
|
bl buf_add_tail
|
|
b .L2675
|
|
.L2677:
|
|
mov r0, r4
|
|
movs r7, #0
|
|
bl queue_prog_cmd
|
|
b .L2675
|
|
.L2699:
|
|
.align 2
|
|
.L2698:
|
|
.word .LANCHOR19
|
|
.word .LC142
|
|
.word .LANCHOR44
|
|
.word .LANCHOR36
|
|
.word .LANCHOR55
|
|
.word .LANCHOR181
|
|
.word .LC0
|
|
.word .LANCHOR74
|
|
.word .LANCHOR75
|
|
.word .LANCHOR59
|
|
.word .LANCHOR31
|
|
.size sblk_prog_page, .-sblk_prog_page
|
|
.section .text.sblk_wait_write_queue_completed,"ax",%progbits
|
|
.align 1
|
|
.global sblk_wait_write_queue_completed
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_wait_write_queue_completed, %function
|
|
sblk_wait_write_queue_completed:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
ldr r4, .L2703
|
|
.L2701:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L2702
|
|
pop {r4, pc}
|
|
.L2702:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2701
|
|
.L2704:
|
|
.align 2
|
|
.L2703:
|
|
.word .LANCHOR59
|
|
.size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed
|
|
.section .text.ftl_flush,"ax",%progbits
|
|
.align 1
|
|
.global ftl_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_flush, %function
|
|
ftl_flush:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
ldr r4, .L2710
|
|
ldr r5, .L2710+4
|
|
ldrb r1, [r4] @ zero_extendqisi2
|
|
cbz r1, .L2706
|
|
ldrb r0, [r5] @ zero_extendqisi2
|
|
ldr r3, .L2710+8
|
|
add r0, r0, r0, lsl #1
|
|
add r0, r3, r0, lsl #4
|
|
bl sblk_prog_page
|
|
.L2706:
|
|
movs r3, #255
|
|
strb r3, [r5]
|
|
movs r3, #0
|
|
strb r3, [r4]
|
|
bl sblk_wait_write_queue_completed
|
|
bl ftl_write_completed
|
|
movw r0, #65535
|
|
pop {r3, r4, r5, lr}
|
|
b ftl_vpn_decrement
|
|
.L2711:
|
|
.align 2
|
|
.L2710:
|
|
.word .LANCHOR129
|
|
.word .LANCHOR182
|
|
.word .LANCHOR55
|
|
.size ftl_flush, .-ftl_flush
|
|
.section .text.ftl_read_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_read_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_read_page, %function
|
|
ftl_read_page:
|
|
@ args = 4, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {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
|
|
str r8, [sp, #24]
|
|
mov r3, r7
|
|
mov r2, r6
|
|
mov r1, r5
|
|
mov r0, r4
|
|
pop {r4, r5, r6, r7, r8, lr}
|
|
b flash_read_page_en
|
|
.size ftl_read_page, .-ftl_read_page
|
|
.section .text.ftl_read_ppa_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_read_ppa_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_read_ppa_page, %function
|
|
ftl_read_ppa_page:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r10, r3
|
|
ldr r3, .L2714
|
|
mov r6, r0
|
|
movs r5, #1
|
|
mov r7, r1
|
|
mov r8, r2
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
rsb r4, r0, #24
|
|
lsls r5, r5, r0
|
|
lsr r4, r6, r4
|
|
subs r5, r5, #1
|
|
ands r4, r4, r5
|
|
uxtb r4, r4
|
|
bl sblk_wait_write_queue_completed
|
|
str r10, [sp]
|
|
mov r3, r8
|
|
mov r2, r7
|
|
mov r1, r6
|
|
mov r0, r4
|
|
bl flash_read_page_en
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, pc}
|
|
.L2715:
|
|
.align 2
|
|
.L2714:
|
|
.word .LANCHOR31
|
|
.size ftl_read_ppa_page, .-ftl_read_ppa_page
|
|
.section .text.sblk_read_page,"ax",%progbits
|
|
.align 1
|
|
.global sblk_read_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_read_page, %function
|
|
sblk_read_page:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r0
|
|
sub sp, sp, #24
|
|
mov r6, r1
|
|
mov r4, r0
|
|
mov r5, r1
|
|
.L2717:
|
|
cbnz r5, .L2727
|
|
.L2740:
|
|
ldr r4, .L2741
|
|
.L2728:
|
|
cmp r6, #0
|
|
bne .L2730
|
|
mov r0, r6
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2727:
|
|
ldr fp, [r4, #24]
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
str r3, [sp, #8]
|
|
.L2718:
|
|
movs r1, #0
|
|
mov r0, fp
|
|
bl queue_lun_state
|
|
cbnz r0, .L2719
|
|
cmp r5, #1
|
|
beq .L2724
|
|
ldr r3, .L2741+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L2721
|
|
.L2724:
|
|
mov r0, r4
|
|
bl queue_read_cmd
|
|
b .L2722
|
|
.L2719:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2718
|
|
.L2721:
|
|
ldr r3, .L2741+8
|
|
movs r2, #1
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
rsb r3, r1, #24
|
|
lsls r2, r2, r1
|
|
lsr r3, fp, r3
|
|
subs r2, r2, #1
|
|
ands r3, r3, r2
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
uxth r3, r3
|
|
cmp r2, #255
|
|
bne .L2723
|
|
movw r2, #782
|
|
ldr r1, .L2741+12
|
|
ldr r0, .L2741+16
|
|
str r3, [sp, #4]
|
|
bl printf
|
|
ldr r3, [sp, #4]
|
|
.L2723:
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
movs r0, #1
|
|
ldr r8, .L2741
|
|
str r2, [sp, #12]
|
|
movs r2, #48
|
|
ldr r1, [sp, #12]
|
|
muls r2, r1, r2
|
|
add r10, r8, r2
|
|
str r2, [sp, #4]
|
|
ldr r2, .L2741+8
|
|
ldr r1, [r10, #24]
|
|
ldrb ip, [r2] @ zero_extendqisi2
|
|
rsb r2, ip, #24
|
|
lsl r0, r0, ip
|
|
lsr r2, r1, r2
|
|
subs r0, r0, #1
|
|
ands r2, r2, r0
|
|
uxth r2, r2
|
|
cmp r3, r2
|
|
bne .L2724
|
|
ldr r3, .L2741+20
|
|
ldrh r3, [r3]
|
|
add fp, fp, r3
|
|
cmp r1, fp
|
|
bne .L2724
|
|
ldr r3, [sp, #4]
|
|
mov fp, #255
|
|
ldr r0, [r4, #24]
|
|
subs r5, r5, #1
|
|
ldrb r3, [r8, r3] @ zero_extendqisi2
|
|
str r3, [sp, #8]
|
|
bl flash_start_plane_read
|
|
movs r2, #2
|
|
movs r3, #0
|
|
strb r2, [r4, #42]
|
|
mov r1, r4
|
|
strb r3, [r4, #43]
|
|
ldr r0, .L2741+24
|
|
strb fp, [r4]
|
|
str r2, [sp, #20]
|
|
str r3, [sp, #16]
|
|
bl buf_add_tail
|
|
ldr r3, [sp, #16]
|
|
ldr r2, [sp, #20]
|
|
ldr r0, .L2741+24
|
|
strb r3, [r10, #43]
|
|
ldr r3, [sp, #4]
|
|
strb r2, [r10, #42]
|
|
strb fp, [r8, r3]
|
|
ldr r3, [sp, #12]
|
|
add r1, r3, r3, lsl #1
|
|
add r1, r8, r1, lsl #4
|
|
bl buf_add_tail
|
|
.L2722:
|
|
subs r5, r5, #1
|
|
beq .L2740
|
|
ldr r3, [sp, #8]
|
|
add r4, r3, r3, lsl #1
|
|
ldr r3, .L2741
|
|
add r4, r3, r4, lsl #4
|
|
b .L2717
|
|
.L2730:
|
|
ldrb r3, [r7, #42] @ zero_extendqisi2
|
|
cmp r3, #13
|
|
bne .L2729
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
subs r6, r6, #1
|
|
cmp r3, #255
|
|
itt ne
|
|
addne r3, r3, r3, lsl #1
|
|
addne r7, r4, r3, lsl #4
|
|
.L2729:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2728
|
|
.L2742:
|
|
.align 2
|
|
.L2741:
|
|
.word .LANCHOR55
|
|
.word .LANCHOR183
|
|
.word .LANCHOR31
|
|
.word .LANCHOR184
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.word .LANCHOR59
|
|
.size sblk_read_page, .-sblk_read_page
|
|
.section .text.gc_check_data_one_wl,"ax",%progbits
|
|
.align 1
|
|
.global gc_check_data_one_wl
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_check_data_one_wl, %function
|
|
gc_check_data_one_wl:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #24
|
|
ldr r4, .L2776
|
|
ldr r3, .L2776+4
|
|
ldr r2, [r4, #8]
|
|
ldr r8, [r3]
|
|
mov fp, r3
|
|
cbnz r2, .L2744
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
str r0, [r4, #8]
|
|
.L2744:
|
|
ldr r5, [r4, #8]
|
|
cbnz r5, .L2745
|
|
movw r2, #729
|
|
ldr r1, .L2776+8
|
|
ldr r0, .L2776+12
|
|
bl printf
|
|
.L2745:
|
|
add r10, r8, #96
|
|
movs r7, #0
|
|
.L2746:
|
|
ldrb r3, [r8, #89] @ zero_extendqisi2
|
|
cmp r7, r3
|
|
bge .L2757
|
|
movs r6, #1
|
|
b .L2758
|
|
.L2756:
|
|
ldr r2, .L2776+16
|
|
ldrh r3, [r10]
|
|
ldrh r2, [r2]
|
|
muls r2, r3, r2
|
|
ldr r3, .L2776+20
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cmp r1, #2
|
|
beq .L2747
|
|
ldr r3, .L2776+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2748
|
|
.L2747:
|
|
ldrh r3, [r4, #12]
|
|
subs r3, r3, #1
|
|
add r3, r3, r2
|
|
add r3, r3, r6
|
|
orr r3, r3, r1, lsl #24
|
|
.L2775:
|
|
movs r1, #1
|
|
str r3, [r5, #24]
|
|
mov r0, r5
|
|
bl sblk_read_page
|
|
ldr r2, [r5, #36]
|
|
ldr r1, .L2776+28
|
|
adds r0, r2, #1
|
|
beq .L2752
|
|
ldr r3, [r1]
|
|
ldrh ip, [r4, #18]
|
|
ldr r0, [r5, #12]
|
|
ldr lr, [r3, ip, lsl #2]
|
|
ldr r3, [r0, #4]
|
|
cmp lr, r3
|
|
bne .L2752
|
|
ldr r3, .L2776+32
|
|
ldr r0, [r0, #8]
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, ip, lsl #2]
|
|
cmp r3, r0
|
|
beq .L2753
|
|
.L2752:
|
|
ldrh r3, [r4, #18]
|
|
ldr r1, [r1]
|
|
lsls r0, r3, #2
|
|
ldr r3, [r1, r3, lsl #2]
|
|
adds r1, r3, #1
|
|
beq .L2753
|
|
ldr r1, .L2776+36
|
|
ldr r1, [r1]
|
|
lsls r1, r1, #21
|
|
bpl .L2754
|
|
ldr r1, [r5, #12]
|
|
ldr r4, [r1, #12]
|
|
str r4, [sp, #16]
|
|
ldr r4, [r1, #8]
|
|
str r4, [sp, #12]
|
|
ldr r4, [r1, #4]
|
|
str r4, [sp, #8]
|
|
ldr r1, [r1]
|
|
str r1, [sp, #4]
|
|
ldr r1, .L2776+32
|
|
ldr r1, [r1]
|
|
ldr r1, [r1, r0]
|
|
ldr r0, .L2776+40
|
|
str r1, [sp]
|
|
ldr r1, [r5, #24]
|
|
bl printf
|
|
.L2754:
|
|
ldr r3, .L2776+44
|
|
movs r0, #0
|
|
ldrh r2, [r8, #80]
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
ldr r3, .L2776+48
|
|
ldr r3, [r3]
|
|
strh r0, [r3, r2, lsl #1] @ movhi
|
|
ldr r2, [fp]
|
|
ldr r3, [r2, #556]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #556]
|
|
ldr r3, .L2776+52
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #156]
|
|
ldr r3, .L2776+56
|
|
cmp r2, r3
|
|
bne .L2761
|
|
cbnz r1, .L2761
|
|
ldr r3, .L2776+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L2761
|
|
ldr r0, [r5, #24]
|
|
bl ftl_mask_bad_block
|
|
.L2761:
|
|
mov r0, #-1
|
|
b .L2743
|
|
.L2748:
|
|
cmp r1, #3
|
|
ldrh r3, [r4, #12]
|
|
bne .L2750
|
|
ldr r1, .L2776+64
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L2751
|
|
add r3, r3, r3, lsl #1
|
|
subs r3, r3, #1
|
|
add r3, r3, r2
|
|
add r3, r3, r6
|
|
orr r3, r3, #50331648
|
|
b .L2775
|
|
.L2751:
|
|
add r3, r3, r2
|
|
orr r3, r3, r6, lsl #24
|
|
b .L2775
|
|
.L2750:
|
|
add r3, r3, r2
|
|
b .L2775
|
|
.L2753:
|
|
ldrh r3, [r4, #18]
|
|
adds r6, r6, #1
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #18] @ movhi
|
|
.L2758:
|
|
ldrh r3, [r4, #16]
|
|
cmp r6, r3
|
|
ble .L2756
|
|
adds r7, r7, #1
|
|
add r10, r10, #2
|
|
b .L2746
|
|
.L2757:
|
|
ldrh r3, [r4, #12]
|
|
adds r2, r3, #1
|
|
strh r2, [r4, #12] @ movhi
|
|
ldr r2, .L2776+60
|
|
ldrb r0, [r2] @ zero_extendqisi2
|
|
cbz r0, .L2743
|
|
movs r0, #0
|
|
adds r3, r3, #2
|
|
strh r3, [r4, #12] @ movhi
|
|
.L2755:
|
|
.L2743:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2777:
|
|
.align 2
|
|
.L2776:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR12
|
|
.word .LANCHOR185
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.word .LANCHOR78
|
|
.word .LANCHOR35
|
|
.word .LANCHOR159
|
|
.word .LANCHOR160
|
|
.word .LANCHOR19
|
|
.word .LC143
|
|
.word .LANCHOR124
|
|
.word .LANCHOR11
|
|
.word .LANCHOR110
|
|
.word 1145785929
|
|
.word .LANCHOR80
|
|
.word .LANCHOR36
|
|
.size gc_check_data_one_wl, .-gc_check_data_one_wl
|
|
.section .text.sblk_tlc_prog_one_page,"ax",%progbits
|
|
.align 1
|
|
.global sblk_tlc_prog_one_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_tlc_prog_one_page, %function
|
|
sblk_tlc_prog_one_page:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, [r0]
|
|
push {r4, r5, r6, lr}
|
|
mov r5, r0
|
|
ldr r6, [r3, #24]
|
|
.L2779:
|
|
movs r1, #1
|
|
mov r0, r6
|
|
bl queue_lun_state
|
|
mov r4, r0
|
|
cbnz r0, .L2780
|
|
mov r0, r5
|
|
movs r1, #1
|
|
bl queue_tlc_prog_cmd
|
|
mov r0, r4
|
|
pop {r4, r5, r6, pc}
|
|
.L2780:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2779
|
|
.size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page
|
|
.section .text.sblk_xlc_prog_pages,"ax",%progbits
|
|
.align 1
|
|
.global sblk_xlc_prog_pages
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_xlc_prog_pages, %function
|
|
sblk_xlc_prog_pages:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, [r0]
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
mov r6, r1
|
|
sub sp, sp, #24
|
|
ldr r4, [r3, #24]
|
|
str r2, [sp, #20]
|
|
.L2782:
|
|
movs r1, #1
|
|
mov r0, r4
|
|
bl queue_lun_state
|
|
mov r8, r0
|
|
cmp r0, #0
|
|
bne .L2783
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #2
|
|
bne .L2784
|
|
ldr r3, .L2793
|
|
ldr ip, [r6]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2785
|
|
ldr r3, .L2793+4
|
|
mov r10, #1
|
|
ldr r2, [r5]
|
|
ldr fp, [ip, #24]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldr r1, [r2, #24]
|
|
rsb r0, r3, #24
|
|
lsl r4, r10, r0
|
|
subs r4, r4, #1
|
|
and r7, r1, r4
|
|
and fp, r4, fp
|
|
lsl r4, r10, r3
|
|
ldr r3, .L2793+8
|
|
lsrs r1, r1, r0
|
|
subs r4, r4, #1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ands r4, r4, r1
|
|
uxtb r4, r4
|
|
cmp r3, #0
|
|
beq .L2786
|
|
mov r0, r4
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, [r5]
|
|
mov r1, r10
|
|
mov r0, r8
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #17
|
|
ldr r3, [r3, #4]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6]
|
|
mov r1, r10
|
|
mov r0, r8
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str fp, [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 r0, r8
|
|
ldr r1, [sp, #20]
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #17
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #4]
|
|
add r3, r7, r10
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #4]
|
|
mov r0, r8
|
|
ldr r1, [sp, #20]
|
|
adds r7, r7, #2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #4]
|
|
add r3, fp, r10
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #8]
|
|
movs r1, #3
|
|
mov r0, r8
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #17
|
|
ldr r3, [r3, #4]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #8]
|
|
movs r1, #3
|
|
mov r0, r8
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #16
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #4]
|
|
add r3, fp, #2
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl flash_start_one_pass_page_prog
|
|
.L2787:
|
|
ldr r1, [r5]
|
|
movs r3, #5
|
|
ldr r0, .L2793+12
|
|
strb r3, [r1, #42]
|
|
movs r3, #1
|
|
strb r3, [r1, #43]
|
|
movs r3, #255
|
|
strb r3, [r1]
|
|
bl buf_add_tail
|
|
.L2788:
|
|
movs r0, #0
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2783:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2782
|
|
.L2786:
|
|
ldr r3, [r2, #12]
|
|
mov r1, r10
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
str r3, [sp, #8]
|
|
ldr r3, [r2, #4]
|
|
movs r2, #17
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6]
|
|
mov r1, r10
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str fp, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldm r5, {r2, r3}
|
|
ldr r1, [sp, #20]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #17
|
|
ldr r3, [r3, #4]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #4]
|
|
ldr r2, [r5]
|
|
ldr r1, [sp, #20]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #26
|
|
ldr r3, [r3, #4]
|
|
str fp, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r5, #8]
|
|
movs r1, #3
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #17
|
|
ldr r3, [r3, #4]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
bl nandc_wait_flash_ready
|
|
ldr r3, [r6, #8]
|
|
movs r1, #3
|
|
ldr r2, [r5]
|
|
ldrb r0, [r2, #44] @ zero_extendqisi2
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp, #8]
|
|
movs r2, #16
|
|
ldr r3, [r3, #4]
|
|
str fp, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r4
|
|
bl flash_start_tlc_page_prog
|
|
b .L2787
|
|
.L2785:
|
|
ldr r4, [ip, #24]
|
|
.L2789:
|
|
movs r1, #1
|
|
mov r0, r4
|
|
bl queue_lun_state
|
|
mov r7, r0
|
|
cbnz r0, .L2790
|
|
movs r1, #1
|
|
mov r0, r5
|
|
bl queue_tlc_prog_cmd
|
|
mov r1, r7
|
|
mov r0, r6
|
|
bl queue_tlc_prog_cmd
|
|
.L2791:
|
|
movs r1, #1
|
|
mov r0, r4
|
|
bl queue_lun_state
|
|
cmp r0, #0
|
|
beq .L2788
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2791
|
|
.L2790:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2789
|
|
.L2784:
|
|
movs r1, #1
|
|
mov r0, r5
|
|
bl queue_tlc_prog_cmd
|
|
b .L2788
|
|
.L2794:
|
|
.align 2
|
|
.L2793:
|
|
.word .LANCHOR44
|
|
.word .LANCHOR31
|
|
.word .LANCHOR36
|
|
.word .LANCHOR59
|
|
.size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
|
|
.section .text.sblk_3d_mlc_prog_pages,"ax",%progbits
|
|
.align 1
|
|
.global sblk_3d_mlc_prog_pages
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type sblk_3d_mlc_prog_pages, %function
|
|
sblk_3d_mlc_prog_pages:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r7, r1
|
|
ldr r10, .L2800
|
|
add r5, r0, #8
|
|
ldr fp, .L2800+4
|
|
.L2796:
|
|
cbnz r7, .L2799
|
|
mov r0, r7
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2799:
|
|
ldr r3, [r5, #-8]
|
|
ldr r4, [r3, #24]
|
|
.L2797:
|
|
movs r1, #1
|
|
mov r0, r4
|
|
bl queue_lun_state
|
|
cmp r0, #0
|
|
bne .L2798
|
|
ldr r3, [r5, #-8]
|
|
mov r8, #1
|
|
subs r7, r7, #1
|
|
adds r5, r5, #8
|
|
ldr r2, [r3, #24]
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
rsb r1, r3, #24
|
|
lsl r6, r8, r1
|
|
lsl r4, r8, r3
|
|
subs r6, r6, #1
|
|
subs r4, r4, #1
|
|
ands r6, r6, r2
|
|
lsrs r2, r2, r1
|
|
ands r4, r4, r2
|
|
uxtb r4, r4
|
|
mov r0, r4
|
|
bl zftl_flash_exit_slc_mode
|
|
ldr r3, [r5, #-16]
|
|
mov r1, r4
|
|
movs 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
|
|
movs r0, #16
|
|
ldr r2, [r3, #12]
|
|
str r2, [sp]
|
|
add r2, r6, r8
|
|
ldr r3, [r3, #4]
|
|
bl flash_start_3d_mlc_page_prog
|
|
bl nandc_de_cs.constprop.32
|
|
ldr r1, [r5, #-16]
|
|
movs r3, #4
|
|
mov r0, fp
|
|
strb r3, [r1, #42]
|
|
movs r3, #255
|
|
strb r8, [r1, #43]
|
|
strb r3, [r1]
|
|
bl buf_add_tail
|
|
b .L2796
|
|
.L2798:
|
|
bl queue_wait_first_req_completed
|
|
bl queue_remove_completed_req
|
|
b .L2797
|
|
.L2801:
|
|
.align 2
|
|
.L2800:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR59
|
|
.size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
|
|
.section .text.flash_prog_page_en,"ax",%progbits
|
|
.align 1
|
|
.global flash_prog_page_en
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_prog_page_en, %function
|
|
flash_prog_page_en:
|
|
@ args = 8, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r2
|
|
ldr r7, .L2837
|
|
sub sp, sp, #24
|
|
mov fp, r3
|
|
mov r6, r0
|
|
ldrb r3, [sp, #60] @ zero_extendqisi2
|
|
mov r4, r1
|
|
ldrb r2, [r7] @ zero_extendqisi2
|
|
ubfx r5, r1, #24, #2
|
|
str r3, [sp, #20]
|
|
cmp r2, r0
|
|
bhi .L2803
|
|
movw r2, #642
|
|
ldr r1, .L2837+4
|
|
ldr r0, .L2837+8
|
|
bl printf
|
|
.L2803:
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
cmp r3, r6
|
|
bls .L2814
|
|
ldr r3, .L2837+12
|
|
ldrb r3, [r3, r6] @ zero_extendqisi2
|
|
str r3, [sp, #12]
|
|
cmp r5, #0
|
|
bne .L2816
|
|
ldr r3, .L2837+16
|
|
ldr r10, .L2837+64
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2806
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2816
|
|
.L2806:
|
|
ldr r3, .L2837+20
|
|
mov r0, r4
|
|
ldrh r7, [r3]
|
|
mov r1, r7
|
|
bl __aeabi_uidiv
|
|
mov r1, r7
|
|
mul r5, r7, r0
|
|
mov r0, r4
|
|
bl __aeabi_uidivmod
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2807
|
|
add r5, r5, r1, lsl #1
|
|
.L2811:
|
|
ldr r3, .L2837+24
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #27
|
|
bpl .L2808
|
|
mov r3, r5
|
|
mov r2, r4
|
|
ldr r1, [sp, #12]
|
|
ldr r0, .L2837+28
|
|
bl printf
|
|
.L2808:
|
|
ldr r3, [sp, #56]
|
|
mov r2, r8
|
|
mov r1, r5
|
|
ldr r0, [sp, #12]
|
|
str r3, [sp]
|
|
mov r3, fp
|
|
bl flash_prog_page
|
|
ldr r3, [sp, #20]
|
|
str r0, [sp, #16]
|
|
cmp r3, #0
|
|
beq .L2809
|
|
ldr r3, [sp, #56]
|
|
mov r1, r4
|
|
ldr r10, .L2837+44
|
|
mov r0, r6
|
|
ldr r2, .L2837+32
|
|
str r3, [sp]
|
|
ldr r3, [r10]
|
|
ldr r2, [r2]
|
|
bl flash_read_page_en
|
|
adds r2, r0, #1
|
|
mov r7, r0
|
|
beq .L2810
|
|
cmp r0, #512
|
|
beq .L2810
|
|
ldr r3, .L2837+32
|
|
ldr r2, [r8]
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
cmp r2, r3
|
|
bne .L2810
|
|
ldr r3, [r10]
|
|
ldr r2, [fp]
|
|
ldr r3, [r3]
|
|
cmp r2, r3
|
|
beq .L2809
|
|
.L2810:
|
|
movs r3, #4
|
|
mov r1, r8
|
|
mov r2, r3
|
|
ldr r0, .L2837+36
|
|
bl rknand_print_hex
|
|
movs r3, #4
|
|
mov r1, fp
|
|
mov r2, r3
|
|
ldr r0, .L2837+40
|
|
bl rknand_print_hex
|
|
ldr r1, .L2837+44
|
|
movs r3, #4
|
|
mov r2, r3
|
|
ldr r0, .L2837+48
|
|
ldr r1, [r1]
|
|
bl rknand_print_hex
|
|
ldr r1, .L2837+32
|
|
movs r3, #4
|
|
mov r2, r3
|
|
ldr r0, .L2837+52
|
|
ldr r1, [r1]
|
|
bl rknand_print_hex
|
|
cmp r7, #512
|
|
beq .L2811
|
|
.L2813:
|
|
mov r1, r4
|
|
ldr r0, .L2837+56
|
|
bl printf
|
|
movw r2, #685
|
|
ldr r1, .L2837+4
|
|
ldr r0, .L2837+8
|
|
bl printf
|
|
.L2814:
|
|
mov r0, #-1
|
|
b .L2802
|
|
.L2807:
|
|
ldr r3, .L2837+60
|
|
ldrh r1, [r3, r1, lsl #1]
|
|
add r5, r5, r1
|
|
b .L2811
|
|
.L2816:
|
|
.L2805:
|
|
mov r5, r4
|
|
b .L2811
|
|
.L2809:
|
|
ldr r0, [sp, #16]
|
|
adds r3, r0, #1
|
|
beq .L2813
|
|
.L2802:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2838:
|
|
.align 2
|
|
.L2837:
|
|
.word .LANCHOR23
|
|
.word .LANCHOR186
|
|
.word .LC0
|
|
.word .LANCHOR29
|
|
.word .LANCHOR0
|
|
.word .LANCHOR2
|
|
.word .LANCHOR19
|
|
.word .LC144
|
|
.word .LANCHOR173
|
|
.word .LC145
|
|
.word .LC146
|
|
.word .LANCHOR172
|
|
.word .LC147
|
|
.word .LC148
|
|
.word .LC149
|
|
.word .LANCHOR3
|
|
.word .LANCHOR1
|
|
.size flash_prog_page_en, .-flash_prog_page_en
|
|
.section .text.ftl_test_block,"ax",%progbits
|
|
.align 1
|
|
.global ftl_test_block
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_test_block, %function
|
|
ftl_test_block:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r5, #0
|
|
ldr r3, .L2866
|
|
mov r10, r0
|
|
mov r8, r5
|
|
ldr r2, [r3]
|
|
str r3, [sp, #12]
|
|
str r5, [r2]
|
|
ldr r2, .L2866+4
|
|
str r5, [r2]
|
|
.L2840:
|
|
uxth r3, r5
|
|
str r3, [sp, #8]
|
|
ldr r3, .L2866+8
|
|
ldr r2, [sp, #8]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r2
|
|
bls .L2850
|
|
mov fp, #0
|
|
b .L2851
|
|
.L2849:
|
|
ldr r3, .L2866+12
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L2841
|
|
mov r1, r10
|
|
ldr r0, .L2866+16
|
|
bl printf
|
|
.L2841:
|
|
ldr r3, .L2866+20
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #8]
|
|
smulbb r4, r4, r10
|
|
add r4, r4, r6
|
|
uxth r4, r4
|
|
cbnz r3, .L2842
|
|
ldr r3, .L2866+24
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, #47] @ zero_extendqisi2
|
|
cmp r3, r4
|
|
bcs .L2843
|
|
.L2842:
|
|
uxtb r6, r5
|
|
mov r1, r4
|
|
mov r0, r6
|
|
bl flash_check_bad_block
|
|
cbnz r0, .L2843
|
|
ldr r3, .L2866+28
|
|
mov r1, r8
|
|
mov r0, r6
|
|
ldrh r7, [r3]
|
|
muls r7, r4, r7
|
|
mov r2, r7
|
|
bl flash_erase_block_en
|
|
cbz r0, .L2844
|
|
ldr r3, .L2866+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
bne .L2865
|
|
ldr r3, .L2866+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L2865
|
|
mov r2, r7
|
|
movs r1, #1
|
|
mov r0, r6
|
|
bl flash_erase_block_en
|
|
cbnz r0, .L2865
|
|
.L2848:
|
|
ldr r3, .L2866+32
|
|
mov r8, #1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
add r7, r7, r3, lsl #24
|
|
.L2847:
|
|
movs r3, #1
|
|
ldr r2, [sp, #12]
|
|
str r3, [sp, #4]
|
|
mov r1, r7
|
|
ldr r3, .L2866+40
|
|
mov r0, r6
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, .L2866+4
|
|
ldr r2, [r2]
|
|
bl flash_prog_page_en
|
|
cbz r0, .L2843
|
|
.L2865:
|
|
mov r1, r4
|
|
mov r0, r6
|
|
bl flash_mask_bad_block
|
|
.L2843:
|
|
add fp, fp, #1
|
|
.L2851:
|
|
ldr r3, .L2866+20
|
|
uxth r6, fp
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r6
|
|
bhi .L2849
|
|
adds r5, r5, #1
|
|
b .L2840
|
|
.L2844:
|
|
cmp r8, #0
|
|
beq .L2847
|
|
b .L2848
|
|
.L2850:
|
|
cmp r8, #0
|
|
beq .L2852
|
|
ldr r3, .L2866+44
|
|
movs r2, #2
|
|
ldr r3, [r3]
|
|
add r10, r3, r10, lsl #2
|
|
ldrb r3, [r10, #2] @ zero_extendqisi2
|
|
bfi r3, r2, #3, #2
|
|
strb r3, [r10, #2]
|
|
.L2852:
|
|
movs r0, #0
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2867:
|
|
.align 2
|
|
.L2866:
|
|
.word .LANCHOR187
|
|
.word .LANCHOR188
|
|
.word .LANCHOR112
|
|
.word .LANCHOR19
|
|
.word .LC150
|
|
.word .LANCHOR75
|
|
.word .LANCHOR6
|
|
.word .LANCHOR111
|
|
.word .LANCHOR78
|
|
.word .LANCHOR0
|
|
.word .LANCHOR131
|
|
.word .LANCHOR9
|
|
.size ftl_test_block, .-ftl_test_block
|
|
.section .text.ftl_prog_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_prog_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_prog_page, %function
|
|
ftl_prog_page:
|
|
@ args = 4, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
mov r7, r3
|
|
mov r5, r1
|
|
mov r6, r2
|
|
bl sblk_wait_write_queue_completed
|
|
movs 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
|
|
adds r3, r0, #1
|
|
mov r4, r0
|
|
bne .L2868
|
|
ldr r1, .L2870
|
|
movw r2, #2678
|
|
ldr r0, .L2870+4
|
|
bl printf
|
|
mov r1, r5
|
|
ldr r0, .L2870+8
|
|
bl printf
|
|
.L2868:
|
|
mov r0, r4
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L2871:
|
|
.align 2
|
|
.L2870:
|
|
.word .LANCHOR189
|
|
.word .LC0
|
|
.word .LC149
|
|
.size ftl_prog_page, .-ftl_prog_page
|
|
.section .text.ftl_info_flush,"ax",%progbits
|
|
.align 1
|
|
.global ftl_info_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_info_flush, %function
|
|
ftl_info_flush:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #32
|
|
ldr r5, .L2906
|
|
movs r1, #0
|
|
mov r8, #0
|
|
str r0, [sp, #16]
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
ldr r0, .L2906+4
|
|
ldr r4, .L2906+8
|
|
lsls r2, r2, #1
|
|
bl ftl_memset
|
|
ldr r2, .L2906+12
|
|
ldr r3, [r2]
|
|
str r2, [sp, #20]
|
|
ldrh r1, [r3, #74]
|
|
cmp r1, #1
|
|
itt hi
|
|
movhi r2, #0
|
|
strhhi r2, [r3, #150] @ movhi
|
|
.L2883:
|
|
ldr r3, .L2906+8
|
|
ldr r6, .L2906+16
|
|
ldr r1, [sp, #16]
|
|
ldrb fp, [r3] @ zero_extendqisi2
|
|
ldrh r3, [r6]
|
|
ldr r7, .L2906+20
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2906+8
|
|
ldr r0, [r7]
|
|
ldrh r10, [r3, #2]
|
|
ldr r3, [sp, #20]
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #4]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #4]
|
|
ldr r2, .L2906+4
|
|
str r3, [sp, #28]
|
|
stm r2, {r1, r3}
|
|
ldrb r1, [r5] @ zero_extendqisi2
|
|
str r2, [sp, #24]
|
|
lsls r1, r1, #9
|
|
bl js_hash
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
str r0, [r2, #8]
|
|
ldr r2, .L2906+24
|
|
ldr r2, [r2]
|
|
tst r2, #4096
|
|
beq .L2874
|
|
mov r2, r10
|
|
mov r1, fp
|
|
ldr r0, .L2906+28
|
|
bl printf
|
|
.L2874:
|
|
ldr r3, .L2906+32
|
|
ldrh r0, [r4, #2]
|
|
ldrh r3, [r3]
|
|
cmp r3, r0
|
|
bhi .L2875
|
|
ldr r10, .L2906+48
|
|
ldr fp, .L2906+44
|
|
.L2879:
|
|
ldrb r3, [r4, #1] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #7
|
|
strb r3, [r4, #1]
|
|
bls .L2876
|
|
ldr r2, [r10]
|
|
movs r3, #0
|
|
adds r2, r2, #40
|
|
.L2892:
|
|
ldrb r1, [r2], #1 @ zero_extendqisi2
|
|
uxth r8, r3
|
|
cmp r1, #128
|
|
bls .L2877
|
|
cmp r1, #255
|
|
beq .L2878
|
|
movw r2, #846
|
|
mov r1, fp
|
|
ldr r0, .L2906+36
|
|
bl printf
|
|
.L2877:
|
|
strb r8, [r4, #1]
|
|
mov r8, #1
|
|
.L2876:
|
|
ldr r3, [r10]
|
|
ldrb r2, [r4, #1] @ zero_extendqisi2
|
|
add r3, r3, r2
|
|
ldrb r3, [r3, #40] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
strb r3, [r4]
|
|
beq .L2879
|
|
ldrh r10, [r6]
|
|
movs r0, #0
|
|
mul r10, r3, r10
|
|
mov r1, r10
|
|
bl flash_erase_block
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
mov r1, r10
|
|
movs r0, #0
|
|
str r3, [sp]
|
|
ldr r2, [r7]
|
|
ldr r3, .L2906+4
|
|
bl ftl_prog_page
|
|
movs r3, #1
|
|
add r10, r10, r3
|
|
strh r3, [r4, #2] @ movhi
|
|
.L2880:
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
mov r1, r10
|
|
movs r0, #0
|
|
str r3, [sp]
|
|
ldr r2, [r7]
|
|
ldr r3, .L2906+4
|
|
bl ftl_prog_page
|
|
ldrh r3, [r4, #2]
|
|
adds r0, r0, #1
|
|
add r3, r3, #1
|
|
strh r3, [r4, #2] @ movhi
|
|
ldr r3, .L2906+40
|
|
beq .L2881
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cbz r2, .L2882
|
|
.L2881:
|
|
movs r2, #0
|
|
strb r2, [r3]
|
|
b .L2883
|
|
.L2875:
|
|
ldr r3, [sp, #12]
|
|
mla r10, fp, r3, r10
|
|
cmp r0, #0
|
|
bne .L2880
|
|
mov r1, r10
|
|
bl flash_erase_block
|
|
b .L2880
|
|
.L2882:
|
|
cmp r8, #0
|
|
bne .L2884
|
|
.L2891:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L2905
|
|
movw r2, #890
|
|
ldr r1, .L2906+44
|
|
ldr r0, .L2906+36
|
|
bl printf
|
|
.L2905:
|
|
movs r0, #0
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2884:
|
|
ldrb r5, [r4, #1] @ zero_extendqisi2
|
|
ldr r6, .L2906+48
|
|
ldr r7, .L2906+44
|
|
adds r5, r5, #1
|
|
.L2887:
|
|
cmp r5, #7
|
|
bhi .L2891
|
|
ldr r3, [r6]
|
|
add r3, r3, r5
|
|
ldrb r8, [r3, #40] @ zero_extendqisi2
|
|
uxth r3, r8
|
|
cmp r3, #128
|
|
bls .L2888
|
|
cmp r3, #255
|
|
beq .L2889
|
|
movw r2, #881
|
|
mov r1, r7
|
|
ldr r0, .L2906+36
|
|
bl printf
|
|
.L2888:
|
|
ldr r3, .L2906+16
|
|
movs r0, #0
|
|
ldrh r1, [r3]
|
|
mul r1, r8, r1
|
|
bl flash_erase_block
|
|
.L2889:
|
|
adds r5, r5, #1
|
|
uxth r5, r5
|
|
b .L2887
|
|
.L2878:
|
|
adds r3, r3, #1
|
|
cmp r3, #8
|
|
bne .L2892
|
|
mov r8, r3
|
|
b .L2877
|
|
.L2907:
|
|
.align 2
|
|
.L2906:
|
|
.word .LANCHOR131
|
|
.word .LANCHOR190
|
|
.word .LANCHOR191
|
|
.word .LANCHOR110
|
|
.word .LANCHOR111
|
|
.word .LANCHOR192
|
|
.word .LANCHOR19
|
|
.word .LC151
|
|
.word .LANCHOR94
|
|
.word .LC0
|
|
.word .LANCHOR194
|
|
.word .LANCHOR193
|
|
.word .LANCHOR6
|
|
.size ftl_info_flush, .-ftl_info_flush
|
|
.section .text.ftl_info_blk_init,"ax",%progbits
|
|
.align 1
|
|
.global ftl_info_blk_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_info_blk_init, %function
|
|
ftl_info_blk_init:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L2937
|
|
ldr r2, .L2937+4
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r4, #0
|
|
strb r4, [r3]
|
|
movs r3, #1
|
|
sub sp, sp, #24
|
|
mov r1, r4
|
|
strb r3, [r2]
|
|
ldr r7, .L2937+8
|
|
ldr r2, .L2937+12
|
|
ldr r5, .L2937+16
|
|
ldr r0, [r7]
|
|
mov fp, r7
|
|
strb r3, [r2]
|
|
mov r2, #16384
|
|
ldr r3, .L2937+20
|
|
ldr r6, .L2937+24
|
|
str r0, [r3]
|
|
ldr r3, .L2937+28
|
|
ldrh r3, [r3]
|
|
add r3, r0, r3, lsl #2
|
|
str r3, [r5]
|
|
bl ftl_memset
|
|
ldr r3, .L2937+32
|
|
mov r2, #16384
|
|
mov r1, r4
|
|
ldr r0, [r3]
|
|
bl ftl_memset
|
|
ldr r2, [r6]
|
|
ldr r3, .L2937+36
|
|
ldrb r2, [r2, #40] @ zero_extendqisi2
|
|
strb r4, [r3, #1]
|
|
strh r4, [r3, #2] @ movhi
|
|
movs r4, #7
|
|
strb r2, [r3]
|
|
str r3, [sp, #12]
|
|
.L2910:
|
|
ldr r3, [r6]
|
|
sxth r8, r4
|
|
add r3, r3, r4
|
|
ldrb r7, [r3, #40] @ zero_extendqisi2
|
|
cmp r7, #255
|
|
bne .L2909
|
|
.L2914:
|
|
adds r4, r4, #-1
|
|
bcs .L2910
|
|
mov r8, #0
|
|
.L2911:
|
|
ldr r3, .L2937+40
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #19
|
|
bpl .L2915
|
|
ldr r3, [r5]
|
|
mov r2, #4800
|
|
mov r1, r4
|
|
ldr r0, .L2937+44
|
|
ldr r3, [r3]
|
|
bl printf
|
|
.L2915:
|
|
adds r2, r4, #1
|
|
bne .L2916
|
|
mov r2, #16384
|
|
movs r1, #0
|
|
ldr r0, [fp]
|
|
bl ftl_memset
|
|
ldr r3, [r5]
|
|
ldr r2, .L2937+48
|
|
str r2, [r3]
|
|
ldr r2, .L2937+52
|
|
str r2, [r3, #12]
|
|
.L2908:
|
|
mov r0, r4
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2909:
|
|
ldr r3, .L2937+56
|
|
movs r0, #0
|
|
ldrh r3, [r3]
|
|
muls r7, r3, r7
|
|
ldr r3, .L2937+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
mov r1, r7
|
|
str r3, [sp]
|
|
ldr r3, .L2937+64
|
|
ldr r2, [fp]
|
|
bl ftl_read_page
|
|
cmp r0, #-1
|
|
mov r10, r0
|
|
bne .L2912
|
|
ldr r3, .L2937+60
|
|
adds r1, r7, #1
|
|
movs r0, #0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
ldr r3, .L2937+64
|
|
ldr r2, [fp]
|
|
bl ftl_read_page
|
|
mov r10, r0
|
|
.L2912:
|
|
ldr r3, .L2937+40
|
|
ldr r3, [r3]
|
|
lsls r0, r3, #19
|
|
bpl .L2913
|
|
ldr r3, [r5]
|
|
mov r2, r10
|
|
mov r1, r4
|
|
ldr r0, .L2937+68
|
|
ldr r3, [r3]
|
|
str r3, [sp]
|
|
movw r3, #749
|
|
bl printf
|
|
.L2913:
|
|
cmp r10, #-1
|
|
beq .L2914
|
|
ldr r3, [r5]
|
|
ldr r2, .L2937+48
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bne .L2914
|
|
mov r4, r8
|
|
b .L2911
|
|
.L2916:
|
|
ldr r3, [r6]
|
|
movs r0, #0
|
|
movs r4, #0
|
|
add r3, r3, r8
|
|
ldrb r1, [r3, #40] @ zero_extendqisi2
|
|
ldr r3, [sp, #12]
|
|
strb r1, [r3]
|
|
strb r8, [r3, #1]
|
|
movs r3, #4
|
|
str r3, [sp]
|
|
ldr r3, .L2937+64
|
|
ldr r2, [fp]
|
|
bl flash_get_last_written_page
|
|
uxth r6, r0
|
|
ldr r2, .L2937+56
|
|
mov r7, r0
|
|
adds r3, r6, #1
|
|
uxth r10, r3
|
|
ldr r3, [sp, #12]
|
|
ldrh r2, [r2]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r2, r3
|
|
str r3, [sp, #16]
|
|
.L2918:
|
|
subs r3, r6, r4
|
|
lsls r3, r3, #16
|
|
bmi .L2922
|
|
ldr r3, [sp, #16]
|
|
movs r0, #0
|
|
ldr r8, .L2937+60
|
|
adds r1, r7, r3
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
subs r1, r1, r4
|
|
str r3, [sp]
|
|
ldr r3, .L2937+64
|
|
ldr r2, [fp]
|
|
bl ftl_read_page
|
|
adds r0, r0, #1
|
|
beq .L2919
|
|
ldr r3, .L2937+16
|
|
ldr r2, .L2937+48
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bne .L2919
|
|
ldr r3, .L2937+64
|
|
ldr r3, [r3, #8]
|
|
cbnz r3, .L2920
|
|
.L2922:
|
|
ldr r3, [sp, #12]
|
|
strh r10, [r3, #2] @ movhi
|
|
bl ftl_tmp_into_update
|
|
ldr r2, [r5]
|
|
movs r0, #0
|
|
ldr r3, [r2, #64]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #64]
|
|
bl ftl_info_flush
|
|
movs r0, #0
|
|
bl ftl_info_flush
|
|
ldr r3, .L2937+40
|
|
ldr r4, [r3]
|
|
ands r4, r4, #16384
|
|
beq .L2908
|
|
ldr r3, [r5]
|
|
movs r4, #0
|
|
ldr r0, .L2937+72
|
|
ldr r1, [r3, #156]
|
|
bl printf
|
|
b .L2908
|
|
.L2920:
|
|
ldrb r1, [r8] @ zero_extendqisi2
|
|
ldr r0, [fp]
|
|
str r3, [sp, #20]
|
|
lsls r1, r1, #9
|
|
bl js_hash
|
|
ldr r3, [sp, #20]
|
|
cmp r3, r0
|
|
beq .L2922
|
|
mov r1, r3
|
|
ldr r0, .L2937+76
|
|
bl printf
|
|
.L2919:
|
|
adds r4, r4, #1
|
|
b .L2918
|
|
.L2938:
|
|
.align 2
|
|
.L2937:
|
|
.word .LANCHOR195
|
|
.word .LANCHOR194
|
|
.word .LANCHOR192
|
|
.word .LANCHOR196
|
|
.word .LANCHOR110
|
|
.word .LANCHOR9
|
|
.word .LANCHOR6
|
|
.word .LANCHOR8
|
|
.word .LANCHOR197
|
|
.word .LANCHOR191
|
|
.word .LANCHOR19
|
|
.word .LC153
|
|
.word 1229739078
|
|
.word 393252
|
|
.word .LANCHOR111
|
|
.word .LANCHOR131
|
|
.word .LANCHOR190
|
|
.word .LC152
|
|
.word .LC155
|
|
.word .LC154
|
|
.size ftl_info_blk_init, .-ftl_info_blk_init
|
|
.section .text.ftl_ext_info_flush,"ax",%progbits
|
|
.align 1
|
|
.global ftl_ext_info_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_ext_info_flush, %function
|
|
ftl_ext_info_flush:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L2955
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, #520]
|
|
cbz r2, .L2940
|
|
movs r2, #0
|
|
str r2, [r3, #520]
|
|
.L2940:
|
|
ldr r6, .L2955+4
|
|
movs r0, #0
|
|
bl ftl_total_vpn_update
|
|
mov r5, r6
|
|
.L2944:
|
|
ldr r3, [r6]
|
|
ldr r2, [r3, #56]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #56]
|
|
ldrh r2, [r3, #140]
|
|
ldr r3, .L2955+8
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcc .L2942
|
|
bl ftl_ext_alloc_new_blk
|
|
.L2942:
|
|
ldr r3, [r5]
|
|
ldrh r2, [r3, #130]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L2943
|
|
movw r2, #2211
|
|
ldr r1, .L2955+12
|
|
ldr r0, .L2955+16
|
|
bl printf
|
|
.L2943:
|
|
ldr r3, .L2955+20
|
|
ldr r2, [r5]
|
|
ldr fp, .L2955+40
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldrh r1, [r2, #130]
|
|
ldr r8, .L2955+44
|
|
rsb r4, r3, #24
|
|
ldr r3, .L2955+24
|
|
mov r0, r8
|
|
ldrh r3, [r3]
|
|
subs r3, r4, r3
|
|
movs r4, #1
|
|
asr r7, r1, r3
|
|
lsls r4, r4, r3
|
|
ldr r3, .L2955+28
|
|
subs r4, r4, #1
|
|
ands r4, r4, r1
|
|
ldrh r1, [r3]
|
|
sxth r4, r4
|
|
ldrh r3, [r2, #140]
|
|
ldrb r2, [fp] @ zero_extendqisi2
|
|
mla r4, r1, r4, r3
|
|
lsls r2, r2, #1
|
|
movs r1, #0
|
|
bl ftl_memset
|
|
movs r3, #0
|
|
ldrb fp, [fp] @ zero_extendqisi2
|
|
str r3, [r8]
|
|
ldr r3, [r5]
|
|
lsl r1, fp, #9
|
|
ldr r3, [r3, #56]
|
|
str r3, [r8, #4]
|
|
ldr r3, .L2955+32
|
|
ldr r10, [r3]
|
|
mov r0, r10
|
|
bl js_hash
|
|
mov r3, r8
|
|
str r0, [r8, #8]
|
|
mov r2, r10
|
|
str fp, [sp]
|
|
mov r1, r4
|
|
uxtb r0, r7
|
|
bl ftl_prog_page
|
|
ldr r2, [r5]
|
|
ldrh r3, [r2, #140]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #1
|
|
strh r3, [r2, #140] @ movhi
|
|
beq .L2944
|
|
adds r0, r0, #1
|
|
ldr r3, .L2955+36
|
|
beq .L2945
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
cbz r0, .L2946
|
|
.L2945:
|
|
.L2941:
|
|
movs r2, #0
|
|
strb r2, [r3]
|
|
b .L2944
|
|
.L2946:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2956:
|
|
.align 2
|
|
.L2955:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR110
|
|
.word .LANCHOR94
|
|
.word .LANCHOR198
|
|
.word .LC0
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR111
|
|
.word .LANCHOR197
|
|
.word .LANCHOR196
|
|
.word .LANCHOR131
|
|
.word .LANCHOR190
|
|
.size ftl_ext_info_flush, .-ftl_ext_info_flush
|
|
.section .text.ftl_ext_info_init,"ax",%progbits
|
|
.align 1
|
|
.global ftl_ext_info_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_ext_info_init, %function
|
|
ftl_ext_info_init:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r2, #0
|
|
ldr r3, .L2979
|
|
ldr r5, .L2979+4
|
|
strh r2, [r3] @ movhi
|
|
ldr r1, .L2979+8
|
|
ldr r3, [r5]
|
|
ldrh r4, [r1]
|
|
ldrh r2, [r3, #130]
|
|
ldr r3, .L2979+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r4
|
|
movs r4, #1
|
|
lsls r4, r4, r3
|
|
asr r7, r2, r3
|
|
subs r4, r4, #1
|
|
uxtb r8, r7
|
|
ands r4, r4, r2
|
|
ldr r2, .L2979+16
|
|
movs r3, #4
|
|
mov r1, r4
|
|
str r3, [sp]
|
|
mov r0, r8
|
|
ldr r3, .L2979+20
|
|
ldr r2, [r2]
|
|
bl flash_get_last_written_page
|
|
ldr r3, .L2979+24
|
|
mov r6, r0
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #19
|
|
bpl .L2958
|
|
ldr r3, [r5]
|
|
uxth r7, r7
|
|
mov r2, #2256
|
|
ldr r1, .L2979+28
|
|
ldrh r3, [r3, #130]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r0
|
|
ldr r0, .L2979+32
|
|
bl printf
|
|
.L2958:
|
|
movs r7, #0
|
|
.L2959:
|
|
uxth r10, r6
|
|
sub r3, r10, r7
|
|
lsls r0, r3, #16
|
|
bmi .L2964
|
|
ldr r3, .L2979+36
|
|
subs r1, r6, r7
|
|
ldr fp, .L2979+60
|
|
ldr r2, .L2979+16
|
|
ldrh r0, [r3]
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
mla r1, r4, r0, r1
|
|
str r3, [sp]
|
|
ldr r3, .L2979+20
|
|
ldr r2, [r2]
|
|
mov r0, r8
|
|
bl flash_read_page_en
|
|
adds r3, r0, #1
|
|
beq .L2960
|
|
cmp r0, #512
|
|
beq .L2960
|
|
ldr r3, .L2979+40
|
|
ldr r2, .L2979+44
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bne .L2960
|
|
ldr r3, .L2979+20
|
|
ldr r3, [r3, #8]
|
|
cmp r3, #0
|
|
bne .L2961
|
|
.L2964:
|
|
bl zftl_sblk_list_init
|
|
ldr r2, [r5]
|
|
ldrh r3, [r2, #140]
|
|
cmp r3, r6
|
|
bgt .L2963
|
|
add r3, r10, #1
|
|
strh r3, [r2, #140] @ movhi
|
|
bl ftl_ext_info_flush
|
|
.L2963:
|
|
ldr r3, .L2979+40
|
|
movw r1, #65535
|
|
movs r2, #0
|
|
ldr r3, [r3]
|
|
strh r1, [r3, #584] @ movhi
|
|
strh r1, [r3, #586] @ movhi
|
|
strh r1, [r3, #588] @ movhi
|
|
strh r1, [r3, #590] @ movhi
|
|
str r1, [r3, #560]
|
|
mov r1, #-1
|
|
str r1, [r3, #564]
|
|
ldr r1, .L2979+24
|
|
str r2, [r3, #520]
|
|
str r2, [r3, #604]
|
|
ldr r1, [r1]
|
|
str r2, [r3, #608]
|
|
lsls r1, r1, #19
|
|
bpl .L2966
|
|
str r2, [sp]
|
|
ldr r1, .L2979+28
|
|
ldr r3, [r3, #12]
|
|
ldr r0, .L2979+48
|
|
bl printf
|
|
.L2966:
|
|
ldr r3, .L2979+52
|
|
movw r2, #65535
|
|
movs r0, #0
|
|
strh r2, [r3] @ movhi
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L2961:
|
|
ldrb r1, [fp] @ zero_extendqisi2
|
|
str r3, [sp, #12]
|
|
ldr r3, .L2979+16
|
|
lsls r1, r1, #9
|
|
ldr r0, [r3]
|
|
bl js_hash
|
|
ldr r3, [sp, #12]
|
|
cmp r3, r0
|
|
beq .L2964
|
|
mov r1, r3
|
|
ldr r0, .L2979+56
|
|
bl printf
|
|
.L2960:
|
|
adds r7, r7, #1
|
|
b .L2959
|
|
.L2980:
|
|
.align 2
|
|
.L2979:
|
|
.word .LANCHOR121
|
|
.word .LANCHOR110
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR197
|
|
.word .LANCHOR190
|
|
.word .LANCHOR19
|
|
.word .LANCHOR199
|
|
.word .LC156
|
|
.word .LANCHOR111
|
|
.word .LANCHOR12
|
|
.word 1162432070
|
|
.word .LC158
|
|
.word .LANCHOR72
|
|
.word .LC157
|
|
.word .LANCHOR131
|
|
.size ftl_ext_info_init, .-ftl_ext_info_init
|
|
.section .text.ftl_prog_ppa_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_prog_ppa_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_prog_ppa_page, %function
|
|
ftl_prog_ppa_page:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r4, r5, r6, r7, lr}
|
|
ldr r4, .L2982
|
|
ldrb r7, [r4] @ zero_extendqisi2
|
|
movs r4, #1
|
|
str r3, [sp]
|
|
mov r3, r2
|
|
mov r2, r1
|
|
rsb r5, r7, #24
|
|
lsl r6, r4, r5
|
|
lsls r4, r4, r7
|
|
lsr r5, r0, r5
|
|
subs r4, r4, #1
|
|
subs r6, r6, #1
|
|
ands r4, r4, r5
|
|
and r1, r6, r0
|
|
uxtb r0, r4
|
|
bl ftl_prog_page
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, pc}
|
|
.L2983:
|
|
.align 2
|
|
.L2982:
|
|
.word .LANCHOR31
|
|
.size ftl_prog_ppa_page, .-ftl_prog_ppa_page
|
|
.section .text.ftl_write_last_log_page,"ax",%progbits
|
|
.align 1
|
|
.global ftl_write_last_log_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_write_last_log_page, %function
|
|
ftl_write_last_log_page:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r4, r0
|
|
ldrh r3, [r0, #6]
|
|
cmp r3, #1
|
|
bne .L2987
|
|
ldr r3, .L2989
|
|
ldrh r7, [r0, #12]
|
|
ldr r5, [r3]
|
|
bl ftl_get_new_free_page
|
|
adds r3, r0, #1
|
|
mov r6, r0
|
|
beq .L2988
|
|
ldrh r0, [r4]
|
|
add r5, r5, r7, lsl #2
|
|
ldr r4, .L2989+4
|
|
bl ftl_vpn_decrement
|
|
ldr r3, .L2989+8
|
|
mov r0, r5
|
|
ldr r2, .L2989+12
|
|
str r3, [r4]
|
|
ldr r3, .L2989+16
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
muls r1, r3, r1
|
|
lsls r1, r1, #2
|
|
bl js_hash
|
|
ldr r3, .L2989+20
|
|
movs r2, #0
|
|
str r0, [r4, #4]
|
|
mov r1, r5
|
|
str r2, [r4, #8]
|
|
mov r0, r6
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r2, [r4, #12]
|
|
str r2, [r4, #16]
|
|
cmp r3, #8
|
|
it hi
|
|
strhi r2, [r4, #20]
|
|
ldr r2, .L2989+4
|
|
bl ftl_prog_ppa_page
|
|
.L2988:
|
|
movs r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L2987:
|
|
mov r0, #-1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L2990:
|
|
.align 2
|
|
.L2989:
|
|
.word .LANCHOR117
|
|
.word .LANCHOR188
|
|
.word -178307901
|
|
.word .LANCHOR79
|
|
.word .LANCHOR94
|
|
.word .LANCHOR131
|
|
.size ftl_write_last_log_page, .-ftl_write_last_log_page
|
|
.section .text.ftl_dump_write_open_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_dump_write_open_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_dump_write_open_sblk, %function
|
|
ftl_dump_write_open_sblk:
|
|
@ args = 0, pretend = 0, frame = 64
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3030
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
sub sp, sp, #104
|
|
ldrh r3, [r3]
|
|
cmp r3, r0
|
|
bls .L2991
|
|
ldr r3, .L3030+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L2993
|
|
ldr r3, .L3030+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L2991
|
|
.L2993:
|
|
ldr r3, .L3030+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L2991
|
|
ldr r7, .L3030+16
|
|
lsls r4, r5, #2
|
|
add r1, sp, #88
|
|
strh r5, [sp, #72] @ movhi
|
|
mov r0, r5
|
|
movs r6, #0
|
|
ldr r3, [r7]
|
|
add r3, r3, r4
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #160
|
|
itet eq
|
|
ldreq r3, .L3030+20
|
|
movne fp, #1
|
|
ldrbeq fp, [r3] @ zero_extendqisi2
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr r3, .L3030+24
|
|
uxtb r0, r0
|
|
strb r6, [sp, #77]
|
|
strb r0, [sp, #81]
|
|
ldrh r3, [r3]
|
|
strh r6, [sp, #74] @ movhi
|
|
strh r6, [sp, #82] @ movhi
|
|
smulbb r0, r3, r0
|
|
ldr r3, [r7]
|
|
mov r7, r6
|
|
ldr r1, [r3, r5, lsl #2]
|
|
add r4, r4, r3
|
|
ldrb r2, [r4, #2] @ zero_extendqisi2
|
|
strh r0, [sp, #78] @ movhi
|
|
ubfx r1, r1, #11, #8
|
|
ldr r0, .L3030+28
|
|
str r1, [sp, #4]
|
|
mov r1, r5
|
|
ldrh r3, [r3, r5, lsl #2]
|
|
ubfx r3, r3, #0, #11
|
|
str r3, [sp]
|
|
ubfx r3, r2, #3, #2
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
mov r4, r0
|
|
str r6, [sp, #44]
|
|
.L2995:
|
|
ldr r3, .L3030+24
|
|
uxth r10, r6
|
|
ldrh r3, [r3]
|
|
cmp r3, r10
|
|
bls .L3004
|
|
mov r3, r10
|
|
str r10, [sp, #52]
|
|
lsls r3, r3, #1
|
|
mov r8, #0
|
|
subs r2, r3, #1
|
|
add r3, r3, r10
|
|
subs r3, r3, #1
|
|
str r2, [sp, #56]
|
|
str r3, [sp, #60]
|
|
b .L3007
|
|
.L3005:
|
|
ldr r3, [sp, #64]
|
|
add r2, sp, #104
|
|
add r3, r2, r3, lsl #1
|
|
ldrh r3, [r3, #-32]
|
|
str r3, [sp, #48]
|
|
movw r3, #65535
|
|
ldr r2, [sp, #48]
|
|
cmp r2, r3
|
|
bne .L2996
|
|
.L3003:
|
|
adds r7, r7, #1
|
|
uxth r7, r7
|
|
.L2997:
|
|
cmp fp, r7
|
|
bcs .L3005
|
|
add r8, r8, #1
|
|
.L3007:
|
|
uxth r3, r8
|
|
str r3, [sp, #44]
|
|
ldr r2, [sp, #44]
|
|
ldrb r3, [sp, #81] @ zero_extendqisi2
|
|
cmp r3, r2
|
|
bls .L3006
|
|
mov r3, r2
|
|
movs r7, #1
|
|
adds r3, r3, #8
|
|
str r3, [sp, #64]
|
|
b .L2997
|
|
.L2996:
|
|
ldr r3, .L3030+32
|
|
cmp fp, #3
|
|
ldr r2, [sp, #48]
|
|
ldrh r3, [r3]
|
|
mul r3, r2, r3
|
|
bne .L2998
|
|
ldr r2, .L3030+36
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L2999
|
|
ldr r2, [sp, #60]
|
|
.L3029:
|
|
add r3, r3, r2
|
|
ldr r2, .L3030+20
|
|
add r3, r3, r7
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
orr r3, r3, r2, lsl #24
|
|
b .L3000
|
|
.L2999:
|
|
uxtah r3, r3, r6
|
|
orr r3, r3, r7, lsl #24
|
|
.L3000:
|
|
str r3, [r4, #24]
|
|
movs r1, #1
|
|
mov r0, r4
|
|
str r3, [sp, #68]
|
|
bl sblk_read_page
|
|
ldr r3, [r4, #36]
|
|
cmp r3, #512
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #68]
|
|
beq .L3002
|
|
ldr r2, [sp, #40]
|
|
adds r2, r2, #1
|
|
bne .L3003
|
|
.L3002:
|
|
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, .L3030+40
|
|
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, #48]
|
|
str r2, [sp, #4]
|
|
ldr r2, [sp, #40]
|
|
str r2, [sp]
|
|
ldr r2, [sp, #52]
|
|
bl printf
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #512
|
|
bne .L3003
|
|
.L3004:
|
|
uxth r2, r6
|
|
ldr r6, .L3030+44
|
|
ldr r3, [sp, #44]
|
|
mov r1, r5
|
|
str r7, [sp]
|
|
ldr r0, .L3030+48
|
|
bl printf
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
movs r1, #0
|
|
ldr r0, [r4, #4]
|
|
ldr fp, .L3030+64
|
|
lsls r2, r2, #9
|
|
bl ftl_memset
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
movs r1, #0
|
|
ldr r0, [r4, #12]
|
|
lsls r2, r2, #1
|
|
bl ftl_memset
|
|
.L3008:
|
|
ldr r3, .L3030+24
|
|
ldrh r3, [r3]
|
|
cmp r3, r10
|
|
bls .L3014
|
|
lsl r3, r10, #1
|
|
movs r7, #0
|
|
str r3, [sp, #40]
|
|
b .L3015
|
|
.L2998:
|
|
cmp fp, #2
|
|
bne .L3001
|
|
ldr r2, [sp, #56]
|
|
b .L3029
|
|
.L3001:
|
|
uxtah r3, r3, r6
|
|
b .L3000
|
|
.L3006:
|
|
adds r6, r6, #1
|
|
b .L2995
|
|
.L3013:
|
|
ldr r3, [fp]
|
|
uxth r8, r7
|
|
tst r3, #4096
|
|
beq .L3009
|
|
mov r2, r8
|
|
mov r1, r10
|
|
ldr r0, .L3030+52
|
|
bl printf
|
|
.L3009:
|
|
ldr r2, .L3030+4
|
|
ldr r0, .L3030+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3010
|
|
add r3, sp, #104
|
|
add r3, r3, r8, lsl #1
|
|
ldrh r2, [r3, #-16]
|
|
ldrh r3, [r0]
|
|
mov r0, r4
|
|
muls r3, r2, r3
|
|
orr r3, r3, r10
|
|
str r3, [r4, #24]
|
|
bl sblk_3d_tlc_dump_prog
|
|
.L3011:
|
|
adds r7, r7, #1
|
|
.L3015:
|
|
ldrb r2, [sp, #81] @ zero_extendqisi2
|
|
uxth r3, r7
|
|
cmp r2, r3
|
|
bhi .L3013
|
|
add r3, r10, #1
|
|
uxth r10, r3
|
|
b .L3008
|
|
.L3010:
|
|
ldr r1, .L3030+20
|
|
add r3, sp, #104
|
|
add r3, r3, r8, lsl #1
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cmp r1, #2
|
|
bne .L3012
|
|
ldrh r2, [r3, #-16]
|
|
ldrh r3, [r0]
|
|
mov r0, r4
|
|
muls r3, r2, r3
|
|
ldr r2, [sp, #40]
|
|
orrs r3, r3, r2
|
|
orr r3, r3, #33554432
|
|
str r3, [r4, #24]
|
|
bl sblk_mlc_dump_prog
|
|
b .L3011
|
|
.L3012:
|
|
ldrh r3, [r3, #-16]
|
|
ldrh r1, [r0]
|
|
movs r0, #1
|
|
muls r1, r3, r1
|
|
ldr r3, .L3030+56
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
orr r1, r1, r10
|
|
str r1, [r4, #24]
|
|
rsb lr, r3, #24
|
|
str r2, [sp, #4]
|
|
lsls r0, r0, r3
|
|
subs r3, r0, #1
|
|
lsr r0, r1, lr
|
|
lsl ip, r3, lr
|
|
ands r0, r0, r3
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
str r3, [sp]
|
|
ldr r3, [r4, #12]
|
|
ldr r2, [r4, #4]
|
|
bl flash_prog_page_en
|
|
b .L3011
|
|
.L3014:
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
mov r1, r5
|
|
ldr r0, .L3030+60
|
|
bl printf
|
|
.L2991:
|
|
add sp, sp, #104
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3031:
|
|
.align 2
|
|
.L3030:
|
|
.word .LANCHOR8
|
|
.word .LANCHOR83
|
|
.word .LANCHOR80
|
|
.word .LANCHOR35
|
|
.word .LANCHOR9
|
|
.word .LANCHOR78
|
|
.word .LANCHOR94
|
|
.word .LC159
|
|
.word .LANCHOR111
|
|
.word .LANCHOR36
|
|
.word .LC160
|
|
.word .LANCHOR131
|
|
.word .LC161
|
|
.word .LC162
|
|
.word .LANCHOR31
|
|
.word .LC163
|
|
.word .LANCHOR19
|
|
.size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
|
|
.section .text.gc_ink_check_sblk,"ax",%progbits
|
|
.align 1
|
|
.global gc_ink_check_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_ink_check_sblk, %function
|
|
gc_ink_check_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r4, .L3059
|
|
ldrh r3, [r4, #2106]
|
|
ldr r6, [r4, #2176]
|
|
cmp r3, #3
|
|
bhi .L3033
|
|
tbb [pc, r3]
|
|
.L3035:
|
|
.byte (.L3034-.L3035)/2
|
|
.byte (.L3036-.L3035)/2
|
|
.byte (.L3037-.L3035)/2
|
|
.byte (.L3038-.L3035)/2
|
|
.p2align 1
|
|
.L3034:
|
|
ldr r5, .L3059+4
|
|
ldrh r3, [r5]
|
|
cmp r3, #7
|
|
bls .L3032
|
|
ldr r3, .L3059+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
bls .L3032
|
|
movs r1, #0
|
|
ldr r0, .L3059+12
|
|
movw r8, #65535
|
|
bl _list_get_gc_head_node
|
|
cmp r0, r8
|
|
beq .L3032
|
|
ldr r7, .L3059+16
|
|
ldr r3, [r7]
|
|
ldrh r3, [r3, r0, lsl #2]
|
|
ubfx r3, r3, #0, #11
|
|
cmp r3, #2
|
|
bgt .L3032
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
str r0, [r4, #2176]
|
|
cbz r0, .L3032
|
|
mov r2, r5
|
|
movs r1, #0
|
|
ldr r0, .L3059+12
|
|
bl _list_pop_index_node
|
|
uxth r6, r0
|
|
mov r5, r0
|
|
cmp r6, r8
|
|
bne .L3042
|
|
ldr r0, [r4, #2176]
|
|
bl zbuf_free
|
|
movs r3, #0
|
|
str r3, [r4, #2176]
|
|
.L3032:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3042:
|
|
ldr r1, .L3059+20
|
|
mov r0, r6
|
|
bl ftl_get_blk_list_in_sblk
|
|
movs r3, #0
|
|
uxth r5, r5
|
|
strh r3, [r4, #2144] @ movhi
|
|
movs r3, #1
|
|
strh r3, [r4, #2106] @ movhi
|
|
ldr r3, [r7]
|
|
strb r0, [r4, #2151]
|
|
strh r6, [r4, #2142] @ movhi
|
|
ldrh r3, [r3, r5, lsl #2]
|
|
tst r3, #1
|
|
ldr r3, .L3059+24
|
|
ite ne
|
|
movne r1, #85
|
|
moveq r1, #170
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [r4, #2176]
|
|
lsls r2, r2, #9
|
|
ldr r0, [r3, #4]
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b ftl_memset
|
|
.L3036:
|
|
movs r1, #0
|
|
ldrh r0, [r4, #2142]
|
|
bl ftl_erase_sblk
|
|
movs r3, #2
|
|
.L3057:
|
|
strh r3, [r4, #2106] @ movhi
|
|
b .L3032
|
|
.L3037:
|
|
ldr r8, .L3059+40
|
|
movs r7, #0
|
|
ldr r10, .L3059+44
|
|
bl sblk_wait_write_queue_completed
|
|
.L3044:
|
|
ldrb r2, [r4, #2151] @ zero_extendqisi2
|
|
uxth r3, r7
|
|
cmp r2, r3
|
|
bhi .L3046
|
|
ldrh r3, [r4, #2144]
|
|
ldr r2, .L3059+28
|
|
adds r3, r3, #1
|
|
ldrh r2, [r2]
|
|
uxth r3, r3
|
|
strh r3, [r4, #2144] @ movhi
|
|
cmp r2, r3
|
|
bhi .L3032
|
|
movs r3, #0
|
|
strh r3, [r4, #2144] @ movhi
|
|
movs r3, #3
|
|
b .L3057
|
|
.L3046:
|
|
uxth r3, r7
|
|
movw r2, #65535
|
|
add r3, r4, r3, lsl #1
|
|
ldrh r3, [r3, #2158]
|
|
cmp r3, r2
|
|
beq .L3045
|
|
ldrh r2, [r8]
|
|
mov lr, #0
|
|
ldrh r1, [r4, #2144]
|
|
ldr r0, .L3059+32
|
|
mla r1, r3, r2, r1
|
|
ldr r2, [r6, #4]
|
|
ldr r3, [r6, #12]
|
|
stm r2, {r1, r10}
|
|
str lr, [r3]
|
|
ldrb r5, [r0] @ zero_extendqisi2
|
|
movs r0, #1
|
|
str lr, [sp, #4]
|
|
rsb fp, r5, #24
|
|
lsls r0, r0, r5
|
|
subs r5, r0, #1
|
|
lsr r0, r1, fp
|
|
lsl ip, r5, fp
|
|
ands r0, r0, r5
|
|
ldr r5, .L3059+24
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
ldrb r5, [r5] @ zero_extendqisi2
|
|
str r5, [sp]
|
|
bl flash_prog_page_en
|
|
.L3045:
|
|
adds r7, r7, #1
|
|
b .L3044
|
|
.L3038:
|
|
ldr r10, .L3059+40
|
|
mov fp, #0
|
|
movw r8, #65535
|
|
bl sblk_wait_write_queue_completed
|
|
.L3047:
|
|
ldrb r2, [r4, #2151] @ zero_extendqisi2
|
|
uxth r3, fp
|
|
cmp r2, r3
|
|
bhi .L3051
|
|
ldrh r3, [r4, #2144]
|
|
ldr r2, .L3059+28
|
|
adds r3, r3, #1
|
|
ldrh r2, [r2]
|
|
uxth r3, r3
|
|
strh r3, [r4, #2144] @ movhi
|
|
cmp r2, r3
|
|
bhi .L3032
|
|
movs r5, #0
|
|
ldr r0, [r4, #2176]
|
|
strh r5, [r4, #2106] @ movhi
|
|
bl zbuf_free
|
|
ldrh r3, [r4, #2108]
|
|
str r5, [r4, #2176]
|
|
cmp r3, #15
|
|
bhi .L3052
|
|
adds r2, r3, #1
|
|
add r3, r4, r3, lsl #1
|
|
strh r2, [r4, #2108] @ movhi
|
|
ldrh r2, [r4, #2142]
|
|
strh r2, [r3, #2110] @ movhi
|
|
.L3053:
|
|
ldrh r2, [r4, #2108]
|
|
ldrh r1, [r4, #2142]
|
|
ldr r0, .L3059+36
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
b printf
|
|
.L3051:
|
|
uxth r5, fp
|
|
adds r5, r5, #8
|
|
add r5, r4, r5, lsl #1
|
|
ldrh r3, [r5, #2142]
|
|
cmp r3, r8
|
|
beq .L3049
|
|
ldrh r2, [r4, #2144]
|
|
movs r1, #1
|
|
ldrh r7, [r10]
|
|
mov r0, r6
|
|
mla r7, r3, r7, r2
|
|
str r7, [r6, #24]
|
|
bl sblk_read_page
|
|
ldr r3, [r6, #4]
|
|
ldr r3, [r3]
|
|
cmp r7, r3
|
|
beq .L3049
|
|
mov r0, r7
|
|
bl ftl_mask_bad_block
|
|
strh r8, [r5, #2142] @ movhi
|
|
.L3049:
|
|
add fp, fp, #1
|
|
b .L3047
|
|
.L3052:
|
|
ldrh r0, [r4, #2142]
|
|
bl zftl_insert_free_list
|
|
b .L3053
|
|
.L3033:
|
|
movs r3, #0
|
|
b .L3057
|
|
.L3060:
|
|
.align 2
|
|
.L3059:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR107
|
|
.word .LANCHOR57
|
|
.word .LANCHOR108
|
|
.word .LANCHOR9
|
|
.word .LANCHOR70+2158
|
|
.word .LANCHOR131
|
|
.word .LANCHOR94
|
|
.word .LANCHOR31
|
|
.word .LC164
|
|
.word .LANCHOR111
|
|
.word 1437269760
|
|
.size gc_ink_check_sblk, .-gc_ink_check_sblk
|
|
.section .text.ftl_ink_check_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_ink_check_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_ink_check_sblk, %function
|
|
ftl_ink_check_sblk:
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r1, r0
|
|
ldr r5, .L3079
|
|
sub sp, sp, #48
|
|
mov r4, r0
|
|
ldr r2, [r5]
|
|
ldr r3, [r2, r0, lsl #2]
|
|
ldrh r2, [r2, r0, lsl #2]
|
|
ldr r0, .L3079+4
|
|
ubfx r3, r3, #11, #8
|
|
ubfx r2, r2, #0, #11
|
|
bl printf
|
|
movw r3, #65535
|
|
str r5, [sp, #8]
|
|
cmp r4, r3
|
|
beq .L3061
|
|
ldr r3, .L3079+8
|
|
ldrh r3, [r3]
|
|
cmp r3, r4
|
|
bls .L3061
|
|
movs r1, #0
|
|
mov r0, r4
|
|
bl ftl_erase_sblk
|
|
add r1, sp, #32
|
|
mov r0, r4
|
|
strh r4, [sp, #16] @ movhi
|
|
movs r6, #0
|
|
bl ftl_get_blk_list_in_sblk
|
|
strb r0, [sp, #25]
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
ldr r3, [sp, #8]
|
|
mov r5, r0
|
|
ldr r7, .L3079+12
|
|
ldr r0, [r0, #4]
|
|
ldr r3, [r3]
|
|
ldrb r2, [r7] @ zero_extendqisi2
|
|
ldrh r3, [r3, r4, lsl #2]
|
|
lsls r2, r2, #9
|
|
ubfx r3, r3, #0, #11
|
|
cmp r3, #1
|
|
ite le
|
|
movle r1, #85
|
|
movgt r1, #170
|
|
bl ftl_memset
|
|
bl sblk_wait_write_queue_completed
|
|
.L3065:
|
|
ldr r3, .L3079+16
|
|
uxth r2, r6
|
|
mov r8, #0
|
|
ldrh r1, [r3]
|
|
str r3, [sp, #12]
|
|
cmp r1, r2
|
|
bhi .L3069
|
|
.L3070:
|
|
ldr r3, [sp, #12]
|
|
ldrh r1, [r3]
|
|
uxth r3, r8
|
|
cmp r1, r3
|
|
bls .L3075
|
|
mov fp, #0
|
|
movw r10, #65535
|
|
b .L3076
|
|
.L3067:
|
|
uxth r3, r8
|
|
add r2, sp, #48
|
|
add r3, r2, r3, lsl #1
|
|
movw r2, #65535
|
|
ldrh r3, [r3, #-16]
|
|
cmp r3, r2
|
|
beq .L3066
|
|
ldr r2, .L3079+20
|
|
uxth r1, r6
|
|
ldr r0, .L3079+24
|
|
mov r10, #0
|
|
ldrh r2, [r2]
|
|
mla r1, r3, r2, r1
|
|
ldr r2, [r5, #4]
|
|
ldr r3, .L3079+28
|
|
str r3, [r2, #4]
|
|
ldr r3, [r5, #12]
|
|
str r1, [r2]
|
|
str r10, [r3]
|
|
ldrb ip, [r0] @ zero_extendqisi2
|
|
movs r0, #1
|
|
str r10, [sp, #4]
|
|
rsb fp, ip, #24
|
|
lsl r0, r0, ip
|
|
add ip, r0, #-1
|
|
lsr r0, r1, fp
|
|
lsl lr, ip, fp
|
|
and r0, r0, ip
|
|
ldrb ip, [r7] @ zero_extendqisi2
|
|
bic r1, r1, lr
|
|
uxtb r0, r0
|
|
str ip, [sp]
|
|
bl flash_prog_page_en
|
|
.L3066:
|
|
add r8, r8, #1
|
|
.L3069:
|
|
ldrb r2, [sp, #25] @ zero_extendqisi2
|
|
uxth r3, r8
|
|
cmp r2, r3
|
|
bhi .L3067
|
|
adds r6, r6, #1
|
|
b .L3065
|
|
.L3074:
|
|
uxth r6, fp
|
|
add r3, sp, #48
|
|
adds r6, r6, #8
|
|
add r6, r3, r6, lsl #1
|
|
ldrh r1, [r6, #-32]
|
|
cmp r1, r10
|
|
beq .L3072
|
|
ldr r3, .L3079+20
|
|
uxth r0, r8
|
|
ldrh r7, [r3]
|
|
mla r7, r1, r7, r0
|
|
movs r1, #1
|
|
mov r0, r5
|
|
str r7, [r5, #24]
|
|
bl sblk_read_page
|
|
ldr r1, [r5, #4]
|
|
ldr r1, [r1]
|
|
cmp r7, r1
|
|
beq .L3072
|
|
mov r0, r7
|
|
bl ftl_mask_bad_block
|
|
strh r10, [r6, #-32] @ movhi
|
|
.L3072:
|
|
add fp, fp, #1
|
|
.L3076:
|
|
ldrb r0, [sp, #25] @ zero_extendqisi2
|
|
uxth r1, fp
|
|
cmp r0, r1
|
|
bhi .L3074
|
|
add r8, r8, #1
|
|
b .L3070
|
|
.L3075:
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
ldr r3, [sp, #8]
|
|
mov r1, r4
|
|
ldr r0, .L3079+32
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, r4, lsl #2]
|
|
ldrh r2, [r2, r4, lsl #2]
|
|
ubfx r3, r3, #11, #8
|
|
ubfx r2, r2, #0, #11
|
|
bl printf
|
|
.L3061:
|
|
add sp, sp, #48
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3080:
|
|
.align 2
|
|
.L3079:
|
|
.word .LANCHOR9
|
|
.word .LC165
|
|
.word .LANCHOR8
|
|
.word .LANCHOR131
|
|
.word .LANCHOR94
|
|
.word .LANCHOR111
|
|
.word .LANCHOR31
|
|
.word 1437269760
|
|
.word .LC166
|
|
.size ftl_ink_check_sblk, .-ftl_ink_check_sblk
|
|
.section .text.ftl_alloc_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_alloc_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_alloc_sblk, %function
|
|
ftl_alloc_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
uxth r5, r0
|
|
cmp r0, #5
|
|
mov r10, r0
|
|
mov r1, r5
|
|
mov r0, #0
|
|
ite ne
|
|
movne r7, #0
|
|
moveq r7, #2
|
|
bl zftl_get_free_sblk
|
|
movw r3, #65535
|
|
mov r4, r0
|
|
cmp r0, r3
|
|
beq .L3083
|
|
ldr r6, .L3094
|
|
lsl r8, r0, #2
|
|
ldr r5, [r6]
|
|
add r5, r5, r8
|
|
ldrb r3, [r5, #2] @ zero_extendqisi2
|
|
tst r3, #224
|
|
beq .L3084
|
|
mov r2, #1012
|
|
ldr r1, .L3094+4
|
|
ldr r0, .L3094+8
|
|
bl printf
|
|
.L3084:
|
|
ldrb r3, [r5, #2] @ zero_extendqisi2
|
|
bfi r3, r10, #5, #3
|
|
uxtb r3, r3
|
|
ubfx r2, r3, #3, #2
|
|
orrs r2, r2, r7
|
|
bfi r3, r2, #3, #2
|
|
strb r3, [r5, #2]
|
|
uxtb r3, r3
|
|
and r2, r3, #24
|
|
cmp r2, #24
|
|
bne .L3085
|
|
cbnz r7, .L3085
|
|
movs r2, #1
|
|
bfi r3, r2, #3, #2
|
|
strb r3, [r5, #2]
|
|
.L3085:
|
|
ldr r3, .L3094+12
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #150]
|
|
cbz r3, .L3086
|
|
ldr r3, [r6]
|
|
ldrh r3, [r3, r8]
|
|
ubfx r3, r3, #0, #11
|
|
cbnz r3, .L3086
|
|
cbnz r7, .L3086
|
|
mov r0, r4
|
|
bl ftl_ink_check_sblk
|
|
.L3086:
|
|
mov r0, r4
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L3083:
|
|
bl print_ftl_debug_info
|
|
mov r2, r10
|
|
mov r1, r4
|
|
ldr r0, .L3094+16
|
|
bl printf
|
|
mov r1, r5
|
|
movs r0, #0
|
|
bl zftl_get_free_sblk
|
|
mov r2, r10
|
|
mov r1, r0
|
|
mov r4, r0
|
|
ldr r0, .L3094+16
|
|
bl printf
|
|
bl dump_all_list_info
|
|
movw r2, #1031
|
|
ldr r1, .L3094+4
|
|
ldr r0, .L3094+8
|
|
bl printf
|
|
b .L3086
|
|
.L3095:
|
|
.align 2
|
|
.L3094:
|
|
.word .LANCHOR9
|
|
.word .LANCHOR200
|
|
.word .LC0
|
|
.word .LANCHOR110
|
|
.word .LC167
|
|
.size ftl_alloc_sblk, .-ftl_alloc_sblk
|
|
.section .text.ftl_open_sblk_init,"ax",%progbits
|
|
.align 1
|
|
.global ftl_open_sblk_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_open_sblk_init, %function
|
|
ftl_open_sblk_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, r8, r10, lr}
|
|
mov r4, r0
|
|
ldr r8, .L3103+12
|
|
mov r6, r1
|
|
movs r7, #0
|
|
.L3097:
|
|
movw r10, #65535
|
|
.L3098:
|
|
mov r0, r6
|
|
bl ftl_alloc_sblk
|
|
cmp r0, r10
|
|
mov r5, r0
|
|
beq .L3098
|
|
movs r1, #0
|
|
ldr r10, .L3103+16
|
|
bl ftl_erase_sblk
|
|
add r1, r4, #16
|
|
mov r0, r5
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr r1, .L3103
|
|
cmp r6, #2
|
|
ldrh r2, [r8]
|
|
uxtb r0, r0
|
|
strh r5, [r4] @ movhi
|
|
ite eq
|
|
moveq r3, #0
|
|
ldrbne r3, [r1] @ zero_extendqisi2
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
strb r0, [r4, #9]
|
|
smulbb r0, r0, r2
|
|
strh r7, [r4, #2] @ movhi
|
|
it ne
|
|
smulbbne r3, r3, r2
|
|
strb r7, [r4, #5]
|
|
mul r2, r2, r1
|
|
ldr r1, .L3103+4
|
|
strh r0, [r4, #6] @ movhi
|
|
it ne
|
|
uxthne r3, r3
|
|
strh r7, [r4, #10] @ movhi
|
|
ldr r0, [r1]
|
|
movs r1, #255
|
|
strh r3, [r4, #12] @ movhi
|
|
lsls r2, r2, #2
|
|
strb r6, [r4, #4]
|
|
add r0, r0, r3, lsl #2
|
|
bl ftl_memset
|
|
ldr r3, [r10]
|
|
ldrh r2, [r4, #6]
|
|
strh r2, [r3, r5, lsl #1] @ movhi
|
|
ldrb r3, [r4, #9] @ zero_extendqisi2
|
|
cbnz r3, .L3096
|
|
mov r1, r5
|
|
ldr r0, .L3103+8
|
|
bl printf
|
|
ldr r3, [r10]
|
|
movw r2, #65535
|
|
strh r2, [r3, r5, lsl #1] @ movhi
|
|
movs r3, #7
|
|
strb r3, [r4, #4]
|
|
b .L3097
|
|
.L3096:
|
|
pop {r3, r4, r5, r6, r7, r8, r10, pc}
|
|
.L3104:
|
|
.align 2
|
|
.L3103:
|
|
.word .LANCHOR79
|
|
.word .LANCHOR117
|
|
.word .LC168
|
|
.word .LANCHOR94
|
|
.word .LANCHOR11
|
|
.size ftl_open_sblk_init, .-ftl_open_sblk_init
|
|
.section .text.ftl_low_format_data_init,"ax",%progbits
|
|
.align 1
|
|
.global ftl_low_format_data_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_low_format_data_init, %function
|
|
ftl_low_format_data_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r2, #16384
|
|
ldr r3, .L3107
|
|
movs r1, #0
|
|
ldr r5, .L3107+4
|
|
ldr r0, [r3]
|
|
bl ftl_memset
|
|
bl zftl_sblk_list_init
|
|
movs r0, #1
|
|
bl ftl_alloc_sblk
|
|
movs r1, #0
|
|
mov r6, r0
|
|
bl ftl_erase_sblk
|
|
ldr r1, [r5]
|
|
mov r0, r6
|
|
add r1, r1, #672
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr r3, [r5]
|
|
movs r2, #0
|
|
ldrh r7, [r3, #672]
|
|
strh r2, [r3, #690] @ movhi
|
|
movw r2, #65533
|
|
subs r3, r7, #1
|
|
uxth r3, r3
|
|
cmp r3, r2
|
|
bls .L3106
|
|
movw r2, #2484
|
|
ldr r1, .L3107+8
|
|
ldr r0, .L3107+12
|
|
bl printf
|
|
.L3106:
|
|
ldr r0, [r5]
|
|
movs r4, #0
|
|
mov r2, #256
|
|
movs r1, #255
|
|
strh r4, [r0, #696] @ movhi
|
|
add r0, r0, #416
|
|
bl ftl_memset
|
|
ldr r0, [r5]
|
|
mov r1, r4
|
|
mov r2, #4096
|
|
add r0, r0, #704
|
|
bl ftl_memset
|
|
ldr r3, .L3107+16
|
|
ldr r1, .L3107+20
|
|
ldr r2, [r5]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldrh r1, [r1]
|
|
strh r7, [r2, #692] @ movhi
|
|
rsb r3, r3, #24
|
|
strh r6, [r2, #416] @ movhi
|
|
subs r3, r3, r1
|
|
asr r3, r7, r3
|
|
ldr r7, .L3107+24
|
|
strh r3, [r2, #694] @ movhi
|
|
movs r3, #1
|
|
strh r3, [r2, #688] @ movhi
|
|
ldr r3, .L3107+28
|
|
ldrh r3, [r3]
|
|
strh r3, [r2, #698] @ movhi
|
|
ldr r2, .L3107+32
|
|
ldr r3, [r7]
|
|
str r2, [r3]
|
|
bl ftl_alloc_sys_blk
|
|
mov r1, r4
|
|
mov r6, r0
|
|
bl ftl_erase_phy_blk
|
|
ldr r3, [r5]
|
|
movs r1, #2
|
|
ldr r0, [r7]
|
|
strh r6, [r3, #130] @ movhi
|
|
movw r6, #65535
|
|
strh r4, [r3, #140] @ movhi
|
|
adds r0, r0, #16
|
|
strh r6, [r0, #568] @ movhi
|
|
strh r6, [r0, #570] @ movhi
|
|
strh r6, [r0, #572] @ movhi
|
|
strh r6, [r0, #574] @ movhi
|
|
bl ftl_open_sblk_init
|
|
ldr r0, [r7]
|
|
movs r1, #3
|
|
adds r0, r0, #48
|
|
bl ftl_open_sblk_init
|
|
ldr r3, [r5]
|
|
movs r1, #255
|
|
ldr r0, [r7]
|
|
ldrh r2, [r3, #134]
|
|
adds r0, r0, #136
|
|
strh r4, [r0, #-12] @ movhi
|
|
strh r4, [r0, #-16] @ movhi
|
|
strh r2, [r0, #-10] @ movhi
|
|
mov r2, #-1
|
|
strh r4, [r0, #-14] @ movhi
|
|
strh r6, [r0, #-56] @ movhi
|
|
strh r6, [r0, #-6] @ movhi
|
|
str r2, [r0, #408]
|
|
strh r2, [r3, #126] @ movhi
|
|
mov r2, #256
|
|
str r4, [r0, #384]
|
|
str r4, [r0, #388]
|
|
str r4, [r0, #392]
|
|
bl ftl_memset
|
|
ldr r0, [r7]
|
|
movs r2, #128
|
|
movs r1, #255
|
|
add r0, r0, #392
|
|
bl ftl_memset
|
|
bl ftl_ext_info_flush
|
|
mov r0, r4
|
|
bl ftl_info_flush
|
|
bl ftl_info_blk_init
|
|
mov r0, r4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L3108:
|
|
.align 2
|
|
.L3107:
|
|
.word .LANCHOR197
|
|
.word .LANCHOR110
|
|
.word .LANCHOR201
|
|
.word .LC0
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR12
|
|
.word .LANCHOR202
|
|
.word 1162432070
|
|
.size ftl_low_format_data_init, .-ftl_low_format_data_init
|
|
.section .text.ftl_low_format,"ax",%progbits
|
|
.align 1
|
|
.global ftl_low_format
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_low_format, %function
|
|
ftl_low_format:
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r4, #8
|
|
ldr r6, .L3146
|
|
sub sp, sp, #40
|
|
movs r1, #0
|
|
ldr r0, .L3146+4
|
|
bl printf
|
|
.L3112:
|
|
ldr r3, [r6]
|
|
add r3, r3, r4
|
|
ldrb r5, [r3, #32] @ zero_extendqisi2
|
|
cmp r5, #128
|
|
ble .L3110
|
|
cmp r5, #255
|
|
beq .L3111
|
|
movw r2, #2539
|
|
ldr r1, .L3146+8
|
|
ldr r0, .L3146+12
|
|
bl printf
|
|
.L3110:
|
|
ldr r3, .L3146+16
|
|
movs r0, #0
|
|
ldrh r1, [r3]
|
|
muls r1, r5, r1
|
|
bl flash_erase_block
|
|
.L3111:
|
|
adds r4, r4, #1
|
|
cmp r4, #16
|
|
bne .L3112
|
|
bl sblk_init
|
|
bl ftl_info_blk_init
|
|
ldr r3, .L3146+20
|
|
mov r2, #16384
|
|
movs r1, #0
|
|
ldr r0, [r3]
|
|
bl ftl_memset
|
|
ldr r2, .L3146+24
|
|
movs r0, #1
|
|
ldr r1, .L3146+28
|
|
ldr r3, [r2]
|
|
ldrh r1, [r1]
|
|
str r2, [sp, #24]
|
|
add r1, r3, r1, lsl #2
|
|
.L3113:
|
|
cmp r3, r1
|
|
bne .L3114
|
|
ldr r7, .L3146+32
|
|
movs r4, #0
|
|
ldr r2, .L3146+36
|
|
ldr r3, [r7]
|
|
str r2, [r3]
|
|
strh r4, [r3, #148] @ movhi
|
|
.L3115:
|
|
ldr r3, .L3146+28
|
|
uxth r0, r4
|
|
ldrh r3, [r3]
|
|
cmp r3, r0
|
|
bhi .L3123
|
|
ldr r3, .L3146+40
|
|
mov fp, #15
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
ldr r3, .L3146
|
|
mov r1, r5
|
|
ldr r3, [r3]
|
|
ldrb r0, [r3, #47] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L3146+24
|
|
uxtb r0, r0
|
|
cmp r5, #1
|
|
uxth lr, r5
|
|
add r4, r0, #1
|
|
ldr r10, [r3]
|
|
it eq
|
|
moveq r8, #1
|
|
ldr r3, .L3146+32
|
|
it ne
|
|
movne r8, #3
|
|
movs r2, #0
|
|
ldr r6, [r3]
|
|
ldrh r3, [r6, #148]
|
|
.L3126:
|
|
add r1, r10, r2, lsl #2
|
|
cmp r5, #4
|
|
add r2, r2, #1
|
|
ldrb ip, [r1, #2] @ zero_extendqisi2
|
|
ite ne
|
|
strbne r8, [r1, #3]
|
|
strbeq fp, [r1, #3]
|
|
orr ip, ip, #224
|
|
strb ip, [r1, #2]
|
|
uxth r1, r2
|
|
cmp r4, r1
|
|
bhi .L3126
|
|
smulbb r0, r0, lr
|
|
add r3, r3, lr
|
|
mov r1, r5
|
|
uxtah r0, r0, r3
|
|
strh r0, [r6, #148] @ movhi
|
|
movs r0, #16
|
|
bl __aeabi_idiv
|
|
ldr r3, .L3146+44
|
|
add r0, r0, r4
|
|
uxth r0, r0
|
|
ldr r3, [r3]
|
|
strh r0, [r6, #134] @ movhi
|
|
lsls r3, r3, #19
|
|
bpl .L3127
|
|
str r0, [sp]
|
|
mov r3, r4
|
|
movs r2, #128
|
|
movw r1, #2598
|
|
ldr r0, .L3146+48
|
|
bl printf
|
|
.L3127:
|
|
ldr r0, [r7]
|
|
movs r2, #128
|
|
movs r1, #255
|
|
movs r5, #0
|
|
adds r0, r0, #160
|
|
bl ftl_memset
|
|
ldr r3, [sp, #24]
|
|
ldr r0, .L3146+52
|
|
ldr r1, [r7]
|
|
ldr r3, [r3]
|
|
ldrh r0, [r0]
|
|
ldrh fp, [r1, #134]
|
|
str r3, [sp, #24]
|
|
ldr r3, .L3146+56
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp, #28]
|
|
ldr r3, .L3146+40
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp, #12]
|
|
ldr r3, .L3146+60
|
|
ldrh r7, [sp, #12]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
smulbb r2, r4, r7
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r0
|
|
movs r0, #1
|
|
lsl r3, r0, r3
|
|
uxth r2, r2
|
|
uxth r3, r3
|
|
str r3, [sp, #20]
|
|
.L3128:
|
|
cmp r4, fp
|
|
bcc .L3134
|
|
ldr r3, .L3146+28
|
|
movs r4, #0
|
|
strh r5, [r1, #112] @ movhi
|
|
strh r4, [r1, #114] @ movhi
|
|
ldrh r3, [r3]
|
|
strh r4, [r1, #118] @ movhi
|
|
strh fp, [r1, #132] @ movhi
|
|
sub r3, r3, fp
|
|
strh r3, [r1, #116] @ movhi
|
|
bl ftl_low_format_data_init
|
|
mov r0, r4
|
|
add sp, sp, #40
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3114:
|
|
ldrb r2, [r3, #2] @ zero_extendqisi2
|
|
adds r3, r3, #4
|
|
and r2, r2, #31
|
|
bfi r2, r0, #3, #2
|
|
strb r2, [r3, #-2]
|
|
b .L3113
|
|
.L3123:
|
|
ldr r3, .L3146+64
|
|
strh r0, [r3] @ movhi
|
|
ldr r3, .L3146+68
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L3116
|
|
bl ftl_test_block
|
|
.L3116:
|
|
ldr r3, .L3146+56
|
|
uxth r1, r4
|
|
ldr r0, .L3146+24
|
|
movs r6, #0
|
|
mov fp, r6
|
|
mov r8, r6
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldr r5, [r0]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L3146+40
|
|
add r5, r5, r1, lsl #2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
uxth r2, r3
|
|
str r2, [sp, #20]
|
|
mul r2, r3, r1
|
|
ldr r1, .L3146+32
|
|
ldr r1, [r1]
|
|
str r1, [sp, #12]
|
|
.L3117:
|
|
ldr r0, [sp, #16]
|
|
uxth r1, fp
|
|
cmp r0, r1
|
|
bhi .L3135
|
|
cmp r8, #0
|
|
bne .L3122
|
|
ldrb r3, [r5, #2] @ zero_extendqisi2
|
|
orr r3, r3, #224
|
|
strb r3, [r5, #2]
|
|
.L3122:
|
|
adds r4, r4, #1
|
|
b .L3115
|
|
.L3120:
|
|
add r1, r10, r2
|
|
ldr r0, [sp, #28]
|
|
str r3, [sp, #36]
|
|
str r2, [sp, #32]
|
|
bl flash_check_bad_block
|
|
ldr r2, [sp, #32]
|
|
ldr r3, [sp, #36]
|
|
cbz r0, .L3118
|
|
ldrb r0, [r5, #3] @ zero_extendqisi2
|
|
movs r1, #1
|
|
lsl r1, r1, r10
|
|
orrs r1, r1, r0
|
|
ldr r0, [sp, #12]
|
|
strb r1, [r5, #3]
|
|
ldr r1, [sp, #12]
|
|
ldrh r1, [r1, #148]
|
|
adds r1, r1, #1
|
|
strh r1, [r0, #148] @ movhi
|
|
.L3119:
|
|
add r10, r10, #1
|
|
.L3121:
|
|
sub r1, r10, r6
|
|
ldr r0, [sp, #20]
|
|
uxth r1, r1
|
|
cmp r0, r1
|
|
bhi .L3120
|
|
add fp, fp, #1
|
|
add r6, r6, r3
|
|
subs r2, r2, r3
|
|
b .L3117
|
|
.L3118:
|
|
add r8, r8, #1
|
|
uxth r8, r8
|
|
b .L3119
|
|
.L3135:
|
|
uxtb r1, fp
|
|
mov r10, r6
|
|
str r1, [sp, #28]
|
|
b .L3121
|
|
.L3134:
|
|
ldr r3, [sp, #24]
|
|
movs r0, #0
|
|
mov lr, r0
|
|
mov ip, r0
|
|
add r8, r3, r4, lsl #2
|
|
ldrb r3, [r8, #2] @ zero_extendqisi2
|
|
orr r3, r3, #224
|
|
strb r3, [r8, #2]
|
|
.L3129:
|
|
ldr r6, [sp, #28]
|
|
uxth r3, ip
|
|
cmp r3, r6
|
|
bcc .L3137
|
|
adds r4, r4, #1
|
|
add r2, r2, r7
|
|
uxth r4, r4
|
|
uxth r2, r2
|
|
b .L3128
|
|
.L3132:
|
|
ldrb r10, [r8, #3] @ zero_extendqisi2
|
|
add r3, lr, r6
|
|
asr r10, r10, r3
|
|
tst r10, #1
|
|
bne .L3130
|
|
ldr r3, [sp, #12]
|
|
add r10, r5, #80
|
|
adds r5, r5, #1
|
|
uxth r5, r5
|
|
cmp r3, #1
|
|
itett hi
|
|
ldrhi r3, [sp, #16]
|
|
movls r3, r2
|
|
andhi r3, r3, #1
|
|
addhi r3, r3, r2
|
|
it hi
|
|
uxthhi r3, r3
|
|
add r3, r3, r0
|
|
strh r3, [r1, r10, lsl #1] @ movhi
|
|
.L3130:
|
|
adds r6, r6, #1
|
|
.L3133:
|
|
uxth r3, r6
|
|
cmp r3, r7
|
|
str r3, [sp, #16]
|
|
bcc .L3132
|
|
ldr r3, [sp, #12]
|
|
add ip, ip, #1
|
|
add lr, lr, r3
|
|
ldr r3, [sp, #20]
|
|
add r0, r0, r3
|
|
uxth r0, r0
|
|
b .L3129
|
|
.L3137:
|
|
movs r6, #0
|
|
b .L3133
|
|
.L3147:
|
|
.align 2
|
|
.L3146:
|
|
.word .LANCHOR6
|
|
.word .LC169
|
|
.word .LANCHOR203
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.word .LANCHOR192
|
|
.word .LANCHOR9
|
|
.word .LANCHOR8
|
|
.word .LANCHOR110
|
|
.word 1229739078
|
|
.word .LANCHOR75
|
|
.word .LANCHOR19
|
|
.word .LC170
|
|
.word .LANCHOR74
|
|
.word .LANCHOR112
|
|
.word .LANCHOR31
|
|
.word .LANCHOR68
|
|
.word .LANCHOR81
|
|
.size ftl_low_format, .-ftl_low_format
|
|
.section .text.ftl_re_low_format,"ax",%progbits
|
|
.align 1
|
|
.global ftl_re_low_format
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_re_low_format, %function
|
|
ftl_re_low_format:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r1, #1
|
|
ldr r0, .L3154
|
|
bl printf
|
|
bl sblk_init
|
|
bl ftl_info_blk_init
|
|
bl ftl_ext_info_init
|
|
ldr r2, .L3154+4
|
|
ldr r3, .L3154+8
|
|
ldrh r7, [r2]
|
|
ldr r3, [r3]
|
|
ldr r2, .L3154+12
|
|
ldrh r1, [r3, #134]
|
|
ldr r0, [r2]
|
|
movs r2, #0
|
|
mov r5, r2
|
|
mov r6, r2
|
|
add r0, r0, r1, lsl #2
|
|
.L3149:
|
|
cmp r1, r7
|
|
bcc .L3153
|
|
movs r4, #0
|
|
strh r6, [r3, #114] @ movhi
|
|
strh r5, [r3, #118] @ movhi
|
|
strh r2, [r3, #116] @ movhi
|
|
strh r4, [r3, #122] @ movhi
|
|
strh r4, [r3, #120] @ movhi
|
|
strh r4, [r3, #124] @ movhi
|
|
bl ftl_low_format_data_init
|
|
mov r0, r4
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L3153:
|
|
ldrb r4, [r0, #2] @ zero_extendqisi2
|
|
bfc r4, #5, #3
|
|
strb r4, [r0, #2]
|
|
ands r4, r4, #24
|
|
bne .L3150
|
|
adds r6, r6, #1
|
|
uxth r6, r6
|
|
.L3151:
|
|
adds r1, r1, #1
|
|
uxth r1, r1
|
|
adds r0, r0, #4
|
|
b .L3149
|
|
.L3150:
|
|
cmp r4, #16
|
|
itete eq
|
|
addeq r5, r5, #1
|
|
addne r2, r2, #1
|
|
uxtheq r5, r5
|
|
uxthne r2, r2
|
|
b .L3151
|
|
.L3155:
|
|
.align 2
|
|
.L3154:
|
|
.word .LC171
|
|
.word .LANCHOR8
|
|
.word .LANCHOR110
|
|
.word .LANCHOR9
|
|
.size ftl_re_low_format, .-ftl_re_low_format
|
|
.section .text.pm_alloc_new_blk,"ax",%progbits
|
|
.align 1
|
|
.global pm_alloc_new_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_alloc_new_blk, %function
|
|
pm_alloc_new_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, lr}
|
|
ldr r5, .L3174
|
|
ldr r1, .L3174+4
|
|
ldr r2, [r5]
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
ldrh r3, [r2, #690]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r1, r3
|
|
strh r3, [r2, #690] @ movhi
|
|
bls .L3157
|
|
add r3, r3, #336
|
|
ldrh r2, [r2, r3, lsl #1]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L3158
|
|
.L3157:
|
|
ldr r7, .L3174+8
|
|
ldr r4, .L3174+12
|
|
.L3172:
|
|
movw r8, #65535
|
|
.L3159:
|
|
movs r0, #1
|
|
bl ftl_alloc_sblk
|
|
cmp r0, r8
|
|
mov r6, r0
|
|
beq .L3159
|
|
movs r1, #0
|
|
bl ftl_erase_sblk
|
|
ldr r1, [r5]
|
|
mov r0, r6
|
|
add r1, r1, #672
|
|
bl ftl_get_blk_list_in_sblk
|
|
uxth r0, r0
|
|
cbnz r0, .L3160
|
|
mov r1, r6
|
|
mov r0, r7
|
|
bl printf
|
|
ldr r3, [r4]
|
|
add r6, r3, r6, lsl #2
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
orr r3, r3, #224
|
|
strb r3, [r6, #2]
|
|
b .L3172
|
|
.L3160:
|
|
ldr r3, [r5]
|
|
movs r1, #1
|
|
ldr r2, .L3174+16
|
|
movs r4, #0
|
|
strh r4, [r3, #690] @ movhi
|
|
add r3, r3, #416
|
|
str r1, [r2]
|
|
movw r1, #65535
|
|
.L3162:
|
|
ldrh r0, [r3], #2
|
|
uxth r2, r4
|
|
cmp r0, r1
|
|
beq .L3161
|
|
adds r4, r4, #1
|
|
cmp r4, #128
|
|
bne .L3162
|
|
mov r2, #264
|
|
ldr r1, .L3174+20
|
|
ldr r0, .L3174+24
|
|
bl printf
|
|
mov r2, r4
|
|
.L3161:
|
|
ldr r3, [r5]
|
|
adds r2, r2, #208
|
|
strh r6, [r3, r2, lsl #1] @ movhi
|
|
ldrh r2, [r3, #688]
|
|
adds r2, r2, #1
|
|
strh r2, [r3, #688] @ movhi
|
|
.L3158:
|
|
ldr r2, [r5]
|
|
ldrh r3, [r2, #690]
|
|
add r3, r3, #336
|
|
ldrh r4, [r2, r3, lsl #1]
|
|
movw r2, #65533
|
|
subs r3, r4, #1
|
|
uxth r3, r3
|
|
cmp r3, r2
|
|
bls .L3164
|
|
mov r2, #270
|
|
ldr r1, .L3174+20
|
|
ldr r0, .L3174+24
|
|
bl printf
|
|
.L3164:
|
|
ldr r1, [r5]
|
|
movs r3, #0
|
|
strh r3, [r1, #696] @ movhi
|
|
ldr r3, .L3174+28
|
|
strh r4, [r1, #692] @ movhi
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, .L3174+32
|
|
rsb r2, r2, #24
|
|
ldrh r3, [r3]
|
|
subs r2, r2, r3
|
|
asr r3, r4, r2
|
|
strh r3, [r1, #694] @ movhi
|
|
ldr r1, .L3174+36
|
|
ldr r1, [r1]
|
|
lsls r1, r1, #19
|
|
bpl .L3168
|
|
movs r1, #1
|
|
uxth r3, r3
|
|
lsl r2, r1, r2
|
|
ldr r0, .L3174+40
|
|
str r3, [sp]
|
|
mov r1, r4
|
|
mov r3, r4
|
|
subs r2, r2, #1
|
|
bl printf
|
|
.L3168:
|
|
movs r0, #0
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, pc}
|
|
.L3175:
|
|
.align 2
|
|
.L3174:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR79
|
|
.word .LC168
|
|
.word .LANCHOR9
|
|
.word .LANCHOR204
|
|
.word .LANCHOR205
|
|
.word .LC0
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR19
|
|
.word .LC172
|
|
.size pm_alloc_new_blk, .-pm_alloc_new_blk
|
|
.section .text.pm_write_page,"ax",%progbits
|
|
.align 1
|
|
.global pm_write_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_write_page, %function
|
|
pm_write_page:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r0
|
|
ldr r8, .L3189+28
|
|
mov r7, r1
|
|
mov r6, r8
|
|
.L3177:
|
|
ldr r3, [r8]
|
|
ldr r2, [r3, #48]
|
|
ldrh r1, [r3, #696]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #48]
|
|
ldr r2, .L3189
|
|
ldrh r2, [r2]
|
|
cmp r1, r2
|
|
bcs .L3178
|
|
ldrh r2, [r3, #692]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L3179
|
|
.L3178:
|
|
bl pm_alloc_new_blk
|
|
movs r0, #0
|
|
bl ftl_info_flush
|
|
.L3179:
|
|
ldr r3, [r6]
|
|
ldrh r2, [r3, #692]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L3180
|
|
movw r2, #303
|
|
ldr r1, .L3189+4
|
|
ldr r0, .L3189+8
|
|
bl printf
|
|
.L3180:
|
|
ldr r3, [r6]
|
|
movs r1, #0
|
|
ldr r2, .L3189+12
|
|
ldr r10, .L3189+32
|
|
ldrh r5, [r3, #692]
|
|
ldrh r2, [r2]
|
|
ldrh r3, [r3, #696]
|
|
ldr r0, [r10]
|
|
mla r5, r2, r5, r3
|
|
movs r2, #64
|
|
bl ftl_memset
|
|
ldr r10, [r10]
|
|
mov r0, r7
|
|
ldr r3, [r6]
|
|
str r4, [r10]
|
|
ldr r2, [r3, #48]
|
|
str r3, [sp, #12]
|
|
str r2, [r10, #4]
|
|
ldr r2, .L3189+16
|
|
ldrb fp, [r2] @ zero_extendqisi2
|
|
lsl r1, fp, #9
|
|
bl js_hash
|
|
ldr r3, [sp, #12]
|
|
mov r2, r7
|
|
str r0, [r10, #8]
|
|
mov r1, r5
|
|
ldrb r0, [r3, #694] @ zero_extendqisi2
|
|
mov r3, r10
|
|
str fp, [sp]
|
|
bl ftl_prog_page
|
|
ldr r2, [r6]
|
|
ldrh r3, [r2, #696]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #1
|
|
strh r3, [r2, #696] @ movhi
|
|
ldr r3, .L3189+20
|
|
beq .L3181
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cbz r1, .L3182
|
|
.L3181:
|
|
movs r2, #0
|
|
strb r2, [r3]
|
|
b .L3177
|
|
.L3182:
|
|
adds r0, r0, #1
|
|
bne .L3184
|
|
mov r1, r5
|
|
ldr r0, .L3189+24
|
|
bl printf
|
|
b .L3177
|
|
.L3184:
|
|
ldrh r3, [r2, #698]
|
|
movs r0, #0
|
|
cmp r4, r3
|
|
itt cc
|
|
addcc r4, r4, #176
|
|
strcc r5, [r2, r4, lsl #2]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3190:
|
|
.align 2
|
|
.L3189:
|
|
.word .LANCHOR94
|
|
.word .LANCHOR206
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.word .LANCHOR131
|
|
.word .LANCHOR208
|
|
.word .LC173
|
|
.word .LANCHOR110
|
|
.word .LANCHOR207
|
|
.size pm_write_page, .-pm_write_page
|
|
.section .text.flash_info_flush,"ax",%progbits
|
|
.align 1
|
|
.global flash_info_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_info_flush, %function
|
|
flash_info_flush:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r3, .L3203
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L3192
|
|
ldr r2, .L3203+4
|
|
movw r1, #365
|
|
ldr r0, .L3203+8
|
|
bl printf
|
|
.L3192:
|
|
ldr r5, .L3203+12
|
|
movs r2, #64
|
|
ldr r6, .L3203+16
|
|
movs r1, #0
|
|
movs r7, #0
|
|
ldr r0, [r5]
|
|
bl ftl_memset
|
|
movs r3, #16
|
|
movs r2, #4
|
|
ldr r1, [r6]
|
|
ldr r0, .L3203+20
|
|
bl rknand_print_hex
|
|
ldr r4, [r6]
|
|
ldr r1, [r4, #8]
|
|
add r0, r4, #16
|
|
bl js_hash
|
|
str r5, [sp, #8]
|
|
ldr r5, .L3203+24
|
|
str r0, [r4, #12]
|
|
mov r8, r5
|
|
.L3193:
|
|
ldr fp, .L3203+44
|
|
ldrb r10, [r5] @ zero_extendqisi2
|
|
ldrh r4, [r5, #2]
|
|
ldrh r3, [fp]
|
|
mov r1, r10
|
|
ldr r0, .L3203+28
|
|
mov r2, r4
|
|
str r3, [sp, #12]
|
|
bl printf
|
|
ldr r2, .L3203+32
|
|
ldrh r0, [r5, #2]
|
|
ldr r3, [sp, #12]
|
|
ldrh r2, [r2]
|
|
subs r2, r2, #1
|
|
cmp r0, r2
|
|
blt .L3194
|
|
ldr r4, [r6]
|
|
mov r10, #0
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
strh r10, [r5, #2] @ movhi
|
|
ldr r3, [r4, #4]
|
|
mov r0, r4
|
|
ldr r1, [r4, #8]
|
|
adds r3, r3, #1
|
|
str r3, [r4, #4]
|
|
ldrb r3, [r5, #1] @ zero_extendqisi2
|
|
strb r2, [r5, #1]
|
|
ldrh r2, [r4, #16]
|
|
strb r3, [r5]
|
|
str r3, [sp, #12]
|
|
adds r2, r2, #1
|
|
strh r2, [r0, #16]! @ movhi
|
|
bl js_hash
|
|
ldr r3, [sp, #12]
|
|
str r0, [r4, #12]
|
|
mov r0, r10
|
|
ldrh r4, [fp]
|
|
muls r4, r3, r4
|
|
mov r1, r4
|
|
.L3202:
|
|
bl flash_erase_block
|
|
.L3195:
|
|
ldr r2, [r6]
|
|
mov r10, #1
|
|
ldr r3, [sp, #8]
|
|
movs r0, #0
|
|
ldr r1, [r2, #4]
|
|
ldr r3, [r3]
|
|
str r1, [r3]
|
|
ldr r1, .L3203+36
|
|
str r1, [r3, #4]
|
|
movs r1, #4
|
|
stm sp, {r1, r10}
|
|
mov r1, r4
|
|
bl flash_prog_page_en
|
|
ldrh r3, [r8, #2]
|
|
adds r0, r0, #1
|
|
add r3, r3, r10
|
|
strh r3, [r8, #2] @ movhi
|
|
bne .L3196
|
|
mov r1, r4
|
|
ldr r0, .L3203+40
|
|
bl printf
|
|
b .L3193
|
|
.L3198:
|
|
mov r7, r10
|
|
b .L3193
|
|
.L3194:
|
|
mla r4, r10, r3, r4
|
|
cmp r0, #0
|
|
bne .L3195
|
|
mov r1, r4
|
|
b .L3202
|
|
.L3196:
|
|
cmp r7, #0
|
|
beq .L3198
|
|
movs r0, #0
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3204:
|
|
.align 2
|
|
.L3203:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR209
|
|
.word .LC94
|
|
.word .LANCHOR210
|
|
.word .LANCHOR6
|
|
.word .LC174
|
|
.word .LANCHOR211
|
|
.word .LC175
|
|
.word .LANCHOR144
|
|
.word 1398362953
|
|
.word .LC176
|
|
.word .LANCHOR2
|
|
.size flash_info_flush, .-flash_info_flush
|
|
.section .text.flash_info_blk_init,"ax",%progbits
|
|
.align 1
|
|
.global flash_info_blk_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flash_info_blk_init, %function
|
|
flash_info_blk_init:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r3, .L3236
|
|
ldr r4, .L3236+4
|
|
ldr r3, [r3]
|
|
tst r3, #4096
|
|
beq .L3206
|
|
ldr r3, [r4]
|
|
movs r1, #50
|
|
ldr r2, .L3236+8
|
|
ldr r0, .L3236+12
|
|
str r3, [sp]
|
|
mov r3, #2048
|
|
bl printf
|
|
.L3206:
|
|
ldr r7, .L3236+16
|
|
mov r8, #4
|
|
.L3210:
|
|
movs r6, #0
|
|
.L3209:
|
|
ldr r10, .L3236+32
|
|
mov fp, #4
|
|
ldr r5, .L3236+20
|
|
movs r0, #0
|
|
ldr r2, [r4]
|
|
ldrh r1, [r10]
|
|
ldr r3, [r5]
|
|
str fp, [sp]
|
|
mla r1, r8, r1, r6
|
|
bl flash_read_page_en
|
|
adds r0, r0, #1
|
|
beq .L3207
|
|
ldr r2, [r4]
|
|
ldr r3, [r2]
|
|
cmp r3, r7
|
|
beq .L3208
|
|
.L3207:
|
|
adds r6, r6, #1
|
|
cmp r6, #4
|
|
bne .L3209
|
|
add r8, r8, #1
|
|
cmp r8, #16
|
|
bne .L3210
|
|
.L3235:
|
|
mov r0, #-1
|
|
.L3205:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3218:
|
|
ldr r3, [r4]
|
|
ldr r2, [r3]
|
|
cmp r2, r7
|
|
bne .L3219
|
|
ldr r8, [r3, #4]
|
|
.L3212:
|
|
ldrh r0, [r10]
|
|
movs r3, #4
|
|
ldrb r1, [r6, #1] @ zero_extendqisi2
|
|
ldr r2, [r4]
|
|
str r3, [sp]
|
|
ldr r3, [r5]
|
|
muls r1, r0, r1
|
|
movs r0, #0
|
|
bl flash_read_page_en
|
|
adds r0, r0, #1
|
|
beq .L3213
|
|
ldr r3, [r4]
|
|
ldr r2, [r3]
|
|
cmp r2, r7
|
|
bne .L3213
|
|
ldr r2, [r3, #4]
|
|
cmp r8, r2
|
|
itttt cc
|
|
ldrbcc r2, [r3, #37] @ zero_extendqisi2
|
|
ldrbcc r3, [r3, #36] @ zero_extendqisi2
|
|
strbcc r2, [r6]
|
|
strbcc r3, [r6, #1]
|
|
.L3213:
|
|
mov r8, #4
|
|
ldrb r1, [r6] @ zero_extendqisi2
|
|
ldr r3, [r5]
|
|
movs r0, #0
|
|
str r8, [sp]
|
|
ldr r2, [r4]
|
|
bl flash_get_last_written_page
|
|
uxth fp, r0
|
|
ldrh r10, [r10]
|
|
add r3, fp, #1
|
|
strh r3, [r6, #2] @ movhi
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
movs r6, #0
|
|
mla r10, r10, r3, r0
|
|
.L3214:
|
|
sub r0, fp, r6
|
|
sxth r3, r0
|
|
cmp r3, #0
|
|
bge .L3217
|
|
adds r2, r3, #1
|
|
bne .L3216
|
|
ldr r2, [r4]
|
|
ldr r0, .L3236+24
|
|
str r3, [sp, #12]
|
|
ldr r1, [r2]
|
|
bl printf
|
|
b .L3235
|
|
.L3217:
|
|
str r8, [sp]
|
|
sub r1, r10, r6
|
|
ldr r3, [r5]
|
|
movs r0, #0
|
|
ldr r2, [r4]
|
|
bl flash_read_page_en
|
|
adds r0, r0, #1
|
|
beq .L3215
|
|
ldr r3, [r4]
|
|
ldr r3, [r3]
|
|
cmp r3, r7
|
|
beq .L3216
|
|
.L3215:
|
|
adds r6, r6, #1
|
|
b .L3214
|
|
.L3216:
|
|
cmp r6, #1
|
|
bls .L3220
|
|
bl flash_info_flush
|
|
.L3220:
|
|
movs r0, #0
|
|
b .L3205
|
|
.L3208:
|
|
ldrb r1, [r2, #36] @ zero_extendqisi2
|
|
ldrh r0, [r10]
|
|
ldrb r3, [r2, #37] @ zero_extendqisi2
|
|
ldr r6, .L3236+28
|
|
strb r1, [r6]
|
|
muls r1, r0, r1
|
|
strb r3, [r6, #1]
|
|
movs r0, #0
|
|
str fp, [sp]
|
|
ldr r3, [r5]
|
|
bl flash_read_page_en
|
|
adds r0, r0, #1
|
|
bne .L3218
|
|
.L3219:
|
|
mov r8, #0
|
|
b .L3212
|
|
.L3237:
|
|
.align 2
|
|
.L3236:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR6
|
|
.word .LANCHOR212
|
|
.word .LC177
|
|
.word 1398362953
|
|
.word .LANCHOR210
|
|
.word .LC178
|
|
.word .LANCHOR211
|
|
.word .LANCHOR2
|
|
.size flash_info_blk_init, .-flash_info_blk_init
|
|
.section .text.nand_flash_init,"ax",%progbits
|
|
.align 1
|
|
.global nand_flash_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type nand_flash_init, %function
|
|
nand_flash_init:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3331
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r0
|
|
mov r8, r3
|
|
ldr r2, [r3]
|
|
tst r2, #4096
|
|
beq .L3239
|
|
ldr r2, .L3331+4
|
|
movw r1, #3451
|
|
ldr r0, .L3331+8
|
|
bl printf
|
|
.L3239:
|
|
ldr r3, .L3331+12
|
|
movs r6, #0
|
|
mov r0, r4
|
|
ldr r7, .L3331+16
|
|
ldr r5, .L3331+20
|
|
str r6, [r3]
|
|
bl nandc_init
|
|
ldr r3, .L3331+24
|
|
movs r2, #1
|
|
ldr r4, .L3331+28
|
|
mov r1, r6
|
|
ldr r0, .L3331+32
|
|
strb r2, [r3]
|
|
movs r3, #3
|
|
movs r2, #8
|
|
strb r3, [r7]
|
|
str r4, [r5]
|
|
bl ftl_memset
|
|
movs r2, #32
|
|
mov r1, r6
|
|
ldr r0, .L3331+36
|
|
bl ftl_memset
|
|
str r7, [sp]
|
|
ldr r7, .L3331+40
|
|
mov fp, r7
|
|
.L3245:
|
|
lsl r10, r6, #3
|
|
uxtb r0, r6
|
|
add r1, r7, r10
|
|
bl flash_read_id
|
|
cbnz r6, .L3240
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, #253
|
|
bls .L3241
|
|
.L3243:
|
|
mvn fp, #1
|
|
.L3238:
|
|
mov r0, fp
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3241:
|
|
ldrb r3, [r7, #1] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
beq .L3243
|
|
.L3240:
|
|
ldrb r3, [fp, r10] @ zero_extendqisi2
|
|
adds r6, r6, #1
|
|
cmp r3, #181
|
|
itt eq
|
|
moveq r3, #44
|
|
strbeq r3, [fp, r10]
|
|
cmp r6, #4
|
|
bne .L3245
|
|
ldr r7, .L3331+44
|
|
movs r6, #0
|
|
ldr r3, .L3331+40
|
|
.L3248:
|
|
mov r1, r3
|
|
ldrb r2, [r7, #-1] @ zero_extendqisi2
|
|
mov r0, r7
|
|
str r3, [sp, #4]
|
|
lsl r10, r6, #5
|
|
bl flash_mem_cmp8
|
|
ldr r3, [sp, #4]
|
|
cmp r0, #0
|
|
bne .L3246
|
|
ldr r6, .L3331+48
|
|
ldr r3, .L3331+52
|
|
add r6, r6, r10
|
|
ldrb r2, [r6, #22] @ zero_extendqisi2
|
|
mov r1, r3
|
|
.L3247:
|
|
lsls r7, r0, #5
|
|
ldrb r7, [r7, r3] @ zero_extendqisi2
|
|
cmp r7, r2
|
|
beq .L3249
|
|
adds r0, r0, #1
|
|
cmp r0, #4
|
|
bne .L3247
|
|
.L3249:
|
|
ldr r7, .L3331+56
|
|
add r1, r1, r0, lsl #5
|
|
movs r2, #32
|
|
ldr r0, .L3331+60
|
|
bl ftl_memcpy
|
|
movs r2, #32
|
|
mov r1, r6
|
|
ldr r0, .L3331+28
|
|
bl ftl_memcpy
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
cmp r3, #8
|
|
bhi .L3250
|
|
ldrb r3, [r4, #20] @ zero_extendqisi2
|
|
cmp r3, #60
|
|
bls .L3250
|
|
movs r3, #60
|
|
strb r3, [r4, #20]
|
|
.L3250:
|
|
ldr r3, [r8]
|
|
lsls r3, r3, #19
|
|
bpl .L3284
|
|
ldr r2, .L3331+4
|
|
movw r1, #3478
|
|
ldr r0, .L3331+8
|
|
bl printf
|
|
.L3284:
|
|
ldr r3, [r5]
|
|
mov r0, #16384
|
|
ldr r6, .L3331+64
|
|
mov r10, #0
|
|
ldrh r3, [r3, #10]
|
|
cmp r3, #1024
|
|
ittt cs
|
|
ldrcs r2, [sp]
|
|
movcs r3, #2
|
|
strbcs r3, [r2]
|
|
bl ftl_malloc
|
|
ldr r3, .L3331+68
|
|
str r0, [r3]
|
|
mov r0, #16384
|
|
bl ftl_malloc
|
|
ldr r3, .L3331+72
|
|
str r0, [r3]
|
|
mov r0, #2048
|
|
bl ftl_malloc
|
|
str r0, [r6]
|
|
movs r0, #64
|
|
bl ftl_malloc
|
|
ldr r3, .L3331+76
|
|
str r0, [r3]
|
|
movs r0, #64
|
|
bl ftl_malloc
|
|
ldr r3, .L3331+80
|
|
str r0, [r3]
|
|
movs r0, #64
|
|
bl ftl_malloc
|
|
ldr r3, .L3331+84
|
|
str r0, [r3]
|
|
ldr r3, .L3331+88
|
|
strb r10, [r3]
|
|
bl flash_die_info_init
|
|
ldrb r0, [r4, #18] @ zero_extendqisi2
|
|
bl flash_lsb_page_tbl_build
|
|
ldrb r0, [r4, #20] @ zero_extendqisi2
|
|
bl nandc_bch_sel
|
|
ldr r1, [r5]
|
|
ldr r0, .L3331+92
|
|
ldrh r3, [r1, #16]
|
|
ubfx r2, r3, #8, #3
|
|
ubfx r5, r3, #3, #1
|
|
strb r2, [r0]
|
|
ldr r2, .L3331+96
|
|
strb r5, [r2]
|
|
ubfx r5, r3, #4, #1
|
|
ldr r2, .L3331+100
|
|
strb r5, [r2]
|
|
ubfx r5, r3, #12, #1
|
|
ldr r2, .L3331+104
|
|
strb r5, [r2]
|
|
ubfx r5, r3, #13, #1
|
|
ldr r2, .L3331+108
|
|
strb r5, [r2]
|
|
ubfx r5, r3, #11, #1
|
|
ldr r2, .L3331+112
|
|
strb r5, [r2]
|
|
ldrb r2, [r1, #31] @ zero_extendqisi2
|
|
ldr r5, .L3331+116
|
|
ubfx ip, r2, #1, #1
|
|
strb ip, [r5]
|
|
ubfx ip, r2, #2, #1
|
|
ldr r5, .L3331+120
|
|
strb ip, [r5]
|
|
ubfx ip, r3, #14, #1
|
|
ldr r5, .L3331+124
|
|
lsrs r3, r3, #15
|
|
strb ip, [r5]
|
|
ldr r5, .L3331+128
|
|
strb r3, [r5]
|
|
ubfx r5, r2, #3, #1
|
|
ldrb r3, [r1, #28] @ zero_extendqisi2
|
|
ubfx r2, r2, #4, #1
|
|
ldr r1, .L3331+132
|
|
strb r3, [r1]
|
|
ldr r1, .L3331+136
|
|
strb r5, [r1]
|
|
ldr r1, .L3331+140
|
|
ldr r5, .L3331+144
|
|
strb r2, [r1]
|
|
movs r2, #60
|
|
ldr r1, .L3331+148
|
|
str r10, [r5]
|
|
mov r10, r0
|
|
strb r2, [r1]
|
|
ldrb r2, [r7] @ zero_extendqisi2
|
|
ldr r7, .L3331+152
|
|
cmp r2, #9
|
|
strb r3, [r7]
|
|
it eq
|
|
moveq r0, #70
|
|
ldrb r3, [r4, #31] @ zero_extendqisi2
|
|
it eq
|
|
strbeq r0, [r1]
|
|
lsls r3, r3, #31
|
|
bpl .L3253
|
|
ldrb r3, [r4, #29] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L3254
|
|
movs r3, #2
|
|
.L3324:
|
|
strb r3, [r7]
|
|
.L3253:
|
|
cmp r2, #8
|
|
bne .L3255
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
cmp r3, #44
|
|
beq .L3256
|
|
cmp r3, #137
|
|
bne .L3255
|
|
.L3256:
|
|
ldrb r3, [r4, #28] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
itt eq
|
|
moveq r3, #0
|
|
strbeq r3, [r7]
|
|
.L3255:
|
|
ldrh r1, [r4, #16]
|
|
ldr r2, .L3331+156
|
|
ldrb r3, [r4, #19] @ zero_extendqisi2
|
|
tst r1, #64
|
|
str r2, [sp]
|
|
strb r3, [r2]
|
|
beq .L3258
|
|
sub r2, r3, #17
|
|
cmp r2, #2
|
|
bls .L3259
|
|
cmp r3, #21
|
|
bne .L3260
|
|
.L3259:
|
|
ldr r2, .L3331+160
|
|
cmp r3, #21
|
|
ldr r3, .L3331+164
|
|
str r2, [r5]
|
|
beq .L3328
|
|
movs r2, #15
|
|
.L3326:
|
|
strb r2, [r3]
|
|
.L3258:
|
|
ldr r3, [r8]
|
|
lsls r0, r3, #19
|
|
bpl .L3272
|
|
ldr r2, .L3331+4
|
|
movw r1, #3571
|
|
ldr r0, .L3331+8
|
|
bl printf
|
|
.L3272:
|
|
ldr r3, .L3331+168
|
|
movs r2, #0
|
|
strb r2, [r3]
|
|
ldrb r2, [r10] @ zero_extendqisi2
|
|
str r3, [sp, #4]
|
|
tst r2, #1
|
|
beq .L3273
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
cmp r3, #155
|
|
beq .L3274
|
|
movs r0, #4
|
|
bl flash_set_interface_mode
|
|
movs r0, #4
|
|
bl nandc_set_if_mode
|
|
.L3274:
|
|
movs r0, #1
|
|
bl flash_set_interface_mode
|
|
movs r0, #1
|
|
.L3327:
|
|
bl nandc_set_if_mode
|
|
bl flash_info_blk_init
|
|
cmp r0, #-1
|
|
mov fp, r0
|
|
bne .L3276
|
|
ldr r3, [r6]
|
|
movs r2, #17
|
|
movs r0, #0
|
|
strb r2, [r3, #32]
|
|
ldr r3, .L3331+172
|
|
strb r0, [r3]
|
|
bl zftl_flash_exit_slc_mode
|
|
b .L3238
|
|
.L3246:
|
|
adds r6, r6, #1
|
|
adds r7, r7, #32
|
|
cmp r6, #49
|
|
bne .L3248
|
|
b .L3243
|
|
.L3254:
|
|
movs r3, #3
|
|
b .L3324
|
|
.L3332:
|
|
.align 2
|
|
.L3331:
|
|
.word .LANCHOR19
|
|
.word .LANCHOR213
|
|
.word .LC94
|
|
.word .LANCHOR169
|
|
.word .LANCHOR31
|
|
.word .LANCHOR21
|
|
.word .LANCHOR23
|
|
.word .LANCHOR32
|
|
.word .LANCHOR29
|
|
.word .LANCHOR145
|
|
.word .LANCHOR47
|
|
.word .LANCHOR214+1
|
|
.word .LANCHOR214
|
|
.word .LANCHOR215
|
|
.word .LANCHOR27
|
|
.word .LANCHOR25
|
|
.word .LANCHOR6
|
|
.word .LANCHOR173
|
|
.word .LANCHOR163
|
|
.word .LANCHOR172
|
|
.word .LANCHOR165
|
|
.word .LANCHOR210
|
|
.word .LANCHOR216
|
|
.word .LANCHOR48
|
|
.word .LANCHOR183
|
|
.word .LANCHOR44
|
|
.word .LANCHOR83
|
|
.word .LANCHOR80
|
|
.word .LANCHOR35
|
|
.word .LANCHOR124
|
|
.word .LANCHOR217
|
|
.word .LANCHOR1
|
|
.word .LANCHOR81
|
|
.word .LANCHOR0
|
|
.word .LANCHOR30
|
|
.word .LANCHOR36
|
|
.word .LANCHOR171
|
|
.word .LANCHOR22
|
|
.word .LANCHOR24
|
|
.word .LANCHOR15
|
|
.word micron_read_retrial
|
|
.word .LANCHOR166
|
|
.word .LANCHOR26
|
|
.word .LANCHOR33
|
|
.L3260:
|
|
cmp r3, #33
|
|
beq .L3263
|
|
sub r2, r3, #65
|
|
cmp r2, #1
|
|
bhi .L3264
|
|
.L3263:
|
|
ldr r3, .L3333
|
|
movs r2, #4
|
|
str r3, [r5]
|
|
ldr r3, .L3333+4
|
|
strb r2, [r3]
|
|
.L3330:
|
|
movs r2, #7
|
|
.L3329:
|
|
ldr r3, .L3333+8
|
|
b .L3326
|
|
.L3264:
|
|
sub r2, r3, #67
|
|
uxtb r2, r2
|
|
cmp r2, #1
|
|
bls .L3265
|
|
sub r1, r3, #34
|
|
cmp r1, #1
|
|
bhi .L3266
|
|
.L3265:
|
|
ldr r1, .L3333
|
|
cmp r3, #35
|
|
str r1, [r5]
|
|
ldr r1, .L3333+8
|
|
beq .L3267
|
|
cmp r3, #68
|
|
beq .L3267
|
|
movs r3, #7
|
|
.L3325:
|
|
cmp r2, #1
|
|
strb r3, [r1]
|
|
ldr r3, .L3333+4
|
|
bhi .L3269
|
|
.L3328:
|
|
movs r2, #4
|
|
b .L3326
|
|
.L3267:
|
|
movs r3, #17
|
|
b .L3325
|
|
.L3269:
|
|
movs r2, #5
|
|
b .L3326
|
|
.L3266:
|
|
sub r2, r3, #36
|
|
cmp r2, #1
|
|
bhi .L3270
|
|
ldr r3, .L3333+12
|
|
str r3, [r5]
|
|
b .L3330
|
|
.L3270:
|
|
cmp r3, #50
|
|
bne .L3271
|
|
ldr r3, .L3333+16
|
|
movs r2, #25
|
|
str r3, [r5]
|
|
b .L3329
|
|
.L3271:
|
|
cmp r3, #81
|
|
bne .L3258
|
|
ldr r3, .L3333+20
|
|
movs r2, #7
|
|
str r3, [r5]
|
|
ldr r3, .L3333+8
|
|
strb r2, [r3]
|
|
movs r2, #0
|
|
ldr r3, .L3333+24
|
|
b .L3326
|
|
.L3273:
|
|
movs r0, #4
|
|
b .L3327
|
|
.L3276:
|
|
ldrb r3, [r4, #7] @ zero_extendqisi2
|
|
cmp r3, #9
|
|
bne .L3277
|
|
ldr r3, [r6]
|
|
ldrb r3, [r3, #20] @ zero_extendqisi2
|
|
cmp r3, #1
|
|
itt ne
|
|
movne r3, #0
|
|
strbne r3, [r7]
|
|
.L3277:
|
|
ldr r3, [sp]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
cmp r3, #7
|
|
itt ls
|
|
ldrls r3, .L3333+28
|
|
strls r3, [r5]
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
lsls r1, r3, #29
|
|
bpl .L3280
|
|
ldr r3, [r6]
|
|
ldrb r3, [r3, #19] @ zero_extendqisi2
|
|
cbz r3, .L3280
|
|
ldr r2, .L3333+32
|
|
movs r0, #0
|
|
ldr r3, .L3333+36
|
|
ldrh r1, [r2]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r1, r3, r1
|
|
bl flash_ddr_para_scan
|
|
ldr r3, [sp, #4]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L3280
|
|
ldr r2, [r6]
|
|
strb r3, [r2, #19]
|
|
bl flash_info_flush
|
|
.L3280:
|
|
ldr r3, [r8]
|
|
lsls r2, r3, #19
|
|
bpl .L3282
|
|
ldr r2, .L3333+40
|
|
movw r1, #3674
|
|
ldr r0, .L3333+44
|
|
bl printf
|
|
.L3282:
|
|
bl nand_flash_print_info
|
|
mov fp, #0
|
|
b .L3238
|
|
.L3334:
|
|
.align 2
|
|
.L3333:
|
|
.word toshiba_read_retrial
|
|
.word .LANCHOR18
|
|
.word .LANCHOR166
|
|
.word toshiba_3d_read_retrial
|
|
.word samsung_read_retrial
|
|
.word ymtc_3d_read_retrial
|
|
.word .LANCHOR50
|
|
.word hynix_read_retrial
|
|
.word .LANCHOR2
|
|
.word .LANCHOR211
|
|
.word .LANCHOR213
|
|
.word .LC94
|
|
.size nand_flash_init, .-nand_flash_init
|
|
.section .text.ftl_sysblk_dump,"ax",%progbits
|
|
.align 1
|
|
.global ftl_sysblk_dump
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_sysblk_dump, %function
|
|
ftl_sysblk_dump:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov fp, r0
|
|
sub sp, sp, #48
|
|
movs r0, #1
|
|
movs r6, #0
|
|
bl buf_alloc
|
|
ldr r3, [r0, #4]
|
|
mov r4, r0
|
|
mov r5, r6
|
|
str r3, [sp, #44]
|
|
.L3336:
|
|
ldr r3, .L3345
|
|
ldrh r2, [r3]
|
|
uxth r3, r6
|
|
cmp r2, r3
|
|
bhi .L3338
|
|
ldr r1, [sp, #44]
|
|
movs r3, #32
|
|
ldr r0, .L3345+4
|
|
movs r2, #4
|
|
add r1, r1, #704
|
|
bl rknand_print_hex
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
cbz r5, .L3339
|
|
movw r2, #1619
|
|
ldr r1, .L3345+8
|
|
ldr r0, .L3345+12
|
|
bl printf
|
|
.L3339:
|
|
mov r0, r5
|
|
add sp, sp, #48
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3338:
|
|
ldr r3, .L3345+16
|
|
uxth r7, r6
|
|
ldr r2, [r4, #12]
|
|
ldr r1, [r4, #4]
|
|
ldrh r8, [r3]
|
|
ldr r3, .L3345+20
|
|
mla r8, fp, r8, r7
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
mov r0, r8
|
|
bl ftl_read_ppa_page
|
|
ldr r2, [r4, #12]
|
|
mov r10, 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, fp
|
|
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, r7
|
|
ldr r3, [r3]
|
|
str r0, [sp]
|
|
ldr r0, .L3345+24
|
|
str r3, [sp, #4]
|
|
mov r3, r8
|
|
bl printf
|
|
cmp r10, #-1
|
|
beq .L3340
|
|
cmp r10, #512
|
|
it eq
|
|
moveq r5, #1
|
|
.L3337:
|
|
adds r6, r6, #1
|
|
b .L3336
|
|
.L3340:
|
|
movs r5, #1
|
|
b .L3337
|
|
.L3346:
|
|
.align 2
|
|
.L3345:
|
|
.word .LANCHOR94
|
|
.word .LC179
|
|
.word .LANCHOR218
|
|
.word .LC0
|
|
.word .LANCHOR111
|
|
.word .LANCHOR131
|
|
.word .LC160
|
|
.size ftl_sysblk_dump, .-ftl_sysblk_dump
|
|
.section .text.ftl_open_sblk_recovery,"ax",%progbits
|
|
.align 1
|
|
.global ftl_open_sblk_recovery
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_open_sblk_recovery, %function
|
|
ftl_open_sblk_recovery:
|
|
@ args = 0, pretend = 0, frame = 216
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r0
|
|
ldr r5, .L3484
|
|
sub sp, sp, #224
|
|
str r1, [sp, #28]
|
|
ldr r3, [r5]
|
|
lsls r0, r3, #19
|
|
bpl .L3348
|
|
ldrh r1, [r4, #2]
|
|
ldr r0, .L3484+4
|
|
bl printf
|
|
.L3348:
|
|
ldr r3, [r5]
|
|
lsls r1, r3, #19
|
|
bpl .L3349
|
|
ldrb r1, [r4, #5] @ zero_extendqisi2
|
|
ldr r0, .L3484+8
|
|
bl printf
|
|
.L3349:
|
|
ldr r3, [r5]
|
|
lsls r2, r3, #19
|
|
bpl .L3350
|
|
ldrh r1, [r4]
|
|
ldr r0, .L3484+12
|
|
bl printf
|
|
.L3350:
|
|
ldr r3, [r5]
|
|
lsls r3, r3, #19
|
|
bpl .L3351
|
|
ldrh r2, [r4, #18]
|
|
ldrh r1, [r4, #16]
|
|
ldr r0, .L3484+16
|
|
bl printf
|
|
.L3351:
|
|
ldr r3, [r5]
|
|
lsls r7, r3, #19
|
|
bpl .L3352
|
|
ldrb r1, [r4, #9] @ zero_extendqisi2
|
|
ldr r0, .L3484+20
|
|
bl printf
|
|
.L3352:
|
|
ldrh r3, [r4, #10]
|
|
ldrh r2, [r4]
|
|
strh r3, [r4, #14] @ movhi
|
|
ldr r3, .L3484+24
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L3347
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
ldr r3, .L3484+28
|
|
movs r1, #255
|
|
ldr r2, [r0, #4]
|
|
mov r5, r0
|
|
add r0, sp, #32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r3, #2
|
|
add r3, r2, r3, lsl #9
|
|
movs r2, #64
|
|
str r3, [sp, #24]
|
|
bl ftl_memset
|
|
movs r2, #64
|
|
movs r1, #255
|
|
add r0, sp, #96
|
|
bl ftl_memset
|
|
movs r2, #64
|
|
movs r1, #255
|
|
add r0, sp, #160
|
|
bl ftl_memset
|
|
ldrh r3, [r4, #2]
|
|
ldrb fp, [r4, #5] @ zero_extendqisi2
|
|
str r3, [sp, #8]
|
|
movs r3, #2
|
|
str r3, [sp, #12]
|
|
movs r3, #0
|
|
str r3, [sp, #20]
|
|
.L3354:
|
|
ldr r3, .L3484+32
|
|
ldr r2, [sp, #8]
|
|
ldrh r3, [r3]
|
|
cmp r3, r2
|
|
bhi .L3369
|
|
.L3357:
|
|
ldrh r3, [sp, #8]
|
|
ldr r1, .L3484+32
|
|
ldrh r2, [r4, #6]
|
|
strh r3, [r4, #2] @ movhi
|
|
ldrh r3, [r4, #10]
|
|
ldrb r0, [r4, #9] @ zero_extendqisi2
|
|
strb fp, [r4, #5]
|
|
add r2, r2, r3
|
|
ldrh r3, [r1]
|
|
str r1, [sp, #8]
|
|
muls r3, r0, r3
|
|
cmp r2, r3
|
|
beq .L3370
|
|
movw r2, #1802
|
|
ldr r1, .L3484+36
|
|
ldr r0, .L3484+40
|
|
bl printf
|
|
.L3370:
|
|
ldr r3, .L3484+44
|
|
movs r6, #0
|
|
ldrh r0, [r4, #10]
|
|
mov r2, r6
|
|
ldr r7, [r3]
|
|
str r3, [sp, #16]
|
|
.L3371:
|
|
cmp r2, r0
|
|
bcc .L3373
|
|
ldr r2, [sp, #8]
|
|
ldrb r3, [r4, #9] @ zero_extendqisi2
|
|
ldr r7, .L3484
|
|
ldrh r2, [r2]
|
|
ldr r8, .L3484+60
|
|
smulbb r3, r3, r2
|
|
subs r3, r3, r0
|
|
add r6, r6, r3
|
|
ldr r3, [r7]
|
|
uxth r6, r6
|
|
tst r3, #4096
|
|
beq .L3374
|
|
ldrh r1, [r4]
|
|
mov r2, r6
|
|
ldr r3, [r8]
|
|
ldr r0, .L3484+48
|
|
ldrh r3, [r3, r1, lsl #1]
|
|
bl printf
|
|
.L3374:
|
|
ldr r3, [r8]
|
|
ldrh r2, [r4]
|
|
strh r6, [r3, r2, lsl #1] @ movhi
|
|
ldr r3, [r7]
|
|
lsls r7, r3, #17
|
|
bpl .L3375
|
|
ldr r3, [sp, #44]
|
|
add r1, sp, #32
|
|
ldr r0, .L3484+52
|
|
str r3, [sp]
|
|
ldm r1, {r1, r2, r3}
|
|
bl printf
|
|
.L3375:
|
|
ldr r6, .L3484+28
|
|
movs r7, #0
|
|
ldr r8, .L3484+56
|
|
movs r1, #0
|
|
ldr r0, [r5, #4]
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
lsls r2, r2, #9
|
|
bl ftl_memset
|
|
str r6, [sp, #24]
|
|
.L3376:
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
ldr r2, [sp, #12]
|
|
muls r3, r2, r3
|
|
cmp r7, r3
|
|
bcc .L3390
|
|
ldr r7, .L3484+28
|
|
movs r6, #0
|
|
.L3391:
|
|
ldr r3, .L3484+56
|
|
ldr r2, [sp, #12]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r2, r3
|
|
cmp r6, r3
|
|
bcc .L3398
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
ldr r3, [sp, #8]
|
|
ldrh r2, [r4, #12]
|
|
ldrb r1, [r4, #9] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
mla r3, r1, r3, r2
|
|
ldr r2, [sp, #16]
|
|
ldr r2, [r2]
|
|
add r3, r3, #1073741824
|
|
subs r3, r3, #1
|
|
ldr r3, [r2, r3, lsl #2]
|
|
adds r3, r3, #1
|
|
beq .L3399
|
|
movw r2, #1917
|
|
ldr r1, .L3484+36
|
|
ldr r0, .L3484+40
|
|
bl printf
|
|
.L3399:
|
|
ldrh r3, [r4, #6]
|
|
cmp r3, #1
|
|
bne .L3347
|
|
mov r0, r4
|
|
bl ftl_write_last_log_page
|
|
.L3347:
|
|
add sp, sp, #224
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3369:
|
|
ldrb fp, [r4, #5] @ zero_extendqisi2
|
|
.L3355:
|
|
ldrb r3, [r4, #9] @ zero_extendqisi2
|
|
cmp r3, fp
|
|
bhi .L3368
|
|
movs r3, #0
|
|
strb r3, [r4, #5]
|
|
ldr r3, [sp, #8]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
str r3, [sp, #8]
|
|
b .L3354
|
|
.L3485:
|
|
.align 2
|
|
.L3484:
|
|
.word .LANCHOR19
|
|
.word .LC180
|
|
.word .LC181
|
|
.word .LC182
|
|
.word .LC183
|
|
.word .LC184
|
|
.word .LANCHOR8
|
|
.word .LANCHOR131
|
|
.word .LANCHOR94
|
|
.word .LANCHOR219
|
|
.word .LC0
|
|
.word .LANCHOR117
|
|
.word .LC187
|
|
.word .LC188
|
|
.word .LANCHOR79
|
|
.word .LANCHOR11
|
|
.L3368:
|
|
add r3, fp, #8
|
|
ldrh r7, [r4, r3, lsl #1]
|
|
movw r3, #65535
|
|
cmp r7, r3
|
|
beq .L3356
|
|
ldr r3, .L3486
|
|
ldr r2, [sp, #8]
|
|
ldr r6, .L3486+4
|
|
ldrh r3, [r3]
|
|
ldr r1, [r5, #4]
|
|
mla r3, r7, r3, r2
|
|
ldr r2, [r5, #12]
|
|
str r3, [sp, #16]
|
|
ldr r0, [sp, #16]
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
bl ftl_read_ppa_page
|
|
cmp r0, #512
|
|
mov r8, r0
|
|
beq .L3357
|
|
cmp r0, #-1
|
|
beq .L3358
|
|
ldr r3, [r5, #12]
|
|
ldr r2, [r3]
|
|
adds r2, r2, #1
|
|
bne .L3358
|
|
ldr r3, [r3, #4]
|
|
adds r3, r3, #1
|
|
bne .L3358
|
|
ldr r3, [r5, #4]
|
|
ldr r3, [r3]
|
|
adds r3, r3, #1
|
|
beq .L3357
|
|
.L3358:
|
|
ldr r3, .L3486+8
|
|
movs r2, #1
|
|
ldr r1, [sp, #8]
|
|
strb r2, [r3]
|
|
ldrb r3, [r4, #9] @ zero_extendqisi2
|
|
ldrh r2, [r4, #10]
|
|
mla r3, r1, r3, fp
|
|
cmp r2, r3
|
|
beq .L3359
|
|
movw r2, #1694
|
|
ldr r1, .L3486+12
|
|
ldr r0, .L3486+16
|
|
bl printf
|
|
.L3359:
|
|
ldrh r3, [r4, #10]
|
|
ldrh r2, [r4, #6]
|
|
add r2, r2, r3
|
|
ldr r3, .L3486+20
|
|
ldrh r1, [r3]
|
|
ldrb r3, [r4, #9] @ zero_extendqisi2
|
|
muls r3, r1, r3
|
|
cmp r2, r3
|
|
beq .L3360
|
|
movw r2, #1695
|
|
ldr r1, .L3486+12
|
|
ldr r0, .L3486+16
|
|
bl printf
|
|
.L3360:
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
cmp r3, #8
|
|
bls .L3361
|
|
ldr r10, [r5, #12]
|
|
ldr r2, .L3486+24
|
|
ldr r3, [r10]
|
|
cmp r3, r2
|
|
beq .L3361
|
|
cmp r8, #-1
|
|
beq .L3363
|
|
ldr r3, [r10, #4]
|
|
adds r3, r3, #1
|
|
beq .L3364
|
|
ldr r3, [r10, #16]
|
|
add r2, r2, #1392508928
|
|
sub r2, r2, #1957888
|
|
subw r2, r2, #2427
|
|
cmp r3, r2
|
|
bne .L3364
|
|
mov r1, #1024
|
|
ldr r0, [sp, #24]
|
|
bl js_hash
|
|
ldr r3, [r10, #20]
|
|
cmp r3, r0
|
|
beq .L3364
|
|
str r0, [sp, #4]
|
|
mov r1, r7
|
|
ldr r3, [sp, #16]
|
|
ldr r2, [sp, #8]
|
|
str r8, [sp]
|
|
ldr r0, .L3486+28
|
|
bl printf
|
|
movs r3, #16
|
|
movs r2, #4
|
|
ldr r1, [sp, #24]
|
|
ldr r0, .L3486+32
|
|
bl rknand_print_hex
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
movs r2, #4
|
|
ldr r1, [r5, #12]
|
|
ldr r0, .L3486+36
|
|
lsrs r3, r3, #1
|
|
bl rknand_print_hex
|
|
.L3363:
|
|
ldrh r3, [r4, #6]
|
|
subs r3, r3, #1
|
|
strh r3, [r4, #6] @ movhi
|
|
ldrh r3, [r4, #10]
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #10] @ movhi
|
|
movs r3, #4
|
|
str r3, [sp, #12]
|
|
movs r3, #1
|
|
str r3, [sp, #20]
|
|
.L3356:
|
|
add r3, fp, #1
|
|
uxth fp, r3
|
|
b .L3355
|
|
.L3361:
|
|
cmp r8, #-1
|
|
beq .L3363
|
|
.L3364:
|
|
ldr r3, [r5, #12]
|
|
ldr r0, [r3, #4]
|
|
adds r6, r0, #1
|
|
beq .L3363
|
|
ldr r3, [r3]
|
|
ldr r2, .L3486+24
|
|
cmp r3, r2
|
|
beq .L3363
|
|
bl lpa_hash_get_ppa
|
|
ldr r3, [sp, #28]
|
|
mov r7, r0
|
|
cmp r3, #0
|
|
beq .L3366
|
|
ldr r10, [r5, #12]
|
|
ldr r3, [r10, #8]
|
|
cmp r0, r3
|
|
beq .L3366
|
|
adds r1, r0, #1
|
|
beq .L3366
|
|
ldr r3, .L3486+40
|
|
movs r6, #1
|
|
ldr r8, .L3486+60
|
|
ldrh r0, [r3]
|
|
ldr r3, .L3486+44
|
|
ldrb r1, [r8] @ zero_extendqisi2
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r0
|
|
lsr r0, r7, r0
|
|
lsl r3, r6, r3
|
|
subs r3, r3, #1
|
|
ands r0, r0, r3
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #28]
|
|
uxth r0, r0
|
|
ldrh r3, [r3]
|
|
cmp r3, r0
|
|
bne .L3366
|
|
ldr r3, [r10]
|
|
mov r0, r7
|
|
ldr r10, .L3486+64
|
|
ldr r1, [r5, #4]
|
|
str r3, [sp, #12]
|
|
ldr r3, .L3486+4
|
|
mov r2, r10
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
bl ftl_read_ppa_page
|
|
ldr r3, [r10]
|
|
ldr r2, [sp, #12]
|
|
cmp r2, r3
|
|
bhi .L3366
|
|
ldr r3, [r5, #12]
|
|
ldr r3, [r3, #8]
|
|
adds r2, r3, #1
|
|
beq .L3363
|
|
ldr r1, .L3486+44
|
|
ldr r2, .L3486+40
|
|
ldrb r0, [r1] @ zero_extendqisi2
|
|
ldrh r2, [r2]
|
|
ldrb r1, [r8] @ zero_extendqisi2
|
|
rsb r0, r0, #24
|
|
subs r0, r0, r2
|
|
lsls r6, r6, r0
|
|
lsr r0, r3, r2
|
|
subs r6, r6, #1
|
|
ands r0, r0, r6
|
|
bl __aeabi_uidiv
|
|
uxth r0, r0
|
|
bl ftl_vpn_decrement
|
|
b .L3363
|
|
.L3373:
|
|
ldrh r1, [r4, #12]
|
|
add r1, r1, r2
|
|
adds r2, r2, #1
|
|
ldr r3, [r7, r1, lsl #2]
|
|
adds r3, r3, #1
|
|
itt ne
|
|
addne r6, r6, #1
|
|
uxthne r6, r6
|
|
b .L3371
|
|
.L3390:
|
|
add fp, sp, #32
|
|
ldr r0, [fp, r7, lsl #2]
|
|
adds r6, r0, #1
|
|
bne .L3377
|
|
.L3383:
|
|
ldr r2, .L3486+48
|
|
mov r6, #-1
|
|
ldr r3, [r5, #12]
|
|
ldr r1, [r5, #4]
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #8]
|
|
str r6, [r3, #4]
|
|
str r6, [r3, #8]
|
|
str r2, [r3]
|
|
movs r2, #0
|
|
str r2, [r3, #12]
|
|
str r2, [r3, #16]
|
|
str r2, [r1]
|
|
ldr r1, .L3486+4
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cmp r1, #8
|
|
bhi .L3378
|
|
.L3379:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #0
|
|
beq .L3385
|
|
ldrh r3, [r4, #6]
|
|
cmp r3, #1
|
|
bls .L3385
|
|
ldr fp, .L3486+56
|
|
.L3455:
|
|
mov r0, r4
|
|
bl ftl_get_new_free_page
|
|
ldr r3, [fp]
|
|
mov r10, r0
|
|
lsls r3, r3, #17
|
|
bpl .L3387
|
|
ldrh r2, [r4, #12]
|
|
mov r1, r0
|
|
ldrh r3, [r4, #10]
|
|
ldr r0, .L3486+52
|
|
add r3, r3, r2
|
|
ldr r2, [r5, #12]
|
|
subs r3, r3, #1
|
|
ldr r2, [r2, #4]
|
|
bl printf
|
|
.L3387:
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
ldr r1, [sp, #12]
|
|
ldrh r2, [r4, #6]
|
|
muls r3, r1, r3
|
|
adds r3, r3, #1
|
|
subs r3, r3, r7
|
|
cmp r2, r3
|
|
bls .L3385
|
|
ldr r3, .L3486+4
|
|
mov r0, r10
|
|
ldr r2, [r5, #12]
|
|
ldr r1, [r5, #4]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
bl ftl_prog_ppa_page
|
|
str r0, [sp, #28]
|
|
ldrh r0, [r4]
|
|
bl ftl_vpn_decrement
|
|
adds r0, r6, #1
|
|
beq .L3388
|
|
ldr r3, [sp, #28]
|
|
adds r3, r3, #1
|
|
beq .L3388
|
|
add r3, sp, #96
|
|
ldrh r2, [r4, #12]
|
|
str r10, [r3, r7, lsl #2]
|
|
ldrh r3, [r4, #10]
|
|
add r3, r3, r2
|
|
add r2, sp, #160
|
|
subs r3, r3, #1
|
|
str r3, [r2, r7, lsl #2]
|
|
.L3385:
|
|
adds r7, r7, #1
|
|
b .L3376
|
|
.L3487:
|
|
.align 2
|
|
.L3486:
|
|
.word .LANCHOR111
|
|
.word .LANCHOR131
|
|
.word .LANCHOR195
|
|
.word .LANCHOR219
|
|
.word .LC0
|
|
.word .LANCHOR94
|
|
.word -178307901
|
|
.word .LC185
|
|
.word .LC186
|
|
.word .LC147
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR110
|
|
.word .LC190
|
|
.word .LANCHOR19
|
|
.word .LANCHOR75
|
|
.word .LANCHOR190
|
|
.L3377:
|
|
ldr r3, [sp, #24]
|
|
ldr r1, [r5, #4]
|
|
ldr r2, [r5, #12]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
bl ftl_read_ppa_page
|
|
ldr r3, [r5, #12]
|
|
mov r6, r0
|
|
ldr r0, [r3, #4]
|
|
bl lpa_hash_get_ppa
|
|
ldr r3, .L3488
|
|
mov r10, r0
|
|
ldr r3, [r3]
|
|
lsls r1, r3, #17
|
|
bpl .L3380
|
|
ldr r3, [r5, #12]
|
|
mov r1, r0
|
|
ldr r2, [fp, r7, lsl #2]
|
|
ldr r0, .L3488+4
|
|
ldr r3, [r3, #4]
|
|
bl printf
|
|
.L3380:
|
|
add r3, sp, #32
|
|
ldr r1, .L3488+8
|
|
ldr r3, [r3, r7, lsl #2]
|
|
movs r2, #1
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cmp r10, r3
|
|
it ne
|
|
movne r6, #-1
|
|
ldr r3, [r5, #12]
|
|
cmp r1, #8
|
|
str r2, [r3, #12]
|
|
mov r2, #0
|
|
str r2, [r3, #16]
|
|
it hi
|
|
strhi r2, [r3, #20]
|
|
adds r2, r6, #1
|
|
str r10, [r3, #8]
|
|
bne .L3379
|
|
b .L3383
|
|
.L3378:
|
|
str r2, [r3, #16]
|
|
str r2, [r3, #20]
|
|
b .L3379
|
|
.L3388:
|
|
ldrh r3, [r4, #6]
|
|
cmp r3, #1
|
|
bls .L3385
|
|
adds r1, r6, #1
|
|
bne .L3455
|
|
b .L3385
|
|
.L3398:
|
|
add r8, sp, #96
|
|
ldr r3, [r8, r6, lsl #2]
|
|
adds r3, r3, #1
|
|
beq .L3393
|
|
add r0, sp, #32
|
|
ldr r2, [r5, #12]
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
ldr r1, [r5, #4]
|
|
ldr r0, [r0, r6, lsl #2]
|
|
bl ftl_read_ppa_page
|
|
adds r2, r0, #1
|
|
beq .L3394
|
|
cmp r0, #256
|
|
bne .L3393
|
|
.L3394:
|
|
ldr r0, [r8, r6, lsl #2]
|
|
ldr r8, .L3488
|
|
ldrb r3, [r7] @ zero_extendqisi2
|
|
ldr r2, [r5, #12]
|
|
ldr r1, [r5, #4]
|
|
bl ftl_read_ppa_page
|
|
ldr r3, [r8]
|
|
mov r10, r0
|
|
lsls r3, r3, #17
|
|
bpl .L3396
|
|
ldr r2, [r5, #12]
|
|
add r3, sp, #32
|
|
mov r1, r0
|
|
ldr r3, [r3, r6, lsl #2]
|
|
ldr r0, .L3488+12
|
|
ldr r2, [r2, #8]
|
|
bl printf
|
|
.L3396:
|
|
cmp r10, #-1
|
|
beq .L3393
|
|
ldr r1, [r5, #12]
|
|
add r3, sp, #32
|
|
ldr r2, [r3, r6, lsl #2]
|
|
ldr r3, [r1, #8]
|
|
cmp r2, r3
|
|
bne .L3393
|
|
ldr r3, [r8]
|
|
add r8, sp, #160
|
|
tst r3, #16384
|
|
beq .L3397
|
|
ldr r3, [r8, r6, lsl #2]
|
|
ldr r1, [r1, #4]
|
|
ldr r0, .L3488+16
|
|
bl printf
|
|
.L3397:
|
|
ldr r3, [r5, #12]
|
|
ldrh r2, [r8, r6, lsl #2]
|
|
ldr r1, [r3, #8]
|
|
ldr r0, [r3, #4]
|
|
bl lpa_hash_update_ppa
|
|
.L3393:
|
|
adds r6, r6, #1
|
|
b .L3391
|
|
.L3366:
|
|
ldr r0, [r5, #12]
|
|
ldr r3, .L3488+20
|
|
ldr r2, [r0, #4]
|
|
ldr r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L3363
|
|
ldr r3, .L3488+24
|
|
ldrb r1, [r4, #9] @ zero_extendqisi2
|
|
ldrh r2, [r4, #10]
|
|
ldrh r3, [r3]
|
|
muls r3, r1, r3
|
|
subs r3, r3, #1
|
|
cmp r2, r3
|
|
bge .L3363
|
|
ldr r3, .L3488+28
|
|
ldr r6, [r0]
|
|
ldr r3, [r3]
|
|
ldr r1, [r3, #8]
|
|
cmp r6, r1
|
|
it hi
|
|
strhi r6, [r3, #8]
|
|
ldrh r3, [r4, #12]
|
|
ldr r1, [r0, #8]
|
|
ldr r0, [r0, #4]
|
|
add r2, r2, r3
|
|
uxth r2, r2
|
|
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, #16]
|
|
str r3, [sp, #44]
|
|
b .L3363
|
|
.L3489:
|
|
.align 2
|
|
.L3488:
|
|
.word .LANCHOR19
|
|
.word .LC189
|
|
.word .LANCHOR131
|
|
.word .LC190
|
|
.word .LC191
|
|
.word .LANCHOR128
|
|
.word .LANCHOR94
|
|
.word .LANCHOR110
|
|
.size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
|
|
.section .text.dump_ftl_info,"ax",%progbits
|
|
.align 1
|
|
.global dump_ftl_info
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type dump_ftl_info, %function
|
|
dump_ftl_info:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3491
|
|
push {r0, r1, r2, r4, r5, r6, r7, lr}
|
|
ldr r0, .L3491+4
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r1, .L3491+8
|
|
ldr r5, .L3491+12
|
|
ldr r0, .L3491+16
|
|
ldrh r3, [r1, #2]
|
|
ldrb r2, [r1, #1] @ zero_extendqisi2
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
bl printf
|
|
ldr r3, [r5]
|
|
ldr r4, .L3491+20
|
|
ldr r0, .L3491+24
|
|
ldrh r2, [r3, #140]
|
|
ldrh r1, [r3, #130]
|
|
bl printf
|
|
ldr r0, [r4]
|
|
ldr r7, .L3491+28
|
|
ldrh r6, [r0, #26]
|
|
ldrb r3, [r0, #21] @ zero_extendqisi2
|
|
ldrh r2, [r0, #18]
|
|
ldrh r1, [r0, #16]
|
|
str r6, [sp, #4]
|
|
ldrh r0, [r0, #22]
|
|
str r0, [sp]
|
|
ldr r0, .L3491+32
|
|
bl printf
|
|
ldr r0, [r4]
|
|
ldrh r6, [r0, #58]
|
|
ldrb r3, [r0, #53] @ zero_extendqisi2
|
|
ldrh r2, [r0, #50]
|
|
ldrh r1, [r0, #48]
|
|
str r6, [sp, #4]
|
|
ldrh r0, [r0, #54]
|
|
ldr r6, .L3491+36
|
|
str r0, [sp]
|
|
ldr r0, .L3491+40
|
|
bl printf
|
|
ldr r0, [r4]
|
|
ldrh r4, [r0, #90]
|
|
ldrb r3, [r0, #85] @ zero_extendqisi2
|
|
ldrh r2, [r0, #82]
|
|
ldrh r1, [r0, #80]
|
|
str r4, [sp, #4]
|
|
ldrh r0, [r0, #86]
|
|
ldr r4, .L3491+44
|
|
str r0, [sp]
|
|
ldr r0, .L3491+48
|
|
bl printf
|
|
ldrh r2, [r6]
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
ldr r1, .L3491+52
|
|
ldr r0, .L3491+56
|
|
muls r3, r2, r3
|
|
ldr r1, [r1]
|
|
movs r2, #4
|
|
lsls r3, r3, #1
|
|
bl rknand_print_hex
|
|
ldr r1, .L3491+60
|
|
movs r2, #2
|
|
ldrh r3, [r7]
|
|
ldr r0, .L3491+64
|
|
ldr r1, [r1]
|
|
bl rknand_print_hex
|
|
ldr r1, [r5]
|
|
movs r2, #4
|
|
ldr r0, .L3491+68
|
|
ldrh r3, [r1, #698]
|
|
add r1, r1, #704
|
|
bl rknand_print_hex
|
|
ldr r1, .L3491+72
|
|
movs r2, #4
|
|
ldrh r3, [r7]
|
|
ldr r0, .L3491+76
|
|
ldr r1, [r1]
|
|
bl rknand_print_hex
|
|
mov r3, #256
|
|
movs r2, #2
|
|
ldr r1, .L3491+80
|
|
ldr r0, .L3491+84
|
|
bl rknand_print_hex
|
|
ldrh r2, [r6]
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
ldr r1, .L3491+88
|
|
ldr r0, .L3491+92
|
|
muls r3, r2, r3
|
|
ldr r1, [r1]
|
|
movs r2, #2
|
|
lsls r3, r3, #1
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, lr}
|
|
b rknand_print_hex
|
|
.L3492:
|
|
.align 2
|
|
.L3491:
|
|
.word .LANCHOR57
|
|
.word .LC192
|
|
.word .LANCHOR191
|
|
.word .LANCHOR110
|
|
.word .LC193
|
|
.word .LANCHOR12
|
|
.word .LC194
|
|
.word .LANCHOR8
|
|
.word .LC195
|
|
.word .LANCHOR94
|
|
.word .LC196
|
|
.word .LANCHOR79
|
|
.word .LC197
|
|
.word .LANCHOR117
|
|
.word .LC198
|
|
.word .LANCHOR11
|
|
.word .LC199
|
|
.word .LC179
|
|
.word .LANCHOR9
|
|
.word .LC200
|
|
.word .LANCHOR116
|
|
.word .LC201
|
|
.word .LANCHOR118
|
|
.word .LC202
|
|
.size dump_ftl_info, .-dump_ftl_info
|
|
.section .text.pm_ppa_update_check,"ax",%progbits
|
|
.align 1
|
|
.global pm_ppa_update_check
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_ppa_update_check, %function
|
|
pm_ppa_update_check:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
mov r7, r2
|
|
ldr r2, .L3500
|
|
mov r5, r0
|
|
mov r6, r1
|
|
ldr r3, .L3500+4
|
|
ldrb r4, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
rsb r4, r4, #24
|
|
subs r0, r4, r3
|
|
movs r4, #1
|
|
lsls r4, r4, r0
|
|
lsr r0, r7, r3
|
|
ldr r3, .L3500+8
|
|
subs r4, r4, #1
|
|
ands r0, r0, r4
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L3500+12
|
|
uxth r0, r0
|
|
ldr r3, [r3]
|
|
add r0, r3, r0, lsl #2
|
|
ldrb r3, [r0, #2] @ zero_extendqisi2
|
|
lsrs r3, r3, #5
|
|
cmp r3, #1
|
|
beq .L3494
|
|
cmp r3, #7
|
|
bne .L3496
|
|
.L3494:
|
|
mov r3, r7
|
|
mov r2, r6
|
|
mov r1, r5
|
|
ldr r0, .L3500+16
|
|
bl printf
|
|
bl dump_ftl_info
|
|
mov r0, #-1
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L3496:
|
|
movs r0, #0
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L3501:
|
|
.align 2
|
|
.L3500:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR74
|
|
.word .LANCHOR75
|
|
.word .LANCHOR9
|
|
.word .LC203
|
|
.size pm_ppa_update_check, .-pm_ppa_update_check
|
|
.section .text.load_l2p_region,"ax",%progbits
|
|
.align 1
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type load_l2p_region, %function
|
|
load_l2p_region:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
cmp r1, #31
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r5, r0
|
|
mov r7, r1
|
|
bls .L3503
|
|
movs r2, #32
|
|
ldr r1, .L3526
|
|
ldr r0, .L3526+4
|
|
bl printf
|
|
.L3503:
|
|
ldr r6, .L3526+8
|
|
ldr r3, [r6]
|
|
mov r10, r6
|
|
ldrh r2, [r3, #698]
|
|
cmp r2, r5
|
|
bcs .L3504
|
|
mov r1, r5
|
|
ldr r0, .L3526+12
|
|
bl printf
|
|
ldr r3, .L3526+16
|
|
movs r4, #0
|
|
movs r1, #255
|
|
ldr r0, [r4, #4]
|
|
ldrh r2, [r3]
|
|
bl ftl_memset
|
|
ldr r3, [r6]
|
|
ldrh r3, [r3, #698]
|
|
cmp r3, r5
|
|
bcc .L3505
|
|
.L3524:
|
|
movs r0, #0
|
|
.L3502:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3505:
|
|
movs r2, #37
|
|
.L3525:
|
|
ldr r1, .L3526
|
|
ldr r0, .L3526+4
|
|
bl printf
|
|
b .L3524
|
|
.L3504:
|
|
ldr r6, .L3526+20
|
|
add r2, r5, #176
|
|
ldr r4, [r3, r2, lsl #2]
|
|
movs r3, #0
|
|
strh r5, [r6, r7, lsl #3] @ movhi
|
|
lsls r7, r7, #3
|
|
add fp, r6, r7
|
|
strh r3, [fp, #2] @ movhi
|
|
cbnz r4, .L3507
|
|
mov r2, r4
|
|
mov r1, r5
|
|
ldr r0, .L3526+24
|
|
bl printf
|
|
ldr r3, .L3526+16
|
|
movs r1, #255
|
|
ldr r0, [fp, #4]
|
|
ldrh r2, [r3]
|
|
bl ftl_memset
|
|
b .L3524
|
|
.L3507:
|
|
ldr r8, .L3526+32
|
|
mov r0, r4
|
|
ldr r3, .L3526+28
|
|
ldr r1, [fp, #4]
|
|
ldr r2, [r8]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
bl ftl_read_ppa_page
|
|
ldr r2, [r8]
|
|
mov r3, r0
|
|
ldr r2, [r2]
|
|
cmp r2, r5
|
|
bne .L3508
|
|
adds r1, r0, #1
|
|
beq .L3508
|
|
cmp r0, #512
|
|
beq .L3508
|
|
.L3513:
|
|
ldr r3, .L3526+32
|
|
ldr r3, [r3]
|
|
ldr r3, [r3]
|
|
cmp r5, r3
|
|
beq .L3524
|
|
movs r2, #73
|
|
b .L3525
|
|
.L3508:
|
|
mov r1, r5
|
|
str r4, [sp]
|
|
ldr r0, .L3526+36
|
|
add r8, r6, r7
|
|
bl printf
|
|
ldr r1, [r10]
|
|
movs r2, #4
|
|
ldr r10, .L3526+28
|
|
ldr r0, .L3526+40
|
|
ldrh r3, [r1, #698]
|
|
add r1, r1, #704
|
|
bl rknand_print_hex
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
movs r2, #4
|
|
ldr fp, .L3526+32
|
|
ldr r1, [r8, #4]
|
|
ldr r0, .L3526+44
|
|
lsls r3, r3, #7
|
|
bl rknand_print_hex
|
|
movs r3, #16
|
|
movs r2, #4
|
|
ldr r1, [fp]
|
|
ldr r0, .L3526+48
|
|
bl rknand_print_hex
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
mov r0, r4
|
|
ldr r2, [fp]
|
|
ldr r1, [r8, #4]
|
|
bl ftl_read_ppa_page
|
|
adds r3, r0, #1
|
|
beq .L3511
|
|
cmp r0, #512
|
|
bne .L3512
|
|
.L3511:
|
|
ldr r3, .L3526+16
|
|
add r6, r6, r7
|
|
movs r1, #255
|
|
ldr r0, [r6, #4]
|
|
ldrh r2, [r3]
|
|
bl ftl_memset
|
|
.L3514:
|
|
mov r0, #-1
|
|
b .L3502
|
|
.L3512:
|
|
ldr r3, [fp]
|
|
ldr r3, [r3]
|
|
cmp r5, r3
|
|
beq .L3513
|
|
b .L3514
|
|
.L3527:
|
|
.align 2
|
|
.L3526:
|
|
.word .LANCHOR220
|
|
.word .LC0
|
|
.word .LANCHOR110
|
|
.word .LC204
|
|
.word .LANCHOR221
|
|
.word .LANCHOR135
|
|
.word .LC205
|
|
.word .LANCHOR131
|
|
.word .LANCHOR207
|
|
.word .LC206
|
|
.word .LC207
|
|
.word .LC186
|
|
.word .LC208
|
|
.size load_l2p_region, .-load_l2p_region
|
|
.section .text.pm_gc,"ax",%progbits
|
|
.align 1
|
|
.global pm_gc
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_gc, %function
|
|
pm_gc:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r4, .L3545
|
|
ldr r5, .L3545+4
|
|
ldr r3, [r4]
|
|
ldr r6, .L3545+8
|
|
ldrh r2, [r5]
|
|
ldrh r1, [r3, #688]
|
|
subs r2, r2, #1
|
|
cmp r1, r2
|
|
bge .L3529
|
|
ldr r3, [r6]
|
|
cmp r3, #0
|
|
beq .L3530
|
|
.L3529:
|
|
bl pm_free_sblk
|
|
ldr r2, [r4]
|
|
ldrh r3, [r5]
|
|
ldrh r1, [r2, #688]
|
|
subs r3, r3, #1
|
|
cmp r1, r3
|
|
bge .L3531
|
|
ldr r3, [r6]
|
|
cmp r3, #0
|
|
beq .L3530
|
|
.L3531:
|
|
uxth r0, r0
|
|
movw r5, #65535
|
|
movs r3, #0
|
|
adds r0, r0, #208
|
|
str r3, [r6]
|
|
ldrh r8, [r2, r0, lsl #1]
|
|
cmp r8, r5
|
|
bne .L3533
|
|
movs r2, #182
|
|
ldr r1, .L3545+12
|
|
ldr r0, .L3545+16
|
|
bl printf
|
|
bl pm_free_sblk
|
|
ldr r3, [r4]
|
|
uxth r0, r0
|
|
adds r0, r0, #208
|
|
ldrh r8, [r3, r0, lsl #1]
|
|
cmp r8, r5
|
|
beq .L3530
|
|
.L3533:
|
|
ldr r5, .L3545+20
|
|
bl pm_select_ram_region
|
|
mov r6, r0
|
|
movw r3, #65535
|
|
ldrh r0, [r5, r0, lsl #3]
|
|
cmp r0, r3
|
|
beq .L3534
|
|
add r7, r5, r6, lsl #3
|
|
ldr r1, [r7, #4]
|
|
cbz r1, .L3534
|
|
ldrsh r3, [r7, #2]
|
|
cmp r3, #0
|
|
bge .L3534
|
|
bl pm_write_page
|
|
ldrh r3, [r7, #2]
|
|
ubfx r3, r3, #0, #15
|
|
strh r3, [r7, #2] @ movhi
|
|
.L3534:
|
|
movs r7, #0
|
|
.L3535:
|
|
ldr r1, [r4]
|
|
uxth fp, r7
|
|
ldrh r3, [r1, #698]
|
|
cmp r3, fp
|
|
bhi .L3538
|
|
bl pm_free_sblk
|
|
.L3530:
|
|
movs r0, #0
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3538:
|
|
ldr r3, .L3545+24
|
|
uxth r10, r7
|
|
mov ip, #1
|
|
ldrh r0, [r3]
|
|
ldr r3, .L3545+28
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r0
|
|
lsl r3, ip, r3
|
|
add ip, r10, #176
|
|
ldr r1, [r1, ip, lsl #2]
|
|
subs r3, r3, #1
|
|
lsr r0, r1, r0
|
|
ldr r1, .L3545+32
|
|
ands r0, r0, r3
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
uxth r0, r0
|
|
cmp r8, r0
|
|
bne .L3536
|
|
mov r1, r6
|
|
mov r0, fp
|
|
bl load_l2p_region
|
|
cbnz r0, .L3537
|
|
add r3, r5, r6, lsl #3
|
|
mov r0, r10
|
|
ldr r1, [r3, #4]
|
|
bl pm_write_page
|
|
.L3537:
|
|
movw r3, #65535
|
|
strh r3, [r5, r6, lsl #3] @ movhi
|
|
.L3536:
|
|
adds r7, r7, #1
|
|
b .L3535
|
|
.L3546:
|
|
.align 2
|
|
.L3545:
|
|
.word .LANCHOR110
|
|
.word .LANCHOR152
|
|
.word .LANCHOR148
|
|
.word .LANCHOR222
|
|
.word .LC0
|
|
.word .LANCHOR135
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.size pm_gc, .-pm_gc
|
|
.section .text.pm_flush_id,"ax",%progbits
|
|
.align 1
|
|
.global pm_flush_id
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_flush_id, %function
|
|
pm_flush_id:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3552
|
|
push {r4, lr}
|
|
add r4, r3, r0, lsl #3
|
|
ldrh r0, [r3, r0, lsl #3]
|
|
ldr r1, [r4, #4]
|
|
bl pm_write_page
|
|
ldrh r3, [r4, #2]
|
|
ubfx r3, r3, #0, #15
|
|
strh r3, [r4, #2] @ movhi
|
|
ldr r4, .L3552+4
|
|
ldr r3, [r4]
|
|
cbz r3, .L3548
|
|
bl pm_gc
|
|
movs r3, #0
|
|
str r3, [r4]
|
|
.L3548:
|
|
movs r0, #0
|
|
pop {r4, pc}
|
|
.L3553:
|
|
.align 2
|
|
.L3552:
|
|
.word .LANCHOR135
|
|
.word .LANCHOR204
|
|
.size pm_flush_id, .-pm_flush_id
|
|
.section .text.pm_flush,"ax",%progbits
|
|
.align 1
|
|
.global pm_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_flush, %function
|
|
pm_flush:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, lr}
|
|
movs r4, #0
|
|
ldr r5, .L3558
|
|
.L3556:
|
|
add r3, r5, r4, lsl #3
|
|
uxth r0, r4
|
|
ldrsh r3, [r3, #2]
|
|
cmp r3, #0
|
|
bge .L3555
|
|
bl pm_flush_id
|
|
.L3555:
|
|
adds r4, r4, #1
|
|
cmp r4, #32
|
|
bne .L3556
|
|
movs r0, #0
|
|
pop {r3, r4, r5, pc}
|
|
.L3559:
|
|
.align 2
|
|
.L3558:
|
|
.word .LANCHOR135
|
|
.size pm_flush, .-pm_flush
|
|
.section .text.flt_sys_flush,"ax",%progbits
|
|
.align 1
|
|
.global flt_sys_flush
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type flt_sys_flush, %function
|
|
flt_sys_flush:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
movs r0, #0
|
|
pop {r3, lr}
|
|
b ftl_info_flush
|
|
.size flt_sys_flush, .-flt_sys_flush
|
|
.section .text.rk_ftl_de_init,"ax",%progbits
|
|
.align 1
|
|
.global rk_ftl_de_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rk_ftl_de_init, %function
|
|
rk_ftl_de_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, lr}
|
|
bl zftl_flash_de_init
|
|
bl flt_sys_flush
|
|
pop {r3, lr}
|
|
b zftl_flash_de_init
|
|
.size rk_ftl_de_init, .-rk_ftl_de_init
|
|
.section .text.zftl_deinit,"ax",%progbits
|
|
.align 1
|
|
.global zftl_deinit
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_deinit, %function
|
|
zftl_deinit:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b rk_ftl_de_init
|
|
.size zftl_deinit, .-zftl_deinit
|
|
.section .text.pm_init,"ax",%progbits
|
|
.align 1
|
|
.global pm_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_init, %function
|
|
pm_init:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3588
|
|
movs r2, #1
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r4, #0
|
|
sub sp, sp, #24
|
|
mov r8, r0
|
|
movs r0, #64
|
|
str r4, [r3]
|
|
ldr r3, .L3588+4
|
|
ldr r6, .L3588+8
|
|
str r4, [r3]
|
|
ldr r3, .L3588+12
|
|
mov r5, r6
|
|
strb r2, [r3]
|
|
bl ftl_malloc
|
|
ldr r3, .L3588+16
|
|
mov r10, r3
|
|
str r0, [r3]
|
|
.L3565:
|
|
movw r3, #65535
|
|
adds r7, r6, r4
|
|
strh r3, [r4, r6] @ movhi
|
|
movs r3, #0
|
|
strh r3, [r7, #2] @ movhi
|
|
cmp r8, #0
|
|
beq .L3564
|
|
ldr r3, .L3588+20
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
lsls r0, r0, #9
|
|
bl ftl_malloc
|
|
str r0, [r7, #4]
|
|
.L3564:
|
|
adds r4, r4, #8
|
|
cmp r4, #256
|
|
bne .L3565
|
|
ldr r4, .L3588+24
|
|
ldr fp, [r5, #4]
|
|
ldr r8, [r10]
|
|
ldr r3, [r4]
|
|
mov r2, fp
|
|
ldrh r1, [r3, #692]
|
|
ldrb r0, [r3, #694] @ zero_extendqisi2
|
|
movs r3, #4
|
|
str r3, [sp]
|
|
mov r3, r8
|
|
bl flash_get_last_written_page
|
|
ldr r1, [r4]
|
|
mov r6, r0
|
|
ldrh r2, [r1, #696]
|
|
cmp r2, r0
|
|
bgt .L3566
|
|
mov r3, r0
|
|
ldrh r1, [r1, #692]
|
|
ldr r0, .L3588+28
|
|
bl printf
|
|
ldr r3, [r4]
|
|
ldrsh r7, [r3, #696]
|
|
.L3567:
|
|
cmp r7, r6
|
|
ble .L3570
|
|
ldr r3, .L3588+32
|
|
movs r2, #1
|
|
add r6, r6, r2
|
|
strb r2, [r3]
|
|
ldr r3, [r4]
|
|
strh r6, [r3, #696] @ movhi
|
|
bl pm_free_sblk
|
|
.L3566:
|
|
ldr r3, .L3588+36
|
|
movs r1, #255
|
|
ldr r0, [r5, #4]
|
|
ldrh r2, [r3]
|
|
bl ftl_memset
|
|
ldr r1, [r5, #4]
|
|
mov r0, #-1
|
|
bl pm_write_page
|
|
ldr r3, .L3588+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3571
|
|
ldr r1, [r5, #4]
|
|
mov r0, #-1
|
|
bl pm_write_page
|
|
ldr r1, [r5, #4]
|
|
mov r0, #-1
|
|
bl pm_write_page
|
|
ldr r1, [r5, #4]
|
|
mov r0, #-1
|
|
bl pm_write_page
|
|
.L3571:
|
|
bl pm_free_sblk
|
|
bl pm_gc
|
|
movs r0, #0
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3570:
|
|
ldr r3, [r4]
|
|
ldr r1, .L3588+40
|
|
ldrh r2, [r3, #692]
|
|
ldrh r1, [r1]
|
|
ldrb r0, [r3, #694] @ zero_extendqisi2
|
|
ldr r3, .L3588+20
|
|
mla r2, r1, r2, r7
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r2, [sp, #12]
|
|
mov r2, fp
|
|
str r3, [sp]
|
|
mov r3, r8
|
|
ldr r1, [sp, #12]
|
|
bl flash_read_page_en
|
|
ldr r3, [r4]
|
|
mov r10, r0
|
|
ldr r0, .L3588+44
|
|
ldr r2, [r3, #48]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #48]
|
|
ldrh r3, [r3, #694]
|
|
ldr r2, [sp, #12]
|
|
ldr r1, [r8]
|
|
bl printf
|
|
cmp r10, #-1
|
|
beq .L3568
|
|
cmp r10, #512
|
|
beq .L3568
|
|
ldr r2, [r4]
|
|
ldr r10, [r8]
|
|
ldrh r3, [r2, #698]
|
|
cmp r10, r3
|
|
bcs .L3568
|
|
ldr r3, [r8, #8]
|
|
str r3, [sp, #20]
|
|
cbz r3, .L3569
|
|
ldr r3, .L3588+20
|
|
mov r0, fp
|
|
str r2, [sp, #16]
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
lsls r1, r1, #9
|
|
bl js_hash
|
|
ldr r3, [sp, #20]
|
|
ldr r2, [sp, #16]
|
|
cmp r3, r0
|
|
beq .L3569
|
|
mov r1, r3
|
|
ldr r0, .L3588+48
|
|
bl printf
|
|
.L3568:
|
|
adds r7, r7, #1
|
|
sxth r7, r7
|
|
b .L3567
|
|
.L3569:
|
|
ldr r3, [sp, #12]
|
|
add r10, r10, #176
|
|
str r3, [r2, r10, lsl #2]
|
|
b .L3568
|
|
.L3589:
|
|
.align 2
|
|
.L3588:
|
|
.word .LANCHOR148
|
|
.word .LANCHOR204
|
|
.word .LANCHOR135
|
|
.word .LANCHOR208
|
|
.word .LANCHOR207
|
|
.word .LANCHOR131
|
|
.word .LANCHOR110
|
|
.word .LC209
|
|
.word .LANCHOR195
|
|
.word .LANCHOR221
|
|
.word .LANCHOR111
|
|
.word .LC210
|
|
.word .LC211
|
|
.size pm_init, .-pm_init
|
|
.section .text.pm_log2phys,"ax",%progbits
|
|
.align 1
|
|
.global pm_log2phys
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type pm_log2phys, %function
|
|
pm_log2phys:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3605
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov fp, r0
|
|
str r2, [sp, #4]
|
|
mov r6, r1
|
|
ldr r2, [r3]
|
|
cmp r0, r2
|
|
bcc .L3591
|
|
mov r1, r0
|
|
ldr r0, .L3605+4
|
|
bl printf
|
|
ldr r3, [sp, #4]
|
|
mov r0, #-1
|
|
cbnz r3, .L3590
|
|
str r0, [r6]
|
|
.L3590:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3591:
|
|
ldr r3, .L3605+8
|
|
ldrb r5, [r3] @ zero_extendqisi2
|
|
lsls r1, r5, #7
|
|
bl __aeabi_uidiv
|
|
ldr r1, .L3605+12
|
|
uxth r7, r0
|
|
mov r10, r0
|
|
movs r2, #0
|
|
mov r8, r1
|
|
.L3597:
|
|
add r0, r1, r2, lsl #3
|
|
uxth r4, r2
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
beq .L3593
|
|
ldrh r0, [r1, r2, lsl #3]
|
|
cmp r0, r7
|
|
bne .L3593
|
|
.L3594:
|
|
lsls r5, r5, #7
|
|
ldr r3, [sp, #4]
|
|
lsls r4, r4, #3
|
|
smulbb r5, r5, r7
|
|
sub r5, fp, r5
|
|
uxth r5, r5
|
|
cbnz r3, .L3595
|
|
add r2, r8, r4
|
|
ldr r1, .L3605+16
|
|
ldr r2, [r2, #4]
|
|
ldr r2, [r2, r5, lsl #2]
|
|
str r2, [r6]
|
|
ldrb r0, [r1] @ zero_extendqisi2
|
|
rsb r1, r0, #24
|
|
lsrs r2, r2, r1
|
|
movs r1, #1
|
|
lsls r1, r1, r0
|
|
subs r1, r1, #1
|
|
ands r2, r2, r1
|
|
ldr r1, .L3605+20
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cmp r2, r1
|
|
bcc .L3596
|
|
mov r2, #-1
|
|
str r2, [r6]
|
|
.L3596:
|
|
add r4, r4, r8
|
|
movw r2, #32767
|
|
ldrh r3, [r4, #2]
|
|
ubfx r1, r3, #0, #15
|
|
cmp r1, r2
|
|
beq .L3600
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #2] @ movhi
|
|
.L3600:
|
|
movs r0, #0
|
|
b .L3590
|
|
.L3595:
|
|
add r1, r8, r4
|
|
ldr r0, [r6]
|
|
ldr r2, [r1, #4]
|
|
str r0, [r2, r5, lsl #2]
|
|
ldrh r2, [r1, #2]
|
|
mvn r2, r2, lsl #17
|
|
mvn r2, r2, lsr #17
|
|
strh r2, [r1, #2] @ movhi
|
|
ldr r2, .L3605+24
|
|
strb r10, [r2]
|
|
b .L3596
|
|
.L3593:
|
|
adds r2, r2, #1
|
|
cmp r2, #32
|
|
bne .L3597
|
|
bl pm_select_ram_region
|
|
ldrh r1, [r8, r0, lsl #3]
|
|
movw r2, #65535
|
|
mov r4, r0
|
|
cmp r1, r2
|
|
beq .L3598
|
|
add r2, r8, r0, lsl #3
|
|
ldrsh r2, [r2, #2]
|
|
cmp r2, #0
|
|
bge .L3598
|
|
bl pm_flush_id
|
|
.L3598:
|
|
ldr r2, .L3605+28
|
|
mov r1, r4
|
|
mov r0, r7
|
|
strb r4, [r2]
|
|
bl load_l2p_region
|
|
b .L3594
|
|
.L3606:
|
|
.align 2
|
|
.L3605:
|
|
.word .LANCHOR128
|
|
.word .LC212
|
|
.word .LANCHOR131
|
|
.word .LANCHOR135
|
|
.word .LANCHOR31
|
|
.word .LANCHOR112
|
|
.word .LANCHOR136
|
|
.word .LANCHOR223
|
|
.size pm_log2phys, .-pm_log2phys
|
|
.section .text.gc_recovery,"ax",%progbits
|
|
.align 1
|
|
.global gc_recovery
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_recovery, %function
|
|
gc_recovery:
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r5, #0
|
|
ldr r4, .L3717
|
|
sub sp, sp, #72
|
|
ldr r3, .L3717+4
|
|
ldr fp, [r4]
|
|
strb r5, [r3]
|
|
ldr r3, .L3717+8
|
|
ldrh r6, [fp, #80]
|
|
strb r5, [r3]
|
|
movw r3, #65535
|
|
cmp r6, r3
|
|
beq .L3608
|
|
strh r3, [fp, #130] @ movhi
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
ldrb r3, [fp, #89] @ zero_extendqisi2
|
|
mov r7, r0
|
|
ldr r2, .L3717+12
|
|
ldr r5, .L3717+16
|
|
add r3, fp, r3, lsl #1
|
|
ldrh r2, [r2]
|
|
ldrb r1, [r5] @ zero_extendqisi2
|
|
ldrh r3, [r3, #94]
|
|
str r5, [sp, #36]
|
|
cmp r1, #2
|
|
mul r2, r2, r3
|
|
str r2, [sp, #64]
|
|
beq .L3609
|
|
ldr r3, .L3717+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L3609
|
|
ldr r3, .L3717+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L3610
|
|
.L3609:
|
|
ldr r3, .L3717+28
|
|
ldrh r3, [r3]
|
|
subs r3, r3, #1
|
|
add r3, r3, r2
|
|
orr r3, r3, r1, lsl #24
|
|
.L3709:
|
|
str r3, [r7, #24]
|
|
.L3611:
|
|
movs r1, #1
|
|
mov r0, r7
|
|
bl sblk_read_page
|
|
ldr r3, [r7, #36]
|
|
adds r2, r3, #1
|
|
beq .L3612
|
|
cmp r3, #512
|
|
beq .L3612
|
|
ldr r2, [r7, #12]
|
|
ldr r3, .L3717+32
|
|
ldr r2, [r2]
|
|
str r3, [sp, #40]
|
|
cmp r2, r3
|
|
beq .L3613
|
|
.L3612:
|
|
mov r0, r7
|
|
bl zbuf_free
|
|
ldr r2, [r7, #12]
|
|
ldr r3, [r7, #4]
|
|
ldr r0, .L3717+36
|
|
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 r2, [r7, #36]
|
|
ldr r3, [r3]
|
|
ldr r1, [r7, #24]
|
|
bl printf
|
|
.L3716:
|
|
ldr r3, .L3717+40
|
|
ldrh r1, [fp, #80]
|
|
ldr r2, [r3]
|
|
movs r3, #0
|
|
strh r3, [r2, r1, lsl #1] @ movhi
|
|
ldr r2, [r4]
|
|
mov r4, r3
|
|
ldrh r1, [fp, #80]
|
|
strh r1, [r2, #130] @ movhi
|
|
.L3614:
|
|
ldr r3, .L3717+40
|
|
ldrh r0, [fp, #80]
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
cbnz r3, .L3658
|
|
bl ftl_dump_write_open_sblk
|
|
.L3658:
|
|
mov r2, r4
|
|
ldrh r1, [fp, #80]
|
|
movw r5, #65535
|
|
ldr r0, .L3717+44
|
|
ldr r4, .L3717
|
|
bl printf
|
|
strh r5, [fp, #80] @ movhi
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
ldr r3, [r4]
|
|
ldrh r3, [r3, #130]
|
|
cmp r3, r5
|
|
beq .L3659
|
|
ldr r2, .L3717+48
|
|
ldrh r2, [r2]
|
|
cmp r2, r3
|
|
bhi .L3660
|
|
movw r2, #517
|
|
ldr r1, .L3717+52
|
|
ldr r0, .L3717+56
|
|
bl printf
|
|
.L3660:
|
|
ldr r3, [r4]
|
|
ldrh r0, [r3, #130]
|
|
bl ftl_free_sblk
|
|
.L3659:
|
|
ldr r3, .L3717+60
|
|
movs r0, #0
|
|
ldr r2, [r3]
|
|
movw r3, #65535
|
|
strh r3, [r2, #126] @ movhi
|
|
ldr r2, [r4]
|
|
strh r3, [r2, #130] @ movhi
|
|
bl ftl_info_flush
|
|
.L3607:
|
|
add sp, sp, #72
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3610:
|
|
cmp r1, #3
|
|
bne .L3611
|
|
ldr r3, .L3717+64
|
|
ldrh r3, [r3]
|
|
subs r3, r3, #1
|
|
add r3, r3, r2
|
|
orr r3, r3, #50331648
|
|
b .L3709
|
|
.L3613:
|
|
ldr r3, .L3717+68
|
|
ldr r5, .L3717+28
|
|
ldr r6, .L3717+72
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
str r3, [sp, #44]
|
|
ldr r8, .L3717+88
|
|
cmp r2, #2
|
|
bne .L3615
|
|
ldr r3, [sp, #36]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cmp r2, #3
|
|
bne .L3615
|
|
ldrh r2, [r5]
|
|
ldr r10, .L3717+80
|
|
ldr r0, [r8]
|
|
lsls r1, r2, #2
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
ldrh ip, [r10]
|
|
smulbb r2, r2, r1
|
|
ldr r1, [r7, #4]
|
|
sub r2, r2, ip
|
|
lsr ip, ip, #2
|
|
uxth r2, r2
|
|
add r0, r0, ip, lsl #2
|
|
bl ftl_memcpy
|
|
ldr r2, .L3717+20
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbnz r2, .L3616
|
|
ldr r2, .L3717+24
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3617
|
|
.L3616:
|
|
ldr r2, [r7, #24]
|
|
subs r2, r2, #1
|
|
.L3710:
|
|
str r2, [r7, #24]
|
|
movs r1, #1
|
|
mov r0, r7
|
|
bl sblk_read_page
|
|
ldr r2, [r7, #36]
|
|
adds r3, r2, #1
|
|
beq .L3619
|
|
cmp r2, #512
|
|
beq .L3619
|
|
ldr r2, [r7, #12]
|
|
ldr r3, [sp, #40]
|
|
ldr r2, [r2]
|
|
cmp r2, r3
|
|
beq .L3620
|
|
.L3619:
|
|
mov r0, r7
|
|
bl zbuf_free
|
|
b .L3716
|
|
.L3617:
|
|
ldr r1, .L3717+64
|
|
ldr r2, [sp, #64]
|
|
ldrh r1, [r1]
|
|
subs r2, r2, #1
|
|
add r2, r2, r1
|
|
orr r2, r2, #33554432
|
|
b .L3710
|
|
.L3620:
|
|
ldrh r2, [r10]
|
|
.L3711:
|
|
ldr r1, [r7, #4]
|
|
ldr r0, [r8]
|
|
bl ftl_memcpy
|
|
ldrh r3, [r5]
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
ldr r10, .L3717+92
|
|
muls r2, r3, r2
|
|
ldr r3, .L3717+76
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r2, asr #6
|
|
lsl r2, r2, #2
|
|
bge .L3622
|
|
movs r1, #0
|
|
ldr r0, [r10]
|
|
bl ftl_memset
|
|
ldr r3, [sp, #44]
|
|
ldrb r8, [r3] @ zero_extendqisi2
|
|
cmp r8, #1
|
|
bne .L3663
|
|
ldrh r1, [r5]
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
ldr r2, .L3717+80
|
|
ldr r0, [r10]
|
|
muls r3, r1, r3
|
|
ldrh r4, [r2]
|
|
ldr r1, [r7, #4]
|
|
lsls r3, r3, #2
|
|
subs r4, r4, r3
|
|
add r1, r1, r3
|
|
mov r2, r4
|
|
bl ftl_memcpy
|
|
str r8, [sp, #44]
|
|
.L3623:
|
|
ldr r3, .L3717+64
|
|
ldrh r3, [r3]
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #36]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
str r3, [sp, #36]
|
|
bne .L3624
|
|
ldr r3, .L3717+84
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3625
|
|
.L3624:
|
|
ldr r3, .L3717+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3626
|
|
.L3625:
|
|
ldr r3, [sp, #36]
|
|
ldr r2, [sp, #40]
|
|
muls r3, r2, r3
|
|
str r3, [sp, #40]
|
|
movs r3, #1
|
|
str r3, [sp, #36]
|
|
.L3626:
|
|
movs r5, #0
|
|
str r5, [sp, #48]
|
|
.L3627:
|
|
ldr r3, [sp, #40]
|
|
cmp r3, r5
|
|
bls .L3640
|
|
add r3, r5, r5, lsl #1
|
|
mov r10, #0
|
|
subs r3, r3, #1
|
|
str r3, [sp, #52]
|
|
b .L3641
|
|
.L3615:
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
muls r2, r1, r2
|
|
lsls r2, r2, #2
|
|
b .L3711
|
|
.L3622:
|
|
ldr r1, [r7, #4]
|
|
ldr r0, [r10]
|
|
add r1, r1, r2
|
|
bl ftl_memcpy
|
|
movs r3, #0
|
|
.L3712:
|
|
str r3, [sp, #44]
|
|
movs r4, #0
|
|
b .L3623
|
|
.L3663:
|
|
movs r3, #1
|
|
b .L3712
|
|
.L3718:
|
|
.align 2
|
|
.L3717:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR84
|
|
.word .LANCHOR156
|
|
.word .LANCHOR111
|
|
.word .LANCHOR78
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word .LANCHOR85
|
|
.word -178307901
|
|
.word .LC213
|
|
.word .LANCHOR11
|
|
.word .LC215
|
|
.word .LANCHOR8
|
|
.word .LANCHOR225
|
|
.word .LC0
|
|
.word .LANCHOR110
|
|
.word .LANCHOR94
|
|
.word .LANCHOR224
|
|
.word .LANCHOR79
|
|
.word .LANCHOR131
|
|
.word .LANCHOR221
|
|
.word .LANCHOR80
|
|
.word .LANCHOR159
|
|
.word .LANCHOR160
|
|
.L3636:
|
|
ldr r3, [sp, #56]
|
|
ldr r2, .L3719
|
|
ldrh r3, [r3, #96]
|
|
ldrh r2, [r2]
|
|
muls r3, r2, r3
|
|
ldr r2, .L3719+4
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
str r3, [sp, #64]
|
|
cmp r1, #2
|
|
beq .L3628
|
|
ldr r2, .L3719+8
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
beq .L3629
|
|
.L3628:
|
|
subs r2, r5, #1
|
|
add r3, r3, r2
|
|
add r3, r3, r8
|
|
orr r3, r3, r1, lsl #24
|
|
.L3713:
|
|
str r3, [r7, #24]
|
|
movs r1, #1
|
|
mov r0, r7
|
|
bl sblk_read_page
|
|
ldr r3, [sp, #44]
|
|
cbz r3, .L3633
|
|
ldr r3, .L3719+12
|
|
ldr r3, [r3]
|
|
ldr r2, [r3, r6]
|
|
cbnz r2, .L3633
|
|
ldr r2, [r7, #12]
|
|
ldr r2, [r2, #8]
|
|
str r2, [r3, r6]
|
|
.L3633:
|
|
ldr r3, .L3719+16
|
|
ldr r2, [r7, #12]
|
|
ldr r3, [r3]
|
|
ldr r1, [r2, #4]
|
|
ldr r3, [r3, r6]
|
|
cmp r3, r1
|
|
bne .L3634
|
|
ldr r0, .L3719+12
|
|
ldr r0, [r0]
|
|
ldr ip, [r0, r6]
|
|
ldr r0, [r2, #8]
|
|
cmp ip, r0
|
|
beq .L3635
|
|
.L3634:
|
|
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, .L3719+20
|
|
str r2, [sp, #4]
|
|
ldr r2, .L3719+12
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, r6]
|
|
str r2, [sp]
|
|
ldr r2, [r7, #36]
|
|
ldr r1, [r7, #24]
|
|
bl printf
|
|
ldr r3, .L3719+16
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, r6]
|
|
adds r3, r3, #1
|
|
beq .L3635
|
|
mov r0, r7
|
|
bl zbuf_free
|
|
ldr r3, .L3719+24
|
|
movs r1, #0
|
|
ldrh r2, [fp, #80]
|
|
ldr r3, [r3]
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
ldr r3, .L3719+28
|
|
ldrh r2, [fp, #80]
|
|
ldr r3, [r3]
|
|
strh r2, [r3, #130] @ movhi
|
|
b .L3614
|
|
.L3629:
|
|
cmp r1, #3
|
|
bne .L3631
|
|
ldr r2, .L3719+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3632
|
|
ldr r2, [sp, #52]
|
|
add r3, r3, r2
|
|
add r3, r3, r8
|
|
orr r3, r3, #50331648
|
|
b .L3713
|
|
.L3632:
|
|
add r3, r3, r5
|
|
orr r3, r3, r8, lsl #24
|
|
b .L3713
|
|
.L3631:
|
|
add r3, r3, r5
|
|
b .L3713
|
|
.L3635:
|
|
ldr r3, [sp, #48]
|
|
add r8, r8, #1
|
|
adds r6, r6, #4
|
|
adds r3, r3, #1
|
|
str r3, [sp, #48]
|
|
.L3638:
|
|
ldr r3, [sp, #36]
|
|
cmp r3, r8
|
|
bcs .L3636
|
|
add r10, r10, #1
|
|
.L3641:
|
|
ldrb r3, [fp, #89] @ zero_extendqisi2
|
|
cmp r10, r3
|
|
bge .L3637
|
|
ldr r3, [sp, #48]
|
|
mov r8, #1
|
|
lsls r6, r3, #2
|
|
add r3, fp, r10, lsl #1
|
|
str r3, [sp, #56]
|
|
b .L3638
|
|
.L3637:
|
|
ldr r3, .L3719+36
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3639
|
|
adds r5, r5, #1
|
|
.L3639:
|
|
adds r5, r5, #1
|
|
b .L3627
|
|
.L3640:
|
|
mov r0, r7
|
|
movs r4, #0
|
|
bl zbuf_free
|
|
ldr r3, .L3719+24
|
|
mov r10, r4
|
|
ldr r0, .L3719+40
|
|
mov r8, r4
|
|
ldrh r1, [fp, #80]
|
|
ldr r2, [r3]
|
|
ldrh r0, [r0]
|
|
ldrb r3, [fp, #89] @ zero_extendqisi2
|
|
smulbb r3, r3, r0
|
|
strh r3, [r2, r1, lsl #1] @ movhi
|
|
.L3642:
|
|
ldr r3, [sp, #40]
|
|
cmp r3, r10
|
|
bls .L3656
|
|
add r2, r10, r10, lsl #1
|
|
movs r7, #0
|
|
subs r3, r2, #1
|
|
str r3, [sp, #52]
|
|
b .L3657
|
|
.L3652:
|
|
ldr r3, .L3719+16
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, r8, lsl #2]
|
|
str r3, [sp, #44]
|
|
adds r3, r3, #1
|
|
beq .L3643
|
|
ldr r3, .L3719+12
|
|
ldr r0, [sp, #44]
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, r8, lsl #2]
|
|
str r3, [sp, #48]
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #68]
|
|
adds r0, r0, #1
|
|
bne .L3644
|
|
movs r2, #0
|
|
add r1, sp, #68
|
|
ldr r0, [sp, #44]
|
|
bl pm_log2phys
|
|
.L3644:
|
|
ldr r3, [sp, #56]
|
|
ldr r1, .L3719
|
|
ldrh r2, [r3, #96]
|
|
ldrh r1, [r1]
|
|
muls r1, r2, r1
|
|
ldr r2, .L3719+4
|
|
ldrb r0, [r2] @ zero_extendqisi2
|
|
cmp r0, #2
|
|
beq .L3645
|
|
ldr r2, .L3719+8
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
beq .L3646
|
|
.L3645:
|
|
add r2, r10, #-1
|
|
add r2, r2, r1
|
|
add r2, r2, r5
|
|
orr r2, r2, r0, lsl #24
|
|
.L3715:
|
|
str r2, [sp, #64]
|
|
.L3647:
|
|
ldr r2, .L3719+44
|
|
ldr r3, [sp, #48]
|
|
ldrh r1, [r2]
|
|
ldr r2, .L3719+48
|
|
ldrb r0, [r2] @ zero_extendqisi2
|
|
movs r2, #1
|
|
lsr r6, r3, r1
|
|
str r2, [sp, #60]
|
|
rsb r0, r0, #24
|
|
subs r0, r0, r1
|
|
ldr r1, .L3719+52
|
|
lsl r0, r2, r0
|
|
subs r0, r0, #1
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
ands r0, r0, r6
|
|
bl __aeabi_uidiv
|
|
ldr r1, [sp, #68]
|
|
mov r6, r0
|
|
ldr r3, [sp, #48]
|
|
ldr r2, [sp, #60]
|
|
cmp r3, r1
|
|
bne .L3650
|
|
add r1, sp, #64
|
|
ldr r0, [sp, #44]
|
|
bl pm_log2phys
|
|
uxth r0, r6
|
|
adds r4, r4, #1
|
|
bl ftl_vpn_decrement
|
|
.L3651:
|
|
ldr r2, .L3719+56
|
|
uxth r6, r6
|
|
add r8, r8, #1
|
|
ldr r2, [r2]
|
|
add r2, r2, r6, lsl #2
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
ands r2, r2, #224
|
|
bne .L3643
|
|
ldr r1, .L3719+24
|
|
ldr r1, [r1]
|
|
ldrh r0, [r1, r6, lsl #1]
|
|
cbz r0, .L3643
|
|
strh r2, [r1, r6, lsl #1] @ movhi
|
|
.L3643:
|
|
adds r5, r5, #1
|
|
.L3654:
|
|
ldr r3, [sp, #36]
|
|
cmp r3, r5
|
|
bcs .L3652
|
|
adds r7, r7, #1
|
|
.L3657:
|
|
ldrb r2, [fp, #89] @ zero_extendqisi2
|
|
cmp r7, r2
|
|
bge .L3653
|
|
add r3, fp, r7, lsl #1
|
|
movs r5, #1
|
|
str r3, [sp, #56]
|
|
b .L3654
|
|
.L3646:
|
|
cmp r0, #3
|
|
bne .L3648
|
|
ldr r2, .L3719+32
|
|
lsls r0, r5, #24
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3649
|
|
ldr r3, [sp, #52]
|
|
adds r2, r1, r3
|
|
add r2, r2, r5
|
|
.L3714:
|
|
orrs r2, r2, r0
|
|
b .L3715
|
|
.L3649:
|
|
add r2, r10, r1
|
|
b .L3714
|
|
.L3648:
|
|
add r1, r1, r10
|
|
str r1, [sp, #64]
|
|
b .L3647
|
|
.L3650:
|
|
ldr r2, [sp, #64]
|
|
cmp r1, r2
|
|
it eq
|
|
addeq r4, r4, #1
|
|
b .L3651
|
|
.L3653:
|
|
ldr r2, .L3719+36
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3655
|
|
add r10, r10, #1
|
|
.L3655:
|
|
add r10, r10, #1
|
|
b .L3642
|
|
.L3656:
|
|
ldr r3, .L3719+24
|
|
ldrh r2, [fp, #80]
|
|
ldr r3, [r3]
|
|
strh r4, [r3, r2, lsl #1] @ movhi
|
|
ldrh r0, [fp, #80]
|
|
bl zftl_insert_data_list
|
|
b .L3614
|
|
.L3720:
|
|
.align 2
|
|
.L3719:
|
|
.word .LANCHOR111
|
|
.word .LANCHOR78
|
|
.word .LANCHOR35
|
|
.word .LANCHOR160
|
|
.word .LANCHOR159
|
|
.word .LC214
|
|
.word .LANCHOR11
|
|
.word .LANCHOR12
|
|
.word .LANCHOR36
|
|
.word .LANCHOR80
|
|
.word .LANCHOR85
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR9
|
|
.L3608:
|
|
ldrh r3, [fp, #130]
|
|
cmp r3, r6
|
|
beq .L3607
|
|
ldr r7, .L3721
|
|
ldr r2, [r7]
|
|
ldrh r2, [r2, #126]
|
|
cmp r2, r3
|
|
bne .L3662
|
|
bl pm_flush
|
|
ldr r3, [r4]
|
|
ldrh r0, [r3, #130]
|
|
bl ftl_free_sblk
|
|
ldr r3, [r7]
|
|
mov r0, r5
|
|
strh r6, [r3, #126] @ movhi
|
|
bl ftl_info_flush
|
|
.L3662:
|
|
ldr r3, [r4]
|
|
movw r2, #65535
|
|
strh r2, [r3, #130] @ movhi
|
|
b .L3607
|
|
.L3722:
|
|
.align 2
|
|
.L3721:
|
|
.word .LANCHOR110
|
|
.size gc_recovery, .-gc_recovery
|
|
.section .text.gc_update_l2p_map_new,"ax",%progbits
|
|
.align 1
|
|
.global gc_update_l2p_map_new
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_update_l2p_map_new, %function
|
|
gc_update_l2p_map_new:
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L3757
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #32
|
|
ldr r2, .L3757+4
|
|
ldr r4, [r3]
|
|
ldrh r2, [r2]
|
|
ldr r7, .L3757+8
|
|
ldrb r1, [r4, #89] @ zero_extendqisi2
|
|
str r3, [sp, #20]
|
|
muls r2, r1, r2
|
|
str r2, [sp, #4]
|
|
ldr r2, [r7]
|
|
tst r2, #256
|
|
beq .L3724
|
|
ldrh r1, [r4, #80]
|
|
ldr r0, .L3757+12
|
|
bl printf
|
|
.L3724:
|
|
ldr r3, .L3757+16
|
|
movs r6, #0
|
|
ldr r0, [sp, #4]
|
|
mov r5, r6
|
|
ldrh r1, [r4, #80]
|
|
ldr r2, [r3]
|
|
ldr r3, .L3757+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
subs r3, r0, r3
|
|
strh r3, [r2, r1, lsl #1] @ movhi
|
|
.L3725:
|
|
ldr r3, [sp, #4]
|
|
cmp r5, r3
|
|
bne .L3734
|
|
ldr r3, [r7]
|
|
ldr r5, .L3757+16
|
|
tst r3, #256
|
|
beq .L3735
|
|
ldr r3, [sp, #20]
|
|
ldrh r0, [r4, #80]
|
|
ldr r2, [r5]
|
|
ldr r1, [r3]
|
|
mov r3, r6
|
|
ldrh r2, [r2, r0, lsl #1]
|
|
ldrh r1, [r1, #80]
|
|
ldr r0, .L3757+24
|
|
bl printf
|
|
.L3735:
|
|
ldrh r2, [r4, #80]
|
|
ldr r3, [r5]
|
|
ldrh r3, [r3, r2, lsl #1]
|
|
cmp r6, r3
|
|
beq .L3736
|
|
movw r2, #898
|
|
ldr r1, .L3757+28
|
|
ldr r0, .L3757+32
|
|
bl printf
|
|
.L3736:
|
|
ldrh r2, [r4, #80]
|
|
ldr r3, [r5]
|
|
strh r6, [r3, r2, lsl #1] @ movhi
|
|
ldrh r0, [r4, #80]
|
|
bl zftl_insert_data_list
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3734:
|
|
ldr r3, .L3757+36
|
|
lsl r8, r5, #2
|
|
ldr r3, [r3]
|
|
ldr r10, [r3, r5, lsl #2]
|
|
cmp r10, #-1
|
|
beq .L3726
|
|
ldr r3, .L3757+40
|
|
mov r0, r10
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
lsls r1, r1, #7
|
|
bl __aeabi_uidiv
|
|
uxth r3, r0
|
|
str r3, [sp, #16]
|
|
ldr r3, [r7]
|
|
lsls r1, r3, #23
|
|
bpl .L3727
|
|
mov r3, r5
|
|
mov r2, r10
|
|
ldr r1, [sp, #16]
|
|
ldr r0, .L3757+44
|
|
bl printf
|
|
.L3727:
|
|
ldr fp, .L3757+36
|
|
str r5, [sp, #12]
|
|
.L3733:
|
|
ldr r3, [fp]
|
|
ldr r10, [r3, r8]
|
|
cmp r10, #-1
|
|
beq .L3728
|
|
ldr r3, .L3757+40
|
|
mov r0, r10
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
lsls r1, r1, #7
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #16]
|
|
uxth r0, r0
|
|
cmp r3, r0
|
|
bne .L3728
|
|
ldr r3, .L3757+48
|
|
mov r0, r10
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, r8]
|
|
str r3, [sp, #8]
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #28]
|
|
adds r0, r0, #1
|
|
bne .L3729
|
|
movs r2, #0
|
|
add r1, sp, #28
|
|
mov r0, r10
|
|
bl pm_log2phys
|
|
.L3729:
|
|
ldr r3, [sp, #28]
|
|
ldr r2, [sp, #8]
|
|
cmp r2, r3
|
|
bne .L3730
|
|
ldr r3, .L3757+52
|
|
add r1, sp, #32
|
|
movs r2, #1
|
|
mov r0, r10
|
|
adds r6, r6, #1
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, r8]
|
|
str r3, [r1, #-8]!
|
|
bl pm_log2phys
|
|
ldr r3, .L3757+56
|
|
ldrh r2, [r3]
|
|
ldr r3, .L3757+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r0, r3, r2
|
|
movs r3, #1
|
|
lsls r3, r3, r0
|
|
ldr r0, [sp, #8]
|
|
subs r3, r3, #1
|
|
lsrs r0, r0, r2
|
|
ldr r2, .L3757+64
|
|
ands r0, r0, r3
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
uxth r0, r0
|
|
.L3756:
|
|
bl ftl_vpn_decrement
|
|
ldr r3, [fp]
|
|
mov r2, #-1
|
|
str r2, [r3, r8]
|
|
.L3728:
|
|
ldr r3, [sp, #12]
|
|
add r8, r8, #4
|
|
adds r3, r3, #1
|
|
str r3, [sp, #12]
|
|
ldr r2, [sp, #12]
|
|
ldr r3, [sp, #4]
|
|
cmp r3, r2
|
|
bne .L3733
|
|
.L3726:
|
|
adds r5, r5, #1
|
|
b .L3725
|
|
.L3730:
|
|
ldr r2, [r7]
|
|
lsls r2, r2, #23
|
|
bpl .L3732
|
|
ldr r2, [sp, #8]
|
|
mov r1, r10
|
|
ldr r0, .L3757+68
|
|
bl printf
|
|
.L3732:
|
|
ldrh r0, [r4, #80]
|
|
b .L3756
|
|
.L3758:
|
|
.align 2
|
|
.L3757:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR85
|
|
.word .LANCHOR19
|
|
.word .LC216
|
|
.word .LANCHOR11
|
|
.word .LANCHOR224
|
|
.word .LC219
|
|
.word .LANCHOR226
|
|
.word .LC0
|
|
.word .LANCHOR159
|
|
.word .LANCHOR131
|
|
.word .LC217
|
|
.word .LANCHOR160
|
|
.word .LANCHOR161
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LC218
|
|
.size gc_update_l2p_map_new, .-gc_update_l2p_map_new
|
|
.section .text.gc_scan_src_blk_one_page,"ax",%progbits
|
|
.align 1
|
|
.global gc_scan_src_blk_one_page
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_scan_src_blk_one_page, %function
|
|
gc_scan_src_blk_one_page:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r1, #0
|
|
ldr r4, .L3788
|
|
mov r0, r1
|
|
movw r5, #65535
|
|
ldr r6, .L3788+4
|
|
ldrb r3, [r4, #4] @ zero_extendqisi2
|
|
ldrb ip, [r6] @ zero_extendqisi2
|
|
add r2, r4, r3, lsl #1
|
|
ldrh r7, [r2, #36]
|
|
ldrh r2, [r4, #2]
|
|
.L3760:
|
|
cmp r7, r5
|
|
beq .L3762
|
|
cbz r0, .L3763
|
|
strh r2, [r4, #2] @ movhi
|
|
.L3763:
|
|
cbz r1, .L3764
|
|
strb r3, [r4, #4]
|
|
.L3764:
|
|
ldr r8, .L3788+24
|
|
movs r0, #1
|
|
ldr r10, .L3788+28
|
|
mov fp, #1
|
|
bl buf_alloc
|
|
mov r5, r0
|
|
.L3765:
|
|
ldrb r1, [r4, #6] @ zero_extendqisi2
|
|
cmp fp, r1
|
|
ble .L3775
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
ldrb r3, [r4, #4] @ zero_extendqisi2
|
|
ldrb r2, [r6] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r2, r3
|
|
strb r3, [r4, #4]
|
|
bne .L3759
|
|
ldrh r3, [r4, #2]
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #2] @ movhi
|
|
movs r3, #0
|
|
strb r3, [r4, #4]
|
|
.L3759:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3762:
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
cmp r3, ip
|
|
itt eq
|
|
moveq r3, #0
|
|
addeq r2, r2, #1
|
|
add r1, r4, r3, lsl #1
|
|
it eq
|
|
uxtheq r2, r2
|
|
ldrh r7, [r1, #36]
|
|
it eq
|
|
moveq r0, #1
|
|
movs r1, #1
|
|
b .L3760
|
|
.L3775:
|
|
ldrh r3, [r8]
|
|
cmp r1, #2
|
|
mul r2, r7, r3
|
|
bne .L3766
|
|
ldrh r3, [r4, #2]
|
|
add r3, r2, r3, lsl #1
|
|
subs r3, r3, #1
|
|
.L3787:
|
|
ldr r2, .L3788+8
|
|
add r3, r3, fp
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
orr r3, r3, r2, lsl #24
|
|
.L3786:
|
|
str r3, [r5, #24]
|
|
movs r1, #1
|
|
mov r0, r5
|
|
bl sblk_read_page
|
|
ldr r3, [r5, #36]
|
|
adds r2, r3, #1
|
|
beq .L3772
|
|
cmp r3, #512
|
|
beq .L3772
|
|
ldr r3, [r5, #12]
|
|
ldr r3, [r3, #4]
|
|
mov r0, r3
|
|
str r3, [sp, #4]
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #12]
|
|
adds r0, r0, #1
|
|
ldr r3, [sp, #4]
|
|
bne .L3774
|
|
ldr r2, .L3788+12
|
|
ldr r2, [r2]
|
|
cmp r3, r2
|
|
bcs .L3774
|
|
movs r2, #0
|
|
add r1, sp, #12
|
|
mov r0, r3
|
|
bl pm_log2phys
|
|
.L3774:
|
|
ldr r2, [r5, #24]
|
|
ldr r3, [sp, #12]
|
|
cmp r2, r3
|
|
bne .L3772
|
|
ldr r1, .L3788+16
|
|
ldrh r3, [r4, #20]
|
|
ldr r1, [r1]
|
|
str r2, [r1, r3, lsl #2]
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #20] @ movhi
|
|
.L3772:
|
|
ldrh r3, [r4, #22]
|
|
add fp, fp, #1
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #22] @ movhi
|
|
b .L3765
|
|
.L3766:
|
|
cmp r1, #3
|
|
bne .L3768
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cbnz r3, .L3769
|
|
ldr r3, .L3788+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3770
|
|
.L3769:
|
|
ldrh r3, [r4, #2]
|
|
add r3, r3, r3, lsl #1
|
|
subs r3, r3, #1
|
|
add r3, r3, r2
|
|
b .L3787
|
|
.L3770:
|
|
ldrh r3, [r4, #2]
|
|
add r3, r3, r2
|
|
orr r3, r3, fp, lsl #24
|
|
b .L3786
|
|
.L3768:
|
|
ldrh r3, [r4, #2]
|
|
add r3, r3, r2
|
|
b .L3786
|
|
.L3789:
|
|
.align 2
|
|
.L3788:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR79
|
|
.word .LANCHOR78
|
|
.word .LANCHOR128
|
|
.word .LANCHOR76
|
|
.word .LANCHOR36
|
|
.word .LANCHOR111
|
|
.word .LANCHOR35
|
|
.size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page
|
|
.section .text.gc_scan_src_blk,"ax",%progbits
|
|
.align 1
|
|
.global gc_scan_src_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_scan_src_blk, %function
|
|
gc_scan_src_blk:
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movw r3, #65535
|
|
ldr r4, .L3855
|
|
sub sp, sp, #32
|
|
ldrh r2, [r4]
|
|
cmp r2, r3
|
|
bne .L3791
|
|
movw r2, #1505
|
|
ldr r1, .L3855+4
|
|
ldr r0, .L3855+8
|
|
bl printf
|
|
.L3791:
|
|
ldrh r1, [r4]
|
|
movw r3, #65535
|
|
cmp r1, r3
|
|
beq .L3823
|
|
ldr r3, .L3855+12
|
|
ldr r3, [r3]
|
|
lsls r0, r3, #23
|
|
bpl .L3793
|
|
ldr r3, .L3855+16
|
|
ldr r0, .L3855+20
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, r1, lsl #1]
|
|
bl printf
|
|
.L3793:
|
|
ldr r1, .L3855+24
|
|
ldrh r0, [r4]
|
|
bl ftl_get_blk_list_in_sblk
|
|
uxtb r0, r0
|
|
strb r0, [r4, #5]
|
|
cbnz r0, .L3794
|
|
movw r3, #65535
|
|
strh r3, [r4] @ movhi
|
|
.L3790:
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3794:
|
|
ldr r5, .L3855+28
|
|
ldrh r3, [r4]
|
|
ldr r2, [r5]
|
|
add r2, r2, r3, lsl #2
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
and r2, r2, #224
|
|
cmp r2, #32
|
|
beq .L3795
|
|
cmp r2, #224
|
|
beq .L3795
|
|
cbz r2, .L3796
|
|
ldr r2, .L3855+32
|
|
ldr r2, [r2]
|
|
ldrh r1, [r2, #16]
|
|
cmp r1, r3
|
|
beq .L3795
|
|
ldrh r1, [r2, #48]
|
|
cmp r1, r3
|
|
beq .L3795
|
|
ldrh r2, [r2, #80]
|
|
cmp r2, r3
|
|
bne .L3849
|
|
.L3795:
|
|
movw r3, #65535
|
|
movs r0, #0
|
|
strh r3, [r4] @ movhi
|
|
strh r0, [r4, #20] @ movhi
|
|
b .L3790
|
|
.L3796:
|
|
ldr r5, .L3855+16
|
|
ldr r1, [r5]
|
|
ldrh r3, [r1, r3, lsl #1]
|
|
cbz r3, .L3798
|
|
movw r2, #1530
|
|
ldr r1, .L3855+4
|
|
ldr r0, .L3855+8
|
|
bl printf
|
|
.L3798:
|
|
ldrh r2, [r4]
|
|
movs r1, #0
|
|
ldr r3, [r5]
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
b .L3795
|
|
.L3849:
|
|
add r0, r4, r0, lsl #1
|
|
movw r3, #65535
|
|
ldrh r7, [r0, #34]
|
|
cmp r7, r3
|
|
bne .L3799
|
|
movw r2, #1540
|
|
ldr r1, .L3855+4
|
|
ldr r0, .L3855+8
|
|
bl printf
|
|
.L3799:
|
|
ldrh ip, [r4]
|
|
ldr r1, [r5]
|
|
ldr r6, .L3855+36
|
|
ldr r0, .L3855+40
|
|
add r1, r1, ip, lsl #2
|
|
ldrh r3, [r6]
|
|
ldrh r2, [r0]
|
|
mov r8, r6
|
|
ldrb r1, [r1, #2] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
str r0, [sp, #12]
|
|
uxth r3, r3
|
|
and r1, r1, #224
|
|
muls r2, r7, r2
|
|
cmp r1, #160
|
|
bne .L3824
|
|
ldr r1, .L3855+44
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cmp r1, #2
|
|
it eq
|
|
ldreq r3, .L3855+48
|
|
uxth r10, r1
|
|
orr r2, r2, r1, lsl #24
|
|
ldr r1, .L3855+52
|
|
it eq
|
|
ldrheq r3, [r3]
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
itt eq
|
|
addeq r3, r3, #-1
|
|
uxtheq r3, r3
|
|
cbnz r1, .L3802
|
|
ldr r1, .L3855+56
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L3800
|
|
.L3802:
|
|
ldr r3, .L3855+48
|
|
ldrh r3, [r3]
|
|
subs r3, r3, #1
|
|
uxth r3, r3
|
|
.L3800:
|
|
movs r6, #0
|
|
strb r10, [r4, #6]
|
|
orrs r3, r3, r2
|
|
movs r0, #1
|
|
str r3, [sp, #4]
|
|
strh r6, [r4, #2] @ movhi
|
|
strb r6, [r4, #4]
|
|
strh r6, [r4, #22] @ movhi
|
|
strh r6, [r4, #24] @ movhi
|
|
bl buf_alloc
|
|
ldr r3, [sp, #4]
|
|
mov r5, r0
|
|
movs r1, #1
|
|
str r3, [r0, #24]
|
|
bl sblk_read_page
|
|
ldr r3, [r5, #36]
|
|
strh r6, [r4, #20] @ movhi
|
|
adds r1, r3, #1
|
|
beq .L3853
|
|
cmp r3, #512
|
|
bne .L3804
|
|
.L3853:
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
.L3851:
|
|
mov r0, #-1
|
|
b .L3790
|
|
.L3824:
|
|
mov r10, #1
|
|
b .L3800
|
|
.L3804:
|
|
ldr r6, [r5, #12]
|
|
ldr r3, .L3855+60
|
|
ldr r2, [r6]
|
|
str r3, [sp, #16]
|
|
cmp r2, r3
|
|
beq .L3805
|
|
movw r2, #1578
|
|
.L3854:
|
|
ldr r1, .L3855+4
|
|
ldr r0, .L3855+8
|
|
bl printf
|
|
b .L3853
|
|
.L3805:
|
|
ldr r3, .L3855+64
|
|
ldrh r2, [r8]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
smulbb r2, r2, r3
|
|
smulbb r2, r2, r10
|
|
uxth r2, r2
|
|
str r2, [sp, #8]
|
|
ldr r2, .L3855+68
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #2
|
|
bne .L3806
|
|
cmp r10, #3
|
|
bne .L3806
|
|
ldr r2, .L3855+48
|
|
ldr fp, .L3855+84
|
|
ldr r10, .L3855+76
|
|
ldrh r6, [r2]
|
|
ldrh r0, [fp]
|
|
ldr r1, [r5, #4]
|
|
lsls r6, r6, #2
|
|
smulbb r6, r6, r3
|
|
ldr r3, [r10]
|
|
subs r6, r6, r0
|
|
lsrs r0, r0, #2
|
|
uxth r6, r6
|
|
add r0, r3, r0, lsl #2
|
|
mov r2, r6
|
|
bl ftl_memcpy
|
|
ldr r3, [r5, #12]
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #20]
|
|
cbz r3, .L3807
|
|
mov r1, r6
|
|
ldr r0, [r5, #4]
|
|
bl js_hash
|
|
ldr r3, [sp, #20]
|
|
cmp r3, r0
|
|
beq .L3807
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
ldr r1, [r5, #12]
|
|
mov r3, r6
|
|
.L3852:
|
|
ldr r2, [r5, #24]
|
|
ldr r1, [r1, #4]
|
|
ldr r0, .L3855+72
|
|
bl printf
|
|
b .L3851
|
|
.L3807:
|
|
ldr r3, .L3855+52
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L3808
|
|
ldr r3, .L3855+56
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L3809
|
|
.L3808:
|
|
ldr r3, [sp, #4]
|
|
subs r3, r3, #1
|
|
str r3, [r5, #24]
|
|
.L3810:
|
|
movs r1, #1
|
|
mov r0, r5
|
|
bl sblk_read_page
|
|
ldr r3, [r5, #36]
|
|
adds r2, r3, #1
|
|
beq .L3853
|
|
cmp r3, #512
|
|
beq .L3853
|
|
ldr r3, [r5, #12]
|
|
ldr r2, [sp, #16]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
beq .L3813
|
|
movw r2, #1619
|
|
b .L3854
|
|
.L3809:
|
|
ldr r2, [sp, #12]
|
|
ldrh r3, [r8]
|
|
ldrh r2, [r2]
|
|
subs r3, r3, #1
|
|
uxth r3, r3
|
|
muls r7, r2, r7
|
|
orr r3, r3, #33554432
|
|
orrs r7, r7, r3
|
|
str r7, [r5, #24]
|
|
b .L3810
|
|
.L3813:
|
|
ldrh r2, [fp]
|
|
ldr r1, [r5, #4]
|
|
ldr r0, [r10]
|
|
.L3850:
|
|
ldr r7, .L3855+76
|
|
mov r8, #0
|
|
bl ftl_memcpy
|
|
ldr r10, .L3855+88
|
|
ldr r6, [r7]
|
|
ldr fp, .L3855+92
|
|
subs r6, r6, #4
|
|
.L3816:
|
|
ldr r3, [sp, #8]
|
|
cmp r8, r3
|
|
blt .L3821
|
|
mov r0, r5
|
|
ldr r5, .L3855+16
|
|
bl zbuf_free
|
|
ldrh r1, [r4]
|
|
ldr r3, [r5]
|
|
ldrh r2, [r3, r1, lsl #1]
|
|
ldrh r3, [r4, #20]
|
|
cmp r2, r3
|
|
beq .L3822
|
|
ldr r0, .L3855+80
|
|
bl printf
|
|
.L3822:
|
|
ldr r3, [r5]
|
|
ldrh r1, [r4, #20]
|
|
ldrh r2, [r4]
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
movs r3, #0
|
|
strh r3, [r4, #24] @ movhi
|
|
ldrh r0, [r4, #20]
|
|
b .L3790
|
|
.L3856:
|
|
.align 2
|
|
.L3855:
|
|
.word .LANCHOR70
|
|
.word .LANCHOR227
|
|
.word .LC0
|
|
.word .LANCHOR19
|
|
.word .LANCHOR11
|
|
.word .LC220
|
|
.word .LANCHOR70+36
|
|
.word .LANCHOR9
|
|
.word .LANCHOR12
|
|
.word .LANCHOR94
|
|
.word .LANCHOR111
|
|
.word .LANCHOR78
|
|
.word .LANCHOR85
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word -178307901
|
|
.word .LANCHOR79
|
|
.word .LANCHOR224
|
|
.word .LC221
|
|
.word .LANCHOR76
|
|
.word .LC222
|
|
.word .LANCHOR221
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.L3806:
|
|
ldr r3, [sp, #8]
|
|
ldr r8, [r5, #4]
|
|
lsls r7, r3, #2
|
|
mov r0, r8
|
|
mov r1, r7
|
|
bl js_hash
|
|
ldr r3, [r6, #4]
|
|
cmp r3, r0
|
|
beq .L3815
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
ldr r1, [r5, #12]
|
|
mov r3, r7
|
|
b .L3852
|
|
.L3815:
|
|
ldr r3, .L3857
|
|
mov r2, r7
|
|
mov r1, r8
|
|
ldr r0, [r3]
|
|
b .L3850
|
|
.L3821:
|
|
ldr r0, [r6, #4]!
|
|
adds r3, r0, #1
|
|
beq .L3818
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #28]
|
|
adds r0, r0, #1
|
|
bne .L3819
|
|
movs r2, #0
|
|
add r1, sp, #28
|
|
ldr r0, [r6]
|
|
bl pm_log2phys
|
|
.L3819:
|
|
ldrb r3, [fp] @ zero_extendqisi2
|
|
ldr r2, [sp, #28]
|
|
ldrh r1, [r10]
|
|
rsb r3, r3, #24
|
|
str r2, [sp, #4]
|
|
subs r0, r3, r1
|
|
movs r3, #1
|
|
lsls r3, r3, r0
|
|
lsr r0, r2, r1
|
|
ldr r1, .L3857+4
|
|
subs r3, r3, #1
|
|
ands r0, r0, r3
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
ldrh r3, [r4]
|
|
ldr r2, [sp, #4]
|
|
cmp r0, r3
|
|
bne .L3818
|
|
ldrh r3, [r4, #20]
|
|
ldr r1, [r7]
|
|
str r2, [r1, r3, lsl #2]
|
|
adds r3, r3, #1
|
|
strh r3, [r4, #20] @ movhi
|
|
.L3818:
|
|
add r8, r8, #1
|
|
b .L3816
|
|
.L3823:
|
|
movs r0, #0
|
|
b .L3790
|
|
.L3858:
|
|
.align 2
|
|
.L3857:
|
|
.word .LANCHOR76
|
|
.word .LANCHOR75
|
|
.size gc_scan_src_blk, .-gc_scan_src_blk
|
|
.section .text.gc_scan_static_data,"ax",%progbits
|
|
.align 1
|
|
.global gc_scan_static_data
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_scan_static_data, %function
|
|
gc_scan_static_data:
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr}
|
|
ldr r4, .L3875
|
|
ldr r3, [r4]
|
|
ldr r2, [r3, #544]
|
|
adds r2, r2, #1
|
|
beq .L3860
|
|
ldr r8, .L3875+28
|
|
movs r6, #0
|
|
ldr r10, .L3875+32
|
|
.L3868:
|
|
ldr r3, [r4]
|
|
movs r2, #0
|
|
add r1, sp, #4
|
|
uxth r7, r6
|
|
ldr r0, [r3, #544]
|
|
bl pm_log2phys
|
|
ldr r3, [sp, #4]
|
|
adds r3, r3, #1
|
|
beq .L3861
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
ldr r3, [sp, #4]
|
|
mov r5, r0
|
|
movs r1, #1
|
|
str r3, [r0, #24]
|
|
bl sblk_read_page
|
|
ldr r3, [r5, #36]
|
|
cmp r3, #256
|
|
bne .L3862
|
|
ldr r3, .L3875+4
|
|
mov fp, #1
|
|
ldr r2, [sp, #4]
|
|
ldrh r0, [r3]
|
|
ldr r3, .L3875+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r0
|
|
lsr r0, r2, r0
|
|
lsl r3, fp, r3
|
|
ldr r2, .L3875+12
|
|
subs r3, r3, #1
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
ands r0, r0, r3
|
|
bl __aeabi_uidiv
|
|
movs r2, #0
|
|
mov r1, fp
|
|
uxth r0, r0
|
|
bl gc_add_sblk
|
|
.L3862:
|
|
ldr r2, [r5, #12]
|
|
ldr r3, [r4]
|
|
ldr r2, [r2, #4]
|
|
ldr r3, [r3, #544]
|
|
cmp r2, r3
|
|
beq .L3863
|
|
movw r2, #2163
|
|
mov r1, r8
|
|
mov r0, r10
|
|
bl printf
|
|
.L3863:
|
|
mov r0, r5
|
|
bl zbuf_free
|
|
.L3861:
|
|
ldr r3, [r4]
|
|
ldr r1, .L3875+16
|
|
ldr r2, [r3, #544]
|
|
ldr r1, [r1]
|
|
adds r2, r2, #1
|
|
cmp r2, r1
|
|
str r2, [r3, #544]
|
|
bcc .L3864
|
|
mov r2, #-1
|
|
str r2, [r3, #544]
|
|
ldr r2, [r3, #548]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #548]
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
movs r0, #0
|
|
bl ftl_info_flush
|
|
.L3859:
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3864:
|
|
ldr r3, [sp, #4]
|
|
adds r3, r3, #1
|
|
bne .L3859
|
|
ldr r3, .L3875+20
|
|
adds r6, r6, #1
|
|
ldrh r3, [r3]
|
|
cmp r7, r3, lsr #2
|
|
bcc .L3868
|
|
b .L3859
|
|
.L3860:
|
|
ldr r2, [r3, #536]
|
|
ldr r1, [r3, #12]
|
|
ldr r0, .L3875+24
|
|
add r2, r2, #12910592
|
|
add r2, r2, #49408
|
|
cmp r1, r2
|
|
bhi .L3870
|
|
ldr r4, [r0]
|
|
ldr r2, [r3, #540]
|
|
ldr r4, [r4, #44]
|
|
add r2, r2, #4992
|
|
adds r2, r2, #8
|
|
cmp r4, r2
|
|
bls .L3859
|
|
.L3870:
|
|
ldr r2, [r0]
|
|
ldr r2, [r2, #44]
|
|
str r1, [r3, #536]
|
|
str r2, [r3, #540]
|
|
movs r2, #0
|
|
str r2, [r3, #544]
|
|
b .L3859
|
|
.L3876:
|
|
.align 2
|
|
.L3875:
|
|
.word .LANCHOR12
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR128
|
|
.word .LANCHOR221
|
|
.word .LANCHOR110
|
|
.word .LANCHOR228
|
|
.word .LC0
|
|
.size gc_scan_static_data, .-gc_scan_static_data
|
|
.section .text.ftl_sblk_dump,"ax",%progbits
|
|
.align 1
|
|
.global ftl_sblk_dump
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_sblk_dump, %function
|
|
ftl_sblk_dump:
|
|
@ args = 0, pretend = 0, frame = 88
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
lsls r3, r0, #2
|
|
ldr r4, .L3920
|
|
sub sp, sp, #128
|
|
lsls r2, r0, #2
|
|
mov r6, r0
|
|
str r3, [sp, #76]
|
|
ldr r3, [r4]
|
|
str r1, [sp, #68]
|
|
ldr r1, [r3, r0, lsl #2]
|
|
adds r2, r3, r2
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
ubfx r1, r1, #11, #8
|
|
str r1, [sp, #4]
|
|
mov r1, r0
|
|
ldrh r3, [r3, r0, lsl #2]
|
|
ldr r0, .L3920+4
|
|
ubfx r3, r3, #0, #11
|
|
str r3, [sp]
|
|
ubfx r3, r2, #3, #2
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
movw r3, #65535
|
|
cmp r6, r3
|
|
beq .L3900
|
|
ldr r3, .L3920+8
|
|
ldrh r3, [r3]
|
|
cmp r3, r6
|
|
bls .L3900
|
|
ldr r3, [r4]
|
|
lsls r2, r6, #2
|
|
add r1, sp, #112
|
|
strh r6, [sp, #96] @ movhi
|
|
mov r0, r6
|
|
movs r5, #0
|
|
add r3, r3, r2
|
|
mov r10, r5
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #160
|
|
itet eq
|
|
ldreq r3, .L3920+12
|
|
movne fp, #1
|
|
ldrbeq fp, [r3] @ zero_extendqisi2
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr r3, .L3920+16
|
|
uxtb r0, r0
|
|
lsls r2, r6, #2
|
|
strb r5, [sp, #101]
|
|
strb r0, [sp, #105]
|
|
mov r1, r6
|
|
ldrh r3, [r3]
|
|
strh r5, [sp, #98] @ movhi
|
|
strh r5, [sp, #106] @ movhi
|
|
smulbb r3, r3, r0
|
|
strh r3, [sp, #102] @ movhi
|
|
ldr r3, [r4]
|
|
add r3, r3, r2
|
|
ldrb r2, [r3, #2] @ zero_extendqisi2
|
|
mov r3, fp
|
|
str r0, [sp]
|
|
ldr r0, .L3920+20
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
mov r7, r0
|
|
str r5, [sp, #48]
|
|
str r5, [sp, #44]
|
|
.L3880:
|
|
ldr r3, .L3920+16
|
|
ldrh r2, [r3]
|
|
uxth r3, r5
|
|
cmp r2, r3
|
|
bls .L3897
|
|
str r3, [sp, #60]
|
|
lsls r3, r3, #1
|
|
subs r2, r3, #1
|
|
str r2, [sp, #80]
|
|
ldr r2, [sp, #60]
|
|
add r3, r3, r2
|
|
subs r3, r3, #1
|
|
str r3, [sp, #72]
|
|
movs r3, #0
|
|
b .L3919
|
|
.L3894:
|
|
ldr r3, [sp, #84]
|
|
add r2, sp, #128
|
|
add r3, r2, r3, lsl #1
|
|
ldrh r3, [r3, #-32]
|
|
str r3, [sp, #56]
|
|
movw r3, #65535
|
|
ldr r2, [sp, #56]
|
|
cmp r2, r3
|
|
beq .L3881
|
|
ldr r3, .L3920+24
|
|
cmp fp, #3
|
|
ldrh r4, [r3]
|
|
mov r3, r2
|
|
mul r3, r3, r4
|
|
bne .L3882
|
|
ldr r2, .L3920+28
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cbz r2, .L3883
|
|
ldr r2, [sp, #72]
|
|
.L3916:
|
|
adds r4, r3, r2
|
|
ldr r2, .L3920+12
|
|
add r3, r4, r8
|
|
ldrb r4, [r2] @ zero_extendqisi2
|
|
orr r4, r3, r4, lsl #24
|
|
b .L3884
|
|
.L3883:
|
|
ldr r2, .L3920+32
|
|
lsl r4, r8, #24
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
beq .L3885
|
|
ldr r2, [sp, #72]
|
|
add r3, r3, r2
|
|
add r3, r3, r8
|
|
.L3917:
|
|
orrs r4, r4, r3
|
|
.L3884:
|
|
movs r1, #1
|
|
str r4, [r7, #24]
|
|
mov r0, r7
|
|
bl sblk_read_page
|
|
ldr r2, [r7, #12]
|
|
ldr r3, [r7, #36]
|
|
ldr r0, .L3920+36
|
|
ldr r1, [r2, #12]
|
|
str r3, [sp, #64]
|
|
ldr r3, [r7, #4]
|
|
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, #60]
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #64]
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
bl printf
|
|
ldr r3, [sp, #64]
|
|
adds r2, r3, #1
|
|
beq .L3902
|
|
cmp r3, #512
|
|
ldr r3, [sp, #44]
|
|
it eq
|
|
moveq r3, #1
|
|
.L3918:
|
|
str r3, [sp, #44]
|
|
ldr r3, .L3920
|
|
ldr r2, [sp, #76]
|
|
ldr r3, [r3]
|
|
add r3, r3, r2
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r3, r3, #224
|
|
cmp r3, #224
|
|
beq .L3881
|
|
cmp r3, #32
|
|
beq .L3881
|
|
ldr r3, [r7, #12]
|
|
ldr r0, [r3, #4]
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #92]
|
|
adds r0, r0, #1
|
|
bne .L3888
|
|
ldr r3, [r7, #12]
|
|
movs r2, #0
|
|
add r1, sp, #92
|
|
ldr r0, [r3, #4]
|
|
bl pm_log2phys
|
|
.L3888:
|
|
ldr r3, [sp, #92]
|
|
cmp r4, r3
|
|
bne .L3889
|
|
ldr r3, [sp, #48]
|
|
mov r1, r4
|
|
ldr r2, [r7, #12]
|
|
ldr r0, .L3920+40
|
|
adds r3, r3, #1
|
|
ldr r2, [r2, #4]
|
|
str r3, [sp, #48]
|
|
bl printf
|
|
.L3889:
|
|
ldr r3, [sp, #68]
|
|
cbz r3, .L3891
|
|
ldr r2, [r3, r10, lsl #2]
|
|
lsl r4, r10, #2
|
|
ldr r3, [r7, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r3, r2
|
|
beq .L3892
|
|
ldr r3, .L3920+44
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L3892
|
|
mov r1, r10
|
|
ldr r0, .L3920+48
|
|
bl printf
|
|
.L3892:
|
|
ldr r3, [sp, #68]
|
|
ldr r2, [r7, #12]
|
|
ldr r3, [r3, r4]
|
|
ldr r2, [r2, #4]
|
|
cmp r2, r3
|
|
beq .L3891
|
|
adds r3, r3, #1
|
|
beq .L3891
|
|
movw r2, #1575
|
|
ldr r1, .L3920+52
|
|
ldr r0, .L3920+56
|
|
bl printf
|
|
.L3891:
|
|
add r10, r10, #1
|
|
.L3881:
|
|
add r8, r8, #1
|
|
uxth r8, r8
|
|
.L3896:
|
|
cmp fp, r8
|
|
bcs .L3894
|
|
ldr r3, [sp, #52]
|
|
adds r3, r3, #1
|
|
.L3919:
|
|
str r3, [sp, #52]
|
|
ldrb r2, [sp, #105] @ zero_extendqisi2
|
|
ldrh r3, [sp, #52]
|
|
cmp r2, r3
|
|
bls .L3895
|
|
adds r3, r3, #8
|
|
mov r8, #1
|
|
str r3, [sp, #84]
|
|
b .L3896
|
|
.L3885:
|
|
uxtah r3, r3, r5
|
|
b .L3917
|
|
.L3882:
|
|
cmp fp, #2
|
|
bne .L3886
|
|
ldr r2, [sp, #80]
|
|
b .L3916
|
|
.L3886:
|
|
uxtah r4, r3, r5
|
|
b .L3884
|
|
.L3902:
|
|
movs r3, #1
|
|
b .L3918
|
|
.L3895:
|
|
adds r5, r5, #1
|
|
b .L3880
|
|
.L3897:
|
|
mov r0, r7
|
|
bl zbuf_free
|
|
ldr r3, .L3920+60
|
|
mov r1, r6
|
|
ldr r0, .L3920+64
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
ldrh r2, [r2, r6, lsl #1]
|
|
bl printf
|
|
ldr r0, [sp, #44]
|
|
.L3877:
|
|
add sp, sp, #128
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3900:
|
|
movs r0, #0
|
|
b .L3877
|
|
.L3921:
|
|
.align 2
|
|
.L3920:
|
|
.word .LANCHOR9
|
|
.word .LC223
|
|
.word .LANCHOR8
|
|
.word .LANCHOR78
|
|
.word .LANCHOR94
|
|
.word .LC224
|
|
.word .LANCHOR111
|
|
.word .LANCHOR35
|
|
.word .LANCHOR36
|
|
.word .LC160
|
|
.word .LC225
|
|
.word .LANCHOR19
|
|
.word .LC226
|
|
.word .LANCHOR229
|
|
.word .LC0
|
|
.word .LANCHOR11
|
|
.word .LC227
|
|
.size ftl_sblk_dump, .-ftl_sblk_dump
|
|
.section .text.zftl_read,"ax",%progbits
|
|
.align 1
|
|
.global zftl_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_read, %function
|
|
zftl_read:
|
|
@ args = 0, pretend = 0, frame = 48
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r6, r3
|
|
ldr r3, .L3974
|
|
mov r4, r0
|
|
sub sp, sp, #72
|
|
mov r5, r1
|
|
str r2, [sp, #24]
|
|
ldr r3, [r3]
|
|
lsls r0, r3, #19
|
|
bpl .L3923
|
|
mov r3, r2
|
|
ldr r0, .L3974+4
|
|
mov r2, r1
|
|
mov r1, r4
|
|
bl printf
|
|
.L3923:
|
|
cmp r4, #0
|
|
bne .L3924
|
|
ldr r3, .L3974+8
|
|
mov r4, #24576
|
|
ldr r3, [r3]
|
|
.L3925:
|
|
cmp r3, r5
|
|
bls .L3959
|
|
ldr r2, [sp, #24]
|
|
cmp r3, r2
|
|
bcc .L3959
|
|
adds r2, r5, r2
|
|
cmp r3, r2
|
|
bcc .L3959
|
|
adds r3, r4, r5
|
|
ldr r1, [sp, #24]
|
|
str r3, [sp, #28]
|
|
ldr r3, .L3974+12
|
|
ldr r0, [sp, #28]
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #24]
|
|
add r3, r3, r1
|
|
str r3, [r2, #24]
|
|
ldr r3, .L3974+16
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
mov r1, r4
|
|
bl __aeabi_uidiv
|
|
ldr r2, [sp, #28]
|
|
mov r1, r4
|
|
ldr r3, [sp, #24]
|
|
str r0, [sp, #36]
|
|
ldr r4, .L3974+20
|
|
add r3, r3, r2
|
|
subs r0, r3, #1
|
|
str r3, [sp, #44]
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #36]
|
|
ldr r5, [sp, #36]
|
|
str r0, [sp, #48]
|
|
rsb r3, r3, #1
|
|
add r3, r3, r0
|
|
str r3, [sp, #32]
|
|
movs r3, #0
|
|
str r3, [sp, #40]
|
|
.L3927:
|
|
ldr r3, [sp, #32]
|
|
cbnz r3, .L3955
|
|
ldr r0, [sp, #40]
|
|
.L3922:
|
|
add sp, sp, #72
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3924:
|
|
cmp r4, #3
|
|
bhi .L3959
|
|
lsls r4, r4, #13
|
|
mov r3, #8192
|
|
b .L3925
|
|
.L3955:
|
|
ldr r3, .L3974+16
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #36]
|
|
cmp r5, r3
|
|
uxth r7, r1
|
|
bne .L3928
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_uidivmod
|
|
uxth r8, r1
|
|
ldr r3, [sp, #24]
|
|
sub r7, r7, r8
|
|
uxth r7, r7
|
|
cmp r3, r7
|
|
bcs .L3929
|
|
ldrh r7, [sp, #24]
|
|
.L3929:
|
|
ldr r2, .L3974+20
|
|
movs r3, #0
|
|
.L3932:
|
|
ldr r1, [r2, #20]
|
|
cmp r5, r1
|
|
bne .L3930
|
|
ldrb r1, [r2, #2] @ zero_extendqisi2
|
|
lsls r1, r1, #28
|
|
bpl .L3930
|
|
movs r2, #48
|
|
lsls r7, r7, #9
|
|
mov r0, r6
|
|
mla r3, r2, r3, r4
|
|
add r6, r6, r7
|
|
mov r2, r7
|
|
ldr r1, [r3, #4]
|
|
add r1, r1, r8, lsl #9
|
|
bl ftl_memcpy
|
|
.L3931:
|
|
ldr r3, [sp, #32]
|
|
adds r5, r5, #1
|
|
subs r3, r3, #1
|
|
str r3, [sp, #32]
|
|
.L3938:
|
|
ldr r3, .L3974+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
bls .L3939
|
|
ldr r3, [sp, #32]
|
|
cmp r3, #0
|
|
bne .L3927
|
|
.L3939:
|
|
ldr r3, .L3974+28
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cmp r1, #0
|
|
beq .L3927
|
|
ldr r3, .L3974+32
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
add r0, r0, r0, lsl #1
|
|
add r0, r4, r0, lsl #4
|
|
bl sblk_read_page
|
|
.L3941:
|
|
ldr r3, .L3974+28
|
|
ldr r8, .L3974+32
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cmp r2, #0
|
|
bne .L3954
|
|
movs r1, #255
|
|
strb r2, [r3]
|
|
strb r1, [r8]
|
|
b .L3927
|
|
.L3928:
|
|
ldr r3, [sp, #48]
|
|
cmp r5, r3
|
|
bne .L3960
|
|
ldr r3, [sp, #28]
|
|
ldr r2, [sp, #24]
|
|
adds r7, r3, r2
|
|
mls r1, r5, r1, r7
|
|
uxtb r7, r1
|
|
.L3960:
|
|
mov r8, #0
|
|
b .L3929
|
|
.L3930:
|
|
adds r3, r3, #1
|
|
adds r2, r2, #48
|
|
cmp r3, #32
|
|
bne .L3932
|
|
mov r0, r5
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #68]
|
|
adds r0, r0, #1
|
|
bne .L3933
|
|
movs r2, #0
|
|
add r1, sp, #68
|
|
mov r0, r5
|
|
bl pm_log2phys
|
|
.L3933:
|
|
ldr r3, [sp, #68]
|
|
adds r3, r3, #1
|
|
bne .L3934
|
|
ldr r8, .L3974+16
|
|
movs r7, #0
|
|
.L3935:
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
cmp r7, r3
|
|
bcs .L3931
|
|
mla r3, r3, r5, r7
|
|
ldr r2, [sp, #28]
|
|
cmp r2, r3
|
|
bhi .L3936
|
|
ldr r2, [sp, #44]
|
|
cmp r2, r3
|
|
bls .L3936
|
|
mov r0, r6
|
|
add r6, r6, #512
|
|
mov r2, #512
|
|
movs r1, #0
|
|
bl ftl_memset
|
|
.L3936:
|
|
adds r7, r7, #1
|
|
b .L3935
|
|
.L3934:
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
cmp r0, #0
|
|
beq .L3938
|
|
ldr r2, .L3974+12
|
|
ldr r1, [r2]
|
|
ldr r2, [r1, #40]
|
|
adds r2, r2, #1
|
|
str r2, [r1, #40]
|
|
ldr r2, [sp, #68]
|
|
str r6, [r0, #8]
|
|
add r6, r6, r7, lsl #9
|
|
str r5, [r0, #20]
|
|
str r2, [r0, #24]
|
|
str r2, [r0, #28]
|
|
strb r7, [r0, #40]
|
|
strb r8, [r0, #41]
|
|
bl zftl_add_read_buf
|
|
b .L3931
|
|
.L3975:
|
|
.align 2
|
|
.L3974:
|
|
.word .LANCHOR19
|
|
.word .LC228
|
|
.word .LANCHOR67
|
|
.word .LANCHOR110
|
|
.word .LANCHOR131
|
|
.word .LANCHOR55
|
|
.word .LANCHOR57
|
|
.word .LANCHOR134
|
|
.word .LANCHOR133
|
|
.L3954:
|
|
ldrb r3, [r8] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L3942
|
|
movw r2, #1281
|
|
ldr r1, .L3976
|
|
ldr r0, .L3976+4
|
|
bl printf
|
|
.L3942:
|
|
ldrb r7, [r8] @ zero_extendqisi2
|
|
add r3, r7, r7, lsl #1
|
|
add r3, r4, r3, lsl #4
|
|
str r3, [sp, #52]
|
|
movs r3, #48
|
|
muls r3, r7, r3
|
|
adds r2, r4, r3
|
|
ldrb r3, [r4, r3] @ zero_extendqisi2
|
|
strb r3, [r8]
|
|
ldr r8, [r2, #36]
|
|
cmp r8, #-1
|
|
bne .L3943
|
|
ldr r3, .L3976+8
|
|
str r8, [sp, #40]
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #552]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #552]
|
|
.L3944:
|
|
movs r2, #48
|
|
mla r2, r2, r7, r4
|
|
ldr r3, [r2, #12]
|
|
ldr r2, [r2, #20]
|
|
ldr r1, [r3, #4]
|
|
cmp r1, r2
|
|
bne .L3945
|
|
cmp r8, #-1
|
|
bne .L3946
|
|
.L3945:
|
|
ldr r0, .L3976+12
|
|
movs r1, #48
|
|
mla r1, r1, r7, r4
|
|
ldr r2, .L3976+16
|
|
ldrb ip, [r0] @ zero_extendqisi2
|
|
mov fp, #1
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldr r8, [r1, #8]
|
|
ldr lr, [r1, #4]
|
|
rsb r0, ip, #24
|
|
ldrb r10, [r1, #40] @ zero_extendqisi2
|
|
lsl fp, fp, ip
|
|
ldr r1, [r1, #24]
|
|
add fp, fp, #-1
|
|
str r2, [sp]
|
|
lsl ip, fp, r0
|
|
cmp r10, r2
|
|
ite cs
|
|
movcs r2, r8
|
|
movcc r2, lr
|
|
lsr r0, r1, r0
|
|
bic r1, r1, ip
|
|
and r0, r0, fp
|
|
uxtb r0, r0
|
|
bl flash_read_page_en
|
|
mov r8, r0
|
|
.L3946:
|
|
movs r3, #48
|
|
mla r3, r3, r7, r4
|
|
ldr r2, [r3, #12]
|
|
ldr r3, [r3, #20]
|
|
ldr r1, [r2, #4]
|
|
cmp r1, r3
|
|
bne .L3948
|
|
cmp r8, #-1
|
|
bne .L3949
|
|
.L3948:
|
|
ldr r1, .L3976+8
|
|
mov r10, #48
|
|
mla r10, r10, r7, r4
|
|
ldr r0, [r1]
|
|
ldr r1, [r0, #552]
|
|
adds r1, r1, #1
|
|
str r1, [r0, #552]
|
|
ldr r0, [r2, #12]
|
|
ldrb r1, [r10, #1] @ zero_extendqisi2
|
|
str r0, [sp, #16]
|
|
ldr r0, [r2, #8]
|
|
str r0, [sp, #12]
|
|
ldr r0, [r2, #4]
|
|
str r0, [sp, #8]
|
|
ldr r2, [r2]
|
|
ldr r0, .L3976+20
|
|
str r2, [sp, #4]
|
|
ldr r2, [r10, #24]
|
|
str r2, [sp]
|
|
mov r2, r8
|
|
bl printf
|
|
ldr r3, .L3976+24
|
|
ldrh r2, [r3]
|
|
ldr r3, .L3976+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
rsb r3, r3, #24
|
|
subs r0, r3, r2
|
|
movs r3, #1
|
|
lsls r3, r3, r0
|
|
ldr r0, [r10, #24]
|
|
subs r3, r3, #1
|
|
lsrs r0, r0, r2
|
|
ldr r2, .L3976+28
|
|
ands r0, r0, r3
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
movs r1, #0
|
|
uxth r0, r0
|
|
bl ftl_sblk_dump
|
|
.L3949:
|
|
movs r3, #48
|
|
mla r3, r3, r7, r4
|
|
ldr r2, [r3, #12]
|
|
ldr r3, [r3, #20]
|
|
ldr r2, [r2, #4]
|
|
cmp r2, r3
|
|
bne .L3950
|
|
cmp r8, #-1
|
|
bne .L3951
|
|
.L3950:
|
|
movw r2, #1317
|
|
ldr r1, .L3976
|
|
ldr r0, .L3976+4
|
|
bl printf
|
|
.L3951:
|
|
movs r3, #48
|
|
mla r7, r3, r7, r4
|
|
ldr r3, .L3976+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
ldrb r2, [r7, #40] @ zero_extendqisi2
|
|
cmp r3, r2
|
|
bls .L3952
|
|
ldrb r1, [r7, #41] @ zero_extendqisi2
|
|
lsls r2, r2, #9
|
|
ldr r3, [r7, #4]
|
|
ldr r0, [r7, #8]
|
|
add r1, r3, r1, lsl #9
|
|
bl ftl_memcpy
|
|
.L3953:
|
|
ldr r1, [sp, #52]
|
|
ldr r0, .L3976+32
|
|
bl buf_remove_buf
|
|
ldr r0, [sp, #52]
|
|
bl zbuf_free
|
|
ldr r2, .L3976+36
|
|
ldrb r3, [r2] @ zero_extendqisi2
|
|
subs r3, r3, #1
|
|
strb r3, [r2]
|
|
b .L3941
|
|
.L3943:
|
|
cmp r8, #256
|
|
bne .L3944
|
|
ldr r1, .L3976+24
|
|
mov fp, #1
|
|
ldr r3, [r2, #24]
|
|
str r2, [sp, #60]
|
|
ldrh r0, [r1]
|
|
ldr r1, .L3976+12
|
|
str r3, [sp, #56]
|
|
ldrb ip, [r1] @ zero_extendqisi2
|
|
ldr r1, .L3976+28
|
|
rsb ip, ip, #24
|
|
sub ip, ip, r0
|
|
lsr r0, r3, r0
|
|
lsl ip, fp, ip
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
add ip, ip, #-1
|
|
and r0, ip, r0
|
|
bl __aeabi_uidiv
|
|
ldr r2, [sp, #60]
|
|
mov r10, r0
|
|
uxth r1, r0
|
|
ldr r3, [sp, #56]
|
|
ldr r0, .L3976+40
|
|
ldr r2, [r2, #20]
|
|
bl printf
|
|
movs r2, #0
|
|
mov r1, fp
|
|
uxth r0, r10
|
|
bl gc_add_sblk
|
|
b .L3944
|
|
.L3952:
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
bic r3, r3, #8
|
|
strb r3, [r7, #2]
|
|
b .L3953
|
|
.L3959:
|
|
mov r0, #-1
|
|
b .L3922
|
|
.L3977:
|
|
.align 2
|
|
.L3976:
|
|
.word .LANCHOR230
|
|
.word .LC0
|
|
.word .LANCHOR12
|
|
.word .LANCHOR31
|
|
.word .LANCHOR131
|
|
.word .LC230
|
|
.word .LANCHOR74
|
|
.word .LANCHOR75
|
|
.word .LANCHOR62
|
|
.word .LANCHOR134
|
|
.word .LC229
|
|
.size zftl_read, .-zftl_read
|
|
.section .text.zftl_sys_read,"ax",%progbits
|
|
.align 1
|
|
.global zftl_sys_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_sys_read, %function
|
|
zftl_sys_read:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_read
|
|
.size zftl_sys_read, .-zftl_sys_read
|
|
.section .text.StorageSysDataLoad,"ax",%progbits
|
|
.align 1
|
|
.global StorageSysDataLoad
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type StorageSysDataLoad, %function
|
|
StorageSysDataLoad:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, lr}
|
|
mov r4, r1
|
|
mov r5, r0
|
|
mov r2, #512
|
|
movs r1, #0
|
|
mov r0, r4
|
|
bl ftl_memset
|
|
mov r3, r4
|
|
mov r1, r5
|
|
movs r2, #1
|
|
movs r0, #2
|
|
pop {r4, r5, r6, lr}
|
|
b zftl_read
|
|
.size StorageSysDataLoad, .-StorageSysDataLoad
|
|
.section .text.FlashBootVendorRead,"ax",%progbits
|
|
.align 1
|
|
.global FlashBootVendorRead
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FlashBootVendorRead, %function
|
|
FlashBootVendorRead:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_read
|
|
.size FlashBootVendorRead, .-FlashBootVendorRead
|
|
.section .text.ftl_read,"ax",%progbits
|
|
.align 1
|
|
.global ftl_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_read, %function
|
|
ftl_read:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b zftl_read
|
|
.size ftl_read, .-ftl_read
|
|
.section .text.ftl_vendor_read,"ax",%progbits
|
|
.align 1
|
|
.global ftl_vendor_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_vendor_read, %function
|
|
ftl_vendor_read:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_read
|
|
.size ftl_vendor_read, .-ftl_vendor_read
|
|
.section .text.zftl_vendor_read,"ax",%progbits
|
|
.align 1
|
|
.global zftl_vendor_read
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_vendor_read, %function
|
|
zftl_vendor_read:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b ftl_vendor_read
|
|
.size zftl_vendor_read, .-zftl_vendor_read
|
|
.global __aeabi_idivmod
|
|
.section .text.ftl_update_l2p_map,"ax",%progbits
|
|
.align 1
|
|
.global ftl_update_l2p_map
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_update_l2p_map, %function
|
|
ftl_update_l2p_map:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L4013
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #24
|
|
ldrb r7, [r0, #9] @ zero_extendqisi2
|
|
mov r6, r0
|
|
ldrh r3, [r3]
|
|
ldr r2, .L4013+4
|
|
muls r7, r3, r7
|
|
ldr r4, [r2]
|
|
ldrh r3, [r0, #12]
|
|
str r2, [sp, #4]
|
|
add r4, r4, r3, lsl #2
|
|
add r3, r7, #1073741824
|
|
subs r3, r3, #1
|
|
ldr r3, [r4, r3, lsl #2]
|
|
adds r3, r3, #1
|
|
beq .L3985
|
|
movw r2, #1998
|
|
ldr r1, .L4013+8
|
|
ldr r0, .L4013+12
|
|
bl printf
|
|
.L3985:
|
|
movs r5, #0
|
|
subs r4, r4, #4
|
|
mov r10, r5
|
|
.L3986:
|
|
cmp r10, r7
|
|
bne .L3992
|
|
ldr r3, .L4013+16
|
|
ldr r4, .L4013+20
|
|
ldr r3, [r3]
|
|
tst r3, #4096
|
|
beq .L3993
|
|
ldrh r1, [r6]
|
|
mov r2, r5
|
|
ldr r3, [r4]
|
|
ldr r0, .L4013+24
|
|
ldrh r3, [r3, r1, lsl #1]
|
|
bl printf
|
|
.L3993:
|
|
ldrh r2, [r6]
|
|
ldr r3, [r4]
|
|
strh r5, [r3, r2, lsl #1] @ movhi
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L3992:
|
|
ldr r8, [r4, #4]!
|
|
cmp r8, #-1
|
|
beq .L3987
|
|
ldr r3, .L4013+28
|
|
mov r0, r8
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
lsls r1, r1, #7
|
|
bl __aeabi_uidiv
|
|
uxth r3, r0
|
|
str r3, [sp]
|
|
ldr r3, .L4013+16
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #19
|
|
bpl .L3988
|
|
mov r3, r10
|
|
mov r2, r8
|
|
ldr r1, [sp]
|
|
ldr r0, .L4013+32
|
|
bl printf
|
|
.L3988:
|
|
mov r8, r4
|
|
mov fp, r10
|
|
.L3991:
|
|
ldr r0, [r8]
|
|
adds r3, r0, #1
|
|
beq .L3989
|
|
ldr r3, .L4013+28
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
lsls r1, r1, #7
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp]
|
|
uxth r0, r0
|
|
cmp r3, r0
|
|
bne .L3989
|
|
ldrb r3, [r6, #9] @ zero_extendqisi2
|
|
mov r0, fp
|
|
mov r1, r3
|
|
str r3, [sp, #12]
|
|
bl __aeabi_idivmod
|
|
ldr r3, .L4013+36
|
|
adds r1, r1, #8
|
|
ldrh r0, [r6, r1, lsl #1]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
muls r2, r0, r2
|
|
mov r1, r3
|
|
mov r0, fp
|
|
str r2, [sp, #8]
|
|
bl __aeabi_idiv
|
|
ldr r2, [sp, #8]
|
|
add r2, r2, r0
|
|
ldr r0, .L4013+40
|
|
str r2, [sp, #20]
|
|
ldr r1, [r8]
|
|
bl pm_ppa_update_check
|
|
cbz r0, .L3990
|
|
ldr r1, [sp, #4]
|
|
mov r3, r7
|
|
movs r2, #4
|
|
ldr r0, .L4013+44
|
|
ldr r1, [r1]
|
|
bl rknand_print_hex
|
|
.L3990:
|
|
adds r5, r5, #1
|
|
movs r2, #1
|
|
uxth r5, r5
|
|
add r1, sp, #20
|
|
ldr r0, [r8]
|
|
bl pm_log2phys
|
|
mov r3, #-1
|
|
str r3, [r8]
|
|
.L3989:
|
|
add fp, fp, #1
|
|
add r8, r8, #4
|
|
cmp r7, fp
|
|
bne .L3991
|
|
.L3987:
|
|
add r10, r10, #1
|
|
b .L3986
|
|
.L4014:
|
|
.align 2
|
|
.L4013:
|
|
.word .LANCHOR94
|
|
.word .LANCHOR117
|
|
.word .LANCHOR231
|
|
.word .LC0
|
|
.word .LANCHOR19
|
|
.word .LANCHOR11
|
|
.word .LC234
|
|
.word .LANCHOR131
|
|
.word .LC231
|
|
.word .LANCHOR111
|
|
.word .LC232
|
|
.word .LC233
|
|
.size ftl_update_l2p_map, .-ftl_update_l2p_map
|
|
.section .text.ftl_alloc_new_data_sblk,"ax",%progbits
|
|
.align 1
|
|
.global ftl_alloc_new_data_sblk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_alloc_new_data_sblk, %function
|
|
ftl_alloc_new_data_sblk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {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 .L4016
|
|
bl zftl_insert_data_list
|
|
.L4016:
|
|
ldr r4, .L4020
|
|
mov r0, r5
|
|
ldr r1, [r4]
|
|
adds r1, r1, #16
|
|
cmp r5, r1
|
|
ite eq
|
|
moveq r1, #2
|
|
movne r1, #3
|
|
bl ftl_open_sblk_init
|
|
ldr r3, [r4]
|
|
ldr r3, [r3, #560]
|
|
cmp r3, r6
|
|
bne .L4018
|
|
movw r5, #65535
|
|
cmp r6, r5
|
|
beq .L4018
|
|
mov r1, r6
|
|
ldr r0, .L4020+4
|
|
bl printf
|
|
ldr r3, [r4]
|
|
ldr r0, [r3, #564]
|
|
bl gc_mark_bad_ppa
|
|
ldr r3, [r4]
|
|
mov r2, #-1
|
|
str r5, [r3, #560]
|
|
str r2, [r3, #564]
|
|
.L4018:
|
|
bl ftl_ext_info_flush
|
|
movs r0, #0
|
|
bl ftl_info_flush
|
|
bl lpa_rebuild_hash
|
|
movs r0, #0
|
|
pop {r4, r5, r6, pc}
|
|
.L4021:
|
|
.align 2
|
|
.L4020:
|
|
.word .LANCHOR12
|
|
.word .LC235
|
|
.size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk
|
|
.section .text.ftl_write_commit,"ax",%progbits
|
|
.align 1
|
|
.global ftl_write_commit
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_write_commit, %function
|
|
ftl_write_commit:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #32
|
|
ldr r8, .L4087+32
|
|
.L4023:
|
|
ldr r1, .L4087
|
|
ldrb r3, [r1] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4025
|
|
ldr r0, .L4087+4
|
|
subs r3, r3, #1
|
|
strb r3, [r1]
|
|
ldrb r2, [r0] @ zero_extendqisi2
|
|
str r2, [sp, #12]
|
|
add r2, r2, r2, lsl #1
|
|
ldr r4, [sp, #12]
|
|
add r2, r8, r2, lsl #4
|
|
str r2, [sp, #20]
|
|
movs r2, #48
|
|
muls r2, r4, r2
|
|
ldr r4, .L4087+8
|
|
ldr r3, [r4]
|
|
add r5, r8, r2
|
|
ldrb r2, [r8, r2] @ zero_extendqisi2
|
|
strb r2, [r0]
|
|
ldr r2, [r5, #20]
|
|
cmp r2, r3
|
|
bcc .L4027
|
|
mov r2, #604
|
|
ldr r1, .L4087+12
|
|
ldr r0, .L4087+16
|
|
bl printf
|
|
.L4027:
|
|
ldr r2, [sp, #12]
|
|
movs r3, #48
|
|
mla r3, r3, r2, r8
|
|
ldr r2, [r4]
|
|
ldr r7, [r3, #20]
|
|
cmp r7, r2
|
|
bcc .L4028
|
|
ldr r0, [sp, #20]
|
|
bl zbuf_free
|
|
mov r0, #-1
|
|
.L4022:
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4028:
|
|
ldr r2, [r3, #12]
|
|
ldr fp, [r3, #4]
|
|
ldrb r5, [r3, #41] @ zero_extendqisi2
|
|
ldrb r3, [r3, #40] @ zero_extendqisi2
|
|
str r2, [sp, #8]
|
|
str r3, [sp, #16]
|
|
ldr r3, .L4087+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4030
|
|
ldr r3, .L4087+24
|
|
ldrb r4, [r3] @ zero_extendqisi2
|
|
add r4, r4, r4, lsl #1
|
|
add r4, r8, r4, lsl #4
|
|
.L4031:
|
|
ldrb r3, [r4] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L4032
|
|
ldr r3, [r4, #20]
|
|
cmp r7, r3
|
|
bne .L4030
|
|
ldr r2, [sp, #16]
|
|
lsls r0, r5, #9
|
|
ldr r3, [r4, #4]
|
|
add r1, fp, r0
|
|
lsls r2, r2, #9
|
|
add r0, r0, r3
|
|
bl ftl_memcpy
|
|
ldr r3, .L4087+28
|
|
movs r0, #2
|
|
ldr r2, [r4, #4]
|
|
ldr r1, [r4, #12]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
adds r1, r1, #16
|
|
subs r3, r3, #2
|
|
add r2, r2, r3, lsl #9
|
|
bl ftl_debug_info_fill
|
|
ldr r0, [sp, #20]
|
|
bl zbuf_free
|
|
b .L4023
|
|
.L4032:
|
|
add r3, r3, r3, lsl #1
|
|
add r4, r8, r3, lsl #4
|
|
b .L4031
|
|
.L4030:
|
|
mov r0, r7
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #28]
|
|
adds r0, r0, #1
|
|
bne .L4034
|
|
movs r2, #0
|
|
add r1, sp, #28
|
|
mov r0, r7
|
|
bl pm_log2phys
|
|
.L4034:
|
|
ldr r10, .L4087+36
|
|
movs r2, #0
|
|
ldr r3, .L4087+32
|
|
mov r4, r2
|
|
ldr r0, [sp, #28]
|
|
ldr r6, [r10]
|
|
add ip, r3, #1536
|
|
adds r6, r6, #16
|
|
.L4036:
|
|
ldr r1, [r3, #20]
|
|
cmp r7, r1
|
|
bne .L4035
|
|
ldrb r1, [r3, #2] @ zero_extendqisi2
|
|
tst r1, #8
|
|
beq .L4035
|
|
ldr r4, [r3, #4]
|
|
movs r2, #1
|
|
ldr r0, [r3, #24]
|
|
bic r1, r1, #8
|
|
strb r1, [r3, #2]
|
|
.L4035:
|
|
adds r3, r3, #48
|
|
cmp r3, ip
|
|
bne .L4036
|
|
cbz r2, .L4037
|
|
str r0, [sp, #28]
|
|
.L4037:
|
|
ldr r3, .L4087+28
|
|
ldr r2, [sp, #16]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r2, r3
|
|
bcs .L4063
|
|
cbz r4, .L4039
|
|
cbz r5, .L4040
|
|
lsls r2, r5, #9
|
|
mov r1, r4
|
|
mov r0, fp
|
|
bl ftl_memcpy
|
|
ldr r6, [r10]
|
|
adds r6, r6, #48
|
|
.L4040:
|
|
ldr r3, [sp, #16]
|
|
add r5, r5, r3
|
|
ldr r3, .L4087+28
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cmp r5, r2
|
|
bcc .L4041
|
|
ldr r6, [r10]
|
|
adds r6, r6, #16
|
|
.L4063:
|
|
mov r10, #0
|
|
b .L4038
|
|
.L4041:
|
|
lsls r0, r5, #9
|
|
subs r2, r2, r5
|
|
lsls r2, r2, #9
|
|
adds r1, r4, r0
|
|
add r0, r0, fp
|
|
bl ftl_memcpy
|
|
b .L4063
|
|
.L4088:
|
|
.align 2
|
|
.L4087:
|
|
.word .LANCHOR66
|
|
.word .LANCHOR65
|
|
.word .LANCHOR128
|
|
.word .LANCHOR232
|
|
.word .LC0
|
|
.word .LANCHOR129
|
|
.word .LANCHOR182
|
|
.word .LANCHOR131
|
|
.word .LANCHOR55
|
|
.word .LANCHOR12
|
|
.L4039:
|
|
ldr r3, [sp, #28]
|
|
adds r3, r3, #1
|
|
beq .L4042
|
|
movs r0, #1
|
|
bl buf_alloc
|
|
ldr r3, [sp, #28]
|
|
mov r4, r0
|
|
str r7, [r0, #20]
|
|
movs r1, #1
|
|
str r3, [r0, #24]
|
|
bl sblk_read_page
|
|
ldr r3, [r4, #12]
|
|
ldr r2, [r3, #12]
|
|
add r10, r2, #1
|
|
ldr r2, [r3, #4]
|
|
cmp r7, r2
|
|
bne .L4043
|
|
ldr r2, [r4, #36]
|
|
adds r2, r2, #1
|
|
bne .L4044
|
|
.L4043:
|
|
ldr r2, .L4089
|
|
movs r0, #1
|
|
ldr r1, [r4, #24]
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
rsb lr, r2, #24
|
|
lsls r0, r0, r2
|
|
subs r2, r0, #1
|
|
lsr r0, r1, lr
|
|
lsl ip, r2, lr
|
|
ands r0, r0, r2
|
|
ldr r2, .L4089+4
|
|
bic r1, r1, ip
|
|
uxtb r0, r0
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
str r2, [sp]
|
|
ldr r2, [r4, #4]
|
|
bl flash_read_page_en
|
|
str r0, [r4, #36]
|
|
.L4044:
|
|
ldr r3, [r4, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r7, r3
|
|
bne .L4045
|
|
ldr r3, [r4, #36]
|
|
adds r3, r3, #1
|
|
bne .L4046
|
|
.L4045:
|
|
ldr r3, .L4089+8
|
|
ldr r0, .L4089+12
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #552]
|
|
adds 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 printf
|
|
movs r3, #4
|
|
ldr r1, [r4, #12]
|
|
mov r2, r3
|
|
ldr r0, .L4089+16
|
|
bl rknand_print_hex
|
|
.L4046:
|
|
ldr r3, [r4, #12]
|
|
ldr r3, [r3, #4]
|
|
cmp r7, r3
|
|
bne .L4047
|
|
ldr r3, [r4, #36]
|
|
adds r3, r3, #1
|
|
bne .L4048
|
|
.L4047:
|
|
mov r2, #696
|
|
ldr r1, .L4089+20
|
|
ldr r0, .L4089+24
|
|
bl printf
|
|
.L4048:
|
|
cbz r5, .L4049
|
|
ldr r3, [sp, #28]
|
|
lsls r2, r5, #9
|
|
adds r3, r3, #1
|
|
beq .L4050
|
|
ldr r1, [r4, #4]
|
|
mov r0, fp
|
|
bl ftl_memcpy
|
|
.L4051:
|
|
ldr r3, .L4089+8
|
|
ldr r6, [r3]
|
|
adds r6, r6, #48
|
|
.L4049:
|
|
ldr r3, [sp, #16]
|
|
add r5, r5, r3
|
|
ldr r3, .L4089+4
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
cmp r5, r2
|
|
bcc .L4052
|
|
bls .L4053
|
|
ldr r3, .L4089+8
|
|
ldr r6, [r3]
|
|
adds r6, r6, #16
|
|
.L4053:
|
|
cbz r4, .L4038
|
|
ldrb r3, [r4, #2] @ zero_extendqisi2
|
|
mov r1, r4
|
|
ldr r0, .L4089+28
|
|
bic r3, r3, #8
|
|
strb r3, [r4, #2]
|
|
bl buf_remove_buf
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
.L4038:
|
|
ldrh r3, [r6, #6]
|
|
cbnz r3, .L4055
|
|
bl ftl_flush
|
|
mov r0, r6
|
|
bl ftl_alloc_new_data_sblk
|
|
.L4055:
|
|
mov r0, r6
|
|
movs r5, #48
|
|
bl ftl_get_new_free_page
|
|
ldr r3, [sp, #12]
|
|
str r0, [sp, #16]
|
|
movs r0, #2
|
|
muls r5, r3, r5
|
|
ldr r3, [sp, #8]
|
|
mov r1, r3
|
|
add r4, r8, r5
|
|
ldr r2, [r4, #16]
|
|
str r10, [r3, #12]
|
|
stm r3, {r2, r7}
|
|
movs r7, #0
|
|
ldr r2, [sp, #28]
|
|
str r2, [r3, #8]
|
|
ldr r3, .L4089+4
|
|
str r7, [r1, #16]!
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
subs r2, r2, #2
|
|
add r2, fp, r2, lsl #9
|
|
bl ftl_debug_info_fill
|
|
ldr r3, [sp, #16]
|
|
ldrh r2, [r6, #12]
|
|
ldr r1, [sp, #20]
|
|
str r3, [r4, #24]
|
|
ldr r3, [sp, #28]
|
|
ldr r0, .L4089+32
|
|
str r3, [r4, #28]
|
|
movs r3, #255
|
|
strb r3, [r8, r5]
|
|
ldrb r3, [r4, #2] @ zero_extendqisi2
|
|
ldr r5, .L4089+36
|
|
orr r3, r3, #10
|
|
strb r3, [r4, #2]
|
|
ldrh r3, [r6, #10]
|
|
add r3, r3, r2
|
|
subs r3, r3, #1
|
|
strh r3, [r4, #32] @ movhi
|
|
bl buf_add_tail
|
|
ldrb r3, [r5] @ zero_extendqisi2
|
|
ldr r2, .L4089+40
|
|
adds r3, r3, #1
|
|
uxtb r3, r3
|
|
str r7, [r2]
|
|
ldrh r2, [r6, #6]
|
|
cmp r3, #2
|
|
strb r3, [r5]
|
|
bhi .L4056
|
|
cmp r2, #1
|
|
bne .L4026
|
|
.L4056:
|
|
ldr r7, .L4089+32
|
|
mov ip, #48
|
|
ldrb r1, [r6, #5] @ zero_extendqisi2
|
|
ldrb r0, [r7] @ zero_extendqisi2
|
|
cmp r1, #0
|
|
mov r1, #0
|
|
ite ne
|
|
movne r4, #2
|
|
moveq r4, #1
|
|
cmp r2, #1
|
|
it eq
|
|
moveq r4, r3
|
|
mov r2, r0
|
|
.L4060:
|
|
cmp r1, r4
|
|
bne .L4061
|
|
uxtb r1, r1
|
|
add r0, r0, r0, lsl #1
|
|
strb r2, [r7]
|
|
subs r3, r3, r1
|
|
add r0, r8, r0, lsl #4
|
|
strb r3, [r5]
|
|
bl sblk_prog_page
|
|
ldrh r3, [r6, #6]
|
|
cmp r3, #1
|
|
bne .L4026
|
|
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
|
|
.L4026:
|
|
ldr r3, .L4089+44
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L4023
|
|
.L4025:
|
|
bl ftl_write_completed
|
|
movs r0, #0
|
|
b .L4022
|
|
.L4052:
|
|
ldr r3, [sp, #28]
|
|
subs r2, r2, r5
|
|
lsls r2, r2, #9
|
|
lsls r0, r5, #9
|
|
adds r3, r3, #1
|
|
beq .L4054
|
|
ldr r1, [r4, #4]
|
|
add r1, r1, r0
|
|
add r0, r0, fp
|
|
bl ftl_memcpy
|
|
b .L4053
|
|
.L4054:
|
|
movs r1, #0
|
|
add r0, r0, fp
|
|
bl ftl_memset
|
|
b .L4053
|
|
.L4061:
|
|
mul r2, ip, r2
|
|
adds r1, r1, #1
|
|
ldrb r2, [r8, r2] @ zero_extendqisi2
|
|
b .L4060
|
|
.L4062:
|
|
lsls r2, r5, #9
|
|
mov r10, r4
|
|
.L4050:
|
|
movs r1, #0
|
|
mov r0, fp
|
|
bl ftl_memset
|
|
b .L4051
|
|
.L4042:
|
|
cmp r5, #0
|
|
bne .L4062
|
|
mov r10, r5
|
|
mov r4, r5
|
|
b .L4049
|
|
.L4090:
|
|
.align 2
|
|
.L4089:
|
|
.word .LANCHOR31
|
|
.word .LANCHOR131
|
|
.word .LANCHOR12
|
|
.word .LC236
|
|
.word .LC208
|
|
.word .LANCHOR232
|
|
.word .LC0
|
|
.word .LANCHOR62
|
|
.word .LANCHOR182
|
|
.word .LANCHOR129
|
|
.word .LANCHOR233
|
|
.word .LANCHOR66
|
|
.size ftl_write_commit, .-ftl_write_commit
|
|
.section .text.gc_do_copy_back,"ax",%progbits
|
|
.align 1
|
|
.global gc_do_copy_back
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type gc_do_copy_back, %function
|
|
gc_do_copy_back:
|
|
@ args = 0, pretend = 0, frame = 72
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L4234
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #80
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
cmp r0, #0
|
|
bne .L4092
|
|
bl buf_alloc
|
|
mov r4, r0
|
|
cmp r0, #0
|
|
beq .L4091
|
|
ldr r5, .L4234+4
|
|
ldrh r2, [r5, #22]
|
|
mov r0, r2
|
|
bl gc_get_src_ppa_from_index
|
|
movs r1, #1
|
|
adds 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]
|
|
adds r0, r3, #1
|
|
beq .L4094
|
|
cmp r3, #512
|
|
bne .L4095
|
|
.L4094:
|
|
mov r2, #1032
|
|
ldr r1, .L4234+8
|
|
ldr r0, .L4234+12
|
|
bl printf
|
|
.L4095:
|
|
ldr r3, [r4, #12]
|
|
ldr r8, [r3, #4]
|
|
mov r0, r8
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #56]
|
|
adds r0, r0, #1
|
|
bne .L4096
|
|
movs r2, #0
|
|
add r1, sp, #56
|
|
mov r0, r8
|
|
bl pm_log2phys
|
|
.L4096:
|
|
ldr r7, [sp, #56]
|
|
cmp r6, r7
|
|
bne .L4097
|
|
ldr r0, .L4234+16
|
|
movs r3, #0
|
|
.L4100:
|
|
adds r2, r0, r3
|
|
ldr r1, [r2, #20]
|
|
cmp r8, r1
|
|
bne .L4098
|
|
ldrb r2, [r2, #2] @ zero_extendqisi2
|
|
lsls r1, r2, #30
|
|
bpl .L4098
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
ldr r3, .L4234+20
|
|
ldr r3, [r3]
|
|
lsls r2, r3, #23
|
|
bpl .L4091
|
|
ldrh r3, [r5, #22]
|
|
mov r2, r6
|
|
mov r1, r8
|
|
ldr r0, .L4234+24
|
|
bl printf
|
|
.L4091:
|
|
add sp, sp, #80
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4098:
|
|
adds r3, r3, #48
|
|
cmp r3, #1536
|
|
bne .L4100
|
|
ldr r3, .L4234+28
|
|
movs r2, #0
|
|
str r8, [r4, #20]
|
|
strb r2, [r4, #41]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
strb r3, [r4, #40]
|
|
ldr r3, [r4, #12]
|
|
ldr r1, [r3]
|
|
str r1, [r4, #16]
|
|
str r2, [r3, #16]
|
|
ldr r3, .L4234+20
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L4101
|
|
mov r0, r8
|
|
bl lpa_hash_get_ppa
|
|
ldrh r3, [r5, #22]
|
|
mov r2, r7
|
|
str r6, [sp]
|
|
mov r1, r8
|
|
str r3, [sp, #4]
|
|
mov r3, r0
|
|
ldr r0, .L4234+32
|
|
bl printf
|
|
.L4101:
|
|
mov r0, r4
|
|
bl ftl_gc_write_buf
|
|
bl ftl_write_commit
|
|
ldr r3, .L4234+36
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #60]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #60]
|
|
ldrh r3, [r5, #24]
|
|
adds r3, r3, #1
|
|
strh r3, [r5, #24] @ movhi
|
|
b .L4091
|
|
.L4097:
|
|
ldr r3, .L4234+20
|
|
ldr r3, [r3]
|
|
lsls r0, r3, #23
|
|
bpl .L4102
|
|
mov r0, r8
|
|
bl lpa_hash_get_ppa
|
|
ldrh r3, [r5, #22]
|
|
mov r2, r7
|
|
str r6, [sp]
|
|
mov r1, r8
|
|
str r3, [sp, #4]
|
|
mov r3, r0
|
|
ldr r0, .L4234+32
|
|
bl printf
|
|
.L4102:
|
|
mov r0, r4
|
|
bl zbuf_free
|
|
b .L4091
|
|
.L4092:
|
|
ldr r3, .L4234+40
|
|
ldr r3, [r3]
|
|
ldrb r6, [r3, #89] @ zero_extendqisi2
|
|
str r3, [sp, #28]
|
|
ldr r3, .L4234+44
|
|
uxth r7, r6
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, r7
|
|
bhi .L4160
|
|
cmp r7, #2
|
|
mov fp, r7
|
|
it cs
|
|
movcs fp, #2
|
|
.L4103:
|
|
ldr r3, .L4234+48
|
|
ldr r5, .L4234+4
|
|
ldrb r8, [r3] @ zero_extendqisi2
|
|
cmp r8, #3
|
|
bne .L4104
|
|
ldr r3, .L4234+52
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4105
|
|
ldrh r3, [r5, #2102]
|
|
mov r1, r6
|
|
mov r0, r3
|
|
str r3, [sp, #12]
|
|
bl __aeabi_idiv
|
|
ldr r3, .L4234+56
|
|
uxth r4, r0
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4106
|
|
ldr r3, .L4234+60
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
cmp r3, #0
|
|
ite eq
|
|
moveq r3, #1
|
|
movne r3, #2
|
|
.L4226:
|
|
str r3, [sp, #16]
|
|
smulbb r7, r7, r4
|
|
ldr r3, [sp, #12]
|
|
subs r7, r3, r7
|
|
uxth r3, r7
|
|
str r3, [sp, #20]
|
|
.L4108:
|
|
ldr r3, [sp, #16]
|
|
ldr r10, .L4234+60
|
|
mul r3, fp, r3
|
|
str r3, [sp, #24]
|
|
ldr r3, .L4234+64
|
|
ldrh r1, [r3]
|
|
ldr r3, .L4234+68
|
|
muls r1, r6, r1
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
movs r6, #0
|
|
subs r1, r1, r3
|
|
ldr r3, .L4234+56
|
|
ldrb r8, [r3] @ zero_extendqisi2
|
|
ldr r3, .L4234+72
|
|
ldr r7, [r3]
|
|
ldrh r3, [r5, #20]
|
|
str r3, [sp, #32]
|
|
ldr r3, .L4234+4
|
|
.L4112:
|
|
ldr r0, [sp, #24]
|
|
uxth ip, r6
|
|
mov r2, ip
|
|
cmp ip, r0
|
|
bge .L4168
|
|
ldr r0, [sp, #12]
|
|
add r2, r2, r0
|
|
cmp r2, r1
|
|
blt .L4113
|
|
cmp r8, #0
|
|
beq .L4168
|
|
ldrh r0, [r10, r4, lsl #1]
|
|
cmp r0, r4
|
|
bcc .L4114
|
|
.L4168:
|
|
movs r3, #1
|
|
str r3, [sp, #24]
|
|
b .L4110
|
|
.L4160:
|
|
mov fp, #1
|
|
b .L4103
|
|
.L4106:
|
|
ldr r3, .L4234+76
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4162
|
|
sub r3, r4, #62
|
|
cmp r3, #2160
|
|
bcs .L4163
|
|
mov r1, r8
|
|
mov r0, r4
|
|
bl __aeabi_uidivmod
|
|
uxth r1, r1
|
|
cmp r1, #0
|
|
ite ne
|
|
movne r3, #1
|
|
moveq r3, #2
|
|
b .L4226
|
|
.L4162:
|
|
movs r3, #1
|
|
b .L4226
|
|
.L4163:
|
|
movs r3, #2
|
|
b .L4226
|
|
.L4105:
|
|
ldr r3, .L4234+80
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4109
|
|
ldrh r3, [r5, #2102]
|
|
add r1, r6, r6, lsl #1
|
|
mov r0, r3
|
|
str r3, [sp, #12]
|
|
bl __aeabi_idiv
|
|
uxth r4, r0
|
|
muls r0, r6, r0
|
|
ldr r3, [sp, #12]
|
|
ldr r2, .L4234+84
|
|
sub r0, r0, r0, lsl #2
|
|
add r0, r0, r3
|
|
smull r2, r3, r0, r2
|
|
sub r0, r3, r0, asr #31
|
|
uxth r3, r0
|
|
str r3, [sp, #20]
|
|
ldr r3, .L4234+88
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4165
|
|
add r4, r4, r4, lsl #1
|
|
uxth r4, r4
|
|
.L4165:
|
|
str r8, [sp, #16]
|
|
b .L4108
|
|
.L4235:
|
|
.align 2
|
|
.L4234:
|
|
.word .LANCHOR84
|
|
.word .LANCHOR70
|
|
.word .LANCHOR234
|
|
.word .LC0
|
|
.word .LANCHOR55
|
|
.word .LANCHOR19
|
|
.word .LC237
|
|
.word .LANCHOR131
|
|
.word .LC238
|
|
.word .LANCHOR110
|
|
.word .LANCHOR12
|
|
.word .LANCHOR79
|
|
.word .LANCHOR78
|
|
.word .LANCHOR35
|
|
.word .LANCHOR124
|
|
.word .LANCHOR235
|
|
.word .LANCHOR85
|
|
.word .LANCHOR224
|
|
.word .LANCHOR160
|
|
.word .LANCHOR217
|
|
.word .LANCHOR83
|
|
.word 1431655766
|
|
.word .LANCHOR36
|
|
.L4109:
|
|
ldrh r10, [r5, #2102]
|
|
mov r1, r6
|
|
mov r0, r10
|
|
bl __aeabi_idiv
|
|
ldr r3, .L4236
|
|
smulbb r7, r0, r7
|
|
str r8, [sp, #16]
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
sub r10, r10, r7
|
|
lsrs r4, r3, #3
|
|
and r3, r3, #7
|
|
str r3, [sp, #24]
|
|
uxth r3, r10
|
|
str r3, [sp, #20]
|
|
mla r3, r6, r4, r3
|
|
add r3, r3, r3, lsl #1
|
|
uxth r3, r3
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #24]
|
|
cmp r3, #1
|
|
beq .L4108
|
|
.L4110:
|
|
ldr r3, [sp, #16]
|
|
ldrh r2, [sp, #16]
|
|
mul r3, fp, r3
|
|
str r3, [sp, #40]
|
|
lsl r3, fp, #1
|
|
uxth r3, r3
|
|
str r3, [sp, #44]
|
|
ldrh r3, [sp, #44]
|
|
smulbb r3, r3, r2
|
|
ldr r2, [sp, #12]
|
|
subs r3, r2, r3
|
|
uxth r3, r3
|
|
str r3, [sp, #48]
|
|
movs r3, #0
|
|
.L4230:
|
|
str r3, [sp, #36]
|
|
ldr r2, [sp, #40]
|
|
ldrh r6, [sp, #36]
|
|
cmp r6, r2
|
|
str r6, [sp, #32]
|
|
blt .L4142
|
|
ldr r3, .L4236+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L4143
|
|
ldr r3, .L4236+8
|
|
ldrb r1, [r3] @ zero_extendqisi2
|
|
cmp r1, #0
|
|
beq .L4144
|
|
movs r1, #0
|
|
subs r2, r2, #1
|
|
.L4145:
|
|
uxth r3, r1
|
|
adds r1, r1, #1
|
|
cmp r3, r2
|
|
blt .L4146
|
|
add r3, sp, #80
|
|
add r2, r3, r2, lsl #2
|
|
ldr r3, [r2, #-24]
|
|
.L4231:
|
|
movs r2, #255
|
|
strb r2, [r3]
|
|
ldrh r3, [sp, #16]
|
|
ldr r0, [sp, #56]
|
|
smulbb r1, fp, r3
|
|
uxtb r1, r1
|
|
bl sblk_prog_page
|
|
b .L4147
|
|
.L4104:
|
|
ldr r3, .L4236+12
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4111
|
|
ldrh r3, [r5, #2102]
|
|
mov r1, r6
|
|
mov r0, r3
|
|
str r3, [sp, #12]
|
|
bl __aeabi_idiv
|
|
uxth r4, r0
|
|
ldr r3, [sp, #12]
|
|
smulbb r7, r7, r4
|
|
subs r7, r3, r7
|
|
uxth r3, r7
|
|
str r3, [sp, #20]
|
|
movs r3, #1
|
|
.L4227:
|
|
str r3, [sp, #16]
|
|
b .L4108
|
|
.L4111:
|
|
ldrh r3, [r5, #2102]
|
|
mov r1, r6
|
|
mov r0, r3
|
|
str r3, [sp, #12]
|
|
bl __aeabi_idiv
|
|
uxth r4, r0
|
|
ldr r3, [sp, #12]
|
|
smulbb r7, r7, r4
|
|
subs r7, r3, r7
|
|
uxth r3, r7
|
|
str r3, [sp, #20]
|
|
movs r3, #2
|
|
b .L4227
|
|
.L4114:
|
|
tst ip, #1
|
|
beq .L4168
|
|
.L4113:
|
|
ldr r0, [r7, r2, lsl #2]
|
|
adds r0, r0, #1
|
|
bne .L4116
|
|
ldrh r5, [r3, #22]
|
|
ldr r0, [sp, #32]
|
|
cmp r5, r0
|
|
bcs .L4091
|
|
cmp r8, #0
|
|
beq .L4117
|
|
ldrh r0, [r10, r4, lsl #1]
|
|
cmp r0, r4
|
|
bcs .L4117
|
|
tst ip, #1
|
|
beq .L4117
|
|
ldr r0, [r7, r0, lsl #2]
|
|
.L4228:
|
|
str r0, [r7, r2, lsl #2]
|
|
.L4116:
|
|
adds r6, r6, #1
|
|
b .L4112
|
|
.L4117:
|
|
mov r0, r5
|
|
str r3, [sp, #36]
|
|
bl gc_get_src_ppa_from_index
|
|
ldr r3, [sp, #36]
|
|
adds r5, r5, #1
|
|
strh r5, [r3, #22] @ movhi
|
|
b .L4228
|
|
.L4142:
|
|
ldr r3, [sp, #12]
|
|
ldr r2, [sp, #32]
|
|
adds r7, r3, r2
|
|
ldr r3, .L4236+16
|
|
ldr r3, [r3]
|
|
ldrb r3, [r3, r7] @ zero_extendqisi2
|
|
cmp r3, #255
|
|
bne .L4119
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
mov r5, r0
|
|
cbnz r0, .L4120
|
|
bl sblk_wait_write_queue_completed
|
|
bl ftl_write_completed
|
|
bl gc_write_completed
|
|
bl gc_free_temp_buf
|
|
mov r0, r5
|
|
bl buf_alloc
|
|
mov r5, r0
|
|
cmp r0, #0
|
|
beq .L4091
|
|
.L4120:
|
|
ldr r3, .L4236+16
|
|
ldrb r2, [r5, #1] @ zero_extendqisi2
|
|
ldr r3, [r3]
|
|
strb r2, [r3, r7]
|
|
ldr r2, .L4236+20
|
|
ldrb r3, [r2, #7] @ zero_extendqisi2
|
|
adds r3, r3, #1
|
|
strb r3, [r2, #7]
|
|
ldr r3, [sp, #12]
|
|
adds r3, r6, r3
|
|
strh r3, [r5, #32] @ movhi
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
strb r3, [r5, #45]
|
|
ldr r3, .L4236+24
|
|
ldrh r2, [r3]
|
|
ldr r3, .L4236+28
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #28]
|
|
ldrb r3, [r3, #89] @ zero_extendqisi2
|
|
muls r3, r2, r3
|
|
subs r3, r3, r0
|
|
cmp r7, r3
|
|
blt .L4121
|
|
ldr r1, .L4236+32
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbz r1, .L4122
|
|
ldr r1, .L4236+36
|
|
ldrh r1, [r1, r4, lsl #1]
|
|
cmp r1, r4
|
|
bcs .L4122
|
|
lsls r1, r6, #31
|
|
bmi .L4121
|
|
.L4122:
|
|
ldr r1, .L4236+40
|
|
cmp r0, #2
|
|
mov ip, #-1
|
|
ldr r1, [r1]
|
|
str ip, [r1, r7, lsl #2]
|
|
bne .L4123
|
|
cmp r7, r3
|
|
ldr r10, .L4236+68
|
|
bne .L4124
|
|
ldrh r2, [r10]
|
|
ldr r0, [r5, #4]
|
|
bl ftl_memcpy
|
|
ldr r3, .L4236+44
|
|
movs r1, #0
|
|
ldr r0, [r5, #12]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
lsls r2, r2, #1
|
|
bl ftl_memset
|
|
ldr r8, [r5, #12]
|
|
ldr r3, .L4236+48
|
|
ldr r0, [r5, #4]
|
|
ldrh r1, [r10]
|
|
str r3, [r8]
|
|
bl js_hash
|
|
ldr r3, .L4236+52
|
|
str r0, [r8, #4]
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #132]
|
|
str r3, [r8, #8]
|
|
movs r3, #0
|
|
str r3, [r8, #12]
|
|
.L4125:
|
|
ldr r3, [r5, #12]
|
|
movs r2, #0
|
|
str r2, [r3, #16]
|
|
.L4119:
|
|
ldr r3, .L4236+16
|
|
add r2, sp, #80
|
|
ldr r3, [r3]
|
|
ldrb r5, [r3, r7] @ zero_extendqisi2
|
|
str r3, [sp, #52]
|
|
ldr r3, [sp, #32]
|
|
add r1, r2, r3, lsl #2
|
|
ldr r2, .L4236+56
|
|
add r3, r5, r5, lsl #1
|
|
add r3, r2, r3, lsl #4
|
|
str r3, [r1, #-24]
|
|
movs r1, #48
|
|
mla r1, r1, r5, r2
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
strb r3, [r1, #45]
|
|
movs r3, #2
|
|
strh r3, [r1, #34] @ movhi
|
|
ldr r3, .L4236+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L4133
|
|
ldr r3, .L4236+8
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4134
|
|
ldr r3, .L4236+32
|
|
and r2, r6, #1
|
|
add r10, r2, r4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4135
|
|
ldr r3, .L4236+36
|
|
ldrh r3, [r3, r4, lsl #1]
|
|
cmp r3, r4
|
|
bcs .L4135
|
|
cmp r2, #0
|
|
it ne
|
|
movne r10, r3
|
|
.L4135:
|
|
ldr r3, .L4236+56
|
|
mov r8, #48
|
|
ldr r1, [sp, #16]
|
|
mov r0, r6
|
|
mla r8, r8, r5, r3
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #20]
|
|
ldr r2, .L4236+60
|
|
uxtah r0, r3, r0
|
|
ldr r3, [sp, #28]
|
|
ldrh r2, [r2]
|
|
add r0, r3, r0, lsl #1
|
|
ldrh r3, [r0, #96]
|
|
mla r10, r2, r3, r10
|
|
orr r3, r10, #50331648
|
|
str r3, [r8, #24]
|
|
.L4140:
|
|
ldr r2, .L4236+56
|
|
movs r3, #48
|
|
mla r5, r3, r5, r2
|
|
ldr r3, .L4236+64
|
|
ldr r3, [r3]
|
|
ldr r1, [r5, #24]
|
|
ldrh r2, [r5, #32]
|
|
str r1, [r3, r2, lsl #2]
|
|
b .L4159
|
|
.L4237:
|
|
.align 2
|
|
.L4236:
|
|
.word .LANCHOR236
|
|
.word .LANCHOR78
|
|
.word .LANCHOR35
|
|
.word .LANCHOR80
|
|
.word .LANCHOR82
|
|
.word .LANCHOR70
|
|
.word .LANCHOR85
|
|
.word .LANCHOR224
|
|
.word .LANCHOR124
|
|
.word .LANCHOR235
|
|
.word .LANCHOR159
|
|
.word .LANCHOR131
|
|
.word -178307901
|
|
.word .LANCHOR12
|
|
.word .LANCHOR55
|
|
.word .LANCHOR111
|
|
.word .LANCHOR161
|
|
.word .LANCHOR221
|
|
.L4124:
|
|
ldr r0, .L4238
|
|
ldrh r3, [r10]
|
|
ldrb r8, [r0] @ zero_extendqisi2
|
|
ldr r0, [r5, #4]
|
|
mul r8, r2, r8
|
|
rsb r8, r3, r8, lsl #2
|
|
lsrs r3, r3, #2
|
|
mov r2, r8
|
|
add r1, r1, r3, lsl #2
|
|
bl ftl_memcpy
|
|
ldr r3, .L4238+4
|
|
movs r1, #0
|
|
ldr r0, [r5, #12]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
lsls r2, r2, #1
|
|
bl ftl_memset
|
|
ldr r10, [r5, #12]
|
|
mov r1, r8
|
|
ldr r3, .L4238+8
|
|
ldr r0, [r5, #4]
|
|
str r3, [r10]
|
|
bl js_hash
|
|
ldr r3, .L4238+12
|
|
str r0, [r10, #4]
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #132]
|
|
str r3, [r10, #8]
|
|
movs r3, #1
|
|
str r3, [r10, #12]
|
|
b .L4125
|
|
.L4123:
|
|
ldr r10, .L4238
|
|
ldr r0, [r5, #4]
|
|
ldrb r8, [r10] @ zero_extendqisi2
|
|
mul r2, r2, r8
|
|
lsls r2, r2, #2
|
|
bl ftl_memcpy
|
|
ldr r3, .L4238+16
|
|
ldr r1, .L4238+4
|
|
ldrh r2, [r3]
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
muls r3, r2, r3
|
|
cmp r1, r3, asr #6
|
|
lsl r2, r3, #2
|
|
ldr r1, .L4238+20
|
|
it lt
|
|
ldrlt r3, .L4238+24
|
|
mov r0, r2
|
|
ldr r1, [r1]
|
|
itt lt
|
|
ldrhlt r3, [r3]
|
|
sublt r2, r3, r2
|
|
ldr r3, [r5, #4]
|
|
add r0, r0, r3
|
|
bl ftl_memcpy
|
|
ldr r3, .L4238+4
|
|
movs r1, #0
|
|
ldr r0, [r5, #12]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
lsls r2, r2, #1
|
|
bl ftl_memset
|
|
ldr r8, [r5, #12]
|
|
ldr r3, .L4238+8
|
|
ldr r2, .L4238
|
|
ldr r0, [r5, #4]
|
|
str r3, [r8]
|
|
ldr r3, .L4238+16
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
muls r1, r3, r1
|
|
lsls r1, r1, #2
|
|
bl js_hash
|
|
ldr r3, .L4238+12
|
|
str r0, [r8, #4]
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, #132]
|
|
str r3, [r8, #8]
|
|
b .L4125
|
|
.L4121:
|
|
ldr r3, .L4238+20
|
|
movs r1, #1
|
|
mov r0, r5
|
|
ldr r3, [r3]
|
|
ldr r3, [r3, r7, lsl #2]
|
|
str r3, [r5, #24]
|
|
bl sblk_read_page
|
|
ldr r3, [r5, #36]
|
|
adds r1, r3, #1
|
|
beq .L4127
|
|
cmp r3, #512
|
|
bne .L4131
|
|
.L4127:
|
|
ldr r3, .L4238+28
|
|
movs r0, #1
|
|
ldr r2, [r5, #24]
|
|
ldrh r1, [r3]
|
|
ldr r3, .L4238+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
lsrs r2, r2, r1
|
|
rsb r3, r3, #24
|
|
subs r3, r3, r1
|
|
ldr r1, .L4238+36
|
|
lsl r3, r0, r3
|
|
subs r3, r3, #1
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
and r0, r3, r2
|
|
bl __aeabi_uidiv
|
|
movs r1, #0
|
|
uxth r0, r0
|
|
bl ftl_sblk_dump
|
|
ldr r3, [r5, #36]
|
|
adds r2, r3, #1
|
|
beq .L4129
|
|
cmp r3, #512
|
|
bne .L4131
|
|
.L4129:
|
|
ldr r3, [r5, #12]
|
|
mov r2, #-1
|
|
str r2, [r3, #4]
|
|
ldr r3, [r5, #36]
|
|
cmp r3, r2
|
|
beq .L4130
|
|
cmp r3, #512
|
|
bne .L4131
|
|
.L4130:
|
|
movw r2, #1223
|
|
ldr r1, .L4238+40
|
|
ldr r0, .L4238+44
|
|
bl printf
|
|
.L4131:
|
|
ldr r3, [r5, #12]
|
|
ldr r2, .L4238+48
|
|
ldr r1, [r3, #4]
|
|
ldr r2, [r2]
|
|
cmp r1, r2
|
|
itt cs
|
|
movcs r2, #-1
|
|
strcs r2, [r3, #4]
|
|
ldr r2, .L4238+52
|
|
ldr r1, [r3, #4]
|
|
ldr r2, [r2]
|
|
str r1, [r2, r7, lsl #2]
|
|
ldr r2, [r5, #24]
|
|
str r2, [r3, #8]
|
|
b .L4125
|
|
.L4134:
|
|
ldr r3, .L4238+56
|
|
ldr r2, .L4238+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4137
|
|
umull r2, r3, r6, r2
|
|
ldr r2, [sp, #20]
|
|
ldr r0, [sp, #28]
|
|
lsrs r3, r3, #1
|
|
uxtah r2, r2, r3
|
|
add r3, r3, r3, lsl #1
|
|
add r2, r0, r2, lsl #1
|
|
ldr r0, .L4238+64
|
|
subs r3, r6, r3
|
|
ldrh r2, [r2, #96]
|
|
ldrh r0, [r0]
|
|
mla r2, r0, r2, r4
|
|
uxtah r3, r2, r3
|
|
.L4233:
|
|
str r3, [r1, #24]
|
|
movs r2, #48
|
|
ldr r3, .L4238+68
|
|
mla r5, r2, r5, r3
|
|
ldr r2, .L4238+60
|
|
ldr r3, .L4238+72
|
|
ldr r1, [r3]
|
|
umull r2, r3, r6, r2
|
|
ldr r2, [r5, #24]
|
|
ldrh r0, [r5, #32]
|
|
lsrs r3, r3, #1
|
|
add r3, r3, r3, lsl #1
|
|
subs r3, r6, r3
|
|
lsls r3, r3, #24
|
|
add r3, r3, #16777216
|
|
orrs r3, r3, r2
|
|
str r3, [r1, r0, lsl #2]
|
|
.L4159:
|
|
ldr r3, .L4238+76
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4141
|
|
ldr r3, .L4238+80
|
|
ldrh r3, [r3, r4, lsl #1]
|
|
cmp r3, r4
|
|
bcs .L4141
|
|
lsls r3, r6, #31
|
|
bpl .L4141
|
|
ldr r2, [sp, #52]
|
|
movs r3, #255
|
|
ldr r1, [sp, #48]
|
|
strb r3, [r2, r7]
|
|
add r2, sp, #80
|
|
ldr r3, [sp, #32]
|
|
add r3, r2, r3, lsl #2
|
|
ldrh r2, [sp, #48]
|
|
ldr r3, [r3, #-24]
|
|
strh r2, [r3, #32] @ movhi
|
|
ldrb r2, [r3, #1] @ zero_extendqisi2
|
|
ldr r3, .L4238+84
|
|
ldr r3, [r3]
|
|
strb r2, [r3, r1]
|
|
mov r2, #-1
|
|
ldr r3, .L4238+20
|
|
ldr r3, [r3]
|
|
str r2, [r3, r7, lsl #2]
|
|
.L4141:
|
|
ldr r3, [sp, #36]
|
|
adds r3, r3, #1
|
|
b .L4230
|
|
.L4137:
|
|
umull r2, r3, r6, r2
|
|
ldr r2, [sp, #20]
|
|
ubfx r3, r3, #1, #16
|
|
add r3, r3, r2
|
|
ldr r2, [sp, #28]
|
|
add r3, r2, r3, lsl #1
|
|
ldr r2, .L4238+64
|
|
ldrh r3, [r3, #96]
|
|
ldrh r2, [r2]
|
|
mla r3, r2, r3, r4
|
|
b .L4233
|
|
.L4133:
|
|
cmp r3, #2
|
|
bne .L4140
|
|
ldr r3, .L4238+88
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4139
|
|
ldr r2, [sp, #20]
|
|
ldr r3, [sp, #32]
|
|
add r3, r3, r2
|
|
ldr r2, [sp, #28]
|
|
add r3, r2, r3, lsl #1
|
|
ldr r2, .L4238+64
|
|
ldrh r3, [r3, #96]
|
|
ldrh r2, [r2]
|
|
mla r3, r2, r3, r4
|
|
.L4229:
|
|
orr r3, r3, #33554432
|
|
str r3, [r1, #24]
|
|
b .L4140
|
|
.L4139:
|
|
ldr r3, [sp, #20]
|
|
ldr r2, [sp, #28]
|
|
add r3, r3, r6, lsr #1
|
|
add r3, r2, r3, lsl #1
|
|
ldr r2, .L4238+64
|
|
ldrh r3, [r3, #96]
|
|
ldrh r2, [r2]
|
|
mla r3, r2, r3, r4
|
|
and r2, r6, #1
|
|
add r3, r3, r2
|
|
b .L4229
|
|
.L4146:
|
|
add r0, sp, #80
|
|
add r5, sp, #80
|
|
add r0, r0, r3, lsl #2
|
|
add r3, r5, r3, lsl #2
|
|
ldr r3, [r3, #-20]
|
|
ldr r0, [r0, #-24]
|
|
ldrb r3, [r3, #1] @ zero_extendqisi2
|
|
strb r3, [r0]
|
|
b .L4145
|
|
.L4239:
|
|
.align 2
|
|
.L4238:
|
|
.word .LANCHOR79
|
|
.word .LANCHOR131
|
|
.word -178307901
|
|
.word .LANCHOR12
|
|
.word .LANCHOR85
|
|
.word .LANCHOR160
|
|
.word .LANCHOR221
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR234
|
|
.word .LC0
|
|
.word .LANCHOR128
|
|
.word .LANCHOR159
|
|
.word .LANCHOR36
|
|
.word -1431655765
|
|
.word .LANCHOR111
|
|
.word .LANCHOR55
|
|
.word .LANCHOR161
|
|
.word .LANCHOR124
|
|
.word .LANCHOR235
|
|
.word .LANCHOR82
|
|
.word .LANCHOR80
|
|
.L4144:
|
|
ldr r3, .L4240
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #56]
|
|
cmp r2, #0
|
|
beq .L4148
|
|
strb r1, [r3, #44]
|
|
.L4232:
|
|
mov r2, fp
|
|
add r1, sp, #68
|
|
add r0, sp, #56
|
|
bl sblk_xlc_prog_pages
|
|
.L4147:
|
|
ldr r3, .L4240
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4156
|
|
add r3, fp, fp, lsl #1
|
|
uxth fp, r3
|
|
.L4157:
|
|
ldr r3, .L4240+4
|
|
ldr r2, [r3]
|
|
ldr r3, [r2, #52]
|
|
add r3, r3, fp
|
|
str r3, [r2, #52]
|
|
ldr r2, .L4240+8
|
|
ldrh r3, [r2, #2102]
|
|
add r3, r3, fp
|
|
uxth r3, r3
|
|
strh r3, [r2, #2102] @ movhi
|
|
ldr r2, .L4240+12
|
|
ldrh r1, [r2]
|
|
ldr r2, [sp, #28]
|
|
ldrb r2, [r2, #89] @ zero_extendqisi2
|
|
muls r2, r1, r2
|
|
cmp r3, r2
|
|
itttt ge
|
|
ldrge r3, .L4240+16
|
|
movge r2, #0
|
|
ldrge r3, [r3]
|
|
strhge r2, [r3, #86] @ movhi
|
|
bl gc_write_completed
|
|
b .L4091
|
|
.L4148:
|
|
ldr r1, [sp, #24]
|
|
cmp r1, #1
|
|
bne .L4149
|
|
movs r2, #9
|
|
.L4151:
|
|
strb r2, [r3, #44]
|
|
b .L4232
|
|
.L4149:
|
|
ldr r1, [sp, #24]
|
|
cmp r1, #2
|
|
it eq
|
|
moveq r2, #13
|
|
b .L4151
|
|
.L4143:
|
|
ldr r3, .L4240+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4152
|
|
ldr r3, .L4240+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4153
|
|
.L4152:
|
|
ldr r2, [sp, #40]
|
|
subs r1, r2, #1
|
|
.L4154:
|
|
uxth r2, r3
|
|
adds r3, r3, #1
|
|
cmp r2, r1
|
|
blt .L4155
|
|
add r3, sp, #80
|
|
add r1, r3, r1, lsl #2
|
|
ldr r3, [r1, #-24]
|
|
b .L4231
|
|
.L4153:
|
|
mov r1, fp
|
|
add r0, sp, #56
|
|
bl sblk_3d_mlc_prog_pages
|
|
b .L4147
|
|
.L4155:
|
|
add r0, sp, #80
|
|
add r5, sp, #80
|
|
add r0, r0, r2, lsl #2
|
|
add r2, r5, r2, lsl #2
|
|
ldr r2, [r2, #-20]
|
|
ldr r0, [r0, #-24]
|
|
ldrb r2, [r2, #1] @ zero_extendqisi2
|
|
strb r2, [r0]
|
|
b .L4154
|
|
.L4156:
|
|
ldr r3, .L4240+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4170
|
|
ldr r3, .L4240+28
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4157
|
|
ldrh r3, [sp, #16]
|
|
ldr r2, .L4240+32
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
smulbb r3, fp, r3
|
|
uxth r3, r3
|
|
cbz r2, .L4171
|
|
ldr r2, .L4240+36
|
|
ldrh r2, [r2, r4, lsl #1]
|
|
cmp r2, r4
|
|
it cs
|
|
movcs fp, r3
|
|
b .L4157
|
|
.L4170:
|
|
ldr fp, [sp, #44]
|
|
b .L4157
|
|
.L4171:
|
|
mov fp, r3
|
|
b .L4157
|
|
.L4241:
|
|
.align 2
|
|
.L4240:
|
|
.word .LANCHOR83
|
|
.word .LANCHOR110
|
|
.word .LANCHOR70
|
|
.word .LANCHOR85
|
|
.word .LANCHOR12
|
|
.word .LANCHOR80
|
|
.word .LANCHOR81
|
|
.word .LANCHOR35
|
|
.word .LANCHOR124
|
|
.word .LANCHOR235
|
|
.size gc_do_copy_back, .-gc_do_copy_back
|
|
.section .text.zftl_do_gc,"ax",%progbits
|
|
.align 1
|
|
.global zftl_do_gc
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_do_gc, %function
|
|
zftl_do_gc:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
sub sp, sp, #48
|
|
ldr r3, .L4447
|
|
ldr r7, .L4447+4
|
|
ldr r5, .L4447+8
|
|
ldrh r3, [r3]
|
|
ldrh r6, [r7]
|
|
ldr r1, .L4447+12
|
|
ldrb r2, [r5] @ zero_extendqisi2
|
|
add r6, r6, r3
|
|
str r0, [sp, #32]
|
|
ldr r4, [r1]
|
|
uxth r6, r6
|
|
mov r8, r1
|
|
cmp r2, #6
|
|
bhi .L4359
|
|
tbh [pc, r2, lsl #1]
|
|
.L4245:
|
|
.2byte (.L4244-.L4245)/2
|
|
.2byte (.L4246-.L4245)/2
|
|
.2byte (.L4247-.L4245)/2
|
|
.2byte (.L4248-.L4245)/2
|
|
.2byte (.L4249-.L4245)/2
|
|
.2byte (.L4250-.L4245)/2
|
|
.2byte (.L4251-.L4245)/2
|
|
.p2align 1
|
|
.L4250:
|
|
ldr r4, .L4447+16
|
|
movs r7, #0
|
|
.L4252:
|
|
bl gc_check_data_one_wl
|
|
mov r10, r0
|
|
cmp r0, #0
|
|
beq .L4355
|
|
ldr r3, [r8]
|
|
movs r6, #0
|
|
strh r6, [r4, #52] @ movhi
|
|
ldrh r0, [r3, #80]
|
|
bl ftl_free_sblk
|
|
ldr r1, .L4447+20
|
|
movw r3, #65535
|
|
ldr r2, [r8]
|
|
ldr r0, [r4, #8]
|
|
ldr r1, [r1]
|
|
strh r3, [r2, #80] @ movhi
|
|
strh r3, [r1, #126] @ movhi
|
|
strh r3, [r2, #130] @ movhi
|
|
bl zbuf_free
|
|
str r6, [r4, #8]
|
|
strb r6, [r5]
|
|
b .L4444
|
|
.L4244:
|
|
ldr r2, .L4447+24
|
|
ldr r1, .L4447+28
|
|
ldr r0, .L4447+32
|
|
ldrh r7, [r2]
|
|
ldrh r2, [r1]
|
|
ldrh r0, [r0]
|
|
add r7, r7, r3
|
|
str r1, [sp, #36]
|
|
uxth r7, r7
|
|
add r2, r2, r0
|
|
ldrh r0, [r4, #80]
|
|
uxth r2, r2
|
|
str r2, [sp, #28]
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
beq .L4253
|
|
ldr r3, [sp, #32]
|
|
cbnz r3, .L4254
|
|
ldr r3, .L4447+36
|
|
ldrh r3, [r3]
|
|
cmp r6, r3, lsl #1
|
|
blt .L4254
|
|
.L4359:
|
|
movs r4, #16
|
|
b .L4242
|
|
.L4254:
|
|
ldr r10, .L4447+80
|
|
ldr r0, .L4447+40
|
|
ldr fp, .L4447+84
|
|
ldrh r1, [r10]
|
|
adds r1, r1, #1
|
|
uxth r1, r1
|
|
strh r1, [r10] @ movhi
|
|
bl _list_get_gc_head_node
|
|
movw r3, #65535
|
|
mov ip, r10
|
|
cmp r0, r3
|
|
beq .L4255
|
|
ldr r1, .L4447+44
|
|
ldr lr, .L4447+76
|
|
ldr r2, .L4447+48
|
|
ldr r1, [r1]
|
|
ldrh lr, [lr]
|
|
ldr r3, [r2]
|
|
mov r10, r2
|
|
ldrh r1, [r1, r0, lsl #1]
|
|
adds r3, r3, #1
|
|
cmp lr, r1
|
|
str r3, [r2]
|
|
bcs .L4256
|
|
ldr r2, .L4447+52
|
|
ldrh r2, [r2]
|
|
cmp r3, r2, lsr #4
|
|
bls .L4255
|
|
ldr r3, .L4447+56
|
|
ldrh r3, [r3]
|
|
cmp r3, r1
|
|
bls .L4255
|
|
.L4256:
|
|
ldrb r2, [fp] @ zero_extendqisi2
|
|
movs r1, #0
|
|
bl gc_add_sblk
|
|
cbz r0, .L4257
|
|
movs r3, #1
|
|
strb r3, [r5]
|
|
movs r3, #0
|
|
str r3, [r10]
|
|
b .L4359
|
|
.L4255:
|
|
movs r3, #0
|
|
strh r3, [ip] @ movhi
|
|
.L4257:
|
|
cmp r7, #15
|
|
bls .L4361
|
|
ldr r3, .L4447+60
|
|
ldrh r2, [r3]
|
|
ldr r3, .L4447+64
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bhi .L4361
|
|
ldr r3, [sp, #28]
|
|
cmp r3, #0
|
|
ite eq
|
|
moveq r10, #2
|
|
movne r10, #1
|
|
.L4258:
|
|
ldr r3, .L4447+68
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #23
|
|
bpl .L4259
|
|
ldr r3, [r8]
|
|
ldrh r1, [r4, #80]
|
|
ldrb r2, [fp] @ zero_extendqisi2
|
|
ldr r0, .L4447+72
|
|
str r1, [sp, #16]
|
|
ldrh r1, [r3, #122]
|
|
str r1, [sp, #12]
|
|
ldrh r1, [r3, #120]
|
|
str r1, [sp, #8]
|
|
movw r1, #2807
|
|
ldrh r3, [r3, #124]
|
|
str r7, [sp]
|
|
str r3, [sp, #4]
|
|
mov r3, r6
|
|
bl printf
|
|
.L4259:
|
|
movs r2, #1
|
|
mov r1, r10
|
|
ldrb r0, [fp] @ zero_extendqisi2
|
|
bl gc_search_src_blk
|
|
cmp r0, #0
|
|
ble .L4260
|
|
.L4261:
|
|
movs r3, #1
|
|
.L4445:
|
|
strb r3, [r5]
|
|
b .L4359
|
|
.L4361:
|
|
mov r10, #2
|
|
b .L4258
|
|
.L4260:
|
|
movs r2, #1
|
|
movs r1, #3
|
|
ldrb r0, [fp] @ zero_extendqisi2
|
|
bl gc_search_src_blk
|
|
cmp r0, #0
|
|
bgt .L4261
|
|
b .L4359
|
|
.L4253:
|
|
ldr r2, [sp, #32]
|
|
cmp r2, #1
|
|
bne .L4263
|
|
ldr r2, .L4447+20
|
|
ldr r2, [r2]
|
|
ldrh r2, [r2, #150]
|
|
cbz r2, .L4264
|
|
cmp r3, #8
|
|
bls .L4264
|
|
bl gc_ink_check_sblk
|
|
.L4264:
|
|
bl gc_scan_static_data
|
|
ldr r3, [r8]
|
|
ldr fp, .L4447+84
|
|
ldrh r3, [r3, #122]
|
|
cbz r3, .L4265
|
|
.L4266:
|
|
movs r3, #1
|
|
strb r3, [fp]
|
|
b .L4445
|
|
.L4448:
|
|
.align 2
|
|
.L4447:
|
|
.word .LANCHOR107
|
|
.word .LANCHOR103
|
|
.word .LANCHOR156
|
|
.word .LANCHOR12
|
|
.word .LANCHOR70
|
|
.word .LANCHOR110
|
|
.word .LANCHOR105
|
|
.word .LANCHOR97
|
|
.word .LANCHOR99
|
|
.word .LANCHOR86
|
|
.word .LANCHOR92
|
|
.word .LANCHOR11
|
|
.word .LANCHOR157
|
|
.word .LANCHOR8
|
|
.word .LANCHOR100
|
|
.word .LANCHOR91
|
|
.word .LANCHOR101
|
|
.word .LANCHOR19
|
|
.word .LC239
|
|
.word .LANCHOR94
|
|
.word .LANCHOR96
|
|
.word .LANCHOR84
|
|
.L4265:
|
|
bl gc_static_wearleveling
|
|
mov r4, r0
|
|
cmp r0, #0
|
|
bne .L4266
|
|
ldr r10, .L4449+20
|
|
cmp r7, #0
|
|
beq .L4267
|
|
ldr r3, [sp, #28]
|
|
ldr r2, .L4449
|
|
cmp r6, r3
|
|
bcs .L4268
|
|
ldrh r3, [r2]
|
|
cmp r3, r6
|
|
bhi .L4269
|
|
.L4268:
|
|
ldr r3, [sp, #28]
|
|
ldrh r2, [r2]
|
|
adds r3, r6, r3
|
|
cmp r3, r2
|
|
blt .L4269
|
|
ldr r3, .L4449+4
|
|
ldrh r2, [r3]
|
|
ldr r3, .L4449+8
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcc .L4267
|
|
.L4269:
|
|
movs r3, #1
|
|
movs r1, #16
|
|
ldr r0, .L4449+12
|
|
strb r3, [fp]
|
|
str r3, [sp, #40]
|
|
bl _list_get_gc_head_node
|
|
movw r1, #65535
|
|
cmp r0, r1
|
|
beq .L4270
|
|
ldr r1, .L4449+16
|
|
ldr r2, .L4449+20
|
|
ldr r1, [r1]
|
|
ldrh r2, [r2]
|
|
ldrh r1, [r1, r0, lsl #1]
|
|
cmp r1, r2
|
|
bcs .L4270
|
|
cmp r6, #2
|
|
ldr r3, [sp, #40]
|
|
bls .L4270
|
|
ldr r1, .L4449+24
|
|
movs r2, #0
|
|
strb r2, [fp]
|
|
str r2, [r1]
|
|
mov r1, r3
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
bne .L4261
|
|
.L4270:
|
|
movs r1, #0
|
|
ldr r0, .L4449+28
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
beq .L4271
|
|
ldr r2, .L4449+16
|
|
ldr r3, .L4449+20
|
|
ldr r2, [r2]
|
|
ldrh r3, [r3]
|
|
ldrh r2, [r2, r0, lsl #1]
|
|
cmp r2, r3
|
|
bcs .L4271
|
|
cmp r6, #2
|
|
bls .L4271
|
|
ldr r3, .L4449+24
|
|
movs r2, #0
|
|
movs r1, #1
|
|
strb r2, [fp]
|
|
str r2, [r3]
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
bne .L4261
|
|
.L4271:
|
|
ldr r2, .L4449+32
|
|
ldrh r3, [r10]
|
|
ldr r1, .L4449+36
|
|
ldrh fp, [r2]
|
|
adds r3, r3, #1
|
|
ldr r2, .L4449+24
|
|
uxth r3, r3
|
|
cmp r3, fp, lsr #5
|
|
strh r3, [r10] @ movhi
|
|
str r2, [sp, #44]
|
|
itt hi
|
|
movhi r3, #4
|
|
strhhi r3, [r10] @ movhi
|
|
mov r10, #0
|
|
strh r10, [r1] @ movhi
|
|
ldr r1, .L4449+40
|
|
ldr r3, [r2]
|
|
strh r10, [r1] @ movhi
|
|
ldr r1, .L4449+44
|
|
adds r3, r3, #1
|
|
str r3, [r2]
|
|
strh r10, [r1] @ movhi
|
|
ldr r1, .L4449+48
|
|
ldrh r1, [r1]
|
|
cmp r3, r1, lsr #5
|
|
ldr r3, .L4449+52
|
|
ldr r1, .L4449+4
|
|
bls .L4273
|
|
ldrh r0, [r1]
|
|
cmp r0, r7
|
|
bls .L4273
|
|
mov r1, r10
|
|
ldr r0, .L4449+56
|
|
str r3, [sp, #40]
|
|
bl _list_get_gc_head_node
|
|
movw r1, #65535
|
|
ldr r3, [sp, #40]
|
|
cmp r0, r1
|
|
ldr r2, [sp, #44]
|
|
bne .L4274
|
|
.L4434:
|
|
movs r4, #16
|
|
b .L4275
|
|
.L4274:
|
|
ldr r1, .L4449+16
|
|
ldr r1, [r1]
|
|
ldrh r1, [r1, r0, lsl #1]
|
|
ldr r0, .L4449+60
|
|
ldrb r0, [r0] @ zero_extendqisi2
|
|
mul fp, fp, r0
|
|
cmp r1, fp
|
|
bgt .L4434
|
|
str r10, [r2]
|
|
movs r2, #4
|
|
.L4441:
|
|
movs r1, #2
|
|
.L4433:
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
cmp r0, #0
|
|
beq .L4434
|
|
b .L4261
|
|
.L4273:
|
|
ldr r2, .L4449+8
|
|
ldrh r1, [r1]
|
|
ldrh r2, [r2]
|
|
cmp r1, r2
|
|
bcc .L4278
|
|
movs r2, #1
|
|
b .L4441
|
|
.L4278:
|
|
ldr r2, [sp, #36]
|
|
ldrh r2, [r2]
|
|
cbnz r2, .L4279
|
|
ldr r2, .L4449+64
|
|
ldrh r2, [r2]
|
|
cmp r2, #8
|
|
bls .L4280
|
|
.L4279:
|
|
movs r2, #4
|
|
movs r1, #1
|
|
b .L4433
|
|
.L4280:
|
|
ldr r3, .L4449+68
|
|
ldrh r3, [r3, #2106]
|
|
cmp r3, #0
|
|
bne .L4434
|
|
.L4275:
|
|
ldr r3, [r8]
|
|
movs r1, #1
|
|
ldr fp, .L4449+52
|
|
ldrh r3, [r3, #124]
|
|
strb r1, [fp]
|
|
mov r8, fp
|
|
cbz r3, .L4281
|
|
movs r3, #0
|
|
strb r1, [r5]
|
|
strb r3, [fp]
|
|
.L4242:
|
|
mov r0, r4
|
|
add sp, sp, #48
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4267:
|
|
ldr r3, .L4449+32
|
|
ldrh r2, [r3]
|
|
ldrh r3, [r10]
|
|
cmp r3, r2, lsr #5
|
|
itt cs
|
|
movcs r3, #4
|
|
strhcs r3, [r10] @ movhi
|
|
b .L4434
|
|
.L4263:
|
|
ldr r3, .L4449+72
|
|
ldrh r3, [r3]
|
|
cmp r3, r6
|
|
bcs .L4434
|
|
ldrh r3, [r4, #124]
|
|
cmp r3, #0
|
|
beq .L4359
|
|
b .L4434
|
|
.L4281:
|
|
ldr r2, .L4449+72
|
|
ldrh r0, [r2]
|
|
mov r10, r2
|
|
cmp r6, r0
|
|
bcs .L4282
|
|
cmp r7, #0
|
|
beq .L4283
|
|
cmp r7, #16
|
|
bls .L4284
|
|
ldr r2, .L4449+4
|
|
ldrh r0, [r2]
|
|
ldr r2, .L4449+8
|
|
ldrh r2, [r2]
|
|
cmp r0, r2
|
|
bhi .L4284
|
|
movs r2, #4
|
|
mov r0, r1
|
|
str r3, [sp, #28]
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
ldr r3, [sp, #28]
|
|
cbnz r0, .L4285
|
|
.L4439:
|
|
movs r2, #4
|
|
movs r1, #3
|
|
ldrb r0, [fp] @ zero_extendqisi2
|
|
b .L4436
|
|
.L4285:
|
|
mov r1, r3
|
|
ldr r0, .L4449+56
|
|
bl _list_get_gc_head_node
|
|
movw r3, #65535
|
|
cmp r0, r3
|
|
beq .L4288
|
|
ldr r1, .L4449+16
|
|
ldr r6, .L4449+32
|
|
ldr r2, .L4449+24
|
|
ldr r1, [r1]
|
|
ldrh r6, [r6]
|
|
ldr r3, [r2]
|
|
ldrh r1, [r1, r0, lsl #1]
|
|
adds r3, r3, #1
|
|
cmp r6, r1
|
|
str r3, [r2]
|
|
mov r6, r2
|
|
bcs .L4289
|
|
ldr r2, .L4449+48
|
|
ldrh r2, [r2]
|
|
cmp r3, r2, lsr #4
|
|
bls .L4288
|
|
ldr r3, .L4449+76
|
|
ldrh r3, [r3]
|
|
cmp r3, r1
|
|
bls .L4288
|
|
.L4289:
|
|
ldrb r2, [r8] @ zero_extendqisi2
|
|
movs r1, #0
|
|
bl gc_add_sblk
|
|
ldr r3, .L4449+80
|
|
movs r2, #1
|
|
str r2, [r3]
|
|
movs r3, #0
|
|
str r3, [r6]
|
|
.L4288:
|
|
movs r3, #1
|
|
b .L4440
|
|
.L4284:
|
|
movs r2, #1
|
|
movs r1, #2
|
|
mov r0, r2
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
cmp r0, #0
|
|
bne .L4288
|
|
ldrb r0, [r8] @ zero_extendqisi2
|
|
movs r2, #4
|
|
movs r1, #3
|
|
.L4436:
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
.L4286:
|
|
cmp r0, #0
|
|
bne .L4288
|
|
b .L4242
|
|
.L4283:
|
|
cmp r6, #16
|
|
strb r7, [fp]
|
|
bls .L4291
|
|
movs r2, #4
|
|
movs r1, #3
|
|
mov r0, r7
|
|
b .L4436
|
|
.L4291:
|
|
mov r2, r1
|
|
mov r0, r7
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
cmp r0, #0
|
|
bne .L4288
|
|
b .L4439
|
|
.L4282:
|
|
ldr r3, [sp, #32]
|
|
cmp r3, #1
|
|
bne .L4242
|
|
cmp r6, r0, lsl #1
|
|
bge .L4292
|
|
ldr r3, [sp, #28]
|
|
cmp r3, r7, lsr #1
|
|
bcs .L4293
|
|
ldr r3, .L4449+4
|
|
ldrh r1, [r3]
|
|
ldr r3, .L4449+8
|
|
ldrh r3, [r3]
|
|
cmp r1, r3
|
|
bcs .L4293
|
|
ldr r3, .L4449
|
|
ldrh r3, [r3]
|
|
lsrs r3, r3, #2
|
|
strh r3, [r2] @ movhi
|
|
b .L4242
|
|
.L4450:
|
|
.align 2
|
|
.L4449:
|
|
.word .LANCHOR98
|
|
.word .LANCHOR91
|
|
.word .LANCHOR101
|
|
.word .LANCHOR95
|
|
.word .LANCHOR11
|
|
.word .LANCHOR158
|
|
.word .LANCHOR157
|
|
.word .LANCHOR90
|
|
.word .LANCHOR94
|
|
.word .LANCHOR87
|
|
.word .LANCHOR88
|
|
.word .LANCHOR89
|
|
.word .LANCHOR8
|
|
.word .LANCHOR84
|
|
.word .LANCHOR92
|
|
.word .LANCHOR79
|
|
.word .LANCHOR99
|
|
.word .LANCHOR70
|
|
.word .LANCHOR86
|
|
.word .LANCHOR100
|
|
.word .LANCHOR122
|
|
.L4293:
|
|
movs r1, #8
|
|
ldr r0, .L4451
|
|
bl _list_get_gc_head_node
|
|
movw r2, #65535
|
|
cmp r0, r2
|
|
beq .L4294
|
|
ldr r2, .L4451+4
|
|
ldr r2, [r2]
|
|
ldrh r3, [r2, r0, lsl #1]
|
|
cmp r3, #3
|
|
bhi .L4294
|
|
cbz r6, .L4294
|
|
movs r2, #0
|
|
movs r1, #1
|
|
strb r2, [r8]
|
|
bl gc_add_sblk
|
|
cmp r0, #0
|
|
bne .L4288
|
|
.L4294:
|
|
movs r1, #0
|
|
ldr r0, .L4451+8
|
|
bl _list_get_gc_head_node
|
|
movw r3, #65535
|
|
mov fp, r0
|
|
cmp r0, r3
|
|
bne .L4295
|
|
.L4300:
|
|
cmp r7, #1
|
|
bhi .L4296
|
|
.L4297:
|
|
ldr r3, [sp, #28]
|
|
cmp r6, r3
|
|
ldr r6, .L4451+12
|
|
bcs .L4304
|
|
movs r7, #0
|
|
movs r1, #4
|
|
ldr r0, .L4451
|
|
strb r7, [r8]
|
|
bl _list_get_gc_head_node
|
|
movw r3, #65535
|
|
cmp r0, r3
|
|
beq .L4304
|
|
ldr r3, .L4451+4
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, r0, lsl #1]
|
|
ldr r3, .L4451+16
|
|
ldrh r1, [r3]
|
|
ldr r3, .L4451+20
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
muls r3, r1, r3
|
|
cmp r2, r3, asr #1
|
|
ble .L4306
|
|
.L4304:
|
|
ldrh r3, [r6]
|
|
lsrs r3, r3, #2
|
|
strh r3, [r10] @ movhi
|
|
b .L4242
|
|
.L4295:
|
|
ldr r2, .L4451+24
|
|
ldr r1, .L4451+28
|
|
ldr r3, [r2]
|
|
ldrh r1, [r1]
|
|
adds r3, r3, #1
|
|
str r3, [r2]
|
|
cmp r3, r1, lsr #4
|
|
bls .L4298
|
|
ldr r3, .L4451+4
|
|
movs r1, #0
|
|
str r1, [r2]
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, r0, lsl #1]
|
|
ldr r3, .L4451+32
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L4298
|
|
movs r3, #1
|
|
mov r2, r3
|
|
strb r3, [r8]
|
|
str r3, [sp, #32]
|
|
bl gc_add_sblk
|
|
ldr r3, [sp, #32]
|
|
cbz r0, .L4298
|
|
.L4440:
|
|
strb r3, [r5]
|
|
b .L4242
|
|
.L4298:
|
|
ldr r3, .L4451+4
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, fp, lsl #1]
|
|
ldr r3, .L4451+16
|
|
ldrh r3, [r3]
|
|
cmp r2, r3, lsr #1
|
|
bhi .L4299
|
|
movs r2, #0
|
|
movs r1, #1
|
|
mov r0, fp
|
|
bl gc_add_sblk
|
|
b .L4288
|
|
.L4299:
|
|
ldr r3, [sp, #36]
|
|
ldr r1, .L4451+36
|
|
ldrh r3, [r3]
|
|
ldrh r1, [r1]
|
|
add r3, r3, r1
|
|
ldr r1, .L4451+12
|
|
ldrh r1, [r1]
|
|
cmp r3, r1, lsl #1
|
|
ble .L4300
|
|
ldr r3, .L4451+32
|
|
ldrh r3, [r3]
|
|
cmp r3, r2
|
|
bcc .L4297
|
|
b .L4300
|
|
.L4296:
|
|
cmp r7, #16
|
|
mov r1, #1
|
|
strb r1, [r8]
|
|
bls .L4301
|
|
ldr r3, .L4451+40
|
|
ldrh r2, [r3]
|
|
ldr r3, .L4451+44
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bhi .L4301
|
|
movs r2, #4
|
|
mov r0, r1
|
|
.L4443:
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
cbnz r0, .L4302
|
|
movs r2, #4
|
|
movs r1, #3
|
|
ldrb r0, [r8] @ zero_extendqisi2
|
|
bl gc_search_src_blk
|
|
uxth r0, r0
|
|
.L4302:
|
|
ldr r3, [sp, #28]
|
|
cmp r6, r3, lsr #1
|
|
ldr r3, .L4451+12
|
|
ldrh r3, [r3]
|
|
bls .L4437
|
|
lsrs r3, r3, #2
|
|
.L4438:
|
|
strh r3, [r10] @ movhi
|
|
b .L4286
|
|
.L4301:
|
|
movs r2, #1
|
|
movs r1, #2
|
|
mov r0, r2
|
|
b .L4443
|
|
.L4306:
|
|
movs r2, #4
|
|
movs r1, #3
|
|
mov r0, r7
|
|
bl gc_search_src_blk
|
|
ldrh r3, [r6]
|
|
uxth r0, r0
|
|
.L4437:
|
|
lsrs r3, r3, #1
|
|
b .L4438
|
|
.L4292:
|
|
ldr r3, .L4451+12
|
|
ldrh r3, [r3]
|
|
lsrs r3, r3, #2
|
|
strh r3, [r2] @ movhi
|
|
ldr r3, .L4451+48
|
|
ldrh r3, [r3, #2106]
|
|
cmp r3, #0
|
|
it eq
|
|
moveq r4, #0
|
|
b .L4242
|
|
.L4246:
|
|
ldr r4, .L4451+48
|
|
movw r3, #65535
|
|
ldrh r2, [r4]
|
|
cmp r2, r3
|
|
bne .L4307
|
|
bl gc_get_src_blk
|
|
strh r0, [r4] @ movhi
|
|
.L4307:
|
|
ldrh r2, [r4]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
beq .L4308
|
|
ldr r1, .L4451+28
|
|
ldrh r1, [r1]
|
|
cmp r1, r2
|
|
it ls
|
|
strhls r3, [r4] @ movhi
|
|
.L4308:
|
|
ldrh r6, [r4]
|
|
movw r3, #65535
|
|
cmp r6, r3
|
|
beq .L4446
|
|
ldr r3, .L4451+52
|
|
ldrh r1, [r4, #52]
|
|
ldr r3, [r3]
|
|
add r3, r3, r6, lsl #2
|
|
cbz r1, .L4310
|
|
ldr r0, .L4451+56
|
|
movs r2, #0
|
|
.L4311:
|
|
uxth r4, r2
|
|
cmp r1, r4
|
|
bhi .L4312
|
|
.L4310:
|
|
ldrb r3, [r3, #2] @ zero_extendqisi2
|
|
and r2, r3, #224
|
|
cmp r2, #224
|
|
beq .L4313
|
|
tst r3, #192
|
|
bne .L4314
|
|
.L4313:
|
|
ldr r3, .L4451+4
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, r6, lsl #1]
|
|
cbz r3, .L4316
|
|
movw r2, #3306
|
|
ldr r1, .L4451+60
|
|
ldr r0, .L4451+64
|
|
bl printf
|
|
b .L4316
|
|
.L4312:
|
|
ldrh r4, [r0, #2]!
|
|
adds r2, r2, #1
|
|
cmp r4, r6
|
|
bne .L4311
|
|
.L4316:
|
|
ldr r3, .L4451+48
|
|
movw r2, #65535
|
|
strh r2, [r3] @ movhi
|
|
b .L4359
|
|
.L4314:
|
|
movs r3, #2
|
|
b .L4445
|
|
.L4247:
|
|
bl gc_scan_src_blk
|
|
adds r0, r0, #1
|
|
bne .L4317
|
|
movs r3, #3
|
|
b .L4445
|
|
.L4317:
|
|
ldr r3, .L4451+48
|
|
movw r1, #65535
|
|
ldrh r2, [r3]
|
|
mov r4, r3
|
|
cmp r2, r1
|
|
beq .L4261
|
|
ldrh r1, [r3, #20]
|
|
cbz r1, .L4318
|
|
movs r2, #4
|
|
strb r2, [r5]
|
|
movs r2, #0
|
|
strh r2, [r3, #22] @ movhi
|
|
b .L4359
|
|
.L4318:
|
|
movs r3, #1
|
|
strb r3, [r5]
|
|
ldr r5, .L4451+4
|
|
ldr r1, [r5]
|
|
ldrh r2, [r1, r2, lsl #1]
|
|
cbz r2, .L4319
|
|
movw r2, #3336
|
|
ldr r1, .L4451+60
|
|
ldr r0, .L4451+64
|
|
bl printf
|
|
.L4319:
|
|
ldrh r0, [r4]
|
|
bl ftl_free_sblk
|
|
ldr r3, [r5]
|
|
movs r5, #0
|
|
ldrh r2, [r4]
|
|
strh r5, [r3, r2, lsl #1] @ movhi
|
|
ldrh r3, [r4, #26]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #8
|
|
bhi .L4320
|
|
strh r3, [r4, #26] @ movhi
|
|
b .L4316
|
|
.L4320:
|
|
strh r5, [r4, #26] @ movhi
|
|
bl ftl_flush
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
mov r0, r5
|
|
bl ftl_info_flush
|
|
b .L4316
|
|
.L4248:
|
|
ldr r7, .L4451+48
|
|
mov r4, r7
|
|
.L4408:
|
|
bl gc_scan_src_blk_one_page
|
|
ldr r3, .L4451+16
|
|
ldrh r2, [r7, #2]
|
|
ldrh r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L4322
|
|
cmp r6, #7
|
|
bls .L4408
|
|
b .L4359
|
|
.L4452:
|
|
.align 2
|
|
.L4451:
|
|
.word .LANCHOR95
|
|
.word .LANCHOR11
|
|
.word .LANCHOR92
|
|
.word .LANCHOR98
|
|
.word .LANCHOR94
|
|
.word .LANCHOR79
|
|
.word .LANCHOR157
|
|
.word .LANCHOR8
|
|
.word .LANCHOR100
|
|
.word .LANCHOR99
|
|
.word .LANCHOR91
|
|
.word .LANCHOR101
|
|
.word .LANCHOR70
|
|
.word .LANCHOR9
|
|
.word .LANCHOR70+52
|
|
.word .LANCHOR237
|
|
.word .LC0
|
|
.L4322:
|
|
ldrh r3, [r7, #20]
|
|
ldrh r1, [r7]
|
|
cbz r3, .L4323
|
|
movs r2, #4
|
|
strb r2, [r5]
|
|
movs r2, #0
|
|
ldr r5, .L4453
|
|
strh r2, [r7, #22] @ movhi
|
|
ldr r2, [r5]
|
|
ldrh r2, [r2, r1, lsl #1]
|
|
cmp r3, r2
|
|
beq .L4324
|
|
ldr r0, .L4453+4
|
|
ldr r0, [r0]
|
|
lsls r6, r0, #21
|
|
bpl .L4324
|
|
ldr r0, .L4453+8
|
|
bl printf
|
|
.L4324:
|
|
ldr r3, [r5]
|
|
ldrh r2, [r4]
|
|
ldrh r2, [r3, r2, lsl #1]
|
|
ldrh r3, [r4, #20]
|
|
cmp r2, r3
|
|
beq .L4325
|
|
movw r2, #3379
|
|
ldr r1, .L4453+12
|
|
ldr r0, .L4453+16
|
|
bl printf
|
|
.L4325:
|
|
ldrh r1, [r4, #20]
|
|
ldrh r2, [r4]
|
|
ldr r3, [r5]
|
|
strh r1, [r3, r2, lsl #1] @ movhi
|
|
b .L4359
|
|
.L4323:
|
|
ldr r3, .L4453+20
|
|
ldr r6, [r3]
|
|
movs r3, #1
|
|
strb r3, [r5]
|
|
ldr r3, .L4453+4
|
|
add r6, r6, r1, lsl #2
|
|
ldr r3, [r3]
|
|
lsls r5, r3, #23
|
|
bpl .L4326
|
|
ldrb r2, [r6, #2] @ zero_extendqisi2
|
|
ldr r0, .L4453+24
|
|
lsrs r2, r2, #5
|
|
bl printf
|
|
.L4326:
|
|
ldrb r3, [r6, #2] @ zero_extendqisi2
|
|
and r2, r3, #224
|
|
cmp r2, #224
|
|
beq .L4327
|
|
tst r3, #192
|
|
bne .L4328
|
|
.L4327:
|
|
movw r2, #3389
|
|
ldr r1, .L4453+12
|
|
ldr r0, .L4453+16
|
|
bl printf
|
|
.L4328:
|
|
ldrh r0, [r4]
|
|
bl ftl_free_sblk
|
|
movw r3, #65535
|
|
strh r3, [r4] @ movhi
|
|
ldrh r3, [r4, #26]
|
|
adds r3, r3, #1
|
|
uxth r3, r3
|
|
cmp r3, #8
|
|
bhi .L4329
|
|
strh r3, [r4, #26] @ movhi
|
|
b .L4359
|
|
.L4329:
|
|
movs r3, #0
|
|
strh r3, [r4, #26] @ movhi
|
|
.L4444:
|
|
bl flt_sys_flush
|
|
b .L4359
|
|
.L4249:
|
|
ldrh r2, [r4, #80]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L4330
|
|
ldr r3, .L4453+28
|
|
ldrb r10, [r3] @ zero_extendqisi2
|
|
cmp r10, #1
|
|
bne .L4330
|
|
ldr r6, .L4453+32
|
|
bl ftl_flush
|
|
movs r1, #5
|
|
ldrh r0, [r6, #2180]
|
|
cbz r0, .L4331
|
|
mov r0, r10
|
|
.L4331:
|
|
bl zftl_gc_get_free_sblk
|
|
movw r3, #65535
|
|
mov r5, r0
|
|
cmp r0, r3
|
|
beq .L4333
|
|
ldr r3, .L4453+20
|
|
ldr r7, [r3]
|
|
add r7, r7, r0, lsl #2
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
tst r3, #224
|
|
beq .L4334
|
|
movw r2, #3423
|
|
ldr r1, .L4453+12
|
|
ldr r0, .L4453+16
|
|
bl printf
|
|
.L4334:
|
|
ldrb r3, [r7, #2] @ zero_extendqisi2
|
|
and r3, r3, #15
|
|
orr r3, r3, #176
|
|
strb r3, [r7, #2]
|
|
.L4358:
|
|
movs r1, #1
|
|
mov r0, r5
|
|
bl ftl_erase_sblk
|
|
movs r3, #5
|
|
add r1, r4, #96
|
|
strb r3, [r4, #84]
|
|
mov r0, r5
|
|
bl ftl_get_blk_list_in_sblk
|
|
ldr r3, .L4453+36
|
|
uxtb r0, r0
|
|
movs r7, #0
|
|
ldr r10, .L4453+64
|
|
strb r0, [r4, #89]
|
|
movs r1, #255
|
|
ldrh r3, [r3]
|
|
strh r5, [r4, #80] @ movhi
|
|
strh r7, [r4, #82] @ movhi
|
|
strb r7, [r4, #85]
|
|
smulbb r0, r3, r0
|
|
strh r7, [r4, #90] @ movhi
|
|
ldrh r3, [r10]
|
|
strh r0, [r4, #86] @ movhi
|
|
ldr r4, .L4453+40
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
muls r2, r3, r2
|
|
ldr r3, .L4453+44
|
|
ldr r0, [r3]
|
|
lsls r2, r2, #2
|
|
bl ftl_memset
|
|
ldrh r3, [r10]
|
|
movs r1, #255
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
muls r2, r3, r2
|
|
ldr r3, .L4453+48
|
|
ldr r0, [r3]
|
|
lsls r2, r2, #2
|
|
bl ftl_memset
|
|
ldrh r3, [r10]
|
|
movs r1, #255
|
|
ldrb r2, [r4] @ zero_extendqisi2
|
|
muls r2, r3, r2
|
|
ldr r3, .L4453+52
|
|
ldr r0, [r3]
|
|
bl ftl_memset
|
|
ldr r3, [r8]
|
|
movw r2, #65535
|
|
strh r2, [r3, #128] @ movhi
|
|
strh r2, [r3, #130] @ movhi
|
|
str r5, [r3, #132]
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
ldr r3, .L4453+56
|
|
mov r0, r7
|
|
strh r7, [r6, #52] @ movhi
|
|
ldr r3, [r3]
|
|
strh r5, [r3, #126] @ movhi
|
|
mov r3, #-1
|
|
strh r7, [r6, #2102] @ movhi
|
|
strh r7, [r6, #2104] @ movhi
|
|
strh r7, [r6, #2182] @ movhi
|
|
str r3, [r6, #2184]
|
|
bl ftl_info_flush
|
|
b .L4359
|
|
.L4330:
|
|
ldr r3, [sp, #32]
|
|
ldr r10, .L4453+28
|
|
cmp r3, #1
|
|
ite ne
|
|
movne fp, #1
|
|
moveq fp, #4
|
|
cmp r6, #15
|
|
ldr r6, .L4453+32
|
|
it ls
|
|
addls fp, fp, #4
|
|
.L4337:
|
|
add fp, fp, #-1
|
|
uxtb fp, fp
|
|
cmp fp, #255
|
|
beq .L4359
|
|
bl gc_do_copy_back
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
bne .L4338
|
|
ldr r3, .L4453+60
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bhi .L4339
|
|
bl ftl_write_commit
|
|
.L4339:
|
|
ldrh r2, [r6, #22]
|
|
ldrh r3, [r6, #20]
|
|
cmp r2, r3
|
|
bcc .L4337
|
|
ldr r4, .L4453
|
|
movs r3, #1
|
|
strb r3, [r5]
|
|
bl ftl_write_commit
|
|
bl ftl_flush
|
|
ldrh r1, [r6]
|
|
ldr r2, [r4]
|
|
ldrh r2, [r2, r1, lsl #1]
|
|
cbz r2, .L4341
|
|
movw r2, #3507
|
|
ldr r1, .L4453+12
|
|
ldr r0, .L4453+16
|
|
bl printf
|
|
.L4341:
|
|
ldrh r0, [r6]
|
|
ldr r3, [r4]
|
|
ldrh r3, [r3, r0, lsl #1]
|
|
cbnz r3, .L4342
|
|
bl ftl_free_sblk
|
|
b .L4316
|
|
.L4342:
|
|
movs r2, #1
|
|
movs r1, #0
|
|
bl gc_add_sblk
|
|
b .L4316
|
|
.L4454:
|
|
.align 2
|
|
.L4453:
|
|
.word .LANCHOR11
|
|
.word .LANCHOR19
|
|
.word .LC240
|
|
.word .LANCHOR237
|
|
.word .LC0
|
|
.word .LANCHOR9
|
|
.word .LC241
|
|
.word .LANCHOR84
|
|
.word .LANCHOR70
|
|
.word .LANCHOR94
|
|
.word .LANCHOR79
|
|
.word .LANCHOR159
|
|
.word .LANCHOR160
|
|
.word .LANCHOR82
|
|
.word .LANCHOR110
|
|
.word .LANCHOR57
|
|
.word .LANCHOR85
|
|
.L4338:
|
|
ldrh r3, [r6, #2182]
|
|
cmp r3, #0
|
|
beq .L4343
|
|
movs r3, #0
|
|
ldr r10, .L4455+60
|
|
strh r3, [r6, #2182] @ movhi
|
|
bl sblk_wait_write_queue_completed
|
|
bl gc_write_completed
|
|
ldr r0, [r6, #2184]
|
|
adds r4, r0, #1
|
|
beq .L4344
|
|
ldr r3, .L4455
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4345
|
|
ldr r3, .L4455+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4346
|
|
.L4345:
|
|
ldr r3, [r10]
|
|
ldr r2, [r3, #156]
|
|
ldr r3, .L4455+8
|
|
cmp r2, r3
|
|
bne .L4346
|
|
ldr r3, .L4455+12
|
|
ldrh r1, [r3]
|
|
ldr r3, .L4455+16
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
lsrs r0, r0, r1
|
|
rsb r3, r3, #24
|
|
subs r2, r3, r1
|
|
movs r3, #1
|
|
lsls r3, r3, r2
|
|
ldr r2, .L4455+20
|
|
subs r3, r3, #1
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
ands r0, r0, r3
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L4455+24
|
|
ldr r3, [r3]
|
|
add r4, r3, r0, lsl #2
|
|
ldrb r2, [r4, #2] @ zero_extendqisi2
|
|
lsls r1, r2, #28
|
|
bpl .L4344
|
|
ldrh r1, [r7]
|
|
ldr r7, .L4455+28
|
|
adds r1, r1, #8
|
|
ldrh r7, [r7]
|
|
cmp r1, r7
|
|
bge .L4344
|
|
ldr r1, .L4455+32
|
|
bfc r2, #3, #2
|
|
strb r2, [r4, #2]
|
|
ldr r2, [r3, r0, lsl #2]
|
|
ldrh r1, [r1]
|
|
ldrh r4, [r3, r0, lsl #2]
|
|
ubfx r2, r2, #11, #8
|
|
muls r1, r2, r1
|
|
ubfx r7, r4, #0, #11
|
|
lsrs r2, r2, #3
|
|
add r1, r1, r1, lsl #1
|
|
add r1, r7, r1, asr #2
|
|
bfi r4, r1, #0, #11
|
|
strh r4, [r3, r0, lsl #2] @ movhi
|
|
ldr r1, [r3, r0, lsl #2]
|
|
bfi r1, r2, #11, #8
|
|
str r1, [r3, r0, lsl #2]
|
|
.L4344:
|
|
ldr r3, [r8]
|
|
movs r4, #0
|
|
str r4, [r6, #2184]
|
|
strh r4, [r6, #52] @ movhi
|
|
ldrh r0, [r3, #80]
|
|
bl ftl_free_sblk
|
|
ldr r0, [r6, #8]
|
|
movw r3, #65535
|
|
ldr r2, [r8]
|
|
ldr r1, [r10]
|
|
strh r3, [r2, #80] @ movhi
|
|
strh r3, [r1, #126] @ movhi
|
|
strh r3, [r2, #130] @ movhi
|
|
cbz r0, .L4347
|
|
bl zbuf_free
|
|
.L4347:
|
|
str r4, [r6, #8]
|
|
bl flt_sys_flush
|
|
movw r2, #3567
|
|
ldr r1, .L4455+36
|
|
ldr r0, .L4455+40
|
|
strb r4, [r5]
|
|
bl printf
|
|
b .L4359
|
|
.L4346:
|
|
bl ftl_mask_bad_block
|
|
b .L4344
|
|
.L4343:
|
|
ldrh r3, [r4, #86]
|
|
ldrh r2, [r6, #22]
|
|
cmp r3, #1
|
|
ldrh r3, [r6, #20]
|
|
bls .L4348
|
|
cmp r2, r3
|
|
bcc .L4337
|
|
movs r3, #1
|
|
strb r3, [r5]
|
|
ldrh r3, [r6, #52]
|
|
adds r2, r3, #1
|
|
strh r2, [r6, #52] @ movhi
|
|
add r3, r6, r3, lsl #1
|
|
ldrh r2, [r6]
|
|
strh r2, [r3, #54] @ movhi
|
|
movw r3, #65535
|
|
strh r3, [r6] @ movhi
|
|
b .L4359
|
|
.L4348:
|
|
cmp r2, r3
|
|
mov r1, #5
|
|
strb r1, [r5]
|
|
bcc .L4349
|
|
ldrh r3, [r6, #52]
|
|
adds r2, r3, #1
|
|
strh r2, [r6, #52] @ movhi
|
|
add r3, r6, r3, lsl #1
|
|
ldrh r2, [r6]
|
|
strh r2, [r3, #54] @ movhi
|
|
movw r3, #65535
|
|
strh r3, [r6] @ movhi
|
|
.L4349:
|
|
bl ftl_flush
|
|
bl sblk_wait_write_queue_completed
|
|
bl gc_write_completed
|
|
ldr r3, [r8]
|
|
ldrh r2, [r4, #80]
|
|
strh r2, [r3, #128] @ movhi
|
|
bl pm_flush
|
|
bl ftl_ext_info_flush
|
|
movs r3, #0
|
|
ldr r2, .L4455+44
|
|
strh r3, [r6, #12] @ movhi
|
|
ldr r3, .L4455+48
|
|
ldrb r2, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
strh r3, [r6, #14] @ movhi
|
|
ldr r3, .L4455+52
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
strh r3, [r6, #16] @ movhi
|
|
cbz r2, .L4350
|
|
ldr r2, .L4455+56
|
|
ldrh r2, [r2]
|
|
strh r2, [r6, #14] @ movhi
|
|
movs r2, #1
|
|
strh r2, [r6, #16] @ movhi
|
|
.L4350:
|
|
cmp r3, #2
|
|
bne .L4352
|
|
ldrh r3, [r6, #14]
|
|
lsls r3, r3, #1
|
|
strh r3, [r6, #14] @ movhi
|
|
ldr r3, .L4455+4
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbnz r3, .L4352
|
|
movs r3, #1
|
|
strh r3, [r6, #16] @ movhi
|
|
.L4352:
|
|
movs r3, #0
|
|
strh r3, [r6, #18] @ movhi
|
|
b .L4359
|
|
.L4355:
|
|
ldrh r2, [r4, #12]
|
|
ldrh r3, [r4, #14]
|
|
cmp r2, r3
|
|
bcc .L4356
|
|
movs r3, #6
|
|
ldr r0, [r4, #8]
|
|
strb r3, [r5]
|
|
bl zbuf_free
|
|
str r10, [r4, #8]
|
|
b .L4359
|
|
.L4356:
|
|
cmp r6, #15
|
|
bls .L4252
|
|
ldr r3, [sp, #32]
|
|
cmp r3, #1
|
|
bne .L4359
|
|
adds r7, r7, #1
|
|
uxtb r7, r7
|
|
cmp r7, #4
|
|
bls .L4252
|
|
b .L4359
|
|
.L4251:
|
|
bl gc_update_l2p_map_new
|
|
bl gc_free_src_blk
|
|
bl ftl_flush
|
|
movw r6, #65535
|
|
bl pm_flush
|
|
strh r6, [r4, #80] @ movhi
|
|
bl ftl_ext_info_flush
|
|
ldr r3, .L4455+60
|
|
movs r0, #0
|
|
ldr r3, [r3]
|
|
strh r6, [r3, #126] @ movhi
|
|
bl ftl_info_flush
|
|
.L4446:
|
|
movs r3, #0
|
|
b .L4445
|
|
.L4333:
|
|
movw r2, #3430
|
|
ldr r1, .L4455+36
|
|
ldr r0, .L4455+40
|
|
bl printf
|
|
b .L4358
|
|
.L4456:
|
|
.align 2
|
|
.L4455:
|
|
.word .LANCHOR124
|
|
.word .LANCHOR80
|
|
.word 1145785929
|
|
.word .LANCHOR74
|
|
.word .LANCHOR31
|
|
.word .LANCHOR75
|
|
.word .LANCHOR9
|
|
.word .LANCHOR98
|
|
.word .LANCHOR10
|
|
.word .LANCHOR237
|
|
.word .LC0
|
|
.word .LANCHOR35
|
|
.word .LANCHOR94
|
|
.word .LANCHOR78
|
|
.word .LANCHOR85
|
|
.word .LANCHOR110
|
|
.size zftl_do_gc, .-zftl_do_gc
|
|
.section .text.zftl_init,"ax",%progbits
|
|
.align 1
|
|
.global zftl_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_init, %function
|
|
zftl_init:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r2, .L4536
|
|
movs r3, #255
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
movs r5, #0
|
|
ldr r7, .L4536+4
|
|
sub sp, sp, #24
|
|
strb r3, [r2]
|
|
ldr r2, .L4536+8
|
|
ldr r1, .L4536+12
|
|
ldr r0, .L4536+16
|
|
strb r5, [r2]
|
|
ldr r2, .L4536+20
|
|
ldr r6, .L4536+24
|
|
strb r3, [r2]
|
|
ldr r2, .L4536+28
|
|
strb r5, [r2]
|
|
ldr r2, .L4536+32
|
|
strb r3, [r2]
|
|
mov r2, #-1
|
|
ldr r3, .L4536+36
|
|
strb r5, [r3]
|
|
ldr r3, .L4536+40
|
|
str r2, [r3]
|
|
bl printf
|
|
ldrb r8, [r7, #12] @ zero_extendqisi2
|
|
ldr r3, .L4536+44
|
|
ldrb fp, [r7, #9] @ zero_extendqisi2
|
|
mov r1, r8
|
|
strb r8, [r3]
|
|
ldr r3, .L4536+48
|
|
strb fp, [r3]
|
|
ldrh r3, [r7, #10]
|
|
str r3, [sp]
|
|
ldr r3, .L4536+52
|
|
ldrh r2, [sp]
|
|
ldr r0, [sp]
|
|
strh r2, [r3] @ movhi
|
|
bl __aeabi_idiv
|
|
ldr r2, .L4536+56
|
|
mov r3, r0
|
|
ldr r1, .L4536+60
|
|
ldrh r10, [r7, #14]
|
|
ldrb r4, [r2] @ zero_extendqisi2
|
|
ldr r2, .L4536+64
|
|
strh r0, [r6] @ movhi
|
|
ldr r0, .L4536+68
|
|
strb r4, [r2]
|
|
ldrb r2, [r7, #13] @ zero_extendqisi2
|
|
str r6, [sp, #8]
|
|
str r0, [sp, #12]
|
|
strb r2, [r1]
|
|
smulbb r4, r4, r2
|
|
ldr r2, .L4536+72
|
|
strh r10, [r2] @ movhi
|
|
lsl r2, fp, #9
|
|
uxtb r4, r4
|
|
uxth r2, r2
|
|
strb r4, [r0]
|
|
str r2, [sp, #4]
|
|
ldr r2, .L4536+76
|
|
ldrh r1, [sp, #4]
|
|
strh r1, [r2] @ movhi
|
|
ldr r2, .L4536+80
|
|
ldrh r1, [r2]
|
|
ldr r2, .L4536+84
|
|
strh r1, [r2] @ movhi
|
|
movs r2, #1
|
|
.L4458:
|
|
cmp r1, r2
|
|
uxth r0, r5
|
|
add r5, r5, #1
|
|
bcs .L4459
|
|
ldr r1, .L4536+88
|
|
subs r2, r0, #1
|
|
movs r6, #0
|
|
movs r5, #1
|
|
strh r2, [r1] @ movhi
|
|
ldr r2, [sp]
|
|
mul r2, r2, fp
|
|
mul r0, r2, r10
|
|
lsrs r7, r0, #21
|
|
.L4460:
|
|
cmp r7, r5
|
|
uxth r1, r6
|
|
add r6, r6, #1
|
|
bcs .L4461
|
|
mov r5, #1892352
|
|
subs r1, r1, #1
|
|
mul r6, r5, r4
|
|
uxth r1, r1
|
|
ldr r7, .L4536+92
|
|
lsr r10, r10, #4
|
|
muls r0, r4, r0
|
|
str r2, [sp, #20]
|
|
str r3, [sp, #16]
|
|
lsl r5, r6, r1
|
|
ldr r1, .L4536+96
|
|
add r6, r5, #24576
|
|
str r0, [r7]
|
|
str r5, [r1]
|
|
mov r0, r6
|
|
ldr r1, .L4536+100
|
|
str r6, [r1]
|
|
mov r1, fp
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #4]
|
|
ldr r1, .L4536+104
|
|
ldr fp, .L4536+172
|
|
add ip, r3, #-1
|
|
str r0, [r1]
|
|
add r0, ip, r0, lsl #2
|
|
mov r1, r3
|
|
bl __aeabi_uidiv
|
|
ldr r3, [sp, #16]
|
|
strh r0, [fp] @ movhi
|
|
uxth r0, r0
|
|
lsls r0, r0, #4
|
|
mul r1, r4, r3
|
|
bl __aeabi_idiv
|
|
ldr r2, [sp, #20]
|
|
ldr r3, .L4536+108
|
|
mul r1, r4, r2
|
|
strh r0, [r3] @ movhi
|
|
mov r0, r6
|
|
mov r6, fp
|
|
subs r1, r1, #1
|
|
bl __aeabi_uidiv
|
|
ldr r3, .L4536+112
|
|
adds r0, r0, #8
|
|
cmp r10, #79
|
|
ldr ip, .L4536+212
|
|
it ls
|
|
movls r2, #80
|
|
ldr lr, .L4536+132
|
|
strh r0, [r3] @ movhi
|
|
mov r1, #48
|
|
ldr r3, .L4536+116
|
|
ldr r0, .L4536+120
|
|
strh r10, [r3] @ movhi
|
|
it ls
|
|
strhls r2, [r3] @ movhi
|
|
mov r3, #2000
|
|
strh r3, [ip] @ movhi
|
|
movs r3, #50
|
|
strh r3, [r0] @ movhi
|
|
mov r2, #256
|
|
ldr r3, .L4536+124
|
|
cmp r8, #2
|
|
mov r8, r0
|
|
strh r2, [r3] @ movhi
|
|
ldr r2, .L4536+128
|
|
strh r1, [r2] @ movhi
|
|
mov r1, #32
|
|
strh r1, [lr] @ movhi
|
|
mov r10, r2
|
|
mov lr, ip
|
|
beq .L4463
|
|
ldr fp, .L4536+216
|
|
ldrb fp, [fp] @ zero_extendqisi2
|
|
cmp fp, #0
|
|
beq .L4464
|
|
.L4463:
|
|
movs r2, #150
|
|
movs r1, #12
|
|
strh r2, [r8] @ movhi
|
|
movs r2, #64
|
|
strh r2, [r10] @ movhi
|
|
ldr r2, .L4536+132
|
|
strh r1, [r2] @ movhi
|
|
ldr r1, .L4536+136
|
|
ldrb r1, [r1] @ zero_extendqisi2
|
|
cbnz r1, .L4465
|
|
movs r1, #4
|
|
strh r1, [r2] @ movhi
|
|
mov r2, #600
|
|
strh r2, [lr] @ movhi
|
|
movs r2, #128
|
|
strh r2, [r3] @ movhi
|
|
.L4465:
|
|
ldr r3, .L4536+140
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4467
|
|
movs r3, #200
|
|
strh r3, [r8] @ movhi
|
|
mov r3, #2000
|
|
strh r3, [lr] @ movhi
|
|
.L4467:
|
|
ldr r3, .L4536+144
|
|
movs r2, #0
|
|
str r2, [r3]
|
|
movs r2, #1
|
|
ldr r3, .L4536+148
|
|
strb r2, [r3]
|
|
ldr r2, [sp]
|
|
muls r4, r2, r4
|
|
ldr r2, [sp, #4]
|
|
cmp r2, r4, lsl #2
|
|
ldr r4, .L4536+152
|
|
itt lt
|
|
movlt r2, #2
|
|
strblt r2, [r3]
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L4470
|
|
mov r1, r5
|
|
ldr r0, .L4536+156
|
|
bl printf
|
|
.L4470:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L4471
|
|
ldr r1, [r7]
|
|
ldr r0, .L4536+160
|
|
bl printf
|
|
.L4471:
|
|
ldr r3, [r4]
|
|
lsls r0, r3, #19
|
|
bpl .L4472
|
|
ldr r3, .L4536+104
|
|
ldr r0, .L4536+164
|
|
ldr r1, [r3]
|
|
bl printf
|
|
.L4472:
|
|
ldr r3, [r4]
|
|
lsls r1, r3, #19
|
|
bpl .L4473
|
|
ldr r3, .L4536+100
|
|
ldr r0, .L4536+168
|
|
ldr r1, [r3]
|
|
bl printf
|
|
.L4473:
|
|
ldr r3, [r4]
|
|
lsls r2, r3, #19
|
|
bpl .L4474
|
|
ldr r3, .L4536+172
|
|
ldr r0, .L4536+176
|
|
ldrh r1, [r3]
|
|
bl printf
|
|
.L4474:
|
|
ldr r3, [r4]
|
|
ldr r8, .L4536+76
|
|
tst r3, #4096
|
|
beq .L4475
|
|
ldrh r1, [r8]
|
|
ldr r0, .L4536+180
|
|
bl printf
|
|
.L4475:
|
|
ldr r3, [r4]
|
|
lsls r3, r3, #19
|
|
bpl .L4476
|
|
ldr r3, .L4536+108
|
|
ldr r0, .L4536+184
|
|
ldrh r1, [r3]
|
|
bl printf
|
|
.L4476:
|
|
ldr r3, [r4]
|
|
lsls r7, r3, #19
|
|
bpl .L4477
|
|
ldr r3, .L4536+116
|
|
ldr r0, .L4536+188
|
|
ldrh r1, [r3]
|
|
bl printf
|
|
.L4477:
|
|
ldr r3, [r4]
|
|
lsls r5, r3, #19
|
|
bpl .L4478
|
|
ldr r3, .L4536+112
|
|
ldr r0, .L4536+192
|
|
ldrh r1, [r3]
|
|
bl printf
|
|
.L4478:
|
|
bl zbuf_init
|
|
mov r0, #16384
|
|
ldr r5, .L4536+196
|
|
bl ftl_malloc
|
|
ldr r3, .L4536+200
|
|
ldr r7, .L4536+72
|
|
str r0, [r3]
|
|
mov r0, #16384
|
|
bl ftl_malloc
|
|
str r0, [r5]
|
|
mov r0, #16384
|
|
bl ftl_malloc
|
|
ldr r3, .L4536+204
|
|
str r0, [r3]
|
|
movs r0, #6
|
|
ldrh r3, [r7]
|
|
muls r0, r3, r0
|
|
bl ftl_malloc
|
|
ldr r3, .L4536+208
|
|
ldr r2, [sp, #12]
|
|
b .L4537
|
|
.L4538:
|
|
.align 2
|
|
.L4536:
|
|
.word .LANCHOR65
|
|
.word .LANCHOR32
|
|
.word .LANCHOR66
|
|
.word .LC242
|
|
.word .LC101
|
|
.word .LANCHOR133
|
|
.word .LANCHOR94
|
|
.word .LANCHOR134
|
|
.word .LANCHOR182
|
|
.word .LANCHOR129
|
|
.word .LANCHOR238
|
|
.word .LANCHOR78
|
|
.word .LANCHOR131
|
|
.word .LANCHOR85
|
|
.word .LANCHOR23
|
|
.word .LANCHOR75
|
|
.word .LANCHOR112
|
|
.word .LANCHOR79
|
|
.word .LANCHOR8
|
|
.word .LANCHOR221
|
|
.word .LANCHOR2
|
|
.word .LANCHOR111
|
|
.word .LANCHOR74
|
|
.word .LANCHOR239
|
|
.word .LANCHOR67
|
|
.word .LANCHOR240
|
|
.word .LANCHOR128
|
|
.word .LANCHOR152
|
|
.word .LANCHOR101
|
|
.word .LANCHOR98
|
|
.word .LANCHOR125
|
|
.word .LANCHOR149
|
|
.word .LANCHOR150
|
|
.word .LANCHOR10
|
|
.word .LANCHOR0
|
|
.word .LANCHOR36
|
|
.word .LANCHOR122
|
|
.word .LANCHOR224
|
|
.word .LANCHOR19
|
|
.word .LC243
|
|
.word .LC244
|
|
.word .LC245
|
|
.word .LC246
|
|
.word .LANCHOR202
|
|
.word .LC247
|
|
.word .LC248
|
|
.word .LC249
|
|
.word .LC250
|
|
.word .LC251
|
|
.word .LANCHOR197
|
|
.word .LANCHOR192
|
|
.word .LANCHOR187
|
|
.word .LANCHOR4
|
|
.word .LANCHOR126
|
|
.word .LANCHOR83
|
|
.L4537:
|
|
str r0, [r3]
|
|
ldr r3, [sp, #8]
|
|
ldrb r0, [r2] @ zero_extendqisi2
|
|
ldrh r3, [r3]
|
|
muls r0, r3, r0
|
|
lsls r0, r0, #2
|
|
bl ftl_malloc
|
|
ldr r3, .L4539
|
|
ldr r2, [r5]
|
|
ldrh r5, [r7]
|
|
str r0, [r3]
|
|
ldr r3, .L4539+4
|
|
str r2, [r3]
|
|
ldr r3, [sp, #8]
|
|
ldrh r1, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldrb r0, [r3] @ zero_extendqisi2
|
|
muls r0, r1, r0
|
|
ldr r1, .L4539+8
|
|
add r3, r2, r0, lsl #3
|
|
str r3, [r1]
|
|
lsls r1, r0, #1
|
|
ldr r0, [r4]
|
|
add r1, r1, r5, lsr #1
|
|
ldr r5, .L4539+12
|
|
add r1, r2, r1, lsl #2
|
|
lsls r0, r0, #19
|
|
str r1, [r5]
|
|
bpl .L4479
|
|
ldr r0, .L4539+16
|
|
bl printf
|
|
.L4479:
|
|
ldr r2, [sp, #8]
|
|
ldr r1, [sp, #12]
|
|
ldrh r3, [r7]
|
|
ldrh r2, [r2]
|
|
ldrb r7, [r1] @ zero_extendqisi2
|
|
muls r7, r2, r7
|
|
ldrh r2, [r6]
|
|
lsls r6, r3, #2
|
|
add r7, r3, r7, lsl #2
|
|
ldr r3, [r4]
|
|
add r6, r6, r2, lsl #2
|
|
lsls r7, r7, #1
|
|
lsls r2, r3, #19
|
|
add r7, r7, #632
|
|
add r6, r6, #704
|
|
bpl .L4480
|
|
ldrh r3, [r8]
|
|
mov r2, r6
|
|
mov r1, r7
|
|
ldr r0, .L4539+20
|
|
bl printf
|
|
.L4480:
|
|
ldrh r3, [r8]
|
|
cmp r7, r3
|
|
bhi .L4481
|
|
cmp r6, r3
|
|
bls .L4482
|
|
.L4481:
|
|
.L4535:
|
|
b .L4535
|
|
.L4459:
|
|
lsls r2, r2, #1
|
|
b .L4458
|
|
.L4461:
|
|
lsls r5, r5, #1
|
|
b .L4460
|
|
.L4464:
|
|
ldr r3, .L4539+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L4467
|
|
mov r3, #1200
|
|
strh r1, [r0] @ movhi
|
|
strh r3, [ip] @ movhi
|
|
strh r1, [r2] @ movhi
|
|
b .L4467
|
|
.L4482:
|
|
bl sblk_init
|
|
bl ftl_info_blk_init
|
|
adds r3, r0, #1
|
|
beq .L4457
|
|
bl ftl_ext_info_init
|
|
bl gc_init
|
|
movs r0, #1
|
|
ldr r4, .L4539+28
|
|
bl pm_init
|
|
bl lpa_rebuild_hash
|
|
ldr r0, [r5]
|
|
movs r1, #0
|
|
adds r0, r0, #16
|
|
bl ftl_open_sblk_recovery
|
|
ldr r0, [r5]
|
|
add r1, r0, #16
|
|
adds r0, r0, #48
|
|
bl ftl_open_sblk_recovery
|
|
ldr r2, [r4]
|
|
ldr r0, [r5]
|
|
ldr r3, [r2, #8]
|
|
adds r0, r0, #16
|
|
adds r3, r3, #16
|
|
str r3, [r2, #8]
|
|
bl ftl_info_data_recovery
|
|
ldr r0, [r5]
|
|
adds r0, r0, #48
|
|
bl ftl_info_data_recovery
|
|
ldr r0, [r5]
|
|
adds r0, r0, #80
|
|
bl ftl_info_data_recovery
|
|
bl gc_recovery
|
|
bl pm_flush
|
|
movs r0, #1
|
|
bl ftl_total_vpn_update
|
|
ldr r3, .L4539+32
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4484
|
|
ldr r2, [r4]
|
|
ldr r3, [r2, #68]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #68]
|
|
.L4484:
|
|
bl ftl_ext_info_flush
|
|
movs r0, #0
|
|
bl ftl_info_flush
|
|
bl print_ftl_debug_info
|
|
ldr r3, [r5]
|
|
ldrh r3, [r3, #124]
|
|
cbnz r3, .L4491
|
|
ldr r3, .L4539+36
|
|
ldr r2, .L4539+40
|
|
ldrh r3, [r3]
|
|
ldrh r2, [r2]
|
|
add r3, r3, r2
|
|
cmp r3, #7
|
|
ble .L4491
|
|
.L4487:
|
|
movs r0, #0
|
|
.L4457:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4491:
|
|
ldr r6, .L4539+36
|
|
mov r4, #16384
|
|
.L4488:
|
|
movs r1, #1
|
|
movs r0, #0
|
|
bl zftl_do_gc
|
|
movs r1, #1
|
|
mov r0, r1
|
|
bl zftl_do_gc
|
|
ldr r3, [r5]
|
|
ldrh r2, [r3, #124]
|
|
cbnz r2, .L4486
|
|
ldrh r2, [r3, #80]
|
|
movw r3, #65535
|
|
cmp r2, r3
|
|
bne .L4486
|
|
ldr r2, .L4539+40
|
|
ldrh r3, [r6]
|
|
ldrh r2, [r2]
|
|
add r3, r3, r2
|
|
cmp r3, #7
|
|
bgt .L4487
|
|
.L4486:
|
|
subs r4, r4, #1
|
|
bne .L4488
|
|
b .L4487
|
|
.L4540:
|
|
.align 2
|
|
.L4539:
|
|
.word .LANCHOR118
|
|
.word .LANCHOR117
|
|
.word .LANCHOR11
|
|
.word .LANCHOR12
|
|
.word .LC252
|
|
.word .LC253
|
|
.word .LANCHOR35
|
|
.word .LANCHOR110
|
|
.word .LANCHOR195
|
|
.word .LANCHOR103
|
|
.word .LANCHOR107
|
|
.size zftl_init, .-zftl_init
|
|
.section .text.rk_ftl_init,"ax",%progbits
|
|
.align 1
|
|
.global rk_ftl_init
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type rk_ftl_init, %function
|
|
rk_ftl_init:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, lr}
|
|
bl nand_flash_init
|
|
mov r4, r0
|
|
cbnz r0, .L4542
|
|
bl zftl_init
|
|
mov r4, r0
|
|
.L4542:
|
|
bl idb_init
|
|
mov r1, r4
|
|
ldr r0, .L4543
|
|
bl printf
|
|
mov r0, r4
|
|
pop {r4, pc}
|
|
.L4544:
|
|
.align 2
|
|
.L4543:
|
|
.word .LC254
|
|
.size rk_ftl_init, .-rk_ftl_init
|
|
.section .text.zftl_write,"ax",%progbits
|
|
.align 1
|
|
.global zftl_write
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_write, %function
|
|
zftl_write:
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r8, r3
|
|
ldr r3, .L4574
|
|
sub sp, sp, #24
|
|
mov r4, r0
|
|
mov r6, r1
|
|
mov r5, r2
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L4546
|
|
ldr r3, [r8]
|
|
str r3, [sp]
|
|
mov r3, r2
|
|
mov r2, r1
|
|
mov r1, r0
|
|
ldr r0, .L4574+4
|
|
bl printf
|
|
.L4546:
|
|
cmp r4, #0
|
|
bne .L4547
|
|
ldr r3, .L4574+8
|
|
mov r4, #24576
|
|
ldr r3, [r3]
|
|
.L4548:
|
|
cmp r3, r6
|
|
bls .L4566
|
|
cmp r3, r5
|
|
bcc .L4566
|
|
adds r2, r6, r5
|
|
cmp r3, r2
|
|
bcc .L4566
|
|
ldr fp, .L4574+36
|
|
add r4, r4, r6
|
|
mov r0, r4
|
|
ldrb r6, [fp] @ zero_extendqisi2
|
|
mov r1, r6
|
|
bl __aeabi_uidiv
|
|
mov r10, r0
|
|
subs r0, r5, #1
|
|
mov r1, r6
|
|
add r0, r0, r4
|
|
bl __aeabi_uidiv
|
|
sub r6, r0, r10
|
|
mov r7, r10
|
|
adds r6, r6, #1
|
|
str r0, [sp, #12]
|
|
str fp, [sp, #16]
|
|
.L4550:
|
|
cbnz r6, .L4558
|
|
bl ftl_write_commit
|
|
bl ftl_flush
|
|
movs r1, #1
|
|
mov r0, r6
|
|
bl zftl_do_gc
|
|
ldr r3, .L4574+12
|
|
ldr r5, .L4574+16
|
|
ldr r4, .L4574+20
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #124]
|
|
cbnz r3, .L4559
|
|
ldrh r3, [r5]
|
|
ldrh r2, [r4]
|
|
add r3, r3, r2
|
|
cmp r3, #11
|
|
bgt .L4561
|
|
.L4559:
|
|
movs r1, #1
|
|
movs r0, #0
|
|
.L4573:
|
|
bl zftl_do_gc
|
|
.L4561:
|
|
ldrh r3, [r5]
|
|
ldrh r2, [r4]
|
|
add r3, r3, r2
|
|
cmp r3, #7
|
|
ble .L4562
|
|
movs r0, #0
|
|
.L4545:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4547:
|
|
cmp r4, #3
|
|
bhi .L4566
|
|
lsls r4, r4, #13
|
|
mov r3, #8192
|
|
b .L4548
|
|
.L4558:
|
|
ldr r3, .L4574+24
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cbz r3, .L4551
|
|
ldr r3, .L4574+28
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #2
|
|
bhi .L4551
|
|
bl ftl_write_commit
|
|
.L4551:
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
mov fp, r0
|
|
cbnz r0, .L4552
|
|
bl ftl_write_commit
|
|
b .L4550
|
|
.L4552:
|
|
ldr r3, [sp, #16]
|
|
movs r2, #0
|
|
strb r2, [r0, #41]
|
|
cmp r7, r10
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
strb r2, [r0, #40]
|
|
bne .L4554
|
|
mov r1, r2
|
|
mov r0, r4
|
|
str r2, [sp, #20]
|
|
bl __aeabi_uidivmod
|
|
ldr r2, [sp, #20]
|
|
uxtb r1, r1
|
|
strb r1, [fp, #41]
|
|
subs r1, r2, r1
|
|
uxtb r1, r1
|
|
cmp r5, r1
|
|
ite cs
|
|
strbcs r1, [fp, #40]
|
|
strbcc r5, [fp, #40]
|
|
.L4556:
|
|
ldrb ip, [fp, #41] @ zero_extendqisi2
|
|
mov r1, r8
|
|
ldrb r2, [fp, #40] @ zero_extendqisi2
|
|
subs r6, r6, #1
|
|
ldr r0, [fp, #4]
|
|
lsls r2, r2, #9
|
|
add r0, r0, ip, lsl #9
|
|
bl ftl_memcpy
|
|
ldr r2, .L4574+32
|
|
str r7, [fp, #20]
|
|
adds r7, r7, #1
|
|
ldr r1, [r2]
|
|
ldr r2, [r1, #8]
|
|
adds 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 r8, r8, r3, lsl #9
|
|
b .L4550
|
|
.L4554:
|
|
ldr r3, [sp, #12]
|
|
cmp r7, r3
|
|
itttt eq
|
|
smulbbeq r2, r7, r2
|
|
addeq r1, r4, r5
|
|
subeq r2, r1, r2
|
|
strbeq r2, [r0, #40]
|
|
b .L4556
|
|
.L4562:
|
|
movs r1, #1
|
|
movs r0, #0
|
|
bl zftl_do_gc
|
|
movs r1, #1
|
|
mov r0, r1
|
|
b .L4573
|
|
.L4566:
|
|
mov r0, #-1
|
|
b .L4545
|
|
.L4575:
|
|
.align 2
|
|
.L4574:
|
|
.word .LANCHOR19
|
|
.word .LC255
|
|
.word .LANCHOR67
|
|
.word .LANCHOR12
|
|
.word .LANCHOR103
|
|
.word .LANCHOR107
|
|
.word .LANCHOR66
|
|
.word .LANCHOR57
|
|
.word .LANCHOR110
|
|
.word .LANCHOR131
|
|
.size zftl_write, .-zftl_write
|
|
.section .text.zftl_sys_write,"ax",%progbits
|
|
.align 1
|
|
.global zftl_sys_write
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_sys_write, %function
|
|
zftl_sys_write:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_write
|
|
.size zftl_sys_write, .-zftl_sys_write
|
|
.section .text.StorageSysDataStore,"ax",%progbits
|
|
.align 1
|
|
.global StorageSysDataStore
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type StorageSysDataStore, %function
|
|
StorageSysDataStore:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
mov r3, r1
|
|
movs r2, #1
|
|
mov r1, r0
|
|
movs r0, #2
|
|
b zftl_write
|
|
.size StorageSysDataStore, .-StorageSysDataStore
|
|
.section .text.FlashBootVendorWrite,"ax",%progbits
|
|
.align 1
|
|
.global FlashBootVendorWrite
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type FlashBootVendorWrite, %function
|
|
FlashBootVendorWrite:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_write
|
|
.size FlashBootVendorWrite, .-FlashBootVendorWrite
|
|
.section .text.ftl_write,"ax",%progbits
|
|
.align 1
|
|
.global ftl_write
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_write, %function
|
|
ftl_write:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r4, r5, r6, r7, r8, lr}
|
|
mov r7, r1
|
|
mov r4, r2
|
|
mov r5, r3
|
|
mov r6, r0
|
|
cbnz r0, .L4580
|
|
mov r3, r2
|
|
mov r2, r5
|
|
bl idb_write_data
|
|
.L4580:
|
|
mov r3, r5
|
|
mov r2, r4
|
|
mov r1, r7
|
|
mov r0, r6
|
|
pop {r4, r5, r6, r7, r8, lr}
|
|
b zftl_write
|
|
.size ftl_write, .-ftl_write
|
|
.section .text.ftl_vendor_write,"ax",%progbits
|
|
.align 1
|
|
.global ftl_vendor_write
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_vendor_write, %function
|
|
ftl_vendor_write:
|
|
@ 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
|
|
movs r0, #2
|
|
b zftl_write
|
|
.size ftl_vendor_write, .-ftl_vendor_write
|
|
.section .text.zftl_vendor_write,"ax",%progbits
|
|
.align 1
|
|
.global zftl_vendor_write
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_vendor_write, %function
|
|
zftl_vendor_write:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
b ftl_vendor_write
|
|
.size zftl_vendor_write, .-zftl_vendor_write
|
|
.section .text.zftl_discard,"ax",%progbits
|
|
.align 1
|
|
.global zftl_discard
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type zftl_discard, %function
|
|
zftl_discard:
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
ldr r3, .L4633
|
|
push {r4, r5, r6, r7, r8, r10, fp, lr}
|
|
mov r4, r1
|
|
sub sp, sp, #32
|
|
ldr r3, [r3]
|
|
cmp r0, r3
|
|
bcs .L4606
|
|
cmp r1, r3
|
|
bhi .L4606
|
|
adds r2, r0, r1
|
|
cmp r3, r2
|
|
bcc .L4606
|
|
ldr r2, .L4633+4
|
|
add r7, r0, #24576
|
|
ldr r3, .L4633+8
|
|
ldr r0, [r2]
|
|
ldr r1, [r3]
|
|
str r3, [sp, #12]
|
|
tst r0, #4096
|
|
str r2, [sp, #16]
|
|
add r1, r1, r4
|
|
str r1, [r3]
|
|
beq .L4585
|
|
movs r3, #0
|
|
mov r2, r7
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
ldr r0, .L4633+12
|
|
bl printf
|
|
.L4585:
|
|
ldr r8, .L4633+36
|
|
ldr r10, .L4633+40
|
|
ldr r3, [r8]
|
|
ldr r2, [r3, #8]
|
|
str r2, [sp, #8]
|
|
adds r2, r2, #1
|
|
str r2, [r3, #8]
|
|
bl ftl_write_commit
|
|
bl ftl_flush
|
|
ldrb r6, [r10] @ zero_extendqisi2
|
|
mov r0, r7
|
|
mov r1, r6
|
|
bl __aeabi_uidiv
|
|
mov r1, r6
|
|
mov r5, r0
|
|
mov r0, r7
|
|
bl __aeabi_uidivmod
|
|
mov fp, r1
|
|
cmp r1, #0
|
|
beq .L4586
|
|
subs r6, r6, r1
|
|
mov r0, r5
|
|
cmp r6, r4
|
|
it cs
|
|
movcs r6, r4
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #24]
|
|
adds r0, r0, #1
|
|
bne .L4587
|
|
movs r2, #0
|
|
add r1, sp, #24
|
|
mov r0, r5
|
|
bl pm_log2phys
|
|
.L4587:
|
|
ldr r3, [sp, #24]
|
|
adds r3, r3, #1
|
|
beq .L4589
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
mov r3, r0
|
|
cbz r0, .L4589
|
|
ldr r2, [sp, #8]
|
|
movs r1, #0
|
|
str r5, [r0, #20]
|
|
strb fp, [r0, #41]
|
|
str r2, [r0, #16]
|
|
uxth r2, r6
|
|
strb r6, [r0, #40]
|
|
ldr r0, [r0, #4]
|
|
lsls r2, r2, #9
|
|
str r3, [sp, #20]
|
|
add r0, r0, fp, lsl #9
|
|
bl ftl_memset
|
|
ldr r3, [sp, #20]
|
|
mov r0, r3
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
ldr r2, [r8]
|
|
ldr r3, [r2, #76]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #76]
|
|
.L4589:
|
|
uxth r6, r6
|
|
adds r5, r5, #1
|
|
subs r4, r4, r6
|
|
.L4586:
|
|
cbz r4, .L4591
|
|
bl ftl_flush
|
|
.L4591:
|
|
ldr fp, .L4633+44
|
|
mov r3, #-1
|
|
ldr r6, .L4633+16
|
|
str r3, [sp, #28]
|
|
.L4592:
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r4, r3
|
|
bcs .L4597
|
|
cmp r4, #0
|
|
beq .L4599
|
|
mov r0, r5
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #24]
|
|
adds r0, r0, #1
|
|
bne .L4600
|
|
movs r2, #0
|
|
add r1, sp, #24
|
|
mov r0, r5
|
|
bl pm_log2phys
|
|
.L4600:
|
|
ldr r3, [sp, #24]
|
|
adds r3, r3, #1
|
|
beq .L4599
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
mov r6, r0
|
|
cbz r0, .L4599
|
|
movs r3, #0
|
|
str r5, [r0, #20]
|
|
strb r3, [r0, #41]
|
|
ldr r3, [sp, #8]
|
|
strb r4, [r0, #40]
|
|
str r3, [r0, #16]
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
cmp r4, r3
|
|
bcc .L4602
|
|
movw r2, #1493
|
|
ldr r1, .L4633+20
|
|
ldr r0, .L4633+24
|
|
bl printf
|
|
.L4602:
|
|
lsls r2, r4, #9
|
|
movs r1, #0
|
|
ldr r0, [r6, #4]
|
|
bl ftl_memset
|
|
mov r0, r6
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
ldr r2, [r8]
|
|
ldr r3, [r2, #76]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #76]
|
|
.L4599:
|
|
ldr r3, [sp, #12]
|
|
ldr r1, [r3]
|
|
cmp r1, #8192
|
|
bls .L4607
|
|
ldr r3, [sp, #16]
|
|
ldr r3, [r3]
|
|
lsls r3, r3, #19
|
|
bpl .L4603
|
|
movs r3, #0
|
|
mov r2, r7
|
|
str r3, [sp]
|
|
mov r3, r4
|
|
ldr r0, .L4633+12
|
|
bl printf
|
|
.L4603:
|
|
ldr r3, [sp, #12]
|
|
movs r4, #0
|
|
str r4, [r3]
|
|
bl flt_sys_flush
|
|
ldr r3, .L4633+28
|
|
movs r2, #1
|
|
str r2, [r3]
|
|
.L4607:
|
|
movs r0, #0
|
|
b .L4583
|
|
.L4597:
|
|
mov r0, r5
|
|
bl lpa_hash_get_ppa
|
|
str r0, [sp, #24]
|
|
adds r0, r0, #1
|
|
beq .L4593
|
|
movs r0, #0
|
|
bl buf_alloc
|
|
mov r3, r0
|
|
cbz r0, .L4595
|
|
ldrb r2, [r10] @ zero_extendqisi2
|
|
movs r1, #0
|
|
strb r1, [r0, #41]
|
|
str r5, [r0, #20]
|
|
strb r2, [r0, #40]
|
|
ldr r0, [sp, #8]
|
|
lsls r2, r2, #9
|
|
str r3, [sp, #20]
|
|
str r0, [r3, #16]
|
|
ldr r0, [r3, #4]
|
|
bl ftl_memset
|
|
ldr r3, [sp, #20]
|
|
mov r0, r3
|
|
bl ftl_write_buf
|
|
bl ftl_write_commit
|
|
.L4632:
|
|
ldr r2, [r8]
|
|
ldr r3, [r2, #76]
|
|
adds r3, r3, #1
|
|
str r3, [r2, #76]
|
|
.L4595:
|
|
ldrb r3, [r10] @ zero_extendqisi2
|
|
adds r5, r5, #1
|
|
subs r4, r4, r3
|
|
b .L4592
|
|
.L4593:
|
|
movs r2, #0
|
|
add r1, sp, #24
|
|
mov r0, r5
|
|
bl pm_log2phys
|
|
ldr r3, [sp, #24]
|
|
adds r3, r3, #1
|
|
beq .L4595
|
|
add r1, sp, #28
|
|
movs r2, #1
|
|
mov r0, r5
|
|
bl pm_log2phys
|
|
ldrb r3, [r6] @ zero_extendqisi2
|
|
ldrh r2, [fp]
|
|
rsb r3, r3, #24
|
|
subs r0, r3, r2
|
|
movs r3, #1
|
|
lsls r3, r3, r0
|
|
ldr r0, [sp, #24]
|
|
subs r3, r3, #1
|
|
lsrs r0, r0, r2
|
|
ldr r2, .L4633+32
|
|
ands r0, r0, r3
|
|
ldrb r1, [r2] @ zero_extendqisi2
|
|
bl __aeabi_uidiv
|
|
uxth r0, r0
|
|
bl ftl_vpn_decrement
|
|
b .L4632
|
|
.L4606:
|
|
mov r0, #-1
|
|
.L4583:
|
|
add sp, sp, #32
|
|
@ sp needed
|
|
pop {r4, r5, r6, r7, r8, r10, fp, pc}
|
|
.L4634:
|
|
.align 2
|
|
.L4633:
|
|
.word .LANCHOR67
|
|
.word .LANCHOR19
|
|
.word .LANCHOR241
|
|
.word .LC256
|
|
.word .LANCHOR31
|
|
.word .LANCHOR242
|
|
.word .LC0
|
|
.word .LANCHOR122
|
|
.word .LANCHOR75
|
|
.word .LANCHOR110
|
|
.word .LANCHOR131
|
|
.word .LANCHOR74
|
|
.size zftl_discard, .-zftl_discard
|
|
.section .text.ftl_discard,"ax",%progbits
|
|
.align 1
|
|
.global ftl_discard
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type ftl_discard, %function
|
|
ftl_discard:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
mov r0, r1
|
|
mov r1, r2
|
|
b zftl_discard
|
|
.size ftl_discard, .-ftl_discard
|
|
.section .text.dump_pm_blk,"ax",%progbits
|
|
.align 1
|
|
.global dump_pm_blk
|
|
.syntax unified
|
|
.thumb
|
|
.thumb_func
|
|
.fpu softvfp
|
|
.type dump_pm_blk, %function
|
|
dump_pm_blk:
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
push {r3, r4, r5, r6, r7, lr}
|
|
movs r2, #4
|
|
ldr r4, .L4640
|
|
movs r5, #0
|
|
movw r7, #65535
|
|
ldr r0, .L4640+4
|
|
ldr r1, [r4]
|
|
ldr r6, .L4640+8
|
|
ldrh r3, [r1, #698]
|
|
add r1, r1, #704
|
|
bl rknand_print_hex
|
|
ldr r1, [r4]
|
|
movs r2, #2
|
|
ldrh r3, [r6]
|
|
ldr r0, .L4640+12
|
|
add r1, r1, #416
|
|
bl rknand_print_hex
|
|
.L4637:
|
|
ldrh r2, [r6]
|
|
uxth r3, r5
|
|
cmp r2, r3
|
|
bhi .L4639
|
|
pop {r3, r4, r5, r6, r7, pc}
|
|
.L4639:
|
|
ldr r2, [r4]
|
|
uxth r3, r5
|
|
adds r3, r3, #208
|
|
ldrh r0, [r2, r3, lsl #1]
|
|
cmp r0, r7
|
|
beq .L4638
|
|
movs r1, #0
|
|
bl ftl_sblk_dump
|
|
.L4638:
|
|
adds r5, r5, #1
|
|
b .L4637
|
|
.L4641:
|
|
.align 2
|
|
.L4640:
|
|
.word .LANCHOR110
|
|
.word .LC257
|
|
.word .LANCHOR152
|
|
.word .LC258
|
|
.size dump_pm_blk, .-dump_pm_blk
|
|
.global g_pm_spare
|
|
.global pm_first_write
|
|
.global pm_force_gc
|
|
.global pm_gc_enable
|
|
.global pm_last_load_ram_id
|
|
.global pm_last_update_ram_id
|
|
.global pm_ram_info
|
|
.global sblk_gc_write_completed_queue_head
|
|
.global sblk_read_completed_queue_head
|
|
.global sblk_write_completed_queue_head
|
|
.global sblk_queue_head
|
|
.global slc_cache_sblk
|
|
.global xlc_data_sblk
|
|
.global slc_data_sblk
|
|
.global free_mix_sblk
|
|
.global free_xlc_sblk
|
|
.global free_slc_sblk
|
|
.global gp_data_xlc_data_head
|
|
.global gp_data_slc_data_head
|
|
.global gp_data_slc_cache_head
|
|
.global gp_free_mix_head
|
|
.global gp_free_xlc_head
|
|
.global gp_free_slc_head
|
|
.global gp_sblk_list_tbl
|
|
.global zftl_print_list_count
|
|
.global ftl_ext_info_first_write
|
|
.global ftl_sys_info_first_write
|
|
.global ftl_low_format_cur_blk
|
|
.global ftl_power_lost_flag
|
|
.global ftl_vpn_update_count
|
|
.global ftl_sblk_update_list_offset
|
|
.global ftl_sblk_update_list
|
|
.global ftl_sblk_vpn_update_id
|
|
.global ftl_sblk_lpa_tbl
|
|
.global ftl_sblk_vpn
|
|
.global gp_ftl_ext_info
|
|
.global gp_ftl_info
|
|
.global gp_blk_info
|
|
.global ftl_tmp_buffer
|
|
.global ftl_ext_info_data_buffer
|
|
.global ftl_info_data_buffer
|
|
.global ftl_tmp_spare
|
|
.global ftl_info_spare
|
|
.global g_ftl_info_blk
|
|
.global tlc_b05a_prog_tbl
|
|
.global tlc_prog_order
|
|
.global gc_des_ppa_tbl
|
|
.global gc_valid_page_ppa
|
|
.global gc_page_buf_id
|
|
.global gc_pre_ppa_tbl
|
|
.global gc_lpa_tbl
|
|
.global g_gc_info
|
|
.global gc_xlc_search_index
|
|
.global gc_xlc_data_index
|
|
.global gc_slc_cache_index
|
|
.global gc_slc_data_index
|
|
.global gc_free_slc_sblk_th
|
|
.global gc_slc_mode_vpn_th
|
|
.global gc_slc_mode_slc_vpn_th
|
|
.global gc_slc_mode_tlc_vpn_th
|
|
.global gc_tlc_mode_tlc_vpn_th
|
|
.global gc_tlc_mode_slc_vpn_th
|
|
.global gc_state
|
|
.global gc_mode
|
|
.global p_read_ahead_ext_buf
|
|
.global discard_sector_count
|
|
.global read_ahead_lpa
|
|
.global _ftl_gc_tag_page_num
|
|
.global read_buf_count
|
|
.global read_buf_head
|
|
.global write_commit_count
|
|
.global write_commit_head
|
|
.global write_buf_count
|
|
.global write_buf_head
|
|
.global ftl_flush_jiffies
|
|
.global lpa_hash
|
|
.global lpa_hash_index
|
|
.global _c_slc_to_xlc_ec_ratio
|
|
.global _c_mix_max_xlc_ec_count
|
|
.global _c_mix_max_slc_ec_count
|
|
.global _c_swl_xlc_gc_th
|
|
.global _c_swl_slc_gc_th
|
|
.global _gc_after_discard_en
|
|
.global _last_write_time
|
|
.global _last_read_time
|
|
.global _min_slc_super_block
|
|
.global _max_xlc_super_block
|
|
.global _c_max_pm_sblk
|
|
.global _c_ftl_pm_page_num
|
|
.global _c_totle_log_page
|
|
.global _c_totle_data_density
|
|
.global _c_user_data_density
|
|
.global _c_totle_phy_density
|
|
.global _c_ftl_block_addr_log2
|
|
.global _c_ftl_block_align_addr
|
|
.global _c_ftl_byte_pre_page
|
|
.global _c_ftl_nand_blks_per_die
|
|
.global _c_ftl_page_pre_slc_blk
|
|
.global _c_ftl_page_pre_blk
|
|
.global _c_ftl_blk_pre_plane
|
|
.global _c_ftl_nand_planes_num
|
|
.global _c_ftl_planes_per_die
|
|
.global _c_ftl_sec_per_page
|
|
.global _c_ftl_nand_die_num
|
|
.global _c_ftl_nand_type
|
|
.global zftl_debug
|
|
.global g_flash_blk_info
|
|
.global gp_flash_info
|
|
.global p_free_buf_head
|
|
.global free_buf_count
|
|
.global g_buf
|
|
.global nandc_ecc_sts
|
|
.global g_nandc_v6_master_info
|
|
.global nandc_randomizer_en
|
|
.global nandc_hw_seed
|
|
.global fill_spare_size
|
|
.global g_nandc_ecc_bits
|
|
.global g_nandc_tran_timeout
|
|
.global g_nandc_ver
|
|
.global gp_nandc
|
|
.global hy_f26_ref_value
|
|
.global sd15_tlc_rr
|
|
.global sd15_slc_rr
|
|
.global g_nand_para_info
|
|
.global gp_nand_para_info
|
|
.global g_nand_opt_para
|
|
.global g_msb_page_tbl
|
|
.global g_lsb_page_tbl
|
|
.global g_die_addr
|
|
.global g_die_cs_idx
|
|
.global IDByte
|
|
.global flash_read_retry
|
|
.global _c_ftl_cs_bits
|
|
.global g_maxRetryCount
|
|
.global g_maxRegNum
|
|
.global g_retryMode
|
|
.global g_flash_toggle_mode_en
|
|
.global g_flash_ymtc_3d_tlc_flag
|
|
.global g_flash_micron_3d_tlc_b16a
|
|
.global g_flash_micron_3d_tlc_b05a
|
|
.global g_flash_micron_3d_tlc_flag
|
|
.global g_flash_3d_mlc_flag
|
|
.global g_flash_3d_tlc_flag
|
|
.global g_flash_multi_page_prog_en
|
|
.global g_flash_multi_page_read_en
|
|
.global g_flash_interface_mode
|
|
.global g_idb_ecc_bits
|
|
.global g_idb_slc_mode_enable
|
|
.global g_one_pass_program
|
|
.global g_slc_mode_addr2
|
|
.global g_slc_mode_enable
|
|
.global g_flash_cur_mode
|
|
.global g_flash_six_addr
|
|
.global g_flash_slc_mode
|
|
.global g_slc_page_num
|
|
.global g_totle_phy_block
|
|
.global g_block_align_addr
|
|
.global g_flash_reversd_blks
|
|
.global g_nand_max_die
|
|
.global g_flash_tmp_spare_buffer
|
|
.global g_flash_tmp_page_buffer
|
|
.global g_flash_sys_spare_buffer
|
|
.global g_flash_spare_buffer
|
|
.global g_flash_page_buffer
|
|
.section .bss.IDByte,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR47,. + 0
|
|
.type IDByte, %object
|
|
.size IDByte, 32
|
|
IDByte:
|
|
.space 32
|
|
.section .bss._c_ftl_blk_pre_plane,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR8,. + 0
|
|
.type _c_ftl_blk_pre_plane, %object
|
|
.size _c_ftl_blk_pre_plane, 2
|
|
_c_ftl_blk_pre_plane:
|
|
.space 2
|
|
.section .bss._c_ftl_block_addr_log2,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR74,. + 0
|
|
.type _c_ftl_block_addr_log2, %object
|
|
.size _c_ftl_block_addr_log2, 2
|
|
_c_ftl_block_addr_log2:
|
|
.space 2
|
|
.section .bss._c_ftl_block_align_addr,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR111,. + 0
|
|
.type _c_ftl_block_align_addr, %object
|
|
.size _c_ftl_block_align_addr, 2
|
|
_c_ftl_block_align_addr:
|
|
.space 2
|
|
.section .bss._c_ftl_byte_pre_page,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR221,. + 0
|
|
.type _c_ftl_byte_pre_page, %object
|
|
.size _c_ftl_byte_pre_page, 2
|
|
_c_ftl_byte_pre_page:
|
|
.space 2
|
|
.section .bss._c_ftl_cs_bits,"aw",%nobits
|
|
.set .LANCHOR31,. + 0
|
|
.type _c_ftl_cs_bits, %object
|
|
.size _c_ftl_cs_bits, 1
|
|
_c_ftl_cs_bits:
|
|
.space 1
|
|
.section .bss._c_ftl_nand_blks_per_die,"aw",%nobits
|
|
.align 1
|
|
.type _c_ftl_nand_blks_per_die, %object
|
|
.size _c_ftl_nand_blks_per_die, 2
|
|
_c_ftl_nand_blks_per_die:
|
|
.space 2
|
|
.section .bss._c_ftl_nand_die_num,"aw",%nobits
|
|
.set .LANCHOR112,. + 0
|
|
.type _c_ftl_nand_die_num, %object
|
|
.size _c_ftl_nand_die_num, 1
|
|
_c_ftl_nand_die_num:
|
|
.space 1
|
|
.section .bss._c_ftl_nand_planes_num,"aw",%nobits
|
|
.set .LANCHOR79,. + 0
|
|
.type _c_ftl_nand_planes_num, %object
|
|
.size _c_ftl_nand_planes_num, 1
|
|
_c_ftl_nand_planes_num:
|
|
.space 1
|
|
.section .bss._c_ftl_nand_type,"aw",%nobits
|
|
.set .LANCHOR78,. + 0
|
|
.type _c_ftl_nand_type, %object
|
|
.size _c_ftl_nand_type, 1
|
|
_c_ftl_nand_type:
|
|
.space 1
|
|
.section .bss._c_ftl_page_pre_blk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR85,. + 0
|
|
.type _c_ftl_page_pre_blk, %object
|
|
.size _c_ftl_page_pre_blk, 2
|
|
_c_ftl_page_pre_blk:
|
|
.space 2
|
|
.section .bss._c_ftl_page_pre_slc_blk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR94,. + 0
|
|
.type _c_ftl_page_pre_slc_blk, %object
|
|
.size _c_ftl_page_pre_slc_blk, 2
|
|
_c_ftl_page_pre_slc_blk:
|
|
.space 2
|
|
.section .bss._c_ftl_planes_per_die,"aw",%nobits
|
|
.set .LANCHOR75,. + 0
|
|
.type _c_ftl_planes_per_die, %object
|
|
.size _c_ftl_planes_per_die, 1
|
|
_c_ftl_planes_per_die:
|
|
.space 1
|
|
.section .bss._c_ftl_pm_page_num,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR202,. + 0
|
|
.type _c_ftl_pm_page_num, %object
|
|
.size _c_ftl_pm_page_num, 2
|
|
_c_ftl_pm_page_num:
|
|
.space 2
|
|
.section .bss._c_ftl_sec_per_page,"aw",%nobits
|
|
.set .LANCHOR131,. + 0
|
|
.type _c_ftl_sec_per_page, %object
|
|
.size _c_ftl_sec_per_page, 1
|
|
_c_ftl_sec_per_page:
|
|
.space 1
|
|
.section .bss._c_max_pm_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR152,. + 0
|
|
.type _c_max_pm_sblk, %object
|
|
.size _c_max_pm_sblk, 2
|
|
_c_max_pm_sblk:
|
|
.space 2
|
|
.section .bss._c_mix_max_slc_ec_count,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR126,. + 0
|
|
.type _c_mix_max_slc_ec_count, %object
|
|
.size _c_mix_max_slc_ec_count, 2
|
|
_c_mix_max_slc_ec_count:
|
|
.space 2
|
|
.section .bss._c_mix_max_xlc_ec_count,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR125,. + 0
|
|
.type _c_mix_max_xlc_ec_count, %object
|
|
.size _c_mix_max_xlc_ec_count, 2
|
|
_c_mix_max_xlc_ec_count:
|
|
.space 2
|
|
.section .bss._c_slc_to_xlc_ec_ratio,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR10,. + 0
|
|
.type _c_slc_to_xlc_ec_ratio, %object
|
|
.size _c_slc_to_xlc_ec_ratio, 2
|
|
_c_slc_to_xlc_ec_ratio:
|
|
.space 2
|
|
.section .bss._c_swl_slc_gc_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR149,. + 0
|
|
.type _c_swl_slc_gc_th, %object
|
|
.size _c_swl_slc_gc_th, 2
|
|
_c_swl_slc_gc_th:
|
|
.space 2
|
|
.section .bss._c_swl_xlc_gc_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR150,. + 0
|
|
.type _c_swl_xlc_gc_th, %object
|
|
.size _c_swl_xlc_gc_th, 2
|
|
_c_swl_xlc_gc_th:
|
|
.space 2
|
|
.section .bss._c_totle_data_density,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR240,. + 0
|
|
.type _c_totle_data_density, %object
|
|
.size _c_totle_data_density, 4
|
|
_c_totle_data_density:
|
|
.space 4
|
|
.section .bss._c_totle_log_page,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR128,. + 0
|
|
.type _c_totle_log_page, %object
|
|
.size _c_totle_log_page, 4
|
|
_c_totle_log_page:
|
|
.space 4
|
|
.section .bss._c_totle_phy_density,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR239,. + 0
|
|
.type _c_totle_phy_density, %object
|
|
.size _c_totle_phy_density, 4
|
|
_c_totle_phy_density:
|
|
.space 4
|
|
.section .bss._c_user_data_density,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR67,. + 0
|
|
.type _c_user_data_density, %object
|
|
.size _c_user_data_density, 4
|
|
_c_user_data_density:
|
|
.space 4
|
|
.section .bss._ftl_gc_tag_page_num,"aw",%nobits
|
|
.set .LANCHOR224,. + 0
|
|
.type _ftl_gc_tag_page_num, %object
|
|
.size _ftl_gc_tag_page_num, 1
|
|
_ftl_gc_tag_page_num:
|
|
.space 1
|
|
.section .bss._gc_after_discard_en,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR122,. + 0
|
|
.type _gc_after_discard_en, %object
|
|
.size _gc_after_discard_en, 4
|
|
_gc_after_discard_en:
|
|
.space 4
|
|
.section .bss._last_read_time,"aw",%nobits
|
|
.align 2
|
|
.type _last_read_time, %object
|
|
.size _last_read_time, 4
|
|
_last_read_time:
|
|
.space 4
|
|
.section .bss._last_write_time,"aw",%nobits
|
|
.align 2
|
|
.type _last_write_time, %object
|
|
.size _last_write_time, 4
|
|
_last_write_time:
|
|
.space 4
|
|
.section .bss._max_xlc_super_block,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR101,. + 0
|
|
.type _max_xlc_super_block, %object
|
|
.size _max_xlc_super_block, 2
|
|
_max_xlc_super_block:
|
|
.space 2
|
|
.section .bss._min_slc_super_block,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR98,. + 0
|
|
.type _min_slc_super_block, %object
|
|
.size _min_slc_super_block, 2
|
|
_min_slc_super_block:
|
|
.space 2
|
|
.section .bss.discard_sector_count,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR241,. + 0
|
|
.type discard_sector_count, %object
|
|
.size discard_sector_count, 4
|
|
discard_sector_count:
|
|
.space 4
|
|
.section .bss.fill_spare_size,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR53,. + 0
|
|
.type fill_spare_size, %object
|
|
.size fill_spare_size, 2
|
|
fill_spare_size:
|
|
.space 2
|
|
.section .bss.flash_ddr_tuning_sdr_read_count,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR169,. + 0
|
|
.type flash_ddr_tuning_sdr_read_count, %object
|
|
.size flash_ddr_tuning_sdr_read_count, 4
|
|
flash_ddr_tuning_sdr_read_count:
|
|
.space 4
|
|
.section .bss.flash_read_retry,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR171,. + 0
|
|
.type flash_read_retry, %object
|
|
.size flash_read_retry, 4
|
|
flash_read_retry:
|
|
.space 4
|
|
.section .bss.free_buf_count,"aw",%nobits
|
|
.set .LANCHOR57,. + 0
|
|
.type free_buf_count, %object
|
|
.size free_buf_count, 1
|
|
free_buf_count:
|
|
.space 1
|
|
.section .bss.free_mix_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR107,. + 0
|
|
.type free_mix_sblk, %object
|
|
.size free_mix_sblk, 2
|
|
free_mix_sblk:
|
|
.space 2
|
|
.section .bss.free_slc_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR103,. + 0
|
|
.type free_slc_sblk, %object
|
|
.size free_slc_sblk, 2
|
|
free_slc_sblk:
|
|
.space 2
|
|
.section .bss.free_xlc_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR105,. + 0
|
|
.type free_xlc_sblk, %object
|
|
.size free_xlc_sblk, 2
|
|
free_xlc_sblk:
|
|
.space 2
|
|
.section .bss.ftl_ext_info_data_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR197,. + 0
|
|
.type ftl_ext_info_data_buffer, %object
|
|
.size ftl_ext_info_data_buffer, 4
|
|
ftl_ext_info_data_buffer:
|
|
.space 4
|
|
.section .bss.ftl_ext_info_first_write,"aw",%nobits
|
|
.set .LANCHOR196,. + 0
|
|
.type ftl_ext_info_first_write, %object
|
|
.size ftl_ext_info_first_write, 1
|
|
ftl_ext_info_first_write:
|
|
.space 1
|
|
.section .bss.ftl_flush_jiffies,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR233,. + 0
|
|
.type ftl_flush_jiffies, %object
|
|
.size ftl_flush_jiffies, 4
|
|
ftl_flush_jiffies:
|
|
.space 4
|
|
.section .bss.ftl_info_data_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR192,. + 0
|
|
.type ftl_info_data_buffer, %object
|
|
.size ftl_info_data_buffer, 4
|
|
ftl_info_data_buffer:
|
|
.space 4
|
|
.section .bss.ftl_info_spare,"aw",%nobits
|
|
.align 6
|
|
.set .LANCHOR190,. + 0
|
|
.type ftl_info_spare, %object
|
|
.size ftl_info_spare, 256
|
|
ftl_info_spare:
|
|
.space 256
|
|
.section .bss.ftl_low_format_cur_blk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR68,. + 0
|
|
.type ftl_low_format_cur_blk, %object
|
|
.size ftl_low_format_cur_blk, 2
|
|
ftl_low_format_cur_blk:
|
|
.space 2
|
|
.section .bss.ftl_power_lost_flag,"aw",%nobits
|
|
.set .LANCHOR195,. + 0
|
|
.type ftl_power_lost_flag, %object
|
|
.size ftl_power_lost_flag, 1
|
|
ftl_power_lost_flag:
|
|
.space 1
|
|
.section .bss.ftl_sblk_lpa_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR117,. + 0
|
|
.type ftl_sblk_lpa_tbl, %object
|
|
.size ftl_sblk_lpa_tbl, 4
|
|
ftl_sblk_lpa_tbl:
|
|
.space 4
|
|
.section .bss.ftl_sblk_update_list,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR73,. + 0
|
|
.type ftl_sblk_update_list, %object
|
|
.size ftl_sblk_update_list, 16
|
|
ftl_sblk_update_list:
|
|
.space 16
|
|
.section .bss.ftl_sblk_update_list_offset,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR123,. + 0
|
|
.type ftl_sblk_update_list_offset, %object
|
|
.size ftl_sblk_update_list_offset, 2
|
|
ftl_sblk_update_list_offset:
|
|
.space 2
|
|
.section .bss.ftl_sblk_vpn,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR11,. + 0
|
|
.type ftl_sblk_vpn, %object
|
|
.size ftl_sblk_vpn, 4
|
|
ftl_sblk_vpn:
|
|
.space 4
|
|
.section .bss.ftl_sblk_vpn_update_id,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR72,. + 0
|
|
.type ftl_sblk_vpn_update_id, %object
|
|
.size ftl_sblk_vpn_update_id, 2
|
|
ftl_sblk_vpn_update_id:
|
|
.space 2
|
|
.section .bss.ftl_sys_info_first_write,"aw",%nobits
|
|
.set .LANCHOR194,. + 0
|
|
.type ftl_sys_info_first_write, %object
|
|
.size ftl_sys_info_first_write, 1
|
|
ftl_sys_info_first_write:
|
|
.space 1
|
|
.section .bss.ftl_tmp_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR187,. + 0
|
|
.type ftl_tmp_buffer, %object
|
|
.size ftl_tmp_buffer, 4
|
|
ftl_tmp_buffer:
|
|
.space 4
|
|
.section .bss.ftl_tmp_spare,"aw",%nobits
|
|
.align 6
|
|
.set .LANCHOR188,. + 0
|
|
.type ftl_tmp_spare, %object
|
|
.size ftl_tmp_spare, 256
|
|
ftl_tmp_spare:
|
|
.space 256
|
|
.section .bss.ftl_vpn_update_count,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR121,. + 0
|
|
.type ftl_vpn_update_count, %object
|
|
.size ftl_vpn_update_count, 2
|
|
ftl_vpn_update_count:
|
|
.space 2
|
|
.section .bss.g_block_align_addr,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR2,. + 0
|
|
.type g_block_align_addr, %object
|
|
.size g_block_align_addr, 2
|
|
g_block_align_addr:
|
|
.space 2
|
|
.section .bss.g_buf,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR55,. + 0
|
|
.type g_buf, %object
|
|
.size g_buf, 1536
|
|
g_buf:
|
|
.space 1536
|
|
.section .bss.g_die_addr,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR145,. + 0
|
|
.type g_die_addr, %object
|
|
.size g_die_addr, 32
|
|
g_die_addr:
|
|
.space 32
|
|
.section .bss.g_die_cs_idx,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR29,. + 0
|
|
.type g_die_cs_idx, %object
|
|
.size g_die_cs_idx, 8
|
|
g_die_cs_idx:
|
|
.space 8
|
|
.section .bss.g_flash_3d_mlc_flag,"aw",%nobits
|
|
.set .LANCHOR80,. + 0
|
|
.type g_flash_3d_mlc_flag, %object
|
|
.size g_flash_3d_mlc_flag, 1
|
|
g_flash_3d_mlc_flag:
|
|
.space 1
|
|
.section .bss.g_flash_3d_tlc_flag,"aw",%nobits
|
|
.set .LANCHOR83,. + 0
|
|
.type g_flash_3d_tlc_flag, %object
|
|
.size g_flash_3d_tlc_flag, 1
|
|
g_flash_3d_tlc_flag:
|
|
.space 1
|
|
.section .bss.g_flash_blk_info,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR211,. + 0
|
|
.type g_flash_blk_info, %object
|
|
.size g_flash_blk_info, 4
|
|
g_flash_blk_info:
|
|
.space 4
|
|
.section .bss.g_flash_cur_mode,"aw",%nobits
|
|
.set .LANCHOR33,. + 0
|
|
.type g_flash_cur_mode, %object
|
|
.size g_flash_cur_mode, 4
|
|
g_flash_cur_mode:
|
|
.space 4
|
|
.section .bss.g_flash_interface_mode,"aw",%nobits
|
|
.set .LANCHOR48,. + 0
|
|
.type g_flash_interface_mode, %object
|
|
.size g_flash_interface_mode, 1
|
|
g_flash_interface_mode:
|
|
.space 1
|
|
.section .bss.g_flash_micron_3d_tlc_b05a,"aw",%nobits
|
|
.set .LANCHOR124,. + 0
|
|
.type g_flash_micron_3d_tlc_b05a, %object
|
|
.size g_flash_micron_3d_tlc_b05a, 1
|
|
g_flash_micron_3d_tlc_b05a:
|
|
.space 1
|
|
.section .bss.g_flash_micron_3d_tlc_b16a,"aw",%nobits
|
|
.set .LANCHOR217,. + 0
|
|
.type g_flash_micron_3d_tlc_b16a, %object
|
|
.size g_flash_micron_3d_tlc_b16a, 1
|
|
g_flash_micron_3d_tlc_b16a:
|
|
.space 1
|
|
.section .bss.g_flash_micron_3d_tlc_flag,"aw",%nobits
|
|
.set .LANCHOR35,. + 0
|
|
.type g_flash_micron_3d_tlc_flag, %object
|
|
.size g_flash_micron_3d_tlc_flag, 1
|
|
g_flash_micron_3d_tlc_flag:
|
|
.space 1
|
|
.section .bss.g_flash_multi_page_prog_en,"aw",%nobits
|
|
.set .LANCHOR44,. + 0
|
|
.type g_flash_multi_page_prog_en, %object
|
|
.size g_flash_multi_page_prog_en, 1
|
|
g_flash_multi_page_prog_en:
|
|
.space 1
|
|
.section .bss.g_flash_multi_page_read_en,"aw",%nobits
|
|
.set .LANCHOR183,. + 0
|
|
.type g_flash_multi_page_read_en, %object
|
|
.size g_flash_multi_page_read_en, 1
|
|
g_flash_multi_page_read_en:
|
|
.space 1
|
|
.section .bss.g_flash_page_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR173,. + 0
|
|
.type g_flash_page_buffer, %object
|
|
.size g_flash_page_buffer, 4
|
|
g_flash_page_buffer:
|
|
.space 4
|
|
.section .bss.g_flash_reversd_blks,"aw",%nobits
|
|
.set .LANCHOR216,. + 0
|
|
.type g_flash_reversd_blks, %object
|
|
.size g_flash_reversd_blks, 1
|
|
g_flash_reversd_blks:
|
|
.space 1
|
|
.section .bss.g_flash_six_addr,"aw",%nobits
|
|
.set .LANCHOR30,. + 0
|
|
.type g_flash_six_addr, %object
|
|
.size g_flash_six_addr, 1
|
|
g_flash_six_addr:
|
|
.space 1
|
|
.section .bss.g_flash_slc_mode,"aw",%nobits
|
|
.set .LANCHOR0,. + 0
|
|
.type g_flash_slc_mode, %object
|
|
.size g_flash_slc_mode, 1
|
|
g_flash_slc_mode:
|
|
.space 1
|
|
.section .bss.g_flash_spare_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR172,. + 0
|
|
.type g_flash_spare_buffer, %object
|
|
.size g_flash_spare_buffer, 4
|
|
g_flash_spare_buffer:
|
|
.space 4
|
|
.section .bss.g_flash_sys_spare_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR210,. + 0
|
|
.type g_flash_sys_spare_buffer, %object
|
|
.size g_flash_sys_spare_buffer, 4
|
|
g_flash_sys_spare_buffer:
|
|
.space 4
|
|
.section .bss.g_flash_tmp_page_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR163,. + 0
|
|
.type g_flash_tmp_page_buffer, %object
|
|
.size g_flash_tmp_page_buffer, 4
|
|
g_flash_tmp_page_buffer:
|
|
.space 4
|
|
.section .bss.g_flash_tmp_spare_buffer,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR165,. + 0
|
|
.type g_flash_tmp_spare_buffer, %object
|
|
.size g_flash_tmp_spare_buffer, 4
|
|
g_flash_tmp_spare_buffer:
|
|
.space 4
|
|
.section .bss.g_flash_toggle_mode_en,"aw",%nobits
|
|
.set .LANCHOR26,. + 0
|
|
.type g_flash_toggle_mode_en, %object
|
|
.size g_flash_toggle_mode_en, 1
|
|
g_flash_toggle_mode_en:
|
|
.space 1
|
|
.section .bss.g_flash_ymtc_3d_tlc_flag,"aw",%nobits
|
|
.set .LANCHOR36,. + 0
|
|
.type g_flash_ymtc_3d_tlc_flag, %object
|
|
.size g_flash_ymtc_3d_tlc_flag, 1
|
|
g_flash_ymtc_3d_tlc_flag:
|
|
.space 1
|
|
.section .bss.g_ftl_info_blk,"aw",%nobits
|
|
.align 6
|
|
.set .LANCHOR191,. + 0
|
|
.type g_ftl_info_blk, %object
|
|
.size g_ftl_info_blk, 4
|
|
g_ftl_info_blk:
|
|
.space 4
|
|
.section .bss.g_gc_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR70,. + 0
|
|
.type g_gc_info, %object
|
|
.size g_gc_info, 2204
|
|
g_gc_info:
|
|
.space 2204
|
|
.section .bss.g_idb_ecc_bits,"aw",%nobits
|
|
.set .LANCHOR22,. + 0
|
|
.type g_idb_ecc_bits, %object
|
|
.size g_idb_ecc_bits, 1
|
|
g_idb_ecc_bits:
|
|
.space 1
|
|
.section .bss.g_idb_slc_mode_enable,"aw",%nobits
|
|
.set .LANCHOR24,. + 0
|
|
.type g_idb_slc_mode_enable, %object
|
|
.size g_idb_slc_mode_enable, 1
|
|
g_idb_slc_mode_enable:
|
|
.space 1
|
|
.section .bss.g_lsb_page_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR3,. + 0
|
|
.type g_lsb_page_tbl, %object
|
|
.size g_lsb_page_tbl, 1024
|
|
g_lsb_page_tbl:
|
|
.space 1024
|
|
.section .bss.g_maxRegNum,"aw",%nobits
|
|
.set .LANCHOR18,. + 0
|
|
.type g_maxRegNum, %object
|
|
.size g_maxRegNum, 1
|
|
g_maxRegNum:
|
|
.space 1
|
|
.section .bss.g_maxRetryCount,"aw",%nobits
|
|
.set .LANCHOR166,. + 0
|
|
.type g_maxRetryCount, %object
|
|
.size g_maxRetryCount, 1
|
|
g_maxRetryCount:
|
|
.space 1
|
|
.section .bss.g_msb_page_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR142,. + 0
|
|
.type g_msb_page_tbl, %object
|
|
.size g_msb_page_tbl, 2048
|
|
g_msb_page_tbl:
|
|
.space 2048
|
|
.section .bss.g_nand_max_die,"aw",%nobits
|
|
.set .LANCHOR23,. + 0
|
|
.type g_nand_max_die, %object
|
|
.size g_nand_max_die, 1
|
|
g_nand_max_die:
|
|
.space 1
|
|
.section .bss.g_nand_opt_para,"aw",%nobits
|
|
.set .LANCHOR25,. + 0
|
|
.type g_nand_opt_para, %object
|
|
.size g_nand_opt_para, 32
|
|
g_nand_opt_para:
|
|
.space 32
|
|
.section .bss.g_nandc_ecc_bits,"aw",%nobits
|
|
.set .LANCHOR49,. + 0
|
|
.type g_nandc_ecc_bits, %object
|
|
.size g_nandc_ecc_bits, 1
|
|
g_nandc_ecc_bits:
|
|
.space 1
|
|
.section .bss.g_nandc_tran_timeout,"aw",%nobits
|
|
.set .LANCHOR164,. + 0
|
|
.type g_nandc_tran_timeout, %object
|
|
.size g_nandc_tran_timeout, 1
|
|
g_nandc_tran_timeout:
|
|
.space 1
|
|
.section .bss.g_nandc_v6_master_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR52,. + 0
|
|
.type g_nandc_v6_master_info, %object
|
|
.size g_nandc_v6_master_info, 28
|
|
g_nandc_v6_master_info:
|
|
.space 28
|
|
.section .bss.g_nandc_ver,"aw",%nobits
|
|
.set .LANCHOR27,. + 0
|
|
.type g_nandc_ver, %object
|
|
.size g_nandc_ver, 1
|
|
g_nandc_ver:
|
|
.space 1
|
|
.section .bss.g_one_pass_program,"aw",%nobits
|
|
.set .LANCHOR81,. + 0
|
|
.type g_one_pass_program, %object
|
|
.size g_one_pass_program, 1
|
|
g_one_pass_program:
|
|
.space 1
|
|
.section .bss.g_pm_spare,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR207,. + 0
|
|
.type g_pm_spare, %object
|
|
.size g_pm_spare, 4
|
|
g_pm_spare:
|
|
.space 4
|
|
.section .bss.g_retryMode,"aw",%nobits
|
|
.set .LANCHOR15,. + 0
|
|
.type g_retryMode, %object
|
|
.size g_retryMode, 1
|
|
g_retryMode:
|
|
.space 1
|
|
.section .bss.g_slc_mode_addr2,"aw",%nobits
|
|
.set .LANCHOR1,. + 0
|
|
.type g_slc_mode_addr2, %object
|
|
.size g_slc_mode_addr2, 1
|
|
g_slc_mode_addr2:
|
|
.space 1
|
|
.section .bss.g_slc_mode_enable,"aw",%nobits
|
|
.type g_slc_mode_enable, %object
|
|
.size g_slc_mode_enable, 1
|
|
g_slc_mode_enable:
|
|
.space 1
|
|
.section .bss.g_slc_page_num,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR144,. + 0
|
|
.type g_slc_page_num, %object
|
|
.size g_slc_page_num, 2
|
|
g_slc_page_num:
|
|
.space 2
|
|
.section .bss.g_totle_phy_block,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR146,. + 0
|
|
.type g_totle_phy_block, %object
|
|
.size g_totle_phy_block, 2
|
|
g_totle_phy_block:
|
|
.space 2
|
|
.section .bss.gc_des_ppa_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR161,. + 0
|
|
.type gc_des_ppa_tbl, %object
|
|
.size gc_des_ppa_tbl, 4
|
|
gc_des_ppa_tbl:
|
|
.space 4
|
|
.section .bss.gc_free_slc_sblk_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR86,. + 0
|
|
.type gc_free_slc_sblk_th, %object
|
|
.size gc_free_slc_sblk_th, 2
|
|
gc_free_slc_sblk_th:
|
|
.space 2
|
|
.section .bss.gc_lpa_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR159,. + 0
|
|
.type gc_lpa_tbl, %object
|
|
.size gc_lpa_tbl, 4
|
|
gc_lpa_tbl:
|
|
.space 4
|
|
.section .bss.gc_mode,"aw",%nobits
|
|
.set .LANCHOR84,. + 0
|
|
.type gc_mode, %object
|
|
.size gc_mode, 1
|
|
gc_mode:
|
|
.space 1
|
|
.section .bss.gc_page_buf_id,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR82,. + 0
|
|
.type gc_page_buf_id, %object
|
|
.size gc_page_buf_id, 4
|
|
gc_page_buf_id:
|
|
.space 4
|
|
.section .bss.gc_pre_ppa_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR160,. + 0
|
|
.type gc_pre_ppa_tbl, %object
|
|
.size gc_pre_ppa_tbl, 4
|
|
gc_pre_ppa_tbl:
|
|
.space 4
|
|
.section .bss.gc_search_count,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR157,. + 0
|
|
.type gc_search_count, %object
|
|
.size gc_search_count, 4
|
|
gc_search_count:
|
|
.space 4
|
|
.section .bss.gc_slc_cache_index,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR88,. + 0
|
|
.type gc_slc_cache_index, %object
|
|
.size gc_slc_cache_index, 2
|
|
gc_slc_cache_index:
|
|
.space 2
|
|
.section .bss.gc_slc_data_index,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR87,. + 0
|
|
.type gc_slc_data_index, %object
|
|
.size gc_slc_data_index, 2
|
|
gc_slc_data_index:
|
|
.space 2
|
|
.section .bss.gc_slc_mode_slc_vpn_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR158,. + 0
|
|
.type gc_slc_mode_slc_vpn_th, %object
|
|
.size gc_slc_mode_slc_vpn_th, 2
|
|
gc_slc_mode_slc_vpn_th:
|
|
.space 2
|
|
.section .bss.gc_slc_mode_tlc_vpn_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR93,. + 0
|
|
.type gc_slc_mode_tlc_vpn_th, %object
|
|
.size gc_slc_mode_tlc_vpn_th, 2
|
|
gc_slc_mode_tlc_vpn_th:
|
|
.space 2
|
|
.section .bss.gc_slc_mode_vpn_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR69,. + 0
|
|
.type gc_slc_mode_vpn_th, %object
|
|
.size gc_slc_mode_vpn_th, 2
|
|
gc_slc_mode_vpn_th:
|
|
.space 2
|
|
.section .bss.gc_state,"aw",%nobits
|
|
.set .LANCHOR156,. + 0
|
|
.type gc_state, %object
|
|
.size gc_state, 1
|
|
gc_state:
|
|
.space 1
|
|
.section .bss.gc_tlc_mode_slc_vpn_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR102,. + 0
|
|
.type gc_tlc_mode_slc_vpn_th, %object
|
|
.size gc_tlc_mode_slc_vpn_th, 2
|
|
gc_tlc_mode_slc_vpn_th:
|
|
.space 2
|
|
.section .bss.gc_tlc_mode_tlc_vpn_th,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR100,. + 0
|
|
.type gc_tlc_mode_tlc_vpn_th, %object
|
|
.size gc_tlc_mode_tlc_vpn_th, 2
|
|
gc_tlc_mode_tlc_vpn_th:
|
|
.space 2
|
|
.section .bss.gc_valid_page_ppa,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR76,. + 0
|
|
.type gc_valid_page_ppa, %object
|
|
.size gc_valid_page_ppa, 4
|
|
gc_valid_page_ppa:
|
|
.space 4
|
|
.section .bss.gc_xlc_data_index,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR89,. + 0
|
|
.type gc_xlc_data_index, %object
|
|
.size gc_xlc_data_index, 2
|
|
gc_xlc_data_index:
|
|
.space 2
|
|
.section .bss.gc_xlc_search_index,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR96,. + 0
|
|
.type gc_xlc_search_index, %object
|
|
.size gc_xlc_search_index, 2
|
|
gc_xlc_search_index:
|
|
.space 2
|
|
.section .bss.gp_blk_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR9,. + 0
|
|
.type gp_blk_info, %object
|
|
.size gp_blk_info, 4
|
|
gp_blk_info:
|
|
.space 4
|
|
.section .bss.gp_data_slc_cache_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR90,. + 0
|
|
.type gp_data_slc_cache_head, %object
|
|
.size gp_data_slc_cache_head, 4
|
|
gp_data_slc_cache_head:
|
|
.space 4
|
|
.section .bss.gp_data_slc_data_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR95,. + 0
|
|
.type gp_data_slc_data_head, %object
|
|
.size gp_data_slc_data_head, 4
|
|
gp_data_slc_data_head:
|
|
.space 4
|
|
.section .bss.gp_data_xlc_data_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR92,. + 0
|
|
.type gp_data_xlc_data_head, %object
|
|
.size gp_data_xlc_data_head, 4
|
|
gp_data_xlc_data_head:
|
|
.space 4
|
|
.section .bss.gp_flash_check_buf,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR141,. + 0
|
|
.type gp_flash_check_buf, %object
|
|
.size gp_flash_check_buf, 4
|
|
gp_flash_check_buf:
|
|
.space 4
|
|
.section .bss.gp_flash_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR6,. + 0
|
|
.type gp_flash_info, %object
|
|
.size gp_flash_info, 4
|
|
gp_flash_info:
|
|
.space 4
|
|
.section .bss.gp_free_mix_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR108,. + 0
|
|
.type gp_free_mix_head, %object
|
|
.size gp_free_mix_head, 4
|
|
gp_free_mix_head:
|
|
.space 4
|
|
.section .bss.gp_free_slc_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR104,. + 0
|
|
.type gp_free_slc_head, %object
|
|
.size gp_free_slc_head, 4
|
|
gp_free_slc_head:
|
|
.space 4
|
|
.section .bss.gp_free_xlc_head,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR106,. + 0
|
|
.type gp_free_xlc_head, %object
|
|
.size gp_free_xlc_head, 4
|
|
gp_free_xlc_head:
|
|
.space 4
|
|
.section .bss.gp_ftl_ext_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR12,. + 0
|
|
.type gp_ftl_ext_info, %object
|
|
.size gp_ftl_ext_info, 4
|
|
gp_ftl_ext_info:
|
|
.space 4
|
|
.section .bss.gp_ftl_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR110,. + 0
|
|
.type gp_ftl_info, %object
|
|
.size gp_ftl_info, 4
|
|
gp_ftl_info:
|
|
.space 4
|
|
.section .bss.gp_nand_para_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR21,. + 0
|
|
.type gp_nand_para_info, %object
|
|
.size gp_nand_para_info, 4
|
|
gp_nand_para_info:
|
|
.space 4
|
|
.section .bss.gp_nandc,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR7,. + 0
|
|
.type gp_nandc, %object
|
|
.size gp_nandc, 4
|
|
gp_nandc:
|
|
.space 4
|
|
.section .bss.gp_sblk_list_tbl,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR4,. + 0
|
|
.type gp_sblk_list_tbl, %object
|
|
.size gp_sblk_list_tbl, 4
|
|
gp_sblk_list_tbl:
|
|
.space 4
|
|
.section .bss.idb_buf,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR138,. + 0
|
|
.type idb_buf, %object
|
|
.size idb_buf, 4
|
|
idb_buf:
|
|
.space 4
|
|
.section .bss.idb_last_lba,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR174,. + 0
|
|
.type idb_last_lba, %object
|
|
.size idb_last_lba, 4
|
|
idb_last_lba:
|
|
.space 4
|
|
.section .bss.idb_need_write_back,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR139,. + 0
|
|
.type idb_need_write_back, %object
|
|
.size idb_need_write_back, 4
|
|
idb_need_write_back:
|
|
.space 4
|
|
.section .bss.idb_write_enable,"aw",%nobits
|
|
.set .LANCHOR140,. + 0
|
|
.type idb_write_enable, %object
|
|
.size idb_write_enable, 1
|
|
idb_write_enable:
|
|
.space 1
|
|
.section .bss.lpa_hash,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR116,. + 0
|
|
.type lpa_hash, %object
|
|
.size lpa_hash, 512
|
|
lpa_hash:
|
|
.space 512
|
|
.section .bss.lpa_hash_index,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR118,. + 0
|
|
.type lpa_hash_index, %object
|
|
.size lpa_hash_index, 4
|
|
lpa_hash_index:
|
|
.space 4
|
|
.section .bss.nandc_ecc_sts,"aw",%nobits
|
|
.type nandc_ecc_sts, %object
|
|
.size nandc_ecc_sts, 16
|
|
nandc_ecc_sts:
|
|
.space 16
|
|
.section .bss.nandc_hw_seed,"aw",%nobits
|
|
.set .LANCHOR50,. + 0
|
|
.type nandc_hw_seed, %object
|
|
.size nandc_hw_seed, 1
|
|
nandc_hw_seed:
|
|
.space 1
|
|
.section .bss.nandc_randomizer_en,"aw",%nobits
|
|
.set .LANCHOR51,. + 0
|
|
.type nandc_randomizer_en, %object
|
|
.size nandc_randomizer_en, 1
|
|
nandc_randomizer_en:
|
|
.space 1
|
|
.section .bss.p_free_buf_head,"aw",%nobits
|
|
.set .LANCHOR56,. + 0
|
|
.type p_free_buf_head, %object
|
|
.size p_free_buf_head, 1
|
|
p_free_buf_head:
|
|
.space 1
|
|
.section .bss.p_read_ahead_ext_buf,"aw",%nobits
|
|
.align 2
|
|
.type p_read_ahead_ext_buf, %object
|
|
.size p_read_ahead_ext_buf, 4
|
|
p_read_ahead_ext_buf:
|
|
.space 4
|
|
.section .bss.pm_first_write,"aw",%nobits
|
|
.set .LANCHOR208,. + 0
|
|
.type pm_first_write, %object
|
|
.size pm_first_write, 1
|
|
pm_first_write:
|
|
.space 1
|
|
.section .bss.pm_force_gc,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR148,. + 0
|
|
.type pm_force_gc, %object
|
|
.size pm_force_gc, 4
|
|
pm_force_gc:
|
|
.space 4
|
|
.section .bss.pm_gc_enable,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR204,. + 0
|
|
.type pm_gc_enable, %object
|
|
.size pm_gc_enable, 4
|
|
pm_gc_enable:
|
|
.space 4
|
|
.section .bss.pm_last_load_ram_id,"aw",%nobits
|
|
.set .LANCHOR223,. + 0
|
|
.type pm_last_load_ram_id, %object
|
|
.size pm_last_load_ram_id, 1
|
|
pm_last_load_ram_id:
|
|
.space 1
|
|
.section .bss.pm_last_update_ram_id,"aw",%nobits
|
|
.set .LANCHOR136,. + 0
|
|
.type pm_last_update_ram_id, %object
|
|
.size pm_last_update_ram_id, 1
|
|
pm_last_update_ram_id:
|
|
.space 1
|
|
.section .bss.pm_ram_info,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR135,. + 0
|
|
.type pm_ram_info, %object
|
|
.size pm_ram_info, 256
|
|
pm_ram_info:
|
|
.space 256
|
|
.section .bss.read_ahead_lpa,"aw",%nobits
|
|
.align 2
|
|
.set .LANCHOR238,. + 0
|
|
.type read_ahead_lpa, %object
|
|
.size read_ahead_lpa, 4
|
|
read_ahead_lpa:
|
|
.space 4
|
|
.section .bss.read_buf_count,"aw",%nobits
|
|
.set .LANCHOR134,. + 0
|
|
.type read_buf_count, %object
|
|
.size read_buf_count, 1
|
|
read_buf_count:
|
|
.space 1
|
|
.section .bss.read_buf_head,"aw",%nobits
|
|
.set .LANCHOR133,. + 0
|
|
.type read_buf_head, %object
|
|
.size read_buf_head, 1
|
|
read_buf_head:
|
|
.space 1
|
|
.section .bss.sblk_gc_write_completed_queue_head,"aw",%nobits
|
|
.set .LANCHOR63,. + 0
|
|
.type sblk_gc_write_completed_queue_head, %object
|
|
.size sblk_gc_write_completed_queue_head, 1
|
|
sblk_gc_write_completed_queue_head:
|
|
.space 1
|
|
.section .bss.sblk_queue_head,"aw",%nobits
|
|
.set .LANCHOR59,. + 0
|
|
.type sblk_queue_head, %object
|
|
.size sblk_queue_head, 1
|
|
sblk_queue_head:
|
|
.space 1
|
|
.section .bss.sblk_read_completed_queue_head,"aw",%nobits
|
|
.set .LANCHOR62,. + 0
|
|
.type sblk_read_completed_queue_head, %object
|
|
.size sblk_read_completed_queue_head, 1
|
|
sblk_read_completed_queue_head:
|
|
.space 1
|
|
.section .bss.sblk_write_completed_queue_head,"aw",%nobits
|
|
.set .LANCHOR64,. + 0
|
|
.type sblk_write_completed_queue_head, %object
|
|
.size sblk_write_completed_queue_head, 1
|
|
sblk_write_completed_queue_head:
|
|
.space 1
|
|
.section .bss.slc_cache_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR99,. + 0
|
|
.type slc_cache_sblk, %object
|
|
.size slc_cache_sblk, 2
|
|
slc_cache_sblk:
|
|
.space 2
|
|
.section .bss.slc_data_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR97,. + 0
|
|
.type slc_data_sblk, %object
|
|
.size slc_data_sblk, 2
|
|
slc_data_sblk:
|
|
.space 2
|
|
.section .bss.write_buf_count,"aw",%nobits
|
|
.set .LANCHOR66,. + 0
|
|
.type write_buf_count, %object
|
|
.size write_buf_count, 1
|
|
write_buf_count:
|
|
.space 1
|
|
.section .bss.write_buf_head,"aw",%nobits
|
|
.set .LANCHOR65,. + 0
|
|
.type write_buf_head, %object
|
|
.size write_buf_head, 1
|
|
write_buf_head:
|
|
.space 1
|
|
.section .bss.write_commit_count,"aw",%nobits
|
|
.set .LANCHOR129,. + 0
|
|
.type write_commit_count, %object
|
|
.size write_commit_count, 1
|
|
write_commit_count:
|
|
.space 1
|
|
.section .bss.write_commit_head,"aw",%nobits
|
|
.set .LANCHOR182,. + 0
|
|
.type write_commit_head, %object
|
|
.size write_commit_head, 1
|
|
write_commit_head:
|
|
.space 1
|
|
.section .bss.xlc_data_sblk,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR91,. + 0
|
|
.type xlc_data_sblk, %object
|
|
.size xlc_data_sblk, 2
|
|
xlc_data_sblk:
|
|
.space 2
|
|
.section .bss.zftl_print_list_count,"aw",%nobits
|
|
.align 1
|
|
.set .LANCHOR109,. + 0
|
|
.type zftl_print_list_count, %object
|
|
.size zftl_print_list_count, 2
|
|
zftl_print_list_count:
|
|
.space 2
|
|
.section .data.g_nand_para_info,"aw",%progbits
|
|
.align 1
|
|
.set .LANCHOR32,. + 0
|
|
.type g_nand_para_info, %object
|
|
.size g_nand_para_info, 32
|
|
g_nand_para_info:
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -104
|
|
.byte -77
|
|
.byte 118
|
|
.byte 114
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.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
|
|
.section .data.hy_f26_ref_value,"aw",%progbits
|
|
.set .LANCHOR162,. + 0
|
|
.type hy_f26_ref_value, %object
|
|
.size hy_f26_ref_value, 28
|
|
hy_f26_ref_value:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 10
|
|
.byte 6
|
|
.byte 0
|
|
.byte -3
|
|
.byte -7
|
|
.byte -8
|
|
.byte 0
|
|
.byte -6
|
|
.byte -13
|
|
.byte -15
|
|
.byte 0
|
|
.byte -11
|
|
.byte -20
|
|
.byte -23
|
|
.byte 0
|
|
.byte 0
|
|
.byte -26
|
|
.byte -30
|
|
.byte 0
|
|
.byte 0
|
|
.byte -32
|
|
.byte -37
|
|
.section .data.nand_opt_para,"aw",%progbits
|
|
.set .LANCHOR215,. + 0
|
|
.type nand_opt_para, %object
|
|
.size nand_opt_para, 128
|
|
nand_opt_para:
|
|
.byte 1
|
|
.byte 0
|
|
.byte 49
|
|
.byte 63
|
|
.byte 0
|
|
.byte 49
|
|
.byte -128
|
|
.byte 21
|
|
.byte 0
|
|
.byte 50
|
|
.byte 17
|
|
.byte -128
|
|
.byte 112
|
|
.byte 120
|
|
.byte 120
|
|
.byte 3
|
|
.byte 1
|
|
.byte 0
|
|
.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
|
|
.section .data.sd15_slc_rr,"aw",%progbits
|
|
.set .LANCHOR40,. + 0
|
|
.type sd15_slc_rr, %object
|
|
.size sd15_slc_rr, 25
|
|
sd15_slc_rr:
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 16
|
|
.byte -16
|
|
.byte 24
|
|
.byte -24
|
|
.byte 32
|
|
.byte -32
|
|
.byte 32
|
|
.byte -40
|
|
.byte 48
|
|
.byte -48
|
|
.byte 56
|
|
.byte -56
|
|
.byte 64
|
|
.byte -64
|
|
.byte 72
|
|
.byte -72
|
|
.byte 80
|
|
.byte -80
|
|
.byte 88
|
|
.byte 96
|
|
.byte 104
|
|
.byte 112
|
|
.section .data.sd15_tlc_rr,"aw",%progbits
|
|
.set .LANCHOR39,. + 0
|
|
.type sd15_tlc_rr, %object
|
|
.size sd15_tlc_rr, 329
|
|
sd15_tlc_rr:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -32
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte -24
|
|
.byte -16
|
|
.byte 8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -24
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -24
|
|
.byte -8
|
|
.byte 8
|
|
.byte -8
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte -8
|
|
.byte -16
|
|
.byte -16
|
|
.byte -16
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte -24
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte 16
|
|
.byte -8
|
|
.byte 24
|
|
.byte 0
|
|
.byte 8
|
|
.byte -4
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 24
|
|
.byte 8
|
|
.byte 0
|
|
.byte -4
|
|
.byte -8
|
|
.byte 24
|
|
.byte 16
|
|
.byte 16
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 0
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte 8
|
|
.byte 8
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 16
|
|
.byte -4
|
|
.byte 16
|
|
.byte -16
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -4
|
|
.byte 8
|
|
.byte -24
|
|
.byte 4
|
|
.byte -16
|
|
.byte 0
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 8
|
|
.byte -16
|
|
.byte 8
|
|
.byte 0
|
|
.byte 8
|
|
.byte -24
|
|
.byte -32
|
|
.byte 16
|
|
.byte -24
|
|
.byte 8
|
|
.byte -8
|
|
.byte 8
|
|
.byte -24
|
|
.byte -32
|
|
.byte 8
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte 16
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte -8
|
|
.byte -16
|
|
.byte -8
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte 8
|
|
.byte -24
|
|
.byte 8
|
|
.byte 0
|
|
.byte -32
|
|
.byte 4
|
|
.byte 0
|
|
.byte 0
|
|
.byte -32
|
|
.byte -4
|
|
.byte 0
|
|
.byte -24
|
|
.byte 4
|
|
.byte 0
|
|
.byte 16
|
|
.byte -24
|
|
.byte 16
|
|
.byte 0
|
|
.byte -24
|
|
.byte -4
|
|
.byte 0
|
|
.byte 8
|
|
.byte -32
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -8
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte -16
|
|
.byte 0
|
|
.byte 0
|
|
.byte -24
|
|
.byte 0
|
|
.byte -32
|
|
.byte 0
|
|
.byte -32
|
|
.byte 0
|
|
.section .data.tlc_b05a_prog_tbl,"aw",%progbits
|
|
.align 1
|
|
.set .LANCHOR235,. + 0
|
|
.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
|
|
.section .data.tlc_prog_order,"aw",%progbits
|
|
.align 1
|
|
.set .LANCHOR236,. + 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
|
|
.section .data.zftl_debug,"aw",%progbits
|
|
.align 2
|
|
.set .LANCHOR19,. + 0
|
|
.type zftl_debug, %object
|
|
.size zftl_debug, 4
|
|
zftl_debug:
|
|
.word 17476
|
|
.section .data.zftl_nand_flash_para_tbl,"aw",%progbits
|
|
.align 1
|
|
.set .LANCHOR214,. + 0
|
|
.type zftl_nand_flash_para_tbl, %object
|
|
.size zftl_nand_flash_para_tbl, 1568
|
|
zftl_nand_flash_para_tbl:
|
|
.byte 6
|
|
.byte -104
|
|
.byte 58
|
|
.byte -104
|
|
.byte -77
|
|
.byte 118
|
|
.byte 114
|
|
.byte 1
|
|
.byte 1
|
|
.byte 32
|
|
.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
|
|
.section .rodata.__func__.10003,"a",%progbits
|
|
.set .LANCHOR34,. + 0
|
|
.type __func__.10003, %object
|
|
.size __func__.10003, 22
|
|
__func__.10003:
|
|
.ascii "flash_start_page_read\000"
|
|
.section .rodata.__func__.10016,"a",%progbits
|
|
.set .LANCHOR178,. + 0
|
|
.type __func__.10016, %object
|
|
.size __func__.10016, 31
|
|
__func__.10016:
|
|
.ascii "flash_complete_plane_page_read\000"
|
|
.section .rodata.__func__.10028,"a",%progbits
|
|
.set .LANCHOR46,. + 0
|
|
.type __func__.10028, %object
|
|
.size __func__.10028, 23
|
|
__func__.10028:
|
|
.ascii "flash_start_plane_read\000"
|
|
.section .rodata.__func__.10041,"a",%progbits
|
|
.set .LANCHOR179,. + 0
|
|
.type __func__.10041, %object
|
|
.size __func__.10041, 25
|
|
__func__.10041:
|
|
.ascii "flash_complete_page_read\000"
|
|
.section .rodata.__func__.10456,"a",%progbits
|
|
.set .LANCHOR143,. + 0
|
|
.type __func__.10456, %object
|
|
.size __func__.10456, 20
|
|
__func__.10456:
|
|
.ascii "flash_die_info_init\000"
|
|
.section .rodata.__func__.10466,"a",%progbits
|
|
.set .LANCHOR20,. + 0
|
|
.type __func__.10466, %object
|
|
.size __func__.10466, 22
|
|
__func__.10466:
|
|
.ascii "nand_flash_print_info\000"
|
|
.section .rodata.__func__.10511,"a",%progbits
|
|
.set .LANCHOR213,. + 0
|
|
.type __func__.10511, %object
|
|
.size __func__.10511, 16
|
|
__func__.10511:
|
|
.ascii "nand_flash_init\000"
|
|
.section .rodata.__func__.10534,"a",%progbits
|
|
.set .LANCHOR155,. + 0
|
|
.type __func__.10534, %object
|
|
.size __func__.10534, 11
|
|
__func__.10534:
|
|
.ascii "nandc_init\000"
|
|
.section .rodata.__func__.10699,"a",%progbits
|
|
.set .LANCHOR58,. + 0
|
|
.type __func__.10699, %object
|
|
.size __func__.10699, 13
|
|
__func__.10699:
|
|
.ascii "buf_add_tail\000"
|
|
.section .rodata.__func__.10712,"a",%progbits
|
|
.set .LANCHOR60,. + 0
|
|
.type __func__.10712, %object
|
|
.size __func__.10712, 10
|
|
__func__.10712:
|
|
.ascii "buf_alloc\000"
|
|
.section .rodata.__func__.10726,"a",%progbits
|
|
.set .LANCHOR61,. + 0
|
|
.type __func__.10726, %object
|
|
.size __func__.10726, 16
|
|
__func__.10726:
|
|
.ascii "buf_remove_free\000"
|
|
.section .rodata.__func__.10747,"a",%progbits
|
|
.set .LANCHOR212,. + 0
|
|
.type __func__.10747, %object
|
|
.size __func__.10747, 20
|
|
__func__.10747:
|
|
.ascii "flash_info_blk_init\000"
|
|
.section .rodata.__func__.10762,"a",%progbits
|
|
.set .LANCHOR154,. + 0
|
|
.type __func__.10762, %object
|
|
.size __func__.10762, 21
|
|
__func__.10762:
|
|
.ascii "flash_info_data_init\000"
|
|
.section .rodata.__func__.10784,"a",%progbits
|
|
.set .LANCHOR209,. + 0
|
|
.type __func__.10784, %object
|
|
.size __func__.10784, 17
|
|
__func__.10784:
|
|
.ascii "flash_info_flush\000"
|
|
.section .rodata.__func__.10860,"a",%progbits
|
|
.set .LANCHOR147,. + 0
|
|
.type __func__.10860, %object
|
|
.size __func__.10860, 17
|
|
__func__.10860:
|
|
.ascii "lpa_rebuild_hash\000"
|
|
.section .rodata.__func__.10910,"a",%progbits
|
|
.set .LANCHOR232,. + 0
|
|
.type __func__.10910, %object
|
|
.size __func__.10910, 17
|
|
__func__.10910:
|
|
.ascii "ftl_write_commit\000"
|
|
.section .rodata.__func__.10928,"a",%progbits
|
|
.set .LANCHOR130,. + 0
|
|
.type __func__.10928, %object
|
|
.size __func__.10928, 14
|
|
__func__.10928:
|
|
.ascii "ftl_write_buf\000"
|
|
.section .rodata.__func__.10973,"a",%progbits
|
|
.set .LANCHOR132,. + 0
|
|
.type __func__.10973, %object
|
|
.size __func__.10973, 18
|
|
__func__.10973:
|
|
.ascii "zftl_add_read_buf\000"
|
|
.section .rodata.__func__.11006,"a",%progbits
|
|
.set .LANCHOR230,. + 0
|
|
.type __func__.11006, %object
|
|
.size __func__.11006, 10
|
|
__func__.11006:
|
|
.ascii "zftl_read\000"
|
|
.section .rodata.__func__.11038,"a",%progbits
|
|
.set .LANCHOR242,. + 0
|
|
.type __func__.11038, %object
|
|
.size __func__.11038, 13
|
|
__func__.11038:
|
|
.ascii "_ftl_discard\000"
|
|
.section .rodata.__func__.11184,"a",%progbits
|
|
.set .LANCHOR225,. + 0
|
|
.type __func__.11184, %object
|
|
.size __func__.11184, 12
|
|
__func__.11184:
|
|
.ascii "gc_recovery\000"
|
|
.section .rodata.__func__.11194,"a",%progbits
|
|
.set .LANCHOR71,. + 0
|
|
.type __func__.11194, %object
|
|
.size __func__.11194, 12
|
|
__func__.11194:
|
|
.ascii "gc_add_sblk\000"
|
|
.section .rodata.__func__.11241,"a",%progbits
|
|
.set .LANCHOR185,. + 0
|
|
.type __func__.11241, %object
|
|
.size __func__.11241, 21
|
|
__func__.11241:
|
|
.ascii "gc_check_data_one_wl\000"
|
|
.section .rodata.__func__.11273,"a",%progbits
|
|
.set .LANCHOR226,. + 0
|
|
.type __func__.11273, %object
|
|
.size __func__.11273, 22
|
|
__func__.11273:
|
|
.ascii "gc_update_l2p_map_new\000"
|
|
.section .rodata.__func__.11286,"a",%progbits
|
|
.set .LANCHOR77,. + 0
|
|
.type __func__.11286, %object
|
|
.size __func__.11286, 19
|
|
__func__.11286:
|
|
.ascii "gc_write_completed\000"
|
|
.section .rodata.__func__.11316,"a",%progbits
|
|
.set .LANCHOR234,. + 0
|
|
.type __func__.11316, %object
|
|
.size __func__.11316, 16
|
|
__func__.11316:
|
|
.ascii "gc_do_copy_back\000"
|
|
.section .rodata.__func__.11343,"a",%progbits
|
|
.set .LANCHOR127,. + 0
|
|
.type __func__.11343, %object
|
|
.size __func__.11343, 16
|
|
__func__.11343:
|
|
.ascii "gc_free_src_blk\000"
|
|
.section .rodata.__func__.11387,"a",%progbits
|
|
.set .LANCHOR227,. + 0
|
|
.type __func__.11387, %object
|
|
.size __func__.11387, 16
|
|
__func__.11387:
|
|
.ascii "gc_scan_src_blk\000"
|
|
.section .rodata.__func__.11448,"a",%progbits
|
|
.set .LANCHOR228,. + 0
|
|
.type __func__.11448, %object
|
|
.size __func__.11448, 20
|
|
__func__.11448:
|
|
.ascii "gc_scan_static_data\000"
|
|
.section .rodata.__func__.11542,"a",%progbits
|
|
.set .LANCHOR237,. + 0
|
|
.type __func__.11542, %object
|
|
.size __func__.11542, 11
|
|
__func__.11542:
|
|
.ascii "zftl_do_gc\000"
|
|
.section .rodata.__func__.11637,"a",%progbits
|
|
.set .LANCHOR5,. + 0
|
|
.type __func__.11637, %object
|
|
.size __func__.11637, 18
|
|
__func__.11637:
|
|
.ascii "_list_remove_node\000"
|
|
.section .rodata.__func__.11662,"a",%progbits
|
|
.set .LANCHOR13,. + 0
|
|
.type __func__.11662, %object
|
|
.size __func__.11662, 23
|
|
__func__.11662:
|
|
.ascii "_list_update_data_list\000"
|
|
.section .rodata.__func__.11737,"a",%progbits
|
|
.set .LANCHOR151,. + 0
|
|
.type __func__.11737, %object
|
|
.size __func__.11737, 20
|
|
__func__.11737:
|
|
.ascii "zftl_sblk_list_init\000"
|
|
.section .rodata.__func__.11771,"a",%progbits
|
|
.set .LANCHOR193,. + 0
|
|
.type __func__.11771, %object
|
|
.size __func__.11771, 15
|
|
__func__.11771:
|
|
.ascii "ftl_info_flush\000"
|
|
.section .rodata.__func__.11826,"a",%progbits
|
|
.set .LANCHOR200,. + 0
|
|
.type __func__.11826, %object
|
|
.size __func__.11826, 15
|
|
__func__.11826:
|
|
.ascii "ftl_alloc_sblk\000"
|
|
.section .rodata.__func__.11868,"a",%progbits
|
|
.set .LANCHOR113,. + 0
|
|
.type __func__.11868, %object
|
|
.size __func__.11868, 18
|
|
__func__.11868:
|
|
.ascii "ftl_alloc_sys_blk\000"
|
|
.section .rodata.__func__.11878,"a",%progbits
|
|
.set .LANCHOR114,. + 0
|
|
.type __func__.11878, %object
|
|
.size __func__.11878, 17
|
|
__func__.11878:
|
|
.ascii "ftl_free_sys_blk\000"
|
|
.section .rodata.__func__.11913,"a",%progbits
|
|
.set .LANCHOR229,. + 0
|
|
.type __func__.11913, %object
|
|
.size __func__.11913, 14
|
|
__func__.11913:
|
|
.ascii "ftl_sblk_dump\000"
|
|
.section .rodata.__func__.11937,"a",%progbits
|
|
.set .LANCHOR218,. + 0
|
|
.type __func__.11937, %object
|
|
.size __func__.11937, 16
|
|
__func__.11937:
|
|
.ascii "ftl_sysblk_dump\000"
|
|
.section .rodata.__func__.11962,"a",%progbits
|
|
.set .LANCHOR219,. + 0
|
|
.type __func__.11962, %object
|
|
.size __func__.11962, 23
|
|
__func__.11962:
|
|
.ascii "ftl_open_sblk_recovery\000"
|
|
.section .rodata.__func__.11995,"a",%progbits
|
|
.set .LANCHOR115,. + 0
|
|
.type __func__.11995, %object
|
|
.size __func__.11995, 23
|
|
__func__.11995:
|
|
.ascii "ftl_get_ppa_from_index\000"
|
|
.section .rodata.__func__.12016,"a",%progbits
|
|
.set .LANCHOR231,. + 0
|
|
.type __func__.12016, %object
|
|
.size __func__.12016, 19
|
|
__func__.12016:
|
|
.ascii "ftl_update_l2p_map\000"
|
|
.section .rodata.__func__.12035,"a",%progbits
|
|
.set .LANCHOR119,. + 0
|
|
.type __func__.12035, %object
|
|
.size __func__.12035, 22
|
|
__func__.12035:
|
|
.ascii "ftl_get_new_free_page\000"
|
|
.section .rodata.__func__.12046,"a",%progbits
|
|
.set .LANCHOR120,. + 0
|
|
.type __func__.12046, %object
|
|
.size __func__.12046, 22
|
|
__func__.12046:
|
|
.ascii "ftl_ext_alloc_new_blk\000"
|
|
.section .rodata.__func__.12072,"a",%progbits
|
|
.set .LANCHOR198,. + 0
|
|
.type __func__.12072, %object
|
|
.size __func__.12072, 19
|
|
__func__.12072:
|
|
.ascii "ftl_ext_info_flush\000"
|
|
.section .rodata.__func__.12084,"a",%progbits
|
|
.set .LANCHOR199,. + 0
|
|
.type __func__.12084, %object
|
|
.size __func__.12084, 18
|
|
__func__.12084:
|
|
.ascii "ftl_ext_info_init\000"
|
|
.section .rodata.__func__.12123,"a",%progbits
|
|
.set .LANCHOR201,. + 0
|
|
.type __func__.12123, %object
|
|
.size __func__.12123, 25
|
|
__func__.12123:
|
|
.ascii "ftl_low_format_data_init\000"
|
|
.section .rodata.__func__.12138,"a",%progbits
|
|
.set .LANCHOR203,. + 0
|
|
.type __func__.12138, %object
|
|
.size __func__.12138, 15
|
|
__func__.12138:
|
|
.ascii "ftl_low_format\000"
|
|
.section .rodata.__func__.12186,"a",%progbits
|
|
.set .LANCHOR189,. + 0
|
|
.type __func__.12186, %object
|
|
.size __func__.12186, 14
|
|
__func__.12186:
|
|
.ascii "ftl_prog_page\000"
|
|
.section .rodata.__func__.12309,"a",%progbits
|
|
.set .LANCHOR180,. + 0
|
|
.type __func__.12309, %object
|
|
.size __func__.12309, 31
|
|
__func__.12309:
|
|
.ascii "queue_wait_first_req_completed\000"
|
|
.section .rodata.__func__.12363,"a",%progbits
|
|
.set .LANCHOR181,. + 0
|
|
.type __func__.12363, %object
|
|
.size __func__.12363, 15
|
|
__func__.12363:
|
|
.ascii "sblk_prog_page\000"
|
|
.section .rodata.__func__.12390,"a",%progbits
|
|
.set .LANCHOR184,. + 0
|
|
.type __func__.12390, %object
|
|
.size __func__.12390, 15
|
|
__func__.12390:
|
|
.ascii "sblk_read_page\000"
|
|
.section .rodata.__func__.12460,"a",%progbits
|
|
.set .LANCHOR220,. + 0
|
|
.type __func__.12460, %object
|
|
.size __func__.12460, 16
|
|
__func__.12460:
|
|
.ascii "load_l2p_region\000"
|
|
.section .rodata.__func__.12476,"a",%progbits
|
|
.set .LANCHOR153,. + 0
|
|
.type __func__.12476, %object
|
|
.size __func__.12476, 13
|
|
__func__.12476:
|
|
.ascii "pm_free_sblk\000"
|
|
.section .rodata.__func__.12500,"a",%progbits
|
|
.set .LANCHOR222,. + 0
|
|
.type __func__.12500, %object
|
|
.size __func__.12500, 6
|
|
__func__.12500:
|
|
.ascii "pm_gc\000"
|
|
.section .rodata.__func__.12516,"a",%progbits
|
|
.set .LANCHOR205,. + 0
|
|
.type __func__.12516, %object
|
|
.size __func__.12516, 17
|
|
__func__.12516:
|
|
.ascii "pm_alloc_new_blk\000"
|
|
.section .rodata.__func__.12526,"a",%progbits
|
|
.set .LANCHOR206,. + 0
|
|
.type __func__.12526, %object
|
|
.size __func__.12526, 14
|
|
__func__.12526:
|
|
.ascii "pm_write_page\000"
|
|
.section .rodata.__func__.12544,"a",%progbits
|
|
.set .LANCHOR137,. + 0
|
|
.type __func__.12544, %object
|
|
.size __func__.12544, 21
|
|
__func__.12544:
|
|
.ascii "pm_select_ram_region\000"
|
|
.section .rodata.__func__.9837,"a",%progbits
|
|
.set .LANCHOR170,. + 0
|
|
.type __func__.9837, %object
|
|
.size __func__.9837, 19
|
|
__func__.9837:
|
|
.ascii "flash_read_page_en\000"
|
|
.section .rodata.__func__.9898,"a",%progbits
|
|
.set .LANCHOR186,. + 0
|
|
.type __func__.9898, %object
|
|
.size __func__.9898, 19
|
|
__func__.9898:
|
|
.ascii "flash_prog_page_en\000"
|
|
.section .rodata.__func__.9914,"a",%progbits
|
|
.set .LANCHOR43,. + 0
|
|
.type __func__.9914, %object
|
|
.size __func__.9914, 26
|
|
__func__.9914:
|
|
.ascii "flash_erase_duplane_block\000"
|
|
.section .rodata.__func__.9925,"a",%progbits
|
|
.set .LANCHOR45,. + 0
|
|
.type __func__.9925, %object
|
|
.size __func__.9925, 21
|
|
__func__.9925:
|
|
.ascii "flash_erase_block_en\000"
|
|
.section .rodata.__func__.9939,"a",%progbits
|
|
.set .LANCHOR28,. + 0
|
|
.type __func__.9939, %object
|
|
.size __func__.9939, 28
|
|
__func__.9939:
|
|
.ascii "flash_wait_device_ready_raw\000"
|
|
.section .rodata.__func__.9963,"a",%progbits
|
|
.set .LANCHOR175,. + 0
|
|
.type __func__.9963, %object
|
|
.size __func__.9963, 26
|
|
__func__.9963:
|
|
.ascii "flash_start_tlc_page_prog\000"
|
|
.section .rodata.__func__.9974,"a",%progbits
|
|
.set .LANCHOR176,. + 0
|
|
.type __func__.9974, %object
|
|
.size __func__.9974, 29
|
|
__func__.9974:
|
|
.ascii "flash_start_3d_mlc_page_prog\000"
|
|
.section .rodata.__func__.9992,"a",%progbits
|
|
.set .LANCHOR177,. + 0
|
|
.type __func__.9992, %object
|
|
.size __func__.9992, 22
|
|
__func__.9992:
|
|
.ascii "flash_start_page_prog\000"
|
|
.section .rodata._list_remove_node.str1.1,"aMS",%progbits,1
|
|
.LC0:
|
|
.ascii "\012!!!!! error @ func:%s - line:%d\012\000"
|
|
.section .rodata.dump_buf_info.str1.1,"aMS",%progbits,1
|
|
.LC41:
|
|
.ascii "sblk_queue_head = %d\012\000"
|
|
.LC42:
|
|
.ascii "sblk_read_completed_queue_head = %d\012\000"
|
|
.LC43:
|
|
.ascii "sblk_gc_write_completed_queue_head = %d\012\000"
|
|
.LC44:
|
|
.ascii "sblk_write_completed_queue_head = %d\012\000"
|
|
.LC45:
|
|
.ascii "p_free_buf_head = %d\012\000"
|
|
.LC46:
|
|
.ascii "free_buf_count = %d\012\000"
|
|
.LC47:
|
|
.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"
|
|
.section .rodata.dump_ftl_info.str1.1,"aMS",%progbits,1
|
|
.LC192:
|
|
.ascii "free_buf_count: %d\012\000"
|
|
.LC193:
|
|
.ascii "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\012\000"
|
|
.LC194:
|
|
.ascii "ftl_ext_info_blk blk:0x%x, page:0x%x\012\000"
|
|
.LC195:
|
|
.ascii "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
|
|
.ascii "_index:0x%x\012\000"
|
|
.LC196:
|
|
.ascii "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, pag"
|
|
.ascii "e_index:0x%x\012\000"
|
|
.LC197:
|
|
.ascii "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page"
|
|
.ascii "_index:0x%x\012\000"
|
|
.LC198:
|
|
.ascii "lpa:\000"
|
|
.LC199:
|
|
.ascii "vpn:\000"
|
|
.LC200:
|
|
.ascii "sblk:\000"
|
|
.LC201:
|
|
.ascii "lpa_hash:\000"
|
|
.LC202:
|
|
.ascii "lpa_hash_index:\000"
|
|
.section .rodata.dump_pm_blk.str1.1,"aMS",%progbits,1
|
|
.LC257:
|
|
.ascii "pm l2p:\000"
|
|
.LC258:
|
|
.ascii "pm blk:\000"
|
|
.section .rodata.dump_sblk_queue.str1.1,"aMS",%progbits,1
|
|
.LC79:
|
|
.ascii "dump_sblk_queue: %d\012\000"
|
|
.LC80:
|
|
.ascii "buf id= %d state = %d ppa = %x\012\000"
|
|
.section .rodata.flash_complete_page_read.str1.1,"aMS",%progbits,1
|
|
.LC136:
|
|
.ascii "flash_complete_page_read %x %x error_ecc %d %d\012\000"
|
|
.section .rodata.flash_ddr_tuning_read.str1.1,"aMS",%progbits,1
|
|
.LC122:
|
|
.ascii "%d flash_ddr_tuning_read %x ecc=%d\012\000"
|
|
.LC123:
|
|
.ascii "sync para %d\012\000"
|
|
.LC124:
|
|
.ascii "DDR mode Read error %x %x\012\000"
|
|
.LC125:
|
|
.ascii "SDR mode Read %x %x ecc:%x\012\000"
|
|
.section .rodata.flash_dual_page_prog.str1.1,"aMS",%progbits,1
|
|
.LC130:
|
|
.ascii "flash_prog_page %x %x %x\012\000"
|
|
.section .rodata.flash_erase_all.str1.1,"aMS",%progbits,1
|
|
.LC35:
|
|
.ascii "erase done: %x\012\000"
|
|
.section .rodata.flash_erase_block_en.str1.1,"aMS",%progbits,1
|
|
.LC33:
|
|
.ascii "flash_erase_block %x %x %x\012\000"
|
|
.LC34:
|
|
.ascii "flash_erase_block %d block = %x status = %x\012\000"
|
|
.section .rodata.flash_erase_duplane_block.str1.1,"aMS",%progbits,1
|
|
.LC31:
|
|
.ascii "flash_erase_duplane_block %x %x %x\012\000"
|
|
.LC32:
|
|
.ascii "flash_erase_duplane_block pageadd = %x status = %x\012"
|
|
.ascii "\000"
|
|
.section .rodata.flash_get_last_written_page.str1.1,"aMS",%progbits,1
|
|
.LC128:
|
|
.ascii "flash_get_last_written_page: %x %x %x\012\000"
|
|
.section .rodata.flash_info_blk_init.str1.1,"aMS",%progbits,1
|
|
.LC177:
|
|
.ascii "...%d @ %s %d %p\012\000"
|
|
.LC178:
|
|
.ascii "no sys info %x\012\000"
|
|
.section .rodata.flash_info_data_init.str1.1,"aMS",%progbits,1
|
|
.LC94:
|
|
.ascii "...%d @ %s\012\000"
|
|
.section .rodata.flash_info_flush.str1.1,"aMS",%progbits,1
|
|
.LC174:
|
|
.ascii "finfo:\000"
|
|
.LC175:
|
|
.ascii "flash_info_flush id = %x, page = %x\012\000"
|
|
.LC176:
|
|
.ascii "sys_info_flush error:%x\012\000"
|
|
.section .rodata.flash_mask_bad_block.str1.1,"aMS",%progbits,1
|
|
.LC48:
|
|
.ascii "flash_mask_bad_block %d %d\012\000"
|
|
.section .rodata.flash_prog_page.str1.1,"aMS",%progbits,1
|
|
.LC129:
|
|
.ascii "flash_prog_page page_addr = %x status = %x\012\000"
|
|
.section .rodata.flash_prog_page_en.str1.1,"aMS",%progbits,1
|
|
.LC144:
|
|
.ascii "flash_prog_page_en:%x %x %x\012\000"
|
|
.LC145:
|
|
.ascii "w d:\000"
|
|
.LC146:
|
|
.ascii "w s:\000"
|
|
.LC147:
|
|
.ascii "spare\000"
|
|
.LC148:
|
|
.ascii "data\000"
|
|
.LC149:
|
|
.ascii "write error: %x\012\000"
|
|
.section .rodata.flash_read_id.str1.1,"aMS",%progbits,1
|
|
.LC38:
|
|
.ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
|
|
.section .rodata.flash_read_otp_data.str1.1,"aMS",%progbits,1
|
|
.LC39:
|
|
.ascii "otp:%x %x %x %x\012\000"
|
|
.section .rodata.flash_read_page_en.str1.1,"aMS",%progbits,1
|
|
.LC126:
|
|
.ascii "flash_read_page_en %x %x %x %x\012\000"
|
|
.LC127:
|
|
.ascii "flash_read_page_en %x %x error_ecc %d %d\012\000"
|
|
.section .rodata.flash_set_interface_mode.str1.1,"aMS",%progbits,1
|
|
.LC36:
|
|
.ascii "nand sdr mode %x\012\000"
|
|
.LC37:
|
|
.ascii "nand ddr mode %x\012\000"
|
|
.section .rodata.ftl_alloc_new_data_sblk.str1.1,"aMS",%progbits,1
|
|
.LC235:
|
|
.ascii "error gc_add_sblk: %x\012\000"
|
|
.section .rodata.ftl_alloc_sblk.str1.1,"aMS",%progbits,1
|
|
.LC167:
|
|
.ascii "alloc sblk %x %d\012\000"
|
|
.section .rodata.ftl_dump_write_open_sblk.str1.1,"aMS",%progbits,1
|
|
.LC159:
|
|
.ascii "ftl_sblk_dump_write = %x %d %d %d %d\012\000"
|
|
.LC160:
|
|
.ascii "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x"
|
|
.ascii " %x %x, spare: %x %x %x %x\012\000"
|
|
.LC161:
|
|
.ascii "ftl_sblk_dump_write2 = %x %d %d %d\012\000"
|
|
.LC162:
|
|
.ascii "ftl_sblk_dump_write = %x %x\012\000"
|
|
.LC163:
|
|
.ascii "ftl_sblk_dump_write done = %x\012\000"
|
|
.section .rodata.ftl_ext_info_init.str1.1,"aMS",%progbits,1
|
|
.LC156:
|
|
.ascii "%s %d %d %x %x\012\000"
|
|
.LC157:
|
|
.ascii "ext info hash %x error\012\000"
|
|
.LC158:
|
|
.ascii "%s %x %x %x\012\000"
|
|
.section .rodata.ftl_free_sblk.str1.1,"aMS",%progbits,1
|
|
.LC68:
|
|
.ascii "swl_slc_free_mini_ec_blk sblk %x\012\000"
|
|
.section .rodata.ftl_info_blk_init.str1.1,"aMS",%progbits,1
|
|
.LC152:
|
|
.ascii "%d %x @%d %x\012\000"
|
|
.LC153:
|
|
.ascii "ftl_info_blk_init %d %d %x\012\000"
|
|
.LC154:
|
|
.ascii "ftl info hash %x error\012\000"
|
|
.LC155:
|
|
.ascii "ink flag: %x\012\000"
|
|
.section .rodata.ftl_info_flush.str1.1,"aMS",%progbits,1
|
|
.LC151:
|
|
.ascii "g_ftl_info_blk blk = %x, page = %x version = %d\012"
|
|
.ascii "\000"
|
|
.section .rodata.ftl_ink_check_sblk.str1.1,"aMS",%progbits,1
|
|
.LC165:
|
|
.ascii "ftl_ink_check_sblk = %x %d %d\012\000"
|
|
.LC166:
|
|
.ascii "ftl_ink_check_sblk = %x %d %d end\012\000"
|
|
.section .rodata.ftl_low_format.str1.1,"aMS",%progbits,1
|
|
.LC169:
|
|
.ascii "ftl_low_format %d\012\000"
|
|
.LC170:
|
|
.ascii "low format %d %d %d %d\012\000"
|
|
.section .rodata.ftl_mask_bad_block.str1.1,"aMS",%progbits,1
|
|
.LC66:
|
|
.ascii "mask bad block:cs %x %x block: %x %x\012\000"
|
|
.section .rodata.ftl_open_sblk_init.str1.1,"aMS",%progbits,1
|
|
.LC168:
|
|
.ascii "blk %x is bad block\012\000"
|
|
.section .rodata.ftl_open_sblk_recovery.str1.1,"aMS",%progbits,1
|
|
.LC180:
|
|
.ascii "saved_active_page = %x\012\000"
|
|
.LC181:
|
|
.ascii "saved_active_plane = %x\012\000"
|
|
.LC182:
|
|
.ascii "sblk = %x\012\000"
|
|
.LC183:
|
|
.ascii "phy_blk = %x %x\012\000"
|
|
.LC184:
|
|
.ascii "num_planes = %x\012\000"
|
|
.LC185:
|
|
.ascii "recovery blk=%x, page=%x, ppa = %x, status = %x, ha"
|
|
.ascii "sh:%x\012\000"
|
|
.LC186:
|
|
.ascii "data:\000"
|
|
.LC187:
|
|
.ascii "sblk = %x, vpn0 = %d, vpn1 = %d\012\000"
|
|
.LC188:
|
|
.ascii "dump_write_lpa = %x %x %x %x\012\000"
|
|
.LC189:
|
|
.ascii "dump write new ppa = %x, last ppa = %x lpa = %x\012"
|
|
.ascii "\000"
|
|
.LC190:
|
|
.ascii "dump write = %x %x %x\012\000"
|
|
.LC191:
|
|
.ascii "dump write hash update = %x %x %x\012\000"
|
|
.section .rodata.ftl_re_low_format.str1.1,"aMS",%progbits,1
|
|
.LC171:
|
|
.ascii "re low format %d\012\000"
|
|
.section .rodata.ftl_sblk_dump.str1.1,"aMS",%progbits,1
|
|
.LC223:
|
|
.ascii "ftl_sblk_dump = %x %d %d %d %d\012\000"
|
|
.LC224:
|
|
.ascii "ftl_sblk_dump = %x %x %x %x\012\000"
|
|
.LC225:
|
|
.ascii "page_addr = %x, lpa=%x vpn = %d\012\000"
|
|
.LC226:
|
|
.ascii "index= %x, lpa=%x\012\000"
|
|
.LC227:
|
|
.ascii "block = %x, vpn=%x check vpn = %x\012\000"
|
|
.section .rodata.ftl_sysblk_dump.str1.1,"aMS",%progbits,1
|
|
.LC179:
|
|
.ascii "l2p:\000"
|
|
.section .rodata.ftl_test_block.str1.1,"aMS",%progbits,1
|
|
.LC150:
|
|
.ascii "low format %d\012\000"
|
|
.section .rodata.ftl_update_l2p_map.str1.1,"aMS",%progbits,1
|
|
.LC231:
|
|
.ascii "ftl_update_l2p_map: %x %x %x\012\000"
|
|
.LC232:
|
|
.ascii "ftl_update_l2p_map\000"
|
|
.LC233:
|
|
.ascii "lpa_tbl:\000"
|
|
.LC234:
|
|
.ascii "sblk %x vpn: %d %d\012\000"
|
|
.section .rodata.ftl_vpn_decrement.str1.1,"aMS",%progbits,1
|
|
.LC65:
|
|
.ascii "ftl_vpn_decrement %x = %d, %d\012\000"
|
|
.section .rodata.ftl_write_commit.str1.1,"aMS",%progbits,1
|
|
.LC236:
|
|
.ascii "%d read error: ppa:%x, lpa:%x, status:%x\012\000"
|
|
.section .rodata.ftl_write_completed.str1.1,"aMS",%progbits,1
|
|
.LC77:
|
|
.ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000"
|
|
.LC78:
|
|
.ascii "ftl re prog: lpa = %x, ppa= %x\012\000"
|
|
.section .rodata.gc_add_sblk.str1.1,"aMS",%progbits,1
|
|
.LC49:
|
|
.ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000"
|
|
.LC50:
|
|
.ascii "gc_add_sblk = %d, %d, %d\012\000"
|
|
.LC51:
|
|
.ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000"
|
|
.LC52:
|
|
.ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000"
|
|
.section .rodata.gc_check_data_one_wl.str1.1,"aMS",%progbits,1
|
|
.LC143:
|
|
.ascii "err: ppa = %x, status = %x, %x %x spare: %x %x %x %"
|
|
.ascii "x\012\000"
|
|
.section .rodata.gc_do_copy_back.str1.1,"aMS",%progbits,1
|
|
.LC237:
|
|
.ascii "gc page in buf: lpa %x ppa = %x pageindex= %x\012\000"
|
|
.LC238:
|
|
.ascii "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x "
|
|
.ascii "page_index= %d\012\000"
|
|
.section .rodata.gc_free_bad_sblk.str1.1,"aMS",%progbits,1
|
|
.LC67:
|
|
.ascii "gc_free_bad_sblk 0x%x\012\000"
|
|
.section .rodata.gc_free_src_blk.str1.1,"aMS",%progbits,1
|
|
.LC69:
|
|
.ascii "gc_free_src_blk = %x, vpn = %d\012\000"
|
|
.LC70:
|
|
.ascii "gc_free_src_blk %x, %d\012\000"
|
|
.section .rodata.gc_free_temp_buf.str1.1,"aMS",%progbits,1
|
|
.LC55:
|
|
.ascii "%d gc_free_temp_buf buf id= %x\012\000"
|
|
.section .rodata.gc_ink_check_sblk.str1.1,"aMS",%progbits,1
|
|
.LC164:
|
|
.ascii "%x: ink_scaned_blk_num %x\012\000"
|
|
.section .rodata.gc_mark_bad_ppa.str1.1,"aMS",%progbits,1
|
|
.LC53:
|
|
.ascii "gc_mark_bad_ppa %d %x %x\012\000"
|
|
.section .rodata.gc_recovery.str1.1,"aMS",%progbits,1
|
|
.LC213:
|
|
.ascii "ppa = %x, status = %x, data:%x %x %x %x, spare: %x "
|
|
.ascii "%x %x %x\012\000"
|
|
.LC214:
|
|
.ascii "ppa = %x, status = %x, %x %x spare: %x %x %x %x\012"
|
|
.ascii "\000"
|
|
.LC215:
|
|
.ascii "gc_recovery: %x vpn = %x\012\000"
|
|
.section .rodata.gc_scan_src_blk.str1.1,"aMS",%progbits,1
|
|
.LC220:
|
|
.ascii "gc_scan_src_blk = %x, vpn = %d\012\000"
|
|
.LC221:
|
|
.ascii "js hash error:%x %x %x\012\000"
|
|
.LC222:
|
|
.ascii "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\012\000"
|
|
.section .rodata.gc_search_src_blk.str1.1,"aMS",%progbits,1
|
|
.LC57:
|
|
.ascii "zftl_get_gc_node cache = %x index = %d vpn = %x\012"
|
|
.ascii "\000"
|
|
.LC58:
|
|
.ascii "gc_search_src_blk mode = %x, src mode = %x, count= "
|
|
.ascii "%d %d\012\000"
|
|
.section .rodata.gc_static_wearleveling.str1.1,"aMS",%progbits,1
|
|
.LC82:
|
|
.ascii "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d"
|
|
.ascii " ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
|
|
.LC83:
|
|
.ascii "gc_static_wearleveling: min slc blk: %x,sec=%d,xec "
|
|
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
|
|
.LC84:
|
|
.ascii "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec "
|
|
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
|
|
.LC85:
|
|
.ascii "gc_static_wearleveling: max slc blk: %x,sec=%d,xec "
|
|
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
|
|
.LC86:
|
|
.ascii "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec "
|
|
.ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000"
|
|
.LC87:
|
|
.ascii "gc_static_wearleveling: slc blk: %x, tlc blk: %d av"
|
|
.ascii "g slc ec: %d, avg tlc ec: %d \012\000"
|
|
.LC88:
|
|
.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"
|
|
.LC89:
|
|
.ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000"
|
|
.LC90:
|
|
.ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000"
|
|
.section .rodata.gc_update_l2p_map_new.str1.1,"aMS",%progbits,1
|
|
.LC216:
|
|
.ascii "gc_update_l2p_map_new sblk %x\012\000"
|
|
.LC217:
|
|
.ascii "gc_update_l2p_map_new: %x %x %x\012\000"
|
|
.LC218:
|
|
.ascii "lpa: %x %x %x\012\000"
|
|
.LC219:
|
|
.ascii "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\012"
|
|
.ascii "\000"
|
|
.section .rodata.gc_write_completed.str1.1,"aMS",%progbits,1
|
|
.LC54:
|
|
.ascii "status: %x, ppa: %x\012\000"
|
|
.section .rodata.hynix_get_read_retry_default.str1.1,"aMS",%progbits,1
|
|
.LC102:
|
|
.ascii "otp error! %d\000"
|
|
.LC103:
|
|
.ascii "rr\000"
|
|
.section .rodata.hynix_read_retrial.str1.1,"aMS",%progbits,1
|
|
.LC121:
|
|
.ascii "hynix RR %d row=%x, count %d, status=%d\012\000"
|
|
.section .rodata.idb_write_data.str1.1,"aMS",%progbits,1
|
|
.LC132:
|
|
.ascii "1 write_idblock fix data %x %x %x\012\000"
|
|
.LC133:
|
|
.ascii "write_idblock check fail! %x\012\000"
|
|
.LC134:
|
|
.ascii "write_idblock fail! %x\012\000"
|
|
.section .rodata.load_l2p_region.str1.1,"aMS",%progbits,1
|
|
.LC204:
|
|
.ascii "region_id = %d, pm_max_region = %d\012\000"
|
|
.LC205:
|
|
.ascii "load_l2p_region no ppa = %x , %x, all setting 0xff."
|
|
.ascii "...\012\000"
|
|
.LC206:
|
|
.ascii "load_l2p_region = %x,%x,%x, %x\012\000"
|
|
.LC207:
|
|
.ascii "pm_ppa:\000"
|
|
.LC208:
|
|
.ascii "spare:\000"
|
|
.section .rodata.lpa_rebuild_hash.str1.1,"aMS",%progbits,1
|
|
.LC81:
|
|
.ascii "%s %d %d\012\000"
|
|
.section .rodata.micron_read_retrial.str1.1,"aMS",%progbits,1
|
|
.LC112:
|
|
.ascii "MT %d row=%x,last status %d,status = %d\012\000"
|
|
.LC113:
|
|
.ascii "MT RR %d row=%x,count %d,status=%d\012\000"
|
|
.section .rodata.nand_flash_print_info.str1.1,"aMS",%progbits,1
|
|
.LC1:
|
|
.ascii "...%s enter...\012\000"
|
|
.LC2:
|
|
.ascii "No.0 FLASH ID: %x %x %x %x %x %x\012\000"
|
|
.LC3:
|
|
.ascii "DiePerChip: %x\012\000"
|
|
.LC4:
|
|
.ascii "SectPerPage: %x\012\000"
|
|
.LC5:
|
|
.ascii "PagePerBlk: %x\012\000"
|
|
.LC6:
|
|
.ascii "Cell: %x\012\000"
|
|
.LC7:
|
|
.ascii "PlanePerDie: %x\012\000"
|
|
.LC8:
|
|
.ascii "BlkPerPlane: %x\012\000"
|
|
.LC9:
|
|
.ascii "die gap: %x\012\000"
|
|
.LC10:
|
|
.ascii "lsbMode: %x\012\000"
|
|
.LC11:
|
|
.ascii "ReadRetryMode: %x\012\000"
|
|
.LC12:
|
|
.ascii "ecc: %x\012\000"
|
|
.LC13:
|
|
.ascii "idb ecc: %x\012\000"
|
|
.LC14:
|
|
.ascii "OptMode: %x\012\000"
|
|
.LC15:
|
|
.ascii "g_nand_max_die: %x\012\000"
|
|
.LC16:
|
|
.ascii "Cache read enable: %x\012\000"
|
|
.LC17:
|
|
.ascii "Cache random read enable: %x\012\000"
|
|
.LC18:
|
|
.ascii "Cache prog enable: %x\012\000"
|
|
.LC19:
|
|
.ascii "multi read enable: %x\012\000"
|
|
.LC20:
|
|
.ascii "multi prog enable: %x\012\000"
|
|
.LC21:
|
|
.ascii "interleave enable: %x\012\000"
|
|
.LC22:
|
|
.ascii "read retry enable: %x\012\000"
|
|
.LC23:
|
|
.ascii "randomizer enable: %x\012\000"
|
|
.LC24:
|
|
.ascii "SDR enable: %x\012\000"
|
|
.LC25:
|
|
.ascii "ONFI enable: %x\012\000"
|
|
.LC26:
|
|
.ascii "TOGGLE enable: %x\012\000"
|
|
.LC27:
|
|
.ascii "g_flash_slc_mode: %x %x\012\000"
|
|
.LC28:
|
|
.ascii "MultiPlaneProgCmd: %x %x\012\000"
|
|
.LC29:
|
|
.ascii "MultiPlaneReadCmd: %x %x\012\000"
|
|
.LC30:
|
|
.ascii "g_flash_toggle_mode_en: %x\012\000"
|
|
.section .rodata.nandc_init.str1.1,"aMS",%progbits,1
|
|
.LC95:
|
|
.ascii "...%s enter... %p\012\000"
|
|
.LC96:
|
|
.ascii "0:%x %x %x %x %x\012\000"
|
|
.LC97:
|
|
.ascii "g_nandc_ver...%d\012\000"
|
|
.section .rodata.nandc_xfer.str1.1,"aMS",%progbits,1
|
|
.LC109:
|
|
.ascii "dqs data abort %x\012\000"
|
|
.LC110:
|
|
.ascii "dqs data timeout %x\012\000"
|
|
.LC111:
|
|
.ascii "xfer error %x\012\000"
|
|
.section .rodata.nandc_xfer_done.str1.1,"aMS",%progbits,1
|
|
.LC104:
|
|
.ascii "flash_abort_clear = %d\012\000"
|
|
.LC105:
|
|
.ascii "%d mtrans_cnt = %d page_num = %d\012\000"
|
|
.LC106:
|
|
.ascii "%d flReg.d32=%x %x\012\000"
|
|
.LC107:
|
|
.ascii "nandc:\000"
|
|
.LC108:
|
|
.ascii "nandc_xfer_done read error %x\012\000"
|
|
.section .rodata.pm_alloc_new_blk.str1.1,"aMS",%progbits,1
|
|
.LC172:
|
|
.ascii "pm_alloc_new_blk: %x %x %x %x\012\000"
|
|
.section .rodata.pm_free_sblk.str1.1,"aMS",%progbits,1
|
|
.LC92:
|
|
.ascii "GC PM block %x %x %x %d\012\000"
|
|
.LC93:
|
|
.ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000"
|
|
.section .rodata.pm_init.str1.1,"aMS",%progbits,1
|
|
.LC209:
|
|
.ascii "pm_init posr %x %x %x\012\000"
|
|
.LC210:
|
|
.ascii "pm_init recovery %x %x %x\012\000"
|
|
.LC211:
|
|
.ascii "pm_init hash %x error\012\000"
|
|
.section .rodata.pm_log2phys.str1.1,"aMS",%progbits,1
|
|
.LC212:
|
|
.ascii "pm_log2phys lpn = %d, max lpn = %d\012\000"
|
|
.section .rodata.pm_ppa_update_check.str1.1,"aMS",%progbits,1
|
|
.LC203:
|
|
.ascii "%s w error lpn = %x, max ppa = %d\012\000"
|
|
.section .rodata.pm_write_page.str1.1,"aMS",%progbits,1
|
|
.LC173:
|
|
.ascii "pm_write_page write error: %x\012\000"
|
|
.section .rodata.print_ftl_debug_info.str1.1,"aMS",%progbits,1
|
|
.LC71:
|
|
.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"
|
|
.LC72:
|
|
.ascii "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000"
|
|
.LC73:
|
|
.ascii "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000"
|
|
.LC74:
|
|
.ascii "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000"
|
|
.LC75:
|
|
.ascii "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:"
|
|
.ascii "%d free_th: %d\012\000"
|
|
.LC76:
|
|
.ascii "swl : %x %x %x %x %x %x\012\000"
|
|
.section .rodata.print_gc_debug_info.str1.1,"aMS",%progbits,1
|
|
.LC56:
|
|
.ascii "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012"
|
|
.ascii "\000"
|
|
.section .rodata.print_list_info.str1.1,"aMS",%progbits,1
|
|
.LC63:
|
|
.ascii "list count:%p %d\012\000"
|
|
.LC64:
|
|
.ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000"
|
|
.section .rodata.queue_wait_first_req_completed.str1.1,"aMS",%progbits,1
|
|
.LC137:
|
|
.ascii "read: %x %x %x %x\012\000"
|
|
.LC138:
|
|
.ascii "0set buf %d,status = %x, ppa = %x lun state = %d\012"
|
|
.ascii "\000"
|
|
.LC139:
|
|
.ascii "prog end %x %x error_ecc %d %d\012\000"
|
|
.LC140:
|
|
.ascii "1set buf %d,status = %x, ppa = %x lun state = %d\012"
|
|
.ascii "\000"
|
|
.LC141:
|
|
.ascii "dp prog end %x %x error_ecc %d %d\012\000"
|
|
.section .rodata.random_seed,"a",%progbits
|
|
.align 1
|
|
.set .LANCHOR54,. + 0
|
|
.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
|
|
.section .rodata.rk_ftl_init.str1.1,"aMS",%progbits,1
|
|
.LC254:
|
|
.ascii "zftl_init %x\012\000"
|
|
.section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1
|
|
.LC98:
|
|
.ascii "%s %p + 0x%x:\000"
|
|
.LC99:
|
|
.ascii "%x \000"
|
|
.LC100:
|
|
.ascii "\000"
|
|
.LC101:
|
|
.ascii "%s\012\000"
|
|
.section .rodata.samsung_14nm_mlc_rr,"a",%progbits
|
|
.set .LANCHOR168,. + 0
|
|
.type samsung_14nm_mlc_rr, %object
|
|
.size samsung_14nm_mlc_rr, 104
|
|
samsung_14nm_mlc_rr:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -4
|
|
.byte 3
|
|
.byte -4
|
|
.byte -6
|
|
.byte 6
|
|
.byte 0
|
|
.byte 6
|
|
.byte -10
|
|
.byte -10
|
|
.byte 4
|
|
.byte -10
|
|
.byte 16
|
|
.byte 12
|
|
.byte -4
|
|
.byte 12
|
|
.byte 8
|
|
.byte -16
|
|
.byte 10
|
|
.byte -16
|
|
.byte 24
|
|
.byte 18
|
|
.byte -14
|
|
.byte 18
|
|
.byte -4
|
|
.byte -22
|
|
.byte -16
|
|
.byte -22
|
|
.byte -8
|
|
.byte 24
|
|
.byte -9
|
|
.byte 24
|
|
.byte 8
|
|
.byte -28
|
|
.byte -4
|
|
.byte -28
|
|
.byte 16
|
|
.byte 30
|
|
.byte 10
|
|
.byte 30
|
|
.byte 10
|
|
.byte -34
|
|
.byte 6
|
|
.byte -34
|
|
.byte 0
|
|
.byte 36
|
|
.byte -8
|
|
.byte 36
|
|
.byte -8
|
|
.byte -40
|
|
.byte -2
|
|
.byte -40
|
|
.byte -20
|
|
.byte -46
|
|
.byte -4
|
|
.byte -46
|
|
.byte -30
|
|
.byte 3
|
|
.byte 0
|
|
.byte 3
|
|
.byte -3
|
|
.byte -2
|
|
.byte -4
|
|
.byte -2
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte -10
|
|
.byte -6
|
|
.byte -8
|
|
.byte -6
|
|
.byte -14
|
|
.byte -9
|
|
.byte -8
|
|
.byte -9
|
|
.byte -18
|
|
.byte -52
|
|
.byte 22
|
|
.byte -52
|
|
.byte 10
|
|
.byte 42
|
|
.byte 4
|
|
.byte 42
|
|
.byte 4
|
|
.byte 48
|
|
.byte -9
|
|
.byte 48
|
|
.byte 4
|
|
.byte -58
|
|
.byte 12
|
|
.byte -58
|
|
.byte 0
|
|
.byte -64
|
|
.byte -24
|
|
.byte -64
|
|
.byte -6
|
|
.byte 9
|
|
.byte 18
|
|
.byte 9
|
|
.byte 8
|
|
.section .rodata.samsung_14nm_slc_rr,"a",%progbits
|
|
.set .LANCHOR167,. + 0
|
|
.type samsung_14nm_slc_rr, %object
|
|
.size samsung_14nm_slc_rr, 26
|
|
samsung_14nm_slc_rr:
|
|
.byte 0
|
|
.byte 10
|
|
.byte -10
|
|
.byte 20
|
|
.byte -20
|
|
.byte 30
|
|
.byte -30
|
|
.byte 40
|
|
.byte -40
|
|
.byte 50
|
|
.byte -50
|
|
.byte 60
|
|
.byte -60
|
|
.byte -70
|
|
.byte -80
|
|
.byte -90
|
|
.byte -100
|
|
.byte -110
|
|
.byte -120
|
|
.byte -9
|
|
.byte 70
|
|
.byte 80
|
|
.byte 90
|
|
.byte -125
|
|
.byte -115
|
|
.byte 100
|
|
.section .rodata.samsung_read_retrial.str1.1,"aMS",%progbits,1
|
|
.LC118:
|
|
.ascii "samsung SRR %d row=%x, status=%d\012\000"
|
|
.LC119:
|
|
.ascii "samsung TRR %d row=%x, status=%d\012\000"
|
|
.LC120:
|
|
.ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
|
|
.section .rodata.sandisk_prog_test_bad_block.str1.1,"aMS",%progbits,1
|
|
.LC40:
|
|
.ascii "bad block test:%x %x\012\000"
|
|
.section .rodata.sblk_mlc_dump_prog.str1.1,"aMS",%progbits,1
|
|
.LC135:
|
|
.ascii "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\012"
|
|
.ascii "\000"
|
|
.section .rodata.sblk_prog_page.str1.1,"aMS",%progbits,1
|
|
.LC142:
|
|
.ascii "sblk_prog_page ppa = %x, count = %d\012\000"
|
|
.section .rodata.toshiba_15ref_value,"a",%progbits
|
|
.set .LANCHOR16,. + 0
|
|
.type toshiba_15ref_value, %object
|
|
.size toshiba_15ref_value, 95
|
|
toshiba_15ref_value:
|
|
.byte 4
|
|
.byte 5
|
|
.byte 6
|
|
.byte 7
|
|
.byte 13
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 4
|
|
.byte 2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 0
|
|
.byte 124
|
|
.byte 124
|
|
.byte 0
|
|
.byte 122
|
|
.byte 0
|
|
.byte 122
|
|
.byte 122
|
|
.byte 0
|
|
.byte 11
|
|
.byte 126
|
|
.byte 118
|
|
.byte 116
|
|
.byte 0
|
|
.byte 120
|
|
.byte 2
|
|
.byte 120
|
|
.byte 122
|
|
.byte 0
|
|
.byte 126
|
|
.byte 4
|
|
.byte 126
|
|
.byte 122
|
|
.byte 0
|
|
.byte 16
|
|
.byte 118
|
|
.byte 114
|
|
.byte 112
|
|
.byte 0
|
|
.byte 118
|
|
.byte 4
|
|
.byte 118
|
|
.byte 120
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 4
|
|
.byte 118
|
|
.byte 0
|
|
.byte 2
|
|
.byte 0
|
|
.byte 126
|
|
.byte 124
|
|
.byte 0
|
|
.byte 6
|
|
.byte 10
|
|
.byte 6
|
|
.byte 2
|
|
.byte 0
|
|
.byte 116
|
|
.byte 124
|
|
.byte 116
|
|
.byte 118
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 124
|
|
.byte 126
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 120
|
|
.byte 120
|
|
.byte 0
|
|
.byte 124
|
|
.byte 118
|
|
.byte 116
|
|
.byte 114
|
|
.byte 0
|
|
.section .rodata.toshiba_3D_slc_value,"a",%progbits
|
|
.set .LANCHOR38,. + 0
|
|
.type toshiba_3D_slc_value, %object
|
|
.size toshiba_3D_slc_value, 11
|
|
toshiba_3D_slc_value:
|
|
.byte -117
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -24
|
|
.byte 24
|
|
.byte -40
|
|
.byte 40
|
|
.byte -56
|
|
.byte 56
|
|
.section .rodata.toshiba_3D_tlc_value,"a",%progbits
|
|
.set .LANCHOR37,. + 0
|
|
.type toshiba_3D_tlc_value, %object
|
|
.size toshiba_3D_tlc_value, 399
|
|
toshiba_3D_tlc_value:
|
|
.byte -119
|
|
.byte -119
|
|
.byte -119
|
|
.byte -119
|
|
.byte -118
|
|
.byte -118
|
|
.byte -118
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 5
|
|
.byte -2
|
|
.byte -1
|
|
.byte 0
|
|
.byte -3
|
|
.byte -2
|
|
.byte 6
|
|
.byte -9
|
|
.byte -12
|
|
.byte -9
|
|
.byte -7
|
|
.byte -13
|
|
.byte -12
|
|
.byte -7
|
|
.byte -6
|
|
.byte -15
|
|
.byte -15
|
|
.byte -2
|
|
.byte -12
|
|
.byte -16
|
|
.byte -6
|
|
.byte -2
|
|
.byte -19
|
|
.byte -19
|
|
.byte -6
|
|
.byte -4
|
|
.byte -12
|
|
.byte -14
|
|
.byte -2
|
|
.byte -11
|
|
.byte -23
|
|
.byte -34
|
|
.byte -4
|
|
.byte -20
|
|
.byte -22
|
|
.byte -2
|
|
.byte -7
|
|
.byte -31
|
|
.byte -30
|
|
.byte -12
|
|
.byte -20
|
|
.byte -18
|
|
.byte 2
|
|
.byte -15
|
|
.byte -19
|
|
.byte -36
|
|
.byte -12
|
|
.byte -28
|
|
.byte -34
|
|
.byte -6
|
|
.byte -15
|
|
.byte -11
|
|
.byte 2
|
|
.byte -12
|
|
.byte -8
|
|
.byte -2
|
|
.byte 2
|
|
.byte -3
|
|
.byte -7
|
|
.byte -10
|
|
.byte -4
|
|
.byte -8
|
|
.byte -6
|
|
.byte -6
|
|
.byte -11
|
|
.byte -27
|
|
.byte -38
|
|
.byte -16
|
|
.byte -12
|
|
.byte -2
|
|
.byte 2
|
|
.byte -7
|
|
.byte -31
|
|
.byte -22
|
|
.byte -4
|
|
.byte -16
|
|
.byte -22
|
|
.byte -7
|
|
.byte -31
|
|
.byte -23
|
|
.byte -22
|
|
.byte -28
|
|
.byte -28
|
|
.byte -26
|
|
.byte 2
|
|
.byte -7
|
|
.byte -11
|
|
.byte -14
|
|
.byte -8
|
|
.byte -12
|
|
.byte -10
|
|
.byte -10
|
|
.byte -27
|
|
.byte -25
|
|
.byte -22
|
|
.byte -20
|
|
.byte -28
|
|
.byte -22
|
|
.byte -7
|
|
.byte -23
|
|
.byte -29
|
|
.byte -34
|
|
.byte -24
|
|
.byte -32
|
|
.byte -22
|
|
.byte -10
|
|
.byte -11
|
|
.byte -29
|
|
.byte -18
|
|
.byte -12
|
|
.byte -24
|
|
.byte -22
|
|
.byte 6
|
|
.byte 1
|
|
.byte -3
|
|
.byte -6
|
|
.byte 0
|
|
.byte -4
|
|
.byte -2
|
|
.byte 10
|
|
.byte -3
|
|
.byte -7
|
|
.byte -6
|
|
.byte 4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -10
|
|
.byte -23
|
|
.byte -39
|
|
.byte -22
|
|
.byte -19
|
|
.byte -24
|
|
.byte -18
|
|
.byte -14
|
|
.byte -23
|
|
.byte -29
|
|
.byte -30
|
|
.byte -15
|
|
.byte -30
|
|
.byte -30
|
|
.byte -7
|
|
.byte -27
|
|
.byte -35
|
|
.byte -26
|
|
.byte -15
|
|
.byte -24
|
|
.byte -26
|
|
.byte 6
|
|
.byte -11
|
|
.byte 5
|
|
.byte -2
|
|
.byte -16
|
|
.byte -16
|
|
.byte -2
|
|
.byte -2
|
|
.byte -15
|
|
.byte -15
|
|
.byte -20
|
|
.byte -8
|
|
.byte -16
|
|
.byte -18
|
|
.byte 6
|
|
.byte 5
|
|
.byte -15
|
|
.byte -2
|
|
.byte -24
|
|
.byte -28
|
|
.byte -22
|
|
.byte 10
|
|
.byte -15
|
|
.byte -3
|
|
.byte -30
|
|
.byte -8
|
|
.byte -24
|
|
.byte -30
|
|
.byte -10
|
|
.byte -27
|
|
.byte -19
|
|
.byte -30
|
|
.byte -12
|
|
.byte -16
|
|
.byte -10
|
|
.byte 14
|
|
.byte -19
|
|
.byte -3
|
|
.byte -30
|
|
.byte 4
|
|
.byte 4
|
|
.byte 6
|
|
.byte 2
|
|
.byte 1
|
|
.byte -3
|
|
.byte -10
|
|
.byte -8
|
|
.byte -4
|
|
.byte -6
|
|
.byte -2
|
|
.byte -15
|
|
.byte -11
|
|
.byte -26
|
|
.byte -8
|
|
.byte -20
|
|
.byte -30
|
|
.byte 6
|
|
.byte -19
|
|
.byte -3
|
|
.byte -46
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 6
|
|
.byte 9
|
|
.byte 5
|
|
.byte 2
|
|
.byte 4
|
|
.byte 8
|
|
.byte 6
|
|
.byte 8
|
|
.byte 9
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 8
|
|
.byte 6
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.byte -12
|
|
.byte -14
|
|
.byte -20
|
|
.byte -18
|
|
.byte -16
|
|
.byte -16
|
|
.byte -14
|
|
.byte -12
|
|
.byte -10
|
|
.byte -21
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -10
|
|
.byte -12
|
|
.byte -18
|
|
.byte -22
|
|
.byte -24
|
|
.byte -18
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -14
|
|
.byte -23
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -12
|
|
.byte -24
|
|
.byte -24
|
|
.byte -30
|
|
.byte -24
|
|
.byte -28
|
|
.byte -28
|
|
.byte -12
|
|
.byte -26
|
|
.byte -25
|
|
.byte -34
|
|
.byte -24
|
|
.byte -24
|
|
.byte -24
|
|
.byte -12
|
|
.byte -13
|
|
.byte -26
|
|
.byte -20
|
|
.byte -14
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -15
|
|
.byte -27
|
|
.byte -22
|
|
.byte -20
|
|
.byte -24
|
|
.byte -22
|
|
.byte -12
|
|
.byte -21
|
|
.byte -28
|
|
.byte -28
|
|
.byte -24
|
|
.byte -26
|
|
.byte -24
|
|
.byte 20
|
|
.byte 16
|
|
.byte 6
|
|
.byte 10
|
|
.byte 16
|
|
.byte 12
|
|
.byte 12
|
|
.byte 16
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 12
|
|
.byte 12
|
|
.byte 12
|
|
.byte 18
|
|
.byte 18
|
|
.byte 10
|
|
.byte 8
|
|
.byte 14
|
|
.byte 14
|
|
.byte 14
|
|
.byte 16
|
|
.byte 14
|
|
.byte 6
|
|
.byte 6
|
|
.byte 12
|
|
.byte 14
|
|
.byte 8
|
|
.byte 20
|
|
.byte 18
|
|
.byte 8
|
|
.byte 6
|
|
.byte 14
|
|
.byte 14
|
|
.byte 10
|
|
.byte 20
|
|
.byte 20
|
|
.byte 6
|
|
.byte 10
|
|
.byte 10
|
|
.byte 12
|
|
.byte 12
|
|
.byte 10
|
|
.byte 13
|
|
.byte 5
|
|
.byte 2
|
|
.byte 14
|
|
.byte 8
|
|
.byte 6
|
|
.byte 6
|
|
.byte 13
|
|
.byte 9
|
|
.byte 4
|
|
.byte 14
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.section .rodata.toshiba_3d_read_retrial.str1.1,"aMS",%progbits,1
|
|
.LC114:
|
|
.ascii "toshiba SRR %d row=%x, status=%d\012\000"
|
|
.LC115:
|
|
.ascii "toshiba TRR %d row=%x, status=%d\012\000"
|
|
.LC116:
|
|
.ascii "toshiba RR %d row=%x,count %d,status=%d\012\000"
|
|
.section .rodata.toshiba_A19ref_value,"a",%progbits
|
|
.set .LANCHOR14,. + 0
|
|
.type toshiba_A19ref_value, %object
|
|
.size toshiba_A19ref_value, 45
|
|
toshiba_A19ref_value:
|
|
.byte 4
|
|
.byte 5
|
|
.byte 6
|
|
.byte 7
|
|
.byte 13
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 4
|
|
.byte 4
|
|
.byte 124
|
|
.byte 126
|
|
.byte 0
|
|
.byte 0
|
|
.byte 124
|
|
.byte 120
|
|
.byte 120
|
|
.byte 0
|
|
.byte 124
|
|
.byte 118
|
|
.byte 116
|
|
.byte 114
|
|
.byte 0
|
|
.byte 8
|
|
.byte 8
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 11
|
|
.byte 126
|
|
.byte 118
|
|
.byte 116
|
|
.byte 0
|
|
.byte 16
|
|
.byte 118
|
|
.byte 114
|
|
.byte 112
|
|
.byte 0
|
|
.byte 2
|
|
.byte 0
|
|
.byte 126
|
|
.byte 124
|
|
.byte 0
|
|
.section .rodata.toshiba_ref_value,"a",%progbits
|
|
.set .LANCHOR17,. + 0
|
|
.type toshiba_ref_value, %object
|
|
.size toshiba_ref_value, 8
|
|
toshiba_ref_value:
|
|
.byte 0
|
|
.byte 4
|
|
.byte 124
|
|
.byte 120
|
|
.byte 116
|
|
.byte 8
|
|
.byte 12
|
|
.byte 112
|
|
.section .rodata.ymtc_3D_slc_value,"a",%progbits
|
|
.set .LANCHOR42,. + 0
|
|
.type ymtc_3D_slc_value, %object
|
|
.size ymtc_3D_slc_value, 10
|
|
ymtc_3D_slc_value:
|
|
.byte 0
|
|
.byte -8
|
|
.byte 8
|
|
.byte -16
|
|
.byte -20
|
|
.byte 24
|
|
.byte -26
|
|
.byte 40
|
|
.byte -12
|
|
.byte 56
|
|
.section .rodata.ymtc_3D_tlc_value,"a",%progbits
|
|
.set .LANCHOR41,. + 0
|
|
.type ymtc_3D_tlc_value, %object
|
|
.size ymtc_3D_tlc_value, 357
|
|
ymtc_3D_tlc_value:
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -10
|
|
.byte -10
|
|
.byte -6
|
|
.byte -6
|
|
.byte -2
|
|
.byte 2
|
|
.byte 2
|
|
.byte -6
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -4
|
|
.byte -6
|
|
.byte -8
|
|
.byte 6
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte 0
|
|
.byte -2
|
|
.byte -2
|
|
.byte -2
|
|
.byte -4
|
|
.byte -4
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -11
|
|
.byte -2
|
|
.byte 2
|
|
.byte 4
|
|
.byte 4
|
|
.byte 6
|
|
.byte 6
|
|
.byte 6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -6
|
|
.byte -8
|
|
.byte -14
|
|
.byte -6
|
|
.byte -15
|
|
.byte -11
|
|
.byte 2
|
|
.byte -12
|
|
.byte -8
|
|
.byte -2
|
|
.byte 2
|
|
.byte -3
|
|
.byte -7
|
|
.byte -10
|
|
.byte -4
|
|
.byte -8
|
|
.byte -6
|
|
.byte -18
|
|
.byte -18
|
|
.byte -14
|
|
.byte -14
|
|
.byte -10
|
|
.byte -5
|
|
.byte -5
|
|
.byte -14
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -12
|
|
.byte -13
|
|
.byte -15
|
|
.byte -2
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -10
|
|
.byte -10
|
|
.byte -10
|
|
.byte -12
|
|
.byte -12
|
|
.byte -13
|
|
.byte -13
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -13
|
|
.byte -18
|
|
.byte -10
|
|
.byte -6
|
|
.byte -4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -1
|
|
.byte -1
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -14
|
|
.byte -15
|
|
.byte -21
|
|
.byte -12
|
|
.byte -11
|
|
.byte -7
|
|
.byte -7
|
|
.byte -3
|
|
.byte 1
|
|
.byte 1
|
|
.byte -8
|
|
.byte -7
|
|
.byte -5
|
|
.byte -5
|
|
.byte -5
|
|
.byte -7
|
|
.byte -9
|
|
.byte 4
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -1
|
|
.byte -4
|
|
.byte -3
|
|
.byte -3
|
|
.byte -5
|
|
.byte -5
|
|
.byte -7
|
|
.byte -7
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -12
|
|
.byte -4
|
|
.byte 1
|
|
.byte 3
|
|
.byte 3
|
|
.byte 5
|
|
.byte 5
|
|
.byte 5
|
|
.byte -8
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -7
|
|
.byte -9
|
|
.byte -15
|
|
.byte 2
|
|
.byte -7
|
|
.byte -11
|
|
.byte -14
|
|
.byte -8
|
|
.byte -12
|
|
.byte -10
|
|
.byte 6
|
|
.byte 1
|
|
.byte -3
|
|
.byte -6
|
|
.byte 0
|
|
.byte -4
|
|
.byte -2
|
|
.byte 10
|
|
.byte -3
|
|
.byte -7
|
|
.byte -6
|
|
.byte 4
|
|
.byte -4
|
|
.byte -2
|
|
.byte -10
|
|
.byte -23
|
|
.byte -39
|
|
.byte -22
|
|
.byte -19
|
|
.byte -24
|
|
.byte -18
|
|
.byte -7
|
|
.byte -27
|
|
.byte -35
|
|
.byte -26
|
|
.byte -15
|
|
.byte -24
|
|
.byte -26
|
|
.byte 6
|
|
.byte -11
|
|
.byte 5
|
|
.byte -2
|
|
.byte -16
|
|
.byte -16
|
|
.byte -2
|
|
.byte -2
|
|
.byte -15
|
|
.byte -15
|
|
.byte -20
|
|
.byte -8
|
|
.byte -16
|
|
.byte -18
|
|
.byte 2
|
|
.byte 1
|
|
.byte -3
|
|
.byte -10
|
|
.byte -8
|
|
.byte -4
|
|
.byte -6
|
|
.byte -2
|
|
.byte -15
|
|
.byte -11
|
|
.byte -26
|
|
.byte -8
|
|
.byte -20
|
|
.byte -30
|
|
.byte 6
|
|
.byte -19
|
|
.byte -3
|
|
.byte -46
|
|
.byte 0
|
|
.byte 0
|
|
.byte 2
|
|
.byte 6
|
|
.byte 9
|
|
.byte 5
|
|
.byte 2
|
|
.byte 4
|
|
.byte 8
|
|
.byte 6
|
|
.byte 8
|
|
.byte 9
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 8
|
|
.byte 6
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.byte -12
|
|
.byte -14
|
|
.byte -20
|
|
.byte -18
|
|
.byte -16
|
|
.byte -16
|
|
.byte -14
|
|
.byte -12
|
|
.byte -10
|
|
.byte -21
|
|
.byte -14
|
|
.byte -12
|
|
.byte -12
|
|
.byte -10
|
|
.byte -12
|
|
.byte -18
|
|
.byte -22
|
|
.byte -24
|
|
.byte -18
|
|
.byte -18
|
|
.byte -18
|
|
.byte -12
|
|
.byte -14
|
|
.byte -23
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte -20
|
|
.byte 16
|
|
.byte 16
|
|
.byte 8
|
|
.byte 8
|
|
.byte 12
|
|
.byte 12
|
|
.byte 12
|
|
.byte 18
|
|
.byte 18
|
|
.byte 10
|
|
.byte 8
|
|
.byte 14
|
|
.byte 14
|
|
.byte 14
|
|
.byte 16
|
|
.byte 14
|
|
.byte 6
|
|
.byte 6
|
|
.byte 12
|
|
.byte 14
|
|
.byte 8
|
|
.byte 10
|
|
.byte 13
|
|
.byte 5
|
|
.byte 2
|
|
.byte 14
|
|
.byte 8
|
|
.byte 6
|
|
.byte 6
|
|
.byte 13
|
|
.byte 9
|
|
.byte 4
|
|
.byte 14
|
|
.byte 10
|
|
.byte 10
|
|
.byte 10
|
|
.byte 13
|
|
.byte 9
|
|
.byte 6
|
|
.byte 8
|
|
.byte 12
|
|
.byte 10
|
|
.byte 2
|
|
.byte 5
|
|
.byte 1
|
|
.byte -2
|
|
.byte 0
|
|
.byte 0
|
|
.byte 6
|
|
.byte 12
|
|
.byte 1
|
|
.byte 13
|
|
.byte 2
|
|
.byte 12
|
|
.byte 12
|
|
.byte 14
|
|
.section .rodata.ymtc_3d_read_retrial.str1.1,"aMS",%progbits,1
|
|
.LC117:
|
|
.ascii "YMTC RR %d row=%x,count %d,status=%d\012\000"
|
|
.section .rodata.ymtc_flash_tlc_page_prog.str1.1,"aMS",%progbits,1
|
|
.LC131:
|
|
.ascii "ymtc_flash_tlc_page_prog page_addr = %x status = %x"
|
|
.ascii "\012\000"
|
|
.section .rodata.zftl_discard.str1.1,"aMS",%progbits,1
|
|
.LC256:
|
|
.ascii "ftl_discard:(%x, %x, %x, %x)\012\000"
|
|
.section .rodata.zftl_do_gc.str1.1,"aMS",%progbits,1
|
|
.LC239:
|
|
.ascii "gc %d: %d %d %d %d %d %d %d\012\000"
|
|
.LC240:
|
|
.ascii "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\012"
|
|
.ascii "\000"
|
|
.LC241:
|
|
.ascii "gc free %x, %d\012\000"
|
|
.section .rodata.zftl_gc_get_free_sblk.str1.1,"aMS",%progbits,1
|
|
.LC59:
|
|
.ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000"
|
|
.LC60:
|
|
.ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000"
|
|
.LC61:
|
|
.ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000"
|
|
.section .rodata.zftl_get_free_sblk.str1.1,"aMS",%progbits,1
|
|
.LC62:
|
|
.ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000"
|
|
.section .rodata.zftl_init.str1.1,"aMS",%progbits,1
|
|
.LC242:
|
|
.ascii "FTL version: 6.0.24 20210107\000"
|
|
.LC243:
|
|
.ascii "_c_user_data_density := %d\012\000"
|
|
.LC244:
|
|
.ascii "_c_totle_phy_density := %d\012\000"
|
|
.LC245:
|
|
.ascii "_c_totle_log_page := %d\012\000"
|
|
.LC246:
|
|
.ascii "_c_totle_data_density := %d\012\000"
|
|
.LC247:
|
|
.ascii "_c_ftl_pm_page_num := %d\012\000"
|
|
.LC248:
|
|
.ascii "_c_ftl_byte_pre_page := %d\012\000"
|
|
.LC249:
|
|
.ascii "_c_max_pm_sblk := %d\012\000"
|
|
.LC250:
|
|
.ascii "_min_slc_super_block := %d\012\000"
|
|
.LC251:
|
|
.ascii "_max_xlc_super_block := %d\012\000"
|
|
.LC252:
|
|
.ascii "gp_ftl_ext_info %p %p %p\012\000"
|
|
.LC253:
|
|
.ascii "flash info size: %d %d %d\012\000"
|
|
.section .rodata.zftl_read.str1.1,"aMS",%progbits,1
|
|
.LC228:
|
|
.ascii "ftl_read %x %x %x\012\000"
|
|
.LC229:
|
|
.ascii "ftl_read refresh =%x, lpa = %x, ppa= %x\012\000"
|
|
.LC230:
|
|
.ascii "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %"
|
|
.ascii "x %x %x\012\000"
|
|
.section .rodata.zftl_sblk_list_init.str1.1,"aMS",%progbits,1
|
|
.LC91:
|
|
.ascii "free blk vpn error: %x %x\012\000"
|
|
.section .rodata.zftl_write.str1.1,"aMS",%progbits,1
|
|
.LC255:
|
|
.ascii "ftlwrite %x %x %x %x\012\000"
|
|
.hidden free
|
|
|