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