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