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