1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2021-03-29 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 mov r2, #796 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, #2157 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, #2792 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, #2793 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, #2794 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, #2817 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, #2219 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 mov r2, #1232 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, #1273 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, #1398 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, #2667 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, #2676 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, #2690 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, #2693 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 mov r2, #2704 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, #2706 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 movw r2, #2759 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, #2835 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, #2838 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, #2853 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, #2869 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 lsl r10, r1, #2 6656 ldr r8, .L894+32 6657 mov r4, r0 6658 mov r7, r1 6659 movs r6, #0 6660 str r2, [sp] 6661 mov fp, r8 6662.L870: 6663 ldr r2, .L894 6664 ldr r3, [r2] 6665 adds r3, r3, #1 6666 str r3, [r2] 6667 ldrh r3, [r8] 6668 ldrh r2, [r4, #2] 6669 subs r3, r3, #1 6670 cmp r2, r3 6671 bge .L871 6672 ldrh r2, [r4] 6673 movw r3, #65535 6674 cmp r2, r3 6675 bne .L872 6676.L871: 6677 mov r0, r4 6678 bl Ftl_write_map_blk_to_last_page 6679.L872: 6680 ldrh r2, [r4] 6681 ldr r3, [r4, #12] 6682 ldrh r3, [r3, r2, lsl #1] 6683 cbnz r3, .L873 6684 mov r2, #700 6685 ldr r1, .L894+4 6686 ldr r0, .L894+8 6687 bl printf 6688.L873: 6689 ldrh r2, [r4] 6690 ldrh r3, [r4, #10] 6691 cmp r2, r3 6692 bcc .L874 6693 movw r2, #701 6694 ldr r1, .L894+4 6695 ldr r0, .L894+8 6696 bl printf 6697.L874: 6698 ldrh r2, [r4] 6699 movs r1, #0 6700 ldr r3, [r4, #12] 6701 ldr r5, .L894+12 6702 ldrh r3, [r3, r2, lsl #1] 6703 ldrh r2, [r4, #2] 6704 str r3, [sp, #4] 6705 orr r2, r2, r3, lsl #10 6706 ldr r3, [sp] 6707 str r2, [r5, #4] 6708 ldr r2, .L894+16 6709 str r3, [r5, #8] 6710 ldr r0, [r2] 6711 movs r2, #16 6712 str r0, [r5, #12] 6713 bl ftl_memset 6714 ldr r2, [r5, #12] 6715 ldr r1, [r4, #28] 6716 ldr r3, [sp, #4] 6717 strh r7, [r2, #8] @ movhi 6718 str r1, [r2, #4] 6719 ldrh r1, [r4, #4] 6720 strh r3, [r2, #2] @ movhi 6721 ldr r3, .L894+20 6722 strh r1, [r2] @ movhi 6723 ldr r0, [r5, #8] 6724 ldrh r1, [r3] 6725 str r2, [sp, #4] 6726 bl js_hash 6727 ldr r2, [sp, #4] 6728 movs r3, #1 6729 mov r1, r3 6730 str r0, [r2, #12] 6731 mov r2, r3 6732 mov r0, r5 6733 bl FlashProgPages 6734 ldrh r2, [r4, #2] 6735 ldr r3, [r5] 6736 adds r2, r2, #1 6737 uxth r2, r2 6738 adds r3, r3, #1 6739 strh r2, [r4, #2] @ movhi 6740 bne .L875 6741 ldr r1, [r5, #4] 6742 adds r6, r6, #1 6743 ldr r0, .L894+24 6744 uxth r6, r6 6745 str r5, [sp, #4] 6746 bl printf 6747 ldrh r2, [r4, #2] 6748 ldr r3, [sp, #4] 6749 cmp r2, #2 6750 ittt ls 6751 ldrhls r2, [fp] 6752 addls r2, r2, #-1 6753 strhls r2, [r4, #2] @ movhi 6754 cmp r6, #3 6755 bls .L877 6756 mov r2, r6 6757 ldr r1, [r3, #4] 6758 ldr r0, .L894+28 6759 bl printf 6760.L878: 6761 b .L878 6762.L877: 6763 ldr r3, [r4, #32] 6764 cmp r3, #0 6765 beq .L870 6766.L893: 6767 b .L893 6768.L875: 6769 ldr r1, [r5, #4] 6770 cmp r2, #1 6771 ldr r3, [r4, #24] 6772 str r1, [r3, r10] 6773 beq .L881 6774 ldr r3, [r5] 6775 cmp r3, #256 6776 beq .L881 6777 ldr r2, [r4, #36] 6778 cbz r2, .L882 6779.L881: 6780 movs r3, #0 6781 str r3, [r4, #36] 6782 b .L870 6783.L882: 6784 adds r3, r3, #1 6785 bne .L883 6786 movw r2, #745 6787 ldr r1, .L894+4 6788 ldr r0, .L894+8 6789 bl printf 6790.L883: 6791 movs r0, #0 6792 add sp, sp, #8 6793 @ sp needed 6794 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6795.L895: 6796 .align 2 6797.L894: 6798 .word .LANCHOR87 6799 .word .LANCHOR148 6800 .word .LC1 6801 .word .LANCHOR137 6802 .word .LANCHOR113 6803 .word .LANCHOR22 6804 .word .LC22 6805 .word .LC23 6806 .word .LANCHOR19 6807 .size FtlMapWritePage, .-FtlMapWritePage 6808 .section .text.load_l2p_region,"ax",%progbits 6809 .align 1 6810 .global load_l2p_region 6811 .syntax unified 6812 .thumb 6813 .thumb_func 6814 .fpu softvfp 6815 .type load_l2p_region, %function 6816load_l2p_region: 6817 @ args = 0, pretend = 0, frame = 8 6818 @ frame_needed = 0, uses_anonymous_args = 0 6819 ldr r3, .L903 6820 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6821 mov r5, r0 6822 mov r10, r1 6823 ldrh r2, [r3] 6824 str r3, [sp, #4] 6825 cmp r2, r0 6826 bcs .L897 6827 movw r2, #485 6828 ldr r1, .L903+4 6829 ldr r0, .L903+8 6830 bl printf 6831.L897: 6832 ldr fp, .L903+48 6833 movs r4, #12 6834 ldr r7, .L903+12 6835 ldr r3, [fp] 6836 ldr r8, [r3, r5, lsl #2] 6837 cmp r8, #0 6838 bne .L898 6839 mul r4, r4, r10 6840 ldr r2, [r7] 6841 movs r1, #255 6842 adds r0, r2, r4 6843 ldr r2, .L903+16 6844 ldr r0, [r0, #8] 6845 ldrh r2, [r2] 6846 bl ftl_memset 6847 ldr r2, [r7] 6848 adds r1, r2, r4 6849 strh r5, [r2, r4] @ movhi 6850 str r8, [r1, #4] 6851.L899: 6852 movs r0, #0 6853 add sp, sp, #8 6854 @ sp needed 6855 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6856.L898: 6857 mul r4, r4, r10 6858 ldr r2, [r7] 6859 ldr r6, .L903+20 6860 add r2, r2, r4 6861 mov r0, r6 6862 ldr r2, [r2, #8] 6863 str r8, [r6, #4] 6864 str r2, [r6, #8] 6865 ldr r2, .L903+24 6866 ldr r2, [r2] 6867 str r2, [r6, #12] 6868 movs r2, #1 6869 mov r1, r2 6870 bl FlashReadPages 6871 ldr r10, [r6, #12] 6872 ldrh r2, [r10, #8] 6873 cmp r2, r5 6874 beq .L900 6875 mov r2, r8 6876 mov r1, r5 6877 ldr r0, .L903+28 6878 bl printf 6879 movs r3, #4 6880 ldr r1, [r6, #12] 6881 mov r2, r3 6882 ldr r0, .L903+32 6883 bl rknand_print_hex 6884 ldr r3, [sp, #4] 6885 movs r2, #4 6886 ldr r1, [fp] 6887 ldr r0, .L903+36 6888 ldrh r3, [r3] 6889 bl rknand_print_hex 6890.L901: 6891 ldrh r3, [r10, #8] 6892 cmp r3, r5 6893 beq .L902 6894 mov r2, #508 6895 ldr r1, .L903+4 6896 ldr r0, .L903+8 6897 bl printf 6898.L902: 6899 ldr r3, [r7] 6900 movs r1, #0 6901 adds r2, r3, r4 6902 str r1, [r2, #4] 6903 strh r5, [r3, r4] @ movhi 6904 b .L899 6905.L900: 6906 ldr r2, [r6] 6907 cmp r2, #256 6908 bne .L901 6909 mov r2, r8 6910 mov r1, r5 6911 ldr r0, .L903+40 6912 bl printf 6913 ldr r3, [r7] 6914 mov r1, r5 6915 ldr r0, .L903+44 6916 add r3, r3, r4 6917 ldr r2, [r3, #8] 6918 bl FtlMapWritePage 6919 b .L901 6920.L904: 6921 .align 2 6922.L903: 6923 .word .LANCHOR31 6924 .word .LANCHOR149 6925 .word .LC1 6926 .word .LANCHOR54 6927 .word .LANCHOR22 6928 .word .LANCHOR137 6929 .word .LANCHOR113 6930 .word .LC24 6931 .word .LC13 6932 .word .LC25 6933 .word .LC26 6934 .word .LANCHOR128 6935 .word .LANCHOR123 6936 .size load_l2p_region, .-load_l2p_region 6937 .section .text.ftl_map_blk_gc,"ax",%progbits 6938 .align 1 6939 .global ftl_map_blk_gc 6940 .syntax unified 6941 .thumb 6942 .thumb_func 6943 .fpu softvfp 6944 .type ftl_map_blk_gc, %function 6945ftl_map_blk_gc: 6946 @ args = 0, pretend = 0, frame = 8 6947 @ frame_needed = 0, uses_anonymous_args = 0 6948 ldr r3, [r0, #24] 6949 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6950 mov r4, r0 6951 ldr r5, [r0, #12] 6952 str r3, [sp] 6953 bl ftl_free_no_use_map_blk 6954 ldrh r3, [r4, #10] 6955 ldrh r2, [r4, #8] 6956 subs r3, r3, #5 6957 cmp r2, r3 6958 blt .L906 6959 uxth r0, r0 6960 ldrh r8, [r5, r0, lsl #1] 6961 cmp r8, #0 6962 beq .L906 6963 ldr r3, [r4, #32] 6964 cbnz r3, .L906 6965 movs r2, #1 6966 str r2, [r4, #32] 6967 strh r3, [r5, r0, lsl #1] @ movhi 6968 ldrh r3, [r4, #8] 6969 ldrh r2, [r4, #2] 6970 subs r3, r3, #1 6971 strh r3, [r4, #8] @ movhi 6972 ldr r3, .L921 6973 ldrh r3, [r3] 6974 cmp r2, r3 6975 bcc .L907 6976 mov r0, r4 6977 bl ftl_map_blk_alloc_new_blk 6978.L907: 6979 ldr r5, .L921+4 6980 movs r6, #0 6981.L908: 6982 ldrh r3, [r4, #6] 6983 uxth r10, r6 6984 cmp r3, r10 6985 bhi .L915 6986 movs r1, #1 6987 mov r0, r8 6988 bl FtlFreeSysBlkQueueIn 6989 movs r3, #0 6990 str r3, [r4, #32] 6991.L906: 6992 ldr r3, .L921 6993 ldrh r2, [r4, #2] 6994 ldrh r3, [r3] 6995 cmp r2, r3 6996 bcc .L916 6997 mov r0, r4 6998 bl ftl_map_blk_alloc_new_blk 6999.L916: 7000 movs r0, #0 7001 add sp, sp, #8 7002 @ sp needed 7003 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7004.L915: 7005 ldr r3, [sp] 7006 uxth fp, r6 7007 add r3, r3, fp, lsl #2 7008 str r3, [sp, #4] 7009 ldr r3, [sp] 7010 ldr r2, [r3, fp, lsl #2] 7011 cmp r8, r2, lsr #10 7012 bne .L909 7013 ldr r3, .L921+8 7014 str r2, [r5, #4] 7015 movs r2, #1 7016 ldr r0, .L921+4 7017 ldr r1, [r3] 7018 str r1, [r5, #8] 7019 ldr r1, .L921+12 7020 ldr r7, [r1] 7021 mov r1, r2 7022 str r7, [r5, #12] 7023 bl FlashReadPages 7024 ldrh r2, [r7, #8] 7025 cmp r2, r10 7026 beq .L910 7027 movw r2, #611 7028 ldr r1, .L921+16 7029 ldr r0, .L921+20 7030 bl printf 7031.L910: 7032 ldr r2, [r5] 7033 adds r2, r2, #1 7034 bne .L911 7035.L913: 7036 ldr r2, [sp, #4] 7037 movs r3, #0 7038 str r3, [r2] 7039.L912: 7040 b .L912 7041.L911: 7042 ldrh r2, [r7, #8] 7043 cmp r2, r10 7044 bne .L913 7045 ldrh r1, [r7] 7046 ldrh r2, [r4, #4] 7047 cmp r1, r2 7048 bne .L913 7049 ldr r2, [r5, #8] 7050 mov r1, fp 7051 mov r0, r4 7052 bl FtlMapWritePage 7053.L909: 7054 adds r6, r6, #1 7055 b .L908 7056.L922: 7057 .align 2 7058.L921: 7059 .word .LANCHOR19 7060 .word .LANCHOR137 7061 .word .LANCHOR106 7062 .word .LANCHOR113 7063 .word .LANCHOR150 7064 .word .LC1 7065 .size ftl_map_blk_gc, .-ftl_map_blk_gc 7066 .section .text.flush_l2p_region,"ax",%progbits 7067 .align 1 7068 .global flush_l2p_region 7069 .syntax unified 7070 .thumb 7071 .thumb_func 7072 .fpu softvfp 7073 .type flush_l2p_region, %function 7074flush_l2p_region: 7075 @ args = 0, pretend = 0, frame = 0 7076 @ frame_needed = 0, uses_anonymous_args = 0 7077 push {r3, r4, r5, lr} 7078 movs r4, #12 7079 ldr r5, .L924 7080 muls r4, r0, r4 7081 ldr r0, .L924+4 7082 ldr r3, [r5] 7083 adds r2, r3, r4 7084 ldrh r1, [r3, r4] 7085 ldr r2, [r2, #8] 7086 bl FtlMapWritePage 7087 ldr r3, [r5] 7088 movs r0, #0 7089 add r4, r4, r3 7090 ldr r3, [r4, #4] 7091 bic r3, r3, #-2147483648 7092 str r3, [r4, #4] 7093 pop {r3, r4, r5, pc} 7094.L925: 7095 .align 2 7096.L924: 7097 .word .LANCHOR54 7098 .word .LANCHOR128 7099 .size flush_l2p_region, .-flush_l2p_region 7100 .section .text.l2p_flush,"ax",%progbits 7101 .align 1 7102 .global l2p_flush 7103 .syntax unified 7104 .thumb 7105 .thumb_func 7106 .fpu softvfp 7107 .type l2p_flush, %function 7108l2p_flush: 7109 @ args = 0, pretend = 0, frame = 0 7110 @ frame_needed = 0, uses_anonymous_args = 0 7111 push {r4, r5, r6, lr} 7112 movs r4, #0 7113 ldr r5, .L930 7114 ldr r6, .L930+4 7115.L927: 7116 ldrh r3, [r5] 7117 uxth r0, r4 7118 cmp r3, r0 7119 bhi .L929 7120 movs r0, #0 7121 pop {r4, r5, r6, pc} 7122.L929: 7123 ldr r2, [r6] 7124 uxth r3, r4 7125 movs r1, #12 7126 mla r3, r1, r3, r2 7127 ldr r3, [r3, #4] 7128 cmp r3, #0 7129 bge .L928 7130 bl flush_l2p_region 7131.L928: 7132 adds r4, r4, #1 7133 b .L927 7134.L931: 7135 .align 2 7136.L930: 7137 .word .LANCHOR32 7138 .word .LANCHOR54 7139 .size l2p_flush, .-l2p_flush 7140 .section .text.log2phys,"ax",%progbits 7141 .align 1 7142 .global log2phys 7143 .syntax unified 7144 .thumb 7145 .thumb_func 7146 .fpu softvfp 7147 .type log2phys, %function 7148log2phys: 7149 @ args = 0, pretend = 0, frame = 8 7150 @ frame_needed = 0, uses_anonymous_args = 0 7151 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7152 mov r7, r2 7153 ldr r4, .L945 7154 mov r10, r0 7155 mov r5, r1 7156 ldr r3, .L945+4 7157 ldr r2, [r4] 7158 ldrh fp, [r3] 7159 cmp r0, r2 7160 bcc .L933 7161 mov r2, #820 7162 ldr r1, .L945+8 7163 ldr r0, .L945+12 7164 bl printf 7165.L933: 7166 ldr r3, [r4] 7167 cmp r10, r3 7168 bcs .L934 7169 ldr r3, .L945+16 7170 add fp, fp, #7 7171 lsr r6, r10, fp 7172 movs r2, #0 7173 ldrh r1, [r3] 7174 uxth r6, r6 7175 ldr r3, .L945+20 7176 ldr r0, [r3] 7177 mov r8, r3 7178 movs r3, #12 7179.L935: 7180 uxth r4, r2 7181 cmp r4, r1 7182 bcc .L940 7183 str r3, [sp, #4] 7184 bl select_l2p_ram_region 7185 ldr r3, [sp, #4] 7186 mov r4, r0 7187 ldr r2, [r8] 7188 muls r3, r0, r3 7189 adds r1, r2, r3 7190 ldrh r2, [r2, r3] 7191 movw r3, #65535 7192 cmp r2, r3 7193 beq .L941 7194 ldr r3, [r1, #4] 7195 cmp r3, #0 7196 bge .L941 7197 bl flush_l2p_region 7198.L941: 7199 mov r1, r4 7200 mov r0, r6 7201 bl load_l2p_region 7202 b .L937 7203.L934: 7204 mov r0, #-1 7205 cbnz r7, .L932 7206 str r0, [r5] 7207.L932: 7208 add sp, sp, #8 7209 @ sp needed 7210 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7211.L940: 7212 adds r2, r2, #1 7213 mla ip, r3, r2, r0 7214 ldrh ip, [ip, #-12] 7215 cmp ip, r6 7216 bne .L935 7217.L937: 7218 movs r0, #1 7219 ldr r2, [r8] 7220 lsl r0, r0, fp 7221 movs r3, #12 7222 subs r0, r0, #1 7223 and r0, r0, r10 7224 uxth r0, r0 7225 mla r3, r3, r4, r2 7226 cbnz r7, .L938 7227 ldr r3, [r3, #8] 7228 ldr r3, [r3, r0, lsl #2] 7229 str r3, [r5] 7230.L939: 7231 ldr r2, [r8] 7232 movs r3, #12 7233 mla r4, r3, r4, r2 7234 ldr r3, [r4, #4] 7235 adds r2, r3, #1 7236 beq .L943 7237 adds r3, r3, #1 7238 str r3, [r4, #4] 7239.L943: 7240 movs r0, #0 7241 b .L932 7242.L938: 7243 ldr r1, [r5] 7244 ldr r2, [r3, #8] 7245 str r1, [r2, r0, lsl #2] 7246 ldr r2, [r3, #4] 7247 orr r2, r2, #-2147483648 7248 str r2, [r3, #4] 7249 ldr r3, .L945+24 7250 strh r6, [r3] @ movhi 7251 b .L939 7252.L946: 7253 .align 2 7254.L945: 7255 .word .LANCHOR151 7256 .word .LANCHOR21 7257 .word .LANCHOR152 7258 .word .LC1 7259 .word .LANCHOR32 7260 .word .LANCHOR54 7261 .word .LANCHOR55 7262 .size log2phys, .-log2phys 7263 .section .text.FtlReUsePrevPpa,"ax",%progbits 7264 .align 1 7265 .global FtlReUsePrevPpa 7266 .syntax unified 7267 .thumb 7268 .thumb_func 7269 .fpu softvfp 7270 .type FtlReUsePrevPpa, %function 7271FtlReUsePrevPpa: 7272 @ args = 0, pretend = 0, frame = 8 7273 @ frame_needed = 0, uses_anonymous_args = 0 7274 push {r0, r1, r4, r5, r6, r7, r8, lr} 7275 mov r6, r0 7276 ldr r5, .L957 7277 ubfx r0, r1, #10, #16 7278 str r1, [sp, #4] 7279 bl P2V_block_in_plane 7280 ldr r2, [r5] 7281 mov r7, r0 7282 ldrh r3, [r2, r0, lsl #1] 7283 cbnz r3, .L948 7284 ldr r2, .L957+4 7285 ldr r4, [r2] 7286 cmp r4, #0 7287 beq .L949 7288 ldr r2, .L957+8 7289 movw lr, #65535 7290 ldr ip, .L957+24 7291 ldr r0, .L957+12 7292 ldr r2, [r2] 7293 ldrh r1, [r0] 7294 mov r8, r0 7295 subs r4, r4, r2 7296 asrs r4, r4, #1 7297 mul r4, ip, r4 7298 mov ip, #6 7299 uxth r4, r4 7300.L950: 7301 uxth r0, r3 7302 cmp r1, r0 7303 bls .L949 7304 cmp r4, r7 7305 bne .L951 7306 mov r1, r4 7307 ldr r0, .L957+4 7308 bl List_remove_node 7309 ldrh r3, [r8] 7310 cbnz r3, .L952 7311 movw r2, #1742 7312 ldr r1, .L957+16 7313 ldr r0, .L957+20 7314 bl printf 7315.L952: 7316 ldrh r3, [r8] 7317 mov r0, r4 7318 subs r3, r3, #1 7319 strh r3, [r8] @ movhi 7320 bl INSERT_DATA_LIST 7321 ldr r2, [r5] 7322 ldrh r3, [r2, r7, lsl #1] 7323.L948: 7324 adds r3, r3, #1 7325 strh r3, [r2, r7, lsl #1] @ movhi 7326 b .L949 7327.L951: 7328 mul r4, ip, r4 7329 adds r3, r3, #1 7330 ldrh r4, [r2, r4] 7331 cmp r4, lr 7332 bne .L950 7333.L949: 7334 movs r2, #1 7335 add r1, sp, #4 7336 mov r0, r6 7337 bl log2phys 7338 add sp, sp, #8 7339 @ sp needed 7340 pop {r4, r5, r6, r7, r8, pc} 7341.L958: 7342 .align 2 7343.L957: 7344 .word .LANCHOR41 7345 .word .LANCHOR45 7346 .word .LANCHOR39 7347 .word .LANCHOR47 7348 .word .LANCHOR153 7349 .word .LC1 7350 .word -1431655765 7351 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 7352 .section .text.FtlRecoverySuperblock,"ax",%progbits 7353 .align 1 7354 .global FtlRecoverySuperblock 7355 .syntax unified 7356 .thumb 7357 .thumb_func 7358 .fpu softvfp 7359 .type FtlRecoverySuperblock, %function 7360FtlRecoverySuperblock: 7361 @ args = 0, pretend = 0, frame = 48 7362 @ frame_needed = 0, uses_anonymous_args = 0 7363 ldrh r3, [r0] 7364 movw r2, #65535 7365 push {r4, r5, r6, r7, r8, r10, fp, lr} 7366 mov r8, r0 7367 sub sp, sp, #48 7368 cmp r3, r2 7369 beq .L1091 7370 ldrh r3, [r0, #2] 7371 str r3, [sp, #4] 7372 ldrb r3, [r0, #6] @ zero_extendqisi2 7373 ldr r1, [sp, #4] 7374 str r3, [sp, #20] 7375 ldr r3, .L1100 7376 ldrh r3, [r3] 7377 cmp r3, r1 7378 mov r3, #0 7379 bne .L962 7380 strh r3, [r0, #4] @ movhi 7381.L1098: 7382 strb r3, [r8, #6] 7383.L1091: 7384 movs r0, #0 7385 add sp, sp, #48 7386 @ sp needed 7387 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7388.L962: 7389 ldrh r0, [r0, #16] 7390.L963: 7391 cmp r0, r2 7392 uxth r5, r3 7393 add r3, r3, #1 7394 beq .L964 7395 movs r1, #1 7396 bl FtlGetLastWrittenPage 7397 mov r4, r0 7398 adds r0, r0, #1 7399 beq .L965 7400 ldr r3, .L1100+4 7401 movs r2, #0 7402 mov r5, r2 7403 movw fp, #65535 7404 mov r10, #20 7405 ldrh ip, [r3] 7406 ldr r3, .L1100+8 7407 ldr r0, [r3] 7408 ldr r3, .L1100+12 7409 ldr r3, [r3] 7410 str r3, [sp, #8] 7411 ldr r3, .L1100+16 7412 ldrh r7, [r3] 7413 ldr r3, .L1100+20 7414 ldr r3, [r3] 7415 str r3, [sp, #12] 7416 ldr r3, .L1100+24 7417 ldrh lr, [r3] 7418 add r3, r8, #16 7419 str r3, [sp, #16] 7420 str r3, [sp] 7421.L966: 7422 uxth r3, r2 7423 cmp ip, r3 7424 bhi .L970 7425 movs r2, #0 7426 mov r1, r5 7427 bl FlashReadPages 7428 ldr r2, .L1100+28 7429 uxth r1, r4 7430 movw fp, #65535 7431 str r1, [sp, #12] 7432 ldr r3, [r2] 7433 subs r3, r3, #1 7434 str r3, [sp] 7435 ldr r3, .L1100+8 7436 ldr r10, [r3] 7437 movs r3, #0 7438 mov r7, r10 7439.L971: 7440 uxth r1, r3 7441 cmp r5, r1 7442 bhi .L976 7443 bne .L974 7444 adds r3, r4, #1 7445 uxth r3, r3 7446 str r3, [sp, #8] 7447.L1092: 7448 ldr r0, [r10, #4] 7449 ubfx r0, r0, #10, #16 7450 bl P2V_plane 7451 ldr r3, .L1100 7452 mov r10, r0 7453 ldr r2, [sp, #8] 7454 ldrh r3, [r3] 7455 cmp r3, r2 7456 bne .L978 7457 ldrh r3, [sp, #8] 7458 strh r3, [r8, #2] @ movhi 7459 movs r3, #0 7460 strb r3, [r8, #6] 7461 strh r3, [r8, #4] @ movhi 7462.L978: 7463 ldr r3, [sp, #8] 7464 ldr r2, [sp, #4] 7465 cmp r3, r2 7466 bne .L979 7467 ldr r3, [sp, #20] 7468 cmp r10, r3 7469 bne .L979 7470 ldr r1, [sp, #8] 7471 mov r2, r10 7472.L1099: 7473 mov r0, r8 7474 bl ftl_sb_update_avl_pages 7475 b .L1091 7476.L964: 7477 uxth r1, r3 7478 adds r1, r1, #8 7479 ldrh r0, [r8, r1, lsl #1] 7480 b .L963 7481.L965: 7482 ldr r3, [sp, #4] 7483 cbz r3, .L967 7484 movw r2, #1809 7485 ldr r1, .L1100+32 7486 ldr r0, .L1100+36 7487 bl printf 7488.L967: 7489 ldr r3, [sp, #20] 7490 cbz r3, .L968 7491 cmp r5, r3 7492 beq .L968 7493 movw r2, #1810 7494 ldr r1, .L1100+32 7495 ldr r0, .L1100+36 7496 bl printf 7497.L968: 7498 movs r3, #0 7499 strh r3, [r8, #2] @ movhi 7500 b .L1098 7501.L970: 7502 ldr r1, [sp] 7503 ldrh r3, [r1], #2 7504 cmp r3, fp 7505 str r1, [sp] 7506 beq .L969 7507 mla r1, r10, r5, r0 7508 ldr r6, [sp, #8] 7509 orr r3, r4, r3, lsl #10 7510 str r3, [r1, #4] 7511 mul r3, r7, r5 7512 bic r3, r3, #3 7513 add r3, r3, r6 7514 ldr r6, [sp, #12] 7515 str r3, [r1, #8] 7516 mul r3, lr, r5 7517 adds r5, r5, #1 7518 uxth r5, r5 7519 bic r3, r3, #3 7520 add r3, r3, r6 7521 str r3, [r1, #12] 7522.L969: 7523 adds r2, r2, #1 7524 b .L966 7525.L976: 7526 ldr r1, [r7] 7527 cbnz r1, .L972 7528 ldr r1, [r7, #12] 7529 ldr r6, [r1, #4] 7530 str r1, [sp, #8] 7531 adds r1, r6, #1 7532 beq .L973 7533 ldr r1, [r2] 7534 mov r0, r6 7535 bl ftl_cmp_data_ver 7536 cbz r0, .L973 7537 adds r6, r6, #1 7538 str r6, [r2] 7539.L973: 7540 ldr r1, [sp, #8] 7541 ldr r1, [r1] 7542 adds r1, r1, #1 7543 bne .L975 7544.L974: 7545 uxth r2, r4 7546 uxth r3, r3 7547 str r2, [sp, #8] 7548 movs r2, #20 7549 mla r10, r2, r3, r10 7550 b .L1092 7551.L972: 7552 ldr fp, [sp, #12] 7553.L975: 7554 adds r3, r3, #1 7555 adds r7, r7, #20 7556 b .L971 7557.L979: 7558 movw r3, #65535 7559 cmp fp, r3 7560 bne .L980 7561 ldrb r3, [r8, #8] @ zero_extendqisi2 7562 cmp r3, #0 7563 bne .L981 7564.L980: 7565 ldr r3, .L1100+40 7566 uxth r6, r4 7567 uxth r4, r4 7568 ldr r7, .L1100+8 7569 ldr r2, [r3] 7570 adds r2, r2, #1 7571 itt eq 7572 ldreq r2, [sp] 7573 streq r2, [r3] 7574 ldr r3, [sp, #4] 7575 adds r3, r3, #7 7576 cmp r4, r3 7577 itet gt 7578 subgt r4, r6, #7 7579 ldrle r4, [sp, #4] 7580 uxthgt r4, r4 7581.L984: 7582 cmp r4, r6 7583 bhi .L994 7584 ldr r3, .L1100+4 7585 movw lr, #65535 7586 ldr r0, [r7] 7587 mov ip, #20 7588 ldrh fp, [r3] 7589 ldr r3, [sp, #16] 7590 str r3, [sp, #12] 7591 movs r3, #0 7592 mov r5, r3 7593 b .L995 7594.L986: 7595 ldr r1, [sp, #12] 7596 ldrh r2, [r1], #2 7597 cmp r2, lr 7598 str r1, [sp, #12] 7599 beq .L985 7600 mla r1, ip, r5, r0 7601 adds r5, r5, #1 7602 orr r2, r4, r2, lsl #10 7603 uxth r5, r5 7604 str r2, [r1, #4] 7605.L985: 7606 adds r3, r3, #1 7607.L995: 7608 uxth r2, r3 7609 cmp fp, r2 7610 bhi .L986 7611 mov r1, r5 7612 movs r2, #0 7613 bl FlashReadPages 7614 ldr r3, .L1100+40 7615 movs r1, #20 7616 movs r0, #0 7617 movw ip, #65535 7618 ldr r2, [r3] 7619 ldr r3, [r7] 7620 mla r5, r1, r5, r3 7621.L987: 7622 cmp r5, r3 7623 bne .L992 7624 cbz r0, .L993 7625 ldr r3, .L1100+40 7626 str r2, [r3] 7627.L993: 7628 adds r4, r4, #1 7629 uxth r4, r4 7630 b .L984 7631.L1101: 7632 .align 2 7633.L1100: 7634 .word .LANCHOR18 7635 .word .LANCHOR2 7636 .word .LANCHOR102 7637 .word .LANCHOR63 7638 .word .LANCHOR22 7639 .word .LANCHOR64 7640 .word .LANCHOR23 7641 .word .LANCHOR82 7642 .word .LANCHOR154 7643 .word .LC1 7644 .word .LANCHOR133 7645.L992: 7646 ldr r1, [r3] 7647 cmp r1, #0 7648 beq .L988 7649 cbz r0, .L981 7650.L1093: 7651 ldr r3, .L1102 7652 str r2, [r3] 7653.L981: 7654 ldr fp, [sp, #4] 7655 movs r2, #1 7656 ldr r6, .L1102+4 7657 ldr r3, .L1102+8 7658 strh r2, [r3] @ movhi 7659.L996: 7660 ldr r3, .L1102+12 7661 movw lr, #65535 7662 ldr r0, [r6] 7663 movs r7, #20 7664 ldr r1, [sp, #16] 7665 ldrh r4, [r3] 7666 movs r3, #0 7667 str r3, [sp, #12] 7668.L997: 7669 uxth r2, r3 7670 cmp r4, r2 7671 bhi .L999 7672 movs r2, #0 7673 ldr r1, [sp, #12] 7674 bl FlashReadPages 7675 movs r3, #0 7676.L1097: 7677 str r3, [sp, #24] 7678 ldr r2, [sp, #12] 7679 ldrh r3, [sp, #24] 7680 cmp r2, r3 7681 bhi .L1028 7682 ldr r3, .L1102+16 7683 add fp, fp, #1 7684 uxth fp, fp 7685 ldrh r3, [r3] 7686 cmp r3, fp 7687 bne .L996 7688 ldr r2, .L1102+12 7689 movw r0, #65535 7690 movs r3, #0 7691 strh fp, [r8, #2] @ movhi 7692 strh r3, [r8, #4] @ movhi 7693 ldrh r2, [r2] 7694.L1029: 7695 uxth r1, r3 7696 cmp r1, r2 7697 bcs .L1091 7698 ldr r1, [sp, #16] 7699 ldrh r4, [r1], #2 7700 cmp r4, r0 7701 str r1, [sp, #16] 7702 add r1, r3, #1 7703 bne .L1098 7704 mov r3, r1 7705 b .L1029 7706.L988: 7707 ldr r1, [r3, #12] 7708 ldrh lr, [r1] 7709 cmp lr, ip 7710 beq .L991 7711 ldr r1, [r1, #4] 7712 cmp r1, #-1 7713 itt ne 7714 movne r2, r1 7715 movne r0, #1 7716.L991: 7717 adds r3, r3, #20 7718 b .L987 7719.L994: 7720 mov r2, #-1 7721 b .L1093 7722.L999: 7723 ldrh r2, [r1], #2 7724 cmp r2, lr 7725 beq .L998 7726 ldr r5, [sp, #12] 7727 orr r2, fp, r2, lsl #10 7728 mla ip, r7, r5, r0 7729 str r2, [ip, #4] 7730 mov r2, r5 7731 adds r2, r2, #1 7732 uxth r2, r2 7733 str r2, [sp, #12] 7734.L998: 7735 adds r3, r3, #1 7736 b .L997 7737.L1028: 7738 ldr r3, [sp, #24] 7739 movs r5, #20 7740 muls r5, r3, r5 7741 ldr r3, [r6] 7742 str r3, [sp, #28] 7743 adds r7, r3, r5 7744 ldr r4, [r7, #4] 7745 ubfx r0, r4, #10, #16 7746 str r4, [sp, #44] 7747 bl P2V_plane 7748 ldr r3, [sp, #4] 7749 cmp fp, r3 7750 bcc .L1001 7751 ldr r3, [sp, #28] 7752 bne .L1002 7753 ldr r2, [sp, #20] 7754 cmp r2, r0 7755 bhi .L1001 7756.L1002: 7757 ldr r2, [sp, #8] 7758 cmp fp, r2 7759 bne .L1003 7760 cmp r10, r0 7761 beq .L1004 7762.L1003: 7763 ldr r3, [r3, r5] 7764 adds r3, r3, #1 7765 beq .L1005 7766 ldr r3, [r7, #12] 7767 movw r2, #61589 7768 ldrh r1, [r3] 7769 cmp r1, r2 7770 beq .L1006 7771 ldrh r0, [r8] 7772.L1094: 7773 bl decrement_vpc_count 7774 b .L1001 7775.L1006: 7776 ldr r2, [r3, #4] 7777 str r2, [sp] 7778 adds r2, r2, #1 7779 beq .L1007 7780 ldr r2, .L1102+20 7781 ldr r0, [sp] 7782 ldr r1, [r2] 7783 bl ftl_cmp_data_ver 7784 cbz r0, .L1007 7785 ldr r1, [sp] 7786 adds r1, r1, #1 7787 str r1, [r2] 7788.L1007: 7789 ldr r4, [r3, #8] 7790 add r1, sp, #40 7791 ldr r3, [r3, #12] 7792 movs r2, #0 7793 mov r0, r4 7794 str r3, [sp, #36] 7795 bl log2phys 7796 ldr r3, .L1102 7797 ldr r1, [r3] 7798 adds r3, r1, #1 7799 beq .L1008 7800 ldr r0, [sp] 7801 bl ftl_cmp_data_ver 7802 cmp r0, #0 7803 beq .L1008 7804 ldr r3, [sp, #36] 7805 adds r7, r3, #1 7806 beq .L1009 7807 ldr r0, [r6] 7808 movs r2, #0 7809 movs r1, #1 7810 add r0, r0, r5 7811 str r3, [r0, #4] 7812 ldr r7, [r0, #12] 7813 bl FlashReadPages 7814 ldr r2, [r6] 7815 ldr r1, [r2, r5] 7816 adds r3, r2, r5 7817 adds r1, r1, #1 7818 bne .L1010 7819.L1011: 7820 mov r3, #-1 7821 str r3, [sp, #36] 7822.L1018: 7823 ldr r7, [sp, #36] 7824 adds r0, r7, #1 7825 beq .L1001 7826.L1032: 7827 ubfx r0, r7, #10, #16 7828 bl P2V_block_in_plane 7829 ldr r3, .L1102+24 7830 mov r4, r0 7831 ldrh r3, [r3] 7832 cmp r3, r0 7833 bhi .L1024 7834 movw r2, #2066 7835 ldr r1, .L1102+28 7836 ldr r0, .L1102+32 7837 bl printf 7838.L1024: 7839 ldr r3, .L1102+36 7840 ldr r3, [r3] 7841 ldrh r3, [r3, r4, lsl #1] 7842 cmp r3, #0 7843 beq .L1025 7844 mov r0, r4 7845 b .L1094 7846.L1009: 7847 ldr r3, [sp, #44] 7848 ldr r2, [sp, #40] 7849 cmp r2, r3 7850 bne .L1001 7851 movs r2, #1 7852 add r1, sp, #36 7853 mov r0, r4 7854 bl log2phys 7855.L1001: 7856 ldr r3, [sp, #24] 7857 adds r3, r3, #1 7858 b .L1097 7859.L1010: 7860 ldr r1, [r7, #8] 7861 cmp r4, r1 7862 bne .L1011 7863 ldr r0, .L1102 7864 ldr r1, [r7, #4] 7865 ldr r0, [r0] 7866 str r1, [sp, #28] 7867 bl ftl_cmp_data_ver 7868 cmp r0, #0 7869 beq .L1011 7870 ldr r1, [sp, #40] 7871 ldr r0, [sp, #44] 7872 cmp r1, r0 7873 bne .L1013 7874.L1016: 7875 ldr r1, [sp, #36] 7876 mov r0, r4 7877 bl FtlReUsePrevPpa 7878 b .L1011 7879.L1013: 7880 ldr r0, [sp, #36] 7881 cmp r1, r0 7882 beq .L1011 7883 adds r0, r1, #1 7884 beq .L1014 7885 str r1, [r3, #4] 7886 movs r2, #0 7887 movs r1, #1 7888 mov r0, r3 7889 ldr r7, [r3, #12] 7890 bl FlashReadPages 7891.L1015: 7892 ldr r3, [r6] 7893 ldr r3, [r3, r5] 7894 adds r3, r3, #1 7895 beq .L1016 7896 ldr r3, [r7, #4] 7897 ldr r2, .L1102 7898 mov r1, r3 7899 ldr r0, [r2] 7900 bl ftl_cmp_data_ver 7901 cmp r0, #0 7902 beq .L1016 7903 mov r1, r3 7904 ldr r0, [sp, #28] 7905 bl ftl_cmp_data_ver 7906 cmp r0, #0 7907 beq .L1011 7908 b .L1016 7909.L1014: 7910 str r1, [r2, r5] 7911 b .L1015 7912.L1008: 7913 ldr r3, [sp, #44] 7914 ldr r2, [sp, #40] 7915 cmp r2, r3 7916 beq .L1018 7917 ldr r1, [sp, #36] 7918 adds r7, r1, #1 7919 beq .L1020 7920 ldr r3, .L1102+40 7921 ldr r3, [r3] 7922 cmp r3, r1, lsr #10 7923 bhi .L1020 7924 ldr r0, .L1102+44 7925.L1096: 7926 bl printf 7927 b .L1001 7928.L1103: 7929 .align 2 7930.L1102: 7931 .word .LANCHOR133 7932 .word .LANCHOR102 7933 .word .LANCHOR155 7934 .word .LANCHOR2 7935 .word .LANCHOR18 7936 .word .LANCHOR82 7937 .word .LANCHOR4 7938 .word .LANCHOR154 7939 .word .LC1 7940 .word .LANCHOR41 7941 .word .LANCHOR7 7942 .word .LC27 7943.L1020: 7944 movs r2, #1 7945 add r1, sp, #44 7946 mov r0, r4 7947 bl log2phys 7948 ldr r7, [sp, #40] 7949 adds r5, r7, #1 7950 beq .L1018 7951 ldr r3, [sp, #36] 7952 cmp r7, r3 7953 beq .L1032 7954 ubfx r0, r7, #10, #16 7955 bl P2V_block_in_plane 7956 ldr r3, .L1104 7957 ldrh r3, [r3] 7958 cmp r3, r0 7959 beq .L1023 7960 ldr r3, .L1104+4 7961 ldrh r3, [r3] 7962 cmp r3, r0 7963 beq .L1023 7964 ldr r3, .L1104+8 7965 ldrh r3, [r3] 7966 cmp r3, r0 7967 bne .L1018 7968.L1023: 7969 ldr r0, [r6] 7970 movs r2, #0 7971 movs r1, #1 7972 str r7, [r0, #4] 7973 ldr r5, [r0, #12] 7974 bl FlashReadPages 7975 ldr r3, [r6] 7976 ldr r3, [r3] 7977 adds r3, r3, #1 7978 beq .L1018 7979 ldr r1, [r5, #4] 7980 ldr r0, [sp] 7981 bl ftl_cmp_data_ver 7982 cmp r0, #0 7983 bne .L1018 7984 movs r2, #1 7985 add r1, sp, #40 7986 mov r0, r4 7987 bl log2phys 7988 b .L1018 7989.L1025: 7990 mov r1, r4 7991 ldr r0, .L1104+12 7992 b .L1096 7993.L1005: 7994 ldr r3, .L1104+16 7995 ldr r3, [r3] 7996 cmp r3, #31 7997 bhi .L1026 7998 ldr r2, .L1104+20 7999 str r4, [r2, r3, lsl #2] 8000 adds r3, r3, #1 8001 ldr r2, .L1104+16 8002 str r3, [r2] 8003.L1026: 8004 ldrh r0, [r8] 8005 bl decrement_vpc_count 8006 ldr r3, .L1104+24 8007 ldr r2, [r3] 8008 adds r1, r2, #1 8009 bne .L1027 8010 ldr r2, [sp] 8011.L1095: 8012 str r2, [r3] 8013 b .L1001 8014.L1027: 8015 ldr r1, [sp] 8016 cmp r1, r2 8017 bcs .L1001 8018 mov r2, r1 8019 b .L1095 8020.L1004: 8021 strb r10, [r8, #6] 8022 mov r2, r10 8023 strh fp, [r8, #2] @ movhi 8024 mov r1, fp 8025 b .L1099 8026.L1105: 8027 .align 2 8028.L1104: 8029 .word .LANCHOR50 8030 .word .LANCHOR51 8031 .word .LANCHOR52 8032 .word .LC28 8033 .word .LANCHOR156 8034 .word .LANCHOR157 8035 .word .LANCHOR133 8036 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 8037 .section .text.ftl_check_vpc,"ax",%progbits 8038 .align 1 8039 .global ftl_check_vpc 8040 .syntax unified 8041 .thumb 8042 .thumb_func 8043 .fpu softvfp 8044 .type ftl_check_vpc, %function 8045ftl_check_vpc: 8046 @ args = 0, pretend = 0, frame = 8 8047 @ frame_needed = 0, uses_anonymous_args = 0 8048 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 8049 movs r4, #0 8050 ldr r6, .L1130 8051 ldr r5, .L1130+4 8052 ldr r1, .L1130+8 8053 ldr r0, .L1130+12 8054 bl printf 8055 mov r2, #8192 8056 movs r1, #0 8057 ldr r0, .L1130+4 8058 bl ftl_memset 8059.L1107: 8060 ldr r3, [r6] 8061 cmp r4, r3 8062 bcc .L1109 8063 ldr r10, .L1130+48 8064 movs r4, #0 8065 ldr r7, .L1130+16 8066 mov r6, r4 8067.L1110: 8068 ldrh r2, [r10] 8069 uxth r3, r4 8070 cmp r2, r3 8071 bhi .L1112 8072 ldr r3, .L1130+20 8073 ldr r4, [r3] 8074 cbz r4, .L1113 8075 ldr r3, .L1130+24 8076 mov r8, #0 8077 ldr r5, .L1130+28 8078 ldr r10, .L1130+16 8079 ldrh r7, [r3] 8080 ldr r3, [r5] 8081 ldr fp, .L1130+4 8082 subs r4, r4, r3 8083 ldr r3, .L1130+32 8084 asrs r4, r4, #1 8085 muls r4, r3, r4 8086 uxth r4, r4 8087.L1114: 8088 uxth r3, r8 8089 cmp r7, r3 8090 bls .L1113 8091 ldr r3, [r10] 8092 ldrh r2, [r3, r4, lsl #1] 8093 cbz r2, .L1115 8094 movs r6, #1 8095 ldrh r3, [fp, r4, lsl #1] 8096 mov r1, r4 8097 ldr r0, .L1130+36 8098 bl printf 8099.L1115: 8100 movs r3, #6 8101 ldr r2, [r5] 8102 muls r4, r3, r4 8103 movw r3, #65535 8104 add r8, r8, #1 8105 ldrh r4, [r2, r4] 8106 cmp r4, r3 8107 bne .L1114 8108.L1113: 8109 cbz r6, .L1106 8110 movw r2, #2394 8111 ldr r1, .L1130+8 8112 ldr r0, .L1130+40 8113 bl printf 8114.L1106: 8115 add sp, sp, #8 8116 @ sp needed 8117 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8118.L1109: 8119 movs r2, #0 8120 add r1, sp, #4 8121 mov r0, r4 8122 bl log2phys 8123 ldr r0, [sp, #4] 8124 adds r3, r0, #1 8125 beq .L1108 8126 ubfx r0, r0, #10, #16 8127 bl P2V_block_in_plane 8128 ldrh r3, [r5, r0, lsl #1] 8129 adds r3, r3, #1 8130 strh r3, [r5, r0, lsl #1] @ movhi 8131.L1108: 8132 adds r4, r4, #1 8133 b .L1107 8134.L1112: 8135 ldr r3, [r7] 8136 uxth r5, r4 8137 ldr r8, .L1130+4 8138 ldrh r2, [r3, r5, lsl #1] 8139 ldrh r3, [r8, r5, lsl #1] 8140 cmp r2, r3 8141 beq .L1111 8142 mov r1, r5 8143 ldr r0, .L1130+44 8144 bl printf 8145 ldr r3, [r7] 8146 movw r2, #65535 8147 ldrh r3, [r3, r5, lsl #1] 8148 cmp r3, r2 8149 beq .L1111 8150 ldrh r2, [r8, r5, lsl #1] 8151 cmp r2, r3 8152 it hi 8153 movhi r6, #1 8154.L1111: 8155 adds r4, r4, #1 8156 b .L1110 8157.L1131: 8158 .align 2 8159.L1130: 8160 .word .LANCHOR151 8161 .word check_vpc_table 8162 .word .LANCHOR158 8163 .word .LC29 8164 .word .LANCHOR41 8165 .word .LANCHOR45 8166 .word .LANCHOR47 8167 .word .LANCHOR39 8168 .word -1431655765 8169 .word .LC31 8170 .word .LC1 8171 .word .LC30 8172 .word .LANCHOR4 8173 .size ftl_check_vpc, .-ftl_check_vpc 8174 .section .text.ftl_scan_all_data,"ax",%progbits 8175 .align 1 8176 .global ftl_scan_all_data 8177 .syntax unified 8178 .thumb 8179 .thumb_func 8180 .fpu softvfp 8181 .type ftl_scan_all_data, %function 8182ftl_scan_all_data: 8183 @ args = 0, pretend = 0, frame = 8 8184 @ frame_needed = 0, uses_anonymous_args = 0 8185 push {r4, r5, r6, r7, r8, lr} 8186 movs r5, #0 8187 ldr r7, .L1146 8188 sub sp, sp, #32 8189 movs r1, #0 8190 ldr r8, .L1146+24 8191 ldr r0, .L1146+4 8192 bl printf 8193.L1133: 8194 ldr r3, [r7] 8195 cmp r5, r3 8196 bcc .L1139 8197 add sp, sp, #32 8198 @ sp needed 8199 pop {r4, r5, r6, r7, r8, pc} 8200.L1139: 8201 movs r2, #0 8202 add r1, sp, #28 8203 mov r0, r5 8204 bl log2phys 8205 ubfx r3, r5, #0, #11 8206 cbnz r3, .L1134 8207 ldr r2, [sp, #28] 8208 mov r1, r5 8209 mov r0, r8 8210 bl printf 8211.L1134: 8212 ldr r3, [sp, #28] 8213 adds r2, r3, #1 8214 beq .L1136 8215 ldr r4, .L1146+8 8216 movs r2, #0 8217 movs r1, #1 8218 str r3, [r4, #4] 8219 mov r0, r4 8220 ldr r3, .L1146+12 8221 str r5, [r4, #16] 8222 str r2, [r4] 8223 ldr r3, [r3] 8224 str r3, [r4, #8] 8225 ldr r3, .L1146+16 8226 ldr r6, [r3] 8227 str r6, [r4, #12] 8228 bl FlashReadPages 8229 ldr r3, [r4] 8230 cmp r3, #256 8231 beq .L1137 8232 adds r3, r3, #1 8233 beq .L1137 8234 ldr r3, [r6, #8] 8235 cmp r5, r3 8236 beq .L1136 8237.L1137: 8238 ldr r2, [r4, #8] 8239 ldr r3, [r4, #12] 8240 ldr r0, .L1146+20 8241 ldr r1, [r2, #4] 8242 str r1, [sp, #16] 8243 mov r1, r5 8244 ldr r2, [r2] 8245 str r2, [sp, #12] 8246 ldr r2, [r3, #12] 8247 str r2, [sp, #8] 8248 ldr r2, [r3, #8] 8249 str r2, [sp, #4] 8250 ldr r2, [r3, #4] 8251 str r2, [sp] 8252 ldr r2, [r4, #4] 8253 ldr r3, [r3] 8254 bl printf 8255.L1136: 8256 adds r5, r5, #1 8257 b .L1133 8258.L1147: 8259 .align 2 8260.L1146: 8261 .word .LANCHOR151 8262 .word .LC32 8263 .word .LANCHOR137 8264 .word .LANCHOR105 8265 .word .LANCHOR113 8266 .word .LC34 8267 .word .LC33 8268 .size ftl_scan_all_data, .-ftl_scan_all_data 8269 .section .text.FtlGcScanTempBlk,"ax",%progbits 8270 .align 1 8271 .global FtlGcScanTempBlk 8272 .syntax unified 8273 .thumb 8274 .thumb_func 8275 .fpu softvfp 8276 .type FtlGcScanTempBlk, %function 8277FtlGcScanTempBlk: 8278 @ args = 0, pretend = 0, frame = 48 8279 @ frame_needed = 0, uses_anonymous_args = 0 8280 ldr r3, .L1180 8281 movw r2, #65535 8282 push {r4, r5, r6, r7, r8, r10, fp, lr} 8283 sub sp, sp, #48 8284 mov r4, r0 8285 ldrh r5, [r3] 8286 str r3, [sp, #20] 8287 cmp r5, r2 8288 beq .L1170 8289 cbnz r5, .L1149 8290.L1150: 8291 bl FtlGcPageVarInit 8292 b .L1151 8293.L1170: 8294 movs r5, #0 8295.L1149: 8296 ldr r3, .L1180+4 8297 ldrh r3, [r3] 8298 cmp r3, r1 8299 beq .L1150 8300.L1151: 8301 ldr fp, .L1180+56 8302.L1167: 8303 ldrh r2, [r4] 8304 movs r3, #0 8305 strb r3, [r4, #8] 8306 movw r3, #65535 8307 cmp r2, r3 8308 beq .L1152 8309.L1169: 8310 ldr r3, .L1180+8 8311 movs r2, #0 8312 ldr r0, [fp] 8313 mov r10, r2 8314 movw lr, #65535 8315 mov r8, #20 8316 ldrh r3, [r3] 8317 str r3, [sp, #8] 8318 ldr r3, .L1180+12 8319 ldr r3, [r3] 8320 str r3, [sp, #12] 8321 ldr r3, .L1180+16 8322 ldrh r3, [r3] 8323 str r3, [sp, #16] 8324 ldr r3, .L1180+20 8325 ldr r7, [r3] 8326 ldr r3, .L1180+24 8327 ldrh ip, [r3] 8328 add r3, r4, #16 8329 str r3, [sp, #4] 8330.L1153: 8331 ldr r1, [sp, #8] 8332 uxth r3, r2 8333 cmp r1, r3 8334 bhi .L1155 8335 mov r8, #0 8336 movs r2, #0 8337 mov r1, r10 8338 bl FlashReadPages 8339.L1156: 8340 uxth r3, r8 8341 cmp r10, r3 8342 bhi .L1168 8343 ldr r3, .L1180+4 8344 adds r5, r5, #1 8345 uxth r5, r5 8346 ldrh r3, [r3] 8347 cmp r3, r5 8348 bhi .L1169 8349.L1152: 8350 ldr r2, [sp, #20] 8351 movw r3, #65535 8352 mov r0, r4 8353 strh r5, [r4, #2] @ movhi 8354 mov r1, r5 8355 strh r3, [r2] @ movhi 8356 movs r2, #0 8357 strb r2, [r4, #6] 8358 bl ftl_sb_update_avl_pages 8359 mov r0, #-1 8360 add sp, sp, #48 8361 @ sp needed 8362 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8363.L1155: 8364 ldr r1, [sp, #4] 8365 ldrh r3, [r1], #2 8366 cmp r3, lr 8367 str r1, [sp, #4] 8368 beq .L1154 8369 mla r1, r8, r10, r0 8370 orr r3, r5, r3, lsl #10 8371 str r3, [r1, #4] 8372 ldr r3, [sp, #16] 8373 mul r3, r3, r10 8374 bic r3, r3, #3 8375 mov r6, r3 8376 ldr r3, [sp, #12] 8377 add r6, r6, r3 8378 mul r3, ip, r10 8379 str r6, [r1, #8] 8380 bic r3, r3, #3 8381 add r3, r3, r7 8382 str r3, [r1, #12] 8383 add r3, r10, #1 8384 uxth r10, r3 8385.L1154: 8386 adds r2, r2, #1 8387 b .L1153 8388.L1168: 8389 movs r3, #20 8390 ldr r2, [fp] 8391 mul r3, r3, r8 8392 adds r1, r2, r3 8393 ldr r6, [r2, r3] 8394 ldr r0, [r1, #4] 8395 ldr r7, [r1, #12] 8396 str r0, [sp, #4] 8397 cmp r6, #0 8398 bne .L1157 8399 ldrh r1, [r7] 8400 movw r2, #65535 8401 cmp r1, r2 8402 beq .L1178 8403 ldr r2, .L1180+28 8404 ldr r0, [r7, #8] 8405 ldr r2, [r2] 8406 cmp r0, r2 8407 bls .L1159 8408.L1178: 8409 ldr r3, .L1180+32 8410 movs r1, #0 8411 ldrh r2, [r4] 8412 movs r5, #0 8413 ldr r3, [r3] 8414 strh r1, [r3, r2, lsl #1] @ movhi 8415 ldrh r0, [r4] 8416 bl INSERT_FREE_LIST 8417 ldr r2, .L1180+36 8418 movw r3, #65535 8419 strh r3, [r4] @ movhi 8420 strh r3, [r2] @ movhi 8421 bl FtlGcPageVarInit 8422 b .L1167 8423.L1159: 8424 mov r2, r6 8425 add r1, sp, #24 8426 str r3, [sp, #8] 8427 bl log2phys 8428 ldr r2, [r7, #12] 8429 ldr r1, [sp, #24] 8430 ldr r3, [sp, #8] 8431 cmp r2, r1 8432 beq .L1161 8433.L1163: 8434 ldr r2, [r7, #8] 8435.L1179: 8436 ldr r1, [sp, #4] 8437 add r8, r8, #1 8438 ldr r0, [r7, #12] 8439 bl FtlGcUpdatePage 8440 b .L1156 8441.L1161: 8442 str r3, [sp, #8] 8443 adds r3, r2, #1 8444 beq .L1163 8445 str r2, [sp, #32] 8446 movs r1, #1 8447 ldr r2, .L1180+40 8448 add r0, sp, #28 8449 ldr r2, [r2] 8450 str r2, [sp, #36] 8451 ldr r2, .L1180+44 8452 ldr r2, [r2] 8453 str r2, [sp, #40] 8454 mov r2, r6 8455 bl FlashReadPages 8456 ldr r2, .L1180+48 8457 ldr r1, [fp] 8458 ldr r3, [sp, #8] 8459 ldrh r2, [r2] 8460 ldr r0, [sp, #36] 8461 add ip, r3, r1 8462 lsls r2, r2, #7 8463.L1164: 8464 cmp r6, r2 8465 beq .L1163 8466 ldr r1, [ip, #8] 8467 ldr r3, [r0, r6, lsl #2] 8468 ldr r1, [r1, r6, lsl #2] 8469 cmp r1, r3 8470 beq .L1165 8471 ldr r2, [sp, #32] 8472 ldrh r1, [r4] 8473 ldr r0, .L1180+52 8474 bl printf 8475 b .L1178 8476.L1165: 8477 adds r6, r6, #1 8478 b .L1164 8479.L1157: 8480 mov r2, #-1 8481 b .L1179 8482.L1181: 8483 .align 2 8484.L1180: 8485 .word .LANCHOR159 8486 .word .LANCHOR18 8487 .word .LANCHOR2 8488 .word .LANCHOR63 8489 .word .LANCHOR22 8490 .word .LANCHOR64 8491 .word .LANCHOR23 8492 .word .LANCHOR151 8493 .word .LANCHOR41 8494 .word .LANCHOR144 8495 .word .LANCHOR109 8496 .word .LANCHOR114 8497 .word .LANCHOR11 8498 .word .LC35 8499 .word .LANCHOR102 8500 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 8501 .section .text.FtlVendorPartWrite,"ax",%progbits 8502 .align 1 8503 .global FtlVendorPartWrite 8504 .syntax unified 8505 .thumb 8506 .thumb_func 8507 .fpu softvfp 8508 .type FtlVendorPartWrite, %function 8509FtlVendorPartWrite: 8510 @ args = 0, pretend = 0, frame = 104 8511 @ frame_needed = 0, uses_anonymous_args = 0 8512 ldr r3, .L1194 8513 push {r4, r5, r6, r7, r8, r10, fp, lr} 8514 sub sp, sp, #104 8515 str r2, [sp] 8516 adds r2, r0, r1 8517 mov r7, r0 8518 mov r5, r1 8519 ldrh r3, [r3] 8520 cmp r2, r3 8521 bhi .L1190 8522 ldr r3, .L1194+4 8523 mov r8, #0 8524 ldrh r6, [r3] 8525 lsr r6, r0, r6 8526 lsl fp, r6, #2 8527.L1184: 8528 cbnz r5, .L1189 8529.L1182: 8530 mov r0, r8 8531 add sp, sp, #104 8532 @ sp needed 8533 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8534.L1189: 8535 ldr r3, .L1194+8 8536 mov r0, r7 8537 ldr r10, .L1194+24 8538 ldr r3, [r3] 8539 ldr r2, [r3, fp] 8540 ldr r3, .L1194+12 8541 str r2, [sp, #12] 8542 ldrh r3, [r3] 8543 mov r1, r3 8544 str r3, [sp, #8] 8545 bl __aeabi_uidivmod 8546 ldr r3, [sp, #8] 8547 ldr r2, [sp, #12] 8548 str r1, [sp, #4] 8549 subs r4, r3, r1 8550 uxth r4, r4 8551 cmp r5, r4 8552 it cc 8553 uxthcc r4, r5 8554 cbz r2, .L1186 8555 cmp r4, r3 8556 beq .L1186 8557 ldr r3, [r10] 8558 add r0, sp, #20 8559 str r2, [sp, #24] 8560 movs r2, #1 8561 mov r1, r2 8562 str r3, [sp, #28] 8563 add r3, sp, #40 8564 str r3, [sp, #32] 8565 bl FlashReadPages 8566.L1187: 8567 lsls r3, r4, #9 8568 ldr r0, [r10] 8569 subs r5, r5, r4 8570 mov r2, r3 8571 str r3, [sp, #8] 8572 ldm sp, {r1, r3} 8573 add r7, r7, r4 8574 add fp, fp, #4 8575 add r0, r0, r3, lsl #9 8576 bl ftl_memcpy 8577 ldr r2, [r10] 8578 mov r1, r6 8579 ldr r0, .L1194+16 8580 adds r6, r6, #1 8581 bl FtlMapWritePage 8582 ldr r3, [sp] 8583 adds r0, r0, #1 8584 it eq 8585 moveq r8, #-1 8586 mov r2, r3 8587 ldr r3, [sp, #8] 8588 add r2, r2, r3 8589 str r2, [sp] 8590 b .L1184 8591.L1186: 8592 ldr r3, .L1194+20 8593 movs r1, #0 8594 ldr r0, [r10] 8595 ldrh r2, [r3] 8596 bl ftl_memset 8597 b .L1187 8598.L1190: 8599 mov r8, #-1 8600 b .L1182 8601.L1195: 8602 .align 2 8603.L1194: 8604 .word .LANCHOR15 8605 .word .LANCHOR21 8606 .word .LANCHOR122 8607 .word .LANCHOR11 8608 .word .LANCHOR160 8609 .word .LANCHOR22 8610 .word .LANCHOR107 8611 .size FtlVendorPartWrite, .-FtlVendorPartWrite 8612 .section .text.Ftl_save_ext_data,"ax",%progbits 8613 .align 1 8614 .global Ftl_save_ext_data 8615 .syntax unified 8616 .thumb 8617 .thumb_func 8618 .fpu softvfp 8619 .type Ftl_save_ext_data, %function 8620Ftl_save_ext_data: 8621 @ args = 0, pretend = 0, frame = 0 8622 @ frame_needed = 0, uses_anonymous_args = 0 8623 @ link register save eliminated. 8624 ldr r2, .L1198 8625 ldr r3, .L1198+4 8626 ldr r1, [r2] 8627 cmp r1, r3 8628 bne .L1196 8629 ldr r3, .L1198+8 8630 movs r1, #1 8631 movs r0, #0 8632 str r3, [r2, #4] 8633 ldr r3, .L1198+12 8634 ldr r3, [r3] 8635 str r3, [r2, #88] 8636 ldr r3, .L1198+16 8637 ldr r3, [r3] 8638 str r3, [r2, #92] 8639 ldr r3, .L1198+20 8640 ldr r3, [r3] 8641 str r3, [r2, #8] 8642 ldr r3, .L1198+24 8643 ldr r3, [r3] 8644 str r3, [r2, #12] 8645 ldr r3, .L1198+28 8646 ldr r3, [r3] 8647 str r3, [r2, #16] 8648 ldr r3, .L1198+32 8649 ldr r3, [r3] 8650 str r3, [r2, #20] 8651 ldr r3, .L1198+36 8652 ldr r3, [r3] 8653 str r3, [r2, #28] 8654 ldr r3, .L1198+40 8655 ldr r3, [r3] 8656 str r3, [r2, #32] 8657 ldr r3, .L1198+44 8658 ldr r3, [r3] 8659 str r3, [r2, #36] 8660 ldr r3, .L1198+48 8661 ldr r3, [r3] 8662 str r3, [r2, #40] 8663 ldr r3, .L1198+52 8664 ldr r3, [r3] 8665 str r3, [r2, #44] 8666 ldr r3, .L1198+56 8667 ldr r3, [r3] 8668 str r3, [r2, #48] 8669 b FtlVendorPartWrite 8670.L1196: 8671 bx lr 8672.L1199: 8673 .align 2 8674.L1198: 8675 .word .LANCHOR134 8676 .word 1179929683 8677 .word 1342177366 8678 .word .LANCHOR161 8679 .word .LANCHOR162 8680 .word .LANCHOR83 8681 .word .LANCHOR84 8682 .word .LANCHOR88 8683 .word .LANCHOR87 8684 .word .LANCHOR90 8685 .word .LANCHOR79 8686 .word .LANCHOR85 8687 .word .LANCHOR86 8688 .word .LANCHOR91 8689 .word .LANCHOR92 8690 .size Ftl_save_ext_data, .-Ftl_save_ext_data 8691 .section .text.FtlEctTblFlush,"ax",%progbits 8692 .align 1 8693 .global FtlEctTblFlush 8694 .syntax unified 8695 .thumb 8696 .thumb_func 8697 .fpu softvfp 8698 .type FtlEctTblFlush, %function 8699FtlEctTblFlush: 8700 @ args = 0, pretend = 0, frame = 0 8701 @ frame_needed = 0, uses_anonymous_args = 0 8702 ldr r2, .L1205 8703 push {r3, lr} 8704 ldrh r3, [r2] 8705 cmp r3, #31 8706 itett ls 8707 addls r3, r3, #1 8708 movhi r3, #32 8709 strhls r3, [r2] @ movhi 8710 movls r3, #1 8711 ldr r2, .L1205+4 8712 cbnz r0, .L1202 8713 ldr r1, [r2] 8714 ldr r0, [r1, #20] 8715 ldr r1, [r1, #16] 8716 add r3, r3, r0 8717 cmp r1, r3 8718 bcc .L1203 8719.L1202: 8720 ldr r2, [r2] 8721 movs r0, #64 8722 ldr r3, [r2, #16] 8723 str r3, [r2, #20] 8724 ldr r3, .L1205+8 8725 str r3, [r2] 8726 ldr r3, .L1205+12 8727 ldrh r1, [r3] 8728 lsls r3, r1, #9 8729 str r3, [r2, #12] 8730 ldr r3, [r2, #8] 8731 adds r3, r3, #1 8732 str r3, [r2, #8] 8733 movs r3, #0 8734 str r3, [r2, #4] 8735 bl FtlVendorPartWrite 8736 bl Ftl_save_ext_data 8737.L1203: 8738 movs r0, #0 8739 pop {r3, pc} 8740.L1206: 8741 .align 2 8742.L1205: 8743 .word .LANCHOR163 8744 .word .LANCHOR117 8745 .word 1112818501 8746 .word .LANCHOR115 8747 .size FtlEctTblFlush, .-FtlEctTblFlush 8748 .section .text.sftl_vendor_write,"ax",%progbits 8749 .align 1 8750 .global sftl_vendor_write 8751 .syntax unified 8752 .thumb 8753 .thumb_func 8754 .fpu softvfp 8755 .type sftl_vendor_write, %function 8756sftl_vendor_write: 8757 @ args = 0, pretend = 0, frame = 0 8758 @ frame_needed = 0, uses_anonymous_args = 0 8759 @ link register save eliminated. 8760 add r0, r0, #256 8761 b FtlVendorPartWrite 8762 .size sftl_vendor_write, .-sftl_vendor_write 8763 .section .text.FtlVendorPartRead,"ax",%progbits 8764 .align 1 8765 .global FtlVendorPartRead 8766 .syntax unified 8767 .thumb 8768 .thumb_func 8769 .fpu softvfp 8770 .type FtlVendorPartRead, %function 8771FtlVendorPartRead: 8772 @ args = 0, pretend = 0, frame = 104 8773 @ frame_needed = 0, uses_anonymous_args = 0 8774 ldr r3, .L1218 8775 push {r4, r5, r6, r7, r8, r10, fp, lr} 8776 mov r10, r2 8777 adds r2, r0, r1 8778 sub sp, sp, #104 8779 mov r7, r0 8780 mov r6, r1 8781 ldrh r3, [r3] 8782 cmp r2, r3 8783 bhi .L1217 8784 ldr r3, .L1218+4 8785 mov r8, #0 8786 ldr fp, .L1218+28 8787 ldrh r5, [r3] 8788 lsr r5, r0, r5 8789 lsls r3, r5, #2 8790 str r3, [sp] 8791.L1210: 8792 cbnz r6, .L1216 8793.L1208: 8794 mov r0, r8 8795 add sp, sp, #104 8796 @ sp needed 8797 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8798.L1216: 8799 ldr r3, .L1218+8 8800 mov r0, r7 8801 ldr r2, [sp] 8802 ldr r3, [r3] 8803 ldr r3, [r3, r2] 8804 ldr r2, .L1218+12 8805 str r3, [sp, #8] 8806 ldrh r4, [r2] 8807 mov r1, r4 8808 bl __aeabi_uidivmod 8809 subs r4, r4, r1 8810 ldr r3, [sp, #8] 8811 uxth r4, r4 8812 str r1, [sp, #4] 8813 cmp r6, r4 8814 it cc 8815 uxthcc r4, r6 8816 lsls r2, r4, #9 8817 str r2, [sp, #8] 8818 cmp r3, #0 8819 beq .L1212 8820 ldr r2, [fp] 8821 add r0, sp, #20 8822 str r3, [sp, #24] 8823 str r3, [sp, #12] 8824 str r2, [sp, #28] 8825 add r2, sp, #40 8826 str r2, [sp, #32] 8827 movs r2, #1 8828 mov r1, r2 8829 bl FlashReadPages 8830 ldr r2, [sp, #20] 8831 ldr r3, [sp, #12] 8832 adds r2, r2, #1 8833 ldr r2, .L1218+16 8834 it eq 8835 moveq r8, #-1 8836 ldr r2, [r2] 8837 cmp r2, #256 8838 bne .L1214 8839 mov r2, r3 8840 mov r1, r5 8841 ldr r0, .L1218+20 8842 bl printf 8843 ldr r2, [fp] 8844 mov r1, r5 8845 ldr r0, .L1218+24 8846 bl FtlMapWritePage 8847.L1214: 8848 ldr r1, [fp] 8849 lsls r2, r4, #9 8850 ldr r3, [sp, #4] 8851 mov r0, r10 8852 add r1, r1, r3, lsl #9 8853 bl ftl_memcpy 8854.L1215: 8855 ldr r3, [sp, #8] 8856 adds r5, r5, #1 8857 subs r6, r6, r4 8858 add r7, r7, r4 8859 add r10, r10, r3 8860 ldr r3, [sp] 8861 adds r3, r3, #4 8862 str r3, [sp] 8863 b .L1210 8864.L1212: 8865 lsls r2, r4, #9 8866 mov r1, r3 8867 mov r0, r10 8868 bl ftl_memset 8869 b .L1215 8870.L1217: 8871 mov r8, #-1 8872 b .L1208 8873.L1219: 8874 .align 2 8875.L1218: 8876 .word .LANCHOR15 8877 .word .LANCHOR21 8878 .word .LANCHOR122 8879 .word .LANCHOR11 8880 .word .LANCHOR137 8881 .word .LC36 8882 .word .LANCHOR160 8883 .word .LANCHOR107 8884 .size FtlVendorPartRead, .-FtlVendorPartRead 8885 .section .text.FtlLoadEctTbl,"ax",%progbits 8886 .align 1 8887 .global FtlLoadEctTbl 8888 .syntax unified 8889 .thumb 8890 .thumb_func 8891 .fpu softvfp 8892 .type FtlLoadEctTbl, %function 8893FtlLoadEctTbl: 8894 @ args = 0, pretend = 0, frame = 0 8895 @ frame_needed = 0, uses_anonymous_args = 0 8896 push {r3, r4, r5, lr} 8897 movs r0, #64 8898 ldr r4, .L1222 8899 ldr r5, .L1222+4 8900 ldr r2, [r4] 8901 ldrh r1, [r5] 8902 bl FtlVendorPartRead 8903 ldr r3, [r4] 8904 ldr r2, [r3] 8905 ldr r3, .L1222+8 8906 cmp r2, r3 8907 beq .L1221 8908 ldr r1, .L1222+12 8909 ldr r0, .L1222+16 8910 bl printf 8911 ldrh r2, [r5] 8912 movs r1, #0 8913 ldr r0, [r4] 8914 lsls r2, r2, #9 8915 bl ftl_memset 8916.L1221: 8917 movs r0, #0 8918 pop {r3, r4, r5, pc} 8919.L1223: 8920 .align 2 8921.L1222: 8922 .word .LANCHOR117 8923 .word .LANCHOR115 8924 .word 1112818501 8925 .word .LC37 8926 .word .LC38 8927 .size FtlLoadEctTbl, .-FtlLoadEctTbl 8928 .section .text.Ftl_load_ext_data,"ax",%progbits 8929 .align 1 8930 .global Ftl_load_ext_data 8931 .syntax unified 8932 .thumb 8933 .thumb_func 8934 .fpu softvfp 8935 .type Ftl_load_ext_data, %function 8936Ftl_load_ext_data: 8937 @ args = 0, pretend = 0, frame = 0 8938 @ frame_needed = 0, uses_anonymous_args = 0 8939 push {r3, r4, r5, lr} 8940 movs r1, #1 8941 ldr r4, .L1227 8942 movs r0, #0 8943 ldr r5, .L1227+4 8944 mov r2, r4 8945 bl FtlVendorPartRead 8946 ldr r3, [r4] 8947 cmp r3, r5 8948 beq .L1225 8949 mov r2, #512 8950 movs r1, #0 8951 mov r0, r4 8952 bl ftl_memset 8953 str r5, [r4] 8954.L1225: 8955 ldr r3, [r4] 8956 cmp r3, r5 8957 ldr r3, .L1227+8 8958 bne .L1226 8959 ldr r1, [r4, #88] 8960 ldr r2, .L1227+12 8961 str r1, [r2] 8962 ldr r1, [r4, #92] 8963 ldr r2, .L1227+16 8964 str r1, [r2] 8965 ldr r1, [r4, #8] 8966 ldr r2, .L1227+20 8967 str r1, [r2] 8968 ldr r1, [r4, #12] 8969 ldr r2, .L1227+24 8970 str r1, [r2] 8971 ldr r1, [r4, #16] 8972 ldr r2, .L1227+28 8973 str r1, [r2] 8974 ldr r1, [r4, #20] 8975 ldr r2, .L1227+32 8976 str r1, [r2] 8977 ldr r2, [r4, #28] 8978 ldr r1, [r4, #32] 8979 str r2, [r3] 8980 ldr r2, .L1227+36 8981 str r1, [r2] 8982 ldr r1, [r4, #36] 8983 ldr r2, .L1227+40 8984 str r1, [r2] 8985 ldr r1, [r4, #40] 8986 ldr r2, .L1227+44 8987 str r1, [r2] 8988 ldr r1, [r4, #44] 8989 ldr r2, .L1227+48 8990 str r1, [r2] 8991 ldr r1, [r4, #48] 8992 ldr r2, .L1227+52 8993 str r1, [r2] 8994.L1226: 8995 ldr r1, .L1227+56 8996 ldr r2, .L1227+60 8997 ldr r3, [r3] 8998 ldr r0, [r1] 8999 ldrh r2, [r2] 9000 ldr r1, .L1227+64 9001 mla r0, r0, r2, r3 9002 ldrh r1, [r1] 9003 bl __aeabi_uidiv 9004 ldr r3, .L1227+68 9005 str r0, [r3] 9006 pop {r3, r4, r5, pc} 9007.L1228: 9008 .align 2 9009.L1227: 9010 .word .LANCHOR134 9011 .word 1179929683 9012 .word .LANCHOR90 9013 .word .LANCHOR161 9014 .word .LANCHOR162 9015 .word .LANCHOR83 9016 .word .LANCHOR84 9017 .word .LANCHOR88 9018 .word .LANCHOR87 9019 .word .LANCHOR79 9020 .word .LANCHOR85 9021 .word .LANCHOR86 9022 .word .LANCHOR91 9023 .word .LANCHOR92 9024 .word .LANCHOR89 9025 .word .LANCHOR13 9026 .word .LANCHOR4 9027 .word .LANCHOR142 9028 .size Ftl_load_ext_data, .-Ftl_load_ext_data 9029 .section .text.sftl_vendor_read,"ax",%progbits 9030 .align 1 9031 .global sftl_vendor_read 9032 .syntax unified 9033 .thumb 9034 .thumb_func 9035 .fpu softvfp 9036 .type sftl_vendor_read, %function 9037sftl_vendor_read: 9038 @ args = 0, pretend = 0, frame = 0 9039 @ frame_needed = 0, uses_anonymous_args = 0 9040 @ link register save eliminated. 9041 add r0, r0, #256 9042 b FtlVendorPartRead 9043 .size sftl_vendor_read, .-sftl_vendor_read 9044 .section .text.FtlMapBlkWriteDump_data,"ax",%progbits 9045 .align 1 9046 .global FtlMapBlkWriteDump_data 9047 .syntax unified 9048 .thumb 9049 .thumb_func 9050 .fpu softvfp 9051 .type FtlMapBlkWriteDump_data, %function 9052FtlMapBlkWriteDump_data: 9053 @ args = 0, pretend = 0, frame = 0 9054 @ frame_needed = 0, uses_anonymous_args = 0 9055 push {r3, r4, r5, r6, r7, r8, r10, lr} 9056 mov r4, r0 9057 ldr r3, [r0, #36] 9058 cmp r3, #0 9059 beq .L1230 9060 movs r3, #0 9061 ldr r5, .L1242 9062 str r3, [r0, #36] 9063 ldr r3, .L1242+4 9064 ldrh r6, [r0, #6] 9065 mov r7, r5 9066 ldr r10, [r0, #24] 9067 ldr r3, [r3] 9068 str r3, [r5, #8] 9069 ldr r3, .L1242+8 9070 ldr r8, [r3] 9071 ldrh r3, [r0, #2] 9072 str r8, [r5, #12] 9073 cbz r3, .L1232 9074 ldr r2, .L1242+12 9075 ldrh r2, [r2] 9076 subs r2, r2, #1 9077 cmp r3, r2 9078 bge .L1232 9079 ldrh r2, [r0] 9080 movw r1, #65535 9081 cmp r2, r1 9082 beq .L1232 9083 ldr r1, [r0, #12] 9084 subs r3, r3, #1 9085 mov r0, r5 9086 ldrh r2, [r1, r2, lsl #1] 9087 orr r3, r3, r2, lsl #10 9088 movs r2, #1 9089 mov r1, r2 9090 str r3, [r5, #4] 9091 bl FlashReadPages 9092 ldr r3, [r5] 9093 adds r3, r3, #1 9094 beq .L1232 9095 ldr r3, [r4, #24] 9096 ldrh r1, [r8, #8] 9097 ldr r2, [r3, r1, lsl #2] 9098 ldr r3, [r5, #4] 9099 cmp r2, r3 9100 bne .L1232 9101 ldr r2, [r5, #8] 9102.L1241: 9103 mov r0, r4 9104 pop {r3, r4, r5, r6, r7, r8, r10, lr} 9105 b FtlMapWritePage 9106.L1232: 9107 subs r6, r6, #1 9108 uxth r6, r6 9109 ldr r3, [r10, r6, lsl #2] 9110 str r3, [r7, #4] 9111 cbz r3, .L1233 9112 movs r2, #1 9113 ldr r0, .L1242 9114 mov r1, r2 9115 bl FlashReadPages 9116.L1234: 9117 ldr r2, [r7, #8] 9118 mov r1, r6 9119 b .L1241 9120.L1233: 9121 ldr r3, .L1242+16 9122 movs r1, #255 9123 ldr r0, [r7, #8] 9124 ldrh r2, [r3] 9125 bl ftl_memset 9126 b .L1234 9127.L1230: 9128 pop {r3, r4, r5, r6, r7, r8, r10, pc} 9129.L1243: 9130 .align 2 9131.L1242: 9132 .word .LANCHOR137 9133 .word .LANCHOR106 9134 .word .LANCHOR113 9135 .word .LANCHOR19 9136 .word .LANCHOR22 9137 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 9138 .section .text.FtlVpcTblFlush,"ax",%progbits 9139 .align 1 9140 .global FtlVpcTblFlush 9141 .syntax unified 9142 .thumb 9143 .thumb_func 9144 .fpu softvfp 9145 .type FtlVpcTblFlush, %function 9146FtlVpcTblFlush: 9147 @ args = 0, pretend = 0, frame = 8 9148 @ frame_needed = 0, uses_anonymous_args = 0 9149 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 9150 mov r8, #0 9151 ldr r3, .L1259 9152 ldr r5, .L1259+4 9153 ldr fp, .L1259+72 9154 ldr r0, [r3] 9155 ldr r6, .L1259+8 9156 ldr r7, [fp] 9157 ldrh r2, [r5] 9158 str r0, [r6, #8] 9159 str r7, [r6, #12] 9160 strh r2, [r7, #2] @ movhi 9161 movw r2, #61604 9162 strh r2, [r7] @ movhi 9163 ldr r2, [r5, #8] 9164 ldr r4, .L1259+12 9165 ldr ip, .L1259+76 9166 str r2, [r7, #4] 9167 ldr r2, .L1259+16 9168 str r8, [r7, #8] 9169 str r8, [r7, #12] 9170 stm r4, {r2, ip} 9171 ldrh r2, [r5, #6] 9172 str r3, [sp] 9173 ldr r10, .L1259+80 9174 strh r2, [r4, #8] @ movhi 9175 ldr r2, .L1259+20 9176 ldr r3, .L1259+24 9177 ldrh r2, [r2] 9178 strb r2, [r4, #10] 9179 ldr r2, .L1259+28 9180 ldrh r1, [r2] 9181 ldrh ip, [r2, #2] 9182 strh r1, [r4, #14] @ movhi 9183 ldrb r1, [r2, #6] @ zero_extendqisi2 9184 ldrb r2, [r2, #8] @ zero_extendqisi2 9185 strb r2, [r4, #11] 9186 orr r1, r1, ip, lsl #6 9187 ldr r2, .L1259+32 9188 strh r1, [r4, #16] @ movhi 9189 ldrh r1, [r2] 9190 ldrh ip, [r2, #2] 9191 strh r1, [r4, #18] @ movhi 9192 ldrb r1, [r2, #6] @ zero_extendqisi2 9193 ldrb r2, [r2, #8] @ zero_extendqisi2 9194 orr r1, r1, ip, lsl #6 9195 strh r1, [r4, #20] @ movhi 9196 strb r2, [r4, #12] 9197 ldr r2, .L1259+36 9198 ldrh r1, [r2] 9199 ldrh ip, [r2, #2] 9200 strh r1, [r4, #22] @ movhi 9201 ldrb r1, [r2, #6] @ zero_extendqisi2 9202 ldrb r2, [r2, #8] @ zero_extendqisi2 9203 strb r2, [r4, #13] 9204 orr r1, r1, ip, lsl #6 9205 ldr r2, .L1259+40 9206 strh r1, [r4, #24] @ movhi 9207 movs r1, #255 9208 ldr r2, [r2] 9209 str r2, [r4, #32] 9210 ldr r2, [r10] 9211 str r2, [r4, #40] 9212 ldr r2, .L1259+44 9213 ldr r2, [r2] 9214 str r2, [r4, #36] 9215 ldrh r2, [r3] 9216 bl ftl_memset 9217 mov r1, r4 9218 movs r2, #48 9219 ldr r0, [r6, #8] 9220 movw r4, #65535 9221 bl ftl_memcpy 9222 ldr r2, .L1259+48 9223 ldr r0, [r6, #8] 9224 ldr r1, .L1259+52 9225 ldrh r2, [r2] 9226 adds r0, r0, #48 9227 ldr r1, [r1] 9228 lsls r2, r2, #1 9229 bl ftl_memcpy 9230 mov r0, r8 9231 bl FtlUpdateVaildLpn 9232 ldr r3, .L1259+24 9233 str r3, [sp, #4] 9234.L1245: 9235 ldr r3, [sp] 9236 ldrh r1, [r5, #2] 9237 ldrh r2, [r5] 9238 ldr r3, [r3] 9239 str r3, [r6, #8] 9240 ldr r3, [fp] 9241 str r3, [r6, #12] 9242 orr r3, r1, r2, lsl #10 9243 str r3, [r6, #4] 9244 ldr r3, .L1259+56 9245 ldrh r3, [r3] 9246 subs r3, r3, #1 9247 cmp r1, r3 9248 blt .L1246 9249 movs r3, #0 9250 ldrh r4, [r5, #4] 9251 strh r3, [r5, #2] @ movhi 9252 strh r2, [r5, #4] @ movhi 9253 bl FtlFreeSysBlkQueueOut 9254 ldr r3, [r10] 9255 strh r0, [r5] @ movhi 9256 adds r2, r3, #1 9257 str r3, [r5, #8] 9258 str r2, [r10] 9259 lsls r2, r0, #10 9260 str r2, [r6, #4] 9261 str r3, [r7, #4] 9262 strh r0, [r7, #2] @ movhi 9263.L1246: 9264 ldr r3, [sp, #4] 9265 ldrh r1, [r3] 9266 ldr r3, [sp] 9267 ldr r0, [r3] 9268 bl js_hash 9269 movs r3, #1 9270 str r0, [r7, #12] 9271 mov r2, r3 9272 mov r1, r3 9273 ldr r0, .L1259+8 9274 bl FlashProgPages 9275 ldrh r3, [r5, #2] 9276 ldr r2, [r6] 9277 adds r3, r3, #1 9278 uxth r3, r3 9279 adds r1, r2, #1 9280 strh r3, [r5, #2] @ movhi 9281 bne .L1247 9282 cmp r3, #1 9283 bne .L1248 9284 movw r2, #1145 9285 ldr r1, .L1259+60 9286 ldr r0, .L1259+64 9287 bl printf 9288.L1248: 9289 ldrh r3, [r5, #2] 9290 add r8, r8, #1 9291 uxth r8, r8 9292 cmp r3, #1 9293 itttt eq 9294 ldreq r3, .L1259+56 9295 ldrheq r3, [r3] 9296 addeq r3, r3, #-1 9297 strheq r3, [r5, #2] @ movhi 9298 cmp r8, #3 9299 bls .L1245 9300 mov r2, r8 9301 ldr r1, [r6, #4] 9302 ldr r0, .L1259+68 9303 bl printf 9304.L1251: 9305 b .L1251 9306.L1247: 9307 cmp r3, #1 9308 beq .L1245 9309 cmp r2, #256 9310 beq .L1245 9311 movw r3, #65535 9312 cmp r4, r3 9313 beq .L1252 9314 movs r1, #1 9315 mov r0, r4 9316 bl FtlFreeSysBlkQueueIn 9317.L1252: 9318 movs r0, #0 9319 add sp, sp, #8 9320 @ sp needed 9321 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9322.L1260: 9323 .align 2 9324.L1259: 9325 .word .LANCHOR105 9326 .word .LANCHOR138 9327 .word .LANCHOR137 9328 .word .LANCHOR38 9329 .word 1179929683 9330 .word .LANCHOR9 9331 .word .LANCHOR22 9332 .word .LANCHOR50 9333 .word .LANCHOR51 9334 .word .LANCHOR52 9335 .word .LANCHOR89 9336 .word .LANCHOR82 9337 .word .LANCHOR4 9338 .word .LANCHOR41 9339 .word .LANCHOR19 9340 .word .LANCHOR164 9341 .word .LC1 9342 .word .LC39 9343 .word .LANCHOR113 9344 .word 1342177366 9345 .word .LANCHOR81 9346 .size FtlVpcTblFlush, .-FtlVpcTblFlush 9347 .section .text.FtlSysFlush,"ax",%progbits 9348 .align 1 9349 .global FtlSysFlush 9350 .syntax unified 9351 .thumb 9352 .thumb_func 9353 .fpu softvfp 9354 .type FtlSysFlush, %function 9355FtlSysFlush: 9356 @ args = 0, pretend = 0, frame = 0 9357 @ frame_needed = 0, uses_anonymous_args = 0 9358 push {r3, lr} 9359 bl l2p_flush 9360 movs r0, #1 9361 bl FtlEctTblFlush 9362 bl FtlVpcTblFlush 9363 movs r0, #0 9364 pop {r3, pc} 9365 .size FtlSysFlush, .-FtlSysFlush 9366 .section .text.sftl_deinit,"ax",%progbits 9367 .align 1 9368 .global sftl_deinit 9369 .syntax unified 9370 .thumb 9371 .thumb_func 9372 .fpu softvfp 9373 .type sftl_deinit, %function 9374sftl_deinit: 9375 @ args = 0, pretend = 0, frame = 0 9376 @ frame_needed = 0, uses_anonymous_args = 0 9377 push {r3, lr} 9378 ldr r3, .L1264 9379 ldr r3, [r3] 9380 cmp r3, #1 9381 bne .L1263 9382 bl FtlSysFlush 9383.L1263: 9384 movs r0, #0 9385 pop {r3, pc} 9386.L1265: 9387 .align 2 9388.L1264: 9389 .word .LANCHOR165 9390 .size sftl_deinit, .-sftl_deinit 9391 .section .text.FtlDiscard,"ax",%progbits 9392 .align 1 9393 .global FtlDiscard 9394 .syntax unified 9395 .thumb 9396 .thumb_func 9397 .fpu softvfp 9398 .type FtlDiscard, %function 9399FtlDiscard: 9400 @ args = 0, pretend = 0, frame = 8 9401 @ frame_needed = 0, uses_anonymous_args = 0 9402 ldr r3, .L1283 9403 push {r0, r1, r4, r5, r6, r7, r8, lr} 9404 mov r6, r0 9405 mov r4, r1 9406 ldr r3, [r3] 9407 cmp r3, r0 9408 bls .L1276 9409 cmp r3, r1 9410 bcc .L1276 9411 adds r2, r0, r1 9412 cmp r3, r2 9413 bcc .L1276 9414 cmp r1, #31 9415 bhi .L1268 9416.L1273: 9417 movs r0, #0 9418.L1266: 9419 add sp, sp, #8 9420 @ sp needed 9421 pop {r4, r5, r6, r7, r8, pc} 9422.L1268: 9423 ldr r8, .L1283+12 9424 ldrh r5, [r8] 9425 mov r1, r5 9426 bl __aeabi_uidiv 9427 smulbb r3, r0, r5 9428 mov r7, r0 9429 subs r6, r6, r3 9430 uxth r6, r6 9431 cbz r6, .L1269 9432 subs r5, r5, r6 9433 adds r7, r7, #1 9434 cmp r5, r4 9435 it cs 9436 movcs r5, r4 9437 uxth r5, r5 9438 subs r4, r4, r5 9439.L1269: 9440 ldr r5, .L1283+4 9441 mov r3, #-1 9442 ldr r6, .L1283+8 9443 str r3, [sp, #4] 9444.L1270: 9445 ldrh r3, [r8] 9446 cmp r4, r3 9447 bcs .L1272 9448 ldr r3, .L1283+4 9449 ldr r2, [r3] 9450 cmp r2, #32 9451 bls .L1273 9452 movs r4, #0 9453 str r4, [r3] 9454 bl l2p_flush 9455 bl FtlVpcTblFlush 9456 b .L1273 9457.L1272: 9458 movs r2, #0 9459 mov r1, sp 9460 mov r0, r7 9461 bl log2phys 9462 ldr r3, [sp] 9463 adds r3, r3, #1 9464 beq .L1271 9465 ldr r3, [r5] 9466 movs r2, #1 9467 add r1, sp, #4 9468 mov r0, r7 9469 adds r3, r3, #1 9470 str r3, [r5] 9471 ldr r3, [r6] 9472 adds r3, r3, #1 9473 str r3, [r6] 9474 bl log2phys 9475 ldr r0, [sp] 9476 ubfx r0, r0, #10, #16 9477 bl P2V_block_in_plane 9478 bl decrement_vpc_count 9479.L1271: 9480 ldrh r3, [r8] 9481 adds r7, r7, #1 9482 subs r4, r4, r3 9483 b .L1270 9484.L1276: 9485 mov r0, #-1 9486 b .L1266 9487.L1284: 9488 .align 2 9489.L1283: 9490 .word .LANCHOR33 9491 .word .LANCHOR166 9492 .word .LANCHOR85 9493 .word .LANCHOR11 9494 .size FtlDiscard, .-FtlDiscard 9495 .section .text.allocate_new_data_superblock,"ax",%progbits 9496 .align 1 9497 .global allocate_new_data_superblock 9498 .syntax unified 9499 .thumb 9500 .thumb_func 9501 .fpu softvfp 9502 .type allocate_new_data_superblock, %function 9503allocate_new_data_superblock: 9504 @ args = 0, pretend = 0, frame = 0 9505 @ frame_needed = 0, uses_anonymous_args = 0 9506 ldr r3, .L1295 9507 push {r4, r5, r6, lr} 9508 mov r6, r0 9509 ldrh r4, [r0] 9510 ldrh r3, [r3] 9511 cmp r3, r4 9512 bcs .L1286 9513 movw r2, #2766 9514 ldr r1, .L1295+4 9515 ldr r0, .L1295+8 9516 bl printf 9517.L1286: 9518 movw r3, #65535 9519 cmp r4, r3 9520 beq .L1287 9521 ldr r3, .L1295+12 9522 mov r0, r4 9523 ldr r3, [r3] 9524 ldrh r3, [r3, r4, lsl #1] 9525 cbz r3, .L1288 9526 bl INSERT_DATA_LIST 9527.L1287: 9528 ldr r5, .L1295+16 9529 movw r2, #65535 9530 movs r3, #1 9531 strb r3, [r6, #8] 9532 ldrh r0, [r5] 9533 cmp r0, r2 9534 beq .L1289 9535 cmp r4, r0 9536 bne .L1290 9537 ldr r3, .L1295+12 9538 ldr r3, [r3] 9539 ldrh r3, [r3, r0, lsl #1] 9540 cbz r3, .L1291 9541.L1290: 9542 bl update_vpc_list 9543.L1291: 9544 movw r3, #65535 9545 strh r3, [r5] @ movhi 9546.L1289: 9547 mov r0, r6 9548 bl allocate_data_superblock 9549 bl l2p_flush 9550 movs r0, #0 9551 bl FtlEctTblFlush 9552 bl FtlVpcTblFlush 9553 movs r0, #0 9554 pop {r4, r5, r6, pc} 9555.L1288: 9556 bl INSERT_FREE_LIST 9557 b .L1287 9558.L1296: 9559 .align 2 9560.L1295: 9561 .word .LANCHOR4 9562 .word .LANCHOR167 9563 .word .LC1 9564 .word .LANCHOR41 9565 .word .LANCHOR130 9566 .size allocate_new_data_superblock, .-allocate_new_data_superblock 9567 .section .text.FtlProgPages,"ax",%progbits 9568 .align 1 9569 .global FtlProgPages 9570 .syntax unified 9571 .thumb 9572 .thumb_func 9573 .fpu softvfp 9574 .type FtlProgPages, %function 9575FtlProgPages: 9576 @ args = 0, pretend = 0, frame = 16 9577 @ frame_needed = 0, uses_anonymous_args = 0 9578 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 9579 movs r6, #0 9580 ldr r10, .L1316+20 9581 mov r5, r3 9582 movs r2, #0 9583 mov r4, r0 9584 ldr fp, .L1316 9585 mov r8, r1 9586 ldrb r3, [r3, #9] @ zero_extendqisi2 9587 bl FlashProgPages 9588.L1298: 9589 cmp r6, r8 9590 bne .L1305 9591 ldr r3, .L1316 9592 ldrb r2, [r5, #6] @ zero_extendqisi2 9593 ldrh r3, [r3] 9594 cmp r2, r3 9595 bcc .L1297 9596 mov r2, #1000 9597 ldr r1, .L1316+4 9598 ldr r0, .L1316+8 9599 bl printf 9600.L1297: 9601 add sp, sp, #16 9602 @ sp needed 9603 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9604.L1300: 9605 ldr r1, [r4, #4] 9606 mov r0, r10 9607 bl printf 9608 ldr r0, [r4, #4] 9609 ubfx r0, r0, #10, #16 9610 bl P2V_block_in_plane 9611 bl decrement_vpc_count 9612 ldrh r3, [r5, #4] 9613 cbnz r3, .L1299 9614 mov r0, r5 9615 bl allocate_new_data_superblock 9616.L1299: 9617 mov r0, r5 9618 bl get_new_active_ppa 9619 movs r2, #0 9620 str r0, [r4, #4] 9621 str r0, [sp, #12] 9622 movs r1, #1 9623 ldrb r3, [r5, #9] @ zero_extendqisi2 9624 mov r0, r4 9625 bl FlashProgPages 9626.L1305: 9627 ldr r2, [r4] 9628 adds r3, r2, #1 9629 beq .L1300 9630 cmp r2, #256 9631 beq .L1300 9632 ldrb r2, [r5, #6] @ zero_extendqisi2 9633 ldrh r3, [fp] 9634 cmp r2, r3 9635 bcc .L1301 9636 movw r2, #985 9637 ldr r1, .L1316+4 9638 ldr r0, .L1316+8 9639 bl printf 9640.L1301: 9641 ldr r3, [r4, #4] 9642 add r1, sp, #16 9643 movs r2, #1 9644 ldr r0, [r4, #16] 9645 str r3, [r1, #-4]! 9646 bl log2phys 9647 ldr r3, [r4, #12] 9648 ldr r3, [r3, #12] 9649 ubfx r0, r3, #10, #16 9650 str r3, [sp, #4] 9651 bl P2V_block_in_plane 9652 ldr r3, [sp, #4] 9653 mov r7, r0 9654 adds r3, r3, #1 9655 beq .L1302 9656 ldr r3, .L1316+12 9657 ldr r3, [r3] 9658 ldrh r2, [r3, r0, lsl #1] 9659 cbnz r2, .L1303 9660 mov r1, r0 9661 ldr r0, .L1316+16 9662 bl printf 9663.L1303: 9664 mov r0, r7 9665 bl decrement_vpc_count 9666.L1302: 9667 adds r6, r6, #1 9668 adds r4, r4, #20 9669 b .L1298 9670.L1317: 9671 .align 2 9672.L1316: 9673 .word .LANCHOR2 9674 .word .LANCHOR168 9675 .word .LC1 9676 .word .LANCHOR41 9677 .word .LC41 9678 .word .LC40 9679 .size FtlProgPages, .-FtlProgPages 9680 .section .text.FtlGcFreeTempBlock,"ax",%progbits 9681 .align 1 9682 .global FtlGcFreeTempBlock 9683 .syntax unified 9684 .thumb 9685 .thumb_func 9686 .fpu softvfp 9687 .type FtlGcFreeTempBlock, %function 9688FtlGcFreeTempBlock: 9689 @ args = 0, pretend = 0, frame = 16 9690 @ frame_needed = 0, uses_anonymous_args = 0 9691 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 9692 movw r3, #65535 9693 ldr r4, .L1333 9694 ldrh r2, [r4] 9695 cmp r2, r3 9696 beq .L1319 9697 ldr r3, .L1333+4 9698 mov r0, r4 9699 ldrh r1, [r3] 9700 bl FtlGcScanTempBlk 9701 str r0, [sp, #12] 9702.L1319: 9703 ldr r3, .L1333+8 9704 movs r2, #0 9705 str r2, [r3] 9706 movw r3, #65535 9707 ldrh r2, [r4] 9708 cmp r2, r3 9709 beq .L1321 9710 ldr r6, .L1333+4 9711 ldrb r0, [r4, #7] @ zero_extendqisi2 9712 ldr r5, .L1333+12 9713 ldrh r2, [r6] 9714 ldrh r1, [r5] 9715 muls r2, r0, r2 9716 cmp r1, r2 9717 beq .L1322 9718 movs r2, #164 9719 ldr r1, .L1333+16 9720 ldr r0, .L1333+20 9721 bl printf 9722.L1322: 9723 ldrh r6, [r6] 9724 ldrb r3, [r4, #7] @ zero_extendqisi2 9725 ldr r2, .L1333+24 9726 ldrh r0, [r4] 9727 ldr fp, .L1333+56 9728 smulbb r3, r3, r6 9729 ldr r1, [r2] 9730 movs r6, #0 9731 mov r10, r2 9732 strh r3, [r1, r0, lsl #1] @ movhi 9733 ldr r1, .L1333+28 9734 ldrh r3, [r5] 9735 ldr r0, [r1] 9736 add r3, r3, r0 9737 str r3, [r1] 9738.L1323: 9739 ldrh r2, [r5] 9740 uxth r3, r6 9741 cmp r2, r3 9742 bhi .L1327 9743 movw r0, #65535 9744 bl decrement_vpc_count 9745 ldrh r0, [r4] 9746 ldr r3, [r10] 9747 ldrh r3, [r3, r0, lsl #1] 9748 cmp r3, #0 9749 beq .L1328 9750 bl INSERT_DATA_LIST 9751.L1329: 9752 ldr r2, .L1333+32 9753 movs r3, #0 9754 movw r6, #65535 9755 strh r3, [r5] @ movhi 9756 strh r6, [r4] @ movhi 9757 strh r3, [r2] @ movhi 9758 bl l2p_flush 9759 bl FtlVpcTblFlush 9760 ldr r3, .L1333+36 9761 strh r6, [r3] @ movhi 9762 ldr r3, .L1333+40 9763 ldrh r2, [r3] 9764 ldr r3, .L1333+44 9765 ldrh r3, [r3] 9766 add r3, r3, r3, lsl #1 9767 cmp r2, r3, asr #2 9768 ittt gt 9769 ldrgt r3, .L1333+48 9770 movgt r2, #20 9771 strhgt r2, [r3] @ movhi 9772.L1321: 9773 movs r0, #0 9774 add sp, sp, #16 9775 @ sp needed 9776 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9777.L1327: 9778 uxth r3, r6 9779 mov r8, #12 9780 ldr r2, [fp] 9781 mul r8, r8, r3 9782 ldr r3, .L1333+52 9783 ldr r3, [r3] 9784 add r7, r3, r8 9785 ldr r0, [r7, #8] 9786 cmp r0, r2 9787 bcc .L1324 9788.L1331: 9789 ldrh r0, [r4] 9790 b .L1332 9791.L1324: 9792 movs r2, #0 9793 add r1, sp, #12 9794 str r3, [sp, #4] 9795 bl log2phys 9796 ldr r3, [sp, #4] 9797 ldr r2, [sp, #12] 9798 ldr r0, [r3, r8] 9799 cmp r0, r2 9800 bne .L1326 9801 ubfx r0, r0, #10, #16 9802 bl P2V_block_in_plane 9803 movs r2, #1 9804 mov r8, r0 9805 adds r1, r7, #4 9806 ldr r0, [r7, #8] 9807 bl log2phys 9808 mov r0, r8 9809.L1332: 9810 bl decrement_vpc_count 9811 b .L1325 9812.L1326: 9813 ldr r3, [r7, #4] 9814 cmp r2, r3 9815 bne .L1331 9816.L1325: 9817 adds r6, r6, #1 9818 b .L1323 9819.L1328: 9820 bl INSERT_FREE_LIST 9821 b .L1329 9822.L1334: 9823 .align 2 9824.L1333: 9825 .word .LANCHOR52 9826 .word .LANCHOR18 9827 .word .LANCHOR132 9828 .word .LANCHOR69 9829 .word .LANCHOR169 9830 .word .LC1 9831 .word .LANCHOR41 9832 .word .LANCHOR83 9833 .word .LANCHOR68 9834 .word .LANCHOR144 9835 .word .LANCHOR47 9836 .word .LANCHOR170 9837 .word .LANCHOR99 9838 .word .LANCHOR70 9839 .word .LANCHOR151 9840 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 9841 .section .text.FtlGcPageRecovery,"ax",%progbits 9842 .align 1 9843 .global FtlGcPageRecovery 9844 .syntax unified 9845 .thumb 9846 .thumb_func 9847 .fpu softvfp 9848 .type FtlGcPageRecovery, %function 9849FtlGcPageRecovery: 9850 @ args = 0, pretend = 0, frame = 0 9851 @ frame_needed = 0, uses_anonymous_args = 0 9852 push {r3, r4, r5, lr} 9853 ldr r4, .L1337 9854 ldr r5, .L1337+4 9855 ldrh r1, [r4] 9856 mov r0, r5 9857 bl FtlGcScanTempBlk 9858 ldrh r2, [r5, #2] 9859 ldrh r3, [r4] 9860 cmp r2, r3 9861 bcc .L1335 9862 ldr r0, .L1337+8 9863 bl FtlMapBlkWriteDump_data 9864 movs r0, #0 9865 bl FtlGcFreeTempBlock 9866 ldr r3, .L1337+12 9867 movs r2, #0 9868 str r2, [r3] 9869.L1335: 9870 pop {r3, r4, r5, pc} 9871.L1338: 9872 .align 2 9873.L1337: 9874 .word .LANCHOR18 9875 .word .LANCHOR52 9876 .word .LANCHOR128 9877 .word .LANCHOR132 9878 .size FtlGcPageRecovery, .-FtlGcPageRecovery 9879 .section .text.FtlPowerLostRecovery,"ax",%progbits 9880 .align 1 9881 .global FtlPowerLostRecovery 9882 .syntax unified 9883 .thumb 9884 .thumb_func 9885 .fpu softvfp 9886 .type FtlPowerLostRecovery, %function 9887FtlPowerLostRecovery: 9888 @ args = 0, pretend = 0, frame = 0 9889 @ frame_needed = 0, uses_anonymous_args = 0 9890 push {r3, r4, r5, lr} 9891 movs r4, #0 9892 ldr r5, .L1340 9893 ldr r3, .L1340+4 9894 mov r0, r5 9895 str r4, [r3] 9896 bl FtlRecoverySuperblock 9897 mov r0, r5 9898 ldr r5, .L1340+8 9899 bl FtlSlcSuperblockCheck 9900 mov r0, r5 9901 bl FtlRecoverySuperblock 9902 mov r0, r5 9903 bl FtlSlcSuperblockCheck 9904 bl FtlGcPageRecovery 9905 movw r0, #65535 9906 bl decrement_vpc_count 9907 mov r0, r4 9908 pop {r3, r4, r5, pc} 9909.L1341: 9910 .align 2 9911.L1340: 9912 .word .LANCHOR50 9913 .word .LANCHOR156 9914 .word .LANCHOR51 9915 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 9916 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 9917 .align 1 9918 .global Ftl_gc_temp_data_write_back 9919 .syntax unified 9920 .thumb 9921 .thumb_func 9922 .fpu softvfp 9923 .type Ftl_gc_temp_data_write_back, %function 9924Ftl_gc_temp_data_write_back: 9925 @ args = 0, pretend = 0, frame = 0 9926 @ frame_needed = 0, uses_anonymous_args = 0 9927 push {r3, r4, r5, r6, r7, lr} 9928 movs r3, #0 9929 ldr r4, .L1350 9930 movs r6, #0 9931 movs r7, #20 9932 mov r2, r3 9933 ldr r5, .L1350+4 9934 ldr r1, [r4] 9935 ldr r0, [r5] 9936 bl FlashProgPages 9937.L1343: 9938 ldr r1, [r4] 9939 uxth r3, r6 9940 cmp r1, r3 9941 bhi .L1346 9942 ldr r0, [r5] 9943 bl FtlGcBufFree 9944 ldr r3, .L1350+8 9945 movs r0, #0 9946 str r0, [r4] 9947 ldrh r3, [r3, #4] 9948 cbnz r3, .L1342 9949 movs r0, #1 9950 bl FtlGcFreeTempBlock 9951 movs r0, #1 9952.L1342: 9953 pop {r3, r4, r5, r6, r7, pc} 9954.L1346: 9955 muls r3, r7, r3 9956 ldr r2, [r5] 9957 adds r6, r6, #1 9958 adds r1, r2, r3 9959 ldr r2, [r2, r3] 9960 ldr r0, [r1, #12] 9961 ldr r1, [r1, #4] 9962 adds r3, r2, #1 9963 it ne 9964 ldrne r2, [r0, #8] 9965 ldr r0, [r0, #12] 9966 bl FtlGcUpdatePage 9967 b .L1343 9968.L1351: 9969 .align 2 9970.L1350: 9971 .word .LANCHOR61 9972 .word .LANCHOR103 9973 .word .LANCHOR52 9974 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 9975 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 9976 .align 1 9977 .global Ftl_get_new_temp_ppa 9978 .syntax unified 9979 .thumb 9980 .thumb_func 9981 .fpu softvfp 9982 .type Ftl_get_new_temp_ppa, %function 9983Ftl_get_new_temp_ppa: 9984 @ args = 0, pretend = 0, frame = 0 9985 @ frame_needed = 0, uses_anonymous_args = 0 9986 push {r3, r4, r5, lr} 9987 movw r3, #65535 9988 ldr r4, .L1355 9989 ldrh r2, [r4] 9990 cmp r2, r3 9991 beq .L1353 9992 ldrh r3, [r4, #4] 9993 cbnz r3, .L1354 9994.L1353: 9995 movs r0, #0 9996 movs r5, #0 9997 bl FtlGcFreeTempBlock 9998 ldr r0, .L1355 9999 strb r5, [r4, #8] 10000 bl allocate_data_superblock 10001 ldr r3, .L1355+4 10002 strh r5, [r3] @ movhi 10003 ldr r3, .L1355+8 10004 strh r5, [r3] @ movhi 10005 bl l2p_flush 10006 mov r0, r5 10007 bl FtlEctTblFlush 10008 bl FtlVpcTblFlush 10009.L1354: 10010 ldr r0, .L1355 10011 pop {r3, r4, r5, lr} 10012 b get_new_active_ppa 10013.L1356: 10014 .align 2 10015.L1355: 10016 .word .LANCHOR52 10017 .word .LANCHOR68 10018 .word .LANCHOR69 10019 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 10020 .section .text.rk_ftl_garbage_collect,"ax",%progbits 10021 .align 1 10022 .global rk_ftl_garbage_collect 10023 .syntax unified 10024 .thumb 10025 .thumb_func 10026 .fpu softvfp 10027 .type rk_ftl_garbage_collect, %function 10028rk_ftl_garbage_collect: 10029 @ args = 0, pretend = 0, frame = 40 10030 @ frame_needed = 0, uses_anonymous_args = 0 10031 ldr r3, .L1447 10032 push {r4, r5, r6, r7, r8, r10, fp, lr} 10033 sub sp, sp, #48 10034 str r0, [sp, #28] 10035 ldr r0, [r3] 10036 cmp r0, #0 10037 bne .L1414 10038 ldr r3, .L1447+4 10039 ldrh r3, [r3] 10040 cmp r3, #47 10041 bls .L1357 10042 ldr r3, .L1447+8 10043 movw r4, #65535 10044 ldrh r0, [r3] 10045 cmp r0, r4 10046 beq .L1359 10047 ldr r1, .L1447+12 10048 ldrh r2, [r1] 10049 cmp r2, r4 10050 itt eq 10051 strheq r0, [r1] @ movhi 10052 strheq r2, [r3] @ movhi 10053.L1359: 10054 ldr r3, [sp, #28] 10055 cmp r3, #0 10056 bne .L1416 10057 ldr r3, .L1447+16 10058 ldrh r3, [r3] 10059 cmp r3, #24 10060 bhi .L1417 10061 ldr r2, .L1447+20 10062 cmp r3, #16 10063 ldrh r4, [r2] 10064 bls .L1362 10065 lsrs r4, r4, #5 10066.L1361: 10067 ldr r2, .L1447+24 10068 ldrh r1, [r2] 10069 cmp r1, r3 10070 mov r1, r2 10071 bcs .L1365 10072 ldr r3, .L1447+28 10073 movw r0, #65535 10074 ldrh r3, [r3] 10075 cmp r3, r0 10076 bne .L1366 10077 ldr r0, .L1447+12 10078 ldrh r0, [r0] 10079 cmp r0, r3 10080 bne .L1366 10081 ldr r3, .L1447+32 10082 ldrh r0, [r3] 10083 cbnz r0, .L1367 10084 ldr r3, .L1447+36 10085 ldr r4, .L1447+40 10086 ldr r3, [r3] 10087 ldr r4, [r4] 10088 add r3, r3, r3, lsl #1 10089 cmp r4, r3, lsr #2 10090 bcs .L1368 10091.L1367: 10092 ldr r3, .L1447+44 10093 ldrh r3, [r3] 10094 add r3, r3, r3, lsl #1 10095 asrs r3, r3, #2 10096 strh r3, [r1] @ movhi 10097.L1369: 10098 ldr r3, .L1447+48 10099 movs r2, #0 10100 str r2, [r3] 10101.L1357: 10102 add sp, sp, #48 10103 @ sp needed 10104 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10105.L1362: 10106 cmp r3, #12 10107 bls .L1363 10108 lsrs r4, r4, #4 10109 b .L1361 10110.L1363: 10111 cmp r3, #8 10112 bls .L1361 10113 lsrs r4, r4, #2 10114 b .L1361 10115.L1417: 10116 movs r4, #1 10117 b .L1361 10118.L1368: 10119 movs r3, #18 10120 strh r3, [r2] @ movhi 10121 b .L1369 10122.L1366: 10123 ldr r3, .L1447+44 10124 ldrh r3, [r3] 10125 add r3, r3, r3, lsl #1 10126 asrs r3, r3, #2 10127 strh r3, [r1] @ movhi 10128.L1365: 10129 ldr r3, .L1447+52 10130 ldrh r3, [r3] 10131 cbz r3, .L1360 10132 adds r4, r4, #32 10133 uxth r4, r4 10134.L1360: 10135 ldr r5, .L1447+56 10136 movw r3, #65535 10137 ldrh r2, [r5] 10138 cmp r2, r3 10139 bne .L1372 10140 ldr r3, .L1447+12 10141 ldrh r1, [r3] 10142 cmp r1, r2 10143 beq .L1373 10144 ldr r0, .L1447+60 10145 ldr r0, [r0] 10146 ldrh r1, [r0, r1, lsl #1] 10147 cbnz r1, .L1374 10148 strh r2, [r3] @ movhi 10149.L1374: 10150 ldrh r2, [r3] 10151 strh r2, [r5] @ movhi 10152 movw r2, #65535 10153 strh r2, [r3] @ movhi 10154.L1373: 10155 ldrh r0, [r5] 10156 movw r6, #65535 10157 movs r3, #0 10158 strb r3, [r5, #8] 10159 cmp r0, r6 10160 beq .L1372 10161 bl IsBlkInGcList 10162 cbz r0, .L1376 10163 strh r6, [r5] @ movhi 10164.L1376: 10165 ldrh r2, [r5] 10166 movw r3, #65535 10167 cmp r2, r3 10168 beq .L1372 10169 ldr r0, .L1447+56 10170 bl make_superblock 10171 ldr r2, .L1447+64 10172 movs r3, #0 10173 strh r3, [r5, #2] @ movhi 10174 strb r3, [r5, #6] 10175 strh r3, [r2] @ movhi 10176 ldr r3, .L1447+60 10177 ldrh r2, [r5] 10178 ldr r3, [r3] 10179 ldrh r2, [r3, r2, lsl #1] 10180 ldr r3, .L1447+68 10181 strh r2, [r3] @ movhi 10182.L1372: 10183 ldr r2, .L1447+72 10184 ldrh r3, [r5] 10185 ldrh r2, [r2] 10186 cmp r2, r3 10187 beq .L1377 10188 ldr r2, .L1447+76 10189 ldrh r2, [r2] 10190 cmp r2, r3 10191 beq .L1377 10192 ldr r2, .L1447+28 10193 ldrh r2, [r2] 10194 cmp r2, r3 10195 bne .L1378 10196.L1377: 10197 movw r3, #65535 10198 strh r3, [r5] @ movhi 10199.L1378: 10200 ldr r5, .L1447+56 10201 mov r6, r5 10202.L1413: 10203 ldrh r2, [r5] 10204 movw r3, #65535 10205 cmp r2, r3 10206 bne .L1379 10207 ldr fp, .L1447+88 10208 movs r2, #0 10209 ldr r3, .L1447+48 10210 mov r8, fp 10211 str r2, [r3] 10212.L1380: 10213 ldrh r7, [fp] 10214 mov r0, r7 10215 bl List_get_gc_head_node 10216 uxth r3, r0 10217 movw r1, #65535 10218 cmp r3, r1 10219 strh r3, [r6] @ movhi 10220 bne .L1381 10221 movs r3, #0 10222 movs r0, #8 10223 strh r3, [fp] @ movhi 10224 b .L1357 10225.L1416: 10226 movs r4, #1 10227 b .L1360 10228.L1381: 10229 str r0, [sp, #16] 10230 mov r0, r3 10231 str r3, [sp, #12] 10232 adds r7, r7, #1 10233 bl IsBlkInGcList 10234 ldr r3, [sp, #12] 10235 ldr r2, [sp, #16] 10236 cbz r0, .L1382 10237 strh r7, [fp] @ movhi 10238 b .L1380 10239.L1382: 10240 uxth r0, r2 10241 ldr r2, .L1447+20 10242 ldr r10, .L1447+60 10243 uxth r7, r7 10244 ldrh lr, [r2] 10245 ldr r2, .L1447+80 10246 ldr r1, [r10] 10247 strh r7, [fp] @ movhi 10248 ldrh r2, [r2] 10249 ldrh ip, [r1, r0, lsl #1] 10250 mul r2, r2, lr 10251 cmp ip, r2, asr #1 10252 bgt .L1384 10253 cmp r7, #48 10254 bls .L1385 10255 cmp ip, #8 10256 bls .L1385 10257 ldr r7, .L1447+84 10258 ldrh r7, [r7] 10259 cmp r7, #35 10260 bhi .L1385 10261.L1384: 10262 movs r7, #0 10263 strh r7, [r8] @ movhi 10264.L1385: 10265 ldrh r1, [r1, r0, lsl #1] 10266 cmp r2, r1 10267 bgt .L1386 10268 ldrh r2, [r8] 10269 cmp r2, #3 10270 bhi .L1386 10271 movw r3, #65535 10272 strh r3, [r6] @ movhi 10273 movs r3, #0 10274 strh r3, [r8] @ movhi 10275.L1446: 10276 ldr r3, .L1447+32 10277 ldrh r0, [r3] 10278 b .L1357 10279.L1386: 10280 cbnz r1, .L1387 10281 movw r0, #65535 10282 bl decrement_vpc_count 10283 ldrh r3, [r8] 10284 adds r3, r3, #1 10285 strh r3, [r8] @ movhi 10286 b .L1380 10287.L1448: 10288 .align 2 10289.L1447: 10290 .word .LANCHOR93 10291 .word .LANCHOR43 10292 .word .LANCHOR72 10293 .word .LANCHOR71 10294 .word .LANCHOR47 10295 .word .LANCHOR18 10296 .word .LANCHOR99 10297 .word .LANCHOR52 10298 .word .LANCHOR171 10299 .word .LANCHOR151 10300 .word .LANCHOR58 10301 .word .LANCHOR170 10302 .word .LANCHOR94 10303 .word .LANCHOR73 10304 .word .LANCHOR144 10305 .word .LANCHOR41 10306 .word .LANCHOR172 10307 .word .LANCHOR173 10308 .word .LANCHOR50 10309 .word .LANCHOR51 10310 .word .LANCHOR2 10311 .word .LANCHOR68 10312 .word .LANCHOR101 10313.L1387: 10314 movs r2, #0 10315 strb r2, [r6, #8] 10316 ldr r2, .L1449 10317 ldrh r2, [r2] 10318 cmp r2, r3 10319 bne .L1388 10320 movw r2, #717 10321 ldr r1, .L1449+4 10322 ldr r0, .L1449+8 10323 bl printf 10324.L1388: 10325 ldr r3, .L1449+12 10326 ldrh r2, [r6] 10327 ldrh r3, [r3] 10328 cmp r2, r3 10329 bne .L1389 10330 movw r2, #718 10331 ldr r1, .L1449+4 10332 ldr r0, .L1449+8 10333 bl printf 10334.L1389: 10335 ldr r3, .L1449+16 10336 ldrh r2, [r6] 10337 ldrh r3, [r3] 10338 cmp r2, r3 10339 bne .L1390 10340 movw r2, #719 10341 ldr r1, .L1449+4 10342 ldr r0, .L1449+8 10343 bl printf 10344.L1390: 10345 mov r0, r5 10346 bl make_superblock 10347 ldr r2, .L1449+20 10348 movs r3, #0 10349 ldrh r1, [r6] 10350 strh r3, [r2] @ movhi 10351 ldr r2, [r10] 10352 ldrh r1, [r2, r1, lsl #1] 10353 ldr r2, .L1449+24 10354 strh r3, [r6, #2] @ movhi 10355 strb r3, [r6, #6] 10356 strh r1, [r2] @ movhi 10357.L1379: 10358 ldr r3, .L1449+28 10359 movs r2, #1 10360 str r2, [r3] 10361 ldr r3, .L1449+32 10362 ldrh r3, [r3] 10363 str r3, [sp, #16] 10364 ldr r3, [sp, #28] 10365 cbz r3, .L1391 10366 ldr r3, .L1449+36 10367 ldr r2, [sp, #16] 10368 ldrh r1, [r6] 10369 ldrh r3, [r3] 10370 muls r3, r2, r3 10371 ldr r2, .L1449+40 10372 ldr r2, [r2] 10373 ldrh r2, [r2, r1, lsl #1] 10374 subs r3, r3, r2 10375 it mi 10376 addmi r3, r3, #3 10377 add r4, r4, r3, asr #2 10378 uxth r4, r4 10379.L1391: 10380 ldrh r3, [r6, #2] 10381 ldr r1, [sp, #16] 10382 ldr fp, .L1449+64 10383 adds r2, r3, r4 10384 cmp r2, r1 10385 itt gt 10386 movgt r2, r1 10387 subgt r4, r2, r3 10388 mov r3, #0 10389 it gt 10390 uxthgt r4, r4 10391 str r3, [sp, #24] 10392.L1394: 10393 ldrh r3, [sp, #24] 10394 cmp r4, r3 10395 bls .L1402 10396 ldr r3, .L1449+36 10397 movw r10, #65535 10398 ldrh r1, [r5, #2] 10399 mov ip, #20 10400 ldr r0, [fp] 10401 ldrh lr, [r3] 10402 ldr r3, [sp, #24] 10403 ldr r7, .L1449+44 10404 adds r3, r1, r3 10405 str r3, [sp, #20] 10406 movs r3, #0 10407 str r3, [sp, #12] 10408 b .L1403 10409.L1396: 10410 ldrh r2, [r7, #2]! 10411 cmp r2, r10 10412 beq .L1395 10413 ldr r1, [sp, #12] 10414 mla r8, ip, r1, r0 10415 ldr r1, [sp, #20] 10416 orr r2, r1, r2, lsl #10 10417 str r2, [r8, #4] 10418 ldr r2, [sp, #12] 10419 adds r2, r2, #1 10420 uxth r2, r2 10421 str r2, [sp, #12] 10422.L1395: 10423 adds r3, r3, #1 10424.L1403: 10425 uxth r2, r3 10426 cmp lr, r2 10427 bhi .L1396 10428 ldrb r2, [r5, #8] @ zero_extendqisi2 10429 ldr r1, [sp, #12] 10430 bl FlashReadPages 10431 movs r3, #0 10432.L1445: 10433 str r3, [sp, #20] 10434 ldr r2, [sp, #12] 10435 ldrh r3, [sp, #20] 10436 cmp r2, r3 10437 bhi .L1401 10438 ldr r3, [sp, #24] 10439 adds r3, r3, #1 10440 str r3, [sp, #24] 10441 b .L1394 10442.L1401: 10443 ldr r3, [sp, #20] 10444 movs r7, #20 10445 muls r7, r3, r7 10446 ldr r3, [fp] 10447 adds r2, r3, r7 10448 ldr r3, [r3, r7] 10449 adds r3, r3, #1 10450 beq .L1398 10451 ldr r8, [r2, #12] 10452 movw r3, #61589 10453 ldrh r2, [r8] 10454 cmp r2, r3 10455 bne .L1398 10456 ldr r10, [r8, #8] 10457 cmp r10, #-1 10458 bne .L1399 10459 movw r2, #753 10460 ldr r1, .L1449+4 10461 ldr r0, .L1449+8 10462 bl printf 10463.L1399: 10464 movs r2, #0 10465 add r1, sp, #40 10466 mov r0, r10 10467 bl log2phys 10468 ldr r0, [fp] 10469 ldr r3, [sp, #40] 10470 add r0, r0, r7 10471 ldr r2, [r0, #4] 10472 cmp r2, r3 10473 bne .L1398 10474 ldr r2, .L1449+20 10475 ldr r10, .L1449+60 10476 ldr r1, .L1449+48 10477 ldrh r3, [r2] 10478 str r1, [sp, #36] 10479 adds r3, r3, #1 10480 strh r3, [r2] @ movhi 10481 ldr r2, [r1] 10482 movs r1, #20 10483 ldr r3, [r10] 10484 mla r3, r1, r3, r2 10485 ldr r2, [r0, #16] 10486 str r2, [r3, #16] 10487 str r3, [sp, #32] 10488 bl Ftl_get_new_temp_ppa 10489 ldr r3, [sp, #32] 10490 ldr r1, [sp, #36] 10491 str r0, [r3, #4] 10492 ldr r2, [r1] 10493 movs r1, #20 10494 ldr r3, [r10] 10495 ldr r0, [fp] 10496 mla r2, r1, r3, r2 10497 add r0, r0, r7 10498 ldr r7, .L1449+16 10499 ldr r1, [r0, #8] 10500 adds r3, r3, #1 10501 str r1, [r2, #8] 10502 ldr r1, [r0, #12] 10503 str r1, [r2, #12] 10504 movs r1, #1 10505 ldr r2, [sp, #40] 10506 str r2, [r8, #12] 10507 ldrh r2, [r7] 10508 strh r2, [r8, #2] @ movhi 10509 ldr r2, .L1449+52 10510 str r3, [r10] 10511 ldr r2, [r2] 10512 str r2, [r8, #4] 10513 bl FtlGcBufAlloc 10514 ldrb r2, [r7, #7] @ zero_extendqisi2 10515 ldr r3, [r10] 10516 cmp r2, r3 10517 beq .L1400 10518 ldrh r3, [r7, #4] 10519 cbnz r3, .L1398 10520.L1400: 10521 bl Ftl_gc_temp_data_write_back 10522 cbz r0, .L1398 10523 ldr r3, .L1449+28 10524 movs r2, #0 10525 movw r1, #65535 10526 str r2, [r3] 10527 ldr r3, .L1449+56 10528 strh r1, [r3] @ movhi 10529 strh r2, [r3, #2] @ movhi 10530 b .L1446 10531.L1398: 10532 ldr r3, [sp, #20] 10533 adds r3, r3, #1 10534 b .L1445 10535.L1402: 10536 ldrh r3, [r5, #2] 10537 add r4, r4, r3 10538 ldr r3, [sp, #16] 10539 uxth r4, r4 10540 cmp r3, r4 10541 strh r4, [r5, #2] @ movhi 10542 bhi .L1404 10543 ldr r3, .L1449+60 10544 ldr r3, [r3] 10545 cbz r3, .L1405 10546 bl Ftl_gc_temp_data_write_back 10547 cbz r0, .L1405 10548 ldr r3, .L1449+28 10549 movs r2, #0 10550 str r2, [r3] 10551 b .L1446 10552.L1450: 10553 .align 2 10554.L1449: 10555 .word .LANCHOR50 10556 .word .LANCHOR174 10557 .word .LC1 10558 .word .LANCHOR51 10559 .word .LANCHOR52 10560 .word .LANCHOR172 10561 .word .LANCHOR173 10562 .word .LANCHOR93 10563 .word .LANCHOR18 10564 .word .LANCHOR2 10565 .word .LANCHOR41 10566 .word .LANCHOR144+14 10567 .word .LANCHOR103 10568 .word .LANCHOR82 10569 .word .LANCHOR144 10570 .word .LANCHOR61 10571 .word .LANCHOR65 10572.L1405: 10573 ldr r3, .L1451 10574 ldrh r4, [r3] 10575 cmp r4, #0 10576 bne .L1406 10577 ldr r8, .L1451+28 10578 ldrh r1, [r5] 10579 ldr r3, [r8] 10580 ldrh r3, [r3, r1, lsl #1] 10581 cmp r3, #0 10582 beq .L1406 10583 ldr r0, .L1451+4 10584 ldr r10, .L1451+32 10585 ldrh r2, [r5, #2] 10586 ldrh r0, [r0] 10587 str r3, [sp] 10588 mov r3, r4 10589 str r0, [sp, #4] 10590 ldr r0, .L1451+8 10591 bl printf 10592.L1407: 10593 ldr r3, [r10] 10594 cmp r4, r3 10595 bcs .L1409 10596 movs r2, #0 10597 add r1, sp, #44 10598 mov r0, r4 10599 bl log2phys 10600 ldr r7, [sp, #44] 10601 adds r3, r7, #1 10602 beq .L1408 10603 ubfx r0, r7, #10, #16 10604 bl P2V_block_in_plane 10605 ldrh r3, [r5] 10606 cmp r3, r0 10607 bne .L1408 10608 mov r2, r7 10609 mov r1, r4 10610 ldr r0, .L1451+12 10611 bl printf 10612.L1409: 10613 ldr r3, [r10] 10614 cmp r4, r3 10615 bcc .L1406 10616 ldrh r2, [r5] 10617 movs r1, #0 10618 ldr r3, [r8] 10619 strh r1, [r3, r2, lsl #1] @ movhi 10620 ldrh r0, [r5] 10621 bl update_vpc_list 10622 bl l2p_flush 10623 bl FtlVpcTblFlush 10624.L1406: 10625 movw r3, #65535 10626 strh r3, [r5] @ movhi 10627.L1404: 10628 ldr r3, .L1451+16 10629 movs r2, #0 10630 str r2, [r3] 10631 ldr r3, .L1451+20 10632 ldrh r0, [r3] 10633 cmp r0, #2 10634 bhi .L1412 10635 ldr r3, .L1451+24 10636 ldrh r4, [r3] 10637 b .L1413 10638.L1408: 10639 adds r4, r4, #1 10640 b .L1407 10641.L1412: 10642 adds r0, r0, #1 10643 b .L1357 10644.L1414: 10645 movs r0, #0 10646 b .L1357 10647.L1452: 10648 .align 2 10649.L1451: 10650 .word .LANCHOR172 10651 .word .LANCHOR173 10652 .word .LC42 10653 .word .LC43 10654 .word .LANCHOR93 10655 .word .LANCHOR47 10656 .word .LANCHOR18 10657 .word .LANCHOR41 10658 .word .LANCHOR151 10659 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 10660 .section .text.FtlRead,"ax",%progbits 10661 .align 1 10662 .global FtlRead 10663 .syntax unified 10664 .thumb 10665 .thumb_func 10666 .fpu softvfp 10667 .type FtlRead, %function 10668FtlRead: 10669 @ args = 0, pretend = 0, frame = 56 10670 @ frame_needed = 0, uses_anonymous_args = 0 10671 cmp r0, #16 10672 push {r4, r5, r6, r7, r8, r10, fp, lr} 10673 sub sp, sp, #56 10674 mov r5, r1 10675 mov r10, r3 10676 str r2, [sp, #4] 10677 bne .L1454 10678 mov r2, r3 10679 ldr r1, [sp, #4] 10680 add r0, r5, #256 10681 bl FtlVendorPartRead 10682 mov r4, r0 10683.L1453: 10684 mov r0, r4 10685 add sp, sp, #56 10686 @ sp needed 10687 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10688.L1454: 10689 ldr r3, .L1488 10690 ldr r3, [r3] 10691 cmp r1, r3 10692 bcs .L1477 10693 ldr r2, [sp, #4] 10694 cmp r2, r3 10695 bhi .L1477 10696 adds r2, r1, r2 10697 cmp r3, r2 10698 str r2, [sp, #12] 10699 bcc .L1477 10700 ldr r3, .L1488+4 10701 ldr r4, [r3] 10702 adds r6, r4, #1 10703 beq .L1453 10704 ldr r3, .L1488+8 10705 mov r0, r5 10706 mov r8, #0 10707 mov r7, r8 10708 ldrh r4, [r3] 10709 mov r1, r4 10710 bl __aeabi_uidiv 10711 ldr r3, [sp, #12] 10712 mov r1, r4 10713 str r0, [sp, #16] 10714 mov r4, r8 10715 subs r0, r3, #1 10716 bl __aeabi_uidiv 10717 ldr r3, [sp, #16] 10718 ldr r2, .L1488+12 10719 ldr r1, [sp, #4] 10720 rsb r3, r3, #1 10721 ldr r6, [sp, #16] 10722 add r3, r3, r0 10723 str r0, [sp, #20] 10724 str r3, [sp, #8] 10725 ldr r3, [r2] 10726 str r8, [sp, #28] 10727 str r8, [sp, #24] 10728 add r3, r3, r1 10729 ldr r1, [sp, #8] 10730 str r3, [r2] 10731 ldr r2, .L1488+16 10732 ldr r3, [r2] 10733 add r3, r3, r1 10734 str r3, [r2] 10735.L1456: 10736 ldr r3, [sp, #8] 10737 cbnz r3, .L1473 10738 ldr r3, .L1488+20 10739 ldrh r3, [r3] 10740 cbnz r3, .L1474 10741 ldr r3, .L1488+24 10742 ldrh r3, [r3] 10743 cmp r3, #31 10744 bhi .L1453 10745.L1474: 10746 movs r1, #1 10747 movs r0, #0 10748 bl rk_ftl_garbage_collect 10749 b .L1453 10750.L1473: 10751 movs r2, #0 10752 add r1, sp, #52 10753 mov r0, r6 10754 bl log2phys 10755 ldr r3, [sp, #52] 10756 adds r0, r3, #1 10757 bne .L1457 10758 ldr r3, .L1488+8 10759 mov fp, #0 10760.L1458: 10761 ldrh r0, [r3] 10762 cmp fp, r0 10763 bcc .L1460 10764.L1461: 10765 ldr r3, [sp, #8] 10766 adds r6, r6, #1 10767 subs r3, r3, #1 10768 str r3, [sp, #8] 10769 beq .L1465 10770 ldr r3, .L1488+28 10771 ldrh r3, [r3] 10772 cmp r7, r3, lsl #2 10773 bne .L1456 10774.L1465: 10775 cmp r7, #0 10776 beq .L1456 10777 ldr r3, .L1488+32 10778 movs r2, #0 10779 mov r1, r7 10780 mov fp, #0 10781 ldr r0, [r3] 10782 bl FlashReadPages 10783 lsl r3, r8, #9 10784 str r3, [sp, #44] 10785 ldr r3, [sp, #24] 10786 lsls r3, r3, #9 10787 str r3, [sp, #36] 10788 ldr r3, [sp, #28] 10789 lsls r3, r3, #9 10790 str r3, [sp, #40] 10791.L1472: 10792 movs r3, #20 10793 mul r3, r3, fp 10794 str r3, [sp, #32] 10795 ldr r3, .L1488+32 10796 ldr r2, [r3] 10797 ldr r3, [sp, #32] 10798 add r2, r2, r3 10799 ldr r3, [sp, #16] 10800 ldr r1, [r2, #16] 10801 cmp r3, r1 10802 bne .L1467 10803 ldr r1, [r2, #8] 10804 ldr r2, .L1488+36 10805 ldr r2, [r2] 10806 cmp r1, r2 10807 bne .L1468 10808 ldr r3, [sp, #36] 10809 mov r0, r10 10810 ldr r2, [sp, #40] 10811 add r1, r1, r3 10812.L1487: 10813 bl ftl_memcpy 10814.L1468: 10815 ldr r3, .L1488+32 10816 ldr r2, [sp, #32] 10817 ldr r3, [r3] 10818 adds r2, r3, r2 10819 ldr r0, [r2, #12] 10820 ldr r1, [r2, #16] 10821 ldr r0, [r0, #8] 10822 cmp r1, r0 10823 itttt ne 10824 ldrne r0, .L1488+40 10825 ldrne r1, [r0, #72] 10826 addne r1, r1, #1 10827 strne r1, [r0, #72] 10828 ldr r1, [sp, #32] 10829 ldr r3, [r3, r1] 10830 adds r1, r3, #1 10831 bne .L1470 10832 ldr r1, .L1488+40 10833 mov r4, r3 10834 ldr r2, [r1, #72] 10835 adds r2, r2, #1 10836 str r2, [r1, #72] 10837.L1471: 10838 add fp, fp, #1 10839 cmp r7, fp 10840 bne .L1472 10841 movs r7, #0 10842 b .L1456 10843.L1460: 10844 mla r0, r0, r6, fp 10845 cmp r5, r0 10846 bhi .L1459 10847 ldr r2, [sp, #12] 10848 cmp r2, r0 10849 bls .L1459 10850 subs r0, r0, r5 10851 mov r2, #512 10852 movs r1, #0 10853 add r0, r10, r0, lsl #9 10854 str r3, [sp, #32] 10855 bl ftl_memset 10856 ldr r3, [sp, #32] 10857.L1459: 10858 add fp, fp, #1 10859 b .L1458 10860.L1457: 10861 ldr r2, .L1488+32 10862 mov fp, #20 10863 ldr r2, [r2] 10864 mla fp, fp, r7, r2 10865 str r3, [fp, #4] 10866 ldr r3, [sp, #16] 10867 cmp r6, r3 10868 ldr r3, .L1488+8 10869 bne .L1462 10870 ldr r2, .L1488+36 10871 mov r0, r5 10872 ldrh r3, [r3] 10873 ldr r2, [r2] 10874 mov r1, r3 10875 str r3, [sp, #28] 10876 str r2, [fp, #8] 10877 bl __aeabi_uidivmod 10878 ldr r3, [sp, #28] 10879 str r1, [sp, #24] 10880 subs r2, r3, r1 10881 ldr r1, [sp, #4] 10882 cmp r2, r1 10883 it cs 10884 movcs r2, r1 10885 cmp r3, r2 10886 str r2, [sp, #28] 10887 bne .L1463 10888 str r10, [fp, #8] 10889.L1463: 10890 ldr r3, .L1488+44 10891 ldr r2, .L1488+48 10892 str r6, [fp, #16] 10893 ldrh r3, [r3] 10894 ldr r2, [r2] 10895 muls r3, r7, r3 10896 adds r7, r7, #1 10897 bic r3, r3, #3 10898 add r3, r3, r2 10899 str r3, [fp, #12] 10900 b .L1461 10901.L1462: 10902 ldr r2, [sp, #20] 10903 cmp r6, r2 10904 bne .L1464 10905 ldr r2, .L1488+52 10906 ldr r1, [sp, #12] 10907 ldr r2, [r2] 10908 str r2, [fp, #8] 10909 ldrh r2, [r3] 10910 mul r3, r2, r6 10911 sub r8, r1, r3 10912 cmp r2, r8 10913 bne .L1463 10914.L1486: 10915 subs r3, r3, r5 10916 add r3, r10, r3, lsl #9 10917 str r3, [fp, #8] 10918 b .L1463 10919.L1464: 10920 ldrh r3, [r3] 10921 muls r3, r6, r3 10922 b .L1486 10923.L1467: 10924 ldr r3, [sp, #20] 10925 cmp r3, r1 10926 bne .L1468 10927 ldr r3, .L1488+52 10928 ldr r1, [r2, #8] 10929 ldr r2, [r3] 10930 cmp r1, r2 10931 bne .L1468 10932 ldr r2, .L1488+8 10933 ldr r3, [sp, #20] 10934 ldrh r0, [r2] 10935 ldr r2, [sp, #44] 10936 muls r0, r3, r0 10937 subs r0, r0, r5 10938 add r0, r10, r0, lsl #9 10939 b .L1487 10940.L1470: 10941 cmp r3, #256 10942 bne .L1471 10943 ldr r0, [r2, #4] 10944 ubfx r0, r0, #10, #16 10945 bl P2V_block_in_plane 10946 bl FtlGcRefreshBlock 10947 b .L1471 10948.L1477: 10949 mov r4, #-1 10950 b .L1453 10951.L1489: 10952 .align 2 10953.L1488: 10954 .word .LANCHOR33 10955 .word .LANCHOR165 10956 .word .LANCHOR11 10957 .word .LANCHOR162 10958 .word .LANCHOR88 10959 .word .LANCHOR73 10960 .word .LANCHOR47 10961 .word .LANCHOR2 10962 .word .LANCHOR102 10963 .word .LANCHOR108 10964 .word .LANCHOR134 10965 .word .LANCHOR23 10966 .word .LANCHOR114 10967 .word .LANCHOR109 10968 .size FtlRead, .-FtlRead 10969 .section .text.sftl_read,"ax",%progbits 10970 .align 1 10971 .global sftl_read 10972 .syntax unified 10973 .thumb 10974 .thumb_func 10975 .fpu softvfp 10976 .type sftl_read, %function 10977sftl_read: 10978 @ args = 0, pretend = 0, frame = 0 10979 @ frame_needed = 0, uses_anonymous_args = 0 10980 @ link register save eliminated. 10981 mov r3, r2 10982 mov r2, r1 10983 mov r1, r0 10984 movs r0, #0 10985 b FtlRead 10986 .size sftl_read, .-sftl_read 10987 .section .text.FtlWrite,"ax",%progbits 10988 .align 1 10989 .global FtlWrite 10990 .syntax unified 10991 .thumb 10992 .thumb_func 10993 .fpu softvfp 10994 .type FtlWrite, %function 10995FtlWrite: 10996 @ args = 0, pretend = 0, frame = 72 10997 @ frame_needed = 0, uses_anonymous_args = 0 10998 cmp r0, #16 10999 push {r4, r5, r6, r7, r8, r10, fp, lr} 11000 sub sp, sp, #72 11001 mov r10, r1 11002 str r2, [sp, #16] 11003 str r3, [sp, #20] 11004 bne .L1492 11005 mov r2, r3 11006 ldr r1, [sp, #16] 11007 add r0, r10, #256 11008 bl FtlVendorPartWrite 11009.L1491: 11010 add sp, sp, #72 11011 @ sp needed 11012 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11013.L1492: 11014 ldr r3, .L1538 11015 ldr r3, [r3] 11016 cmp r1, r3 11017 bcs .L1527 11018 ldr r2, [sp, #16] 11019 cmp r2, r3 11020 bhi .L1527 11021 adds r4, r1, r2 11022 cmp r3, r4 11023 bcc .L1527 11024 ldr r3, .L1538+4 11025 ldr r0, [r3] 11026 adds r1, r0, #1 11027 beq .L1491 11028 ldr r3, .L1538+8 11029 mov r2, #2048 11030 mov r0, r10 11031 ldr r7, .L1538+12 11032 str r2, [r3] 11033 ldr r3, .L1538+16 11034 ldrh r5, [r3] 11035 mov r1, r5 11036 bl __aeabi_uidiv 11037 mov r1, r5 11038 str r0, [sp, #12] 11039 subs r0, r4, #1 11040 bl __aeabi_uidiv 11041 ldr r2, [sp, #12] 11042 ldr r1, [sp, #16] 11043 ldr r5, [sp, #12] 11044 subs r3, r0, r2 11045 ldr r2, .L1538+20 11046 str r3, [sp, #32] 11047 adds r3, r3, #1 11048 str r3, [sp, #8] 11049 ldr r3, [r2] 11050 str r0, [sp, #28] 11051 add r3, r3, r1 11052 ldr r1, [sp, #8] 11053 str r3, [r2] 11054 ldr r2, .L1538+24 11055 ldr r3, [r2] 11056 add r3, r3, r1 11057 str r3, [r2] 11058.L1494: 11059 ldr r3, [sp, #8] 11060 cbnz r3, .L1520 11061 ldr r5, .L1538+28 11062 mov r0, r3 11063 ldr r1, [sp, #32] 11064 bl rk_ftl_garbage_collect 11065 ldrh r2, [r5] 11066 cmp r2, #5 11067 bls .L1521 11068.L1523: 11069 movs r0, #0 11070 b .L1491 11071.L1520: 11072 ldr r4, .L1538+32 11073 ldrb r2, [r7, #6] @ zero_extendqisi2 11074 ldrh r3, [r4] 11075 cmp r2, r3 11076 bcc .L1495 11077 movw r2, #1041 11078 ldr r1, .L1538+36 11079 ldr r0, .L1538+40 11080 bl printf 11081.L1495: 11082 ldrh r3, [r7, #4] 11083 cbnz r3, .L1496 11084 mov r0, r7 11085 bl allocate_new_data_superblock 11086.L1496: 11087 ldrb r3, [r7, #7] @ zero_extendqisi2 11088 ldrh r2, [r7, #4] 11089 lsls r3, r3, #2 11090 cmp r3, r2 11091 it cs 11092 movcs r3, r2 11093 ldr r2, [sp, #8] 11094 cmp r3, r2 11095 it cs 11096 movcs r3, r2 11097 ldrb r2, [r7, #6] @ zero_extendqisi2 11098 str r3, [sp, #44] 11099 ldrh r3, [r4] 11100 cmp r2, r3 11101 bcc .L1497 11102 movw r2, #1074 11103 ldr r1, .L1538+36 11104 ldr r0, .L1538+40 11105 bl printf 11106.L1497: 11107 ldr r8, .L1538+44 11108 movs r3, #0 11109 str r3, [sp, #4] 11110.L1498: 11111 ldr r3, [sp, #4] 11112 ldr r2, [sp, #44] 11113 cmp r3, r2 11114 bne .L1518 11115.L1499: 11116 ldr r0, .L1538+44 11117 mov r3, r7 11118 movs r2, #0 11119 ldr r1, [sp, #4] 11120 ldr r0, [r0] 11121 bl FtlProgPages 11122 ldr r3, [sp, #4] 11123 ldr r2, [sp, #8] 11124 cmp r3, r2 11125 bls .L1519 11126 mov r2, #1152 11127 ldr r1, .L1538+36 11128 ldr r0, .L1538+40 11129 bl printf 11130.L1519: 11131 ldr r3, [sp, #8] 11132 ldr r2, [sp, #4] 11133 subs r3, r3, r2 11134 str r3, [sp, #8] 11135 b .L1494 11136.L1518: 11137 ldrh r3, [r7, #4] 11138 cmp r3, #0 11139 beq .L1499 11140 movs r2, #0 11141 add r1, sp, #48 11142 mov r0, r5 11143 movs r6, #20 11144 bl log2phys 11145 mov r0, r7 11146 bl get_new_active_ppa 11147 ldr r2, .L1538+48 11148 ldr r1, [sp, #4] 11149 ldr r3, [sp, #4] 11150 ldrh r2, [r2] 11151 muls r6, r3, r6 11152 ldr r3, [r8] 11153 muls r1, r2, r1 11154 add r3, r3, r6 11155 str r0, [r3, #4] 11156 bic r1, r1, #3 11157 str r5, [r3, #16] 11158 str r1, [sp, #36] 11159 ldr r1, .L1538+52 11160 ldr r0, [sp, #36] 11161 ldr r1, [r1] 11162 add fp, r1, r0 11163 str r1, [sp, #40] 11164 str fp, [r3, #12] 11165 movs r1, #0 11166 mov r0, fp 11167 bl ftl_memset 11168 ldr r3, [sp, #12] 11169 ldr r2, .L1538+16 11170 cmp r5, r3 11171 beq .L1500 11172 ldr r3, [sp, #28] 11173 cmp r5, r3 11174 bne .L1533 11175 ldrh r2, [r2] 11176 ldr r3, [sp, #16] 11177 smulbb r2, r2, r5 11178 add r4, r10, r3 11179 movs r3, #0 11180 str r3, [sp, #24] 11181 subs r4, r4, r2 11182 uxth r4, r4 11183 b .L1503 11184.L1500: 11185 ldrh r4, [r2] 11186 mov r0, r10 11187 mov r1, r4 11188 bl __aeabi_uidivmod 11189 ldr r3, [sp, #16] 11190 subs r4, r4, r1 11191 str r1, [sp, #24] 11192 cmp r4, r3 11193 it cs 11194 movcs r4, r3 11195.L1503: 11196 ldr r3, .L1538+16 11197 ldrh r3, [r3] 11198 cmp r4, r3 11199 ldr r3, [sp, #12] 11200 bne .L1504 11201 cmp r5, r3 11202 ldr r3, [r8] 11203 add r6, r6, r3 11204 bne .L1505 11205 ldr r3, [sp, #20] 11206.L1535: 11207 str r3, [r6, #8] 11208 b .L1506 11209.L1505: 11210 muls r4, r5, r4 11211 ldr r3, [sp, #20] 11212 sub r4, r4, r10 11213 add r4, r3, r4, lsl #9 11214 str r4, [r6, #8] 11215.L1506: 11216 ldr r3, .L1538+32 11217 ldrb r2, [r7, #6] @ zero_extendqisi2 11218 ldrh r3, [r3] 11219 cmp r2, r3 11220 bcc .L1515 11221 movw r2, #1143 11222 ldr r1, .L1538+36 11223 ldr r0, .L1538+40 11224 bl printf 11225.L1515: 11226 ldr r2, [sp, #40] 11227 movw r3, #61589 11228 ldr r1, [sp, #36] 11229 strh r3, [r2, r1] @ movhi 11230 ldr r2, .L1538+56 11231 str r5, [fp, #8] 11232 adds r5, r5, #1 11233 ldr r3, [r2] 11234 str r3, [fp, #4] 11235 adds r3, r3, #1 11236 adds r1, r3, #1 11237 it eq 11238 moveq r3, #0 11239 str r3, [r2] 11240 ldr r3, [sp, #48] 11241 str r3, [fp, #12] 11242 ldrh r3, [r7] 11243 strh r3, [fp, #2] @ movhi 11244 ldr r3, [sp, #4] 11245 adds r3, r3, #1 11246 str r3, [sp, #4] 11247 b .L1498 11248.L1504: 11249 cmp r5, r3 11250 ldr r3, [r8] 11251 ite eq 11252 ldreq r2, .L1538+60 11253 ldrne r2, .L1538+64 11254 add r3, r3, r6 11255 ldr r2, [r2] 11256 str r2, [r3, #8] 11257 ldr r3, [sp, #48] 11258 adds r2, r3, #1 11259 beq .L1509 11260 str r3, [sp, #56] 11261 movs r1, #1 11262 ldr r3, [r8] 11263 add r0, sp, #52 11264 str r5, [sp, #68] 11265 add r3, r3, r6 11266 ldr r2, [r3, #8] 11267 ldr r3, [r3, #12] 11268 str r2, [sp, #60] 11269 movs r2, #0 11270 str r3, [sp, #64] 11271 bl FlashReadPages 11272 ldr r3, [sp, #52] 11273 adds r0, r3, #1 11274 bne .L1510 11275 ldr r1, .L1538+68 11276 ldr r0, .L1538+72 11277 ldr r2, [r1, #72] 11278 adds r2, r2, #1 11279 str r2, [r1, #72] 11280 mov r2, r5 11281 ldr r1, [fp, #8] 11282 bl printf 11283.L1513: 11284 ldr r3, [sp, #12] 11285 lsls r2, r4, #9 11286 cmp r5, r3 11287 bne .L1514 11288 ldr r3, [r8] 11289 ldr r1, [sp, #20] 11290 add r6, r6, r3 11291 ldr r3, [sp, #24] 11292 ldr r0, [r6, #8] 11293 add r0, r0, r3, lsl #9 11294.L1536: 11295 bl ftl_memcpy 11296 b .L1506 11297.L1510: 11298 ldr r1, [fp, #8] 11299 cmp r5, r1 11300 beq .L1512 11301 ldr r2, .L1538+68 11302 ldr r0, .L1538+76 11303 ldr r3, [r2, #72] 11304 adds r3, r3, #1 11305 str r3, [r2, #72] 11306 mov r2, r5 11307 bl printf 11308.L1512: 11309 ldr r3, [fp, #8] 11310 cmp r5, r3 11311 beq .L1513 11312 mov r2, #1128 11313 ldr r1, .L1538+36 11314 ldr r0, .L1538+40 11315 bl printf 11316 b .L1513 11317.L1539: 11318 .align 2 11319.L1538: 11320 .word .LANCHOR33 11321 .word .LANCHOR165 11322 .word .LANCHOR175 11323 .word .LANCHOR50 11324 .word .LANCHOR11 11325 .word .LANCHOR161 11326 .word .LANCHOR84 11327 .word .LANCHOR47 11328 .word .LANCHOR2 11329 .word .LANCHOR176 11330 .word .LC1 11331 .word .LANCHOR104 11332 .word .LANCHOR23 11333 .word .LANCHOR114 11334 .word .LANCHOR82 11335 .word .LANCHOR108 11336 .word .LANCHOR109 11337 .word .LANCHOR134 11338 .word .LC44 11339 .word .LC45 11340.L1509: 11341 ldr r3, [r8] 11342 movs r1, #0 11343 ldr r2, .L1540 11344 add r3, r3, r6 11345 ldrh r2, [r2] 11346 ldr r0, [r3, #8] 11347 bl ftl_memset 11348 b .L1513 11349.L1514: 11350 ldr r3, .L1540+4 11351 ldrh r1, [r3] 11352 ldr r3, [r8] 11353 muls r1, r5, r1 11354 add r6, r6, r3 11355 ldr r3, [sp, #20] 11356 ldr r0, [r6, #8] 11357 sub r1, r1, r10 11358 add r1, r3, r1, lsl #9 11359 b .L1536 11360.L1533: 11361 ldr r3, [r8] 11362 add r6, r6, r3 11363 ldrh r3, [r2] 11364 ldr r2, [sp, #20] 11365 muls r3, r5, r3 11366 sub r3, r3, r10 11367 add r3, r2, r3, lsl #9 11368 b .L1535 11369.L1521: 11370 ldr r6, .L1540+8 11371 mov r4, #256 11372 ldr r7, .L1540+12 11373.L1524: 11374 ldrh r3, [r6] 11375 movw r2, #65535 11376 cmp r3, r2 11377 bne .L1522 11378 ldrh r2, [r7] 11379 cmp r2, r3 11380 bne .L1522 11381 movs r0, #0 11382 bl List_get_gc_head_node 11383 uxth r0, r0 11384 bl FtlGcRefreshBlock 11385.L1522: 11386 ldr r2, .L1540+16 11387 movs r3, #128 11388 movs r1, #1 11389 mov r0, r1 11390 strh r3, [r2] @ movhi 11391 ldr r2, .L1540+20 11392 strh r3, [r2] @ movhi 11393 bl rk_ftl_garbage_collect 11394 movs r1, #1 11395 movs r0, #0 11396 bl rk_ftl_garbage_collect 11397 ldrh r3, [r5] 11398 cmp r3, #2 11399 bhi .L1523 11400 subs r4, r4, #1 11401 bne .L1524 11402 b .L1523 11403.L1527: 11404 mov r0, #-1 11405 b .L1491 11406.L1541: 11407 .align 2 11408.L1540: 11409 .word .LANCHOR22 11410 .word .LANCHOR11 11411 .word .LANCHOR144 11412 .word .LANCHOR71 11413 .word .LANCHOR100 11414 .word .LANCHOR99 11415 .size FtlWrite, .-FtlWrite 11416 .section .text.sftl_gc,"ax",%progbits 11417 .align 1 11418 .global sftl_gc 11419 .syntax unified 11420 .thumb 11421 .thumb_func 11422 .fpu softvfp 11423 .type sftl_gc, %function 11424sftl_gc: 11425 @ args = 0, pretend = 0, frame = 0 11426 @ frame_needed = 0, uses_anonymous_args = 0 11427 @ link register save eliminated. 11428 movs r1, #1 11429 mov r0, r1 11430 b rk_ftl_garbage_collect 11431 .size sftl_gc, .-sftl_gc 11432 .section .text.FtlLoadSysInfo,"ax",%progbits 11433 .align 1 11434 .global FtlLoadSysInfo 11435 .syntax unified 11436 .thumb 11437 .thumb_func 11438 .fpu softvfp 11439 .type FtlLoadSysInfo, %function 11440FtlLoadSysInfo: 11441 @ args = 0, pretend = 0, frame = 8 11442 @ frame_needed = 0, uses_anonymous_args = 0 11443 push {r4, r5, r6, r7, r8, r10, fp, lr} 11444 movs r1, #0 11445 ldr r8, .L1573+140 11446 sub sp, sp, #24 11447 ldr r7, .L1573 11448 ldr r3, [r8] 11449 ldr r4, .L1573+4 11450 ldr fp, .L1573+144 11451 ldrh r2, [r7] 11452 ldr r5, .L1573+8 11453 str r3, [r4, #8] 11454 ldr r6, .L1573+12 11455 ldr r3, [fp] 11456 lsls r2, r2, #1 11457 ldr r0, [r5] 11458 str r3, [r4, #12] 11459 bl ftl_memset 11460 ldrh r0, [r6] 11461 movw r3, #65535 11462 str r5, [sp, #16] 11463 cmp r0, r3 11464 bne .L1544 11465.L1555: 11466 mov r0, #-1 11467.L1543: 11468 add sp, sp, #24 11469 @ sp needed 11470 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11471.L1544: 11472 movs r1, #1 11473 bl FtlGetLastWrittenPage 11474 ldrsh r10, [r6] 11475 sxth r5, r0 11476 adds r0, r0, #1 11477 strh r0, [r6, #2] @ movhi 11478.L1546: 11479 cmp r5, #0 11480 bge .L1552 11481 movw r2, #1474 11482 ldr r1, .L1573+16 11483 ldr r0, .L1573+20 11484 bl printf 11485 b .L1551 11486.L1552: 11487 orr r3, r5, r10, lsl #10 11488 movs r2, #1 11489 mov r1, r2 11490 ldr r0, .L1573+4 11491 str r3, [r4, #4] 11492 ldr r3, [r8] 11493 str r3, [r4, #8] 11494 bl FlashReadPages 11495 ldr r3, [r4, #12] 11496 ldr r3, [r3, #12] 11497 str r3, [sp, #20] 11498 cbz r3, .L1547 11499 ldr r2, [r4] 11500 adds r2, r2, #1 11501 beq .L1547 11502 ldr r2, .L1573+24 11503 ldr r0, [r4, #8] 11504 ldrh r1, [r2] 11505 bl js_hash 11506 ldr r3, [sp, #20] 11507 cmp r3, r0 11508 beq .L1547 11509 str r0, [sp, #8] 11510 mov r2, r10 11511 str r3, [sp, #4] 11512 ldrh r3, [r6, #4] 11513 ldr r1, .L1573+16 11514 ldr r0, .L1573+28 11515 str r3, [sp] 11516 mov r3, r5 11517 bl printf 11518 cbnz r5, .L1548 11519 ldrh r3, [r6, #4] 11520 cmp r10, r3 11521 beq .L1548 11522 sxth r10, r3 11523 ldr r3, .L1573+32 11524 ldrh r5, [r3] 11525.L1550: 11526 subs r5, r5, #1 11527 sxth r5, r5 11528 b .L1546 11529.L1548: 11530 mov r3, #-1 11531 str r3, [r4] 11532.L1547: 11533 ldr r3, [r4] 11534 adds r3, r3, #1 11535 beq .L1550 11536 ldr r3, [r8] 11537 ldr r2, .L1573+36 11538 ldr r3, [r3] 11539 cmp r3, r2 11540 bne .L1550 11541 ldr r3, [fp] 11542 ldrh r2, [r3] 11543 movw r3, #61604 11544 cmp r2, r3 11545 bne .L1550 11546.L1551: 11547 ldr r2, .L1573+24 11548 ldrh r3, [r7] 11549 ldrh r2, [r2] 11550 adds r3, r3, #24 11551 cmp r2, r3, lsl #1 11552 bcs .L1554 11553 movw r2, #1476 11554 ldr r1, .L1573+16 11555 ldr r0, .L1573+20 11556 bl printf 11557.L1554: 11558 ldr r5, .L1573+40 11559 movs r2, #48 11560 ldr r1, [r4, #8] 11561 mov r0, r5 11562 bl ftl_memcpy 11563 ldrh r2, [r7] 11564 ldr r1, [r4, #8] 11565 mov r4, r5 11566 ldr r3, [sp, #16] 11567 lsls r2, r2, #1 11568 adds r1, r1, #48 11569 ldr r0, [r3] 11570 bl ftl_memcpy 11571 ldr r2, [r5] 11572 ldr r3, .L1573+36 11573 cmp r2, r3 11574 bne .L1555 11575 ldr r3, .L1573+44 11576 ldrb r2, [r4, #10] @ zero_extendqisi2 11577 ldrh r5, [r5, #8] 11578 ldrh r3, [r3] 11579 strh r5, [r6, #6] @ movhi 11580 cmp r2, r3 11581 bne .L1555 11582 ldr r3, .L1573+48 11583 ldr r2, .L1573+52 11584 str r5, [r3] 11585 ldr r3, .L1573+56 11586 ldrh r3, [r3] 11587 muls r3, r5, r3 11588 str r3, [r2] 11589 ldr r2, .L1573+60 11590 ldrh r2, [r2] 11591 muls r3, r2, r3 11592 ldr r2, .L1573+64 11593 str r3, [r2] 11594 ldr r3, .L1573+68 11595 ldr r6, [r3] 11596 ldr r3, .L1573+72 11597 ldrh r0, [r3, #6] 11598 ldr r3, .L1573+76 11599 subs r0, r6, r0 11600 ldrh r1, [r3] 11601 subs r0, r0, r5 11602 bl __aeabi_uidiv 11603 ldr r3, .L1573+80 11604 cmp r5, r6 11605 strh r0, [r3] @ movhi 11606 bls .L1556 11607 movw r2, #1498 11608 ldr r1, .L1573+16 11609 ldr r0, .L1573+20 11610 bl printf 11611.L1556: 11612 ldrh r2, [r4, #16] 11613 ldr r3, .L1573+84 11614 ldrh ip, [r4, #14] 11615 ldr r7, .L1573+88 11616 lsrs r1, r2, #6 11617 and r2, r2, #63 11618 strb r2, [r3, #6] 11619 ldrb r2, [r4, #11] @ zero_extendqisi2 11620 strh r1, [r3, #2] @ movhi 11621 ldr r1, .L1573+92 11622 strb r2, [r3, #8] 11623 ldrh r2, [r4, #18] 11624 strh ip, [r3] @ movhi 11625 movw r3, #65535 11626 strh r3, [r7] @ movhi 11627 movs r3, #0 11628 strh r2, [r1] @ movhi 11629 ldrh r2, [r4, #20] 11630 strh r3, [r7, #2] @ movhi 11631 strb r3, [r7, #6] 11632 strb r3, [r7, #8] 11633 lsrs r5, r2, #6 11634 and r2, r2, #63 11635 strb r2, [r1, #6] 11636 ldrb r2, [r4, #12] @ zero_extendqisi2 11637 strh r5, [r1, #2] @ movhi 11638 ldrh r5, [r4, #22] 11639 strb r2, [r1, #8] 11640 ldr r2, .L1573+96 11641 strh r5, [r2] @ movhi 11642 ldrh r5, [r4, #24] 11643 lsrs r6, r5, #6 11644 and r5, r5, #63 11645 strb r5, [r2, #6] 11646 ldrb r5, [r4, #13] @ zero_extendqisi2 11647 strh r6, [r2, #2] @ movhi 11648 ldr r6, [r4, #32] 11649 strb r5, [r2, #8] 11650 ldr r5, .L1573+100 11651 str r3, [r5] 11652 ldr r5, .L1573+104 11653 str r3, [r5] 11654 ldr r5, .L1573+108 11655 str r3, [r5] 11656 ldr r5, .L1573+112 11657 str r3, [r5] 11658 ldr r5, .L1573+116 11659 str r6, [r5] 11660 mov r6, r1 11661 ldr r5, .L1573+120 11662 str r3, [r5] 11663 ldr r5, .L1573+124 11664 str r3, [r5] 11665 ldr r5, .L1573+128 11666 ldr lr, [r4, #40] 11667 str r3, [r5] 11668 ldr r3, .L1573+132 11669 ldr r5, [r3] 11670 cmp lr, r5 11671 mov r5, r2 11672 it hi 11673 strhi lr, [r3] 11674 ldr r3, .L1573+136 11675 ldr r2, [r4, #36] 11676 ldr r1, [r3] 11677 cmp r2, r1 11678 it hi 11679 strhi r2, [r3] 11680 movw r3, #65535 11681 cmp ip, r3 11682 beq .L1559 11683 ldr r0, .L1573+84 11684 bl make_superblock 11685.L1559: 11686 ldrh r2, [r6] 11687 movw r3, #65535 11688 cmp r2, r3 11689 beq .L1560 11690 ldr r0, .L1573+92 11691 bl make_superblock 11692.L1560: 11693 ldrh r2, [r5] 11694 movw r3, #65535 11695 cmp r2, r3 11696 beq .L1561 11697 ldr r0, .L1573+96 11698 bl make_superblock 11699.L1561: 11700 ldrh r2, [r7] 11701 movw r3, #65535 11702 cmp r2, r3 11703 beq .L1562 11704 ldr r0, .L1573+88 11705 bl make_superblock 11706.L1562: 11707 movs r0, #0 11708 b .L1543 11709.L1574: 11710 .align 2 11711.L1573: 11712 .word .LANCHOR4 11713 .word .LANCHOR137 11714 .word .LANCHOR41 11715 .word .LANCHOR138 11716 .word .LANCHOR177 11717 .word .LC1 11718 .word .LANCHOR22 11719 .word .LC46 11720 .word .LANCHOR19 11721 .word 1179929683 11722 .word .LANCHOR38 11723 .word .LANCHOR9 11724 .word .LANCHOR178 11725 .word .LANCHOR151 11726 .word .LANCHOR18 11727 .word .LANCHOR11 11728 .word .LANCHOR33 11729 .word .LANCHOR6 11730 .word .LANCHOR36 11731 .word .LANCHOR2 11732 .word .LANCHOR170 11733 .word .LANCHOR50 11734 .word .LANCHOR144 11735 .word .LANCHOR51 11736 .word .LANCHOR52 11737 .word .LANCHOR83 11738 .word .LANCHOR84 11739 .word .LANCHOR88 11740 .word .LANCHOR87 11741 .word .LANCHOR89 11742 .word .LANCHOR90 11743 .word .LANCHOR91 11744 .word .LANCHOR86 11745 .word .LANCHOR81 11746 .word .LANCHOR82 11747 .word .LANCHOR105 11748 .word .LANCHOR113 11749 .size FtlLoadSysInfo, .-FtlLoadSysInfo 11750 .section .text.FtlMapTblRecovery,"ax",%progbits 11751 .align 1 11752 .global FtlMapTblRecovery 11753 .syntax unified 11754 .thumb 11755 .thumb_func 11756 .fpu softvfp 11757 .type FtlMapTblRecovery, %function 11758FtlMapTblRecovery: 11759 @ args = 0, pretend = 0, frame = 32 11760 @ frame_needed = 0, uses_anonymous_args = 0 11761 ldr r3, [r0, #24] 11762 movs r1, #0 11763 push {r4, r5, r6, r7, r8, r10, fp, lr} 11764 sub sp, sp, #40 11765 mov r4, r0 11766 ldr r8, [r0, #12] 11767 movs r7, #0 11768 str r3, [sp, #8] 11769 ldr r3, [r0, #16] 11770 ldr r6, .L1616 11771 str r3, [sp, #24] 11772 ldrh r3, [r0, #6] 11773 str r3, [sp, #12] 11774 ldrh r3, [r0, #8] 11775 ldr r0, [sp, #8] 11776 str r3, [sp, #16] 11777 ldr r3, [sp, #12] 11778 lsls r2, r3, #2 11779 bl ftl_memset 11780 ldr r3, .L1616+4 11781 str r7, [r4, #32] 11782 str r7, [r4, #28] 11783 ldr r2, [r3] 11784 str r3, [sp, #20] 11785 str r2, [r6, #8] 11786 ldr r2, .L1616+8 11787 ldr fp, [r2] 11788 movw r2, #65535 11789 str fp, [r6, #12] 11790 strh r2, [r4] @ movhi 11791 strh r2, [r4, #2] @ movhi 11792 movs r2, #1 11793 str r2, [r4, #36] 11794.L1576: 11795 ldr r3, [sp, #16] 11796 sxth r5, r7 11797 cmp r5, r3 11798 bge .L1595 11799 ldr r3, [sp, #16] 11800 subs r3, r3, #1 11801 cmp r5, r3 11802 bne .L1577 11803 movs r1, #1 11804 ldrh r0, [r8, r5, lsl #1] 11805 bl FtlGetLastWrittenPage 11806 sxth r3, r0 11807 ldr r6, .L1616 11808 add r10, r8, r5, lsl #1 11809 strh r7, [r4] @ movhi 11810 str r3, [sp, #16] 11811 movs r7, #0 11812 ldr r3, [sp, #24] 11813 adds r0, r0, #1 11814 strh r0, [r4, #2] @ movhi 11815 ldr r3, [r3, r5, lsl #2] 11816 str r3, [r4, #28] 11817.L1578: 11818 ldr r3, [sp, #16] 11819 sxth r8, r7 11820 cmp r8, r3 11821 ble .L1581 11822.L1595: 11823 mov r0, r4 11824 bl ftl_free_no_use_map_blk 11825 ldr r3, .L1616+12 11826 ldrh r2, [r4, #2] 11827 ldrh r3, [r3] 11828 cmp r2, r3 11829 bne .L1583 11830 mov r0, r4 11831 bl ftl_map_blk_alloc_new_blk 11832.L1583: 11833 mov r0, r4 11834 bl ftl_map_blk_gc 11835 mov r0, r4 11836 bl ftl_map_blk_gc 11837 movs r0, #0 11838 add sp, sp, #40 11839 @ sp needed 11840 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11841.L1581: 11842 ldrh r2, [r10] 11843 ldr r0, .L1616 11844 orr r2, r8, r2, lsl #10 11845 str r2, [r6, #4] 11846 movs r2, #1 11847 mov r1, r2 11848 bl FlashReadPages 11849 ldr r2, [r6, #12] 11850 ldr r2, [r2, #12] 11851 str r2, [sp, #20] 11852 cbz r2, .L1579 11853 ldr r1, [r6] 11854 adds r1, r1, #1 11855 beq .L1579 11856 ldr r3, .L1616+16 11857 ldr r0, [r6, #8] 11858 ldrh r1, [r3] 11859 bl js_hash 11860 ldr r2, [sp, #20] 11861 cmp r2, r0 11862 beq .L1579 11863 str r0, [sp, #4] 11864 mov r3, r8 11865 str r2, [sp] 11866 mov r2, r5 11867 ldr r1, .L1616+20 11868 ldr r0, .L1616+24 11869 bl printf 11870 mov r3, #-1 11871 str r3, [r6] 11872.L1579: 11873 ldr r3, [r6] 11874 adds r3, r3, #1 11875 beq .L1580 11876 ldrh r3, [fp, #8] 11877 ldr r2, [sp, #12] 11878 cmp r2, r3 11879 bls .L1580 11880 ldrh r1, [fp] 11881 ldrh r2, [r4, #4] 11882 cmp r1, r2 11883 ittt eq 11884 ldreq r2, [r6, #4] 11885 ldreq r1, [sp, #8] 11886 streq r2, [r1, r3, lsl #2] 11887.L1580: 11888 adds r7, r7, #1 11889 b .L1578 11890.L1577: 11891 ldr r3, [sp, #20] 11892 ldr r10, .L1616+12 11893 ldrh r2, [r8, r5, lsl #1] 11894 ldr r3, [r3] 11895 ldr r0, .L1616 11896 str r3, [r6, #8] 11897 add r3, r8, r5, lsl #1 11898 str r3, [sp, #28] 11899 ldrh r3, [r10] 11900 subs r3, r3, #1 11901 orr r3, r3, r2, lsl #10 11902 movs r2, #1 11903 mov r1, r2 11904 str r3, [r6, #4] 11905 bl FlashReadPages 11906 ldr r3, [r6] 11907 adds r3, r3, #1 11908 beq .L1597 11909 ldrh r2, [fp] 11910 ldrh r3, [r4, #4] 11911 cmp r2, r3 11912 bne .L1597 11913 ldrh r2, [fp, #8] 11914 movw r3, #64245 11915 cmp r2, r3 11916 beq .L1585 11917.L1597: 11918 mov r10, #0 11919.L1586: 11920 ldr r2, .L1616+12 11921 sxth r3, r10 11922 ldrh r2, [r2] 11923 cmp r3, r2 11924 bge .L1593 11925 ldr r2, [sp, #28] 11926 ldr r0, .L1616 11927 str r3, [sp, #36] 11928 ldrh r2, [r2] 11929 orr r2, r3, r2, lsl #10 11930 str r2, [r6, #4] 11931 movs r2, #1 11932 mov r1, r2 11933 bl FlashReadPages 11934 ldr r2, [r6, #12] 11935 ldr r2, [r2, #12] 11936 str r2, [sp, #32] 11937 cbz r2, .L1590 11938 ldr r1, [r6] 11939 adds r1, r1, #1 11940 beq .L1590 11941 ldr r1, .L1616+16 11942 ldr r0, [r6, #8] 11943 ldrh r1, [r1] 11944 bl js_hash 11945 ldr r2, [sp, #32] 11946 cmp r2, r0 11947 beq .L1590 11948 str r0, [sp, #4] 11949 str r2, [sp] 11950 mov r2, r5 11951 ldr r3, [sp, #36] 11952 ldr r1, .L1616+20 11953 ldr r0, .L1616+28 11954 bl printf 11955 mov r3, #-1 11956 str r3, [r6] 11957.L1590: 11958 ldr r3, [r6] 11959 adds r3, r3, #1 11960 beq .L1591 11961 ldrh r3, [fp, #8] 11962 ldr r2, [sp, #12] 11963 cmp r2, r3 11964 bls .L1591 11965 ldrh r1, [fp] 11966 ldrh r2, [r4, #4] 11967 cmp r1, r2 11968 ittt eq 11969 ldreq r2, [r6, #4] 11970 ldreq r1, [sp, #8] 11971 streq r2, [r1, r3, lsl #2] 11972.L1591: 11973 add r10, r10, #1 11974 b .L1586 11975.L1585: 11976 ldr r3, [sp, #20] 11977 movs r1, #0 11978 ldrh r2, [r10] 11979 ldr r0, [r3] 11980 add lr, r2, #-1 11981.L1587: 11982 sxth r3, r1 11983 cmp r3, lr 11984 blt .L1589 11985.L1593: 11986 adds r7, r7, #1 11987 b .L1576 11988.L1589: 11989 lsls r5, r3, #3 11990 ldr r3, [r0, r3, lsl #3] 11991 ldr r2, [sp, #12] 11992 uxth ip, r3 11993 cmp r2, ip 11994 bls .L1588 11995 add r5, r5, r0 11996 ldr r2, [sp, #8] 11997 ldr r5, [r5, #4] 11998 str r5, [r2, ip, lsl #2] 11999.L1588: 12000 adds r1, r1, #1 12001 b .L1587 12002.L1617: 12003 .align 2 12004.L1616: 12005 .word .LANCHOR137 12006 .word .LANCHOR105 12007 .word .LANCHOR113 12008 .word .LANCHOR19 12009 .word .LANCHOR22 12010 .word .LANCHOR179 12011 .word .LC47 12012 .word .LC48 12013 .size FtlMapTblRecovery, .-FtlMapTblRecovery 12014 .section .text.FtlLoadVonderInfo,"ax",%progbits 12015 .align 1 12016 .global FtlLoadVonderInfo 12017 .syntax unified 12018 .thumb 12019 .thumb_func 12020 .fpu softvfp 12021 .type FtlLoadVonderInfo, %function 12022FtlLoadVonderInfo: 12023 @ args = 0, pretend = 0, frame = 0 12024 @ frame_needed = 0, uses_anonymous_args = 0 12025 push {r3, lr} 12026 ldr r3, .L1619 12027 ldr r0, .L1619+4 12028 ldrh r3, [r3] 12029 strh r3, [r0, #10] @ movhi 12030 movw r3, #61574 12031 strh r3, [r0, #4] @ movhi 12032 ldr r3, .L1619+8 12033 ldrh r3, [r3] 12034 strh r3, [r0, #8] @ movhi 12035 ldr r3, .L1619+12 12036 ldrh r3, [r3] 12037 strh r3, [r0, #6] @ movhi 12038 ldr r3, .L1619+16 12039 ldr r3, [r3] 12040 str r3, [r0, #12] 12041 ldr r3, .L1619+20 12042 ldr r3, [r3] 12043 str r3, [r0, #16] 12044 ldr r3, .L1619+24 12045 ldr r3, [r3] 12046 str r3, [r0, #20] 12047 ldr r3, .L1619+28 12048 ldr r3, [r3] 12049 str r3, [r0, #24] 12050 bl FtlMapTblRecovery 12051 movs r0, #0 12052 pop {r3, pc} 12053.L1620: 12054 .align 2 12055.L1619: 12056 .word .LANCHOR26 12057 .word .LANCHOR160 12058 .word .LANCHOR34 12059 .word .LANCHOR27 12060 .word .LANCHOR35 12061 .word .LANCHOR121 12062 .word .LANCHOR120 12063 .word .LANCHOR122 12064 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 12065 .section .text.FtlLoadMapInfo,"ax",%progbits 12066 .align 1 12067 .global FtlLoadMapInfo 12068 .syntax unified 12069 .thumb 12070 .thumb_func 12071 .fpu softvfp 12072 .type FtlLoadMapInfo, %function 12073FtlLoadMapInfo: 12074 @ args = 0, pretend = 0, frame = 0 12075 @ frame_needed = 0, uses_anonymous_args = 0 12076 push {r3, lr} 12077 bl FtlL2PDataInit 12078 ldr r0, .L1622 12079 bl FtlMapTblRecovery 12080 movs r0, #0 12081 pop {r3, pc} 12082.L1623: 12083 .align 2 12084.L1622: 12085 .word .LANCHOR128 12086 .size FtlLoadMapInfo, .-FtlLoadMapInfo 12087 .section .text.FtlSysBlkInit,"ax",%progbits 12088 .align 1 12089 .global FtlSysBlkInit 12090 .syntax unified 12091 .thumb 12092 .thumb_func 12093 .fpu softvfp 12094 .type FtlSysBlkInit, %function 12095FtlSysBlkInit: 12096 @ args = 0, pretend = 0, frame = 0 12097 @ frame_needed = 0, uses_anonymous_args = 0 12098 push {r3, r4, r5, r6, r7, lr} 12099 movs r3, #0 12100 ldr r4, .L1637 12101 strh r3, [r4] @ movhi 12102 ldr r3, .L1637+4 12103 ldrh r0, [r3] 12104 bl FtlFreeSysBlkQueueInit 12105 bl FtlScanSysBlk 12106 ldr r3, .L1637+8 12107 ldrh r2, [r3] 12108 movw r3, #65535 12109 cmp r2, r3 12110 bne .L1625 12111.L1627: 12112 mov r6, #-1 12113.L1624: 12114 mov r0, r6 12115 pop {r3, r4, r5, r6, r7, pc} 12116.L1625: 12117 bl FtlLoadSysInfo 12118 mov r6, r0 12119 cmp r0, #0 12120 bne .L1627 12121 bl FtlLoadMapInfo 12122 bl FtlLoadVonderInfo 12123 bl Ftl_load_ext_data 12124 bl FtlLoadEctTbl 12125 bl FtlFreeSysBLkSort 12126 bl SupperBlkListInit 12127 bl FtlPowerLostRecovery 12128 movs r0, #1 12129 bl FtlUpdateVaildLpn 12130 ldr r3, .L1637+12 12131 movs r0, #12 12132 ldrh r1, [r3] 12133 ldr r3, .L1637+16 12134 ldr r2, [r3] 12135 mov r3, r6 12136.L1628: 12137 cmp r3, r1 12138 bge .L1633 12139 mla r5, r0, r3, r2 12140 ldr r5, [r5, #4] 12141 cmp r5, #0 12142 bge .L1629 12143.L1633: 12144 ldr r0, .L1637+20 12145 cmp r3, r1 12146 ldr r2, [r0] 12147 add r2, r2, #32 12148 str r2, [r0] 12149 bge .L1635 12150.L1630: 12151 ldr r5, .L1637+24 12152 ldr r4, .L1637+28 12153 mov r0, r5 12154 bl FtlSuperblockPowerLostFix 12155 mov r0, r4 12156 bl FtlSuperblockPowerLostFix 12157 ldr r3, .L1637+32 12158 ldrh r1, [r5] 12159 ldrh r0, [r5, #4] 12160 ldr r2, [r3] 12161 ldrh r3, [r2, r1, lsl #1] 12162 subs r3, r3, r0 12163 ldr r0, .L1637+36 12164 strh r3, [r2, r1, lsl #1] @ movhi 12165 ldrh r7, [r4, #4] 12166 ldrh r3, [r0] 12167 strh r3, [r5, #2] @ movhi 12168 movs r3, #0 12169 strb r3, [r5, #6] 12170 strh r3, [r5, #4] @ movhi 12171 ldrh r5, [r4] 12172 ldrh r1, [r2, r5, lsl #1] 12173 subs r1, r1, r7 12174 strh r1, [r2, r5, lsl #1] @ movhi 12175 ldrh r2, [r0] 12176 strb r3, [r4, #6] 12177 strh r3, [r4, #4] @ movhi 12178 strh r2, [r4, #2] @ movhi 12179 ldr r2, .L1637+40 12180 ldrh r3, [r2, #30] 12181 adds r3, r3, #1 12182 strh r3, [r2, #30] @ movhi 12183 bl l2p_flush 12184 bl FtlVpcTblFlush 12185.L1636: 12186 bl FtlVpcTblFlush 12187 b .L1624 12188.L1629: 12189 adds r3, r3, #1 12190 b .L1628 12191.L1635: 12192 ldrh r3, [r4] 12193 cmp r3, #0 12194 bne .L1630 12195 bl l2p_flush 12196 b .L1636 12197.L1638: 12198 .align 2 12199.L1637: 12200 .word .LANCHOR155 12201 .word .LANCHOR3 12202 .word .LANCHOR138 12203 .word .LANCHOR32 12204 .word .LANCHOR54 12205 .word .LANCHOR82 12206 .word .LANCHOR50 12207 .word .LANCHOR51 12208 .word .LANCHOR41 12209 .word .LANCHOR18 12210 .word .LANCHOR38 12211 .size FtlSysBlkInit, .-FtlSysBlkInit 12212 .section .text.ftl_low_format,"ax",%progbits 12213 .align 1 12214 .global ftl_low_format 12215 .syntax unified 12216 .thumb 12217 .thumb_func 12218 .fpu softvfp 12219 .type ftl_low_format, %function 12220ftl_low_format: 12221 @ args = 0, pretend = 0, frame = 16 12222 @ frame_needed = 0, uses_anonymous_args = 0 12223 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 12224 movs r3, #0 12225 ldr r2, .L1663 12226 ldr r4, .L1663+4 12227 str r3, [r2] 12228 ldr r5, .L1663+8 12229 ldr r2, .L1663+12 12230 mov r8, r4 12231 ldrh r0, [r4] 12232 str r3, [r5] 12233 str r3, [r2] 12234 bl FtlFreeSysBlkQueueInit 12235 bl FtlLoadBbt 12236 cbz r0, .L1640 12237 bl FtlMakeBbt 12238.L1640: 12239 ldr r3, .L1663+16 12240 ldr r2, .L1663+20 12241 ldr r7, .L1663+24 12242 ldrh r1, [r3] 12243 ldr r4, [r2] 12244 ldr r2, .L1663+28 12245 str r3, [sp, #4] 12246 lsls r1, r1, #7 12247 ldr r6, [r2] 12248 movs r2, #0 12249.L1641: 12250 uxth r3, r2 12251 adds r2, r2, #1 12252 cmp r3, r1 12253 blt .L1642 12254 ldr r7, .L1663+32 12255 mov r10, #0 12256 ldr r6, .L1663+36 12257 ldrh r4, [r7] 12258 mov fp, r6 12259.L1643: 12260 ldrh r3, [r6] 12261 cmp r3, r4 12262 bhi .L1644 12263 ldr r6, .L1663+40 12264 sub r3, r10, #2 12265 ldrh r1, [r6] 12266 cmp r3, r1, lsl #1 12267 bgt .L1645 12268.L1649: 12269 movs r4, #0 12270 mov r8, r4 12271.L1646: 12272 ldrh r3, [r7] 12273 uxth r0, r4 12274 adds r4, r4, #1 12275 cmp r3, r0 12276 bhi .L1650 12277 ldrh r2, [fp] 12278 ldr r3, .L1663+44 12279 ldrh r4, [r6] 12280 ldr r6, .L1663+48 12281 str r2, [r3] 12282 ldr r3, .L1663+52 12283 mov r1, r4 12284 ldr r7, .L1663+56 12285 ldr r2, [r3] 12286 mov r0, r2 12287 str r2, [sp, #12] 12288 bl __aeabi_uidiv 12289 ubfx r10, r0, #5, #16 12290 mov r3, r0 12291 add r1, r10, #36 12292 str r0, [r7] 12293 strh r1, [r6] @ movhi 12294 movs r1, #24 12295 muls r1, r4, r1 12296 cmp r8, r1 12297 ble .L1651 12298 ldr r2, [sp, #12] 12299 mov r1, r4 12300 str r0, [sp, #8] 12301 sub r0, r2, r8 12302 bl __aeabi_uidiv 12303 ldr r3, [sp, #8] 12304 str r0, [r7] 12305 lsrs r0, r0, #5 12306 adds r0, r0, #24 12307 strh r0, [r6] @ movhi 12308.L1651: 12309 ldr r2, .L1663+60 12310 ldrh r2, [r2] 12311 cbz r2, .L1653 12312 ldrh r1, [r6] 12313 add r1, r1, r2, lsr #1 12314 strh r1, [r6] @ movhi 12315 mul r1, r4, r2 12316 cmp r8, r1 12317 itttt lt 12318 addlt r2, r2, #32 12319 strlt r3, [r7] 12320 addlt r2, r2, r10 12321 strhlt r2, [r6] @ movhi 12322.L1653: 12323 ldrh r2, [r6] 12324 ldr r3, [r7] 12325 ldr r6, .L1663+64 12326 subs r3, r3, r2 12327 muls r4, r3, r4 12328 ldr r3, .L1663+68 12329 ldrh r3, [r3] 12330 str r4, [r6] 12331 muls r4, r3, r4 12332 ldr r3, [sp, #4] 12333 ldrh r3, [r3] 12334 str r4, [r7] 12335 ldr r7, .L1663+72 12336 muls r4, r3, r4 12337 ldr r3, .L1663+76 12338 str r4, [r3] 12339 bl FtlBbmTblFlush 12340 ldrh r2, [fp] 12341 movs r1, #0 12342 ldr r0, [r7] 12343 ldr r4, .L1663+80 12344 lsls r2, r2, #1 12345 mov r10, r4 12346 bl ftl_memset 12347 ldr r2, .L1663+84 12348 movs r3, #0 12349 movw r1, #65535 12350 strh r3, [r4, #2] @ movhi 12351 mov r8, r1 12352 strb r3, [r4, #6] 12353 str r3, [r2] 12354 ldr r2, .L1663+88 12355 strh r3, [r4] @ movhi 12356 strh r3, [r2, #2] @ movhi 12357 strb r3, [r2, #6] 12358 strb r3, [r2, #8] 12359 movs r3, #1 12360 strh r1, [r2] @ movhi 12361 strb r3, [r4, #8] 12362.L1655: 12363 mov r0, r10 12364 bl make_superblock 12365 ldrb r3, [r4, #7] @ zero_extendqisi2 12366 ldrh r2, [r4] 12367 cmp r3, #0 12368 bne .L1656 12369 ldr r3, [r7] 12370 strh r8, [r3, r2, lsl #1] @ movhi 12371 ldrh r3, [r4] 12372 adds r3, r3, #1 12373 strh r3, [r4] @ movhi 12374 b .L1655 12375.L1642: 12376 mvns r0, r3 12377 orr r0, r3, r0, lsl #16 12378 str r0, [r4, r3, lsl #2] 12379 str r7, [r6, r3, lsl #2] 12380 b .L1641 12381.L1644: 12382 mov r0, r4 12383 movs r1, #1 12384 bl FtlLowFormatEraseBlock 12385 adds r4, r4, #1 12386 add r10, r10, r0 12387 uxth r10, r10 12388 uxth r4, r4 12389 b .L1643 12390.L1645: 12391 mov r0, r10 12392 bl __aeabi_uidiv 12393 ldr r3, .L1663+92 12394 ldr r3, [r3] 12395 add r0, r0, r3 12396 uxth r0, r0 12397 bl FtlSysBlkNumInit 12398 ldrh r0, [r8] 12399 bl FtlFreeSysBlkQueueInit 12400 ldrh r4, [r7] 12401.L1647: 12402 ldrh r3, [fp] 12403 cmp r3, r4 12404 bls .L1649 12405 mov r0, r4 12406 movs r1, #1 12407 adds r4, r4, #1 12408 bl FtlLowFormatEraseBlock 12409 uxth r4, r4 12410 b .L1647 12411.L1650: 12412 movs r1, #0 12413 bl FtlLowFormatEraseBlock 12414 add r8, r8, r0 12415 uxth r8, r8 12416 b .L1646 12417.L1656: 12418 ldr r3, [r5] 12419 movw r8, #65535 12420 ldrh r1, [r4, #4] 12421 str r3, [r4, #12] 12422 adds r3, r3, #1 12423 str r3, [r5] 12424 ldr r3, [r7] 12425 strh r1, [r3, r2, lsl #1] @ movhi 12426 movs r2, #0 12427 ldr r3, .L1663+96 12428 strh r2, [r3, #2] @ movhi 12429 mov r10, r3 12430 strb r2, [r3, #6] 12431 ldrh r2, [r4] 12432 mov r4, r3 12433 adds r2, r2, #1 12434 strh r2, [r3] @ movhi 12435 movs r2, #1 12436 strb r2, [r3, #8] 12437.L1657: 12438 mov r0, r10 12439 bl make_superblock 12440 ldrb r3, [r4, #7] @ zero_extendqisi2 12441 ldrh r2, [r4] 12442 cbnz r3, .L1658 12443 ldr r3, [r7] 12444 strh r8, [r3, r2, lsl #1] @ movhi 12445 ldrh r3, [r4] 12446 adds r3, r3, #1 12447 strh r3, [r4] @ movhi 12448 b .L1657 12449.L1658: 12450 ldr r3, [r5] 12451 ldrh r1, [r4, #4] 12452 str r3, [r4, #12] 12453 adds r3, r3, #1 12454 str r3, [r5] 12455 movw r4, #65535 12456 ldr r3, [r7] 12457 strh r1, [r3, r2, lsl #1] @ movhi 12458 ldr r3, .L1663+100 12459 strh r4, [r3] @ movhi 12460 bl FtlFreeSysBlkQueueOut 12461 ldr r3, .L1663+104 12462 movs r2, #0 12463 strh r2, [r3, #2] @ movhi 12464 ldr r2, [r6] 12465 strh r0, [r3] @ movhi 12466 strh r4, [r3, #4] @ movhi 12467 strh r2, [r3, #6] @ movhi 12468 ldr r2, [r5] 12469 str r2, [r3, #8] 12470 adds r2, r2, #1 12471 str r2, [r5] 12472 bl FtlVpcTblFlush 12473 bl FtlSysBlkInit 12474 cbnz r0, .L1659 12475 ldr r3, .L1663+108 12476 movs r2, #1 12477 str r2, [r3] 12478.L1659: 12479 movs r0, #0 12480 add sp, sp, #16 12481 @ sp needed 12482 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12483.L1664: 12484 .align 2 12485.L1663: 12486 .word .LANCHOR82 12487 .word .LANCHOR3 12488 .word .LANCHOR81 12489 .word .LANCHOR142 12490 .word .LANCHOR11 12491 .word .LANCHOR108 12492 .word 168778952 12493 .word .LANCHOR109 12494 .word .LANCHOR4 12495 .word .LANCHOR5 12496 .word .LANCHOR2 12497 .word .LANCHOR98 12498 .word .LANCHOR170 12499 .word .LANCHOR6 12500 .word .LANCHOR151 12501 .word .LANCHOR14 12502 .word .LANCHOR178 12503 .word .LANCHOR18 12504 .word .LANCHOR41 12505 .word .LANCHOR33 12506 .word .LANCHOR50 12507 .word .LANCHOR58 12508 .word .LANCHOR144 12509 .word .LANCHOR30 12510 .word .LANCHOR51 12511 .word .LANCHOR52 12512 .word .LANCHOR138 12513 .word .LANCHOR165 12514 .size ftl_low_format, .-ftl_low_format 12515 .section .text.sftl_init,"ax",%progbits 12516 .align 1 12517 .global sftl_init 12518 .syntax unified 12519 .thumb 12520 .thumb_func 12521 .fpu softvfp 12522 .type sftl_init, %function 12523sftl_init: 12524 @ args = 0, pretend = 0, frame = 0 12525 @ frame_needed = 0, uses_anonymous_args = 0 12526 push {r4, r5, r6, lr} 12527 mov r3, #-1 12528 ldr r4, .L1677 12529 movs r6, #0 12530 ldr r1, .L1677+4 12531 ldr r0, .L1677+8 12532 str r3, [r4] 12533 bl printf 12534 ldr r0, .L1677+12 12535 bl FtlConstantsInit 12536 ldr r5, .L1677+16 12537 bl FtlMemInit 12538 bl FtlVariablesInit 12539 ldr r3, .L1677+20 12540 ldrh r0, [r3] 12541 bl FtlFreeSysBlkQueueInit 12542.L1666: 12543 bl FtlLoadBbt 12544 cbz r0, .L1667 12545.L1676: 12546 ldr r3, [r5] 12547 cmp r3, #1 12548 bne .L1666 12549 str r6, [r5] 12550 bl ftl_low_format 12551 b .L1666 12552.L1667: 12553 bl FtlSysBlkInit 12554 cmp r0, #0 12555 bne .L1676 12556 movs r3, #1 12557 str r3, [r4] 12558 pop {r4, r5, r6, pc} 12559.L1678: 12560 .align 2 12561.L1677: 12562 .word .LANCHOR165 12563 .word .LC49 12564 .word .LC38 12565 .word .LANCHOR0 12566 .word .LANCHOR180 12567 .word .LANCHOR3 12568 .size sftl_init, .-sftl_init 12569 .section .text.FtlWriteToIDB,"ax",%progbits 12570 .align 1 12571 .global FtlWriteToIDB 12572 .syntax unified 12573 .thumb 12574 .thumb_func 12575 .fpu softvfp 12576 .type FtlWriteToIDB, %function 12577FtlWriteToIDB: 12578 @ args = 0, pretend = 0, frame = 96 12579 @ frame_needed = 0, uses_anonymous_args = 0 12580 push {r4, r5, r6, r7, r8, r10, fp, lr} 12581 adds r7, r1, r0 12582 add r8, r7, #-1 12583 sub sp, sp, #104 12584 cmp r8, #63 12585 mov r4, r0 12586 mov r5, r1 12587 mov r6, r2 12588 ldr r10, .L1747+16 12589 bls .L1680 12590 cmp r0, #576 12591 bcc .L1681 12592.L1680: 12593 ldr r3, [r10] 12594 cbnz r3, .L1682 12595.L1746: 12596 movs r4, #0 12597 b .L1679 12598.L1682: 12599 ldr r3, .L1747 12600 ldr fp, [r3] 12601 ldr r3, .L1747+4 12602 ldr r2, [fp] 12603 cmp r2, r3 12604 bne .L1684 12605 ldr r3, .L1747+8 12606 add r0, fp, #260096 12607 movs r2, #0 12608 ldrh r1, [r3, #10] 12609 movw r3, #65023 12610.L1688: 12611 ldr r4, [r0, #-4]! 12612 cbnz r4, .L1685 12613 ldr r4, [fp, r2, lsl #2] 12614 adds r2, r2, #1 12615 cmp r2, #4096 12616 add r3, r3, #-1 12617 it hi 12618 movhi r2, #0 12619 cmp r3, #4096 12620 str r4, [r0, #2048] 12621 bne .L1688 12622 mov r3, #512 12623 b .L1743 12624.L1685: 12625 adds r3, r3, #127 12626 lsrs r3, r3, #7 12627.L1743: 12628 str r3, [sp, #8] 12629 lsls r1, r1, #2 12630 ldr r3, [sp, #8] 12631 uxth r1, r1 12632 adds r0, r3, #4 12633 bl __aeabi_uidiv 12634 adds r3, r0, #1 12635 ldr r1, [sp, #8] 12636 mov r2, r3 12637 ldr r0, .L1747+12 12638 str r3, [sp, #16] 12639 bl printf 12640 ldr r3, [sp, #8] 12641 lsls r3, r3, #7 12642 str r3, [sp, #32] 12643 movs r3, #0 12644 str r3, [sp, #20] 12645.L1745: 12646 str r3, [sp, #12] 12647 ldr r2, [sp, #12] 12648 ldr r3, [sp, #16] 12649 add r3, r3, r2 12650 cmp r3, #8 12651 str r3, [sp, #28] 12652 bls .L1711 12653 ldr r3, [sp, #20] 12654 cbnz r3, .L1712 12655.L1684: 12656 mov r3, #-1 12657 str r3, [sp, #8] 12658.L1712: 12659 ldr r3, .L1747+16 12660 movs r2, #0 12661 ldr r4, [sp, #8] 12662 str r2, [r3] 12663 ldr r3, .L1747 12664 ldr r0, [r3] 12665 bl free 12666 ldr r3, .L1747+20 12667 ldr r0, [r3] 12668 bl free 12669.L1679: 12670 mov r0, r4 12671 add sp, sp, #104 12672 @ sp needed 12673 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12674.L1711: 12675 ldr r3, .L1747+20 12676 mov r2, #512 12677 movs r1, #0 12678 ldr r0, [r3] 12679 bl memset 12680 ldr r3, .L1747+8 12681 ldrh r5, [r3, #10] 12682 ldr r3, [sp, #12] 12683 muls r3, r5, r3 12684 str r3, [sp, #24] 12685 ldr r3, .L1747+24 12686 ldr r2, [r3, #16] 12687 cmp r2, #0 12688 beq .L1719 12689 ldr r3, [r3, #20] 12690 cmp r3, #0 12691 ite eq 12692 moveq r6, #6 12693 movne r6, #9 12694.L1690: 12695 ldr r7, [sp, #24] 12696 movs r4, #0 12697 ldr r8, .L1747+24 12698.L1691: 12699 mov r1, r7 12700 ldr r3, [r8, #4] 12701 movs r0, #0 12702 adds r4, r4, #1 12703 blx r3 12704 ldr r3, [sp, #16] 12705 add r7, r7, r5 12706 cmp r3, r4 12707 bhi .L1691 12708 cmp r6, #9 12709 bne .L1721 12710 ldr r3, .L1747+20 12711 mov r2, #1024 12712 movs r1, #0 12713 ldr r4, [r3] 12714 mov r0, r4 12715 bl ftl_memset 12716 movs r2, #4 12717 ldr r3, .L1747+28 12718 strb r2, [r4, #17] 12719 movs r1, #12 12720 ldr r2, .L1747+8 12721 adds r0, r4, r1 12722 str r3, [r4] 12723 movs r3, #0 12724 str r1, [r4, #4] 12725 ldrh r2, [r2, #10] 12726 str r3, [r4, #12] 12727 strb r3, [r4, #16] 12728 strh r2, [r4, #18] @ movhi 12729 movs r2, #16 12730 strb r3, [r4, #20] 12731 strb r2, [r4, #21] 12732 strh r3, [r4, #22] @ movhi 12733 bl js_hash 12734 str r0, [r4, #8] 12735.L1692: 12736 ldr r3, [sp, #16] 12737 mov r10, fp 12738 ldr r8, .L1747+24 12739 muls r3, r5, r3 12740 movs r5, #0 12741 str r3, [sp, #36] 12742.L1693: 12743 ldr r3, [sp, #36] 12744 cmp r5, r3 12745 beq .L1700 12746 cmp r6, #9 12747 ite ne 12748 lslne r3, r5, #2 12749 addeq r3, r5, #1 12750 str r3, [sp, #40] 12751 movw r3, #61424 12752 str r3, [sp, #44] 12753 cmp r5, #0 12754 bne .L1696 12755 cmp r6, #9 12756 bne .L1696 12757 ldr r3, [r8, #16] 12758 movs r0, #70 12759 blx r3 12760 ldr r7, [r8, #8] 12761 add r3, sp, #40 12762 mov r2, r4 12763 ldr r1, [sp, #24] 12764 mov r0, r5 12765 blx r7 12766 ldr r2, .L1747+8 12767 mov r7, r0 12768 ldr r3, [r8, #16] 12769 ldrb r0, [r2, #22] @ zero_extendqisi2 12770 blx r3 12771 adds r7, r7, #1 12772 bne .L1697 12773.L1700: 12774 ldr r3, .L1747+20 12775 ldr r7, [r3] 12776 ldr r3, .L1747+8 12777 ldrb r2, [r3, #14] @ zero_extendqisi2 12778 ldrh r3, [r3, #10] 12779 str r2, [sp, #24] 12780 ldr r2, [sp, #12] 12781 mul r10, r3, r2 12782 ldr r2, .L1747+24 12783 ldr r1, [r2, #16] 12784 cmp r1, #0 12785 bne .L1698 12786 mov r8, #6 12787.L1699: 12788 ldr r2, [sp, #16] 12789 movs r4, #0 12790 ldr r5, .L1747+24 12791 muls r3, r2, r3 12792 str r3, [sp, #36] 12793.L1702: 12794 ldr r3, [sp, #36] 12795 cmp r4, r3 12796 beq .L1706 12797 cmp r4, #0 12798 bne .L1703 12799 cmp r8, #9 12800 bne .L1703 12801 ldr r3, [r5, #16] 12802 movs r0, #70 12803 blx r3 12804 ldr r3, [r5, #20] 12805 movs r0, #2 12806 blx r3 12807 mov r2, r7 12808 mov r1, r10 12809 add r3, sp, #40 12810 mov r0, r4 12811 ldr r6, [r5, #12] 12812 blx r6 12813 ldr r3, [r5, #20] 12814 ldr r0, [sp, #24] 12815 blx r3 12816 ldr r2, .L1747+8 12817 ldr r3, [r5, #16] 12818 ldrb r0, [r2, #22] @ zero_extendqisi2 12819 blx r3 12820 ldr r3, [r7] 12821 ldr r2, .L1747+28 12822 cmp r3, r2 12823 beq .L1704 12824.L1706: 12825 ldr r3, .L1747+20 12826 mov r1, fp 12827 movs r4, #0 12828 ldr r0, [r3] 12829.L1705: 12830 mov r6, r1 12831 ldr r2, [r0, r4, lsl #2] 12832 ldr r3, [r6] 12833 lsls r5, r4, #2 12834 adds r1, r1, #4 12835 cmp r2, r3 12836 beq .L1708 12837 mov r2, #512 12838 movs r1, #0 12839 bl memset 12840 ldr r3, .L1747+20 12841 ldr r1, [sp, #12] 12842 ldr r0, .L1747+32 12843 ldr r2, [r3] 12844 str r4, [sp] 12845 ldr r3, [r6] 12846 ldr r2, [r2, r5] 12847 bl printf 12848 ldr r3, .L1747+8 12849 movs r0, #0 12850 ldr r2, [sp, #12] 12851 ldrh r1, [r3, #10] 12852 ldr r3, .L1747+24 12853 muls r2, r1, r2 12854 ldr r3, [r3, #4] 12855 mov r1, r2 12856 blx r3 12857.L1709: 12858 ldr r3, [sp, #28] 12859 b .L1745 12860.L1719: 12861 movs r6, #6 12862 b .L1690 12863.L1721: 12864 movs r4, #0 12865 b .L1692 12866.L1696: 12867 ldr r1, [sp, #24] 12868 add r3, sp, #40 12869 ldr r7, [r8, #8] 12870 mov r2, r10 12871 movs r0, #0 12872 add r1, r1, r5 12873 blx r7 12874 adds r0, r0, #1 12875 beq .L1700 12876 add r10, r10, #2048 12877.L1697: 12878 adds r5, r5, #1 12879 b .L1693 12880.L1698: 12881 ldr r2, [r2, #20] 12882 cmp r2, #0 12883 ite eq 12884 moveq r8, #6 12885 movne r8, #9 12886 b .L1699 12887.L1703: 12888 add r3, sp, #40 12889 mov r2, r7 12890 add r1, r10, r4 12891 movs r0, #0 12892 ldr r6, [r5, #12] 12893 blx r6 12894 adds r0, r0, #1 12895 beq .L1706 12896 ldr r2, [sp, #44] 12897 movw r3, #61424 12898 cmp r2, r3 12899 bne .L1706 12900 add r7, r7, #2048 12901.L1704: 12902 adds r4, r4, #1 12903 b .L1702 12904.L1708: 12905 ldr r3, [sp, #32] 12906 adds r4, r4, #1 12907 cmp r4, r3 12908 bne .L1705 12909 ldr r3, [sp, #20] 12910 adds r3, r3, #1 12911 cmp r3, #5 12912 str r3, [sp, #20] 12913 bls .L1709 12914 b .L1712 12915.L1748: 12916 .align 2 12917.L1747: 12918 .word .LANCHOR182 12919 .word -52655045 12920 .word .LANCHOR0 12921 .word .LC50 12922 .word .LANCHOR181 12923 .word .LANCHOR183 12924 .word .LANCHOR77 12925 .word 1179535694 12926 .word .LC51 12927.L1681: 12928 cmp r0, #64 12929 bne .L1713 12930 ldr fp, .L1749+4 12931 mov r0, #262144 12932 bl ftl_malloc 12933 str r0, [fp] 12934 mov r0, #262144 12935 bl ftl_malloc 12936 ldr r3, .L1749 12937 str r0, [r3] 12938 ldr r3, [fp] 12939 cbz r3, .L1714 12940 cbz r0, .L1714 12941 movs r2, #1 12942 movs r1, #0 12943 str r2, [r10] 12944 mov r0, r3 12945 mov r2, #262144 12946 bl ftl_memset 12947.L1713: 12948 ldr r3, [r10] 12949 cmp r3, #0 12950 beq .L1746 12951 ldr r3, .L1749+4 12952 cmp r4, #63 12953 itett ls 12954 rsbls r1, r4, #64 12955 movhi r1, r6 12956 subls r5, r5, r1 12957 addls r1, r6, r1, lsl #9 12958 ldr r0, [r3] 12959 ittt hi 12960 ldrhi r3, .L1749+8 12961 addhi r3, r3, r4 12962 addhi r0, r0, r3, lsl #9 12963 cmp r8, #576 12964 itt cs 12965 subcs r5, r5, r7 12966 subcs r5, r5, #446 12967 lsls r2, r5, #9 12968 bl ftl_memcpy 12969 b .L1746 12970.L1714: 12971 ldr r1, .L1749+12 12972 ldr r0, .L1749+16 12973 bl printf 12974 b .L1713 12975.L1750: 12976 .align 2 12977.L1749: 12978 .word .LANCHOR183 12979 .word .LANCHOR182 12980 .word 8388544 12981 .word .LANCHOR184 12982 .word .LC52 12983 .size FtlWriteToIDB, .-FtlWriteToIDB 12984 .section .text.sftl_write,"ax",%progbits 12985 .align 1 12986 .global sftl_write 12987 .syntax unified 12988 .thumb 12989 .thumb_func 12990 .fpu softvfp 12991 .type sftl_write, %function 12992sftl_write: 12993 @ args = 0, pretend = 0, frame = 0 12994 @ frame_needed = 0, uses_anonymous_args = 0 12995 push {r4, r5, r6, lr} 12996 mov r6, r0 12997 mov r4, r1 12998 mov r5, r2 12999 add r6, r6, r4 13000 bl FtlWriteToIDB 13001.L1752: 13002 cmp r4, #256 13003 sub r1, r6, r4 13004 mov r3, r5 13005 bhi .L1754 13006 mov r2, r4 13007 movs r0, #0 13008 pop {r4, r5, r6, lr} 13009 b FtlWrite 13010.L1754: 13011 mov r2, #256 13012 movs r0, #0 13013 bl FtlWrite 13014 cbnz r0, .L1751 13015 add r5, r5, #131072 13016 sub r4, r4, #256 13017 b .L1752 13018.L1751: 13019 pop {r4, r5, r6, pc} 13020 .size sftl_write, .-sftl_write 13021 .global g_nand_ops 13022 .global g_nand_phy_info 13023 .global gc_ink_free_return_value 13024 .global check_vpc_table 13025 .global FtlUpdateVaildLpnCount 13026 .global g_ect_tbl_power_up_flush 13027 .global power_up_flag 13028 .global low_format_en 13029 .global gFtlInitStatus 13030 .global DeviceCapacity 13031 .global g_power_lost_recovery_flag 13032 .global c_mlc_erase_count_value 13033 .global g_recovery_ppa_tbl 13034 .global g_recovery_page_min_ver 13035 .global g_recovery_page_num 13036 .global sftl_nand_check_spare_buf 13037 .global sftl_temp_buf 13038 .global sftl_nand_check_buf 13039 .global g_cur_erase_blk 13040 .global g_gc_skip_write_count 13041 .global g_gc_head_data_block_count 13042 .global g_gc_head_data_block 13043 .global g_ftl_nand_free_count 13044 .global g_in_swl_replace 13045 .global g_in_gc_progress 13046 .global g_max_erase_count 13047 .global g_totle_sys_slc_erase_count 13048 .global g_totle_slc_erase_count 13049 .global g_min_erase_count 13050 .global g_totle_avg_erase_count 13051 .global g_totle_mlc_erase_count 13052 .global g_totle_l2p_write_count 13053 .global g_totle_cache_write_count 13054 .global g_tmp_data_superblock_id 13055 .global g_totle_read_page_count 13056 .global g_totle_discard_page_count 13057 .global g_totle_read_sector 13058 .global g_totle_write_sector 13059 .global g_totle_write_page_count 13060 .global g_totle_gc_page_count 13061 .global g_gc_blk_index 13062 .global g_gc_merge_free_blk_threshold 13063 .global g_gc_free_blk_threshold 13064 .global g_gc_bad_block_temp_tbl 13065 .global g_gc_bad_block_gc_index 13066 .global g_gc_bad_block_temp_num 13067 .global g_gc_next_blk_1 13068 .global g_gc_next_blk 13069 .global g_gc_cur_blk_max_valid_pages 13070 .global g_gc_cur_blk_valid_pages 13071 .global g_gc_page_offset 13072 .global g_gc_blk_num 13073 .global p_gc_blk_tbl 13074 .global p_gc_page_info 13075 .global g_sys_ext_data 13076 .global g_sys_save_data 13077 .global gp_last_act_superblock 13078 .global g_gc_superblock 13079 .global g_gc_temp_superblock 13080 .global g_buffer_superblock 13081 .global g_active_superblock 13082 .global g_num_data_superblocks 13083 .global g_num_free_superblocks 13084 .global p_data_block_list_tail 13085 .global p_data_block_list_head 13086 .global p_free_data_block_list_head 13087 .global p_data_block_list_table 13088 .global g_l2p_last_update_region_id 13089 .global p_l2p_map_buf 13090 .global p_l2p_ram_map 13091 .global g_totle_vendor_block 13092 .global p_vendor_region_ppn_table 13093 .global p_vendor_block_ver_table 13094 .global p_vendor_block_valid_page_count 13095 .global p_vendor_block_table 13096 .global g_totle_map_block 13097 .global p_map_region_ppn_table 13098 .global p_map_block_ver_table 13099 .global p_map_block_valid_page_count 13100 .global p_map_block_table 13101 .global p_valid_page_count_check_table 13102 .global p_valid_page_count_table 13103 .global g_totle_swl_count 13104 .global p_swl_mul_table 13105 .global p_erase_count_table 13106 .global g_ect_tbl_info_size 13107 .global gp_ect_tbl_info 13108 .global g_gc_num_req 13109 .global c_gc_page_buf_num 13110 .global gp_gc_page_buf_info 13111 .global p_gc_data_buf 13112 .global p_gc_spare_buf 13113 .global p_io_spare_buf 13114 .global p_io_data_buf_1 13115 .global p_io_data_buf_0 13116 .global p_sys_spare_buf 13117 .global p_vendor_data_buf 13118 .global p_sys_data_buf_1 13119 .global p_sys_data_buf 13120 .global p_plane_order_table 13121 .global req_gc_dst 13122 .global req_gc 13123 .global req_erase 13124 .global req_prgm 13125 .global req_read 13126 .global req_sys 13127 .global gVendorBlkInfo 13128 .global gL2pMapInfo 13129 .global gSysFreeQueue 13130 .global gSysInfo 13131 .global gBbtInfo 13132 .global g_MaxLbn 13133 .global g_VaildLpn 13134 .global g_MaxLpn 13135 .global g_MaxLbaSector 13136 .global g_GlobalDataVersion 13137 .global g_GlobalSysVersion 13138 .global ftl_gc_temp_power_lost_recovery_flag 13139 .global c_ftl_nand_max_data_blks 13140 .global c_ftl_nand_data_op_blks_per_plane 13141 .global c_ftl_nand_data_blks_per_plane 13142 .global c_ftl_nand_max_sys_blks 13143 .global c_ftl_nand_init_sys_blks_per_plane 13144 .global c_ftl_nand_sys_blks_per_plane 13145 .global c_ftl_vendor_part_size 13146 .global c_ftl_nand_max_vendor_blks 13147 .global c_ftl_nand_max_map_blks 13148 .global c_ftl_nand_map_blks_per_plane 13149 .global c_ftl_nand_vendor_region_num 13150 .global c_ftl_nand_l2pmap_ram_region_num 13151 .global c_ftl_nand_map_region_num 13152 .global c_ftl_nand_totle_phy_blks 13153 .global c_ftl_nand_reserved_blks 13154 .global c_ftl_nand_byte_pre_oob 13155 .global c_ftl_nand_byte_pre_page 13156 .global c_ftl_nand_sec_pre_page_shift 13157 .global c_ftl_nand_sec_pre_page 13158 .global c_ftl_nand_page_pre_super_blk 13159 .global c_ftl_nand_page_pre_slc_blk 13160 .global c_ftl_nand_page_pre_blk 13161 .global c_ftl_nand_bbm_buf_size 13162 .global c_ftl_nand_ext_blk_pre_plane 13163 .global c_ftl_nand_blk_pre_plane 13164 .global c_ftl_nand_planes_num 13165 .global c_ftl_nand_blks_per_die_shift 13166 .global c_ftl_nand_blks_per_die 13167 .global c_ftl_nand_planes_per_die 13168 .global c_ftl_nand_die_num 13169 .global c_ftl_nand_type 13170 .section .bss.DeviceCapacity,"aw",%nobits 13171 .align 2 13172 .set .LANCHOR25,. + 0 13173 .type DeviceCapacity, %object 13174 .size DeviceCapacity, 4 13175DeviceCapacity: 13176 .space 4 13177 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 13178 .align 1 13179 .set .LANCHOR57,. + 0 13180 .type FtlUpdateVaildLpnCount, %object 13181 .size FtlUpdateVaildLpnCount, 2 13182FtlUpdateVaildLpnCount: 13183 .space 2 13184 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 13185 .align 1 13186 .set .LANCHOR126,. + 0 13187 .type c_ftl_nand_bbm_buf_size, %object 13188 .size c_ftl_nand_bbm_buf_size, 2 13189c_ftl_nand_bbm_buf_size: 13190 .space 2 13191 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 13192 .align 1 13193 .set .LANCHOR5,. + 0 13194 .type c_ftl_nand_blk_pre_plane, %object 13195 .size c_ftl_nand_blk_pre_plane, 2 13196c_ftl_nand_blk_pre_plane: 13197 .space 2 13198 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 13199 .align 1 13200 .set .LANCHOR16,. + 0 13201 .type c_ftl_nand_blks_per_die, %object 13202 .size c_ftl_nand_blks_per_die, 2 13203c_ftl_nand_blks_per_die: 13204 .space 2 13205 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits 13206 .align 1 13207 .set .LANCHOR17,. + 0 13208 .type c_ftl_nand_blks_per_die_shift, %object 13209 .size c_ftl_nand_blks_per_die_shift, 2 13210c_ftl_nand_blks_per_die_shift: 13211 .space 2 13212 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 13213 .align 1 13214 .set .LANCHOR23,. + 0 13215 .type c_ftl_nand_byte_pre_oob, %object 13216 .size c_ftl_nand_byte_pre_oob, 2 13217c_ftl_nand_byte_pre_oob: 13218 .space 2 13219 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 13220 .align 1 13221 .set .LANCHOR22,. + 0 13222 .type c_ftl_nand_byte_pre_page, %object 13223 .size c_ftl_nand_byte_pre_page, 2 13224c_ftl_nand_byte_pre_page: 13225 .space 2 13226 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 13227 .align 1 13228 .set .LANCHOR4,. + 0 13229 .type c_ftl_nand_data_blks_per_plane, %object 13230 .size c_ftl_nand_data_blks_per_plane, 2 13231c_ftl_nand_data_blks_per_plane: 13232 .space 2 13233 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 13234 .align 1 13235 .set .LANCHOR170,. + 0 13236 .type c_ftl_nand_data_op_blks_per_plane, %object 13237 .size c_ftl_nand_data_op_blks_per_plane, 2 13238c_ftl_nand_data_op_blks_per_plane: 13239 .space 2 13240 .section .bss.c_ftl_nand_die_num,"aw",%nobits 13241 .align 1 13242 .set .LANCHOR9,. + 0 13243 .type c_ftl_nand_die_num, %object 13244 .size c_ftl_nand_die_num, 2 13245c_ftl_nand_die_num: 13246 .space 2 13247 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 13248 .align 1 13249 .set .LANCHOR14,. + 0 13250 .type c_ftl_nand_ext_blk_pre_plane, %object 13251 .size c_ftl_nand_ext_blk_pre_plane, 2 13252c_ftl_nand_ext_blk_pre_plane: 13253 .space 2 13254 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 13255 .align 2 13256 .set .LANCHOR30,. + 0 13257 .type c_ftl_nand_init_sys_blks_per_plane, %object 13258 .size c_ftl_nand_init_sys_blks_per_plane, 4 13259c_ftl_nand_init_sys_blks_per_plane: 13260 .space 4 13261 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 13262 .align 1 13263 .set .LANCHOR32,. + 0 13264 .type c_ftl_nand_l2pmap_ram_region_num, %object 13265 .size c_ftl_nand_l2pmap_ram_region_num, 2 13266c_ftl_nand_l2pmap_ram_region_num: 13267 .space 2 13268 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 13269 .align 1 13270 .set .LANCHOR28,. + 0 13271 .type c_ftl_nand_map_blks_per_plane, %object 13272 .size c_ftl_nand_map_blks_per_plane, 2 13273c_ftl_nand_map_blks_per_plane: 13274 .space 2 13275 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 13276 .align 1 13277 .set .LANCHOR31,. + 0 13278 .type c_ftl_nand_map_region_num, %object 13279 .size c_ftl_nand_map_region_num, 2 13280c_ftl_nand_map_region_num: 13281 .space 2 13282 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 13283 .align 2 13284 .set .LANCHOR6,. + 0 13285 .type c_ftl_nand_max_data_blks, %object 13286 .size c_ftl_nand_max_data_blks, 4 13287c_ftl_nand_max_data_blks: 13288 .space 4 13289 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 13290 .align 2 13291 .set .LANCHOR29,. + 0 13292 .type c_ftl_nand_max_map_blks, %object 13293 .size c_ftl_nand_max_map_blks, 4 13294c_ftl_nand_max_map_blks: 13295 .space 4 13296 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 13297 .align 2 13298 .set .LANCHOR3,. + 0 13299 .type c_ftl_nand_max_sys_blks, %object 13300 .size c_ftl_nand_max_sys_blks, 4 13301c_ftl_nand_max_sys_blks: 13302 .space 4 13303 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 13304 .align 1 13305 .set .LANCHOR26,. + 0 13306 .type c_ftl_nand_max_vendor_blks, %object 13307 .size c_ftl_nand_max_vendor_blks, 2 13308c_ftl_nand_max_vendor_blks: 13309 .space 2 13310 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 13311 .align 1 13312 .set .LANCHOR18,. + 0 13313 .type c_ftl_nand_page_pre_blk, %object 13314 .size c_ftl_nand_page_pre_blk, 2 13315c_ftl_nand_page_pre_blk: 13316 .space 2 13317 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 13318 .align 1 13319 .set .LANCHOR19,. + 0 13320 .type c_ftl_nand_page_pre_slc_blk, %object 13321 .size c_ftl_nand_page_pre_slc_blk, 2 13322c_ftl_nand_page_pre_slc_blk: 13323 .space 2 13324 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 13325 .align 1 13326 .set .LANCHOR20,. + 0 13327 .type c_ftl_nand_page_pre_super_blk, %object 13328 .size c_ftl_nand_page_pre_super_blk, 2 13329c_ftl_nand_page_pre_super_blk: 13330 .space 2 13331 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 13332 .align 1 13333 .set .LANCHOR2,. + 0 13334 .type c_ftl_nand_planes_num, %object 13335 .size c_ftl_nand_planes_num, 2 13336c_ftl_nand_planes_num: 13337 .space 2 13338 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 13339 .align 1 13340 .set .LANCHOR10,. + 0 13341 .type c_ftl_nand_planes_per_die, %object 13342 .size c_ftl_nand_planes_per_die, 2 13343c_ftl_nand_planes_per_die: 13344 .space 2 13345 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 13346 .align 1 13347 .set .LANCHOR24,. + 0 13348 .type c_ftl_nand_reserved_blks, %object 13349 .size c_ftl_nand_reserved_blks, 2 13350c_ftl_nand_reserved_blks: 13351 .space 2 13352 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 13353 .align 1 13354 .set .LANCHOR11,. + 0 13355 .type c_ftl_nand_sec_pre_page, %object 13356 .size c_ftl_nand_sec_pre_page, 2 13357c_ftl_nand_sec_pre_page: 13358 .space 2 13359 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 13360 .align 1 13361 .set .LANCHOR21,. + 0 13362 .type c_ftl_nand_sec_pre_page_shift, %object 13363 .size c_ftl_nand_sec_pre_page_shift, 2 13364c_ftl_nand_sec_pre_page_shift: 13365 .space 2 13366 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 13367 .align 2 13368 .set .LANCHOR1,. + 0 13369 .type c_ftl_nand_sys_blks_per_plane, %object 13370 .size c_ftl_nand_sys_blks_per_plane, 4 13371c_ftl_nand_sys_blks_per_plane: 13372 .space 4 13373 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 13374 .align 2 13375 .set .LANCHOR7,. + 0 13376 .type c_ftl_nand_totle_phy_blks, %object 13377 .size c_ftl_nand_totle_phy_blks, 4 13378c_ftl_nand_totle_phy_blks: 13379 .space 4 13380 .section .bss.c_ftl_nand_type,"aw",%nobits 13381 .align 1 13382 .set .LANCHOR8,. + 0 13383 .type c_ftl_nand_type, %object 13384 .size c_ftl_nand_type, 2 13385c_ftl_nand_type: 13386 .space 2 13387 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 13388 .align 1 13389 .set .LANCHOR27,. + 0 13390 .type c_ftl_nand_vendor_region_num, %object 13391 .size c_ftl_nand_vendor_region_num, 2 13392c_ftl_nand_vendor_region_num: 13393 .space 2 13394 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 13395 .align 1 13396 .set .LANCHOR15,. + 0 13397 .type c_ftl_vendor_part_size, %object 13398 .size c_ftl_vendor_part_size, 2 13399c_ftl_vendor_part_size: 13400 .space 2 13401 .section .bss.c_gc_page_buf_num,"aw",%nobits 13402 .align 2 13403 .set .LANCHOR66,. + 0 13404 .type c_gc_page_buf_num, %object 13405 .size c_gc_page_buf_num, 4 13406c_gc_page_buf_num: 13407 .space 4 13408 .section .bss.c_mlc_erase_count_value,"aw",%nobits 13409 .align 1 13410 .set .LANCHOR13,. + 0 13411 .type c_mlc_erase_count_value, %object 13412 .size c_mlc_erase_count_value, 2 13413c_mlc_erase_count_value: 13414 .space 2 13415 .section .bss.check_vpc_table,"aw",%nobits 13416 .align 1 13417 .type check_vpc_table, %object 13418 .size check_vpc_table, 16384 13419check_vpc_table: 13420 .space 16384 13421 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 13422 .align 2 13423 .set .LANCHOR132,. + 0 13424 .type ftl_gc_temp_power_lost_recovery_flag, %object 13425 .size ftl_gc_temp_power_lost_recovery_flag, 4 13426ftl_gc_temp_power_lost_recovery_flag: 13427 .space 4 13428 .section .bss.gBbtInfo,"aw",%nobits 13429 .align 2 13430 .set .LANCHOR36,. + 0 13431 .type gBbtInfo, %object 13432 .size gBbtInfo, 60 13433gBbtInfo: 13434 .space 60 13435 .section .bss.gL2pMapInfo,"aw",%nobits 13436 .align 2 13437 .set .LANCHOR128,. + 0 13438 .type gL2pMapInfo, %object 13439 .size gL2pMapInfo, 44 13440gL2pMapInfo: 13441 .space 44 13442 .section .bss.gSysFreeQueue,"aw",%nobits 13443 .align 1 13444 .set .LANCHOR37,. + 0 13445 .type gSysFreeQueue, %object 13446 .size gSysFreeQueue, 2056 13447gSysFreeQueue: 13448 .space 2056 13449 .section .bss.gSysInfo,"aw",%nobits 13450 .align 2 13451 .set .LANCHOR138,. + 0 13452 .type gSysInfo, %object 13453 .size gSysInfo, 16 13454gSysInfo: 13455 .space 16 13456 .section .bss.gVendorBlkInfo,"aw",%nobits 13457 .align 2 13458 .set .LANCHOR160,. + 0 13459 .type gVendorBlkInfo, %object 13460 .size gVendorBlkInfo, 44 13461gVendorBlkInfo: 13462 .space 44 13463 .section .bss.g_GlobalDataVersion,"aw",%nobits 13464 .align 2 13465 .set .LANCHOR82,. + 0 13466 .type g_GlobalDataVersion, %object 13467 .size g_GlobalDataVersion, 4 13468g_GlobalDataVersion: 13469 .space 4 13470 .section .bss.g_GlobalSysVersion,"aw",%nobits 13471 .align 2 13472 .set .LANCHOR81,. + 0 13473 .type g_GlobalSysVersion, %object 13474 .size g_GlobalSysVersion, 4 13475g_GlobalSysVersion: 13476 .space 4 13477 .section .bss.g_MaxLbaSector,"aw",%nobits 13478 .align 2 13479 .set .LANCHOR33,. + 0 13480 .type g_MaxLbaSector, %object 13481 .size g_MaxLbaSector, 4 13482g_MaxLbaSector: 13483 .space 4 13484 .section .bss.g_MaxLbn,"aw",%nobits 13485 .align 2 13486 .set .LANCHOR178,. + 0 13487 .type g_MaxLbn, %object 13488 .size g_MaxLbn, 4 13489g_MaxLbn: 13490 .space 4 13491 .section .bss.g_MaxLpn,"aw",%nobits 13492 .align 2 13493 .set .LANCHOR151,. + 0 13494 .type g_MaxLpn, %object 13495 .size g_MaxLpn, 4 13496g_MaxLpn: 13497 .space 4 13498 .section .bss.g_VaildLpn,"aw",%nobits 13499 .align 2 13500 .set .LANCHOR58,. + 0 13501 .type g_VaildLpn, %object 13502 .size g_VaildLpn, 4 13503g_VaildLpn: 13504 .space 4 13505 .section .bss.g_active_superblock,"aw",%nobits 13506 .align 2 13507 .set .LANCHOR50,. + 0 13508 .type g_active_superblock, %object 13509 .size g_active_superblock, 48 13510g_active_superblock: 13511 .space 48 13512 .section .bss.g_buffer_superblock,"aw",%nobits 13513 .align 2 13514 .set .LANCHOR51,. + 0 13515 .type g_buffer_superblock, %object 13516 .size g_buffer_superblock, 48 13517g_buffer_superblock: 13518 .space 48 13519 .section .bss.g_cur_erase_blk,"aw",%nobits 13520 .align 2 13521 .set .LANCHOR98,. + 0 13522 .type g_cur_erase_blk, %object 13523 .size g_cur_erase_blk, 4 13524g_cur_erase_blk: 13525 .space 4 13526 .section .bss.g_ect_tbl_info_size,"aw",%nobits 13527 .align 1 13528 .set .LANCHOR115,. + 0 13529 .type g_ect_tbl_info_size, %object 13530 .size g_ect_tbl_info_size, 2 13531g_ect_tbl_info_size: 13532 .space 2 13533 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 13534 .align 1 13535 .set .LANCHOR163,. + 0 13536 .type g_ect_tbl_power_up_flush, %object 13537 .size g_ect_tbl_power_up_flush, 2 13538g_ect_tbl_power_up_flush: 13539 .space 2 13540 .section .bss.g_ftl_nand_free_count,"aw",%nobits 13541 .align 2 13542 .set .LANCHOR175,. + 0 13543 .type g_ftl_nand_free_count, %object 13544 .size g_ftl_nand_free_count, 4 13545g_ftl_nand_free_count: 13546 .space 4 13547 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 13548 .align 1 13549 .set .LANCHOR75,. + 0 13550 .type g_gc_bad_block_gc_index, %object 13551 .size g_gc_bad_block_gc_index, 2 13552g_gc_bad_block_gc_index: 13553 .space 2 13554 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 13555 .align 1 13556 .set .LANCHOR73,. + 0 13557 .type g_gc_bad_block_temp_num, %object 13558 .size g_gc_bad_block_temp_num, 2 13559g_gc_bad_block_temp_num: 13560 .space 2 13561 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 13562 .align 1 13563 .set .LANCHOR74,. + 0 13564 .type g_gc_bad_block_temp_tbl, %object 13565 .size g_gc_bad_block_temp_tbl, 34 13566g_gc_bad_block_temp_tbl: 13567 .space 34 13568 .section .bss.g_gc_blk_index,"aw",%nobits 13569 .align 1 13570 .set .LANCHOR101,. + 0 13571 .type g_gc_blk_index, %object 13572 .size g_gc_blk_index, 2 13573g_gc_blk_index: 13574 .space 2 13575 .section .bss.g_gc_blk_num,"aw",%nobits 13576 .align 1 13577 .set .LANCHOR68,. + 0 13578 .type g_gc_blk_num, %object 13579 .size g_gc_blk_num, 2 13580g_gc_blk_num: 13581 .space 2 13582 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 13583 .align 1 13584 .set .LANCHOR173,. + 0 13585 .type g_gc_cur_blk_max_valid_pages, %object 13586 .size g_gc_cur_blk_max_valid_pages, 2 13587g_gc_cur_blk_max_valid_pages: 13588 .space 2 13589 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 13590 .align 1 13591 .set .LANCHOR172,. + 0 13592 .type g_gc_cur_blk_valid_pages, %object 13593 .size g_gc_cur_blk_valid_pages, 2 13594g_gc_cur_blk_valid_pages: 13595 .space 2 13596 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 13597 .align 1 13598 .set .LANCHOR99,. + 0 13599 .type g_gc_free_blk_threshold, %object 13600 .size g_gc_free_blk_threshold, 2 13601g_gc_free_blk_threshold: 13602 .space 2 13603 .section .bss.g_gc_head_data_block,"aw",%nobits 13604 .align 2 13605 .set .LANCHOR95,. + 0 13606 .type g_gc_head_data_block, %object 13607 .size g_gc_head_data_block, 4 13608g_gc_head_data_block: 13609 .space 4 13610 .section .bss.g_gc_head_data_block_count,"aw",%nobits 13611 .align 2 13612 .set .LANCHOR96,. + 0 13613 .type g_gc_head_data_block_count, %object 13614 .size g_gc_head_data_block_count, 4 13615g_gc_head_data_block_count: 13616 .space 4 13617 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 13618 .align 1 13619 .set .LANCHOR100,. + 0 13620 .type g_gc_merge_free_blk_threshold, %object 13621 .size g_gc_merge_free_blk_threshold, 2 13622g_gc_merge_free_blk_threshold: 13623 .space 2 13624 .section .bss.g_gc_next_blk,"aw",%nobits 13625 .align 1 13626 .set .LANCHOR71,. + 0 13627 .type g_gc_next_blk, %object 13628 .size g_gc_next_blk, 2 13629g_gc_next_blk: 13630 .space 2 13631 .section .bss.g_gc_next_blk_1,"aw",%nobits 13632 .align 1 13633 .set .LANCHOR72,. + 0 13634 .type g_gc_next_blk_1, %object 13635 .size g_gc_next_blk_1, 2 13636g_gc_next_blk_1: 13637 .space 2 13638 .section .bss.g_gc_num_req,"aw",%nobits 13639 .align 2 13640 .set .LANCHOR61,. + 0 13641 .type g_gc_num_req, %object 13642 .size g_gc_num_req, 4 13643g_gc_num_req: 13644 .space 4 13645 .section .bss.g_gc_page_offset,"aw",%nobits 13646 .align 1 13647 .set .LANCHOR69,. + 0 13648 .type g_gc_page_offset, %object 13649 .size g_gc_page_offset, 2 13650g_gc_page_offset: 13651 .space 2 13652 .section .bss.g_gc_skip_write_count,"aw",%nobits 13653 .align 2 13654 .set .LANCHOR97,. + 0 13655 .type g_gc_skip_write_count, %object 13656 .size g_gc_skip_write_count, 4 13657g_gc_skip_write_count: 13658 .space 4 13659 .section .bss.g_gc_superblock,"aw",%nobits 13660 .align 2 13661 .set .LANCHOR144,. + 0 13662 .type g_gc_superblock, %object 13663 .size g_gc_superblock, 48 13664g_gc_superblock: 13665 .space 48 13666 .section .bss.g_gc_temp_superblock,"aw",%nobits 13667 .align 2 13668 .set .LANCHOR52,. + 0 13669 .type g_gc_temp_superblock, %object 13670 .size g_gc_temp_superblock, 48 13671g_gc_temp_superblock: 13672 .space 48 13673 .section .bss.g_in_gc_progress,"aw",%nobits 13674 .align 2 13675 .set .LANCHOR93,. + 0 13676 .type g_in_gc_progress, %object 13677 .size g_in_gc_progress, 4 13678g_in_gc_progress: 13679 .space 4 13680 .section .bss.g_in_swl_replace,"aw",%nobits 13681 .align 2 13682 .set .LANCHOR94,. + 0 13683 .type g_in_swl_replace, %object 13684 .size g_in_swl_replace, 4 13685g_in_swl_replace: 13686 .space 4 13687 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 13688 .align 1 13689 .set .LANCHOR55,. + 0 13690 .type g_l2p_last_update_region_id, %object 13691 .size g_l2p_last_update_region_id, 2 13692g_l2p_last_update_region_id: 13693 .space 2 13694 .section .bss.g_max_erase_count,"aw",%nobits 13695 .align 2 13696 .set .LANCHOR91,. + 0 13697 .type g_max_erase_count, %object 13698 .size g_max_erase_count, 4 13699g_max_erase_count: 13700 .space 4 13701 .section .bss.g_min_erase_count,"aw",%nobits 13702 .align 2 13703 .set .LANCHOR92,. + 0 13704 .type g_min_erase_count, %object 13705 .size g_min_erase_count, 4 13706g_min_erase_count: 13707 .space 4 13708 .section .bss.g_nand_ops,"aw",%nobits 13709 .align 2 13710 .set .LANCHOR77,. + 0 13711 .type g_nand_ops, %object 13712 .size g_nand_ops, 24 13713g_nand_ops: 13714 .space 24 13715 .section .bss.g_nand_phy_info,"aw",%nobits 13716 .align 1 13717 .set .LANCHOR0,. + 0 13718 .type g_nand_phy_info, %object 13719 .size g_nand_phy_info, 24 13720g_nand_phy_info: 13721 .space 24 13722 .section .bss.g_num_data_superblocks,"aw",%nobits 13723 .align 1 13724 .set .LANCHOR43,. + 0 13725 .type g_num_data_superblocks, %object 13726 .size g_num_data_superblocks, 2 13727g_num_data_superblocks: 13728 .space 2 13729 .section .bss.g_num_free_superblocks,"aw",%nobits 13730 .align 1 13731 .set .LANCHOR47,. + 0 13732 .type g_num_free_superblocks, %object 13733 .size g_num_free_superblocks, 2 13734g_num_free_superblocks: 13735 .space 2 13736 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 13737 .align 1 13738 .set .LANCHOR155,. + 0 13739 .type g_power_lost_recovery_flag, %object 13740 .size g_power_lost_recovery_flag, 2 13741g_power_lost_recovery_flag: 13742 .space 2 13743 .section .bss.g_recovery_page_min_ver,"aw",%nobits 13744 .align 2 13745 .set .LANCHOR133,. + 0 13746 .type g_recovery_page_min_ver, %object 13747 .size g_recovery_page_min_ver, 4 13748g_recovery_page_min_ver: 13749 .space 4 13750 .section .bss.g_recovery_page_num,"aw",%nobits 13751 .align 2 13752 .set .LANCHOR156,. + 0 13753 .type g_recovery_page_num, %object 13754 .size g_recovery_page_num, 4 13755g_recovery_page_num: 13756 .space 4 13757 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 13758 .align 2 13759 .set .LANCHOR157,. + 0 13760 .type g_recovery_ppa_tbl, %object 13761 .size g_recovery_ppa_tbl, 128 13762g_recovery_ppa_tbl: 13763 .space 128 13764 .section .bss.g_sys_ext_data,"aw",%nobits 13765 .align 2 13766 .set .LANCHOR134,. + 0 13767 .type g_sys_ext_data, %object 13768 .size g_sys_ext_data, 512 13769g_sys_ext_data: 13770 .space 512 13771 .section .bss.g_sys_save_data,"aw",%nobits 13772 .align 2 13773 .set .LANCHOR38,. + 0 13774 .type g_sys_save_data, %object 13775 .size g_sys_save_data, 48 13776g_sys_save_data: 13777 .space 48 13778 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 13779 .align 1 13780 .set .LANCHOR130,. + 0 13781 .type g_tmp_data_superblock_id, %object 13782 .size g_tmp_data_superblock_id, 2 13783g_tmp_data_superblock_id: 13784 .space 2 13785 .section .bss.g_totle_avg_erase_count,"aw",%nobits 13786 .align 2 13787 .set .LANCHOR142,. + 0 13788 .type g_totle_avg_erase_count, %object 13789 .size g_totle_avg_erase_count, 4 13790g_totle_avg_erase_count: 13791 .space 4 13792 .section .bss.g_totle_cache_write_count,"aw",%nobits 13793 .align 2 13794 .set .LANCHOR86,. + 0 13795 .type g_totle_cache_write_count, %object 13796 .size g_totle_cache_write_count, 4 13797g_totle_cache_write_count: 13798 .space 4 13799 .section .bss.g_totle_discard_page_count,"aw",%nobits 13800 .align 2 13801 .set .LANCHOR85,. + 0 13802 .type g_totle_discard_page_count, %object 13803 .size g_totle_discard_page_count, 4 13804g_totle_discard_page_count: 13805 .space 4 13806 .section .bss.g_totle_gc_page_count,"aw",%nobits 13807 .align 2 13808 .set .LANCHOR83,. + 0 13809 .type g_totle_gc_page_count, %object 13810 .size g_totle_gc_page_count, 4 13811g_totle_gc_page_count: 13812 .space 4 13813 .section .bss.g_totle_l2p_write_count,"aw",%nobits 13814 .align 2 13815 .set .LANCHOR87,. + 0 13816 .type g_totle_l2p_write_count, %object 13817 .size g_totle_l2p_write_count, 4 13818g_totle_l2p_write_count: 13819 .space 4 13820 .section .bss.g_totle_map_block,"aw",%nobits 13821 .align 1 13822 .set .LANCHOR129,. + 0 13823 .type g_totle_map_block, %object 13824 .size g_totle_map_block, 2 13825g_totle_map_block: 13826 .space 2 13827 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 13828 .align 2 13829 .set .LANCHOR89,. + 0 13830 .type g_totle_mlc_erase_count, %object 13831 .size g_totle_mlc_erase_count, 4 13832g_totle_mlc_erase_count: 13833 .space 4 13834 .section .bss.g_totle_read_page_count,"aw",%nobits 13835 .align 2 13836 .set .LANCHOR88,. + 0 13837 .type g_totle_read_page_count, %object 13838 .size g_totle_read_page_count, 4 13839g_totle_read_page_count: 13840 .space 4 13841 .section .bss.g_totle_read_sector,"aw",%nobits 13842 .align 2 13843 .set .LANCHOR162,. + 0 13844 .type g_totle_read_sector, %object 13845 .size g_totle_read_sector, 4 13846g_totle_read_sector: 13847 .space 4 13848 .section .bss.g_totle_slc_erase_count,"aw",%nobits 13849 .align 2 13850 .set .LANCHOR90,. + 0 13851 .type g_totle_slc_erase_count, %object 13852 .size g_totle_slc_erase_count, 4 13853g_totle_slc_erase_count: 13854 .space 4 13855 .section .bss.g_totle_swl_count,"aw",%nobits 13856 .align 2 13857 .set .LANCHOR131,. + 0 13858 .type g_totle_swl_count, %object 13859 .size g_totle_swl_count, 4 13860g_totle_swl_count: 13861 .space 4 13862 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 13863 .align 2 13864 .set .LANCHOR79,. + 0 13865 .type g_totle_sys_slc_erase_count, %object 13866 .size g_totle_sys_slc_erase_count, 4 13867g_totle_sys_slc_erase_count: 13868 .space 4 13869 .section .bss.g_totle_vendor_block,"aw",%nobits 13870 .align 1 13871 .set .LANCHOR34,. + 0 13872 .type g_totle_vendor_block, %object 13873 .size g_totle_vendor_block, 2 13874g_totle_vendor_block: 13875 .space 2 13876 .section .bss.g_totle_write_page_count,"aw",%nobits 13877 .align 2 13878 .set .LANCHOR84,. + 0 13879 .type g_totle_write_page_count, %object 13880 .size g_totle_write_page_count, 4 13881g_totle_write_page_count: 13882 .space 4 13883 .section .bss.g_totle_write_sector,"aw",%nobits 13884 .align 2 13885 .set .LANCHOR161,. + 0 13886 .type g_totle_write_sector, %object 13887 .size g_totle_write_sector, 4 13888g_totle_write_sector: 13889 .space 4 13890 .section .bss.gc_discard_updated,"aw",%nobits 13891 .align 2 13892 .set .LANCHOR166,. + 0 13893 .type gc_discard_updated, %object 13894 .size gc_discard_updated, 4 13895gc_discard_updated: 13896 .space 4 13897 .section .bss.gc_ink_free_return_value,"aw",%nobits 13898 .align 1 13899 .set .LANCHOR171,. + 0 13900 .type gc_ink_free_return_value, %object 13901 .size gc_ink_free_return_value, 2 13902gc_ink_free_return_value: 13903 .space 2 13904 .section .bss.gp_ect_tbl_info,"aw",%nobits 13905 .align 2 13906 .set .LANCHOR117,. + 0 13907 .type gp_ect_tbl_info, %object 13908 .size gp_ect_tbl_info, 4 13909gp_ect_tbl_info: 13910 .space 4 13911 .section .bss.gp_flash_check_buf,"aw",%nobits 13912 .align 2 13913 .set .LANCHOR183,. + 0 13914 .type gp_flash_check_buf, %object 13915 .size gp_flash_check_buf, 4 13916gp_flash_check_buf: 13917 .space 4 13918 .section .bss.gp_gc_page_buf_info,"aw",%nobits 13919 .align 2 13920 .set .LANCHOR62,. + 0 13921 .type gp_gc_page_buf_info, %object 13922 .size gp_gc_page_buf_info, 4 13923gp_gc_page_buf_info: 13924 .space 4 13925 .section .bss.gp_last_act_superblock,"aw",%nobits 13926 .align 2 13927 .type gp_last_act_superblock, %object 13928 .size gp_last_act_superblock, 4 13929gp_last_act_superblock: 13930 .space 4 13931 .section .bss.idb_buf,"aw",%nobits 13932 .align 2 13933 .set .LANCHOR182,. + 0 13934 .type idb_buf, %object 13935 .size idb_buf, 4 13936idb_buf: 13937 .space 4 13938 .section .bss.idb_need_write_back,"aw",%nobits 13939 .align 2 13940 .set .LANCHOR181,. + 0 13941 .type idb_need_write_back, %object 13942 .size idb_need_write_back, 4 13943idb_need_write_back: 13944 .space 4 13945 .section .bss.low_format_en,"aw",%nobits 13946 .align 2 13947 .set .LANCHOR180,. + 0 13948 .type low_format_en, %object 13949 .size low_format_en, 4 13950low_format_en: 13951 .space 4 13952 .section .bss.p_data_block_list_head,"aw",%nobits 13953 .align 2 13954 .set .LANCHOR40,. + 0 13955 .type p_data_block_list_head, %object 13956 .size p_data_block_list_head, 4 13957p_data_block_list_head: 13958 .space 4 13959 .section .bss.p_data_block_list_table,"aw",%nobits 13960 .align 2 13961 .set .LANCHOR39,. + 0 13962 .type p_data_block_list_table, %object 13963 .size p_data_block_list_table, 4 13964p_data_block_list_table: 13965 .space 4 13966 .section .bss.p_data_block_list_tail,"aw",%nobits 13967 .align 2 13968 .set .LANCHOR42,. + 0 13969 .type p_data_block_list_tail, %object 13970 .size p_data_block_list_tail, 4 13971p_data_block_list_tail: 13972 .space 4 13973 .section .bss.p_erase_count_table,"aw",%nobits 13974 .align 2 13975 .set .LANCHOR46,. + 0 13976 .type p_erase_count_table, %object 13977 .size p_erase_count_table, 4 13978p_erase_count_table: 13979 .space 4 13980 .section .bss.p_free_data_block_list_head,"aw",%nobits 13981 .align 2 13982 .set .LANCHOR45,. + 0 13983 .type p_free_data_block_list_head, %object 13984 .size p_free_data_block_list_head, 4 13985p_free_data_block_list_head: 13986 .space 4 13987 .section .bss.p_gc_blk_tbl,"aw",%nobits 13988 .align 2 13989 .set .LANCHOR67,. + 0 13990 .type p_gc_blk_tbl, %object 13991 .size p_gc_blk_tbl, 4 13992p_gc_blk_tbl: 13993 .space 4 13994 .section .bss.p_gc_data_buf,"aw",%nobits 13995 .align 2 13996 .set .LANCHOR63,. + 0 13997 .type p_gc_data_buf, %object 13998 .size p_gc_data_buf, 4 13999p_gc_data_buf: 14000 .space 4 14001 .section .bss.p_gc_page_info,"aw",%nobits 14002 .align 2 14003 .set .LANCHOR70,. + 0 14004 .type p_gc_page_info, %object 14005 .size p_gc_page_info, 4 14006p_gc_page_info: 14007 .space 4 14008 .section .bss.p_gc_spare_buf,"aw",%nobits 14009 .align 2 14010 .set .LANCHOR64,. + 0 14011 .type p_gc_spare_buf, %object 14012 .size p_gc_spare_buf, 4 14013p_gc_spare_buf: 14014 .space 4 14015 .section .bss.p_io_data_buf_0,"aw",%nobits 14016 .align 2 14017 .set .LANCHOR108,. + 0 14018 .type p_io_data_buf_0, %object 14019 .size p_io_data_buf_0, 4 14020p_io_data_buf_0: 14021 .space 4 14022 .section .bss.p_io_data_buf_1,"aw",%nobits 14023 .align 2 14024 .set .LANCHOR109,. + 0 14025 .type p_io_data_buf_1, %object 14026 .size p_io_data_buf_1, 4 14027p_io_data_buf_1: 14028 .space 4 14029 .section .bss.p_io_spare_buf,"aw",%nobits 14030 .align 2 14031 .set .LANCHOR114,. + 0 14032 .type p_io_spare_buf, %object 14033 .size p_io_spare_buf, 4 14034p_io_spare_buf: 14035 .space 4 14036 .section .bss.p_l2p_map_buf,"aw",%nobits 14037 .align 2 14038 .set .LANCHOR125,. + 0 14039 .type p_l2p_map_buf, %object 14040 .size p_l2p_map_buf, 4 14041p_l2p_map_buf: 14042 .space 4 14043 .section .bss.p_l2p_ram_map,"aw",%nobits 14044 .align 2 14045 .set .LANCHOR54,. + 0 14046 .type p_l2p_ram_map, %object 14047 .size p_l2p_ram_map, 4 14048p_l2p_ram_map: 14049 .space 4 14050 .section .bss.p_map_block_table,"aw",%nobits 14051 .align 2 14052 .set .LANCHOR118,. + 0 14053 .type p_map_block_table, %object 14054 .size p_map_block_table, 4 14055p_map_block_table: 14056 .space 4 14057 .section .bss.p_map_block_valid_page_count,"aw",%nobits 14058 .align 2 14059 .set .LANCHOR119,. + 0 14060 .type p_map_block_valid_page_count, %object 14061 .size p_map_block_valid_page_count, 4 14062p_map_block_valid_page_count: 14063 .space 4 14064 .section .bss.p_map_block_ver_table,"aw",%nobits 14065 .align 2 14066 .set .LANCHOR124,. + 0 14067 .type p_map_block_ver_table, %object 14068 .size p_map_block_ver_table, 4 14069p_map_block_ver_table: 14070 .space 4 14071 .section .bss.p_map_region_ppn_table,"aw",%nobits 14072 .align 2 14073 .set .LANCHOR123,. + 0 14074 .type p_map_region_ppn_table, %object 14075 .size p_map_region_ppn_table, 4 14076p_map_region_ppn_table: 14077 .space 4 14078 .section .bss.p_plane_order_table,"aw",%nobits 14079 .set .LANCHOR12,. + 0 14080 .type p_plane_order_table, %object 14081 .size p_plane_order_table, 32 14082p_plane_order_table: 14083 .space 32 14084 .section .bss.p_swl_mul_table,"aw",%nobits 14085 .align 2 14086 .set .LANCHOR116,. + 0 14087 .type p_swl_mul_table, %object 14088 .size p_swl_mul_table, 4 14089p_swl_mul_table: 14090 .space 4 14091 .section .bss.p_sys_data_buf,"aw",%nobits 14092 .align 2 14093 .set .LANCHOR105,. + 0 14094 .type p_sys_data_buf, %object 14095 .size p_sys_data_buf, 4 14096p_sys_data_buf: 14097 .space 4 14098 .section .bss.p_sys_data_buf_1,"aw",%nobits 14099 .align 2 14100 .set .LANCHOR106,. + 0 14101 .type p_sys_data_buf_1, %object 14102 .size p_sys_data_buf_1, 4 14103p_sys_data_buf_1: 14104 .space 4 14105 .section .bss.p_sys_spare_buf,"aw",%nobits 14106 .align 2 14107 .set .LANCHOR113,. + 0 14108 .type p_sys_spare_buf, %object 14109 .size p_sys_spare_buf, 4 14110p_sys_spare_buf: 14111 .space 4 14112 .section .bss.p_valid_page_count_check_table,"aw",%nobits 14113 .align 2 14114 .type p_valid_page_count_check_table, %object 14115 .size p_valid_page_count_check_table, 4 14116p_valid_page_count_check_table: 14117 .space 4 14118 .section .bss.p_valid_page_count_table,"aw",%nobits 14119 .align 2 14120 .set .LANCHOR41,. + 0 14121 .type p_valid_page_count_table, %object 14122 .size p_valid_page_count_table, 4 14123p_valid_page_count_table: 14124 .space 4 14125 .section .bss.p_vendor_block_table,"aw",%nobits 14126 .align 2 14127 .set .LANCHOR35,. + 0 14128 .type p_vendor_block_table, %object 14129 .size p_vendor_block_table, 4 14130p_vendor_block_table: 14131 .space 4 14132 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 14133 .align 2 14134 .set .LANCHOR120,. + 0 14135 .type p_vendor_block_valid_page_count, %object 14136 .size p_vendor_block_valid_page_count, 4 14137p_vendor_block_valid_page_count: 14138 .space 4 14139 .section .bss.p_vendor_block_ver_table,"aw",%nobits 14140 .align 2 14141 .set .LANCHOR121,. + 0 14142 .type p_vendor_block_ver_table, %object 14143 .size p_vendor_block_ver_table, 4 14144p_vendor_block_ver_table: 14145 .space 4 14146 .section .bss.p_vendor_data_buf,"aw",%nobits 14147 .align 2 14148 .set .LANCHOR107,. + 0 14149 .type p_vendor_data_buf, %object 14150 .size p_vendor_data_buf, 4 14151p_vendor_data_buf: 14152 .space 4 14153 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 14154 .align 2 14155 .set .LANCHOR122,. + 0 14156 .type p_vendor_region_ppn_table, %object 14157 .size p_vendor_region_ppn_table, 4 14158p_vendor_region_ppn_table: 14159 .space 4 14160 .section .bss.req_erase,"aw",%nobits 14161 .align 2 14162 .set .LANCHOR78,. + 0 14163 .type req_erase, %object 14164 .size req_erase, 4 14165req_erase: 14166 .space 4 14167 .section .bss.req_gc,"aw",%nobits 14168 .align 2 14169 .set .LANCHOR65,. + 0 14170 .type req_gc, %object 14171 .size req_gc, 4 14172req_gc: 14173 .space 4 14174 .section .bss.req_gc_dst,"aw",%nobits 14175 .align 2 14176 .set .LANCHOR103,. + 0 14177 .type req_gc_dst, %object 14178 .size req_gc_dst, 4 14179req_gc_dst: 14180 .space 4 14181 .section .bss.req_prgm,"aw",%nobits 14182 .align 2 14183 .set .LANCHOR104,. + 0 14184 .type req_prgm, %object 14185 .size req_prgm, 4 14186req_prgm: 14187 .space 4 14188 .section .bss.req_read,"aw",%nobits 14189 .align 2 14190 .set .LANCHOR102,. + 0 14191 .type req_read, %object 14192 .size req_read, 4 14193req_read: 14194 .space 4 14195 .section .bss.req_sys,"aw",%nobits 14196 .align 2 14197 .set .LANCHOR137,. + 0 14198 .type req_sys, %object 14199 .size req_sys, 20 14200req_sys: 14201 .space 20 14202 .section .bss.sftl_nand_check_buf,"aw",%nobits 14203 .align 2 14204 .set .LANCHOR110,. + 0 14205 .type sftl_nand_check_buf, %object 14206 .size sftl_nand_check_buf, 4 14207sftl_nand_check_buf: 14208 .space 4 14209 .section .bss.sftl_nand_check_spare_buf,"aw",%nobits 14210 .align 2 14211 .set .LANCHOR112,. + 0 14212 .type sftl_nand_check_spare_buf, %object 14213 .size sftl_nand_check_spare_buf, 4 14214sftl_nand_check_spare_buf: 14215 .space 4 14216 .section .bss.sftl_temp_buf,"aw",%nobits 14217 .align 2 14218 .set .LANCHOR111,. + 0 14219 .type sftl_temp_buf, %object 14220 .size sftl_temp_buf, 4 14221sftl_temp_buf: 14222 .space 4 14223 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 14224 .align 1 14225 .set .LANCHOR159,. + 0 14226 .type ftl_gc_temp_block_bops_scan_page_addr, %object 14227 .size ftl_gc_temp_block_bops_scan_page_addr, 2 14228ftl_gc_temp_block_bops_scan_page_addr: 14229 .short -1 14230 .section .data.gFtlInitStatus,"aw",%progbits 14231 .align 2 14232 .set .LANCHOR165,. + 0 14233 .type gFtlInitStatus, %object 14234 .size gFtlInitStatus, 4 14235gFtlInitStatus: 14236 .word -1 14237 .section .data.power_up_flag,"aw",%progbits 14238 .align 2 14239 .type power_up_flag, %object 14240 .size power_up_flag, 4 14241power_up_flag: 14242 .word 1 14243 .section .rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1 14244.LC6: 14245 .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" 14246.LC7: 14247 .ascii "not free: w: d:\000" 14248.LC8: 14249 .ascii "not free: w: s:\000" 14250 .section .rodata.FlashProgPages.str1.1,"aMS",%progbits,1 14251.LC14: 14252 .ascii "prog read error: = %x\012\000" 14253.LC15: 14254 .ascii "prog read REFRESH: = %x\012\000" 14255.LC16: 14256 .ascii "prog read s error: = %x %x %x\012\000" 14257.LC17: 14258 .ascii "prog read d error: = %x %x %x\012\000" 14259 .section .rodata.FlashReadPages.str1.1,"aMS",%progbits,1 14260.LC11: 14261 .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000" 14262.LC12: 14263 .ascii "data:\000" 14264.LC13: 14265 .ascii "spare:\000" 14266 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 14267.LC0: 14268 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 14269 .ascii "\000" 14270 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 14271.LC18: 14272 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 14273.LC19: 14274 .ascii "FtlBbmTblFlush error:%x\012\000" 14275.LC20: 14276 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 14277 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 14278.LC9: 14279 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 14280 .ascii "\000" 14281 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 14282.LC35: 14283 .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" 14284 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 14285.LC37: 14286 .ascii "no ect\000" 14287.LC38: 14288 .ascii "%s\012\000" 14289 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1 14290.LC46: 14291 .ascii "%s hash error this.id =%x page =%x pre_id =%x hash " 14292 .ascii "=%x hash_r =%x\012\000" 14293 .section .rodata.FtlMapTblRecovery.str1.1,"aMS",%progbits,1 14294.LC47: 14295 .ascii "%s last blk_id =%x page =%x hash error hash =%x has" 14296 .ascii "h_r =%x\012\000" 14297.LC48: 14298 .ascii "%s scan blk_id =%x page =%x hash error hash =%x has" 14299 .ascii "h_r =%x\012\000" 14300 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 14301.LC22: 14302 .ascii "FtlMapWritePage error = %x \012\000" 14303.LC23: 14304 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 14305 .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 14306.LC40: 14307 .ascii "FtlProgPages error %x = %d\012\000" 14308.LC41: 14309 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 14310 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 14311.LC27: 14312 .ascii "data prev_ppa = %x error...................\012\000" 14313.LC28: 14314 .ascii "spuer block %x vpn is 0\012 \000" 14315 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 14316.LC36: 14317 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 14318 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 14319.LC39: 14320 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 14321 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 14322.LC44: 14323 .ascii "FtlWrite: ecc error:%x %x %x\012\000" 14324.LC45: 14325 .ascii "FtlWrite: lpa error:%x %x\012\000" 14326 .section .rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1 14327.LC50: 14328 .ascii "write_idblock %x %x\012\000" 14329.LC51: 14330 .ascii "write_idblock fail! %x %x %x %x\012\000" 14331.LC52: 14332 .ascii "%s idb buffer alloc fail\012\000" 14333 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 14334.LC1: 14335 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 14336 .section .rodata.__func__.10032,"a",%progbits 14337 .set .LANCHOR169,. + 0 14338 .type __func__.10032, %object 14339 .size __func__.10032, 19 14340__func__.10032: 14341 .ascii "FtlGcFreeTempBlock\000" 14342 .section .rodata.__func__.10131,"a",%progbits 14343 .set .LANCHOR174,. + 0 14344 .type __func__.10131, %object 14345 .size __func__.10131, 23 14346__func__.10131: 14347 .ascii "rk_ftl_garbage_collect\000" 14348 .section .rodata.__func__.10399,"a",%progbits 14349 .set .LANCHOR136,. + 0 14350 .type __func__.10399, %object 14351 .size __func__.10399, 15 14352__func__.10399: 14353 .ascii "FlashReadPages\000" 14354 .section .rodata.__func__.10418,"a",%progbits 14355 .set .LANCHOR141,. + 0 14356 .type __func__.10418, %object 14357 .size __func__.10418, 15 14358__func__.10418: 14359 .ascii "FlashProgPages\000" 14360 .section .rodata.__func__.10442,"a",%progbits 14361 .set .LANCHOR76,. + 0 14362 .type __func__.10442, %object 14363 .size __func__.10442, 17 14364__func__.10442: 14365 .ascii "FlashEraseBlocks\000" 14366 .section .rodata.__func__.10561,"a",%progbits 14367 .set .LANCHOR184,. + 0 14368 .type __func__.10561, %object 14369 .size __func__.10561, 14 14370__func__.10561: 14371 .ascii "FtlWriteToIDB\000" 14372 .section .rodata.__func__.9055,"a",%progbits 14373 .set .LANCHOR168,. + 0 14374 .type __func__.9055, %object 14375 .size __func__.9055, 13 14376__func__.9055: 14377 .ascii "FtlProgPages\000" 14378 .section .rodata.__func__.9083,"a",%progbits 14379 .set .LANCHOR176,. + 0 14380 .type __func__.9083, %object 14381 .size __func__.9083, 9 14382__func__.9083: 14383 .ascii "FtlWrite\000" 14384 .section .rodata.__func__.9165,"a",%progbits 14385 .set .LANCHOR127,. + 0 14386 .type __func__.9165, %object 14387 .size __func__.9165, 14 14388__func__.9165: 14389 .ascii "FtlBbt2Bitmap\000" 14390 .section .rodata.__func__.9200,"a",%progbits 14391 .set .LANCHOR140,. + 0 14392 .type __func__.9200, %object 14393 .size __func__.9200, 11 14394__func__.9200: 14395 .ascii "FtlLoadBbt\000" 14396 .section .rodata.__func__.9315,"a",%progbits 14397 .set .LANCHOR48,. + 0 14398 .type __func__.9315, %object 14399 .size __func__.9315, 17 14400__func__.9315: 14401 .ascii "INSERT_FREE_LIST\000" 14402 .section .rodata.__func__.9320,"a",%progbits 14403 .set .LANCHOR44,. + 0 14404 .type __func__.9320, %object 14405 .size __func__.9320, 17 14406__func__.9320: 14407 .ascii "INSERT_DATA_LIST\000" 14408 .section .rodata.__func__.9351,"a",%progbits 14409 .set .LANCHOR49,. + 0 14410 .type __func__.9351, %object 14411 .size __func__.9351, 17 14412__func__.9351: 14413 .ascii "List_remove_node\000" 14414 .section .rodata.__func__.9383,"a",%progbits 14415 .set .LANCHOR53,. + 0 14416 .type __func__.9383, %object 14417 .size __func__.9383, 22 14418__func__.9383: 14419 .ascii "List_update_data_list\000" 14420 .section .rodata.__func__.9392,"a",%progbits 14421 .set .LANCHOR149,. + 0 14422 .type __func__.9392, %object 14423 .size __func__.9392, 16 14424__func__.9392: 14425 .ascii "load_l2p_region\000" 14426 .section .rodata.__func__.9425,"a",%progbits 14427 .set .LANCHOR80,. + 0 14428 .type __func__.9425, %object 14429 .size __func__.9425, 26 14430__func__.9425: 14431 .ascii "ftl_map_blk_alloc_new_blk\000" 14432 .section .rodata.__func__.9436,"a",%progbits 14433 .set .LANCHOR150,. + 0 14434 .type __func__.9436, %object 14435 .size __func__.9436, 15 14436__func__.9436: 14437 .ascii "ftl_map_blk_gc\000" 14438 .section .rodata.__func__.9451,"a",%progbits 14439 .set .LANCHOR147,. + 0 14440 .type __func__.9451, %object 14441 .size __func__.9451, 31 14442__func__.9451: 14443 .ascii "Ftl_write_map_blk_to_last_page\000" 14444 .section .rodata.__func__.9465,"a",%progbits 14445 .set .LANCHOR148,. + 0 14446 .type __func__.9465, %object 14447 .size __func__.9465, 16 14448__func__.9465: 14449 .ascii "FtlMapWritePage\000" 14450 .section .rodata.__func__.9490,"a",%progbits 14451 .set .LANCHOR56,. + 0 14452 .type __func__.9490, %object 14453 .size __func__.9490, 22 14454__func__.9490: 14455 .ascii "select_l2p_ram_region\000" 14456 .section .rodata.__func__.9507,"a",%progbits 14457 .set .LANCHOR152,. + 0 14458 .type __func__.9507, %object 14459 .size __func__.9507, 9 14460__func__.9507: 14461 .ascii "log2phys\000" 14462 .section .rodata.__func__.9571,"a",%progbits 14463 .set .LANCHOR164,. + 0 14464 .type __func__.9571, %object 14465 .size __func__.9571, 15 14466__func__.9571: 14467 .ascii "FtlVpcTblFlush\000" 14468 .section .rodata.__func__.9593,"a",%progbits 14469 .set .LANCHOR139,. + 0 14470 .type __func__.9593, %object 14471 .size __func__.9593, 14 14472__func__.9593: 14473 .ascii "FtlScanSysBlk\000" 14474 .section .rodata.__func__.9642,"a",%progbits 14475 .set .LANCHOR177,. + 0 14476 .type __func__.9642, %object 14477 .size __func__.9642, 15 14478__func__.9642: 14479 .ascii "FtlLoadSysInfo\000" 14480 .section .rodata.__func__.9664,"a",%progbits 14481 .set .LANCHOR179,. + 0 14482 .type __func__.9664, %object 14483 .size __func__.9664, 18 14484__func__.9664: 14485 .ascii "FtlMapTblRecovery\000" 14486 .section .rodata.__func__.9710,"a",%progbits 14487 .set .LANCHOR153,. + 0 14488 .type __func__.9710, %object 14489 .size __func__.9710, 16 14490__func__.9710: 14491 .ascii "FtlReUsePrevPpa\000" 14492 .section .rodata.__func__.9744,"a",%progbits 14493 .set .LANCHOR154,. + 0 14494 .type __func__.9744, %object 14495 .size __func__.9744, 22 14496__func__.9744: 14497 .ascii "FtlRecoverySuperblock\000" 14498 .section .rodata.__func__.9801,"a",%progbits 14499 .set .LANCHOR59,. + 0 14500 .type __func__.9801, %object 14501 .size __func__.9801, 16 14502__func__.9801: 14503 .ascii "make_superblock\000" 14504 .section .rodata.__func__.9822,"a",%progbits 14505 .set .LANCHOR135,. + 0 14506 .type __func__.9822, %object 14507 .size __func__.9822, 18 14508__func__.9822: 14509 .ascii "SupperBlkListInit\000" 14510 .section .rodata.__func__.9849,"a",%progbits 14511 .set .LANCHOR158,. + 0 14512 .type __func__.9849, %object 14513 .size __func__.9849, 14 14514__func__.9849: 14515 .ascii "ftl_check_vpc\000" 14516 .section .rodata.__func__.9914,"a",%progbits 14517 .set .LANCHOR143,. + 0 14518 .type __func__.9914, %object 14519 .size __func__.9914, 25 14520__func__.9914: 14521 .ascii "allocate_data_superblock\000" 14522 .section .rodata.__func__.9935,"a",%progbits 14523 .set .LANCHOR167,. + 0 14524 .type __func__.9935, %object 14525 .size __func__.9935, 29 14526__func__.9935: 14527 .ascii "allocate_new_data_superblock\000" 14528 .section .rodata.__func__.9942,"a",%progbits 14529 .set .LANCHOR60,. + 0 14530 .type __func__.9942, %object 14531 .size __func__.9942, 19 14532__func__.9942: 14533 .ascii "get_new_active_ppa\000" 14534 .section .rodata.__func__.9955,"a",%progbits 14535 .set .LANCHOR145,. + 0 14536 .type __func__.9955, %object 14537 .size __func__.9955, 16 14538__func__.9955: 14539 .ascii "update_vpc_list\000" 14540 .section .rodata.__func__.9962,"a",%progbits 14541 .set .LANCHOR146,. + 0 14542 .type __func__.9962, %object 14543 .size __func__.9962, 20 14544__func__.9962: 14545 .ascii "decrement_vpc_count\000" 14546 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 14547.LC21: 14548 .ascii "decrement_vpc_count %x = %d\012\000" 14549 .section .rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1 14550.LC29: 14551 .ascii "...%s enter...\012\000" 14552.LC30: 14553 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 14554.LC31: 14555 .ascii "free blk vpc error %x = %x %x\012\000" 14556 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 14557.LC10: 14558 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 14559 .section .rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1 14560.LC32: 14561 .ascii "ftl_scan_all_data = %x\012\000" 14562.LC33: 14563 .ascii "scan lpa = %x ppa= %x\012\000" 14564.LC34: 14565 .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 14566 .ascii "\000" 14567 .section .rodata.load_l2p_region.str1.1,"aMS",%progbits,1 14568.LC24: 14569 .ascii "region_id = %x phyAddr = %x\012\000" 14570.LC25: 14571 .ascii "map_ppn:\000" 14572.LC26: 14573 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 14574 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 14575.LC42: 14576 .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" 14577.LC43: 14578 .ascii "lpa=%x, ppa=%x\012\000" 14579 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 14580.LC2: 14581 .ascii "%s 0x%x:\000" 14582.LC3: 14583 .ascii "%x \000" 14584.LC4: 14585 .ascii "%02x \000" 14586.LC5: 14587 .ascii "\012\000" 14588 .section .rodata.sftl_init.str1.1,"aMS",%progbits,1 14589.LC49: 14590 .ascii "SFTL version: 5.0.56 20210329\000" 14591 .hidden free 14592