1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2019-02-20 6 */ 7 .arch armv7-a 8 .eabi_attribute 20, 1 9 .eabi_attribute 21, 1 10 .eabi_attribute 23, 3 11 .eabi_attribute 24, 1 12 .eabi_attribute 25, 1 13 .eabi_attribute 26, 2 14 .eabi_attribute 30, 4 15 .eabi_attribute 34, 0 16 .eabi_attribute 18, 2 17 .file "rk_sftl.c" 18 .global __aeabi_uidiv 19 .section .text.l2p_addr_tran.isra.0,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 24 .fpu softvfp 25 .type l2p_addr_tran.isra.0, %function 26l2p_addr_tran.isra.0: 27 @ args = 0, pretend = 0, frame = 0 28 @ frame_needed = 0, uses_anonymous_args = 0 29 push {r3, r4, r5, r6, r7, r8, r10, lr} 30 lsrs r7, r0, #10 31 ldr r3, .L3 32 mov r8, r1 33 mov r6, r0 34 uxth r0, r7 35 mov r10, r2 36 uxth r7, r7 37 ldrh r4, [r3, #8] 38 ubfx r6, r6, #0, #10 39 ldrh r5, [r3, #10] 40 ldrh r3, [r3, #14] 41 cmp r3, #4 42 itt eq 43 lsreq r4, r4, #1 44 lsleq r5, r5, #1 45 mov r1, r4 46 it eq 47 uxtheq r5, r5 48 bl __aeabi_uidiv 49 uxth r0, r0 50 mls r4, r0, r4, r7 51 mla r4, r5, r4, r6 52 str r4, [r8] 53 str r0, [r10] 54 movs r0, #0 55 pop {r3, r4, r5, r6, r7, r8, r10, pc} 56.L4: 57 .align 2 58.L3: 59 .word .LANCHOR0 60 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0 61 .section .text.ftl_set_blk_mode.part.6,"ax",%progbits 62 .align 1 63 .syntax unified 64 .thumb 65 .thumb_func 66 .fpu softvfp 67 .type ftl_set_blk_mode.part.6, %function 68ftl_set_blk_mode.part.6: 69 @ args = 0, pretend = 0, frame = 0 70 @ frame_needed = 0, uses_anonymous_args = 0 71 @ link register save eliminated. 72 ldr r3, .L6 73 lsrs r1, r0, #5 74 and r0, r0, #31 75 ldr r2, [r3] 76 movs r3, #1 77 lsl r0, r3, r0 78 ldr r3, [r2, r1, lsl #2] 79 orrs r3, r3, r0 80 str r3, [r2, r1, lsl #2] 81 bx lr 82.L7: 83 .align 2 84.L6: 85 .word .LANCHOR1 86 .size ftl_set_blk_mode.part.6, .-ftl_set_blk_mode.part.6 87 .section .text.Ftl_log2,"ax",%progbits 88 .align 1 89 .global Ftl_log2 90 .syntax unified 91 .thumb 92 .thumb_func 93 .fpu softvfp 94 .type Ftl_log2, %function 95Ftl_log2: 96 @ args = 0, pretend = 0, frame = 0 97 @ frame_needed = 0, uses_anonymous_args = 0 98 @ link register save eliminated. 99 movs r1, #0 100 movs r2, #1 101.L9: 102 cmp r2, r0 103 uxth r3, r1 104 add r1, r1, #1 105 bls .L10 106 subs r0, r3, #1 107 uxth r0, r0 108 bx lr 109.L10: 110 lsls r2, r2, #1 111 b .L9 112 .size Ftl_log2, .-Ftl_log2 113 .section .text.FtlPrintInfo,"ax",%progbits 114 .align 1 115 .global FtlPrintInfo 116 .syntax unified 117 .thumb 118 .thumb_func 119 .fpu softvfp 120 .type FtlPrintInfo, %function 121FtlPrintInfo: 122 @ args = 0, pretend = 0, frame = 0 123 @ frame_needed = 0, uses_anonymous_args = 0 124 @ link register save eliminated. 125 bx lr 126 .size FtlPrintInfo, .-FtlPrintInfo 127 .section .text.FtlSysBlkNumInit,"ax",%progbits 128 .align 1 129 .global FtlSysBlkNumInit 130 .syntax unified 131 .thumb 132 .thumb_func 133 .fpu softvfp 134 .type FtlSysBlkNumInit, %function 135FtlSysBlkNumInit: 136 @ args = 0, pretend = 0, frame = 0 137 @ frame_needed = 0, uses_anonymous_args = 0 138 @ link register save eliminated. 139 ldr r3, .L13 140 cmp r0, #24 141 it cc 142 movcc r0, #24 143 ldr r2, .L13+4 144 str r0, [r3] 145 ldr r3, .L13+8 146 ldrh r3, [r3] 147 muls r3, r0, r3 148 str r3, [r2] 149 ldr r2, .L13+12 150 ldrh r2, [r2] 151 subs r0, r2, r0 152 ldr r2, .L13+16 153 strh r0, [r2] @ movhi 154 movs r0, #0 155 ldr r2, .L13+20 156 ldr r2, [r2] 157 subs r3, r2, r3 158 ldr r2, .L13+24 159 str r3, [r2] 160 bx lr 161.L14: 162 .align 2 163.L13: 164 .word .LANCHOR2 165 .word .LANCHOR4 166 .word .LANCHOR3 167 .word .LANCHOR6 168 .word .LANCHOR5 169 .word .LANCHOR8 170 .word .LANCHOR7 171 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 172 .global __aeabi_idiv 173 .section .text.FtlConstantsInit,"ax",%progbits 174 .align 1 175 .global FtlConstantsInit 176 .syntax unified 177 .thumb 178 .thumb_func 179 .fpu softvfp 180 .type FtlConstantsInit, %function 181FtlConstantsInit: 182 @ args = 0, pretend = 0, frame = 8 183 @ frame_needed = 0, uses_anonymous_args = 0 184 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 185 mov r3, r0 186 ldrh r4, [r0] 187 ldr r2, .L25 188 ldrh r5, [r0, #2] 189 ldrh r0, [r0, #4] 190 strh r4, [r2] @ movhi 191 ldr r2, .L25+4 192 ldrh r1, [r3, #6] 193 ldrh r7, [r3, #14] 194 strh r5, [r2] @ movhi 195 ldr r2, .L25+8 196 ldr r6, .L25+12 197 cmp r7, #4 198 strh r0, [r2] @ movhi 199 ldr r2, .L25+16 200 strh r7, [r6] @ movhi 201 ldr r7, .L25+20 202 strh r1, [r2] @ movhi 203 itttt eq 204 lsreq r1, r1, #1 205 strheq r1, [r2] @ movhi 206 moveq r1, #8 207 strheq r1, [r6] @ movhi 208 movs r1, #0 209.L17: 210 strb r1, [r1, r7] 211 adds r1, r1, #1 212 cmp r1, #32 213 bne .L17 214 ldr r1, .L25+24 215 cmp r4, #1 216 mov r7, #5 217 smulbb r5, r5, r0 218 mov ip, #0 219 str r3, [sp, #4] 220 strh r7, [r1] @ movhi 221 it eq 222 strheq r4, [r1] @ movhi 223 mov r4, #640 224 ldr r1, .L25+28 225 uxth r5, r5 226 ldr r7, .L25+32 227 strh r4, [r1] @ movhi 228 ldrh r4, [r2] 229 ldr r1, .L25+36 230 ldr r2, .L25+40 231 strh ip, [r7] @ movhi 232 smulbb r0, r0, r4 233 strh r5, [r1] @ movhi 234 ldr r7, .L25+44 235 uxth r0, r0 236 strh r0, [r2] @ movhi 237 bl Ftl_log2 238 ldr r3, [sp, #4] 239 ldr r2, .L25+48 240 ldrh fp, [r6] 241 ldrh r8, [r3, #12] 242 strh r0, [r2] @ movhi 243 ldr r2, .L25+52 244 mov r0, fp 245 strh r8, [r7] @ movhi 246 smulbb r1, r5, r8 247 ldr r6, .L25+56 248 strh r8, [r2] @ movhi 249 ldr r2, .L25+60 250 strh r1, [r2] @ movhi 251 bl Ftl_log2 252 lsl r2, fp, #9 253 ldr r1, .L25+64 254 ldr r3, [sp, #4] 255 mov r10, r0 256 uxth r2, r2 257 strh r0, [r6] @ movhi 258 mov r0, #5120 259 strh r2, [r1] @ movhi 260 lsrs r2, r2, #8 261 ldr r1, .L25+68 262 strh r2, [r1] @ movhi 263 mul r1, r8, fp 264 ldrh r2, [r3, #20] 265 ldr r3, .L25+72 266 strh r2, [r3] @ movhi 267 mul r3, r4, r5 268 ldr r2, .L25+76 269 lsls r4, r4, #6 270 str r3, [r2] 271 mul r3, fp, r3 272 ldr r2, .L25+80 273 mul r3, r8, r3 274 ldr r8, .L25+116 275 asrs r3, r3, #11 276 str r3, [r2] 277 bl __aeabi_idiv 278 uxth r0, r0 279 ldr r2, .L25+84 280 mov r1, r5 281 cmp r0, #4 282 itet ls 283 movls r3, #4 284 strhhi r0, [r8] @ movhi 285 strhls r3, [r8] @ movhi 286 mov r3, #640 287 asr r3, r3, r10 288 add r10, r10, #9 289 asr r4, r4, r10 290 ldr r10, .L25+120 291 adds r3, r3, #2 292 ldrh r0, [r8] 293 strh r3, [r2] @ movhi 294 ldr r3, .L25+88 295 strh r4, [r3] @ movhi 296 uxth r4, r4 297 mul r3, r5, r4 298 adds r4, r4, #8 299 str r3, [r10] 300 bl __aeabi_uidiv 301 uxtah r0, r4, r0 302 ldr r4, .L25+92 303 cmp r5, #1 304 it eq 305 addeq r0, r0, #4 306 str r0, [r4] 307 ldrh r0, [r4] 308 bl FtlSysBlkNumInit 309 ldr r2, [r4] 310 movs r0, #0 311 ldr r3, .L25+96 312 str r2, [r3] 313 ldr r3, .L25+100 314 ldr r2, [r3] 315 ldrh r3, [r7] 316 lsls r2, r2, #2 317 muls r3, r2, r3 318 ldrh r2, [r6] 319 adds r2, r2, #9 320 lsrs r3, r3, r2 321 ldr r2, .L25+104 322 adds r3, r3, #2 323 strh r3, [r2] @ movhi 324 movs r2, #32 325 ldr r3, .L25+108 326 strh r2, [r3] @ movhi 327 ldr r3, .L25+112 328 str r0, [r3] 329 ldrh r3, [r8] 330 adds r3, r3, #3 331 strh r3, [r8] @ movhi 332 ldr r3, [r10] 333 adds r3, r3, #3 334 str r3, [r10] 335 add sp, sp, #8 336 @ sp needed 337 pop {r4, r5, r6, r7, r8, r10, fp, pc} 338.L26: 339 .align 2 340.L25: 341 .word .LANCHOR9 342 .word .LANCHOR10 343 .word .LANCHOR11 344 .word .LANCHOR12 345 .word .LANCHOR6 346 .word .LANCHOR13 347 .word .LANCHOR14 348 .word .LANCHOR16 349 .word .LANCHOR15 350 .word .LANCHOR3 351 .word .LANCHOR17 352 .word .LANCHOR19 353 .word .LANCHOR18 354 .word .LANCHOR20 355 .word .LANCHOR22 356 .word .LANCHOR21 357 .word .LANCHOR23 358 .word .LANCHOR24 359 .word .LANCHOR25 360 .word .LANCHOR8 361 .word .LANCHOR26 362 .word .LANCHOR28 363 .word .LANCHOR29 364 .word .LANCHOR2 365 .word .LANCHOR31 366 .word .LANCHOR7 367 .word .LANCHOR32 368 .word .LANCHOR33 369 .word .LANCHOR34 370 .word .LANCHOR27 371 .word .LANCHOR30 372 .size FtlConstantsInit, .-FtlConstantsInit 373 .section .text.IsBlkInVendorPart,"ax",%progbits 374 .align 1 375 .global IsBlkInVendorPart 376 .syntax unified 377 .thumb 378 .thumb_func 379 .fpu softvfp 380 .type IsBlkInVendorPart, %function 381IsBlkInVendorPart: 382 @ args = 0, pretend = 0, frame = 0 383 @ frame_needed = 0, uses_anonymous_args = 0 384 @ link register save eliminated. 385 ldr r3, .L34 386 ldrh r3, [r3] 387 cbz r3, .L33 388 ldr r3, .L34+4 389 ldr r2, .L34+8 390 ldr r3, [r3] 391 ldrh r2, [r2] 392 add r2, r3, r2, lsl #1 393.L29: 394 cmp r3, r2 395 bne .L30 396.L33: 397 movs r0, #0 398 bx lr 399.L30: 400 ldrh r1, [r3], #2 401 cmp r0, r1 402 bne .L29 403 movs r0, #1 404 bx lr 405.L35: 406 .align 2 407.L34: 408 .word .LANCHOR35 409 .word .LANCHOR36 410 .word .LANCHOR27 411 .size IsBlkInVendorPart, .-IsBlkInVendorPart 412 .section .text.FtlCacheWriteBack,"ax",%progbits 413 .align 1 414 .global FtlCacheWriteBack 415 .syntax unified 416 .thumb 417 .thumb_func 418 .fpu softvfp 419 .type FtlCacheWriteBack, %function 420FtlCacheWriteBack: 421 @ args = 0, pretend = 0, frame = 0 422 @ frame_needed = 0, uses_anonymous_args = 0 423 @ link register save eliminated. 424 movs r0, #0 425 bx lr 426 .size FtlCacheWriteBack, .-FtlCacheWriteBack 427 .section .text.sftl_get_density,"ax",%progbits 428 .align 1 429 .global sftl_get_density 430 .syntax unified 431 .thumb 432 .thumb_func 433 .fpu softvfp 434 .type sftl_get_density, %function 435sftl_get_density: 436 @ args = 0, pretend = 0, frame = 0 437 @ frame_needed = 0, uses_anonymous_args = 0 438 @ link register save eliminated. 439 ldr r3, .L38 440 ldr r0, [r3] 441 bx lr 442.L39: 443 .align 2 444.L38: 445 .word .LANCHOR34 446 .size sftl_get_density, .-sftl_get_density 447 .global __aeabi_uidivmod 448 .section .text.FtlBbmMapBadBlock,"ax",%progbits 449 .align 1 450 .global FtlBbmMapBadBlock 451 .syntax unified 452 .thumb 453 .thumb_func 454 .fpu softvfp 455 .type FtlBbmMapBadBlock, %function 456FtlBbmMapBadBlock: 457 @ args = 0, pretend = 0, frame = 0 458 @ frame_needed = 0, uses_anonymous_args = 0 459 ldr r3, .L41 460 push {r0, r1, r2, r4, r5, r6, r7, lr} 461 mov r5, r0 462 ldrh r4, [r3] 463 mov r1, r4 464 bl __aeabi_uidiv 465 mov r1, r4 466 ldr r4, .L41+4 467 uxth r6, r0 468 mov r0, r5 469 bl __aeabi_uidivmod 470 add r2, r4, r6, lsl #2 471 uxth r3, r1 472 ldr r2, [r2, #28] 473 lsrs r1, r3, #5 474 and r7, r3, #31 475 movs r0, #1 476 lsls r0, r0, r7 477 ldr r7, [r2, r1, lsl #2] 478 orrs r0, r0, r7 479 str r0, [r2, r1, lsl #2] 480 mov r2, r6 481 str r0, [sp] 482 mov r1, r5 483 ldr r0, .L41+8 484 bl printf 485 ldrh r3, [r4, #6] 486 movs r0, #0 487 adds r3, r3, #1 488 strh r3, [r4, #6] @ movhi 489 add sp, sp, #12 490 @ sp needed 491 pop {r4, r5, r6, r7, pc} 492.L42: 493 .align 2 494.L41: 495 .word .LANCHOR17 496 .word .LANCHOR37 497 .word .LC0 498 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 499 .section .text.FtlBbmIsBadBlock,"ax",%progbits 500 .align 1 501 .global FtlBbmIsBadBlock 502 .syntax unified 503 .thumb 504 .thumb_func 505 .fpu softvfp 506 .type FtlBbmIsBadBlock, %function 507FtlBbmIsBadBlock: 508 @ args = 0, pretend = 0, frame = 0 509 @ frame_needed = 0, uses_anonymous_args = 0 510 ldr r3, .L44 511 push {r4, r5, r6, lr} 512 mov r6, r0 513 ldrh r5, [r3] 514 mov r1, r5 515 bl __aeabi_uidivmod 516 mov r0, r6 517 uxth r4, r1 518 mov r1, r5 519 bl __aeabi_uidiv 520 ldr r3, .L44+4 521 uxth r0, r0 522 lsrs r2, r4, #5 523 and r4, r4, #31 524 add r0, r3, r0, lsl #2 525 ldr r3, [r0, #28] 526 ldr r0, [r3, r2, lsl #2] 527 lsrs r0, r0, r4 528 and r0, r0, #1 529 pop {r4, r5, r6, pc} 530.L45: 531 .align 2 532.L44: 533 .word .LANCHOR17 534 .word .LANCHOR37 535 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 536 .section .text.FtlBbtInfoPrint,"ax",%progbits 537 .align 1 538 .global FtlBbtInfoPrint 539 .syntax unified 540 .thumb 541 .thumb_func 542 .fpu softvfp 543 .type FtlBbtInfoPrint, %function 544FtlBbtInfoPrint: 545 @ args = 0, pretend = 0, frame = 0 546 @ frame_needed = 0, uses_anonymous_args = 0 547 @ link register save eliminated. 548 bx lr 549 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 550 .section .text.V2P_block,"ax",%progbits 551 .align 1 552 .global V2P_block 553 .syntax unified 554 .thumb 555 .thumb_func 556 .fpu softvfp 557 .type V2P_block, %function 558V2P_block: 559 @ args = 0, pretend = 0, frame = 0 560 @ frame_needed = 0, uses_anonymous_args = 0 561 push {r3, r4, r5, r6, r7, lr} 562 mov r5, r1 563 ldr r3, .L48 564 mov r7, r0 565 ldrh r6, [r3] 566 mov r1, r6 567 bl __aeabi_uidiv 568 ldr r3, .L48+4 569 smulbb r5, r6, r5 570 mov r1, r6 571 ldrh r4, [r3] 572 smulbb r4, r4, r0 573 mov r0, r7 574 bl __aeabi_uidivmod 575 adds r0, r5, r1 576 add r0, r0, r4 577 uxth r0, r0 578 pop {r3, r4, r5, r6, r7, pc} 579.L49: 580 .align 2 581.L48: 582 .word .LANCHOR11 583 .word .LANCHOR17 584 .size V2P_block, .-V2P_block 585 .section .text.P2V_plane,"ax",%progbits 586 .align 1 587 .global P2V_plane 588 .syntax unified 589 .thumb 590 .thumb_func 591 .fpu softvfp 592 .type P2V_plane, %function 593P2V_plane: 594 @ args = 0, pretend = 0, frame = 0 595 @ frame_needed = 0, uses_anonymous_args = 0 596 ldr r3, .L51 597 push {r4, r5, r6, lr} 598 mov r6, r0 599 ldrh r5, [r3] 600 ldr r3, .L51+4 601 ldrh r1, [r3] 602 bl __aeabi_uidiv 603 smulbb r4, r0, r5 604 mov r1, r5 605 mov r0, r6 606 bl __aeabi_uidivmod 607 add r1, r1, r4 608 uxth r0, r1 609 pop {r4, r5, r6, pc} 610.L52: 611 .align 2 612.L51: 613 .word .LANCHOR11 614 .word .LANCHOR17 615 .size P2V_plane, .-P2V_plane 616 .section .text.P2V_block_in_plane,"ax",%progbits 617 .align 1 618 .global P2V_block_in_plane 619 .syntax unified 620 .thumb 621 .thumb_func 622 .fpu softvfp 623 .type P2V_block_in_plane, %function 624P2V_block_in_plane: 625 @ args = 0, pretend = 0, frame = 0 626 @ frame_needed = 0, uses_anonymous_args = 0 627 push {r3, lr} 628 ldr r3, .L54 629 ldrh r1, [r3] 630 bl __aeabi_uidivmod 631 ldr r3, .L54+4 632 uxth r0, r1 633 ldrh r1, [r3] 634 bl __aeabi_uidiv 635 uxth r0, r0 636 pop {r3, pc} 637.L55: 638 .align 2 639.L54: 640 .word .LANCHOR17 641 .word .LANCHOR11 642 .size P2V_block_in_plane, .-P2V_block_in_plane 643 .section .text.ftl_cmp_data_ver,"ax",%progbits 644 .align 1 645 .global ftl_cmp_data_ver 646 .syntax unified 647 .thumb 648 .thumb_func 649 .fpu softvfp 650 .type ftl_cmp_data_ver, %function 651ftl_cmp_data_ver: 652 @ args = 0, pretend = 0, frame = 0 653 @ frame_needed = 0, uses_anonymous_args = 0 654 @ link register save eliminated. 655 cmp r0, r1 656 bls .L57 657 subs r0, r0, r1 658 cmp r0, #-2147483648 659 ite hi 660 movhi r0, #0 661 movls r0, #1 662 bx lr 663.L57: 664 subs r0, r1, r0 665 cmp r0, #-2147483648 666 ite ls 667 movls r0, #0 668 movhi r0, #1 669 bx lr 670 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 671 .section .text.FtlFreeSysBlkQueueEmpty,"ax",%progbits 672 .align 1 673 .global FtlFreeSysBlkQueueEmpty 674 .syntax unified 675 .thumb 676 .thumb_func 677 .fpu softvfp 678 .type FtlFreeSysBlkQueueEmpty, %function 679FtlFreeSysBlkQueueEmpty: 680 @ args = 0, pretend = 0, frame = 0 681 @ frame_needed = 0, uses_anonymous_args = 0 682 @ link register save eliminated. 683 ldr r3, .L60 684 ldrh r0, [r3, #6] 685 clz r0, r0 686 lsrs r0, r0, #5 687 bx lr 688.L61: 689 .align 2 690.L60: 691 .word .LANCHOR38 692 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 693 .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits 694 .align 1 695 .global FtlFreeSysBlkQueueFull 696 .syntax unified 697 .thumb 698 .thumb_func 699 .fpu softvfp 700 .type FtlFreeSysBlkQueueFull, %function 701FtlFreeSysBlkQueueFull: 702 @ args = 0, pretend = 0, frame = 0 703 @ frame_needed = 0, uses_anonymous_args = 0 704 @ link register save eliminated. 705 ldr r3, .L63 706 ldrh r0, [r3, #6] 707 sub r3, r0, #1024 708 rsbs r0, r3, #0 709 adcs r0, r0, r3 710 bx lr 711.L64: 712 .align 2 713.L63: 714 .word .LANCHOR38 715 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 716 .section .text.FtlFreeSysBLkSort,"ax",%progbits 717 .align 1 718 .global FtlFreeSysBLkSort 719 .syntax unified 720 .thumb 721 .thumb_func 722 .fpu softvfp 723 .type FtlFreeSysBLkSort, %function 724FtlFreeSysBLkSort: 725 @ args = 0, pretend = 0, frame = 0 726 @ frame_needed = 0, uses_anonymous_args = 0 727 ldr r3, .L74 728 push {r4, r5, r6, lr} 729 ldrh r2, [r3, #6] 730 cbz r2, .L65 731 ldr r2, .L74+4 732 movs r6, #0 733 ldrh r1, [r3, #2] 734 mov r5, r6 735 ldrh r4, [r2, #28] 736 ldrh r2, [r3, #4] 737 and r4, r4, #31 738.L67: 739 uxth r0, r6 740 adds r6, r6, #1 741 cmp r4, r0 742 bgt .L68 743 cbz r5, .L65 744 strh r1, [r3, #2] @ movhi 745 strh r2, [r3, #4] @ movhi 746.L65: 747 pop {r4, r5, r6, pc} 748.L68: 749 adds r0, r1, #4 750 adds r1, r1, #1 751 ldrh r5, [r3, r0, lsl #1] 752 adds r0, r2, #4 753 ubfx r1, r1, #0, #10 754 strh r5, [r3, r0, lsl #1] @ movhi 755 movs r5, #1 756 add r2, r2, r5 757 ubfx r2, r2, #0, #10 758 b .L67 759.L75: 760 .align 2 761.L74: 762 .word .LANCHOR38 763 .word .LANCHOR39 764 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 765 .section .text.IsInFreeQueue,"ax",%progbits 766 .align 1 767 .global IsInFreeQueue 768 .syntax unified 769 .thumb 770 .thumb_func 771 .fpu softvfp 772 .type IsInFreeQueue, %function 773IsInFreeQueue: 774 @ args = 0, pretend = 0, frame = 0 775 @ frame_needed = 0, uses_anonymous_args = 0 776 ldr r3, .L82 777 push {r4, r5, lr} 778 ldrh r4, [r3, #6] 779 cmp r4, #1024 780 beq .L80 781 ldrh r5, [r3, #2] 782 movs r1, #0 783.L78: 784 cmp r1, r4 785 bcc .L79 786.L80: 787 movs r0, #0 788 pop {r4, r5, pc} 789.L79: 790 adds r2, r1, r5 791 ubfx r2, r2, #0, #10 792 adds r2, r2, #4 793 ldrh r2, [r3, r2, lsl #1] 794 cmp r2, r0 795 beq .L81 796 adds r1, r1, #1 797 b .L78 798.L81: 799 movs r0, #1 800 pop {r4, r5, pc} 801.L83: 802 .align 2 803.L82: 804 .word .LANCHOR38 805 .size IsInFreeQueue, .-IsInFreeQueue 806 .section .text.insert_data_list,"ax",%progbits 807 .align 1 808 .global insert_data_list 809 .syntax unified 810 .thumb 811 .thumb_func 812 .fpu softvfp 813 .type insert_data_list, %function 814insert_data_list: 815 @ args = 0, pretend = 0, frame = 0 816 @ frame_needed = 0, uses_anonymous_args = 0 817 ldr r3, .L99 818 push {r4, r5, r6, r7, r8, r10, fp, lr} 819 ldrh r8, [r3] 820 cmp r8, r0 821 bls .L86 822 ldr r3, .L99+4 823 movs r5, #6 824 muls r5, r0, r5 825 ldr r4, [r3] 826 movw r3, #65535 827 adds r1, r4, r5 828 strh r3, [r1, #2] @ movhi 829 strh r3, [r4, r5] @ movhi 830 ldr r3, .L99+8 831 ldr ip, [r3] 832 cmp ip, #0 833 bne .L87 834.L98: 835 str r1, [r3] 836.L86: 837 movs r0, #0 838 pop {r4, r5, r6, r7, r8, r10, fp, pc} 839.L87: 840 ldr r3, .L99+12 841 ldrh r6, [r1, #4] 842 ldr r10, [r3] 843 ldrh r3, [r10, r0, lsl #1] 844 cbz r6, .L94 845 muls r6, r3, r6 846.L88: 847 sub r2, ip, r4 848 movs r7, #0 849 asrs r3, r2, #1 850 ldr r2, .L99+16 851 muls r2, r3, r2 852 mov r3, ip 853 uxth r2, r2 854.L92: 855 adds r7, r7, #1 856 uxth r7, r7 857 cmp r8, r7 858 bcc .L86 859 cmp r2, r0 860 beq .L86 861 ldrh lr, [r3, #4] 862 cmp lr, #0 863 beq .L90 864 ldrh fp, [r10, r2, lsl #1] 865 mul lr, lr, fp 866 cmp r6, lr 867 bls .L90 868 ldrh lr, [r3] 869 movw fp, #65535 870 cmp lr, fp 871 bne .L91 872 strh r2, [r1, #2] @ movhi 873 strh r0, [r3] @ movhi 874 ldr r3, .L99+20 875 b .L98 876.L94: 877 mov r6, #-1 878 b .L88 879.L91: 880 movs r3, #6 881 mov r2, lr 882 mla r3, r3, lr, r4 883 b .L92 884.L90: 885 strh r2, [r4, r5] @ movhi 886 cmp r3, ip 887 ldrh r2, [r3, #2] 888 strh r2, [r1, #2] @ movhi 889 bne .L93 890 strh r0, [r3, #2] @ movhi 891 ldr r3, .L99+8 892 b .L98 893.L93: 894 ldrh r1, [r3, #2] 895 movs r2, #6 896 muls r2, r1, r2 897 strh r0, [r4, r2] @ movhi 898 strh r0, [r3, #2] @ movhi 899 b .L86 900.L100: 901 .align 2 902.L99: 903 .word .LANCHOR5 904 .word .LANCHOR40 905 .word .LANCHOR41 906 .word .LANCHOR42 907 .word -1431655765 908 .word .LANCHOR43 909 .size insert_data_list, .-insert_data_list 910 .section .text.INSERT_DATA_LIST,"ax",%progbits 911 .align 1 912 .global INSERT_DATA_LIST 913 .syntax unified 914 .thumb 915 .thumb_func 916 .fpu softvfp 917 .type INSERT_DATA_LIST, %function 918INSERT_DATA_LIST: 919 @ args = 0, pretend = 0, frame = 0 920 @ frame_needed = 0, uses_anonymous_args = 0 921 push {r3, lr} 922 bl insert_data_list 923 ldr r2, .L103 924 ldrh r3, [r2] 925 adds r3, r3, #1 926 uxth r3, r3 927 strh r3, [r2] @ movhi 928 ldr r2, .L103+4 929 ldrh r2, [r2] 930 cmp r2, r3 931 bcs .L101 932 movs r2, #214 933 ldr r1, .L103+8 934 ldr r0, .L103+12 935 pop {r3, lr} 936 b printf 937.L101: 938 pop {r3, pc} 939.L104: 940 .align 2 941.L103: 942 .word .LANCHOR44 943 .word .LANCHOR5 944 .word .LANCHOR45 945 .word .LC1 946 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 947 .section .text.insert_free_list,"ax",%progbits 948 .align 1 949 .global insert_free_list 950 .syntax unified 951 .thumb 952 .thumb_func 953 .fpu softvfp 954 .type insert_free_list, %function 955insert_free_list: 956 @ args = 0, pretend = 0, frame = 0 957 @ frame_needed = 0, uses_anonymous_args = 0 958 movw r1, #65535 959 push {r4, r5, r6, r7, r8, r10, fp, lr} 960 cmp r0, r1 961 beq .L106 962 ldr r3, .L112 963 mov r10, #6 964 mul r7, r10, r0 965 ldr r4, [r3] 966 ldr r3, .L112+4 967 adds r5, r4, r7 968 ldr r6, [r3] 969 mov lr, r3 970 strh r1, [r5, #2] @ movhi 971 strh r1, [r4, r7] @ movhi 972 cbnz r6, .L107 973 str r5, [r3] 974.L106: 975 movs r0, #0 976 pop {r4, r5, r6, r7, r8, r10, fp, pc} 977.L107: 978 ldr r3, .L112+8 979 subs r2, r6, r4 980 mov fp, r1 981 ldr ip, [r3] 982 asrs r3, r2, #1 983 ldr r2, .L112+12 984 ldrh r8, [ip, r0, lsl #1] 985 muls r2, r3, r2 986 mov r3, r6 987 uxth r2, r2 988.L110: 989 ldrh r1, [ip, r2, lsl #1] 990 cmp r1, r8 991 bcs .L108 992 ldrh r1, [r3] 993 cmp r1, fp 994 bne .L109 995 strh r2, [r5, #2] @ movhi 996 strh r0, [r3] @ movhi 997 b .L106 998.L109: 999 mla r3, r10, r1, r4 1000 mov r2, r1 1001 b .L110 1002.L108: 1003 ldrh r1, [r3, #2] 1004 cmp r3, r6 1005 strh r1, [r5, #2] @ movhi 1006 it ne 1007 ldrhne r1, [r3, #2] 1008 strh r2, [r4, r7] @ movhi 1009 iteet ne 1010 movne r2, #6 1011 strheq r0, [r3, #2] @ movhi 1012 streq r5, [lr] 1013 mulne r2, r2, r1 1014 itt ne 1015 strhne r0, [r4, r2] @ movhi 1016 strhne r0, [r3, #2] @ movhi 1017 b .L106 1018.L113: 1019 .align 2 1020.L112: 1021 .word .LANCHOR40 1022 .word .LANCHOR46 1023 .word .LANCHOR47 1024 .word -1431655765 1025 .size insert_free_list, .-insert_free_list 1026 .section .text.INSERT_FREE_LIST,"ax",%progbits 1027 .align 1 1028 .global INSERT_FREE_LIST 1029 .syntax unified 1030 .thumb 1031 .thumb_func 1032 .fpu softvfp 1033 .type INSERT_FREE_LIST, %function 1034INSERT_FREE_LIST: 1035 @ args = 0, pretend = 0, frame = 0 1036 @ frame_needed = 0, uses_anonymous_args = 0 1037 push {r3, lr} 1038 bl insert_free_list 1039 ldr r2, .L116 1040 ldrh r3, [r2] 1041 adds r3, r3, #1 1042 uxth r3, r3 1043 strh r3, [r2] @ movhi 1044 ldr r2, .L116+4 1045 ldrh r2, [r2] 1046 cmp r2, r3 1047 bcs .L114 1048 movs r2, #207 1049 ldr r1, .L116+8 1050 ldr r0, .L116+12 1051 pop {r3, lr} 1052 b printf 1053.L114: 1054 pop {r3, pc} 1055.L117: 1056 .align 2 1057.L116: 1058 .word .LANCHOR48 1059 .word .LANCHOR5 1060 .word .LANCHOR49 1061 .word .LC1 1062 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 1063 .section .text.List_remove_node,"ax",%progbits 1064 .align 1 1065 .global List_remove_node 1066 .syntax unified 1067 .thumb 1068 .thumb_func 1069 .fpu softvfp 1070 .type List_remove_node, %function 1071List_remove_node: 1072 @ args = 0, pretend = 0, frame = 0 1073 @ frame_needed = 0, uses_anonymous_args = 0 1074 push {r4, r5, r6, r7, r8, lr} 1075 movs r6, #6 1076 ldr r5, .L124 1077 muls r6, r1, r6 1078 movw r3, #65535 1079 mov r8, r0 1080 ldr r7, [r5] 1081 adds r4, r7, r6 1082 ldrh r2, [r4, #2] 1083 cmp r2, r3 1084 bne .L119 1085 ldr r3, [r0] 1086 cmp r4, r3 1087 beq .L119 1088 mov r2, #372 1089 ldr r1, .L124+4 1090 ldr r0, .L124+8 1091 bl printf 1092.L119: 1093 ldr r3, [r8] 1094 movw r1, #65535 1095 cmp r4, r3 1096 ldrh r3, [r7, r6] 1097 bne .L120 1098 cmp r3, r1 1099 ittee ne 1100 ldrne r0, [r5] 1101 movne r2, #6 1102 moveq r3, #0 1103 streq r3, [r8] 1104 ittt ne 1105 mlane r3, r2, r3, r0 1106 strne r3, [r8] 1107 strhne r1, [r3, #2] @ movhi 1108.L122: 1109 movw r3, #65535 1110 movs r0, #0 1111 strh r3, [r7, r6] @ movhi 1112 strh r3, [r4, #2] @ movhi 1113 pop {r4, r5, r6, r7, r8, pc} 1114.L120: 1115 cmp r3, r1 1116 ldrh r1, [r4, #2] 1117 bne .L123 1118 cmp r1, r3 1119 beq .L122 1120 movs r2, #6 1121 ldr r0, [r5] 1122 muls r1, r2, r1 1123 strh r3, [r0, r1] @ movhi 1124 b .L122 1125.L123: 1126 ldr r0, [r5] 1127 movs r2, #6 1128 mla r5, r2, r3, r0 1129 strh r1, [r5, #2] @ movhi 1130 ldrh r1, [r4, #2] 1131 muls r2, r1, r2 1132 strh r3, [r0, r2] @ movhi 1133 b .L122 1134.L125: 1135 .align 2 1136.L124: 1137 .word .LANCHOR40 1138 .word .LANCHOR50 1139 .word .LC1 1140 .size List_remove_node, .-List_remove_node 1141 .section .text.List_pop_index_node,"ax",%progbits 1142 .align 1 1143 .global List_pop_index_node 1144 .syntax unified 1145 .thumb 1146 .thumb_func 1147 .fpu softvfp 1148 .type List_pop_index_node, %function 1149List_pop_index_node: 1150 @ args = 0, pretend = 0, frame = 0 1151 @ frame_needed = 0, uses_anonymous_args = 0 1152 ldr r3, [r0] 1153 push {r4, r5, r6, lr} 1154 cbz r3, .L132 1155 ldr r2, .L133 1156 movw r5, #65535 1157 movs r6, #6 1158 ldr r2, [r2] 1159.L128: 1160 cbnz r1, .L129 1161.L131: 1162 ldr r4, .L133+4 1163 subs r3, r3, r2 1164 asrs r3, r3, #1 1165 muls r4, r3, r4 1166 uxth r1, r4 1167 bl List_remove_node 1168 uxth r0, r4 1169 pop {r4, r5, r6, pc} 1170.L129: 1171 ldrh r4, [r3] 1172 cmp r4, r5 1173 beq .L131 1174 subs r1, r1, #1 1175 mla r3, r6, r4, r2 1176 uxth r1, r1 1177 b .L128 1178.L132: 1179 movw r0, #65535 1180 pop {r4, r5, r6, pc} 1181.L134: 1182 .align 2 1183.L133: 1184 .word .LANCHOR40 1185 .word -1431655765 1186 .size List_pop_index_node, .-List_pop_index_node 1187 .section .text.List_pop_head_node,"ax",%progbits 1188 .align 1 1189 .global List_pop_head_node 1190 .syntax unified 1191 .thumb 1192 .thumb_func 1193 .fpu softvfp 1194 .type List_pop_head_node, %function 1195List_pop_head_node: 1196 @ args = 0, pretend = 0, frame = 0 1197 @ frame_needed = 0, uses_anonymous_args = 0 1198 @ link register save eliminated. 1199 movs r1, #0 1200 b List_pop_index_node 1201 .size List_pop_head_node, .-List_pop_head_node 1202 .section .text.List_get_gc_head_node,"ax",%progbits 1203 .align 1 1204 .global List_get_gc_head_node 1205 .syntax unified 1206 .thumb 1207 .thumb_func 1208 .fpu softvfp 1209 .type List_get_gc_head_node, %function 1210List_get_gc_head_node: 1211 @ args = 0, pretend = 0, frame = 0 1212 @ frame_needed = 0, uses_anonymous_args = 0 1213 ldr r3, .L142 1214 push {r4, lr} 1215 ldr r3, [r3] 1216 cbz r3, .L141 1217 ldr r2, .L142+4 1218 movs r4, #6 1219 ldr r1, [r2] 1220 movw r2, #65535 1221.L138: 1222 cbz r0, .L139 1223 ldrh r3, [r3] 1224 cmp r3, r2 1225 bne .L140 1226.L141: 1227 movw r0, #65535 1228 pop {r4, pc} 1229.L140: 1230 subs r0, r0, #1 1231 mla r3, r4, r3, r1 1232 uxth r0, r0 1233 b .L138 1234.L139: 1235 ldr r0, .L142+8 1236 subs r3, r3, r1 1237 asrs r3, r3, #1 1238 muls r3, r0, r3 1239 uxth r0, r3 1240 pop {r4, pc} 1241.L143: 1242 .align 2 1243.L142: 1244 .word .LANCHOR41 1245 .word .LANCHOR40 1246 .word -1431655765 1247 .size List_get_gc_head_node, .-List_get_gc_head_node 1248 .section .text.List_update_data_list,"ax",%progbits 1249 .align 1 1250 .global List_update_data_list 1251 .syntax unified 1252 .thumb 1253 .thumb_func 1254 .fpu softvfp 1255 .type List_update_data_list, %function 1256List_update_data_list: 1257 @ args = 0, pretend = 0, frame = 0 1258 @ frame_needed = 0, uses_anonymous_args = 0 1259 ldr r3, .L155 1260 push {r4, r5, r6, r7, r8, r10, fp, lr} 1261 mov r4, r0 1262 ldrh r3, [r3] 1263 cmp r3, r0 1264 beq .L146 1265 ldr r3, .L155+4 1266 ldrh r3, [r3] 1267 cmp r3, r0 1268 beq .L146 1269 ldr r3, .L155+8 1270 ldrh r3, [r3] 1271 cmp r3, r0 1272 beq .L146 1273 ldr r7, .L155+12 1274 movs r6, #6 1275 ldr r3, .L155+16 1276 muls r6, r0, r6 1277 ldr fp, [r7] 1278 ldr r3, [r3] 1279 add r10, fp, r6 1280 cmp r10, r3 1281 beq .L146 1282 ldr r3, .L155+20 1283 ldrh r5, [r10, #4] 1284 ldr r2, [r3] 1285 mov r8, r3 1286 ldrh r2, [r2, r0, lsl #1] 1287 cmp r5, #0 1288 beq .L153 1289 muls r5, r2, r5 1290.L148: 1291 ldrh r3, [r10, #2] 1292 movw r2, #65535 1293 cmp r3, r2 1294 bne .L149 1295 ldrh r2, [fp, r6] 1296 cmp r2, r3 1297 bne .L149 1298 movw r2, #463 1299 ldr r1, .L155+24 1300 ldr r0, .L155+28 1301 bl printf 1302.L149: 1303 ldrh r3, [r10, #2] 1304 movw r2, #65535 1305 cmp r3, r2 1306 bne .L150 1307 ldrh r2, [fp, r6] 1308 cmp r2, r3 1309 beq .L146 1310.L150: 1311 movs r2, #6 1312 muls r2, r3, r2 1313 ldr r3, .L155+32 1314 asrs r1, r2, #1 1315 muls r3, r1, r3 1316 ldr r1, [r8] 1317 ldrh r0, [r1, r3, lsl #1] 1318 ldr r1, [r7] 1319 add r2, r2, r1 1320 ldrh r3, [r2, #4] 1321 cbz r3, .L154 1322 muls r3, r0, r3 1323.L151: 1324 cmp r5, r3 1325 bcs .L146 1326 ldr r5, .L155+36 1327 mov r1, r4 1328 ldr r0, .L155+16 1329 bl List_remove_node 1330 ldrh r3, [r5] 1331 cbnz r3, .L152 1332 mov r2, #474 1333 ldr r1, .L155+24 1334 ldr r0, .L155+28 1335 bl printf 1336.L152: 1337 ldrh r3, [r5] 1338 mov r0, r4 1339 subs r3, r3, #1 1340 strh r3, [r5] @ movhi 1341 bl INSERT_DATA_LIST 1342.L146: 1343 movs r0, #0 1344 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1345.L153: 1346 mov r5, #-1 1347 b .L148 1348.L154: 1349 mov r3, #-1 1350 b .L151 1351.L156: 1352 .align 2 1353.L155: 1354 .word .LANCHOR51 1355 .word .LANCHOR52 1356 .word .LANCHOR53 1357 .word .LANCHOR40 1358 .word .LANCHOR41 1359 .word .LANCHOR42 1360 .word .LANCHOR54 1361 .word .LC1 1362 .word -1431655765 1363 .word .LANCHOR44 1364 .size List_update_data_list, .-List_update_data_list 1365 .section .text.select_l2p_ram_region,"ax",%progbits 1366 .align 1 1367 .global select_l2p_ram_region 1368 .syntax unified 1369 .thumb 1370 .thumb_func 1371 .fpu softvfp 1372 .type select_l2p_ram_region, %function 1373select_l2p_ram_region: 1374 @ args = 0, pretend = 0, frame = 0 1375 @ frame_needed = 0, uses_anonymous_args = 0 1376 push {r3, r4, r5, r6, r7, lr} 1377 movs r1, #0 1378 ldr r3, .L167 1379 movs r0, #12 1380 movw r5, #65535 1381 ldrh r2, [r3] 1382 ldr r3, .L167+4 1383 ldr r3, [r3] 1384.L158: 1385 uxth r4, r1 1386 cmp r4, r2 1387 bcc .L160 1388 mov r4, r2 1389 movs r1, #0 1390 mov r6, #-2147483648 1391 movs r7, #12 1392.L161: 1393 uxth r5, r1 1394 cmp r5, r2 1395 bcc .L163 1396 cmp r4, r2 1397 bcc .L159 1398 ldr r1, .L167+8 1399 mov r4, r2 1400 mov r0, #-1 1401 ldrh r7, [r1] 1402 movs r1, #0 1403.L164: 1404 uxth r5, r1 1405 cmp r5, r2 1406 bcc .L166 1407 cmp r4, r2 1408 bcc .L159 1409 movw r2, #789 1410 ldr r1, .L167+12 1411 ldr r0, .L167+16 1412 bl printf 1413 b .L159 1414.L160: 1415 adds r1, r1, #1 1416 mla r6, r0, r1, r3 1417 ldrh r6, [r6, #-12] 1418 cmp r6, r5 1419 bne .L158 1420.L159: 1421 mov r0, r4 1422 pop {r3, r4, r5, r6, r7, pc} 1423.L163: 1424 mla r0, r7, r1, r3 1425 ldr r0, [r0, #4] 1426 cmp r0, #0 1427 blt .L162 1428 cmp r6, r0 1429 itt hi 1430 movhi r6, r0 1431 movhi r4, r5 1432.L162: 1433 adds r1, r1, #1 1434 b .L161 1435.L166: 1436 ldr r6, [r3, #4] 1437 cmp r0, r6 1438 bls .L165 1439 ldrh ip, [r3] 1440 cmp ip, r7 1441 itt ne 1442 movne r0, r6 1443 movne r4, r5 1444.L165: 1445 adds r1, r1, #1 1446 adds r3, r3, #12 1447 b .L164 1448.L168: 1449 .align 2 1450.L167: 1451 .word .LANCHOR33 1452 .word .LANCHOR55 1453 .word .LANCHOR56 1454 .word .LANCHOR57 1455 .word .LC1 1456 .size select_l2p_ram_region, .-select_l2p_ram_region 1457 .section .text.FtlUpdateVaildLpn,"ax",%progbits 1458 .align 1 1459 .global FtlUpdateVaildLpn 1460 .syntax unified 1461 .thumb 1462 .thumb_func 1463 .fpu softvfp 1464 .type FtlUpdateVaildLpn, %function 1465FtlUpdateVaildLpn: 1466 @ args = 0, pretend = 0, frame = 0 1467 @ frame_needed = 0, uses_anonymous_args = 0 1468 ldr r2, .L179 1469 push {r4, r5, r6, lr} 1470 mov r1, r2 1471 ldrh r3, [r2] 1472 cmp r3, #4 1473 bhi .L170 1474 cbnz r0, .L170 1475 adds r3, r3, #1 1476 strh r3, [r2] @ movhi 1477 pop {r4, r5, r6, pc} 1478.L170: 1479 movs r3, #0 1480 ldr r0, .L179+4 1481 strh r3, [r1] @ movhi 1482 movw r6, #65535 1483 ldr r1, .L179+8 1484 ldrh r4, [r0] 1485 mov r0, r3 1486 ldr r2, .L179+12 1487 ldr r1, [r1] 1488 str r3, [r2] 1489 add r4, r1, r4, lsl #1 1490.L171: 1491 cmp r1, r4 1492 bne .L173 1493 cbz r3, .L169 1494 str r0, [r2] 1495.L169: 1496 pop {r4, r5, r6, pc} 1497.L173: 1498 ldrh r5, [r1], #2 1499 cmp r5, r6 1500 itt ne 1501 addne r0, r0, r5 1502 movne r3, #1 1503 b .L171 1504.L180: 1505 .align 2 1506.L179: 1507 .word .LANCHOR58 1508 .word .LANCHOR5 1509 .word .LANCHOR42 1510 .word .LANCHOR59 1511 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1512 .section .text.ftl_set_blk_mode,"ax",%progbits 1513 .align 1 1514 .global ftl_set_blk_mode 1515 .syntax unified 1516 .thumb 1517 .thumb_func 1518 .fpu softvfp 1519 .type ftl_set_blk_mode, %function 1520ftl_set_blk_mode: 1521 @ args = 0, pretend = 0, frame = 0 1522 @ frame_needed = 0, uses_anonymous_args = 0 1523 @ link register save eliminated. 1524 mov r3, r0 1525 cbz r1, .L182 1526 b ftl_set_blk_mode.part.6 1527.L182: 1528 ldr r2, .L183 1529 lsrs r0, r0, #5 1530 and r3, r3, #31 1531 ldr r1, [r2] 1532 movs r2, #1 1533 lsl r3, r2, r3 1534 ldr r2, [r1, r0, lsl #2] 1535 bic r2, r2, r3 1536 str r2, [r1, r0, lsl #2] 1537 bx lr 1538.L184: 1539 .align 2 1540.L183: 1541 .word .LANCHOR1 1542 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1543 .section .text.ftl_get_blk_mode,"ax",%progbits 1544 .align 1 1545 .global ftl_get_blk_mode 1546 .syntax unified 1547 .thumb 1548 .thumb_func 1549 .fpu softvfp 1550 .type ftl_get_blk_mode, %function 1551ftl_get_blk_mode: 1552 @ args = 0, pretend = 0, frame = 0 1553 @ frame_needed = 0, uses_anonymous_args = 0 1554 @ link register save eliminated. 1555 ldr r3, .L186 1556 lsrs r2, r0, #5 1557 and r0, r0, #31 1558 ldr r3, [r3] 1559 ldr r3, [r3, r2, lsl #2] 1560 lsr r0, r3, r0 1561 and r0, r0, #1 1562 bx lr 1563.L187: 1564 .align 2 1565.L186: 1566 .word .LANCHOR1 1567 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1568 .section .text.ftl_sb_update_avl_pages,"ax",%progbits 1569 .align 1 1570 .global ftl_sb_update_avl_pages 1571 .syntax unified 1572 .thumb 1573 .thumb_func 1574 .fpu softvfp 1575 .type ftl_sb_update_avl_pages, %function 1576ftl_sb_update_avl_pages: 1577 @ args = 0, pretend = 0, frame = 0 1578 @ frame_needed = 0, uses_anonymous_args = 0 1579 movs r3, #0 1580 push {r4, r5, r6, lr} 1581 strh r3, [r0, #4] @ movhi 1582 movw r6, #65535 1583 ldr r3, .L195 1584 ldrh r4, [r3] 1585 add r3, r0, r2, lsl #1 1586 adds r3, r3, #14 1587.L189: 1588 cmp r2, r4 1589 bcc .L191 1590 ldr r3, .L195+4 1591 add r5, r0, #16 1592 movw r6, #65535 1593 ldrh r3, [r3] 1594 subs r3, r3, #1 1595 subs r1, r3, r1 1596 movs r3, #0 1597 uxth r1, r1 1598.L192: 1599 uxth r2, r3 1600 cmp r4, r2 1601 bhi .L194 1602 pop {r4, r5, r6, pc} 1603.L191: 1604 ldrh r5, [r3, #2]! 1605 adds r2, r2, #1 1606 uxth r2, r2 1607 cmp r5, r6 1608 ittt ne 1609 ldrhne r5, [r0, #4] 1610 addne r5, r5, #1 1611 strhne r5, [r0, #4] @ movhi 1612 b .L189 1613.L194: 1614 ldrh r2, [r5], #2 1615 adds r3, r3, #1 1616 cmp r2, r6 1617 ittt ne 1618 ldrhne r2, [r0, #4] 1619 addne r2, r2, r1 1620 strhne r2, [r0, #4] @ movhi 1621 b .L192 1622.L196: 1623 .align 2 1624.L195: 1625 .word .LANCHOR3 1626 .word .LANCHOR19 1627 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1628 .section .text.FtlSlcSuperblockCheck,"ax",%progbits 1629 .align 1 1630 .global FtlSlcSuperblockCheck 1631 .syntax unified 1632 .thumb 1633 .thumb_func 1634 .fpu softvfp 1635 .type FtlSlcSuperblockCheck, %function 1636FtlSlcSuperblockCheck: 1637 @ args = 0, pretend = 0, frame = 0 1638 @ frame_needed = 0, uses_anonymous_args = 0 1639 ldrh r3, [r0, #4] 1640 push {r4, r5, lr} 1641 cbz r3, .L197 1642 ldrh r2, [r0] 1643 movw r3, #65535 1644 cmp r2, r3 1645 beq .L197 1646 ldrb r2, [r0, #6] @ zero_extendqisi2 1647 movs r5, #0 1648 adds r2, r2, #8 1649 ldrh r1, [r0, r2, lsl #1] 1650 ldr r2, .L203 1651 ldrh r4, [r2] 1652 mov r2, r3 1653.L200: 1654 cmp r1, r2 1655 beq .L202 1656.L197: 1657 pop {r4, r5, pc} 1658.L202: 1659 ldrb r3, [r0, #6] @ zero_extendqisi2 1660 adds r3, r3, #1 1661 uxtb r3, r3 1662 cmp r3, r4 1663 strb r3, [r0, #6] 1664 itttt eq 1665 ldrheq r3, [r0, #2] 1666 strbeq r5, [r0, #6] 1667 addeq r3, r3, #1 1668 strheq r3, [r0, #2] @ movhi 1669 ldrb r3, [r0, #6] @ zero_extendqisi2 1670 adds r3, r3, #8 1671 ldrh r1, [r0, r3, lsl #1] 1672 b .L200 1673.L204: 1674 .align 2 1675.L203: 1676 .word .LANCHOR3 1677 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1678 .section .text.make_superblock,"ax",%progbits 1679 .align 1 1680 .global make_superblock 1681 .syntax unified 1682 .thumb 1683 .thumb_func 1684 .fpu softvfp 1685 .type make_superblock, %function 1686make_superblock: 1687 @ args = 0, pretend = 0, frame = 0 1688 @ frame_needed = 0, uses_anonymous_args = 0 1689 ldr r3, .L211 1690 ldrh r2, [r0] 1691 push {r4, r5, r6, r7, r8, r10, fp, lr} 1692 mov r4, r0 1693 ldrh r3, [r3] 1694 cmp r2, r3 1695 bcc .L206 1696 movw r2, #2148 1697 ldr r1, .L211+4 1698 ldr r0, .L211+8 1699 bl printf 1700.L206: 1701 ldr r3, .L211+12 1702 add r6, r4, #16 1703 ldr r10, .L211+24 1704 movw r7, #65535 1705 movs r5, #0 1706 ldrh r8, [r3] 1707 strh r5, [r4, #4] @ movhi 1708 strb r5, [r4, #7] 1709.L207: 1710 uxth r3, r5 1711 ldrh r1, [r4] 1712 cmp r8, r3 1713 bhi .L209 1714 ldr r2, .L211+16 1715 movs r0, #0 1716 ldrb r3, [r4, #7] @ zero_extendqisi2 1717 ldrh r2, [r2] 1718 smulbb r3, r3, r2 1719 strh r3, [r4, #4] @ movhi 1720 movs r3, #0 1721 strb r3, [r4, #9] 1722 ldr r3, .L211+20 1723 ldr r3, [r3] 1724 ldrh r2, [r3, r1, lsl #1] 1725 movw r3, #10000 1726 cmp r2, r3 1727 itt hi 1728 movhi r3, #1 1729 strbhi r3, [r4, #9] 1730 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1731.L209: 1732 ldrb r0, [r10, r5] @ zero_extendqisi2 1733 bl V2P_block 1734 strh r7, [r6] @ movhi 1735 mov fp, r0 1736 bl FtlBbmIsBadBlock 1737 cbnz r0, .L208 1738 strh fp, [r6] @ movhi 1739 ldrb r3, [r4, #7] @ zero_extendqisi2 1740 adds r3, r3, #1 1741 strb r3, [r4, #7] 1742.L208: 1743 adds r5, r5, #1 1744 adds r6, r6, #2 1745 b .L207 1746.L212: 1747 .align 2 1748.L211: 1749 .word .LANCHOR5 1750 .word .LANCHOR60 1751 .word .LC1 1752 .word .LANCHOR3 1753 .word .LANCHOR19 1754 .word .LANCHOR47 1755 .word .LANCHOR13 1756 .size make_superblock, .-make_superblock 1757 .section .text.update_multiplier_value,"ax",%progbits 1758 .align 1 1759 .global update_multiplier_value 1760 .syntax unified 1761 .thumb 1762 .thumb_func 1763 .fpu softvfp 1764 .type update_multiplier_value, %function 1765update_multiplier_value: 1766 @ args = 0, pretend = 0, frame = 0 1767 @ frame_needed = 0, uses_anonymous_args = 0 1768 push {r3, r4, r5, r6, r7, r8, r10, lr} 1769 movs r5, #0 1770 ldr r3, .L219 1771 mov r6, r0 1772 mov r4, r5 1773 ldr r10, .L219+12 1774 ldrh r7, [r3] 1775 ldr r3, .L219+4 1776 ldrh r8, [r3] 1777.L214: 1778 uxth r3, r5 1779 cmp r7, r3 1780 bhi .L216 1781 cbz r4, .L218 1782 mov r1, r4 1783 mov r0, #32768 1784 bl __aeabi_idiv 1785.L217: 1786 ldr r3, .L219+8 1787 movs r2, #6 1788 ldr r3, [r3] 1789 mla r6, r2, r6, r3 1790 strh r0, [r6, #4] @ movhi 1791 movs r0, #0 1792 pop {r3, r4, r5, r6, r7, r8, r10, pc} 1793.L216: 1794 mov r1, r6 1795 ldrb r0, [r10, r5] @ zero_extendqisi2 1796 bl V2P_block 1797 bl FtlBbmIsBadBlock 1798 cbnz r0, .L215 1799 add r4, r4, r8 1800 uxth r4, r4 1801.L215: 1802 adds r5, r5, #1 1803 b .L214 1804.L218: 1805 mov r0, r4 1806 b .L217 1807.L220: 1808 .align 2 1809.L219: 1810 .word .LANCHOR3 1811 .word .LANCHOR19 1812 .word .LANCHOR40 1813 .word .LANCHOR13 1814 .size update_multiplier_value, .-update_multiplier_value 1815 .section .text.GetFreeBlockMinEraseCount,"ax",%progbits 1816 .align 1 1817 .global GetFreeBlockMinEraseCount 1818 .syntax unified 1819 .thumb 1820 .thumb_func 1821 .fpu softvfp 1822 .type GetFreeBlockMinEraseCount, %function 1823GetFreeBlockMinEraseCount: 1824 @ args = 0, pretend = 0, frame = 0 1825 @ frame_needed = 0, uses_anonymous_args = 0 1826 @ link register save eliminated. 1827 ldr r3, .L224 1828 ldr r0, [r3] 1829 cbz r0, .L222 1830 ldr r3, .L224+4 1831 ldr r3, [r3] 1832 subs r0, r0, r3 1833 ldr r3, .L224+8 1834 asrs r0, r0, #1 1835 muls r0, r3, r0 1836 ldr r3, .L224+12 1837 ldr r3, [r3] 1838 uxth r0, r0 1839 ldrh r0, [r3, r0, lsl #1] 1840.L222: 1841 bx lr 1842.L225: 1843 .align 2 1844.L224: 1845 .word .LANCHOR46 1846 .word .LANCHOR40 1847 .word -1431655765 1848 .word .LANCHOR47 1849 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1850 .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits 1851 .align 1 1852 .global GetFreeBlockMaxEraseCount 1853 .syntax unified 1854 .thumb 1855 .thumb_func 1856 .fpu softvfp 1857 .type GetFreeBlockMaxEraseCount, %function 1858GetFreeBlockMaxEraseCount: 1859 @ args = 0, pretend = 0, frame = 0 1860 @ frame_needed = 0, uses_anonymous_args = 0 1861 ldr r3, .L234 1862 push {r4, r5, r6, lr} 1863 ldr r3, [r3] 1864 cbz r3, .L232 1865 ldr r2, .L234+4 1866 movs r5, #6 1867 movw r6, #65535 1868 ldrh r2, [r2] 1869 rsb r2, r2, r2, lsl #3 1870 asrs r2, r2, #3 1871 cmp r0, r2 1872 it gt 1873 uxthgt r0, r2 1874 ldr r2, .L234+8 1875 ldr r1, [r2] 1876 ldr r2, .L234+12 1877 subs r3, r3, r1 1878 asrs r3, r3, #1 1879 muls r3, r2, r3 1880 movs r2, #0 1881 uxth r3, r3 1882.L229: 1883 uxth r4, r2 1884 cmp r0, r4 1885 bls .L231 1886 mul r4, r5, r3 1887 adds r2, r2, #1 1888 ldrh r4, [r1, r4] 1889 cmp r4, r6 1890 bne .L233 1891.L231: 1892 ldr r2, .L234+16 1893 ldr r2, [r2] 1894 ldrh r0, [r2, r3, lsl #1] 1895 pop {r4, r5, r6, pc} 1896.L233: 1897 mov r3, r4 1898 b .L229 1899.L232: 1900 mov r0, r3 1901 pop {r4, r5, r6, pc} 1902.L235: 1903 .align 2 1904.L234: 1905 .word .LANCHOR46 1906 .word .LANCHOR48 1907 .word .LANCHOR40 1908 .word -1431655765 1909 .word .LANCHOR47 1910 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1911 .section .text.free_data_superblock,"ax",%progbits 1912 .align 1 1913 .global free_data_superblock 1914 .syntax unified 1915 .thumb 1916 .thumb_func 1917 .fpu softvfp 1918 .type free_data_superblock, %function 1919free_data_superblock: 1920 @ args = 0, pretend = 0, frame = 0 1921 @ frame_needed = 0, uses_anonymous_args = 0 1922 movw r2, #65535 1923 push {r3, lr} 1924 cmp r0, r2 1925 beq .L237 1926 ldr r2, .L238 1927 movs r1, #0 1928 ldr r2, [r2] 1929 strh r1, [r2, r0, lsl #1] @ movhi 1930 bl INSERT_FREE_LIST 1931.L237: 1932 movs r0, #0 1933 pop {r3, pc} 1934.L239: 1935 .align 2 1936.L238: 1937 .word .LANCHOR42 1938 .size free_data_superblock, .-free_data_superblock 1939 .section .text.get_new_active_ppa,"ax",%progbits 1940 .align 1 1941 .global get_new_active_ppa 1942 .syntax unified 1943 .thumb 1944 .thumb_func 1945 .fpu softvfp 1946 .type get_new_active_ppa, %function 1947get_new_active_ppa: 1948 @ args = 0, pretend = 0, frame = 0 1949 @ frame_needed = 0, uses_anonymous_args = 0 1950 ldrh r2, [r0] 1951 push {r3, r4, r5, r6, r7, lr} 1952 movw r3, #65535 1953 mov r4, r0 1954 cmp r2, r3 1955 bne .L241 1956 movw r2, #2781 1957 ldr r1, .L255 1958 ldr r0, .L255+4 1959 bl printf 1960.L241: 1961 ldr r6, .L255+8 1962 ldrh r2, [r4, #2] 1963 ldrh r3, [r6] 1964 cmp r2, r3 1965 bne .L242 1966 movw r2, #2782 1967 ldr r1, .L255 1968 ldr r0, .L255+4 1969 bl printf 1970.L242: 1971 ldrh r3, [r4, #4] 1972 cbnz r3, .L243 1973 movw r2, #2783 1974 ldr r1, .L255 1975 ldr r0, .L255+4 1976 bl printf 1977.L243: 1978 ldrb r2, [r4, #6] @ zero_extendqisi2 1979 movs r3, #0 1980 strb r3, [r4, #10] 1981 movw r5, #65535 1982 adds r2, r2, #8 1983 ldrh r0, [r4, r2, lsl #1] 1984 ldr r2, .L255+12 1985 ldrh r1, [r2] 1986 mov r2, r3 1987.L244: 1988 cmp r0, r5 1989 beq .L246 1990 ldrh r5, [r4, #2] 1991 ldrh r6, [r6] 1992 cmp r5, r6 1993 bcs .L250 1994 ldrh r2, [r4, #4] 1995 orr r5, r5, r0, lsl #10 1996 ldrb r3, [r4, #6] @ zero_extendqisi2 1997 movw r0, #65535 1998 subs r2, r2, #1 1999 uxth r2, r2 2000 strh r2, [r4, #4] @ movhi 2001.L249: 2002 adds r3, r3, #1 2003 uxtb r3, r3 2004 cmp r1, r3 2005 itttt eq 2006 ldrheq r3, [r4, #2] 2007 addeq r3, r3, #1 2008 strheq r3, [r4, #2] @ movhi 2009 moveq r3, #0 2010 add r7, r3, #8 2011 ldrh r7, [r4, r7, lsl #1] 2012 cmp r7, r0 2013 beq .L249 2014 strb r3, [r4, #6] 2015 ldrh r3, [r4, #2] 2016 cmp r3, r6 2017 bne .L240 2018 cbz r2, .L240 2019 movw r2, #2806 2020 ldr r1, .L255 2021 ldr r0, .L255+4 2022 bl printf 2023.L240: 2024 mov r0, r5 2025 pop {r3, r4, r5, r6, r7, pc} 2026.L246: 2027 ldrb r3, [r4, #6] @ zero_extendqisi2 2028 adds r3, r3, #1 2029 uxtb r3, r3 2030 cmp r3, r1 2031 strb r3, [r4, #6] 2032 itttt eq 2033 ldrheq r3, [r4, #2] 2034 strbeq r2, [r4, #6] 2035 addeq r3, r3, #1 2036 strheq r3, [r4, #2] @ movhi 2037 ldrb r3, [r4, #6] @ zero_extendqisi2 2038 adds r3, r3, #8 2039 ldrh r0, [r4, r3, lsl #1] 2040 b .L244 2041.L250: 2042 movw r5, #65535 2043 b .L240 2044.L256: 2045 .align 2 2046.L255: 2047 .word .LANCHOR61 2048 .word .LC1 2049 .word .LANCHOR19 2050 .word .LANCHOR3 2051 .size get_new_active_ppa, .-get_new_active_ppa 2052 .section .text.FtlGcBufInit,"ax",%progbits 2053 .align 1 2054 .global FtlGcBufInit 2055 .syntax unified 2056 .thumb 2057 .thumb_func 2058 .fpu softvfp 2059 .type FtlGcBufInit, %function 2060FtlGcBufInit: 2061 @ args = 0, pretend = 0, frame = 8 2062 @ frame_needed = 0, uses_anonymous_args = 0 2063 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 2064 movs r3, #0 2065 ldr r1, .L262 2066 mov fp, #1 2067 ldr r2, .L262+4 2068 ldr r5, [r1] 2069 ldr r1, .L262+8 2070 str r3, [r2] 2071 ldr r2, .L262+12 2072 mov r0, r5 2073 ldr r1, [r1] 2074 ldrh r2, [r2] 2075 str r1, [sp, #4] 2076 ldr r1, .L262+16 2077 ldrh r1, [r1] 2078 str r1, [sp] 2079 ldr r1, .L262+20 2080 ldr r10, [r1] 2081 ldr r1, .L262+24 2082 ldrh r7, [r1] 2083 ldr r1, .L262+28 2084 ldr r4, [r1] 2085 movs r1, #12 2086 mla r1, r2, r1, r1 2087 adds r4, r4, #8 2088 add r8, r5, r1 2089 mov r1, r3 2090.L258: 2091 adds r0, r0, #12 2092 ldr r6, [sp] 2093 cmp r0, r8 2094 add ip, r3, r7 2095 add r4, r4, #20 2096 add lr, r1, r6 2097 bne .L259 2098 ldr r3, .L262+32 2099 mov lr, #12 2100 mov r8, #0 2101 ldr r0, [r3] 2102 ldr r3, .L262+8 2103 ldr r4, [r3] 2104 ldr r3, .L262+20 2105 ldr ip, [r3] 2106.L260: 2107 cmp r2, r0 2108 bcc .L261 2109 add sp, sp, #8 2110 @ sp needed 2111 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2112.L259: 2113 bic r1, r1, #3 2114 bic r3, r3, #3 2115 mov r6, r1 2116 ldr r1, [sp, #4] 2117 add r3, r3, r10 2118 str fp, [r0, #-4] 2119 str r3, [r0, #-8] 2120 add r6, r6, r1 2121 mov r1, lr 2122 str r6, [r0, #-12] 2123 str r3, [r4, #-16] 2124 mov r3, ip 2125 str r6, [r4, #-20] 2126 b .L258 2127.L261: 2128 ldr r3, [sp] 2129 mul r10, lr, r2 2130 muls r3, r2, r3 2131 add r1, r5, r10 2132 str r8, [r1, #8] 2133 bic r3, r3, #3 2134 add r3, r3, r4 2135 str r3, [r5, r10] 2136 mul r3, r2, r7 2137 adds r2, r2, #1 2138 uxth r2, r2 2139 bic r3, r3, #3 2140 add r3, r3, ip 2141 str r3, [r1, #4] 2142 b .L260 2143.L263: 2144 .align 2 2145.L262: 2146 .word .LANCHOR63 2147 .word .LANCHOR62 2148 .word .LANCHOR64 2149 .word .LANCHOR3 2150 .word .LANCHOR23 2151 .word .LANCHOR65 2152 .word .LANCHOR24 2153 .word .LANCHOR66 2154 .word .LANCHOR67 2155 .size FtlGcBufInit, .-FtlGcBufInit 2156 .section .text.FtlGcBufFree,"ax",%progbits 2157 .align 1 2158 .global FtlGcBufFree 2159 .syntax unified 2160 .thumb 2161 .thumb_func 2162 .fpu softvfp 2163 .type FtlGcBufFree, %function 2164FtlGcBufFree: 2165 @ args = 0, pretend = 0, frame = 0 2166 @ frame_needed = 0, uses_anonymous_args = 0 2167 ldr r3, .L271 2168 mov ip, #12 2169 push {r4, r5, r6, r7, r8, r10, fp, lr} 2170 movs r4, #0 2171 mov fp, #20 2172 mov lr, r4 2173 ldr r7, [r3] 2174 ldr r3, .L271+4 2175 ldr r5, [r3] 2176.L265: 2177 uxth r3, r4 2178 cmp r1, r3 2179 bls .L264 2180 mla r8, fp, r3, r0 2181 movs r2, #0 2182.L266: 2183 uxth r3, r2 2184 cmp r7, r3 2185 bls .L267 2186 mul r3, ip, r3 2187 ldr r6, [r8, #8] 2188 adds r2, r2, #1 2189 add r10, r5, r3 2190 ldr r3, [r5, r3] 2191 cmp r3, r6 2192 bne .L266 2193 str lr, [r10, #8] 2194.L267: 2195 adds r4, r4, #1 2196 b .L265 2197.L264: 2198 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2199.L272: 2200 .align 2 2201.L271: 2202 .word .LANCHOR67 2203 .word .LANCHOR63 2204 .size FtlGcBufFree, .-FtlGcBufFree 2205 .section .text.FtlGcBufAlloc,"ax",%progbits 2206 .align 1 2207 .global FtlGcBufAlloc 2208 .syntax unified 2209 .thumb 2210 .thumb_func 2211 .fpu softvfp 2212 .type FtlGcBufAlloc, %function 2213FtlGcBufAlloc: 2214 @ args = 0, pretend = 0, frame = 0 2215 @ frame_needed = 0, uses_anonymous_args = 0 2216 ldr r3, .L280 2217 movs r2, #0 2218 push {r4, r5, r6, r7, r8, r10, lr} 2219 mov ip, #12 2220 movs r7, #1 2221 mov lr, #20 2222 ldr r4, [r3] 2223 ldr r3, .L280+4 2224 ldr r5, [r3] 2225.L274: 2226 uxth r8, r2 2227 cmp r1, r8 2228 bhi .L278 2229 pop {r4, r5, r6, r7, r8, r10, pc} 2230.L278: 2231 mov r10, #0 2232.L275: 2233 uxth r3, r10 2234 cmp r4, r3 2235 bls .L276 2236 mla r3, ip, r3, r5 2237 add r10, r10, #1 2238 ldr r6, [r3, #8] 2239 cmp r6, #0 2240 bne .L275 2241 mla r8, lr, r8, r0 2242 str r7, [r3, #8] 2243 ldr r6, [r3] 2244 ldr r3, [r3, #4] 2245 str r6, [r8, #8] 2246 str r3, [r8, #12] 2247.L276: 2248 adds r2, r2, #1 2249 b .L274 2250.L281: 2251 .align 2 2252.L280: 2253 .word .LANCHOR67 2254 .word .LANCHOR63 2255 .size FtlGcBufAlloc, .-FtlGcBufAlloc 2256 .section .text.IsBlkInGcList,"ax",%progbits 2257 .align 1 2258 .global IsBlkInGcList 2259 .syntax unified 2260 .thumb 2261 .thumb_func 2262 .fpu softvfp 2263 .type IsBlkInGcList, %function 2264IsBlkInGcList: 2265 @ args = 0, pretend = 0, frame = 0 2266 @ frame_needed = 0, uses_anonymous_args = 0 2267 @ link register save eliminated. 2268 ldr r3, .L287 2269 ldr r2, .L287+4 2270 ldr r3, [r3] 2271 ldrh r2, [r2] 2272 add r2, r3, r2, lsl #1 2273.L283: 2274 cmp r3, r2 2275 bne .L285 2276 movs r0, #0 2277 bx lr 2278.L285: 2279 ldrh r1, [r3], #2 2280 cmp r1, r0 2281 bne .L283 2282 movs r0, #1 2283 bx lr 2284.L288: 2285 .align 2 2286.L287: 2287 .word .LANCHOR68 2288 .word .LANCHOR69 2289 .size IsBlkInGcList, .-IsBlkInGcList 2290 .section .text.FtlGcUpdatePage,"ax",%progbits 2291 .align 1 2292 .global FtlGcUpdatePage 2293 .syntax unified 2294 .thumb 2295 .thumb_func 2296 .fpu softvfp 2297 .type FtlGcUpdatePage, %function 2298FtlGcUpdatePage: 2299 @ args = 0, pretend = 0, frame = 0 2300 @ frame_needed = 0, uses_anonymous_args = 0 2301 push {r3, r4, r5, r6, r7, lr} 2302 mov r5, r0 2303 ldr r4, .L293 2304 ubfx r0, r0, #10, #16 2305 mov r6, r1 2306 mov r7, r2 2307 bl P2V_block_in_plane 2308 ldr r3, .L293+4 2309 ldrh r1, [r4] 2310 ldr r2, [r3] 2311 movs r3, #0 2312.L290: 2313 uxth ip, r3 2314 cmp ip, r1 2315 bcc .L292 2316 bne .L291 2317 strh r0, [r2, ip, lsl #1] @ movhi 2318 ldrh r3, [r4] 2319 adds r3, r3, #1 2320 strh r3, [r4] @ movhi 2321 b .L291 2322.L292: 2323 adds r3, r3, #1 2324 add ip, r2, r3, lsl #1 2325 ldrh ip, [ip, #-2] 2326 cmp ip, r0 2327 bne .L290 2328.L291: 2329 ldr r2, .L293+8 2330 movs r0, #12 2331 ldr r1, .L293+12 2332 ldrh r3, [r2] 2333 ldr r1, [r1] 2334 muls r0, r3, r0 2335 adds r3, r3, #1 2336 adds r4, r1, r0 2337 str r6, [r4, #4] 2338 str r7, [r4, #8] 2339 str r5, [r1, r0] 2340 strh r3, [r2] @ movhi 2341 pop {r3, r4, r5, r6, r7, pc} 2342.L294: 2343 .align 2 2344.L293: 2345 .word .LANCHOR69 2346 .word .LANCHOR68 2347 .word .LANCHOR70 2348 .word .LANCHOR71 2349 .size FtlGcUpdatePage, .-FtlGcUpdatePage 2350 .section .text.FtlGcRefreshBlock,"ax",%progbits 2351 .align 1 2352 .global FtlGcRefreshBlock 2353 .syntax unified 2354 .thumb 2355 .thumb_func 2356 .fpu softvfp 2357 .type FtlGcRefreshBlock, %function 2358FtlGcRefreshBlock: 2359 @ args = 0, pretend = 0, frame = 0 2360 @ frame_needed = 0, uses_anonymous_args = 0 2361 push {r4, r5, lr} 2362 ldr r4, .L298 2363 ldrh r5, [r4] 2364 cmp r5, r0 2365 beq .L296 2366 ldr r3, .L298+4 2367 ldrh r1, [r3] 2368 cmp r0, r1 2369 beq .L296 2370 movw r2, #65535 2371 cmp r5, r2 2372 bne .L297 2373 strh r0, [r4] @ movhi 2374.L296: 2375 movs r0, #0 2376 pop {r4, r5, pc} 2377.L297: 2378 cmp r1, r2 2379 it eq 2380 strheq r0, [r3] @ movhi 2381 b .L296 2382.L299: 2383 .align 2 2384.L298: 2385 .word .LANCHOR72 2386 .word .LANCHOR73 2387 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 2388 .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits 2389 .align 1 2390 .global FtlGcMarkBadPhyBlk 2391 .syntax unified 2392 .thumb 2393 .thumb_func 2394 .fpu softvfp 2395 .type FtlGcMarkBadPhyBlk, %function 2396FtlGcMarkBadPhyBlk: 2397 @ args = 0, pretend = 0, frame = 0 2398 @ frame_needed = 0, uses_anonymous_args = 0 2399 push {r3, r4, r5, lr} 2400 mov r4, r0 2401 bl P2V_block_in_plane 2402 bl FtlGcRefreshBlock 2403 ldr r2, .L304 2404 movs r1, #0 2405 ldr r5, .L304+4 2406 ldrh r3, [r2] 2407.L301: 2408 uxth r0, r1 2409 cmp r3, r0 2410 bhi .L303 2411 cmp r3, #15 2412 itttt ls 2413 addls r1, r3, #1 2414 strhls r1, [r2] @ movhi 2415 ldrls r2, .L304+4 2416 strhls r4, [r2, r3, lsl #1] @ movhi 2417 b .L302 2418.L303: 2419 adds r1, r1, #1 2420 add r0, r5, r1, lsl #1 2421 ldrh r0, [r0, #-2] 2422 cmp r0, r4 2423 bne .L301 2424.L302: 2425 movs r0, #0 2426 pop {r3, r4, r5, pc} 2427.L305: 2428 .align 2 2429.L304: 2430 .word .LANCHOR74 2431 .word .LANCHOR75 2432 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 2433 .section .text.FtlGcReFreshBadBlk,"ax",%progbits 2434 .align 1 2435 .global FtlGcReFreshBadBlk 2436 .syntax unified 2437 .thumb 2438 .thumb_func 2439 .fpu softvfp 2440 .type FtlGcReFreshBadBlk, %function 2441FtlGcReFreshBadBlk: 2442 @ args = 0, pretend = 0, frame = 0 2443 @ frame_needed = 0, uses_anonymous_args = 0 2444 ldr r3, .L312 2445 push {r4, lr} 2446 ldrh r3, [r3] 2447 cbz r3, .L307 2448 ldr r2, .L312+4 2449 ldrh r1, [r2] 2450 movw r2, #65535 2451 cmp r1, r2 2452 bne .L307 2453 ldr r4, .L312+8 2454 ldrh r2, [r4] 2455 cmp r2, r3 2456 itt cs 2457 movcs r3, #0 2458 strhcs r3, [r4] @ movhi 2459 ldr r3, .L312+12 2460 ldrh r2, [r4] 2461 ldrh r0, [r3, r2, lsl #1] 2462 bl P2V_block_in_plane 2463 bl FtlGcRefreshBlock 2464 ldrh r3, [r4] 2465 adds r3, r3, #1 2466 strh r3, [r4] @ movhi 2467.L307: 2468 movs r0, #0 2469 pop {r4, pc} 2470.L313: 2471 .align 2 2472.L312: 2473 .word .LANCHOR74 2474 .word .LANCHOR72 2475 .word .LANCHOR76 2476 .word .LANCHOR75 2477 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 2478 .section .text.ftl_malloc,"ax",%progbits 2479 .align 1 2480 .global ftl_malloc 2481 .syntax unified 2482 .thumb 2483 .thumb_func 2484 .fpu softvfp 2485 .type ftl_malloc, %function 2486ftl_malloc: 2487 @ args = 0, pretend = 0, frame = 0 2488 @ frame_needed = 0, uses_anonymous_args = 0 2489 @ link register save eliminated. 2490 movs r1, #0 2491 b kmalloc 2492 .size ftl_malloc, .-ftl_malloc 2493 .section .text.ftl_free,"ax",%progbits 2494 .align 1 2495 .global ftl_free 2496 .syntax unified 2497 .thumb 2498 .thumb_func 2499 .fpu softvfp 2500 .type ftl_free, %function 2501ftl_free: 2502 @ args = 0, pretend = 0, frame = 0 2503 @ frame_needed = 0, uses_anonymous_args = 0 2504 @ link register save eliminated. 2505 b free 2506 .size ftl_free, .-ftl_free 2507 .section .text.rknand_print_hex,"ax",%progbits 2508 .align 1 2509 .global rknand_print_hex 2510 .syntax unified 2511 .thumb 2512 .thumb_func 2513 .fpu softvfp 2514 .type rknand_print_hex, %function 2515rknand_print_hex: 2516 @ args = 0, pretend = 0, frame = 0 2517 @ frame_needed = 0, uses_anonymous_args = 0 2518 push {r4, r5, r6, r7, r8, r10, fp, lr} 2519 movs r6, #0 2520 mov fp, r0 2521 mov r7, r1 2522 mov r8, r2 2523 mov r10, r3 2524 mov r5, r6 2525 mov r4, r6 2526.L317: 2527 cmp r4, r10 2528 bcc .L323 2529 ldr r0, .L326 2530 pop {r4, r5, r6, r7, r8, r10, fp, lr} 2531 b printf 2532.L323: 2533 cbnz r5, .L318 2534 mov r2, r6 2535 mov r1, fp 2536 ldr r0, .L326+4 2537 bl printf 2538.L318: 2539 cmp r8, #4 2540 bne .L319 2541 ldr r1, [r7, r4, lsl #2] 2542.L325: 2543 ldr r0, .L326+8 2544.L324: 2545 adds r5, r5, #1 2546 bl printf 2547 cmp r5, #15 2548 bls .L322 2549 movs r5, #0 2550 ldr r0, .L326 2551 bl printf 2552.L322: 2553 adds r4, r4, #1 2554 add r6, r6, r8 2555 b .L317 2556.L319: 2557 cmp r8, #2 2558 bne .L321 2559 ldrh r1, [r7, r4, lsl #1] 2560 b .L325 2561.L321: 2562 ldrb r1, [r7, r4] @ zero_extendqisi2 2563 ldr r0, .L326+12 2564 b .L324 2565.L327: 2566 .align 2 2567.L326: 2568 .word .LC5 2569 .word .LC2 2570 .word .LC3 2571 .word .LC4 2572 .size rknand_print_hex, .-rknand_print_hex 2573 .section .text.FlashEraseBlocks,"ax",%progbits 2574 .align 1 2575 .global FlashEraseBlocks 2576 .syntax unified 2577 .thumb 2578 .thumb_func 2579 .fpu softvfp 2580 .type FlashEraseBlocks, %function 2581FlashEraseBlocks: 2582 @ args = 0, pretend = 0, frame = 16 2583 @ frame_needed = 0, uses_anonymous_args = 0 2584 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 2585 mov r4, r0 2586 ldr r6, .L344 2587 add r8, r0, #4 2588 movs r7, #0 2589 ldr fp, .L344+20 2590 ldrh r10, [r6, #12] 2591 str r2, [sp] 2592 lsl r3, r10, #3 2593 str r3, [sp, #4] 2594.L329: 2595 ldr r3, [sp] 2596 cmp r7, r3 2597 beq .L343 2598 add r2, sp, #8 2599 add r1, sp, #12 2600 ldr r0, [r8] 2601 bl l2p_addr_tran.isra.0 2602 ldr r5, [sp, #8] 2603 cbnz r5, .L330 2604 ldr r2, [sp, #12] 2605 ldr r3, [sp, #4] 2606 cmp r3, r2 2607 bls .L330 2608 ldr r6, .L344+4 2609 ldr r7, .L344+8 2610.L331: 2611 ldr r3, [sp] 2612 adds r4, r4, #20 2613 cmp r5, r3 2614 bne .L332 2615.L343: 2616 movs r0, #0 2617 add sp, sp, #16 2618 @ sp needed 2619 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2620.L332: 2621 mov r3, #-1 2622 ldr r2, [sp, #12] 2623 str r3, [r4, #-20] 2624 mov r1, r6 2625 mov r0, r7 2626 adds r5, r5, #1 2627 bl printf 2628 movs r3, #16 2629 movs r2, #4 2630 ldr r1, [r4, #-12] 2631 ldr r0, .L344+12 2632 bl rknand_print_hex 2633 movs r3, #4 2634 ldr r1, [r4, #-8] 2635 mov r2, r3 2636 ldr r0, .L344+16 2637 bl rknand_print_hex 2638 b .L331 2639.L330: 2640 ldr r2, [fp, #4] 2641 uxtb r0, r5 2642 ldr r1, [sp, #12] 2643 blx r2 2644 cbnz r0, .L333 2645 str r0, [r8, #-4] 2646.L334: 2647 ldrh r2, [r6, #14] 2648 cmp r2, #4 2649 bne .L336 2650 ldr r1, [sp, #12] 2651 ldr r2, [fp, #4] 2652 ldrb r0, [sp, #8] @ zero_extendqisi2 2653 add r1, r1, r10 2654 blx r2 2655 cbz r0, .L336 2656 mov r2, #-1 2657 str r2, [r8, #-4] 2658.L336: 2659 adds r7, r7, #1 2660 add r8, r8, #20 2661 b .L329 2662.L333: 2663 mov r2, #-1 2664 str r2, [r8, #-4] 2665 b .L334 2666.L345: 2667 .align 2 2668.L344: 2669 .word .LANCHOR0 2670 .word .LANCHOR77 2671 .word .LC6 2672 .word .LC7 2673 .word .LC8 2674 .word .LANCHOR78 2675 .size FlashEraseBlocks, .-FlashEraseBlocks 2676 .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits 2677 .align 1 2678 .global FtlFreeSysBlkQueueIn 2679 .syntax unified 2680 .thumb 2681 .thumb_func 2682 .fpu softvfp 2683 .type FtlFreeSysBlkQueueIn, %function 2684FtlFreeSysBlkQueueIn: 2685 @ args = 0, pretend = 0, frame = 0 2686 @ frame_needed = 0, uses_anonymous_args = 0 2687 subs r3, r0, #1 2688 movw r2, #65533 2689 uxth r3, r3 2690 push {r4, r5, r6, lr} 2691 mov r5, r0 2692 cmp r3, r2 2693 bhi .L346 2694 ldr r4, .L355 2695 ldrh r3, [r4, #6] 2696 cmp r3, #1024 2697 beq .L346 2698 cbz r1, .L348 2699 bl P2V_block_in_plane 2700 ldr r3, .L355+4 2701 mov r6, r0 2702 movs r2, #1 2703 mov r1, r2 2704 ldr r0, [r3] 2705 lsls r3, r5, #10 2706 str r3, [r0, #4] 2707 bl FlashEraseBlocks 2708 ldr r3, .L355+8 2709 ldr r2, [r3] 2710 ldrh r3, [r2, r6, lsl #1] 2711 adds r3, r3, #1 2712 strh r3, [r2, r6, lsl #1] @ movhi 2713 ldr r2, .L355+12 2714 ldr r3, [r2] 2715 adds r3, r3, #1 2716 str r3, [r2] 2717.L348: 2718 ldrh r3, [r4, #6] 2719 adds r3, r3, #1 2720 strh r3, [r4, #6] @ movhi 2721 ldrh r3, [r4, #4] 2722 adds r2, r3, #4 2723 adds r3, r3, #1 2724 ubfx r3, r3, #0, #10 2725 strh r5, [r4, r2, lsl #1] @ movhi 2726 strh r3, [r4, #4] @ movhi 2727.L346: 2728 pop {r4, r5, r6, pc} 2729.L356: 2730 .align 2 2731.L355: 2732 .word .LANCHOR38 2733 .word .LANCHOR79 2734 .word .LANCHOR47 2735 .word .LANCHOR80 2736 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 2737 .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits 2738 .align 1 2739 .global FtlFreeSysBlkQueueOut 2740 .syntax unified 2741 .thumb 2742 .thumb_func 2743 .fpu softvfp 2744 .type FtlFreeSysBlkQueueOut, %function 2745FtlFreeSysBlkQueueOut: 2746 @ args = 0, pretend = 0, frame = 0 2747 @ frame_needed = 0, uses_anonymous_args = 0 2748 push {r3, r4, r5, lr} 2749 ldr r4, .L362 2750 ldrh r2, [r4, #6] 2751 cbz r2, .L361 2752 ldrh r3, [r4, #2] 2753 subs r2, r2, #1 2754 strh r2, [r4, #6] @ movhi 2755 movs r2, #1 2756 adds r1, r3, #4 2757 adds r3, r3, #1 2758 ubfx r3, r3, #0, #10 2759 ldrh r5, [r4, r1, lsl #1] 2760 strh r3, [r4, #2] @ movhi 2761 mov r1, r2 2762 ldr r3, .L362+4 2763 ldr r0, [r3] 2764 lsls r3, r5, #10 2765 str r3, [r0, #4] 2766 bl FlashEraseBlocks 2767 ldr r2, .L362+8 2768 ldr r3, [r2] 2769 adds r3, r3, #1 2770 str r3, [r2] 2771.L358: 2772 subs r3, r5, #1 2773 movw r2, #65533 2774 uxth r3, r3 2775 cmp r3, r2 2776 bls .L359 2777 ldrh r2, [r4, #6] 2778 mov r1, r5 2779 ldr r0, .L362+12 2780 bl printf 2781.L360: 2782 b .L360 2783.L361: 2784 movw r5, #65535 2785 b .L358 2786.L359: 2787 mov r0, r5 2788 pop {r3, r4, r5, pc} 2789.L363: 2790 .align 2 2791.L362: 2792 .word .LANCHOR38 2793 .word .LANCHOR79 2794 .word .LANCHOR80 2795 .word .LC9 2796 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 2797 .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits 2798 .align 1 2799 .global ftl_map_blk_alloc_new_blk 2800 .syntax unified 2801 .thumb 2802 .thumb_func 2803 .fpu softvfp 2804 .type ftl_map_blk_alloc_new_blk, %function 2805ftl_map_blk_alloc_new_blk: 2806 @ args = 0, pretend = 0, frame = 0 2807 @ frame_needed = 0, uses_anonymous_args = 0 2808 ldrh r1, [r0, #10] 2809 ldr r2, [r0, #12] 2810 push {r3, r4, r5, r6, r7, lr} 2811 mov r4, r0 2812 movs r3, #0 2813.L365: 2814 uxth r5, r3 2815 cmp r5, r1 2816 bcs .L368 2817 mov r7, r2 2818 adds r3, r3, #1 2819 ldrh r6, [r7] 2820 adds r2, r2, #2 2821 cmp r6, #0 2822 bne .L365 2823 bl FtlFreeSysBlkQueueOut 2824 subs r3, r0, #1 2825 movw r2, #65533 2826 uxth r3, r3 2827 mov r1, r0 2828 strh r0, [r7] @ movhi 2829 cmp r3, r2 2830 bls .L366 2831 ldr r3, .L372 2832 ldr r0, .L372+4 2833 ldrh r2, [r3, #6] 2834 bl printf 2835.L367: 2836 b .L367 2837.L366: 2838 ldr r3, [r4, #28] 2839 strh r6, [r4, #2] @ movhi 2840 strh r5, [r4] @ movhi 2841 adds r3, r3, #1 2842 str r3, [r4, #28] 2843 ldrh r3, [r4, #8] 2844 adds r3, r3, #1 2845 strh r3, [r4, #8] @ movhi 2846.L368: 2847 ldrh r3, [r4, #10] 2848 cmp r3, r5 2849 bhi .L370 2850 movw r2, #578 2851 ldr r1, .L372+8 2852 ldr r0, .L372+12 2853 bl printf 2854.L370: 2855 movs r0, #0 2856 pop {r3, r4, r5, r6, r7, pc} 2857.L373: 2858 .align 2 2859.L372: 2860 .word .LANCHOR38 2861 .word .LC10 2862 .word .LANCHOR81 2863 .word .LC1 2864 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 2865 .section .text.ftl_memset,"ax",%progbits 2866 .align 1 2867 .global ftl_memset 2868 .syntax unified 2869 .thumb 2870 .thumb_func 2871 .fpu softvfp 2872 .type ftl_memset, %function 2873ftl_memset: 2874 @ args = 0, pretend = 0, frame = 0 2875 @ frame_needed = 0, uses_anonymous_args = 0 2876 @ link register save eliminated. 2877 b memset 2878 .size ftl_memset, .-ftl_memset 2879 .section .text.FtlMemInit,"ax",%progbits 2880 .align 1 2881 .global FtlMemInit 2882 .syntax unified 2883 .thumb 2884 .thumb_func 2885 .fpu softvfp 2886 .type FtlMemInit, %function 2887FtlMemInit: 2888 @ args = 0, pretend = 0, frame = 0 2889 @ frame_needed = 0, uses_anonymous_args = 0 2890 ldr r3, .L380 2891 push {r4, r5, r6, r7, r8, r10, fp, lr} 2892 movs r4, #0 2893 ldr r2, .L380+4 2894 movs r6, #12 2895 str r4, [r3] 2896 ldr r3, .L380+8 2897 ldr r5, .L380+12 2898 ldr r10, .L380+292 2899 str r4, [r3] 2900 ldr r3, .L380+16 2901 ldrh r0, [r5] 2902 ldr r8, .L380+296 2903 str r4, [r3] 2904 ldr r3, .L380+20 2905 lsls r0, r0, #1 2906 ldr fp, .L380+300 2907 str r4, [r3] 2908 ldr r3, .L380+24 2909 str r4, [r3] 2910 ldr r3, .L380+28 2911 str r4, [r3] 2912 ldr r3, .L380+32 2913 str r4, [r3] 2914 ldr r3, .L380+36 2915 str r4, [r3] 2916 ldr r3, .L380+40 2917 str r4, [r3] 2918 ldr r3, .L380+44 2919 str r4, [r3] 2920 ldr r3, .L380+48 2921 str r4, [r3] 2922 ldr r3, .L380+52 2923 str r4, [r3] 2924 ldr r3, .L380+56 2925 str r4, [r3] 2926 ldr r3, .L380+60 2927 str r4, [r3] 2928 ldr r3, .L380+64 2929 str r4, [r3] 2930 movw r3, #65535 2931 str r3, [r2] 2932 ldr r2, .L380+68 2933 str r4, [r2] 2934 ldr r2, .L380+72 2935 str r4, [r2] 2936 ldr r2, .L380+76 2937 str r4, [r2] 2938 ldr r2, .L380+80 2939 strh r3, [r2] @ movhi 2940 ldr r2, .L380+84 2941 strh r3, [r2] @ movhi 2942 movs r2, #32 2943 ldr r3, .L380+88 2944 strh r2, [r3] @ movhi 2945 movs r2, #128 2946 ldr r3, .L380+92 2947 strh r2, [r3] @ movhi 2948 ldr r3, .L380+96 2949 strh r4, [r3] @ movhi 2950 ldr r3, .L380+100 2951 strh r4, [r3] @ movhi 2952 ldr r3, .L380+104 2953 strh r4, [r3] @ movhi 2954 bl ftl_malloc 2955 ldr r3, .L380+108 2956 str r0, [r3] 2957 ldrh r0, [r5] 2958 movs r5, #20 2959 muls r0, r6, r0 2960 bl ftl_malloc 2961 ldr r3, .L380+112 2962 str r0, [r3] 2963 ldrh r3, [r10] 2964 muls r5, r3, r5 2965 lsls r7, r5, #2 2966 mov r0, r7 2967 bl ftl_malloc 2968 ldr r3, .L380+116 2969 str r0, [r3] 2970 mov r0, r5 2971 bl ftl_malloc 2972 ldr r3, .L380+120 2973 str r0, [r3] 2974 mov r0, r7 2975 bl ftl_malloc 2976 ldr r3, .L380+124 2977 ldr r7, .L380+128 2978 str r0, [r3] 2979 mov r0, r5 2980 bl ftl_malloc 2981 ldr r3, .L380+132 2982 str r0, [r3] 2983 mov r0, r5 2984 bl ftl_malloc 2985 ldr r3, .L380+136 2986 ldrh r5, [r7] 2987 str r0, [r3] 2988 ldrh r3, [r10] 2989 mov r0, r5 2990 lsls r3, r3, #1 2991 adds r3, r3, #1 2992 str r3, [r8] 2993 bl ftl_malloc 2994 ldr r3, .L380+140 2995 str r0, [r3] 2996 mov r0, r5 2997 bl ftl_malloc 2998 ldr r3, .L380+144 2999 str r0, [r3] 3000 mov r0, r5 3001 bl ftl_malloc 3002 ldr r3, .L380+148 3003 str r0, [r3] 3004 ldr r0, [r8] 3005 muls r0, r5, r0 3006 bl ftl_malloc 3007 ldr r3, .L380+152 3008 str r0, [r3] 3009 mov r0, r5 3010 bl ftl_malloc 3011 ldr r3, .L380+156 3012 str r0, [r3] 3013 mov r0, r5 3014 bl ftl_malloc 3015 ldr r3, .L380+160 3016 str r0, [r3] 3017 ldr r0, [r8] 3018 muls r0, r6, r0 3019 bl ftl_malloc 3020 ldr r3, .L380+164 3021 str r0, [r3] 3022 mov r0, r5 3023 bl ftl_malloc 3024 ldr r3, .L380+168 3025 str r0, [r3] 3026 mov r0, r5 3027 bl ftl_malloc 3028 ldr r3, .L380+172 3029 str r0, [r3] 3030 ldr r3, .L380+176 3031 ldrh r0, [r3] 3032 lsls r0, r0, #2 3033 bl ftl_malloc 3034 ldr r3, .L380+180 3035 ldrh r5, [r10] 3036 ldr r10, .L380+304 3037 str r0, [r3] 3038 ldrh r3, [fp] 3039 muls r5, r3, r5 3040 mov r0, r5 3041 bl ftl_malloc 3042 ldr r3, .L380+184 3043 str r0, [r3] 3044 lsls r0, r5, #2 3045 ldr r5, .L380+188 3046 bl ftl_malloc 3047 ldr r3, .L380+192 3048 str r0, [r3] 3049 ldrh r3, [fp] 3050 ldr r0, [r8] 3051 ldr r8, .L380+308 3052 muls r0, r3, r0 3053 bl ftl_malloc 3054 ldr r3, .L380+196 3055 str r0, [r3] 3056 ldrh r0, [r5] 3057 lsls r0, r0, #1 3058 uxth r0, r0 3059 strh r0, [r8] @ movhi 3060 bl ftl_malloc 3061 ldr r3, .L380+200 3062 str r0, [r3] 3063 ldrh r3, [r8] 3064 ldr r0, .L380+204 3065 addw r3, r3, #547 3066 lsrs r3, r3, #9 3067 and r0, r0, r3, lsl #9 3068 strh r3, [r8] @ movhi 3069 bl ftl_malloc 3070 ldr r3, .L380+208 3071 str r0, [r3] 3072 adds r0, r0, #32 3073 ldr r3, .L380+212 3074 str r0, [r3] 3075 ldrh r0, [r5] 3076 lsls r0, r0, #1 3077 bl ftl_malloc 3078 ldr r3, .L380+216 3079 str r0, [r3] 3080 ldr r3, [r10] 3081 lsl r8, r3, #1 3082 mov r0, r8 3083 bl ftl_malloc 3084 ldr r3, .L380+220 3085 str r0, [r3] 3086 mov r0, r8 3087 bl ftl_malloc 3088 ldr r3, .L380+224 3089 ldr r8, .L380+312 3090 str r0, [r3] 3091 ldrh r0, [r5] 3092 lsrs r0, r0, #3 3093 adds r0, r0, #4 3094 bl ftl_malloc 3095 ldr r3, .L380+228 3096 str r0, [r3] 3097 ldrh r0, [r8] 3098 lsls r0, r0, #1 3099 bl ftl_malloc 3100 ldr r3, .L380+232 3101 str r0, [r3] 3102 ldrh r0, [r8] 3103 lsls r0, r0, #1 3104 bl ftl_malloc 3105 ldr r3, .L380+236 3106 str r0, [r3] 3107 ldrh r0, [r8] 3108 ldr r8, .L380+316 3109 lsls r0, r0, #2 3110 bl ftl_malloc 3111 ldr r3, .L380+240 3112 str r0, [r3] 3113 ldrh r0, [r8] 3114 lsls r0, r0, #2 3115 bl ftl_malloc 3116 ldrh r2, [r8] 3117 mov r1, r4 3118 ldr r3, .L380+244 3119 ldr r4, .L380+248 3120 lsls r2, r2, #2 3121 str r0, [r3] 3122 bl ftl_memset 3123 ldr r3, .L380+252 3124 ldrh r0, [r3] 3125 lsls r0, r0, #2 3126 bl ftl_malloc 3127 ldr r3, .L380+256 3128 str r0, [r3] 3129 ldr r0, [r10] 3130 lsls r0, r0, #2 3131 bl ftl_malloc 3132 ldr r3, .L380+260 3133 str r0, [r3] 3134 ldrh r0, [r4] 3135 muls r0, r6, r0 3136 ldr r6, .L380+264 3137 bl ftl_malloc 3138 ldr r3, .L380+268 3139 str r0, [r3] 3140 ldrh r3, [r4] 3141 ldrh r0, [r7] 3142 muls r0, r3, r0 3143 bl ftl_malloc 3144 ldr r3, .L380+272 3145 str r0, [r3] 3146 movs r0, #6 3147 ldrh r3, [r5] 3148 ldr r5, .L380+276 3149 muls r0, r3, r0 3150 bl ftl_malloc 3151 ldr r3, .L380+280 3152 str r0, [r3] 3153 ldr r3, .L380+284 3154 ldrh r0, [r3] 3155 ldrh r3, [r6] 3156 adds r0, r0, #31 3157 asrs r0, r0, #5 3158 strh r0, [r5] @ movhi 3159 muls r0, r3, r0 3160 lsls r0, r0, #2 3161 bl ftl_malloc 3162 ldrh r1, [r5] 3163 movs r2, #1 3164 ldr r3, .L380+288 3165 ldrh r6, [r6] 3166 lsls r1, r1, #2 3167 mov r4, r3 3168 str r0, [r4, #28]! 3169 mov r0, r1 3170 b .L381 3171.L382: 3172 .align 2 3173.L380: 3174 .word .LANCHOR82 3175 .word .LANCHOR96 3176 .word .LANCHOR83 3177 .word .LANCHOR21 3178 .word .LANCHOR84 3179 .word .LANCHOR85 3180 .word .LANCHOR86 3181 .word .LANCHOR87 3182 .word .LANCHOR88 3183 .word .LANCHOR89 3184 .word .LANCHOR90 3185 .word .LANCHOR91 3186 .word .LANCHOR80 3187 .word .LANCHOR92 3188 .word .LANCHOR93 3189 .word .LANCHOR94 3190 .word .LANCHOR95 3191 .word .LANCHOR97 3192 .word .LANCHOR98 3193 .word .LANCHOR99 3194 .word .LANCHOR72 3195 .word .LANCHOR73 3196 .word .LANCHOR100 3197 .word .LANCHOR101 3198 .word .LANCHOR102 3199 .word .LANCHOR74 3200 .word .LANCHOR76 3201 .word .LANCHOR68 3202 .word .LANCHOR71 3203 .word .LANCHOR103 3204 .word .LANCHOR104 3205 .word .LANCHOR105 3206 .word .LANCHOR23 3207 .word .LANCHOR79 3208 .word .LANCHOR66 3209 .word .LANCHOR106 3210 .word .LANCHOR107 3211 .word .LANCHOR108 3212 .word .LANCHOR64 3213 .word .LANCHOR109 3214 .word .LANCHOR110 3215 .word .LANCHOR63 3216 .word .LANCHOR111 3217 .word .LANCHOR112 3218 .word .LANCHOR12 3219 .word .LANCHOR113 3220 .word .LANCHOR114 3221 .word .LANCHOR6 3222 .word .LANCHOR115 3223 .word .LANCHOR65 3224 .word .LANCHOR117 3225 .word 33553920 3226 .word .LANCHOR118 3227 .word .LANCHOR47 3228 .word .LANCHOR42 3229 .word .LANCHOR119 3230 .word .LANCHOR120 3231 .word .LANCHOR1 3232 .word .LANCHOR36 3233 .word .LANCHOR121 3234 .word .LANCHOR122 3235 .word .LANCHOR123 3236 .word .LANCHOR33 3237 .word .LANCHOR32 3238 .word .LANCHOR124 3239 .word .LANCHOR125 3240 .word .LANCHOR10 3241 .word .LANCHOR55 3242 .word .LANCHOR126 3243 .word .LANCHOR127 3244 .word .LANCHOR40 3245 .word .LANCHOR17 3246 .word .LANCHOR37 3247 .word .LANCHOR3 3248 .word .LANCHOR67 3249 .word .LANCHOR24 3250 .word .LANCHOR30 3251 .word .LANCHOR116 3252 .word .LANCHOR27 3253 .word .LANCHOR28 3254.L381: 3255.L376: 3256 cmp r2, r6 3257 bcc .L377 3258 add r3, r3, r2, lsl #2 3259 ldr r2, .L383 3260 movs r1, #0 3261 adds r3, r3, #24 3262.L378: 3263 cmp r3, r2 3264 bne .L379 3265 movs r0, #0 3266 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3267.L377: 3268 ldr r5, [r3, #28] 3269 adds r2, r2, #1 3270 add r5, r5, r0 3271 add r0, r0, r1 3272 str r5, [r4, #4]! 3273 b .L376 3274.L379: 3275 str r1, [r3, #4]! 3276 b .L378 3277.L384: 3278 .align 2 3279.L383: 3280 .word .LANCHOR37+56 3281 .size FtlMemInit, .-FtlMemInit 3282 .section .text.FtlBbt2Bitmap,"ax",%progbits 3283 .align 1 3284 .global FtlBbt2Bitmap 3285 .syntax unified 3286 .thumb 3287 .thumb_func 3288 .fpu softvfp 3289 .type FtlBbt2Bitmap, %function 3290FtlBbt2Bitmap: 3291 @ args = 0, pretend = 0, frame = 0 3292 @ frame_needed = 0, uses_anonymous_args = 0 3293 ldr r3, .L391 3294 push {r4, r5, r6, r7, r8, lr} 3295 mov r5, r0 3296 ldr r7, .L391+4 3297 mov r6, r1 3298 subs r4, r5, #2 3299 addw r5, r5, #1022 3300 ldrh r2, [r3] 3301 movs r1, #0 3302 ldr r8, .L391+12 3303 mov r0, r6 3304 lsls r2, r2, #2 3305 bl ftl_memset 3306.L388: 3307 ldrh r3, [r4, #2] 3308 movw r2, #65535 3309 cmp r3, r2 3310 beq .L385 3311 ldrh r2, [r7] 3312 cmp r2, r3 3313 bhi .L387 3314 movs r2, #74 3315 mov r1, r8 3316 ldr r0, .L391+8 3317 bl printf 3318.L387: 3319 ldrh r3, [r4, #2]! 3320 movs r2, #1 3321 cmp r5, r4 3322 lsr r1, r3, #5 3323 and r3, r3, #31 3324 lsl r3, r2, r3 3325 ldr r2, [r6, r1, lsl #2] 3326 orr r2, r2, r3 3327 str r2, [r6, r1, lsl #2] 3328 bne .L388 3329.L385: 3330 pop {r4, r5, r6, r7, r8, pc} 3331.L392: 3332 .align 2 3333.L391: 3334 .word .LANCHOR127 3335 .word .LANCHOR17 3336 .word .LC1 3337 .word .LANCHOR128 3338 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 3339 .section .text.FtlBbtMemInit,"ax",%progbits 3340 .align 1 3341 .global FtlBbtMemInit 3342 .syntax unified 3343 .thumb 3344 .thumb_func 3345 .fpu softvfp 3346 .type FtlBbtMemInit, %function 3347FtlBbtMemInit: 3348 @ args = 0, pretend = 0, frame = 0 3349 @ frame_needed = 0, uses_anonymous_args = 0 3350 @ link register save eliminated. 3351 ldr r0, .L394 3352 movw r3, #65535 3353 movs r2, #16 3354 movs r1, #255 3355 strh r3, [r0] @ movhi 3356 movs r3, #0 3357 strh r3, [r0, #6] @ movhi 3358 adds r0, r0, #12 3359 b ftl_memset 3360.L395: 3361 .align 2 3362.L394: 3363 .word .LANCHOR37 3364 .size FtlBbtMemInit, .-FtlBbtMemInit 3365 .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits 3366 .align 1 3367 .global FtlFreeSysBlkQueueInit 3368 .syntax unified 3369 .thumb 3370 .thumb_func 3371 .fpu softvfp 3372 .type FtlFreeSysBlkQueueInit, %function 3373FtlFreeSysBlkQueueInit: 3374 @ args = 0, pretend = 0, frame = 0 3375 @ frame_needed = 0, uses_anonymous_args = 0 3376 ldr r3, .L397 3377 mov r2, #2048 3378 push {r4, lr} 3379 movs r4, #0 3380 mov r1, r4 3381 strh r4, [r3, #2] @ movhi 3382 strh r4, [r3, #4] @ movhi 3383 strh r4, [r3, #6] @ movhi 3384 strh r0, [r3], #8 @ movhi 3385 mov r0, r3 3386 bl ftl_memset 3387 mov r0, r4 3388 pop {r4, pc} 3389.L398: 3390 .align 2 3391.L397: 3392 .word .LANCHOR38 3393 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 3394 .section .text.ftl_free_no_use_map_blk,"ax",%progbits 3395 .align 1 3396 .global ftl_free_no_use_map_blk 3397 .syntax unified 3398 .thumb 3399 .thumb_func 3400 .fpu softvfp 3401 .type ftl_free_no_use_map_blk, %function 3402ftl_free_no_use_map_blk: 3403 @ args = 0, pretend = 0, frame = 8 3404 @ frame_needed = 0, uses_anonymous_args = 0 3405 ldrh r2, [r0, #10] 3406 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 3407 mov r4, r0 3408 ldr r5, [r0, #20] 3409 movs r1, #0 3410 ldr r7, [r0, #12] 3411 lsls r2, r2, #1 3412 ldr r6, [r0, #24] 3413 mov r0, r5 3414 bl ftl_memset 3415 movs r3, #0 3416.L400: 3417 ldrh r1, [r4, #6] 3418 uxth r2, r3 3419 cmp r1, r2 3420 bhi .L404 3421 ldr r3, .L419 3422 movs r6, #0 3423 mov r10, r6 3424 ldrh r2, [r3] 3425 ldrh r3, [r4] 3426 strh r2, [r5, r3, lsl #1] @ movhi 3427 mov r2, r6 3428 ldrh fp, [r5] 3429.L405: 3430 ldrh r3, [r4, #10] 3431 uxth ip, r6 3432 cmp r3, ip 3433 bhi .L409 3434 mov r0, r10 3435 add sp, sp, #8 3436 @ sp needed 3437 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3438.L404: 3439 uxth r2, r3 3440 ldr r1, [r6, r2, lsl #2] 3441 movs r2, #0 3442 ubfx r1, r1, #10, #16 3443.L401: 3444 ldrh ip, [r4, #10] 3445 uxth r0, r2 3446 cmp ip, r0 3447 bhi .L403 3448 adds r3, r3, #1 3449 b .L400 3450.L403: 3451 uxth r0, r2 3452 ldrh ip, [r7, r0, lsl #1] 3453 cmp ip, r1 3454 bne .L402 3455 cbz r1, .L402 3456 ldrh ip, [r5, r0, lsl #1] 3457 add ip, ip, #1 3458 strh ip, [r5, r0, lsl #1] @ movhi 3459.L402: 3460 adds r2, r2, #1 3461 b .L401 3462.L409: 3463 uxth r1, r6 3464 ldrh r3, [r5, r1, lsl #1] 3465 lsl r8, r1, #1 3466 cmp fp, r3 3467 bls .L406 3468 ldrh r0, [r7, r1, lsl #1] 3469 add r8, r8, r7 3470 cbnz r0, .L407 3471.L408: 3472 adds r6, r6, #1 3473 b .L405 3474.L406: 3475 cmp r3, #0 3476 bne .L408 3477 ldrh r0, [r7, r1, lsl #1] 3478 add r8, r8, r7 3479 cmp r0, #0 3480 beq .L408 3481.L410: 3482 movs r1, #1 3483 str r2, [sp, #4] 3484 bl FtlFreeSysBlkQueueIn 3485 ldr r2, [sp, #4] 3486 strh r2, [r8] @ movhi 3487 ldrh r3, [r4, #8] 3488 subs r3, r3, #1 3489 strh r3, [r4, #8] @ movhi 3490 b .L408 3491.L407: 3492 mov r10, ip 3493 mov fp, r3 3494 cmp r3, #0 3495 beq .L410 3496 b .L408 3497.L420: 3498 .align 2 3499.L419: 3500 .word .LANCHOR20 3501 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 3502 .section .text.FtlL2PDataInit,"ax",%progbits 3503 .align 1 3504 .global FtlL2PDataInit 3505 .syntax unified 3506 .thumb 3507 .thumb_func 3508 .fpu softvfp 3509 .type FtlL2PDataInit, %function 3510FtlL2PDataInit: 3511 @ args = 0, pretend = 0, frame = 0 3512 @ frame_needed = 0, uses_anonymous_args = 0 3513 push {r4, r5, r6, r7, r8, lr} 3514 movs r1, #0 3515 ldr r5, .L424 3516 ldr r4, .L424+4 3517 ldr r2, [r5] 3518 ldr r7, .L424+8 3519 ldr r6, .L424+12 3520 ldr r0, [r4] 3521 lsls r2, r2, #1 3522 ldr r8, .L424+44 3523 bl ftl_memset 3524 ldrh r3, [r7] 3525 movs r1, #255 3526 ldrh r2, [r6] 3527 ldr r0, [r8] 3528 muls r2, r3, r2 3529 bl ftl_memset 3530 ldr r3, .L424+16 3531 movw r0, #65535 3532 ldrh r1, [r6] 3533 ldr ip, [r8] 3534 ldr r2, [r3] 3535 movs r3, #12 3536 ldrh r7, [r7] 3537 mla r3, r1, r3, r3 3538 adds r1, r2, r3 3539 movs r3, #0 3540 mov lr, r3 3541.L422: 3542 adds r2, r2, #12 3543 adds r6, r3, r7 3544 cmp r2, r1 3545 bne .L423 3546 ldr r3, .L424+20 3547 ldr r2, [r5] 3548 strh r0, [r3, #2] @ movhi 3549 strh r2, [r3, #10] @ movhi 3550 movw r2, #61634 3551 strh r2, [r3, #4] @ movhi 3552 ldr r2, .L424+24 3553 strh r0, [r3] @ movhi 3554 ldrh r2, [r2] 3555 strh r2, [r3, #8] @ movhi 3556 ldr r2, .L424+28 3557 ldrh r2, [r2] 3558 strh r2, [r3, #6] @ movhi 3559 ldr r2, .L424+32 3560 ldr r2, [r2] 3561 str r2, [r3, #12] 3562 ldr r2, .L424+36 3563 ldr r2, [r2] 3564 str r2, [r3, #16] 3565 ldr r2, [r4] 3566 str r2, [r3, #20] 3567 ldr r2, .L424+40 3568 ldr r2, [r2] 3569 str r2, [r3, #24] 3570 pop {r4, r5, r6, r7, r8, pc} 3571.L423: 3572 bic r3, r3, #3 3573 str lr, [r2, #-8] 3574 add r3, r3, ip 3575 strh r0, [r2, #-12] @ movhi 3576 str r3, [r2, #-4] 3577 mov r3, r6 3578 b .L422 3579.L425: 3580 .align 2 3581.L424: 3582 .word .LANCHOR30 3583 .word .LANCHOR120 3584 .word .LANCHOR23 3585 .word .LANCHOR33 3586 .word .LANCHOR55 3587 .word .LANCHOR129 3588 .word .LANCHOR130 3589 .word .LANCHOR32 3590 .word .LANCHOR119 3591 .word .LANCHOR125 3592 .word .LANCHOR124 3593 .word .LANCHOR126 3594 .size FtlL2PDataInit, .-FtlL2PDataInit 3595 .section .text.FtlVariablesInit,"ax",%progbits 3596 .align 1 3597 .global FtlVariablesInit 3598 .syntax unified 3599 .thumb 3600 .thumb_func 3601 .fpu softvfp 3602 .type FtlVariablesInit, %function 3603FtlVariablesInit: 3604 @ args = 0, pretend = 0, frame = 0 3605 @ frame_needed = 0, uses_anonymous_args = 0 3606 push {r3, r4, r5, lr} 3607 movw r2, #65535 3608 ldr r3, .L427 3609 movs r4, #0 3610 mov r1, r4 3611 ldr r5, .L427+4 3612 strh r2, [r3] @ movhi 3613 mov r2, #-1 3614 ldr r3, .L427+8 3615 str r4, [r3] 3616 ldr r3, .L427+12 3617 str r4, [r3] 3618 ldr r3, .L427+16 3619 str r2, [r3] 3620 ldr r3, .L427+20 3621 strh r4, [r3] @ movhi 3622 ldr r3, .L427+24 3623 ldrh r2, [r3] 3624 ldr r3, .L427+28 3625 lsls r2, r2, #1 3626 ldr r0, [r3] 3627 bl ftl_memset 3628 ldrh r2, [r5] 3629 mov r1, r4 3630 ldr r3, .L427+32 3631 lsls r2, r2, #1 3632 ldr r0, [r3] 3633 bl ftl_memset 3634 ldrh r2, [r5] 3635 mov r1, r4 3636 ldr r3, .L427+36 3637 lsls r2, r2, #1 3638 ldr r0, [r3] 3639 bl ftl_memset 3640 mov r1, r4 3641 movs r2, #48 3642 ldr r0, .L427+40 3643 bl ftl_memset 3644 mov r2, #512 3645 mov r1, r4 3646 ldr r0, .L427+44 3647 bl ftl_memset 3648 bl FtlGcBufInit 3649 bl FtlL2PDataInit 3650 mov r0, r4 3651 pop {r3, r4, r5, pc} 3652.L428: 3653 .align 2 3654.L427: 3655 .word .LANCHOR131 3656 .word .LANCHOR6 3657 .word .LANCHOR132 3658 .word .LANCHOR133 3659 .word .LANCHOR134 3660 .word .LANCHOR35 3661 .word .LANCHOR27 3662 .word .LANCHOR36 3663 .word .LANCHOR47 3664 .word .LANCHOR117 3665 .word .LANCHOR39 3666 .word .LANCHOR135 3667 .size FtlVariablesInit, .-FtlVariablesInit 3668 .section .text.SupperBlkListInit,"ax",%progbits 3669 .align 1 3670 .global SupperBlkListInit 3671 .syntax unified 3672 .thumb 3673 .thumb_func 3674 .fpu softvfp 3675 .type SupperBlkListInit, %function 3676SupperBlkListInit: 3677 @ args = 0, pretend = 0, frame = 16 3678 @ frame_needed = 0, uses_anonymous_args = 0 3679 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3680 movs r2, #6 3681 ldr r3, .L440 3682 movs r1, #0 3683 movs r4, #0 3684 ldr r6, .L440+4 3685 mov r8, r4 3686 ldrh r3, [r3] 3687 mov r5, r4 3688 ldr r0, [r6] 3689 mov r10, r6 3690 muls r2, r3, r2 3691 bl ftl_memset 3692 ldr r3, .L440+8 3693 ldr r2, .L440+12 3694 str r4, [r3] 3695 ldr r3, .L440+16 3696 strh r4, [r2] @ movhi 3697 str r2, [sp, #4] 3698 str r4, [r3] 3699 ldr r3, .L440+20 3700 str r4, [r3] 3701 ldr r3, .L440+24 3702 mov fp, r3 3703 strh r4, [r3] @ movhi 3704.L430: 3705 ldr r3, .L440+28 3706 uxth r7, r4 3707 ldrh r3, [r3] 3708 cmp r7, r3 3709 bcs .L437 3710 ldr r3, .L440+32 3711 ldrh r2, [r3] 3712 ldr r3, .L440+36 3713 ldrh r3, [r3] 3714 str r3, [sp] 3715 movs r3, #0 3716 mov r6, r3 3717 b .L438 3718.L432: 3719 str r2, [sp, #12] 3720 mov r1, r7 3721 ldr r2, .L440+40 3722 str r3, [sp, #8] 3723 ldrb r0, [r2, r3] @ zero_extendqisi2 3724 bl V2P_block 3725 bl FtlBbmIsBadBlock 3726 ldr r3, [sp, #8] 3727 ldr r2, [sp, #12] 3728 cbnz r0, .L431 3729 ldr r1, [sp] 3730 add r6, r6, r1 3731 uxth r6, r6 3732.L431: 3733 adds r3, r3, #1 3734.L438: 3735 uxth r1, r3 3736 cmp r2, r1 3737 bhi .L432 3738 uxth r3, r4 3739 cbz r6, .L433 3740 mov r1, r6 3741 str r3, [sp] 3742 mov r0, #32768 3743 bl __aeabi_idiv 3744 ldr r3, [sp] 3745 uxth r6, r0 3746.L434: 3747 ldr r1, [r10] 3748 movs r2, #6 3749 mla r2, r2, r3, r1 3750 strh r6, [r2, #4] @ movhi 3751 ldr r2, .L440+44 3752 ldrh r2, [r2] 3753 cmp r2, r7 3754 beq .L435 3755 ldr r2, .L440+48 3756 ldrh r2, [r2] 3757 cmp r2, r7 3758 beq .L435 3759 ldr r2, .L440+52 3760 ldrh r2, [r2] 3761 cmp r2, r7 3762 beq .L435 3763 ldr r2, .L440+56 3764 ldr r2, [r2] 3765 ldrh r3, [r2, r3, lsl #1] 3766 cbnz r3, .L436 3767 add r8, r8, #1 3768 mov r0, r7 3769 uxth r8, r8 3770 bl INSERT_FREE_LIST 3771.L435: 3772 adds r4, r4, #1 3773 b .L430 3774.L433: 3775 ldr r2, .L440+56 3776 movw r1, #65535 3777 ldr r2, [r2] 3778 strh r1, [r2, r3, lsl #1] @ movhi 3779 b .L434 3780.L436: 3781 adds r5, r5, #1 3782 mov r0, r7 3783 uxth r5, r5 3784 bl INSERT_DATA_LIST 3785 b .L435 3786.L437: 3787 ldr r2, [sp, #4] 3788 strh r8, [fp] @ movhi 3789 strh r5, [r2] @ movhi 3790 add r5, r5, r8 3791 cmp r5, r3 3792 ble .L439 3793 movw r2, #2210 3794 ldr r1, .L440+60 3795 ldr r0, .L440+64 3796 bl printf 3797.L439: 3798 movs r0, #0 3799 add sp, sp, #16 3800 @ sp needed 3801 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3802.L441: 3803 .align 2 3804.L440: 3805 .word .LANCHOR6 3806 .word .LANCHOR40 3807 .word .LANCHOR46 3808 .word .LANCHOR44 3809 .word .LANCHOR41 3810 .word .LANCHOR43 3811 .word .LANCHOR48 3812 .word .LANCHOR5 3813 .word .LANCHOR3 3814 .word .LANCHOR19 3815 .word .LANCHOR13 3816 .word .LANCHOR51 3817 .word .LANCHOR52 3818 .word .LANCHOR53 3819 .word .LANCHOR42 3820 .word .LANCHOR136 3821 .word .LC1 3822 .size SupperBlkListInit, .-SupperBlkListInit 3823 .section .text.FtlGcPageVarInit,"ax",%progbits 3824 .align 1 3825 .global FtlGcPageVarInit 3826 .syntax unified 3827 .thumb 3828 .thumb_func 3829 .fpu softvfp 3830 .type FtlGcPageVarInit, %function 3831FtlGcPageVarInit: 3832 @ args = 0, pretend = 0, frame = 0 3833 @ frame_needed = 0, uses_anonymous_args = 0 3834 ldr r2, .L443 3835 movs r3, #0 3836 push {r4, lr} 3837 movs r1, #255 3838 ldr r4, .L443+4 3839 strh r3, [r2] @ movhi 3840 ldr r2, .L443+8 3841 strh r3, [r2] @ movhi 3842 ldrh r2, [r4] 3843 ldr r3, .L443+12 3844 lsls r2, r2, #1 3845 ldr r0, [r3] 3846 bl ftl_memset 3847 ldrh r3, [r4] 3848 movs r2, #12 3849 movs r1, #255 3850 muls r2, r3, r2 3851 ldr r3, .L443+16 3852 ldr r0, [r3] 3853 bl ftl_memset 3854 pop {r4, lr} 3855 b FtlGcBufInit 3856.L444: 3857 .align 2 3858.L443: 3859 .word .LANCHOR69 3860 .word .LANCHOR21 3861 .word .LANCHOR70 3862 .word .LANCHOR68 3863 .word .LANCHOR71 3864 .size FtlGcPageVarInit, .-FtlGcPageVarInit 3865 .section .text.FlashGetBadBlockList,"ax",%progbits 3866 .align 1 3867 .global FlashGetBadBlockList 3868 .syntax unified 3869 .thumb 3870 .thumb_func 3871 .fpu softvfp 3872 .type FlashGetBadBlockList, %function 3873FlashGetBadBlockList: 3874 @ args = 0, pretend = 0, frame = 0 3875 @ frame_needed = 0, uses_anonymous_args = 0 3876 push {r3, r4, r5, lr} 3877 mov r2, #256 3878 mov r5, r1 3879 movs r1, #255 3880 mov r4, r0 3881 bl ftl_memset 3882 ldr r3, .L452 3883 mov r1, r5 3884 mov r0, r4 3885 ldr r3, [r3] 3886 blx r3 3887 uxth r0, r0 3888 cmp r0, #50 3889 bls .L446 3890 mov r2, #256 3891 movs r1, #255 3892 mov r0, r4 3893 bl ftl_memset 3894 movs r0, #0 3895.L446: 3896 ldr r3, .L452+4 3897 ldrh r3, [r3, #14] 3898 cmp r3, #4 3899 bne .L451 3900 add r1, r4, r0, lsl #1 3901 mov r3, r4 3902.L448: 3903 cmp r3, r1 3904 bne .L449 3905.L451: 3906 pop {r3, r4, r5, pc} 3907.L449: 3908 ldrh r2, [r3] 3909 lsrs r2, r2, #1 3910 strh r2, [r3], #2 @ movhi 3911 b .L448 3912.L453: 3913 .align 2 3914.L452: 3915 .word .LANCHOR78 3916 .word .LANCHOR0 3917 .size FlashGetBadBlockList, .-FlashGetBadBlockList 3918 .section .text.ftl_memcpy,"ax",%progbits 3919 .align 1 3920 .global ftl_memcpy 3921 .syntax unified 3922 .thumb 3923 .thumb_func 3924 .fpu softvfp 3925 .type ftl_memcpy, %function 3926ftl_memcpy: 3927 @ args = 0, pretend = 0, frame = 0 3928 @ frame_needed = 0, uses_anonymous_args = 0 3929 @ link register save eliminated. 3930 b memcpy 3931 .size ftl_memcpy, .-ftl_memcpy 3932 .section .text.FlashReadPages,"ax",%progbits 3933 .align 1 3934 .global FlashReadPages 3935 .syntax unified 3936 .thumb 3937 .thumb_func 3938 .fpu softvfp 3939 .type FlashReadPages, %function 3940FlashReadPages: 3941 @ args = 0, pretend = 0, frame = 16 3942 @ frame_needed = 0, uses_anonymous_args = 0 3943 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3944 mov fp, r1 3945 ldr r3, .L495 3946 mov r4, r0 3947 mov r10, #0 3948 ldrh r2, [r3, #12] 3949 str r3, [sp, #4] 3950 str r2, [sp] 3951.L456: 3952 cmp r10, fp 3953 bne .L470 3954 movs r0, #0 3955 add sp, sp, #16 3956 @ sp needed 3957 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3958.L470: 3959 ldr r3, [r4, #8] 3960 cbz r3, .L457 3961 ldr r3, [r4, #12] 3962 cbnz r3, .L458 3963.L457: 3964 movs r2, #90 3965 ldr r1, .L495+4 3966 ldr r0, .L495+8 3967 bl printf 3968.L458: 3969 add r2, sp, #8 3970 add r1, sp, #12 3971 ldr r0, [r4, #4] 3972 bl l2p_addr_tran.isra.0 3973 ldr r0, [sp, #8] 3974 cmp r0, #3 3975 bls .L459 3976 mov r3, #-1 3977 str r3, [r4] 3978.L460: 3979 add r10, r10, #1 3980 adds r4, r4, #20 3981 b .L456 3982.L459: 3983 ldr r5, [r4, #8] 3984 uxtb r0, r0 3985 ldr r8, .L495+32 3986 ldr r7, .L495+12 3987 tst r5, #63 3988 ldr r3, [r4, #12] 3989 it ne 3990 ldrne r5, [r8] 3991 ldr r1, [sp, #12] 3992 ldr r6, [r7, #12] 3993 mov r2, r5 3994 blx r6 3995 ldr r3, [sp, #4] 3996 str r0, [r4] 3997 ldrh r3, [r3, #14] 3998 cmp r3, #4 3999 bne .L463 4000 ldr r0, [sp] 4001 add r2, r5, #2048 4002 ldr r3, [r4, #12] 4003 ldr r1, [sp, #12] 4004 ldr r7, [r7, #12] 4005 adds r3, r3, #8 4006 add r1, r1, r0 4007 ldrb r0, [sp, #8] @ zero_extendqisi2 4008 blx r7 4009 adds r1, r0, #1 4010 beq .L464 4011 ldr r3, [r4, #12] 4012 ldr r2, [r3, #12] 4013 adds r2, r2, #1 4014 bne .L465 4015 ldr r2, [r3, #8] 4016 adds r2, r2, #1 4017 bne .L465 4018 ldr r3, [r3] 4019 adds r3, r3, #1 4020 beq .L465 4021.L464: 4022 mov r3, #-1 4023 str r3, [r4] 4024.L465: 4025 ldr r3, [r4] 4026 adds r3, r3, #1 4027 beq .L466 4028 cmp r0, #256 4029 it eq 4030 streq r0, [r4] 4031.L466: 4032 ldr r3, [r4] 4033 adds r2, r3, #1 4034 beq .L467 4035 cmp r3, #256 4036 bne .L463 4037.L467: 4038 ldr r1, [r4, #4] 4039 ldr r2, [sp, #12] 4040 ldr r0, .L495+16 4041 bl printf 4042 ldr r1, [r4, #8] 4043 cbz r1, .L469 4044 movs r3, #4 4045 ldr r0, .L495+20 4046 mov r2, r3 4047 bl rknand_print_hex 4048.L469: 4049 ldr r1, [r4, #12] 4050 cbz r1, .L463 4051 movs r3, #4 4052 ldr r0, .L495+24 4053 mov r2, r3 4054 bl rknand_print_hex 4055.L463: 4056 ldr r3, [r8] 4057 cmp r5, r3 4058 bne .L460 4059 ldr r0, [r4, #8] 4060 cmp r5, r0 4061 beq .L460 4062 ldr r3, .L495+28 4063 mov r1, r5 4064 ldrh r2, [r3] 4065 lsls r2, r2, #9 4066 bl ftl_memcpy 4067 b .L460 4068.L496: 4069 .align 2 4070.L495: 4071 .word .LANCHOR0 4072 .word .LANCHOR137 4073 .word .LC1 4074 .word .LANCHOR78 4075 .word .LC11 4076 .word .LC12 4077 .word .LC13 4078 .word .LANCHOR12 4079 .word .LANCHOR111 4080 .size FlashReadPages, .-FlashReadPages 4081 .section .text.FtlLoadFactoryBbt,"ax",%progbits 4082 .align 1 4083 .global FtlLoadFactoryBbt 4084 .syntax unified 4085 .thumb 4086 .thumb_func 4087 .fpu softvfp 4088 .type FtlLoadFactoryBbt, %function 4089FtlLoadFactoryBbt: 4090 @ args = 0, pretend = 0, frame = 0 4091 @ frame_needed = 0, uses_anonymous_args = 0 4092 ldr r3, .L507 4093 push {r4, r5, r6, r7, r8, r10, fp, lr} 4094 movs r6, #0 4095 ldr r5, .L507+4 4096 ldr r3, [r3] 4097 ldr r7, .L507+8 4098 ldr r10, .L507+20 4099 str r3, [r5, #8] 4100 ldr r3, .L507+12 4101 ldr r8, [r3] 4102 str r8, [r5, #12] 4103.L498: 4104 ldr r3, .L507+16 4105 ldrh r3, [r3] 4106 cmp r6, r3 4107 bcc .L503 4108 movs r0, #0 4109 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4110.L503: 4111 ldrh r4, [r10] 4112 movw r3, #65535 4113 ldr fp, .L507+4 4114 strh r3, [r7, #2]! @ movhi 4115 subs r4, r4, #1 4116 uxth r4, r4 4117.L499: 4118 ldrh r3, [r10] 4119 sub r2, r3, #15 4120 cmp r2, r4 4121 bgt .L501 4122 mla r3, r6, r3, r4 4123 movs r2, #1 4124 mov r1, r2 4125 mov r0, fp 4126 lsls r3, r3, #10 4127 str r3, [r5, #4] 4128 bl FlashReadPages 4129 ldr r3, [r5] 4130 adds r3, r3, #1 4131 beq .L500 4132 ldrh r2, [r8] 4133 movw r3, #61664 4134 cmp r2, r3 4135 bne .L500 4136 strh r4, [r7] @ movhi 4137.L501: 4138 adds r6, r6, #1 4139 b .L498 4140.L500: 4141 subs r4, r4, #1 4142 uxth r4, r4 4143 b .L499 4144.L508: 4145 .align 2 4146.L507: 4147 .word .LANCHOR106 4148 .word .LANCHOR138 4149 .word .LANCHOR37+10 4150 .word .LANCHOR114 4151 .word .LANCHOR10 4152 .word .LANCHOR17 4153 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 4154 .section .text.FtlGetLastWrittenPage,"ax",%progbits 4155 .align 1 4156 .global FtlGetLastWrittenPage 4157 .syntax unified 4158 .thumb 4159 .thumb_func 4160 .fpu softvfp 4161 .type FtlGetLastWrittenPage, %function 4162FtlGetLastWrittenPage: 4163 @ args = 0, pretend = 0, frame = 88 4164 @ frame_needed = 0, uses_anonymous_args = 0 4165 cmp r1, #1 4166 push {r4, r5, r6, r7, r8, lr} 4167 it eq 4168 ldreq r3, .L521 4169 sub sp, sp, #88 4170 lsl r7, r0, #10 4171 mov r2, r1 4172 it ne 4173 ldrne r3, .L521+4 4174 mov r6, r1 4175 add r0, sp, #4 4176 movs r1, #1 4177 ldrh r5, [r3] 4178 ldr r3, .L521+8 4179 subs r5, r5, #1 4180 ldr r3, [r3] 4181 sxth r5, r5 4182 str r3, [sp, #12] 4183 add r3, sp, #24 4184 str r3, [sp, #16] 4185 orr r3, r5, r7 4186 str r3, [sp, #8] 4187 bl FlashReadPages 4188 ldr r3, [sp, #24] 4189 adds r3, r3, #1 4190 bne .L512 4191 mov r8, #0 4192.L513: 4193 cmp r8, r5 4194 ble .L516 4195.L512: 4196 mov r0, r5 4197 add sp, sp, #88 4198 @ sp needed 4199 pop {r4, r5, r6, r7, r8, pc} 4200.L516: 4201 add r3, r8, r5 4202 mov r2, r6 4203 add r3, r3, r3, lsr #31 4204 movs r1, #1 4205 add r0, sp, #4 4206 asrs r4, r3, #1 4207 sxth r3, r4 4208 orrs r3, r3, r7 4209 str r3, [sp, #8] 4210 bl FlashReadPages 4211 ldr r3, [sp, #24] 4212 adds r3, r3, #1 4213 bne .L514 4214 ldr r3, [sp, #28] 4215 adds r3, r3, #1 4216 bne .L514 4217 ldr r3, [sp, #4] 4218 adds r3, r3, #1 4219 beq .L514 4220 subs r4, r4, #1 4221 sxth r5, r4 4222 b .L513 4223.L514: 4224 adds r4, r4, #1 4225 sxth r8, r4 4226 b .L513 4227.L522: 4228 .align 2 4229.L521: 4230 .word .LANCHOR20 4231 .word .LANCHOR19 4232 .word .LANCHOR112 4233 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 4234 .section .text.FtlScanSysBlk,"ax",%progbits 4235 .align 1 4236 .global FtlScanSysBlk 4237 .syntax unified 4238 .thumb 4239 .thumb_func 4240 .fpu softvfp 4241 .type FtlScanSysBlk, %function 4242FtlScanSysBlk: 4243 @ args = 0, pretend = 0, frame = 32 4244 @ frame_needed = 0, uses_anonymous_args = 0 4245 push {r4, r5, r6, r7, r8, r10, fp, lr} 4246 movs r4, #0 4247 ldr r5, .L604 4248 sub sp, sp, #32 4249 mov r1, r4 4250 ldr r3, .L604+4 4251 ldr r2, [r5] 4252 ldr r6, .L604+8 4253 strh r4, [r3] @ movhi 4254 ldr r3, .L604+12 4255 lsls r2, r2, #2 4256 strh r4, [r6] @ movhi 4257 ldr r7, .L604+16 4258 ldr r0, [r3] 4259 bl ftl_memset 4260 ldr r2, [r5] 4261 mov r1, r4 4262 ldr r3, .L604+20 4263 lsls r2, r2, #1 4264 ldr r0, [r3] 4265 bl ftl_memset 4266 ldrh r2, [r7] 4267 mov r1, r4 4268 ldr r3, .L604+24 4269 lsls r2, r2, #2 4270 ldr r0, [r3] 4271 bl ftl_memset 4272 ldrh r2, [r7] 4273 mov r1, r4 4274 ldr r3, .L604+28 4275 lsls r2, r2, #1 4276 ldr r0, [r3] 4277 bl ftl_memset 4278 movs r2, #16 4279 movs r1, #255 4280 ldr r0, .L604+32 4281 bl ftl_memset 4282 ldr r3, .L604+36 4283 str r6, [sp, #12] 4284 str r5, [sp, #16] 4285 ldrh r3, [r3] 4286 str r3, [sp, #4] 4287.L524: 4288 ldr r3, .L604+40 4289 ldr r2, [sp, #4] 4290 ldrh r3, [r3] 4291 cmp r3, r2 4292 bls .L565 4293 ldr r3, .L604+44 4294 movs r5, #0 4295 ldr r1, .L604+48 4296 mov fp, r5 4297 movs r7, #20 4298 ldrh r8, [r3] 4299 ldr r3, .L604+52 4300 ldr r2, [r1] 4301 ldr r1, .L604+56 4302 ldr r6, [r3] 4303 ldr r3, .L604+60 4304 str r2, [sp, #8] 4305 ldrh r10, [r1] 4306 ldr r3, [r3] 4307 ldr r2, .L604+64 4308 b .L566 4309.L526: 4310 ldrb r0, [r2, r5] @ zero_extendqisi2 4311 ldr r1, [sp, #4] 4312 str r3, [sp, #28] 4313 str r2, [sp, #24] 4314 bl V2P_block 4315 str r0, [sp, #20] 4316 bl FtlBbmIsBadBlock 4317 ldr r2, [sp, #24] 4318 ldr r3, [sp, #28] 4319 cbnz r0, .L525 4320 ldr r1, [sp, #20] 4321 mla r0, r7, fp, r6 4322 ldr r4, [sp, #8] 4323 lsls r1, r1, #10 4324 str r3, [r0, #8] 4325 str r1, [r0, #4] 4326 mul r1, r10, fp 4327 bic r1, r1, #3 4328 add r1, r1, r4 4329 str r1, [r0, #12] 4330 add r1, fp, #1 4331 uxth fp, r1 4332.L525: 4333 adds r5, r5, #1 4334.L566: 4335 uxth r1, r5 4336 cmp r8, r1 4337 bhi .L526 4338 cmp fp, #0 4339 bne .L527 4340.L564: 4341 ldr r3, [sp, #4] 4342 adds r3, r3, #1 4343 uxth r3, r3 4344 str r3, [sp, #4] 4345 b .L524 4346.L527: 4347 movs r7, #0 4348 movs r2, #1 4349 mov r1, fp 4350 mov r0, r6 4351 bl FlashReadPages 4352.L528: 4353 uxth r3, r7 4354 cmp fp, r3 4355 bls .L564 4356 ldr r3, .L604+52 4357 mov r8, #20 4358 mul r8, r8, r7 4359 ldr r3, [r3] 4360 add r2, r3, r8 4361 ldr r3, [r3, r8] 4362 ldr r5, [r2, #4] 4363 ldr r6, [r2, #12] 4364 adds r3, r3, #1 4365 ubfx r5, r5, #10, #16 4366 bne .L531 4367 mov r10, #16 4368.L533: 4369 ldr r3, .L604+52 4370 movs r2, #1 4371 mov r1, r2 4372 ldr r0, [r3] 4373 add r0, r0, r8 4374 ldr r3, [r0, #4] 4375 adds r3, r3, #1 4376 str r3, [r0, #4] 4377 bl FlashReadPages 4378 ldrh r2, [r6] 4379 movw r3, #65535 4380 cmp r2, r3 4381 ldr r3, .L604+52 4382 ldr r3, [r3] 4383 bne .L530 4384 mov r2, #-1 4385 str r2, [r3, r8] 4386 ldr r3, .L604+52 4387 ldr r3, [r3] 4388 ldr r3, [r3, r8] 4389 cmp r3, r2 4390 bne .L531 4391.L532: 4392 movs r1, #1 4393 b .L603 4394.L530: 4395 ldr r3, [r3, r8] 4396 adds r3, r3, #1 4397 bne .L531 4398 add r10, r10, #-1 4399 uxth r10, r10 4400 cmp r10, #0 4401 bne .L533 4402 b .L532 4403.L531: 4404 ldr r3, .L604+68 4405 ldr r2, [r3] 4406 ldr r3, [r6, #4] 4407 adds r1, r2, #1 4408 beq .L534 4409 cmp r2, r3 4410 bhi .L535 4411.L534: 4412 adds r2, r3, #1 4413 ittt ne 4414 ldrne r1, .L604+68 4415 addne r2, r3, #1 4416 strne r2, [r1] 4417.L535: 4418 ldrh r2, [r6] 4419 movw r1, #61604 4420 cmp r2, r1 4421 beq .L537 4422 bhi .L538 4423 movw r3, #61574 4424 cmp r2, r3 4425 beq .L539 4426.L536: 4427 adds r7, r7, #1 4428 b .L528 4429.L538: 4430 movw r3, #61634 4431 cmp r2, r3 4432 beq .L540 4433 movw r3, #65535 4434 cmp r2, r3 4435 bne .L536 4436 movs r1, #0 4437.L603: 4438 mov r0, r5 4439 bl FtlFreeSysBlkQueueIn 4440 b .L536 4441.L540: 4442 ldr r3, .L604+8 4443 ldrh r2, [r3] 4444 ldr r3, .L604 4445 ldr r3, [r3] 4446 cmp r2, r3 4447 bls .L542 4448 movw r2, #1225 4449 ldr r1, .L604+72 4450 ldr r0, .L604+76 4451 bl printf 4452.L542: 4453 ldr r3, [sp, #16] 4454 ldr r2, [sp, #12] 4455 ldr r1, [r3] 4456 ldrh r0, [r2] 4457 ldr r2, .L604+12 4458 uxth r10, r1 4459 ldr ip, [r2] 4460 add r3, r10, #-1 4461 sub r10, r10, r0 4462 add r10, r10, #-1 4463 sxth r3, r3 4464 sxth r10, r10 4465.L543: 4466 cmp r3, r10 4467 bgt .L549 4468 cmp r3, #0 4469 bge .L581 4470 b .L536 4471.L549: 4472 ldr r2, [ip, r3, lsl #2] 4473 add r8, ip, r3, lsl #2 4474 ldr r4, [r6, #4] 4475 cmp r4, r2 4476 bls .L544 4477 ldr r2, [ip] 4478 cbnz r2, .L545 4479 cmp r1, r0 4480 ittt ne 4481 ldrne r2, .L604+8 4482 addne r0, r0, #1 4483 strhne r0, [r2] @ movhi 4484.L545: 4485 ldr r2, .L604+20 4486 uxth r10, r3 4487 ldr r0, [r2] 4488 movs r2, #0 4489.L546: 4490 uxth lr, r2 4491 sxth r1, r2 4492 cmp r10, lr 4493 bhi .L547 4494 ldr r2, [r6, #4] 4495 cmp r3, #0 4496 str r2, [r8] 4497 strh r5, [r0, r3, lsl #1] @ movhi 4498 blt .L536 4499 ldr r2, .L604+8 4500 ldrh r0, [r2] 4501 ldr r2, .L604 4502 ldr r2, [r2] 4503 subs r2, r2, r0 4504 subs r2, r2, #1 4505 sxth r2, r2 4506 cmp r3, r2 4507 bgt .L536 4508.L581: 4509 ldr r2, .L604+8 4510 adds r0, r0, #1 4511 strh r0, [r2] @ movhi 4512 ldr r2, [r6, #4] 4513 str r2, [ip, r3, lsl #2] 4514 ldr r2, .L604+20 4515.L601: 4516 ldr r2, [r2] 4517 strh r5, [r2, r3, lsl #1] @ movhi 4518 b .L536 4519.L547: 4520 add lr, ip, r1, lsl #2 4521 adds r2, r2, #1 4522 ldr r4, [lr, #4] 4523 add lr, r0, r1, lsl #1 4524 ldrh lr, [lr, #2] 4525 str r4, [ip, r1, lsl #2] 4526 strh lr, [r0, r1, lsl #1] @ movhi 4527 b .L546 4528.L544: 4529 subs r3, r3, #1 4530 sxth r3, r3 4531 b .L543 4532.L605: 4533 .align 2 4534.L604: 4535 .word .LANCHOR30 4536 .word .LANCHOR35 4537 .word .LANCHOR130 4538 .word .LANCHOR125 4539 .word .LANCHOR27 4540 .word .LANCHOR119 4541 .word .LANCHOR122 4542 .word .LANCHOR36 4543 .word .LANCHOR139 4544 .word .LANCHOR5 4545 .word .LANCHOR6 4546 .word .LANCHOR3 4547 .word .LANCHOR65 4548 .word .LANCHOR103 4549 .word .LANCHOR24 4550 .word .LANCHOR64 4551 .word .LANCHOR13 4552 .word .LANCHOR82 4553 .word .LANCHOR140 4554 .word .LC1 4555.L539: 4556 ldr r8, .L606+12 4557 ldr r10, .L606+20 4558 ldrh r2, [r8] 4559 ldrh r3, [r10] 4560 cmp r2, r3 4561 bls .L552 4562 movw r2, #1266 4563 ldr r1, .L606 4564 ldr r0, .L606+4 4565 bl printf 4566.L552: 4567 ldr r2, .L606+8 4568 ldrh lr, [r10] 4569 ldrh ip, [r8] 4570 ldr r0, [r2] 4571 add r10, lr, #-1 4572 sxth r3, r10 4573 sub r10, r10, ip 4574.L553: 4575 cmp r3, r10 4576 ble .L558 4577 ldr r1, [r6, #4] 4578 add r8, r0, r3, lsl #2 4579 ldr r2, [r0, r3, lsl #2] 4580 cmp r1, r2 4581 bls .L554 4582 ldr r2, [r0] 4583 cbnz r2, .L555 4584 cmp lr, ip 4585 ittt ne 4586 ldrne r2, .L606+12 4587 addne ip, ip, #1 4588 strhne ip, [r2] @ movhi 4589.L555: 4590 ldr r2, .L606+16 4591 uxth r10, r3 4592 ldr ip, [r2] 4593 movs r2, #0 4594.L556: 4595 uxth lr, r2 4596 sxth r1, r2 4597 cmp r10, lr 4598 bhi .L557 4599 ldr r2, [r6, #4] 4600 str r2, [r8] 4601 strh r5, [ip, r3, lsl #1] @ movhi 4602.L558: 4603 cmp r3, #0 4604 blt .L536 4605 ldr r2, .L606+20 4606 ldr ip, .L606+12 4607 ldrh r2, [r2] 4608 ldrh r1, [ip] 4609 subs r2, r2, #1 4610 subs r2, r2, r1 4611 sxth r2, r2 4612 cmp r3, r2 4613 bgt .L536 4614 ldr r2, [r6, #4] 4615 adds r1, r1, #1 4616 strh r1, [ip] @ movhi 4617 str r2, [r0, r3, lsl #2] 4618 ldr r2, .L606+16 4619 b .L601 4620.L557: 4621 add lr, r0, r1, lsl #2 4622 adds r2, r2, #1 4623 ldr r4, [lr, #4] 4624 add lr, ip, r1, lsl #1 4625 ldrh lr, [lr, #2] 4626 str r4, [r0, r1, lsl #2] 4627 strh lr, [ip, r1, lsl #1] @ movhi 4628 b .L556 4629.L554: 4630 subs r3, r3, #1 4631 sxth r3, r3 4632 b .L553 4633.L537: 4634 ldr r8, .L606+40 4635 movw r2, #65535 4636 ldrh r1, [r8] 4637 cmp r1, r2 4638 bne .L560 4639.L602: 4640 strh r5, [r8] @ movhi 4641 str r3, [r8, #8] 4642 b .L536 4643.L560: 4644 ldrh r0, [r8, #4] 4645 cmp r0, r2 4646 beq .L561 4647 movs r1, #1 4648 bl FtlFreeSysBlkQueueIn 4649.L561: 4650 ldr r3, [r6, #4] 4651 ldr r2, [r8, #8] 4652 cmp r2, r3 4653 bcs .L562 4654 ldrh r2, [r8] 4655 strh r2, [r8, #4] @ movhi 4656 b .L602 4657.L562: 4658 strh r5, [r8, #4] @ movhi 4659 b .L536 4660.L565: 4661 ldr r3, .L606+24 4662 ldr r2, [r3] 4663 ldrh r3, [r2] 4664 cbz r3, .L567 4665.L570: 4666 ldr r3, .L606+16 4667 ldr r4, [r3] 4668 ldrh r2, [r4] 4669 cmp r2, #0 4670 beq .L568 4671.L569: 4672 ldr r3, .L606+28 4673 ldrh r2, [r3] 4674 ldr r3, .L606+32 4675 ldr r3, [r3] 4676 cmp r2, r3 4677 bls .L600 4678 movw r2, #1391 4679 ldr r1, .L606 4680 ldr r0, .L606+4 4681 bl printf 4682.L600: 4683 movs r0, #0 4684 add sp, sp, #32 4685 @ sp needed 4686 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4687.L567: 4688 ldr r1, .L606+28 4689 ldrh r1, [r1] 4690 cmp r1, #0 4691 beq .L570 4692 ldr r5, .L606+32 4693 ldr r0, [r5] 4694.L571: 4695 sxth r1, r3 4696 cmp r1, r0 4697 bcs .L570 4698 ldrh r4, [r2, r1, lsl #1] 4699 adds r3, r3, #1 4700 cmp r4, #0 4701 beq .L571 4702 ldr r3, .L606+36 4703 movs r6, #0 4704 ldr r0, [r3] 4705 mov r3, r1 4706.L572: 4707 ldr r4, [r5] 4708 cmp r3, r4 4709 bcs .L570 4710 ldrh r7, [r2, r3, lsl #1] 4711 subs r4, r3, r1 4712 strh r7, [r2, r4, lsl #1] @ movhi 4713 ldr r7, [r0, r3, lsl #2] 4714 str r7, [r0, r4, lsl #2] 4715 strh r6, [r2, r3, lsl #1] @ movhi 4716 adds r3, r3, #1 4717 sxth r3, r3 4718 b .L572 4719.L568: 4720 ldr r3, .L606+12 4721 ldrh r3, [r3] 4722 cmp r3, #0 4723 beq .L569 4724 ldr r5, .L606+20 4725 ldrh r1, [r5] 4726.L577: 4727 sxth r3, r2 4728 cmp r3, r1 4729 mov r6, r3 4730 bge .L569 4731 ldrh r0, [r4, r3, lsl #1] 4732 adds r2, r2, #1 4733 cmp r0, #0 4734 beq .L577 4735 ldr r2, .L606+8 4736 movs r0, #0 4737 ldr r2, [r2] 4738.L578: 4739 ldrh r1, [r5] 4740 cmp r3, r1 4741 bge .L569 4742 ldrh r7, [r4, r3, lsl #1] 4743 subs r1, r3, r6 4744 strh r7, [r4, r1, lsl #1] @ movhi 4745 ldr r7, [r2, r3, lsl #2] 4746 str r7, [r2, r1, lsl #2] 4747 adds r1, r3, #1 4748 strh r0, [r4, r3, lsl #1] @ movhi 4749 sxth r3, r1 4750 b .L578 4751.L607: 4752 .align 2 4753.L606: 4754 .word .LANCHOR140 4755 .word .LC1 4756 .word .LANCHOR122 4757 .word .LANCHOR35 4758 .word .LANCHOR36 4759 .word .LANCHOR27 4760 .word .LANCHOR119 4761 .word .LANCHOR130 4762 .word .LANCHOR30 4763 .word .LANCHOR125 4764 .word .LANCHOR139 4765 .size FtlScanSysBlk, .-FtlScanSysBlk 4766 .section .text.FtlLoadBbt,"ax",%progbits 4767 .align 1 4768 .global FtlLoadBbt 4769 .syntax unified 4770 .thumb 4771 .thumb_func 4772 .fpu softvfp 4773 .type FtlLoadBbt, %function 4774FtlLoadBbt: 4775 @ args = 0, pretend = 0, frame = 0 4776 @ frame_needed = 0, uses_anonymous_args = 0 4777 push {r3, r4, r5, r6, r7, r8, r10, lr} 4778 ldr r8, .L637+40 4779 ldr r4, .L637 4780 ldr r3, [r8] 4781 ldr r7, .L637+4 4782 mov r10, r4 4783 str r3, [r4, #8] 4784 ldr r3, .L637+8 4785 ldr r6, [r3] 4786 str r6, [r4, #12] 4787 bl FtlBbtMemInit 4788 ldrh r5, [r7] 4789 subs r5, r5, #1 4790 uxth r5, r5 4791.L609: 4792 ldrh r3, [r7] 4793 subs r3, r3, #15 4794 cmp r3, r5 4795 bgt .L612 4796 lsls r3, r5, #10 4797 movs r2, #1 4798 mov r1, r2 4799 mov r0, r10 4800 str r3, [r4, #4] 4801 bl FlashReadPages 4802 ldr r3, [r4] 4803 adds r3, r3, #1 4804 bne .L610 4805 ldr r3, [r4, #4] 4806 movs r2, #1 4807 mov r1, r2 4808 mov r0, r10 4809 adds r3, r3, #1 4810 str r3, [r4, #4] 4811 bl FlashReadPages 4812.L610: 4813 ldr r3, [r4] 4814 adds r3, r3, #1 4815 beq .L611 4816 ldrh r2, [r6] 4817 movw r3, #61649 4818 cmp r2, r3 4819 bne .L611 4820 ldr r3, .L637+12 4821 ldr r2, [r6, #4] 4822 strh r5, [r3] @ movhi 4823 str r2, [r3, #8] 4824 ldrh r2, [r6, #8] 4825 strh r2, [r3, #4] @ movhi 4826.L612: 4827 ldr r5, .L637+12 4828 movw r2, #65535 4829 ldrh r3, [r5] 4830 cmp r3, r2 4831 beq .L626 4832 ldrh r3, [r5, #4] 4833 cmp r3, r2 4834 beq .L616 4835 lsls r3, r3, #10 4836 movs r2, #1 4837 mov r1, r2 4838 ldr r0, .L637 4839 str r3, [r4, #4] 4840 bl FlashReadPages 4841 ldr r3, [r4] 4842 adds r3, r3, #1 4843 beq .L616 4844 ldrh r2, [r6] 4845 movw r3, #61649 4846 cmp r2, r3 4847 bne .L616 4848 ldr r3, [r6, #4] 4849 ldr r2, [r5, #8] 4850 cmp r3, r2 4851 bls .L616 4852 ldrh r2, [r5, #4] 4853 str r3, [r5, #8] 4854 ldrh r3, [r6, #8] 4855 strh r2, [r5] @ movhi 4856 strh r3, [r5, #4] @ movhi 4857.L616: 4858 ldr r10, .L637 4859 movs r1, #1 4860 ldrh r0, [r5] 4861 bl FtlGetLastWrittenPage 4862 sxth r7, r0 4863 adds r0, r0, #1 4864 strh r0, [r5, #2] @ movhi 4865.L618: 4866 cmp r7, #0 4867 bge .L621 4868 movs r2, #251 4869 ldr r1, .L637+16 4870 ldr r0, .L637+20 4871 bl printf 4872.L620: 4873 ldrh r3, [r6, #10] 4874 ldrh r0, [r6, #12] 4875 strh r3, [r5, #6] @ movhi 4876 movw r3, #65535 4877 cmp r0, r3 4878 beq .L623 4879 ldr r3, .L637+24 4880 ldr r2, [r3] 4881 cmp r0, r2 4882 beq .L623 4883 ldr r3, .L637+28 4884 ldrh r3, [r3] 4885 lsrs r3, r3, #2 4886 cmp r2, r3 4887 bcs .L623 4888 cmp r0, r3 4889 bcs .L623 4890 bl FtlSysBlkNumInit 4891.L623: 4892 ldr r6, .L637+32 4893 movs r5, #0 4894 ldr r7, .L637+36 4895 ldr r8, .L637+44 4896.L624: 4897 ldrh r3, [r7] 4898 cmp r5, r3 4899 bcc .L625 4900 movs r0, #0 4901 pop {r3, r4, r5, r6, r7, r8, r10, pc} 4902.L611: 4903 subs r5, r5, #1 4904 uxth r5, r5 4905 b .L609 4906.L621: 4907 ldrh r3, [r5] 4908 movs r2, #1 4909 mov r1, r2 4910 mov r0, r10 4911 orr r3, r7, r3, lsl #10 4912 str r3, [r4, #4] 4913 ldr r3, [r8] 4914 str r3, [r4, #8] 4915 bl FlashReadPages 4916 ldr r3, [r4] 4917 adds r3, r3, #1 4918 beq .L619 4919 ldrh r2, [r6] 4920 movw r3, #61649 4921 cmp r2, r3 4922 beq .L620 4923.L619: 4924 subs r7, r7, #1 4925 sxth r7, r7 4926 b .L618 4927.L625: 4928 ldrh r2, [r8] 4929 ldr r1, [r4, #8] 4930 ldr r0, [r6, #4]! 4931 lsls r2, r2, #2 4932 mla r1, r5, r2, r1 4933 adds r5, r5, #1 4934 bl ftl_memcpy 4935 b .L624 4936.L626: 4937 mov r0, #-1 4938 pop {r3, r4, r5, r6, r7, r8, r10, pc} 4939.L638: 4940 .align 2 4941.L637: 4942 .word .LANCHOR138 4943 .word .LANCHOR17 4944 .word .LANCHOR114 4945 .word .LANCHOR37 4946 .word .LANCHOR141 4947 .word .LC1 4948 .word .LANCHOR2 4949 .word .LANCHOR6 4950 .word .LANCHOR37+24 4951 .word .LANCHOR10 4952 .word .LANCHOR106 4953 .word .LANCHOR127 4954 .size FtlLoadBbt, .-FtlLoadBbt 4955 .section .text.FlashProgPages,"ax",%progbits 4956 .align 1 4957 .global FlashProgPages 4958 .syntax unified 4959 .thumb 4960 .thumb_func 4961 .fpu softvfp 4962 .type FlashProgPages, %function 4963FlashProgPages: 4964 @ args = 0, pretend = 0, frame = 48 4965 @ frame_needed = 0, uses_anonymous_args = 0 4966 push {r4, r5, r6, r7, r8, r10, fp, lr} 4967 sub sp, sp, #48 4968 str r3, [sp, #12] 4969 mov r10, r1 4970 mov r4, r0 4971 mov r5, r0 4972 ldr r3, .L680 4973 mov r8, #0 4974 ldr fp, .L680+52 4975 str r2, [sp, #8] 4976 ldrh r3, [r3, #12] 4977 str r3, [sp] 4978 lsls r3, r3, #3 4979 str r3, [sp, #4] 4980.L640: 4981 cmp r8, r10 4982 bne .L653 4983 ldr r3, [sp, #12] 4984 cmp r3, #0 4985 beq .L672 4986 ldr r6, .L680+4 4987 movs r5, #0 4988.L655: 4989 cmp r8, r5 4990 beq .L672 4991 ldr r7, .L680+8 4992 movs r1, #0 4993 ldr r2, [r6] 4994 add r0, sp, #28 4995 ldr r3, [r7] 4996 str r1, [r2] 4997 str r1, [r3] 4998 ldr r1, [r4, #4] 4999 str r2, [sp, #36] 5000 ldr r2, [sp, #8] 5001 str r1, [sp, #32] 5002 movs r1, #1 5003 str r3, [sp, #40] 5004 bl FlashReadPages 5005 ldr r10, [sp, #28] 5006 cmp r10, #-1 5007 bne .L656 5008 ldr r1, [r4, #4] 5009 ldr r0, .L680+12 5010 bl printf 5011 str r10, [r4] 5012.L656: 5013 ldr r10, [sp, #28] 5014 cmp r10, #256 5015 bne .L657 5016 ldr r1, [r4, #4] 5017 ldr r0, .L680+16 5018 bl printf 5019 str r10, [r4] 5020.L657: 5021 ldr r3, [r4, #12] 5022 cbz r3, .L658 5023 ldr r2, [r3] 5024 ldr r3, [r7] 5025 ldr r3, [r3] 5026 cmp r2, r3 5027 beq .L658 5028 ldr r1, [r4, #4] 5029 ldr r0, .L680+20 5030 bl printf 5031 mov r3, #-1 5032 str r3, [r4] 5033.L658: 5034 ldr r3, [r4, #8] 5035 cbz r3, .L659 5036 ldr r2, [r3] 5037 ldr r3, [r6] 5038 ldr r3, [r3] 5039 cmp r2, r3 5040 beq .L659 5041 ldr r1, [r4, #4] 5042 ldr r0, .L680+24 5043 bl printf 5044 mov r3, #-1 5045 str r3, [r4] 5046.L659: 5047 adds r5, r5, #1 5048 adds r4, r4, #20 5049 b .L655 5050.L653: 5051 ldr r3, [r5, #8] 5052 cbz r3, .L641 5053 ldr r3, [r5, #12] 5054 cbnz r3, .L642 5055.L641: 5056 movs r2, #142 5057 ldr r1, .L680+28 5058 ldr r0, .L680+32 5059 bl printf 5060.L642: 5061 add r2, sp, #20 5062 add r1, sp, #24 5063 ldr r0, [r5, #4] 5064 bl l2p_addr_tran.isra.0 5065 ldr r6, [sp, #20] 5066 cmp r6, #3 5067 bls .L643 5068.L679: 5069 mov r3, #-1 5070 str r3, [r5] 5071 b .L644 5072.L643: 5073 cbnz r6, .L645 5074 ldr r3, [sp, #24] 5075 ldr r2, [sp, #4] 5076 cmp r2, r3 5077 bls .L645 5078 ldr r5, .L680+28 5079 ldr r7, .L680+36 5080 b .L678 5081.L647: 5082 mov r3, #-1 5083 ldr r2, [r4, #-16] 5084 str r3, [r4, #-20] 5085 mov r1, r5 5086 mov r0, r7 5087 adds r6, r6, #1 5088 bl printf 5089 movs r3, #16 5090 movs r2, #4 5091 ldr r1, [r4, #-12] 5092 ldr r0, .L680+40 5093 bl rknand_print_hex 5094 movs r3, #4 5095 ldr r1, [r4, #-8] 5096 mov r2, r3 5097 ldr r0, .L680+44 5098 bl rknand_print_hex 5099.L678: 5100 cmp r6, r10 5101 add r4, r4, #20 5102 bne .L647 5103.L672: 5104 movs r0, #0 5105 add sp, sp, #48 5106 @ sp needed 5107 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5108.L645: 5109 ldr r1, [r5, #8] 5110 lsls r3, r1, #26 5111 beq .L661 5112 ldr r3, .L680+4 5113 ldr r6, [r3] 5114 cmp r1, r6 5115 beq .L648 5116 ldr r3, .L680+48 5117 mov r0, r6 5118 ldrh r2, [r3] 5119 lsls r2, r2, #9 5120 bl ftl_memcpy 5121.L648: 5122 ldr r3, [r5, #12] 5123 mov r2, r6 5124 ldr r1, [sp, #24] 5125 ldrb r0, [sp, #20] @ zero_extendqisi2 5126 ldr r7, [fp, #8] 5127 blx r7 5128 cbnz r0, .L649 5129 str r0, [r5] 5130.L650: 5131 ldr r3, .L680 5132 ldrh r3, [r3, #14] 5133 cmp r3, #4 5134 bne .L644 5135 ldr r0, [sp] 5136 add r2, r6, #2048 5137 ldr r3, [r5, #12] 5138 ldr r1, [sp, #24] 5139 ldr r6, [fp, #8] 5140 adds r3, r3, #8 5141 add r1, r1, r0 5142 ldrb r0, [sp, #20] @ zero_extendqisi2 5143 blx r6 5144 cmp r0, #0 5145 bne .L679 5146.L644: 5147 add r8, r8, #1 5148 adds r5, r5, #20 5149 b .L640 5150.L661: 5151 mov r6, r1 5152 b .L648 5153.L649: 5154 mov r3, #-1 5155 str r3, [r5] 5156 b .L650 5157.L681: 5158 .align 2 5159.L680: 5160 .word .LANCHOR0 5161 .word .LANCHOR111 5162 .word .LANCHOR113 5163 .word .LC14 5164 .word .LC15 5165 .word .LC16 5166 .word .LC17 5167 .word .LANCHOR142 5168 .word .LC1 5169 .word .LC6 5170 .word .LC7 5171 .word .LC8 5172 .word .LANCHOR12 5173 .word .LANCHOR78 5174 .size FlashProgPages, .-FlashProgPages 5175 .section .text.FtlLowFormatEraseBlock,"ax",%progbits 5176 .align 1 5177 .global FtlLowFormatEraseBlock 5178 .syntax unified 5179 .thumb 5180 .thumb_func 5181 .fpu softvfp 5182 .type FtlLowFormatEraseBlock, %function 5183FtlLowFormatEraseBlock: 5184 @ args = 0, pretend = 0, frame = 32 5185 @ frame_needed = 0, uses_anonymous_args = 0 5186 ldr r3, .L725 5187 push {r4, r5, r6, r7, r8, r10, fp, lr} 5188 sub sp, sp, #32 5189 ldr r7, .L725+4 5190 mov r8, #0 5191 mov r6, r1 5192 mov r5, r8 5193 str r0, [r3] 5194 mov r4, r8 5195 ldr r3, .L725+8 5196 mov fp, #20 5197 ldr r10, [r7] 5198 str r0, [sp, #4] 5199 ldrh r3, [r3] 5200 str r3, [sp, #12] 5201 ldr r3, .L725+12 5202 ldr r3, [r3] 5203 str r3, [sp, #16] 5204 ldr r3, .L725+16 5205 ldr r3, [r3] 5206 str r3, [sp, #20] 5207 ldr r3, .L725+20 5208 ldrh r3, [r3] 5209 str r3, [sp, #24] 5210.L683: 5211 ldr r3, [sp, #12] 5212 uxth r2, r8 5213 cmp r3, r2 5214 bhi .L687 5215 cmp r5, #0 5216 beq .L682 5217 mov r0, r10 5218 mov r8, #0 5219 mov r10, #20 5220 mov r2, r5 5221 movs r1, #0 5222 bl FlashEraseBlocks 5223.L690: 5224 uxth r3, r8 5225 cmp r5, r3 5226 bhi .L692 5227 cmp r6, #0 5228 beq .L708 5229 ldr r3, .L725+24 5230 mov r10, #1 5231 ldrh r3, [r3] 5232 str r3, [sp, #8] 5233.L693: 5234 movs r7, #0 5235.L702: 5236 ldr r3, .L725+8 5237 mov r8, #0 5238 mov r5, r8 5239 ldrh r3, [r3] 5240 str r3, [sp, #16] 5241 ldr r3, .L725+4 5242 ldr fp, [r3] 5243 ldr r3, .L725+28 5244 ldr r3, [r3] 5245 str r3, [sp, #20] 5246 ldr r3, .L725+12 5247 ldr r3, [r3] 5248 str r3, [sp, #24] 5249 ldr r3, .L725+20 5250 ldrh r3, [r3] 5251 str r3, [sp, #28] 5252.L694: 5253 ldr r3, [sp, #16] 5254 uxth r2, r8 5255 cmp r3, r2 5256 bhi .L697 5257 cbz r5, .L682 5258 mov r0, fp 5259 ldr fp, .L725+4 5260 movs r3, #1 5261 mov r2, r10 5262 mov r1, r5 5263 mov r8, #0 5264 bl FlashProgPages 5265 movs r3, #20 5266.L699: 5267 uxth r2, r8 5268 cmp r5, r2 5269 bhi .L701 5270 adds r7, r7, #1 5271 ldr r2, [sp, #8] 5272 uxth r3, r7 5273 cmp r2, r3 5274 bhi .L702 5275 ldr r8, .L725+4 5276 movs r7, #0 5277 mov fp, #20 5278.L703: 5279 uxth r3, r7 5280 cmp r5, r3 5281 bhi .L705 5282 ldr r3, [sp, #4] 5283 cmp r3, #63 5284 bls .L706 5285 cbz r6, .L682 5286.L706: 5287 ldr r3, .L725+4 5288 mov r2, r5 5289 mov r1, r10 5290 ldr r0, [r3] 5291 bl FlashEraseBlocks 5292.L682: 5293 mov r0, r4 5294 add sp, sp, #32 5295 @ sp needed 5296 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5297.L687: 5298 mul r2, fp, r8 5299 movs r3, #0 5300 ldr r1, [sp, #4] 5301 str r3, [r10, r2] 5302 ldr r3, .L725+32 5303 ldrb r0, [r3, r8] @ zero_extendqisi2 5304 bl V2P_block 5305 str r0, [sp, #8] 5306 cbz r6, .L684 5307 bl IsBlkInVendorPart 5308 cbnz r0, .L685 5309.L684: 5310 ldr r0, [sp, #8] 5311 bl FtlBbmIsBadBlock 5312 cbnz r0, .L686 5313 ldr r3, [sp, #8] 5314 mla r1, fp, r5, r10 5315 lsls r2, r3, #10 5316 ldr r3, [sp, #16] 5317 str r2, [r1, #4] 5318 str r3, [r1, #8] 5319 ldr r3, [sp, #24] 5320 mul r2, r3, r5 5321 ldr r3, [sp, #20] 5322 adds r5, r5, #1 5323 uxth r5, r5 5324 bic r2, r2, #3 5325 add r2, r2, r3 5326 str r2, [r1, #12] 5327.L685: 5328 add r8, r8, #1 5329 b .L683 5330.L686: 5331 adds r4, r4, #1 5332 uxth r4, r4 5333 b .L685 5334.L692: 5335 mul r3, r10, r8 5336 ldr r2, [r7] 5337 adds r1, r2, r3 5338 ldr r3, [r2, r3] 5339 adds r3, r3, #1 5340 bne .L691 5341 ldr r0, [r1, #4] 5342 adds r4, r4, #1 5343 uxth r4, r4 5344 ubfx r0, r0, #10, #16 5345 bl FtlBbmMapBadBlock 5346.L691: 5347 add r8, r8, #1 5348 b .L690 5349.L708: 5350 movs r3, #2 5351 mov r10, r6 5352 str r3, [sp, #8] 5353 b .L693 5354.L697: 5355 movs r3, #20 5356 ldr r1, [sp, #4] 5357 mul r2, r3, r8 5358 movs r3, #0 5359 str r3, [fp, r2] 5360 ldr r3, .L725+32 5361 ldrb r0, [r3, r8] @ zero_extendqisi2 5362 bl V2P_block 5363 str r0, [sp, #12] 5364 cbz r6, .L695 5365 bl IsBlkInVendorPart 5366 cbnz r0, .L696 5367.L695: 5368 ldr r0, [sp, #12] 5369 bl FtlBbmIsBadBlock 5370 cbnz r0, .L696 5371 movs r3, #20 5372 mla r1, r3, r5, fp 5373 ldr r3, [sp, #12] 5374 add r2, r7, r3, lsl #10 5375 ldr r3, [sp, #20] 5376 str r2, [r1, #4] 5377 str r3, [r1, #8] 5378 ldr r3, [sp, #28] 5379 mul r2, r3, r5 5380 ldr r3, [sp, #24] 5381 adds r5, r5, #1 5382 uxth r5, r5 5383 bic r2, r2, #3 5384 add r2, r2, r3 5385 str r2, [r1, #12] 5386.L696: 5387 add r8, r8, #1 5388 b .L694 5389.L701: 5390 mul r2, r3, r8 5391 ldr r1, [fp] 5392 adds r0, r1, r2 5393 ldr r2, [r1, r2] 5394 cbz r2, .L700 5395 ldr r0, [r0, #4] 5396 adds r4, r4, #1 5397 str r3, [sp, #12] 5398 uxth r4, r4 5399 ubfx r0, r0, #10, #16 5400 bl FtlBbmMapBadBlock 5401 ldr r3, [sp, #12] 5402.L700: 5403 add r8, r8, #1 5404 b .L699 5405.L705: 5406 cbz r6, .L704 5407 mul r3, fp, r7 5408 ldr r2, [r8] 5409 adds r1, r2, r3 5410 ldr r3, [r2, r3] 5411 cbnz r3, .L704 5412 ldr r0, [r1, #4] 5413 movs r1, #1 5414 ubfx r0, r0, #10, #16 5415 bl FtlFreeSysBlkQueueIn 5416.L704: 5417 adds r7, r7, #1 5418 b .L703 5419.L726: 5420 .align 2 5421.L725: 5422 .word .LANCHOR99 5423 .word .LANCHOR79 5424 .word .LANCHOR3 5425 .word .LANCHOR110 5426 .word .LANCHOR115 5427 .word .LANCHOR24 5428 .word .LANCHOR20 5429 .word .LANCHOR109 5430 .word .LANCHOR13 5431 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 5432 .section .text.FlashTestBlk,"ax",%progbits 5433 .align 1 5434 .global FlashTestBlk 5435 .syntax unified 5436 .thumb 5437 .thumb_func 5438 .fpu softvfp 5439 .type FlashTestBlk, %function 5440FlashTestBlk: 5441 @ args = 0, pretend = 0, frame = 88 5442 @ frame_needed = 0, uses_anonymous_args = 0 5443 cmp r0, #11 5444 push {r4, r5, lr} 5445 mov r5, r0 5446 sub sp, sp, #92 5447 bls .L730 5448 ldr r4, .L732 5449 add r0, sp, #24 5450 movs r2, #32 5451 movs r1, #165 5452 str r0, [sp, #16] 5453 lsls r5, r5, #10 5454 ldr r3, [r4] 5455 str r3, [sp, #12] 5456 bl ftl_memset 5457 movs r2, #8 5458 movs r1, #90 5459 ldr r0, [r4] 5460 bl ftl_memset 5461 movs r2, #1 5462 add r0, sp, #4 5463 mov r1, r2 5464 str r5, [sp, #8] 5465 bl FlashEraseBlocks 5466 movs r3, #1 5467 add r0, sp, #4 5468 mov r2, r3 5469 mov r1, r3 5470 bl FlashProgPages 5471 ldr r3, [sp, #4] 5472 cbnz r3, .L731 5473 adds r3, r5, #1 5474 add r0, sp, #4 5475 str r3, [sp, #8] 5476 movs r3, #1 5477 mov r2, r3 5478 mov r1, r3 5479 bl FlashProgPages 5480 ldr r4, [sp, #4] 5481 adds r4, r4, #0 5482 it ne 5483 movne r4, #1 5484 negs r4, r4 5485.L729: 5486 movs r2, #1 5487 movs r1, #0 5488 add r0, sp, #4 5489 str r5, [sp, #8] 5490 bl FlashEraseBlocks 5491.L727: 5492 mov r0, r4 5493 add sp, sp, #92 5494 @ sp needed 5495 pop {r4, r5, pc} 5496.L731: 5497 mov r4, #-1 5498 b .L729 5499.L730: 5500 movs r4, #0 5501 b .L727 5502.L733: 5503 .align 2 5504.L732: 5505 .word .LANCHOR112 5506 .size FlashTestBlk, .-FlashTestBlk 5507 .section .text.FtlBbmTblFlush,"ax",%progbits 5508 .align 1 5509 .global FtlBbmTblFlush 5510 .syntax unified 5511 .thumb 5512 .thumb_func 5513 .fpu softvfp 5514 .type FtlBbmTblFlush, %function 5515FtlBbmTblFlush: 5516 @ args = 0, pretend = 0, frame = 8 5517 @ frame_needed = 0, uses_anonymous_args = 0 5518 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 5519 movs r1, #0 5520 ldr r7, .L748 5521 movs r4, #0 5522 ldr r5, .L748+4 5523 ldr r3, [r7] 5524 ldr fp, .L748+52 5525 ldr r6, .L748+8 5526 str r3, [r5, #12] 5527 ldr r3, .L748+12 5528 ldr r0, [fp] 5529 ldr r8, .L748+56 5530 ldrh r2, [r3] 5531 str r0, [r5, #8] 5532 bl ftl_memset 5533 str r7, [sp, #12] 5534 ldr r7, .L748+16 5535.L735: 5536 ldrh r3, [r7] 5537 cmp r4, r3 5538 blt .L736 5539 ldr r6, [r5, #12] 5540 movs r2, #16 5541 ldr r4, .L748+20 5542 movs r1, #255 5543 movs r7, #0 5544 mov r0, r6 5545 mov r8, r7 5546 bl ftl_memset 5547 movw r3, #61649 5548 mov r10, r4 5549 strh r3, [r6] @ movhi 5550 ldr r3, [r4, #8] 5551 str r3, [r6, #4] 5552 ldrh r3, [r4] 5553 strh r3, [r6, #2] @ movhi 5554 ldrh r3, [r4, #4] 5555 strh r3, [r6, #8] @ movhi 5556 ldrh r3, [r4, #6] 5557 strh r3, [r6, #10] @ movhi 5558 ldr r3, .L748+24 5559 ldr r3, [r3] 5560 strh r3, [r6, #12] @ movhi 5561 ldr r3, .L748+28 5562 ldr r3, [r3] 5563 strh r3, [r6, #14] @ movhi 5564.L737: 5565 ldr r3, [fp] 5566 ldrh r2, [r4, #2] 5567 ldrh r1, [r4] 5568 str r3, [r5, #8] 5569 ldr r3, [sp, #12] 5570 ldrh r0, [r6, #10] 5571 ldr r3, [r3] 5572 str r3, [r5, #12] 5573 movs r3, #0 5574 str r3, [r5] 5575 orr r3, r2, r1, lsl #10 5576 str r3, [r5, #4] 5577 ldrh r3, [r4, #4] 5578 str r0, [sp] 5579 ldr r0, .L748+32 5580 bl printf 5581 ldr r3, .L748+36 5582 ldrh r2, [r4, #2] 5583 ldrh r3, [r3] 5584 subs r3, r3, #1 5585 cmp r2, r3 5586 blt .L738 5587 ldr r3, [r4, #8] 5588 mov r1, #0 @ movhi 5589 ldrh r2, [r4] 5590 strh r1, [r4, #2] @ movhi 5591 adds r3, r3, #1 5592 str r3, [r4, #8] 5593 str r3, [r6, #4] 5594 strh r2, [r6, #8] @ movhi 5595 ldrh r3, [r4, #4] 5596 strh r2, [r4, #4] @ movhi 5597 ldr r2, .L748+40 5598 strh r3, [r4] @ movhi 5599 lsls r3, r3, #10 5600 ldr r0, [r2] 5601 movs r2, #1 5602 str r3, [r5, #4] 5603 mov r1, r2 5604 str r3, [r0, #4] 5605 bl FlashEraseBlocks 5606.L738: 5607 movs r3, #1 5608 ldr r0, .L748+4 5609 mov r2, r3 5610 mov r1, r3 5611 bl FlashProgPages 5612 ldrh r3, [r10, #2] 5613 adds r3, r3, #1 5614 strh r3, [r10, #2] @ movhi 5615 ldr r3, [r5] 5616 adds r2, r3, #1 5617 bne .L739 5618 adds r7, r7, #1 5619 ldr r1, [r5, #4] 5620 uxth r7, r7 5621 ldr r0, .L748+44 5622 bl printf 5623 cmp r7, #3 5624 bls .L737 5625 mov r2, r7 5626 ldr r1, [r5, #4] 5627 ldr r0, .L748+48 5628 bl printf 5629.L741: 5630 b .L741 5631.L736: 5632 ldrh r2, [r8] 5633 ldr r3, [r5, #8] 5634 ldr r1, [r6, #4]! 5635 mul r0, r2, r4 5636 lsls r2, r2, #2 5637 adds r4, r4, #1 5638 add r0, r3, r0, lsl #2 5639 bl ftl_memcpy 5640 b .L735 5641.L739: 5642 add r8, r8, #1 5643 cmp r8, #1 5644 beq .L737 5645 cmp r3, #256 5646 beq .L737 5647 movs r0, #0 5648 add sp, sp, #16 5649 @ sp needed 5650 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5651.L749: 5652 .align 2 5653.L748: 5654 .word .LANCHOR114 5655 .word .LANCHOR138 5656 .word .LANCHOR37+24 5657 .word .LANCHOR23 5658 .word .LANCHOR10 5659 .word .LANCHOR37 5660 .word .LANCHOR2 5661 .word .LANCHOR143 5662 .word .LC18 5663 .word .LANCHOR20 5664 .word .LANCHOR79 5665 .word .LC19 5666 .word .LC20 5667 .word .LANCHOR106 5668 .word .LANCHOR127 5669 .size FtlBbmTblFlush, .-FtlBbmTblFlush 5670 .section .text.allocate_data_superblock,"ax",%progbits 5671 .align 1 5672 .global allocate_data_superblock 5673 .syntax unified 5674 .thumb 5675 .thumb_func 5676 .fpu softvfp 5677 .type allocate_data_superblock, %function 5678allocate_data_superblock: 5679 @ args = 0, pretend = 0, frame = 8 5680 @ frame_needed = 0, uses_anonymous_args = 0 5681 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 5682 mov r4, r0 5683.L751: 5684 ldr r3, .L790 5685 ldr r8, .L790+68 5686 ldrh r3, [r3] 5687 ldr r10, .L790+72 5688 ldrh r2, [r8] 5689 add r3, r3, r2 5690 ldrh r2, [r10] 5691 cmp r3, r2 5692 ble .L752 5693 mov r2, #2656 5694 ldr r1, .L790+4 5695 ldr r0, .L790+8 5696 bl printf 5697.L752: 5698 ldr r3, .L790+12 5699 cmp r4, r3 5700 bne .L778 5701 ldr r3, .L790 5702 ldr r2, .L790+16 5703 ldrh r3, [r3] 5704 ldr r2, [r2] 5705 lsrs r1, r3, #1 5706 muls r2, r3, r2 5707 adds r1, r1, #1 5708 add r1, r1, r2, lsr #2 5709 uxth r1, r1 5710 cbz r1, .L753 5711 subs r1, r1, #1 5712 uxth r1, r1 5713.L753: 5714 ldr r0, .L790+20 5715 bl List_pop_index_node 5716 ldr r3, .L790 5717 mov r5, r0 5718 uxth r7, r0 5719 ldrh r3, [r3] 5720 cbnz r3, .L754 5721 movw r2, #2665 5722 ldr r1, .L790+4 5723 ldr r0, .L790+8 5724 bl printf 5725.L754: 5726 ldr r3, .L790 5727 ldr r2, .L790 5728 ldrh r3, [r3] 5729 subs r3, r3, #1 5730 strh r3, [r2] @ movhi 5731 ldrh r3, [r10] 5732 cmp r3, r7 5733 bls .L751 5734 uxth r5, r5 5735 lsls r3, r5, #1 5736 str r3, [sp] 5737 ldr r3, .L790+24 5738 ldr r3, [r3] 5739 ldrh r6, [r3, r5, lsl #1] 5740 cmp r6, #0 5741 bne .L751 5742 strh r7, [r4] @ movhi 5743 mov r0, r4 5744 bl make_superblock 5745 ldrb r3, [r4, #7] @ zero_extendqisi2 5746 cbnz r3, .L756 5747 ldr r3, .L790+24 5748 movw r2, #65535 5749 mov r0, r7 5750 ldr r3, [r3] 5751 strh r2, [r3, r5, lsl #1] @ movhi 5752 bl INSERT_DATA_LIST 5753 ldr r3, .L790 5754 ldrh r2, [r8] 5755 ldrh r3, [r3] 5756 add r3, r3, r2 5757 ldrh r2, [r10] 5758 cmp r3, r2 5759 ble .L751 5760 movw r2, #2679 5761 ldr r1, .L790+4 5762 ldr r0, .L790+8 5763 bl printf 5764 b .L751 5765.L778: 5766 movs r1, #0 5767 b .L753 5768.L756: 5769 ldr r3, .L790 5770 ldrh r2, [r8] 5771 ldrh r3, [r3] 5772 add r3, r3, r2 5773 ldrh r2, [r10] 5774 cmp r3, r2 5775 ble .L758 5776 movw r2, #2682 5777 ldr r1, .L790+4 5778 ldr r0, .L790+8 5779 bl printf 5780.L758: 5781 ldr r3, .L790+28 5782 add lr, r4, #16 5783 ldr r2, .L790+32 5784 mov r8, #0 5785 ldr ip, [r3] 5786 ldrh r0, [r2] 5787 movs r2, #20 5788 mov r3, ip 5789 mla r0, r2, r0, ip 5790.L759: 5791 cmp r0, r3 5792 bne .L761 5793 cbnz r6, .L762 5794 movw r2, #2693 5795 ldr r1, .L790+4 5796 ldr r0, .L790+8 5797 bl printf 5798.L762: 5799 ldr r3, .L790+36 5800 ldrh r3, [r3] 5801 cmp r3, r7 5802 bne .L763 5803 movw r2, #2695 5804 ldr r1, .L790+4 5805 ldr r0, .L790+8 5806 bl printf 5807.L763: 5808 ldrb r2, [r4, #8] @ zero_extendqisi2 5809 ldr r3, .L790+40 5810 ldr fp, .L790+76 5811 ldr r8, .L790+80 5812 ldr r1, [r3] 5813 cmp r2, #0 5814 bne .L764 5815 ldrh r2, [r1, r5, lsl #1] 5816 cmp r2, #0 5817 beq .L765 5818 ldr r0, .L790+44 5819 ldrh r0, [r0] 5820 add r2, r2, r0 5821.L788: 5822 strh r2, [r1, r5, lsl #1] @ movhi 5823 mov r0, r7 5824 ldr r2, [fp] 5825 movs r1, #0 5826 str r3, [sp, #4] 5827 adds r2, r2, #1 5828 str r2, [fp] 5829 bl ftl_set_blk_mode 5830.L789: 5831 ldr r3, [sp, #4] 5832 ldr r0, [fp] 5833 ldr r3, [r3] 5834 ldrh r1, [r3, r5, lsl #1] 5835 ldr r3, .L790+48 5836 ldr r2, [r3] 5837 cmp r1, r2 5838 it hi 5839 strhi r1, [r3] 5840 ldr r3, .L790+44 5841 ldrh r1, [r10] 5842 ldrh r2, [r3] 5843 ldr r3, [r8] 5844 mla r0, r0, r2, r3 5845 bl __aeabi_uidiv 5846 ldr r3, .L790+52 5847 ldr ip, .L790+84 5848 str r0, [r3] 5849 ldr r3, .L790+56 5850 ldr r2, [r3] 5851 ldr r3, [r2, #16] 5852 adds r3, r3, #1 5853 str r3, [r2, #16] 5854 movs r2, #20 5855 ldr r3, .L790+28 5856 ldr r0, [r3] 5857 adds r3, r0, #4 5858 mla r2, r2, r6, r0 5859 adds r2, r2, #24 5860.L769: 5861 adds r3, r3, #20 5862 cmp r2, r3 5863 bne .L770 5864 mov r2, r6 5865 ldrb r1, [r4, #8] @ zero_extendqisi2 5866 mov r8, #0 5867 bl FlashEraseBlocks 5868 mov r10, r8 5869 movs r3, #20 5870.L771: 5871 uxth r2, r8 5872 cmp r6, r2 5873 bhi .L773 5874 cmp r10, #0 5875 beq .L774 5876 mov r0, r7 5877 bl update_multiplier_value 5878 bl FtlBbmTblFlush 5879.L774: 5880 ldrb r2, [r4, #7] @ zero_extendqisi2 5881 cmp r2, #0 5882 bne .L775 5883 ldr r3, .L790+24 5884 movw r2, #65535 5885 ldr r3, [r3] 5886 strh r2, [r3, r5, lsl #1] @ movhi 5887 b .L751 5888.L761: 5889 ldrh r1, [lr], #2 5890 movw fp, #65535 5891 str r8, [r3, #8] 5892 str r8, [r3, #12] 5893 cmp r1, fp 5894 beq .L760 5895 mla fp, r2, r6, ip 5896 adds r6, r6, #1 5897 lsls r1, r1, #10 5898 uxth r6, r6 5899 str r1, [fp, #4] 5900.L760: 5901 adds r3, r3, #20 5902 b .L759 5903.L765: 5904 movs r2, #2 5905 b .L788 5906.L764: 5907 ldrh r2, [r1, r5, lsl #1] 5908 mov r0, r7 5909 str r3, [sp, #4] 5910 adds r2, r2, #1 5911 strh r2, [r1, r5, lsl #1] @ movhi 5912 ldr r2, [r8] 5913 adds r2, r2, #1 5914 str r2, [r8] 5915 bl ftl_set_blk_mode.part.6 5916 b .L789 5917.L770: 5918 ldr r1, [r3, #-20] 5919 and r1, r1, ip 5920 str r1, [r3, #-20] 5921 b .L769 5922.L773: 5923 ldr r1, .L790+28 5924 mul r2, r3, r8 5925 ldr r1, [r1] 5926 ldr fp, [r1, r2] 5927 adds r0, r1, r2 5928 cmp fp, #-1 5929 bne .L772 5930 ldr r0, [r0, #4] 5931 add r10, r10, #1 5932 str r3, [sp, #4] 5933 ubfx r0, r0, #10, #16 5934 bl FtlBbmMapBadBlock 5935 add r2, r4, r8, lsl #1 5936 ldr r3, [sp, #4] 5937 strh fp, [r2, #16] @ movhi 5938 ldrb r2, [r4, #7] @ zero_extendqisi2 5939 subs r2, r2, #1 5940 strb r2, [r4, #7] 5941.L772: 5942 add r8, r8, #1 5943 b .L771 5944.L775: 5945 ldr r3, .L790+60 5946 ldr r1, .L790+64 5947 ldrh r3, [r3] 5948 strh r7, [r4] @ movhi 5949 smulbb r3, r3, r2 5950 movs r2, #0 5951 strh r2, [r4, #2] @ movhi 5952 strb r2, [r4, #6] 5953 ldr r2, [r1] 5954 uxth r3, r3 5955 strh r3, [r4, #4] @ movhi 5956 str r2, [r4, #12] 5957 adds r2, r2, #1 5958 str r2, [r1] 5959 ldr r2, .L790+24 5960 ldr r1, [sp] 5961 ldr r2, [r2] 5962 strh r3, [r2, r1] @ movhi 5963 ldrh r3, [r4, #4] 5964 cbz r3, .L776 5965 ldrb r3, [r4, #7] @ zero_extendqisi2 5966 cbnz r3, .L777 5967.L776: 5968 movw r2, #2748 5969 ldr r1, .L790+4 5970 ldr r0, .L790+8 5971 bl printf 5972.L777: 5973 movs r0, #0 5974 add sp, sp, #8 5975 @ sp needed 5976 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5977.L791: 5978 .align 2 5979.L790: 5980 .word .LANCHOR48 5981 .word .LANCHOR144 5982 .word .LC1 5983 .word .LANCHOR53 5984 .word .LANCHOR95 5985 .word .LANCHOR46 5986 .word .LANCHOR42 5987 .word .LANCHOR79 5988 .word .LANCHOR3 5989 .word .LANCHOR145 5990 .word .LANCHOR47 5991 .word .LANCHOR14 5992 .word .LANCHOR92 5993 .word .LANCHOR143 5994 .word .LANCHOR118 5995 .word .LANCHOR19 5996 .word .LANCHOR82 5997 .word .LANCHOR44 5998 .word .LANCHOR5 5999 .word .LANCHOR90 6000 .word .LANCHOR91 6001 .word -1024 6002 .size allocate_data_superblock, .-allocate_data_superblock 6003 .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits 6004 .align 1 6005 .global FtlGcFreeBadSuperBlk 6006 .syntax unified 6007 .thumb 6008 .thumb_func 6009 .fpu softvfp 6010 .type FtlGcFreeBadSuperBlk, %function 6011FtlGcFreeBadSuperBlk: 6012 @ args = 0, pretend = 0, frame = 8 6013 @ frame_needed = 0, uses_anonymous_args = 0 6014 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6015 mov r10, r0 6016 ldr r4, .L804 6017 ldrh r3, [r4] 6018 cbz r3, .L793 6019 ldr r8, .L804+12 6020 movs r7, #0 6021.L794: 6022 ldr r3, .L804+4 6023 ldrh r2, [r3] 6024 uxth r3, r7 6025 cmp r2, r3 6026 bhi .L800 6027 bl FtlGcReFreshBadBlk 6028.L793: 6029 movs r0, #0 6030 add sp, sp, #8 6031 @ sp needed 6032 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6033.L800: 6034 ldr r2, .L804+8 6035 uxth r3, r7 6036 mov r1, r10 6037 mov fp, #0 6038 ldrb r0, [r2, r3] @ zero_extendqisi2 6039 bl V2P_block 6040 mov r1, r0 6041.L795: 6042 ldrh r3, [r4] 6043 uxth r5, fp 6044 cmp r3, r5 6045 bhi .L799 6046 adds r7, r7, #1 6047 b .L794 6048.L799: 6049 uxth r6, fp 6050 ldrh r3, [r8, r6, lsl #1] 6051 cmp r3, r1 6052 bne .L796 6053 mov r0, r1 6054 str r1, [sp, #4] 6055 bl FtlBbmMapBadBlock 6056 bl FtlBbmTblFlush 6057 ldrh r2, [r4] 6058 add r3, r8, r6, lsl #1 6059 ldr r1, [sp, #4] 6060.L797: 6061 cmp r5, r2 6062 bcc .L798 6063 subs r2, r2, #1 6064 strh r2, [r4] @ movhi 6065.L796: 6066 add fp, fp, #1 6067 b .L795 6068.L798: 6069 ldrh r0, [r3, #2]! 6070 adds r5, r5, #1 6071 uxth r5, r5 6072 strh r0, [r3, #-2] @ movhi 6073 b .L797 6074.L805: 6075 .align 2 6076.L804: 6077 .word .LANCHOR74 6078 .word .LANCHOR3 6079 .word .LANCHOR13 6080 .word .LANCHOR75 6081 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 6082 .section .text.update_vpc_list,"ax",%progbits 6083 .align 1 6084 .global update_vpc_list 6085 .syntax unified 6086 .thumb 6087 .thumb_func 6088 .fpu softvfp 6089 .type update_vpc_list, %function 6090update_vpc_list: 6091 @ args = 0, pretend = 0, frame = 0 6092 @ frame_needed = 0, uses_anonymous_args = 0 6093 push {r3, r4, r5, lr} 6094 mov r4, r0 6095 ldr r3, .L818 6096 ldr r3, [r3] 6097 ldrh r3, [r3, r0, lsl #1] 6098 cmp r3, #0 6099 bne .L807 6100 ldr r3, .L818+4 6101 ldrh r2, [r3] 6102 cmp r2, r0 6103 itt eq 6104 movweq r2, #65535 6105 strheq r2, [r3] @ movhi 6106 ldr r3, .L818+8 6107 ldrh r2, [r3] 6108 cmp r2, r0 6109 itt eq 6110 movweq r2, #65535 6111 strheq r2, [r3] @ movhi 6112 ldr r3, .L818+12 6113 ldrh r2, [r3] 6114 cmp r2, r0 6115 bne .L810 6116 movw r2, #65535 6117 strh r2, [r3] @ movhi 6118.L811: 6119 ldr r5, .L818+16 6120 mov r1, r4 6121 ldr r0, .L818+20 6122 bl List_remove_node 6123 ldrh r3, [r5] 6124 cbnz r3, .L813 6125 movw r2, #2824 6126 ldr r1, .L818+24 6127 ldr r0, .L818+28 6128 bl printf 6129.L813: 6130 ldrh r3, [r5] 6131 mov r0, r4 6132 subs r3, r3, #1 6133 strh r3, [r5] @ movhi 6134 bl free_data_superblock 6135 mov r0, r4 6136 bl FtlGcFreeBadSuperBlk 6137 ldr r3, .L818+32 6138 ldrh r2, [r5] 6139 ldrh r3, [r3] 6140 add r3, r3, r2 6141 ldr r2, .L818+36 6142 ldrh r2, [r2] 6143 cmp r3, r2 6144 ble .L817 6145 movw r2, #2827 6146 ldr r1, .L818+24 6147 ldr r0, .L818+28 6148 bl printf 6149.L817: 6150 movs r0, #1 6151 pop {r3, r4, r5, pc} 6152.L810: 6153 ldr r3, .L818+40 6154 ldrh r3, [r3] 6155 cmp r3, r0 6156 beq .L816 6157 ldr r3, .L818+44 6158 ldrh r3, [r3] 6159 cmp r3, r0 6160 beq .L816 6161 ldr r3, .L818+48 6162 ldrh r3, [r3] 6163 cmp r3, r0 6164 bne .L811 6165.L816: 6166 movs r0, #0 6167 pop {r3, r4, r5, pc} 6168.L807: 6169 bl List_update_data_list 6170 b .L816 6171.L819: 6172 .align 2 6173.L818: 6174 .word .LANCHOR42 6175 .word .LANCHOR72 6176 .word .LANCHOR73 6177 .word .LANCHOR145 6178 .word .LANCHOR44 6179 .word .LANCHOR41 6180 .word .LANCHOR146 6181 .word .LC1 6182 .word .LANCHOR48 6183 .word .LANCHOR5 6184 .word .LANCHOR51 6185 .word .LANCHOR52 6186 .word .LANCHOR53 6187 .size update_vpc_list, .-update_vpc_list 6188 .section .text.decrement_vpc_count,"ax",%progbits 6189 .align 1 6190 .global decrement_vpc_count 6191 .syntax unified 6192 .thumb 6193 .thumb_func 6194 .fpu softvfp 6195 .type decrement_vpc_count, %function 6196decrement_vpc_count: 6197 @ args = 0, pretend = 0, frame = 0 6198 @ frame_needed = 0, uses_anonymous_args = 0 6199 movw r3, #65535 6200 push {r4, r5, r6, lr} 6201 cmp r0, r3 6202 mov r4, r0 6203 beq .L821 6204 ldr r5, .L829 6205 ldr r3, [r5] 6206 ldrh r2, [r3, r0, lsl #1] 6207 cbnz r2, .L822 6208 mov r1, r0 6209 ldr r0, .L829+4 6210 bl printf 6211 ldr r3, [r5] 6212 ldrh r5, [r3, r4, lsl #1] 6213 cbz r5, .L823 6214.L827: 6215 movs r5, #0 6216.L820: 6217 mov r0, r5 6218 pop {r4, r5, r6, pc} 6219.L823: 6220 movw r2, #2842 6221.L828: 6222 ldr r1, .L829+8 6223 ldr r0, .L829+12 6224 bl printf 6225 b .L820 6226.L822: 6227 subs r2, r2, #1 6228 strh r2, [r3, r0, lsl #1] @ movhi 6229.L821: 6230 ldr r6, .L829+16 6231 movw r3, #65535 6232 ldrh r0, [r6] 6233 cmp r0, r3 6234 bne .L825 6235 strh r4, [r6] @ movhi 6236 b .L827 6237.L825: 6238 cmp r4, r0 6239 beq .L827 6240 bl update_vpc_list 6241 ldr r3, .L829+20 6242 adds r5, r0, #0 6243 ldr r2, .L829+24 6244 it ne 6245 movne r5, #1 6246 strh r4, [r6] @ movhi 6247 ldr r3, [r3] 6248 ldr r2, [r2] 6249 subs r3, r3, r2 6250 asrs r2, r3, #1 6251 ldr r3, .L829+28 6252 muls r3, r2, r3 6253 ldr r2, .L829 6254 ldr r2, [r2] 6255 uxth r1, r3 6256 ldrh r2, [r2, r1, lsl #1] 6257 cmp r2, #0 6258 bne .L820 6259 cmp r4, r1 6260 beq .L820 6261 movw r2, #2858 6262 b .L828 6263.L830: 6264 .align 2 6265.L829: 6266 .word .LANCHOR42 6267 .word .LC21 6268 .word .LANCHOR147 6269 .word .LC1 6270 .word .LANCHOR131 6271 .word .LANCHOR41 6272 .word .LANCHOR40 6273 .word -1431655765 6274 .size decrement_vpc_count, .-decrement_vpc_count 6275 .section .text.FtlSuperblockPowerLostFix,"ax",%progbits 6276 .align 1 6277 .global FtlSuperblockPowerLostFix 6278 .syntax unified 6279 .thumb 6280 .thumb_func 6281 .fpu softvfp 6282 .type FtlSuperblockPowerLostFix, %function 6283FtlSuperblockPowerLostFix: 6284 @ args = 0, pretend = 0, frame = 24 6285 @ frame_needed = 0, uses_anonymous_args = 0 6286 push {r4, r5, r6, r7, r8, lr} 6287 mov r3, #-1 6288 sub sp, sp, #24 6289 ldr r2, .L844 6290 movs r6, #0 6291 mov r4, r0 6292 str r3, [sp, #20] 6293 ldr r3, .L844+4 6294 ldr r5, [r2] 6295 mvn r2, #2 6296 ldr r8, .L844+16 6297 ldr r3, [r3] 6298 str r5, [sp, #16] 6299 str r3, [sp, #12] 6300 str r2, [r5, #8] 6301 mvn r2, #1 6302 str r2, [r5, #12] 6303 ldrh r2, [r0] 6304 strh r6, [r5] @ movhi 6305 strh r2, [r5, #2] @ movhi 6306 movw r2, #61589 6307 str r2, [r3] 6308 add r2, r2, #304087040 6309 add r2, r2, #1269760 6310 addw r2, r2, #1507 6311 str r2, [r3, #4] 6312 ldrh r3, [r0, #4] 6313 tst r3, #1 6314 ite eq 6315 moveq r7, #6 6316 movne r7, #7 6317.L837: 6318 ldrh r3, [r4, #4] 6319 cbnz r3, .L833 6320.L834: 6321 ldr r3, .L844+8 6322 ldrh r1, [r4] 6323 ldrh r0, [r4, #4] 6324 ldr r2, [r3] 6325 ldrh r3, [r2, r1, lsl #1] 6326 subs r3, r3, r0 6327 strh r3, [r2, r1, lsl #1] @ movhi 6328 ldr r3, .L844+12 6329 ldrh r3, [r3] 6330 strh r3, [r4, #2] @ movhi 6331 movs r3, #0 6332 strb r3, [r4, #6] 6333 strh r3, [r4, #4] @ movhi 6334 add sp, sp, #24 6335 @ sp needed 6336 pop {r4, r5, r6, r7, r8, pc} 6337.L833: 6338 mov r0, r4 6339 bl get_new_active_ppa 6340 str r0, [sp, #8] 6341 adds r0, r0, #1 6342 beq .L834 6343 ldr r3, [r8] 6344 movs r1, #1 6345 add r0, sp, #4 6346 str r3, [r5, #4] 6347 adds r3, r3, #1 6348 adds r2, r3, #1 6349 it eq 6350 moveq r3, r6 6351 str r3, [r8] 6352 movs r3, #0 6353 mov r2, r3 6354 bl FlashProgPages 6355 ldrh r0, [r4] 6356 bl decrement_vpc_count 6357 subs r7, r7, #1 6358 bne .L837 6359 b .L834 6360.L845: 6361 .align 2 6362.L844: 6363 .word .LANCHOR114 6364 .word .LANCHOR106 6365 .word .LANCHOR42 6366 .word .LANCHOR19 6367 .word .LANCHOR83 6368 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 6369 .section .text.FtlMakeBbt,"ax",%progbits 6370 .align 1 6371 .global FtlMakeBbt 6372 .syntax unified 6373 .thumb 6374 .thumb_func 6375 .fpu softvfp 6376 .type FtlMakeBbt, %function 6377FtlMakeBbt: 6378 @ args = 0, pretend = 0, frame = 8 6379 @ frame_needed = 0, uses_anonymous_args = 0 6380 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6381 movs r6, #0 6382 ldr r7, .L865 6383 bl FtlBbtMemInit 6384 sub r8, r7, #18 6385 bl FtlLoadFactoryBbt 6386.L847: 6387 ldr r3, .L865+4 6388 ldrh r3, [r3] 6389 cmp r6, r3 6390 bcc .L853 6391 ldr r5, .L865+8 6392 movs r4, #0 6393.L854: 6394 ldrh r3, [r5] 6395 uxth r0, r4 6396 adds r4, r4, #1 6397 cmp r3, r0 6398 bhi .L855 6399 ldr r4, .L865+12 6400 movw r6, #65535 6401 ldrh r5, [r4, #12] 6402 subs r5, r5, #1 6403 uxth r5, r5 6404.L856: 6405 ldrh r3, [r4, #12] 6406 subs r3, r3, #47 6407 cmp r3, r5 6408 bgt .L860 6409 mov r0, r5 6410 bl FtlBbmIsBadBlock 6411 cmp r0, #1 6412 beq .L857 6413 mov r0, r5 6414 bl FlashTestBlk 6415 cmp r0, #0 6416 beq .L858 6417 mov r0, r5 6418 bl FtlBbmMapBadBlock 6419.L857: 6420 subs r5, r5, #1 6421 uxth r5, r5 6422 b .L856 6423.L853: 6424 ldr r3, .L865+16 6425 ldr r5, .L865+20 6426 ldrh r2, [r8, #2]! 6427 ldr r4, .L865+24 6428 ldr r0, [r3] 6429 movw r3, #65535 6430 ldr r10, [r5] 6431 cmp r2, r3 6432 mov fp, r4 6433 ldr r3, .L865+28 6434 str r0, [r4, #8] 6435 str r10, [r4, #12] 6436 beq .L848 6437 ldrh r5, [r3] 6438 mov r0, r4 6439 str r3, [sp] 6440 mla r5, r6, r5, r2 6441 lsls r2, r5, #10 6442 str r2, [r4, #4] 6443 movs r2, #1 6444 mov r1, r2 6445 bl FlashReadPages 6446 ldr r3, [sp] 6447 ldr r1, [r4, #8] 6448 ldr r0, [r7] 6449 ldrh r2, [r3] 6450 adds r2, r2, #7 6451 asrs r2, r2, #3 6452 bl ftl_memcpy 6453.L849: 6454 uxth r0, r5 6455 adds r6, r6, #1 6456 adds r7, r7, #4 6457 bl FtlBbmMapBadBlock 6458 b .L847 6459.L848: 6460 mov r1, r6 6461 str r3, [sp] 6462 bl FlashGetBadBlockList 6463 ldr r0, [r4, #8] 6464 ldr r1, [r7] 6465 bl FtlBbt2Bitmap 6466 ldr r3, [sp] 6467 str r5, [sp, #4] 6468 ldrh r4, [r3] 6469 subs r4, r4, #1 6470 uxth r4, r4 6471.L850: 6472 ldr r3, [sp] 6473 ldrh r0, [r3] 6474 smlabb r0, r0, r6, r4 6475 uxth r0, r0 6476 bl FtlBbmIsBadBlock 6477 cmp r0, #1 6478 beq .L851 6479 ldr r3, [sp, #4] 6480 movs r2, #16 6481 movs r1, #0 6482 strh r4, [r8] @ movhi 6483 ldr r0, [r3] 6484 bl ftl_memset 6485 ldr r3, .L865+16 6486 mov r2, #4096 6487 movs r1, #0 6488 ldr r0, [r3] 6489 bl ftl_memset 6490 ldr r2, [sp] 6491 movw r3, #61664 6492 strh r3, [r10] @ movhi 6493 movs r3, #0 6494 str r3, [r10, #4] 6495 ldrh r5, [r2] 6496 ldrh r3, [r8] 6497 ldr r1, [r7] 6498 ldr r0, [fp, #8] 6499 strh r3, [r10, #2] @ movhi 6500 mla r5, r6, r5, r3 6501 lsls r3, r5, #10 6502 str r3, [fp, #4] 6503 ldr r3, .L865+32 6504 ldrh r2, [r3] 6505 lsls r2, r2, #2 6506 bl ftl_memcpy 6507 movs r2, #1 6508 ldr r0, .L865+24 6509 mov r1, r2 6510 bl FlashEraseBlocks 6511 movs r3, #1 6512 ldr r0, .L865+24 6513 mov r2, r3 6514 mov r1, r3 6515 bl FlashProgPages 6516 ldr r3, [fp] 6517 adds r3, r3, #1 6518 bne .L849 6519 uxth r0, r5 6520 bl FtlBbmMapBadBlock 6521 b .L850 6522.L851: 6523 subs r4, r4, #1 6524 uxth r4, r4 6525 b .L850 6526.L855: 6527 bl FtlBbmMapBadBlock 6528 b .L854 6529.L858: 6530 ldrh r3, [r4] 6531 cmp r3, r6 6532 bne .L859 6533 strh r5, [r4] @ movhi 6534 b .L857 6535.L859: 6536 strh r5, [r4, #4] @ movhi 6537.L860: 6538 ldr r3, .L865+36 6539 movs r5, #0 6540 str r5, [r4, #8] 6541 movs r1, #1 6542 movs r2, #2 6543 strh r5, [r4, #2] @ movhi 6544 ldr r0, [r3] 6545 ldrh r3, [r4] 6546 lsls r3, r3, #10 6547 str r3, [r0, #4] 6548 ldrh r3, [r4, #4] 6549 lsls r3, r3, #10 6550 str r3, [r0, #24] 6551 bl FlashEraseBlocks 6552 ldrh r0, [r4] 6553 bl FtlBbmMapBadBlock 6554 ldrh r0, [r4, #4] 6555 bl FtlBbmMapBadBlock 6556 bl FtlBbmTblFlush 6557 ldr r3, [r4, #8] 6558 ldrh r2, [r4, #4] 6559 strh r5, [r4, #2] @ movhi 6560 adds r3, r3, #1 6561 str r3, [r4, #8] 6562 ldrh r3, [r4] 6563 strh r2, [r4] @ movhi 6564 strh r3, [r4, #4] @ movhi 6565 bl FtlBbmTblFlush 6566 mov r0, r5 6567 add sp, sp, #8 6568 @ sp needed 6569 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6570.L866: 6571 .align 2 6572.L865: 6573 .word .LANCHOR37+28 6574 .word .LANCHOR10 6575 .word .LANCHOR25 6576 .word .LANCHOR37 6577 .word .LANCHOR106 6578 .word .LANCHOR114 6579 .word .LANCHOR138 6580 .word .LANCHOR17 6581 .word .LANCHOR127 6582 .word .LANCHOR79 6583 .size FtlMakeBbt, .-FtlMakeBbt 6584 .section .text.ftl_memcmp,"ax",%progbits 6585 .align 1 6586 .global ftl_memcmp 6587 .syntax unified 6588 .thumb 6589 .thumb_func 6590 .fpu softvfp 6591 .type ftl_memcmp, %function 6592ftl_memcmp: 6593 @ args = 0, pretend = 0, frame = 0 6594 @ frame_needed = 0, uses_anonymous_args = 0 6595 @ link register save eliminated. 6596 b memcmp 6597 .size ftl_memcmp, .-ftl_memcmp 6598 .section .text.js_hash,"ax",%progbits 6599 .align 1 6600 .global js_hash 6601 .syntax unified 6602 .thumb 6603 .thumb_func 6604 .fpu softvfp 6605 .type js_hash, %function 6606js_hash: 6607 @ args = 0, pretend = 0, frame = 0 6608 @ frame_needed = 0, uses_anonymous_args = 0 6609 ldr r3, .L871 6610 add r1, r1, r0 6611 push {r4, lr} 6612.L869: 6613 cmp r0, r1 6614 bne .L870 6615 mov r0, r3 6616 pop {r4, pc} 6617.L870: 6618 lsrs r2, r3, #2 6619 ldrb r4, [r0], #1 @ zero_extendqisi2 6620 add r2, r2, r3, lsl #5 6621 add r2, r2, r4 6622 eors r3, r3, r2 6623 b .L869 6624.L872: 6625 .align 2 6626.L871: 6627 .word 1204201446 6628 .size js_hash, .-js_hash 6629 .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits 6630 .align 1 6631 .global Ftl_write_map_blk_to_last_page 6632 .syntax unified 6633 .thumb 6634 .thumb_func 6635 .fpu softvfp 6636 .type Ftl_write_map_blk_to_last_page, %function 6637Ftl_write_map_blk_to_last_page: 6638 @ args = 0, pretend = 0, frame = 0 6639 @ frame_needed = 0, uses_anonymous_args = 0 6640 push {r3, r4, r5, r6, r7, r8, r10, lr} 6641 movw r2, #65535 6642 ldrh r3, [r0] 6643 mov r4, r0 6644 ldr r5, [r0, #12] 6645 cmp r3, r2 6646 bne .L874 6647 ldrh r3, [r0, #8] 6648 cbz r3, .L875 6649 movw r2, #641 6650 ldr r1, .L883 6651 ldr r0, .L883+4 6652 bl printf 6653.L875: 6654 ldrh r3, [r4, #8] 6655 adds r3, r3, #1 6656 strh r3, [r4, #8] @ movhi 6657 bl FtlFreeSysBlkQueueOut 6658 movs r3, #0 6659 strh r0, [r5] @ movhi 6660 strh r3, [r4, #2] @ movhi 6661 strh r3, [r4] @ movhi 6662 ldr r3, [r4, #28] 6663 adds r3, r3, #1 6664 str r3, [r4, #28] 6665.L876: 6666 movs r0, #0 6667 pop {r3, r4, r5, r6, r7, r8, r10, pc} 6668.L874: 6669 ldrh r7, [r5, r3, lsl #1] 6670 movs r1, #255 6671 ldrh r3, [r0, #2] 6672 ldr r6, .L883+8 6673 ldr r10, .L883+24 6674 ldr r8, [r0, #24] 6675 orr r3, r3, r7, lsl #10 6676 ldr r0, [r10] 6677 str r3, [r6, #4] 6678 ldr r3, .L883+12 6679 str r0, [r6, #8] 6680 ldr r5, [r3] 6681 ldr r3, [r4, #28] 6682 str r5, [r6, #12] 6683 str r3, [r5, #4] 6684 movw r3, #64245 6685 strh r3, [r5, #8] @ movhi 6686 ldrh r3, [r4, #4] 6687 strh r7, [r5, #2] @ movhi 6688 strh r3, [r5] @ movhi 6689 ldr r3, .L883+16 6690 ldrh r2, [r3] 6691 lsls r2, r2, #3 6692 bl ftl_memset 6693 ldrh ip, [r4, #6] 6694 movs r3, #0 6695 ldr r1, [r10] 6696 mov r2, r3 6697.L877: 6698 uxth r0, r3 6699 cmp ip, r0 6700 bhi .L879 6701 ldr r3, .L883+20 6702 ldr r0, [r6, #8] 6703 ldrh r1, [r3] 6704 bl js_hash 6705 movs r2, #1 6706 str r0, [r5, #12] 6707 movs r3, #0 6708 mov r1, r2 6709 ldr r0, .L883+8 6710 bl FlashProgPages 6711 ldrh r3, [r4, #2] 6712 mov r0, r4 6713 adds r3, r3, #1 6714 strh r3, [r4, #2] @ movhi 6715 bl ftl_map_blk_gc 6716 b .L876 6717.L879: 6718 ldr r0, [r8, r3, lsl #2] 6719 cmp r7, r0, lsr #10 6720 bne .L878 6721 adds r2, r2, #1 6722 uxth r2, r2 6723 str r3, [r1, r2, lsl #3] 6724 add lr, r1, r2, lsl #3 6725 ldr r0, [r8, r3, lsl #2] 6726 str r0, [lr, #4] 6727.L878: 6728 adds r3, r3, #1 6729 b .L877 6730.L884: 6731 .align 2 6732.L883: 6733 .word .LANCHOR148 6734 .word .LC1 6735 .word .LANCHOR138 6736 .word .LANCHOR114 6737 .word .LANCHOR20 6738 .word .LANCHOR23 6739 .word .LANCHOR106 6740 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 6741 .section .text.FtlMapWritePage,"ax",%progbits 6742 .align 1 6743 .global FtlMapWritePage 6744 .syntax unified 6745 .thumb 6746 .thumb_func 6747 .fpu softvfp 6748 .type FtlMapWritePage, %function 6749FtlMapWritePage: 6750 @ args = 0, pretend = 0, frame = 8 6751 @ frame_needed = 0, uses_anonymous_args = 0 6752 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6753 mov r4, r0 6754 ldr r8, .L909+32 6755 mov r7, r1 6756 movs r6, #0 6757 str r2, [sp] 6758 mov fp, r8 6759.L886: 6760 ldr r2, .L909 6761 ldr r3, [r2] 6762 adds r3, r3, #1 6763 str r3, [r2] 6764 ldrh r3, [r8] 6765 ldrh r2, [r4, #2] 6766 subs r3, r3, #1 6767 cmp r2, r3 6768 bge .L887 6769 ldrh r2, [r4] 6770 movw r3, #65535 6771 cmp r2, r3 6772 bne .L888 6773.L887: 6774 mov r0, r4 6775 bl Ftl_write_map_blk_to_last_page 6776.L888: 6777 ldrh r2, [r4] 6778 ldr r3, [r4, #12] 6779 ldrh r3, [r3, r2, lsl #1] 6780 cbnz r3, .L889 6781 mov r2, #700 6782 ldr r1, .L909+4 6783 ldr r0, .L909+8 6784 bl printf 6785.L889: 6786 ldrh r2, [r4] 6787 ldrh r3, [r4, #10] 6788 cmp r2, r3 6789 bcc .L890 6790 movw r2, #701 6791 ldr r1, .L909+4 6792 ldr r0, .L909+8 6793 bl printf 6794.L890: 6795 ldrh r2, [r4] 6796 movs r1, #0 6797 ldr r3, [r4, #12] 6798 ldr r5, .L909+12 6799 ldrh r3, [r3, r2, lsl #1] 6800 ldrh r2, [r4, #2] 6801 str r3, [sp, #4] 6802 orr r2, r2, r3, lsl #10 6803 ldr r3, [sp] 6804 str r2, [r5, #4] 6805 ldr r2, .L909+16 6806 str r3, [r5, #8] 6807 ldr r0, [r2] 6808 movs r2, #16 6809 str r0, [r5, #12] 6810 bl ftl_memset 6811 ldr r1, [r4, #28] 6812 ldr r10, [r5, #12] 6813 ldr r3, [sp, #4] 6814 ldr r0, [r5, #8] 6815 str r1, [r10, #4] 6816 ldrh r1, [r4, #4] 6817 strh r3, [r10, #2] @ movhi 6818 ldr r3, .L909+20 6819 strh r1, [r10] @ movhi 6820 strh r7, [r10, #8] @ movhi 6821 ldrh r1, [r3] 6822 bl js_hash 6823 movs r3, #1 6824 str r0, [r10, #12] 6825 mov r2, r3 6826 mov r1, r3 6827 mov r0, r5 6828 bl FlashProgPages 6829 ldrh r2, [r4, #2] 6830 ldr r1, [r5] 6831 adds r2, r2, #1 6832 uxth r2, r2 6833 adds r3, r1, #1 6834 strh r2, [r4, #2] @ movhi 6835 bne .L891 6836 ldr r1, [r5, #4] 6837 adds r6, r6, #1 6838 ldr r0, .L909+24 6839 uxth r6, r6 6840 bl printf 6841 ldrh r2, [r4, #2] 6842 cmp r2, #2 6843 ittt ls 6844 ldrhls r2, [fp] 6845 addls r2, r2, #-1 6846 strhls r2, [r4, #2] @ movhi 6847 cmp r6, #3 6848 bls .L893 6849 mov r2, r6 6850 ldr r1, [r5, #4] 6851 ldr r0, .L909+28 6852 bl printf 6853.L894: 6854 b .L894 6855.L893: 6856 ldr r3, [r4, #32] 6857 cmp r3, #0 6858 beq .L886 6859.L908: 6860 b .L908 6861.L891: 6862 cmp r2, #1 6863 beq .L897 6864 cmp r1, #256 6865 beq .L897 6866 ldr r0, [r4, #36] 6867 cbz r0, .L898 6868.L897: 6869 movs r3, #0 6870 str r3, [r4, #36] 6871 b .L886 6872.L898: 6873 ldr r2, [r5, #4] 6874 ldr r3, [r4, #24] 6875 str r2, [r3, r7, lsl #2] 6876 add sp, sp, #8 6877 @ sp needed 6878 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6879.L910: 6880 .align 2 6881.L909: 6882 .word .LANCHOR88 6883 .word .LANCHOR149 6884 .word .LC1 6885 .word .LANCHOR138 6886 .word .LANCHOR114 6887 .word .LANCHOR23 6888 .word .LC22 6889 .word .LC23 6890 .word .LANCHOR20 6891 .size FtlMapWritePage, .-FtlMapWritePage 6892 .section .text.load_l2p_region,"ax",%progbits 6893 .align 1 6894 .global load_l2p_region 6895 .syntax unified 6896 .thumb 6897 .thumb_func 6898 .fpu softvfp 6899 .type load_l2p_region, %function 6900load_l2p_region: 6901 @ args = 0, pretend = 0, frame = 8 6902 @ frame_needed = 0, uses_anonymous_args = 0 6903 ldr r3, .L918 6904 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6905 mov r5, r0 6906 mov r10, r1 6907 ldrh r2, [r3] 6908 str r3, [sp, #4] 6909 cmp r2, r0 6910 bcs .L912 6911 movw r2, #485 6912 ldr r1, .L918+4 6913 ldr r0, .L918+8 6914 bl printf 6915.L912: 6916 ldr fp, .L918+48 6917 movs r4, #12 6918 ldr r7, .L918+12 6919 ldr r3, [fp] 6920 ldr r8, [r3, r5, lsl #2] 6921 cmp r8, #0 6922 bne .L913 6923 mul r4, r4, r10 6924 ldr r2, [r7] 6925 movs r1, #255 6926 adds r0, r2, r4 6927 ldr r2, .L918+16 6928 ldr r0, [r0, #8] 6929 ldrh r2, [r2] 6930 bl ftl_memset 6931 ldr r2, [r7] 6932 adds r1, r2, r4 6933 strh r5, [r2, r4] @ movhi 6934 str r8, [r1, #4] 6935.L914: 6936 movs r0, #0 6937 add sp, sp, #8 6938 @ sp needed 6939 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6940.L913: 6941 mul r4, r4, r10 6942 ldr r2, [r7] 6943 ldr r6, .L918+20 6944 add r2, r2, r4 6945 mov r0, r6 6946 ldr r2, [r2, #8] 6947 str r8, [r6, #4] 6948 str r2, [r6, #8] 6949 ldr r2, .L918+24 6950 ldr r2, [r2] 6951 str r2, [r6, #12] 6952 movs r2, #1 6953 mov r1, r2 6954 bl FlashReadPages 6955 ldr r10, [r6, #12] 6956 ldrh r2, [r10, #8] 6957 cmp r2, r5 6958 beq .L915 6959 mov r2, r8 6960 mov r1, r5 6961 ldr r0, .L918+28 6962 bl printf 6963 movs r3, #4 6964 ldr r1, [r6, #12] 6965 mov r2, r3 6966 ldr r0, .L918+32 6967 bl rknand_print_hex 6968 ldr r3, [sp, #4] 6969 movs r2, #4 6970 ldr r1, [fp] 6971 ldr r0, .L918+36 6972 ldrh r3, [r3] 6973 bl rknand_print_hex 6974.L916: 6975 ldrh r3, [r10, #8] 6976 cmp r3, r5 6977 beq .L917 6978 mov r2, #508 6979 ldr r1, .L918+4 6980 ldr r0, .L918+8 6981 bl printf 6982.L917: 6983 ldr r3, [r7] 6984 movs r1, #0 6985 adds r2, r3, r4 6986 str r1, [r2, #4] 6987 strh r5, [r3, r4] @ movhi 6988 b .L914 6989.L915: 6990 ldr r2, [r6] 6991 cmp r2, #256 6992 bne .L916 6993 mov r2, r8 6994 mov r1, r5 6995 ldr r0, .L918+40 6996 bl printf 6997 ldr r3, [r7] 6998 mov r1, r5 6999 ldr r0, .L918+44 7000 add r3, r3, r4 7001 ldr r2, [r3, #8] 7002 bl FtlMapWritePage 7003 b .L916 7004.L919: 7005 .align 2 7006.L918: 7007 .word .LANCHOR32 7008 .word .LANCHOR150 7009 .word .LC1 7010 .word .LANCHOR55 7011 .word .LANCHOR23 7012 .word .LANCHOR138 7013 .word .LANCHOR114 7014 .word .LC24 7015 .word .LC13 7016 .word .LC25 7017 .word .LC26 7018 .word .LANCHOR129 7019 .word .LANCHOR124 7020 .size load_l2p_region, .-load_l2p_region 7021 .section .text.ftl_map_blk_gc,"ax",%progbits 7022 .align 1 7023 .global ftl_map_blk_gc 7024 .syntax unified 7025 .thumb 7026 .thumb_func 7027 .fpu softvfp 7028 .type ftl_map_blk_gc, %function 7029ftl_map_blk_gc: 7030 @ args = 0, pretend = 0, frame = 8 7031 @ frame_needed = 0, uses_anonymous_args = 0 7032 ldr r3, [r0, #24] 7033 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7034 mov r4, r0 7035 ldr r5, [r0, #12] 7036 str r3, [sp] 7037 bl ftl_free_no_use_map_blk 7038 ldrh r3, [r4, #10] 7039 ldrh r2, [r4, #8] 7040 subs r3, r3, #5 7041 cmp r2, r3 7042 blt .L921 7043 uxth r0, r0 7044 ldrh r8, [r5, r0, lsl #1] 7045 cmp r8, #0 7046 beq .L921 7047 ldr r3, [r4, #32] 7048 cbnz r3, .L921 7049 movs r2, #1 7050 str r2, [r4, #32] 7051 strh r3, [r5, r0, lsl #1] @ movhi 7052 ldrh r3, [r4, #8] 7053 ldrh r2, [r4, #2] 7054 subs r3, r3, #1 7055 strh r3, [r4, #8] @ movhi 7056 ldr r3, .L936 7057 ldrh r3, [r3] 7058 cmp r2, r3 7059 bcc .L922 7060 mov r0, r4 7061 bl ftl_map_blk_alloc_new_blk 7062.L922: 7063 ldr r5, .L936+4 7064 movs r6, #0 7065.L923: 7066 ldrh r3, [r4, #6] 7067 uxth r10, r6 7068 cmp r3, r10 7069 bhi .L930 7070 movs r1, #1 7071 mov r0, r8 7072 bl FtlFreeSysBlkQueueIn 7073 movs r3, #0 7074 str r3, [r4, #32] 7075.L921: 7076 ldr r3, .L936 7077 ldrh r2, [r4, #2] 7078 ldrh r3, [r3] 7079 cmp r2, r3 7080 bcc .L931 7081 mov r0, r4 7082 bl ftl_map_blk_alloc_new_blk 7083.L931: 7084 movs r0, #0 7085 add sp, sp, #8 7086 @ sp needed 7087 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7088.L930: 7089 ldr r3, [sp] 7090 uxth fp, r6 7091 add r3, r3, fp, lsl #2 7092 str r3, [sp, #4] 7093 ldr r3, [sp] 7094 ldr r2, [r3, fp, lsl #2] 7095 cmp r8, r2, lsr #10 7096 bne .L924 7097 ldr r3, .L936+8 7098 str r2, [r5, #4] 7099 movs r2, #1 7100 ldr r0, .L936+4 7101 ldr r1, [r3] 7102 str r1, [r5, #8] 7103 ldr r1, .L936+12 7104 ldr r7, [r1] 7105 mov r1, r2 7106 str r7, [r5, #12] 7107 bl FlashReadPages 7108 ldrh r2, [r7, #8] 7109 cmp r2, r10 7110 beq .L925 7111 movw r2, #611 7112 ldr r1, .L936+16 7113 ldr r0, .L936+20 7114 bl printf 7115.L925: 7116 ldr r2, [r5] 7117 adds r2, r2, #1 7118 bne .L926 7119.L928: 7120 ldr r2, [sp, #4] 7121 movs r3, #0 7122 str r3, [r2] 7123.L927: 7124 b .L927 7125.L926: 7126 ldrh r2, [r7, #8] 7127 cmp r2, r10 7128 bne .L928 7129 ldrh r1, [r7] 7130 ldrh r2, [r4, #4] 7131 cmp r1, r2 7132 bne .L928 7133 ldr r2, [r5, #8] 7134 mov r1, fp 7135 mov r0, r4 7136 bl FtlMapWritePage 7137.L924: 7138 adds r6, r6, #1 7139 b .L923 7140.L937: 7141 .align 2 7142.L936: 7143 .word .LANCHOR20 7144 .word .LANCHOR138 7145 .word .LANCHOR107 7146 .word .LANCHOR114 7147 .word .LANCHOR151 7148 .word .LC1 7149 .size ftl_map_blk_gc, .-ftl_map_blk_gc 7150 .section .text.flush_l2p_region,"ax",%progbits 7151 .align 1 7152 .global flush_l2p_region 7153 .syntax unified 7154 .thumb 7155 .thumb_func 7156 .fpu softvfp 7157 .type flush_l2p_region, %function 7158flush_l2p_region: 7159 @ args = 0, pretend = 0, frame = 0 7160 @ frame_needed = 0, uses_anonymous_args = 0 7161 push {r3, r4, r5, lr} 7162 movs r4, #12 7163 ldr r5, .L939 7164 muls r4, r0, r4 7165 ldr r0, .L939+4 7166 ldr r3, [r5] 7167 adds r2, r3, r4 7168 ldrh r1, [r3, r4] 7169 ldr r2, [r2, #8] 7170 bl FtlMapWritePage 7171 ldr r3, [r5] 7172 movs r0, #0 7173 add r4, r4, r3 7174 ldr r3, [r4, #4] 7175 bic r3, r3, #-2147483648 7176 str r3, [r4, #4] 7177 pop {r3, r4, r5, pc} 7178.L940: 7179 .align 2 7180.L939: 7181 .word .LANCHOR55 7182 .word .LANCHOR129 7183 .size flush_l2p_region, .-flush_l2p_region 7184 .section .text.l2p_flush,"ax",%progbits 7185 .align 1 7186 .global l2p_flush 7187 .syntax unified 7188 .thumb 7189 .thumb_func 7190 .fpu softvfp 7191 .type l2p_flush, %function 7192l2p_flush: 7193 @ args = 0, pretend = 0, frame = 0 7194 @ frame_needed = 0, uses_anonymous_args = 0 7195 push {r4, r5, r6, lr} 7196 movs r4, #0 7197 ldr r5, .L945 7198 ldr r6, .L945+4 7199.L942: 7200 ldrh r3, [r5] 7201 uxth r0, r4 7202 cmp r3, r0 7203 bhi .L944 7204 movs r0, #0 7205 pop {r4, r5, r6, pc} 7206.L944: 7207 ldr r2, [r6] 7208 uxth r3, r4 7209 movs r1, #12 7210 mla r3, r1, r3, r2 7211 ldr r3, [r3, #4] 7212 cmp r3, #0 7213 bge .L943 7214 bl flush_l2p_region 7215.L943: 7216 adds r4, r4, #1 7217 b .L942 7218.L946: 7219 .align 2 7220.L945: 7221 .word .LANCHOR33 7222 .word .LANCHOR55 7223 .size l2p_flush, .-l2p_flush 7224 .section .text.log2phys,"ax",%progbits 7225 .align 1 7226 .global log2phys 7227 .syntax unified 7228 .thumb 7229 .thumb_func 7230 .fpu softvfp 7231 .type log2phys, %function 7232log2phys: 7233 @ args = 0, pretend = 0, frame = 8 7234 @ frame_needed = 0, uses_anonymous_args = 0 7235 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7236 mov r7, r2 7237 ldr r4, .L960 7238 mov r10, r0 7239 mov r5, r1 7240 ldr r3, .L960+4 7241 ldr r2, [r4] 7242 ldrh fp, [r3] 7243 cmp r0, r2 7244 bcc .L948 7245 movw r2, #813 7246 ldr r1, .L960+8 7247 ldr r0, .L960+12 7248 bl printf 7249.L948: 7250 ldr r3, [r4] 7251 cmp r10, r3 7252 bcs .L949 7253 ldr r3, .L960+16 7254 add fp, fp, #7 7255 lsr r6, r10, fp 7256 movs r2, #0 7257 ldrh r1, [r3] 7258 uxth r6, r6 7259 ldr r3, .L960+20 7260 ldr r0, [r3] 7261 mov r8, r3 7262 movs r3, #12 7263.L950: 7264 uxth r4, r2 7265 cmp r4, r1 7266 bcc .L955 7267 str r3, [sp, #4] 7268 bl select_l2p_ram_region 7269 ldr r3, [sp, #4] 7270 mov r4, r0 7271 ldr r2, [r8] 7272 muls r3, r0, r3 7273 adds r1, r2, r3 7274 ldrh r2, [r2, r3] 7275 movw r3, #65535 7276 cmp r2, r3 7277 beq .L956 7278 ldr r3, [r1, #4] 7279 cmp r3, #0 7280 bge .L956 7281 bl flush_l2p_region 7282.L956: 7283 mov r1, r4 7284 mov r0, r6 7285 bl load_l2p_region 7286 b .L952 7287.L949: 7288 mov r0, #-1 7289 cbnz r7, .L947 7290 str r0, [r5] 7291.L947: 7292 add sp, sp, #8 7293 @ sp needed 7294 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7295.L955: 7296 adds r2, r2, #1 7297 mla ip, r3, r2, r0 7298 ldrh ip, [ip, #-12] 7299 cmp ip, r6 7300 bne .L950 7301.L952: 7302 movs r0, #1 7303 ldr r2, [r8] 7304 lsl r0, r0, fp 7305 movs r3, #12 7306 subs r0, r0, #1 7307 and r0, r0, r10 7308 uxth r0, r0 7309 mla r3, r3, r4, r2 7310 cbnz r7, .L953 7311 ldr r3, [r3, #8] 7312 ldr r3, [r3, r0, lsl #2] 7313 str r3, [r5] 7314.L954: 7315 ldr r2, [r8] 7316 movs r3, #12 7317 mla r4, r3, r4, r2 7318 ldr r3, [r4, #4] 7319 adds r2, r3, #1 7320 beq .L958 7321 adds r3, r3, #1 7322 str r3, [r4, #4] 7323.L958: 7324 movs r0, #0 7325 b .L947 7326.L953: 7327 ldr r1, [r5] 7328 ldr r2, [r3, #8] 7329 str r1, [r2, r0, lsl #2] 7330 ldr r2, [r3, #4] 7331 orr r2, r2, #-2147483648 7332 str r2, [r3, #4] 7333 ldr r3, .L960+24 7334 strh r6, [r3] @ movhi 7335 b .L954 7336.L961: 7337 .align 2 7338.L960: 7339 .word .LANCHOR152 7340 .word .LANCHOR22 7341 .word .LANCHOR153 7342 .word .LC1 7343 .word .LANCHOR33 7344 .word .LANCHOR55 7345 .word .LANCHOR56 7346 .size log2phys, .-log2phys 7347 .section .text.FtlReUsePrevPpa,"ax",%progbits 7348 .align 1 7349 .global FtlReUsePrevPpa 7350 .syntax unified 7351 .thumb 7352 .thumb_func 7353 .fpu softvfp 7354 .type FtlReUsePrevPpa, %function 7355FtlReUsePrevPpa: 7356 @ args = 0, pretend = 0, frame = 8 7357 @ frame_needed = 0, uses_anonymous_args = 0 7358 push {r0, r1, r4, r5, r6, r7, r8, lr} 7359 mov r6, r0 7360 ldr r5, .L972 7361 ubfx r0, r1, #10, #16 7362 str r1, [sp, #4] 7363 bl P2V_block_in_plane 7364 ldr r2, [r5] 7365 mov r7, r0 7366 ldrh r3, [r2, r0, lsl #1] 7367 cbnz r3, .L963 7368 ldr r2, .L972+4 7369 ldr r4, [r2] 7370 cmp r4, #0 7371 beq .L964 7372 ldr r2, .L972+8 7373 movw lr, #65535 7374 ldr ip, .L972+24 7375 ldr r0, .L972+12 7376 ldr r2, [r2] 7377 ldrh r1, [r0] 7378 mov r8, r0 7379 subs r4, r4, r2 7380 asrs r4, r4, #1 7381 mul r4, ip, r4 7382 mov ip, #6 7383 uxth r4, r4 7384.L965: 7385 uxth r0, r3 7386 cmp r1, r0 7387 bls .L964 7388 cmp r4, r7 7389 bne .L966 7390 mov r1, r4 7391 ldr r0, .L972+4 7392 bl List_remove_node 7393 ldrh r3, [r8] 7394 cbnz r3, .L967 7395 movw r2, #1733 7396 ldr r1, .L972+16 7397 ldr r0, .L972+20 7398 bl printf 7399.L967: 7400 ldrh r3, [r8] 7401 mov r0, r4 7402 subs r3, r3, #1 7403 strh r3, [r8] @ movhi 7404 bl INSERT_DATA_LIST 7405 ldr r2, [r5] 7406 ldrh r3, [r2, r7, lsl #1] 7407.L963: 7408 adds r3, r3, #1 7409 strh r3, [r2, r7, lsl #1] @ movhi 7410 b .L964 7411.L966: 7412 mul r4, ip, r4 7413 adds r3, r3, #1 7414 ldrh r4, [r2, r4] 7415 cmp r4, lr 7416 bne .L965 7417.L964: 7418 movs r2, #1 7419 add r1, sp, #4 7420 mov r0, r6 7421 bl log2phys 7422 add sp, sp, #8 7423 @ sp needed 7424 pop {r4, r5, r6, r7, r8, pc} 7425.L973: 7426 .align 2 7427.L972: 7428 .word .LANCHOR42 7429 .word .LANCHOR46 7430 .word .LANCHOR40 7431 .word .LANCHOR48 7432 .word .LANCHOR154 7433 .word .LC1 7434 .word -1431655765 7435 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 7436 .section .text.FtlRecoverySuperblock,"ax",%progbits 7437 .align 1 7438 .global FtlRecoverySuperblock 7439 .syntax unified 7440 .thumb 7441 .thumb_func 7442 .fpu softvfp 7443 .type FtlRecoverySuperblock, %function 7444FtlRecoverySuperblock: 7445 @ args = 0, pretend = 0, frame = 48 7446 @ frame_needed = 0, uses_anonymous_args = 0 7447 ldrh r3, [r0] 7448 movw r2, #65535 7449 push {r4, r5, r6, r7, r8, r10, fp, lr} 7450 mov r8, r0 7451 sub sp, sp, #48 7452 cmp r3, r2 7453 beq .L1106 7454 ldrh r3, [r0, #2] 7455 str r3, [sp, #4] 7456 ldrb r3, [r0, #6] @ zero_extendqisi2 7457 ldr r1, [sp, #4] 7458 str r3, [sp, #20] 7459 ldr r3, .L1115 7460 ldrh r3, [r3] 7461 cmp r3, r1 7462 mov r3, #0 7463 bne .L977 7464 strh r3, [r0, #4] @ movhi 7465.L1113: 7466 strb r3, [r8, #6] 7467.L1106: 7468 movs r0, #0 7469 add sp, sp, #48 7470 @ sp needed 7471 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7472.L977: 7473 ldrh r0, [r0, #16] 7474.L978: 7475 cmp r0, r2 7476 uxth r5, r3 7477 add r3, r3, #1 7478 beq .L979 7479 movs r1, #1 7480 bl FtlGetLastWrittenPage 7481 mov r4, r0 7482 adds r0, r0, #1 7483 beq .L980 7484 ldr r3, .L1115+4 7485 movs r2, #0 7486 mov r5, r2 7487 movw fp, #65535 7488 mov r10, #20 7489 ldrh ip, [r3] 7490 ldr r3, .L1115+8 7491 ldr r0, [r3] 7492 ldr r3, .L1115+12 7493 ldr r3, [r3] 7494 str r3, [sp, #8] 7495 ldr r3, .L1115+16 7496 ldrh r7, [r3] 7497 ldr r3, .L1115+20 7498 ldr r3, [r3] 7499 str r3, [sp, #12] 7500 ldr r3, .L1115+24 7501 ldrh lr, [r3] 7502 add r3, r8, #16 7503 str r3, [sp, #16] 7504 str r3, [sp] 7505.L981: 7506 uxth r3, r2 7507 cmp ip, r3 7508 bhi .L985 7509 movs r2, #0 7510 mov r1, r5 7511 bl FlashReadPages 7512 ldr r2, .L1115+28 7513 uxth r1, r4 7514 movw fp, #65535 7515 str r1, [sp, #12] 7516 ldr r3, [r2] 7517 subs r3, r3, #1 7518 str r3, [sp] 7519 ldr r3, .L1115+8 7520 ldr r10, [r3] 7521 movs r3, #0 7522 mov r7, r10 7523.L986: 7524 uxth r1, r3 7525 cmp r5, r1 7526 bhi .L991 7527 bne .L989 7528 adds r3, r4, #1 7529 uxth r3, r3 7530 str r3, [sp, #8] 7531.L1107: 7532 ldr r0, [r10, #4] 7533 ubfx r0, r0, #10, #16 7534 bl P2V_plane 7535 ldr r3, .L1115 7536 mov r10, r0 7537 ldr r2, [sp, #8] 7538 ldrh r3, [r3] 7539 cmp r3, r2 7540 bne .L993 7541 ldrh r3, [sp, #8] 7542 strh r3, [r8, #2] @ movhi 7543 movs r3, #0 7544 strb r3, [r8, #6] 7545 strh r3, [r8, #4] @ movhi 7546.L993: 7547 ldr r3, [sp, #8] 7548 ldr r2, [sp, #4] 7549 cmp r3, r2 7550 bne .L994 7551 ldr r3, [sp, #20] 7552 cmp r10, r3 7553 bne .L994 7554 ldr r1, [sp, #8] 7555 mov r2, r10 7556.L1114: 7557 mov r0, r8 7558 bl ftl_sb_update_avl_pages 7559 b .L1106 7560.L979: 7561 uxth r1, r3 7562 adds r1, r1, #8 7563 ldrh r0, [r8, r1, lsl #1] 7564 b .L978 7565.L980: 7566 ldr r3, [sp, #4] 7567 cbz r3, .L982 7568 mov r2, #1800 7569 ldr r1, .L1115+32 7570 ldr r0, .L1115+36 7571 bl printf 7572.L982: 7573 ldr r3, [sp, #20] 7574 cbz r3, .L983 7575 cmp r5, r3 7576 beq .L983 7577 movw r2, #1801 7578 ldr r1, .L1115+32 7579 ldr r0, .L1115+36 7580 bl printf 7581.L983: 7582 movs r3, #0 7583 strh r3, [r8, #2] @ movhi 7584 b .L1113 7585.L985: 7586 ldr r1, [sp] 7587 ldrh r3, [r1], #2 7588 cmp r3, fp 7589 str r1, [sp] 7590 beq .L984 7591 mla r1, r10, r5, r0 7592 ldr r6, [sp, #8] 7593 orr r3, r4, r3, lsl #10 7594 str r3, [r1, #4] 7595 mul r3, r7, r5 7596 bic r3, r3, #3 7597 add r3, r3, r6 7598 ldr r6, [sp, #12] 7599 str r3, [r1, #8] 7600 mul r3, lr, r5 7601 adds r5, r5, #1 7602 uxth r5, r5 7603 bic r3, r3, #3 7604 add r3, r3, r6 7605 str r3, [r1, #12] 7606.L984: 7607 adds r2, r2, #1 7608 b .L981 7609.L991: 7610 ldr r1, [r7] 7611 cbnz r1, .L987 7612 ldr r1, [r7, #12] 7613 ldr r6, [r1, #4] 7614 str r1, [sp, #8] 7615 adds r1, r6, #1 7616 beq .L988 7617 ldr r1, [r2] 7618 mov r0, r6 7619 bl ftl_cmp_data_ver 7620 cbz r0, .L988 7621 adds r6, r6, #1 7622 str r6, [r2] 7623.L988: 7624 ldr r1, [sp, #8] 7625 ldr r1, [r1] 7626 adds r1, r1, #1 7627 bne .L990 7628.L989: 7629 uxth r2, r4 7630 uxth r3, r3 7631 str r2, [sp, #8] 7632 movs r2, #20 7633 mla r10, r2, r3, r10 7634 b .L1107 7635.L987: 7636 ldr fp, [sp, #12] 7637.L990: 7638 adds r3, r3, #1 7639 adds r7, r7, #20 7640 b .L986 7641.L994: 7642 movw r3, #65535 7643 cmp fp, r3 7644 bne .L995 7645 ldrb r3, [r8, #8] @ zero_extendqisi2 7646 cmp r3, #0 7647 bne .L996 7648.L995: 7649 ldr r3, .L1115+40 7650 uxth r6, r4 7651 uxth r4, r4 7652 ldr r7, .L1115+8 7653 ldr r2, [r3] 7654 adds r2, r2, #1 7655 itt eq 7656 ldreq r2, [sp] 7657 streq r2, [r3] 7658 ldr r3, [sp, #4] 7659 adds r3, r3, #7 7660 cmp r4, r3 7661 itet gt 7662 subgt r4, r6, #7 7663 ldrle r4, [sp, #4] 7664 uxthgt r4, r4 7665.L999: 7666 cmp r4, r6 7667 bhi .L1009 7668 ldr r3, .L1115+4 7669 movw lr, #65535 7670 ldr r0, [r7] 7671 mov ip, #20 7672 ldrh fp, [r3] 7673 ldr r3, [sp, #16] 7674 str r3, [sp, #12] 7675 movs r3, #0 7676 mov r5, r3 7677 b .L1010 7678.L1001: 7679 ldr r1, [sp, #12] 7680 ldrh r2, [r1], #2 7681 cmp r2, lr 7682 str r1, [sp, #12] 7683 beq .L1000 7684 mla r1, ip, r5, r0 7685 adds r5, r5, #1 7686 orr r2, r4, r2, lsl #10 7687 uxth r5, r5 7688 str r2, [r1, #4] 7689.L1000: 7690 adds r3, r3, #1 7691.L1010: 7692 uxth r2, r3 7693 cmp fp, r2 7694 bhi .L1001 7695 mov r1, r5 7696 movs r2, #0 7697 bl FlashReadPages 7698 ldr r3, .L1115+40 7699 movs r1, #20 7700 movs r0, #0 7701 movw ip, #65535 7702 ldr r2, [r3] 7703 ldr r3, [r7] 7704 mla r5, r1, r5, r3 7705.L1002: 7706 cmp r5, r3 7707 bne .L1007 7708 cbz r0, .L1008 7709 ldr r3, .L1115+40 7710 str r2, [r3] 7711.L1008: 7712 adds r4, r4, #1 7713 uxth r4, r4 7714 b .L999 7715.L1116: 7716 .align 2 7717.L1115: 7718 .word .LANCHOR19 7719 .word .LANCHOR3 7720 .word .LANCHOR103 7721 .word .LANCHOR64 7722 .word .LANCHOR23 7723 .word .LANCHOR65 7724 .word .LANCHOR24 7725 .word .LANCHOR83 7726 .word .LANCHOR155 7727 .word .LC1 7728 .word .LANCHOR134 7729.L1007: 7730 ldr r1, [r3] 7731 cmp r1, #0 7732 beq .L1003 7733 cbz r0, .L996 7734.L1108: 7735 ldr r3, .L1117 7736 str r2, [r3] 7737.L996: 7738 ldr fp, [sp, #4] 7739 movs r2, #1 7740 ldr r6, .L1117+4 7741 ldr r3, .L1117+8 7742 strh r2, [r3] @ movhi 7743.L1011: 7744 ldr r3, .L1117+12 7745 movw lr, #65535 7746 ldr r0, [r6] 7747 movs r7, #20 7748 ldr r1, [sp, #16] 7749 ldrh r4, [r3] 7750 movs r3, #0 7751 str r3, [sp, #12] 7752.L1012: 7753 uxth r2, r3 7754 cmp r4, r2 7755 bhi .L1014 7756 movs r2, #0 7757 ldr r1, [sp, #12] 7758 bl FlashReadPages 7759 movs r3, #0 7760.L1112: 7761 str r3, [sp, #24] 7762 ldr r2, [sp, #12] 7763 ldrh r3, [sp, #24] 7764 cmp r2, r3 7765 bhi .L1043 7766 ldr r3, .L1117+16 7767 add fp, fp, #1 7768 uxth fp, fp 7769 ldrh r3, [r3] 7770 cmp r3, fp 7771 bne .L1011 7772 ldr r2, .L1117+12 7773 movw r0, #65535 7774 movs r3, #0 7775 strh fp, [r8, #2] @ movhi 7776 strh r3, [r8, #4] @ movhi 7777 ldrh r2, [r2] 7778.L1044: 7779 uxth r1, r3 7780 cmp r1, r2 7781 bcs .L1106 7782 ldr r1, [sp, #16] 7783 ldrh r4, [r1], #2 7784 cmp r4, r0 7785 str r1, [sp, #16] 7786 add r1, r3, #1 7787 bne .L1113 7788 mov r3, r1 7789 b .L1044 7790.L1003: 7791 ldr r1, [r3, #12] 7792 ldrh lr, [r1] 7793 cmp lr, ip 7794 beq .L1006 7795 ldr r1, [r1, #4] 7796 cmp r1, #-1 7797 itt ne 7798 movne r2, r1 7799 movne r0, #1 7800.L1006: 7801 adds r3, r3, #20 7802 b .L1002 7803.L1009: 7804 mov r2, #-1 7805 b .L1108 7806.L1014: 7807 ldrh r2, [r1], #2 7808 cmp r2, lr 7809 beq .L1013 7810 ldr r5, [sp, #12] 7811 orr r2, fp, r2, lsl #10 7812 mla ip, r7, r5, r0 7813 str r2, [ip, #4] 7814 mov r2, r5 7815 adds r2, r2, #1 7816 uxth r2, r2 7817 str r2, [sp, #12] 7818.L1013: 7819 adds r3, r3, #1 7820 b .L1012 7821.L1043: 7822 ldr r3, [sp, #24] 7823 movs r5, #20 7824 muls r5, r3, r5 7825 ldr r3, [r6] 7826 str r3, [sp, #28] 7827 adds r7, r3, r5 7828 ldr r4, [r7, #4] 7829 ubfx r0, r4, #10, #16 7830 str r4, [sp, #44] 7831 bl P2V_plane 7832 ldr r3, [sp, #4] 7833 cmp fp, r3 7834 bcc .L1016 7835 ldr r3, [sp, #28] 7836 bne .L1017 7837 ldr r2, [sp, #20] 7838 cmp r2, r0 7839 bhi .L1016 7840.L1017: 7841 ldr r2, [sp, #8] 7842 cmp fp, r2 7843 bne .L1018 7844 cmp r10, r0 7845 beq .L1019 7846.L1018: 7847 ldr r3, [r3, r5] 7848 adds r3, r3, #1 7849 beq .L1020 7850 ldr r3, [r7, #12] 7851 movw r2, #61589 7852 ldrh r1, [r3] 7853 cmp r1, r2 7854 beq .L1021 7855 ldrh r0, [r8] 7856.L1109: 7857 bl decrement_vpc_count 7858 b .L1016 7859.L1021: 7860 ldr r2, [r3, #4] 7861 str r2, [sp] 7862 adds r2, r2, #1 7863 beq .L1022 7864 ldr r2, .L1117+20 7865 ldr r0, [sp] 7866 ldr r1, [r2] 7867 bl ftl_cmp_data_ver 7868 cbz r0, .L1022 7869 ldr r1, [sp] 7870 adds r1, r1, #1 7871 str r1, [r2] 7872.L1022: 7873 ldr r4, [r3, #8] 7874 add r1, sp, #40 7875 ldr r3, [r3, #12] 7876 movs r2, #0 7877 mov r0, r4 7878 str r3, [sp, #36] 7879 bl log2phys 7880 ldr r3, .L1117 7881 ldr r1, [r3] 7882 adds r3, r1, #1 7883 beq .L1023 7884 ldr r0, [sp] 7885 bl ftl_cmp_data_ver 7886 cmp r0, #0 7887 beq .L1023 7888 ldr r3, [sp, #36] 7889 adds r7, r3, #1 7890 beq .L1024 7891 ldr r0, [r6] 7892 movs r2, #0 7893 movs r1, #1 7894 add r0, r0, r5 7895 str r3, [r0, #4] 7896 ldr r7, [r0, #12] 7897 bl FlashReadPages 7898 ldr r2, [r6] 7899 ldr r1, [r2, r5] 7900 adds r3, r2, r5 7901 adds r1, r1, #1 7902 bne .L1025 7903.L1026: 7904 mov r3, #-1 7905 str r3, [sp, #36] 7906.L1033: 7907 ldr r7, [sp, #36] 7908 adds r0, r7, #1 7909 beq .L1016 7910.L1047: 7911 ubfx r0, r7, #10, #16 7912 bl P2V_block_in_plane 7913 ldr r3, .L1117+24 7914 mov r4, r0 7915 ldrh r3, [r3] 7916 cmp r3, r0 7917 bhi .L1039 7918 movw r2, #2057 7919 ldr r1, .L1117+28 7920 ldr r0, .L1117+32 7921 bl printf 7922.L1039: 7923 ldr r3, .L1117+36 7924 ldr r3, [r3] 7925 ldrh r3, [r3, r4, lsl #1] 7926 cmp r3, #0 7927 beq .L1040 7928 mov r0, r4 7929 b .L1109 7930.L1024: 7931 ldr r3, [sp, #44] 7932 ldr r2, [sp, #40] 7933 cmp r2, r3 7934 bne .L1016 7935 movs r2, #1 7936 add r1, sp, #36 7937 mov r0, r4 7938 bl log2phys 7939.L1016: 7940 ldr r3, [sp, #24] 7941 adds r3, r3, #1 7942 b .L1112 7943.L1025: 7944 ldr r1, [r7, #8] 7945 cmp r4, r1 7946 bne .L1026 7947 ldr r0, .L1117 7948 ldr r1, [r7, #4] 7949 ldr r0, [r0] 7950 str r1, [sp, #28] 7951 bl ftl_cmp_data_ver 7952 cmp r0, #0 7953 beq .L1026 7954 ldr r1, [sp, #40] 7955 ldr r0, [sp, #44] 7956 cmp r1, r0 7957 bne .L1028 7958.L1031: 7959 ldr r1, [sp, #36] 7960 mov r0, r4 7961 bl FtlReUsePrevPpa 7962 b .L1026 7963.L1028: 7964 ldr r0, [sp, #36] 7965 cmp r1, r0 7966 beq .L1026 7967 adds r0, r1, #1 7968 beq .L1029 7969 str r1, [r3, #4] 7970 movs r2, #0 7971 movs r1, #1 7972 mov r0, r3 7973 ldr r7, [r3, #12] 7974 bl FlashReadPages 7975.L1030: 7976 ldr r3, [r6] 7977 ldr r3, [r3, r5] 7978 adds r3, r3, #1 7979 beq .L1031 7980 ldr r3, [r7, #4] 7981 ldr r2, .L1117 7982 mov r1, r3 7983 ldr r0, [r2] 7984 bl ftl_cmp_data_ver 7985 cmp r0, #0 7986 beq .L1031 7987 mov r1, r3 7988 ldr r0, [sp, #28] 7989 bl ftl_cmp_data_ver 7990 cmp r0, #0 7991 beq .L1026 7992 b .L1031 7993.L1029: 7994 str r1, [r2, r5] 7995 b .L1030 7996.L1023: 7997 ldr r3, [sp, #44] 7998 ldr r2, [sp, #40] 7999 cmp r2, r3 8000 beq .L1033 8001 ldr r1, [sp, #36] 8002 adds r7, r1, #1 8003 beq .L1035 8004 ldr r3, .L1117+40 8005 ldr r3, [r3] 8006 cmp r3, r1, lsr #10 8007 bhi .L1035 8008 ldr r0, .L1117+44 8009.L1111: 8010 bl printf 8011 b .L1016 8012.L1118: 8013 .align 2 8014.L1117: 8015 .word .LANCHOR134 8016 .word .LANCHOR103 8017 .word .LANCHOR156 8018 .word .LANCHOR3 8019 .word .LANCHOR19 8020 .word .LANCHOR83 8021 .word .LANCHOR5 8022 .word .LANCHOR155 8023 .word .LC1 8024 .word .LANCHOR42 8025 .word .LANCHOR8 8026 .word .LC27 8027.L1035: 8028 movs r2, #1 8029 add r1, sp, #44 8030 mov r0, r4 8031 bl log2phys 8032 ldr r7, [sp, #40] 8033 adds r5, r7, #1 8034 beq .L1033 8035 ldr r3, [sp, #36] 8036 cmp r7, r3 8037 beq .L1047 8038 ubfx r0, r7, #10, #16 8039 bl P2V_block_in_plane 8040 ldr r3, .L1119 8041 ldrh r3, [r3] 8042 cmp r3, r0 8043 beq .L1038 8044 ldr r3, .L1119+4 8045 ldrh r3, [r3] 8046 cmp r3, r0 8047 beq .L1038 8048 ldr r3, .L1119+8 8049 ldrh r3, [r3] 8050 cmp r3, r0 8051 bne .L1033 8052.L1038: 8053 ldr r0, [r6] 8054 movs r2, #0 8055 movs r1, #1 8056 str r7, [r0, #4] 8057 ldr r5, [r0, #12] 8058 bl FlashReadPages 8059 ldr r3, [r6] 8060 ldr r3, [r3] 8061 adds r3, r3, #1 8062 beq .L1033 8063 ldr r1, [r5, #4] 8064 ldr r0, [sp] 8065 bl ftl_cmp_data_ver 8066 cmp r0, #0 8067 bne .L1033 8068 movs r2, #1 8069 add r1, sp, #40 8070 mov r0, r4 8071 bl log2phys 8072 b .L1033 8073.L1040: 8074 mov r1, r4 8075 ldr r0, .L1119+12 8076 b .L1111 8077.L1020: 8078 ldr r3, .L1119+16 8079 ldr r3, [r3] 8080 cmp r3, #31 8081 bhi .L1041 8082 ldr r2, .L1119+20 8083 str r4, [r2, r3, lsl #2] 8084 adds r3, r3, #1 8085 ldr r2, .L1119+16 8086 str r3, [r2] 8087.L1041: 8088 ldrh r0, [r8] 8089 bl decrement_vpc_count 8090 ldr r3, .L1119+24 8091 ldr r2, [r3] 8092 adds r1, r2, #1 8093 bne .L1042 8094 ldr r2, [sp] 8095.L1110: 8096 str r2, [r3] 8097 b .L1016 8098.L1042: 8099 ldr r1, [sp] 8100 cmp r1, r2 8101 bcs .L1016 8102 mov r2, r1 8103 b .L1110 8104.L1019: 8105 strb r10, [r8, #6] 8106 mov r2, r10 8107 strh fp, [r8, #2] @ movhi 8108 mov r1, fp 8109 b .L1114 8110.L1120: 8111 .align 2 8112.L1119: 8113 .word .LANCHOR51 8114 .word .LANCHOR52 8115 .word .LANCHOR53 8116 .word .LC28 8117 .word .LANCHOR157 8118 .word .LANCHOR158 8119 .word .LANCHOR134 8120 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 8121 .section .text.ftl_check_vpc,"ax",%progbits 8122 .align 1 8123 .global ftl_check_vpc 8124 .syntax unified 8125 .thumb 8126 .thumb_func 8127 .fpu softvfp 8128 .type ftl_check_vpc, %function 8129ftl_check_vpc: 8130 @ args = 0, pretend = 0, frame = 8 8131 @ frame_needed = 0, uses_anonymous_args = 0 8132 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 8133 movs r4, #0 8134 ldr r6, .L1145 8135 ldr r5, .L1145+4 8136 ldr r1, .L1145+8 8137 ldr r0, .L1145+12 8138 bl printf 8139 mov r2, #8192 8140 movs r1, #0 8141 ldr r0, .L1145+4 8142 bl ftl_memset 8143.L1122: 8144 ldr r3, [r6] 8145 cmp r4, r3 8146 bcc .L1124 8147 ldr r10, .L1145+48 8148 movs r4, #0 8149 ldr r7, .L1145+16 8150 mov r6, r4 8151.L1125: 8152 ldrh r2, [r10] 8153 uxth r3, r4 8154 cmp r2, r3 8155 bhi .L1127 8156 ldr r3, .L1145+20 8157 ldr r4, [r3] 8158 cbz r4, .L1128 8159 ldr r3, .L1145+24 8160 mov r8, #0 8161 ldr r5, .L1145+28 8162 ldr r10, .L1145+16 8163 ldrh r7, [r3] 8164 ldr r3, [r5] 8165 ldr fp, .L1145+4 8166 subs r4, r4, r3 8167 ldr r3, .L1145+32 8168 asrs r4, r4, #1 8169 muls r4, r3, r4 8170 uxth r4, r4 8171.L1129: 8172 uxth r3, r8 8173 cmp r7, r3 8174 bls .L1128 8175 ldr r3, [r10] 8176 ldrh r2, [r3, r4, lsl #1] 8177 cbz r2, .L1130 8178 movs r6, #1 8179 ldrh r3, [fp, r4, lsl #1] 8180 mov r1, r4 8181 ldr r0, .L1145+36 8182 bl printf 8183.L1130: 8184 movs r3, #6 8185 ldr r2, [r5] 8186 muls r4, r3, r4 8187 movw r3, #65535 8188 add r8, r8, #1 8189 ldrh r4, [r2, r4] 8190 cmp r4, r3 8191 bne .L1129 8192.L1128: 8193 cbz r6, .L1121 8194 movw r2, #2383 8195 ldr r1, .L1145+8 8196 ldr r0, .L1145+40 8197 bl printf 8198.L1121: 8199 add sp, sp, #8 8200 @ sp needed 8201 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8202.L1124: 8203 movs r2, #0 8204 add r1, sp, #4 8205 mov r0, r4 8206 bl log2phys 8207 ldr r0, [sp, #4] 8208 adds r3, r0, #1 8209 beq .L1123 8210 ubfx r0, r0, #10, #16 8211 bl P2V_block_in_plane 8212 ldrh r3, [r5, r0, lsl #1] 8213 adds r3, r3, #1 8214 strh r3, [r5, r0, lsl #1] @ movhi 8215.L1123: 8216 adds r4, r4, #1 8217 b .L1122 8218.L1127: 8219 ldr r3, [r7] 8220 uxth r5, r4 8221 ldr r8, .L1145+4 8222 ldrh r2, [r3, r5, lsl #1] 8223 ldrh r3, [r8, r5, lsl #1] 8224 cmp r2, r3 8225 beq .L1126 8226 mov r1, r5 8227 ldr r0, .L1145+44 8228 bl printf 8229 ldr r3, [r7] 8230 movw r2, #65535 8231 ldrh r3, [r3, r5, lsl #1] 8232 cmp r3, r2 8233 beq .L1126 8234 ldrh r2, [r8, r5, lsl #1] 8235 cmp r2, r3 8236 it hi 8237 movhi r6, #1 8238.L1126: 8239 adds r4, r4, #1 8240 b .L1125 8241.L1146: 8242 .align 2 8243.L1145: 8244 .word .LANCHOR152 8245 .word check_vpc_table 8246 .word .LANCHOR159 8247 .word .LC29 8248 .word .LANCHOR42 8249 .word .LANCHOR46 8250 .word .LANCHOR48 8251 .word .LANCHOR40 8252 .word -1431655765 8253 .word .LC31 8254 .word .LC1 8255 .word .LC30 8256 .word .LANCHOR5 8257 .size ftl_check_vpc, .-ftl_check_vpc 8258 .section .text.ftl_scan_all_data,"ax",%progbits 8259 .align 1 8260 .global ftl_scan_all_data 8261 .syntax unified 8262 .thumb 8263 .thumb_func 8264 .fpu softvfp 8265 .type ftl_scan_all_data, %function 8266ftl_scan_all_data: 8267 @ args = 0, pretend = 0, frame = 8 8268 @ frame_needed = 0, uses_anonymous_args = 0 8269 push {r4, r5, r6, r7, r8, lr} 8270 movs r5, #0 8271 ldr r7, .L1161 8272 sub sp, sp, #32 8273 movs r1, #0 8274 ldr r8, .L1161+24 8275 ldr r0, .L1161+4 8276 bl printf 8277.L1148: 8278 ldr r3, [r7] 8279 cmp r5, r3 8280 bcc .L1154 8281 add sp, sp, #32 8282 @ sp needed 8283 pop {r4, r5, r6, r7, r8, pc} 8284.L1154: 8285 movs r2, #0 8286 add r1, sp, #28 8287 mov r0, r5 8288 bl log2phys 8289 ubfx r3, r5, #0, #11 8290 cbnz r3, .L1149 8291 ldr r2, [sp, #28] 8292 mov r1, r5 8293 mov r0, r8 8294 bl printf 8295.L1149: 8296 ldr r3, [sp, #28] 8297 adds r2, r3, #1 8298 beq .L1151 8299 ldr r4, .L1161+8 8300 movs r2, #0 8301 movs r1, #1 8302 str r3, [r4, #4] 8303 mov r0, r4 8304 ldr r3, .L1161+12 8305 str r5, [r4, #16] 8306 str r2, [r4] 8307 ldr r3, [r3] 8308 str r3, [r4, #8] 8309 ldr r3, .L1161+16 8310 ldr r6, [r3] 8311 str r6, [r4, #12] 8312 bl FlashReadPages 8313 ldr r3, [r4] 8314 cmp r3, #256 8315 beq .L1152 8316 adds r3, r3, #1 8317 beq .L1152 8318 ldr r3, [r6, #8] 8319 cmp r5, r3 8320 beq .L1151 8321.L1152: 8322 ldr r2, [r4, #8] 8323 ldr r3, [r4, #12] 8324 ldr r0, .L1161+20 8325 ldr r1, [r2, #4] 8326 str r1, [sp, #16] 8327 mov r1, r5 8328 ldr r2, [r2] 8329 str r2, [sp, #12] 8330 ldr r2, [r3, #12] 8331 str r2, [sp, #8] 8332 ldr r2, [r3, #8] 8333 str r2, [sp, #4] 8334 ldr r2, [r3, #4] 8335 str r2, [sp] 8336 ldr r2, [r4, #4] 8337 ldr r3, [r3] 8338 bl printf 8339.L1151: 8340 adds r5, r5, #1 8341 b .L1148 8342.L1162: 8343 .align 2 8344.L1161: 8345 .word .LANCHOR152 8346 .word .LC32 8347 .word .LANCHOR138 8348 .word .LANCHOR106 8349 .word .LANCHOR114 8350 .word .LC34 8351 .word .LC33 8352 .size ftl_scan_all_data, .-ftl_scan_all_data 8353 .section .text.FtlGcScanTempBlk,"ax",%progbits 8354 .align 1 8355 .global FtlGcScanTempBlk 8356 .syntax unified 8357 .thumb 8358 .thumb_func 8359 .fpu softvfp 8360 .type FtlGcScanTempBlk, %function 8361FtlGcScanTempBlk: 8362 @ args = 0, pretend = 0, frame = 48 8363 @ frame_needed = 0, uses_anonymous_args = 0 8364 ldr r3, .L1195 8365 movw r2, #65535 8366 push {r4, r5, r6, r7, r8, r10, fp, lr} 8367 sub sp, sp, #48 8368 mov r4, r0 8369 ldrh r5, [r3] 8370 str r3, [sp, #20] 8371 cmp r5, r2 8372 beq .L1185 8373 cbnz r5, .L1164 8374.L1165: 8375 bl FtlGcPageVarInit 8376 b .L1166 8377.L1185: 8378 movs r5, #0 8379.L1164: 8380 ldr r3, .L1195+4 8381 ldrh r3, [r3] 8382 cmp r3, r1 8383 beq .L1165 8384.L1166: 8385 ldr fp, .L1195+56 8386.L1182: 8387 ldrh r2, [r4] 8388 movs r3, #0 8389 strb r3, [r4, #8] 8390 movw r3, #65535 8391 cmp r2, r3 8392 beq .L1167 8393.L1184: 8394 ldr r3, .L1195+8 8395 movs r2, #0 8396 ldr r0, [fp] 8397 mov r10, r2 8398 movw lr, #65535 8399 mov r8, #20 8400 ldrh r3, [r3] 8401 str r3, [sp, #8] 8402 ldr r3, .L1195+12 8403 ldr r3, [r3] 8404 str r3, [sp, #12] 8405 ldr r3, .L1195+16 8406 ldrh r3, [r3] 8407 str r3, [sp, #16] 8408 ldr r3, .L1195+20 8409 ldr r7, [r3] 8410 ldr r3, .L1195+24 8411 ldrh ip, [r3] 8412 add r3, r4, #16 8413 str r3, [sp, #4] 8414.L1168: 8415 ldr r1, [sp, #8] 8416 uxth r3, r2 8417 cmp r1, r3 8418 bhi .L1170 8419 mov r8, #0 8420 movs r2, #0 8421 mov r1, r10 8422 bl FlashReadPages 8423.L1171: 8424 uxth r3, r8 8425 cmp r10, r3 8426 bhi .L1183 8427 ldr r3, .L1195+4 8428 adds r5, r5, #1 8429 uxth r5, r5 8430 ldrh r3, [r3] 8431 cmp r3, r5 8432 bhi .L1184 8433.L1167: 8434 ldr r2, [sp, #20] 8435 movw r3, #65535 8436 mov r0, r4 8437 strh r5, [r4, #2] @ movhi 8438 mov r1, r5 8439 strh r3, [r2] @ movhi 8440 movs r2, #0 8441 strb r2, [r4, #6] 8442 bl ftl_sb_update_avl_pages 8443 mov r0, #-1 8444 add sp, sp, #48 8445 @ sp needed 8446 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8447.L1170: 8448 ldr r1, [sp, #4] 8449 ldrh r3, [r1], #2 8450 cmp r3, lr 8451 str r1, [sp, #4] 8452 beq .L1169 8453 mla r1, r8, r10, r0 8454 orr r3, r5, r3, lsl #10 8455 str r3, [r1, #4] 8456 ldr r3, [sp, #16] 8457 mul r3, r3, r10 8458 bic r3, r3, #3 8459 mov r6, r3 8460 ldr r3, [sp, #12] 8461 add r6, r6, r3 8462 mul r3, ip, r10 8463 str r6, [r1, #8] 8464 bic r3, r3, #3 8465 add r3, r3, r7 8466 str r3, [r1, #12] 8467 add r3, r10, #1 8468 uxth r10, r3 8469.L1169: 8470 adds r2, r2, #1 8471 b .L1168 8472.L1183: 8473 movs r3, #20 8474 ldr r2, [fp] 8475 mul r3, r3, r8 8476 adds r1, r2, r3 8477 ldr r6, [r2, r3] 8478 ldr r0, [r1, #4] 8479 ldr r7, [r1, #12] 8480 str r0, [sp, #4] 8481 cmp r6, #0 8482 bne .L1172 8483 ldrh r1, [r7] 8484 movw r2, #65535 8485 cmp r1, r2 8486 beq .L1193 8487 ldr r2, .L1195+28 8488 ldr r0, [r7, #8] 8489 ldr r2, [r2] 8490 cmp r0, r2 8491 bls .L1174 8492.L1193: 8493 ldr r3, .L1195+32 8494 movs r1, #0 8495 ldrh r2, [r4] 8496 movs r5, #0 8497 ldr r3, [r3] 8498 strh r1, [r3, r2, lsl #1] @ movhi 8499 ldrh r0, [r4] 8500 bl INSERT_FREE_LIST 8501 ldr r2, .L1195+36 8502 movw r3, #65535 8503 strh r3, [r4] @ movhi 8504 strh r3, [r2] @ movhi 8505 bl FtlGcPageVarInit 8506 b .L1182 8507.L1174: 8508 mov r2, r6 8509 add r1, sp, #24 8510 str r3, [sp, #8] 8511 bl log2phys 8512 ldr r2, [r7, #12] 8513 ldr r1, [sp, #24] 8514 ldr r3, [sp, #8] 8515 cmp r2, r1 8516 beq .L1176 8517.L1178: 8518 ldr r2, [r7, #8] 8519.L1194: 8520 ldr r1, [sp, #4] 8521 add r8, r8, #1 8522 ldr r0, [r7, #12] 8523 bl FtlGcUpdatePage 8524 b .L1171 8525.L1176: 8526 str r3, [sp, #8] 8527 adds r3, r2, #1 8528 beq .L1178 8529 str r2, [sp, #32] 8530 movs r1, #1 8531 ldr r2, .L1195+40 8532 add r0, sp, #28 8533 ldr r2, [r2] 8534 str r2, [sp, #36] 8535 ldr r2, .L1195+44 8536 ldr r2, [r2] 8537 str r2, [sp, #40] 8538 mov r2, r6 8539 bl FlashReadPages 8540 ldr r2, .L1195+48 8541 ldr r1, [fp] 8542 ldr r3, [sp, #8] 8543 ldrh r2, [r2] 8544 ldr r0, [sp, #36] 8545 add ip, r3, r1 8546 lsls r2, r2, #7 8547.L1179: 8548 cmp r6, r2 8549 beq .L1178 8550 ldr r1, [ip, #8] 8551 ldr r3, [r0, r6, lsl #2] 8552 ldr r1, [r1, r6, lsl #2] 8553 cmp r1, r3 8554 beq .L1180 8555 ldr r2, [sp, #32] 8556 ldrh r1, [r4] 8557 ldr r0, .L1195+52 8558 bl printf 8559 b .L1193 8560.L1180: 8561 adds r6, r6, #1 8562 b .L1179 8563.L1172: 8564 mov r2, #-1 8565 b .L1194 8566.L1196: 8567 .align 2 8568.L1195: 8569 .word .LANCHOR160 8570 .word .LANCHOR19 8571 .word .LANCHOR3 8572 .word .LANCHOR64 8573 .word .LANCHOR23 8574 .word .LANCHOR65 8575 .word .LANCHOR24 8576 .word .LANCHOR152 8577 .word .LANCHOR42 8578 .word .LANCHOR145 8579 .word .LANCHOR110 8580 .word .LANCHOR115 8581 .word .LANCHOR12 8582 .word .LC35 8583 .word .LANCHOR103 8584 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 8585 .section .text.FtlVendorPartWrite,"ax",%progbits 8586 .align 1 8587 .global FtlVendorPartWrite 8588 .syntax unified 8589 .thumb 8590 .thumb_func 8591 .fpu softvfp 8592 .type FtlVendorPartWrite, %function 8593FtlVendorPartWrite: 8594 @ args = 0, pretend = 0, frame = 104 8595 @ frame_needed = 0, uses_anonymous_args = 0 8596 ldr r3, .L1209 8597 push {r4, r5, r6, r7, r8, r10, fp, lr} 8598 sub sp, sp, #104 8599 str r2, [sp] 8600 adds r2, r0, r1 8601 mov r7, r0 8602 mov r5, r1 8603 ldrh r3, [r3] 8604 cmp r2, r3 8605 bhi .L1205 8606 ldr r3, .L1209+4 8607 mov r8, #0 8608 ldrh r6, [r3] 8609 lsr r6, r0, r6 8610 lsl fp, r6, #2 8611.L1199: 8612 cbnz r5, .L1204 8613.L1197: 8614 mov r0, r8 8615 add sp, sp, #104 8616 @ sp needed 8617 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8618.L1204: 8619 ldr r3, .L1209+8 8620 mov r0, r7 8621 ldr r10, .L1209+24 8622 ldr r3, [r3] 8623 ldr r2, [r3, fp] 8624 ldr r3, .L1209+12 8625 str r2, [sp, #12] 8626 ldrh r3, [r3] 8627 mov r1, r3 8628 str r3, [sp, #8] 8629 bl __aeabi_uidivmod 8630 ldr r3, [sp, #8] 8631 ldr r2, [sp, #12] 8632 str r1, [sp, #4] 8633 subs r4, r3, r1 8634 uxth r4, r4 8635 cmp r5, r4 8636 it cc 8637 uxthcc r4, r5 8638 cbz r2, .L1201 8639 cmp r4, r3 8640 beq .L1201 8641 ldr r3, [r10] 8642 add r0, sp, #20 8643 str r2, [sp, #24] 8644 movs r2, #1 8645 mov r1, r2 8646 str r3, [sp, #28] 8647 add r3, sp, #40 8648 str r3, [sp, #32] 8649 bl FlashReadPages 8650.L1202: 8651 lsls r3, r4, #9 8652 ldr r0, [r10] 8653 subs r5, r5, r4 8654 mov r2, r3 8655 str r3, [sp, #8] 8656 ldm sp, {r1, r3} 8657 add r7, r7, r4 8658 add fp, fp, #4 8659 add r0, r0, r3, lsl #9 8660 bl ftl_memcpy 8661 ldr r2, [r10] 8662 mov r1, r6 8663 ldr r0, .L1209+16 8664 adds r6, r6, #1 8665 bl FtlMapWritePage 8666 ldr r3, [sp] 8667 adds r0, r0, #1 8668 it eq 8669 moveq r8, #-1 8670 mov r2, r3 8671 ldr r3, [sp, #8] 8672 add r2, r2, r3 8673 str r2, [sp] 8674 b .L1199 8675.L1201: 8676 ldr r3, .L1209+20 8677 movs r1, #0 8678 ldr r0, [r10] 8679 ldrh r2, [r3] 8680 bl ftl_memset 8681 b .L1202 8682.L1205: 8683 mov r8, #-1 8684 b .L1197 8685.L1210: 8686 .align 2 8687.L1209: 8688 .word .LANCHOR16 8689 .word .LANCHOR22 8690 .word .LANCHOR123 8691 .word .LANCHOR12 8692 .word .LANCHOR161 8693 .word .LANCHOR23 8694 .word .LANCHOR108 8695 .size FtlVendorPartWrite, .-FtlVendorPartWrite 8696 .section .text.Ftl_save_ext_data,"ax",%progbits 8697 .align 1 8698 .global Ftl_save_ext_data 8699 .syntax unified 8700 .thumb 8701 .thumb_func 8702 .fpu softvfp 8703 .type Ftl_save_ext_data, %function 8704Ftl_save_ext_data: 8705 @ args = 0, pretend = 0, frame = 0 8706 @ frame_needed = 0, uses_anonymous_args = 0 8707 @ link register save eliminated. 8708 ldr r2, .L1213 8709 ldr r3, .L1213+4 8710 ldr r1, [r2] 8711 cmp r1, r3 8712 bne .L1211 8713 ldr r3, .L1213+8 8714 movs r1, #1 8715 movs r0, #0 8716 str r3, [r2, #4] 8717 ldr r3, .L1213+12 8718 ldr r3, [r3] 8719 str r3, [r2, #88] 8720 ldr r3, .L1213+16 8721 ldr r3, [r3] 8722 str r3, [r2, #92] 8723 ldr r3, .L1213+20 8724 ldr r3, [r3] 8725 str r3, [r2, #8] 8726 ldr r3, .L1213+24 8727 ldr r3, [r3] 8728 str r3, [r2, #12] 8729 ldr r3, .L1213+28 8730 ldr r3, [r3] 8731 str r3, [r2, #16] 8732 ldr r3, .L1213+32 8733 ldr r3, [r3] 8734 str r3, [r2, #20] 8735 ldr r3, .L1213+36 8736 ldr r3, [r3] 8737 str r3, [r2, #28] 8738 ldr r3, .L1213+40 8739 ldr r3, [r3] 8740 str r3, [r2, #32] 8741 ldr r3, .L1213+44 8742 ldr r3, [r3] 8743 str r3, [r2, #36] 8744 ldr r3, .L1213+48 8745 ldr r3, [r3] 8746 str r3, [r2, #40] 8747 ldr r3, .L1213+52 8748 ldr r3, [r3] 8749 str r3, [r2, #44] 8750 ldr r3, .L1213+56 8751 ldr r3, [r3] 8752 str r3, [r2, #48] 8753 b FtlVendorPartWrite 8754.L1211: 8755 bx lr 8756.L1214: 8757 .align 2 8758.L1213: 8759 .word .LANCHOR135 8760 .word 1179929683 8761 .word 1342177352 8762 .word .LANCHOR162 8763 .word .LANCHOR163 8764 .word .LANCHOR84 8765 .word .LANCHOR85 8766 .word .LANCHOR89 8767 .word .LANCHOR88 8768 .word .LANCHOR91 8769 .word .LANCHOR80 8770 .word .LANCHOR86 8771 .word .LANCHOR87 8772 .word .LANCHOR92 8773 .word .LANCHOR93 8774 .size Ftl_save_ext_data, .-Ftl_save_ext_data 8775 .section .text.FtlEctTblFlush,"ax",%progbits 8776 .align 1 8777 .global FtlEctTblFlush 8778 .syntax unified 8779 .thumb 8780 .thumb_func 8781 .fpu softvfp 8782 .type FtlEctTblFlush, %function 8783FtlEctTblFlush: 8784 @ args = 0, pretend = 0, frame = 0 8785 @ frame_needed = 0, uses_anonymous_args = 0 8786 ldr r2, .L1220 8787 push {r3, lr} 8788 ldrh r3, [r2] 8789 cmp r3, #31 8790 itett ls 8791 addls r3, r3, #1 8792 movhi r3, #32 8793 strhls r3, [r2] @ movhi 8794 movls r3, #1 8795 ldr r2, .L1220+4 8796 cbnz r0, .L1217 8797 ldr r1, [r2] 8798 ldr r0, [r1, #20] 8799 ldr r1, [r1, #16] 8800 add r3, r3, r0 8801 cmp r1, r3 8802 bcc .L1218 8803.L1217: 8804 ldr r2, [r2] 8805 movs r0, #64 8806 ldr r3, [r2, #16] 8807 str r3, [r2, #20] 8808 ldr r3, .L1220+8 8809 str r3, [r2] 8810 ldr r3, .L1220+12 8811 ldrh r1, [r3] 8812 lsls r3, r1, #9 8813 str r3, [r2, #12] 8814 ldr r3, [r2, #8] 8815 adds r3, r3, #1 8816 str r3, [r2, #8] 8817 movs r3, #0 8818 str r3, [r2, #4] 8819 bl FtlVendorPartWrite 8820 bl Ftl_save_ext_data 8821.L1218: 8822 movs r0, #0 8823 pop {r3, pc} 8824.L1221: 8825 .align 2 8826.L1220: 8827 .word .LANCHOR164 8828 .word .LANCHOR118 8829 .word 1112818501 8830 .word .LANCHOR116 8831 .size FtlEctTblFlush, .-FtlEctTblFlush 8832 .section .text.sftl_vendor_write,"ax",%progbits 8833 .align 1 8834 .global sftl_vendor_write 8835 .syntax unified 8836 .thumb 8837 .thumb_func 8838 .fpu softvfp 8839 .type sftl_vendor_write, %function 8840sftl_vendor_write: 8841 @ args = 0, pretend = 0, frame = 0 8842 @ frame_needed = 0, uses_anonymous_args = 0 8843 @ link register save eliminated. 8844 add r0, r0, #256 8845 b FtlVendorPartWrite 8846 .size sftl_vendor_write, .-sftl_vendor_write 8847 .section .text.FtlVendorPartRead,"ax",%progbits 8848 .align 1 8849 .global FtlVendorPartRead 8850 .syntax unified 8851 .thumb 8852 .thumb_func 8853 .fpu softvfp 8854 .type FtlVendorPartRead, %function 8855FtlVendorPartRead: 8856 @ args = 0, pretend = 0, frame = 104 8857 @ frame_needed = 0, uses_anonymous_args = 0 8858 ldr r3, .L1233 8859 push {r4, r5, r6, r7, r8, r10, fp, lr} 8860 mov r10, r2 8861 adds r2, r0, r1 8862 sub sp, sp, #104 8863 mov r7, r0 8864 mov r6, r1 8865 ldrh r3, [r3] 8866 cmp r2, r3 8867 bhi .L1232 8868 ldr r3, .L1233+4 8869 mov r8, #0 8870 ldr fp, .L1233+28 8871 ldrh r5, [r3] 8872 lsr r5, r0, r5 8873 lsls r3, r5, #2 8874 str r3, [sp] 8875.L1225: 8876 cbnz r6, .L1231 8877.L1223: 8878 mov r0, r8 8879 add sp, sp, #104 8880 @ sp needed 8881 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8882.L1231: 8883 ldr r3, .L1233+8 8884 mov r0, r7 8885 ldr r2, [sp] 8886 ldr r3, [r3] 8887 ldr r3, [r3, r2] 8888 ldr r2, .L1233+12 8889 str r3, [sp, #8] 8890 ldrh r4, [r2] 8891 mov r1, r4 8892 bl __aeabi_uidivmod 8893 subs r4, r4, r1 8894 ldr r3, [sp, #8] 8895 uxth r4, r4 8896 str r1, [sp, #4] 8897 cmp r6, r4 8898 it cc 8899 uxthcc r4, r6 8900 lsls r2, r4, #9 8901 str r2, [sp, #8] 8902 cmp r3, #0 8903 beq .L1227 8904 ldr r2, [fp] 8905 add r0, sp, #20 8906 str r3, [sp, #24] 8907 str r3, [sp, #12] 8908 str r2, [sp, #28] 8909 add r2, sp, #40 8910 str r2, [sp, #32] 8911 movs r2, #1 8912 mov r1, r2 8913 bl FlashReadPages 8914 ldr r2, [sp, #20] 8915 ldr r3, [sp, #12] 8916 adds r2, r2, #1 8917 ldr r2, .L1233+16 8918 it eq 8919 moveq r8, #-1 8920 ldr r2, [r2] 8921 cmp r2, #256 8922 bne .L1229 8923 mov r2, r3 8924 mov r1, r5 8925 ldr r0, .L1233+20 8926 bl printf 8927 ldr r2, [fp] 8928 mov r1, r5 8929 ldr r0, .L1233+24 8930 bl FtlMapWritePage 8931.L1229: 8932 ldr r1, [fp] 8933 lsls r2, r4, #9 8934 ldr r3, [sp, #4] 8935 mov r0, r10 8936 add r1, r1, r3, lsl #9 8937 bl ftl_memcpy 8938.L1230: 8939 ldr r3, [sp, #8] 8940 adds r5, r5, #1 8941 subs r6, r6, r4 8942 add r7, r7, r4 8943 add r10, r10, r3 8944 ldr r3, [sp] 8945 adds r3, r3, #4 8946 str r3, [sp] 8947 b .L1225 8948.L1227: 8949 lsls r2, r4, #9 8950 mov r1, r3 8951 mov r0, r10 8952 bl ftl_memset 8953 b .L1230 8954.L1232: 8955 mov r8, #-1 8956 b .L1223 8957.L1234: 8958 .align 2 8959.L1233: 8960 .word .LANCHOR16 8961 .word .LANCHOR22 8962 .word .LANCHOR123 8963 .word .LANCHOR12 8964 .word .LANCHOR138 8965 .word .LC36 8966 .word .LANCHOR161 8967 .word .LANCHOR108 8968 .size FtlVendorPartRead, .-FtlVendorPartRead 8969 .section .text.FtlLoadEctTbl,"ax",%progbits 8970 .align 1 8971 .global FtlLoadEctTbl 8972 .syntax unified 8973 .thumb 8974 .thumb_func 8975 .fpu softvfp 8976 .type FtlLoadEctTbl, %function 8977FtlLoadEctTbl: 8978 @ args = 0, pretend = 0, frame = 0 8979 @ frame_needed = 0, uses_anonymous_args = 0 8980 push {r3, r4, r5, lr} 8981 movs r0, #64 8982 ldr r4, .L1237 8983 ldr r5, .L1237+4 8984 ldr r2, [r4] 8985 ldrh r1, [r5] 8986 bl FtlVendorPartRead 8987 ldr r3, [r4] 8988 ldr r2, [r3] 8989 ldr r3, .L1237+8 8990 cmp r2, r3 8991 beq .L1236 8992 ldr r1, .L1237+12 8993 ldr r0, .L1237+16 8994 bl printf 8995 ldrh r2, [r5] 8996 movs r1, #0 8997 ldr r0, [r4] 8998 lsls r2, r2, #9 8999 bl ftl_memset 9000.L1236: 9001 movs r0, #0 9002 pop {r3, r4, r5, pc} 9003.L1238: 9004 .align 2 9005.L1237: 9006 .word .LANCHOR118 9007 .word .LANCHOR116 9008 .word 1112818501 9009 .word .LC37 9010 .word .LC38 9011 .size FtlLoadEctTbl, .-FtlLoadEctTbl 9012 .section .text.Ftl_load_ext_data,"ax",%progbits 9013 .align 1 9014 .global Ftl_load_ext_data 9015 .syntax unified 9016 .thumb 9017 .thumb_func 9018 .fpu softvfp 9019 .type Ftl_load_ext_data, %function 9020Ftl_load_ext_data: 9021 @ args = 0, pretend = 0, frame = 0 9022 @ frame_needed = 0, uses_anonymous_args = 0 9023 push {r3, r4, r5, lr} 9024 movs r1, #1 9025 ldr r4, .L1242 9026 movs r0, #0 9027 ldr r5, .L1242+4 9028 mov r2, r4 9029 bl FtlVendorPartRead 9030 ldr r3, [r4] 9031 cmp r3, r5 9032 beq .L1240 9033 mov r2, #512 9034 movs r1, #0 9035 mov r0, r4 9036 bl ftl_memset 9037 str r5, [r4] 9038.L1240: 9039 ldr r3, [r4] 9040 cmp r3, r5 9041 ldr r3, .L1242+8 9042 bne .L1241 9043 ldr r1, [r4, #88] 9044 ldr r2, .L1242+12 9045 str r1, [r2] 9046 ldr r1, [r4, #92] 9047 ldr r2, .L1242+16 9048 str r1, [r2] 9049 ldr r1, [r4, #8] 9050 ldr r2, .L1242+20 9051 str r1, [r2] 9052 ldr r1, [r4, #12] 9053 ldr r2, .L1242+24 9054 str r1, [r2] 9055 ldr r1, [r4, #16] 9056 ldr r2, .L1242+28 9057 str r1, [r2] 9058 ldr r1, [r4, #20] 9059 ldr r2, .L1242+32 9060 str r1, [r2] 9061 ldr r2, [r4, #28] 9062 ldr r1, [r4, #32] 9063 str r2, [r3] 9064 ldr r2, .L1242+36 9065 str r1, [r2] 9066 ldr r1, [r4, #36] 9067 ldr r2, .L1242+40 9068 str r1, [r2] 9069 ldr r1, [r4, #40] 9070 ldr r2, .L1242+44 9071 str r1, [r2] 9072 ldr r1, [r4, #44] 9073 ldr r2, .L1242+48 9074 str r1, [r2] 9075 ldr r1, [r4, #48] 9076 ldr r2, .L1242+52 9077 str r1, [r2] 9078.L1241: 9079 ldr r1, .L1242+56 9080 ldr r2, .L1242+60 9081 ldr r3, [r3] 9082 ldr r0, [r1] 9083 ldrh r2, [r2] 9084 ldr r1, .L1242+64 9085 mla r0, r0, r2, r3 9086 ldrh r1, [r1] 9087 bl __aeabi_uidiv 9088 ldr r3, .L1242+68 9089 str r0, [r3] 9090 pop {r3, r4, r5, pc} 9091.L1243: 9092 .align 2 9093.L1242: 9094 .word .LANCHOR135 9095 .word 1179929683 9096 .word .LANCHOR91 9097 .word .LANCHOR162 9098 .word .LANCHOR163 9099 .word .LANCHOR84 9100 .word .LANCHOR85 9101 .word .LANCHOR89 9102 .word .LANCHOR88 9103 .word .LANCHOR80 9104 .word .LANCHOR86 9105 .word .LANCHOR87 9106 .word .LANCHOR92 9107 .word .LANCHOR93 9108 .word .LANCHOR90 9109 .word .LANCHOR14 9110 .word .LANCHOR5 9111 .word .LANCHOR143 9112 .size Ftl_load_ext_data, .-Ftl_load_ext_data 9113 .section .text.sftl_vendor_read,"ax",%progbits 9114 .align 1 9115 .global sftl_vendor_read 9116 .syntax unified 9117 .thumb 9118 .thumb_func 9119 .fpu softvfp 9120 .type sftl_vendor_read, %function 9121sftl_vendor_read: 9122 @ args = 0, pretend = 0, frame = 0 9123 @ frame_needed = 0, uses_anonymous_args = 0 9124 @ link register save eliminated. 9125 add r0, r0, #256 9126 b FtlVendorPartRead 9127 .size sftl_vendor_read, .-sftl_vendor_read 9128 .section .text.FtlMapBlkWriteDump_data,"ax",%progbits 9129 .align 1 9130 .global FtlMapBlkWriteDump_data 9131 .syntax unified 9132 .thumb 9133 .thumb_func 9134 .fpu softvfp 9135 .type FtlMapBlkWriteDump_data, %function 9136FtlMapBlkWriteDump_data: 9137 @ args = 0, pretend = 0, frame = 0 9138 @ frame_needed = 0, uses_anonymous_args = 0 9139 push {r3, r4, r5, r6, r7, r8, r10, lr} 9140 mov r4, r0 9141 ldr r3, [r0, #36] 9142 cmp r3, #0 9143 beq .L1245 9144 movs r3, #0 9145 ldr r5, .L1257 9146 str r3, [r0, #36] 9147 ldr r3, .L1257+4 9148 ldrh r6, [r0, #6] 9149 mov r7, r5 9150 ldr r10, [r0, #24] 9151 ldr r3, [r3] 9152 str r3, [r5, #8] 9153 ldr r3, .L1257+8 9154 ldr r8, [r3] 9155 ldrh r3, [r0, #2] 9156 str r8, [r5, #12] 9157 cbz r3, .L1247 9158 ldr r2, .L1257+12 9159 ldrh r2, [r2] 9160 subs r2, r2, #1 9161 cmp r3, r2 9162 bge .L1247 9163 ldrh r2, [r0] 9164 movw r1, #65535 9165 cmp r2, r1 9166 beq .L1247 9167 ldr r1, [r0, #12] 9168 subs r3, r3, #1 9169 mov r0, r5 9170 ldrh r2, [r1, r2, lsl #1] 9171 orr r3, r3, r2, lsl #10 9172 movs r2, #1 9173 mov r1, r2 9174 str r3, [r5, #4] 9175 bl FlashReadPages 9176 ldr r3, [r5] 9177 adds r3, r3, #1 9178 beq .L1247 9179 ldr r3, [r4, #24] 9180 ldrh r1, [r8, #8] 9181 ldr r2, [r3, r1, lsl #2] 9182 ldr r3, [r5, #4] 9183 cmp r2, r3 9184 bne .L1247 9185 ldr r2, [r5, #8] 9186.L1256: 9187 mov r0, r4 9188 pop {r3, r4, r5, r6, r7, r8, r10, lr} 9189 b FtlMapWritePage 9190.L1247: 9191 subs r6, r6, #1 9192 uxth r6, r6 9193 ldr r3, [r10, r6, lsl #2] 9194 str r3, [r7, #4] 9195 cbz r3, .L1248 9196 movs r2, #1 9197 ldr r0, .L1257 9198 mov r1, r2 9199 bl FlashReadPages 9200.L1249: 9201 ldr r2, [r7, #8] 9202 mov r1, r6 9203 b .L1256 9204.L1248: 9205 ldr r3, .L1257+16 9206 movs r1, #255 9207 ldr r0, [r7, #8] 9208 ldrh r2, [r3] 9209 bl ftl_memset 9210 b .L1249 9211.L1245: 9212 pop {r3, r4, r5, r6, r7, r8, r10, pc} 9213.L1258: 9214 .align 2 9215.L1257: 9216 .word .LANCHOR138 9217 .word .LANCHOR107 9218 .word .LANCHOR114 9219 .word .LANCHOR20 9220 .word .LANCHOR23 9221 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 9222 .section .text.FtlVpcTblFlush,"ax",%progbits 9223 .align 1 9224 .global FtlVpcTblFlush 9225 .syntax unified 9226 .thumb 9227 .thumb_func 9228 .fpu softvfp 9229 .type FtlVpcTblFlush, %function 9230FtlVpcTblFlush: 9231 @ args = 0, pretend = 0, frame = 8 9232 @ frame_needed = 0, uses_anonymous_args = 0 9233 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 9234 mov r10, #0 9235 ldr r5, .L1274 9236 ldr r3, .L1274+4 9237 ldr fp, .L1274+76 9238 ldr r6, .L1274+8 9239 ldr r7, [r3] 9240 ldr r0, [fp] 9241 ldrh r3, [r5] 9242 str r7, [r6, #12] 9243 str r0, [r6, #8] 9244 strh r3, [r7, #2] @ movhi 9245 movw r3, #61604 9246 ldr r4, .L1274+12 9247 strh r3, [r7] @ movhi 9248 ldr r2, .L1274+16 9249 ldr r3, [r5, #8] 9250 ldr ip, .L1274+80 9251 str r10, [r7, #8] 9252 str r3, [r7, #4] 9253 stm r4, {r2, ip} 9254 ldrh r2, [r5, #6] 9255 str r10, [r7, #12] 9256 ldr r8, .L1274+84 9257 strh r2, [r4, #8] @ movhi 9258 ldr r2, .L1274+20 9259 ldr r3, .L1274+24 9260 ldrh r2, [r2] 9261 strb r2, [r4, #10] 9262 ldr r2, .L1274+28 9263 ldrh r1, [r2] 9264 ldrh ip, [r2, #2] 9265 strh r1, [r4, #14] @ movhi 9266 ldrb r1, [r2, #6] @ zero_extendqisi2 9267 ldrb r2, [r2, #8] @ zero_extendqisi2 9268 strb r2, [r4, #11] 9269 orr r1, r1, ip, lsl #6 9270 ldr r2, .L1274+32 9271 strh r1, [r4, #16] @ movhi 9272 ldrh r1, [r2] 9273 ldrh ip, [r2, #2] 9274 strh r1, [r4, #18] @ movhi 9275 ldrb r1, [r2, #6] @ zero_extendqisi2 9276 ldrb r2, [r2, #8] @ zero_extendqisi2 9277 strb r2, [r4, #12] 9278 orr r1, r1, ip, lsl #6 9279 ldr r2, .L1274+36 9280 strh r1, [r4, #20] @ movhi 9281 ldrh r1, [r2] 9282 ldrh ip, [r2, #2] 9283 strh r1, [r4, #22] @ movhi 9284 ldrb r1, [r2, #6] @ zero_extendqisi2 9285 ldrb r2, [r2, #8] @ zero_extendqisi2 9286 strb r2, [r4, #13] 9287 orr r1, r1, ip, lsl #6 9288 ldr r2, .L1274+40 9289 strh r1, [r4, #24] @ movhi 9290 movs r1, #255 9291 ldr r2, [r2] 9292 str r2, [r4, #32] 9293 ldr r2, [r8] 9294 str r2, [r4, #40] 9295 ldr r2, .L1274+44 9296 ldr r2, [r2] 9297 str r2, [r4, #36] 9298 ldrh r2, [r3] 9299 bl ftl_memset 9300 mov r1, r4 9301 ldr r4, .L1274+48 9302 movs r2, #48 9303 ldr r0, [r6, #8] 9304 bl ftl_memcpy 9305 ldrh r2, [r4] 9306 ldr r0, [r6, #8] 9307 ldr r1, .L1274+52 9308 lsls r2, r2, #1 9309 adds r0, r0, #48 9310 ldr r1, [r1] 9311 bl ftl_memcpy 9312 ldrh r0, [r4] 9313 ldr r1, .L1274+56 9314 ldr r4, [r6, #8] 9315 lsrs r2, r0, #3 9316 adds r0, r0, #24 9317 lsls r0, r0, #1 9318 ldr r1, [r1] 9319 adds r2, r2, #4 9320 bic r0, r0, #3 9321 add r0, r0, r4 9322 mov r4, r10 9323 bl ftl_memcpy 9324 mov r0, r10 9325 ldr r10, .L1274+4 9326 bl FtlUpdateVaildLpn 9327 movw r3, #65535 9328 str r3, [sp] 9329 ldr r3, .L1274+24 9330 str r3, [sp, #4] 9331.L1260: 9332 ldr r3, [fp] 9333 ldrh r1, [r5, #2] 9334 ldrh r2, [r5] 9335 str r3, [r6, #8] 9336 ldr r3, [r10] 9337 str r3, [r6, #12] 9338 orr r3, r1, r2, lsl #10 9339 str r3, [r6, #4] 9340 ldr r3, .L1274+60 9341 ldrh r3, [r3] 9342 subs r3, r3, #1 9343 cmp r1, r3 9344 blt .L1261 9345 ldrh r3, [r5, #4] 9346 strh r2, [r5, #4] @ movhi 9347 str r3, [sp] 9348 movs r3, #0 9349 strh r3, [r5, #2] @ movhi 9350 bl FtlFreeSysBlkQueueOut 9351 ldr r3, [r8] 9352 strh r0, [r5] @ movhi 9353 adds r2, r3, #1 9354 str r3, [r5, #8] 9355 str r2, [r8] 9356 lsls r2, r0, #10 9357 str r2, [r6, #4] 9358 str r3, [r7, #4] 9359 strh r0, [r7, #2] @ movhi 9360.L1261: 9361 ldr r3, [sp, #4] 9362 ldr r0, [fp] 9363 ldrh r1, [r3] 9364 bl js_hash 9365 movs r3, #1 9366 str r0, [r7, #12] 9367 mov r2, r3 9368 mov r1, r3 9369 ldr r0, .L1274+8 9370 bl FlashProgPages 9371 ldrh r3, [r5, #2] 9372 ldr r2, [r6] 9373 adds r3, r3, #1 9374 uxth r3, r3 9375 adds r1, r2, #1 9376 strh r3, [r5, #2] @ movhi 9377 bne .L1262 9378 cmp r3, #1 9379 bne .L1263 9380 movw r2, #1138 9381 ldr r1, .L1274+64 9382 ldr r0, .L1274+68 9383 bl printf 9384.L1263: 9385 ldrh r3, [r5, #2] 9386 adds r4, r4, #1 9387 uxth r4, r4 9388 cmp r3, #1 9389 itttt eq 9390 ldreq r3, .L1274+60 9391 ldrheq r3, [r3] 9392 addeq r3, r3, #-1 9393 strheq r3, [r5, #2] @ movhi 9394 cmp r4, #3 9395 bls .L1260 9396 mov r2, r4 9397 ldr r1, [r6, #4] 9398 ldr r0, .L1274+72 9399 bl printf 9400.L1266: 9401 b .L1266 9402.L1262: 9403 cmp r3, #1 9404 beq .L1260 9405 cmp r2, #256 9406 beq .L1260 9407 ldr r2, [sp] 9408 movw r3, #65535 9409 cmp r2, r3 9410 beq .L1267 9411 movs r1, #1 9412 mov r0, r2 9413 bl FtlFreeSysBlkQueueIn 9414.L1267: 9415 movs r0, #0 9416 add sp, sp, #8 9417 @ sp needed 9418 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9419.L1275: 9420 .align 2 9421.L1274: 9422 .word .LANCHOR139 9423 .word .LANCHOR114 9424 .word .LANCHOR138 9425 .word .LANCHOR39 9426 .word 1179929683 9427 .word .LANCHOR10 9428 .word .LANCHOR23 9429 .word .LANCHOR51 9430 .word .LANCHOR52 9431 .word .LANCHOR53 9432 .word .LANCHOR90 9433 .word .LANCHOR83 9434 .word .LANCHOR5 9435 .word .LANCHOR42 9436 .word .LANCHOR1 9437 .word .LANCHOR20 9438 .word .LANCHOR165 9439 .word .LC1 9440 .word .LC39 9441 .word .LANCHOR106 9442 .word 1342177352 9443 .word .LANCHOR82 9444 .size FtlVpcTblFlush, .-FtlVpcTblFlush 9445 .section .text.FtlSysFlush,"ax",%progbits 9446 .align 1 9447 .global FtlSysFlush 9448 .syntax unified 9449 .thumb 9450 .thumb_func 9451 .fpu softvfp 9452 .type FtlSysFlush, %function 9453FtlSysFlush: 9454 @ args = 0, pretend = 0, frame = 0 9455 @ frame_needed = 0, uses_anonymous_args = 0 9456 push {r3, lr} 9457 bl l2p_flush 9458 movs r0, #1 9459 bl FtlEctTblFlush 9460 bl FtlVpcTblFlush 9461 movs r0, #0 9462 pop {r3, pc} 9463 .size FtlSysFlush, .-FtlSysFlush 9464 .section .text.sftl_deinit,"ax",%progbits 9465 .align 1 9466 .global sftl_deinit 9467 .syntax unified 9468 .thumb 9469 .thumb_func 9470 .fpu softvfp 9471 .type sftl_deinit, %function 9472sftl_deinit: 9473 @ args = 0, pretend = 0, frame = 0 9474 @ frame_needed = 0, uses_anonymous_args = 0 9475 push {r3, lr} 9476 ldr r3, .L1279 9477 ldr r3, [r3] 9478 cmp r3, #1 9479 bne .L1278 9480 bl FtlSysFlush 9481.L1278: 9482 movs r0, #0 9483 pop {r3, pc} 9484.L1280: 9485 .align 2 9486.L1279: 9487 .word .LANCHOR166 9488 .size sftl_deinit, .-sftl_deinit 9489 .section .text.FtlDiscard,"ax",%progbits 9490 .align 1 9491 .global FtlDiscard 9492 .syntax unified 9493 .thumb 9494 .thumb_func 9495 .fpu softvfp 9496 .type FtlDiscard, %function 9497FtlDiscard: 9498 @ args = 0, pretend = 0, frame = 8 9499 @ frame_needed = 0, uses_anonymous_args = 0 9500 ldr r3, .L1296 9501 adds r2, r0, r1 9502 push {r0, r1, r4, r5, r6, r7, r8, lr} 9503 mov r7, r0 9504 mov r5, r1 9505 ldr r3, [r3] 9506 cmp r2, r3 9507 bhi .L1289 9508 cmp r1, #31 9509 bhi .L1283 9510.L1288: 9511 movs r0, #0 9512.L1281: 9513 add sp, sp, #8 9514 @ sp needed 9515 pop {r4, r5, r6, r7, r8, pc} 9516.L1283: 9517 ldr r8, .L1296+12 9518 ldrh r4, [r8] 9519 mov r1, r4 9520 bl __aeabi_uidiv 9521 smulbb r3, r0, r4 9522 mov r6, r0 9523 subs r7, r7, r3 9524 uxth r7, r7 9525 cbz r7, .L1284 9526 subs r4, r4, r7 9527 adds r6, r6, #1 9528 cmp r4, r5 9529 it cs 9530 movcs r4, r5 9531 uxth r4, r4 9532 subs r5, r5, r4 9533.L1284: 9534 ldr r4, .L1296+4 9535 mov r3, #-1 9536 ldr r7, .L1296+8 9537 str r3, [sp, #4] 9538.L1285: 9539 ldrh r3, [r8] 9540 cmp r5, r3 9541 bcs .L1287 9542 ldr r3, .L1296+4 9543 ldr r2, [r3] 9544 cmp r2, #32 9545 bls .L1288 9546 movs r4, #0 9547 str r4, [r3] 9548 bl l2p_flush 9549 bl FtlVpcTblFlush 9550 b .L1288 9551.L1287: 9552 movs r2, #0 9553 mov r1, sp 9554 mov r0, r6 9555 bl log2phys 9556 ldr r3, [sp] 9557 adds r3, r3, #1 9558 beq .L1286 9559 ldr r3, [r4] 9560 movs r2, #1 9561 add r1, sp, #4 9562 mov r0, r6 9563 adds r3, r3, #1 9564 str r3, [r4] 9565 ldr r3, [r7] 9566 adds r3, r3, #1 9567 str r3, [r7] 9568 bl log2phys 9569 ldr r0, [sp] 9570 ubfx r0, r0, #10, #16 9571 bl P2V_block_in_plane 9572 bl decrement_vpc_count 9573.L1286: 9574 ldrh r3, [r8] 9575 adds r6, r6, #1 9576 subs r5, r5, r3 9577 b .L1285 9578.L1289: 9579 mov r0, #-1 9580 b .L1281 9581.L1297: 9582 .align 2 9583.L1296: 9584 .word .LANCHOR34 9585 .word .LANCHOR167 9586 .word .LANCHOR86 9587 .word .LANCHOR12 9588 .size FtlDiscard, .-FtlDiscard 9589 .section .text.allocate_new_data_superblock,"ax",%progbits 9590 .align 1 9591 .global allocate_new_data_superblock 9592 .syntax unified 9593 .thumb 9594 .thumb_func 9595 .fpu softvfp 9596 .type allocate_new_data_superblock, %function 9597allocate_new_data_superblock: 9598 @ args = 0, pretend = 0, frame = 0 9599 @ frame_needed = 0, uses_anonymous_args = 0 9600 ldr r3, .L1308 9601 push {r4, r5, r6, lr} 9602 mov r6, r0 9603 ldrh r4, [r0] 9604 ldrh r3, [r3] 9605 cmp r3, r4 9606 bcs .L1299 9607 movw r2, #2755 9608 ldr r1, .L1308+4 9609 ldr r0, .L1308+8 9610 bl printf 9611.L1299: 9612 movw r3, #65535 9613 cmp r4, r3 9614 beq .L1300 9615 ldr r3, .L1308+12 9616 mov r0, r4 9617 ldr r3, [r3] 9618 ldrh r3, [r3, r4, lsl #1] 9619 cbz r3, .L1301 9620 bl INSERT_DATA_LIST 9621.L1300: 9622 ldr r5, .L1308+16 9623 movw r2, #65535 9624 movs r3, #1 9625 strb r3, [r6, #8] 9626 ldrh r0, [r5] 9627 cmp r0, r2 9628 beq .L1302 9629 cmp r4, r0 9630 bne .L1303 9631 ldr r3, .L1308+12 9632 ldr r3, [r3] 9633 ldrh r3, [r3, r0, lsl #1] 9634 cbz r3, .L1304 9635.L1303: 9636 bl update_vpc_list 9637.L1304: 9638 movw r3, #65535 9639 strh r3, [r5] @ movhi 9640.L1302: 9641 mov r0, r6 9642 bl allocate_data_superblock 9643 bl l2p_flush 9644 movs r0, #0 9645 bl FtlEctTblFlush 9646 bl FtlVpcTblFlush 9647 movs r0, #0 9648 pop {r4, r5, r6, pc} 9649.L1301: 9650 bl INSERT_FREE_LIST 9651 b .L1300 9652.L1309: 9653 .align 2 9654.L1308: 9655 .word .LANCHOR5 9656 .word .LANCHOR168 9657 .word .LC1 9658 .word .LANCHOR42 9659 .word .LANCHOR131 9660 .size allocate_new_data_superblock, .-allocate_new_data_superblock 9661 .section .text.FtlProgPages,"ax",%progbits 9662 .align 1 9663 .global FtlProgPages 9664 .syntax unified 9665 .thumb 9666 .thumb_func 9667 .fpu softvfp 9668 .type FtlProgPages, %function 9669FtlProgPages: 9670 @ args = 0, pretend = 0, frame = 16 9671 @ frame_needed = 0, uses_anonymous_args = 0 9672 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 9673 movs r6, #0 9674 ldr r10, .L1329+20 9675 mov r5, r3 9676 movs r2, #0 9677 mov r4, r0 9678 ldr fp, .L1329 9679 mov r8, r1 9680 ldrb r3, [r3, #9] @ zero_extendqisi2 9681 bl FlashProgPages 9682.L1311: 9683 cmp r6, r8 9684 bne .L1318 9685 ldr r3, .L1329 9686 ldrb r2, [r5, #6] @ zero_extendqisi2 9687 ldrh r3, [r3] 9688 cmp r2, r3 9689 bcc .L1310 9690 movw r2, #997 9691 ldr r1, .L1329+4 9692 ldr r0, .L1329+8 9693 bl printf 9694.L1310: 9695 add sp, sp, #16 9696 @ sp needed 9697 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9698.L1313: 9699 ldr r1, [r4, #4] 9700 mov r0, r10 9701 bl printf 9702 ldr r0, [r4, #4] 9703 ubfx r0, r0, #10, #16 9704 bl P2V_block_in_plane 9705 bl decrement_vpc_count 9706 ldrh r3, [r5, #4] 9707 cbnz r3, .L1312 9708 mov r0, r5 9709 bl allocate_new_data_superblock 9710.L1312: 9711 mov r0, r5 9712 bl get_new_active_ppa 9713 movs r2, #0 9714 str r0, [r4, #4] 9715 str r0, [sp, #12] 9716 movs r1, #1 9717 ldrb r3, [r5, #9] @ zero_extendqisi2 9718 mov r0, r4 9719 bl FlashProgPages 9720.L1318: 9721 ldr r2, [r4] 9722 adds r3, r2, #1 9723 beq .L1313 9724 cmp r2, #256 9725 beq .L1313 9726 ldrb r2, [r5, #6] @ zero_extendqisi2 9727 ldrh r3, [fp] 9728 cmp r2, r3 9729 bcc .L1314 9730 movw r2, #982 9731 ldr r1, .L1329+4 9732 ldr r0, .L1329+8 9733 bl printf 9734.L1314: 9735 ldr r3, [r4, #4] 9736 add r1, sp, #16 9737 movs r2, #1 9738 ldr r0, [r4, #16] 9739 str r3, [r1, #-4]! 9740 bl log2phys 9741 ldr r3, [r4, #12] 9742 ldr r3, [r3, #12] 9743 ubfx r0, r3, #10, #16 9744 str r3, [sp, #4] 9745 bl P2V_block_in_plane 9746 ldr r3, [sp, #4] 9747 mov r7, r0 9748 adds r3, r3, #1 9749 beq .L1315 9750 ldr r3, .L1329+12 9751 ldr r3, [r3] 9752 ldrh r2, [r3, r0, lsl #1] 9753 cbnz r2, .L1316 9754 mov r1, r0 9755 ldr r0, .L1329+16 9756 bl printf 9757.L1316: 9758 mov r0, r7 9759 bl decrement_vpc_count 9760.L1315: 9761 adds r6, r6, #1 9762 adds r4, r4, #20 9763 b .L1311 9764.L1330: 9765 .align 2 9766.L1329: 9767 .word .LANCHOR3 9768 .word .LANCHOR169 9769 .word .LC1 9770 .word .LANCHOR42 9771 .word .LC41 9772 .word .LC40 9773 .size FtlProgPages, .-FtlProgPages 9774 .section .text.FtlGcFreeTempBlock,"ax",%progbits 9775 .align 1 9776 .global FtlGcFreeTempBlock 9777 .syntax unified 9778 .thumb 9779 .thumb_func 9780 .fpu softvfp 9781 .type FtlGcFreeTempBlock, %function 9782FtlGcFreeTempBlock: 9783 @ args = 0, pretend = 0, frame = 16 9784 @ frame_needed = 0, uses_anonymous_args = 0 9785 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 9786 movw r3, #65535 9787 ldr r4, .L1346 9788 ldrh r2, [r4] 9789 cmp r2, r3 9790 beq .L1332 9791 ldr r3, .L1346+4 9792 mov r0, r4 9793 ldrh r1, [r3] 9794 bl FtlGcScanTempBlk 9795 str r0, [sp, #12] 9796.L1332: 9797 ldr r3, .L1346+8 9798 movs r2, #0 9799 str r2, [r3] 9800 movw r3, #65535 9801 ldrh r2, [r4] 9802 cmp r2, r3 9803 beq .L1334 9804 ldr r6, .L1346+4 9805 ldrb r0, [r4, #7] @ zero_extendqisi2 9806 ldr r5, .L1346+12 9807 ldrh r2, [r6] 9808 ldrh r1, [r5] 9809 muls r2, r0, r2 9810 cmp r1, r2 9811 beq .L1335 9812 movs r2, #164 9813 ldr r1, .L1346+16 9814 ldr r0, .L1346+20 9815 bl printf 9816.L1335: 9817 ldrh r6, [r6] 9818 ldrb r3, [r4, #7] @ zero_extendqisi2 9819 ldr r2, .L1346+24 9820 ldrh r0, [r4] 9821 ldr fp, .L1346+56 9822 smulbb r3, r3, r6 9823 ldr r1, [r2] 9824 movs r6, #0 9825 mov r10, r2 9826 strh r3, [r1, r0, lsl #1] @ movhi 9827 ldr r1, .L1346+28 9828 ldrh r3, [r5] 9829 ldr r0, [r1] 9830 add r3, r3, r0 9831 str r3, [r1] 9832.L1336: 9833 ldrh r2, [r5] 9834 uxth r3, r6 9835 cmp r2, r3 9836 bhi .L1340 9837 movw r0, #65535 9838 bl decrement_vpc_count 9839 ldrh r0, [r4] 9840 ldr r3, [r10] 9841 ldrh r3, [r3, r0, lsl #1] 9842 cmp r3, #0 9843 beq .L1341 9844 bl INSERT_DATA_LIST 9845.L1342: 9846 ldr r2, .L1346+32 9847 movs r3, #0 9848 movw r6, #65535 9849 strh r3, [r5] @ movhi 9850 strh r6, [r4] @ movhi 9851 strh r3, [r2] @ movhi 9852 bl l2p_flush 9853 bl FtlVpcTblFlush 9854 ldr r3, .L1346+36 9855 strh r6, [r3] @ movhi 9856 ldr r3, .L1346+40 9857 ldrh r2, [r3] 9858 ldr r3, .L1346+44 9859 ldrh r3, [r3] 9860 add r3, r3, r3, lsl #1 9861 cmp r2, r3, asr #2 9862 ittt gt 9863 ldrgt r3, .L1346+48 9864 movgt r2, #20 9865 strhgt r2, [r3] @ movhi 9866.L1334: 9867 movs r0, #0 9868 add sp, sp, #16 9869 @ sp needed 9870 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9871.L1340: 9872 uxth r3, r6 9873 mov r8, #12 9874 ldr r2, [fp] 9875 mul r8, r8, r3 9876 ldr r3, .L1346+52 9877 ldr r3, [r3] 9878 add r7, r3, r8 9879 ldr r0, [r7, #8] 9880 cmp r0, r2 9881 bcc .L1337 9882.L1344: 9883 ldrh r0, [r4] 9884 b .L1345 9885.L1337: 9886 movs r2, #0 9887 add r1, sp, #12 9888 str r3, [sp, #4] 9889 bl log2phys 9890 ldr r3, [sp, #4] 9891 ldr r2, [sp, #12] 9892 ldr r0, [r3, r8] 9893 cmp r0, r2 9894 bne .L1339 9895 ubfx r0, r0, #10, #16 9896 bl P2V_block_in_plane 9897 movs r2, #1 9898 mov r8, r0 9899 adds r1, r7, #4 9900 ldr r0, [r7, #8] 9901 bl log2phys 9902 mov r0, r8 9903.L1345: 9904 bl decrement_vpc_count 9905 b .L1338 9906.L1339: 9907 ldr r3, [r7, #4] 9908 cmp r2, r3 9909 bne .L1344 9910.L1338: 9911 adds r6, r6, #1 9912 b .L1336 9913.L1341: 9914 bl INSERT_FREE_LIST 9915 b .L1342 9916.L1347: 9917 .align 2 9918.L1346: 9919 .word .LANCHOR53 9920 .word .LANCHOR19 9921 .word .LANCHOR133 9922 .word .LANCHOR70 9923 .word .LANCHOR170 9924 .word .LC1 9925 .word .LANCHOR42 9926 .word .LANCHOR84 9927 .word .LANCHOR69 9928 .word .LANCHOR145 9929 .word .LANCHOR48 9930 .word .LANCHOR171 9931 .word .LANCHOR100 9932 .word .LANCHOR71 9933 .word .LANCHOR152 9934 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 9935 .section .text.FtlGcPageRecovery,"ax",%progbits 9936 .align 1 9937 .global FtlGcPageRecovery 9938 .syntax unified 9939 .thumb 9940 .thumb_func 9941 .fpu softvfp 9942 .type FtlGcPageRecovery, %function 9943FtlGcPageRecovery: 9944 @ args = 0, pretend = 0, frame = 0 9945 @ frame_needed = 0, uses_anonymous_args = 0 9946 push {r3, r4, r5, lr} 9947 ldr r4, .L1350 9948 ldr r5, .L1350+4 9949 ldrh r1, [r4] 9950 mov r0, r5 9951 bl FtlGcScanTempBlk 9952 ldrh r2, [r5, #2] 9953 ldrh r3, [r4] 9954 cmp r2, r3 9955 bcc .L1348 9956 ldr r0, .L1350+8 9957 bl FtlMapBlkWriteDump_data 9958 movs r0, #0 9959 bl FtlGcFreeTempBlock 9960 ldr r3, .L1350+12 9961 movs r2, #0 9962 str r2, [r3] 9963.L1348: 9964 pop {r3, r4, r5, pc} 9965.L1351: 9966 .align 2 9967.L1350: 9968 .word .LANCHOR19 9969 .word .LANCHOR53 9970 .word .LANCHOR129 9971 .word .LANCHOR133 9972 .size FtlGcPageRecovery, .-FtlGcPageRecovery 9973 .section .text.FtlPowerLostRecovery,"ax",%progbits 9974 .align 1 9975 .global FtlPowerLostRecovery 9976 .syntax unified 9977 .thumb 9978 .thumb_func 9979 .fpu softvfp 9980 .type FtlPowerLostRecovery, %function 9981FtlPowerLostRecovery: 9982 @ args = 0, pretend = 0, frame = 0 9983 @ frame_needed = 0, uses_anonymous_args = 0 9984 push {r3, r4, r5, lr} 9985 movs r4, #0 9986 ldr r5, .L1353 9987 ldr r3, .L1353+4 9988 mov r0, r5 9989 str r4, [r3] 9990 bl FtlRecoverySuperblock 9991 mov r0, r5 9992 ldr r5, .L1353+8 9993 bl FtlSlcSuperblockCheck 9994 mov r0, r5 9995 bl FtlRecoverySuperblock 9996 mov r0, r5 9997 bl FtlSlcSuperblockCheck 9998 bl FtlGcPageRecovery 9999 movw r0, #65535 10000 bl decrement_vpc_count 10001 mov r0, r4 10002 pop {r3, r4, r5, pc} 10003.L1354: 10004 .align 2 10005.L1353: 10006 .word .LANCHOR51 10007 .word .LANCHOR157 10008 .word .LANCHOR52 10009 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 10010 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 10011 .align 1 10012 .global Ftl_gc_temp_data_write_back 10013 .syntax unified 10014 .thumb 10015 .thumb_func 10016 .fpu softvfp 10017 .type Ftl_gc_temp_data_write_back, %function 10018Ftl_gc_temp_data_write_back: 10019 @ args = 0, pretend = 0, frame = 0 10020 @ frame_needed = 0, uses_anonymous_args = 0 10021 push {r3, r4, r5, r6, r7, lr} 10022 movs r3, #0 10023 ldr r4, .L1363 10024 movs r6, #0 10025 movs r7, #20 10026 mov r2, r3 10027 ldr r5, .L1363+4 10028 ldr r1, [r4] 10029 ldr r0, [r5] 10030 bl FlashProgPages 10031.L1356: 10032 ldr r1, [r4] 10033 uxth r3, r6 10034 cmp r1, r3 10035 bhi .L1359 10036 ldr r0, [r5] 10037 bl FtlGcBufFree 10038 ldr r3, .L1363+8 10039 movs r0, #0 10040 str r0, [r4] 10041 ldrh r3, [r3, #4] 10042 cbnz r3, .L1355 10043 movs r0, #1 10044 bl FtlGcFreeTempBlock 10045 movs r0, #1 10046.L1355: 10047 pop {r3, r4, r5, r6, r7, pc} 10048.L1359: 10049 muls r3, r7, r3 10050 ldr r2, [r5] 10051 adds r6, r6, #1 10052 adds r1, r2, r3 10053 ldr r2, [r2, r3] 10054 ldr r0, [r1, #12] 10055 ldr r1, [r1, #4] 10056 adds r3, r2, #1 10057 it ne 10058 ldrne r2, [r0, #8] 10059 ldr r0, [r0, #12] 10060 bl FtlGcUpdatePage 10061 b .L1356 10062.L1364: 10063 .align 2 10064.L1363: 10065 .word .LANCHOR62 10066 .word .LANCHOR104 10067 .word .LANCHOR53 10068 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 10069 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 10070 .align 1 10071 .global Ftl_get_new_temp_ppa 10072 .syntax unified 10073 .thumb 10074 .thumb_func 10075 .fpu softvfp 10076 .type Ftl_get_new_temp_ppa, %function 10077Ftl_get_new_temp_ppa: 10078 @ args = 0, pretend = 0, frame = 0 10079 @ frame_needed = 0, uses_anonymous_args = 0 10080 push {r3, r4, r5, lr} 10081 movw r3, #65535 10082 ldr r4, .L1368 10083 ldrh r2, [r4] 10084 cmp r2, r3 10085 beq .L1366 10086 ldrh r3, [r4, #4] 10087 cbnz r3, .L1367 10088.L1366: 10089 movs r0, #0 10090 movs r5, #0 10091 bl FtlGcFreeTempBlock 10092 ldr r0, .L1368 10093 strb r5, [r4, #8] 10094 bl allocate_data_superblock 10095 ldr r3, .L1368+4 10096 strh r5, [r3] @ movhi 10097 ldr r3, .L1368+8 10098 strh r5, [r3] @ movhi 10099 bl l2p_flush 10100 mov r0, r5 10101 bl FtlEctTblFlush 10102 bl FtlVpcTblFlush 10103.L1367: 10104 ldr r0, .L1368 10105 pop {r3, r4, r5, lr} 10106 b get_new_active_ppa 10107.L1369: 10108 .align 2 10109.L1368: 10110 .word .LANCHOR53 10111 .word .LANCHOR69 10112 .word .LANCHOR70 10113 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 10114 .section .text.rk_ftl_garbage_collect,"ax",%progbits 10115 .align 1 10116 .global rk_ftl_garbage_collect 10117 .syntax unified 10118 .thumb 10119 .thumb_func 10120 .fpu softvfp 10121 .type rk_ftl_garbage_collect, %function 10122rk_ftl_garbage_collect: 10123 @ args = 0, pretend = 0, frame = 40 10124 @ frame_needed = 0, uses_anonymous_args = 0 10125 ldr r3, .L1460 10126 push {r4, r5, r6, r7, r8, r10, fp, lr} 10127 sub sp, sp, #48 10128 str r0, [sp, #28] 10129 ldr r0, [r3] 10130 cmp r0, #0 10131 bne .L1427 10132 ldr r3, .L1460+4 10133 ldrh r3, [r3] 10134 cmp r3, #47 10135 bls .L1370 10136 ldr r3, .L1460+8 10137 movw r4, #65535 10138 ldrh r0, [r3] 10139 cmp r0, r4 10140 beq .L1372 10141 ldr r1, .L1460+12 10142 ldrh r2, [r1] 10143 cmp r2, r4 10144 itt eq 10145 strheq r0, [r1] @ movhi 10146 strheq r2, [r3] @ movhi 10147.L1372: 10148 ldr r3, [sp, #28] 10149 cmp r3, #0 10150 bne .L1429 10151 ldr r3, .L1460+16 10152 ldrh r3, [r3] 10153 cmp r3, #24 10154 bhi .L1430 10155 ldr r2, .L1460+20 10156 cmp r3, #16 10157 ldrh r4, [r2] 10158 bls .L1375 10159 lsrs r4, r4, #5 10160.L1374: 10161 ldr r2, .L1460+24 10162 ldrh r1, [r2] 10163 cmp r1, r3 10164 mov r1, r2 10165 bcs .L1378 10166 ldr r3, .L1460+28 10167 movw r0, #65535 10168 ldrh r3, [r3] 10169 cmp r3, r0 10170 bne .L1379 10171 ldr r0, .L1460+12 10172 ldrh r0, [r0] 10173 cmp r0, r3 10174 bne .L1379 10175 ldr r3, .L1460+32 10176 ldrh r0, [r3] 10177 cbnz r0, .L1380 10178 ldr r3, .L1460+36 10179 ldr r4, .L1460+40 10180 ldr r3, [r3] 10181 ldr r4, [r4] 10182 add r3, r3, r3, lsl #1 10183 cmp r4, r3, lsr #2 10184 bcs .L1381 10185.L1380: 10186 ldr r3, .L1460+44 10187 ldrh r3, [r3] 10188 add r3, r3, r3, lsl #1 10189 asrs r3, r3, #2 10190 strh r3, [r1] @ movhi 10191.L1382: 10192 ldr r3, .L1460+48 10193 movs r2, #0 10194 str r2, [r3] 10195.L1370: 10196 add sp, sp, #48 10197 @ sp needed 10198 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10199.L1375: 10200 cmp r3, #12 10201 bls .L1376 10202 lsrs r4, r4, #4 10203 b .L1374 10204.L1376: 10205 cmp r3, #8 10206 bls .L1374 10207 lsrs r4, r4, #2 10208 b .L1374 10209.L1430: 10210 movs r4, #1 10211 b .L1374 10212.L1381: 10213 movs r3, #18 10214 strh r3, [r2] @ movhi 10215 b .L1382 10216.L1379: 10217 ldr r3, .L1460+44 10218 ldrh r3, [r3] 10219 add r3, r3, r3, lsl #1 10220 asrs r3, r3, #2 10221 strh r3, [r1] @ movhi 10222.L1378: 10223 ldr r3, .L1460+52 10224 ldrh r3, [r3] 10225 cbz r3, .L1373 10226 adds r4, r4, #32 10227 uxth r4, r4 10228.L1373: 10229 ldr r5, .L1460+56 10230 movw r3, #65535 10231 ldrh r2, [r5] 10232 cmp r2, r3 10233 bne .L1385 10234 ldr r3, .L1460+12 10235 ldrh r1, [r3] 10236 cmp r1, r2 10237 beq .L1386 10238 ldr r0, .L1460+60 10239 ldr r0, [r0] 10240 ldrh r1, [r0, r1, lsl #1] 10241 cbnz r1, .L1387 10242 strh r2, [r3] @ movhi 10243.L1387: 10244 ldrh r2, [r3] 10245 strh r2, [r5] @ movhi 10246 movw r2, #65535 10247 strh r2, [r3] @ movhi 10248.L1386: 10249 ldrh r0, [r5] 10250 movw r6, #65535 10251 movs r3, #0 10252 strb r3, [r5, #8] 10253 cmp r0, r6 10254 beq .L1385 10255 bl IsBlkInGcList 10256 cbz r0, .L1389 10257 strh r6, [r5] @ movhi 10258.L1389: 10259 ldrh r2, [r5] 10260 movw r3, #65535 10261 cmp r2, r3 10262 beq .L1385 10263 ldr r0, .L1460+56 10264 bl make_superblock 10265 ldr r2, .L1460+64 10266 movs r3, #0 10267 strh r3, [r5, #2] @ movhi 10268 strb r3, [r5, #6] 10269 strh r3, [r2] @ movhi 10270 ldr r3, .L1460+60 10271 ldrh r2, [r5] 10272 ldr r3, [r3] 10273 ldrh r2, [r3, r2, lsl #1] 10274 ldr r3, .L1460+68 10275 strh r2, [r3] @ movhi 10276.L1385: 10277 ldr r2, .L1460+72 10278 ldrh r3, [r5] 10279 ldrh r2, [r2] 10280 cmp r2, r3 10281 beq .L1390 10282 ldr r2, .L1460+76 10283 ldrh r2, [r2] 10284 cmp r2, r3 10285 beq .L1390 10286 ldr r2, .L1460+28 10287 ldrh r2, [r2] 10288 cmp r2, r3 10289 bne .L1391 10290.L1390: 10291 movw r3, #65535 10292 strh r3, [r5] @ movhi 10293.L1391: 10294 ldr r5, .L1460+56 10295 mov r6, r5 10296.L1426: 10297 ldrh r2, [r5] 10298 movw r3, #65535 10299 cmp r2, r3 10300 bne .L1392 10301 ldr fp, .L1460+88 10302 movs r2, #0 10303 ldr r3, .L1460+48 10304 mov r8, fp 10305 str r2, [r3] 10306.L1393: 10307 ldrh r7, [fp] 10308 mov r0, r7 10309 bl List_get_gc_head_node 10310 uxth r3, r0 10311 movw r1, #65535 10312 cmp r3, r1 10313 strh r3, [r6] @ movhi 10314 bne .L1394 10315 movs r3, #0 10316 movs r0, #8 10317 strh r3, [fp] @ movhi 10318 b .L1370 10319.L1429: 10320 movs r4, #1 10321 b .L1373 10322.L1394: 10323 str r0, [sp, #16] 10324 mov r0, r3 10325 str r3, [sp, #12] 10326 adds r7, r7, #1 10327 bl IsBlkInGcList 10328 ldr r3, [sp, #12] 10329 ldr r2, [sp, #16] 10330 cbz r0, .L1395 10331 strh r7, [fp] @ movhi 10332 b .L1393 10333.L1395: 10334 uxth r0, r2 10335 ldr r2, .L1460+20 10336 ldr r10, .L1460+60 10337 uxth r7, r7 10338 ldrh lr, [r2] 10339 ldr r2, .L1460+80 10340 ldr r1, [r10] 10341 strh r7, [fp] @ movhi 10342 ldrh r2, [r2] 10343 ldrh ip, [r1, r0, lsl #1] 10344 mul r2, r2, lr 10345 cmp ip, r2, asr #1 10346 bgt .L1397 10347 cmp r7, #48 10348 bls .L1398 10349 cmp ip, #8 10350 bls .L1398 10351 ldr r7, .L1460+84 10352 ldrh r7, [r7] 10353 cmp r7, #35 10354 bhi .L1398 10355.L1397: 10356 movs r7, #0 10357 strh r7, [r8] @ movhi 10358.L1398: 10359 ldrh r1, [r1, r0, lsl #1] 10360 cmp r2, r1 10361 bgt .L1399 10362 ldrh r2, [r8] 10363 cmp r2, #3 10364 bhi .L1399 10365 movw r3, #65535 10366 strh r3, [r6] @ movhi 10367 movs r3, #0 10368 strh r3, [r8] @ movhi 10369.L1459: 10370 ldr r3, .L1460+32 10371 ldrh r0, [r3] 10372 b .L1370 10373.L1399: 10374 cbnz r1, .L1400 10375 movw r0, #65535 10376 bl decrement_vpc_count 10377 ldrh r3, [r8] 10378 adds r3, r3, #1 10379 strh r3, [r8] @ movhi 10380 b .L1393 10381.L1461: 10382 .align 2 10383.L1460: 10384 .word .LANCHOR94 10385 .word .LANCHOR44 10386 .word .LANCHOR73 10387 .word .LANCHOR72 10388 .word .LANCHOR48 10389 .word .LANCHOR19 10390 .word .LANCHOR100 10391 .word .LANCHOR53 10392 .word .LANCHOR172 10393 .word .LANCHOR152 10394 .word .LANCHOR59 10395 .word .LANCHOR171 10396 .word .LANCHOR95 10397 .word .LANCHOR74 10398 .word .LANCHOR145 10399 .word .LANCHOR42 10400 .word .LANCHOR173 10401 .word .LANCHOR174 10402 .word .LANCHOR51 10403 .word .LANCHOR52 10404 .word .LANCHOR3 10405 .word .LANCHOR69 10406 .word .LANCHOR102 10407.L1400: 10408 movs r2, #0 10409 strb r2, [r6, #8] 10410 ldr r2, .L1462 10411 ldrh r2, [r2] 10412 cmp r2, r3 10413 bne .L1401 10414 movw r2, #717 10415 ldr r1, .L1462+4 10416 ldr r0, .L1462+8 10417 bl printf 10418.L1401: 10419 ldr r3, .L1462+12 10420 ldrh r2, [r6] 10421 ldrh r3, [r3] 10422 cmp r2, r3 10423 bne .L1402 10424 movw r2, #718 10425 ldr r1, .L1462+4 10426 ldr r0, .L1462+8 10427 bl printf 10428.L1402: 10429 ldr r3, .L1462+16 10430 ldrh r2, [r6] 10431 ldrh r3, [r3] 10432 cmp r2, r3 10433 bne .L1403 10434 movw r2, #719 10435 ldr r1, .L1462+4 10436 ldr r0, .L1462+8 10437 bl printf 10438.L1403: 10439 mov r0, r5 10440 bl make_superblock 10441 ldr r2, .L1462+20 10442 movs r3, #0 10443 ldrh r1, [r6] 10444 strh r3, [r2] @ movhi 10445 ldr r2, [r10] 10446 ldrh r1, [r2, r1, lsl #1] 10447 ldr r2, .L1462+24 10448 strh r3, [r6, #2] @ movhi 10449 strb r3, [r6, #6] 10450 strh r1, [r2] @ movhi 10451.L1392: 10452 ldr r3, .L1462+28 10453 movs r2, #1 10454 str r2, [r3] 10455 ldr r3, .L1462+32 10456 ldrh r3, [r3] 10457 str r3, [sp, #16] 10458 ldr r3, [sp, #28] 10459 cbz r3, .L1404 10460 ldr r3, .L1462+36 10461 ldr r2, [sp, #16] 10462 ldrh r1, [r6] 10463 ldrh r3, [r3] 10464 muls r3, r2, r3 10465 ldr r2, .L1462+40 10466 ldr r2, [r2] 10467 ldrh r2, [r2, r1, lsl #1] 10468 subs r3, r3, r2 10469 it mi 10470 addmi r3, r3, #3 10471 add r4, r4, r3, asr #2 10472 uxth r4, r4 10473.L1404: 10474 ldrh r3, [r6, #2] 10475 ldr r1, [sp, #16] 10476 ldr fp, .L1462+64 10477 adds r2, r3, r4 10478 cmp r2, r1 10479 itt gt 10480 movgt r2, r1 10481 subgt r4, r2, r3 10482 mov r3, #0 10483 it gt 10484 uxthgt r4, r4 10485 str r3, [sp, #24] 10486.L1407: 10487 ldrh r3, [sp, #24] 10488 cmp r4, r3 10489 bls .L1415 10490 ldr r3, .L1462+36 10491 movw r10, #65535 10492 ldrh r1, [r5, #2] 10493 mov ip, #20 10494 ldr r0, [fp] 10495 ldrh lr, [r3] 10496 ldr r3, [sp, #24] 10497 ldr r7, .L1462+44 10498 adds r3, r1, r3 10499 str r3, [sp, #20] 10500 movs r3, #0 10501 str r3, [sp, #12] 10502 b .L1416 10503.L1409: 10504 ldrh r2, [r7, #2]! 10505 cmp r2, r10 10506 beq .L1408 10507 ldr r1, [sp, #12] 10508 mla r8, ip, r1, r0 10509 ldr r1, [sp, #20] 10510 orr r2, r1, r2, lsl #10 10511 str r2, [r8, #4] 10512 ldr r2, [sp, #12] 10513 adds r2, r2, #1 10514 uxth r2, r2 10515 str r2, [sp, #12] 10516.L1408: 10517 adds r3, r3, #1 10518.L1416: 10519 uxth r2, r3 10520 cmp lr, r2 10521 bhi .L1409 10522 ldrb r2, [r5, #8] @ zero_extendqisi2 10523 ldr r1, [sp, #12] 10524 bl FlashReadPages 10525 movs r3, #0 10526.L1458: 10527 str r3, [sp, #20] 10528 ldr r2, [sp, #12] 10529 ldrh r3, [sp, #20] 10530 cmp r2, r3 10531 bhi .L1414 10532 ldr r3, [sp, #24] 10533 adds r3, r3, #1 10534 str r3, [sp, #24] 10535 b .L1407 10536.L1414: 10537 ldr r3, [sp, #20] 10538 movs r7, #20 10539 muls r7, r3, r7 10540 ldr r3, [fp] 10541 adds r2, r3, r7 10542 ldr r3, [r3, r7] 10543 adds r3, r3, #1 10544 beq .L1411 10545 ldr r8, [r2, #12] 10546 movw r3, #61589 10547 ldrh r2, [r8] 10548 cmp r2, r3 10549 bne .L1411 10550 ldr r10, [r8, #8] 10551 cmp r10, #-1 10552 bne .L1412 10553 movw r2, #753 10554 ldr r1, .L1462+4 10555 ldr r0, .L1462+8 10556 bl printf 10557.L1412: 10558 movs r2, #0 10559 add r1, sp, #40 10560 mov r0, r10 10561 bl log2phys 10562 ldr r0, [fp] 10563 ldr r3, [sp, #40] 10564 add r0, r0, r7 10565 ldr r2, [r0, #4] 10566 cmp r2, r3 10567 bne .L1411 10568 ldr r2, .L1462+20 10569 ldr r10, .L1462+60 10570 ldr r1, .L1462+48 10571 ldrh r3, [r2] 10572 str r1, [sp, #36] 10573 adds r3, r3, #1 10574 strh r3, [r2] @ movhi 10575 ldr r2, [r1] 10576 movs r1, #20 10577 ldr r3, [r10] 10578 mla r3, r1, r3, r2 10579 ldr r2, [r0, #16] 10580 str r2, [r3, #16] 10581 str r3, [sp, #32] 10582 bl Ftl_get_new_temp_ppa 10583 ldr r3, [sp, #32] 10584 ldr r1, [sp, #36] 10585 str r0, [r3, #4] 10586 ldr r2, [r1] 10587 movs r1, #20 10588 ldr r3, [r10] 10589 ldr r0, [fp] 10590 mla r2, r1, r3, r2 10591 add r0, r0, r7 10592 ldr r7, .L1462+16 10593 ldr r1, [r0, #8] 10594 adds r3, r3, #1 10595 str r1, [r2, #8] 10596 ldr r1, [r0, #12] 10597 str r1, [r2, #12] 10598 movs r1, #1 10599 ldr r2, [sp, #40] 10600 str r2, [r8, #12] 10601 ldrh r2, [r7] 10602 strh r2, [r8, #2] @ movhi 10603 ldr r2, .L1462+52 10604 str r3, [r10] 10605 ldr r2, [r2] 10606 str r2, [r8, #4] 10607 bl FtlGcBufAlloc 10608 ldrb r2, [r7, #7] @ zero_extendqisi2 10609 ldr r3, [r10] 10610 cmp r2, r3 10611 beq .L1413 10612 ldrh r3, [r7, #4] 10613 cbnz r3, .L1411 10614.L1413: 10615 bl Ftl_gc_temp_data_write_back 10616 cbz r0, .L1411 10617 ldr r3, .L1462+28 10618 movs r2, #0 10619 movw r1, #65535 10620 str r2, [r3] 10621 ldr r3, .L1462+56 10622 strh r1, [r3] @ movhi 10623 strh r2, [r3, #2] @ movhi 10624 b .L1459 10625.L1411: 10626 ldr r3, [sp, #20] 10627 adds r3, r3, #1 10628 b .L1458 10629.L1415: 10630 ldrh r3, [r5, #2] 10631 add r4, r4, r3 10632 ldr r3, [sp, #16] 10633 uxth r4, r4 10634 cmp r3, r4 10635 strh r4, [r5, #2] @ movhi 10636 bhi .L1417 10637 ldr r3, .L1462+60 10638 ldr r3, [r3] 10639 cbz r3, .L1418 10640 bl Ftl_gc_temp_data_write_back 10641 cbz r0, .L1418 10642 ldr r3, .L1462+28 10643 movs r2, #0 10644 str r2, [r3] 10645 b .L1459 10646.L1463: 10647 .align 2 10648.L1462: 10649 .word .LANCHOR51 10650 .word .LANCHOR175 10651 .word .LC1 10652 .word .LANCHOR52 10653 .word .LANCHOR53 10654 .word .LANCHOR173 10655 .word .LANCHOR174 10656 .word .LANCHOR94 10657 .word .LANCHOR19 10658 .word .LANCHOR3 10659 .word .LANCHOR42 10660 .word .LANCHOR145+14 10661 .word .LANCHOR104 10662 .word .LANCHOR83 10663 .word .LANCHOR145 10664 .word .LANCHOR62 10665 .word .LANCHOR66 10666.L1418: 10667 ldr r3, .L1464 10668 ldrh r4, [r3] 10669 cmp r4, #0 10670 bne .L1419 10671 ldr r8, .L1464+28 10672 ldrh r1, [r5] 10673 ldr r3, [r8] 10674 ldrh r3, [r3, r1, lsl #1] 10675 cmp r3, #0 10676 beq .L1419 10677 ldr r0, .L1464+4 10678 ldr r10, .L1464+32 10679 ldrh r2, [r5, #2] 10680 ldrh r0, [r0] 10681 str r3, [sp] 10682 mov r3, r4 10683 str r0, [sp, #4] 10684 ldr r0, .L1464+8 10685 bl printf 10686.L1420: 10687 ldr r3, [r10] 10688 cmp r4, r3 10689 bcs .L1422 10690 movs r2, #0 10691 add r1, sp, #44 10692 mov r0, r4 10693 bl log2phys 10694 ldr r7, [sp, #44] 10695 adds r3, r7, #1 10696 beq .L1421 10697 ubfx r0, r7, #10, #16 10698 bl P2V_block_in_plane 10699 ldrh r3, [r5] 10700 cmp r3, r0 10701 bne .L1421 10702 mov r2, r7 10703 mov r1, r4 10704 ldr r0, .L1464+12 10705 bl printf 10706.L1422: 10707 ldr r3, [r10] 10708 cmp r4, r3 10709 bcc .L1419 10710 ldrh r2, [r5] 10711 movs r1, #0 10712 ldr r3, [r8] 10713 strh r1, [r3, r2, lsl #1] @ movhi 10714 ldrh r0, [r5] 10715 bl update_vpc_list 10716 bl l2p_flush 10717 bl FtlVpcTblFlush 10718.L1419: 10719 movw r3, #65535 10720 strh r3, [r5] @ movhi 10721.L1417: 10722 ldr r3, .L1464+16 10723 movs r2, #0 10724 str r2, [r3] 10725 ldr r3, .L1464+20 10726 ldrh r0, [r3] 10727 cmp r0, #2 10728 bhi .L1425 10729 ldr r3, .L1464+24 10730 ldrh r4, [r3] 10731 b .L1426 10732.L1421: 10733 adds r4, r4, #1 10734 b .L1420 10735.L1425: 10736 adds r0, r0, #1 10737 b .L1370 10738.L1427: 10739 movs r0, #0 10740 b .L1370 10741.L1465: 10742 .align 2 10743.L1464: 10744 .word .LANCHOR173 10745 .word .LANCHOR174 10746 .word .LC42 10747 .word .LC43 10748 .word .LANCHOR94 10749 .word .LANCHOR48 10750 .word .LANCHOR19 10751 .word .LANCHOR42 10752 .word .LANCHOR152 10753 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 10754 .section .text.FtlRead,"ax",%progbits 10755 .align 1 10756 .global FtlRead 10757 .syntax unified 10758 .thumb 10759 .thumb_func 10760 .fpu softvfp 10761 .type FtlRead, %function 10762FtlRead: 10763 @ args = 0, pretend = 0, frame = 56 10764 @ frame_needed = 0, uses_anonymous_args = 0 10765 cmp r0, #16 10766 push {r4, r5, r6, r7, r8, r10, fp, lr} 10767 sub sp, sp, #56 10768 mov r6, r1 10769 mov r8, r3 10770 str r2, [sp, #24] 10771 bne .L1467 10772 mov r2, r3 10773 ldr r1, [sp, #24] 10774 add r0, r6, #256 10775 bl FtlVendorPartRead 10776 str r0, [sp, #4] 10777.L1466: 10778 ldr r0, [sp, #4] 10779 add sp, sp, #56 10780 @ sp needed 10781 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10782.L1467: 10783 ldr r3, [sp, #24] 10784 adds r3, r1, r3 10785 str r3, [sp, #12] 10786 ldr r3, .L1499 10787 ldr r2, [sp, #12] 10788 ldr r3, [r3] 10789 cmp r2, r3 10790 bhi .L1488 10791 ldr r3, .L1499+4 10792 ldr r3, [r3] 10793 adds r4, r3, #1 10794 beq .L1489 10795 ldr r3, .L1499+8 10796 mov r0, r6 10797 movs r7, #0 10798 mov r5, r7 10799 ldrh r4, [r3] 10800 mov r1, r4 10801 bl __aeabi_uidiv 10802 ldr r3, [sp, #12] 10803 mov r1, r4 10804 str r0, [sp, #16] 10805 subs r0, r3, #1 10806 bl __aeabi_uidiv 10807 ldr r3, [sp, #16] 10808 ldr r2, .L1499+12 10809 ldr r1, [sp, #24] 10810 rsb r3, r3, #1 10811 ldr r4, [sp, #16] 10812 add r3, r3, r0 10813 str r0, [sp, #20] 10814 str r3, [sp, #8] 10815 ldr r3, [r2] 10816 str r7, [sp, #32] 10817 str r7, [sp, #28] 10818 add r3, r3, r1 10819 ldr r1, [sp, #8] 10820 str r3, [r2] 10821 ldr r2, .L1499+16 10822 str r7, [sp, #4] 10823 ldr r3, [r2] 10824 add r3, r3, r1 10825 str r3, [r2] 10826.L1469: 10827 ldr r3, [sp, #8] 10828 cbnz r3, .L1486 10829 ldr r3, .L1499+20 10830 ldrh r3, [r3] 10831 cbnz r3, .L1487 10832 ldr r3, .L1499+24 10833 ldrh r3, [r3] 10834 cmp r3, #31 10835 bhi .L1466 10836.L1487: 10837 movs r1, #1 10838 movs r0, #0 10839 bl rk_ftl_garbage_collect 10840 b .L1466 10841.L1486: 10842 movs r2, #0 10843 add r1, sp, #52 10844 mov r0, r4 10845 bl log2phys 10846 ldr r3, [sp, #52] 10847 adds r0, r3, #1 10848 bne .L1470 10849 ldr fp, .L1499+8 10850 mov r10, #0 10851.L1471: 10852 ldrh r0, [fp] 10853 cmp r10, r0 10854 bcc .L1473 10855.L1474: 10856 ldr r3, [sp, #8] 10857 adds r4, r4, #1 10858 subs r3, r3, #1 10859 str r3, [sp, #8] 10860 beq .L1478 10861 ldr r3, .L1499+28 10862 ldrh r3, [r3] 10863 cmp r5, r3, lsl #2 10864 bne .L1469 10865.L1478: 10866 cmp r5, #0 10867 beq .L1469 10868 ldr r3, .L1499+32 10869 movs r2, #0 10870 mov r1, r5 10871 mov r10, #0 10872 ldr r0, [r3] 10873 bl FlashReadPages 10874 lsls r3, r7, #9 10875 str r3, [sp, #44] 10876 ldr r3, [sp, #28] 10877 lsls r3, r3, #9 10878 str r3, [sp, #36] 10879 ldr r3, [sp, #32] 10880 lsls r3, r3, #9 10881 str r3, [sp, #40] 10882.L1485: 10883 movs r3, #20 10884 mul fp, r3, r10 10885 ldr r3, .L1499+32 10886 ldr r2, [r3] 10887 ldr r3, [sp, #16] 10888 add r2, r2, fp 10889 ldr r1, [r2, #16] 10890 cmp r3, r1 10891 bne .L1480 10892 ldr r1, [r2, #8] 10893 ldr r2, .L1499+36 10894 ldr r2, [r2] 10895 cmp r1, r2 10896 bne .L1481 10897 ldr r3, [sp, #36] 10898 mov r0, r8 10899 ldr r2, [sp, #40] 10900 add r1, r1, r3 10901.L1498: 10902 bl ftl_memcpy 10903.L1481: 10904 ldr r3, .L1499+32 10905 ldr r3, [r3] 10906 add r2, r3, fp 10907 ldr r3, [r3, fp] 10908 ldr r0, [r2, #12] 10909 ldr r1, [r2, #16] 10910 ldr r0, [r0, #8] 10911 cmp r1, r0 10912 itttt ne 10913 ldrne r0, .L1499+40 10914 ldrne r1, [r0, #72] 10915 addne r1, r1, #1 10916 strne r1, [r0, #72] 10917 adds r1, r3, #1 10918 bne .L1483 10919 ldr r1, .L1499+40 10920 str r3, [sp, #4] 10921 ldr r2, [r1, #72] 10922 adds r2, r2, #1 10923 str r2, [r1, #72] 10924.L1484: 10925 add r10, r10, #1 10926 cmp r5, r10 10927 bne .L1485 10928 movs r5, #0 10929 b .L1469 10930.L1473: 10931 mla r0, r0, r4, r10 10932 cmp r6, r0 10933 bhi .L1472 10934 ldr r3, [sp, #12] 10935 cmp r3, r0 10936 bls .L1472 10937 subs r0, r0, r6 10938 mov r2, #512 10939 movs r1, #0 10940 add r0, r8, r0, lsl #9 10941 bl ftl_memset 10942.L1472: 10943 add r10, r10, #1 10944 b .L1471 10945.L1470: 10946 ldr r2, .L1499+32 10947 mov r10, #20 10948 ldr r2, [r2] 10949 mla r10, r10, r5, r2 10950 str r3, [r10, #4] 10951 ldr r3, [sp, #16] 10952 cmp r4, r3 10953 ldr r3, .L1499+8 10954 bne .L1475 10955 ldr r2, .L1499+36 10956 mov r0, r6 10957 ldrh fp, [r3] 10958 ldr r2, [r2] 10959 mov r1, fp 10960 str r2, [r10, #8] 10961 bl __aeabi_uidivmod 10962 ldr r2, [sp, #24] 10963 sub r3, fp, r1 10964 str r1, [sp, #28] 10965 cmp r3, r2 10966 it cs 10967 movcs r3, r2 10968 cmp fp, r3 10969 str r3, [sp, #32] 10970 bne .L1476 10971 str r8, [r10, #8] 10972.L1476: 10973 ldr r3, .L1499+44 10974 ldr r2, .L1499+48 10975 str r4, [r10, #16] 10976 ldrh r3, [r3] 10977 ldr r2, [r2] 10978 muls r3, r5, r3 10979 adds r5, r5, #1 10980 bic r3, r3, #3 10981 add r3, r3, r2 10982 str r3, [r10, #12] 10983 b .L1474 10984.L1475: 10985 ldr r2, [sp, #20] 10986 cmp r4, r2 10987 bne .L1477 10988 ldr r2, .L1499+52 10989 ldr r1, [sp, #12] 10990 ldr r2, [r2] 10991 str r2, [r10, #8] 10992 ldrh r2, [r3] 10993 mul r3, r2, r4 10994 subs r7, r1, r3 10995 cmp r2, r7 10996 bne .L1476 10997.L1497: 10998 subs r3, r3, r6 10999 add r3, r8, r3, lsl #9 11000 str r3, [r10, #8] 11001 b .L1476 11002.L1477: 11003 ldrh r3, [r3] 11004 muls r3, r4, r3 11005 b .L1497 11006.L1480: 11007 ldr r3, [sp, #20] 11008 cmp r3, r1 11009 bne .L1481 11010 ldr r3, .L1499+52 11011 ldr r1, [r2, #8] 11012 ldr r2, [r3] 11013 cmp r1, r2 11014 bne .L1481 11015 ldr r2, .L1499+8 11016 ldr r3, [sp, #20] 11017 ldrh r0, [r2] 11018 ldr r2, [sp, #44] 11019 muls r0, r3, r0 11020 subs r0, r0, r6 11021 add r0, r8, r0, lsl #9 11022 b .L1498 11023.L1483: 11024 cmp r3, #256 11025 bne .L1484 11026 ldr r0, [r2, #4] 11027 ubfx r0, r0, #10, #16 11028 bl P2V_block_in_plane 11029 bl FtlGcRefreshBlock 11030 b .L1484 11031.L1488: 11032 mov r3, #-1 11033.L1489: 11034 str r3, [sp, #4] 11035 b .L1466 11036.L1500: 11037 .align 2 11038.L1499: 11039 .word .LANCHOR34 11040 .word .LANCHOR166 11041 .word .LANCHOR12 11042 .word .LANCHOR163 11043 .word .LANCHOR89 11044 .word .LANCHOR74 11045 .word .LANCHOR48 11046 .word .LANCHOR3 11047 .word .LANCHOR103 11048 .word .LANCHOR109 11049 .word .LANCHOR135 11050 .word .LANCHOR24 11051 .word .LANCHOR115 11052 .word .LANCHOR110 11053 .size FtlRead, .-FtlRead 11054 .section .text.sftl_read,"ax",%progbits 11055 .align 1 11056 .global sftl_read 11057 .syntax unified 11058 .thumb 11059 .thumb_func 11060 .fpu softvfp 11061 .type sftl_read, %function 11062sftl_read: 11063 @ args = 0, pretend = 0, frame = 0 11064 @ frame_needed = 0, uses_anonymous_args = 0 11065 @ link register save eliminated. 11066 mov r3, r2 11067 mov r2, r1 11068 mov r1, r0 11069 movs r0, #0 11070 b FtlRead 11071 .size sftl_read, .-sftl_read 11072 .section .text.FtlWrite,"ax",%progbits 11073 .align 1 11074 .global FtlWrite 11075 .syntax unified 11076 .thumb 11077 .thumb_func 11078 .fpu softvfp 11079 .type FtlWrite, %function 11080FtlWrite: 11081 @ args = 0, pretend = 0, frame = 72 11082 @ frame_needed = 0, uses_anonymous_args = 0 11083 cmp r0, #16 11084 push {r4, r5, r6, r7, r8, r10, fp, lr} 11085 sub sp, sp, #72 11086 mov fp, r1 11087 str r2, [sp, #20] 11088 str r3, [sp, #16] 11089 bne .L1503 11090 mov r2, r3 11091 ldr r1, [sp, #20] 11092 add r0, fp, #256 11093 bl FtlVendorPartWrite 11094.L1502: 11095 add sp, sp, #72 11096 @ sp needed 11097 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11098.L1503: 11099 ldr r3, [sp, #20] 11100 adds r4, r1, r3 11101 ldr r3, .L1547 11102 ldr r3, [r3] 11103 cmp r4, r3 11104 bhi .L1536 11105 ldr r3, .L1547+4 11106 ldr r0, [r3] 11107 adds r1, r0, #1 11108 beq .L1502 11109 ldr r3, .L1547+8 11110 mov r2, #2048 11111 mov r0, fp 11112 ldr r7, .L1547+12 11113 str r2, [r3] 11114 ldr r3, .L1547+16 11115 ldrh r5, [r3] 11116 mov r1, r5 11117 bl __aeabi_uidiv 11118 mov r1, r5 11119 str r0, [sp, #12] 11120 subs r0, r4, #1 11121 bl __aeabi_uidiv 11122 ldr r2, [sp, #12] 11123 ldr r1, [sp, #20] 11124 ldr r5, [sp, #12] 11125 subs r3, r0, r2 11126 ldr r2, .L1547+20 11127 str r3, [sp, #32] 11128 adds r3, r3, #1 11129 str r3, [sp, #8] 11130 ldr r3, [r2] 11131 str r0, [sp, #28] 11132 add r3, r3, r1 11133 ldr r1, [sp, #8] 11134 str r3, [r2] 11135 ldr r2, .L1547+24 11136 ldr r3, [r2] 11137 add r3, r3, r1 11138 str r3, [r2] 11139.L1505: 11140 ldr r3, [sp, #8] 11141 cbnz r3, .L1531 11142 ldr r5, .L1547+28 11143 mov r0, r3 11144 ldr r1, [sp, #32] 11145 bl rk_ftl_garbage_collect 11146 ldrh r2, [r5] 11147 cmp r2, #5 11148 bls .L1532 11149.L1534: 11150 movs r0, #0 11151 b .L1502 11152.L1531: 11153 ldr r4, .L1547+32 11154 ldrb r2, [r7, #6] @ zero_extendqisi2 11155 ldrh r3, [r4] 11156 cmp r2, r3 11157 bcc .L1506 11158 movw r2, #1038 11159 ldr r1, .L1547+36 11160 ldr r0, .L1547+40 11161 bl printf 11162.L1506: 11163 ldrh r3, [r7, #4] 11164 cbnz r3, .L1507 11165 mov r0, r7 11166 bl allocate_new_data_superblock 11167.L1507: 11168 ldrb r3, [r7, #7] @ zero_extendqisi2 11169 ldrh r2, [r7, #4] 11170 lsls r3, r3, #2 11171 cmp r3, r2 11172 it cs 11173 movcs r3, r2 11174 ldr r2, [sp, #8] 11175 cmp r3, r2 11176 it cs 11177 movcs r3, r2 11178 ldrb r2, [r7, #6] @ zero_extendqisi2 11179 str r3, [sp, #44] 11180 ldrh r3, [r4] 11181 cmp r2, r3 11182 bcc .L1508 11183 movw r2, #1071 11184 ldr r1, .L1547+36 11185 ldr r0, .L1547+40 11186 bl printf 11187.L1508: 11188 ldr r8, .L1547+44 11189 movs r3, #0 11190 str r3, [sp, #4] 11191.L1509: 11192 ldr r3, [sp, #4] 11193 ldr r2, [sp, #44] 11194 cmp r3, r2 11195 bne .L1529 11196.L1510: 11197 ldr r0, .L1547+44 11198 mov r3, r7 11199 movs r2, #0 11200 ldr r1, [sp, #4] 11201 ldr r0, [r0] 11202 bl FtlProgPages 11203 ldr r3, [sp, #4] 11204 ldr r2, [sp, #8] 11205 cmp r3, r2 11206 bls .L1530 11207 movw r2, #1149 11208 ldr r1, .L1547+36 11209 ldr r0, .L1547+40 11210 bl printf 11211.L1530: 11212 ldr r3, [sp, #8] 11213 ldr r2, [sp, #4] 11214 subs r3, r3, r2 11215 str r3, [sp, #8] 11216 b .L1505 11217.L1529: 11218 ldrh r3, [r7, #4] 11219 cmp r3, #0 11220 beq .L1510 11221 movs r2, #0 11222 add r1, sp, #48 11223 mov r0, r5 11224 movs r6, #20 11225 bl log2phys 11226 mov r0, r7 11227 bl get_new_active_ppa 11228 ldr r2, .L1547+48 11229 ldr r1, [sp, #4] 11230 ldr r3, [sp, #4] 11231 ldrh r2, [r2] 11232 muls r6, r3, r6 11233 ldr r3, [r8] 11234 muls r1, r2, r1 11235 add r3, r3, r6 11236 str r0, [r3, #4] 11237 bic r1, r1, #3 11238 str r5, [r3, #16] 11239 str r1, [sp, #36] 11240 ldr r1, .L1547+52 11241 ldr r0, [sp, #36] 11242 ldr r1, [r1] 11243 add r10, r1, r0 11244 str r1, [sp, #40] 11245 str r10, [r3, #12] 11246 movs r1, #0 11247 mov r0, r10 11248 bl ftl_memset 11249 ldr r3, [sp, #12] 11250 ldr r2, .L1547+16 11251 cmp r5, r3 11252 beq .L1511 11253 ldr r3, [sp, #28] 11254 cmp r5, r3 11255 bne .L1542 11256 ldrh r2, [r2] 11257 ldr r3, [sp, #20] 11258 smulbb r2, r2, r5 11259 add r4, fp, r3 11260 movs r3, #0 11261 str r3, [sp, #24] 11262 subs r4, r4, r2 11263 uxth r4, r4 11264 b .L1514 11265.L1511: 11266 ldrh r4, [r2] 11267 mov r0, fp 11268 mov r1, r4 11269 bl __aeabi_uidivmod 11270 ldr r3, [sp, #20] 11271 subs r4, r4, r1 11272 str r1, [sp, #24] 11273 cmp r4, r3 11274 it cs 11275 movcs r4, r3 11276.L1514: 11277 ldr r3, .L1547+16 11278 ldrh r3, [r3] 11279 cmp r4, r3 11280 ldr r3, [sp, #12] 11281 bne .L1515 11282 cmp r5, r3 11283 ldr r3, [r8] 11284 add r6, r6, r3 11285 bne .L1516 11286 ldr r3, [sp, #16] 11287.L1544: 11288 str r3, [r6, #8] 11289 b .L1517 11290.L1516: 11291 muls r4, r5, r4 11292 ldr r3, [sp, #16] 11293 sub r4, r4, fp 11294 add r4, r3, r4, lsl #9 11295 str r4, [r6, #8] 11296.L1517: 11297 ldr r3, .L1547+32 11298 ldrb r2, [r7, #6] @ zero_extendqisi2 11299 ldrh r3, [r3] 11300 cmp r2, r3 11301 bcc .L1526 11302 movw r2, #1140 11303 ldr r1, .L1547+36 11304 ldr r0, .L1547+40 11305 bl printf 11306.L1526: 11307 ldr r2, [sp, #40] 11308 movw r3, #61589 11309 ldr r1, [sp, #36] 11310 strh r3, [r2, r1] @ movhi 11311 ldr r2, .L1547+56 11312 str r5, [r10, #8] 11313 adds r5, r5, #1 11314 ldr r3, [r2] 11315 str r3, [r10, #4] 11316 adds r3, r3, #1 11317 adds r1, r3, #1 11318 it eq 11319 moveq r3, #0 11320 str r3, [r2] 11321 ldr r3, [sp, #48] 11322 str r3, [r10, #12] 11323 ldrh r3, [r7] 11324 strh r3, [r10, #2] @ movhi 11325 ldr r3, [sp, #4] 11326 adds r3, r3, #1 11327 str r3, [sp, #4] 11328 b .L1509 11329.L1515: 11330 cmp r5, r3 11331 ldr r3, [r8] 11332 ite eq 11333 ldreq r2, .L1547+60 11334 ldrne r2, .L1547+64 11335 add r3, r3, r6 11336 ldr r2, [r2] 11337 str r2, [r3, #8] 11338 ldr r3, [sp, #48] 11339 adds r2, r3, #1 11340 beq .L1520 11341 str r3, [sp, #56] 11342 movs r1, #1 11343 ldr r3, [r8] 11344 add r0, sp, #52 11345 str r5, [sp, #68] 11346 add r3, r3, r6 11347 ldr r2, [r3, #8] 11348 ldr r3, [r3, #12] 11349 str r2, [sp, #60] 11350 movs r2, #0 11351 str r3, [sp, #64] 11352 bl FlashReadPages 11353 ldr r3, [sp, #52] 11354 adds r0, r3, #1 11355 bne .L1521 11356 ldr r1, .L1547+68 11357 ldr r0, .L1547+72 11358 ldr r2, [r1, #72] 11359 adds r2, r2, #1 11360 str r2, [r1, #72] 11361 mov r2, r5 11362 ldr r1, [r10, #8] 11363 bl printf 11364.L1524: 11365 ldr r3, [sp, #12] 11366 lsls r2, r4, #9 11367 cmp r5, r3 11368 bne .L1525 11369 ldr r3, [r8] 11370 ldr r1, [sp, #16] 11371 add r6, r6, r3 11372 ldr r3, [sp, #24] 11373 ldr r0, [r6, #8] 11374 add r0, r0, r3, lsl #9 11375.L1545: 11376 bl ftl_memcpy 11377 b .L1517 11378.L1521: 11379 ldr r1, [r10, #8] 11380 cmp r5, r1 11381 beq .L1523 11382 ldr r2, .L1547+68 11383 ldr r0, .L1547+76 11384 ldr r3, [r2, #72] 11385 adds r3, r3, #1 11386 str r3, [r2, #72] 11387 mov r2, r5 11388 bl printf 11389.L1523: 11390 ldr r3, [r10, #8] 11391 cmp r5, r3 11392 beq .L1524 11393 movw r2, #1125 11394 ldr r1, .L1547+36 11395 ldr r0, .L1547+40 11396 bl printf 11397 b .L1524 11398.L1520: 11399 ldr r3, [r8] 11400 movs r1, #0 11401 ldr r2, .L1547+80 11402 add r3, r3, r6 11403 ldrh r2, [r2] 11404 ldr r0, [r3, #8] 11405 bl ftl_memset 11406 b .L1524 11407.L1548: 11408 .align 2 11409.L1547: 11410 .word .LANCHOR34 11411 .word .LANCHOR166 11412 .word .LANCHOR176 11413 .word .LANCHOR51 11414 .word .LANCHOR12 11415 .word .LANCHOR162 11416 .word .LANCHOR85 11417 .word .LANCHOR48 11418 .word .LANCHOR3 11419 .word .LANCHOR177 11420 .word .LC1 11421 .word .LANCHOR105 11422 .word .LANCHOR24 11423 .word .LANCHOR115 11424 .word .LANCHOR83 11425 .word .LANCHOR109 11426 .word .LANCHOR110 11427 .word .LANCHOR135 11428 .word .LC44 11429 .word .LC45 11430 .word .LANCHOR23 11431.L1525: 11432 ldr r3, .L1549 11433 ldrh r1, [r3] 11434 ldr r3, [r8] 11435 muls r1, r5, r1 11436 add r6, r6, r3 11437 ldr r3, [sp, #16] 11438 ldr r0, [r6, #8] 11439 sub r1, r1, fp 11440 add r1, r3, r1, lsl #9 11441 b .L1545 11442.L1542: 11443 ldr r3, [r8] 11444 add r6, r6, r3 11445 ldrh r3, [r2] 11446 ldr r2, [sp, #16] 11447 muls r3, r5, r3 11448 sub r3, r3, fp 11449 add r3, r2, r3, lsl #9 11450 b .L1544 11451.L1532: 11452 ldr r6, .L1549+4 11453 mov r4, #256 11454 ldr r7, .L1549+8 11455.L1535: 11456 ldrh r3, [r6] 11457 movw r2, #65535 11458 cmp r3, r2 11459 bne .L1533 11460 ldrh r2, [r7] 11461 cmp r2, r3 11462 bne .L1533 11463 movs r0, #0 11464 bl List_get_gc_head_node 11465 uxth r0, r0 11466 bl FtlGcRefreshBlock 11467.L1533: 11468 ldr r2, .L1549+12 11469 movs r3, #128 11470 movs r1, #1 11471 mov r0, r1 11472 strh r3, [r2] @ movhi 11473 ldr r2, .L1549+16 11474 strh r3, [r2] @ movhi 11475 bl rk_ftl_garbage_collect 11476 movs r1, #1 11477 movs r0, #0 11478 bl rk_ftl_garbage_collect 11479 ldrh r3, [r5] 11480 cmp r3, #2 11481 bhi .L1534 11482 subs r4, r4, #1 11483 bne .L1535 11484 b .L1534 11485.L1536: 11486 mov r0, #-1 11487 b .L1502 11488.L1550: 11489 .align 2 11490.L1549: 11491 .word .LANCHOR12 11492 .word .LANCHOR145 11493 .word .LANCHOR72 11494 .word .LANCHOR101 11495 .word .LANCHOR100 11496 .size FtlWrite, .-FtlWrite 11497 .section .text.sftl_gc,"ax",%progbits 11498 .align 1 11499 .global sftl_gc 11500 .syntax unified 11501 .thumb 11502 .thumb_func 11503 .fpu softvfp 11504 .type sftl_gc, %function 11505sftl_gc: 11506 @ args = 0, pretend = 0, frame = 0 11507 @ frame_needed = 0, uses_anonymous_args = 0 11508 @ link register save eliminated. 11509 movs r1, #1 11510 mov r0, r1 11511 b rk_ftl_garbage_collect 11512 .size sftl_gc, .-sftl_gc 11513 .section .text.FtlLoadSysInfo,"ax",%progbits 11514 .align 1 11515 .global FtlLoadSysInfo 11516 .syntax unified 11517 .thumb 11518 .thumb_func 11519 .fpu softvfp 11520 .type FtlLoadSysInfo, %function 11521FtlLoadSysInfo: 11522 @ args = 0, pretend = 0, frame = 8 11523 @ frame_needed = 0, uses_anonymous_args = 0 11524 push {r4, r5, r6, r7, r8, r10, fp, lr} 11525 movs r1, #0 11526 ldr r8, .L1582+144 11527 sub sp, sp, #24 11528 ldr r7, .L1582 11529 ldr r3, [r8] 11530 ldr r4, .L1582+4 11531 ldr fp, .L1582+148 11532 ldrh r2, [r7] 11533 ldr r5, .L1582+8 11534 str r3, [r4, #8] 11535 ldr r6, .L1582+12 11536 ldr r3, [fp] 11537 lsls r2, r2, #1 11538 ldr r0, [r5] 11539 str r3, [r4, #12] 11540 bl ftl_memset 11541 ldrh r0, [r6] 11542 movw r3, #65535 11543 str r5, [sp, #16] 11544 cmp r0, r3 11545 bne .L1553 11546.L1564: 11547 mov r0, #-1 11548.L1552: 11549 add sp, sp, #24 11550 @ sp needed 11551 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11552.L1553: 11553 movs r1, #1 11554 bl FtlGetLastWrittenPage 11555 ldrsh r10, [r6] 11556 sxth r5, r0 11557 adds r0, r0, #1 11558 strh r0, [r6, #2] @ movhi 11559.L1555: 11560 cmp r5, #0 11561 bge .L1561 11562 movw r2, #1465 11563 ldr r1, .L1582+16 11564 ldr r0, .L1582+20 11565 bl printf 11566 b .L1560 11567.L1561: 11568 orr r3, r5, r10, lsl #10 11569 movs r2, #1 11570 mov r1, r2 11571 ldr r0, .L1582+4 11572 str r3, [r4, #4] 11573 ldr r3, [r8] 11574 str r3, [r4, #8] 11575 bl FlashReadPages 11576 ldr r3, [r4, #12] 11577 ldr r3, [r3, #12] 11578 str r3, [sp, #20] 11579 cbz r3, .L1556 11580 ldr r2, [r4] 11581 adds r2, r2, #1 11582 beq .L1556 11583 ldr r2, .L1582+24 11584 ldr r0, [r4, #8] 11585 ldrh r1, [r2] 11586 bl js_hash 11587 ldr r3, [sp, #20] 11588 cmp r3, r0 11589 beq .L1556 11590 str r0, [sp, #8] 11591 mov r2, r10 11592 str r3, [sp, #4] 11593 ldrh r3, [r6, #4] 11594 ldr r1, .L1582+16 11595 ldr r0, .L1582+28 11596 str r3, [sp] 11597 mov r3, r5 11598 bl printf 11599 cbnz r5, .L1557 11600 ldrh r3, [r6, #4] 11601 cmp r10, r3 11602 beq .L1557 11603 sxth r10, r3 11604 ldr r3, .L1582+32 11605 ldrh r5, [r3] 11606.L1559: 11607 subs r5, r5, #1 11608 sxth r5, r5 11609 b .L1555 11610.L1557: 11611 mov r3, #-1 11612 str r3, [r4] 11613.L1556: 11614 ldr r3, [r4] 11615 adds r3, r3, #1 11616 beq .L1559 11617 ldr r3, [r8] 11618 ldr r2, .L1582+36 11619 ldr r3, [r3] 11620 cmp r3, r2 11621 bne .L1559 11622 ldr r3, [fp] 11623 ldrh r2, [r3] 11624 movw r3, #61604 11625 cmp r2, r3 11626 bne .L1559 11627.L1560: 11628 ldr r2, .L1582+24 11629 ldrh r3, [r7] 11630 ldrh r2, [r2] 11631 adds r3, r3, #24 11632 cmp r2, r3, lsl #1 11633 bcs .L1563 11634 movw r2, #1467 11635 ldr r1, .L1582+16 11636 ldr r0, .L1582+20 11637 bl printf 11638.L1563: 11639 ldr r5, .L1582+40 11640 movs r2, #48 11641 ldr r1, [r4, #8] 11642 mov r0, r5 11643 bl ftl_memcpy 11644 ldrh r2, [r7] 11645 ldr r1, [r4, #8] 11646 ldr r3, [sp, #16] 11647 lsls r2, r2, #1 11648 adds r1, r1, #48 11649 ldr r0, [r3] 11650 bl ftl_memcpy 11651 ldrh r1, [r7] 11652 ldr r3, [r4, #8] 11653 mov r4, r5 11654 lsrs r2, r1, #3 11655 adds r1, r1, #24 11656 lsls r1, r1, #1 11657 adds r2, r2, #4 11658 bic r1, r1, #3 11659 add r1, r1, r3 11660 ldr r3, .L1582+44 11661 ldr r0, [r3] 11662 bl ftl_memcpy 11663 ldr r2, [r5] 11664 ldr r3, .L1582+36 11665 cmp r2, r3 11666 bne .L1564 11667 ldr r3, .L1582+48 11668 ldrb r2, [r4, #10] @ zero_extendqisi2 11669 ldrh r5, [r5, #8] 11670 ldrh r3, [r3] 11671 strh r5, [r6, #6] @ movhi 11672 cmp r2, r3 11673 bne .L1564 11674 ldr r3, .L1582+52 11675 ldr r2, .L1582+56 11676 str r5, [r3] 11677 ldr r3, .L1582+60 11678 ldrh r3, [r3] 11679 muls r3, r5, r3 11680 str r3, [r2] 11681 ldr r2, .L1582+64 11682 ldrh r2, [r2] 11683 muls r3, r2, r3 11684 ldr r2, .L1582+68 11685 str r3, [r2] 11686 ldr r3, .L1582+72 11687 ldr r6, [r3] 11688 ldr r3, .L1582+76 11689 ldrh r0, [r3, #6] 11690 ldr r3, .L1582+80 11691 subs r0, r6, r0 11692 ldrh r1, [r3] 11693 subs r0, r0, r5 11694 bl __aeabi_uidiv 11695 ldr r3, .L1582+84 11696 cmp r5, r6 11697 strh r0, [r3] @ movhi 11698 bls .L1565 11699 movw r2, #1489 11700 ldr r1, .L1582+16 11701 ldr r0, .L1582+20 11702 bl printf 11703.L1565: 11704 ldrh r2, [r4, #16] 11705 ldr r3, .L1582+88 11706 ldrh ip, [r4, #14] 11707 ldr r7, .L1582+92 11708 lsrs r1, r2, #6 11709 and r2, r2, #63 11710 strb r2, [r3, #6] 11711 ldrb r2, [r4, #11] @ zero_extendqisi2 11712 strh r1, [r3, #2] @ movhi 11713 ldr r1, .L1582+96 11714 strb r2, [r3, #8] 11715 ldrh r2, [r4, #18] 11716 strh ip, [r3] @ movhi 11717 movw r3, #65535 11718 strh r3, [r7] @ movhi 11719 movs r3, #0 11720 strh r2, [r1] @ movhi 11721 ldrh r2, [r4, #20] 11722 strh r3, [r7, #2] @ movhi 11723 strb r3, [r7, #6] 11724 strb r3, [r7, #8] 11725 lsrs r5, r2, #6 11726 and r2, r2, #63 11727 strb r2, [r1, #6] 11728 ldrb r2, [r4, #12] @ zero_extendqisi2 11729 strh r5, [r1, #2] @ movhi 11730 ldrh r5, [r4, #22] 11731 strb r2, [r1, #8] 11732 ldr r2, .L1582+100 11733 strh r5, [r2] @ movhi 11734 ldrh r5, [r4, #24] 11735 lsrs r6, r5, #6 11736 and r5, r5, #63 11737 strb r5, [r2, #6] 11738 ldrb r5, [r4, #13] @ zero_extendqisi2 11739 strh r6, [r2, #2] @ movhi 11740 ldr r6, [r4, #32] 11741 strb r5, [r2, #8] 11742 ldr r5, .L1582+104 11743 str r3, [r5] 11744 ldr r5, .L1582+108 11745 str r3, [r5] 11746 ldr r5, .L1582+112 11747 str r3, [r5] 11748 ldr r5, .L1582+116 11749 str r3, [r5] 11750 ldr r5, .L1582+120 11751 str r6, [r5] 11752 mov r6, r1 11753 ldr r5, .L1582+124 11754 str r3, [r5] 11755 ldr r5, .L1582+128 11756 str r3, [r5] 11757 ldr r5, .L1582+132 11758 ldr lr, [r4, #40] 11759 str r3, [r5] 11760 ldr r3, .L1582+136 11761 ldr r5, [r3] 11762 cmp lr, r5 11763 mov r5, r2 11764 it hi 11765 strhi lr, [r3] 11766 ldr r3, .L1582+140 11767 ldr r2, [r4, #36] 11768 ldr r1, [r3] 11769 cmp r2, r1 11770 it hi 11771 strhi r2, [r3] 11772 movw r3, #65535 11773 cmp ip, r3 11774 beq .L1568 11775 ldr r0, .L1582+88 11776 bl make_superblock 11777.L1568: 11778 ldrh r2, [r6] 11779 movw r3, #65535 11780 cmp r2, r3 11781 beq .L1569 11782 ldr r0, .L1582+96 11783 bl make_superblock 11784.L1569: 11785 ldrh r2, [r5] 11786 movw r3, #65535 11787 cmp r2, r3 11788 beq .L1570 11789 ldr r0, .L1582+100 11790 bl make_superblock 11791.L1570: 11792 ldrh r2, [r7] 11793 movw r3, #65535 11794 cmp r2, r3 11795 beq .L1571 11796 ldr r0, .L1582+92 11797 bl make_superblock 11798.L1571: 11799 movs r0, #0 11800 b .L1552 11801.L1583: 11802 .align 2 11803.L1582: 11804 .word .LANCHOR5 11805 .word .LANCHOR138 11806 .word .LANCHOR42 11807 .word .LANCHOR139 11808 .word .LANCHOR178 11809 .word .LC1 11810 .word .LANCHOR23 11811 .word .LC46 11812 .word .LANCHOR20 11813 .word 1179929683 11814 .word .LANCHOR39 11815 .word .LANCHOR1 11816 .word .LANCHOR10 11817 .word .LANCHOR179 11818 .word .LANCHOR152 11819 .word .LANCHOR19 11820 .word .LANCHOR12 11821 .word .LANCHOR34 11822 .word .LANCHOR7 11823 .word .LANCHOR37 11824 .word .LANCHOR3 11825 .word .LANCHOR171 11826 .word .LANCHOR51 11827 .word .LANCHOR145 11828 .word .LANCHOR52 11829 .word .LANCHOR53 11830 .word .LANCHOR84 11831 .word .LANCHOR85 11832 .word .LANCHOR89 11833 .word .LANCHOR88 11834 .word .LANCHOR90 11835 .word .LANCHOR91 11836 .word .LANCHOR92 11837 .word .LANCHOR87 11838 .word .LANCHOR82 11839 .word .LANCHOR83 11840 .word .LANCHOR106 11841 .word .LANCHOR114 11842 .size FtlLoadSysInfo, .-FtlLoadSysInfo 11843 .section .text.FtlMapTblRecovery,"ax",%progbits 11844 .align 1 11845 .global FtlMapTblRecovery 11846 .syntax unified 11847 .thumb 11848 .thumb_func 11849 .fpu softvfp 11850 .type FtlMapTblRecovery, %function 11851FtlMapTblRecovery: 11852 @ args = 0, pretend = 0, frame = 32 11853 @ frame_needed = 0, uses_anonymous_args = 0 11854 ldr r3, [r0, #24] 11855 movs r1, #0 11856 push {r4, r5, r6, r7, r8, r10, fp, lr} 11857 sub sp, sp, #40 11858 mov r4, r0 11859 ldr r8, [r0, #12] 11860 movs r7, #0 11861 str r3, [sp, #8] 11862 ldr r3, [r0, #16] 11863 ldr r6, .L1625 11864 str r3, [sp, #24] 11865 ldrh r3, [r0, #6] 11866 str r3, [sp, #12] 11867 ldrh r3, [r0, #8] 11868 ldr r0, [sp, #8] 11869 str r3, [sp, #16] 11870 ldr r3, [sp, #12] 11871 lsls r2, r3, #2 11872 bl ftl_memset 11873 ldr r3, .L1625+4 11874 str r7, [r4, #32] 11875 str r7, [r4, #28] 11876 ldr r2, [r3] 11877 str r3, [sp, #20] 11878 str r2, [r6, #8] 11879 ldr r2, .L1625+8 11880 ldr fp, [r2] 11881 movw r2, #65535 11882 str fp, [r6, #12] 11883 strh r2, [r4] @ movhi 11884 strh r2, [r4, #2] @ movhi 11885 movs r2, #1 11886 str r2, [r4, #36] 11887.L1585: 11888 ldr r3, [sp, #16] 11889 sxth r5, r7 11890 cmp r5, r3 11891 bge .L1604 11892 ldr r3, [sp, #16] 11893 subs r3, r3, #1 11894 cmp r5, r3 11895 bne .L1586 11896 movs r1, #1 11897 ldrh r0, [r8, r5, lsl #1] 11898 bl FtlGetLastWrittenPage 11899 sxth r3, r0 11900 ldr r6, .L1625 11901 add r10, r8, r5, lsl #1 11902 strh r7, [r4] @ movhi 11903 str r3, [sp, #16] 11904 movs r7, #0 11905 ldr r3, [sp, #24] 11906 adds r0, r0, #1 11907 strh r0, [r4, #2] @ movhi 11908 ldr r3, [r3, r5, lsl #2] 11909 str r3, [r4, #28] 11910.L1587: 11911 ldr r3, [sp, #16] 11912 sxth r8, r7 11913 cmp r8, r3 11914 ble .L1590 11915.L1604: 11916 mov r0, r4 11917 bl ftl_free_no_use_map_blk 11918 ldr r3, .L1625+12 11919 ldrh r2, [r4, #2] 11920 ldrh r3, [r3] 11921 cmp r2, r3 11922 bne .L1592 11923 mov r0, r4 11924 bl ftl_map_blk_alloc_new_blk 11925.L1592: 11926 mov r0, r4 11927 bl ftl_map_blk_gc 11928 mov r0, r4 11929 bl ftl_map_blk_gc 11930 movs r0, #0 11931 add sp, sp, #40 11932 @ sp needed 11933 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11934.L1590: 11935 ldrh r2, [r10] 11936 ldr r0, .L1625 11937 orr r2, r8, r2, lsl #10 11938 str r2, [r6, #4] 11939 movs r2, #1 11940 mov r1, r2 11941 bl FlashReadPages 11942 ldr r2, [r6, #12] 11943 ldr r2, [r2, #12] 11944 str r2, [sp, #20] 11945 cbz r2, .L1588 11946 ldr r1, [r6] 11947 adds r1, r1, #1 11948 beq .L1588 11949 ldr r3, .L1625+16 11950 ldr r0, [r6, #8] 11951 ldrh r1, [r3] 11952 bl js_hash 11953 ldr r2, [sp, #20] 11954 cmp r2, r0 11955 beq .L1588 11956 str r0, [sp, #4] 11957 mov r3, r8 11958 str r2, [sp] 11959 mov r2, r5 11960 ldr r1, .L1625+20 11961 ldr r0, .L1625+24 11962 bl printf 11963 mov r3, #-1 11964 str r3, [r6] 11965.L1588: 11966 ldr r3, [r6] 11967 adds r3, r3, #1 11968 beq .L1589 11969 ldrh r3, [fp, #8] 11970 ldr r2, [sp, #12] 11971 cmp r2, r3 11972 bls .L1589 11973 ldrh r1, [fp] 11974 ldrh r2, [r4, #4] 11975 cmp r1, r2 11976 ittt eq 11977 ldreq r2, [r6, #4] 11978 ldreq r1, [sp, #8] 11979 streq r2, [r1, r3, lsl #2] 11980.L1589: 11981 adds r7, r7, #1 11982 b .L1587 11983.L1586: 11984 ldr r3, [sp, #20] 11985 ldr r10, .L1625+12 11986 ldrh r2, [r8, r5, lsl #1] 11987 ldr r3, [r3] 11988 ldr r0, .L1625 11989 str r3, [r6, #8] 11990 add r3, r8, r5, lsl #1 11991 str r3, [sp, #28] 11992 ldrh r3, [r10] 11993 subs r3, r3, #1 11994 orr r3, r3, r2, lsl #10 11995 movs r2, #1 11996 mov r1, r2 11997 str r3, [r6, #4] 11998 bl FlashReadPages 11999 ldr r3, [r6] 12000 adds r3, r3, #1 12001 beq .L1606 12002 ldrh r2, [fp] 12003 ldrh r3, [r4, #4] 12004 cmp r2, r3 12005 bne .L1606 12006 ldrh r2, [fp, #8] 12007 movw r3, #64245 12008 cmp r2, r3 12009 beq .L1594 12010.L1606: 12011 mov r10, #0 12012.L1595: 12013 ldr r2, .L1625+12 12014 sxth r3, r10 12015 ldrh r2, [r2] 12016 cmp r3, r2 12017 bge .L1602 12018 ldr r2, [sp, #28] 12019 ldr r0, .L1625 12020 str r3, [sp, #36] 12021 ldrh r2, [r2] 12022 orr r2, r3, r2, lsl #10 12023 str r2, [r6, #4] 12024 movs r2, #1 12025 mov r1, r2 12026 bl FlashReadPages 12027 ldr r2, [r6, #12] 12028 ldr r2, [r2, #12] 12029 str r2, [sp, #32] 12030 cbz r2, .L1599 12031 ldr r1, [r6] 12032 adds r1, r1, #1 12033 beq .L1599 12034 ldr r1, .L1625+16 12035 ldr r0, [r6, #8] 12036 ldrh r1, [r1] 12037 bl js_hash 12038 ldr r2, [sp, #32] 12039 cmp r2, r0 12040 beq .L1599 12041 str r0, [sp, #4] 12042 str r2, [sp] 12043 mov r2, r5 12044 ldr r3, [sp, #36] 12045 ldr r1, .L1625+20 12046 ldr r0, .L1625+28 12047 bl printf 12048 mov r3, #-1 12049 str r3, [r6] 12050.L1599: 12051 ldr r3, [r6] 12052 adds r3, r3, #1 12053 beq .L1600 12054 ldrh r3, [fp, #8] 12055 ldr r2, [sp, #12] 12056 cmp r2, r3 12057 bls .L1600 12058 ldrh r1, [fp] 12059 ldrh r2, [r4, #4] 12060 cmp r1, r2 12061 ittt eq 12062 ldreq r2, [r6, #4] 12063 ldreq r1, [sp, #8] 12064 streq r2, [r1, r3, lsl #2] 12065.L1600: 12066 add r10, r10, #1 12067 b .L1595 12068.L1594: 12069 ldr r3, [sp, #20] 12070 movs r1, #0 12071 ldrh r2, [r10] 12072 ldr r0, [r3] 12073 add lr, r2, #-1 12074.L1596: 12075 sxth r3, r1 12076 cmp r3, lr 12077 blt .L1598 12078.L1602: 12079 adds r7, r7, #1 12080 b .L1585 12081.L1598: 12082 lsls r5, r3, #3 12083 ldr r3, [r0, r3, lsl #3] 12084 ldr r2, [sp, #12] 12085 uxth ip, r3 12086 cmp r2, ip 12087 bls .L1597 12088 add r5, r5, r0 12089 ldr r2, [sp, #8] 12090 ldr r5, [r5, #4] 12091 str r5, [r2, ip, lsl #2] 12092.L1597: 12093 adds r1, r1, #1 12094 b .L1596 12095.L1626: 12096 .align 2 12097.L1625: 12098 .word .LANCHOR138 12099 .word .LANCHOR106 12100 .word .LANCHOR114 12101 .word .LANCHOR20 12102 .word .LANCHOR23 12103 .word .LANCHOR180 12104 .word .LC47 12105 .word .LC48 12106 .size FtlMapTblRecovery, .-FtlMapTblRecovery 12107 .section .text.FtlLoadVonderInfo,"ax",%progbits 12108 .align 1 12109 .global FtlLoadVonderInfo 12110 .syntax unified 12111 .thumb 12112 .thumb_func 12113 .fpu softvfp 12114 .type FtlLoadVonderInfo, %function 12115FtlLoadVonderInfo: 12116 @ args = 0, pretend = 0, frame = 0 12117 @ frame_needed = 0, uses_anonymous_args = 0 12118 push {r3, lr} 12119 ldr r3, .L1628 12120 ldr r0, .L1628+4 12121 ldrh r3, [r3] 12122 strh r3, [r0, #10] @ movhi 12123 movw r3, #61574 12124 strh r3, [r0, #4] @ movhi 12125 ldr r3, .L1628+8 12126 ldrh r3, [r3] 12127 strh r3, [r0, #8] @ movhi 12128 ldr r3, .L1628+12 12129 ldrh r3, [r3] 12130 strh r3, [r0, #6] @ movhi 12131 ldr r3, .L1628+16 12132 ldr r3, [r3] 12133 str r3, [r0, #12] 12134 ldr r3, .L1628+20 12135 ldr r3, [r3] 12136 str r3, [r0, #16] 12137 ldr r3, .L1628+24 12138 ldr r3, [r3] 12139 str r3, [r0, #20] 12140 ldr r3, .L1628+28 12141 ldr r3, [r3] 12142 str r3, [r0, #24] 12143 bl FtlMapTblRecovery 12144 movs r0, #0 12145 pop {r3, pc} 12146.L1629: 12147 .align 2 12148.L1628: 12149 .word .LANCHOR27 12150 .word .LANCHOR161 12151 .word .LANCHOR35 12152 .word .LANCHOR28 12153 .word .LANCHOR36 12154 .word .LANCHOR122 12155 .word .LANCHOR121 12156 .word .LANCHOR123 12157 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 12158 .section .text.FtlLoadMapInfo,"ax",%progbits 12159 .align 1 12160 .global FtlLoadMapInfo 12161 .syntax unified 12162 .thumb 12163 .thumb_func 12164 .fpu softvfp 12165 .type FtlLoadMapInfo, %function 12166FtlLoadMapInfo: 12167 @ args = 0, pretend = 0, frame = 0 12168 @ frame_needed = 0, uses_anonymous_args = 0 12169 push {r3, lr} 12170 bl FtlL2PDataInit 12171 ldr r0, .L1631 12172 bl FtlMapTblRecovery 12173 movs r0, #0 12174 pop {r3, pc} 12175.L1632: 12176 .align 2 12177.L1631: 12178 .word .LANCHOR129 12179 .size FtlLoadMapInfo, .-FtlLoadMapInfo 12180 .section .text.FtlSysBlkInit,"ax",%progbits 12181 .align 1 12182 .global FtlSysBlkInit 12183 .syntax unified 12184 .thumb 12185 .thumb_func 12186 .fpu softvfp 12187 .type FtlSysBlkInit, %function 12188FtlSysBlkInit: 12189 @ args = 0, pretend = 0, frame = 0 12190 @ frame_needed = 0, uses_anonymous_args = 0 12191 push {r3, r4, r5, r6, r7, lr} 12192 movs r3, #0 12193 ldr r4, .L1646 12194 strh r3, [r4] @ movhi 12195 ldr r3, .L1646+4 12196 ldrh r0, [r3] 12197 bl FtlFreeSysBlkQueueInit 12198 bl FtlScanSysBlk 12199 ldr r3, .L1646+8 12200 ldrh r2, [r3] 12201 movw r3, #65535 12202 cmp r2, r3 12203 bne .L1634 12204.L1636: 12205 mov r6, #-1 12206.L1633: 12207 mov r0, r6 12208 pop {r3, r4, r5, r6, r7, pc} 12209.L1634: 12210 bl FtlLoadSysInfo 12211 mov r6, r0 12212 cmp r0, #0 12213 bne .L1636 12214 bl FtlLoadMapInfo 12215 bl FtlLoadVonderInfo 12216 bl Ftl_load_ext_data 12217 bl FtlLoadEctTbl 12218 bl FtlFreeSysBLkSort 12219 bl SupperBlkListInit 12220 bl FtlPowerLostRecovery 12221 movs r0, #1 12222 bl FtlUpdateVaildLpn 12223 ldr r3, .L1646+12 12224 movs r0, #12 12225 ldrh r1, [r3] 12226 ldr r3, .L1646+16 12227 ldr r2, [r3] 12228 mov r3, r6 12229.L1637: 12230 cmp r3, r1 12231 bge .L1642 12232 mla r5, r0, r3, r2 12233 ldr r5, [r5, #4] 12234 cmp r5, #0 12235 bge .L1638 12236.L1642: 12237 ldr r0, .L1646+20 12238 cmp r3, r1 12239 ldr r2, [r0] 12240 add r2, r2, #32 12241 str r2, [r0] 12242 bge .L1644 12243.L1639: 12244 ldr r5, .L1646+24 12245 ldr r4, .L1646+28 12246 mov r0, r5 12247 bl FtlSuperblockPowerLostFix 12248 mov r0, r4 12249 bl FtlSuperblockPowerLostFix 12250 ldr r3, .L1646+32 12251 ldrh r1, [r5] 12252 ldrh r0, [r5, #4] 12253 ldr r2, [r3] 12254 ldrh r3, [r2, r1, lsl #1] 12255 subs r3, r3, r0 12256 ldr r0, .L1646+36 12257 strh r3, [r2, r1, lsl #1] @ movhi 12258 ldrh r7, [r4, #4] 12259 ldrh r3, [r0] 12260 strh r3, [r5, #2] @ movhi 12261 movs r3, #0 12262 strb r3, [r5, #6] 12263 strh r3, [r5, #4] @ movhi 12264 ldrh r5, [r4] 12265 ldrh r1, [r2, r5, lsl #1] 12266 subs r1, r1, r7 12267 strh r1, [r2, r5, lsl #1] @ movhi 12268 ldrh r2, [r0] 12269 strb r3, [r4, #6] 12270 strh r3, [r4, #4] @ movhi 12271 strh r2, [r4, #2] @ movhi 12272 ldr r2, .L1646+40 12273 ldrh r3, [r2, #30] 12274 adds r3, r3, #1 12275 strh r3, [r2, #30] @ movhi 12276 bl l2p_flush 12277 bl FtlVpcTblFlush 12278.L1645: 12279 bl FtlVpcTblFlush 12280 b .L1633 12281.L1638: 12282 adds r3, r3, #1 12283 b .L1637 12284.L1644: 12285 ldrh r3, [r4] 12286 cmp r3, #0 12287 bne .L1639 12288 bl l2p_flush 12289 b .L1645 12290.L1647: 12291 .align 2 12292.L1646: 12293 .word .LANCHOR156 12294 .word .LANCHOR4 12295 .word .LANCHOR139 12296 .word .LANCHOR33 12297 .word .LANCHOR55 12298 .word .LANCHOR83 12299 .word .LANCHOR51 12300 .word .LANCHOR52 12301 .word .LANCHOR42 12302 .word .LANCHOR19 12303 .word .LANCHOR39 12304 .size FtlSysBlkInit, .-FtlSysBlkInit 12305 .section .text.ftl_low_format,"ax",%progbits 12306 .align 1 12307 .global ftl_low_format 12308 .syntax unified 12309 .thumb 12310 .thumb_func 12311 .fpu softvfp 12312 .type ftl_low_format, %function 12313ftl_low_format: 12314 @ args = 0, pretend = 0, frame = 16 12315 @ frame_needed = 0, uses_anonymous_args = 0 12316 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 12317 movs r3, #0 12318 ldr r2, .L1672 12319 ldr r6, .L1672+4 12320 str r3, [r2] 12321 ldr r5, .L1672+8 12322 ldr r2, .L1672+12 12323 ldrh r0, [r6] 12324 str r3, [r5] 12325 str r3, [r2] 12326 bl FtlFreeSysBlkQueueInit 12327 bl FtlLoadBbt 12328 cbz r0, .L1649 12329 bl FtlMakeBbt 12330.L1649: 12331 ldr r3, .L1672+16 12332 ldr r2, .L1672+20 12333 ldr ip, .L1672+104 12334 ldrh r1, [r3] 12335 ldr r4, [r2] 12336 ldr r2, .L1672+24 12337 str r3, [sp, #4] 12338 lsls r1, r1, #7 12339 ldr r7, [r2] 12340 movs r2, #0 12341.L1650: 12342 uxth r3, r2 12343 adds r2, r2, #1 12344 cmp r3, r1 12345 blt .L1651 12346 ldr r3, .L1672+28 12347 movs r7, #0 12348 ldr r10, .L1672+108 12349 ldrh r4, [r3] 12350 mov r8, r3 12351 mov fp, r10 12352.L1652: 12353 ldrh r3, [r10] 12354 cmp r3, r4 12355 bhi .L1653 12356 ldr r4, .L1672+32 12357 subs r3, r7, #2 12358 ldrh r1, [r4] 12359 cmp r3, r1, lsl #1 12360 bgt .L1654 12361.L1658: 12362 movs r6, #0 12363 mov r7, r6 12364.L1655: 12365 ldrh r3, [r8] 12366 uxth r0, r6 12367 adds r6, r6, #1 12368 cmp r3, r0 12369 bhi .L1659 12370 ldrh r2, [fp] 12371 ldr r3, .L1672+36 12372 ldrh r4, [r4] 12373 ldr r6, .L1672+40 12374 str r2, [r3] 12375 ldr r3, .L1672+44 12376 mov r1, r4 12377 ldr r2, [r3] 12378 mov r0, r2 12379 str r2, [sp, #12] 12380 bl __aeabi_uidiv 12381 ubfx r10, r0, #5, #16 12382 mov r3, r0 12383 str r0, [r6] 12384 add r1, r10, #36 12385 ldr r0, .L1672+48 12386 strh r1, [r0] @ movhi 12387 movs r1, #24 12388 muls r1, r4, r1 12389 str r0, [sp] 12390 cmp r7, r1 12391 ble .L1660 12392 ldr r2, [sp, #12] 12393 mov r1, r4 12394 str r3, [sp, #8] 12395 subs r0, r2, r7 12396 bl __aeabi_uidiv 12397 ldr r3, [sp] 12398 str r0, [r6] 12399 lsrs r0, r0, #5 12400 adds r0, r0, #24 12401 strh r0, [r3] @ movhi 12402 ldr r3, [sp, #8] 12403.L1660: 12404 ldr r2, .L1672+52 12405 ldrh r2, [r2] 12406 cbz r2, .L1662 12407 ldr r1, .L1672+48 12408 ldrh r0, [r1] 12409 add r0, r0, r2, lsr #1 12410 strh r0, [r1] @ movhi 12411 mul r0, r4, r2 12412 cmp r7, r0 12413 itttt lt 12414 addlt r2, r2, #32 12415 strlt r3, [r6] 12416 addlt r2, r2, r10 12417 strhlt r2, [r1] @ movhi 12418.L1662: 12419 ldr r3, [sp] 12420 ldr r7, .L1672+56 12421 ldr r10, .L1672+112 12422 ldrh r2, [r3] 12423 ldr r3, [r6] 12424 subs r3, r3, r2 12425 muls r4, r3, r4 12426 ldr r3, .L1672+60 12427 ldrh r3, [r3] 12428 str r4, [r7] 12429 muls r4, r3, r4 12430 ldr r3, [sp, #4] 12431 ldrh r3, [r3] 12432 str r4, [r6] 12433 ldr r6, .L1672+64 12434 muls r4, r3, r4 12435 ldr r3, .L1672+68 12436 str r4, [r3] 12437 movw r4, #65535 12438 bl FtlBbmTblFlush 12439 ldrh r2, [fp] 12440 movs r1, #0 12441 ldr r0, [r10] 12442 lsls r2, r2, #1 12443 bl ftl_memset 12444 ldr r2, .L1672+72 12445 movs r3, #0 12446 strh r3, [r6, #2] @ movhi 12447 movs r1, #255 12448 strb r3, [r6, #6] 12449 str r3, [r2] 12450 ldr r2, .L1672+76 12451 strh r3, [r6] @ movhi 12452 strh r3, [r2, #2] @ movhi 12453 strb r3, [r2, #6] 12454 strb r3, [r2, #8] 12455 movs r3, #1 12456 strh r4, [r2] @ movhi 12457 ldrh r2, [r8] 12458 mov r8, r10 12459 strb r3, [r6, #8] 12460 mov r10, r6 12461 ldr r3, .L1672+80 12462 lsrs r2, r2, #3 12463 ldr r0, [r3] 12464 bl ftl_memset 12465.L1664: 12466 mov r0, r10 12467 bl make_superblock 12468 ldrb r3, [r6, #7] @ zero_extendqisi2 12469 ldrh r2, [r6] 12470 cmp r3, #0 12471 bne .L1665 12472 ldr r3, [r8] 12473 strh r4, [r3, r2, lsl #1] @ movhi 12474 ldrh r3, [r6] 12475 adds r3, r3, #1 12476 strh r3, [r6] @ movhi 12477 b .L1664 12478.L1651: 12479 mvns r0, r3 12480 orr r0, r3, r0, lsl #16 12481 str r0, [r4, r3, lsl #2] 12482 str ip, [r7, r3, lsl #2] 12483 b .L1650 12484.L1653: 12485 mov r0, r4 12486 movs r1, #1 12487 bl FtlLowFormatEraseBlock 12488 adds r4, r4, #1 12489 add r7, r7, r0 12490 uxth r7, r7 12491 uxth r4, r4 12492 b .L1652 12493.L1654: 12494 mov r0, r7 12495 bl __aeabi_uidiv 12496 ldr r3, .L1672+84 12497 ldr r3, [r3] 12498 add r0, r0, r3 12499 uxth r0, r0 12500 bl FtlSysBlkNumInit 12501 ldrh r0, [r6] 12502 bl FtlFreeSysBlkQueueInit 12503 ldrh r6, [r8] 12504.L1656: 12505 ldrh r3, [fp] 12506 cmp r3, r6 12507 bls .L1658 12508 mov r0, r6 12509 movs r1, #1 12510 adds r6, r6, #1 12511 bl FtlLowFormatEraseBlock 12512 uxth r6, r6 12513 b .L1656 12514.L1659: 12515 movs r1, #0 12516 bl FtlLowFormatEraseBlock 12517 add r7, r7, r0 12518 uxth r7, r7 12519 b .L1655 12520.L1665: 12521 ldr r3, [r5] 12522 ldrh r1, [r6, #4] 12523 ldr r4, .L1672+88 12524 str r3, [r6, #12] 12525 adds r3, r3, #1 12526 str r3, [r5] 12527 ldr r3, [r8] 12528 mov r10, r4 12529 strh r1, [r3, r2, lsl #1] @ movhi 12530 movs r3, #0 12531 strh r3, [r4, #2] @ movhi 12532 strb r3, [r4, #6] 12533 ldrh r3, [r6] 12534 movw r6, #65535 12535 adds r3, r3, #1 12536 strh r3, [r4] @ movhi 12537 movs r3, #1 12538 strb r3, [r4, #8] 12539.L1666: 12540 mov r0, r10 12541 bl make_superblock 12542 ldrb r3, [r4, #7] @ zero_extendqisi2 12543 ldrh r2, [r4] 12544 cbnz r3, .L1667 12545 ldr r3, [r8] 12546 strh r6, [r3, r2, lsl #1] @ movhi 12547 ldrh r3, [r4] 12548 adds r3, r3, #1 12549 strh r3, [r4] @ movhi 12550 b .L1666 12551.L1667: 12552 ldr r3, [r5] 12553 ldrh r1, [r4, #4] 12554 str r3, [r4, #12] 12555 adds r3, r3, #1 12556 str r3, [r5] 12557 movw r4, #65535 12558 ldr r3, [r8] 12559 strh r1, [r3, r2, lsl #1] @ movhi 12560 ldr r3, .L1672+92 12561 strh r4, [r3] @ movhi 12562 bl FtlFreeSysBlkQueueOut 12563 ldr r3, .L1672+96 12564 movs r2, #0 12565 strh r2, [r3, #2] @ movhi 12566 ldr r2, [r7] 12567 strh r0, [r3] @ movhi 12568 strh r4, [r3, #4] @ movhi 12569 strh r2, [r3, #6] @ movhi 12570 ldr r2, [r5] 12571 str r2, [r3, #8] 12572 adds r2, r2, #1 12573 str r2, [r5] 12574 bl FtlVpcTblFlush 12575 bl FtlSysBlkInit 12576 cbnz r0, .L1668 12577 ldr r3, .L1672+100 12578 movs r2, #1 12579 str r2, [r3] 12580.L1668: 12581 movs r0, #0 12582 add sp, sp, #16 12583 @ sp needed 12584 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12585.L1673: 12586 .align 2 12587.L1672: 12588 .word .LANCHOR83 12589 .word .LANCHOR4 12590 .word .LANCHOR82 12591 .word .LANCHOR143 12592 .word .LANCHOR12 12593 .word .LANCHOR109 12594 .word .LANCHOR110 12595 .word .LANCHOR5 12596 .word .LANCHOR3 12597 .word .LANCHOR99 12598 .word .LANCHOR152 12599 .word .LANCHOR7 12600 .word .LANCHOR171 12601 .word .LANCHOR15 12602 .word .LANCHOR179 12603 .word .LANCHOR19 12604 .word .LANCHOR51 12605 .word .LANCHOR34 12606 .word .LANCHOR59 12607 .word .LANCHOR145 12608 .word .LANCHOR1 12609 .word .LANCHOR31 12610 .word .LANCHOR52 12611 .word .LANCHOR53 12612 .word .LANCHOR139 12613 .word .LANCHOR166 12614 .word 168778952 12615 .word .LANCHOR6 12616 .word .LANCHOR42 12617 .size ftl_low_format, .-ftl_low_format 12618 .section .text.sftl_init,"ax",%progbits 12619 .align 1 12620 .global sftl_init 12621 .syntax unified 12622 .thumb 12623 .thumb_func 12624 .fpu softvfp 12625 .type sftl_init, %function 12626sftl_init: 12627 @ args = 0, pretend = 0, frame = 0 12628 @ frame_needed = 0, uses_anonymous_args = 0 12629 push {r4, r5, r6, lr} 12630 mov r3, #-1 12631 ldr r4, .L1686 12632 movs r6, #0 12633 ldr r1, .L1686+4 12634 ldr r0, .L1686+8 12635 str r3, [r4] 12636 bl printf 12637 ldr r0, .L1686+12 12638 bl FtlConstantsInit 12639 ldr r5, .L1686+16 12640 bl FtlMemInit 12641 bl FtlVariablesInit 12642 ldr r3, .L1686+20 12643 ldrh r0, [r3] 12644 bl FtlFreeSysBlkQueueInit 12645.L1675: 12646 bl FtlLoadBbt 12647 cbz r0, .L1676 12648.L1685: 12649 ldr r3, [r5] 12650 cmp r3, #1 12651 bne .L1675 12652 str r6, [r5] 12653 bl ftl_low_format 12654 b .L1675 12655.L1676: 12656 bl FtlSysBlkInit 12657 cmp r0, #0 12658 bne .L1685 12659 movs r3, #1 12660 str r3, [r4] 12661 pop {r4, r5, r6, pc} 12662.L1687: 12663 .align 2 12664.L1686: 12665 .word .LANCHOR166 12666 .word .LC49 12667 .word .LC38 12668 .word .LANCHOR0 12669 .word .LANCHOR181 12670 .word .LANCHOR4 12671 .size sftl_init, .-sftl_init 12672 .section .text.FtlWriteToIDB,"ax",%progbits 12673 .align 1 12674 .global FtlWriteToIDB 12675 .syntax unified 12676 .thumb 12677 .thumb_func 12678 .fpu softvfp 12679 .type FtlWriteToIDB, %function 12680FtlWriteToIDB: 12681 @ args = 0, pretend = 0, frame = 104 12682 @ frame_needed = 0, uses_anonymous_args = 0 12683 push {r4, r5, r6, r7, r8, r10, fp, lr} 12684 add r8, r1, r0 12685 add r10, r8, #-1 12686 sub sp, sp, #112 12687 cmp r10, #63 12688 mov r4, r0 12689 mov r6, r1 12690 mov r7, r2 12691 ldr r5, .L1758 12692 bls .L1689 12693 cmp r0, #576 12694 bcc .L1690 12695.L1689: 12696 ldr r3, [r5] 12697 cbnz r3, .L1691 12698.L1757: 12699 movs r4, #0 12700 b .L1688 12701.L1691: 12702 ldr r3, .L1758+4 12703 ldr r3, [r3] 12704 ldr r2, [r3] 12705 str r3, [sp, #12] 12706 ldr r3, .L1758+8 12707 cmp r2, r3 12708 bne .L1693 12709 ldr r3, .L1758+12 12710 movs r2, #0 12711 ldrh r1, [r3, #10] 12712 ldr r3, [sp, #12] 12713 add r0, r3, #262144 12714 movw r3, #65535 12715.L1697: 12716 ldr r4, [r0, #-4] 12717 cbnz r4, .L1694 12718 ldr r4, [sp, #12] 12719 subs r3, r3, #1 12720 ldr r4, [r4, r2, lsl #2] 12721 adds r2, r2, #1 12722 cmp r2, #4096 12723 it hi 12724 movhi r2, #0 12725 cmp r3, #4096 12726 str r4, [r0, #-4]! 12727 bne .L1697 12728 mov r3, #512 12729 b .L1754 12730.L1694: 12731 adds r3, r3, #127 12732 lsrs r3, r3, #7 12733.L1754: 12734 str r3, [sp, #16] 12735 lsls r1, r1, #2 12736 ldr r3, [sp, #16] 12737 uxth r1, r1 12738 ldr r4, .L1758+16 12739 adds r0, r3, #4 12740 bl __aeabi_uidiv 12741 adds r3, r0, #1 12742 str r3, [sp, #24] 12743 ldr r3, [sp, #16] 12744 lsls r3, r3, #7 12745 str r3, [sp, #36] 12746 movs r3, #0 12747 mov r10, r3 12748 str r3, [sp, #20] 12749.L1719: 12750 ldr r3, .L1758+20 12751 mov r2, #512 12752 movs r1, #0 12753 ldr r0, [r3] 12754 bl memset 12755 ldr r3, .L1758+12 12756 ldrh r6, [r3, #10] 12757 ldr r3, [r4, #16] 12758 mul fp, r10, r6 12759 cmp r3, #0 12760 beq .L1727 12761 ldr r3, [r4, #20] 12762 cmp r3, #0 12763 ite eq 12764 moveq r3, #6 12765 movne r3, #9 12766.L1755: 12767 str r3, [sp, #28] 12768 mov r1, fp 12769 ldr r3, .L1758+16 12770 movs r0, #0 12771 ldr r3, [r3, #4] 12772 blx r3 12773 ldr r3, [sp, #24] 12774 cmp r3, #1 12775 beq .L1699 12776 ldr r3, .L1758+16 12777 add r1, r6, fp 12778 movs r0, #0 12779 ldr r3, [r3, #4] 12780 blx r3 12781.L1699: 12782 ldr r3, [sp, #28] 12783 cmp r3, #9 12784 bne .L1729 12785 ldr r3, .L1758+20 12786 mov r2, #1024 12787 movs r1, #0 12788 ldr r5, [r3] 12789 mov r0, r5 12790 bl ftl_memset 12791 movs r2, #4 12792 ldr r3, .L1758+24 12793 strb r2, [r5, #17] 12794 movs r1, #12 12795 ldr r2, .L1758+12 12796 adds r0, r5, r1 12797 str r3, [r5] 12798 movs r3, #0 12799 str r1, [r5, #4] 12800 ldrh r2, [r2, #10] 12801 str r3, [r5, #12] 12802 strb r3, [r5, #16] 12803 strh r2, [r5, #18] @ movhi 12804 movs r2, #16 12805 strb r3, [r5, #20] 12806 strb r2, [r5, #21] 12807 strh r3, [r5, #22] @ movhi 12808 bl js_hash 12809 str r0, [r5, #8] 12810.L1700: 12811 ldr r3, [sp, #24] 12812 mov r8, fp 12813 muls r3, r6, r3 12814 movs r6, #0 12815 str r3, [sp, #40] 12816 ldr r3, [sp, #12] 12817 str r3, [sp, #32] 12818.L1701: 12819 ldr r3, [sp, #40] 12820 cmp r6, r3 12821 beq .L1708 12822 ldr r3, [sp, #28] 12823 cmp r3, #9 12824 itet ne 12825 addne r3, fp, r6 12826 addeq r3, r8, #1 12827 lslne r3, r3, #2 12828 str r3, [sp, #48] 12829 movw r3, #61424 12830 str r3, [sp, #52] 12831 cmp r6, #0 12832 bne .L1704 12833 ldr r3, [sp, #28] 12834 cmp r3, #9 12835 bne .L1704 12836 ldr r3, [r4, #16] 12837 movs r0, #70 12838 blx r3 12839 add r3, sp, #48 12840 mov r2, r5 12841 mov r1, fp 12842 mov r0, r6 12843 ldr r7, [r4, #8] 12844 blx r7 12845 ldr r2, .L1758+12 12846 str r0, [sp, #44] 12847 ldr r3, [r4, #16] 12848 ldrb r0, [r2, #22] @ zero_extendqisi2 12849 blx r3 12850 ldr r2, [sp, #44] 12851 adds r2, r2, #1 12852 bne .L1705 12853.L1708: 12854 ldr r3, .L1758+20 12855 ldr r2, [r4, #16] 12856 ldr r6, [r3] 12857 ldr r3, .L1758+12 12858 ldrb r3, [r3, #14] @ zero_extendqisi2 12859 str r3, [sp, #28] 12860 ldr r3, .L1758+12 12861 ldrh r3, [r3, #10] 12862 mul r8, r10, r3 12863 cmp r2, #0 12864 bne .L1706 12865 mov fp, #6 12866.L1707: 12867 ldr r2, [sp, #24] 12868 movs r5, #0 12869 muls r3, r2, r3 12870 str r3, [sp, #32] 12871.L1710: 12872 ldr r3, [sp, #32] 12873 cmp r5, r3 12874 beq .L1714 12875 cmp r5, #0 12876 bne .L1711 12877 cmp fp, #9 12878 bne .L1711 12879 ldr r3, [r4, #16] 12880 movs r0, #70 12881 blx r3 12882 ldr r3, [r4, #20] 12883 movs r0, #2 12884 blx r3 12885 mov r2, r6 12886 mov r1, r8 12887 add r3, sp, #48 12888 mov r0, r5 12889 ldr r7, [r4, #12] 12890 blx r7 12891 ldr r3, [r4, #20] 12892 ldr r0, [sp, #28] 12893 blx r3 12894 ldr r2, .L1758+12 12895 ldr r3, [r4, #16] 12896 ldrb r0, [r2, #22] @ zero_extendqisi2 12897 blx r3 12898 ldr r3, [r6] 12899 ldr r2, .L1758+24 12900 cmp r3, r2 12901 beq .L1712 12902.L1714: 12903 ldr r3, .L1758+20 12904 movs r5, #0 12905 ldr r1, [sp, #12] 12906 ldr r0, [r3] 12907.L1713: 12908 mov r8, r1 12909 ldr r2, [r0, r5, lsl #2] 12910 ldr r3, [r8] 12911 lsls r6, r5, #2 12912 adds r1, r1, #4 12913 cmp r2, r3 12914 beq .L1716 12915 mov r2, #512 12916 movs r1, #0 12917 bl memset 12918 ldr r3, .L1758+20 12919 mov r1, r10 12920 ldr r0, .L1758+28 12921 ldr r2, [r3] 12922 str r5, [sp] 12923 ldr r3, [r8] 12924 ldr r2, [r2, r6] 12925 bl printf 12926 ldr r3, .L1758+12 12927 movs r0, #0 12928 ldrh r1, [r3, #10] 12929 ldr r3, [r4, #4] 12930 mul r1, r10, r1 12931 blx r3 12932.L1717: 12933 ldr r3, [sp, #24] 12934 add r10, r10, r3 12935 cmp r10, #15 12936 bls .L1719 12937 ldr r3, [sp, #20] 12938 cbnz r3, .L1720 12939.L1693: 12940 mov r3, #-1 12941 str r3, [sp, #16] 12942.L1720: 12943 ldr r3, .L1758 12944 movs r2, #0 12945 ldr r4, [sp, #16] 12946 str r2, [r3] 12947 ldr r3, .L1758+4 12948 ldr r0, [r3] 12949 bl free 12950 ldr r3, .L1758+20 12951 ldr r0, [r3] 12952 bl free 12953.L1688: 12954 mov r0, r4 12955 add sp, sp, #112 12956 @ sp needed 12957 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12958.L1727: 12959 movs r3, #6 12960 b .L1755 12961.L1729: 12962 movs r5, #0 12963 b .L1700 12964.L1704: 12965 add r3, sp, #48 12966 ldr r2, [sp, #32] 12967 mov r1, r8 12968 movs r0, #0 12969 ldr r7, [r4, #8] 12970 blx r7 12971 adds r0, r0, #1 12972 beq .L1708 12973 ldr r3, [sp, #32] 12974 add r3, r3, #2048 12975 str r3, [sp, #32] 12976.L1705: 12977 adds r6, r6, #1 12978 add r8, r8, #1 12979 b .L1701 12980.L1706: 12981 ldr r2, [r4, #20] 12982 cmp r2, #0 12983 ite eq 12984 moveq fp, #6 12985 movne fp, #9 12986 b .L1707 12987.L1711: 12988 add r3, sp, #48 12989 mov r2, r6 12990 add r1, r8, r5 12991 movs r0, #0 12992 ldr r7, [r4, #12] 12993 blx r7 12994 adds r0, r0, #1 12995 beq .L1714 12996 ldr r2, [sp, #52] 12997 movw r3, #61424 12998 cmp r2, r3 12999 bne .L1714 13000 add r6, r6, #2048 13001.L1712: 13002 adds r5, r5, #1 13003 b .L1710 13004.L1759: 13005 .align 2 13006.L1758: 13007 .word .LANCHOR182 13008 .word .LANCHOR183 13009 .word -52655045 13010 .word .LANCHOR0 13011 .word .LANCHOR78 13012 .word .LANCHOR184 13013 .word 1179535694 13014 .word .LC50 13015.L1716: 13016 ldr r3, [sp, #36] 13017 adds r5, r5, #1 13018 cmp r5, r3 13019 bne .L1713 13020 ldr r3, [sp, #20] 13021 adds r3, r3, #1 13022 cmp r3, #5 13023 str r3, [sp, #20] 13024 bls .L1717 13025 b .L1720 13026.L1690: 13027 cmp r0, #64 13028 bne .L1721 13029 ldr fp, .L1760+4 13030 mov r0, #262144 13031 bl ftl_malloc 13032 str r0, [fp] 13033 mov r0, #262144 13034 bl ftl_malloc 13035 ldr r3, .L1760 13036 str r0, [r3] 13037 ldr r3, [fp] 13038 cbz r3, .L1722 13039 cbz r0, .L1722 13040 movs r2, #1 13041 movs r1, #0 13042 str r2, [r5] 13043 mov r0, r3 13044 mov r2, #262144 13045 bl ftl_memset 13046.L1721: 13047 ldr r3, [r5] 13048 cmp r3, #0 13049 beq .L1757 13050 ldr r3, .L1760+4 13051 cmp r4, #63 13052 iteee hi 13053 ldrhi r5, .L1760+8 13054 rsbls r4, r4, #64 13055 subls r6, r6, r4 13056 addls r7, r7, r4, lsl #9 13057 ldr r1, [r3] 13058 mov r2, #262144 13059 it hi 13060 addhi r5, r5, r4 13061 ldr r0, .L1760+12 13062 ite ls 13063 movls r5, r1 13064 addhi r5, r1, r5, lsl #9 13065 cmp r10, #576 13066 itt cs 13067 subcs r6, r6, r8 13068 subcs r6, r6, #446 13069 mov r3, r5 13070 str r6, [sp] 13071 bl printf 13072 lsls r2, r6, #9 13073 mov r1, r7 13074 mov r0, r5 13075 bl ftl_memcpy 13076 b .L1757 13077.L1722: 13078 ldr r1, .L1760+16 13079 ldr r0, .L1760+20 13080 bl printf 13081 b .L1721 13082.L1761: 13083 .align 2 13084.L1760: 13085 .word .LANCHOR184 13086 .word .LANCHOR183 13087 .word 8388544 13088 .word .LC52 13089 .word .LANCHOR185 13090 .word .LC51 13091 .size FtlWriteToIDB, .-FtlWriteToIDB 13092 .section .text.sftl_write,"ax",%progbits 13093 .align 1 13094 .global sftl_write 13095 .syntax unified 13096 .thumb 13097 .thumb_func 13098 .fpu softvfp 13099 .type sftl_write, %function 13100sftl_write: 13101 @ args = 0, pretend = 0, frame = 0 13102 @ frame_needed = 0, uses_anonymous_args = 0 13103 push {r4, r5, r6, lr} 13104 mov r5, r1 13105 mov r6, r2 13106 mov r4, r0 13107 bl FtlWriteToIDB 13108 mov r3, r6 13109 mov r2, r5 13110 mov r1, r4 13111 movs r0, #0 13112 pop {r4, r5, r6, lr} 13113 b FtlWrite 13114 .size sftl_write, .-sftl_write 13115 .global g_nand_ops 13116 .global g_nand_phy_info 13117 .global gc_ink_free_return_value 13118 .global check_vpc_table 13119 .global FtlUpdateVaildLpnCount 13120 .global g_ect_tbl_power_up_flush 13121 .global power_up_flag 13122 .global low_format_en 13123 .global gFtlInitStatus 13124 .global DeviceCapacity 13125 .global g_power_lost_recovery_flag 13126 .global c_mlc_erase_count_value 13127 .global g_recovery_ppa_tbl 13128 .global g_recovery_page_min_ver 13129 .global g_recovery_page_num 13130 .global sftl_nand_check_spare_buf 13131 .global sftl_temp_buf 13132 .global sftl_nand_check_buf 13133 .global g_cur_erase_blk 13134 .global g_gc_skip_write_count 13135 .global g_gc_head_data_block_count 13136 .global g_gc_head_data_block 13137 .global g_ftl_nand_free_count 13138 .global g_in_swl_replace 13139 .global g_in_gc_progress 13140 .global g_max_erase_count 13141 .global g_totle_sys_slc_erase_count 13142 .global g_totle_slc_erase_count 13143 .global g_min_erase_count 13144 .global g_totle_avg_erase_count 13145 .global g_totle_mlc_erase_count 13146 .global g_totle_l2p_write_count 13147 .global g_totle_cache_write_count 13148 .global g_tmp_data_superblock_id 13149 .global g_totle_read_page_count 13150 .global g_totle_discard_page_count 13151 .global g_totle_read_sector 13152 .global g_totle_write_sector 13153 .global g_totle_write_page_count 13154 .global g_totle_gc_page_count 13155 .global g_gc_blk_index 13156 .global g_gc_merge_free_blk_threshold 13157 .global g_gc_free_blk_threshold 13158 .global g_gc_bad_block_temp_tbl 13159 .global g_gc_bad_block_gc_index 13160 .global g_gc_bad_block_temp_num 13161 .global g_gc_next_blk_1 13162 .global g_gc_next_blk 13163 .global g_gc_cur_blk_max_valid_pages 13164 .global g_gc_cur_blk_valid_pages 13165 .global g_gc_page_offset 13166 .global g_gc_blk_num 13167 .global p_gc_blk_tbl 13168 .global p_gc_page_info 13169 .global g_sys_ext_data 13170 .global g_sys_save_data 13171 .global gp_last_act_superblock 13172 .global g_gc_superblock 13173 .global g_gc_temp_superblock 13174 .global g_buffer_superblock 13175 .global g_active_superblock 13176 .global g_num_data_superblocks 13177 .global g_num_free_superblocks 13178 .global p_data_block_list_tail 13179 .global p_data_block_list_head 13180 .global p_free_data_block_list_head 13181 .global p_data_block_list_table 13182 .global g_l2p_last_update_region_id 13183 .global p_l2p_map_buf 13184 .global p_l2p_ram_map 13185 .global g_totle_vendor_block 13186 .global p_vendor_region_ppn_table 13187 .global p_vendor_block_ver_table 13188 .global p_vendor_block_valid_page_count 13189 .global p_vendor_block_table 13190 .global g_totle_map_block 13191 .global p_map_region_ppn_table 13192 .global p_map_block_ver_table 13193 .global p_map_block_valid_page_count 13194 .global p_map_block_table 13195 .global p_blk_mode_table 13196 .global p_valid_page_count_check_table 13197 .global p_valid_page_count_table 13198 .global g_totle_swl_count 13199 .global p_swl_mul_table 13200 .global p_erase_count_table 13201 .global g_ect_tbl_info_size 13202 .global gp_ect_tbl_info 13203 .global g_gc_num_req 13204 .global c_gc_page_buf_num 13205 .global gp_gc_page_buf_info 13206 .global p_gc_data_buf 13207 .global p_gc_spare_buf 13208 .global p_io_spare_buf 13209 .global p_io_data_buf_1 13210 .global p_io_data_buf_0 13211 .global p_sys_spare_buf 13212 .global p_vendor_data_buf 13213 .global p_sys_data_buf_1 13214 .global p_sys_data_buf 13215 .global p_plane_order_table 13216 .global req_gc_dst 13217 .global req_gc 13218 .global req_erase 13219 .global req_prgm 13220 .global req_read 13221 .global req_sys 13222 .global gVendorBlkInfo 13223 .global gL2pMapInfo 13224 .global gSysFreeQueue 13225 .global gSysInfo 13226 .global gBbtInfo 13227 .global g_MaxLbn 13228 .global g_VaildLpn 13229 .global g_MaxLpn 13230 .global g_MaxLbaSector 13231 .global g_GlobalDataVersion 13232 .global g_GlobalSysVersion 13233 .global ftl_gc_temp_power_lost_recovery_flag 13234 .global c_ftl_nand_max_data_blks 13235 .global c_ftl_nand_data_op_blks_per_plane 13236 .global c_ftl_nand_data_blks_per_plane 13237 .global c_ftl_nand_max_sys_blks 13238 .global c_ftl_nand_init_sys_blks_per_plane 13239 .global c_ftl_nand_sys_blks_per_plane 13240 .global c_ftl_vendor_part_size 13241 .global c_ftl_nand_max_vendor_blks 13242 .global c_ftl_nand_max_map_blks 13243 .global c_ftl_nand_map_blks_per_plane 13244 .global c_ftl_nand_vendor_region_num 13245 .global c_ftl_nand_l2pmap_ram_region_num 13246 .global c_ftl_nand_map_region_num 13247 .global c_ftl_nand_totle_phy_blks 13248 .global c_ftl_nand_reserved_blks 13249 .global c_ftl_nand_byte_pre_oob 13250 .global c_ftl_nand_byte_pre_page 13251 .global c_ftl_nand_sec_pre_page_shift 13252 .global c_ftl_nand_sec_pre_page 13253 .global c_ftl_nand_page_pre_super_blk 13254 .global c_ftl_nand_page_pre_slc_blk 13255 .global c_ftl_nand_page_pre_blk 13256 .global c_ftl_nand_bbm_buf_size 13257 .global c_ftl_nand_ext_blk_pre_plane 13258 .global c_ftl_nand_blk_pre_plane 13259 .global c_ftl_nand_planes_num 13260 .global c_ftl_nand_blks_per_die_shift 13261 .global c_ftl_nand_blks_per_die 13262 .global c_ftl_nand_planes_per_die 13263 .global c_ftl_nand_die_num 13264 .global c_ftl_nand_type 13265 .section .bss.DeviceCapacity,"aw",%nobits 13266 .align 2 13267 .set .LANCHOR26,. + 0 13268 .type DeviceCapacity, %object 13269 .size DeviceCapacity, 4 13270DeviceCapacity: 13271 .space 4 13272 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 13273 .align 1 13274 .set .LANCHOR58,. + 0 13275 .type FtlUpdateVaildLpnCount, %object 13276 .size FtlUpdateVaildLpnCount, 2 13277FtlUpdateVaildLpnCount: 13278 .space 2 13279 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 13280 .align 1 13281 .set .LANCHOR127,. + 0 13282 .type c_ftl_nand_bbm_buf_size, %object 13283 .size c_ftl_nand_bbm_buf_size, 2 13284c_ftl_nand_bbm_buf_size: 13285 .space 2 13286 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 13287 .align 1 13288 .set .LANCHOR6,. + 0 13289 .type c_ftl_nand_blk_pre_plane, %object 13290 .size c_ftl_nand_blk_pre_plane, 2 13291c_ftl_nand_blk_pre_plane: 13292 .space 2 13293 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 13294 .align 1 13295 .set .LANCHOR17,. + 0 13296 .type c_ftl_nand_blks_per_die, %object 13297 .size c_ftl_nand_blks_per_die, 2 13298c_ftl_nand_blks_per_die: 13299 .space 2 13300 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits 13301 .align 1 13302 .set .LANCHOR18,. + 0 13303 .type c_ftl_nand_blks_per_die_shift, %object 13304 .size c_ftl_nand_blks_per_die_shift, 2 13305c_ftl_nand_blks_per_die_shift: 13306 .space 2 13307 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 13308 .align 1 13309 .set .LANCHOR24,. + 0 13310 .type c_ftl_nand_byte_pre_oob, %object 13311 .size c_ftl_nand_byte_pre_oob, 2 13312c_ftl_nand_byte_pre_oob: 13313 .space 2 13314 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 13315 .align 1 13316 .set .LANCHOR23,. + 0 13317 .type c_ftl_nand_byte_pre_page, %object 13318 .size c_ftl_nand_byte_pre_page, 2 13319c_ftl_nand_byte_pre_page: 13320 .space 2 13321 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 13322 .align 1 13323 .set .LANCHOR5,. + 0 13324 .type c_ftl_nand_data_blks_per_plane, %object 13325 .size c_ftl_nand_data_blks_per_plane, 2 13326c_ftl_nand_data_blks_per_plane: 13327 .space 2 13328 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 13329 .align 1 13330 .set .LANCHOR171,. + 0 13331 .type c_ftl_nand_data_op_blks_per_plane, %object 13332 .size c_ftl_nand_data_op_blks_per_plane, 2 13333c_ftl_nand_data_op_blks_per_plane: 13334 .space 2 13335 .section .bss.c_ftl_nand_die_num,"aw",%nobits 13336 .align 1 13337 .set .LANCHOR10,. + 0 13338 .type c_ftl_nand_die_num, %object 13339 .size c_ftl_nand_die_num, 2 13340c_ftl_nand_die_num: 13341 .space 2 13342 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 13343 .align 1 13344 .set .LANCHOR15,. + 0 13345 .type c_ftl_nand_ext_blk_pre_plane, %object 13346 .size c_ftl_nand_ext_blk_pre_plane, 2 13347c_ftl_nand_ext_blk_pre_plane: 13348 .space 2 13349 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 13350 .align 2 13351 .set .LANCHOR31,. + 0 13352 .type c_ftl_nand_init_sys_blks_per_plane, %object 13353 .size c_ftl_nand_init_sys_blks_per_plane, 4 13354c_ftl_nand_init_sys_blks_per_plane: 13355 .space 4 13356 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 13357 .align 1 13358 .set .LANCHOR33,. + 0 13359 .type c_ftl_nand_l2pmap_ram_region_num, %object 13360 .size c_ftl_nand_l2pmap_ram_region_num, 2 13361c_ftl_nand_l2pmap_ram_region_num: 13362 .space 2 13363 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 13364 .align 1 13365 .set .LANCHOR29,. + 0 13366 .type c_ftl_nand_map_blks_per_plane, %object 13367 .size c_ftl_nand_map_blks_per_plane, 2 13368c_ftl_nand_map_blks_per_plane: 13369 .space 2 13370 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 13371 .align 1 13372 .set .LANCHOR32,. + 0 13373 .type c_ftl_nand_map_region_num, %object 13374 .size c_ftl_nand_map_region_num, 2 13375c_ftl_nand_map_region_num: 13376 .space 2 13377 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 13378 .align 2 13379 .set .LANCHOR7,. + 0 13380 .type c_ftl_nand_max_data_blks, %object 13381 .size c_ftl_nand_max_data_blks, 4 13382c_ftl_nand_max_data_blks: 13383 .space 4 13384 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 13385 .align 2 13386 .set .LANCHOR30,. + 0 13387 .type c_ftl_nand_max_map_blks, %object 13388 .size c_ftl_nand_max_map_blks, 4 13389c_ftl_nand_max_map_blks: 13390 .space 4 13391 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 13392 .align 2 13393 .set .LANCHOR4,. + 0 13394 .type c_ftl_nand_max_sys_blks, %object 13395 .size c_ftl_nand_max_sys_blks, 4 13396c_ftl_nand_max_sys_blks: 13397 .space 4 13398 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 13399 .align 1 13400 .set .LANCHOR27,. + 0 13401 .type c_ftl_nand_max_vendor_blks, %object 13402 .size c_ftl_nand_max_vendor_blks, 2 13403c_ftl_nand_max_vendor_blks: 13404 .space 2 13405 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 13406 .align 1 13407 .set .LANCHOR19,. + 0 13408 .type c_ftl_nand_page_pre_blk, %object 13409 .size c_ftl_nand_page_pre_blk, 2 13410c_ftl_nand_page_pre_blk: 13411 .space 2 13412 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 13413 .align 1 13414 .set .LANCHOR20,. + 0 13415 .type c_ftl_nand_page_pre_slc_blk, %object 13416 .size c_ftl_nand_page_pre_slc_blk, 2 13417c_ftl_nand_page_pre_slc_blk: 13418 .space 2 13419 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 13420 .align 1 13421 .set .LANCHOR21,. + 0 13422 .type c_ftl_nand_page_pre_super_blk, %object 13423 .size c_ftl_nand_page_pre_super_blk, 2 13424c_ftl_nand_page_pre_super_blk: 13425 .space 2 13426 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 13427 .align 1 13428 .set .LANCHOR3,. + 0 13429 .type c_ftl_nand_planes_num, %object 13430 .size c_ftl_nand_planes_num, 2 13431c_ftl_nand_planes_num: 13432 .space 2 13433 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 13434 .align 1 13435 .set .LANCHOR11,. + 0 13436 .type c_ftl_nand_planes_per_die, %object 13437 .size c_ftl_nand_planes_per_die, 2 13438c_ftl_nand_planes_per_die: 13439 .space 2 13440 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 13441 .align 1 13442 .set .LANCHOR25,. + 0 13443 .type c_ftl_nand_reserved_blks, %object 13444 .size c_ftl_nand_reserved_blks, 2 13445c_ftl_nand_reserved_blks: 13446 .space 2 13447 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 13448 .align 1 13449 .set .LANCHOR12,. + 0 13450 .type c_ftl_nand_sec_pre_page, %object 13451 .size c_ftl_nand_sec_pre_page, 2 13452c_ftl_nand_sec_pre_page: 13453 .space 2 13454 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 13455 .align 1 13456 .set .LANCHOR22,. + 0 13457 .type c_ftl_nand_sec_pre_page_shift, %object 13458 .size c_ftl_nand_sec_pre_page_shift, 2 13459c_ftl_nand_sec_pre_page_shift: 13460 .space 2 13461 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 13462 .align 2 13463 .set .LANCHOR2,. + 0 13464 .type c_ftl_nand_sys_blks_per_plane, %object 13465 .size c_ftl_nand_sys_blks_per_plane, 4 13466c_ftl_nand_sys_blks_per_plane: 13467 .space 4 13468 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 13469 .align 2 13470 .set .LANCHOR8,. + 0 13471 .type c_ftl_nand_totle_phy_blks, %object 13472 .size c_ftl_nand_totle_phy_blks, 4 13473c_ftl_nand_totle_phy_blks: 13474 .space 4 13475 .section .bss.c_ftl_nand_type,"aw",%nobits 13476 .align 1 13477 .set .LANCHOR9,. + 0 13478 .type c_ftl_nand_type, %object 13479 .size c_ftl_nand_type, 2 13480c_ftl_nand_type: 13481 .space 2 13482 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 13483 .align 1 13484 .set .LANCHOR28,. + 0 13485 .type c_ftl_nand_vendor_region_num, %object 13486 .size c_ftl_nand_vendor_region_num, 2 13487c_ftl_nand_vendor_region_num: 13488 .space 2 13489 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 13490 .align 1 13491 .set .LANCHOR16,. + 0 13492 .type c_ftl_vendor_part_size, %object 13493 .size c_ftl_vendor_part_size, 2 13494c_ftl_vendor_part_size: 13495 .space 2 13496 .section .bss.c_gc_page_buf_num,"aw",%nobits 13497 .align 2 13498 .set .LANCHOR67,. + 0 13499 .type c_gc_page_buf_num, %object 13500 .size c_gc_page_buf_num, 4 13501c_gc_page_buf_num: 13502 .space 4 13503 .section .bss.c_mlc_erase_count_value,"aw",%nobits 13504 .align 1 13505 .set .LANCHOR14,. + 0 13506 .type c_mlc_erase_count_value, %object 13507 .size c_mlc_erase_count_value, 2 13508c_mlc_erase_count_value: 13509 .space 2 13510 .section .bss.check_vpc_table,"aw",%nobits 13511 .align 1 13512 .type check_vpc_table, %object 13513 .size check_vpc_table, 16384 13514check_vpc_table: 13515 .space 16384 13516 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 13517 .align 2 13518 .set .LANCHOR133,. + 0 13519 .type ftl_gc_temp_power_lost_recovery_flag, %object 13520 .size ftl_gc_temp_power_lost_recovery_flag, 4 13521ftl_gc_temp_power_lost_recovery_flag: 13522 .space 4 13523 .section .bss.gBbtInfo,"aw",%nobits 13524 .align 2 13525 .set .LANCHOR37,. + 0 13526 .type gBbtInfo, %object 13527 .size gBbtInfo, 60 13528gBbtInfo: 13529 .space 60 13530 .section .bss.gL2pMapInfo,"aw",%nobits 13531 .align 2 13532 .set .LANCHOR129,. + 0 13533 .type gL2pMapInfo, %object 13534 .size gL2pMapInfo, 44 13535gL2pMapInfo: 13536 .space 44 13537 .section .bss.gSysFreeQueue,"aw",%nobits 13538 .align 1 13539 .set .LANCHOR38,. + 0 13540 .type gSysFreeQueue, %object 13541 .size gSysFreeQueue, 2056 13542gSysFreeQueue: 13543 .space 2056 13544 .section .bss.gSysInfo,"aw",%nobits 13545 .align 2 13546 .set .LANCHOR139,. + 0 13547 .type gSysInfo, %object 13548 .size gSysInfo, 16 13549gSysInfo: 13550 .space 16 13551 .section .bss.gVendorBlkInfo,"aw",%nobits 13552 .align 2 13553 .set .LANCHOR161,. + 0 13554 .type gVendorBlkInfo, %object 13555 .size gVendorBlkInfo, 44 13556gVendorBlkInfo: 13557 .space 44 13558 .section .bss.g_GlobalDataVersion,"aw",%nobits 13559 .align 2 13560 .set .LANCHOR83,. + 0 13561 .type g_GlobalDataVersion, %object 13562 .size g_GlobalDataVersion, 4 13563g_GlobalDataVersion: 13564 .space 4 13565 .section .bss.g_GlobalSysVersion,"aw",%nobits 13566 .align 2 13567 .set .LANCHOR82,. + 0 13568 .type g_GlobalSysVersion, %object 13569 .size g_GlobalSysVersion, 4 13570g_GlobalSysVersion: 13571 .space 4 13572 .section .bss.g_MaxLbaSector,"aw",%nobits 13573 .align 2 13574 .set .LANCHOR34,. + 0 13575 .type g_MaxLbaSector, %object 13576 .size g_MaxLbaSector, 4 13577g_MaxLbaSector: 13578 .space 4 13579 .section .bss.g_MaxLbn,"aw",%nobits 13580 .align 2 13581 .set .LANCHOR179,. + 0 13582 .type g_MaxLbn, %object 13583 .size g_MaxLbn, 4 13584g_MaxLbn: 13585 .space 4 13586 .section .bss.g_MaxLpn,"aw",%nobits 13587 .align 2 13588 .set .LANCHOR152,. + 0 13589 .type g_MaxLpn, %object 13590 .size g_MaxLpn, 4 13591g_MaxLpn: 13592 .space 4 13593 .section .bss.g_VaildLpn,"aw",%nobits 13594 .align 2 13595 .set .LANCHOR59,. + 0 13596 .type g_VaildLpn, %object 13597 .size g_VaildLpn, 4 13598g_VaildLpn: 13599 .space 4 13600 .section .bss.g_active_superblock,"aw",%nobits 13601 .align 2 13602 .set .LANCHOR51,. + 0 13603 .type g_active_superblock, %object 13604 .size g_active_superblock, 48 13605g_active_superblock: 13606 .space 48 13607 .section .bss.g_buffer_superblock,"aw",%nobits 13608 .align 2 13609 .set .LANCHOR52,. + 0 13610 .type g_buffer_superblock, %object 13611 .size g_buffer_superblock, 48 13612g_buffer_superblock: 13613 .space 48 13614 .section .bss.g_cur_erase_blk,"aw",%nobits 13615 .align 2 13616 .set .LANCHOR99,. + 0 13617 .type g_cur_erase_blk, %object 13618 .size g_cur_erase_blk, 4 13619g_cur_erase_blk: 13620 .space 4 13621 .section .bss.g_ect_tbl_info_size,"aw",%nobits 13622 .align 1 13623 .set .LANCHOR116,. + 0 13624 .type g_ect_tbl_info_size, %object 13625 .size g_ect_tbl_info_size, 2 13626g_ect_tbl_info_size: 13627 .space 2 13628 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 13629 .align 1 13630 .set .LANCHOR164,. + 0 13631 .type g_ect_tbl_power_up_flush, %object 13632 .size g_ect_tbl_power_up_flush, 2 13633g_ect_tbl_power_up_flush: 13634 .space 2 13635 .section .bss.g_ftl_nand_free_count,"aw",%nobits 13636 .align 2 13637 .set .LANCHOR176,. + 0 13638 .type g_ftl_nand_free_count, %object 13639 .size g_ftl_nand_free_count, 4 13640g_ftl_nand_free_count: 13641 .space 4 13642 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 13643 .align 1 13644 .set .LANCHOR76,. + 0 13645 .type g_gc_bad_block_gc_index, %object 13646 .size g_gc_bad_block_gc_index, 2 13647g_gc_bad_block_gc_index: 13648 .space 2 13649 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 13650 .align 1 13651 .set .LANCHOR74,. + 0 13652 .type g_gc_bad_block_temp_num, %object 13653 .size g_gc_bad_block_temp_num, 2 13654g_gc_bad_block_temp_num: 13655 .space 2 13656 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 13657 .align 1 13658 .set .LANCHOR75,. + 0 13659 .type g_gc_bad_block_temp_tbl, %object 13660 .size g_gc_bad_block_temp_tbl, 34 13661g_gc_bad_block_temp_tbl: 13662 .space 34 13663 .section .bss.g_gc_blk_index,"aw",%nobits 13664 .align 1 13665 .set .LANCHOR102,. + 0 13666 .type g_gc_blk_index, %object 13667 .size g_gc_blk_index, 2 13668g_gc_blk_index: 13669 .space 2 13670 .section .bss.g_gc_blk_num,"aw",%nobits 13671 .align 1 13672 .set .LANCHOR69,. + 0 13673 .type g_gc_blk_num, %object 13674 .size g_gc_blk_num, 2 13675g_gc_blk_num: 13676 .space 2 13677 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 13678 .align 1 13679 .set .LANCHOR174,. + 0 13680 .type g_gc_cur_blk_max_valid_pages, %object 13681 .size g_gc_cur_blk_max_valid_pages, 2 13682g_gc_cur_blk_max_valid_pages: 13683 .space 2 13684 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 13685 .align 1 13686 .set .LANCHOR173,. + 0 13687 .type g_gc_cur_blk_valid_pages, %object 13688 .size g_gc_cur_blk_valid_pages, 2 13689g_gc_cur_blk_valid_pages: 13690 .space 2 13691 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 13692 .align 1 13693 .set .LANCHOR100,. + 0 13694 .type g_gc_free_blk_threshold, %object 13695 .size g_gc_free_blk_threshold, 2 13696g_gc_free_blk_threshold: 13697 .space 2 13698 .section .bss.g_gc_head_data_block,"aw",%nobits 13699 .align 2 13700 .set .LANCHOR96,. + 0 13701 .type g_gc_head_data_block, %object 13702 .size g_gc_head_data_block, 4 13703g_gc_head_data_block: 13704 .space 4 13705 .section .bss.g_gc_head_data_block_count,"aw",%nobits 13706 .align 2 13707 .set .LANCHOR97,. + 0 13708 .type g_gc_head_data_block_count, %object 13709 .size g_gc_head_data_block_count, 4 13710g_gc_head_data_block_count: 13711 .space 4 13712 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 13713 .align 1 13714 .set .LANCHOR101,. + 0 13715 .type g_gc_merge_free_blk_threshold, %object 13716 .size g_gc_merge_free_blk_threshold, 2 13717g_gc_merge_free_blk_threshold: 13718 .space 2 13719 .section .bss.g_gc_next_blk,"aw",%nobits 13720 .align 1 13721 .set .LANCHOR72,. + 0 13722 .type g_gc_next_blk, %object 13723 .size g_gc_next_blk, 2 13724g_gc_next_blk: 13725 .space 2 13726 .section .bss.g_gc_next_blk_1,"aw",%nobits 13727 .align 1 13728 .set .LANCHOR73,. + 0 13729 .type g_gc_next_blk_1, %object 13730 .size g_gc_next_blk_1, 2 13731g_gc_next_blk_1: 13732 .space 2 13733 .section .bss.g_gc_num_req,"aw",%nobits 13734 .align 2 13735 .set .LANCHOR62,. + 0 13736 .type g_gc_num_req, %object 13737 .size g_gc_num_req, 4 13738g_gc_num_req: 13739 .space 4 13740 .section .bss.g_gc_page_offset,"aw",%nobits 13741 .align 1 13742 .set .LANCHOR70,. + 0 13743 .type g_gc_page_offset, %object 13744 .size g_gc_page_offset, 2 13745g_gc_page_offset: 13746 .space 2 13747 .section .bss.g_gc_skip_write_count,"aw",%nobits 13748 .align 2 13749 .set .LANCHOR98,. + 0 13750 .type g_gc_skip_write_count, %object 13751 .size g_gc_skip_write_count, 4 13752g_gc_skip_write_count: 13753 .space 4 13754 .section .bss.g_gc_superblock,"aw",%nobits 13755 .align 2 13756 .set .LANCHOR145,. + 0 13757 .type g_gc_superblock, %object 13758 .size g_gc_superblock, 48 13759g_gc_superblock: 13760 .space 48 13761 .section .bss.g_gc_temp_superblock,"aw",%nobits 13762 .align 2 13763 .set .LANCHOR53,. + 0 13764 .type g_gc_temp_superblock, %object 13765 .size g_gc_temp_superblock, 48 13766g_gc_temp_superblock: 13767 .space 48 13768 .section .bss.g_in_gc_progress,"aw",%nobits 13769 .align 2 13770 .set .LANCHOR94,. + 0 13771 .type g_in_gc_progress, %object 13772 .size g_in_gc_progress, 4 13773g_in_gc_progress: 13774 .space 4 13775 .section .bss.g_in_swl_replace,"aw",%nobits 13776 .align 2 13777 .set .LANCHOR95,. + 0 13778 .type g_in_swl_replace, %object 13779 .size g_in_swl_replace, 4 13780g_in_swl_replace: 13781 .space 4 13782 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 13783 .align 1 13784 .set .LANCHOR56,. + 0 13785 .type g_l2p_last_update_region_id, %object 13786 .size g_l2p_last_update_region_id, 2 13787g_l2p_last_update_region_id: 13788 .space 2 13789 .section .bss.g_max_erase_count,"aw",%nobits 13790 .align 2 13791 .set .LANCHOR92,. + 0 13792 .type g_max_erase_count, %object 13793 .size g_max_erase_count, 4 13794g_max_erase_count: 13795 .space 4 13796 .section .bss.g_min_erase_count,"aw",%nobits 13797 .align 2 13798 .set .LANCHOR93,. + 0 13799 .type g_min_erase_count, %object 13800 .size g_min_erase_count, 4 13801g_min_erase_count: 13802 .space 4 13803 .section .bss.g_nand_ops,"aw",%nobits 13804 .align 2 13805 .set .LANCHOR78,. + 0 13806 .type g_nand_ops, %object 13807 .size g_nand_ops, 24 13808g_nand_ops: 13809 .space 24 13810 .section .bss.g_nand_phy_info,"aw",%nobits 13811 .align 1 13812 .set .LANCHOR0,. + 0 13813 .type g_nand_phy_info, %object 13814 .size g_nand_phy_info, 24 13815g_nand_phy_info: 13816 .space 24 13817 .section .bss.g_num_data_superblocks,"aw",%nobits 13818 .align 1 13819 .set .LANCHOR44,. + 0 13820 .type g_num_data_superblocks, %object 13821 .size g_num_data_superblocks, 2 13822g_num_data_superblocks: 13823 .space 2 13824 .section .bss.g_num_free_superblocks,"aw",%nobits 13825 .align 1 13826 .set .LANCHOR48,. + 0 13827 .type g_num_free_superblocks, %object 13828 .size g_num_free_superblocks, 2 13829g_num_free_superblocks: 13830 .space 2 13831 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 13832 .align 1 13833 .set .LANCHOR156,. + 0 13834 .type g_power_lost_recovery_flag, %object 13835 .size g_power_lost_recovery_flag, 2 13836g_power_lost_recovery_flag: 13837 .space 2 13838 .section .bss.g_recovery_page_min_ver,"aw",%nobits 13839 .align 2 13840 .set .LANCHOR134,. + 0 13841 .type g_recovery_page_min_ver, %object 13842 .size g_recovery_page_min_ver, 4 13843g_recovery_page_min_ver: 13844 .space 4 13845 .section .bss.g_recovery_page_num,"aw",%nobits 13846 .align 2 13847 .set .LANCHOR157,. + 0 13848 .type g_recovery_page_num, %object 13849 .size g_recovery_page_num, 4 13850g_recovery_page_num: 13851 .space 4 13852 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 13853 .align 2 13854 .set .LANCHOR158,. + 0 13855 .type g_recovery_ppa_tbl, %object 13856 .size g_recovery_ppa_tbl, 128 13857g_recovery_ppa_tbl: 13858 .space 128 13859 .section .bss.g_sys_ext_data,"aw",%nobits 13860 .align 2 13861 .set .LANCHOR135,. + 0 13862 .type g_sys_ext_data, %object 13863 .size g_sys_ext_data, 512 13864g_sys_ext_data: 13865 .space 512 13866 .section .bss.g_sys_save_data,"aw",%nobits 13867 .align 2 13868 .set .LANCHOR39,. + 0 13869 .type g_sys_save_data, %object 13870 .size g_sys_save_data, 48 13871g_sys_save_data: 13872 .space 48 13873 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 13874 .align 1 13875 .set .LANCHOR131,. + 0 13876 .type g_tmp_data_superblock_id, %object 13877 .size g_tmp_data_superblock_id, 2 13878g_tmp_data_superblock_id: 13879 .space 2 13880 .section .bss.g_totle_avg_erase_count,"aw",%nobits 13881 .align 2 13882 .set .LANCHOR143,. + 0 13883 .type g_totle_avg_erase_count, %object 13884 .size g_totle_avg_erase_count, 4 13885g_totle_avg_erase_count: 13886 .space 4 13887 .section .bss.g_totle_cache_write_count,"aw",%nobits 13888 .align 2 13889 .set .LANCHOR87,. + 0 13890 .type g_totle_cache_write_count, %object 13891 .size g_totle_cache_write_count, 4 13892g_totle_cache_write_count: 13893 .space 4 13894 .section .bss.g_totle_discard_page_count,"aw",%nobits 13895 .align 2 13896 .set .LANCHOR86,. + 0 13897 .type g_totle_discard_page_count, %object 13898 .size g_totle_discard_page_count, 4 13899g_totle_discard_page_count: 13900 .space 4 13901 .section .bss.g_totle_gc_page_count,"aw",%nobits 13902 .align 2 13903 .set .LANCHOR84,. + 0 13904 .type g_totle_gc_page_count, %object 13905 .size g_totle_gc_page_count, 4 13906g_totle_gc_page_count: 13907 .space 4 13908 .section .bss.g_totle_l2p_write_count,"aw",%nobits 13909 .align 2 13910 .set .LANCHOR88,. + 0 13911 .type g_totle_l2p_write_count, %object 13912 .size g_totle_l2p_write_count, 4 13913g_totle_l2p_write_count: 13914 .space 4 13915 .section .bss.g_totle_map_block,"aw",%nobits 13916 .align 1 13917 .set .LANCHOR130,. + 0 13918 .type g_totle_map_block, %object 13919 .size g_totle_map_block, 2 13920g_totle_map_block: 13921 .space 2 13922 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 13923 .align 2 13924 .set .LANCHOR90,. + 0 13925 .type g_totle_mlc_erase_count, %object 13926 .size g_totle_mlc_erase_count, 4 13927g_totle_mlc_erase_count: 13928 .space 4 13929 .section .bss.g_totle_read_page_count,"aw",%nobits 13930 .align 2 13931 .set .LANCHOR89,. + 0 13932 .type g_totle_read_page_count, %object 13933 .size g_totle_read_page_count, 4 13934g_totle_read_page_count: 13935 .space 4 13936 .section .bss.g_totle_read_sector,"aw",%nobits 13937 .align 2 13938 .set .LANCHOR163,. + 0 13939 .type g_totle_read_sector, %object 13940 .size g_totle_read_sector, 4 13941g_totle_read_sector: 13942 .space 4 13943 .section .bss.g_totle_slc_erase_count,"aw",%nobits 13944 .align 2 13945 .set .LANCHOR91,. + 0 13946 .type g_totle_slc_erase_count, %object 13947 .size g_totle_slc_erase_count, 4 13948g_totle_slc_erase_count: 13949 .space 4 13950 .section .bss.g_totle_swl_count,"aw",%nobits 13951 .align 2 13952 .set .LANCHOR132,. + 0 13953 .type g_totle_swl_count, %object 13954 .size g_totle_swl_count, 4 13955g_totle_swl_count: 13956 .space 4 13957 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 13958 .align 2 13959 .set .LANCHOR80,. + 0 13960 .type g_totle_sys_slc_erase_count, %object 13961 .size g_totle_sys_slc_erase_count, 4 13962g_totle_sys_slc_erase_count: 13963 .space 4 13964 .section .bss.g_totle_vendor_block,"aw",%nobits 13965 .align 1 13966 .set .LANCHOR35,. + 0 13967 .type g_totle_vendor_block, %object 13968 .size g_totle_vendor_block, 2 13969g_totle_vendor_block: 13970 .space 2 13971 .section .bss.g_totle_write_page_count,"aw",%nobits 13972 .align 2 13973 .set .LANCHOR85,. + 0 13974 .type g_totle_write_page_count, %object 13975 .size g_totle_write_page_count, 4 13976g_totle_write_page_count: 13977 .space 4 13978 .section .bss.g_totle_write_sector,"aw",%nobits 13979 .align 2 13980 .set .LANCHOR162,. + 0 13981 .type g_totle_write_sector, %object 13982 .size g_totle_write_sector, 4 13983g_totle_write_sector: 13984 .space 4 13985 .section .bss.gc_discard_updated,"aw",%nobits 13986 .align 2 13987 .set .LANCHOR167,. + 0 13988 .type gc_discard_updated, %object 13989 .size gc_discard_updated, 4 13990gc_discard_updated: 13991 .space 4 13992 .section .bss.gc_ink_free_return_value,"aw",%nobits 13993 .align 1 13994 .set .LANCHOR172,. + 0 13995 .type gc_ink_free_return_value, %object 13996 .size gc_ink_free_return_value, 2 13997gc_ink_free_return_value: 13998 .space 2 13999 .section .bss.gp_ect_tbl_info,"aw",%nobits 14000 .align 2 14001 .set .LANCHOR118,. + 0 14002 .type gp_ect_tbl_info, %object 14003 .size gp_ect_tbl_info, 4 14004gp_ect_tbl_info: 14005 .space 4 14006 .section .bss.gp_flash_check_buf,"aw",%nobits 14007 .align 2 14008 .set .LANCHOR184,. + 0 14009 .type gp_flash_check_buf, %object 14010 .size gp_flash_check_buf, 4 14011gp_flash_check_buf: 14012 .space 4 14013 .section .bss.gp_gc_page_buf_info,"aw",%nobits 14014 .align 2 14015 .set .LANCHOR63,. + 0 14016 .type gp_gc_page_buf_info, %object 14017 .size gp_gc_page_buf_info, 4 14018gp_gc_page_buf_info: 14019 .space 4 14020 .section .bss.gp_last_act_superblock,"aw",%nobits 14021 .align 2 14022 .type gp_last_act_superblock, %object 14023 .size gp_last_act_superblock, 4 14024gp_last_act_superblock: 14025 .space 4 14026 .section .bss.idb_buf,"aw",%nobits 14027 .align 2 14028 .set .LANCHOR183,. + 0 14029 .type idb_buf, %object 14030 .size idb_buf, 4 14031idb_buf: 14032 .space 4 14033 .section .bss.idb_need_write_back,"aw",%nobits 14034 .align 2 14035 .set .LANCHOR182,. + 0 14036 .type idb_need_write_back, %object 14037 .size idb_need_write_back, 4 14038idb_need_write_back: 14039 .space 4 14040 .section .bss.low_format_en,"aw",%nobits 14041 .align 2 14042 .set .LANCHOR181,. + 0 14043 .type low_format_en, %object 14044 .size low_format_en, 4 14045low_format_en: 14046 .space 4 14047 .section .bss.p_blk_mode_table,"aw",%nobits 14048 .align 2 14049 .set .LANCHOR1,. + 0 14050 .type p_blk_mode_table, %object 14051 .size p_blk_mode_table, 4 14052p_blk_mode_table: 14053 .space 4 14054 .section .bss.p_data_block_list_head,"aw",%nobits 14055 .align 2 14056 .set .LANCHOR41,. + 0 14057 .type p_data_block_list_head, %object 14058 .size p_data_block_list_head, 4 14059p_data_block_list_head: 14060 .space 4 14061 .section .bss.p_data_block_list_table,"aw",%nobits 14062 .align 2 14063 .set .LANCHOR40,. + 0 14064 .type p_data_block_list_table, %object 14065 .size p_data_block_list_table, 4 14066p_data_block_list_table: 14067 .space 4 14068 .section .bss.p_data_block_list_tail,"aw",%nobits 14069 .align 2 14070 .set .LANCHOR43,. + 0 14071 .type p_data_block_list_tail, %object 14072 .size p_data_block_list_tail, 4 14073p_data_block_list_tail: 14074 .space 4 14075 .section .bss.p_erase_count_table,"aw",%nobits 14076 .align 2 14077 .set .LANCHOR47,. + 0 14078 .type p_erase_count_table, %object 14079 .size p_erase_count_table, 4 14080p_erase_count_table: 14081 .space 4 14082 .section .bss.p_free_data_block_list_head,"aw",%nobits 14083 .align 2 14084 .set .LANCHOR46,. + 0 14085 .type p_free_data_block_list_head, %object 14086 .size p_free_data_block_list_head, 4 14087p_free_data_block_list_head: 14088 .space 4 14089 .section .bss.p_gc_blk_tbl,"aw",%nobits 14090 .align 2 14091 .set .LANCHOR68,. + 0 14092 .type p_gc_blk_tbl, %object 14093 .size p_gc_blk_tbl, 4 14094p_gc_blk_tbl: 14095 .space 4 14096 .section .bss.p_gc_data_buf,"aw",%nobits 14097 .align 2 14098 .set .LANCHOR64,. + 0 14099 .type p_gc_data_buf, %object 14100 .size p_gc_data_buf, 4 14101p_gc_data_buf: 14102 .space 4 14103 .section .bss.p_gc_page_info,"aw",%nobits 14104 .align 2 14105 .set .LANCHOR71,. + 0 14106 .type p_gc_page_info, %object 14107 .size p_gc_page_info, 4 14108p_gc_page_info: 14109 .space 4 14110 .section .bss.p_gc_spare_buf,"aw",%nobits 14111 .align 2 14112 .set .LANCHOR65,. + 0 14113 .type p_gc_spare_buf, %object 14114 .size p_gc_spare_buf, 4 14115p_gc_spare_buf: 14116 .space 4 14117 .section .bss.p_io_data_buf_0,"aw",%nobits 14118 .align 2 14119 .set .LANCHOR109,. + 0 14120 .type p_io_data_buf_0, %object 14121 .size p_io_data_buf_0, 4 14122p_io_data_buf_0: 14123 .space 4 14124 .section .bss.p_io_data_buf_1,"aw",%nobits 14125 .align 2 14126 .set .LANCHOR110,. + 0 14127 .type p_io_data_buf_1, %object 14128 .size p_io_data_buf_1, 4 14129p_io_data_buf_1: 14130 .space 4 14131 .section .bss.p_io_spare_buf,"aw",%nobits 14132 .align 2 14133 .set .LANCHOR115,. + 0 14134 .type p_io_spare_buf, %object 14135 .size p_io_spare_buf, 4 14136p_io_spare_buf: 14137 .space 4 14138 .section .bss.p_l2p_map_buf,"aw",%nobits 14139 .align 2 14140 .set .LANCHOR126,. + 0 14141 .type p_l2p_map_buf, %object 14142 .size p_l2p_map_buf, 4 14143p_l2p_map_buf: 14144 .space 4 14145 .section .bss.p_l2p_ram_map,"aw",%nobits 14146 .align 2 14147 .set .LANCHOR55,. + 0 14148 .type p_l2p_ram_map, %object 14149 .size p_l2p_ram_map, 4 14150p_l2p_ram_map: 14151 .space 4 14152 .section .bss.p_map_block_table,"aw",%nobits 14153 .align 2 14154 .set .LANCHOR119,. + 0 14155 .type p_map_block_table, %object 14156 .size p_map_block_table, 4 14157p_map_block_table: 14158 .space 4 14159 .section .bss.p_map_block_valid_page_count,"aw",%nobits 14160 .align 2 14161 .set .LANCHOR120,. + 0 14162 .type p_map_block_valid_page_count, %object 14163 .size p_map_block_valid_page_count, 4 14164p_map_block_valid_page_count: 14165 .space 4 14166 .section .bss.p_map_block_ver_table,"aw",%nobits 14167 .align 2 14168 .set .LANCHOR125,. + 0 14169 .type p_map_block_ver_table, %object 14170 .size p_map_block_ver_table, 4 14171p_map_block_ver_table: 14172 .space 4 14173 .section .bss.p_map_region_ppn_table,"aw",%nobits 14174 .align 2 14175 .set .LANCHOR124,. + 0 14176 .type p_map_region_ppn_table, %object 14177 .size p_map_region_ppn_table, 4 14178p_map_region_ppn_table: 14179 .space 4 14180 .section .bss.p_plane_order_table,"aw",%nobits 14181 .set .LANCHOR13,. + 0 14182 .type p_plane_order_table, %object 14183 .size p_plane_order_table, 32 14184p_plane_order_table: 14185 .space 32 14186 .section .bss.p_swl_mul_table,"aw",%nobits 14187 .align 2 14188 .set .LANCHOR117,. + 0 14189 .type p_swl_mul_table, %object 14190 .size p_swl_mul_table, 4 14191p_swl_mul_table: 14192 .space 4 14193 .section .bss.p_sys_data_buf,"aw",%nobits 14194 .align 2 14195 .set .LANCHOR106,. + 0 14196 .type p_sys_data_buf, %object 14197 .size p_sys_data_buf, 4 14198p_sys_data_buf: 14199 .space 4 14200 .section .bss.p_sys_data_buf_1,"aw",%nobits 14201 .align 2 14202 .set .LANCHOR107,. + 0 14203 .type p_sys_data_buf_1, %object 14204 .size p_sys_data_buf_1, 4 14205p_sys_data_buf_1: 14206 .space 4 14207 .section .bss.p_sys_spare_buf,"aw",%nobits 14208 .align 2 14209 .set .LANCHOR114,. + 0 14210 .type p_sys_spare_buf, %object 14211 .size p_sys_spare_buf, 4 14212p_sys_spare_buf: 14213 .space 4 14214 .section .bss.p_valid_page_count_check_table,"aw",%nobits 14215 .align 2 14216 .type p_valid_page_count_check_table, %object 14217 .size p_valid_page_count_check_table, 4 14218p_valid_page_count_check_table: 14219 .space 4 14220 .section .bss.p_valid_page_count_table,"aw",%nobits 14221 .align 2 14222 .set .LANCHOR42,. + 0 14223 .type p_valid_page_count_table, %object 14224 .size p_valid_page_count_table, 4 14225p_valid_page_count_table: 14226 .space 4 14227 .section .bss.p_vendor_block_table,"aw",%nobits 14228 .align 2 14229 .set .LANCHOR36,. + 0 14230 .type p_vendor_block_table, %object 14231 .size p_vendor_block_table, 4 14232p_vendor_block_table: 14233 .space 4 14234 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 14235 .align 2 14236 .set .LANCHOR121,. + 0 14237 .type p_vendor_block_valid_page_count, %object 14238 .size p_vendor_block_valid_page_count, 4 14239p_vendor_block_valid_page_count: 14240 .space 4 14241 .section .bss.p_vendor_block_ver_table,"aw",%nobits 14242 .align 2 14243 .set .LANCHOR122,. + 0 14244 .type p_vendor_block_ver_table, %object 14245 .size p_vendor_block_ver_table, 4 14246p_vendor_block_ver_table: 14247 .space 4 14248 .section .bss.p_vendor_data_buf,"aw",%nobits 14249 .align 2 14250 .set .LANCHOR108,. + 0 14251 .type p_vendor_data_buf, %object 14252 .size p_vendor_data_buf, 4 14253p_vendor_data_buf: 14254 .space 4 14255 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 14256 .align 2 14257 .set .LANCHOR123,. + 0 14258 .type p_vendor_region_ppn_table, %object 14259 .size p_vendor_region_ppn_table, 4 14260p_vendor_region_ppn_table: 14261 .space 4 14262 .section .bss.req_erase,"aw",%nobits 14263 .align 2 14264 .set .LANCHOR79,. + 0 14265 .type req_erase, %object 14266 .size req_erase, 4 14267req_erase: 14268 .space 4 14269 .section .bss.req_gc,"aw",%nobits 14270 .align 2 14271 .set .LANCHOR66,. + 0 14272 .type req_gc, %object 14273 .size req_gc, 4 14274req_gc: 14275 .space 4 14276 .section .bss.req_gc_dst,"aw",%nobits 14277 .align 2 14278 .set .LANCHOR104,. + 0 14279 .type req_gc_dst, %object 14280 .size req_gc_dst, 4 14281req_gc_dst: 14282 .space 4 14283 .section .bss.req_prgm,"aw",%nobits 14284 .align 2 14285 .set .LANCHOR105,. + 0 14286 .type req_prgm, %object 14287 .size req_prgm, 4 14288req_prgm: 14289 .space 4 14290 .section .bss.req_read,"aw",%nobits 14291 .align 2 14292 .set .LANCHOR103,. + 0 14293 .type req_read, %object 14294 .size req_read, 4 14295req_read: 14296 .space 4 14297 .section .bss.req_sys,"aw",%nobits 14298 .align 2 14299 .set .LANCHOR138,. + 0 14300 .type req_sys, %object 14301 .size req_sys, 20 14302req_sys: 14303 .space 20 14304 .section .bss.sftl_nand_check_buf,"aw",%nobits 14305 .align 2 14306 .set .LANCHOR111,. + 0 14307 .type sftl_nand_check_buf, %object 14308 .size sftl_nand_check_buf, 4 14309sftl_nand_check_buf: 14310 .space 4 14311 .section .bss.sftl_nand_check_spare_buf,"aw",%nobits 14312 .align 2 14313 .set .LANCHOR113,. + 0 14314 .type sftl_nand_check_spare_buf, %object 14315 .size sftl_nand_check_spare_buf, 4 14316sftl_nand_check_spare_buf: 14317 .space 4 14318 .section .bss.sftl_temp_buf,"aw",%nobits 14319 .align 2 14320 .set .LANCHOR112,. + 0 14321 .type sftl_temp_buf, %object 14322 .size sftl_temp_buf, 4 14323sftl_temp_buf: 14324 .space 4 14325 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 14326 .align 1 14327 .set .LANCHOR160,. + 0 14328 .type ftl_gc_temp_block_bops_scan_page_addr, %object 14329 .size ftl_gc_temp_block_bops_scan_page_addr, 2 14330ftl_gc_temp_block_bops_scan_page_addr: 14331 .short -1 14332 .section .data.gFtlInitStatus,"aw",%progbits 14333 .align 2 14334 .set .LANCHOR166,. + 0 14335 .type gFtlInitStatus, %object 14336 .size gFtlInitStatus, 4 14337gFtlInitStatus: 14338 .word -1 14339 .section .data.power_up_flag,"aw",%progbits 14340 .align 2 14341 .type power_up_flag, %object 14342 .size power_up_flag, 4 14343power_up_flag: 14344 .word 1 14345 .section .rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1 14346.LC6: 14347 .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" 14348.LC7: 14349 .ascii "not free: w: d:\000" 14350.LC8: 14351 .ascii "not free: w: s:\000" 14352 .section .rodata.FlashProgPages.str1.1,"aMS",%progbits,1 14353.LC14: 14354 .ascii "prog read error: = %x\012\000" 14355.LC15: 14356 .ascii "prog read REFRESH: = %x\012\000" 14357.LC16: 14358 .ascii "prog read s error: = %x %x %x\012\000" 14359.LC17: 14360 .ascii "prog read d error: = %x %x %x\012\000" 14361 .section .rodata.FlashReadPages.str1.1,"aMS",%progbits,1 14362.LC11: 14363 .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000" 14364.LC12: 14365 .ascii "data:\000" 14366.LC13: 14367 .ascii "spare:\000" 14368 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 14369.LC0: 14370 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 14371 .ascii "\000" 14372 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 14373.LC18: 14374 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 14375.LC19: 14376 .ascii "FtlBbmTblFlush error:%x\012\000" 14377.LC20: 14378 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 14379 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 14380.LC9: 14381 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 14382 .ascii "\000" 14383 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 14384.LC35: 14385 .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" 14386 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 14387.LC37: 14388 .ascii "no ect\000" 14389.LC38: 14390 .ascii "%s\012\000" 14391 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1 14392.LC46: 14393 .ascii "%s hash error this.id =%x page =%x pre_id =%x hash " 14394 .ascii "=%x hash_r =%x\012\000" 14395 .section .rodata.FtlMapTblRecovery.str1.1,"aMS",%progbits,1 14396.LC47: 14397 .ascii "%s last blk_id =%x page =%x hash error hash =%x has" 14398 .ascii "h_r =%x\012\000" 14399.LC48: 14400 .ascii "%s scan blk_id =%x page =%x hash error hash =%x has" 14401 .ascii "h_r =%x\012\000" 14402 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 14403.LC22: 14404 .ascii "FtlMapWritePage error = %x \012\000" 14405.LC23: 14406 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 14407 .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 14408.LC40: 14409 .ascii "FtlProgPages error %x = %d\012\000" 14410.LC41: 14411 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 14412 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 14413.LC27: 14414 .ascii "data prev_ppa = %x error...................\012\000" 14415.LC28: 14416 .ascii "spuer block %x vpn is 0\012 \000" 14417 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 14418.LC36: 14419 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 14420 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 14421.LC39: 14422 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 14423 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 14424.LC44: 14425 .ascii "FtlWrite: ecc error:%x %x %x\012\000" 14426.LC45: 14427 .ascii "FtlWrite: lpa error:%x %x\012\000" 14428 .section .rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1 14429.LC50: 14430 .ascii "write_idblock fail! %x %x %x %x\012\000" 14431.LC51: 14432 .ascii "%s idb buffer alloc fail\012\000" 14433.LC52: 14434 .ascii "%p %x %p %x\012\000" 14435 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 14436.LC1: 14437 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 14438 .section .rodata.__func__.10006,"a",%progbits 14439 .set .LANCHOR175,. + 0 14440 .type __func__.10006, %object 14441 .size __func__.10006, 23 14442__func__.10006: 14443 .ascii "rk_ftl_garbage_collect\000" 14444 .section .rodata.__func__.10278,"a",%progbits 14445 .set .LANCHOR137,. + 0 14446 .type __func__.10278, %object 14447 .size __func__.10278, 15 14448__func__.10278: 14449 .ascii "FlashReadPages\000" 14450 .section .rodata.__func__.10297,"a",%progbits 14451 .set .LANCHOR142,. + 0 14452 .type __func__.10297, %object 14453 .size __func__.10297, 15 14454__func__.10297: 14455 .ascii "FlashProgPages\000" 14456 .section .rodata.__func__.10321,"a",%progbits 14457 .set .LANCHOR77,. + 0 14458 .type __func__.10321, %object 14459 .size __func__.10321, 17 14460__func__.10321: 14461 .ascii "FlashEraseBlocks\000" 14462 .section .rodata.__func__.10436,"a",%progbits 14463 .set .LANCHOR185,. + 0 14464 .type __func__.10436, %object 14465 .size __func__.10436, 14 14466__func__.10436: 14467 .ascii "FtlWriteToIDB\000" 14468 .section .rodata.__func__.8930,"a",%progbits 14469 .set .LANCHOR169,. + 0 14470 .type __func__.8930, %object 14471 .size __func__.8930, 13 14472__func__.8930: 14473 .ascii "FtlProgPages\000" 14474 .section .rodata.__func__.8958,"a",%progbits 14475 .set .LANCHOR177,. + 0 14476 .type __func__.8958, %object 14477 .size __func__.8958, 9 14478__func__.8958: 14479 .ascii "FtlWrite\000" 14480 .section .rodata.__func__.9033,"a",%progbits 14481 .set .LANCHOR128,. + 0 14482 .type __func__.9033, %object 14483 .size __func__.9033, 14 14484__func__.9033: 14485 .ascii "FtlBbt2Bitmap\000" 14486 .section .rodata.__func__.9068,"a",%progbits 14487 .set .LANCHOR141,. + 0 14488 .type __func__.9068, %object 14489 .size __func__.9068, 11 14490__func__.9068: 14491 .ascii "FtlLoadBbt\000" 14492 .section .rodata.__func__.9183,"a",%progbits 14493 .set .LANCHOR49,. + 0 14494 .type __func__.9183, %object 14495 .size __func__.9183, 17 14496__func__.9183: 14497 .ascii "INSERT_FREE_LIST\000" 14498 .section .rodata.__func__.9188,"a",%progbits 14499 .set .LANCHOR45,. + 0 14500 .type __func__.9188, %object 14501 .size __func__.9188, 17 14502__func__.9188: 14503 .ascii "INSERT_DATA_LIST\000" 14504 .section .rodata.__func__.9219,"a",%progbits 14505 .set .LANCHOR50,. + 0 14506 .type __func__.9219, %object 14507 .size __func__.9219, 17 14508__func__.9219: 14509 .ascii "List_remove_node\000" 14510 .section .rodata.__func__.9251,"a",%progbits 14511 .set .LANCHOR54,. + 0 14512 .type __func__.9251, %object 14513 .size __func__.9251, 22 14514__func__.9251: 14515 .ascii "List_update_data_list\000" 14516 .section .rodata.__func__.9260,"a",%progbits 14517 .set .LANCHOR150,. + 0 14518 .type __func__.9260, %object 14519 .size __func__.9260, 16 14520__func__.9260: 14521 .ascii "load_l2p_region\000" 14522 .section .rodata.__func__.9293,"a",%progbits 14523 .set .LANCHOR81,. + 0 14524 .type __func__.9293, %object 14525 .size __func__.9293, 26 14526__func__.9293: 14527 .ascii "ftl_map_blk_alloc_new_blk\000" 14528 .section .rodata.__func__.9304,"a",%progbits 14529 .set .LANCHOR151,. + 0 14530 .type __func__.9304, %object 14531 .size __func__.9304, 15 14532__func__.9304: 14533 .ascii "ftl_map_blk_gc\000" 14534 .section .rodata.__func__.9319,"a",%progbits 14535 .set .LANCHOR148,. + 0 14536 .type __func__.9319, %object 14537 .size __func__.9319, 31 14538__func__.9319: 14539 .ascii "Ftl_write_map_blk_to_last_page\000" 14540 .section .rodata.__func__.9333,"a",%progbits 14541 .set .LANCHOR149,. + 0 14542 .type __func__.9333, %object 14543 .size __func__.9333, 16 14544__func__.9333: 14545 .ascii "FtlMapWritePage\000" 14546 .section .rodata.__func__.9358,"a",%progbits 14547 .set .LANCHOR57,. + 0 14548 .type __func__.9358, %object 14549 .size __func__.9358, 22 14550__func__.9358: 14551 .ascii "select_l2p_ram_region\000" 14552 .section .rodata.__func__.9375,"a",%progbits 14553 .set .LANCHOR153,. + 0 14554 .type __func__.9375, %object 14555 .size __func__.9375, 9 14556__func__.9375: 14557 .ascii "log2phys\000" 14558 .section .rodata.__func__.9439,"a",%progbits 14559 .set .LANCHOR165,. + 0 14560 .type __func__.9439, %object 14561 .size __func__.9439, 15 14562__func__.9439: 14563 .ascii "FtlVpcTblFlush\000" 14564 .section .rodata.__func__.9461,"a",%progbits 14565 .set .LANCHOR140,. + 0 14566 .type __func__.9461, %object 14567 .size __func__.9461, 14 14568__func__.9461: 14569 .ascii "FtlScanSysBlk\000" 14570 .section .rodata.__func__.9517,"a",%progbits 14571 .set .LANCHOR178,. + 0 14572 .type __func__.9517, %object 14573 .size __func__.9517, 15 14574__func__.9517: 14575 .ascii "FtlLoadSysInfo\000" 14576 .section .rodata.__func__.9539,"a",%progbits 14577 .set .LANCHOR180,. + 0 14578 .type __func__.9539, %object 14579 .size __func__.9539, 18 14580__func__.9539: 14581 .ascii "FtlMapTblRecovery\000" 14582 .section .rodata.__func__.9585,"a",%progbits 14583 .set .LANCHOR154,. + 0 14584 .type __func__.9585, %object 14585 .size __func__.9585, 16 14586__func__.9585: 14587 .ascii "FtlReUsePrevPpa\000" 14588 .section .rodata.__func__.9619,"a",%progbits 14589 .set .LANCHOR155,. + 0 14590 .type __func__.9619, %object 14591 .size __func__.9619, 22 14592__func__.9619: 14593 .ascii "FtlRecoverySuperblock\000" 14594 .section .rodata.__func__.9676,"a",%progbits 14595 .set .LANCHOR60,. + 0 14596 .type __func__.9676, %object 14597 .size __func__.9676, 16 14598__func__.9676: 14599 .ascii "make_superblock\000" 14600 .section .rodata.__func__.9697,"a",%progbits 14601 .set .LANCHOR136,. + 0 14602 .type __func__.9697, %object 14603 .size __func__.9697, 18 14604__func__.9697: 14605 .ascii "SupperBlkListInit\000" 14606 .section .rodata.__func__.9724,"a",%progbits 14607 .set .LANCHOR159,. + 0 14608 .type __func__.9724, %object 14609 .size __func__.9724, 14 14610__func__.9724: 14611 .ascii "ftl_check_vpc\000" 14612 .section .rodata.__func__.9789,"a",%progbits 14613 .set .LANCHOR144,. + 0 14614 .type __func__.9789, %object 14615 .size __func__.9789, 25 14616__func__.9789: 14617 .ascii "allocate_data_superblock\000" 14618 .section .rodata.__func__.9810,"a",%progbits 14619 .set .LANCHOR168,. + 0 14620 .type __func__.9810, %object 14621 .size __func__.9810, 29 14622__func__.9810: 14623 .ascii "allocate_new_data_superblock\000" 14624 .section .rodata.__func__.9817,"a",%progbits 14625 .set .LANCHOR61,. + 0 14626 .type __func__.9817, %object 14627 .size __func__.9817, 19 14628__func__.9817: 14629 .ascii "get_new_active_ppa\000" 14630 .section .rodata.__func__.9830,"a",%progbits 14631 .set .LANCHOR146,. + 0 14632 .type __func__.9830, %object 14633 .size __func__.9830, 16 14634__func__.9830: 14635 .ascii "update_vpc_list\000" 14636 .section .rodata.__func__.9837,"a",%progbits 14637 .set .LANCHOR147,. + 0 14638 .type __func__.9837, %object 14639 .size __func__.9837, 20 14640__func__.9837: 14641 .ascii "decrement_vpc_count\000" 14642 .section .rodata.__func__.9907,"a",%progbits 14643 .set .LANCHOR170,. + 0 14644 .type __func__.9907, %object 14645 .size __func__.9907, 19 14646__func__.9907: 14647 .ascii "FtlGcFreeTempBlock\000" 14648 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 14649.LC21: 14650 .ascii "decrement_vpc_count %x = %d\012\000" 14651 .section .rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1 14652.LC29: 14653 .ascii "...%s enter...\012\000" 14654.LC30: 14655 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 14656.LC31: 14657 .ascii "free blk vpc error %x = %x %x\012\000" 14658 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 14659.LC10: 14660 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 14661 .section .rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1 14662.LC32: 14663 .ascii "ftl_scan_all_data = %x\012\000" 14664.LC33: 14665 .ascii "scan lpa = %x ppa= %x\012\000" 14666.LC34: 14667 .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 14668 .ascii "\000" 14669 .section .rodata.load_l2p_region.str1.1,"aMS",%progbits,1 14670.LC24: 14671 .ascii "region_id = %x phyAddr = %x\012\000" 14672.LC25: 14673 .ascii "map_ppn:\000" 14674.LC26: 14675 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 14676 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 14677.LC42: 14678 .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" 14679.LC43: 14680 .ascii "lpa=%x, ppa=%x\012\000" 14681 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 14682.LC2: 14683 .ascii "%s 0x%x:\000" 14684.LC3: 14685 .ascii "%x \000" 14686.LC4: 14687 .ascii "%02x \000" 14688.LC5: 14689 .ascii "\012\000" 14690 .section .rodata.sftl_init.str1.1,"aMS",%progbits,1 14691.LC49: 14692 .ascii "SFTL version: 5.0.50 20190215\000" 14693 .hidden free 14694