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