1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2018-10-29 6 */ 7 .arch armv7-a 8 .eabi_attribute 20, 1 9 .eabi_attribute 21, 1 10 .eabi_attribute 23, 3 11 .eabi_attribute 24, 1 12 .eabi_attribute 25, 1 13 .eabi_attribute 26, 2 14 .eabi_attribute 30, 4 15 .eabi_attribute 34, 0 16 .eabi_attribute 18, 2 17 .file "rk_sftl.c" 18 .global __aeabi_uidiv 19 .section .text.l2p_addr_tran.isra.0,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 24 .fpu softvfp 25 .type l2p_addr_tran.isra.0, %function 26l2p_addr_tran.isra.0: 27 @ args = 0, pretend = 0, frame = 0 28 @ frame_needed = 0, uses_anonymous_args = 0 29 push {r3, r4, r5, r6, r7, r8, r10, lr} 30 lsrs r7, r0, #10 31 ldr r3, .L3 32 mov r8, r1 33 mov r6, r0 34 uxth r0, r7 35 mov r10, r2 36 uxth r7, r7 37 ldrh r4, [r3, #8] 38 ubfx r6, r6, #0, #10 39 ldrh r5, [r3, #10] 40 ldrh r3, [r3, #14] 41 cmp r3, #4 42 itt eq 43 lsreq r4, r4, #1 44 lsleq r5, r5, #1 45 mov r1, r4 46 it eq 47 uxtheq r5, r5 48 bl __aeabi_uidiv 49 uxth r0, r0 50 mls r4, r0, r4, r7 51 mla r4, r5, r4, r6 52 str r4, [r8] 53 str r0, [r10] 54 movs r0, #0 55 pop {r3, r4, r5, r6, r7, r8, r10, pc} 56.L4: 57 .align 2 58.L3: 59 .word .LANCHOR0 60 .size l2p_addr_tran.isra.0, .-l2p_addr_tran.isra.0 61 .section .text.ftl_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 = 0 183 @ frame_needed = 0, uses_anonymous_args = 0 184 ldrh r1, [r0] 185 ldr r2, .L25 186 push {r4, r5, r6, r7, r8, r10, fp, lr} 187 mov r7, r0 188 ldrh r5, [r0, #2] 189 strh r1, [r2] @ movhi 190 ldr r2, .L25+4 191 ldrh r0, [r0, #4] 192 strh r5, [r2] @ movhi 193 ldr r2, .L25+8 194 strh r0, [r2] @ movhi 195 ldrh r2, [r7, #14] 196 cmp r2, #4 197 bne .L16 198 ldrh r2, [r7, #6] 199 ldr r4, .L25+12 200 lsrs r2, r2, #1 201 strh r2, [r4] @ movhi 202 movs r4, #8 203 ldr r2, .L25+16 204 strh r4, [r2] @ movhi 205.L16: 206 ldr r4, .L25+20 207 movs r2, #0 208.L17: 209 strb r2, [r2, r4] 210 adds r2, r2, #1 211 cmp r2, #32 212 bne .L17 213 ldr r2, .L25+24 214 cmp r1, #1 215 mov r4, #5 216 smulbb r5, r5, r0 217 mov r6, #0 218 strh r4, [r2] @ movhi 219 it eq 220 strheq r1, [r2] @ movhi 221 mov r1, #640 222 ldr r2, .L25+28 223 uxth r5, r5 224 ldr r4, .L25+32 225 strh r1, [r2] @ movhi 226 ldr r2, .L25+36 227 strh r6, [r4] @ movhi 228 ldr r6, .L25+40 229 strh r5, [r2] @ movhi 230 ldr r2, .L25+12 231 ldrh r4, [r2] 232 ldr r2, .L25+44 233 smulbb r0, r0, r4 234 uxth r0, r0 235 strh r0, [r2] @ movhi 236 bl Ftl_log2 237 ldr r2, .L25+48 238 ldrh r8, [r7, #12] 239 ldr r3, .L25+52 240 strh r0, [r2] @ movhi 241 ldr r2, .L25+56 242 smulbb r1, r5, r8 243 strh r8, [r3] @ movhi 244 strh r8, [r2] @ movhi 245 ldr r2, .L25+60 246 strh r1, [r2] @ movhi 247 ldr r2, .L25+16 248 ldrh fp, [r2] 249 mov r0, fp 250 bl Ftl_log2 251 lsl r2, fp, #9 252 ldr r1, .L25+64 253 ldr r3, .L25+68 254 mov r10, r0 255 uxth r2, r2 256 strh r0, [r6] @ movhi 257 mov r0, #5120 258 strh r2, [r1] @ movhi 259 lsrs r2, r2, #8 260 ldr r1, .L25+72 261 strh r2, [r1] @ movhi 262 mul r1, r8, fp 263 ldrh r2, [r7, #20] 264 ldr r7, .L25+52 265 strh r2, [r3] @ movhi 266 mul r3, r4, r5 267 ldr r2, .L25+76 268 lsls r4, r4, #6 269 str r3, [r2] 270 mul r3, fp, r3 271 ldr r2, .L25+80 272 mul r3, r8, r3 273 ldr r8, .L25+116 274 asrs r3, r3, #11 275 str r3, [r2] 276 bl __aeabi_idiv 277 uxth r0, r0 278 ldr r2, .L25+84 279 mov r1, r5 280 cmp r0, #4 281 itet ls 282 movls r3, #4 283 strhhi r0, [r8] @ movhi 284 strhls r3, [r8] @ movhi 285 mov r3, #640 286 asr r3, r3, r10 287 add r10, r10, #9 288 asr r4, r4, r10 289 ldr r10, .L25+120 290 adds r3, r3, #2 291 ldrh r0, [r8] 292 strh r3, [r2] @ movhi 293 ldr r3, .L25+88 294 strh r4, [r3] @ movhi 295 uxth r4, r4 296 mul r3, r5, r4 297 adds r4, r4, #8 298 str r3, [r10] 299 bl __aeabi_uidiv 300 uxtah r0, r4, r0 301 ldr r4, .L25+92 302 cmp r5, #1 303 it eq 304 addeq r0, r0, #4 305 str r0, [r4] 306 ldrh r0, [r4] 307 bl FtlSysBlkNumInit 308 ldr r2, [r4] 309 movs r0, #0 310 ldr r3, .L25+96 311 str r2, [r3] 312 ldr r3, .L25+100 313 ldr r2, [r3] 314 ldrh r3, [r7] 315 lsls r2, r2, #2 316 muls r3, r2, r3 317 ldrh r2, [r6] 318 adds r2, r2, #9 319 lsrs r3, r3, r2 320 ldr r2, .L25+104 321 adds r3, r3, #2 322 strh r3, [r2] @ movhi 323 movs r2, #32 324 ldr r3, .L25+108 325 strh r2, [r3] @ movhi 326 ldr r3, .L25+112 327 str r0, [r3] 328 ldrh r3, [r8] 329 adds r3, r3, #3 330 strh r3, [r8] @ movhi 331 ldr r3, [r10] 332 adds r3, r3, #3 333 str r3, [r10] 334 pop {r4, r5, r6, r7, r8, r10, fp, pc} 335.L26: 336 .align 2 337.L25: 338 .word .LANCHOR9 339 .word .LANCHOR10 340 .word .LANCHOR11 341 .word .LANCHOR6 342 .word .LANCHOR12 343 .word .LANCHOR13 344 .word .LANCHOR14 345 .word .LANCHOR16 346 .word .LANCHOR15 347 .word .LANCHOR3 348 .word .LANCHOR22 349 .word .LANCHOR17 350 .word .LANCHOR18 351 .word .LANCHOR19 352 .word .LANCHOR20 353 .word .LANCHOR21 354 .word .LANCHOR23 355 .word .LANCHOR25 356 .word .LANCHOR24 357 .word .LANCHOR8 358 .word .LANCHOR26 359 .word .LANCHOR28 360 .word .LANCHOR29 361 .word .LANCHOR2 362 .word .LANCHOR31 363 .word .LANCHOR7 364 .word .LANCHOR32 365 .word .LANCHOR33 366 .word .LANCHOR34 367 .word .LANCHOR27 368 .word .LANCHOR30 369 .size FtlConstantsInit, .-FtlConstantsInit 370 .section .text.IsBlkInVendorPart,"ax",%progbits 371 .align 1 372 .global IsBlkInVendorPart 373 .syntax unified 374 .thumb 375 .thumb_func 376 .fpu softvfp 377 .type IsBlkInVendorPart, %function 378IsBlkInVendorPart: 379 @ args = 0, pretend = 0, frame = 0 380 @ frame_needed = 0, uses_anonymous_args = 0 381 @ link register save eliminated. 382 ldr r3, .L34 383 ldrh r3, [r3] 384 cbz r3, .L33 385 ldr r3, .L34+4 386 ldr r2, .L34+8 387 ldr r3, [r3] 388 ldrh r2, [r2] 389 add r2, r3, r2, lsl #1 390.L29: 391 cmp r3, r2 392 bne .L30 393.L33: 394 movs r0, #0 395 bx lr 396.L30: 397 ldrh r1, [r3], #2 398 cmp r0, r1 399 bne .L29 400 movs r0, #1 401 bx lr 402.L35: 403 .align 2 404.L34: 405 .word .LANCHOR35 406 .word .LANCHOR36 407 .word .LANCHOR27 408 .size IsBlkInVendorPart, .-IsBlkInVendorPart 409 .section .text.FtlCacheWriteBack,"ax",%progbits 410 .align 1 411 .global FtlCacheWriteBack 412 .syntax unified 413 .thumb 414 .thumb_func 415 .fpu softvfp 416 .type FtlCacheWriteBack, %function 417FtlCacheWriteBack: 418 @ args = 0, pretend = 0, frame = 0 419 @ frame_needed = 0, uses_anonymous_args = 0 420 @ link register save eliminated. 421 movs r0, #0 422 bx lr 423 .size FtlCacheWriteBack, .-FtlCacheWriteBack 424 .section .text.sftl_get_density,"ax",%progbits 425 .align 1 426 .global sftl_get_density 427 .syntax unified 428 .thumb 429 .thumb_func 430 .fpu softvfp 431 .type sftl_get_density, %function 432sftl_get_density: 433 @ args = 0, pretend = 0, frame = 0 434 @ frame_needed = 0, uses_anonymous_args = 0 435 @ link register save eliminated. 436 ldr r3, .L38 437 ldr r0, [r3] 438 bx lr 439.L39: 440 .align 2 441.L38: 442 .word .LANCHOR34 443 .size sftl_get_density, .-sftl_get_density 444 .global __aeabi_uidivmod 445 .section .text.FtlBbmMapBadBlock,"ax",%progbits 446 .align 1 447 .global FtlBbmMapBadBlock 448 .syntax unified 449 .thumb 450 .thumb_func 451 .fpu softvfp 452 .type FtlBbmMapBadBlock, %function 453FtlBbmMapBadBlock: 454 @ args = 0, pretend = 0, frame = 0 455 @ frame_needed = 0, uses_anonymous_args = 0 456 ldr r3, .L41 457 push {r0, r1, r2, r4, r5, r6, r7, lr} 458 mov r5, r0 459 ldrh r4, [r3] 460 mov r1, r4 461 bl __aeabi_uidiv 462 mov r1, r4 463 ldr r4, .L41+4 464 uxth r6, r0 465 mov r0, r5 466 bl __aeabi_uidivmod 467 add r2, r4, r6, lsl #2 468 uxth r3, r1 469 ldr r2, [r2, #28] 470 lsrs r1, r3, #5 471 and r7, r3, #31 472 movs r0, #1 473 lsls r0, r0, r7 474 ldr r7, [r2, r1, lsl #2] 475 orrs r0, r0, r7 476 str r0, [r2, r1, lsl #2] 477 mov r2, r6 478 str r0, [sp] 479 mov r1, r5 480 ldr r0, .L41+8 481 bl printf 482 ldrh r3, [r4, #6] 483 movs r0, #0 484 adds r3, r3, #1 485 strh r3, [r4, #6] @ movhi 486 add sp, sp, #12 487 @ sp needed 488 pop {r4, r5, r6, r7, pc} 489.L42: 490 .align 2 491.L41: 492 .word .LANCHOR17 493 .word .LANCHOR37 494 .word .LC0 495 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 496 .section .text.FtlBbmIsBadBlock,"ax",%progbits 497 .align 1 498 .global FtlBbmIsBadBlock 499 .syntax unified 500 .thumb 501 .thumb_func 502 .fpu softvfp 503 .type FtlBbmIsBadBlock, %function 504FtlBbmIsBadBlock: 505 @ args = 0, pretend = 0, frame = 0 506 @ frame_needed = 0, uses_anonymous_args = 0 507 ldr r3, .L44 508 push {r4, r5, r6, lr} 509 mov r6, r0 510 ldrh r5, [r3] 511 mov r1, r5 512 bl __aeabi_uidivmod 513 mov r0, r6 514 uxth r4, r1 515 mov r1, r5 516 bl __aeabi_uidiv 517 ldr r3, .L44+4 518 uxth r0, r0 519 lsrs r2, r4, #5 520 and r4, r4, #31 521 add r0, r3, r0, lsl #2 522 ldr r3, [r0, #28] 523 ldr r0, [r3, r2, lsl #2] 524 lsrs r0, r0, r4 525 and r0, r0, #1 526 pop {r4, r5, r6, pc} 527.L45: 528 .align 2 529.L44: 530 .word .LANCHOR17 531 .word .LANCHOR37 532 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 533 .section .text.FtlBbtInfoPrint,"ax",%progbits 534 .align 1 535 .global FtlBbtInfoPrint 536 .syntax unified 537 .thumb 538 .thumb_func 539 .fpu softvfp 540 .type FtlBbtInfoPrint, %function 541FtlBbtInfoPrint: 542 @ args = 0, pretend = 0, frame = 0 543 @ frame_needed = 0, uses_anonymous_args = 0 544 @ link register save eliminated. 545 bx lr 546 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 547 .section .text.FtlBbtCalcTotleCnt,"ax",%progbits 548 .align 1 549 .global FtlBbtCalcTotleCnt 550 .syntax unified 551 .thumb 552 .thumb_func 553 .fpu softvfp 554 .type FtlBbtCalcTotleCnt, %function 555FtlBbtCalcTotleCnt: 556 @ args = 0, pretend = 0, frame = 0 557 @ frame_needed = 0, uses_anonymous_args = 0 558 ldr r3, .L54 559 ldr r2, .L54+4 560 push {r4, r5, r6, lr} 561 movs r5, #0 562 ldrh r3, [r3] 563 mov r4, r5 564 ldrh r6, [r2] 565 muls r6, r3, r6 566.L48: 567 uxth r0, r5 568 cmp r0, r6 569 blt .L50 570 mov r0, r4 571 pop {r4, r5, r6, pc} 572.L50: 573 bl FtlBbmIsBadBlock 574 cbz r0, .L49 575 adds r4, r4, #1 576 uxth r4, r4 577.L49: 578 adds r5, r5, #1 579 b .L48 580.L55: 581 .align 2 582.L54: 583 .word .LANCHOR17 584 .word .LANCHOR10 585 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt 586 .section .text.V2P_block,"ax",%progbits 587 .align 1 588 .global V2P_block 589 .syntax unified 590 .thumb 591 .thumb_func 592 .fpu softvfp 593 .type V2P_block, %function 594V2P_block: 595 @ args = 0, pretend = 0, frame = 0 596 @ frame_needed = 0, uses_anonymous_args = 0 597 push {r3, r4, r5, r6, r7, lr} 598 mov r5, r1 599 ldr r3, .L57 600 mov r7, r0 601 ldrh r6, [r3] 602 mov r1, r6 603 bl __aeabi_uidiv 604 ldr r3, .L57+4 605 smulbb r5, r6, r5 606 mov r1, r6 607 ldrh r4, [r3] 608 smulbb r4, r4, r0 609 mov r0, r7 610 bl __aeabi_uidivmod 611 adds r0, r5, r1 612 add r0, r0, r4 613 uxth r0, r0 614 pop {r3, r4, r5, r6, r7, pc} 615.L58: 616 .align 2 617.L57: 618 .word .LANCHOR11 619 .word .LANCHOR17 620 .size V2P_block, .-V2P_block 621 .section .text.P2V_plane,"ax",%progbits 622 .align 1 623 .global P2V_plane 624 .syntax unified 625 .thumb 626 .thumb_func 627 .fpu softvfp 628 .type P2V_plane, %function 629P2V_plane: 630 @ args = 0, pretend = 0, frame = 0 631 @ frame_needed = 0, uses_anonymous_args = 0 632 ldr r3, .L60 633 push {r4, r5, r6, lr} 634 mov r6, r0 635 ldrh r5, [r3] 636 ldr r3, .L60+4 637 ldrh r1, [r3] 638 bl __aeabi_uidiv 639 smulbb r4, r0, r5 640 mov r1, r5 641 mov r0, r6 642 bl __aeabi_uidivmod 643 add r1, r1, r4 644 uxth r0, r1 645 pop {r4, r5, r6, pc} 646.L61: 647 .align 2 648.L60: 649 .word .LANCHOR11 650 .word .LANCHOR17 651 .size P2V_plane, .-P2V_plane 652 .section .text.P2V_block_in_plane,"ax",%progbits 653 .align 1 654 .global P2V_block_in_plane 655 .syntax unified 656 .thumb 657 .thumb_func 658 .fpu softvfp 659 .type P2V_block_in_plane, %function 660P2V_block_in_plane: 661 @ args = 0, pretend = 0, frame = 0 662 @ frame_needed = 0, uses_anonymous_args = 0 663 push {r3, lr} 664 ldr r3, .L63 665 ldrh r1, [r3] 666 bl __aeabi_uidivmod 667 ldr r3, .L63+4 668 uxth r0, r1 669 ldrh r1, [r3] 670 bl __aeabi_uidiv 671 uxth r0, r0 672 pop {r3, pc} 673.L64: 674 .align 2 675.L63: 676 .word .LANCHOR17 677 .word .LANCHOR11 678 .size P2V_block_in_plane, .-P2V_block_in_plane 679 .section .text.ftl_cmp_data_ver,"ax",%progbits 680 .align 1 681 .global ftl_cmp_data_ver 682 .syntax unified 683 .thumb 684 .thumb_func 685 .fpu softvfp 686 .type ftl_cmp_data_ver, %function 687ftl_cmp_data_ver: 688 @ args = 0, pretend = 0, frame = 0 689 @ frame_needed = 0, uses_anonymous_args = 0 690 @ link register save eliminated. 691 cmp r0, r1 692 bls .L66 693 subs r0, r0, r1 694 cmp r0, #-2147483648 695 ite hi 696 movhi r0, #0 697 movls r0, #1 698 bx lr 699.L66: 700 subs r0, r1, r0 701 cmp r0, #-2147483648 702 ite ls 703 movls r0, #0 704 movhi r0, #1 705 bx lr 706 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 707 .section .text.FtlFreeSysBlkQueueEmpty,"ax",%progbits 708 .align 1 709 .global FtlFreeSysBlkQueueEmpty 710 .syntax unified 711 .thumb 712 .thumb_func 713 .fpu softvfp 714 .type FtlFreeSysBlkQueueEmpty, %function 715FtlFreeSysBlkQueueEmpty: 716 @ args = 0, pretend = 0, frame = 0 717 @ frame_needed = 0, uses_anonymous_args = 0 718 @ link register save eliminated. 719 ldr r3, .L69 720 ldrh r0, [r3, #6] 721 clz r0, r0 722 lsrs r0, r0, #5 723 bx lr 724.L70: 725 .align 2 726.L69: 727 .word .LANCHOR38 728 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 729 .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits 730 .align 1 731 .global FtlFreeSysBlkQueueFull 732 .syntax unified 733 .thumb 734 .thumb_func 735 .fpu softvfp 736 .type FtlFreeSysBlkQueueFull, %function 737FtlFreeSysBlkQueueFull: 738 @ args = 0, pretend = 0, frame = 0 739 @ frame_needed = 0, uses_anonymous_args = 0 740 @ link register save eliminated. 741 ldr r3, .L72 742 ldrh r0, [r3, #6] 743 sub r3, r0, #1024 744 rsbs r0, r3, #0 745 adcs r0, r0, r3 746 bx lr 747.L73: 748 .align 2 749.L72: 750 .word .LANCHOR38 751 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 752 .section .text.FtlFreeSysBLkSort,"ax",%progbits 753 .align 1 754 .global FtlFreeSysBLkSort 755 .syntax unified 756 .thumb 757 .thumb_func 758 .fpu softvfp 759 .type FtlFreeSysBLkSort, %function 760FtlFreeSysBLkSort: 761 @ args = 0, pretend = 0, frame = 0 762 @ frame_needed = 0, uses_anonymous_args = 0 763 ldr r3, .L83 764 push {r4, r5, r6, lr} 765 ldrh r2, [r3, #6] 766 cbz r2, .L74 767 ldr r2, .L83+4 768 movs r6, #0 769 ldrh r1, [r3, #2] 770 mov r5, r6 771 ldrh r4, [r2, #28] 772 ldrh r2, [r3, #4] 773 and r4, r4, #31 774.L76: 775 uxth r0, r6 776 adds r6, r6, #1 777 cmp r4, r0 778 bgt .L77 779 cbz r5, .L74 780 strh r1, [r3, #2] @ movhi 781 strh r2, [r3, #4] @ movhi 782.L74: 783 pop {r4, r5, r6, pc} 784.L77: 785 adds r0, r1, #4 786 adds r1, r1, #1 787 ldrh r5, [r3, r0, lsl #1] 788 adds r0, r2, #4 789 ubfx r1, r1, #0, #10 790 strh r5, [r3, r0, lsl #1] @ movhi 791 movs r5, #1 792 add r2, r2, r5 793 ubfx r2, r2, #0, #10 794 b .L76 795.L84: 796 .align 2 797.L83: 798 .word .LANCHOR38 799 .word .LANCHOR39 800 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 801 .section .text.IsInFreeQueue,"ax",%progbits 802 .align 1 803 .global IsInFreeQueue 804 .syntax unified 805 .thumb 806 .thumb_func 807 .fpu softvfp 808 .type IsInFreeQueue, %function 809IsInFreeQueue: 810 @ args = 0, pretend = 0, frame = 0 811 @ frame_needed = 0, uses_anonymous_args = 0 812 ldr r3, .L91 813 push {r4, r5, lr} 814 ldrh r4, [r3, #6] 815 cmp r4, #1024 816 beq .L89 817 ldrh r5, [r3, #2] 818 movs r1, #0 819.L87: 820 cmp r1, r4 821 bcc .L88 822.L89: 823 movs r0, #0 824 pop {r4, r5, pc} 825.L88: 826 adds r2, r1, r5 827 ubfx r2, r2, #0, #10 828 adds r2, r2, #4 829 ldrh r2, [r3, r2, lsl #1] 830 cmp r2, r0 831 beq .L90 832 adds r1, r1, #1 833 b .L87 834.L90: 835 movs r0, #1 836 pop {r4, r5, pc} 837.L92: 838 .align 2 839.L91: 840 .word .LANCHOR38 841 .size IsInFreeQueue, .-IsInFreeQueue 842 .section .text.insert_data_list,"ax",%progbits 843 .align 1 844 .global insert_data_list 845 .syntax unified 846 .thumb 847 .thumb_func 848 .fpu softvfp 849 .type insert_data_list, %function 850insert_data_list: 851 @ args = 0, pretend = 0, frame = 16 852 @ frame_needed = 0, uses_anonymous_args = 0 853 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 854 ldr r3, .L109 855 ldrh lr, [r3] 856 cmp lr, r0 857 bls .L95 858 ldr r3, .L109+4 859 movs r5, #6 860 ldr r4, [r3] 861 mul r3, r5, r0 862 str r3, [sp, #4] 863 adds r1, r4, r3 864 ldr r2, [sp, #4] 865 movw r3, #65535 866 strh r3, [r1, #2] @ movhi 867 strh r3, [r4, r2] @ movhi 868 ldr r3, .L109+8 869 ldr ip, [r3] 870 cmp ip, #0 871 bne .L96 872.L108: 873 str r1, [r3] 874.L95: 875 movs r0, #0 876 add sp, sp, #16 877 @ sp needed 878 pop {r4, r5, r6, r7, r8, r10, fp, pc} 879.L96: 880 ldr r3, .L109+12 881 lsls r2, r0, #1 882 ldr r3, [r3] 883 str r3, [sp, #8] 884 ldrh r6, [r3, r0, lsl #1] 885 ldrh r3, [r1, #4] 886 cbz r3, .L106 887 mul fp, r3, r6 888.L97: 889 sub r3, ip, r4 890 asrs r6, r3, #1 891 ldr r3, .L109+16 892 muls r3, r6, r3 893 ldr r6, .L109+20 894 ldr r8, [r6] 895 movs r6, #0 896 uxth r3, r3 897 add r2, r8, r2 898 str r2, [sp, #12] 899 mov r2, ip 900.L104: 901 adds r6, r6, #1 902 uxth r6, r6 903 cmp lr, r6 904 bcc .L95 905 cmp r3, r0 906 beq .L95 907 ldr r7, [sp, #8] 908 lsl r10, r3, #1 909 ldrh r7, [r7, r3, lsl #1] 910 mov r5, r7 911 ldrh r7, [r2, #4] 912 cbz r7, .L107 913 muls r7, r5, r7 914.L99: 915 cmp fp, r7 916 bne .L100 917 ldr r5, [sp, #12] 918 ldrh r10, [r8, r10] 919 ldrh r7, [r5] 920 cmp r10, r7 921 bcc .L102 922.L101: 923 ldr r5, [sp, #4] 924 cmp r2, ip 925 strh r3, [r4, r5] @ movhi 926 ldrh r3, [r2, #2] 927 strh r3, [r1, #2] @ movhi 928 bne .L105 929 strh r0, [r2, #2] @ movhi 930 ldr r3, .L109+8 931 b .L108 932.L106: 933 mov fp, #-1 934 b .L97 935.L107: 936 mov r7, #-1 937 b .L99 938.L100: 939 bcc .L101 940.L102: 941 ldrh r7, [r2] 942 movw r5, #65535 943 cmp r7, r5 944 bne .L103 945 strh r3, [r1, #2] @ movhi 946 strh r0, [r2] @ movhi 947 ldr r3, .L109+24 948 b .L108 949.L103: 950 movs r3, #6 951 mla r2, r3, r7, r4 952 mov r3, r7 953 b .L104 954.L105: 955 ldrh r1, [r2, #2] 956 movs r3, #6 957 muls r3, r1, r3 958 strh r0, [r4, r3] @ movhi 959 strh r0, [r2, #2] @ movhi 960 b .L95 961.L110: 962 .align 2 963.L109: 964 .word .LANCHOR5 965 .word .LANCHOR40 966 .word .LANCHOR41 967 .word .LANCHOR42 968 .word -1431655765 969 .word .LANCHOR43 970 .word .LANCHOR44 971 .size insert_data_list, .-insert_data_list 972 .section .text.INSERT_DATA_LIST,"ax",%progbits 973 .align 1 974 .global INSERT_DATA_LIST 975 .syntax unified 976 .thumb 977 .thumb_func 978 .fpu softvfp 979 .type INSERT_DATA_LIST, %function 980INSERT_DATA_LIST: 981 @ args = 0, pretend = 0, frame = 0 982 @ frame_needed = 0, uses_anonymous_args = 0 983 push {r3, lr} 984 bl insert_data_list 985 ldr r2, .L113 986 ldrh r3, [r2] 987 adds r3, r3, #1 988 uxth r3, r3 989 strh r3, [r2] @ movhi 990 ldr r2, .L113+4 991 ldrh r2, [r2] 992 cmp r2, r3 993 bcs .L111 994 movs r2, #214 995 ldr r1, .L113+8 996 ldr r0, .L113+12 997 pop {r3, lr} 998 b printf 999.L111: 1000 pop {r3, pc} 1001.L114: 1002 .align 2 1003.L113: 1004 .word .LANCHOR45 1005 .word .LANCHOR5 1006 .word .LANCHOR46 1007 .word .LC1 1008 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 1009 .section .text.insert_free_list,"ax",%progbits 1010 .align 1 1011 .global insert_free_list 1012 .syntax unified 1013 .thumb 1014 .thumb_func 1015 .fpu softvfp 1016 .type insert_free_list, %function 1017insert_free_list: 1018 @ args = 0, pretend = 0, frame = 0 1019 @ frame_needed = 0, uses_anonymous_args = 0 1020 movw r1, #65535 1021 push {r4, r5, r6, r7, r8, r10, fp, lr} 1022 cmp r0, r1 1023 beq .L116 1024 ldr r3, .L122 1025 mov r10, #6 1026 mul r7, r10, r0 1027 ldr r4, [r3] 1028 ldr r3, .L122+4 1029 adds r5, r4, r7 1030 ldr r6, [r3] 1031 mov lr, r3 1032 strh r1, [r5, #2] @ movhi 1033 strh r1, [r4, r7] @ movhi 1034 cbnz r6, .L117 1035 str r5, [r3] 1036.L116: 1037 movs r0, #0 1038 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1039.L117: 1040 ldr r3, .L122+8 1041 subs r2, r6, r4 1042 mov fp, r1 1043 ldr ip, [r3] 1044 asrs r3, r2, #1 1045 ldr r2, .L122+12 1046 ldrh r8, [ip, r0, lsl #1] 1047 muls r2, r3, r2 1048 mov r3, r6 1049 uxth r2, r2 1050.L120: 1051 ldrh r1, [ip, r2, lsl #1] 1052 cmp r1, r8 1053 bcs .L118 1054 ldrh r1, [r3] 1055 cmp r1, fp 1056 bne .L119 1057 strh r2, [r5, #2] @ movhi 1058 strh r0, [r3] @ movhi 1059 b .L116 1060.L119: 1061 mla r3, r10, r1, r4 1062 mov r2, r1 1063 b .L120 1064.L118: 1065 ldrh r1, [r3, #2] 1066 cmp r3, r6 1067 strh r1, [r5, #2] @ movhi 1068 it ne 1069 ldrhne r1, [r3, #2] 1070 strh r2, [r4, r7] @ movhi 1071 iteet ne 1072 movne r2, #6 1073 strheq r0, [r3, #2] @ movhi 1074 streq r5, [lr] 1075 mulne r2, r2, r1 1076 itt ne 1077 strhne r0, [r4, r2] @ movhi 1078 strhne r0, [r3, #2] @ movhi 1079 b .L116 1080.L123: 1081 .align 2 1082.L122: 1083 .word .LANCHOR40 1084 .word .LANCHOR47 1085 .word .LANCHOR43 1086 .word -1431655765 1087 .size insert_free_list, .-insert_free_list 1088 .section .text.INSERT_FREE_LIST,"ax",%progbits 1089 .align 1 1090 .global INSERT_FREE_LIST 1091 .syntax unified 1092 .thumb 1093 .thumb_func 1094 .fpu softvfp 1095 .type INSERT_FREE_LIST, %function 1096INSERT_FREE_LIST: 1097 @ args = 0, pretend = 0, frame = 0 1098 @ frame_needed = 0, uses_anonymous_args = 0 1099 push {r3, lr} 1100 bl insert_free_list 1101 ldr r2, .L126 1102 ldrh r3, [r2] 1103 adds r3, r3, #1 1104 uxth r3, r3 1105 strh r3, [r2] @ movhi 1106 ldr r2, .L126+4 1107 ldrh r2, [r2] 1108 cmp r2, r3 1109 bcs .L124 1110 movs r2, #207 1111 ldr r1, .L126+8 1112 ldr r0, .L126+12 1113 pop {r3, lr} 1114 b printf 1115.L124: 1116 pop {r3, pc} 1117.L127: 1118 .align 2 1119.L126: 1120 .word .LANCHOR48 1121 .word .LANCHOR5 1122 .word .LANCHOR49 1123 .word .LC1 1124 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 1125 .section .text.List_remove_node,"ax",%progbits 1126 .align 1 1127 .global List_remove_node 1128 .syntax unified 1129 .thumb 1130 .thumb_func 1131 .fpu softvfp 1132 .type List_remove_node, %function 1133List_remove_node: 1134 @ args = 0, pretend = 0, frame = 0 1135 @ frame_needed = 0, uses_anonymous_args = 0 1136 push {r4, r5, r6, r7, r8, lr} 1137 movs r6, #6 1138 ldr r5, .L134 1139 muls r6, r1, r6 1140 movw r3, #65535 1141 mov r8, r0 1142 ldr r7, [r5] 1143 adds r4, r7, r6 1144 ldrh r2, [r4, #2] 1145 cmp r2, r3 1146 bne .L129 1147 ldr r3, [r0] 1148 cmp r4, r3 1149 beq .L129 1150 mov r2, #372 1151 ldr r1, .L134+4 1152 ldr r0, .L134+8 1153 bl printf 1154.L129: 1155 ldr r3, [r8] 1156 movw r1, #65535 1157 cmp r4, r3 1158 ldrh r3, [r7, r6] 1159 bne .L130 1160 cmp r3, r1 1161 ittee ne 1162 ldrne r0, [r5] 1163 movne r2, #6 1164 moveq r3, #0 1165 streq r3, [r8] 1166 ittt ne 1167 mlane r3, r2, r3, r0 1168 strne r3, [r8] 1169 strhne r1, [r3, #2] @ movhi 1170.L132: 1171 movw r3, #65535 1172 movs r0, #0 1173 strh r3, [r7, r6] @ movhi 1174 strh r3, [r4, #2] @ movhi 1175 pop {r4, r5, r6, r7, r8, pc} 1176.L130: 1177 cmp r3, r1 1178 ldrh r1, [r4, #2] 1179 bne .L133 1180 cmp r1, r3 1181 beq .L132 1182 movs r2, #6 1183 ldr r0, [r5] 1184 muls r1, r2, r1 1185 strh r3, [r0, r1] @ movhi 1186 b .L132 1187.L133: 1188 ldr r0, [r5] 1189 movs r2, #6 1190 mla r5, r2, r3, r0 1191 strh r1, [r5, #2] @ movhi 1192 ldrh r1, [r4, #2] 1193 muls r2, r1, r2 1194 strh r3, [r0, r2] @ movhi 1195 b .L132 1196.L135: 1197 .align 2 1198.L134: 1199 .word .LANCHOR40 1200 .word .LANCHOR50 1201 .word .LC1 1202 .size List_remove_node, .-List_remove_node 1203 .section .text.List_pop_index_node,"ax",%progbits 1204 .align 1 1205 .global List_pop_index_node 1206 .syntax unified 1207 .thumb 1208 .thumb_func 1209 .fpu softvfp 1210 .type List_pop_index_node, %function 1211List_pop_index_node: 1212 @ args = 0, pretend = 0, frame = 0 1213 @ frame_needed = 0, uses_anonymous_args = 0 1214 ldr r3, [r0] 1215 push {r4, r5, r6, lr} 1216 cbz r3, .L142 1217 ldr r2, .L143 1218 movw r5, #65535 1219 movs r6, #6 1220 ldr r2, [r2] 1221.L138: 1222 cbnz r1, .L139 1223.L141: 1224 ldr r4, .L143+4 1225 subs r3, r3, r2 1226 asrs r3, r3, #1 1227 muls r4, r3, r4 1228 uxth r1, r4 1229 bl List_remove_node 1230 uxth r0, r4 1231 pop {r4, r5, r6, pc} 1232.L139: 1233 ldrh r4, [r3] 1234 cmp r4, r5 1235 beq .L141 1236 subs r1, r1, #1 1237 mla r3, r6, r4, r2 1238 uxth r1, r1 1239 b .L138 1240.L142: 1241 movw r0, #65535 1242 pop {r4, r5, r6, pc} 1243.L144: 1244 .align 2 1245.L143: 1246 .word .LANCHOR40 1247 .word -1431655765 1248 .size List_pop_index_node, .-List_pop_index_node 1249 .section .text.List_pop_head_node,"ax",%progbits 1250 .align 1 1251 .global List_pop_head_node 1252 .syntax unified 1253 .thumb 1254 .thumb_func 1255 .fpu softvfp 1256 .type List_pop_head_node, %function 1257List_pop_head_node: 1258 @ args = 0, pretend = 0, frame = 0 1259 @ frame_needed = 0, uses_anonymous_args = 0 1260 @ link register save eliminated. 1261 movs r1, #0 1262 b List_pop_index_node 1263 .size List_pop_head_node, .-List_pop_head_node 1264 .section .text.List_get_gc_head_node,"ax",%progbits 1265 .align 1 1266 .global List_get_gc_head_node 1267 .syntax unified 1268 .thumb 1269 .thumb_func 1270 .fpu softvfp 1271 .type List_get_gc_head_node, %function 1272List_get_gc_head_node: 1273 @ args = 0, pretend = 0, frame = 0 1274 @ frame_needed = 0, uses_anonymous_args = 0 1275 ldr r3, .L152 1276 push {r4, lr} 1277 ldr r3, [r3] 1278 cbz r3, .L151 1279 ldr r2, .L152+4 1280 movs r4, #6 1281 ldr r1, [r2] 1282 movw r2, #65535 1283.L148: 1284 cbz r0, .L149 1285 ldrh r3, [r3] 1286 cmp r3, r2 1287 bne .L150 1288.L151: 1289 movw r0, #65535 1290 pop {r4, pc} 1291.L150: 1292 subs r0, r0, #1 1293 mla r3, r4, r3, r1 1294 uxth r0, r0 1295 b .L148 1296.L149: 1297 ldr r0, .L152+8 1298 subs r3, r3, r1 1299 asrs r3, r3, #1 1300 muls r3, r0, r3 1301 uxth r0, r3 1302 pop {r4, pc} 1303.L153: 1304 .align 2 1305.L152: 1306 .word .LANCHOR41 1307 .word .LANCHOR40 1308 .word -1431655765 1309 .size List_get_gc_head_node, .-List_get_gc_head_node 1310 .section .text.List_update_data_list,"ax",%progbits 1311 .align 1 1312 .global List_update_data_list 1313 .syntax unified 1314 .thumb 1315 .thumb_func 1316 .fpu softvfp 1317 .type List_update_data_list, %function 1318List_update_data_list: 1319 @ args = 0, pretend = 0, frame = 0 1320 @ frame_needed = 0, uses_anonymous_args = 0 1321 ldr r3, .L165 1322 push {r4, r5, r6, r7, r8, r10, fp, lr} 1323 mov r4, r0 1324 ldrh r3, [r3] 1325 cmp r3, r0 1326 beq .L156 1327 ldr r3, .L165+4 1328 ldrh r3, [r3] 1329 cmp r3, r0 1330 beq .L156 1331 ldr r3, .L165+8 1332 ldrh r3, [r3] 1333 cmp r3, r0 1334 beq .L156 1335 ldr r7, .L165+12 1336 movs r6, #6 1337 ldr r3, .L165+16 1338 muls r6, r0, r6 1339 ldr fp, [r7] 1340 ldr r3, [r3] 1341 add r10, fp, r6 1342 cmp r10, r3 1343 beq .L156 1344 ldr r3, .L165+20 1345 ldrh r5, [r10, #4] 1346 ldr r2, [r3] 1347 mov r8, r3 1348 ldrh r2, [r2, r0, lsl #1] 1349 cmp r5, #0 1350 beq .L163 1351 muls r5, r2, r5 1352.L158: 1353 ldrh r3, [r10, #2] 1354 movw r2, #65535 1355 cmp r3, r2 1356 bne .L159 1357 ldrh r2, [fp, r6] 1358 cmp r2, r3 1359 bne .L159 1360 movw r2, #463 1361 ldr r1, .L165+24 1362 ldr r0, .L165+28 1363 bl printf 1364.L159: 1365 ldrh r3, [r10, #2] 1366 movw r2, #65535 1367 cmp r3, r2 1368 bne .L160 1369 ldrh r2, [fp, r6] 1370 cmp r2, r3 1371 beq .L156 1372.L160: 1373 movs r2, #6 1374 muls r2, r3, r2 1375 ldr r3, .L165+32 1376 asrs r1, r2, #1 1377 muls r3, r1, r3 1378 ldr r1, [r8] 1379 ldrh r0, [r1, r3, lsl #1] 1380 ldr r1, [r7] 1381 add r2, r2, r1 1382 ldrh r3, [r2, #4] 1383 cbz r3, .L164 1384 muls r3, r0, r3 1385.L161: 1386 cmp r5, r3 1387 bcs .L156 1388 ldr r5, .L165+36 1389 mov r1, r4 1390 ldr r0, .L165+16 1391 bl List_remove_node 1392 ldrh r3, [r5] 1393 cbnz r3, .L162 1394 mov r2, #474 1395 ldr r1, .L165+24 1396 ldr r0, .L165+28 1397 bl printf 1398.L162: 1399 ldrh r3, [r5] 1400 mov r0, r4 1401 subs r3, r3, #1 1402 strh r3, [r5] @ movhi 1403 bl INSERT_DATA_LIST 1404.L156: 1405 movs r0, #0 1406 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1407.L163: 1408 mov r5, #-1 1409 b .L158 1410.L164: 1411 mov r3, #-1 1412 b .L161 1413.L166: 1414 .align 2 1415.L165: 1416 .word .LANCHOR51 1417 .word .LANCHOR52 1418 .word .LANCHOR53 1419 .word .LANCHOR40 1420 .word .LANCHOR41 1421 .word .LANCHOR42 1422 .word .LANCHOR54 1423 .word .LC1 1424 .word -1431655765 1425 .word .LANCHOR45 1426 .size List_update_data_list, .-List_update_data_list 1427 .section .text.select_l2p_ram_region,"ax",%progbits 1428 .align 1 1429 .global select_l2p_ram_region 1430 .syntax unified 1431 .thumb 1432 .thumb_func 1433 .fpu softvfp 1434 .type select_l2p_ram_region, %function 1435select_l2p_ram_region: 1436 @ args = 0, pretend = 0, frame = 0 1437 @ frame_needed = 0, uses_anonymous_args = 0 1438 push {r3, r4, r5, r6, r7, lr} 1439 movs r1, #0 1440 ldr r3, .L177 1441 movs r0, #12 1442 movw r5, #65535 1443 ldrh r2, [r3] 1444 ldr r3, .L177+4 1445 ldr r3, [r3] 1446.L168: 1447 uxth r4, r1 1448 cmp r4, r2 1449 bcc .L170 1450 mov r4, r2 1451 movs r1, #0 1452 mov r6, #-2147483648 1453 movs r7, #12 1454.L171: 1455 uxth r5, r1 1456 cmp r5, r2 1457 bcc .L173 1458 cmp r4, r2 1459 bcc .L169 1460 ldr r1, .L177+8 1461 mov r4, r2 1462 mov r0, #-1 1463 ldrh r7, [r1] 1464 movs r1, #0 1465.L174: 1466 uxth r5, r1 1467 cmp r5, r2 1468 bcc .L176 1469 cmp r4, r2 1470 bcc .L169 1471 movw r2, #787 1472 ldr r1, .L177+12 1473 ldr r0, .L177+16 1474 bl printf 1475 b .L169 1476.L170: 1477 adds r1, r1, #1 1478 mla r6, r0, r1, r3 1479 ldrh r6, [r6, #-12] 1480 cmp r6, r5 1481 bne .L168 1482.L169: 1483 mov r0, r4 1484 pop {r3, r4, r5, r6, r7, pc} 1485.L173: 1486 mla r0, r7, r1, r3 1487 ldr r0, [r0, #4] 1488 cmp r0, #0 1489 blt .L172 1490 cmp r6, r0 1491 itt hi 1492 movhi r6, r0 1493 movhi r4, r5 1494.L172: 1495 adds r1, r1, #1 1496 b .L171 1497.L176: 1498 ldr r6, [r3, #4] 1499 cmp r0, r6 1500 bls .L175 1501 ldrh ip, [r3] 1502 cmp ip, r7 1503 itt ne 1504 movne r0, r6 1505 movne r4, r5 1506.L175: 1507 adds r1, r1, #1 1508 adds r3, r3, #12 1509 b .L174 1510.L178: 1511 .align 2 1512.L177: 1513 .word .LANCHOR33 1514 .word .LANCHOR55 1515 .word .LANCHOR56 1516 .word .LANCHOR57 1517 .word .LC1 1518 .size select_l2p_ram_region, .-select_l2p_ram_region 1519 .section .text.FtlUpdateVaildLpn,"ax",%progbits 1520 .align 1 1521 .global FtlUpdateVaildLpn 1522 .syntax unified 1523 .thumb 1524 .thumb_func 1525 .fpu softvfp 1526 .type FtlUpdateVaildLpn, %function 1527FtlUpdateVaildLpn: 1528 @ args = 0, pretend = 0, frame = 0 1529 @ frame_needed = 0, uses_anonymous_args = 0 1530 ldr r2, .L189 1531 push {r4, r5, r6, lr} 1532 mov r1, r2 1533 ldrh r3, [r2] 1534 cmp r3, #4 1535 bhi .L180 1536 cbnz r0, .L180 1537 adds r3, r3, #1 1538 strh r3, [r2] @ movhi 1539 pop {r4, r5, r6, pc} 1540.L180: 1541 movs r3, #0 1542 ldr r0, .L189+4 1543 strh r3, [r1] @ movhi 1544 movw r6, #65535 1545 ldr r1, .L189+8 1546 ldrh r4, [r0] 1547 mov r0, r3 1548 ldr r2, .L189+12 1549 ldr r1, [r1] 1550 str r3, [r2] 1551 add r4, r1, r4, lsl #1 1552.L181: 1553 cmp r1, r4 1554 bne .L183 1555 cbz r3, .L179 1556 str r0, [r2] 1557.L179: 1558 pop {r4, r5, r6, pc} 1559.L183: 1560 ldrh r5, [r1], #2 1561 cmp r5, r6 1562 itt ne 1563 addne r0, r0, r5 1564 movne r3, #1 1565 b .L181 1566.L190: 1567 .align 2 1568.L189: 1569 .word .LANCHOR58 1570 .word .LANCHOR5 1571 .word .LANCHOR42 1572 .word .LANCHOR59 1573 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1574 .section .text.ftl_set_blk_mode,"ax",%progbits 1575 .align 1 1576 .global ftl_set_blk_mode 1577 .syntax unified 1578 .thumb 1579 .thumb_func 1580 .fpu softvfp 1581 .type ftl_set_blk_mode, %function 1582ftl_set_blk_mode: 1583 @ args = 0, pretend = 0, frame = 0 1584 @ frame_needed = 0, uses_anonymous_args = 0 1585 @ link register save eliminated. 1586 mov r3, r0 1587 cbz r1, .L192 1588 b ftl_set_blk_mode.part.6 1589.L192: 1590 ldr r2, .L193 1591 lsrs r0, r0, #5 1592 and r3, r3, #31 1593 ldr r1, [r2] 1594 movs r2, #1 1595 lsl r3, r2, r3 1596 ldr r2, [r1, r0, lsl #2] 1597 bic r2, r2, r3 1598 str r2, [r1, r0, lsl #2] 1599 bx lr 1600.L194: 1601 .align 2 1602.L193: 1603 .word .LANCHOR1 1604 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1605 .section .text.ftl_get_blk_mode,"ax",%progbits 1606 .align 1 1607 .global ftl_get_blk_mode 1608 .syntax unified 1609 .thumb 1610 .thumb_func 1611 .fpu softvfp 1612 .type ftl_get_blk_mode, %function 1613ftl_get_blk_mode: 1614 @ args = 0, pretend = 0, frame = 0 1615 @ frame_needed = 0, uses_anonymous_args = 0 1616 @ link register save eliminated. 1617 ldr r3, .L196 1618 lsrs r2, r0, #5 1619 and r0, r0, #31 1620 ldr r3, [r3] 1621 ldr r3, [r3, r2, lsl #2] 1622 lsr r0, r3, r0 1623 and r0, r0, #1 1624 bx lr 1625.L197: 1626 .align 2 1627.L196: 1628 .word .LANCHOR1 1629 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1630 .section .text.ftl_sb_update_avl_pages,"ax",%progbits 1631 .align 1 1632 .global ftl_sb_update_avl_pages 1633 .syntax unified 1634 .thumb 1635 .thumb_func 1636 .fpu softvfp 1637 .type ftl_sb_update_avl_pages, %function 1638ftl_sb_update_avl_pages: 1639 @ args = 0, pretend = 0, frame = 0 1640 @ frame_needed = 0, uses_anonymous_args = 0 1641 movs r3, #0 1642 push {r4, r5, r6, lr} 1643 strh r3, [r0, #4] @ movhi 1644 movw r6, #65535 1645 ldr r3, .L205 1646 ldrh r4, [r3] 1647 add r3, r0, r2, lsl #1 1648 adds r3, r3, #14 1649.L199: 1650 cmp r2, r4 1651 bcc .L201 1652 ldr r3, .L205+4 1653 add r5, r0, #16 1654 movw r6, #65535 1655 ldrh r3, [r3] 1656 subs r3, r3, #1 1657 subs r1, r3, r1 1658 movs r3, #0 1659 uxth r1, r1 1660.L202: 1661 uxth r2, r3 1662 cmp r4, r2 1663 bhi .L204 1664 pop {r4, r5, r6, pc} 1665.L201: 1666 ldrh r5, [r3, #2]! 1667 adds r2, r2, #1 1668 uxth r2, r2 1669 cmp r5, r6 1670 ittt ne 1671 ldrhne r5, [r0, #4] 1672 addne r5, r5, #1 1673 strhne r5, [r0, #4] @ movhi 1674 b .L199 1675.L204: 1676 ldrh r2, [r5], #2 1677 adds r3, r3, #1 1678 cmp r2, r6 1679 ittt ne 1680 ldrhne r2, [r0, #4] 1681 addne r2, r2, r1 1682 strhne r2, [r0, #4] @ movhi 1683 b .L202 1684.L206: 1685 .align 2 1686.L205: 1687 .word .LANCHOR3 1688 .word .LANCHOR19 1689 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1690 .section .text.FtlSlcSuperblockCheck,"ax",%progbits 1691 .align 1 1692 .global FtlSlcSuperblockCheck 1693 .syntax unified 1694 .thumb 1695 .thumb_func 1696 .fpu softvfp 1697 .type FtlSlcSuperblockCheck, %function 1698FtlSlcSuperblockCheck: 1699 @ args = 0, pretend = 0, frame = 0 1700 @ frame_needed = 0, uses_anonymous_args = 0 1701 ldrh r3, [r0, #4] 1702 push {r4, r5, lr} 1703 cbz r3, .L207 1704 ldrh r2, [r0] 1705 movw r3, #65535 1706 cmp r2, r3 1707 beq .L207 1708 ldrb r2, [r0, #6] @ zero_extendqisi2 1709 movs r5, #0 1710 adds r2, r2, #8 1711 ldrh r1, [r0, r2, lsl #1] 1712 ldr r2, .L213 1713 ldrh r4, [r2] 1714 mov r2, r3 1715.L210: 1716 cmp r1, r2 1717 beq .L212 1718.L207: 1719 pop {r4, r5, pc} 1720.L212: 1721 ldrb r3, [r0, #6] @ zero_extendqisi2 1722 adds r3, r3, #1 1723 uxtb r3, r3 1724 cmp r3, r4 1725 strb r3, [r0, #6] 1726 itttt eq 1727 ldrheq r3, [r0, #2] 1728 strbeq r5, [r0, #6] 1729 addeq r3, r3, #1 1730 strheq r3, [r0, #2] @ movhi 1731 ldrb r3, [r0, #6] @ zero_extendqisi2 1732 adds r3, r3, #8 1733 ldrh r1, [r0, r3, lsl #1] 1734 b .L210 1735.L214: 1736 .align 2 1737.L213: 1738 .word .LANCHOR3 1739 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1740 .section .text.make_superblock,"ax",%progbits 1741 .align 1 1742 .global make_superblock 1743 .syntax unified 1744 .thumb 1745 .thumb_func 1746 .fpu softvfp 1747 .type make_superblock, %function 1748make_superblock: 1749 @ args = 0, pretend = 0, frame = 0 1750 @ frame_needed = 0, uses_anonymous_args = 0 1751 ldr r3, .L220 1752 ldrh r2, [r0] 1753 push {r4, r5, r6, r7, r8, r10, fp, lr} 1754 mov r4, r0 1755 ldrh r3, [r3] 1756 cmp r2, r3 1757 bcc .L216 1758 movw r2, #2110 1759 ldr r1, .L220+4 1760 ldr r0, .L220+8 1761 bl printf 1762.L216: 1763 ldr r3, .L220+12 1764 add r6, r4, #16 1765 ldr r10, .L220+20 1766 movw r7, #65535 1767 movs r5, #0 1768 ldrh r8, [r3] 1769 strh r5, [r4, #4] @ movhi 1770 strb r5, [r4, #7] 1771.L217: 1772 uxth r3, r5 1773 cmp r8, r3 1774 bhi .L219 1775 ldr r2, .L220+16 1776 movs r0, #0 1777 ldrb r3, [r4, #7] @ zero_extendqisi2 1778 strb r0, [r4, #9] 1779 ldrh r2, [r2] 1780 smulbb r3, r3, r2 1781 strh r3, [r4, #4] @ movhi 1782 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1783.L219: 1784 ldrh r1, [r4] 1785 ldrb r0, [r10, r5] @ zero_extendqisi2 1786 bl V2P_block 1787 strh r7, [r6] @ movhi 1788 mov fp, r0 1789 bl FtlBbmIsBadBlock 1790 cbnz r0, .L218 1791 strh fp, [r6] @ movhi 1792 ldrb r3, [r4, #7] @ zero_extendqisi2 1793 adds r3, r3, #1 1794 strb r3, [r4, #7] 1795.L218: 1796 adds r5, r5, #1 1797 adds r6, r6, #2 1798 b .L217 1799.L221: 1800 .align 2 1801.L220: 1802 .word .LANCHOR5 1803 .word .LANCHOR60 1804 .word .LC1 1805 .word .LANCHOR3 1806 .word .LANCHOR19 1807 .word .LANCHOR13 1808 .size make_superblock, .-make_superblock 1809 .section .text.update_multiplier_value,"ax",%progbits 1810 .align 1 1811 .global update_multiplier_value 1812 .syntax unified 1813 .thumb 1814 .thumb_func 1815 .fpu softvfp 1816 .type update_multiplier_value, %function 1817update_multiplier_value: 1818 @ args = 0, pretend = 0, frame = 0 1819 @ frame_needed = 0, uses_anonymous_args = 0 1820 push {r3, r4, r5, r6, r7, r8, r10, lr} 1821 movs r5, #0 1822 ldr r3, .L228 1823 mov r6, r0 1824 mov r4, r5 1825 ldr r10, .L228+12 1826 ldrh r7, [r3] 1827 ldr r3, .L228+4 1828 ldrh r8, [r3] 1829.L223: 1830 uxth r3, r5 1831 cmp r7, r3 1832 bhi .L225 1833 cbz r4, .L227 1834 mov r1, r4 1835 mov r0, #32768 1836 bl __aeabi_idiv 1837.L226: 1838 ldr r3, .L228+8 1839 movs r2, #6 1840 ldr r3, [r3] 1841 mla r6, r2, r6, r3 1842 strh r0, [r6, #4] @ movhi 1843 movs r0, #0 1844 pop {r3, r4, r5, r6, r7, r8, r10, pc} 1845.L225: 1846 mov r1, r6 1847 ldrb r0, [r10, r5] @ zero_extendqisi2 1848 bl V2P_block 1849 bl FtlBbmIsBadBlock 1850 cbnz r0, .L224 1851 add r4, r4, r8 1852 uxth r4, r4 1853.L224: 1854 adds r5, r5, #1 1855 b .L223 1856.L227: 1857 mov r0, r4 1858 b .L226 1859.L229: 1860 .align 2 1861.L228: 1862 .word .LANCHOR3 1863 .word .LANCHOR19 1864 .word .LANCHOR40 1865 .word .LANCHOR13 1866 .size update_multiplier_value, .-update_multiplier_value 1867 .section .text.GetFreeBlockMinEraseCount,"ax",%progbits 1868 .align 1 1869 .global GetFreeBlockMinEraseCount 1870 .syntax unified 1871 .thumb 1872 .thumb_func 1873 .fpu softvfp 1874 .type GetFreeBlockMinEraseCount, %function 1875GetFreeBlockMinEraseCount: 1876 @ args = 0, pretend = 0, frame = 0 1877 @ frame_needed = 0, uses_anonymous_args = 0 1878 @ link register save eliminated. 1879 ldr r3, .L233 1880 ldr r0, [r3] 1881 cbz r0, .L231 1882 ldr r3, .L233+4 1883 ldr r3, [r3] 1884 subs r0, r0, r3 1885 ldr r3, .L233+8 1886 asrs r0, r0, #1 1887 muls r0, r3, r0 1888 ldr r3, .L233+12 1889 ldr r3, [r3] 1890 uxth r0, r0 1891 ldrh r0, [r3, r0, lsl #1] 1892.L231: 1893 bx lr 1894.L234: 1895 .align 2 1896.L233: 1897 .word .LANCHOR47 1898 .word .LANCHOR40 1899 .word -1431655765 1900 .word .LANCHOR43 1901 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1902 .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits 1903 .align 1 1904 .global GetFreeBlockMaxEraseCount 1905 .syntax unified 1906 .thumb 1907 .thumb_func 1908 .fpu softvfp 1909 .type GetFreeBlockMaxEraseCount, %function 1910GetFreeBlockMaxEraseCount: 1911 @ args = 0, pretend = 0, frame = 0 1912 @ frame_needed = 0, uses_anonymous_args = 0 1913 ldr r3, .L243 1914 push {r4, r5, r6, lr} 1915 ldr r3, [r3] 1916 cbz r3, .L241 1917 ldr r2, .L243+4 1918 movs r5, #6 1919 movw r6, #65535 1920 ldrh r2, [r2] 1921 rsb r2, r2, r2, lsl #3 1922 asrs r2, r2, #3 1923 cmp r0, r2 1924 it gt 1925 uxthgt r0, r2 1926 ldr r2, .L243+8 1927 ldr r1, [r2] 1928 ldr r2, .L243+12 1929 subs r3, r3, r1 1930 asrs r3, r3, #1 1931 muls r3, r2, r3 1932 movs r2, #0 1933 uxth r3, r3 1934.L238: 1935 uxth r4, r2 1936 cmp r0, r4 1937 bls .L240 1938 mul r4, r5, r3 1939 adds r2, r2, #1 1940 ldrh r4, [r1, r4] 1941 cmp r4, r6 1942 bne .L242 1943.L240: 1944 ldr r2, .L243+16 1945 ldr r2, [r2] 1946 ldrh r0, [r2, r3, lsl #1] 1947 pop {r4, r5, r6, pc} 1948.L242: 1949 mov r3, r4 1950 b .L238 1951.L241: 1952 mov r0, r3 1953 pop {r4, r5, r6, pc} 1954.L244: 1955 .align 2 1956.L243: 1957 .word .LANCHOR47 1958 .word .LANCHOR48 1959 .word .LANCHOR40 1960 .word -1431655765 1961 .word .LANCHOR43 1962 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1963 .section .text.FtlPrintInfo2buf,"ax",%progbits 1964 .align 1 1965 .global FtlPrintInfo2buf 1966 .syntax unified 1967 .thumb 1968 .thumb_func 1969 .fpu softvfp 1970 .type FtlPrintInfo2buf, %function 1971FtlPrintInfo2buf: 1972 @ args = 0, pretend = 0, frame = 0 1973 @ frame_needed = 0, uses_anonymous_args = 0 1974 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 1975 movs r1, #64 1976 ldr r2, .L257 1977 mov r8, r0 1978 bl snprintf 1979 ldr r3, .L257+4 1980 add r5, r8, r0 1981 ldr r2, .L257+8 1982 movs r1, #64 1983 mov r0, r5 1984 ldr r6, .L257+12 1985 ldr r3, [r3] 1986 bl snprintf 1987 add r5, r5, r0 1988 ldr r2, .L257+16 1989 movs r1, #64 1990 mov r0, r5 1991 bl snprintf 1992 ldr r3, .L257+20 1993 add r5, r5, r0 1994 ldr r2, .L257+24 1995 movs r1, #64 1996 mov r0, r5 1997 ldr r4, .L257+28 1998 ldr r3, [r3] 1999 bl snprintf 2000 ldr r3, .L257+32 2001 add r5, r5, r0 2002 ldr r2, .L257+36 2003 movs r1, #64 2004 mov r0, r5 2005 ldr r7, .L257+40 2006 ldr r3, [r3] 2007 bl snprintf 2008 ldr r3, .L257+44 2009 add r5, r5, r0 2010 ldr r2, .L257+48 2011 movs r1, #64 2012 mov r0, r5 2013 ldr r10, .L257+328 2014 ldr r3, [r3] 2015 bl snprintf 2016 ldr r3, .L257+52 2017 add r5, r5, r0 2018 ldr r2, .L257+56 2019 movs r1, #64 2020 mov r0, r5 2021 ldr r3, [r3] 2022 bl snprintf 2023 ldr r3, .L257+60 2024 add r5, r5, r0 2025 ldr r2, .L257+64 2026 movs r1, #64 2027 mov r0, r5 2028 ldr r3, [r3] 2029 bl snprintf 2030 ldr r3, .L257+68 2031 add r5, r5, r0 2032 ldr r2, .L257+72 2033 movs r1, #64 2034 mov r0, r5 2035 ldr r3, [r3] 2036 bl snprintf 2037 ldr r3, .L257+76 2038 add r5, r5, r0 2039 ldr r2, .L257+80 2040 movs r1, #64 2041 mov r0, r5 2042 ldr r3, [r3] 2043 bl snprintf 2044 ldr r3, .L257+84 2045 add r5, r5, r0 2046 ldr r2, .L257+88 2047 movs r1, #64 2048 mov r0, r5 2049 ldr r3, [r3] 2050 bl snprintf 2051 ldr r3, .L257+92 2052 add r5, r5, r0 2053 ldr r2, .L257+96 2054 movs r1, #64 2055 mov r0, r5 2056 ldr r3, [r3] 2057 lsrs r3, r3, #11 2058 bl snprintf 2059 ldr r3, .L257+100 2060 add r5, r5, r0 2061 ldr r2, .L257+104 2062 movs r1, #64 2063 mov r0, r5 2064 ldr r3, [r3] 2065 lsrs r3, r3, #11 2066 bl snprintf 2067 ldr r3, .L257+108 2068 add r5, r5, r0 2069 ldr r2, .L257+112 2070 movs r1, #64 2071 mov r0, r5 2072 ldr r3, [r3] 2073 bl snprintf 2074 ldr r3, .L257+116 2075 add r5, r5, r0 2076 ldr r2, .L257+120 2077 movs r1, #64 2078 mov r0, r5 2079 ldr r3, [r3] 2080 bl snprintf 2081 add r5, r5, r0 2082 ldrh r3, [r6, #6] 2083 ldr r2, .L257+124 2084 movs r1, #64 2085 mov r0, r5 2086 bl snprintf 2087 add r5, r5, r0 2088 ldrh r3, [r4] 2089 ldr r2, .L257+128 2090 movs r1, #64 2091 mov r0, r5 2092 bl snprintf 2093 ldr r3, .L257+132 2094 add r5, r5, r0 2095 ldr r2, .L257+136 2096 movs r1, #64 2097 mov r0, r5 2098 ldr r3, [r3] 2099 bl snprintf 2100 ldr r3, .L257+140 2101 add r5, r5, r0 2102 ldr r2, .L257+144 2103 movs r1, #64 2104 mov r0, r5 2105 ldr r3, [r3] 2106 bl snprintf 2107 ldr r3, .L257+148 2108 add r5, r5, r0 2109 ldr r2, .L257+152 2110 movs r1, #64 2111 mov r0, r5 2112 ldr r3, [r3] 2113 bl snprintf 2114 ldr r3, .L257+156 2115 add r5, r5, r0 2116 ldr r2, .L257+160 2117 movs r1, #64 2118 mov r0, r5 2119 ldr r3, [r3] 2120 bl snprintf 2121 ldr r3, .L257+164 2122 add r5, r5, r0 2123 ldr r2, .L257+168 2124 movs r1, #64 2125 mov r0, r5 2126 ldr r3, [r3] 2127 bl snprintf 2128 ldr r3, .L257+172 2129 add r5, r5, r0 2130 ldr r2, .L257+176 2131 movs r1, #64 2132 mov r0, r5 2133 ldr r3, [r3] 2134 bl snprintf 2135 add r5, r5, r0 2136 ldrh r3, [r7, #30] 2137 ldr r2, .L257+180 2138 movs r1, #64 2139 mov r0, r5 2140 bl snprintf 2141 add r5, r5, r0 2142 ldrh r3, [r7, #28] 2143 ldr r2, .L257+184 2144 movs r1, #64 2145 mov r0, r5 2146 ldr r7, .L257+188 2147 bl snprintf 2148 ldr r3, .L257+192 2149 add r5, r5, r0 2150 ldr r2, .L257+196 2151 movs r1, #64 2152 mov r0, r5 2153 ldr r3, [r3] 2154 bl snprintf 2155 ldr r3, .L257+200 2156 add r5, r5, r0 2157 ldr r2, .L257+204 2158 movs r1, #64 2159 mov r0, r5 2160 ldr r3, [r3] 2161 bl snprintf 2162 ldr r3, .L257+208 2163 add r5, r5, r0 2164 ldr r2, .L257+212 2165 movs r1, #64 2166 mov r0, r5 2167 ldr r3, [r3] 2168 bl snprintf 2169 ldr r3, .L257+216 2170 add r5, r5, r0 2171 ldr r2, .L257+220 2172 movs r1, #64 2173 mov r0, r5 2174 ldrh r3, [r3, #6] 2175 bl snprintf 2176 ldr r3, .L257+224 2177 add r5, r5, r0 2178 ldr r2, .L257+228 2179 movs r1, #64 2180 mov r0, r5 2181 ldrh r3, [r3] 2182 bl snprintf 2183 ldr r3, .L257+232 2184 add r5, r5, r0 2185 ldr r2, .L257+236 2186 movs r1, #64 2187 mov r0, r5 2188 ldrh r3, [r3] 2189 bl snprintf 2190 ldr r3, .L257+240 2191 add r5, r5, r0 2192 ldr r2, .L257+244 2193 movs r1, #64 2194 mov r0, r5 2195 ldr r3, [r3] 2196 bl snprintf 2197 ldr r3, .L257+248 2198 add r5, r5, r0 2199 ldr r2, .L257+252 2200 movs r1, #64 2201 mov r0, r5 2202 ldrh r3, [r3] 2203 bl snprintf 2204 add r5, r5, r0 2205 ldrh r3, [r6] 2206 ldr r2, .L257+256 2207 movs r1, #64 2208 mov r0, r5 2209 ldr r6, .L257+260 2210 bl snprintf 2211 add r5, r5, r0 2212 ldrh r3, [r7, #2] 2213 ldr r2, .L257+264 2214 movs r1, #64 2215 mov r0, r5 2216 bl snprintf 2217 add r5, r5, r0 2218 ldrb r3, [r7, #6] @ zero_extendqisi2 2219 ldr r2, .L257+268 2220 movs r1, #64 2221 mov r0, r5 2222 bl snprintf 2223 add r5, r5, r0 2224 ldrh r3, [r7] 2225 ldr r2, .L257+272 2226 movs r1, #64 2227 mov r0, r5 2228 bl snprintf 2229 add r5, r5, r0 2230 ldrb r3, [r7, #8] @ zero_extendqisi2 2231 ldr r2, .L257+276 2232 movs r1, #64 2233 mov r0, r5 2234 bl snprintf 2235 add r5, r5, r0 2236 ldrh r3, [r7, #4] 2237 ldr r2, .L257+280 2238 movs r1, #64 2239 mov r0, r5 2240 bl snprintf 2241 ldrh r2, [r7] 2242 add r5, r5, r0 2243 ldr r3, [r6] 2244 movs r1, #64 2245 ldr r7, .L257+284 2246 mov r0, r5 2247 ldrh r3, [r3, r2, lsl #1] 2248 ldr r2, .L257+288 2249 bl snprintf 2250 add r5, r5, r0 2251 ldrh r3, [r7, #2] 2252 ldr r2, .L257+292 2253 movs r1, #64 2254 mov r0, r5 2255 bl snprintf 2256 add r5, r5, r0 2257 ldrb r3, [r7, #6] @ zero_extendqisi2 2258 ldr r2, .L257+296 2259 movs r1, #64 2260 mov r0, r5 2261 bl snprintf 2262 add r5, r5, r0 2263 ldrh r3, [r7] 2264 ldr r2, .L257+300 2265 movs r1, #64 2266 mov r0, r5 2267 bl snprintf 2268 add r5, r5, r0 2269 ldrb r3, [r7, #8] @ zero_extendqisi2 2270 ldr r2, .L257+304 2271 movs r1, #64 2272 mov r0, r5 2273 bl snprintf 2274 add r5, r5, r0 2275 ldrh r3, [r7, #4] 2276 ldr r2, .L257+308 2277 movs r1, #64 2278 mov r0, r5 2279 bl snprintf 2280 ldrh r2, [r7] 2281 add r5, r5, r0 2282 ldr r3, [r6] 2283 movs r1, #64 2284 ldr r7, .L257+312 2285 mov r0, r5 2286 ldrh r3, [r3, r2, lsl #1] 2287 ldr r2, .L257+316 2288 bl snprintf 2289 add r5, r5, r0 2290 ldrh r3, [r7, #2] 2291 ldr r2, .L257+320 2292 movs r1, #64 2293 mov r0, r5 2294 bl snprintf 2295 add r5, r5, r0 2296 ldrb r3, [r7, #6] @ zero_extendqisi2 2297 ldr r2, .L257+324 2298 movs r1, #64 2299 mov r0, r5 2300 bl snprintf 2301 add r5, r5, r0 2302 b .L258 2303.L259: 2304 .align 2 2305.L257: 2306 .word .LC2 2307 .word .LANCHOR26 2308 .word .LC3 2309 .word .LANCHOR37 2310 .word .LC4 2311 .word .LANCHOR61 2312 .word .LC5 2313 .word .LANCHOR48 2314 .word .LANCHOR59 2315 .word .LC6 2316 .word .LANCHOR39 2317 .word .LANCHOR62 2318 .word .LC7 2319 .word .LANCHOR63 2320 .word .LC8 2321 .word .LANCHOR64 2322 .word .LC9 2323 .word .LANCHOR65 2324 .word .LC10 2325 .word .LANCHOR66 2326 .word .LC11 2327 .word .LANCHOR67 2328 .word .LC12 2329 .word .LANCHOR68 2330 .word .LC13 2331 .word .LANCHOR69 2332 .word .LC14 2333 .word .LANCHOR70 2334 .word .LC15 2335 .word .LANCHOR71 2336 .word .LC16 2337 .word .LC17 2338 .word .LC18 2339 .word .LANCHOR72 2340 .word .LC19 2341 .word .LANCHOR73 2342 .word .LC20 2343 .word .LANCHOR74 2344 .word .LC21 2345 .word .LANCHOR75 2346 .word .LC22 2347 .word .LANCHOR76 2348 .word .LC23 2349 .word .LANCHOR77 2350 .word .LC24 2351 .word .LC25 2352 .word .LC26 2353 .word .LANCHOR51 2354 .word .LANCHOR34 2355 .word .LC27 2356 .word .LANCHOR31 2357 .word .LC28 2358 .word .LANCHOR2 2359 .word .LC29 2360 .word .LANCHOR38 2361 .word .LC30 2362 .word .LANCHOR5 2363 .word .LC31 2364 .word .LANCHOR78 2365 .word .LC32 2366 .word .LANCHOR7 2367 .word .LC33 2368 .word .LANCHOR79 2369 .word .LC34 2370 .word .LC35 2371 .word .LANCHOR42 2372 .word .LC36 2373 .word .LC37 2374 .word .LC38 2375 .word .LC39 2376 .word .LC40 2377 .word .LANCHOR52 2378 .word .LC41 2379 .word .LC42 2380 .word .LC43 2381 .word .LC44 2382 .word .LC45 2383 .word .LC46 2384 .word .LANCHOR53 2385 .word .LC47 2386 .word .LC48 2387 .word .LC49 2388 .word .LANCHOR81 2389.L258: 2390 ldrh r3, [r7] 2391 ldr r2, .L260 2392 movs r1, #64 2393 mov r0, r5 2394 bl snprintf 2395 add r5, r5, r0 2396 ldrb r3, [r7, #8] @ zero_extendqisi2 2397 ldr r2, .L260+4 2398 movs r1, #64 2399 mov r0, r5 2400 bl snprintf 2401 ldrh r3, [r7, #4] 2402 add r5, r5, r0 2403 ldr r7, .L260+8 2404 movs r1, #64 2405 ldr r2, .L260+12 2406 mov r0, r5 2407 bl snprintf 2408 add r5, r5, r0 2409 ldrh r3, [r7, #2] 2410 ldr r2, .L260+16 2411 movs r1, #64 2412 mov r0, r5 2413 bl snprintf 2414 add r5, r5, r0 2415 ldrb r3, [r7, #6] @ zero_extendqisi2 2416 ldr r2, .L260+20 2417 movs r1, #64 2418 mov r0, r5 2419 bl snprintf 2420 add r5, r5, r0 2421 ldrh r3, [r7] 2422 ldr r2, .L260+24 2423 movs r1, #64 2424 mov r0, r5 2425 bl snprintf 2426 add r5, r5, r0 2427 ldrb r3, [r7, #8] @ zero_extendqisi2 2428 ldr r2, .L260+28 2429 movs r1, #64 2430 mov r0, r5 2431 bl snprintf 2432 add r5, r5, r0 2433 ldrh r3, [r7, #4] 2434 ldr r2, .L260+32 2435 movs r1, #64 2436 mov r0, r5 2437 bl snprintf 2438 ldr r3, [r10, #76] 2439 add r5, r5, r0 2440 ldr r2, .L260+36 2441 movs r1, #64 2442 mov r0, r5 2443 str r3, [sp, #4] 2444 ldr r3, [r10, #84] 2445 str r3, [sp] 2446 ldr r3, [r10, #80] 2447 bl snprintf 2448 add r5, r5, r0 2449 ldr r3, [r10, #72] 2450 ldr r2, .L260+40 2451 movs r1, #64 2452 mov r0, r5 2453 bl snprintf 2454 add r5, r5, r0 2455 ldr r3, [r10, #96] 2456 ldr r2, .L260+44 2457 movs r1, #64 2458 mov r0, r5 2459 bl snprintf 2460 ldr r3, .L260+48 2461 add r5, r5, r0 2462 ldr r2, .L260+52 2463 movs r1, #64 2464 mov r0, r5 2465 ldrh r3, [r3] 2466 bl snprintf 2467 ldr r3, .L260+56 2468 add r5, r5, r0 2469 ldr r2, .L260+60 2470 movs r1, #64 2471 mov r0, r5 2472 ldrh r3, [r3] 2473 bl snprintf 2474 ldr r3, .L260+64 2475 add r5, r5, r0 2476 ldr r2, .L260+68 2477 movs r1, #64 2478 mov r0, r5 2479 ldr r3, [r3] 2480 bl snprintf 2481 ldr r3, .L260+72 2482 add r5, r5, r0 2483 ldr r2, .L260+76 2484 movs r1, #64 2485 mov r0, r5 2486 ldrh r3, [r3] 2487 bl snprintf 2488 add r5, r5, r0 2489 bl GetFreeBlockMinEraseCount 2490 ldr r2, .L260+80 2491 mov r3, r0 2492 movs r1, #64 2493 mov r0, r5 2494 bl snprintf 2495 add r5, r5, r0 2496 ldrh r0, [r4] 2497 bl GetFreeBlockMaxEraseCount 2498 ldr r2, .L260+84 2499 mov r3, r0 2500 movs r1, #64 2501 mov r0, r5 2502 bl snprintf 2503 ldr r3, .L260+88 2504 adds r4, r5, r0 2505 ldr r3, [r3] 2506 cmp r3, #1 2507 beq .L246 2508.L251: 2509 sub r0, r4, r8 2510 add sp, sp, #16 2511 @ sp needed 2512 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2513.L246: 2514 ldrh r3, [r7] 2515 movw r2, #65535 2516 cmp r3, r2 2517 beq .L248 2518 ldr r2, [r6] 2519 mov r0, r4 2520 movs r1, #64 2521 ldrh r3, [r2, r3, lsl #1] 2522 ldr r2, .L260+92 2523 bl snprintf 2524 add r4, r4, r0 2525.L248: 2526 movs r0, #0 2527 ldr r5, .L260+96 2528 ldr fp, .L260+112 2529 movs r7, #0 2530 bl List_get_gc_head_node 2531 uxth r0, r0 2532.L250: 2533 movw r3, #65535 2534 cmp r0, r3 2535 beq .L249 2536 ldr r3, [fp] 2537 mov r10, #6 2538 mul r10, r10, r0 2539 ldr r2, .L260+100 2540 movs r1, #64 2541 ldrh r3, [r3, r0, lsl #1] 2542 str r3, [sp, #12] 2543 ldr r3, [r5] 2544 add r3, r3, r10 2545 ldrh r3, [r3, #4] 2546 str r3, [sp, #8] 2547 ldr r3, [r6] 2548 ldrh r3, [r3, r0, lsl #1] 2549 stm sp, {r0, r3} 2550 mov r3, r7 2551 mov r0, r4 2552 adds r7, r7, #1 2553 bl snprintf 2554 ldr r3, [r5] 2555 cmp r7, #16 2556 add r4, r4, r0 2557 ldrh r0, [r3, r10] 2558 bne .L250 2559.L249: 2560 ldr r3, .L260+104 2561 movs r7, #0 2562 ldr r2, [r5] 2563 ldr r10, .L260+112 2564 ldr r3, [r3] 2565 ldr fp, .L260+116 2566 subs r3, r3, r2 2567 ldr r2, .L260+108 2568 asrs r3, r3, #1 2569 muls r3, r2, r3 2570 uxth r3, r3 2571.L252: 2572 movw r2, #65535 2573 cmp r3, r2 2574 beq .L251 2575 ldr r2, [r10] 2576 movs r6, #6 2577 muls r6, r3, r6 2578 mov r0, r4 2579 movs r1, #64 2580 ldrh r2, [r2, r3, lsl #1] 2581 str r2, [sp, #8] 2582 ldr r2, [r5] 2583 add r2, r2, r6 2584 ldrh r2, [r2, #4] 2585 str r3, [sp] 2586 mov r3, r7 2587 adds r7, r7, #1 2588 str r2, [sp, #4] 2589 mov r2, fp 2590 bl snprintf 2591 cmp r7, #4 2592 add r4, r4, r0 2593 beq .L251 2594 ldr r3, [r5] 2595 ldrh r3, [r3, r6] 2596 b .L252 2597.L261: 2598 .align 2 2599.L260: 2600 .word .LC50 2601 .word .LC51 2602 .word .LANCHOR80 2603 .word .LC52 2604 .word .LC53 2605 .word .LC54 2606 .word .LC55 2607 .word .LC56 2608 .word .LC57 2609 .word .LC58 2610 .word .LC59 2611 .word .LC60 2612 .word .LANCHOR82 2613 .word .LC61 2614 .word .LANCHOR83 2615 .word .LC62 2616 .word .LANCHOR84 2617 .word .LC63 2618 .word .LANCHOR85 2619 .word .LC64 2620 .word .LC65 2621 .word .LC66 2622 .word .LANCHOR86 2623 .word .LC67 2624 .word .LANCHOR40 2625 .word .LC68 2626 .word .LANCHOR47 2627 .word -1431655765 2628 .word .LANCHOR43 2629 .word .LC69 2630 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf 2631 .section .text.rknand_proc_ftlread,"ax",%progbits 2632 .align 1 2633 .global rknand_proc_ftlread 2634 .syntax unified 2635 .thumb 2636 .thumb_func 2637 .fpu softvfp 2638 .type rknand_proc_ftlread, %function 2639rknand_proc_ftlread: 2640 @ args = 0, pretend = 0, frame = 0 2641 @ frame_needed = 0, uses_anonymous_args = 0 2642 cmp r0, #2048 2643 push {r3, r4, r5, lr} 2644 mov r5, r1 2645 blt .L264 2646 ldr r3, .L265 2647 movs r1, #64 2648 ldr r2, .L265+4 2649 mov r0, r5 2650 bl snprintf 2651 adds r4, r5, r0 2652 mov r0, r4 2653 bl FtlPrintInfo2buf 2654 add r0, r0, r4 2655 subs r0, r0, r5 2656 pop {r3, r4, r5, pc} 2657.L264: 2658 movs r0, #0 2659 pop {r3, r4, r5, pc} 2660.L266: 2661 .align 2 2662.L265: 2663 .word .LC70 2664 .word .LC71 2665 .size rknand_proc_ftlread, .-rknand_proc_ftlread 2666 .section .text.GetSwlReplaceBlock,"ax",%progbits 2667 .align 1 2668 .global GetSwlReplaceBlock 2669 .syntax unified 2670 .thumb 2671 .thumb_func 2672 .fpu softvfp 2673 .type GetSwlReplaceBlock, %function 2674GetSwlReplaceBlock: 2675 @ args = 0, pretend = 0, frame = 8 2676 @ frame_needed = 0, uses_anonymous_args = 0 2677 push {r4, r5, r6, r7, r8, r10, fp, lr} 2678 sub sp, sp, #24 2679 ldr r3, .L295 2680 ldr r6, .L295+4 2681 ldr r5, [r3] 2682 mov r10, r3 2683 ldr r1, [r6] 2684 cmp r1, r5 2685 bcs .L268 2686 ldr r2, .L295+8 2687 movs r3, #0 2688 ldr r4, .L295+12 2689 mov r0, r3 2690 ldrh r1, [r2] 2691 ldr r2, .L295+16 2692 str r3, [r4] 2693 ldr r7, [r2] 2694 mov r2, r3 2695.L269: 2696 cmp r2, r1 2697 bcc .L270 2698 cbz r3, .L271 2699 str r0, [r4] 2700.L271: 2701 ldr r7, [r4] 2702 mov r0, r7 2703 bl __aeabi_uidiv 2704 ldr r3, .L295+20 2705 str r0, [r6] 2706 ldr r0, [r3] 2707 ldr r3, .L295+24 2708 subs r0, r7, r0 2709 ldrh r1, [r3] 2710 bl __aeabi_uidiv 2711 str r0, [r4] 2712.L272: 2713 ldr r6, [r6] 2714 add r3, r5, #256 2715 cmp r3, r6 2716 bls .L277 2717 ldr r2, .L295+28 2718 add r3, r5, #768 2719 ldr r2, [r2] 2720 cmp r3, r2 2721 bls .L277 2722.L279: 2723 movw r4, #65535 2724.L278: 2725 mov r0, r4 2726 add sp, sp, #24 2727 @ sp needed 2728 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2729.L270: 2730 ldrh r3, [r7, r2, lsl #1] 2731 adds r2, r2, #1 2732 add r0, r0, r3 2733 movs r3, #1 2734 b .L269 2735.L268: 2736 ldr r2, .L295+28 2737 ldr r3, [r2] 2738 cmp r1, r3 2739 bls .L272 2740 adds r3, r3, #1 2741 ldr r0, .L295+8 2742 str r3, [r2] 2743 movs r2, #0 2744 ldr r3, .L295+16 2745 ldr r3, [r3] 2746 subs r3, r3, #2 2747.L274: 2748 ldrh r1, [r0] 2749 cmp r2, r1 2750 bcs .L272 2751 ldrh r1, [r3, #2] 2752 adds r2, r2, #1 2753 adds r1, r1, #1 2754 strh r1, [r3, #2]! @ movhi 2755 b .L274 2756.L277: 2757 ldr r3, .L295+32 2758 ldrh r0, [r3] 2759 add r0, r0, r0, lsl #1 2760 ubfx r0, r0, #2, #16 2761 bl GetFreeBlockMaxEraseCount 2762 add r3, r5, #64 2763 mov r2, r0 2764 cmp r0, r3 2765 bcc .L279 2766 ldr r3, .L295+36 2767 ldr r3, [r3] 2768 cmp r3, #0 2769 beq .L279 2770 ldr r1, .L295+8 2771 movs r0, #0 2772 mov fp, #6 2773 ldrh r1, [r1] 2774 str r1, [sp, #20] 2775 ldr r1, .L295+40 2776 ldr r8, [r1] 2777 ldr r1, .L295+16 2778 ldr r7, [r1] 2779 movw r1, #65535 2780 mov ip, r1 2781.L280: 2782 ldrh lr, [r3] 2783 movw r4, #65535 2784 cmp lr, r4 2785 bne .L283 2786 mov r4, ip 2787.L282: 2788 movw r3, #65535 2789 cmp r4, r3 2790 beq .L279 2791 ldrh r7, [r7, r4, lsl #1] 2792 lsl r8, r4, #1 2793 cmp r5, r7 2794 bcs .L284 2795 bl GetFreeBlockMinEraseCount 2796 cmp r5, r0 2797 it cc 2798 strcc r1, [r10] 2799.L284: 2800 cmp r6, r7 2801 bls .L279 2802 add r3, r7, #128 2803 cmp r2, r3 2804 ble .L279 2805 add r3, r7, #256 2806 ldr r0, .L295+28 2807 cmp r6, r3 2808 bhi .L285 2809 ldr r1, [r0] 2810 add r3, r7, #768 2811 cmp r3, r1 2812 bcs .L279 2813.L285: 2814 ldr r3, .L295+44 2815 mov r1, r4 2816 str r2, [sp, #8] 2817 mov r2, r6 2818 str r7, [sp, #4] 2819 ldr r3, [r3] 2820 ldrh r3, [r3, r8] 2821 str r3, [sp] 2822 ldr r3, [r0] 2823 ldr r0, .L295+48 2824 bl printf 2825 ldr r3, .L295+52 2826 movs r2, #1 2827 str r2, [r3] 2828 b .L278 2829.L283: 2830 adds r0, r0, #1 2831 ldr r4, [sp, #20] 2832 uxth r0, r0 2833 cmp r0, r4 2834 bhi .L279 2835 ldrh r4, [r3, #4] 2836 cbz r4, .L281 2837 ldr r4, .L295+56 2838 sub r3, r3, r8 2839 asrs r3, r3, #1 2840 muls r3, r4, r3 2841 uxth r4, r3 2842 ldrh r3, [r7, r4, lsl #1] 2843 cmp r5, r3 2844 bcs .L282 2845 cmp r1, r3 2846 itt hi 2847 movhi r1, r3 2848 movhi ip, r4 2849.L281: 2850 mla r3, fp, lr, r8 2851 b .L280 2852.L296: 2853 .align 2 2854.L295: 2855 .word .LANCHOR77 2856 .word .LANCHOR74 2857 .word .LANCHOR5 2858 .word .LANCHOR72 2859 .word .LANCHOR43 2860 .word .LANCHOR73 2861 .word .LANCHOR14 2862 .word .LANCHOR76 2863 .word .LANCHOR48 2864 .word .LANCHOR41 2865 .word .LANCHOR40 2866 .word .LANCHOR42 2867 .word .LC72 2868 .word .LANCHOR87 2869 .word -1431655765 2870 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock 2871 .section .text.free_data_superblock,"ax",%progbits 2872 .align 1 2873 .global free_data_superblock 2874 .syntax unified 2875 .thumb 2876 .thumb_func 2877 .fpu softvfp 2878 .type free_data_superblock, %function 2879free_data_superblock: 2880 @ args = 0, pretend = 0, frame = 0 2881 @ frame_needed = 0, uses_anonymous_args = 0 2882 movw r2, #65535 2883 push {r3, lr} 2884 cmp r0, r2 2885 beq .L298 2886 ldr r2, .L299 2887 movs r1, #0 2888 ldr r2, [r2] 2889 strh r1, [r2, r0, lsl #1] @ movhi 2890 bl INSERT_FREE_LIST 2891.L298: 2892 movs r0, #0 2893 pop {r3, pc} 2894.L300: 2895 .align 2 2896.L299: 2897 .word .LANCHOR42 2898 .size free_data_superblock, .-free_data_superblock 2899 .section .text.get_new_active_ppa,"ax",%progbits 2900 .align 1 2901 .global get_new_active_ppa 2902 .syntax unified 2903 .thumb 2904 .thumb_func 2905 .fpu softvfp 2906 .type get_new_active_ppa, %function 2907get_new_active_ppa: 2908 @ args = 0, pretend = 0, frame = 0 2909 @ frame_needed = 0, uses_anonymous_args = 0 2910 ldrh r2, [r0] 2911 push {r3, r4, r5, r6, r7, lr} 2912 movw r3, #65535 2913 mov r4, r0 2914 cmp r2, r3 2915 bne .L302 2916 movw r2, #2740 2917 ldr r1, .L315 2918 ldr r0, .L315+4 2919 bl printf 2920.L302: 2921 ldr r5, .L315+8 2922 ldrh r2, [r4, #2] 2923 ldrh r3, [r5] 2924 cmp r2, r3 2925 bne .L303 2926 movw r2, #2741 2927 ldr r1, .L315 2928 ldr r0, .L315+4 2929 bl printf 2930.L303: 2931 ldrh r3, [r4, #4] 2932 cbnz r3, .L304 2933 movw r2, #2742 2934 ldr r1, .L315 2935 ldr r0, .L315+4 2936 bl printf 2937.L304: 2938 ldrb r2, [r4, #6] @ zero_extendqisi2 2939 movs r3, #0 2940 strb r3, [r4, #10] 2941 movw r6, #65535 2942 adds r2, r2, #8 2943 ldrh r0, [r4, r2, lsl #1] 2944 ldr r2, .L315+12 2945 ldrh r1, [r2] 2946 mov r2, r3 2947.L305: 2948 cmp r0, r6 2949 ldrb r3, [r4, #6] @ zero_extendqisi2 2950 beq .L307 2951 ldrh r2, [r4, #4] 2952 ldrh r6, [r4, #2] 2953 subs r2, r2, #1 2954 uxth r2, r2 2955 orr r6, r6, r0, lsl #10 2956 movw r0, #65535 2957 strh r2, [r4, #4] @ movhi 2958.L309: 2959 adds r3, r3, #1 2960 uxtb r3, r3 2961 cmp r1, r3 2962 itttt eq 2963 ldrheq r3, [r4, #2] 2964 addeq r3, r3, #1 2965 strheq r3, [r4, #2] @ movhi 2966 moveq r3, #0 2967 add r7, r3, #8 2968 ldrh r7, [r4, r7, lsl #1] 2969 cmp r7, r0 2970 beq .L309 2971 strb r3, [r4, #6] 2972 ldrh r1, [r4, #2] 2973 ldrh r3, [r5] 2974 cmp r1, r3 2975 bne .L301 2976 cbz r2, .L301 2977 movw r2, #2763 2978 ldr r1, .L315 2979 ldr r0, .L315+4 2980 bl printf 2981.L301: 2982 mov r0, r6 2983 pop {r3, r4, r5, r6, r7, pc} 2984.L307: 2985 adds r3, r3, #1 2986 uxtb r3, r3 2987 cmp r3, r1 2988 strb r3, [r4, #6] 2989 itttt eq 2990 ldrheq r3, [r4, #2] 2991 strbeq r2, [r4, #6] 2992 addeq r3, r3, #1 2993 strheq r3, [r4, #2] @ movhi 2994 ldrb r3, [r4, #6] @ zero_extendqisi2 2995 adds r3, r3, #8 2996 ldrh r0, [r4, r3, lsl #1] 2997 b .L305 2998.L316: 2999 .align 2 3000.L315: 3001 .word .LANCHOR88 3002 .word .LC1 3003 .word .LANCHOR19 3004 .word .LANCHOR3 3005 .size get_new_active_ppa, .-get_new_active_ppa 3006 .section .text.FtlGcBufInit,"ax",%progbits 3007 .align 1 3008 .global FtlGcBufInit 3009 .syntax unified 3010 .thumb 3011 .thumb_func 3012 .fpu softvfp 3013 .type FtlGcBufInit, %function 3014FtlGcBufInit: 3015 @ args = 0, pretend = 0, frame = 8 3016 @ frame_needed = 0, uses_anonymous_args = 0 3017 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 3018 movs r3, #0 3019 ldr r1, .L322 3020 mov fp, #1 3021 ldr r2, .L322+4 3022 ldr r5, [r1] 3023 ldr r1, .L322+8 3024 str r3, [r2] 3025 ldr r2, .L322+12 3026 mov r0, r5 3027 ldr r1, [r1] 3028 ldrh r2, [r2] 3029 str r1, [sp, #4] 3030 ldr r1, .L322+16 3031 ldrh r1, [r1] 3032 str r1, [sp] 3033 ldr r1, .L322+20 3034 ldr r10, [r1] 3035 ldr r1, .L322+24 3036 ldrh r7, [r1] 3037 ldr r1, .L322+28 3038 ldr r4, [r1] 3039 movs r1, #12 3040 mla r1, r2, r1, r1 3041 adds r4, r4, #8 3042 add r8, r5, r1 3043 mov r1, r3 3044.L318: 3045 adds r0, r0, #12 3046 ldr r6, [sp] 3047 cmp r0, r8 3048 add ip, r3, r7 3049 add r4, r4, #20 3050 add lr, r1, r6 3051 bne .L319 3052 ldr r3, .L322+32 3053 mov lr, #12 3054 mov r8, #0 3055 ldr r0, [r3] 3056 ldr r3, .L322+8 3057 ldr r4, [r3] 3058 ldr r3, .L322+20 3059 ldr ip, [r3] 3060.L320: 3061 cmp r2, r0 3062 bcc .L321 3063 add sp, sp, #8 3064 @ sp needed 3065 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3066.L319: 3067 bic r1, r1, #3 3068 bic r3, r3, #3 3069 mov r6, r1 3070 ldr r1, [sp, #4] 3071 add r3, r3, r10 3072 str fp, [r0, #-4] 3073 str r3, [r0, #-8] 3074 add r6, r6, r1 3075 mov r1, lr 3076 str r6, [r0, #-12] 3077 str r3, [r4, #-16] 3078 mov r3, ip 3079 str r6, [r4, #-20] 3080 b .L318 3081.L321: 3082 ldr r3, [sp] 3083 mul r10, lr, r2 3084 muls r3, r2, r3 3085 add r1, r5, r10 3086 str r8, [r1, #8] 3087 bic r3, r3, #3 3088 add r3, r3, r4 3089 str r3, [r5, r10] 3090 mul r3, r2, r7 3091 adds r2, r2, #1 3092 uxth r2, r2 3093 bic r3, r3, #3 3094 add r3, r3, ip 3095 str r3, [r1, #4] 3096 b .L320 3097.L323: 3098 .align 2 3099.L322: 3100 .word .LANCHOR90 3101 .word .LANCHOR89 3102 .word .LANCHOR91 3103 .word .LANCHOR3 3104 .word .LANCHOR23 3105 .word .LANCHOR92 3106 .word .LANCHOR24 3107 .word .LANCHOR93 3108 .word .LANCHOR94 3109 .size FtlGcBufInit, .-FtlGcBufInit 3110 .section .text.FtlGcBufFree,"ax",%progbits 3111 .align 1 3112 .global FtlGcBufFree 3113 .syntax unified 3114 .thumb 3115 .thumb_func 3116 .fpu softvfp 3117 .type FtlGcBufFree, %function 3118FtlGcBufFree: 3119 @ args = 0, pretend = 0, frame = 0 3120 @ frame_needed = 0, uses_anonymous_args = 0 3121 ldr r3, .L331 3122 mov ip, #12 3123 push {r4, r5, r6, r7, r8, r10, fp, lr} 3124 movs r4, #0 3125 mov fp, #20 3126 mov lr, r4 3127 ldr r7, [r3] 3128 ldr r3, .L331+4 3129 ldr r5, [r3] 3130.L325: 3131 uxth r3, r4 3132 cmp r1, r3 3133 bls .L324 3134 mla r8, fp, r3, r0 3135 movs r2, #0 3136.L326: 3137 uxth r3, r2 3138 cmp r7, r3 3139 bls .L327 3140 mul r3, ip, r3 3141 ldr r6, [r8, #8] 3142 adds r2, r2, #1 3143 add r10, r5, r3 3144 ldr r3, [r5, r3] 3145 cmp r3, r6 3146 bne .L326 3147 str lr, [r10, #8] 3148.L327: 3149 adds r4, r4, #1 3150 b .L325 3151.L324: 3152 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3153.L332: 3154 .align 2 3155.L331: 3156 .word .LANCHOR94 3157 .word .LANCHOR90 3158 .size FtlGcBufFree, .-FtlGcBufFree 3159 .section .text.FtlGcBufAlloc,"ax",%progbits 3160 .align 1 3161 .global FtlGcBufAlloc 3162 .syntax unified 3163 .thumb 3164 .thumb_func 3165 .fpu softvfp 3166 .type FtlGcBufAlloc, %function 3167FtlGcBufAlloc: 3168 @ args = 0, pretend = 0, frame = 0 3169 @ frame_needed = 0, uses_anonymous_args = 0 3170 ldr r3, .L340 3171 movs r2, #0 3172 push {r4, r5, r6, r7, r8, r10, lr} 3173 mov ip, #12 3174 movs r7, #1 3175 mov lr, #20 3176 ldr r4, [r3] 3177 ldr r3, .L340+4 3178 ldr r5, [r3] 3179.L334: 3180 uxth r8, r2 3181 cmp r1, r8 3182 bhi .L338 3183 pop {r4, r5, r6, r7, r8, r10, pc} 3184.L338: 3185 mov r10, #0 3186.L335: 3187 uxth r3, r10 3188 cmp r4, r3 3189 bls .L336 3190 mla r3, ip, r3, r5 3191 add r10, r10, #1 3192 ldr r6, [r3, #8] 3193 cmp r6, #0 3194 bne .L335 3195 mla r8, lr, r8, r0 3196 str r7, [r3, #8] 3197 ldr r6, [r3] 3198 ldr r3, [r3, #4] 3199 str r6, [r8, #8] 3200 str r3, [r8, #12] 3201.L336: 3202 adds r2, r2, #1 3203 b .L334 3204.L341: 3205 .align 2 3206.L340: 3207 .word .LANCHOR94 3208 .word .LANCHOR90 3209 .size FtlGcBufAlloc, .-FtlGcBufAlloc 3210 .section .text.IsBlkInGcList,"ax",%progbits 3211 .align 1 3212 .global IsBlkInGcList 3213 .syntax unified 3214 .thumb 3215 .thumb_func 3216 .fpu softvfp 3217 .type IsBlkInGcList, %function 3218IsBlkInGcList: 3219 @ args = 0, pretend = 0, frame = 0 3220 @ frame_needed = 0, uses_anonymous_args = 0 3221 @ link register save eliminated. 3222 ldr r3, .L347 3223 ldr r2, .L347+4 3224 ldr r3, [r3] 3225 ldrh r2, [r2] 3226 add r2, r3, r2, lsl #1 3227.L343: 3228 cmp r3, r2 3229 bne .L345 3230 movs r0, #0 3231 bx lr 3232.L345: 3233 ldrh r1, [r3], #2 3234 cmp r1, r0 3235 bne .L343 3236 movs r0, #1 3237 bx lr 3238.L348: 3239 .align 2 3240.L347: 3241 .word .LANCHOR95 3242 .word .LANCHOR96 3243 .size IsBlkInGcList, .-IsBlkInGcList 3244 .section .text.FtlGcUpdatePage,"ax",%progbits 3245 .align 1 3246 .global FtlGcUpdatePage 3247 .syntax unified 3248 .thumb 3249 .thumb_func 3250 .fpu softvfp 3251 .type FtlGcUpdatePage, %function 3252FtlGcUpdatePage: 3253 @ args = 0, pretend = 0, frame = 0 3254 @ frame_needed = 0, uses_anonymous_args = 0 3255 push {r3, r4, r5, r6, r7, lr} 3256 mov r5, r0 3257 ldr r4, .L353 3258 ubfx r0, r0, #10, #16 3259 mov r6, r1 3260 mov r7, r2 3261 bl P2V_block_in_plane 3262 ldr r3, .L353+4 3263 ldrh r1, [r4] 3264 ldr r2, [r3] 3265 movs r3, #0 3266.L350: 3267 uxth ip, r3 3268 cmp ip, r1 3269 bcc .L352 3270 bne .L351 3271 strh r0, [r2, ip, lsl #1] @ movhi 3272 ldrh r3, [r4] 3273 adds r3, r3, #1 3274 strh r3, [r4] @ movhi 3275 b .L351 3276.L352: 3277 adds r3, r3, #1 3278 add ip, r2, r3, lsl #1 3279 ldrh ip, [ip, #-2] 3280 cmp ip, r0 3281 bne .L350 3282.L351: 3283 ldr r2, .L353+8 3284 movs r0, #12 3285 ldr r1, .L353+12 3286 ldrh r3, [r2] 3287 ldr r1, [r1] 3288 muls r0, r3, r0 3289 adds r3, r3, #1 3290 adds r4, r1, r0 3291 str r6, [r4, #4] 3292 str r7, [r4, #8] 3293 str r5, [r1, r0] 3294 strh r3, [r2] @ movhi 3295 pop {r3, r4, r5, r6, r7, pc} 3296.L354: 3297 .align 2 3298.L353: 3299 .word .LANCHOR96 3300 .word .LANCHOR95 3301 .word .LANCHOR97 3302 .word .LANCHOR98 3303 .size FtlGcUpdatePage, .-FtlGcUpdatePage 3304 .section .text.FtlGcRefreshBlock,"ax",%progbits 3305 .align 1 3306 .global FtlGcRefreshBlock 3307 .syntax unified 3308 .thumb 3309 .thumb_func 3310 .fpu softvfp 3311 .type FtlGcRefreshBlock, %function 3312FtlGcRefreshBlock: 3313 @ args = 0, pretend = 0, frame = 0 3314 @ frame_needed = 0, uses_anonymous_args = 0 3315 push {r3, r4, r5, lr} 3316 mov r1, r0 3317 mov r4, r0 3318 ldr r0, .L358 3319 bl printf 3320 ldr r0, .L358+4 3321 ldrh r5, [r0] 3322 cmp r4, r5 3323 beq .L356 3324 ldr r3, .L358+8 3325 ldrh r1, [r3] 3326 cmp r4, r1 3327 beq .L356 3328 movw r2, #65535 3329 cmp r5, r2 3330 bne .L357 3331 strh r4, [r0] @ movhi 3332.L356: 3333 movs r0, #0 3334 pop {r3, r4, r5, pc} 3335.L357: 3336 cmp r1, r2 3337 it eq 3338 strheq r4, [r3] @ movhi 3339 b .L356 3340.L359: 3341 .align 2 3342.L358: 3343 .word .LC73 3344 .word .LANCHOR99 3345 .word .LANCHOR100 3346 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 3347 .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits 3348 .align 1 3349 .global FtlGcMarkBadPhyBlk 3350 .syntax unified 3351 .thumb 3352 .thumb_func 3353 .fpu softvfp 3354 .type FtlGcMarkBadPhyBlk, %function 3355FtlGcMarkBadPhyBlk: 3356 @ args = 0, pretend = 0, frame = 0 3357 @ frame_needed = 0, uses_anonymous_args = 0 3358 push {r4, r5, r6, lr} 3359 mov r5, r0 3360 ldr r4, .L364 3361 bl P2V_block_in_plane 3362 mov r2, r5 3363 mov r6, r0 3364 ldrh r1, [r4] 3365 ldr r0, .L364+4 3366 bl printf 3367 mov r0, r6 3368 bl FtlGcRefreshBlock 3369 ldrh r3, [r4] 3370 movs r2, #0 3371 ldr r0, .L364+8 3372.L361: 3373 uxth r1, r2 3374 cmp r3, r1 3375 bhi .L363 3376 cmp r3, #15 3377 itttt ls 3378 addls r2, r3, #1 3379 strhls r2, [r4] @ movhi 3380 ldrls r2, .L364+8 3381 strhls r5, [r2, r3, lsl #1] @ movhi 3382 b .L362 3383.L363: 3384 adds r2, r2, #1 3385 add r1, r0, r2, lsl #1 3386 ldrh r1, [r1, #-2] 3387 cmp r1, r5 3388 bne .L361 3389.L362: 3390 movs r0, #0 3391 pop {r4, r5, r6, pc} 3392.L365: 3393 .align 2 3394.L364: 3395 .word .LANCHOR101 3396 .word .LC74 3397 .word .LANCHOR102 3398 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 3399 .section .text.FtlGcReFreshBadBlk,"ax",%progbits 3400 .align 1 3401 .global FtlGcReFreshBadBlk 3402 .syntax unified 3403 .thumb 3404 .thumb_func 3405 .fpu softvfp 3406 .type FtlGcReFreshBadBlk, %function 3407FtlGcReFreshBadBlk: 3408 @ args = 0, pretend = 0, frame = 0 3409 @ frame_needed = 0, uses_anonymous_args = 0 3410 ldr r3, .L372 3411 push {r4, lr} 3412 ldrh r3, [r3] 3413 cbz r3, .L367 3414 ldr r2, .L372+4 3415 ldrh r1, [r2] 3416 movw r2, #65535 3417 cmp r1, r2 3418 bne .L367 3419 ldr r4, .L372+8 3420 ldrh r2, [r4] 3421 cmp r2, r3 3422 itt cs 3423 movcs r3, #0 3424 strhcs r3, [r4] @ movhi 3425 ldr r3, .L372+12 3426 ldrh r2, [r4] 3427 ldrh r0, [r3, r2, lsl #1] 3428 bl P2V_block_in_plane 3429 bl FtlGcRefreshBlock 3430 ldrh r3, [r4] 3431 adds r3, r3, #1 3432 strh r3, [r4] @ movhi 3433.L367: 3434 movs r0, #0 3435 pop {r4, pc} 3436.L373: 3437 .align 2 3438.L372: 3439 .word .LANCHOR101 3440 .word .LANCHOR99 3441 .word .LANCHOR103 3442 .word .LANCHOR102 3443 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 3444 .section .text.ftl_malloc,"ax",%progbits 3445 .align 1 3446 .global ftl_malloc 3447 .syntax unified 3448 .thumb 3449 .thumb_func 3450 .fpu softvfp 3451 .type ftl_malloc, %function 3452ftl_malloc: 3453 @ args = 0, pretend = 0, frame = 0 3454 @ frame_needed = 0, uses_anonymous_args = 0 3455 @ link register save eliminated. 3456 movs r1, #0 3457 b kmalloc 3458 .size ftl_malloc, .-ftl_malloc 3459 .section .text.ftl_free,"ax",%progbits 3460 .align 1 3461 .global ftl_free 3462 .syntax unified 3463 .thumb 3464 .thumb_func 3465 .fpu softvfp 3466 .type ftl_free, %function 3467ftl_free: 3468 @ args = 0, pretend = 0, frame = 0 3469 @ frame_needed = 0, uses_anonymous_args = 0 3470 @ link register save eliminated. 3471 b free 3472 .size ftl_free, .-ftl_free 3473 .section .text.rknand_print_hex,"ax",%progbits 3474 .align 1 3475 .global rknand_print_hex 3476 .syntax unified 3477 .thumb 3478 .thumb_func 3479 .fpu softvfp 3480 .type rknand_print_hex, %function 3481rknand_print_hex: 3482 @ args = 0, pretend = 0, frame = 0 3483 @ frame_needed = 0, uses_anonymous_args = 0 3484 push {r4, r5, r6, r7, r8, r10, fp, lr} 3485 movs r6, #0 3486 mov fp, r0 3487 mov r7, r1 3488 mov r8, r2 3489 mov r10, r3 3490 mov r5, r6 3491 mov r4, r6 3492.L377: 3493 cmp r4, r10 3494 bcc .L383 3495 ldr r0, .L386 3496 pop {r4, r5, r6, r7, r8, r10, fp, lr} 3497 b printf 3498.L383: 3499 cbnz r5, .L378 3500 mov r2, r6 3501 mov r1, fp 3502 ldr r0, .L386+4 3503 bl printf 3504.L378: 3505 cmp r8, #4 3506 bne .L379 3507 ldr r1, [r7, r4, lsl #2] 3508.L385: 3509 ldr r0, .L386+8 3510.L384: 3511 adds r5, r5, #1 3512 bl printf 3513 cmp r5, #15 3514 bls .L382 3515 movs r5, #0 3516 ldr r0, .L386 3517 bl printf 3518.L382: 3519 adds r4, r4, #1 3520 add r6, r6, r8 3521 b .L377 3522.L379: 3523 cmp r8, #2 3524 bne .L381 3525 ldrh r1, [r7, r4, lsl #1] 3526 b .L385 3527.L381: 3528 ldrb r1, [r7, r4] @ zero_extendqisi2 3529 ldr r0, .L386+12 3530 b .L384 3531.L387: 3532 .align 2 3533.L386: 3534 .word .LC78 3535 .word .LC75 3536 .word .LC76 3537 .word .LC77 3538 .size rknand_print_hex, .-rknand_print_hex 3539 .section .text.FlashEraseBlocks,"ax",%progbits 3540 .align 1 3541 .global FlashEraseBlocks 3542 .syntax unified 3543 .thumb 3544 .thumb_func 3545 .fpu softvfp 3546 .type FlashEraseBlocks, %function 3547FlashEraseBlocks: 3548 @ args = 0, pretend = 0, frame = 16 3549 @ frame_needed = 0, uses_anonymous_args = 0 3550 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3551 mov r4, r0 3552 ldr r6, .L404 3553 add r8, r0, #4 3554 movs r7, #0 3555 ldr fp, .L404+20 3556 ldrh r10, [r6, #12] 3557 str r2, [sp] 3558 lsl r3, r10, #3 3559 str r3, [sp, #4] 3560.L389: 3561 ldr r3, [sp] 3562 cmp r7, r3 3563 beq .L403 3564 add r2, sp, #8 3565 add r1, sp, #12 3566 ldr r0, [r8] 3567 bl l2p_addr_tran.isra.0 3568 ldr r5, [sp, #8] 3569 cbnz r5, .L390 3570 ldr r2, [sp, #12] 3571 ldr r3, [sp, #4] 3572 cmp r3, r2 3573 bls .L390 3574 ldr r6, .L404+4 3575 ldr r7, .L404+8 3576.L391: 3577 ldr r3, [sp] 3578 adds r4, r4, #20 3579 cmp r5, r3 3580 bne .L392 3581.L403: 3582 movs r0, #0 3583 add sp, sp, #16 3584 @ sp needed 3585 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3586.L392: 3587 mov r3, #-1 3588 ldr r2, [sp, #12] 3589 str r3, [r4, #-20] 3590 mov r1, r6 3591 mov r0, r7 3592 adds r5, r5, #1 3593 bl printf 3594 movs r3, #16 3595 movs r2, #4 3596 ldr r1, [r4, #-12] 3597 ldr r0, .L404+12 3598 bl rknand_print_hex 3599 movs r3, #4 3600 ldr r1, [r4, #-8] 3601 mov r2, r3 3602 ldr r0, .L404+16 3603 bl rknand_print_hex 3604 b .L391 3605.L390: 3606 ldr r2, [fp, #4] 3607 uxtb r0, r5 3608 ldr r1, [sp, #12] 3609 blx r2 3610 cbnz r0, .L393 3611 str r0, [r8, #-4] 3612.L394: 3613 ldrh r2, [r6, #14] 3614 cmp r2, #4 3615 bne .L396 3616 ldr r1, [sp, #12] 3617 ldr r2, [fp, #4] 3618 ldrb r0, [sp, #8] @ zero_extendqisi2 3619 add r1, r1, r10 3620 blx r2 3621 cbz r0, .L396 3622 mov r2, #-1 3623 str r2, [r8, #-4] 3624.L396: 3625 adds r7, r7, #1 3626 add r8, r8, #20 3627 b .L389 3628.L393: 3629 mov r2, #-1 3630 str r2, [r8, #-4] 3631 b .L394 3632.L405: 3633 .align 2 3634.L404: 3635 .word .LANCHOR0 3636 .word .LANCHOR104 3637 .word .LC79 3638 .word .LC80 3639 .word .LC81 3640 .word .LANCHOR105 3641 .size FlashEraseBlocks, .-FlashEraseBlocks 3642 .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits 3643 .align 1 3644 .global FtlFreeSysBlkQueueIn 3645 .syntax unified 3646 .thumb 3647 .thumb_func 3648 .fpu softvfp 3649 .type FtlFreeSysBlkQueueIn, %function 3650FtlFreeSysBlkQueueIn: 3651 @ args = 0, pretend = 0, frame = 0 3652 @ frame_needed = 0, uses_anonymous_args = 0 3653 subs r3, r0, #1 3654 movw r2, #65533 3655 uxth r3, r3 3656 push {r4, r5, r6, lr} 3657 mov r5, r0 3658 cmp r3, r2 3659 bhi .L406 3660 ldr r4, .L415 3661 ldrh r3, [r4, #6] 3662 cmp r3, #1024 3663 beq .L406 3664 cbz r1, .L408 3665 bl P2V_block_in_plane 3666 ldr r3, .L415+4 3667 mov r6, r0 3668 movs r2, #1 3669 mov r1, r2 3670 ldr r0, [r3] 3671 lsls r3, r5, #10 3672 str r3, [r0, #4] 3673 bl FlashEraseBlocks 3674 ldr r3, .L415+8 3675 ldr r2, [r3] 3676 ldrh r3, [r2, r6, lsl #1] 3677 adds r3, r3, #1 3678 strh r3, [r2, r6, lsl #1] @ movhi 3679 ldr r2, .L415+12 3680 ldr r3, [r2] 3681 adds r3, r3, #1 3682 str r3, [r2] 3683.L408: 3684 ldrh r3, [r4, #6] 3685 adds r3, r3, #1 3686 strh r3, [r4, #6] @ movhi 3687 ldrh r3, [r4, #4] 3688 adds r2, r3, #4 3689 adds r3, r3, #1 3690 ubfx r3, r3, #0, #10 3691 strh r5, [r4, r2, lsl #1] @ movhi 3692 strh r3, [r4, #4] @ movhi 3693.L406: 3694 pop {r4, r5, r6, pc} 3695.L416: 3696 .align 2 3697.L415: 3698 .word .LANCHOR38 3699 .word .LANCHOR106 3700 .word .LANCHOR43 3701 .word .LANCHOR75 3702 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3703 .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits 3704 .align 1 3705 .global FtlFreeSysBlkQueueOut 3706 .syntax unified 3707 .thumb 3708 .thumb_func 3709 .fpu softvfp 3710 .type FtlFreeSysBlkQueueOut, %function 3711FtlFreeSysBlkQueueOut: 3712 @ args = 0, pretend = 0, frame = 0 3713 @ frame_needed = 0, uses_anonymous_args = 0 3714 push {r3, r4, r5, lr} 3715 ldr r4, .L422 3716 ldrh r2, [r4, #6] 3717 cbz r2, .L421 3718 ldrh r3, [r4, #2] 3719 subs r2, r2, #1 3720 strh r2, [r4, #6] @ movhi 3721 movs r2, #1 3722 adds r1, r3, #4 3723 adds r3, r3, #1 3724 ubfx r3, r3, #0, #10 3725 ldrh r5, [r4, r1, lsl #1] 3726 strh r3, [r4, #2] @ movhi 3727 mov r1, r2 3728 ldr r3, .L422+4 3729 ldr r0, [r3] 3730 lsls r3, r5, #10 3731 str r3, [r0, #4] 3732 bl FlashEraseBlocks 3733 ldr r2, .L422+8 3734 ldr r3, [r2] 3735 adds r3, r3, #1 3736 str r3, [r2] 3737.L418: 3738 subs r3, r5, #1 3739 movw r2, #65533 3740 uxth r3, r3 3741 cmp r3, r2 3742 bls .L419 3743 ldrh r2, [r4, #6] 3744 mov r1, r5 3745 ldr r0, .L422+12 3746 bl printf 3747.L420: 3748 b .L420 3749.L421: 3750 movw r5, #65535 3751 b .L418 3752.L419: 3753 mov r0, r5 3754 pop {r3, r4, r5, pc} 3755.L423: 3756 .align 2 3757.L422: 3758 .word .LANCHOR38 3759 .word .LANCHOR106 3760 .word .LANCHOR75 3761 .word .LC82 3762 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3763 .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits 3764 .align 1 3765 .global ftl_map_blk_alloc_new_blk 3766 .syntax unified 3767 .thumb 3768 .thumb_func 3769 .fpu softvfp 3770 .type ftl_map_blk_alloc_new_blk, %function 3771ftl_map_blk_alloc_new_blk: 3772 @ args = 0, pretend = 0, frame = 0 3773 @ frame_needed = 0, uses_anonymous_args = 0 3774 ldrh r1, [r0, #10] 3775 ldr r2, [r0, #12] 3776 push {r3, r4, r5, r6, r7, lr} 3777 mov r4, r0 3778 movs r3, #0 3779.L425: 3780 uxth r5, r3 3781 cmp r5, r1 3782 bcs .L428 3783 mov r7, r2 3784 adds r3, r3, #1 3785 ldrh r6, [r7] 3786 adds r2, r2, #2 3787 cmp r6, #0 3788 bne .L425 3789 bl FtlFreeSysBlkQueueOut 3790 subs r3, r0, #1 3791 movw r2, #65533 3792 uxth r3, r3 3793 mov r1, r0 3794 strh r0, [r7] @ movhi 3795 cmp r3, r2 3796 bls .L426 3797 ldr r3, .L432 3798 ldr r0, .L432+4 3799 ldrh r2, [r3, #6] 3800 bl printf 3801.L427: 3802 b .L427 3803.L426: 3804 ldr r3, [r4, #28] 3805 strh r6, [r4, #2] @ movhi 3806 strh r5, [r4] @ movhi 3807 adds r3, r3, #1 3808 str r3, [r4, #28] 3809 ldrh r3, [r4, #8] 3810 adds r3, r3, #1 3811 strh r3, [r4, #8] @ movhi 3812.L428: 3813 ldrh r3, [r4, #10] 3814 cmp r3, r5 3815 bhi .L430 3816 movw r2, #578 3817 ldr r1, .L432+8 3818 ldr r0, .L432+12 3819 bl printf 3820.L430: 3821 movs r0, #0 3822 pop {r3, r4, r5, r6, r7, pc} 3823.L433: 3824 .align 2 3825.L432: 3826 .word .LANCHOR38 3827 .word .LC83 3828 .word .LANCHOR107 3829 .word .LC1 3830 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 3831 .section .text.ftl_memset,"ax",%progbits 3832 .align 1 3833 .global ftl_memset 3834 .syntax unified 3835 .thumb 3836 .thumb_func 3837 .fpu softvfp 3838 .type ftl_memset, %function 3839ftl_memset: 3840 @ args = 0, pretend = 0, frame = 0 3841 @ frame_needed = 0, uses_anonymous_args = 0 3842 @ link register save eliminated. 3843 b memset 3844 .size ftl_memset, .-ftl_memset 3845 .section .text.FtlMemInit,"ax",%progbits 3846 .align 1 3847 .global FtlMemInit 3848 .syntax unified 3849 .thumb 3850 .thumb_func 3851 .fpu softvfp 3852 .type FtlMemInit, %function 3853FtlMemInit: 3854 @ args = 0, pretend = 0, frame = 24 3855 @ frame_needed = 0, uses_anonymous_args = 0 3856 ldr r3, .L536 3857 movs r1, #0 3858 push {r4, r5, r6, r7, r8, r10, fp, lr} 3859 sub sp, sp, #24 3860 ldr r2, .L536+4 3861 mov r10, #12 3862 str r1, [r3] 3863 ldr r3, .L536+8 3864 ldr r4, .L536+12 3865 ldr r8, .L536+292 3866 str r1, [r3] 3867 ldr r3, .L536+16 3868 ldrh r0, [r4] 3869 str r1, [sp, #12] 3870 str r1, [r3] 3871 ldr r3, .L536+20 3872 lsls r0, r0, #1 3873 ldr r6, .L536+24 3874 ldr fp, .L536+296 3875 str r1, [r3] 3876 ldr r3, .L536+28 3877 ldr r7, .L536+32 3878 str r1, [r3] 3879 ldr r3, .L536+36 3880 str r1, [r3] 3881 ldr r3, .L536+40 3882 str r1, [r3] 3883 ldr r3, .L536+44 3884 str r1, [r3] 3885 ldr r3, .L536+48 3886 str r1, [r3] 3887 ldr r3, .L536+52 3888 str r1, [r3] 3889 ldr r3, .L536+56 3890 str r1, [r3] 3891 ldr r3, .L536+60 3892 str r1, [r3] 3893 ldr r3, .L536+64 3894 str r1, [r3] 3895 ldr r3, .L536+68 3896 str r1, [r3] 3897 ldr r3, .L536+72 3898 str r1, [r3] 3899 movw r3, #65535 3900 str r3, [r2] 3901 ldr r2, .L536+76 3902 str r1, [r2] 3903 ldr r2, .L536+80 3904 str r1, [r2] 3905 ldr r2, .L536+84 3906 str r1, [r2] 3907 ldr r2, .L536+88 3908 strh r3, [r2] @ movhi 3909 ldr r2, .L536+92 3910 strh r3, [r2] @ movhi 3911 movs r2, #32 3912 ldr r3, .L536+96 3913 strh r2, [r3] @ movhi 3914 movs r2, #128 3915 ldr r3, .L536+100 3916 strh r2, [r3] @ movhi 3917 ldr r3, .L536+104 3918 strh r1, [r3] @ movhi 3919 ldr r3, .L536+108 3920 strh r1, [r3] @ movhi 3921 ldr r3, .L536+112 3922 strh r1, [r3] @ movhi 3923 bl ftl_malloc 3924 str r0, [r8] 3925 ldrh r0, [r4] 3926 movs r4, #20 3927 mul r0, r10, r0 3928 bl ftl_malloc 3929 ldr r3, .L536+116 3930 str r0, [r3] 3931 ldrh r3, [r6] 3932 muls r4, r3, r4 3933 lsls r5, r4, #2 3934 mov r0, r5 3935 bl ftl_malloc 3936 ldr r3, .L536+120 3937 str r0, [r3] 3938 mov r0, r4 3939 bl ftl_malloc 3940 ldr r3, .L536+124 3941 str r0, [r3] 3942 mov r0, r5 3943 bl ftl_malloc 3944 str r0, [fp] 3945 mov r0, r4 3946 bl ftl_malloc 3947 ldr r3, .L536+128 3948 ldr r5, .L536+132 3949 str r0, [r3] 3950 mov r0, r4 3951 bl ftl_malloc 3952 ldr r3, .L536+136 3953 str r0, [r3] 3954 ldrh r0, [r6] 3955 ldr r3, .L536+140 3956 lsls r0, r0, #1 3957 ldrh r4, [r3] 3958 adds r0, r0, #1 3959 str r0, [r5] 3960 mov r0, r4 3961 bl ftl_malloc 3962 ldr r3, .L536+144 3963 str r0, [r3] 3964 mov r0, r4 3965 bl ftl_malloc 3966 ldr r3, .L536+148 3967 str r0, [r3] 3968 mov r0, r4 3969 bl ftl_malloc 3970 str r0, [r7] 3971 ldr r0, [r5] 3972 muls r0, r4, r0 3973 bl ftl_malloc 3974 ldr r3, .L536+152 3975 str r0, [r3] 3976 mov r0, r4 3977 bl ftl_malloc 3978 ldr r3, .L536+156 3979 str r0, [r3] 3980 mov r0, r4 3981 bl ftl_malloc 3982 ldr r3, .L536+160 3983 str r0, [r3] 3984 ldr r0, [r5] 3985 mul r0, r10, r0 3986 bl ftl_malloc 3987 ldr r3, .L536+164 3988 str r0, [r3] 3989 mov r0, r4 3990 bl ftl_malloc 3991 ldr r3, .L536+168 3992 str r0, [r3] 3993 mov r0, r4 3994 ldr r4, .L536+172 3995 bl ftl_malloc 3996 str r0, [r4] 3997 ldr r0, .L536+176 3998 ldr r4, .L536+180 3999 ldrh r0, [r0] 4000 lsls r0, r0, #2 4001 bl ftl_malloc 4002 str r0, [r4] 4003 ldr r4, .L536+184 4004 ldrh r2, [r6] 4005 ldr r6, .L536+152 4006 ldrh r0, [r4] 4007 muls r2, r0, r2 4008 mov r0, r2 4009 str r2, [sp, #4] 4010 bl ftl_malloc 4011 ldr r2, [sp, #4] 4012 ldr r3, .L536+188 4013 str r0, [r3] 4014 lsls r0, r2, #2 4015 bl ftl_malloc 4016 ldr r2, .L536+192 4017 str r0, [r2] 4018 ldrh r2, [r4] 4019 ldr r0, [r5] 4020 ldr r4, .L536+196 4021 ldr r5, .L536+200 4022 muls r0, r2, r0 4023 bl ftl_malloc 4024 ldr r3, .L536+204 4025 str r0, [r3] 4026 ldrh r0, [r4] 4027 lsls r0, r0, #1 4028 uxth r0, r0 4029 strh r0, [r5] @ movhi 4030 bl ftl_malloc 4031 ldr r2, .L536+208 4032 str r0, [r2] 4033 ldrh r2, [r5] 4034 ldr r0, .L536+212 4035 addw r2, r2, #547 4036 lsrs r2, r2, #9 4037 and r0, r0, r2, lsl #9 4038 strh r2, [r5] @ movhi 4039 bl ftl_malloc 4040 ldr r3, .L536+216 4041 str r0, [r3] 4042 adds r0, r0, #32 4043 ldr r3, .L536+220 4044 str r0, [r3] 4045 ldrh r3, [r4] 4046 lsls r5, r3, #1 4047 mov r0, r5 4048 bl ftl_malloc 4049 ldr r2, .L536+224 4050 str r0, [r2] 4051 mov r0, r5 4052 bl ftl_malloc 4053 ldr r3, .L536+228 4054 str r0, [r3] 4055 ldr r3, .L536+232 4056 ldr r2, [r3] 4057 str r3, [sp, #8] 4058 lsls r5, r2, #1 4059 mov r0, r5 4060 bl ftl_malloc 4061 ldr r2, .L536+236 4062 str r0, [r2] 4063 mov r0, r5 4064 bl ftl_malloc 4065 ldr r2, .L536+240 4066 ldr r5, .L536+244 4067 str r0, [r2] 4068 ldrh r0, [r4] 4069 lsrs r0, r0, #3 4070 adds r0, r0, #4 4071 bl ftl_malloc 4072 ldr r2, .L536+248 4073 str r0, [r2] 4074 ldrh r0, [r5] 4075 lsls r0, r0, #1 4076 bl ftl_malloc 4077 ldr r2, .L536+252 4078 str r0, [r2] 4079 ldrh r0, [r5] 4080 lsls r0, r0, #1 4081 bl ftl_malloc 4082 ldr r2, .L536+256 4083 str r0, [r2] 4084 ldrh r0, [r5] 4085 ldr r5, .L536+116 4086 lsls r0, r0, #2 4087 bl ftl_malloc 4088 ldr r2, .L536+260 4089 str r0, [r2] 4090 ldr r2, .L536+264 4091 ldrh r0, [r2] 4092 str r2, [sp, #4] 4093 lsls r0, r0, #2 4094 bl ftl_malloc 4095 ldr r2, [sp, #4] 4096 ldr ip, .L536+300 4097 ldr r1, [sp, #12] 4098 ldrh r2, [r2] 4099 str r0, [ip] 4100 lsls r2, r2, #2 4101 bl ftl_memset 4102 ldr r2, .L536+268 4103 ldrh r0, [r2] 4104 lsls r0, r0, #2 4105 bl ftl_malloc 4106 ldr r2, .L536+272 4107 ldr r3, [sp, #8] 4108 str r0, [r2] 4109 ldr r0, [r3] 4110 lsls r0, r0, #2 4111 bl ftl_malloc 4112 ldr r3, .L536+276 4113 str r0, [r3] 4114 ldr r3, .L536+280 4115 ldrh r0, [r3] 4116 str r3, [sp, #4] 4117 mul r0, r10, r0 4118 ldr r10, .L536+304 4119 bl ftl_malloc 4120 ldr r2, .L536+284 4121 ldr r3, [sp, #4] 4122 str r0, [r2] 4123 ldr r2, .L536+140 4124 ldrh r3, [r3] 4125 ldrh r0, [r2] 4126 muls r0, r3, r0 4127 bl ftl_malloc 4128 ldr r3, .L536+288 4129 str r0, [r3] 4130 movs r0, #6 4131 ldrh r3, [r4] 4132 b .L537 4133.L538: 4134 .align 2 4135.L536: 4136 .word .LANCHOR70 4137 .word .LANCHOR109 4138 .word .LANCHOR71 4139 .word .LANCHOR21 4140 .word .LANCHOR67 4141 .word .LANCHOR64 4142 .word .LANCHOR3 4143 .word .LANCHOR63 4144 .word .LANCHOR117 4145 .word .LANCHOR65 4146 .word .LANCHOR66 4147 .word .LANCHOR62 4148 .word .LANCHOR72 4149 .word .LANCHOR73 4150 .word .LANCHOR75 4151 .word .LANCHOR76 4152 .word .LANCHOR77 4153 .word .LANCHOR108 4154 .word .LANCHOR87 4155 .word .LANCHOR110 4156 .word .LANCHOR84 4157 .word .LANCHOR111 4158 .word .LANCHOR99 4159 .word .LANCHOR100 4160 .word .LANCHOR82 4161 .word .LANCHOR83 4162 .word .LANCHOR85 4163 .word .LANCHOR101 4164 .word .LANCHOR103 4165 .word .LANCHOR98 4166 .word .LANCHOR112 4167 .word .LANCHOR113 4168 .word .LANCHOR106 4169 .word .LANCHOR94 4170 .word .LANCHOR93 4171 .word .LANCHOR23 4172 .word .LANCHOR115 4173 .word .LANCHOR116 4174 .word .LANCHOR91 4175 .word .LANCHOR118 4176 .word .LANCHOR119 4177 .word .LANCHOR90 4178 .word .LANCHOR120 4179 .word .LANCHOR121 4180 .word .LANCHOR12 4181 .word .LANCHOR122 4182 .word .LANCHOR24 4183 .word .LANCHOR123 4184 .word .LANCHOR124 4185 .word .LANCHOR6 4186 .word .LANCHOR125 4187 .word .LANCHOR92 4188 .word .LANCHOR126 4189 .word 33553920 4190 .word .LANCHOR127 4191 .word .LANCHOR43 4192 .word .LANCHOR128 4193 .word .LANCHOR42 4194 .word .LANCHOR30 4195 .word .LANCHOR129 4196 .word .LANCHOR130 4197 .word .LANCHOR27 4198 .word .LANCHOR1 4199 .word .LANCHOR36 4200 .word .LANCHOR131 4201 .word .LANCHOR132 4202 .word .LANCHOR28 4203 .word .LANCHOR32 4204 .word .LANCHOR134 4205 .word .LANCHOR135 4206 .word .LANCHOR33 4207 .word .LANCHOR55 4208 .word .LANCHOR136 4209 .word .LANCHOR95 4210 .word .LANCHOR114 4211 .word .LANCHOR133 4212 .word .LANCHOR10 4213.L537: 4214 ldr r4, .L539 4215 muls r0, r3, r0 4216 bl ftl_malloc 4217 ldr r3, .L539+4 4218 str r0, [r3] 4219 ldr r3, .L539+8 4220 ldrh r0, [r3] 4221 ldrh r3, [r10] 4222 adds r0, r0, #31 4223 asrs r0, r0, #5 4224 strh r0, [r4] @ movhi 4225 muls r0, r3, r0 4226 lsls r0, r0, #2 4227 bl ftl_malloc 4228 ldr r2, .L539+12 4229 str r5, [sp, #8] 4230 ldr r5, .L539+16 4231 mov r1, r2 4232 ldrh r3, [r10] 4233 str r0, [r1, #28]! 4234 ldrh r0, [r4] 4235 str r5, [sp, #12] 4236 ldr r5, .L539+20 4237 ldr r10, .L539+116 4238 lsls r0, r0, #2 4239 ldr lr, .L539+120 4240 ldr ip, .L539+124 4241 str r5, [sp, #16] 4242 mov r4, r0 4243 ldr r5, .L539+24 4244 str r3, [sp, #4] 4245 movs r3, #1 4246 str r5, [sp, #20] 4247.L436: 4248 ldr r5, [sp, #4] 4249 cmp r3, r5 4250 bcc .L437 4251 add r3, r2, r3, lsl #2 4252 ldr r1, .L539+28 4253 movs r0, #0 4254 adds r3, r3, #24 4255.L438: 4256 cmp r1, r3 4257 bne .L439 4258 ldr r3, .L539+32 4259 ldr r3, [r3] 4260 cbnz r3, .L440 4261.L442: 4262 ldr r1, .L539+36 4263 ldr r0, .L539+40 4264 bl printf 4265 mov r0, #-1 4266.L435: 4267 add sp, sp, #24 4268 @ sp needed 4269 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4270.L437: 4271 ldr r5, [r2, #28] 4272 adds r3, r3, #1 4273 add r5, r5, r4 4274 add r4, r4, r0 4275 str r5, [r1, #4]! 4276 b .L436 4277.L439: 4278 str r0, [r3, #4]! 4279 b .L438 4280.L440: 4281 ldr r3, .L539+44 4282 ldr r3, [r3] 4283 cmp r3, #0 4284 beq .L442 4285 ldr r3, .L539+48 4286 ldr r3, [r3] 4287 cmp r3, #0 4288 beq .L442 4289 ldr r3, .L539+52 4290 ldr r3, [r3] 4291 cmp r3, #0 4292 beq .L442 4293 ldr r3, .L539+56 4294 ldr r3, [r3] 4295 cmp r3, #0 4296 beq .L442 4297 ldr r3, .L539+60 4298 ldr r3, [r3] 4299 cmp r3, #0 4300 beq .L442 4301 ldr r3, .L539+4 4302 ldr r3, [r3] 4303 cmp r3, #0 4304 beq .L442 4305 ldr r3, [r2, #28] 4306 cmp r3, #0 4307 beq .L442 4308 ldr r3, .L539+64 4309 ldr r3, [r3] 4310 cmp r3, #0 4311 beq .L442 4312 ldr r3, [r8] 4313 cmp r3, #0 4314 beq .L442 4315 ldr r3, [sp, #8] 4316 ldr r3, [r3] 4317 cmp r3, #0 4318 beq .L442 4319 ldr r3, [sp, #12] 4320 ldr r3, [r3] 4321 cmp r3, #0 4322 beq .L442 4323 ldr r3, [fp] 4324 cmp r3, #0 4325 beq .L442 4326 ldr r3, [r10] 4327 cmp r3, #0 4328 beq .L442 4329 ldr r3, [sp, #20] 4330 ldr r3, [r3] 4331 cmp r3, #0 4332 beq .L442 4333 ldr r3, [sp, #16] 4334 ldr r3, [r3] 4335 cmp r3, #0 4336 beq .L442 4337 ldr r3, [lr] 4338 cmp r3, #0 4339 beq .L442 4340 ldr r3, [ip] 4341 cmp r3, #0 4342 beq .L442 4343 ldr r3, [r7] 4344 cmp r3, #0 4345 beq .L442 4346 ldr r3, [r6] 4347 cmp r3, #0 4348 beq .L442 4349 ldr r3, .L539+68 4350 ldr r3, [r3] 4351 cmp r3, #0 4352 beq .L442 4353 ldr r3, .L539+72 4354 ldr r3, [r3] 4355 cmp r3, #0 4356 beq .L442 4357 ldr r3, .L539+76 4358 ldr r3, [r3] 4359 cmp r3, #0 4360 beq .L442 4361 ldr r3, .L539+80 4362 ldr r3, [r3] 4363 cmp r3, #0 4364 beq .L442 4365 ldr r3, .L539+84 4366 ldr r3, [r3] 4367 cmp r3, #0 4368 beq .L442 4369 ldr r3, .L539+88 4370 ldr r3, [r3] 4371 cmp r3, #0 4372 beq .L442 4373 ldr r3, .L539+92 4374 ldr r3, [r3] 4375 cmp r3, #0 4376 beq .L442 4377 ldr r3, .L539+96 4378 ldr r3, [r3] 4379 cmp r3, #0 4380 beq .L442 4381 ldr r3, .L539+100 4382 ldr r3, [r3] 4383 cmp r3, #0 4384 beq .L442 4385 ldr r3, .L539+104 4386 ldr r3, [r3] 4387 cmp r3, #0 4388 beq .L442 4389 ldr r3, .L539+108 4390 ldr r3, [r3] 4391 cmp r3, #0 4392 beq .L442 4393 ldr r3, .L539+112 4394 ldr r3, [r3] 4395 cmp r3, #0 4396 beq .L442 4397 movs r0, #0 4398 b .L435 4399.L540: 4400 .align 2 4401.L539: 4402 .word .LANCHOR137 4403 .word .LANCHOR40 4404 .word .LANCHOR17 4405 .word .LANCHOR37 4406 .word .LANCHOR112 4407 .word .LANCHOR113 4408 .word .LANCHOR93 4409 .word .LANCHOR37+56 4410 .word .LANCHOR129 4411 .word .LANCHOR138 4412 .word .LC84 4413 .word .LANCHOR130 4414 .word .LANCHOR134 4415 .word .LANCHOR135 4416 .word .LANCHOR55 4417 .word .LANCHOR136 4418 .word .LANCHOR42 4419 .word .LANCHOR118 4420 .word .LANCHOR119 4421 .word .LANCHOR90 4422 .word .LANCHOR123 4423 .word .LANCHOR124 4424 .word .LANCHOR92 4425 .word .LANCHOR43 4426 .word .LANCHOR126 4427 .word .LANCHOR36 4428 .word .LANCHOR131 4429 .word .LANCHOR132 4430 .word .LANCHOR133 4431 .word .LANCHOR106 4432 .word .LANCHOR115 4433 .word .LANCHOR116 4434 .size FtlMemInit, .-FtlMemInit 4435 .section .text.FtlBbt2Bitmap,"ax",%progbits 4436 .align 1 4437 .global FtlBbt2Bitmap 4438 .syntax unified 4439 .thumb 4440 .thumb_func 4441 .fpu softvfp 4442 .type FtlBbt2Bitmap, %function 4443FtlBbt2Bitmap: 4444 @ args = 0, pretend = 0, frame = 0 4445 @ frame_needed = 0, uses_anonymous_args = 0 4446 ldr r3, .L547 4447 push {r4, r5, r6, r7, r8, lr} 4448 mov r5, r0 4449 ldr r7, .L547+4 4450 mov r6, r1 4451 subs r4, r5, #2 4452 addw r5, r5, #1022 4453 ldrh r2, [r3] 4454 movs r1, #0 4455 ldr r8, .L547+12 4456 mov r0, r6 4457 lsls r2, r2, #2 4458 bl ftl_memset 4459.L544: 4460 ldrh r3, [r4, #2] 4461 movw r2, #65535 4462 cmp r3, r2 4463 beq .L541 4464 ldrh r2, [r7] 4465 cmp r2, r3 4466 bhi .L543 4467 movs r2, #74 4468 mov r1, r8 4469 ldr r0, .L547+8 4470 bl printf 4471.L543: 4472 ldrh r3, [r4, #2]! 4473 movs r2, #1 4474 cmp r5, r4 4475 lsr r1, r3, #5 4476 and r3, r3, #31 4477 lsl r3, r2, r3 4478 ldr r2, [r6, r1, lsl #2] 4479 orr r2, r2, r3 4480 str r2, [r6, r1, lsl #2] 4481 bne .L544 4482.L541: 4483 pop {r4, r5, r6, r7, r8, pc} 4484.L548: 4485 .align 2 4486.L547: 4487 .word .LANCHOR137 4488 .word .LANCHOR17 4489 .word .LC1 4490 .word .LANCHOR139 4491 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 4492 .section .text.FtlBbtMemInit,"ax",%progbits 4493 .align 1 4494 .global FtlBbtMemInit 4495 .syntax unified 4496 .thumb 4497 .thumb_func 4498 .fpu softvfp 4499 .type FtlBbtMemInit, %function 4500FtlBbtMemInit: 4501 @ args = 0, pretend = 0, frame = 0 4502 @ frame_needed = 0, uses_anonymous_args = 0 4503 @ link register save eliminated. 4504 ldr r0, .L550 4505 movw r3, #65535 4506 movs r2, #16 4507 movs r1, #255 4508 strh r3, [r0] @ movhi 4509 movs r3, #0 4510 strh r3, [r0, #6] @ movhi 4511 adds r0, r0, #12 4512 b ftl_memset 4513.L551: 4514 .align 2 4515.L550: 4516 .word .LANCHOR37 4517 .size FtlBbtMemInit, .-FtlBbtMemInit 4518 .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits 4519 .align 1 4520 .global FtlFreeSysBlkQueueInit 4521 .syntax unified 4522 .thumb 4523 .thumb_func 4524 .fpu softvfp 4525 .type FtlFreeSysBlkQueueInit, %function 4526FtlFreeSysBlkQueueInit: 4527 @ args = 0, pretend = 0, frame = 0 4528 @ frame_needed = 0, uses_anonymous_args = 0 4529 ldr r3, .L553 4530 mov r2, #2048 4531 push {r4, lr} 4532 movs r4, #0 4533 mov r1, r4 4534 strh r4, [r3, #2] @ movhi 4535 strh r4, [r3, #4] @ movhi 4536 strh r4, [r3, #6] @ movhi 4537 strh r0, [r3], #8 @ movhi 4538 mov r0, r3 4539 bl ftl_memset 4540 mov r0, r4 4541 pop {r4, pc} 4542.L554: 4543 .align 2 4544.L553: 4545 .word .LANCHOR38 4546 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 4547 .section .text.ftl_free_no_use_map_blk,"ax",%progbits 4548 .align 1 4549 .global ftl_free_no_use_map_blk 4550 .syntax unified 4551 .thumb 4552 .thumb_func 4553 .fpu softvfp 4554 .type ftl_free_no_use_map_blk, %function 4555ftl_free_no_use_map_blk: 4556 @ args = 0, pretend = 0, frame = 8 4557 @ frame_needed = 0, uses_anonymous_args = 0 4558 ldrh r2, [r0, #10] 4559 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 4560 mov r4, r0 4561 ldr r5, [r0, #20] 4562 movs r1, #0 4563 ldr r7, [r0, #12] 4564 lsls r2, r2, #1 4565 ldr r6, [r0, #24] 4566 mov r0, r5 4567 bl ftl_memset 4568 movs r3, #0 4569.L556: 4570 ldrh r1, [r4, #6] 4571 uxth r2, r3 4572 cmp r1, r2 4573 bhi .L560 4574 ldr r3, .L575 4575 movs r6, #0 4576 mov r10, r6 4577 ldrh r2, [r3] 4578 ldrh r3, [r4] 4579 strh r2, [r5, r3, lsl #1] @ movhi 4580 mov r2, r6 4581 ldrh fp, [r5] 4582.L561: 4583 ldrh r3, [r4, #10] 4584 uxth ip, r6 4585 cmp r3, ip 4586 bhi .L565 4587 mov r0, r10 4588 add sp, sp, #8 4589 @ sp needed 4590 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4591.L560: 4592 uxth r2, r3 4593 ldr r1, [r6, r2, lsl #2] 4594 movs r2, #0 4595 ubfx r1, r1, #10, #16 4596.L557: 4597 ldrh ip, [r4, #10] 4598 uxth r0, r2 4599 cmp ip, r0 4600 bhi .L559 4601 adds r3, r3, #1 4602 b .L556 4603.L559: 4604 uxth r0, r2 4605 ldrh ip, [r7, r0, lsl #1] 4606 cmp ip, r1 4607 bne .L558 4608 cbz r1, .L558 4609 ldrh ip, [r5, r0, lsl #1] 4610 add ip, ip, #1 4611 strh ip, [r5, r0, lsl #1] @ movhi 4612.L558: 4613 adds r2, r2, #1 4614 b .L557 4615.L565: 4616 uxth r1, r6 4617 ldrh r3, [r5, r1, lsl #1] 4618 lsl r8, r1, #1 4619 cmp fp, r3 4620 bls .L562 4621 ldrh r0, [r7, r1, lsl #1] 4622 add r8, r8, r7 4623 cbnz r0, .L563 4624.L564: 4625 adds r6, r6, #1 4626 b .L561 4627.L562: 4628 cmp r3, #0 4629 bne .L564 4630 ldrh r0, [r7, r1, lsl #1] 4631 add r8, r8, r7 4632 cmp r0, #0 4633 beq .L564 4634.L566: 4635 movs r1, #1 4636 str r2, [sp, #4] 4637 bl FtlFreeSysBlkQueueIn 4638 ldr r2, [sp, #4] 4639 strh r2, [r8] @ movhi 4640 ldrh r3, [r4, #8] 4641 subs r3, r3, #1 4642 strh r3, [r4, #8] @ movhi 4643 b .L564 4644.L563: 4645 mov r10, ip 4646 mov fp, r3 4647 cmp r3, #0 4648 beq .L566 4649 b .L564 4650.L576: 4651 .align 2 4652.L575: 4653 .word .LANCHOR20 4654 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 4655 .section .text.FtlL2PDataInit,"ax",%progbits 4656 .align 1 4657 .global FtlL2PDataInit 4658 .syntax unified 4659 .thumb 4660 .thumb_func 4661 .fpu softvfp 4662 .type FtlL2PDataInit, %function 4663FtlL2PDataInit: 4664 @ args = 0, pretend = 0, frame = 0 4665 @ frame_needed = 0, uses_anonymous_args = 0 4666 push {r4, r5, r6, r7, r8, lr} 4667 movs r1, #0 4668 ldr r5, .L580 4669 ldr r4, .L580+4 4670 ldr r2, [r5] 4671 ldr r7, .L580+8 4672 ldr r6, .L580+12 4673 ldr r0, [r4] 4674 lsls r2, r2, #1 4675 ldr r8, .L580+44 4676 bl ftl_memset 4677 ldrh r3, [r7] 4678 movs r1, #255 4679 ldrh r2, [r6] 4680 ldr r0, [r8] 4681 muls r2, r3, r2 4682 bl ftl_memset 4683 ldr r3, .L580+16 4684 movw r0, #65535 4685 ldrh r1, [r6] 4686 ldr ip, [r8] 4687 ldr r2, [r3] 4688 movs r3, #12 4689 ldrh r7, [r7] 4690 mla r3, r1, r3, r3 4691 adds r1, r2, r3 4692 movs r3, #0 4693 mov lr, r3 4694.L578: 4695 adds r2, r2, #12 4696 adds r6, r3, r7 4697 cmp r2, r1 4698 bne .L579 4699 ldr r3, .L580+20 4700 ldr r2, [r5] 4701 strh r0, [r3, #2] @ movhi 4702 strh r2, [r3, #10] @ movhi 4703 movw r2, #61634 4704 strh r2, [r3, #4] @ movhi 4705 ldr r2, .L580+24 4706 strh r0, [r3] @ movhi 4707 ldrh r2, [r2] 4708 strh r2, [r3, #8] @ movhi 4709 ldr r2, .L580+28 4710 ldrh r2, [r2] 4711 strh r2, [r3, #6] @ movhi 4712 ldr r2, .L580+32 4713 ldr r2, [r2] 4714 str r2, [r3, #12] 4715 ldr r2, .L580+36 4716 ldr r2, [r2] 4717 str r2, [r3, #16] 4718 ldr r2, [r4] 4719 str r2, [r3, #20] 4720 ldr r2, .L580+40 4721 ldr r2, [r2] 4722 str r2, [r3, #24] 4723 pop {r4, r5, r6, r7, r8, pc} 4724.L579: 4725 bic r3, r3, #3 4726 str lr, [r2, #-8] 4727 add r3, r3, ip 4728 strh r0, [r2, #-12] @ movhi 4729 str r3, [r2, #-4] 4730 mov r3, r6 4731 b .L578 4732.L581: 4733 .align 2 4734.L580: 4735 .word .LANCHOR30 4736 .word .LANCHOR130 4737 .word .LANCHOR23 4738 .word .LANCHOR33 4739 .word .LANCHOR55 4740 .word .LANCHOR140 4741 .word .LANCHOR141 4742 .word .LANCHOR32 4743 .word .LANCHOR129 4744 .word .LANCHOR135 4745 .word .LANCHOR134 4746 .word .LANCHOR136 4747 .size FtlL2PDataInit, .-FtlL2PDataInit 4748 .section .text.FtlVariablesInit,"ax",%progbits 4749 .align 1 4750 .global FtlVariablesInit 4751 .syntax unified 4752 .thumb 4753 .thumb_func 4754 .fpu softvfp 4755 .type FtlVariablesInit, %function 4756FtlVariablesInit: 4757 @ args = 0, pretend = 0, frame = 0 4758 @ frame_needed = 0, uses_anonymous_args = 0 4759 push {r3, r4, r5, lr} 4760 movw r2, #65535 4761 ldr r3, .L583 4762 movs r4, #0 4763 mov r1, r4 4764 ldr r5, .L583+4 4765 strh r2, [r3] @ movhi 4766 mov r2, #-1 4767 ldr r3, .L583+8 4768 str r4, [r3] 4769 ldr r3, .L583+12 4770 str r4, [r3] 4771 ldr r3, .L583+16 4772 str r2, [r3] 4773 ldr r3, .L583+20 4774 strh r4, [r3] @ movhi 4775 ldr r3, .L583+24 4776 ldrh r2, [r3] 4777 ldr r3, .L583+28 4778 lsls r2, r2, #1 4779 ldr r0, [r3] 4780 bl ftl_memset 4781 ldrh r2, [r5] 4782 mov r1, r4 4783 ldr r3, .L583+32 4784 lsls r2, r2, #1 4785 ldr r0, [r3] 4786 bl ftl_memset 4787 ldrh r2, [r5] 4788 mov r1, r4 4789 ldr r3, .L583+36 4790 lsls r2, r2, #1 4791 ldr r0, [r3] 4792 bl ftl_memset 4793 mov r1, r4 4794 movs r2, #48 4795 ldr r0, .L583+40 4796 bl ftl_memset 4797 mov r2, #512 4798 mov r1, r4 4799 ldr r0, .L583+44 4800 bl ftl_memset 4801 bl FtlGcBufInit 4802 bl FtlL2PDataInit 4803 mov r0, r4 4804 pop {r3, r4, r5, pc} 4805.L584: 4806 .align 2 4807.L583: 4808 .word .LANCHOR142 4809 .word .LANCHOR6 4810 .word .LANCHOR143 4811 .word .LANCHOR144 4812 .word .LANCHOR145 4813 .word .LANCHOR35 4814 .word .LANCHOR27 4815 .word .LANCHOR36 4816 .word .LANCHOR43 4817 .word .LANCHOR126 4818 .word .LANCHOR39 4819 .word .LANCHOR81 4820 .size FtlVariablesInit, .-FtlVariablesInit 4821 .section .text.SupperBlkListInit,"ax",%progbits 4822 .align 1 4823 .global SupperBlkListInit 4824 .syntax unified 4825 .thumb 4826 .thumb_func 4827 .fpu softvfp 4828 .type SupperBlkListInit, %function 4829SupperBlkListInit: 4830 @ args = 0, pretend = 0, frame = 16 4831 @ frame_needed = 0, uses_anonymous_args = 0 4832 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 4833 movs r2, #6 4834 ldr r3, .L596 4835 movs r1, #0 4836 movs r4, #0 4837 ldr r6, .L596+4 4838 mov r8, r4 4839 ldrh r3, [r3] 4840 mov r5, r4 4841 ldr r0, [r6] 4842 mov r10, r6 4843 muls r2, r3, r2 4844 bl ftl_memset 4845 ldr r3, .L596+8 4846 ldr r2, .L596+12 4847 str r4, [r3] 4848 ldr r3, .L596+16 4849 strh r4, [r2] @ movhi 4850 str r2, [sp, #4] 4851 str r4, [r3] 4852 ldr r3, .L596+20 4853 str r4, [r3] 4854 ldr r3, .L596+24 4855 mov fp, r3 4856 strh r4, [r3] @ movhi 4857.L586: 4858 ldr r3, .L596+28 4859 uxth r7, r4 4860 ldrh r3, [r3] 4861 cmp r7, r3 4862 bcs .L593 4863 ldr r3, .L596+32 4864 ldrh r2, [r3] 4865 ldr r3, .L596+36 4866 ldrh r3, [r3] 4867 str r3, [sp] 4868 movs r3, #0 4869 mov r6, r3 4870 b .L594 4871.L588: 4872 str r2, [sp, #12] 4873 mov r1, r7 4874 ldr r2, .L596+40 4875 str r3, [sp, #8] 4876 ldrb r0, [r2, r3] @ zero_extendqisi2 4877 bl V2P_block 4878 bl FtlBbmIsBadBlock 4879 ldr r3, [sp, #8] 4880 ldr r2, [sp, #12] 4881 cbnz r0, .L587 4882 ldr r1, [sp] 4883 add r6, r6, r1 4884 uxth r6, r6 4885.L587: 4886 adds r3, r3, #1 4887.L594: 4888 uxth r1, r3 4889 cmp r2, r1 4890 bhi .L588 4891 uxth r3, r4 4892 cbz r6, .L589 4893 mov r1, r6 4894 str r3, [sp] 4895 mov r0, #32768 4896 bl __aeabi_idiv 4897 ldr r3, [sp] 4898 uxth r6, r0 4899.L590: 4900 ldr r1, [r10] 4901 movs r2, #6 4902 mla r2, r2, r3, r1 4903 strh r6, [r2, #4] @ movhi 4904 ldr r2, .L596+44 4905 ldrh r2, [r2] 4906 cmp r2, r7 4907 beq .L591 4908 ldr r2, .L596+48 4909 ldrh r2, [r2] 4910 cmp r2, r7 4911 beq .L591 4912 ldr r2, .L596+52 4913 ldrh r2, [r2] 4914 cmp r2, r7 4915 beq .L591 4916 ldr r2, .L596+56 4917 ldr r2, [r2] 4918 ldrh r3, [r2, r3, lsl #1] 4919 cbnz r3, .L592 4920 add r8, r8, #1 4921 mov r0, r7 4922 uxth r8, r8 4923 bl INSERT_FREE_LIST 4924.L591: 4925 adds r4, r4, #1 4926 b .L586 4927.L589: 4928 ldr r2, .L596+56 4929 movw r1, #65535 4930 ldr r2, [r2] 4931 strh r1, [r2, r3, lsl #1] @ movhi 4932 b .L590 4933.L592: 4934 adds r5, r5, #1 4935 mov r0, r7 4936 uxth r5, r5 4937 bl INSERT_DATA_LIST 4938 b .L591 4939.L593: 4940 ldr r2, [sp, #4] 4941 strh r8, [fp] @ movhi 4942 strh r5, [r2] @ movhi 4943 add r5, r5, r8 4944 cmp r5, r3 4945 ble .L595 4946 movw r2, #2170 4947 ldr r1, .L596+60 4948 ldr r0, .L596+64 4949 bl printf 4950.L595: 4951 movs r0, #0 4952 add sp, sp, #16 4953 @ sp needed 4954 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4955.L597: 4956 .align 2 4957.L596: 4958 .word .LANCHOR6 4959 .word .LANCHOR40 4960 .word .LANCHOR47 4961 .word .LANCHOR45 4962 .word .LANCHOR41 4963 .word .LANCHOR44 4964 .word .LANCHOR48 4965 .word .LANCHOR5 4966 .word .LANCHOR3 4967 .word .LANCHOR19 4968 .word .LANCHOR13 4969 .word .LANCHOR51 4970 .word .LANCHOR52 4971 .word .LANCHOR53 4972 .word .LANCHOR42 4973 .word .LANCHOR146 4974 .word .LC1 4975 .size SupperBlkListInit, .-SupperBlkListInit 4976 .section .text.FtlGcPageVarInit,"ax",%progbits 4977 .align 1 4978 .global FtlGcPageVarInit 4979 .syntax unified 4980 .thumb 4981 .thumb_func 4982 .fpu softvfp 4983 .type FtlGcPageVarInit, %function 4984FtlGcPageVarInit: 4985 @ args = 0, pretend = 0, frame = 0 4986 @ frame_needed = 0, uses_anonymous_args = 0 4987 ldr r2, .L599 4988 movs r3, #0 4989 push {r4, lr} 4990 movs r1, #255 4991 ldr r4, .L599+4 4992 strh r3, [r2] @ movhi 4993 ldr r2, .L599+8 4994 strh r3, [r2] @ movhi 4995 ldrh r2, [r4] 4996 ldr r3, .L599+12 4997 lsls r2, r2, #1 4998 ldr r0, [r3] 4999 bl ftl_memset 5000 ldrh r3, [r4] 5001 movs r2, #12 5002 movs r1, #255 5003 muls r2, r3, r2 5004 ldr r3, .L599+16 5005 ldr r0, [r3] 5006 bl ftl_memset 5007 pop {r4, lr} 5008 b FtlGcBufInit 5009.L600: 5010 .align 2 5011.L599: 5012 .word .LANCHOR96 5013 .word .LANCHOR21 5014 .word .LANCHOR97 5015 .word .LANCHOR95 5016 .word .LANCHOR98 5017 .size FtlGcPageVarInit, .-FtlGcPageVarInit 5018 .section .text.FlashGetBadBlockList,"ax",%progbits 5019 .align 1 5020 .global FlashGetBadBlockList 5021 .syntax unified 5022 .thumb 5023 .thumb_func 5024 .fpu softvfp 5025 .type FlashGetBadBlockList, %function 5026FlashGetBadBlockList: 5027 @ args = 0, pretend = 0, frame = 0 5028 @ frame_needed = 0, uses_anonymous_args = 0 5029 push {r3, r4, r5, lr} 5030 mov r2, #256 5031 mov r5, r1 5032 movs r1, #255 5033 mov r4, r0 5034 bl ftl_memset 5035 ldr r3, .L608 5036 mov r1, r5 5037 mov r0, r4 5038 ldr r3, [r3] 5039 blx r3 5040 uxth r0, r0 5041 cmp r0, #50 5042 bls .L602 5043 mov r2, #256 5044 movs r1, #255 5045 mov r0, r4 5046 bl ftl_memset 5047 movs r0, #0 5048.L602: 5049 ldr r3, .L608+4 5050 ldrh r3, [r3, #14] 5051 cmp r3, #4 5052 bne .L607 5053 add r1, r4, r0, lsl #1 5054 mov r3, r4 5055.L604: 5056 cmp r3, r1 5057 bne .L605 5058.L607: 5059 pop {r3, r4, r5, pc} 5060.L605: 5061 ldrh r2, [r3] 5062 lsrs r2, r2, #1 5063 strh r2, [r3], #2 @ movhi 5064 b .L604 5065.L609: 5066 .align 2 5067.L608: 5068 .word .LANCHOR105 5069 .word .LANCHOR0 5070 .size FlashGetBadBlockList, .-FlashGetBadBlockList 5071 .section .text.ftl_memcpy,"ax",%progbits 5072 .align 1 5073 .global ftl_memcpy 5074 .syntax unified 5075 .thumb 5076 .thumb_func 5077 .fpu softvfp 5078 .type ftl_memcpy, %function 5079ftl_memcpy: 5080 @ args = 0, pretend = 0, frame = 0 5081 @ frame_needed = 0, uses_anonymous_args = 0 5082 @ link register save eliminated. 5083 b memcpy 5084 .size ftl_memcpy, .-ftl_memcpy 5085 .section .text.FlashReadPages,"ax",%progbits 5086 .align 1 5087 .global FlashReadPages 5088 .syntax unified 5089 .thumb 5090 .thumb_func 5091 .fpu softvfp 5092 .type FlashReadPages, %function 5093FlashReadPages: 5094 @ args = 0, pretend = 0, frame = 16 5095 @ frame_needed = 0, uses_anonymous_args = 0 5096 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 5097 mov fp, r1 5098 ldr r3, .L639 5099 mov r4, r0 5100 mov r10, #0 5101 ldrh r2, [r3, #12] 5102 str r3, [sp, #4] 5103 str r2, [sp] 5104.L612: 5105 cmp r10, fp 5106 bne .L623 5107 movs r0, #0 5108 add sp, sp, #16 5109 @ sp needed 5110 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5111.L623: 5112 ldr r3, [r4, #8] 5113 cbz r3, .L613 5114 ldr r3, [r4, #12] 5115 cbnz r3, .L614 5116.L613: 5117 movs r2, #90 5118 ldr r1, .L639+4 5119 ldr r0, .L639+8 5120 bl printf 5121.L614: 5122 add r2, sp, #8 5123 add r1, sp, #12 5124 ldr r0, [r4, #4] 5125 bl l2p_addr_tran.isra.0 5126 ldr r0, [sp, #8] 5127 cmp r0, #3 5128 bls .L615 5129 mov r3, #-1 5130 str r3, [r4] 5131.L616: 5132 add r10, r10, #1 5133 adds r4, r4, #20 5134 b .L612 5135.L615: 5136 ldr r5, [r4, #8] 5137 uxtb r0, r0 5138 ldr r8, .L639+20 5139 ldr r7, .L639+12 5140 tst r5, #63 5141 ldr r3, [r4, #12] 5142 it ne 5143 ldrne r5, [r8] 5144 ldr r1, [sp, #12] 5145 ldr r6, [r7, #12] 5146 mov r2, r5 5147 blx r6 5148 ldr r3, [sp, #4] 5149 str r0, [r4] 5150 ldrh r3, [r3, #14] 5151 cmp r3, #4 5152 bne .L619 5153 ldr r0, [sp] 5154 add r2, r5, #2048 5155 ldr r3, [r4, #12] 5156 ldr r1, [sp, #12] 5157 ldr r7, [r7, #12] 5158 adds r3, r3, #8 5159 add r1, r1, r0 5160 ldrb r0, [sp, #8] @ zero_extendqisi2 5161 blx r7 5162 adds r3, r0, #1 5163 beq .L620 5164 ldr r3, [r4, #12] 5165 ldr r2, [r3, #12] 5166 adds r2, r2, #1 5167 bne .L621 5168 ldr r2, [r3, #8] 5169 adds r2, r2, #1 5170 bne .L621 5171 ldr r3, [r3] 5172 adds r3, r3, #1 5173 beq .L621 5174.L620: 5175 mov r3, #-1 5176 str r3, [r4] 5177.L621: 5178 ldr r3, [r4] 5179 adds r3, r3, #1 5180 beq .L619 5181 cmp r0, #256 5182 it eq 5183 streq r0, [r4] 5184.L619: 5185 ldr r3, [r8] 5186 cmp r5, r3 5187 bne .L616 5188 ldr r0, [r4, #8] 5189 cmp r5, r0 5190 beq .L616 5191 ldr r3, .L639+16 5192 mov r1, r5 5193 ldrh r2, [r3] 5194 lsls r2, r2, #9 5195 bl ftl_memcpy 5196 b .L616 5197.L640: 5198 .align 2 5199.L639: 5200 .word .LANCHOR0 5201 .word .LANCHOR147 5202 .word .LC1 5203 .word .LANCHOR105 5204 .word .LANCHOR12 5205 .word .LANCHOR120 5206 .size FlashReadPages, .-FlashReadPages 5207 .section .text.FtlLoadFactoryBbt,"ax",%progbits 5208 .align 1 5209 .global FtlLoadFactoryBbt 5210 .syntax unified 5211 .thumb 5212 .thumb_func 5213 .fpu softvfp 5214 .type FtlLoadFactoryBbt, %function 5215FtlLoadFactoryBbt: 5216 @ args = 0, pretend = 0, frame = 0 5217 @ frame_needed = 0, uses_anonymous_args = 0 5218 ldr r3, .L651 5219 push {r4, r5, r6, r7, r8, r10, fp, lr} 5220 movs r6, #0 5221 ldr r5, .L651+4 5222 ldr r3, [r3] 5223 ldr r7, .L651+8 5224 ldr r10, .L651+20 5225 str r3, [r5, #8] 5226 ldr r3, .L651+12 5227 ldr r8, [r3] 5228 str r8, [r5, #12] 5229.L642: 5230 ldr r3, .L651+16 5231 ldrh r3, [r3] 5232 cmp r6, r3 5233 bcc .L647 5234 movs r0, #0 5235 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5236.L647: 5237 ldrh r4, [r10] 5238 movw r3, #65535 5239 ldr fp, .L651+4 5240 strh r3, [r7, #2]! @ movhi 5241 subs r4, r4, #1 5242 uxth r4, r4 5243.L643: 5244 ldrh r3, [r10] 5245 sub r2, r3, #15 5246 cmp r2, r4 5247 bgt .L645 5248 mla r3, r6, r3, r4 5249 movs r2, #1 5250 mov r1, r2 5251 mov r0, fp 5252 lsls r3, r3, #10 5253 str r3, [r5, #4] 5254 bl FlashReadPages 5255 ldr r3, [r5] 5256 adds r3, r3, #1 5257 beq .L644 5258 ldrh r2, [r8] 5259 movw r3, #61664 5260 cmp r2, r3 5261 bne .L644 5262 strh r4, [r7] @ movhi 5263.L645: 5264 adds r6, r6, #1 5265 b .L642 5266.L644: 5267 subs r4, r4, #1 5268 uxth r4, r4 5269 b .L643 5270.L652: 5271 .align 2 5272.L651: 5273 .word .LANCHOR115 5274 .word .LANCHOR148 5275 .word .LANCHOR37+10 5276 .word .LANCHOR123 5277 .word .LANCHOR10 5278 .word .LANCHOR17 5279 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 5280 .section .text.FtlGetLastWrittenPage,"ax",%progbits 5281 .align 1 5282 .global FtlGetLastWrittenPage 5283 .syntax unified 5284 .thumb 5285 .thumb_func 5286 .fpu softvfp 5287 .type FtlGetLastWrittenPage, %function 5288FtlGetLastWrittenPage: 5289 @ args = 0, pretend = 0, frame = 88 5290 @ frame_needed = 0, uses_anonymous_args = 0 5291 cmp r1, #1 5292 push {r4, r5, r6, r7, r8, lr} 5293 it eq 5294 ldreq r3, .L665 5295 sub sp, sp, #88 5296 lsl r7, r0, #10 5297 mov r2, r1 5298 it ne 5299 ldrne r3, .L665+4 5300 mov r6, r1 5301 add r0, sp, #4 5302 movs r1, #1 5303 ldrh r5, [r3] 5304 ldr r3, .L665+8 5305 subs r5, r5, #1 5306 ldr r3, [r3] 5307 sxth r5, r5 5308 str r3, [sp, #12] 5309 add r3, sp, #24 5310 str r3, [sp, #16] 5311 orr r3, r5, r7 5312 str r3, [sp, #8] 5313 bl FlashReadPages 5314 ldr r3, [sp, #24] 5315 adds r3, r3, #1 5316 bne .L656 5317 mov r8, #0 5318.L657: 5319 cmp r8, r5 5320 ble .L660 5321.L656: 5322 mov r0, r5 5323 add sp, sp, #88 5324 @ sp needed 5325 pop {r4, r5, r6, r7, r8, pc} 5326.L660: 5327 add r3, r8, r5 5328 mov r2, r6 5329 add r3, r3, r3, lsr #31 5330 movs r1, #1 5331 add r0, sp, #4 5332 asrs r4, r3, #1 5333 sxth r3, r4 5334 orrs r3, r3, r7 5335 str r3, [sp, #8] 5336 bl FlashReadPages 5337 ldr r3, [sp, #24] 5338 adds r3, r3, #1 5339 bne .L658 5340 ldr r3, [sp, #28] 5341 adds r3, r3, #1 5342 bne .L658 5343 ldr r3, [sp, #4] 5344 adds r3, r3, #1 5345 beq .L658 5346 subs r4, r4, #1 5347 sxth r5, r4 5348 b .L657 5349.L658: 5350 adds r4, r4, #1 5351 sxth r8, r4 5352 b .L657 5353.L666: 5354 .align 2 5355.L665: 5356 .word .LANCHOR20 5357 .word .LANCHOR19 5358 .word .LANCHOR121 5359 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 5360 .section .text.FtlScanSysBlk,"ax",%progbits 5361 .align 1 5362 .global FtlScanSysBlk 5363 .syntax unified 5364 .thumb 5365 .thumb_func 5366 .fpu softvfp 5367 .type FtlScanSysBlk, %function 5368FtlScanSysBlk: 5369 @ args = 0, pretend = 0, frame = 32 5370 @ frame_needed = 0, uses_anonymous_args = 0 5371 push {r4, r5, r6, r7, r8, r10, fp, lr} 5372 movs r4, #0 5373 ldr r5, .L748 5374 sub sp, sp, #32 5375 mov r1, r4 5376 ldr r3, .L748+4 5377 ldr r2, [r5] 5378 ldr r6, .L748+8 5379 strh r4, [r3] @ movhi 5380 ldr r3, .L748+12 5381 lsls r2, r2, #2 5382 strh r4, [r6] @ movhi 5383 ldr r7, .L748+16 5384 ldr r0, [r3] 5385 bl ftl_memset 5386 ldr r2, [r5] 5387 mov r1, r4 5388 ldr r3, .L748+20 5389 lsls r2, r2, #1 5390 ldr r0, [r3] 5391 bl ftl_memset 5392 ldrh r2, [r7] 5393 mov r1, r4 5394 ldr r3, .L748+24 5395 lsls r2, r2, #2 5396 ldr r0, [r3] 5397 bl ftl_memset 5398 ldrh r2, [r7] 5399 mov r1, r4 5400 ldr r3, .L748+28 5401 lsls r2, r2, #1 5402 ldr r0, [r3] 5403 bl ftl_memset 5404 movs r2, #12 5405 movs r1, #255 5406 ldr r0, .L748+32 5407 bl ftl_memset 5408 ldr r3, .L748+36 5409 str r6, [sp, #12] 5410 str r5, [sp, #16] 5411 ldrh r3, [r3] 5412 str r3, [sp, #4] 5413.L668: 5414 ldr r3, .L748+40 5415 ldr r2, [sp, #4] 5416 ldrh r3, [r3] 5417 cmp r3, r2 5418 bls .L709 5419 ldr r3, .L748+44 5420 movs r5, #0 5421 ldr r1, .L748+48 5422 mov fp, r5 5423 movs r7, #20 5424 ldrh r8, [r3] 5425 ldr r3, .L748+52 5426 ldr r2, [r1] 5427 ldr r1, .L748+56 5428 ldr r6, [r3] 5429 ldr r3, .L748+60 5430 str r2, [sp, #8] 5431 ldrh r10, [r1] 5432 ldr r3, [r3] 5433 ldr r2, .L748+64 5434 b .L710 5435.L670: 5436 ldrb r0, [r2, r5] @ zero_extendqisi2 5437 ldr r1, [sp, #4] 5438 str r3, [sp, #28] 5439 str r2, [sp, #24] 5440 bl V2P_block 5441 str r0, [sp, #20] 5442 bl FtlBbmIsBadBlock 5443 ldr r2, [sp, #24] 5444 ldr r3, [sp, #28] 5445 cbnz r0, .L669 5446 ldr r1, [sp, #20] 5447 mla r0, r7, fp, r6 5448 ldr r4, [sp, #8] 5449 lsls r1, r1, #10 5450 str r3, [r0, #8] 5451 str r1, [r0, #4] 5452 mul r1, r10, fp 5453 bic r1, r1, #3 5454 add r1, r1, r4 5455 str r1, [r0, #12] 5456 add r1, fp, #1 5457 uxth fp, r1 5458.L669: 5459 adds r5, r5, #1 5460.L710: 5461 uxth r1, r5 5462 cmp r8, r1 5463 bhi .L670 5464 cmp fp, #0 5465 bne .L671 5466.L708: 5467 ldr r3, [sp, #4] 5468 adds r3, r3, #1 5469 uxth r3, r3 5470 str r3, [sp, #4] 5471 b .L668 5472.L671: 5473 movs r7, #0 5474 movs r2, #1 5475 mov r1, fp 5476 mov r0, r6 5477 bl FlashReadPages 5478.L672: 5479 uxth r3, r7 5480 cmp fp, r3 5481 bls .L708 5482 ldr r3, .L748+52 5483 mov r8, #20 5484 mul r8, r8, r7 5485 ldr r3, [r3] 5486 add r2, r3, r8 5487 ldr r3, [r3, r8] 5488 ldr r5, [r2, #4] 5489 ldr r6, [r2, #12] 5490 adds r3, r3, #1 5491 ubfx r5, r5, #10, #16 5492 bne .L675 5493 mov r10, #16 5494.L677: 5495 ldr r3, .L748+52 5496 movs r2, #1 5497 mov r1, r2 5498 ldr r0, [r3] 5499 add r0, r0, r8 5500 ldr r3, [r0, #4] 5501 adds r3, r3, #1 5502 str r3, [r0, #4] 5503 bl FlashReadPages 5504 ldrh r2, [r6] 5505 movw r3, #65535 5506 cmp r2, r3 5507 ldr r3, .L748+52 5508 ldr r3, [r3] 5509 bne .L674 5510 mov r2, #-1 5511 str r2, [r3, r8] 5512 ldr r3, .L748+52 5513 ldr r3, [r3] 5514 ldr r3, [r3, r8] 5515 cmp r3, r2 5516 bne .L675 5517.L676: 5518 movs r1, #1 5519 b .L747 5520.L674: 5521 ldr r3, [r3, r8] 5522 adds r3, r3, #1 5523 bne .L675 5524 add r10, r10, #-1 5525 uxth r10, r10 5526 cmp r10, #0 5527 bne .L677 5528 b .L676 5529.L675: 5530 ldr r3, .L748+68 5531 ldr r2, [r3] 5532 ldr r3, [r6, #4] 5533 adds r1, r2, #1 5534 beq .L678 5535 cmp r2, r3 5536 bhi .L679 5537.L678: 5538 adds r2, r3, #1 5539 ittt ne 5540 ldrne r1, .L748+68 5541 addne r2, r3, #1 5542 strne r2, [r1] 5543.L679: 5544 ldrh r2, [r6] 5545 movw r1, #61604 5546 cmp r2, r1 5547 beq .L681 5548 bhi .L682 5549 movw r3, #61574 5550 cmp r2, r3 5551 beq .L683 5552.L680: 5553 adds r7, r7, #1 5554 b .L672 5555.L682: 5556 movw r3, #61634 5557 cmp r2, r3 5558 beq .L684 5559 movw r3, #65535 5560 cmp r2, r3 5561 bne .L680 5562 movs r1, #0 5563.L747: 5564 mov r0, r5 5565 bl FtlFreeSysBlkQueueIn 5566 b .L680 5567.L684: 5568 ldr r3, .L748+8 5569 ldrh r2, [r3] 5570 ldr r3, .L748 5571 ldr r3, [r3] 5572 cmp r2, r3 5573 bls .L686 5574 movw r2, #1222 5575 ldr r1, .L748+72 5576 ldr r0, .L748+76 5577 bl printf 5578.L686: 5579 ldr r3, [sp, #16] 5580 ldr r2, [sp, #12] 5581 ldr r1, [r3] 5582 ldrh r0, [r2] 5583 ldr r2, .L748+12 5584 uxth r10, r1 5585 ldr ip, [r2] 5586 add r3, r10, #-1 5587 sub r10, r10, r0 5588 add r10, r10, #-1 5589 sxth r3, r3 5590 sxth r10, r10 5591.L687: 5592 cmp r3, r10 5593 bgt .L693 5594 cmp r3, #0 5595 bge .L725 5596 b .L680 5597.L693: 5598 ldr r2, [ip, r3, lsl #2] 5599 add r8, ip, r3, lsl #2 5600 ldr r4, [r6, #4] 5601 cmp r4, r2 5602 bls .L688 5603 ldr r2, [ip] 5604 cbnz r2, .L689 5605 cmp r1, r0 5606 ittt ne 5607 ldrne r2, .L748+8 5608 addne r0, r0, #1 5609 strhne r0, [r2] @ movhi 5610.L689: 5611 ldr r2, .L748+20 5612 uxth r10, r3 5613 ldr r0, [r2] 5614 movs r2, #0 5615.L690: 5616 uxth lr, r2 5617 sxth r1, r2 5618 cmp r10, lr 5619 bhi .L691 5620 ldr r2, [r6, #4] 5621 cmp r3, #0 5622 str r2, [r8] 5623 strh r5, [r0, r3, lsl #1] @ movhi 5624 blt .L680 5625 ldr r2, .L748+8 5626 ldrh r0, [r2] 5627 ldr r2, .L748 5628 ldr r2, [r2] 5629 subs r2, r2, r0 5630 subs r2, r2, #1 5631 sxth r2, r2 5632 cmp r3, r2 5633 bgt .L680 5634.L725: 5635 ldr r2, .L748+8 5636 adds r0, r0, #1 5637 strh r0, [r2] @ movhi 5638 ldr r2, [r6, #4] 5639 str r2, [ip, r3, lsl #2] 5640 ldr r2, .L748+20 5641.L745: 5642 ldr r2, [r2] 5643 strh r5, [r2, r3, lsl #1] @ movhi 5644 b .L680 5645.L691: 5646 add lr, ip, r1, lsl #2 5647 adds r2, r2, #1 5648 ldr r4, [lr, #4] 5649 add lr, r0, r1, lsl #1 5650 ldrh lr, [lr, #2] 5651 str r4, [ip, r1, lsl #2] 5652 strh lr, [r0, r1, lsl #1] @ movhi 5653 b .L690 5654.L688: 5655 subs r3, r3, #1 5656 sxth r3, r3 5657 b .L687 5658.L749: 5659 .align 2 5660.L748: 5661 .word .LANCHOR30 5662 .word .LANCHOR35 5663 .word .LANCHOR141 5664 .word .LANCHOR135 5665 .word .LANCHOR27 5666 .word .LANCHOR129 5667 .word .LANCHOR132 5668 .word .LANCHOR36 5669 .word .LANCHOR79 5670 .word .LANCHOR5 5671 .word .LANCHOR6 5672 .word .LANCHOR3 5673 .word .LANCHOR92 5674 .word .LANCHOR112 5675 .word .LANCHOR24 5676 .word .LANCHOR91 5677 .word .LANCHOR13 5678 .word .LANCHOR70 5679 .word .LANCHOR149 5680 .word .LC1 5681.L683: 5682 ldr r8, .L750+12 5683 ldr r10, .L750+20 5684 ldrh r2, [r8] 5685 ldrh r3, [r10] 5686 cmp r2, r3 5687 bls .L696 5688 movw r2, #1263 5689 ldr r1, .L750 5690 ldr r0, .L750+4 5691 bl printf 5692.L696: 5693 ldr r2, .L750+8 5694 ldrh lr, [r10] 5695 ldrh ip, [r8] 5696 ldr r0, [r2] 5697 add r10, lr, #-1 5698 sxth r3, r10 5699 sub r10, r10, ip 5700.L697: 5701 cmp r3, r10 5702 ble .L702 5703 ldr r1, [r6, #4] 5704 add r8, r0, r3, lsl #2 5705 ldr r2, [r0, r3, lsl #2] 5706 cmp r1, r2 5707 bls .L698 5708 ldr r2, [r0] 5709 cbnz r2, .L699 5710 cmp lr, ip 5711 ittt ne 5712 ldrne r2, .L750+12 5713 addne ip, ip, #1 5714 strhne ip, [r2] @ movhi 5715.L699: 5716 ldr r2, .L750+16 5717 uxth r10, r3 5718 ldr ip, [r2] 5719 movs r2, #0 5720.L700: 5721 uxth lr, r2 5722 sxth r1, r2 5723 cmp r10, lr 5724 bhi .L701 5725 ldr r2, [r6, #4] 5726 str r2, [r8] 5727 strh r5, [ip, r3, lsl #1] @ movhi 5728.L702: 5729 cmp r3, #0 5730 blt .L680 5731 ldr r2, .L750+20 5732 ldr ip, .L750+12 5733 ldrh r2, [r2] 5734 ldrh r1, [ip] 5735 subs r2, r2, #1 5736 subs r2, r2, r1 5737 sxth r2, r2 5738 cmp r3, r2 5739 bgt .L680 5740 ldr r2, [r6, #4] 5741 adds r1, r1, #1 5742 strh r1, [ip] @ movhi 5743 str r2, [r0, r3, lsl #2] 5744 ldr r2, .L750+16 5745 b .L745 5746.L701: 5747 add lr, r0, r1, lsl #2 5748 adds r2, r2, #1 5749 ldr r4, [lr, #4] 5750 add lr, ip, r1, lsl #1 5751 ldrh lr, [lr, #2] 5752 str r4, [r0, r1, lsl #2] 5753 strh lr, [ip, r1, lsl #1] @ movhi 5754 b .L700 5755.L698: 5756 subs r3, r3, #1 5757 sxth r3, r3 5758 b .L697 5759.L681: 5760 ldr r8, .L750+40 5761 movw r2, #65535 5762 ldrh r1, [r8] 5763 cmp r1, r2 5764 bne .L704 5765.L746: 5766 strh r5, [r8] @ movhi 5767 str r3, [r8, #8] 5768 b .L680 5769.L704: 5770 ldrh r0, [r8, #4] 5771 cmp r0, r2 5772 beq .L705 5773 movs r1, #1 5774 bl FtlFreeSysBlkQueueIn 5775.L705: 5776 ldr r3, [r6, #4] 5777 ldr r2, [r8, #8] 5778 cmp r2, r3 5779 bcs .L706 5780 ldrh r2, [r8] 5781 strh r2, [r8, #4] @ movhi 5782 b .L746 5783.L706: 5784 strh r5, [r8, #4] @ movhi 5785 b .L680 5786.L709: 5787 ldr r3, .L750+24 5788 ldr r2, [r3] 5789 ldrh r3, [r2] 5790 cbz r3, .L711 5791.L714: 5792 ldr r3, .L750+16 5793 ldr r4, [r3] 5794 ldrh r2, [r4] 5795 cmp r2, #0 5796 beq .L712 5797.L713: 5798 ldr r3, .L750+28 5799 ldrh r2, [r3] 5800 ldr r3, .L750+32 5801 ldr r3, [r3] 5802 cmp r2, r3 5803 bls .L744 5804 movw r2, #1388 5805 ldr r1, .L750 5806 ldr r0, .L750+4 5807 bl printf 5808.L744: 5809 movs r0, #0 5810 add sp, sp, #32 5811 @ sp needed 5812 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5813.L711: 5814 ldr r1, .L750+28 5815 ldrh r1, [r1] 5816 cmp r1, #0 5817 beq .L714 5818 ldr r5, .L750+32 5819 ldr r0, [r5] 5820.L715: 5821 sxth r1, r3 5822 cmp r1, r0 5823 bcs .L714 5824 ldrh r4, [r2, r1, lsl #1] 5825 adds r3, r3, #1 5826 cmp r4, #0 5827 beq .L715 5828 ldr r3, .L750+36 5829 movs r6, #0 5830 ldr r0, [r3] 5831 mov r3, r1 5832.L716: 5833 ldr r4, [r5] 5834 cmp r3, r4 5835 bcs .L714 5836 ldrh r7, [r2, r3, lsl #1] 5837 subs r4, r3, r1 5838 strh r7, [r2, r4, lsl #1] @ movhi 5839 ldr r7, [r0, r3, lsl #2] 5840 str r7, [r0, r4, lsl #2] 5841 strh r6, [r2, r3, lsl #1] @ movhi 5842 adds r3, r3, #1 5843 sxth r3, r3 5844 b .L716 5845.L712: 5846 ldr r3, .L750+12 5847 ldrh r3, [r3] 5848 cmp r3, #0 5849 beq .L713 5850 ldr r5, .L750+20 5851 ldrh r1, [r5] 5852.L721: 5853 sxth r3, r2 5854 cmp r3, r1 5855 mov r6, r3 5856 bge .L713 5857 ldrh r0, [r4, r3, lsl #1] 5858 adds r2, r2, #1 5859 cmp r0, #0 5860 beq .L721 5861 ldr r2, .L750+8 5862 movs r0, #0 5863 ldr r2, [r2] 5864.L722: 5865 ldrh r1, [r5] 5866 cmp r3, r1 5867 bge .L713 5868 ldrh r7, [r4, r3, lsl #1] 5869 subs r1, r3, r6 5870 strh r7, [r4, r1, lsl #1] @ movhi 5871 ldr r7, [r2, r3, lsl #2] 5872 str r7, [r2, r1, lsl #2] 5873 adds r1, r3, #1 5874 strh r0, [r4, r3, lsl #1] @ movhi 5875 sxth r3, r1 5876 b .L722 5877.L751: 5878 .align 2 5879.L750: 5880 .word .LANCHOR149 5881 .word .LC1 5882 .word .LANCHOR132 5883 .word .LANCHOR35 5884 .word .LANCHOR36 5885 .word .LANCHOR27 5886 .word .LANCHOR129 5887 .word .LANCHOR141 5888 .word .LANCHOR30 5889 .word .LANCHOR135 5890 .word .LANCHOR79 5891 .size FtlScanSysBlk, .-FtlScanSysBlk 5892 .section .text.FtlLoadBbt,"ax",%progbits 5893 .align 1 5894 .global FtlLoadBbt 5895 .syntax unified 5896 .thumb 5897 .thumb_func 5898 .fpu softvfp 5899 .type FtlLoadBbt, %function 5900FtlLoadBbt: 5901 @ args = 0, pretend = 0, frame = 0 5902 @ frame_needed = 0, uses_anonymous_args = 0 5903 push {r3, r4, r5, r6, r7, r8, r10, lr} 5904 ldr r8, .L781+40 5905 ldr r4, .L781 5906 ldr r3, [r8] 5907 ldr r7, .L781+4 5908 mov r10, r4 5909 str r3, [r4, #8] 5910 ldr r3, .L781+8 5911 ldr r6, [r3] 5912 str r6, [r4, #12] 5913 bl FtlBbtMemInit 5914 ldrh r5, [r7] 5915 subs r5, r5, #1 5916 uxth r5, r5 5917.L753: 5918 ldrh r3, [r7] 5919 subs r3, r3, #15 5920 cmp r3, r5 5921 bgt .L756 5922 lsls r3, r5, #10 5923 movs r2, #1 5924 mov r1, r2 5925 mov r0, r10 5926 str r3, [r4, #4] 5927 bl FlashReadPages 5928 ldr r3, [r4] 5929 adds r3, r3, #1 5930 bne .L754 5931 ldr r3, [r4, #4] 5932 movs r2, #1 5933 mov r1, r2 5934 mov r0, r10 5935 adds r3, r3, #1 5936 str r3, [r4, #4] 5937 bl FlashReadPages 5938.L754: 5939 ldr r3, [r4] 5940 adds r3, r3, #1 5941 beq .L755 5942 ldrh r2, [r6] 5943 movw r3, #61649 5944 cmp r2, r3 5945 bne .L755 5946 ldr r3, .L781+12 5947 ldr r2, [r6, #4] 5948 strh r5, [r3] @ movhi 5949 str r2, [r3, #8] 5950 ldrh r2, [r6, #8] 5951 strh r2, [r3, #4] @ movhi 5952.L756: 5953 ldr r5, .L781+12 5954 movw r2, #65535 5955 ldrh r3, [r5] 5956 cmp r3, r2 5957 beq .L770 5958 ldrh r3, [r5, #4] 5959 cmp r3, r2 5960 beq .L760 5961 lsls r3, r3, #10 5962 movs r2, #1 5963 mov r1, r2 5964 ldr r0, .L781 5965 str r3, [r4, #4] 5966 bl FlashReadPages 5967 ldr r3, [r4] 5968 adds r3, r3, #1 5969 beq .L760 5970 ldrh r2, [r6] 5971 movw r3, #61649 5972 cmp r2, r3 5973 bne .L760 5974 ldr r3, [r6, #4] 5975 ldr r2, [r5, #8] 5976 cmp r3, r2 5977 bls .L760 5978 ldrh r2, [r5, #4] 5979 str r3, [r5, #8] 5980 ldrh r3, [r6, #8] 5981 strh r2, [r5] @ movhi 5982 strh r3, [r5, #4] @ movhi 5983.L760: 5984 ldr r10, .L781 5985 movs r1, #1 5986 ldrh r0, [r5] 5987 bl FtlGetLastWrittenPage 5988 sxth r7, r0 5989 adds r0, r0, #1 5990 strh r0, [r5, #2] @ movhi 5991.L762: 5992 cmp r7, #0 5993 bge .L765 5994 movs r2, #253 5995 ldr r1, .L781+16 5996 ldr r0, .L781+20 5997 bl printf 5998.L764: 5999 ldrh r3, [r6, #10] 6000 ldrh r0, [r6, #12] 6001 strh r3, [r5, #6] @ movhi 6002 movw r3, #65535 6003 cmp r0, r3 6004 beq .L767 6005 ldr r3, .L781+24 6006 ldr r2, [r3] 6007 cmp r0, r2 6008 beq .L767 6009 ldr r3, .L781+28 6010 ldrh r3, [r3] 6011 lsrs r3, r3, #2 6012 cmp r2, r3 6013 bcs .L767 6014 cmp r0, r3 6015 bcs .L767 6016 bl FtlSysBlkNumInit 6017.L767: 6018 ldr r6, .L781+32 6019 movs r5, #0 6020 ldr r7, .L781+36 6021 ldr r8, .L781+44 6022.L768: 6023 ldrh r3, [r7] 6024 cmp r5, r3 6025 bcc .L769 6026 movs r0, #0 6027 pop {r3, r4, r5, r6, r7, r8, r10, pc} 6028.L755: 6029 subs r5, r5, #1 6030 uxth r5, r5 6031 b .L753 6032.L765: 6033 ldrh r3, [r5] 6034 movs r2, #1 6035 mov r1, r2 6036 mov r0, r10 6037 orr r3, r7, r3, lsl #10 6038 str r3, [r4, #4] 6039 ldr r3, [r8] 6040 str r3, [r4, #8] 6041 bl FlashReadPages 6042 ldr r3, [r4] 6043 adds r3, r3, #1 6044 beq .L763 6045 ldrh r2, [r6] 6046 movw r3, #61649 6047 cmp r2, r3 6048 beq .L764 6049.L763: 6050 subs r7, r7, #1 6051 sxth r7, r7 6052 b .L762 6053.L769: 6054 ldrh r2, [r8] 6055 ldr r1, [r4, #8] 6056 ldr r0, [r6, #4]! 6057 lsls r2, r2, #2 6058 mla r1, r5, r2, r1 6059 adds r5, r5, #1 6060 bl ftl_memcpy 6061 b .L768 6062.L770: 6063 mov r0, #-1 6064 pop {r3, r4, r5, r6, r7, r8, r10, pc} 6065.L782: 6066 .align 2 6067.L781: 6068 .word .LANCHOR148 6069 .word .LANCHOR17 6070 .word .LANCHOR123 6071 .word .LANCHOR37 6072 .word .LANCHOR150 6073 .word .LC1 6074 .word .LANCHOR2 6075 .word .LANCHOR6 6076 .word .LANCHOR37+24 6077 .word .LANCHOR10 6078 .word .LANCHOR115 6079 .word .LANCHOR137 6080 .size FtlLoadBbt, .-FtlLoadBbt 6081 .section .text.FtlLoadSysInfo,"ax",%progbits 6082 .align 1 6083 .global FtlLoadSysInfo 6084 .syntax unified 6085 .thumb 6086 .thumb_func 6087 .fpu softvfp 6088 .type FtlLoadSysInfo, %function 6089FtlLoadSysInfo: 6090 @ args = 0, pretend = 0, frame = 8 6091 @ frame_needed = 0, uses_anonymous_args = 0 6092 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6093 movs r1, #0 6094 ldr r8, .L804+136 6095 ldr r5, .L804 6096 ldr r3, [r8] 6097 ldr r4, .L804+4 6098 ldr r10, .L804+140 6099 ldrh r2, [r5] 6100 ldr r7, .L804+8 6101 str r3, [r4, #8] 6102 ldr r6, .L804+12 6103 ldr r3, [r10] 6104 lsls r2, r2, #1 6105 ldr r0, [r7] 6106 str r3, [r4, #12] 6107 bl ftl_memset 6108 ldrh r0, [r6] 6109 movw r3, #65535 6110 str r7, [sp] 6111 cmp r0, r3 6112 bne .L784 6113.L792: 6114 mov r0, #-1 6115.L783: 6116 add sp, sp, #8 6117 @ sp needed 6118 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6119.L784: 6120 movs r1, #1 6121 mov fp, r4 6122 bl FtlGetLastWrittenPage 6123 ldr r3, .L804+16 6124 sxth r7, r0 6125 adds r0, r0, #1 6126 strh r0, [r6, #2] @ movhi 6127.L786: 6128 cmp r7, #0 6129 bge .L789 6130 mov r2, #1448 6131 ldr r1, .L804+20 6132 ldr r0, .L804+24 6133 bl printf 6134.L788: 6135 ldr r2, .L804+28 6136 ldrh r3, [r5] 6137 ldrh r2, [r2] 6138 adds r3, r3, #24 6139 cmp r2, r3, lsl #1 6140 bcs .L791 6141 movw r2, #1450 6142 ldr r1, .L804+20 6143 ldr r0, .L804+24 6144 bl printf 6145.L791: 6146 ldr r7, .L804+32 6147 movs r2, #48 6148 ldr r1, [r4, #8] 6149 mov r0, r7 6150 bl ftl_memcpy 6151 ldrh r2, [r5] 6152 ldr r1, [r4, #8] 6153 ldr r3, [sp] 6154 lsls r2, r2, #1 6155 adds r1, r1, #48 6156 ldr r0, [r3] 6157 bl ftl_memcpy 6158 ldrh r1, [r5] 6159 ldr r3, [r4, #8] 6160 mov r4, r7 6161 lsrs r2, r1, #3 6162 adds r1, r1, #24 6163 lsls r1, r1, #1 6164 adds r2, r2, #4 6165 bic r1, r1, #3 6166 add r1, r1, r3 6167 ldr r3, .L804+36 6168 ldr r0, [r3] 6169 bl ftl_memcpy 6170 ldr r2, [r7] 6171 ldr r3, .L804+16 6172 cmp r2, r3 6173 bne .L792 6174 ldr r3, .L804+40 6175 ldrb r2, [r7, #10] @ zero_extendqisi2 6176 ldrh r5, [r7, #8] 6177 ldrh r3, [r3] 6178 strh r5, [r6, #6] @ movhi 6179 cmp r2, r3 6180 bne .L792 6181 ldr r3, .L804+44 6182 ldr r2, .L804+48 6183 str r5, [r3] 6184 ldr r3, .L804+52 6185 ldrh r3, [r3] 6186 muls r3, r5, r3 6187 str r3, [r2] 6188 ldr r2, .L804+56 6189 ldrh r2, [r2] 6190 muls r3, r2, r3 6191 ldr r2, .L804+60 6192 str r3, [r2] 6193 ldr r3, .L804+64 6194 ldr r6, [r3] 6195 ldr r3, .L804+68 6196 ldrh r0, [r3, #6] 6197 ldr r3, .L804+72 6198 subs r0, r6, r0 6199 ldrh r1, [r3] 6200 subs r0, r0, r5 6201 bl __aeabi_uidiv 6202 ldr r3, .L804+76 6203 cmp r5, r6 6204 strh r0, [r3] @ movhi 6205 bls .L793 6206 mov r2, #1472 6207 ldr r1, .L804+20 6208 ldr r0, .L804+24 6209 bl printf 6210.L793: 6211 ldrh r2, [r4, #16] 6212 ldr r3, .L804+80 6213 ldrh ip, [r4, #14] 6214 ldr r7, .L804+84 6215 lsrs r1, r2, #6 6216 and r2, r2, #63 6217 strb r2, [r3, #6] 6218 ldrb r2, [r4, #11] @ zero_extendqisi2 6219 strh r1, [r3, #2] @ movhi 6220 ldr r1, .L804+88 6221 strb r2, [r3, #8] 6222 ldrh r2, [r4, #18] 6223 strh ip, [r3] @ movhi 6224 movw r3, #65535 6225 strh r3, [r7] @ movhi 6226 movs r3, #0 6227 strh r2, [r1] @ movhi 6228 ldrh r2, [r4, #20] 6229 strh r3, [r7, #2] @ movhi 6230 strb r3, [r7, #6] 6231 strb r3, [r7, #8] 6232 lsrs r5, r2, #6 6233 and r2, r2, #63 6234 strb r2, [r1, #6] 6235 ldrb r2, [r4, #12] @ zero_extendqisi2 6236 strh r5, [r1, #2] @ movhi 6237 ldrh r5, [r4, #22] 6238 strb r2, [r1, #8] 6239 ldr r2, .L804+92 6240 strh r5, [r2] @ movhi 6241 ldrh r5, [r4, #24] 6242 lsrs r6, r5, #6 6243 and r5, r5, #63 6244 strb r5, [r2, #6] 6245 ldrb r5, [r4, #13] @ zero_extendqisi2 6246 strh r6, [r2, #2] @ movhi 6247 ldr r6, [r4, #32] 6248 strb r5, [r2, #8] 6249 ldr r5, .L804+96 6250 str r3, [r5] 6251 ldr r5, .L804+100 6252 str r3, [r5] 6253 ldr r5, .L804+104 6254 str r3, [r5] 6255 ldr r5, .L804+108 6256 str r3, [r5] 6257 ldr r5, .L804+112 6258 str r6, [r5] 6259 mov r6, r1 6260 ldr r5, .L804+116 6261 str r3, [r5] 6262 ldr r5, .L804+120 6263 str r3, [r5] 6264 ldr r5, .L804+124 6265 ldr lr, [r4, #40] 6266 str r3, [r5] 6267 ldr r3, .L804+128 6268 ldr r5, [r3] 6269 cmp lr, r5 6270 mov r5, r2 6271 it hi 6272 strhi lr, [r3] 6273 ldr r3, .L804+132 6274 ldr r2, [r4, #36] 6275 ldr r1, [r3] 6276 cmp r2, r1 6277 it hi 6278 strhi r2, [r3] 6279 movw r3, #65535 6280 cmp ip, r3 6281 beq .L796 6282 ldr r0, .L804+80 6283 bl make_superblock 6284.L796: 6285 ldrh r2, [r6] 6286 movw r3, #65535 6287 cmp r2, r3 6288 beq .L797 6289 ldr r0, .L804+88 6290 bl make_superblock 6291.L797: 6292 ldrh r2, [r5] 6293 movw r3, #65535 6294 cmp r2, r3 6295 beq .L798 6296 ldr r0, .L804+92 6297 bl make_superblock 6298.L798: 6299 ldrh r2, [r7] 6300 movw r3, #65535 6301 cmp r2, r3 6302 beq .L799 6303 ldr r0, .L804+84 6304 bl make_superblock 6305.L799: 6306 movs r0, #0 6307 b .L783 6308.L789: 6309 ldrh r2, [r6] 6310 mov r0, fp 6311 str r3, [sp, #4] 6312 orr r2, r7, r2, lsl #10 6313 str r2, [r4, #4] 6314 ldr r2, [r8] 6315 str r2, [r4, #8] 6316 movs r2, #1 6317 mov r1, r2 6318 bl FlashReadPages 6319 ldr r2, [r4] 6320 ldr r3, [sp, #4] 6321 adds r2, r2, #1 6322 beq .L787 6323 ldr r2, [r8] 6324 ldr r2, [r2] 6325 cmp r2, r3 6326 bne .L787 6327 ldr r2, [r10] 6328 ldrh r1, [r2] 6329 movw r2, #61604 6330 cmp r1, r2 6331 beq .L788 6332.L787: 6333 subs r7, r7, #1 6334 sxth r7, r7 6335 b .L786 6336.L805: 6337 .align 2 6338.L804: 6339 .word .LANCHOR5 6340 .word .LANCHOR148 6341 .word .LANCHOR42 6342 .word .LANCHOR79 6343 .word 1179929683 6344 .word .LANCHOR151 6345 .word .LC1 6346 .word .LANCHOR23 6347 .word .LANCHOR39 6348 .word .LANCHOR1 6349 .word .LANCHOR10 6350 .word .LANCHOR152 6351 .word .LANCHOR61 6352 .word .LANCHOR19 6353 .word .LANCHOR12 6354 .word .LANCHOR34 6355 .word .LANCHOR7 6356 .word .LANCHOR37 6357 .word .LANCHOR3 6358 .word .LANCHOR78 6359 .word .LANCHOR51 6360 .word .LANCHOR80 6361 .word .LANCHOR52 6362 .word .LANCHOR53 6363 .word .LANCHOR67 6364 .word .LANCHOR64 6365 .word .LANCHOR62 6366 .word .LANCHOR66 6367 .word .LANCHOR72 6368 .word .LANCHOR73 6369 .word .LANCHOR76 6370 .word .LANCHOR65 6371 .word .LANCHOR70 6372 .word .LANCHOR71 6373 .word .LANCHOR115 6374 .word .LANCHOR123 6375 .size FtlLoadSysInfo, .-FtlLoadSysInfo 6376 .section .text.FlashProgPages,"ax",%progbits 6377 .align 1 6378 .global FlashProgPages 6379 .syntax unified 6380 .thumb 6381 .thumb_func 6382 .fpu softvfp 6383 .type FlashProgPages, %function 6384FlashProgPages: 6385 @ args = 0, pretend = 0, frame = 48 6386 @ frame_needed = 0, uses_anonymous_args = 0 6387 push {r4, r5, r6, r7, r8, r10, fp, lr} 6388 sub sp, sp, #48 6389 str r3, [sp, #12] 6390 mov r10, r1 6391 mov r4, r0 6392 mov r5, r0 6393 ldr r3, .L846 6394 mov r8, #0 6395 ldr fp, .L846+48 6396 str r2, [sp, #8] 6397 ldrh r3, [r3, #12] 6398 str r3, [sp] 6399 lsls r3, r3, #3 6400 str r3, [sp, #4] 6401.L807: 6402 cmp r8, r10 6403 bne .L820 6404 ldr r3, [sp, #12] 6405 cmp r3, #0 6406 beq .L838 6407 ldr r6, .L846+4 6408 movs r5, #0 6409.L822: 6410 cmp r8, r5 6411 beq .L838 6412 ldr r7, .L846+8 6413 movs r1, #0 6414 ldr r2, [r6] 6415 add r0, sp, #28 6416 ldr r3, [r7] 6417 str r1, [r2] 6418 str r1, [r3] 6419 ldr r1, [r4, #4] 6420 str r2, [sp, #36] 6421 ldr r2, [sp, #8] 6422 str r1, [sp, #32] 6423 movs r1, #1 6424 str r3, [sp, #40] 6425 bl FlashReadPages 6426 ldr r10, [sp, #28] 6427 cmp r10, #-1 6428 bne .L823 6429 ldr r1, [r4, #4] 6430 ldr r0, .L846+12 6431 bl printf 6432 str r10, [r4] 6433.L823: 6434 ldr r3, [r4, #12] 6435 cbz r3, .L824 6436 ldr r2, [r3] 6437 ldr r3, [r7] 6438 ldr r3, [r3] 6439 cmp r2, r3 6440 beq .L824 6441 ldr r1, [r4, #4] 6442 ldr r0, .L846+16 6443 bl printf 6444 mov r3, #-1 6445 str r3, [r4] 6446.L824: 6447 ldr r3, [r4, #8] 6448 cbz r3, .L825 6449 ldr r2, [r3] 6450 ldr r3, [r6] 6451 ldr r3, [r3] 6452 cmp r2, r3 6453 beq .L825 6454 ldr r1, [r4, #4] 6455 ldr r0, .L846+20 6456 bl printf 6457 mov r3, #-1 6458 str r3, [r4] 6459.L825: 6460 adds r5, r5, #1 6461 adds r4, r4, #20 6462 b .L822 6463.L820: 6464 ldr r3, [r5, #8] 6465 cbz r3, .L808 6466 ldr r3, [r5, #12] 6467 cbnz r3, .L809 6468.L808: 6469 movs r2, #134 6470 ldr r1, .L846+24 6471 ldr r0, .L846+28 6472 bl printf 6473.L809: 6474 add r2, sp, #20 6475 add r1, sp, #24 6476 ldr r0, [r5, #4] 6477 bl l2p_addr_tran.isra.0 6478 ldr r6, [sp, #20] 6479 cmp r6, #3 6480 bls .L810 6481.L845: 6482 mov r3, #-1 6483 str r3, [r5] 6484 b .L811 6485.L810: 6486 cbnz r6, .L812 6487 ldr r3, [sp, #24] 6488 ldr r2, [sp, #4] 6489 cmp r2, r3 6490 bls .L812 6491 ldr r5, .L846+24 6492 ldr r7, .L846+32 6493 b .L844 6494.L814: 6495 mov r3, #-1 6496 ldr r2, [r4, #-16] 6497 str r3, [r4, #-20] 6498 mov r1, r5 6499 mov r0, r7 6500 adds r6, r6, #1 6501 bl printf 6502 movs r3, #16 6503 movs r2, #4 6504 ldr r1, [r4, #-12] 6505 ldr r0, .L846+36 6506 bl rknand_print_hex 6507 movs r3, #4 6508 ldr r1, [r4, #-8] 6509 mov r2, r3 6510 ldr r0, .L846+40 6511 bl rknand_print_hex 6512.L844: 6513 cmp r6, r10 6514 add r4, r4, #20 6515 bne .L814 6516.L838: 6517 movs r0, #0 6518 add sp, sp, #48 6519 @ sp needed 6520 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6521.L812: 6522 ldr r1, [r5, #8] 6523 lsls r3, r1, #26 6524 beq .L827 6525 ldr r3, .L846+4 6526 ldr r6, [r3] 6527 cmp r1, r6 6528 beq .L815 6529 ldr r3, .L846+44 6530 mov r0, r6 6531 ldrh r2, [r3] 6532 lsls r2, r2, #9 6533 bl ftl_memcpy 6534.L815: 6535 ldr r3, [r5, #12] 6536 mov r2, r6 6537 ldr r1, [sp, #24] 6538 ldrb r0, [sp, #20] @ zero_extendqisi2 6539 ldr r7, [fp, #8] 6540 blx r7 6541 cbnz r0, .L816 6542 str r0, [r5] 6543.L817: 6544 ldr r3, .L846 6545 ldrh r3, [r3, #14] 6546 cmp r3, #4 6547 bne .L811 6548 ldr r0, [sp] 6549 add r2, r6, #2048 6550 ldr r3, [r5, #12] 6551 ldr r1, [sp, #24] 6552 ldr r6, [fp, #8] 6553 adds r3, r3, #8 6554 add r1, r1, r0 6555 ldrb r0, [sp, #20] @ zero_extendqisi2 6556 blx r6 6557 cmp r0, #0 6558 bne .L845 6559.L811: 6560 add r8, r8, #1 6561 adds r5, r5, #20 6562 b .L807 6563.L827: 6564 mov r6, r1 6565 b .L815 6566.L816: 6567 mov r3, #-1 6568 str r3, [r5] 6569 b .L817 6570.L847: 6571 .align 2 6572.L846: 6573 .word .LANCHOR0 6574 .word .LANCHOR120 6575 .word .LANCHOR122 6576 .word .LC85 6577 .word .LC86 6578 .word .LC87 6579 .word .LANCHOR153 6580 .word .LC1 6581 .word .LC79 6582 .word .LC80 6583 .word .LC81 6584 .word .LANCHOR12 6585 .word .LANCHOR105 6586 .size FlashProgPages, .-FlashProgPages 6587 .section .text.FtlLowFormatEraseBlock,"ax",%progbits 6588 .align 1 6589 .global FtlLowFormatEraseBlock 6590 .syntax unified 6591 .thumb 6592 .thumb_func 6593 .fpu softvfp 6594 .type FtlLowFormatEraseBlock, %function 6595FtlLowFormatEraseBlock: 6596 @ args = 0, pretend = 0, frame = 32 6597 @ frame_needed = 0, uses_anonymous_args = 0 6598 ldr r3, .L891 6599 push {r4, r5, r6, r7, r8, r10, fp, lr} 6600 sub sp, sp, #32 6601 ldr r7, .L891+4 6602 mov r8, #0 6603 mov r6, r1 6604 mov r5, r8 6605 str r0, [r3] 6606 mov r4, r8 6607 ldr r3, .L891+8 6608 mov fp, #20 6609 ldr r10, [r7] 6610 str r0, [sp, #4] 6611 ldrh r3, [r3] 6612 str r3, [sp, #12] 6613 ldr r3, .L891+12 6614 ldr r3, [r3] 6615 str r3, [sp, #16] 6616 ldr r3, .L891+16 6617 ldr r3, [r3] 6618 str r3, [sp, #20] 6619 ldr r3, .L891+20 6620 ldrh r3, [r3] 6621 str r3, [sp, #24] 6622.L849: 6623 ldr r3, [sp, #12] 6624 uxth r2, r8 6625 cmp r3, r2 6626 bhi .L853 6627 cmp r5, #0 6628 beq .L848 6629 mov r0, r10 6630 mov r8, #0 6631 mov r10, #20 6632 mov r2, r5 6633 movs r1, #0 6634 bl FlashEraseBlocks 6635.L856: 6636 uxth r3, r8 6637 cmp r5, r3 6638 bhi .L858 6639 cmp r6, #0 6640 beq .L874 6641 ldr r3, .L891+24 6642 mov r10, #1 6643 ldrh r3, [r3] 6644 str r3, [sp, #8] 6645.L859: 6646 movs r7, #0 6647.L868: 6648 ldr r3, .L891+8 6649 mov r8, #0 6650 mov r5, r8 6651 ldrh r3, [r3] 6652 str r3, [sp, #16] 6653 ldr r3, .L891+4 6654 ldr fp, [r3] 6655 ldr r3, .L891+28 6656 ldr r3, [r3] 6657 str r3, [sp, #20] 6658 ldr r3, .L891+12 6659 ldr r3, [r3] 6660 str r3, [sp, #24] 6661 ldr r3, .L891+20 6662 ldrh r3, [r3] 6663 str r3, [sp, #28] 6664.L860: 6665 ldr r3, [sp, #16] 6666 uxth r2, r8 6667 cmp r3, r2 6668 bhi .L863 6669 cbz r5, .L848 6670 mov r0, fp 6671 ldr fp, .L891+4 6672 movs r3, #1 6673 mov r2, r10 6674 mov r1, r5 6675 mov r8, #0 6676 bl FlashProgPages 6677 movs r3, #20 6678.L865: 6679 uxth r2, r8 6680 cmp r5, r2 6681 bhi .L867 6682 adds r7, r7, #1 6683 ldr r2, [sp, #8] 6684 uxth r3, r7 6685 cmp r2, r3 6686 bhi .L868 6687 ldr r8, .L891+4 6688 movs r7, #0 6689 mov fp, #20 6690.L869: 6691 uxth r3, r7 6692 cmp r5, r3 6693 bhi .L871 6694 ldr r3, [sp, #4] 6695 cmp r3, #63 6696 bls .L872 6697 cbz r6, .L848 6698.L872: 6699 ldr r3, .L891+4 6700 mov r2, r5 6701 mov r1, r10 6702 ldr r0, [r3] 6703 bl FlashEraseBlocks 6704.L848: 6705 mov r0, r4 6706 add sp, sp, #32 6707 @ sp needed 6708 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6709.L853: 6710 mul r2, fp, r8 6711 movs r3, #0 6712 ldr r1, [sp, #4] 6713 str r3, [r10, r2] 6714 ldr r3, .L891+32 6715 ldrb r0, [r3, r8] @ zero_extendqisi2 6716 bl V2P_block 6717 str r0, [sp, #8] 6718 cbz r6, .L850 6719 bl IsBlkInVendorPart 6720 cbnz r0, .L851 6721.L850: 6722 ldr r0, [sp, #8] 6723 bl FtlBbmIsBadBlock 6724 cbnz r0, .L852 6725 ldr r3, [sp, #8] 6726 mla r1, fp, r5, r10 6727 lsls r2, r3, #10 6728 ldr r3, [sp, #16] 6729 str r2, [r1, #4] 6730 str r3, [r1, #8] 6731 ldr r3, [sp, #24] 6732 mul r2, r3, r5 6733 ldr r3, [sp, #20] 6734 adds r5, r5, #1 6735 uxth r5, r5 6736 bic r2, r2, #3 6737 add r2, r2, r3 6738 str r2, [r1, #12] 6739.L851: 6740 add r8, r8, #1 6741 b .L849 6742.L852: 6743 adds r4, r4, #1 6744 uxth r4, r4 6745 b .L851 6746.L858: 6747 mul r3, r10, r8 6748 ldr r2, [r7] 6749 adds r1, r2, r3 6750 ldr r3, [r2, r3] 6751 adds r3, r3, #1 6752 bne .L857 6753 ldr r0, [r1, #4] 6754 adds r4, r4, #1 6755 uxth r4, r4 6756 ubfx r0, r0, #10, #16 6757 bl FtlBbmMapBadBlock 6758.L857: 6759 add r8, r8, #1 6760 b .L856 6761.L874: 6762 movs r3, #2 6763 mov r10, r6 6764 str r3, [sp, #8] 6765 b .L859 6766.L863: 6767 movs r3, #20 6768 ldr r1, [sp, #4] 6769 mul r2, r3, r8 6770 movs r3, #0 6771 str r3, [fp, r2] 6772 ldr r3, .L891+32 6773 ldrb r0, [r3, r8] @ zero_extendqisi2 6774 bl V2P_block 6775 str r0, [sp, #12] 6776 cbz r6, .L861 6777 bl IsBlkInVendorPart 6778 cbnz r0, .L862 6779.L861: 6780 ldr r0, [sp, #12] 6781 bl FtlBbmIsBadBlock 6782 cbnz r0, .L862 6783 movs r3, #20 6784 mla r1, r3, r5, fp 6785 ldr r3, [sp, #12] 6786 add r2, r7, r3, lsl #10 6787 ldr r3, [sp, #20] 6788 str r2, [r1, #4] 6789 str r3, [r1, #8] 6790 ldr r3, [sp, #28] 6791 mul r2, r3, r5 6792 ldr r3, [sp, #24] 6793 adds r5, r5, #1 6794 uxth r5, r5 6795 bic r2, r2, #3 6796 add r2, r2, r3 6797 str r2, [r1, #12] 6798.L862: 6799 add r8, r8, #1 6800 b .L860 6801.L867: 6802 mul r2, r3, r8 6803 ldr r1, [fp] 6804 adds r0, r1, r2 6805 ldr r2, [r1, r2] 6806 cbz r2, .L866 6807 ldr r0, [r0, #4] 6808 adds r4, r4, #1 6809 str r3, [sp, #12] 6810 uxth r4, r4 6811 ubfx r0, r0, #10, #16 6812 bl FtlBbmMapBadBlock 6813 ldr r3, [sp, #12] 6814.L866: 6815 add r8, r8, #1 6816 b .L865 6817.L871: 6818 cbz r6, .L870 6819 mul r3, fp, r7 6820 ldr r2, [r8] 6821 adds r1, r2, r3 6822 ldr r3, [r2, r3] 6823 cbnz r3, .L870 6824 ldr r0, [r1, #4] 6825 movs r1, #1 6826 ubfx r0, r0, #10, #16 6827 bl FtlFreeSysBlkQueueIn 6828.L870: 6829 adds r7, r7, #1 6830 b .L869 6831.L892: 6832 .align 2 6833.L891: 6834 .word .LANCHOR111 6835 .word .LANCHOR106 6836 .word .LANCHOR3 6837 .word .LANCHOR119 6838 .word .LANCHOR124 6839 .word .LANCHOR24 6840 .word .LANCHOR20 6841 .word .LANCHOR118 6842 .word .LANCHOR13 6843 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 6844 .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits 6845 .align 1 6846 .global Ftl_write_map_blk_to_last_page 6847 .syntax unified 6848 .thumb 6849 .thumb_func 6850 .fpu softvfp 6851 .type Ftl_write_map_blk_to_last_page, %function 6852Ftl_write_map_blk_to_last_page: 6853 @ args = 0, pretend = 0, frame = 0 6854 @ frame_needed = 0, uses_anonymous_args = 0 6855 push {r3, r4, r5, r6, r7, lr} 6856 movw r2, #65535 6857 ldrh r3, [r0] 6858 mov r4, r0 6859 ldr r5, [r0, #12] 6860 cmp r3, r2 6861 bne .L894 6862 ldrh r3, [r0, #8] 6863 cbz r3, .L895 6864 movw r2, #641 6865 ldr r1, .L903 6866 ldr r0, .L903+4 6867 bl printf 6868.L895: 6869 ldrh r3, [r4, #8] 6870 adds r3, r3, #1 6871 strh r3, [r4, #8] @ movhi 6872 bl FtlFreeSysBlkQueueOut 6873 movs r3, #0 6874 strh r0, [r5] @ movhi 6875 strh r3, [r4, #2] @ movhi 6876 strh r3, [r4] @ movhi 6877 ldr r3, [r4, #28] 6878 adds r3, r3, #1 6879 str r3, [r4, #28] 6880.L896: 6881 movs r0, #0 6882 pop {r3, r4, r5, r6, r7, pc} 6883.L894: 6884 ldrh r5, [r5, r3, lsl #1] 6885 movs r1, #255 6886 ldrh r3, [r0, #2] 6887 ldr r2, .L903+8 6888 ldr r7, .L903+12 6889 ldr r6, [r0, #24] 6890 orr r3, r3, r5, lsl #10 6891 ldr r0, [r7] 6892 str r3, [r2, #4] 6893 ldr r3, .L903+16 6894 str r0, [r2, #8] 6895 ldr r3, [r3] 6896 str r3, [r2, #12] 6897 ldr r2, [r4, #28] 6898 str r2, [r3, #4] 6899 movw r2, #64245 6900 strh r2, [r3, #8] @ movhi 6901 ldrh r2, [r4, #4] 6902 strh r5, [r3, #2] @ movhi 6903 strh r2, [r3] @ movhi 6904 ldr r3, .L903+20 6905 ldrh r2, [r3] 6906 lsls r2, r2, #3 6907 bl ftl_memset 6908 ldrh ip, [r4, #6] 6909 movs r3, #0 6910 ldr r1, [r7] 6911 mov r2, r3 6912.L897: 6913 uxth r0, r3 6914 cmp ip, r0 6915 bhi .L899 6916 movs r2, #1 6917 movs r3, #0 6918 mov r1, r2 6919 ldr r0, .L903+8 6920 bl FlashProgPages 6921 ldrh r3, [r4, #2] 6922 mov r0, r4 6923 adds r3, r3, #1 6924 strh r3, [r4, #2] @ movhi 6925 bl ftl_map_blk_gc 6926 b .L896 6927.L899: 6928 ldr r0, [r6, r3, lsl #2] 6929 cmp r5, r0, lsr #10 6930 bne .L898 6931 adds r2, r2, #1 6932 uxth r2, r2 6933 str r3, [r1, r2, lsl #3] 6934 add r7, r1, r2, lsl #3 6935 ldr r0, [r6, r3, lsl #2] 6936 str r0, [r7, #4] 6937.L898: 6938 adds r3, r3, #1 6939 b .L897 6940.L904: 6941 .align 2 6942.L903: 6943 .word .LANCHOR154 6944 .word .LC1 6945 .word .LANCHOR148 6946 .word .LANCHOR115 6947 .word .LANCHOR123 6948 .word .LANCHOR20 6949 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 6950 .section .text.FtlMapWritePage,"ax",%progbits 6951 .align 1 6952 .global FtlMapWritePage 6953 .syntax unified 6954 .thumb 6955 .thumb_func 6956 .fpu softvfp 6957 .type FtlMapWritePage, %function 6958FtlMapWritePage: 6959 @ args = 0, pretend = 0, frame = 8 6960 @ frame_needed = 0, uses_anonymous_args = 0 6961 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6962 mov r4, r0 6963 ldr r8, .L929+28 6964 mov r7, r1 6965 movs r6, #0 6966 str r2, [sp, #4] 6967 mov fp, r8 6968.L906: 6969 ldr r2, .L929 6970 ldr r3, [r2] 6971 adds r3, r3, #1 6972 str r3, [r2] 6973 ldrh r3, [r8] 6974 ldrh r2, [r4, #2] 6975 subs r3, r3, #1 6976 cmp r2, r3 6977 bge .L907 6978 ldrh r2, [r4] 6979 movw r3, #65535 6980 cmp r2, r3 6981 bne .L908 6982.L907: 6983 mov r0, r4 6984 bl Ftl_write_map_blk_to_last_page 6985.L908: 6986 ldrh r2, [r4] 6987 ldr r3, [r4, #12] 6988 ldrh r3, [r3, r2, lsl #1] 6989 cbnz r3, .L909 6990 movw r2, #699 6991 ldr r1, .L929+4 6992 ldr r0, .L929+8 6993 bl printf 6994.L909: 6995 ldrh r2, [r4] 6996 ldrh r3, [r4, #10] 6997 cmp r2, r3 6998 bcc .L910 6999 mov r2, #700 7000 ldr r1, .L929+4 7001 ldr r0, .L929+8 7002 bl printf 7003.L910: 7004 ldrh r2, [r4] 7005 movs r1, #0 7006 ldr r3, [r4, #12] 7007 ldr r5, .L929+12 7008 ldrh r10, [r3, r2, lsl #1] 7009 ldrh r2, [r4, #2] 7010 ldr r3, [sp, #4] 7011 orr r2, r2, r10, lsl #10 7012 str r3, [r5, #8] 7013 str r2, [r5, #4] 7014 ldr r2, .L929+16 7015 ldr r0, [r2] 7016 movs r2, #16 7017 str r0, [r5, #12] 7018 bl ftl_memset 7019 ldr r2, [r5, #12] 7020 movs r3, #1 7021 ldr r1, [r4, #28] 7022 mov r0, r5 7023 strh r7, [r2, #8] @ movhi 7024 str r1, [r2, #4] 7025 ldrh r1, [r4, #4] 7026 strh r10, [r2, #2] @ movhi 7027 strh r1, [r2] @ movhi 7028 mov r2, r3 7029 mov r1, r3 7030 bl FlashProgPages 7031 ldrh r2, [r4, #2] 7032 ldr r1, [r5] 7033 adds r2, r2, #1 7034 uxth r2, r2 7035 adds r3, r1, #1 7036 strh r2, [r4, #2] @ movhi 7037 bne .L911 7038 ldr r1, [r5, #4] 7039 adds r6, r6, #1 7040 ldr r0, .L929+20 7041 uxth r6, r6 7042 bl printf 7043 ldrh r2, [r4, #2] 7044 cmp r2, #2 7045 ittt ls 7046 ldrhls r2, [fp] 7047 addls r2, r2, #-1 7048 strhls r2, [r4, #2] @ movhi 7049 cmp r6, #3 7050 bls .L913 7051 mov r2, r6 7052 ldr r1, [r5, #4] 7053 ldr r0, .L929+24 7054 bl printf 7055.L914: 7056 b .L914 7057.L913: 7058 ldr r3, [r4, #32] 7059 cmp r3, #0 7060 beq .L906 7061.L928: 7062 b .L928 7063.L911: 7064 cmp r2, #1 7065 beq .L917 7066 cmp r1, #256 7067 beq .L917 7068 ldr r0, [r4, #36] 7069 cbz r0, .L918 7070.L917: 7071 movs r3, #0 7072 str r3, [r4, #36] 7073 b .L906 7074.L918: 7075 ldr r2, [r5, #4] 7076 ldr r3, [r4, #24] 7077 str r2, [r3, r7, lsl #2] 7078 add sp, sp, #8 7079 @ sp needed 7080 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7081.L930: 7082 .align 2 7083.L929: 7084 .word .LANCHOR66 7085 .word .LANCHOR155 7086 .word .LC1 7087 .word .LANCHOR148 7088 .word .LANCHOR123 7089 .word .LC88 7090 .word .LC89 7091 .word .LANCHOR20 7092 .size FtlMapWritePage, .-FtlMapWritePage 7093 .section .text.load_l2p_region,"ax",%progbits 7094 .align 1 7095 .global load_l2p_region 7096 .syntax unified 7097 .thumb 7098 .thumb_func 7099 .fpu softvfp 7100 .type load_l2p_region, %function 7101load_l2p_region: 7102 @ args = 0, pretend = 0, frame = 8 7103 @ frame_needed = 0, uses_anonymous_args = 0 7104 ldr r3, .L938 7105 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7106 mov r5, r0 7107 mov r10, r1 7108 ldrh r2, [r3] 7109 str r3, [sp, #4] 7110 cmp r2, r0 7111 bcs .L932 7112 movw r2, #485 7113 ldr r1, .L938+4 7114 ldr r0, .L938+8 7115 bl printf 7116.L932: 7117 ldr fp, .L938+48 7118 movs r4, #12 7119 ldr r7, .L938+12 7120 ldr r3, [fp] 7121 ldr r8, [r3, r5, lsl #2] 7122 cmp r8, #0 7123 bne .L933 7124 mul r4, r4, r10 7125 ldr r2, [r7] 7126 movs r1, #255 7127 adds r0, r2, r4 7128 ldr r2, .L938+16 7129 ldr r0, [r0, #8] 7130 ldrh r2, [r2] 7131 bl ftl_memset 7132 ldr r2, [r7] 7133 adds r1, r2, r4 7134 strh r5, [r2, r4] @ movhi 7135 str r8, [r1, #4] 7136.L934: 7137 movs r0, #0 7138 add sp, sp, #8 7139 @ sp needed 7140 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7141.L933: 7142 mul r4, r4, r10 7143 ldr r2, [r7] 7144 ldr r6, .L938+20 7145 add r2, r2, r4 7146 mov r0, r6 7147 ldr r2, [r2, #8] 7148 str r8, [r6, #4] 7149 str r2, [r6, #8] 7150 ldr r2, .L938+24 7151 ldr r2, [r2] 7152 str r2, [r6, #12] 7153 movs r2, #1 7154 mov r1, r2 7155 bl FlashReadPages 7156 ldr r10, [r6, #12] 7157 ldrh r2, [r10, #8] 7158 cmp r2, r5 7159 beq .L935 7160 mov r2, r8 7161 mov r1, r5 7162 ldr r0, .L938+28 7163 bl printf 7164 movs r3, #4 7165 ldr r1, [r6, #12] 7166 mov r2, r3 7167 ldr r0, .L938+32 7168 bl rknand_print_hex 7169 ldr r3, [sp, #4] 7170 movs r2, #4 7171 ldr r1, [fp] 7172 ldr r0, .L938+36 7173 ldrh r3, [r3] 7174 bl rknand_print_hex 7175.L936: 7176 ldrh r3, [r10, #8] 7177 cmp r3, r5 7178 beq .L937 7179 mov r2, #508 7180 ldr r1, .L938+4 7181 ldr r0, .L938+8 7182 bl printf 7183.L937: 7184 ldr r3, [r7] 7185 movs r1, #0 7186 adds r2, r3, r4 7187 str r1, [r2, #4] 7188 strh r5, [r3, r4] @ movhi 7189 b .L934 7190.L935: 7191 ldr r2, [r6] 7192 cmp r2, #256 7193 bne .L936 7194 mov r2, r8 7195 mov r1, r5 7196 ldr r0, .L938+40 7197 bl printf 7198 ldr r3, [r7] 7199 mov r1, r5 7200 ldr r0, .L938+44 7201 add r3, r3, r4 7202 ldr r2, [r3, #8] 7203 bl FtlMapWritePage 7204 b .L936 7205.L939: 7206 .align 2 7207.L938: 7208 .word .LANCHOR32 7209 .word .LANCHOR156 7210 .word .LC1 7211 .word .LANCHOR55 7212 .word .LANCHOR23 7213 .word .LANCHOR148 7214 .word .LANCHOR123 7215 .word .LC90 7216 .word .LC91 7217 .word .LC92 7218 .word .LC93 7219 .word .LANCHOR140 7220 .word .LANCHOR134 7221 .size load_l2p_region, .-load_l2p_region 7222 .section .text.ftl_map_blk_gc,"ax",%progbits 7223 .align 1 7224 .global ftl_map_blk_gc 7225 .syntax unified 7226 .thumb 7227 .thumb_func 7228 .fpu softvfp 7229 .type ftl_map_blk_gc, %function 7230ftl_map_blk_gc: 7231 @ args = 0, pretend = 0, frame = 8 7232 @ frame_needed = 0, uses_anonymous_args = 0 7233 ldr r3, [r0, #24] 7234 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7235 mov r4, r0 7236 ldr r5, [r0, #12] 7237 str r3, [sp] 7238 bl ftl_free_no_use_map_blk 7239 ldrh r3, [r4, #10] 7240 ldrh r2, [r4, #8] 7241 subs r3, r3, #5 7242 cmp r2, r3 7243 blt .L941 7244 uxth r0, r0 7245 ldrh r8, [r5, r0, lsl #1] 7246 cmp r8, #0 7247 beq .L941 7248 ldr r3, [r4, #32] 7249 cbnz r3, .L941 7250 movs r2, #1 7251 str r2, [r4, #32] 7252 strh r3, [r5, r0, lsl #1] @ movhi 7253 ldrh r3, [r4, #8] 7254 ldrh r2, [r4, #2] 7255 subs r3, r3, #1 7256 strh r3, [r4, #8] @ movhi 7257 ldr r3, .L956 7258 ldrh r3, [r3] 7259 cmp r2, r3 7260 bcc .L942 7261 mov r0, r4 7262 bl ftl_map_blk_alloc_new_blk 7263.L942: 7264 ldr r5, .L956+4 7265 movs r6, #0 7266.L943: 7267 ldrh r3, [r4, #6] 7268 uxth r10, r6 7269 cmp r3, r10 7270 bhi .L950 7271 movs r1, #1 7272 mov r0, r8 7273 bl FtlFreeSysBlkQueueIn 7274 movs r3, #0 7275 str r3, [r4, #32] 7276.L941: 7277 ldr r3, .L956 7278 ldrh r2, [r4, #2] 7279 ldrh r3, [r3] 7280 cmp r2, r3 7281 bcc .L951 7282 mov r0, r4 7283 bl ftl_map_blk_alloc_new_blk 7284.L951: 7285 movs r0, #0 7286 add sp, sp, #8 7287 @ sp needed 7288 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7289.L950: 7290 ldr r3, [sp] 7291 uxth fp, r6 7292 add r3, r3, fp, lsl #2 7293 str r3, [sp, #4] 7294 ldr r3, [sp] 7295 ldr r2, [r3, fp, lsl #2] 7296 cmp r8, r2, lsr #10 7297 bne .L944 7298 ldr r3, .L956+8 7299 str r2, [r5, #4] 7300 movs r2, #1 7301 ldr r0, .L956+4 7302 ldr r1, [r3] 7303 str r1, [r5, #8] 7304 ldr r1, .L956+12 7305 ldr r7, [r1] 7306 mov r1, r2 7307 str r7, [r5, #12] 7308 bl FlashReadPages 7309 ldrh r2, [r7, #8] 7310 cmp r2, r10 7311 beq .L945 7312 movw r2, #611 7313 ldr r1, .L956+16 7314 ldr r0, .L956+20 7315 bl printf 7316.L945: 7317 ldr r2, [r5] 7318 adds r2, r2, #1 7319 bne .L946 7320.L948: 7321 ldr r2, [sp, #4] 7322 movs r3, #0 7323 str r3, [r2] 7324.L947: 7325 b .L947 7326.L946: 7327 ldrh r2, [r7, #8] 7328 cmp r2, r10 7329 bne .L948 7330 ldrh r1, [r7] 7331 ldrh r2, [r4, #4] 7332 cmp r1, r2 7333 bne .L948 7334 ldr r2, [r5, #8] 7335 mov r1, fp 7336 mov r0, r4 7337 bl FtlMapWritePage 7338.L944: 7339 adds r6, r6, #1 7340 b .L943 7341.L957: 7342 .align 2 7343.L956: 7344 .word .LANCHOR20 7345 .word .LANCHOR148 7346 .word .LANCHOR116 7347 .word .LANCHOR123 7348 .word .LANCHOR157 7349 .word .LC1 7350 .size ftl_map_blk_gc, .-ftl_map_blk_gc 7351 .section .text.FtlMapTblRecovery,"ax",%progbits 7352 .align 1 7353 .global FtlMapTblRecovery 7354 .syntax unified 7355 .thumb 7356 .thumb_func 7357 .fpu softvfp 7358 .type FtlMapTblRecovery, %function 7359FtlMapTblRecovery: 7360 @ args = 0, pretend = 0, frame = 24 7361 @ frame_needed = 0, uses_anonymous_args = 0 7362 ldr r3, [r0, #16] 7363 movs r1, #0 7364 push {r4, r5, r6, r7, r8, r10, fp, lr} 7365 sub sp, sp, #24 7366 ldrh fp, [r0, #6] 7367 mov r4, r0 7368 movs r6, #0 7369 ldr r8, [r0, #24] 7370 str r3, [sp, #12] 7371 ldrh r3, [r0, #8] 7372 lsl r2, fp, #2 7373 ldr r10, [r0, #12] 7374 mov r0, r8 7375 ldr r5, .L985 7376 str r3, [sp, #4] 7377 bl ftl_memset 7378 ldr r3, .L985+4 7379 str r6, [r4, #32] 7380 str r6, [r4, #28] 7381 ldr r2, [r3] 7382 str r3, [sp, #8] 7383 str r2, [r5, #8] 7384 ldr r2, .L985+8 7385 ldr r7, [r2] 7386 movw r2, #65535 7387 str r7, [r5, #12] 7388 strh r2, [r4] @ movhi 7389 strh r2, [r4, #2] @ movhi 7390 movs r2, #1 7391 str r2, [r4, #36] 7392.L959: 7393 ldr r2, [sp, #4] 7394 sxth r3, r6 7395 cmp r3, r2 7396 bge .L976 7397 ldr r2, [sp, #4] 7398 subs r2, r2, #1 7399 cmp r3, r2 7400 lsl r2, r3, #1 7401 bne .L960 7402 ldrh r0, [r10, r3, lsl #1] 7403 movs r1, #1 7404 add r5, r10, r2 7405 str r3, [sp, #4] 7406 bl FtlGetLastWrittenPage 7407 ldr r3, [sp, #12] 7408 sxth r10, r0 7409 strh r6, [r4] @ movhi 7410 movs r6, #0 7411 adds r0, r0, #1 7412 mov r2, r3 7413 ldr r3, [sp, #4] 7414 strh r0, [r4, #2] @ movhi 7415 ldr r3, [r2, r3, lsl #2] 7416 str r3, [r4, #28] 7417 ldr r3, .L985 7418.L961: 7419 sxth r2, r6 7420 cmp r2, r10 7421 ble .L963 7422.L976: 7423 mov r0, r4 7424 bl ftl_free_no_use_map_blk 7425 ldr r3, .L985+12 7426 ldrh r2, [r4, #2] 7427 ldrh r3, [r3] 7428 cmp r2, r3 7429 bne .L965 7430 mov r0, r4 7431 bl ftl_map_blk_alloc_new_blk 7432.L965: 7433 mov r0, r4 7434 bl ftl_map_blk_gc 7435 mov r0, r4 7436 bl ftl_map_blk_gc 7437 movs r0, #0 7438 add sp, sp, #24 7439 @ sp needed 7440 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7441.L963: 7442 ldrh r1, [r5] 7443 ldr r0, .L985 7444 str r3, [sp, #4] 7445 orr r2, r2, r1, lsl #10 7446 str r2, [r3, #4] 7447 movs r2, #1 7448 mov r1, r2 7449 bl FlashReadPages 7450 ldr r3, [sp, #4] 7451 ldr r2, [r3] 7452 adds r2, r2, #1 7453 beq .L962 7454 ldrh r2, [r7, #8] 7455 cmp fp, r2 7456 bls .L962 7457 ldrh r1, [r4, #4] 7458 ldrh r0, [r7] 7459 cmp r0, r1 7460 itt eq 7461 ldreq r1, [r3, #4] 7462 streq r1, [r8, r2, lsl #2] 7463.L962: 7464 adds r6, r6, #1 7465 b .L961 7466.L960: 7467 ldr r1, [sp, #8] 7468 add r2, r10, r2 7469 str r2, [sp, #16] 7470 ldr r0, .L985 7471 ldr r1, [r1] 7472 str r1, [r5, #8] 7473 ldrh r1, [r10, r3, lsl #1] 7474 ldr r3, .L985+12 7475 ldrh r2, [r3] 7476 str r3, [sp, #20] 7477 subs r2, r2, #1 7478 orr r2, r2, r1, lsl #10 7479 str r2, [r5, #4] 7480 movs r2, #1 7481 mov r1, r2 7482 bl FlashReadPages 7483 ldr r2, [r5] 7484 adds r2, r2, #1 7485 beq .L978 7486 ldrh r1, [r7] 7487 ldrh r2, [r4, #4] 7488 ldr r3, [sp, #20] 7489 cmp r1, r2 7490 bne .L978 7491 ldrh r1, [r7, #8] 7492 movw r2, #64245 7493 cmp r1, r2 7494 beq .L967 7495.L978: 7496 movs r3, #0 7497.L968: 7498 ldr r1, .L985+12 7499 sxth r2, r3 7500 ldrh r1, [r1] 7501 cmp r2, r1 7502 bge .L974 7503 str r3, [sp, #20] 7504 ldr r3, [sp, #16] 7505 ldr r0, .L985 7506 ldrh r1, [r3] 7507 orr r2, r2, r1, lsl #10 7508 str r2, [r5, #4] 7509 movs r2, #1 7510 mov r1, r2 7511 bl FlashReadPages 7512 ldr r2, [r5] 7513 ldr r3, [sp, #20] 7514 adds r2, r2, #1 7515 beq .L972 7516 ldrh r2, [r7, #8] 7517 cmp fp, r2 7518 bls .L972 7519 ldrh r1, [r4, #4] 7520 ldrh r0, [r7] 7521 cmp r0, r1 7522 itt eq 7523 ldreq r1, [r5, #4] 7524 streq r1, [r8, r2, lsl #2] 7525.L972: 7526 adds r3, r3, #1 7527 b .L968 7528.L967: 7529 ldrh r2, [r3] 7530 movs r1, #0 7531 ldr r3, [sp, #8] 7532 subs r2, r2, #1 7533 ldr ip, [r3] 7534.L969: 7535 sxth r3, r1 7536 cmp r3, r2 7537 blt .L971 7538.L974: 7539 adds r6, r6, #1 7540 b .L959 7541.L971: 7542 lsls r0, r3, #3 7543 ldr r3, [ip, r3, lsl #3] 7544 adds r1, r1, #1 7545 uxth lr, r3 7546 cmp fp, lr 7547 itttt hi 7548 addhi r0, r0, ip 7549 movhi r3, lr 7550 ldrhi r0, [r0, #4] 7551 strhi r0, [r8, r3, lsl #2] 7552 b .L969 7553.L986: 7554 .align 2 7555.L985: 7556 .word .LANCHOR148 7557 .word .LANCHOR115 7558 .word .LANCHOR123 7559 .word .LANCHOR20 7560 .size FtlMapTblRecovery, .-FtlMapTblRecovery 7561 .section .text.FtlLoadVonderInfo,"ax",%progbits 7562 .align 1 7563 .global FtlLoadVonderInfo 7564 .syntax unified 7565 .thumb 7566 .thumb_func 7567 .fpu softvfp 7568 .type FtlLoadVonderInfo, %function 7569FtlLoadVonderInfo: 7570 @ args = 0, pretend = 0, frame = 0 7571 @ frame_needed = 0, uses_anonymous_args = 0 7572 push {r3, lr} 7573 ldr r3, .L988 7574 ldr r0, .L988+4 7575 ldrh r3, [r3] 7576 strh r3, [r0, #10] @ movhi 7577 movw r3, #61574 7578 strh r3, [r0, #4] @ movhi 7579 ldr r3, .L988+8 7580 ldrh r3, [r3] 7581 strh r3, [r0, #8] @ movhi 7582 ldr r3, .L988+12 7583 ldrh r3, [r3] 7584 strh r3, [r0, #6] @ movhi 7585 ldr r3, .L988+16 7586 ldr r3, [r3] 7587 str r3, [r0, #12] 7588 ldr r3, .L988+20 7589 ldr r3, [r3] 7590 str r3, [r0, #16] 7591 ldr r3, .L988+24 7592 ldr r3, [r3] 7593 str r3, [r0, #20] 7594 ldr r3, .L988+28 7595 ldr r3, [r3] 7596 str r3, [r0, #24] 7597 bl FtlMapTblRecovery 7598 movs r0, #0 7599 pop {r3, pc} 7600.L989: 7601 .align 2 7602.L988: 7603 .word .LANCHOR27 7604 .word .LANCHOR158 7605 .word .LANCHOR35 7606 .word .LANCHOR28 7607 .word .LANCHOR36 7608 .word .LANCHOR132 7609 .word .LANCHOR131 7610 .word .LANCHOR133 7611 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 7612 .section .text.FtlLoadMapInfo,"ax",%progbits 7613 .align 1 7614 .global FtlLoadMapInfo 7615 .syntax unified 7616 .thumb 7617 .thumb_func 7618 .fpu softvfp 7619 .type FtlLoadMapInfo, %function 7620FtlLoadMapInfo: 7621 @ args = 0, pretend = 0, frame = 0 7622 @ frame_needed = 0, uses_anonymous_args = 0 7623 push {r3, lr} 7624 bl FtlL2PDataInit 7625 ldr r0, .L991 7626 bl FtlMapTblRecovery 7627 movs r0, #0 7628 pop {r3, pc} 7629.L992: 7630 .align 2 7631.L991: 7632 .word .LANCHOR140 7633 .size FtlLoadMapInfo, .-FtlLoadMapInfo 7634 .section .text.flush_l2p_region,"ax",%progbits 7635 .align 1 7636 .global flush_l2p_region 7637 .syntax unified 7638 .thumb 7639 .thumb_func 7640 .fpu softvfp 7641 .type flush_l2p_region, %function 7642flush_l2p_region: 7643 @ args = 0, pretend = 0, frame = 0 7644 @ frame_needed = 0, uses_anonymous_args = 0 7645 push {r3, r4, r5, lr} 7646 movs r4, #12 7647 ldr r5, .L994 7648 muls r4, r0, r4 7649 ldr r0, .L994+4 7650 ldr r3, [r5] 7651 adds r2, r3, r4 7652 ldrh r1, [r3, r4] 7653 ldr r2, [r2, #8] 7654 bl FtlMapWritePage 7655 ldr r3, [r5] 7656 movs r0, #0 7657 add r4, r4, r3 7658 ldr r3, [r4, #4] 7659 bic r3, r3, #-2147483648 7660 str r3, [r4, #4] 7661 pop {r3, r4, r5, pc} 7662.L995: 7663 .align 2 7664.L994: 7665 .word .LANCHOR55 7666 .word .LANCHOR140 7667 .size flush_l2p_region, .-flush_l2p_region 7668 .section .text.log2phys,"ax",%progbits 7669 .align 1 7670 .global log2phys 7671 .syntax unified 7672 .thumb 7673 .thumb_func 7674 .fpu softvfp 7675 .type log2phys, %function 7676log2phys: 7677 @ args = 0, pretend = 0, frame = 8 7678 @ frame_needed = 0, uses_anonymous_args = 0 7679 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7680 mov r7, r2 7681 ldr r4, .L1009 7682 mov r10, r0 7683 mov r5, r1 7684 ldr r3, .L1009+4 7685 ldr r2, [r4] 7686 ldrh fp, [r3] 7687 cmp r0, r2 7688 bcc .L997 7689 movw r2, #811 7690 ldr r1, .L1009+8 7691 ldr r0, .L1009+12 7692 bl printf 7693.L997: 7694 ldr r3, [r4] 7695 cmp r10, r3 7696 bcs .L998 7697 ldr r3, .L1009+16 7698 add fp, fp, #7 7699 lsr r6, r10, fp 7700 movs r2, #0 7701 ldrh r1, [r3] 7702 uxth r6, r6 7703 ldr r3, .L1009+20 7704 ldr r0, [r3] 7705 mov r8, r3 7706 movs r3, #12 7707.L999: 7708 uxth r4, r2 7709 cmp r4, r1 7710 bcc .L1004 7711 str r3, [sp, #4] 7712 bl select_l2p_ram_region 7713 ldr r3, [sp, #4] 7714 mov r4, r0 7715 ldr r2, [r8] 7716 muls r3, r0, r3 7717 adds r1, r2, r3 7718 ldrh r2, [r2, r3] 7719 movw r3, #65535 7720 cmp r2, r3 7721 beq .L1005 7722 ldr r3, [r1, #4] 7723 cmp r3, #0 7724 bge .L1005 7725 bl flush_l2p_region 7726.L1005: 7727 mov r1, r4 7728 mov r0, r6 7729 bl load_l2p_region 7730 b .L1001 7731.L998: 7732 mov r0, #-1 7733 cbnz r7, .L996 7734 str r0, [r5] 7735.L996: 7736 add sp, sp, #8 7737 @ sp needed 7738 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7739.L1004: 7740 adds r2, r2, #1 7741 mla ip, r3, r2, r0 7742 ldrh ip, [ip, #-12] 7743 cmp ip, r6 7744 bne .L999 7745.L1001: 7746 movs r0, #1 7747 ldr r2, [r8] 7748 lsl r0, r0, fp 7749 movs r3, #12 7750 subs r0, r0, #1 7751 and r0, r0, r10 7752 uxth r0, r0 7753 mla r3, r3, r4, r2 7754 cbnz r7, .L1002 7755 ldr r3, [r3, #8] 7756 ldr r3, [r3, r0, lsl #2] 7757 str r3, [r5] 7758.L1003: 7759 ldr r2, [r8] 7760 movs r3, #12 7761 mla r4, r3, r4, r2 7762 ldr r3, [r4, #4] 7763 adds r2, r3, #1 7764 beq .L1007 7765 adds r3, r3, #1 7766 str r3, [r4, #4] 7767.L1007: 7768 movs r0, #0 7769 b .L996 7770.L1002: 7771 ldr r1, [r5] 7772 ldr r2, [r3, #8] 7773 str r1, [r2, r0, lsl #2] 7774 ldr r2, [r3, #4] 7775 orr r2, r2, #-2147483648 7776 str r2, [r3, #4] 7777 ldr r3, .L1009+24 7778 strh r6, [r3] @ movhi 7779 b .L1003 7780.L1010: 7781 .align 2 7782.L1009: 7783 .word .LANCHOR61 7784 .word .LANCHOR22 7785 .word .LANCHOR159 7786 .word .LC1 7787 .word .LANCHOR33 7788 .word .LANCHOR55 7789 .word .LANCHOR56 7790 .size log2phys, .-log2phys 7791 .section .text.FtlReUsePrevPpa,"ax",%progbits 7792 .align 1 7793 .global FtlReUsePrevPpa 7794 .syntax unified 7795 .thumb 7796 .thumb_func 7797 .fpu softvfp 7798 .type FtlReUsePrevPpa, %function 7799FtlReUsePrevPpa: 7800 @ args = 0, pretend = 0, frame = 8 7801 @ frame_needed = 0, uses_anonymous_args = 0 7802 push {r0, r1, r4, r5, r6, r7, r8, lr} 7803 mov r6, r0 7804 ldr r5, .L1021 7805 ubfx r0, r1, #10, #16 7806 str r1, [sp, #4] 7807 bl P2V_block_in_plane 7808 ldr r2, [r5] 7809 mov r7, r0 7810 ldrh r3, [r2, r0, lsl #1] 7811 cbnz r3, .L1012 7812 ldr r2, .L1021+4 7813 ldr r4, [r2] 7814 cmp r4, #0 7815 beq .L1013 7816 ldr r2, .L1021+8 7817 movw lr, #65535 7818 ldr ip, .L1021+24 7819 ldr r0, .L1021+12 7820 ldr r2, [r2] 7821 ldrh r1, [r0] 7822 mov r8, r0 7823 subs r4, r4, r2 7824 asrs r4, r4, #1 7825 mul r4, ip, r4 7826 mov ip, #6 7827 uxth r4, r4 7828.L1014: 7829 uxth r0, r3 7830 cmp r1, r0 7831 bls .L1013 7832 cmp r4, r7 7833 bne .L1015 7834 mov r1, r4 7835 ldr r0, .L1021+4 7836 bl List_remove_node 7837 ldrh r3, [r8] 7838 cbnz r3, .L1016 7839 movw r2, #1699 7840 ldr r1, .L1021+16 7841 ldr r0, .L1021+20 7842 bl printf 7843.L1016: 7844 ldrh r3, [r8] 7845 mov r0, r4 7846 subs r3, r3, #1 7847 strh r3, [r8] @ movhi 7848 bl INSERT_DATA_LIST 7849 ldr r2, [r5] 7850 ldrh r3, [r2, r7, lsl #1] 7851.L1012: 7852 adds r3, r3, #1 7853 strh r3, [r2, r7, lsl #1] @ movhi 7854 b .L1013 7855.L1015: 7856 mul r4, ip, r4 7857 adds r3, r3, #1 7858 ldrh r4, [r2, r4] 7859 cmp r4, lr 7860 bne .L1014 7861.L1013: 7862 movs r2, #1 7863 add r1, sp, #4 7864 mov r0, r6 7865 bl log2phys 7866 add sp, sp, #8 7867 @ sp needed 7868 pop {r4, r5, r6, r7, r8, pc} 7869.L1022: 7870 .align 2 7871.L1021: 7872 .word .LANCHOR42 7873 .word .LANCHOR47 7874 .word .LANCHOR40 7875 .word .LANCHOR48 7876 .word .LANCHOR160 7877 .word .LC1 7878 .word -1431655765 7879 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 7880 .section .text.ftl_check_vpc,"ax",%progbits 7881 .align 1 7882 .global ftl_check_vpc 7883 .syntax unified 7884 .thumb 7885 .thumb_func 7886 .fpu softvfp 7887 .type ftl_check_vpc, %function 7888ftl_check_vpc: 7889 @ args = 0, pretend = 0, frame = 8 7890 @ frame_needed = 0, uses_anonymous_args = 0 7891 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7892 movs r4, #0 7893 ldr r6, .L1047 7894 ldr r5, .L1047+4 7895 ldr r1, .L1047+8 7896 ldr r0, .L1047+12 7897 bl printf 7898 mov r2, #8192 7899 movs r1, #0 7900 ldr r0, .L1047+4 7901 bl ftl_memset 7902.L1024: 7903 ldr r3, [r6] 7904 cmp r4, r3 7905 bcc .L1026 7906 ldr r10, .L1047+48 7907 movs r4, #0 7908 ldr r7, .L1047+16 7909 mov r6, r4 7910.L1027: 7911 ldrh r2, [r10] 7912 uxth r3, r4 7913 cmp r2, r3 7914 bhi .L1029 7915 ldr r3, .L1047+20 7916 ldr r4, [r3] 7917 cbz r4, .L1030 7918 ldr r3, .L1047+24 7919 mov r8, #0 7920 ldr r5, .L1047+28 7921 ldr r10, .L1047+16 7922 ldrh r7, [r3] 7923 ldr r3, [r5] 7924 ldr fp, .L1047+4 7925 subs r4, r4, r3 7926 ldr r3, .L1047+32 7927 asrs r4, r4, #1 7928 muls r4, r3, r4 7929 uxth r4, r4 7930.L1031: 7931 uxth r3, r8 7932 cmp r7, r3 7933 bls .L1030 7934 ldr r3, [r10] 7935 ldrh r2, [r3, r4, lsl #1] 7936 cbz r2, .L1032 7937 movs r6, #1 7938 ldrh r3, [fp, r4, lsl #1] 7939 mov r1, r4 7940 ldr r0, .L1047+36 7941 bl printf 7942.L1032: 7943 movs r3, #6 7944 ldr r2, [r5] 7945 muls r4, r3, r4 7946 movw r3, #65535 7947 add r8, r8, #1 7948 ldrh r4, [r2, r4] 7949 cmp r4, r3 7950 bne .L1031 7951.L1030: 7952 cbz r6, .L1023 7953 movw r2, #2343 7954 ldr r1, .L1047+8 7955 ldr r0, .L1047+40 7956 bl printf 7957.L1023: 7958 add sp, sp, #8 7959 @ sp needed 7960 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7961.L1026: 7962 movs r2, #0 7963 add r1, sp, #4 7964 mov r0, r4 7965 bl log2phys 7966 ldr r0, [sp, #4] 7967 adds r3, r0, #1 7968 beq .L1025 7969 ubfx r0, r0, #10, #16 7970 bl P2V_block_in_plane 7971 ldrh r3, [r5, r0, lsl #1] 7972 adds r3, r3, #1 7973 strh r3, [r5, r0, lsl #1] @ movhi 7974.L1025: 7975 adds r4, r4, #1 7976 b .L1024 7977.L1029: 7978 ldr r3, [r7] 7979 uxth r5, r4 7980 ldr r8, .L1047+4 7981 ldrh r2, [r3, r5, lsl #1] 7982 ldrh r3, [r8, r5, lsl #1] 7983 cmp r2, r3 7984 beq .L1028 7985 mov r1, r5 7986 ldr r0, .L1047+44 7987 bl printf 7988 ldr r3, [r7] 7989 movw r2, #65535 7990 ldrh r3, [r3, r5, lsl #1] 7991 cmp r3, r2 7992 beq .L1028 7993 ldrh r2, [r8, r5, lsl #1] 7994 cmp r2, r3 7995 it hi 7996 movhi r6, #1 7997.L1028: 7998 adds r4, r4, #1 7999 b .L1027 8000.L1048: 8001 .align 2 8002.L1047: 8003 .word .LANCHOR61 8004 .word check_vpc_table 8005 .word .LANCHOR161 8006 .word .LC94 8007 .word .LANCHOR42 8008 .word .LANCHOR47 8009 .word .LANCHOR48 8010 .word .LANCHOR40 8011 .word -1431655765 8012 .word .LC96 8013 .word .LC1 8014 .word .LC95 8015 .word .LANCHOR5 8016 .size ftl_check_vpc, .-ftl_check_vpc 8017 .section .text.ftl_scan_all_data,"ax",%progbits 8018 .align 1 8019 .global ftl_scan_all_data 8020 .syntax unified 8021 .thumb 8022 .thumb_func 8023 .fpu softvfp 8024 .type ftl_scan_all_data, %function 8025ftl_scan_all_data: 8026 @ args = 0, pretend = 0, frame = 8 8027 @ frame_needed = 0, uses_anonymous_args = 0 8028 push {r4, r5, r6, r7, r8, lr} 8029 movs r5, #0 8030 ldr r7, .L1063 8031 sub sp, sp, #32 8032 movs r1, #0 8033 ldr r8, .L1063+24 8034 ldr r0, .L1063+4 8035 bl printf 8036.L1050: 8037 ldr r3, [r7] 8038 cmp r5, r3 8039 bcc .L1056 8040 add sp, sp, #32 8041 @ sp needed 8042 pop {r4, r5, r6, r7, r8, pc} 8043.L1056: 8044 movs r2, #0 8045 add r1, sp, #28 8046 mov r0, r5 8047 bl log2phys 8048 ubfx r3, r5, #0, #11 8049 cbnz r3, .L1051 8050 ldr r2, [sp, #28] 8051 mov r1, r5 8052 mov r0, r8 8053 bl printf 8054.L1051: 8055 ldr r3, [sp, #28] 8056 adds r2, r3, #1 8057 beq .L1053 8058 ldr r4, .L1063+8 8059 movs r2, #0 8060 movs r1, #1 8061 str r3, [r4, #4] 8062 mov r0, r4 8063 ldr r3, .L1063+12 8064 str r5, [r4, #16] 8065 str r2, [r4] 8066 ldr r3, [r3] 8067 str r3, [r4, #8] 8068 ldr r3, .L1063+16 8069 ldr r6, [r3] 8070 str r6, [r4, #12] 8071 bl FlashReadPages 8072 ldr r3, [r4] 8073 cmp r3, #256 8074 beq .L1054 8075 adds r3, r3, #1 8076 beq .L1054 8077 ldr r3, [r6, #8] 8078 cmp r5, r3 8079 beq .L1053 8080.L1054: 8081 ldr r2, [r4, #8] 8082 ldr r3, [r4, #12] 8083 ldr r0, .L1063+20 8084 ldr r1, [r2, #4] 8085 str r1, [sp, #16] 8086 mov r1, r5 8087 ldr r2, [r2] 8088 str r2, [sp, #12] 8089 ldr r2, [r3, #12] 8090 str r2, [sp, #8] 8091 ldr r2, [r3, #8] 8092 str r2, [sp, #4] 8093 ldr r2, [r3, #4] 8094 str r2, [sp] 8095 ldr r2, [r4, #4] 8096 ldr r3, [r3] 8097 bl printf 8098.L1053: 8099 adds r5, r5, #1 8100 b .L1050 8101.L1064: 8102 .align 2 8103.L1063: 8104 .word .LANCHOR61 8105 .word .LC97 8106 .word .LANCHOR148 8107 .word .LANCHOR115 8108 .word .LANCHOR123 8109 .word .LC99 8110 .word .LC98 8111 .size ftl_scan_all_data, .-ftl_scan_all_data 8112 .section .text.FtlGcScanTempBlk,"ax",%progbits 8113 .align 1 8114 .global FtlGcScanTempBlk 8115 .syntax unified 8116 .thumb 8117 .thumb_func 8118 .fpu softvfp 8119 .type FtlGcScanTempBlk, %function 8120FtlGcScanTempBlk: 8121 @ args = 0, pretend = 0, frame = 48 8122 @ frame_needed = 0, uses_anonymous_args = 0 8123 ldr r3, .L1098 8124 push {r4, r5, r6, r7, r8, r10, fp, lr} 8125 sub sp, sp, #48 8126 mov r4, r0 8127 str r1, [sp, #8] 8128 ldrh r5, [r3] 8129 movw r3, #65535 8130 cmp r5, r3 8131 beq .L1090 8132 cbnz r5, .L1066 8133.L1067: 8134 bl FtlGcPageVarInit 8135 b .L1068 8136.L1090: 8137 movs r5, #0 8138.L1066: 8139 ldr r3, .L1098+4 8140 ldr r2, [sp, #8] 8141 ldrh r3, [r3] 8142 cmp r3, r2 8143 beq .L1067 8144.L1068: 8145 ldr fp, .L1098+52 8146 movs r3, #0 8147 str r3, [sp] 8148.L1069: 8149 ldrh r2, [r4] 8150 movs r3, #0 8151 strb r3, [r4, #8] 8152 movw r3, #65535 8153 cmp r2, r3 8154 beq .L1070 8155.L1087: 8156 ldr r3, .L1098+8 8157 movs r2, #0 8158 ldr r0, [fp] 8159 mov r7, r2 8160 movw lr, #65535 8161 mov r8, #20 8162 ldrh r10, [r3] 8163 ldr r3, .L1098+12 8164 ldr r3, [r3] 8165 str r3, [sp, #12] 8166 ldr r3, .L1098+16 8167 ldrh r3, [r3] 8168 str r3, [sp, #16] 8169 ldr r3, .L1098+20 8170 ldr r3, [r3] 8171 str r3, [sp, #20] 8172 ldr r3, .L1098+24 8173 ldrh ip, [r3] 8174 add r3, r4, #16 8175 str r3, [sp, #4] 8176.L1071: 8177 uxth r3, r2 8178 cmp r10, r3 8179 bhi .L1073 8180 mov r10, #0 8181 movs r2, #0 8182 mov r1, r7 8183 bl FlashReadPages 8184.L1074: 8185 uxth r3, r10 8186 cmp r7, r3 8187 bhi .L1085 8188 ldr r3, [sp] 8189 adds r5, r5, #1 8190 uxth r5, r5 8191 adds r3, r3, #1 8192 str r3, [sp] 8193 ldr r2, [sp] 8194 ldr r3, [sp, #8] 8195 cmp r3, r2 8196 ldr r2, .L1098+4 8197 bls .L1086 8198.L1088: 8199 ldrh r3, [r2] 8200 cmp r3, r5 8201 bhi .L1087 8202.L1070: 8203 ldr r3, .L1098 8204 movw r2, #65535 8205 strh r5, [r4, #2] @ movhi 8206 mov r1, r5 8207 mov r0, r4 8208 strh r2, [r3] @ movhi 8209 movs r2, #0 8210 strb r2, [r4, #6] 8211 bl ftl_sb_update_avl_pages 8212 b .L1089 8213.L1073: 8214 ldr r1, [sp, #4] 8215 ldrh r3, [r1], #2 8216 cmp r3, lr 8217 str r1, [sp, #4] 8218 beq .L1072 8219 mla r1, r8, r7, r0 8220 ldr r6, [sp, #12] 8221 orr r3, r5, r3, lsl #10 8222 str r3, [r1, #4] 8223 ldr r3, [sp, #16] 8224 muls r3, r7, r3 8225 bic r3, r3, #3 8226 add r3, r3, r6 8227 ldr r6, [sp, #20] 8228 str r3, [r1, #8] 8229 mul r3, ip, r7 8230 adds r7, r7, #1 8231 uxth r7, r7 8232 bic r3, r3, #3 8233 add r3, r3, r6 8234 str r3, [r1, #12] 8235.L1072: 8236 adds r2, r2, #1 8237 b .L1071 8238.L1085: 8239 movs r3, #20 8240 ldr r1, [fp] 8241 mul r3, r3, r10 8242 adds r2, r1, r3 8243 ldr r6, [r1, r3] 8244 ldr r0, [r2, #4] 8245 str r0, [sp, #4] 8246 cbnz r6, .L1075 8247 ldr r8, [r2, #12] 8248 movw r2, #65535 8249 ldrh r1, [r8] 8250 cmp r1, r2 8251 bne .L1076 8252.L1075: 8253 ldr r3, .L1098+28 8254 movs r1, #0 8255 ldrh r2, [r4] 8256 movs r5, #0 8257 ldr r3, [r3] 8258 strh r1, [r3, r2, lsl #1] @ movhi 8259 ldrh r0, [r4] 8260 bl INSERT_FREE_LIST 8261 movw r3, #65535 8262 strh r3, [r4] @ movhi 8263 bl FtlGcPageVarInit 8264 b .L1069 8265.L1076: 8266 str r3, [sp, #12] 8267 ldr r3, .L1098+32 8268 ldr r0, [r8, #8] 8269 ldr r2, [r3] 8270 cmp r0, r2 8271 bhi .L1075 8272 mov r2, r6 8273 add r1, sp, #24 8274 bl log2phys 8275 ldr r2, [r8, #12] 8276 ldr r1, [sp, #24] 8277 ldr r3, [sp, #12] 8278 cmp r2, r1 8279 beq .L1079 8280.L1080: 8281 ldr r2, [r8, #8] 8282 add r10, r10, #1 8283 ldr r1, [sp, #4] 8284 ldr r0, [r8, #12] 8285 bl FtlGcUpdatePage 8286 b .L1074 8287.L1079: 8288 str r3, [sp, #12] 8289 adds r3, r2, #1 8290 beq .L1080 8291 str r2, [sp, #32] 8292 movs r1, #1 8293 ldr r2, .L1098+36 8294 add r0, sp, #28 8295 ldr r2, [r2] 8296 str r2, [sp, #36] 8297 ldr r2, .L1098+40 8298 ldr r2, [r2] 8299 str r2, [sp, #40] 8300 mov r2, r6 8301 bl FlashReadPages 8302 ldr r2, .L1098+44 8303 ldr r1, [fp] 8304 ldr r3, [sp, #12] 8305 ldrh r2, [r2] 8306 ldr r0, [sp, #36] 8307 add ip, r3, r1 8308 lsls r2, r2, #7 8309.L1081: 8310 cmp r6, r2 8311 beq .L1080 8312 ldr r1, [ip, #8] 8313 ldr r3, [r0, r6, lsl #2] 8314 ldr r1, [r1, r6, lsl #2] 8315 cmp r1, r3 8316 beq .L1082 8317 ldr r2, [sp, #32] 8318 ldrh r1, [r4] 8319 ldr r0, .L1098+48 8320 bl printf 8321 b .L1075 8322.L1082: 8323 adds r6, r6, #1 8324 b .L1081 8325.L1086: 8326 ldr r1, .L1098 8327 movw r0, #65535 8328 ldrh r3, [r1] 8329 cmp r3, r0 8330 beq .L1088 8331 ldr r0, [sp] 8332 add r3, r3, r0 8333 strh r3, [r1] @ movhi 8334 ldrh r3, [r2] 8335 cmp r3, r5 8336 bls .L1088 8337.L1089: 8338 mov r0, #-1 8339 add sp, sp, #48 8340 @ sp needed 8341 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8342.L1099: 8343 .align 2 8344.L1098: 8345 .word .LANCHOR162 8346 .word .LANCHOR19 8347 .word .LANCHOR3 8348 .word .LANCHOR91 8349 .word .LANCHOR23 8350 .word .LANCHOR92 8351 .word .LANCHOR24 8352 .word .LANCHOR42 8353 .word .LANCHOR61 8354 .word .LANCHOR119 8355 .word .LANCHOR124 8356 .word .LANCHOR12 8357 .word .LC100 8358 .word .LANCHOR112 8359 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 8360 .section .text.FtlReadRefresh,"ax",%progbits 8361 .align 1 8362 .global FtlReadRefresh 8363 .syntax unified 8364 .thumb 8365 .thumb_func 8366 .fpu softvfp 8367 .type FtlReadRefresh, %function 8368FtlReadRefresh: 8369 @ args = 0, pretend = 0, frame = 88 8370 @ frame_needed = 0, uses_anonymous_args = 0 8371 ldr r3, .L1113 8372 push {r4, r5, r6, lr} 8373 sub sp, sp, #88 8374 mov r4, r3 8375 ldr r0, [r3, #80] 8376 cmp r0, #0 8377 beq .L1101 8378 ldr r6, .L1113+4 8379 ldr r0, [r3, #84] 8380 ldr r1, [r6] 8381 cmp r0, r1 8382 bcs .L1102 8383 mov r5, #2048 8384.L1107: 8385 ldr r0, [r4, #84] 8386 ldr r3, [r6] 8387 cmp r0, r3 8388 bcs .L1104 8389 movs r2, #0 8390 mov r1, sp 8391 bl log2phys 8392 ldr r2, [sp] 8393 ldr r3, [r4, #84] 8394 adds r1, r2, #1 8395 add r3, r3, #1 8396 str r3, [r4, #84] 8397 beq .L1105 8398 str r3, [sp, #20] 8399 add r0, sp, #88 8400 ldr r3, .L1113+8 8401 movs r1, #1 8402 str r2, [sp, #8] 8403 movs r2, #0 8404 str r2, [r0, #-84]! 8405 ldr r3, [r3] 8406 str r3, [sp, #12] 8407 add r3, sp, #24 8408 str r3, [sp, #16] 8409 bl FlashReadPages 8410 ldr r3, [sp, #4] 8411 cmp r3, #256 8412 bne .L1104 8413 ldr r0, [sp] 8414 ubfx r0, r0, #10, #16 8415 bl P2V_block_in_plane 8416 bl FtlGcRefreshBlock 8417.L1104: 8418 mov r0, #-1 8419.L1100: 8420 add sp, sp, #88 8421 @ sp needed 8422 pop {r4, r5, r6, pc} 8423.L1105: 8424 subs r5, r5, #1 8425 bne .L1107 8426 b .L1104 8427.L1102: 8428 ldr r2, .L1113+12 8429 movs r0, #0 8430 str r0, [r3, #80] 8431 str r0, [r3, #84] 8432 ldr r2, [r2] 8433 str r2, [r3, #76] 8434 b .L1100 8435.L1101: 8436 ldr r1, [r3, #76] 8437 ldr r3, .L1113+12 8438 ldr r5, [r3] 8439 add r3, r5, #1048576 8440 cmp r1, r3 8441 bhi .L1110 8442 ldr r3, .L1113+16 8443 ldr r2, [r3] 8444 mov r3, #33554432 8445 lsrs r2, r2, #10 8446 asrs r3, r3, r2 8447 add r3, r3, r1 8448 cmp r5, r3 8449 bhi .L1110 8450 ldr r3, .L1113+20 8451 ldrb r3, [r3, #28] @ zero_extendqisi2 8452 cmp r3, #0 8453 bne .L1100 8454.L1110: 8455 movs r3, #1 8456 movs r0, #0 8457 str r3, [r4, #80] 8458 str r0, [r4, #84] 8459 str r5, [r4, #76] 8460 b .L1100 8461.L1114: 8462 .align 2 8463.L1113: 8464 .word .LANCHOR81 8465 .word .LANCHOR61 8466 .word .LANCHOR121 8467 .word .LANCHOR62 8468 .word .LANCHOR76 8469 .word .LANCHOR39 8470 .size FtlReadRefresh, .-FtlReadRefresh 8471 .section .text.FtlMapBlkWriteDump_data,"ax",%progbits 8472 .align 1 8473 .global FtlMapBlkWriteDump_data 8474 .syntax unified 8475 .thumb 8476 .thumb_func 8477 .fpu softvfp 8478 .type FtlMapBlkWriteDump_data, %function 8479FtlMapBlkWriteDump_data: 8480 @ args = 0, pretend = 0, frame = 0 8481 @ frame_needed = 0, uses_anonymous_args = 0 8482 ldr r3, [r0, #36] 8483 push {r4, r5, r6, lr} 8484 mov r6, r0 8485 cbz r3, .L1115 8486 ldrh r5, [r0, #6] 8487 movs r3, #0 8488 ldr r2, [r0, #24] 8489 str r3, [r0, #36] 8490 subs r5, r5, #1 8491 ldr r3, .L1119 8492 ldr r1, .L1119+4 8493 uxth r5, r5 8494 ldr r4, .L1119+8 8495 ldr r2, [r2, r5, lsl #2] 8496 ldr r0, [r3] 8497 ldr r1, [r1] 8498 str r2, [r4, #4] 8499 str r0, [r4, #8] 8500 str r1, [r4, #12] 8501 cbz r2, .L1117 8502 movs r2, #1 8503 mov r0, r4 8504 mov r1, r2 8505 bl FlashReadPages 8506.L1118: 8507 ldr r2, [r4, #8] 8508 mov r1, r5 8509 mov r0, r6 8510 pop {r4, r5, r6, lr} 8511 b FtlMapWritePage 8512.L1117: 8513 ldr r3, .L1119+12 8514 movs r1, #255 8515 ldrh r2, [r3] 8516 bl ftl_memset 8517 b .L1118 8518.L1115: 8519 pop {r4, r5, r6, pc} 8520.L1120: 8521 .align 2 8522.L1119: 8523 .word .LANCHOR116 8524 .word .LANCHOR123 8525 .word .LANCHOR148 8526 .word .LANCHOR23 8527 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 8528 .section .text.FlashTestBlk,"ax",%progbits 8529 .align 1 8530 .global FlashTestBlk 8531 .syntax unified 8532 .thumb 8533 .thumb_func 8534 .fpu softvfp 8535 .type FlashTestBlk, %function 8536FlashTestBlk: 8537 @ args = 0, pretend = 0, frame = 88 8538 @ frame_needed = 0, uses_anonymous_args = 0 8539 cmp r0, #11 8540 push {r4, r5, lr} 8541 mov r4, r0 8542 sub sp, sp, #92 8543 bls .L1123 8544 ldr r5, .L1124 8545 add r0, sp, #24 8546 movs r2, #32 8547 movs r1, #165 8548 str r0, [sp, #16] 8549 lsls r4, r4, #10 8550 ldr r3, [r5] 8551 str r3, [sp, #12] 8552 bl ftl_memset 8553 movs r2, #8 8554 movs r1, #90 8555 ldr r0, [r5] 8556 bl ftl_memset 8557 movs r2, #1 8558 add r0, sp, #4 8559 mov r1, r2 8560 str r4, [sp, #8] 8561 bl FlashEraseBlocks 8562 movs r3, #1 8563 add r0, sp, #4 8564 mov r2, r3 8565 mov r1, r3 8566 bl FlashProgPages 8567 ldr r4, [sp, #4] 8568 movs r2, #1 8569 movs r1, #0 8570 add r0, sp, #4 8571 adds r4, r4, #0 8572 it ne 8573 movne r4, #1 8574 negs r4, r4 8575 bl FlashEraseBlocks 8576.L1121: 8577 mov r0, r4 8578 add sp, sp, #92 8579 @ sp needed 8580 pop {r4, r5, pc} 8581.L1123: 8582 movs r4, #0 8583 b .L1121 8584.L1125: 8585 .align 2 8586.L1124: 8587 .word .LANCHOR121 8588 .size FlashTestBlk, .-FlashTestBlk 8589 .section .text.FtlBbmTblFlush,"ax",%progbits 8590 .align 1 8591 .global FtlBbmTblFlush 8592 .syntax unified 8593 .thumb 8594 .thumb_func 8595 .fpu softvfp 8596 .type FtlBbmTblFlush, %function 8597FtlBbmTblFlush: 8598 @ args = 0, pretend = 0, frame = 8 8599 @ frame_needed = 0, uses_anonymous_args = 0 8600 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 8601 movs r4, #0 8602 ldr r7, .L1135 8603 movs r1, #0 8604 ldr r5, .L1135+4 8605 ldr r3, [r7] 8606 mov fp, r7 8607 ldr r8, .L1135+48 8608 ldr r6, .L1135+8 8609 str r3, [r5, #12] 8610 ldr r7, .L1135+12 8611 ldr r3, .L1135+16 8612 ldr r10, .L1135+52 8613 ldr r0, [r8] 8614 ldrh r2, [r3] 8615 str r0, [r5, #8] 8616 bl ftl_memset 8617.L1127: 8618 ldrh r3, [r7] 8619 cmp r4, r3 8620 blt .L1128 8621 ldr r6, [r5, #12] 8622 movs r2, #16 8623 ldr r4, .L1135+20 8624 movs r1, #255 8625 movs r7, #0 8626 mov r0, r6 8627 bl ftl_memset 8628 movw r3, #61649 8629 mov r10, r4 8630 strh r3, [r6] @ movhi 8631 ldr r3, [r4, #8] 8632 str r7, [sp, #12] 8633 str r3, [r6, #4] 8634 ldrh r3, [r4] 8635 strh r3, [r6, #2] @ movhi 8636 ldrh r3, [r4, #4] 8637 strh r3, [r6, #8] @ movhi 8638 ldrh r3, [r4, #6] 8639 strh r3, [r6, #10] @ movhi 8640 ldr r3, .L1135+24 8641 ldr r3, [r3] 8642 strh r3, [r6, #12] @ movhi 8643.L1129: 8644 ldr r3, [r8] 8645 ldrh r2, [r4, #2] 8646 ldrh r1, [r4] 8647 str r3, [r5, #8] 8648 ldr r3, [fp] 8649 ldrh r0, [r6, #10] 8650 str r3, [r5, #12] 8651 movs r3, #0 8652 str r3, [r5] 8653 orr r3, r2, r1, lsl #10 8654 str r3, [r5, #4] 8655 ldrh r3, [r4, #4] 8656 str r0, [sp] 8657 ldr r0, .L1135+28 8658 bl printf 8659 ldr r3, .L1135+32 8660 ldrh r2, [r4, #2] 8661 ldrh r3, [r3] 8662 subs r3, r3, #1 8663 cmp r2, r3 8664 blt .L1130 8665 ldr r3, [r4, #8] 8666 mov r1, #0 @ movhi 8667 ldrh r2, [r4] 8668 strh r1, [r4, #2] @ movhi 8669 adds r3, r3, #1 8670 str r3, [r4, #8] 8671 str r3, [r6, #4] 8672 strh r2, [r6, #8] @ movhi 8673 ldrh r3, [r4, #4] 8674 strh r2, [r4, #4] @ movhi 8675 ldr r2, .L1135+36 8676 strh r3, [r4] @ movhi 8677 lsls r3, r3, #10 8678 ldr r0, [r2] 8679 movs r2, #1 8680 str r3, [r5, #4] 8681 mov r1, r2 8682 str r3, [r0, #4] 8683 bl FlashEraseBlocks 8684.L1130: 8685 movs r3, #1 8686 ldr r0, .L1135+4 8687 mov r2, r3 8688 mov r1, r3 8689 bl FlashProgPages 8690 ldrh r3, [r10, #2] 8691 adds r3, r3, #1 8692 strh r3, [r10, #2] @ movhi 8693 ldr r3, [r5] 8694 adds r3, r3, #1 8695 bne .L1131 8696 adds r7, r7, #1 8697 ldr r1, [r5, #4] 8698 uxth r7, r7 8699 ldr r0, .L1135+40 8700 bl printf 8701 cmp r7, #3 8702 bls .L1129 8703 mov r2, r7 8704 ldr r1, [r5, #4] 8705 ldr r0, .L1135+44 8706 bl printf 8707.L1133: 8708 b .L1133 8709.L1128: 8710 ldrh r2, [r10] 8711 ldr r3, [r5, #8] 8712 ldr r1, [r6, #4]! 8713 mul r0, r2, r4 8714 lsls r2, r2, #2 8715 adds r4, r4, #1 8716 add r0, r3, r0, lsl #2 8717 bl ftl_memcpy 8718 b .L1127 8719.L1134: 8720 movs r3, #1 8721 str r3, [sp, #12] 8722 b .L1129 8723.L1131: 8724 ldr r3, [sp, #12] 8725 cmp r3, #0 8726 beq .L1134 8727 movs r0, #0 8728 add sp, sp, #16 8729 @ sp needed 8730 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8731.L1136: 8732 .align 2 8733.L1135: 8734 .word .LANCHOR123 8735 .word .LANCHOR148 8736 .word .LANCHOR37+24 8737 .word .LANCHOR10 8738 .word .LANCHOR23 8739 .word .LANCHOR37 8740 .word .LANCHOR2 8741 .word .LC101 8742 .word .LANCHOR20 8743 .word .LANCHOR106 8744 .word .LC102 8745 .word .LC103 8746 .word .LANCHOR115 8747 .word .LANCHOR137 8748 .size FtlBbmTblFlush, .-FtlBbmTblFlush 8749 .section .text.allocate_data_superblock,"ax",%progbits 8750 .align 1 8751 .global allocate_data_superblock 8752 .syntax unified 8753 .thumb 8754 .thumb_func 8755 .fpu softvfp 8756 .type allocate_data_superblock, %function 8757allocate_data_superblock: 8758 @ args = 0, pretend = 0, frame = 8 8759 @ frame_needed = 0, uses_anonymous_args = 0 8760 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 8761 mov r4, r0 8762.L1138: 8763 ldr r3, .L1177 8764 ldr r8, .L1177+68 8765 ldrh r3, [r3] 8766 ldr r10, .L1177+72 8767 ldrh r2, [r8] 8768 add r3, r3, r2 8769 ldrh r2, [r10] 8770 cmp r3, r2 8771 ble .L1139 8772 movw r2, #2615 8773 ldr r1, .L1177+4 8774 ldr r0, .L1177+8 8775 bl printf 8776.L1139: 8777 ldr r3, .L1177+12 8778 cmp r4, r3 8779 bne .L1165 8780 ldr r3, .L1177 8781 ldr r2, .L1177+16 8782 ldrh r3, [r3] 8783 ldr r2, [r2] 8784 lsrs r1, r3, #1 8785 muls r2, r3, r2 8786 adds r1, r1, #1 8787 add r1, r1, r2, lsr #2 8788 uxth r1, r1 8789 cbz r1, .L1140 8790 subs r1, r1, #1 8791 uxth r1, r1 8792.L1140: 8793 ldr r0, .L1177+20 8794 bl List_pop_index_node 8795 ldr r3, .L1177 8796 mov r5, r0 8797 uxth r7, r0 8798 ldrh r3, [r3] 8799 cbnz r3, .L1141 8800 mov r2, #2624 8801 ldr r1, .L1177+4 8802 ldr r0, .L1177+8 8803 bl printf 8804.L1141: 8805 ldr r3, .L1177 8806 ldr r2, .L1177 8807 ldrh r3, [r3] 8808 subs r3, r3, #1 8809 strh r3, [r2] @ movhi 8810 ldrh r3, [r10] 8811 cmp r3, r7 8812 bls .L1138 8813 uxth r5, r5 8814 lsls r3, r5, #1 8815 str r3, [sp] 8816 ldr r3, .L1177+24 8817 ldr r3, [r3] 8818 ldrh r6, [r3, r5, lsl #1] 8819 cmp r6, #0 8820 bne .L1138 8821 strh r7, [r4] @ movhi 8822 mov r0, r4 8823 bl make_superblock 8824 ldrb r3, [r4, #7] @ zero_extendqisi2 8825 cbnz r3, .L1143 8826 ldr r3, .L1177+24 8827 movw r2, #65535 8828 mov r0, r7 8829 ldr r3, [r3] 8830 strh r2, [r3, r5, lsl #1] @ movhi 8831 bl INSERT_DATA_LIST 8832 ldr r3, .L1177 8833 ldrh r2, [r8] 8834 ldrh r3, [r3] 8835 add r3, r3, r2 8836 ldrh r2, [r10] 8837 cmp r3, r2 8838 ble .L1138 8839 movw r2, #2638 8840 ldr r1, .L1177+4 8841 ldr r0, .L1177+8 8842 bl printf 8843 b .L1138 8844.L1165: 8845 movs r1, #0 8846 b .L1140 8847.L1143: 8848 ldr r3, .L1177 8849 ldrh r2, [r8] 8850 ldrh r3, [r3] 8851 add r3, r3, r2 8852 ldrh r2, [r10] 8853 cmp r3, r2 8854 ble .L1145 8855 movw r2, #2641 8856 ldr r1, .L1177+4 8857 ldr r0, .L1177+8 8858 bl printf 8859.L1145: 8860 ldr r3, .L1177+28 8861 add lr, r4, #16 8862 ldr r2, .L1177+32 8863 mov r8, #0 8864 ldr ip, [r3] 8865 ldrh r0, [r2] 8866 movs r2, #20 8867 mov r3, ip 8868 mla r0, r2, r0, ip 8869.L1146: 8870 cmp r0, r3 8871 bne .L1148 8872 cbnz r6, .L1149 8873 movw r2, #2652 8874 ldr r1, .L1177+4 8875 ldr r0, .L1177+8 8876 bl printf 8877.L1149: 8878 ldr r3, .L1177+36 8879 ldrh r3, [r3] 8880 cmp r3, r7 8881 bne .L1150 8882 movw r2, #2654 8883 ldr r1, .L1177+4 8884 ldr r0, .L1177+8 8885 bl printf 8886.L1150: 8887 ldrb r2, [r4, #8] @ zero_extendqisi2 8888 ldr r3, .L1177+40 8889 ldr fp, .L1177+76 8890 ldr r8, .L1177+80 8891 ldr r1, [r3] 8892 cmp r2, #0 8893 bne .L1151 8894 ldrh r2, [r1, r5, lsl #1] 8895 cmp r2, #0 8896 beq .L1152 8897 ldr r0, .L1177+44 8898 ldrh r0, [r0] 8899 add r2, r2, r0 8900.L1175: 8901 strh r2, [r1, r5, lsl #1] @ movhi 8902 mov r0, r7 8903 ldr r2, [fp] 8904 movs r1, #0 8905 str r3, [sp, #4] 8906 adds r2, r2, #1 8907 str r2, [fp] 8908 bl ftl_set_blk_mode 8909.L1176: 8910 ldr r3, [sp, #4] 8911 ldr r0, [fp] 8912 ldr r3, [r3] 8913 ldrh r1, [r3, r5, lsl #1] 8914 ldr r3, .L1177+48 8915 ldr r2, [r3] 8916 cmp r1, r2 8917 it hi 8918 strhi r1, [r3] 8919 ldr r3, .L1177+44 8920 ldrh r1, [r10] 8921 ldrh r2, [r3] 8922 ldr r3, [r8] 8923 mla r0, r0, r2, r3 8924 bl __aeabi_uidiv 8925 ldr r3, .L1177+52 8926 ldr ip, .L1177+84 8927 str r0, [r3] 8928 ldr r3, .L1177+56 8929 ldr r2, [r3] 8930 ldr r3, [r2, #16] 8931 adds r3, r3, #1 8932 str r3, [r2, #16] 8933 movs r2, #20 8934 ldr r3, .L1177+28 8935 ldr r0, [r3] 8936 adds r3, r0, #4 8937 mla r2, r2, r6, r0 8938 adds r2, r2, #24 8939.L1156: 8940 adds r3, r3, #20 8941 cmp r2, r3 8942 bne .L1157 8943 mov r2, r6 8944 ldrb r1, [r4, #8] @ zero_extendqisi2 8945 mov r8, #0 8946 bl FlashEraseBlocks 8947 mov r10, r8 8948 movs r3, #20 8949.L1158: 8950 uxth r2, r8 8951 cmp r6, r2 8952 bhi .L1160 8953 cmp r10, #0 8954 beq .L1161 8955 mov r0, r7 8956 bl update_multiplier_value 8957 bl FtlBbmTblFlush 8958.L1161: 8959 ldrb r2, [r4, #7] @ zero_extendqisi2 8960 cmp r2, #0 8961 bne .L1162 8962 ldr r3, .L1177+24 8963 movw r2, #65535 8964 ldr r3, [r3] 8965 strh r2, [r3, r5, lsl #1] @ movhi 8966 b .L1138 8967.L1148: 8968 ldrh r1, [lr], #2 8969 movw fp, #65535 8970 str r8, [r3, #8] 8971 str r8, [r3, #12] 8972 cmp r1, fp 8973 beq .L1147 8974 mla fp, r2, r6, ip 8975 adds r6, r6, #1 8976 lsls r1, r1, #10 8977 uxth r6, r6 8978 str r1, [fp, #4] 8979.L1147: 8980 adds r3, r3, #20 8981 b .L1146 8982.L1152: 8983 movs r2, #2 8984 b .L1175 8985.L1151: 8986 ldrh r2, [r1, r5, lsl #1] 8987 mov r0, r7 8988 str r3, [sp, #4] 8989 adds r2, r2, #1 8990 strh r2, [r1, r5, lsl #1] @ movhi 8991 ldr r2, [r8] 8992 adds r2, r2, #1 8993 str r2, [r8] 8994 bl ftl_set_blk_mode.part.6 8995 b .L1176 8996.L1157: 8997 ldr r1, [r3, #-20] 8998 and r1, r1, ip 8999 str r1, [r3, #-20] 9000 b .L1156 9001.L1160: 9002 ldr r1, .L1177+28 9003 mul r2, r3, r8 9004 ldr r1, [r1] 9005 ldr fp, [r1, r2] 9006 adds r0, r1, r2 9007 cmp fp, #-1 9008 bne .L1159 9009 ldr r0, [r0, #4] 9010 add r10, r10, #1 9011 str r3, [sp, #4] 9012 ubfx r0, r0, #10, #16 9013 bl FtlBbmMapBadBlock 9014 add r2, r4, r8, lsl #1 9015 ldr r3, [sp, #4] 9016 strh fp, [r2, #16] @ movhi 9017 ldrb r2, [r4, #7] @ zero_extendqisi2 9018 subs r2, r2, #1 9019 strb r2, [r4, #7] 9020.L1159: 9021 add r8, r8, #1 9022 b .L1158 9023.L1162: 9024 ldr r3, .L1177+60 9025 ldr r1, .L1177+64 9026 ldrh r3, [r3] 9027 strh r7, [r4] @ movhi 9028 smulbb r3, r3, r2 9029 movs r2, #0 9030 strh r2, [r4, #2] @ movhi 9031 strb r2, [r4, #6] 9032 ldr r2, [r1] 9033 uxth r3, r3 9034 strh r3, [r4, #4] @ movhi 9035 str r2, [r4, #12] 9036 adds r2, r2, #1 9037 str r2, [r1] 9038 ldr r2, .L1177+24 9039 ldr r1, [sp] 9040 ldr r2, [r2] 9041 strh r3, [r2, r1] @ movhi 9042 ldrh r3, [r4, #4] 9043 cbz r3, .L1163 9044 ldrb r3, [r4, #7] @ zero_extendqisi2 9045 cbnz r3, .L1164 9046.L1163: 9047 movw r2, #2707 9048 ldr r1, .L1177+4 9049 ldr r0, .L1177+8 9050 bl printf 9051.L1164: 9052 movs r0, #0 9053 add sp, sp, #8 9054 @ sp needed 9055 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9056.L1178: 9057 .align 2 9058.L1177: 9059 .word .LANCHOR48 9060 .word .LANCHOR163 9061 .word .LC1 9062 .word .LANCHOR53 9063 .word .LANCHOR87 9064 .word .LANCHOR47 9065 .word .LANCHOR42 9066 .word .LANCHOR106 9067 .word .LANCHOR3 9068 .word .LANCHOR80 9069 .word .LANCHOR43 9070 .word .LANCHOR14 9071 .word .LANCHOR76 9072 .word .LANCHOR74 9073 .word .LANCHOR127 9074 .word .LANCHOR19 9075 .word .LANCHOR70 9076 .word .LANCHOR45 9077 .word .LANCHOR5 9078 .word .LANCHOR72 9079 .word .LANCHOR73 9080 .word -1024 9081 .size allocate_data_superblock, .-allocate_data_superblock 9082 .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits 9083 .align 1 9084 .global FtlGcFreeBadSuperBlk 9085 .syntax unified 9086 .thumb 9087 .thumb_func 9088 .fpu softvfp 9089 .type FtlGcFreeBadSuperBlk, %function 9090FtlGcFreeBadSuperBlk: 9091 @ args = 0, pretend = 0, frame = 8 9092 @ frame_needed = 0, uses_anonymous_args = 0 9093 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 9094 mov r10, r0 9095 ldr r4, .L1191 9096 ldrh r3, [r4] 9097 cbz r3, .L1180 9098 ldr r8, .L1191+16 9099 movs r6, #0 9100.L1181: 9101 ldr r3, .L1191+4 9102 ldrh r2, [r3] 9103 uxth r3, r6 9104 cmp r2, r3 9105 bhi .L1187 9106 bl FtlGcReFreshBadBlk 9107.L1180: 9108 movs r0, #0 9109 add sp, sp, #8 9110 @ sp needed 9111 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9112.L1187: 9113 ldr r2, .L1191+8 9114 uxth r3, r6 9115 mov r1, r10 9116 movs r7, #0 9117 ldrb r0, [r2, r3] @ zero_extendqisi2 9118 bl V2P_block 9119 ldr r2, .L1191+12 9120 mov fp, r0 9121.L1182: 9122 ldrh r3, [r4] 9123 uxth r5, r7 9124 cmp r3, r5 9125 bhi .L1186 9126 adds r6, r6, #1 9127 b .L1181 9128.L1186: 9129 uxth r3, r7 9130 ldrh r1, [r8, r3, lsl #1] 9131 cmp r1, fp 9132 bne .L1183 9133 mov r1, fp 9134 mov r0, r2 9135 str r3, [sp, #4] 9136 str r2, [sp] 9137 bl printf 9138 mov r0, fp 9139 bl FtlBbmMapBadBlock 9140 bl FtlBbmTblFlush 9141 ldr r3, [sp, #4] 9142 ldrh r1, [r4] 9143 ldr r2, [sp] 9144 add r3, r8, r3, lsl #1 9145.L1184: 9146 cmp r5, r1 9147 bcc .L1185 9148 subs r1, r1, #1 9149 strh r1, [r4] @ movhi 9150.L1183: 9151 adds r7, r7, #1 9152 b .L1182 9153.L1185: 9154 ldrh r0, [r3, #2]! 9155 adds r5, r5, #1 9156 uxth r5, r5 9157 strh r0, [r3, #-2] @ movhi 9158 b .L1184 9159.L1192: 9160 .align 2 9161.L1191: 9162 .word .LANCHOR101 9163 .word .LANCHOR3 9164 .word .LANCHOR13 9165 .word .LC104 9166 .word .LANCHOR102 9167 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 9168 .section .text.update_vpc_list,"ax",%progbits 9169 .align 1 9170 .global update_vpc_list 9171 .syntax unified 9172 .thumb 9173 .thumb_func 9174 .fpu softvfp 9175 .type update_vpc_list, %function 9176update_vpc_list: 9177 @ args = 0, pretend = 0, frame = 0 9178 @ frame_needed = 0, uses_anonymous_args = 0 9179 push {r3, r4, r5, lr} 9180 mov r4, r0 9181 ldr r3, .L1203 9182 ldr r3, [r3] 9183 ldrh r3, [r3, r0, lsl #1] 9184 cmp r3, #0 9185 bne .L1194 9186 ldr r2, .L1203+4 9187 ldrh r1, [r2] 9188 cmp r1, r0 9189 bne .L1195 9190 movw r3, #65535 9191 strh r3, [r2] @ movhi 9192.L1196: 9193 ldr r5, .L1203+8 9194 mov r1, r4 9195 ldr r0, .L1203+12 9196 bl List_remove_node 9197 ldrh r3, [r5] 9198 cbnz r3, .L1198 9199 movw r2, #2777 9200 ldr r1, .L1203+16 9201 ldr r0, .L1203+20 9202 bl printf 9203.L1198: 9204 ldrh r3, [r5] 9205 mov r0, r4 9206 subs r3, r3, #1 9207 strh r3, [r5] @ movhi 9208 bl free_data_superblock 9209 mov r0, r4 9210 bl FtlGcFreeBadSuperBlk 9211 ldr r3, .L1203+24 9212 ldrh r2, [r5] 9213 ldrh r3, [r3] 9214 add r3, r3, r2 9215 ldr r2, .L1203+28 9216 ldrh r2, [r2] 9217 cmp r3, r2 9218 ble .L1202 9219 movw r2, #2780 9220 ldr r1, .L1203+16 9221 ldr r0, .L1203+20 9222 bl printf 9223.L1202: 9224 movs r3, #1 9225 b .L1193 9226.L1195: 9227 ldr r2, .L1203+32 9228 ldrh r2, [r2] 9229 cmp r2, r0 9230 beq .L1193 9231 ldr r2, .L1203+36 9232 ldrh r2, [r2] 9233 cmp r2, r0 9234 beq .L1193 9235 ldr r2, .L1203+40 9236 ldrh r2, [r2] 9237 cmp r2, r0 9238 bne .L1196 9239.L1193: 9240 mov r0, r3 9241 pop {r3, r4, r5, pc} 9242.L1194: 9243 bl List_update_data_list 9244 movs r3, #0 9245 b .L1193 9246.L1204: 9247 .align 2 9248.L1203: 9249 .word .LANCHOR42 9250 .word .LANCHOR80 9251 .word .LANCHOR45 9252 .word .LANCHOR41 9253 .word .LANCHOR164 9254 .word .LC1 9255 .word .LANCHOR48 9256 .word .LANCHOR5 9257 .word .LANCHOR51 9258 .word .LANCHOR52 9259 .word .LANCHOR53 9260 .size update_vpc_list, .-update_vpc_list 9261 .section .text.decrement_vpc_count,"ax",%progbits 9262 .align 1 9263 .global decrement_vpc_count 9264 .syntax unified 9265 .thumb 9266 .thumb_func 9267 .fpu softvfp 9268 .type decrement_vpc_count, %function 9269decrement_vpc_count: 9270 @ args = 0, pretend = 0, frame = 0 9271 @ frame_needed = 0, uses_anonymous_args = 0 9272 movw r3, #65535 9273 push {r4, r5, r6, lr} 9274 cmp r0, r3 9275 mov r4, r0 9276 beq .L1206 9277 ldr r5, .L1214 9278 ldr r3, [r5] 9279 ldrh r2, [r3, r0, lsl #1] 9280 cbnz r2, .L1207 9281 mov r1, r0 9282 ldr r0, .L1214+4 9283 bl printf 9284 ldr r3, [r5] 9285 ldrh r5, [r3, r4, lsl #1] 9286 cbz r5, .L1208 9287.L1212: 9288 movs r5, #0 9289.L1205: 9290 mov r0, r5 9291 pop {r4, r5, r6, pc} 9292.L1208: 9293 movw r2, #2795 9294.L1213: 9295 ldr r1, .L1214+8 9296 ldr r0, .L1214+12 9297 bl printf 9298 b .L1205 9299.L1207: 9300 subs r2, r2, #1 9301 strh r2, [r3, r0, lsl #1] @ movhi 9302.L1206: 9303 ldr r6, .L1214+16 9304 movw r3, #65535 9305 ldrh r0, [r6] 9306 cmp r0, r3 9307 bne .L1210 9308 strh r4, [r6] @ movhi 9309 b .L1212 9310.L1210: 9311 cmp r4, r0 9312 beq .L1212 9313 bl update_vpc_list 9314 ldr r3, .L1214+20 9315 adds r5, r0, #0 9316 ldr r2, .L1214+24 9317 it ne 9318 movne r5, #1 9319 strh r4, [r6] @ movhi 9320 ldr r3, [r3] 9321 ldr r2, [r2] 9322 subs r3, r3, r2 9323 asrs r2, r3, #1 9324 ldr r3, .L1214+28 9325 muls r3, r2, r3 9326 ldr r2, .L1214 9327 ldr r2, [r2] 9328 uxth r1, r3 9329 ldrh r2, [r2, r1, lsl #1] 9330 cmp r2, #0 9331 bne .L1205 9332 cmp r4, r1 9333 beq .L1205 9334 movw r2, #2811 9335 b .L1213 9336.L1215: 9337 .align 2 9338.L1214: 9339 .word .LANCHOR42 9340 .word .LC105 9341 .word .LANCHOR165 9342 .word .LC1 9343 .word .LANCHOR142 9344 .word .LANCHOR41 9345 .word .LANCHOR40 9346 .word -1431655765 9347 .size decrement_vpc_count, .-decrement_vpc_count 9348 .section .text.FtlRecoverySuperblock,"ax",%progbits 9349 .align 1 9350 .global FtlRecoverySuperblock 9351 .syntax unified 9352 .thumb 9353 .thumb_func 9354 .fpu softvfp 9355 .type FtlRecoverySuperblock, %function 9356FtlRecoverySuperblock: 9357 @ args = 0, pretend = 0, frame = 48 9358 @ frame_needed = 0, uses_anonymous_args = 0 9359 ldrh r3, [r0] 9360 movw r2, #65535 9361 push {r4, r5, r6, r7, r8, r10, fp, lr} 9362 mov r8, r0 9363 sub sp, sp, #48 9364 cmp r3, r2 9365 beq .L1344 9366 ldrh r3, [r0, #2] 9367 str r3, [sp, #4] 9368 ldrb r3, [r0, #6] @ zero_extendqisi2 9369 ldr r1, [sp, #4] 9370 str r3, [sp, #20] 9371 ldr r3, .L1352 9372 ldrh r3, [r3] 9373 cmp r3, r1 9374 mov r3, #0 9375 bne .L1219 9376 strh r3, [r0, #4] @ movhi 9377.L1350: 9378 strb r3, [r8, #6] 9379.L1344: 9380 movs r0, #0 9381 add sp, sp, #48 9382 @ sp needed 9383 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9384.L1219: 9385 ldrh r0, [r0, #16] 9386.L1220: 9387 cmp r0, r2 9388 uxth r5, r3 9389 add r3, r3, #1 9390 beq .L1221 9391 movs r1, #1 9392 bl FtlGetLastWrittenPage 9393 mov r4, r0 9394 adds r0, r0, #1 9395 beq .L1222 9396 ldr r3, .L1352+4 9397 movs r2, #0 9398 mov r5, r2 9399 movw fp, #65535 9400 mov r10, #20 9401 ldrh ip, [r3] 9402 ldr r3, .L1352+8 9403 ldr r0, [r3] 9404 ldr r3, .L1352+12 9405 ldr r3, [r3] 9406 str r3, [sp, #8] 9407 ldr r3, .L1352+16 9408 ldrh r7, [r3] 9409 ldr r3, .L1352+20 9410 ldr r3, [r3] 9411 str r3, [sp, #12] 9412 ldr r3, .L1352+24 9413 ldrh lr, [r3] 9414 add r3, r8, #16 9415 str r3, [sp, #16] 9416 str r3, [sp] 9417.L1223: 9418 uxth r3, r2 9419 cmp ip, r3 9420 bhi .L1227 9421 movs r2, #0 9422 mov r1, r5 9423 bl FlashReadPages 9424 ldr r2, .L1352+28 9425 uxth r1, r4 9426 movw fp, #65535 9427 str r1, [sp, #12] 9428 ldr r3, [r2] 9429 subs r3, r3, #1 9430 str r3, [sp] 9431 ldr r3, .L1352+8 9432 ldr r10, [r3] 9433 movs r3, #0 9434 mov r7, r10 9435.L1228: 9436 uxth r1, r3 9437 cmp r5, r1 9438 bhi .L1233 9439 bne .L1231 9440 adds r3, r4, #1 9441 uxth r3, r3 9442 str r3, [sp, #8] 9443.L1345: 9444 ldr r0, [r10, #4] 9445 ubfx r0, r0, #10, #16 9446 bl P2V_plane 9447 ldr r3, .L1352 9448 mov r10, r0 9449 ldr r2, [sp, #8] 9450 ldrh r3, [r3] 9451 cmp r3, r2 9452 bne .L1235 9453 ldrh r3, [sp, #8] 9454 strh r3, [r8, #2] @ movhi 9455 movs r3, #0 9456 strb r3, [r8, #6] 9457 strh r3, [r8, #4] @ movhi 9458.L1235: 9459 ldr r3, [sp, #8] 9460 ldr r2, [sp, #4] 9461 cmp r3, r2 9462 bne .L1236 9463 ldr r3, [sp, #20] 9464 cmp r10, r3 9465 bne .L1236 9466 ldr r1, [sp, #8] 9467 mov r2, r10 9468.L1351: 9469 mov r0, r8 9470 bl ftl_sb_update_avl_pages 9471 b .L1344 9472.L1221: 9473 uxth r1, r3 9474 adds r1, r1, #8 9475 ldrh r0, [r8, r1, lsl #1] 9476 b .L1220 9477.L1222: 9478 ldr r3, [sp, #4] 9479 cbz r3, .L1224 9480 movw r2, #1766 9481 ldr r1, .L1352+32 9482 ldr r0, .L1352+36 9483 bl printf 9484.L1224: 9485 ldr r3, [sp, #20] 9486 cbz r3, .L1225 9487 cmp r5, r3 9488 beq .L1225 9489 movw r2, #1767 9490 ldr r1, .L1352+32 9491 ldr r0, .L1352+36 9492 bl printf 9493.L1225: 9494 movs r3, #0 9495 strh r3, [r8, #2] @ movhi 9496 b .L1350 9497.L1227: 9498 ldr r1, [sp] 9499 ldrh r3, [r1], #2 9500 cmp r3, fp 9501 str r1, [sp] 9502 beq .L1226 9503 mla r1, r10, r5, r0 9504 ldr r6, [sp, #8] 9505 orr r3, r4, r3, lsl #10 9506 str r3, [r1, #4] 9507 mul r3, r7, r5 9508 bic r3, r3, #3 9509 add r3, r3, r6 9510 ldr r6, [sp, #12] 9511 str r3, [r1, #8] 9512 mul r3, lr, r5 9513 adds r5, r5, #1 9514 uxth r5, r5 9515 bic r3, r3, #3 9516 add r3, r3, r6 9517 str r3, [r1, #12] 9518.L1226: 9519 adds r2, r2, #1 9520 b .L1223 9521.L1233: 9522 ldr r1, [r7] 9523 cbnz r1, .L1229 9524 ldr r1, [r7, #12] 9525 ldr r6, [r1, #4] 9526 str r1, [sp, #8] 9527 adds r1, r6, #1 9528 beq .L1230 9529 ldr r1, [r2] 9530 mov r0, r6 9531 bl ftl_cmp_data_ver 9532 cbz r0, .L1230 9533 adds r6, r6, #1 9534 str r6, [r2] 9535.L1230: 9536 ldr r1, [sp, #8] 9537 ldr r1, [r1] 9538 adds r1, r1, #1 9539 bne .L1232 9540.L1231: 9541 uxth r2, r4 9542 uxth r3, r3 9543 str r2, [sp, #8] 9544 movs r2, #20 9545 mla r10, r2, r3, r10 9546 b .L1345 9547.L1229: 9548 ldr fp, [sp, #12] 9549.L1232: 9550 adds r3, r3, #1 9551 adds r7, r7, #20 9552 b .L1228 9553.L1236: 9554 movw r3, #65535 9555 cmp fp, r3 9556 bne .L1237 9557 ldrb r3, [r8, #8] @ zero_extendqisi2 9558 cmp r3, #0 9559 bne .L1238 9560.L1237: 9561 ldr r3, .L1352+40 9562 uxth r6, r4 9563 uxth r4, r4 9564 ldr r7, .L1352+8 9565 ldr r2, [r3] 9566 adds r2, r2, #1 9567 itt eq 9568 ldreq r2, [sp] 9569 streq r2, [r3] 9570 ldr r3, [sp, #4] 9571 adds r3, r3, #7 9572 cmp r4, r3 9573 itet gt 9574 subgt r4, r6, #7 9575 ldrle r4, [sp, #4] 9576 uxthgt r4, r4 9577.L1241: 9578 cmp r4, r6 9579 bhi .L1251 9580 ldr r3, .L1352+4 9581 movw lr, #65535 9582 ldr r0, [r7] 9583 mov ip, #20 9584 ldrh fp, [r3] 9585 ldr r3, [sp, #16] 9586 str r3, [sp, #12] 9587 movs r3, #0 9588 mov r5, r3 9589 b .L1252 9590.L1243: 9591 ldr r1, [sp, #12] 9592 ldrh r2, [r1], #2 9593 cmp r2, lr 9594 str r1, [sp, #12] 9595 beq .L1242 9596 mla r1, ip, r5, r0 9597 adds r5, r5, #1 9598 orr r2, r4, r2, lsl #10 9599 uxth r5, r5 9600 str r2, [r1, #4] 9601.L1242: 9602 adds r3, r3, #1 9603.L1252: 9604 uxth r2, r3 9605 cmp fp, r2 9606 bhi .L1243 9607 mov r1, r5 9608 movs r2, #0 9609 bl FlashReadPages 9610 ldr r3, .L1352+40 9611 movs r1, #20 9612 movs r0, #0 9613 movw ip, #65535 9614 ldr r2, [r3] 9615 ldr r3, [r7] 9616 mla r5, r1, r5, r3 9617.L1244: 9618 cmp r5, r3 9619 bne .L1249 9620 cbz r0, .L1250 9621 ldr r3, .L1352+40 9622 str r2, [r3] 9623.L1250: 9624 adds r4, r4, #1 9625 uxth r4, r4 9626 b .L1241 9627.L1353: 9628 .align 2 9629.L1352: 9630 .word .LANCHOR19 9631 .word .LANCHOR3 9632 .word .LANCHOR112 9633 .word .LANCHOR91 9634 .word .LANCHOR23 9635 .word .LANCHOR92 9636 .word .LANCHOR24 9637 .word .LANCHOR71 9638 .word .LANCHOR166 9639 .word .LC1 9640 .word .LANCHOR145 9641.L1249: 9642 ldr r1, [r3] 9643 cmp r1, #0 9644 beq .L1245 9645 cbz r0, .L1238 9646.L1346: 9647 ldr r3, .L1354 9648 str r2, [r3] 9649.L1238: 9650 ldr fp, [sp, #4] 9651 movs r2, #1 9652 ldr r6, .L1354+4 9653 ldr r3, .L1354+8 9654 strh r2, [r3] @ movhi 9655.L1253: 9656 ldr r3, .L1354+12 9657 movw lr, #65535 9658 ldr r0, [r6] 9659 movs r7, #20 9660 ldr r1, [sp, #16] 9661 ldrh r4, [r3] 9662 movs r3, #0 9663 str r3, [sp, #12] 9664.L1254: 9665 uxth r2, r3 9666 cmp r4, r2 9667 bhi .L1256 9668 movs r2, #0 9669 ldr r1, [sp, #12] 9670 bl FlashReadPages 9671 movs r3, #0 9672.L1349: 9673 str r3, [sp, #24] 9674 ldr r2, [sp, #12] 9675 ldrh r3, [sp, #24] 9676 cmp r2, r3 9677 bhi .L1284 9678 ldr r3, .L1354+16 9679 add fp, fp, #1 9680 uxth fp, fp 9681 ldrh r3, [r3] 9682 cmp r3, fp 9683 bne .L1253 9684 ldr r2, .L1354+12 9685 movw r0, #65535 9686 movs r3, #0 9687 strh fp, [r8, #2] @ movhi 9688 strh r3, [r8, #4] @ movhi 9689 ldrh r2, [r2] 9690.L1285: 9691 uxth r1, r3 9692 cmp r1, r2 9693 bcs .L1344 9694 ldr r1, [sp, #16] 9695 ldrh r4, [r1], #2 9696 cmp r4, r0 9697 str r1, [sp, #16] 9698 add r1, r3, #1 9699 bne .L1350 9700 mov r3, r1 9701 b .L1285 9702.L1245: 9703 ldr r1, [r3, #12] 9704 ldrh lr, [r1] 9705 cmp lr, ip 9706 beq .L1248 9707 ldr r1, [r1, #4] 9708 cmp r1, #-1 9709 itt ne 9710 movne r2, r1 9711 movne r0, #1 9712.L1248: 9713 adds r3, r3, #20 9714 b .L1244 9715.L1251: 9716 mov r2, #-1 9717 b .L1346 9718.L1256: 9719 ldrh r2, [r1], #2 9720 cmp r2, lr 9721 beq .L1255 9722 ldr r5, [sp, #12] 9723 orr r2, fp, r2, lsl #10 9724 mla ip, r7, r5, r0 9725 str r2, [ip, #4] 9726 mov r2, r5 9727 adds r2, r2, #1 9728 uxth r2, r2 9729 str r2, [sp, #12] 9730.L1255: 9731 adds r3, r3, #1 9732 b .L1254 9733.L1284: 9734 ldr r3, [sp, #24] 9735 movs r5, #20 9736 muls r5, r3, r5 9737 ldr r3, [r6] 9738 str r3, [sp, #28] 9739 adds r7, r3, r5 9740 ldr r4, [r7, #4] 9741 ubfx r0, r4, #10, #16 9742 str r4, [sp, #44] 9743 bl P2V_plane 9744 ldr r3, [sp, #4] 9745 cmp fp, r3 9746 bcc .L1258 9747 ldr r3, [sp, #28] 9748 bne .L1259 9749 ldr r2, [sp, #20] 9750 cmp r2, r0 9751 bhi .L1258 9752.L1259: 9753 ldr r2, [sp, #8] 9754 cmp fp, r2 9755 bne .L1260 9756 cmp r10, r0 9757 beq .L1261 9758.L1260: 9759 ldr r3, [r3, r5] 9760 adds r3, r3, #1 9761 beq .L1262 9762 ldr r3, [r7, #12] 9763 movw r2, #61589 9764 ldrh r1, [r3] 9765 cmp r1, r2 9766 beq .L1263 9767 ldrh r0, [r8] 9768.L1347: 9769 bl decrement_vpc_count 9770 b .L1258 9771.L1263: 9772 ldr r2, [r3, #4] 9773 str r2, [sp] 9774 adds r2, r2, #1 9775 beq .L1264 9776 ldr r2, .L1354+20 9777 ldr r0, [sp] 9778 ldr r1, [r2] 9779 bl ftl_cmp_data_ver 9780 cbz r0, .L1264 9781 ldr r1, [sp] 9782 adds r1, r1, #1 9783 str r1, [r2] 9784.L1264: 9785 ldr r4, [r3, #8] 9786 add r1, sp, #40 9787 ldr r3, [r3, #12] 9788 movs r2, #0 9789 mov r0, r4 9790 str r3, [sp, #36] 9791 bl log2phys 9792 ldr r3, .L1354 9793 ldr r1, [r3] 9794 adds r3, r1, #1 9795 beq .L1265 9796 ldr r0, [sp] 9797 bl ftl_cmp_data_ver 9798 cmp r0, #0 9799 beq .L1265 9800 ldr r3, [sp, #36] 9801 adds r7, r3, #1 9802 beq .L1266 9803 ldr r0, [r6] 9804 movs r2, #0 9805 movs r1, #1 9806 add r0, r0, r5 9807 str r3, [r0, #4] 9808 ldr r7, [r0, #12] 9809 bl FlashReadPages 9810 ldr r2, [r6] 9811 ldr r1, [r2, r5] 9812 adds r3, r2, r5 9813 adds r1, r1, #1 9814 bne .L1267 9815.L1268: 9816 mov r3, #-1 9817 str r3, [sp, #36] 9818.L1275: 9819 ldr r7, [sp, #36] 9820 adds r0, r7, #1 9821 beq .L1258 9822.L1288: 9823 ubfx r0, r7, #10, #16 9824 bl P2V_block_in_plane 9825 ldr r3, .L1354+24 9826 mov r4, r0 9827 ldrh r3, [r3] 9828 cmp r3, r0 9829 bhi .L1280 9830 movw r2, #2019 9831 ldr r1, .L1354+28 9832 ldr r0, .L1354+32 9833 bl printf 9834.L1280: 9835 ldr r3, .L1354+36 9836 ldr r3, [r3] 9837 ldrh r3, [r3, r4, lsl #1] 9838 cmp r3, #0 9839 beq .L1281 9840 mov r0, r4 9841 b .L1347 9842.L1266: 9843 ldr r3, [sp, #44] 9844 ldr r2, [sp, #40] 9845 cmp r2, r3 9846 bne .L1258 9847 movs r2, #1 9848 add r1, sp, #36 9849 mov r0, r4 9850 bl log2phys 9851.L1258: 9852 ldr r3, [sp, #24] 9853 adds r3, r3, #1 9854 b .L1349 9855.L1267: 9856 ldr r1, [r7, #8] 9857 cmp r4, r1 9858 bne .L1268 9859 ldr r0, .L1354 9860 ldr r1, [r7, #4] 9861 ldr r0, [r0] 9862 str r1, [sp, #28] 9863 bl ftl_cmp_data_ver 9864 cmp r0, #0 9865 beq .L1268 9866 ldr r1, [sp, #40] 9867 ldr r0, [sp, #44] 9868 cmp r1, r0 9869 bne .L1270 9870.L1273: 9871 ldr r1, [sp, #36] 9872 mov r0, r4 9873 bl FtlReUsePrevPpa 9874 b .L1268 9875.L1270: 9876 ldr r0, [sp, #36] 9877 cmp r1, r0 9878 beq .L1268 9879 adds r0, r1, #1 9880 beq .L1271 9881 str r1, [r3, #4] 9882 movs r2, #0 9883 movs r1, #1 9884 mov r0, r3 9885 ldr r7, [r3, #12] 9886 bl FlashReadPages 9887.L1272: 9888 ldr r3, [r6] 9889 ldr r3, [r3, r5] 9890 adds r3, r3, #1 9891 beq .L1273 9892 ldr r3, [r7, #4] 9893 ldr r2, .L1354 9894 mov r1, r3 9895 ldr r0, [r2] 9896 bl ftl_cmp_data_ver 9897 cmp r0, #0 9898 beq .L1273 9899 mov r1, r3 9900 ldr r0, [sp, #28] 9901 bl ftl_cmp_data_ver 9902 cmp r0, #0 9903 beq .L1268 9904 b .L1273 9905.L1271: 9906 str r1, [r2, r5] 9907 b .L1272 9908.L1265: 9909 ldr r3, [sp, #44] 9910 ldr r2, [sp, #40] 9911 cmp r2, r3 9912 beq .L1275 9913 movs r2, #1 9914 add r1, sp, #44 9915 mov r0, r4 9916 bl log2phys 9917 ldr r7, [sp, #40] 9918 adds r5, r7, #1 9919 beq .L1275 9920 ldr r3, [sp, #36] 9921 cmp r7, r3 9922 beq .L1288 9923 ubfx r0, r7, #10, #16 9924 bl P2V_block_in_plane 9925 ldr r3, .L1354+40 9926 ldrh r3, [r3] 9927 cmp r3, r0 9928 beq .L1279 9929 ldr r3, .L1354+44 9930 ldrh r3, [r3] 9931 cmp r3, r0 9932 beq .L1279 9933 ldr r3, .L1354+48 9934 ldrh r3, [r3] 9935 cmp r3, r0 9936 bne .L1275 9937.L1279: 9938 ldr r0, [r6] 9939 movs r2, #0 9940 movs r1, #1 9941 str r7, [r0, #4] 9942 ldr r5, [r0, #12] 9943 bl FlashReadPages 9944 ldr r3, [r6] 9945 ldr r3, [r3] 9946 adds r3, r3, #1 9947 beq .L1275 9948 ldr r1, [r5, #4] 9949 ldr r0, [sp] 9950 bl ftl_cmp_data_ver 9951 cmp r0, #0 9952 bne .L1275 9953 movs r2, #1 9954 add r1, sp, #40 9955 mov r0, r4 9956 bl log2phys 9957 b .L1275 9958.L1355: 9959 .align 2 9960.L1354: 9961 .word .LANCHOR145 9962 .word .LANCHOR112 9963 .word .LANCHOR167 9964 .word .LANCHOR3 9965 .word .LANCHOR19 9966 .word .LANCHOR71 9967 .word .LANCHOR5 9968 .word .LANCHOR166 9969 .word .LC1 9970 .word .LANCHOR42 9971 .word .LANCHOR51 9972 .word .LANCHOR52 9973 .word .LANCHOR53 9974.L1281: 9975 mov r1, r4 9976 ldr r0, .L1356 9977 bl printf 9978 b .L1258 9979.L1262: 9980 ldr r3, .L1356+4 9981 ldr r3, [r3] 9982 cmp r3, #31 9983 bhi .L1282 9984 ldr r2, .L1356+8 9985 str r4, [r2, r3, lsl #2] 9986 adds r3, r3, #1 9987 ldr r2, .L1356+4 9988 str r3, [r2] 9989.L1282: 9990 ldrh r0, [r8] 9991 bl decrement_vpc_count 9992 ldr r3, .L1356+12 9993 ldr r2, [r3] 9994 adds r1, r2, #1 9995 bne .L1283 9996 ldr r2, [sp] 9997.L1348: 9998 str r2, [r3] 9999 b .L1258 10000.L1283: 10001 ldr r1, [sp] 10002 cmp r1, r2 10003 bcs .L1258 10004 mov r2, r1 10005 b .L1348 10006.L1261: 10007 strb r10, [r8, #6] 10008 mov r2, r10 10009 strh fp, [r8, #2] @ movhi 10010 mov r1, fp 10011 b .L1351 10012.L1357: 10013 .align 2 10014.L1356: 10015 .word .LC106 10016 .word .LANCHOR168 10017 .word .LANCHOR169 10018 .word .LANCHOR145 10019 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 10020 .section .text.FtlWriteDump_data,"ax",%progbits 10021 .align 1 10022 .global FtlWriteDump_data 10023 .syntax unified 10024 .thumb 10025 .thumb_func 10026 .fpu softvfp 10027 .type FtlWriteDump_data, %function 10028FtlWriteDump_data: 10029 @ args = 0, pretend = 0, frame = 24 10030 @ frame_needed = 0, uses_anonymous_args = 0 10031 push {r4, r5, r6, r7, r8, r10, fp, lr} 10032 sub sp, sp, #24 10033 ldr r4, .L1377 10034 ldrh r2, [r4, #4] 10035 cmp r2, #0 10036 beq .L1359 10037 ldrb r3, [r4, #8] @ zero_extendqisi2 10038 cmp r3, #0 10039 bne .L1359 10040 ldr r3, .L1377+4 10041 ldrb r1, [r4, #7] @ zero_extendqisi2 10042 ldrh r3, [r3] 10043 muls r3, r1, r3 10044 cmp r2, r3 10045 beq .L1359 10046 ldrb r7, [r4, #10] @ zero_extendqisi2 10047 cbnz r7, .L1358 10048 ldr r3, .L1377+8 10049 mov r2, r7 10050 mov r1, sp 10051 ldr r6, [r3] 10052 ldr r3, .L1377+12 10053 subs r6, r6, #1 10054 mov r0, r6 10055 ldrh r8, [r3] 10056 bl log2phys 10057 ldr r2, .L1377+16 10058 ldr r3, [sp] 10059 str r6, [sp, #20] 10060 ldr r0, [r2] 10061 ldr r2, .L1377+20 10062 str r3, [sp, #8] 10063 adds r3, r3, #1 10064 str r0, [sp, #12] 10065 ldr r5, [r2] 10066 str r5, [sp, #16] 10067 str r7, [r5, #4] 10068 beq .L1361 10069 mov r2, r7 10070 movs r1, #1 10071 add r0, sp, #4 10072 bl FlashReadPages 10073.L1362: 10074 ldr fp, .L1377 10075 lsl r8, r8, #2 10076 ldr r10, .L1377+28 10077 movs r7, #0 10078 movw r3, #61589 10079 strh r3, [r5] @ movhi 10080.L1363: 10081 cmp r8, r7 10082 bne .L1367 10083.L1364: 10084 movs r3, #1 10085.L1376: 10086 strb r3, [r4, #10] 10087.L1358: 10088 add sp, sp, #24 10089 @ sp needed 10090 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10091.L1361: 10092 ldr r3, .L1377+24 10093 movs r1, #255 10094 ldrh r2, [r3] 10095 bl ftl_memset 10096 b .L1362 10097.L1367: 10098 ldrh r3, [r4, #4] 10099 cmp r3, #0 10100 beq .L1364 10101 ldr r3, [sp, #8] 10102 mov r0, fp 10103 str r6, [r5, #8] 10104 adds r7, r7, #1 10105 str r3, [r5, #12] 10106 ldrh r3, [r4] 10107 strh r3, [r5, #2] @ movhi 10108 bl get_new_active_ppa 10109 ldr r3, [r10] 10110 movs r1, #1 10111 str r0, [sp, #8] 10112 add r0, sp, #4 10113 str r3, [r5, #4] 10114 adds r3, r3, #1 10115 adds r2, r3, #1 10116 it eq 10117 moveq r3, #0 10118 str r3, [r10] 10119 movs r3, #0 10120 mov r2, r3 10121 bl FlashProgPages 10122 ldrh r0, [r4] 10123 bl decrement_vpc_count 10124 b .L1363 10125.L1359: 10126 movs r3, #0 10127 b .L1376 10128.L1378: 10129 .align 2 10130.L1377: 10131 .word .LANCHOR51 10132 .word .LANCHOR19 10133 .word .LANCHOR61 10134 .word .LANCHOR3 10135 .word .LANCHOR115 10136 .word .LANCHOR123 10137 .word .LANCHOR23 10138 .word .LANCHOR71 10139 .size FtlWriteDump_data, .-FtlWriteDump_data 10140 .section .text.l2p_flush,"ax",%progbits 10141 .align 1 10142 .global l2p_flush 10143 .syntax unified 10144 .thumb 10145 .thumb_func 10146 .fpu softvfp 10147 .type l2p_flush, %function 10148l2p_flush: 10149 @ args = 0, pretend = 0, frame = 0 10150 @ frame_needed = 0, uses_anonymous_args = 0 10151 push {r4, r5, r6, lr} 10152 movs r4, #0 10153 ldr r5, .L1383 10154 ldr r6, .L1383+4 10155 bl FtlWriteDump_data 10156.L1380: 10157 ldrh r3, [r5] 10158 uxth r0, r4 10159 cmp r3, r0 10160 bhi .L1382 10161 movs r0, #0 10162 pop {r4, r5, r6, pc} 10163.L1382: 10164 ldr r2, [r6] 10165 uxth r3, r4 10166 movs r1, #12 10167 mla r3, r1, r3, r2 10168 ldr r3, [r3, #4] 10169 cmp r3, #0 10170 bge .L1381 10171 bl flush_l2p_region 10172.L1381: 10173 adds r4, r4, #1 10174 b .L1380 10175.L1384: 10176 .align 2 10177.L1383: 10178 .word .LANCHOR33 10179 .word .LANCHOR55 10180 .size l2p_flush, .-l2p_flush 10181 .section .text.FtlSuperblockPowerLostFix,"ax",%progbits 10182 .align 1 10183 .global FtlSuperblockPowerLostFix 10184 .syntax unified 10185 .thumb 10186 .thumb_func 10187 .fpu softvfp 10188 .type FtlSuperblockPowerLostFix, %function 10189FtlSuperblockPowerLostFix: 10190 @ args = 0, pretend = 0, frame = 24 10191 @ frame_needed = 0, uses_anonymous_args = 0 10192 push {r4, r5, r6, r7, r8, lr} 10193 mov r3, #-1 10194 sub sp, sp, #24 10195 ldr r2, .L1398 10196 movs r6, #0 10197 mov r4, r0 10198 str r3, [sp, #20] 10199 ldr r3, .L1398+4 10200 ldr r5, [r2] 10201 mvn r2, #2 10202 ldr r8, .L1398+16 10203 ldr r3, [r3] 10204 str r5, [sp, #16] 10205 str r3, [sp, #12] 10206 str r2, [r5, #8] 10207 mvn r2, #1 10208 str r2, [r5, #12] 10209 ldrh r2, [r0] 10210 strh r6, [r5] @ movhi 10211 strh r2, [r5, #2] @ movhi 10212 movw r2, #61589 10213 str r2, [r3] 10214 add r2, r2, #304087040 10215 add r2, r2, #1269760 10216 addw r2, r2, #1507 10217 str r2, [r3, #4] 10218 ldrh r3, [r0, #4] 10219 tst r3, #1 10220 ite eq 10221 moveq r7, #6 10222 movne r7, #7 10223.L1391: 10224 ldrh r3, [r4, #4] 10225 cbnz r3, .L1387 10226.L1388: 10227 ldr r3, .L1398+8 10228 ldrh r1, [r4] 10229 ldrh r0, [r4, #4] 10230 ldr r2, [r3] 10231 ldrh r3, [r2, r1, lsl #1] 10232 subs r3, r3, r0 10233 strh r3, [r2, r1, lsl #1] @ movhi 10234 ldr r3, .L1398+12 10235 ldrh r3, [r3] 10236 strh r3, [r4, #2] @ movhi 10237 movs r3, #0 10238 strb r3, [r4, #6] 10239 strh r3, [r4, #4] @ movhi 10240 add sp, sp, #24 10241 @ sp needed 10242 pop {r4, r5, r6, r7, r8, pc} 10243.L1387: 10244 mov r0, r4 10245 bl get_new_active_ppa 10246 str r0, [sp, #8] 10247 adds r0, r0, #1 10248 beq .L1388 10249 ldr r3, [r8] 10250 movs r1, #1 10251 add r0, sp, #4 10252 str r3, [r5, #4] 10253 adds r3, r3, #1 10254 adds r2, r3, #1 10255 it eq 10256 moveq r3, r6 10257 str r3, [r8] 10258 movs r3, #0 10259 mov r2, r3 10260 bl FlashProgPages 10261 ldrh r0, [r4] 10262 bl decrement_vpc_count 10263 subs r7, r7, #1 10264 bne .L1391 10265 b .L1388 10266.L1399: 10267 .align 2 10268.L1398: 10269 .word .LANCHOR123 10270 .word .LANCHOR115 10271 .word .LANCHOR42 10272 .word .LANCHOR19 10273 .word .LANCHOR71 10274 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 10275 .section .text.FtlVendorPartWrite,"ax",%progbits 10276 .align 1 10277 .global FtlVendorPartWrite 10278 .syntax unified 10279 .thumb 10280 .thumb_func 10281 .fpu softvfp 10282 .type FtlVendorPartWrite, %function 10283FtlVendorPartWrite: 10284 @ args = 0, pretend = 0, frame = 104 10285 @ frame_needed = 0, uses_anonymous_args = 0 10286 ldr r3, .L1412 10287 push {r4, r5, r6, r7, r8, r10, fp, lr} 10288 sub sp, sp, #104 10289 str r2, [sp] 10290 adds r2, r0, r1 10291 mov r7, r0 10292 mov r5, r1 10293 ldrh r3, [r3] 10294 cmp r2, r3 10295 bhi .L1408 10296 ldr r3, .L1412+4 10297 mov r8, #0 10298 ldrh r6, [r3] 10299 lsr r6, r0, r6 10300 lsl fp, r6, #2 10301.L1402: 10302 cbnz r5, .L1407 10303.L1400: 10304 mov r0, r8 10305 add sp, sp, #104 10306 @ sp needed 10307 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10308.L1407: 10309 ldr r3, .L1412+8 10310 mov r0, r7 10311 ldr r10, .L1412+24 10312 ldr r3, [r3] 10313 ldr r2, [r3, fp] 10314 ldr r3, .L1412+12 10315 str r2, [sp, #12] 10316 ldrh r3, [r3] 10317 mov r1, r3 10318 str r3, [sp, #8] 10319 bl __aeabi_uidivmod 10320 ldr r3, [sp, #8] 10321 ldr r2, [sp, #12] 10322 str r1, [sp, #4] 10323 subs r4, r3, r1 10324 uxth r4, r4 10325 cmp r5, r4 10326 it cc 10327 uxthcc r4, r5 10328 cbz r2, .L1404 10329 cmp r4, r3 10330 beq .L1404 10331 ldr r3, [r10] 10332 add r0, sp, #20 10333 str r2, [sp, #24] 10334 movs r2, #1 10335 mov r1, r2 10336 str r3, [sp, #28] 10337 add r3, sp, #40 10338 str r3, [sp, #32] 10339 bl FlashReadPages 10340.L1405: 10341 lsls r3, r4, #9 10342 ldr r0, [r10] 10343 subs r5, r5, r4 10344 mov r2, r3 10345 str r3, [sp, #8] 10346 ldm sp, {r1, r3} 10347 add r7, r7, r4 10348 add fp, fp, #4 10349 add r0, r0, r3, lsl #9 10350 bl ftl_memcpy 10351 ldr r2, [r10] 10352 mov r1, r6 10353 ldr r0, .L1412+16 10354 adds r6, r6, #1 10355 bl FtlMapWritePage 10356 ldr r3, [sp] 10357 adds r0, r0, #1 10358 it eq 10359 moveq r8, #-1 10360 mov r2, r3 10361 ldr r3, [sp, #8] 10362 add r2, r2, r3 10363 str r2, [sp] 10364 b .L1402 10365.L1404: 10366 ldr r3, .L1412+20 10367 movs r1, #0 10368 ldr r0, [r10] 10369 ldrh r2, [r3] 10370 bl ftl_memset 10371 b .L1405 10372.L1408: 10373 mov r8, #-1 10374 b .L1400 10375.L1413: 10376 .align 2 10377.L1412: 10378 .word .LANCHOR16 10379 .word .LANCHOR22 10380 .word .LANCHOR133 10381 .word .LANCHOR12 10382 .word .LANCHOR158 10383 .word .LANCHOR23 10384 .word .LANCHOR117 10385 .size FtlVendorPartWrite, .-FtlVendorPartWrite 10386 .section .text.Ftl_save_ext_data,"ax",%progbits 10387 .align 1 10388 .global Ftl_save_ext_data 10389 .syntax unified 10390 .thumb 10391 .thumb_func 10392 .fpu softvfp 10393 .type Ftl_save_ext_data, %function 10394Ftl_save_ext_data: 10395 @ args = 0, pretend = 0, frame = 0 10396 @ frame_needed = 0, uses_anonymous_args = 0 10397 @ link register save eliminated. 10398 ldr r2, .L1416 10399 ldr r3, .L1416+4 10400 ldr r1, [r2] 10401 cmp r1, r3 10402 bne .L1414 10403 ldr r3, .L1416+8 10404 movs r1, #1 10405 movs r0, #0 10406 str r3, [r2, #4] 10407 ldr r3, .L1416+12 10408 ldr r3, [r3] 10409 str r3, [r2, #88] 10410 ldr r3, .L1416+16 10411 ldr r3, [r3] 10412 str r3, [r2, #92] 10413 ldr r3, .L1416+20 10414 ldr r3, [r3] 10415 str r3, [r2, #8] 10416 ldr r3, .L1416+24 10417 ldr r3, [r3] 10418 str r3, [r2, #12] 10419 ldr r3, .L1416+28 10420 ldr r3, [r3] 10421 str r3, [r2, #16] 10422 ldr r3, .L1416+32 10423 ldr r3, [r3] 10424 str r3, [r2, #20] 10425 ldr r3, .L1416+36 10426 ldr r3, [r3] 10427 str r3, [r2, #28] 10428 ldr r3, .L1416+40 10429 ldr r3, [r3] 10430 str r3, [r2, #32] 10431 ldr r3, .L1416+44 10432 ldr r3, [r3] 10433 str r3, [r2, #36] 10434 ldr r3, .L1416+48 10435 ldr r3, [r3] 10436 str r3, [r2, #40] 10437 ldr r3, .L1416+52 10438 ldr r3, [r3] 10439 str r3, [r2, #44] 10440 ldr r3, .L1416+56 10441 ldr r3, [r3] 10442 str r3, [r2, #48] 10443 b FtlVendorPartWrite 10444.L1414: 10445 bx lr 10446.L1417: 10447 .align 2 10448.L1416: 10449 .word .LANCHOR81 10450 .word 1179929683 10451 .word 1342177352 10452 .word .LANCHOR68 10453 .word .LANCHOR69 10454 .word .LANCHOR67 10455 .word .LANCHOR64 10456 .word .LANCHOR62 10457 .word .LANCHOR66 10458 .word .LANCHOR73 10459 .word .LANCHOR75 10460 .word .LANCHOR63 10461 .word .LANCHOR65 10462 .word .LANCHOR76 10463 .word .LANCHOR77 10464 .size Ftl_save_ext_data, .-Ftl_save_ext_data 10465 .section .text.FtlEctTblFlush,"ax",%progbits 10466 .align 1 10467 .global FtlEctTblFlush 10468 .syntax unified 10469 .thumb 10470 .thumb_func 10471 .fpu softvfp 10472 .type FtlEctTblFlush, %function 10473FtlEctTblFlush: 10474 @ args = 0, pretend = 0, frame = 0 10475 @ frame_needed = 0, uses_anonymous_args = 0 10476 ldr r2, .L1423 10477 push {r3, lr} 10478 ldrh r3, [r2] 10479 cmp r3, #31 10480 itett ls 10481 addls r3, r3, #1 10482 movhi r3, #32 10483 strhls r3, [r2] @ movhi 10484 movls r3, #1 10485 ldr r2, .L1423+4 10486 cbnz r0, .L1420 10487 ldr r1, [r2] 10488 ldr r0, [r1, #20] 10489 ldr r1, [r1, #16] 10490 add r3, r3, r0 10491 cmp r1, r3 10492 bcc .L1421 10493.L1420: 10494 ldr r2, [r2] 10495 movs r0, #64 10496 ldr r3, [r2, #16] 10497 str r3, [r2, #20] 10498 ldr r3, .L1423+8 10499 str r3, [r2] 10500 ldr r3, .L1423+12 10501 ldrh r1, [r3] 10502 lsls r3, r1, #9 10503 str r3, [r2, #12] 10504 ldr r3, [r2, #8] 10505 adds r3, r3, #1 10506 str r3, [r2, #8] 10507 movs r3, #0 10508 str r3, [r2, #4] 10509 bl FtlVendorPartWrite 10510 bl Ftl_save_ext_data 10511.L1421: 10512 movs r0, #0 10513 pop {r3, pc} 10514.L1424: 10515 .align 2 10516.L1423: 10517 .word .LANCHOR170 10518 .word .LANCHOR127 10519 .word 1112818501 10520 .word .LANCHOR125 10521 .size FtlEctTblFlush, .-FtlEctTblFlush 10522 .section .text.sftl_vendor_write,"ax",%progbits 10523 .align 1 10524 .global sftl_vendor_write 10525 .syntax unified 10526 .thumb 10527 .thumb_func 10528 .fpu softvfp 10529 .type sftl_vendor_write, %function 10530sftl_vendor_write: 10531 @ args = 0, pretend = 0, frame = 0 10532 @ frame_needed = 0, uses_anonymous_args = 0 10533 @ link register save eliminated. 10534 add r0, r0, #256 10535 b FtlVendorPartWrite 10536 .size sftl_vendor_write, .-sftl_vendor_write 10537 .section .text.FtlVendorPartRead,"ax",%progbits 10538 .align 1 10539 .global FtlVendorPartRead 10540 .syntax unified 10541 .thumb 10542 .thumb_func 10543 .fpu softvfp 10544 .type FtlVendorPartRead, %function 10545FtlVendorPartRead: 10546 @ args = 0, pretend = 0, frame = 104 10547 @ frame_needed = 0, uses_anonymous_args = 0 10548 ldr r3, .L1436 10549 push {r4, r5, r6, r7, r8, r10, fp, lr} 10550 mov r10, r2 10551 adds r2, r0, r1 10552 sub sp, sp, #104 10553 mov r7, r0 10554 mov r6, r1 10555 ldrh r3, [r3] 10556 cmp r2, r3 10557 bhi .L1435 10558 ldr r3, .L1436+4 10559 mov r8, #0 10560 ldr fp, .L1436+28 10561 ldrh r5, [r3] 10562 lsr r5, r0, r5 10563 lsls r3, r5, #2 10564 str r3, [sp] 10565.L1428: 10566 cbnz r6, .L1434 10567.L1426: 10568 mov r0, r8 10569 add sp, sp, #104 10570 @ sp needed 10571 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10572.L1434: 10573 ldr r3, .L1436+8 10574 mov r0, r7 10575 ldr r2, [sp] 10576 ldr r3, [r3] 10577 ldr r3, [r3, r2] 10578 ldr r2, .L1436+12 10579 str r3, [sp, #8] 10580 ldrh r4, [r2] 10581 mov r1, r4 10582 bl __aeabi_uidivmod 10583 subs r4, r4, r1 10584 ldr r3, [sp, #8] 10585 uxth r4, r4 10586 str r1, [sp, #4] 10587 cmp r6, r4 10588 it cc 10589 uxthcc r4, r6 10590 lsls r2, r4, #9 10591 str r2, [sp, #8] 10592 cmp r3, #0 10593 beq .L1430 10594 ldr r2, [fp] 10595 add r0, sp, #20 10596 str r3, [sp, #24] 10597 str r3, [sp, #12] 10598 str r2, [sp, #28] 10599 add r2, sp, #40 10600 str r2, [sp, #32] 10601 movs r2, #1 10602 mov r1, r2 10603 bl FlashReadPages 10604 ldr r2, [sp, #20] 10605 ldr r3, [sp, #12] 10606 adds r2, r2, #1 10607 ldr r2, .L1436+16 10608 it eq 10609 moveq r8, #-1 10610 ldr r2, [r2] 10611 cmp r2, #256 10612 bne .L1432 10613 mov r2, r3 10614 mov r1, r5 10615 ldr r0, .L1436+20 10616 bl printf 10617 ldr r2, [fp] 10618 mov r1, r5 10619 ldr r0, .L1436+24 10620 bl FtlMapWritePage 10621.L1432: 10622 ldr r1, [fp] 10623 lsls r2, r4, #9 10624 ldr r3, [sp, #4] 10625 mov r0, r10 10626 add r1, r1, r3, lsl #9 10627 bl ftl_memcpy 10628.L1433: 10629 ldr r3, [sp, #8] 10630 adds r5, r5, #1 10631 subs r6, r6, r4 10632 add r7, r7, r4 10633 add r10, r10, r3 10634 ldr r3, [sp] 10635 adds r3, r3, #4 10636 str r3, [sp] 10637 b .L1428 10638.L1430: 10639 lsls r2, r4, #9 10640 mov r1, r3 10641 mov r0, r10 10642 bl ftl_memset 10643 b .L1433 10644.L1435: 10645 mov r8, #-1 10646 b .L1426 10647.L1437: 10648 .align 2 10649.L1436: 10650 .word .LANCHOR16 10651 .word .LANCHOR22 10652 .word .LANCHOR133 10653 .word .LANCHOR12 10654 .word .LANCHOR148 10655 .word .LC107 10656 .word .LANCHOR158 10657 .word .LANCHOR117 10658 .size FtlVendorPartRead, .-FtlVendorPartRead 10659 .section .text.FtlLoadEctTbl,"ax",%progbits 10660 .align 1 10661 .global FtlLoadEctTbl 10662 .syntax unified 10663 .thumb 10664 .thumb_func 10665 .fpu softvfp 10666 .type FtlLoadEctTbl, %function 10667FtlLoadEctTbl: 10668 @ args = 0, pretend = 0, frame = 0 10669 @ frame_needed = 0, uses_anonymous_args = 0 10670 push {r3, r4, r5, lr} 10671 movs r0, #64 10672 ldr r4, .L1440 10673 ldr r5, .L1440+4 10674 ldr r2, [r4] 10675 ldrh r1, [r5] 10676 bl FtlVendorPartRead 10677 ldr r3, [r4] 10678 ldr r2, [r3] 10679 ldr r3, .L1440+8 10680 cmp r2, r3 10681 beq .L1439 10682 ldr r1, .L1440+12 10683 ldr r0, .L1440+16 10684 bl printf 10685 ldrh r2, [r5] 10686 movs r1, #0 10687 ldr r0, [r4] 10688 lsls r2, r2, #9 10689 bl ftl_memset 10690.L1439: 10691 movs r0, #0 10692 pop {r3, r4, r5, pc} 10693.L1441: 10694 .align 2 10695.L1440: 10696 .word .LANCHOR127 10697 .word .LANCHOR125 10698 .word 1112818501 10699 .word .LC108 10700 .word .LC71 10701 .size FtlLoadEctTbl, .-FtlLoadEctTbl 10702 .section .text.Ftl_load_ext_data,"ax",%progbits 10703 .align 1 10704 .global Ftl_load_ext_data 10705 .syntax unified 10706 .thumb 10707 .thumb_func 10708 .fpu softvfp 10709 .type Ftl_load_ext_data, %function 10710Ftl_load_ext_data: 10711 @ args = 0, pretend = 0, frame = 0 10712 @ frame_needed = 0, uses_anonymous_args = 0 10713 push {r3, r4, r5, lr} 10714 movs r1, #1 10715 ldr r4, .L1445 10716 movs r0, #0 10717 ldr r5, .L1445+4 10718 mov r2, r4 10719 bl FtlVendorPartRead 10720 ldr r3, [r4] 10721 cmp r3, r5 10722 beq .L1443 10723 mov r2, #512 10724 movs r1, #0 10725 mov r0, r4 10726 bl ftl_memset 10727 str r5, [r4] 10728.L1443: 10729 ldr r3, [r4] 10730 cmp r3, r5 10731 ldr r3, .L1445+8 10732 bne .L1444 10733 ldr r1, [r4, #88] 10734 ldr r2, .L1445+12 10735 str r1, [r2] 10736 ldr r1, [r4, #92] 10737 ldr r2, .L1445+16 10738 str r1, [r2] 10739 ldr r1, [r4, #8] 10740 ldr r2, .L1445+20 10741 str r1, [r2] 10742 ldr r1, [r4, #12] 10743 ldr r2, .L1445+24 10744 str r1, [r2] 10745 ldr r1, [r4, #16] 10746 ldr r2, .L1445+28 10747 str r1, [r2] 10748 ldr r1, [r4, #20] 10749 ldr r2, .L1445+32 10750 str r1, [r2] 10751 ldr r2, [r4, #28] 10752 ldr r1, [r4, #32] 10753 str r2, [r3] 10754 ldr r2, .L1445+36 10755 str r1, [r2] 10756 ldr r1, [r4, #36] 10757 ldr r2, .L1445+40 10758 str r1, [r2] 10759 ldr r1, [r4, #40] 10760 ldr r2, .L1445+44 10761 str r1, [r2] 10762 ldr r1, [r4, #44] 10763 ldr r2, .L1445+48 10764 str r1, [r2] 10765 ldr r1, [r4, #48] 10766 ldr r2, .L1445+52 10767 str r1, [r2] 10768.L1444: 10769 ldr r1, .L1445+56 10770 ldr r2, .L1445+60 10771 ldr r3, [r3] 10772 ldr r0, [r1] 10773 ldrh r2, [r2] 10774 ldr r1, .L1445+64 10775 mla r0, r0, r2, r3 10776 ldrh r1, [r1] 10777 bl __aeabi_uidiv 10778 ldr r3, .L1445+68 10779 str r0, [r3] 10780 pop {r3, r4, r5, pc} 10781.L1446: 10782 .align 2 10783.L1445: 10784 .word .LANCHOR81 10785 .word 1179929683 10786 .word .LANCHOR73 10787 .word .LANCHOR68 10788 .word .LANCHOR69 10789 .word .LANCHOR67 10790 .word .LANCHOR64 10791 .word .LANCHOR62 10792 .word .LANCHOR66 10793 .word .LANCHOR75 10794 .word .LANCHOR63 10795 .word .LANCHOR65 10796 .word .LANCHOR76 10797 .word .LANCHOR77 10798 .word .LANCHOR72 10799 .word .LANCHOR14 10800 .word .LANCHOR5 10801 .word .LANCHOR74 10802 .size Ftl_load_ext_data, .-Ftl_load_ext_data 10803 .section .text.sftl_vendor_read,"ax",%progbits 10804 .align 1 10805 .global sftl_vendor_read 10806 .syntax unified 10807 .thumb 10808 .thumb_func 10809 .fpu softvfp 10810 .type sftl_vendor_read, %function 10811sftl_vendor_read: 10812 @ args = 0, pretend = 0, frame = 0 10813 @ frame_needed = 0, uses_anonymous_args = 0 10814 @ link register save eliminated. 10815 add r0, r0, #256 10816 b FtlVendorPartRead 10817 .size sftl_vendor_read, .-sftl_vendor_read 10818 .section .text.FtlVpcTblFlush,"ax",%progbits 10819 .align 1 10820 .global FtlVpcTblFlush 10821 .syntax unified 10822 .thumb 10823 .thumb_func 10824 .fpu softvfp 10825 .type FtlVpcTblFlush, %function 10826FtlVpcTblFlush: 10827 @ args = 0, pretend = 0, frame = 8 10828 @ frame_needed = 0, uses_anonymous_args = 0 10829 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 10830 mov fp, #0 10831 ldr r3, .L1463 10832 ldr r4, .L1463+4 10833 ldr r10, .L1463+76 10834 ldr r0, [r3] 10835 ldr r5, .L1463+8 10836 ldr r7, [r10] 10837 ldrh r2, [r4] 10838 str r0, [r5, #8] 10839 str r7, [r5, #12] 10840 strh r2, [r7, #2] @ movhi 10841 movw r2, #61604 10842 strh r2, [r7] @ movhi 10843 ldr r2, [r4, #8] 10844 ldr r6, .L1463+12 10845 ldr ip, .L1463+80 10846 str r2, [r7, #4] 10847 ldr r2, .L1463+16 10848 str fp, [r7, #8] 10849 str fp, [r7, #12] 10850 stm r6, {r2, ip} 10851 ldrh r2, [r4, #6] 10852 str r3, [sp, #4] 10853 ldr r8, .L1463+84 10854 strh r2, [r6, #8] @ movhi 10855 ldr r2, .L1463+20 10856 ldrh r2, [r2] 10857 strb r2, [r6, #10] 10858 ldr r2, .L1463+24 10859 ldrh r1, [r2] 10860 ldrh ip, [r2, #2] 10861 strh r1, [r6, #14] @ movhi 10862 ldrb r1, [r2, #6] @ zero_extendqisi2 10863 ldrb r2, [r2, #8] @ zero_extendqisi2 10864 strb r2, [r6, #11] 10865 orr r1, r1, ip, lsl #6 10866 ldr r2, .L1463+28 10867 strh r1, [r6, #16] @ movhi 10868 ldrh r1, [r2] 10869 ldrh ip, [r2, #2] 10870 strh r1, [r6, #18] @ movhi 10871 ldrb r1, [r2, #6] @ zero_extendqisi2 10872 ldrb r2, [r2, #8] @ zero_extendqisi2 10873 orr r1, r1, ip, lsl #6 10874 strh r1, [r6, #20] @ movhi 10875 strb r2, [r6, #12] 10876 ldr r2, .L1463+32 10877 ldrh r1, [r2] 10878 ldrh ip, [r2, #2] 10879 strh r1, [r6, #22] @ movhi 10880 ldrb r1, [r2, #6] @ zero_extendqisi2 10881 ldrb r2, [r2, #8] @ zero_extendqisi2 10882 strb r2, [r6, #13] 10883 orr r1, r1, ip, lsl #6 10884 ldr r2, .L1463+36 10885 strh r1, [r6, #24] @ movhi 10886 movs r1, #255 10887 ldr r2, [r2] 10888 str r2, [r6, #32] 10889 ldr r2, [r8] 10890 str r2, [r6, #40] 10891 ldr r2, .L1463+40 10892 ldr r2, [r2] 10893 str r2, [r6, #36] 10894 ldr r2, .L1463+44 10895 ldrh r2, [r2] 10896 bl ftl_memset 10897 mov r1, r6 10898 ldr r6, .L1463+48 10899 movs r2, #48 10900 ldr r0, [r5, #8] 10901 bl ftl_memcpy 10902 ldrh r2, [r6] 10903 ldr r0, [r5, #8] 10904 ldr r1, .L1463+52 10905 lsls r2, r2, #1 10906 adds r0, r0, #48 10907 ldr r1, [r1] 10908 bl ftl_memcpy 10909 ldrh r0, [r6] 10910 ldr r1, .L1463+56 10911 ldr r6, [r5, #8] 10912 lsrs r2, r0, #3 10913 adds r0, r0, #24 10914 lsls r0, r0, #1 10915 ldr r1, [r1] 10916 adds r2, r2, #4 10917 bic r0, r0, #3 10918 add r0, r0, r6 10919 mov r6, fp 10920 bl ftl_memcpy 10921 mov r0, fp 10922 movw fp, #65535 10923 bl FtlUpdateVaildLpn 10924.L1449: 10925 ldr r3, [sp, #4] 10926 ldrh r1, [r4, #2] 10927 ldrh r2, [r4] 10928 ldr r3, [r3] 10929 str r3, [r5, #8] 10930 ldr r3, [r10] 10931 str r3, [r5, #12] 10932 orr r3, r1, r2, lsl #10 10933 str r3, [r5, #4] 10934 ldr r3, .L1463+60 10935 ldrh r3, [r3] 10936 subs r3, r3, #1 10937 cmp r1, r3 10938 blt .L1450 10939 movs r3, #0 10940 ldrh fp, [r4, #4] 10941 strh r3, [r4, #2] @ movhi 10942 strh r2, [r4, #4] @ movhi 10943 bl FtlFreeSysBlkQueueOut 10944 ldr r3, [r8] 10945 strh r0, [r4] @ movhi 10946 adds r2, r3, #1 10947 str r3, [r4, #8] 10948 str r2, [r8] 10949 lsls r2, r0, #10 10950 str r2, [r5, #4] 10951 str r3, [r7, #4] 10952 strh r0, [r7, #2] @ movhi 10953.L1450: 10954 movs r3, #1 10955 ldr r0, .L1463+8 10956 mov r2, r3 10957 mov r1, r3 10958 bl FlashProgPages 10959 ldrh r3, [r4, #2] 10960 ldr r2, [r5] 10961 adds r3, r3, #1 10962 uxth r3, r3 10963 adds r1, r2, #1 10964 strh r3, [r4, #2] @ movhi 10965 bne .L1451 10966 cmp r3, #1 10967 bne .L1452 10968 movw r2, #1135 10969 ldr r1, .L1463+64 10970 ldr r0, .L1463+68 10971 bl printf 10972.L1452: 10973 ldrh r3, [r4, #2] 10974 adds r6, r6, #1 10975 uxth r6, r6 10976 cmp r3, #1 10977 itttt eq 10978 ldreq r3, .L1463+60 10979 ldrheq r3, [r3] 10980 addeq r3, r3, #-1 10981 strheq r3, [r4, #2] @ movhi 10982 cmp r6, #3 10983 bls .L1449 10984 mov r2, r6 10985 ldr r1, [r5, #4] 10986 ldr r0, .L1463+72 10987 bl printf 10988.L1455: 10989 b .L1455 10990.L1451: 10991 cmp r3, #1 10992 beq .L1449 10993 cmp r2, #256 10994 beq .L1449 10995 movw r3, #65535 10996 cmp fp, r3 10997 beq .L1456 10998 movs r1, #1 10999 mov r0, fp 11000 bl FtlFreeSysBlkQueueIn 11001.L1456: 11002 movs r0, #0 11003 add sp, sp, #8 11004 @ sp needed 11005 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11006.L1464: 11007 .align 2 11008.L1463: 11009 .word .LANCHOR115 11010 .word .LANCHOR79 11011 .word .LANCHOR148 11012 .word .LANCHOR39 11013 .word 1179929683 11014 .word .LANCHOR10 11015 .word .LANCHOR51 11016 .word .LANCHOR52 11017 .word .LANCHOR53 11018 .word .LANCHOR72 11019 .word .LANCHOR71 11020 .word .LANCHOR23 11021 .word .LANCHOR5 11022 .word .LANCHOR42 11023 .word .LANCHOR1 11024 .word .LANCHOR20 11025 .word .LANCHOR171 11026 .word .LC1 11027 .word .LC109 11028 .word .LANCHOR123 11029 .word 1342177352 11030 .word .LANCHOR70 11031 .size FtlVpcTblFlush, .-FtlVpcTblFlush 11032 .section .text.FtlSysFlush,"ax",%progbits 11033 .align 1 11034 .global FtlSysFlush 11035 .syntax unified 11036 .thumb 11037 .thumb_func 11038 .fpu softvfp 11039 .type FtlSysFlush, %function 11040FtlSysFlush: 11041 @ args = 0, pretend = 0, frame = 0 11042 @ frame_needed = 0, uses_anonymous_args = 0 11043 push {r3, lr} 11044 bl l2p_flush 11045 movs r0, #1 11046 bl FtlEctTblFlush 11047 bl FtlVpcTblFlush 11048 movs r0, #0 11049 pop {r3, pc} 11050 .size FtlSysFlush, .-FtlSysFlush 11051 .section .text.sftl_deinit,"ax",%progbits 11052 .align 1 11053 .global sftl_deinit 11054 .syntax unified 11055 .thumb 11056 .thumb_func 11057 .fpu softvfp 11058 .type sftl_deinit, %function 11059sftl_deinit: 11060 @ args = 0, pretend = 0, frame = 0 11061 @ frame_needed = 0, uses_anonymous_args = 0 11062 push {r3, lr} 11063 ldr r3, .L1468 11064 ldr r3, [r3] 11065 cmp r3, #1 11066 bne .L1467 11067 bl FtlSysFlush 11068.L1467: 11069 movs r0, #0 11070 pop {r3, pc} 11071.L1469: 11072 .align 2 11073.L1468: 11074 .word .LANCHOR86 11075 .size sftl_deinit, .-sftl_deinit 11076 .section .text.FtlDiscard,"ax",%progbits 11077 .align 1 11078 .global FtlDiscard 11079 .syntax unified 11080 .thumb 11081 .thumb_func 11082 .fpu softvfp 11083 .type FtlDiscard, %function 11084FtlDiscard: 11085 @ args = 0, pretend = 0, frame = 8 11086 @ frame_needed = 0, uses_anonymous_args = 0 11087 ldr r3, .L1485 11088 adds r2, r0, r1 11089 push {r0, r1, r4, r5, r6, r7, r8, lr} 11090 mov r7, r0 11091 mov r5, r1 11092 ldr r3, [r3] 11093 cmp r2, r3 11094 bhi .L1478 11095 cmp r1, #31 11096 bhi .L1472 11097.L1477: 11098 movs r0, #0 11099.L1470: 11100 add sp, sp, #8 11101 @ sp needed 11102 pop {r4, r5, r6, r7, r8, pc} 11103.L1472: 11104 ldr r8, .L1485+12 11105 ldrh r4, [r8] 11106 mov r1, r4 11107 bl __aeabi_uidiv 11108 smulbb r3, r0, r4 11109 mov r6, r0 11110 subs r7, r7, r3 11111 uxth r7, r7 11112 cbz r7, .L1473 11113 subs r4, r4, r7 11114 adds r6, r6, #1 11115 cmp r4, r5 11116 it cs 11117 movcs r4, r5 11118 uxth r4, r4 11119 subs r5, r5, r4 11120.L1473: 11121 ldr r4, .L1485+4 11122 mov r3, #-1 11123 ldr r7, .L1485+8 11124 str r3, [sp, #4] 11125.L1474: 11126 ldrh r3, [r8] 11127 cmp r5, r3 11128 bcs .L1476 11129 ldr r3, .L1485+4 11130 ldr r2, [r3] 11131 cmp r2, #32 11132 bls .L1477 11133 movs r4, #0 11134 str r4, [r3] 11135 bl l2p_flush 11136 bl FtlVpcTblFlush 11137 b .L1477 11138.L1476: 11139 movs r2, #0 11140 mov r1, sp 11141 mov r0, r6 11142 bl log2phys 11143 ldr r3, [sp] 11144 adds r3, r3, #1 11145 beq .L1475 11146 ldr r3, [r4] 11147 movs r2, #1 11148 add r1, sp, #4 11149 mov r0, r6 11150 adds r3, r3, #1 11151 str r3, [r4] 11152 ldr r3, [r7] 11153 adds r3, r3, #1 11154 str r3, [r7] 11155 bl log2phys 11156 ldr r0, [sp] 11157 ubfx r0, r0, #10, #16 11158 bl P2V_block_in_plane 11159 bl decrement_vpc_count 11160.L1475: 11161 ldrh r3, [r8] 11162 adds r6, r6, #1 11163 subs r5, r5, r3 11164 b .L1474 11165.L1478: 11166 mov r0, #-1 11167 b .L1470 11168.L1486: 11169 .align 2 11170.L1485: 11171 .word .LANCHOR34 11172 .word .LANCHOR172 11173 .word .LANCHOR63 11174 .word .LANCHOR12 11175 .size FtlDiscard, .-FtlDiscard 11176 .section .text.FtlVpcCheckAndModify,"ax",%progbits 11177 .align 1 11178 .global FtlVpcCheckAndModify 11179 .syntax unified 11180 .thumb 11181 .thumb_func 11182 .fpu softvfp 11183 .type FtlVpcCheckAndModify, %function 11184FtlVpcCheckAndModify: 11185 @ args = 0, pretend = 0, frame = 8 11186 @ frame_needed = 0, uses_anonymous_args = 0 11187 push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr} 11188 movs r4, #0 11189 ldr r1, .L1500 11190 ldr r0, .L1500+4 11191 bl printf 11192 ldr r3, .L1500+8 11193 movs r1, #0 11194 ldr r5, .L1500+12 11195 ldr r6, .L1500+16 11196 ldrh r2, [r3] 11197 ldr r0, [r5] 11198 lsls r2, r2, #1 11199 bl ftl_memset 11200.L1488: 11201 ldr r3, [r6] 11202 cmp r4, r3 11203 bcc .L1490 11204 ldr r10, .L1500+36 11205 movs r7, #0 11206 ldr r8, .L1500+40 11207.L1491: 11208 ldrh r3, [r10] 11209 uxth r6, r7 11210 cmp r3, r6 11211 bhi .L1496 11212 bl l2p_flush 11213 bl FtlVpcTblFlush 11214 add sp, sp, #12 11215 @ sp needed 11216 pop {r4, r5, r6, r7, r8, r10, pc} 11217.L1490: 11218 movs r2, #0 11219 add r1, sp, #4 11220 mov r0, r4 11221 bl log2phys 11222 ldr r0, [sp, #4] 11223 adds r3, r0, #1 11224 beq .L1489 11225 ubfx r0, r0, #10, #16 11226 bl P2V_block_in_plane 11227 ldr r2, [r5] 11228 ldrh r3, [r2, r0, lsl #1] 11229 adds r3, r3, #1 11230 strh r3, [r2, r0, lsl #1] @ movhi 11231.L1489: 11232 adds r4, r4, #1 11233 b .L1488 11234.L1496: 11235 ldr r3, [r8] 11236 uxth r4, r7 11237 ldrh r2, [r3, r4, lsl #1] 11238 ldr r3, [r5] 11239 ldrh r3, [r3, r4, lsl #1] 11240 cmp r2, r3 11241 beq .L1493 11242 movw r1, #65535 11243 cmp r2, r1 11244 beq .L1493 11245 mov r1, r4 11246 ldr r0, .L1500+20 11247 bl printf 11248 ldr r3, .L1500+24 11249 ldrh r3, [r3] 11250 cmp r3, r6 11251 beq .L1493 11252 ldr r3, .L1500+28 11253 ldrh r3, [r3] 11254 cmp r3, r6 11255 beq .L1493 11256 ldr r3, .L1500+32 11257 ldrh r3, [r3] 11258 cmp r3, r6 11259 beq .L1493 11260 ldr r3, [r8] 11261 ldrh r2, [r3, r4, lsl #1] 11262 cbnz r2, .L1495 11263 ldr r2, [r5] 11264 ldrh r2, [r2, r4, lsl #1] 11265 strh r2, [r3, r4, lsl #1] @ movhi 11266.L1493: 11267 adds r7, r7, #1 11268 b .L1491 11269.L1495: 11270 ldr r2, [r5] 11271 mov r0, r6 11272 ldrh r2, [r2, r4, lsl #1] 11273 strh r2, [r3, r4, lsl #1] @ movhi 11274 bl update_vpc_list 11275 b .L1493 11276.L1501: 11277 .align 2 11278.L1500: 11279 .word .LANCHOR173 11280 .word .LC94 11281 .word .LANCHOR6 11282 .word .LANCHOR128 11283 .word .LANCHOR61 11284 .word .LC110 11285 .word .LANCHOR51 11286 .word .LANCHOR53 11287 .word .LANCHOR52 11288 .word .LANCHOR5 11289 .word .LANCHOR42 11290 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify 11291 .section .text.allocate_new_data_superblock,"ax",%progbits 11292 .align 1 11293 .global allocate_new_data_superblock 11294 .syntax unified 11295 .thumb 11296 .thumb_func 11297 .fpu softvfp 11298 .type allocate_new_data_superblock, %function 11299allocate_new_data_superblock: 11300 @ args = 0, pretend = 0, frame = 0 11301 @ frame_needed = 0, uses_anonymous_args = 0 11302 ldr r3, .L1512 11303 push {r4, r5, r6, lr} 11304 mov r6, r0 11305 ldrh r4, [r0] 11306 ldrh r3, [r3] 11307 cmp r3, r4 11308 bcs .L1503 11309 movw r2, #2714 11310 ldr r1, .L1512+4 11311 ldr r0, .L1512+8 11312 bl printf 11313.L1503: 11314 movw r3, #65535 11315 cmp r4, r3 11316 beq .L1504 11317 ldr r3, .L1512+12 11318 mov r0, r4 11319 ldr r3, [r3] 11320 ldrh r3, [r3, r4, lsl #1] 11321 cbz r3, .L1505 11322 bl INSERT_DATA_LIST 11323.L1504: 11324 ldr r5, .L1512+16 11325 movw r2, #65535 11326 movs r3, #1 11327 strb r3, [r6, #8] 11328 ldrh r0, [r5] 11329 cmp r0, r2 11330 beq .L1506 11331 cmp r4, r0 11332 bne .L1507 11333 ldr r3, .L1512+12 11334 ldr r3, [r3] 11335 ldrh r3, [r3, r0, lsl #1] 11336 cbz r3, .L1508 11337.L1507: 11338 bl update_vpc_list 11339.L1508: 11340 movw r3, #65535 11341 strh r3, [r5] @ movhi 11342.L1506: 11343 mov r0, r6 11344 bl allocate_data_superblock 11345 bl l2p_flush 11346 movs r0, #0 11347 bl FtlEctTblFlush 11348 bl FtlVpcTblFlush 11349 movs r0, #0 11350 pop {r4, r5, r6, pc} 11351.L1505: 11352 bl INSERT_FREE_LIST 11353 b .L1504 11354.L1513: 11355 .align 2 11356.L1512: 11357 .word .LANCHOR5 11358 .word .LANCHOR174 11359 .word .LC1 11360 .word .LANCHOR42 11361 .word .LANCHOR142 11362 .size allocate_new_data_superblock, .-allocate_new_data_superblock 11363 .section .text.FtlProgPages,"ax",%progbits 11364 .align 1 11365 .global FtlProgPages 11366 .syntax unified 11367 .thumb 11368 .thumb_func 11369 .fpu softvfp 11370 .type FtlProgPages, %function 11371FtlProgPages: 11372 @ args = 0, pretend = 0, frame = 8 11373 @ frame_needed = 0, uses_anonymous_args = 0 11374 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 11375 movs r6, #0 11376 ldr r8, .L1528+24 11377 mov r4, r3 11378 movs r2, #0 11379 mov r5, r0 11380 ldrb r3, [r3, #9] @ zero_extendqisi2 11381 mov r10, r1 11382 bl FlashProgPages 11383.L1515: 11384 cmp r6, r10 11385 beq .L1522 11386 ldr r7, .L1528 11387 b .L1523 11388.L1518: 11389 ldr r0, [r5, #4] 11390 ubfx r0, r0, #10, #16 11391 bl P2V_block_in_plane 11392 ldrh r3, [r4] 11393 cmp r3, r0 11394 bne .L1516 11395 ldr r1, [r8] 11396 ldrh r0, [r4, #4] 11397 ldrh r2, [r1, r3, lsl #1] 11398 subs r2, r2, r0 11399 strh r2, [r1, r3, lsl #1] @ movhi 11400 ldrh r3, [r7] 11401 strh r3, [r4, #2] @ movhi 11402 movs r3, #0 11403 strb r3, [r4, #6] 11404 strh r3, [r4, #4] @ movhi 11405.L1516: 11406 ldrh r3, [r4, #4] 11407 cbnz r3, .L1517 11408 mov r0, r4 11409 bl allocate_new_data_superblock 11410.L1517: 11411 ldr r2, .L1528+4 11412 ldr r3, [r2, #96] 11413 adds r3, r3, #1 11414 str r3, [r2, #96] 11415 ldr r0, [r5, #4] 11416 ubfx r0, r0, #10, #16 11417 bl FtlGcMarkBadPhyBlk 11418 mov r0, r4 11419 bl get_new_active_ppa 11420 movs r2, #0 11421 str r0, [r5, #4] 11422 str r0, [sp, #4] 11423 movs r1, #1 11424 ldrb r3, [r4, #9] @ zero_extendqisi2 11425 mov r0, r5 11426 bl FlashProgPages 11427.L1523: 11428 ldr r3, [r5] 11429 adds r3, r3, #1 11430 beq .L1518 11431 ldr r3, .L1528+8 11432 ldrb r2, [r4, #6] @ zero_extendqisi2 11433 ldrh r3, [r3] 11434 cmp r2, r3 11435 bcc .L1519 11436 movw r2, #955 11437 ldr r1, .L1528+12 11438 ldr r0, .L1528+16 11439 bl printf 11440.L1519: 11441 ldr r3, [r5, #4] 11442 add r1, sp, #8 11443 movs r2, #1 11444 ldr r0, [r5, #16] 11445 str r3, [r1, #-4]! 11446 bl log2phys 11447 ldr r3, [r5, #12] 11448 ldr fp, [r3, #12] 11449 ubfx r0, fp, #10, #16 11450 bl P2V_block_in_plane 11451 cmp fp, #-1 11452 mov r7, r0 11453 beq .L1520 11454 ldr r3, [r8] 11455 ldrh r2, [r3, r0, lsl #1] 11456 cbnz r2, .L1521 11457 mov r1, r0 11458 ldr r0, .L1528+20 11459 bl printf 11460.L1521: 11461 mov r0, r7 11462 bl decrement_vpc_count 11463.L1520: 11464 adds r6, r6, #1 11465 adds r5, r5, #20 11466 b .L1515 11467.L1522: 11468 ldr r3, .L1528+8 11469 ldrb r2, [r4, #6] @ zero_extendqisi2 11470 ldrh r3, [r3] 11471 cmp r2, r3 11472 bcc .L1514 11473 movw r2, #970 11474 ldr r1, .L1528+12 11475 ldr r0, .L1528+16 11476 bl printf 11477.L1514: 11478 add sp, sp, #8 11479 @ sp needed 11480 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11481.L1529: 11482 .align 2 11483.L1528: 11484 .word .LANCHOR19 11485 .word .LANCHOR81 11486 .word .LANCHOR3 11487 .word .LANCHOR175 11488 .word .LC1 11489 .word .LC111 11490 .word .LANCHOR42 11491 .size FtlProgPages, .-FtlProgPages 11492 .section .text.FtlGcFreeTempBlock,"ax",%progbits 11493 .align 1 11494 .global FtlGcFreeTempBlock 11495 .syntax unified 11496 .thumb 11497 .thumb_func 11498 .fpu softvfp 11499 .type FtlGcFreeTempBlock, %function 11500FtlGcFreeTempBlock: 11501 @ args = 0, pretend = 0, frame = 16 11502 @ frame_needed = 0, uses_anonymous_args = 0 11503 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 11504 movw r2, #65535 11505 ldr r4, .L1556 11506 ldr r6, .L1556+4 11507 ldrh r5, [r4] 11508 ldrh r1, [r6] 11509 cmp r5, r2 11510 bne .L1531 11511.L1541: 11512 ldr r3, .L1556+8 11513 movs r2, #0 11514 str r2, [r3] 11515 movw r3, #65535 11516 ldrh r2, [r4] 11517 cmp r2, r3 11518 bne .L1554 11519.L1532: 11520 movs r0, #0 11521.L1530: 11522 add sp, sp, #16 11523 @ sp needed 11524 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11525.L1531: 11526 cbz r0, .L1534 11527 ldr r3, .L1556+12 11528 ldrh r0, [r3] 11529 cmp r0, r2 11530 beq .L1535 11531.L1536: 11532 movs r1, #2 11533.L1534: 11534 ldr r0, .L1556 11535 bl FtlGcScanTempBlk 11536 str r0, [sp, #12] 11537 adds r0, r0, #1 11538 beq .L1537 11539 ldr r3, .L1556+16 11540 ldr r2, [r3] 11541 ldrh r3, [r2, r5, lsl #1] 11542 cmp r3, #4 11543 bls .L1538 11544 subs r3, r3, #5 11545 movs r0, #1 11546 strh r3, [r2, r5, lsl #1] @ movhi 11547 bl FtlEctTblFlush 11548.L1538: 11549 ldr r4, .L1556+8 11550 ldr r2, [r4] 11551 cbnz r2, .L1539 11552 ldr r2, .L1556+20 11553 ldr r0, [sp, #12] 11554 ldr r3, [r2, #96] 11555 ubfx r0, r0, #10, #16 11556 adds r3, r3, #1 11557 str r3, [r2, #96] 11558 bl FtlBbmMapBadBlock 11559 bl FtlBbmTblFlush 11560.L1539: 11561 movs r3, #0 11562 str r3, [r4] 11563.L1550: 11564 movs r0, #1 11565 b .L1530 11566.L1535: 11567 movs r2, #0 11568 strh r2, [r3] @ movhi 11569 ldr r3, .L1556+24 11570 ldrh r3, [r3] 11571 cmp r3, #17 11572 bhi .L1536 11573 b .L1534 11574.L1537: 11575 ldr r3, .L1556+12 11576 ldrh r2, [r3] 11577 movw r3, #65535 11578 cmp r2, r3 11579 bne .L1550 11580 b .L1541 11581.L1554: 11582 ldrb r1, [r4, #7] @ zero_extendqisi2 11583 ldrh r3, [r6] 11584 ldr r5, .L1556+28 11585 muls r3, r1, r3 11586 ldrh r2, [r5] 11587 cmp r2, r3 11588 beq .L1542 11589 movs r2, #162 11590 ldr r1, .L1556+32 11591 ldr r0, .L1556+36 11592 bl printf 11593.L1542: 11594 ldrh r6, [r6] 11595 ldrb r3, [r4, #7] @ zero_extendqisi2 11596 ldr r2, .L1556+40 11597 ldrh r0, [r4] 11598 ldr fp, .L1556+68 11599 smulbb r3, r3, r6 11600 ldr r1, [r2] 11601 movs r6, #0 11602 str r2, [sp, #4] 11603 strh r3, [r1, r0, lsl #1] @ movhi 11604 ldr r1, .L1556+44 11605 ldrh r3, [r5] 11606 ldr r0, [r1] 11607 add r3, r3, r0 11608 str r3, [r1] 11609.L1543: 11610 ldrh r2, [r5] 11611 uxth r3, r6 11612 cmp r2, r3 11613 bhi .L1547 11614 movw r0, #65535 11615 bl decrement_vpc_count 11616 ldr r3, [sp, #4] 11617 ldrh r0, [r4] 11618 ldr r3, [r3] 11619 ldrh r3, [r3, r0, lsl #1] 11620 cmp r3, #0 11621 beq .L1548 11622 bl INSERT_DATA_LIST 11623.L1549: 11624 ldr r3, .L1556+48 11625 movw r6, #65535 11626 strh r6, [r4] @ movhi 11627 movs r4, #0 11628 strh r4, [r5] @ movhi 11629 strh r4, [r3] @ movhi 11630 bl l2p_flush 11631 bl FtlVpcTblFlush 11632 ldr r3, .L1556+52 11633 strh r6, [r3] @ movhi 11634 ldr r3, .L1556+24 11635 ldrh r2, [r3] 11636 ldr r3, .L1556+56 11637 ldrh r3, [r3] 11638 add r3, r3, r3, lsl #1 11639 cmp r2, r3, asr #2 11640 ble .L1532 11641 ldr r3, .L1556+60 11642 movs r2, #20 11643 strh r2, [r3] @ movhi 11644 b .L1532 11645.L1547: 11646 uxth r3, r6 11647 movs r7, #12 11648 ldr r2, [fp] 11649 muls r7, r3, r7 11650 ldr r3, .L1556+64 11651 ldr r8, [r3] 11652 add r10, r8, r7 11653 ldr r1, [r10, #8] 11654 cmp r1, r2 11655 bcc .L1544 11656 movs r2, #168 11657 ldr r1, .L1556+32 11658 ldr r0, .L1556+36 11659 bl printf 11660.L1544: 11661 movs r2, #0 11662 add r1, sp, #12 11663 ldr r0, [r10, #8] 11664 bl log2phys 11665 ldr r2, [sp, #12] 11666 ldr r0, [r8, r7] 11667 cmp r0, r2 11668 bne .L1545 11669 ubfx r0, r0, #10, #16 11670 bl P2V_block_in_plane 11671 movs r2, #1 11672 mov r7, r0 11673 add r1, r10, #4 11674 ldr r0, [r10, #8] 11675 bl log2phys 11676 mov r0, r7 11677.L1555: 11678 bl decrement_vpc_count 11679.L1546: 11680 adds r6, r6, #1 11681 b .L1543 11682.L1545: 11683 ldr r3, [r10, #4] 11684 cmp r2, r3 11685 beq .L1546 11686 ldrh r0, [r4] 11687 b .L1555 11688.L1548: 11689 bl INSERT_FREE_LIST 11690 b .L1549 11691.L1557: 11692 .align 2 11693.L1556: 11694 .word .LANCHOR53 11695 .word .LANCHOR19 11696 .word .LANCHOR144 11697 .word .LANCHOR162 11698 .word .LANCHOR43 11699 .word .LANCHOR81 11700 .word .LANCHOR48 11701 .word .LANCHOR97 11702 .word .LANCHOR176 11703 .word .LC1 11704 .word .LANCHOR42 11705 .word .LANCHOR67 11706 .word .LANCHOR96 11707 .word .LANCHOR80 11708 .word .LANCHOR78 11709 .word .LANCHOR82 11710 .word .LANCHOR98 11711 .word .LANCHOR61 11712 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 11713 .section .text.FtlGcPageRecovery,"ax",%progbits 11714 .align 1 11715 .global FtlGcPageRecovery 11716 .syntax unified 11717 .thumb 11718 .thumb_func 11719 .fpu softvfp 11720 .type FtlGcPageRecovery, %function 11721FtlGcPageRecovery: 11722 @ args = 0, pretend = 0, frame = 0 11723 @ frame_needed = 0, uses_anonymous_args = 0 11724 push {r3, r4, r5, lr} 11725 ldr r4, .L1560 11726 ldr r5, .L1560+4 11727 ldrh r1, [r4] 11728 mov r0, r5 11729 bl FtlGcScanTempBlk 11730 ldrh r2, [r5, #2] 11731 ldrh r3, [r4] 11732 cmp r2, r3 11733 bcc .L1558 11734 ldr r0, .L1560+8 11735 bl FtlMapBlkWriteDump_data 11736 movs r0, #0 11737 bl FtlGcFreeTempBlock 11738 ldr r3, .L1560+12 11739 movs r2, #0 11740 str r2, [r3] 11741.L1558: 11742 pop {r3, r4, r5, pc} 11743.L1561: 11744 .align 2 11745.L1560: 11746 .word .LANCHOR19 11747 .word .LANCHOR53 11748 .word .LANCHOR140 11749 .word .LANCHOR144 11750 .size FtlGcPageRecovery, .-FtlGcPageRecovery 11751 .section .text.FtlPowerLostRecovery,"ax",%progbits 11752 .align 1 11753 .global FtlPowerLostRecovery 11754 .syntax unified 11755 .thumb 11756 .thumb_func 11757 .fpu softvfp 11758 .type FtlPowerLostRecovery, %function 11759FtlPowerLostRecovery: 11760 @ args = 0, pretend = 0, frame = 0 11761 @ frame_needed = 0, uses_anonymous_args = 0 11762 push {r3, r4, r5, lr} 11763 movs r4, #0 11764 ldr r5, .L1563 11765 ldr r3, .L1563+4 11766 mov r0, r5 11767 str r4, [r3] 11768 bl FtlRecoverySuperblock 11769 mov r0, r5 11770 ldr r5, .L1563+8 11771 bl FtlSlcSuperblockCheck 11772 mov r0, r5 11773 bl FtlRecoverySuperblock 11774 mov r0, r5 11775 bl FtlSlcSuperblockCheck 11776 bl FtlGcPageRecovery 11777 movw r0, #65535 11778 bl decrement_vpc_count 11779 mov r0, r4 11780 pop {r3, r4, r5, pc} 11781.L1564: 11782 .align 2 11783.L1563: 11784 .word .LANCHOR51 11785 .word .LANCHOR168 11786 .word .LANCHOR52 11787 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 11788 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 11789 .align 1 11790 .global Ftl_gc_temp_data_write_back 11791 .syntax unified 11792 .thumb 11793 .thumb_func 11794 .fpu softvfp 11795 .type Ftl_gc_temp_data_write_back, %function 11796Ftl_gc_temp_data_write_back: 11797 @ args = 0, pretend = 0, frame = 0 11798 @ frame_needed = 0, uses_anonymous_args = 0 11799 push {r3, r4, r5, r6, r7, lr} 11800 movs r3, #0 11801 ldr r4, .L1572 11802 movs r6, #0 11803 movs r7, #20 11804 mov r2, r3 11805 ldr r5, .L1572+4 11806 ldr r1, [r4] 11807 ldr r0, [r5] 11808 bl FlashProgPages 11809.L1566: 11810 ldr r1, [r4] 11811 uxth r3, r6 11812 cmp r1, r3 11813 bhi .L1569 11814 ldr r0, [r5] 11815 bl FtlGcBufFree 11816 ldr r3, .L1572+8 11817 movs r0, #0 11818 str r0, [r4] 11819 ldrh r3, [r3, #4] 11820 cbnz r3, .L1565 11821 movs r0, #1 11822 bl FtlGcFreeTempBlock 11823 b .L1571 11824.L1569: 11825 muls r3, r7, r3 11826 ldr r2, [r5] 11827 adds r6, r6, #1 11828 adds r1, r2, r3 11829 ldr r2, [r2, r3] 11830 adds r3, r2, #1 11831 bne .L1567 11832 ldr r3, .L1572+8 11833 movs r5, #0 11834 ldr r0, .L1572+12 11835 ldrh r4, [r3] 11836 ldr r0, [r0] 11837 strh r5, [r0, r4, lsl #1] @ movhi 11838 strh r2, [r3] @ movhi 11839 ldr r2, .L1572+16 11840 ldr r0, [r1, #4] 11841 ldr r3, [r2, #96] 11842 ubfx r0, r0, #10, #16 11843 adds r3, r3, #1 11844 str r3, [r2, #96] 11845 bl FtlBbmMapBadBlock 11846 bl FtlBbmTblFlush 11847 bl FtlGcPageVarInit 11848.L1571: 11849 movs r0, #1 11850.L1565: 11851 pop {r3, r4, r5, r6, r7, pc} 11852.L1567: 11853 ldr r3, [r1, #12] 11854 ldr r1, [r1, #4] 11855 ldr r2, [r3, #8] 11856 ldr r0, [r3, #12] 11857 bl FtlGcUpdatePage 11858 b .L1566 11859.L1573: 11860 .align 2 11861.L1572: 11862 .word .LANCHOR89 11863 .word .LANCHOR113 11864 .word .LANCHOR53 11865 .word .LANCHOR42 11866 .word .LANCHOR81 11867 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 11868 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 11869 .align 1 11870 .global Ftl_get_new_temp_ppa 11871 .syntax unified 11872 .thumb 11873 .thumb_func 11874 .fpu softvfp 11875 .type Ftl_get_new_temp_ppa, %function 11876Ftl_get_new_temp_ppa: 11877 @ args = 0, pretend = 0, frame = 0 11878 @ frame_needed = 0, uses_anonymous_args = 0 11879 push {r3, r4, r5, lr} 11880 movw r3, #65535 11881 ldr r4, .L1577 11882 ldrh r2, [r4] 11883 cmp r2, r3 11884 beq .L1575 11885 ldrh r3, [r4, #4] 11886 cbnz r3, .L1576 11887.L1575: 11888 movs r0, #0 11889 movs r5, #0 11890 bl FtlGcFreeTempBlock 11891 ldr r0, .L1577 11892 strb r5, [r4, #8] 11893 bl allocate_data_superblock 11894 ldr r3, .L1577+4 11895 strh r5, [r3] @ movhi 11896 ldr r3, .L1577+8 11897 strh r5, [r3] @ movhi 11898 bl l2p_flush 11899 mov r0, r5 11900 bl FtlEctTblFlush 11901 bl FtlVpcTblFlush 11902.L1576: 11903 ldr r0, .L1577 11904 pop {r3, r4, r5, lr} 11905 b get_new_active_ppa 11906.L1578: 11907 .align 2 11908.L1577: 11909 .word .LANCHOR53 11910 .word .LANCHOR96 11911 .word .LANCHOR97 11912 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 11913 .section .text.FtlSysBlkInit,"ax",%progbits 11914 .align 1 11915 .global FtlSysBlkInit 11916 .syntax unified 11917 .thumb 11918 .thumb_func 11919 .fpu softvfp 11920 .type FtlSysBlkInit, %function 11921FtlSysBlkInit: 11922 @ args = 0, pretend = 0, frame = 0 11923 @ frame_needed = 0, uses_anonymous_args = 0 11924 push {r3, r4, r5, r6, r7, lr} 11925 movs r3, #0 11926 ldr r6, .L1594 11927 strh r3, [r6] @ movhi 11928 ldr r3, .L1594+4 11929 ldrh r0, [r3] 11930 bl FtlFreeSysBlkQueueInit 11931 bl FtlScanSysBlk 11932 ldr r3, .L1594+8 11933 ldrh r2, [r3] 11934 movw r3, #65535 11935 cmp r2, r3 11936 bne .L1580 11937.L1582: 11938 mov r7, #-1 11939.L1579: 11940 mov r0, r7 11941 pop {r3, r4, r5, r6, r7, pc} 11942.L1580: 11943 bl FtlLoadSysInfo 11944 mov r7, r0 11945 cmp r0, #0 11946 bne .L1582 11947 bl FtlLoadMapInfo 11948 bl FtlLoadVonderInfo 11949 bl Ftl_load_ext_data 11950 bl FtlLoadEctTbl 11951 bl FtlFreeSysBLkSort 11952 bl SupperBlkListInit 11953 bl FtlPowerLostRecovery 11954 movs r0, #1 11955 bl FtlUpdateVaildLpn 11956 ldr r3, .L1594+12 11957 movs r0, #12 11958 ldrh r1, [r3] 11959 ldr r3, .L1594+16 11960 ldr r2, [r3] 11961 mov r3, r7 11962.L1583: 11963 cmp r3, r1 11964 bge .L1588 11965 mla r4, r0, r3, r2 11966 ldr r4, [r4, #4] 11967 cmp r4, #0 11968 bge .L1584 11969.L1588: 11970 ldr r5, .L1594+20 11971 cmp r3, r1 11972 ldr r4, .L1594+24 11973 ldrh r2, [r5, #28] 11974 add r2, r2, #1 11975 strh r2, [r5, #28] @ movhi 11976 bge .L1593 11977.L1585: 11978 ldr r6, .L1594+28 11979 ldr r0, .L1594+24 11980 bl FtlSuperblockPowerLostFix 11981 mov r0, r6 11982 bl FtlSuperblockPowerLostFix 11983 ldr r3, .L1594+32 11984 ldrh r1, [r4] 11985 ldrh r0, [r4, #4] 11986 ldr r2, [r3] 11987 ldrh r3, [r2, r1, lsl #1] 11988 subs r3, r3, r0 11989 ldr r0, .L1594+36 11990 strh r3, [r2, r1, lsl #1] @ movhi 11991 ldrh ip, [r6] 11992 ldrh r3, [r0] 11993 ldrh lr, [r6, #4] 11994 strh r3, [r4, #2] @ movhi 11995 movs r3, #0 11996 strb r3, [r4, #6] 11997 strh r3, [r4, #4] @ movhi 11998 ldrh r1, [r2, ip, lsl #1] 11999 sub r1, r1, lr 12000 strh r1, [r2, ip, lsl #1] @ movhi 12001 strb r3, [r6, #6] 12002 strh r3, [r6, #4] @ movhi 12003 ldrh r3, [r5, #30] 12004 ldrh r2, [r0] 12005 adds r3, r3, #1 12006 strh r2, [r6, #2] @ movhi 12007 strh r3, [r5, #30] @ movhi 12008 bl l2p_flush 12009 bl FtlVpcTblFlush 12010 bl FtlVpcTblFlush 12011 b .L1589 12012.L1584: 12013 adds r3, r3, #1 12014 b .L1583 12015.L1593: 12016 ldrh r3, [r6] 12017 cmp r3, #0 12018 bne .L1585 12019.L1589: 12020 bl FtlVpcCheckAndModify 12021 ldrh r0, [r4] 12022 movw r3, #65535 12023 cmp r0, r3 12024 beq .L1579 12025 ldrh r3, [r4, #4] 12026 cmp r3, #0 12027 bne .L1579 12028 ldr r4, .L1594+28 12029 ldrh r3, [r4, #4] 12030 cmp r3, #0 12031 bne .L1579 12032 bl FtlGcRefreshBlock 12033 ldrh r0, [r4] 12034 bl FtlGcRefreshBlock 12035 bl FtlVpcTblFlush 12036 ldr r0, .L1594+24 12037 bl allocate_new_data_superblock 12038 mov r0, r4 12039 bl allocate_new_data_superblock 12040 b .L1579 12041.L1595: 12042 .align 2 12043.L1594: 12044 .word .LANCHOR167 12045 .word .LANCHOR4 12046 .word .LANCHOR79 12047 .word .LANCHOR33 12048 .word .LANCHOR55 12049 .word .LANCHOR39 12050 .word .LANCHOR51 12051 .word .LANCHOR52 12052 .word .LANCHOR42 12053 .word .LANCHOR19 12054 .size FtlSysBlkInit, .-FtlSysBlkInit 12055 .section .text.rk_ftl_garbage_collect,"ax",%progbits 12056 .align 1 12057 .global rk_ftl_garbage_collect 12058 .syntax unified 12059 .thumb 12060 .thumb_func 12061 .fpu softvfp 12062 .type rk_ftl_garbage_collect, %function 12063rk_ftl_garbage_collect: 12064 @ args = 0, pretend = 0, frame = 40 12065 @ frame_needed = 0, uses_anonymous_args = 0 12066 ldr r3, .L1719 12067 push {r4, r5, r6, r7, r8, r10, fp, lr} 12068 sub sp, sp, #48 12069 str r0, [sp, #8] 12070 ldr r0, [r3] 12071 cmp r0, #0 12072 bne .L1673 12073 ldr r3, .L1719+4 12074 ldrh r3, [r3] 12075 cmp r3, #47 12076 bls .L1596 12077 ldr r3, .L1719+8 12078 ldrh r2, [r3] 12079 movw r3, #65535 12080 cmp r2, r3 12081 bne .L1598 12082.L1601: 12083 ldr r3, .L1719+12 12084 movw r4, #65535 12085 ldrh r0, [r3] 12086 cmp r0, r4 12087 bne .L1599 12088.L1600: 12089 bl FtlReadRefresh 12090 ldr r2, .L1719+16 12091 movw r5, #65535 12092 ldr r6, .L1719+20 12093 ldr r1, [sp, #8] 12094 ldr r3, [r2] 12095 ldrh r0, [r6] 12096 adds r3, r3, #1 12097 add r3, r3, r1, lsl #7 12098 cmp r0, r5 12099 str r3, [r2] 12100 bne .L1602 12101 ldr r1, .L1719+24 12102 ldrh r1, [r1] 12103 cmp r1, r0 12104 bne .L1603 12105 ldr r0, .L1719+28 12106 ldrh r8, [r0] 12107 cmp r8, r1 12108 bne .L1604 12109 ldr r7, .L1719+32 12110 ldrh r1, [r7] 12111 cmp r1, #24 12112 ite cc 12113 movcc r1, #5120 12114 movcs r1, #1024 12115 cmp r3, r1 12116 bls .L1604 12117 ldr r3, .L1719+36 12118 movs r4, #0 12119 str r4, [r2] 12120 strh r4, [r3] @ movhi 12121 bl GetSwlReplaceBlock 12122 cmp r0, r8 12123 mov r5, r0 12124 bne .L1677 12125 ldr r8, .L1719+96 12126 ldrh r2, [r7] 12127 ldrh r3, [r8] 12128 cmp r2, r3 12129 bcs .L1607 12130 movs r0, #64 12131 bl List_get_gc_head_node 12132 uxth r3, r0 12133 cmp r3, r5 12134 beq .L1609 12135 mov r0, r3 12136 ldr r3, .L1719+40 12137 ldr r3, [r3] 12138 ldrh r3, [r3, r0, lsl #1] 12139 cmp r3, #7 12140 bhi .L1610 12141 mov r0, r4 12142 bl List_get_gc_head_node 12143 uxth r4, r0 12144 movs r3, #128 12145 strh r3, [r8] @ movhi 12146 cmp r4, r5 12147 bne .L1606 12148.L1609: 12149 bl FtlGcReFreshBadBlk 12150 ldr r3, [sp, #8] 12151 cmp r3, #0 12152 bne .L1612 12153 movw r3, #65535 12154 cmp r5, r3 12155 bne .L1612 12156.L1671: 12157 ldr r3, .L1719+32 12158 ldrh r3, [r3] 12159 cmp r3, #24 12160 bhi .L1678 12161 ldr r2, .L1719+44 12162 cmp r3, #16 12163 ldrh r4, [r2] 12164 bls .L1614 12165 lsrs r4, r4, #5 12166.L1613: 12167 ldr r1, .L1719+48 12168 ldrh r2, [r1] 12169 cmp r2, r3 12170 mov r2, r1 12171 bcs .L1617 12172 ldr r3, .L1719+24 12173 movw r0, #65535 12174 ldrh r3, [r3] 12175 cmp r3, r0 12176 bne .L1618 12177 ldr r0, .L1719+28 12178 ldrh r0, [r0] 12179 cmp r0, r3 12180 bne .L1618 12181 ldr r3, .L1719+36 12182 ldrh r0, [r3] 12183 cbnz r0, .L1619 12184 ldr r3, .L1719+52 12185 ldr r4, .L1719+56 12186 ldr r3, [r3] 12187 ldr r4, [r4] 12188 add r3, r3, r3, lsl #1 12189 cmp r4, r3, lsr #2 12190 bcs .L1620 12191.L1619: 12192 ldr r3, .L1719+60 12193 ldrh r3, [r3] 12194 add r3, r3, r3, lsl #1 12195 asrs r3, r3, #2 12196 strh r3, [r2] @ movhi 12197.L1621: 12198 ldr r3, .L1719+64 12199 movs r2, #0 12200 str r2, [r3] 12201.L1596: 12202 add sp, sp, #48 12203 @ sp needed 12204 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12205.L1598: 12206 ldr r2, .L1719+24 12207 ldrh r2, [r2] 12208 cmp r2, r3 12209 beq .L1601 12210 movs r0, #1 12211 bl FtlGcFreeTempBlock 12212 cmp r0, #0 12213 beq .L1601 12214 movs r0, #1 12215 b .L1596 12216.L1599: 12217 ldr r1, .L1719+28 12218 ldrh r2, [r1] 12219 cmp r2, r4 12220 itt eq 12221 strheq r0, [r1] @ movhi 12222 strheq r2, [r3] @ movhi 12223 b .L1600 12224.L1610: 12225 movs r3, #64 12226.L1713: 12227 strh r3, [r8] @ movhi 12228 b .L1609 12229.L1607: 12230 movs r3, #80 12231 b .L1713 12232.L1677: 12233 mov r4, r0 12234.L1606: 12235 ldr r3, .L1719+40 12236 mov r5, r4 12237 ldr r1, .L1719+48 12238 ldrh r2, [r7] 12239 ldr r3, [r3] 12240 ldrh r1, [r1] 12241 ldr r0, .L1719+68 12242 ldrh r3, [r3, r4, lsl #1] 12243 str r1, [sp, #4] 12244 ldr r1, .L1719+72 12245 ldr r1, [r1] 12246 ldrh r1, [r1, r4, lsl #1] 12247 str r1, [sp] 12248 mov r1, r4 12249 bl printf 12250 b .L1609 12251.L1614: 12252 cmp r3, #12 12253 bls .L1615 12254 lsrs r4, r4, #4 12255 b .L1613 12256.L1615: 12257 cmp r3, #8 12258 bls .L1613 12259 lsrs r4, r4, #2 12260 b .L1613 12261.L1678: 12262 movs r4, #1 12263 b .L1613 12264.L1620: 12265 movs r3, #18 12266 strh r3, [r1] @ movhi 12267 b .L1621 12268.L1618: 12269 ldr r3, .L1719+60 12270 ldrh r3, [r3] 12271 add r3, r3, r3, lsl #1 12272 asrs r3, r3, #2 12273 strh r3, [r2] @ movhi 12274.L1617: 12275 ldr r3, .L1719+76 12276 ldrh r3, [r3] 12277 cbz r3, .L1679 12278 adds r4, r4, #32 12279 uxth r4, r4 12280.L1679: 12281 movw r5, #65535 12282.L1623: 12283 ldrh r3, [r6] 12284 movw r2, #65535 12285 cmp r3, r2 12286 bne .L1632 12287 cmp r5, r3 12288 beq .L1633 12289 strh r5, [r6] @ movhi 12290.L1634: 12291 ldrh r0, [r6] 12292 movw r7, #65535 12293 movs r3, #0 12294 strb r3, [r6, #8] 12295 cmp r0, r7 12296 beq .L1632 12297 bl IsBlkInGcList 12298 cbz r0, .L1637 12299 strh r7, [r6] @ movhi 12300.L1637: 12301 ldrh r2, [r6] 12302 movw r3, #65535 12303 cmp r2, r3 12304 beq .L1632 12305 ldr r0, .L1719+20 12306 bl make_superblock 12307 ldr r2, .L1719+80 12308 movs r3, #0 12309 strh r3, [r6, #2] @ movhi 12310 strb r3, [r6, #6] 12311 strh r3, [r2] @ movhi 12312 ldr r3, .L1719+40 12313 ldrh r2, [r6] 12314 ldr r3, [r3] 12315 ldrh r2, [r3, r2, lsl #1] 12316 ldr r3, .L1719+84 12317 strh r2, [r3] @ movhi 12318.L1632: 12319 ldr r2, .L1719+88 12320 ldrh r3, [r6] 12321 ldrh r2, [r2] 12322 cmp r2, r3 12323 beq .L1638 12324 ldr r2, .L1719+92 12325 ldrh r2, [r2] 12326 cmp r2, r3 12327 bne .L1639 12328.L1638: 12329 movw r3, #65535 12330 strh r3, [r6] @ movhi 12331.L1639: 12332 ldr fp, .L1719+20 12333 mov r6, fp 12334.L1669: 12335 ldrh r2, [fp] 12336 movw r3, #65535 12337 cmp r2, r3 12338 bne .L1640 12339 ldr r10, .L1719+100 12340 movs r2, #0 12341 ldr r3, .L1719+64 12342 mov r8, r10 12343 str r2, [r3] 12344.L1641: 12345 ldrh r7, [r10] 12346 mov r0, r7 12347 bl List_get_gc_head_node 12348 uxth r3, r0 12349 movw r1, #65535 12350 cmp r3, r1 12351 strh r3, [r6] @ movhi 12352 bne .L1642 12353 movs r3, #0 12354 movs r0, #8 12355 strh r3, [r10] @ movhi 12356 b .L1596 12357.L1720: 12358 .align 2 12359.L1719: 12360 .word .LANCHOR108 12361 .word .LANCHOR45 12362 .word .LANCHOR162 12363 .word .LANCHOR100 12364 .word .LANCHOR84 12365 .word .LANCHOR80 12366 .word .LANCHOR53 12367 .word .LANCHOR99 12368 .word .LANCHOR48 12369 .word .LANCHOR177 12370 .word .LANCHOR42 12371 .word .LANCHOR19 12372 .word .LANCHOR82 12373 .word .LANCHOR61 12374 .word .LANCHOR59 12375 .word .LANCHOR78 12376 .word .LANCHOR87 12377 .word .LC112 12378 .word .LANCHOR43 12379 .word .LANCHOR101 12380 .word .LANCHOR178 12381 .word .LANCHOR179 12382 .word .LANCHOR51 12383 .word .LANCHOR52 12384 .word .LANCHOR83 12385 .word .LANCHOR85 12386.L1624: 12387 ldr r3, .L1721 12388 movs r2, #0 12389 ldr r5, .L1721+4 12390 ldr r4, .L1721+8 12391 str r2, [r3] 12392 ldrh r2, [r5] 12393 ldrh r3, [r4] 12394 ldr r7, .L1721+12 12395 cmp r2, r3 12396 bls .L1625 12397 ldrh r3, [r7] 12398 cbnz r3, .L1626 12399 ldr r3, .L1721+16 12400 ldr r2, .L1721+20 12401 ldr r3, [r3] 12402 ldr r2, [r2] 12403 add r3, r3, r3, lsl #1 12404 cmp r2, r3, lsr #2 12405 bcs .L1627 12406.L1626: 12407 ldr r3, .L1721+24 12408 ldrh r3, [r3] 12409 add r3, r3, r3, lsl #1 12410 asrs r3, r3, #2 12411.L1714: 12412 strh r3, [r4] @ movhi 12413 bl FtlReadRefresh 12414 movs r0, #0 12415 bl List_get_gc_head_node 12416 ldr r3, .L1721+28 12417 uxth r0, r0 12418 ldr r3, [r3] 12419 ldrh r3, [r3, r0, lsl #1] 12420 cmp r3, #4 12421 bls .L1625 12422.L1717: 12423 ldrh r0, [r7] 12424 b .L1596 12425.L1627: 12426 movs r3, #18 12427 b .L1714 12428.L1625: 12429 ldrh r0, [r7] 12430 cmp r0, #0 12431 bne .L1629 12432 ldr r3, .L1721+24 12433 ldrh r8, [r3] 12434 add r2, r8, r8, lsl #1 12435 asrs r2, r2, #2 12436 strh r2, [r4] @ movhi 12437 bl List_get_gc_head_node 12438 ldr r3, .L1721+28 12439 uxth r0, r0 12440 ldr r2, .L1721+32 12441 ldr r3, [r3] 12442 ldrh r2, [r2] 12443 ldrh r1, [r3, r0, lsl #1] 12444 ldr r3, .L1721+36 12445 ldrh r3, [r3] 12446 muls r2, r3, r2 12447 cmp r1, r2, asr #1 12448 ble .L1630 12449 ldrh r2, [r5] 12450 add r3, r8, #-1 12451 cmp r2, r3 12452 blt .L1630 12453 bl FtlReadRefresh 12454 b .L1717 12455.L1630: 12456 cmp r1, #0 12457 bne .L1629 12458 movw r0, #65535 12459 bl decrement_vpc_count 12460 ldrh r0, [r5] 12461 adds r0, r0, #1 12462 b .L1596 12463.L1633: 12464 ldr r3, .L1721+40 12465 ldrh r2, [r3] 12466 cmp r2, r5 12467 beq .L1634 12468 ldr r1, .L1721+28 12469 ldr r1, [r1] 12470 ldrh r2, [r1, r2, lsl #1] 12471 cbnz r2, .L1635 12472 strh r5, [r3] @ movhi 12473.L1635: 12474 ldrh r2, [r3] 12475 strh r2, [r6] @ movhi 12476 movw r2, #65535 12477 strh r2, [r3] @ movhi 12478 b .L1634 12479.L1642: 12480 str r0, [sp, #16] 12481 mov r0, r3 12482 str r3, [sp, #12] 12483 adds r7, r7, #1 12484 bl IsBlkInGcList 12485 ldr r3, [sp, #12] 12486 ldr r2, [sp, #16] 12487 cbz r0, .L1643 12488 strh r7, [r10] @ movhi 12489 b .L1641 12490.L1643: 12491 ldr lr, .L1721+28 12492 uxth r0, r2 12493 uxth r7, r7 12494 ldr r2, [lr] 12495 strh r7, [r10] @ movhi 12496 str lr, [sp, #16] 12497 ldrh ip, [r2, r0, lsl #1] 12498 str r2, [sp, #12] 12499 ldr r2, .L1721+44 12500 ldrh r2, [r2] 12501 mov r1, r2 12502 ldr r2, .L1721+32 12503 ldrh r2, [r2] 12504 muls r2, r1, r2 12505 cmp ip, r2, asr #1 12506 bgt .L1645 12507 cmp r7, #48 12508 bls .L1646 12509 cmp ip, #8 12510 bls .L1646 12511 ldr r7, .L1721+48 12512 ldrh r7, [r7] 12513 cmp r7, #35 12514 bhi .L1646 12515.L1645: 12516 movs r7, #0 12517 strh r7, [r8] @ movhi 12518.L1646: 12519 ldr r1, [sp, #12] 12520 ldrh r1, [r1, r0, lsl #1] 12521 cmp r2, r1 12522 bgt .L1647 12523 movw r2, #65535 12524 cmp r5, r2 12525 bne .L1647 12526 ldrh r2, [r8] 12527 cmp r2, #3 12528 bhi .L1647 12529 movs r3, #0 12530 strh r5, [r6] @ movhi 12531 strh r3, [r8] @ movhi 12532.L1718: 12533 ldr r3, .L1721+12 12534 ldrh r0, [r3] 12535 b .L1596 12536.L1647: 12537 cbnz r1, .L1648 12538 movw r0, #65535 12539 bl decrement_vpc_count 12540 ldrh r3, [r8] 12541 adds r3, r3, #1 12542 strh r3, [r8] @ movhi 12543 b .L1641 12544.L1648: 12545 movs r2, #0 12546 strb r2, [r6, #8] 12547 ldr r2, .L1721+52 12548 ldrh r2, [r2] 12549 cmp r2, r3 12550 bne .L1649 12551 mov r2, #700 12552 ldr r1, .L1721+56 12553 ldr r0, .L1721+60 12554 bl printf 12555.L1649: 12556 ldr r3, .L1721+64 12557 ldrh r2, [r6] 12558 ldrh r3, [r3] 12559 cmp r2, r3 12560 bne .L1650 12561 movw r2, #701 12562 ldr r1, .L1721+56 12563 ldr r0, .L1721+60 12564 bl printf 12565.L1650: 12566 ldr r3, .L1721+68 12567 ldrh r2, [r6] 12568 ldrh r3, [r3] 12569 cmp r2, r3 12570 bne .L1651 12571 movw r2, #702 12572 ldr r1, .L1721+56 12573 ldr r0, .L1721+60 12574 bl printf 12575.L1651: 12576 mov r0, fp 12577 bl make_superblock 12578 ldr r2, .L1721+72 12579 movs r3, #0 12580 ldrh r1, [r6] 12581 strh r3, [r2] @ movhi 12582 ldr r2, [sp, #16] 12583 ldr r2, [r2] 12584 ldrh r1, [r2, r1, lsl #1] 12585 ldr r2, .L1721+76 12586 strh r3, [r6, #2] @ movhi 12587 strb r3, [r6, #6] 12588 strh r1, [r2] @ movhi 12589.L1640: 12590 ldr r3, .L1721+80 12591 movs r2, #1 12592 str r2, [r3] 12593 ldr r3, .L1721+44 12594 ldrh r3, [r3] 12595 str r3, [sp, #20] 12596 ldr r3, [sp, #8] 12597 cbz r3, .L1652 12598 ldr r3, .L1721+32 12599 ldr r2, [sp, #20] 12600 ldrh r1, [r6] 12601 ldrh r3, [r3] 12602 muls r3, r2, r3 12603 ldr r2, .L1721+28 12604 ldr r2, [r2] 12605 ldrh r2, [r2, r1, lsl #1] 12606 subs r3, r3, r2 12607 it mi 12608 addmi r3, r3, #3 12609 add r4, r4, r3, asr #2 12610 uxth r4, r4 12611.L1652: 12612 ldrh r3, [r6, #2] 12613 ldr r1, [sp, #20] 12614 adds r2, r3, r4 12615 cmp r2, r1 12616 itt gt 12617 movgt r2, r1 12618 subgt r4, r2, r3 12619 mov r3, #0 12620 it gt 12621 uxthgt r4, r4 12622.L1716: 12623 str r3, [sp, #28] 12624 ldrh r3, [sp, #28] 12625 cmp r4, r3 12626 bls .L1663 12627 ldr r3, .L1721+32 12628 movw lr, #65535 12629 ldrh r1, [fp, #2] 12630 mov ip, #20 12631 ldr r7, .L1721+84 12632 ldrh r8, [r3] 12633 ldr r3, .L1721+88 12634 ldr r0, [r3] 12635 ldr r3, [sp, #28] 12636 adds r3, r1, r3 12637 str r3, [sp, #16] 12638 movs r3, #0 12639 str r3, [sp, #12] 12640 b .L1664 12641.L1657: 12642 ldrh r2, [r7, #2]! 12643 cmp r2, lr 12644 beq .L1656 12645 ldr r1, [sp, #12] 12646 mla r10, ip, r1, r0 12647 ldr r1, [sp, #16] 12648 orr r2, r1, r2, lsl #10 12649 str r2, [r10, #4] 12650 ldr r2, [sp, #12] 12651 adds r2, r2, #1 12652 uxth r2, r2 12653 str r2, [sp, #12] 12654.L1656: 12655 adds r3, r3, #1 12656.L1664: 12657 uxth r2, r3 12658 cmp r8, r2 12659 bhi .L1657 12660 ldrb r2, [fp, #8] @ zero_extendqisi2 12661 ldr r1, [sp, #12] 12662 bl FlashReadPages 12663 movs r3, #0 12664.L1715: 12665 str r3, [sp, #24] 12666 ldr r2, [sp, #12] 12667 ldrh r3, [sp, #24] 12668 cmp r2, r3 12669 bhi .L1662 12670 ldr r3, [sp, #28] 12671 adds r3, r3, #1 12672 b .L1716 12673.L1722: 12674 .align 2 12675.L1721: 12676 .word .LANCHOR87 12677 .word .LANCHOR48 12678 .word .LANCHOR82 12679 .word .LANCHOR177 12680 .word .LANCHOR61 12681 .word .LANCHOR59 12682 .word .LANCHOR78 12683 .word .LANCHOR42 12684 .word .LANCHOR3 12685 .word .LANCHOR20 12686 .word .LANCHOR99 12687 .word .LANCHOR19 12688 .word .LANCHOR96 12689 .word .LANCHOR51 12690 .word .LANCHOR180 12691 .word .LC1 12692 .word .LANCHOR52 12693 .word .LANCHOR53 12694 .word .LANCHOR178 12695 .word .LANCHOR179 12696 .word .LANCHOR108 12697 .word .LANCHOR80+14 12698 .word .LANCHOR93 12699.L1662: 12700 ldr r3, [sp, #24] 12701 movs r7, #20 12702 muls r7, r3, r7 12703 ldr r3, .L1723 12704 ldr r3, [r3] 12705 adds r2, r3, r7 12706 ldr r3, [r3, r7] 12707 adds r3, r3, #1 12708 beq .L1659 12709 ldr r3, [r2, #12] 12710 ldrh r2, [r3] 12711 str r3, [sp, #16] 12712 movw r3, #61589 12713 cmp r2, r3 12714 bne .L1659 12715 ldr r3, [sp, #16] 12716 ldr r8, [r3, #8] 12717 cmp r8, #-1 12718 bne .L1660 12719 mov r2, #736 12720 ldr r1, .L1723+4 12721 ldr r0, .L1723+8 12722 bl printf 12723.L1660: 12724 movs r2, #0 12725 add r1, sp, #44 12726 mov r0, r8 12727 bl log2phys 12728 ldr r3, .L1723 12729 ldr r1, [r3] 12730 ldr r3, [sp, #44] 12731 add r1, r1, r7 12732 ldr r2, [r1, #4] 12733 cmp r2, r3 12734 bne .L1659 12735 ldr r3, .L1723+12 12736 mov r10, #20 12737 ldr r2, .L1723+12 12738 ldr r8, .L1723+32 12739 ldrh r3, [r3] 12740 ldr r1, [r1, #16] 12741 adds r3, r3, #1 12742 strh r3, [r2] @ movhi 12743 ldr r2, .L1723+16 12744 ldr r3, [r8] 12745 ldr r0, [r2] 12746 str r2, [sp, #36] 12747 mla r3, r10, r3, r0 12748 str r1, [r3, #16] 12749 str r3, [sp, #32] 12750 bl Ftl_get_new_temp_ppa 12751 ldr r3, [sp, #32] 12752 ldr r2, [sp, #36] 12753 ldr r1, [sp, #16] 12754 str r0, [r3, #4] 12755 ldr r2, [r2] 12756 ldr r3, [r8] 12757 mla r10, r10, r3, r2 12758 ldr r2, .L1723 12759 adds r3, r3, #1 12760 ldr r0, [r2] 12761 add r0, r0, r7 12762 ldr r7, .L1723+20 12763 ldr r2, [r0, #8] 12764 str r2, [r10, #8] 12765 ldr r2, [r0, #12] 12766 str r2, [r10, #12] 12767 ldr r2, [sp, #44] 12768 str r2, [r1, #12] 12769 ldrh r2, [r7] 12770 strh r2, [r1, #2] @ movhi 12771 ldr r2, .L1723+24 12772 str r3, [r8] 12773 ldr r2, [r2] 12774 str r2, [r1, #4] 12775 movs r1, #1 12776 bl FtlGcBufAlloc 12777 ldrb r2, [r7, #7] @ zero_extendqisi2 12778 ldr r3, [r8] 12779 cmp r2, r3 12780 beq .L1661 12781 ldrh r3, [r7, #4] 12782 cbnz r3, .L1659 12783.L1661: 12784 bl Ftl_gc_temp_data_write_back 12785 cbz r0, .L1659 12786 ldr r3, .L1723+28 12787 movs r2, #0 12788 str r2, [r3] 12789 b .L1718 12790.L1659: 12791 ldr r3, [sp, #24] 12792 adds r3, r3, #1 12793 b .L1715 12794.L1663: 12795 ldrh r3, [fp, #2] 12796 add r4, r4, r3 12797 ldr r3, [sp, #20] 12798 uxth r4, r4 12799 cmp r3, r4 12800 strh r4, [fp, #2] @ movhi 12801 ldr r4, .L1723+28 12802 bhi .L1665 12803 ldr r3, .L1723+32 12804 ldr r3, [r3] 12805 cbz r3, .L1666 12806 bl Ftl_gc_temp_data_write_back 12807 cbz r0, .L1666 12808 movs r3, #0 12809 str r3, [r4] 12810 b .L1718 12811.L1666: 12812 ldr r3, .L1723+12 12813 ldrh r1, [r3] 12814 cbnz r1, .L1667 12815 ldr r3, .L1723+36 12816 ldrh r2, [fp] 12817 ldr r3, [r3] 12818 ldrh r0, [r3, r2, lsl #1] 12819 cbz r0, .L1667 12820 strh r1, [r3, r2, lsl #1] @ movhi 12821 ldrh r0, [fp] 12822 bl update_vpc_list 12823 bl l2p_flush 12824 bl FtlVpcTblFlush 12825.L1667: 12826 movw r3, #65535 12827 strh r3, [fp] @ movhi 12828.L1665: 12829 movs r3, #0 12830 str r3, [r4] 12831 ldr r3, .L1723+40 12832 ldrh r3, [r3] 12833 cmp r3, #2 12834 bhi .L1668 12835 ldr r3, .L1723+44 12836 ldrh r4, [r3] 12837 b .L1669 12838.L1668: 12839 ldr r2, .L1723+48 12840 ldrh r0, [r2] 12841 cmp r0, #0 12842 bne .L1596 12843 adds r0, r3, #1 12844 b .L1596 12845.L1673: 12846 movs r0, #0 12847 b .L1596 12848.L1602: 12849 ldr r3, [sp, #8] 12850 cmp r3, #0 12851 beq .L1671 12852.L1612: 12853 ldr r3, .L1723+20 12854 ldrh r2, [r3] 12855 movw r3, #65535 12856 cmp r2, r3 12857 bne .L1682 12858.L1672: 12859 ldr r3, .L1723+52 12860 movw r2, #65535 12861 ldrh r3, [r3] 12862 cmp r3, r2 12863 bne .L1682 12864 cmp r5, r3 12865 bne .L1682 12866 ldrh r3, [r6] 12867 cmp r3, r5 12868 beq .L1624 12869.L1629: 12870 movw r5, #65535 12871.L1682: 12872 movs r4, #1 12873 b .L1623 12874.L1604: 12875 ldr r3, [sp, #8] 12876 cmp r3, #0 12877 beq .L1671 12878 movw r5, #65535 12879 b .L1672 12880.L1603: 12881 ldr r3, [sp, #8] 12882 cmp r3, #0 12883 bne .L1629 12884 b .L1671 12885.L1724: 12886 .align 2 12887.L1723: 12888 .word .LANCHOR93 12889 .word .LANCHOR180 12890 .word .LC1 12891 .word .LANCHOR178 12892 .word .LANCHOR113 12893 .word .LANCHOR53 12894 .word .LANCHOR71 12895 .word .LANCHOR108 12896 .word .LANCHOR89 12897 .word .LANCHOR42 12898 .word .LANCHOR48 12899 .word .LANCHOR19 12900 .word .LANCHOR177 12901 .word .LANCHOR99 12902 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 12903 .section .text.sftl_init,"ax",%progbits 12904 .align 1 12905 .global sftl_init 12906 .syntax unified 12907 .thumb 12908 .thumb_func 12909 .fpu softvfp 12910 .type sftl_init, %function 12911sftl_init: 12912 @ args = 0, pretend = 0, frame = 0 12913 @ frame_needed = 0, uses_anonymous_args = 0 12914 push {r4, lr} 12915 mov r3, #-1 12916 ldr r4, .L1731 12917 ldr r1, .L1731+4 12918 ldr r0, .L1731+8 12919 str r3, [r4] 12920 bl printf 12921 ldr r0, .L1731+12 12922 bl FtlConstantsInit 12923 bl FtlMemInit 12924 bl FtlVariablesInit 12925 ldr r3, .L1731+16 12926 ldrh r0, [r3] 12927 bl FtlFreeSysBlkQueueInit 12928 bl FtlLoadBbt 12929 cbnz r0, .L1729 12930 bl FtlSysBlkInit 12931 cbnz r0, .L1729 12932 movs r3, #1 12933 str r3, [r4] 12934 ldr r3, .L1731+20 12935 ldrh r3, [r3] 12936 cmp r3, #15 12937 bhi .L1729 12938 movw r4, #8129 12939.L1728: 12940 movs r1, #1 12941 movs r0, #0 12942 bl rk_ftl_garbage_collect 12943 subs r4, r4, #1 12944 bne .L1728 12945.L1729: 12946 movs r0, #0 12947 pop {r4, pc} 12948.L1732: 12949 .align 2 12950.L1731: 12951 .word .LANCHOR86 12952 .word .LC70 12953 .word .LC71 12954 .word .LANCHOR0 12955 .word .LANCHOR4 12956 .word .LANCHOR48 12957 .size sftl_init, .-sftl_init 12958 .section .text.sftl_gc,"ax",%progbits 12959 .align 1 12960 .global sftl_gc 12961 .syntax unified 12962 .thumb 12963 .thumb_func 12964 .fpu softvfp 12965 .type sftl_gc, %function 12966sftl_gc: 12967 @ args = 0, pretend = 0, frame = 0 12968 @ frame_needed = 0, uses_anonymous_args = 0 12969 @ link register save eliminated. 12970 movs r1, #1 12971 mov r0, r1 12972 b rk_ftl_garbage_collect 12973 .size sftl_gc, .-sftl_gc 12974 .section .text.FtlRead,"ax",%progbits 12975 .align 1 12976 .global FtlRead 12977 .syntax unified 12978 .thumb 12979 .thumb_func 12980 .fpu softvfp 12981 .type FtlRead, %function 12982FtlRead: 12983 @ args = 0, pretend = 0, frame = 56 12984 @ frame_needed = 0, uses_anonymous_args = 0 12985 cmp r0, #16 12986 push {r4, r5, r6, r7, r8, r10, fp, lr} 12987 sub sp, sp, #56 12988 mov r6, r1 12989 mov r8, r3 12990 str r2, [sp, #24] 12991 bne .L1735 12992 mov r2, r3 12993 ldr r1, [sp, #24] 12994 add r0, r6, #256 12995 bl FtlVendorPartRead 12996 str r0, [sp, #4] 12997.L1734: 12998 ldr r0, [sp, #4] 12999 add sp, sp, #56 13000 @ sp needed 13001 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13002.L1735: 13003 ldr r3, [sp, #24] 13004 adds r3, r1, r3 13005 str r3, [sp, #12] 13006 ldr r3, .L1767 13007 ldr r2, [sp, #12] 13008 ldr r3, [r3] 13009 cmp r2, r3 13010 bhi .L1756 13011 ldr r3, .L1767+4 13012 ldr r3, [r3] 13013 adds r4, r3, #1 13014 beq .L1757 13015 ldr r3, .L1767+8 13016 mov r0, r6 13017 movs r7, #0 13018 mov r5, r7 13019 ldrh r4, [r3] 13020 mov r1, r4 13021 bl __aeabi_uidiv 13022 ldr r3, [sp, #12] 13023 mov r1, r4 13024 str r0, [sp, #16] 13025 subs r0, r3, #1 13026 bl __aeabi_uidiv 13027 ldr r3, [sp, #16] 13028 ldr r2, .L1767+12 13029 ldr r1, [sp, #24] 13030 rsb r3, r3, #1 13031 ldr r4, [sp, #16] 13032 add r3, r3, r0 13033 str r0, [sp, #20] 13034 str r3, [sp, #8] 13035 ldr r3, [r2] 13036 str r7, [sp, #32] 13037 str r7, [sp, #28] 13038 add r3, r3, r1 13039 ldr r1, [sp, #8] 13040 str r3, [r2] 13041 ldr r2, .L1767+16 13042 str r7, [sp, #4] 13043 ldr r3, [r2] 13044 add r3, r3, r1 13045 str r3, [r2] 13046.L1737: 13047 ldr r3, [sp, #8] 13048 cbnz r3, .L1754 13049 ldr r3, .L1767+20 13050 ldrh r3, [r3] 13051 cbnz r3, .L1755 13052 ldr r3, .L1767+24 13053 ldrh r3, [r3] 13054 cmp r3, #31 13055 bhi .L1734 13056.L1755: 13057 movs r1, #1 13058 movs r0, #0 13059 bl rk_ftl_garbage_collect 13060 b .L1734 13061.L1754: 13062 movs r2, #0 13063 add r1, sp, #52 13064 mov r0, r4 13065 bl log2phys 13066 ldr r3, [sp, #52] 13067 adds r0, r3, #1 13068 bne .L1738 13069 ldr fp, .L1767+8 13070 mov r10, #0 13071.L1739: 13072 ldrh r0, [fp] 13073 cmp r10, r0 13074 bcc .L1741 13075.L1742: 13076 ldr r3, [sp, #8] 13077 adds r4, r4, #1 13078 subs r3, r3, #1 13079 str r3, [sp, #8] 13080 beq .L1746 13081 ldr r3, .L1767+28 13082 ldrh r3, [r3] 13083 cmp r5, r3, lsl #2 13084 bne .L1737 13085.L1746: 13086 cmp r5, #0 13087 beq .L1737 13088 ldr r3, .L1767+32 13089 movs r2, #0 13090 mov r1, r5 13091 mov r10, #0 13092 ldr r0, [r3] 13093 bl FlashReadPages 13094 lsls r3, r7, #9 13095 str r3, [sp, #44] 13096 ldr r3, [sp, #28] 13097 lsls r3, r3, #9 13098 str r3, [sp, #36] 13099 ldr r3, [sp, #32] 13100 lsls r3, r3, #9 13101 str r3, [sp, #40] 13102.L1753: 13103 movs r3, #20 13104 mul fp, r3, r10 13105 ldr r3, .L1767+32 13106 ldr r2, [r3] 13107 ldr r3, [sp, #16] 13108 add r2, r2, fp 13109 ldr r1, [r2, #16] 13110 cmp r3, r1 13111 bne .L1748 13112 ldr r1, [r2, #8] 13113 ldr r2, .L1767+36 13114 ldr r2, [r2] 13115 cmp r1, r2 13116 bne .L1749 13117 ldr r3, [sp, #36] 13118 mov r0, r8 13119 ldr r2, [sp, #40] 13120 add r1, r1, r3 13121.L1766: 13122 bl ftl_memcpy 13123.L1749: 13124 ldr r3, .L1767+32 13125 ldr r3, [r3] 13126 add r2, r3, fp 13127 ldr r3, [r3, fp] 13128 ldr r0, [r2, #12] 13129 ldr r1, [r2, #16] 13130 ldr r0, [r0, #8] 13131 cmp r1, r0 13132 itttt ne 13133 ldrne r0, .L1767+40 13134 ldrne r1, [r0, #72] 13135 addne r1, r1, #1 13136 strne r1, [r0, #72] 13137 adds r1, r3, #1 13138 bne .L1751 13139 ldr r1, .L1767+40 13140 str r3, [sp, #4] 13141 ldr r2, [r1, #72] 13142 adds r2, r2, #1 13143 str r2, [r1, #72] 13144.L1752: 13145 add r10, r10, #1 13146 cmp r5, r10 13147 bne .L1753 13148 movs r5, #0 13149 b .L1737 13150.L1741: 13151 mla r0, r0, r4, r10 13152 cmp r6, r0 13153 bhi .L1740 13154 ldr r3, [sp, #12] 13155 cmp r3, r0 13156 bls .L1740 13157 subs r0, r0, r6 13158 mov r2, #512 13159 movs r1, #0 13160 add r0, r8, r0, lsl #9 13161 bl ftl_memset 13162.L1740: 13163 add r10, r10, #1 13164 b .L1739 13165.L1738: 13166 ldr r2, .L1767+32 13167 mov r10, #20 13168 ldr r2, [r2] 13169 mla r10, r10, r5, r2 13170 str r3, [r10, #4] 13171 ldr r3, [sp, #16] 13172 cmp r4, r3 13173 ldr r3, .L1767+8 13174 bne .L1743 13175 ldr r2, .L1767+36 13176 mov r0, r6 13177 ldrh fp, [r3] 13178 ldr r2, [r2] 13179 mov r1, fp 13180 str r2, [r10, #8] 13181 bl __aeabi_uidivmod 13182 ldr r2, [sp, #24] 13183 sub r3, fp, r1 13184 str r1, [sp, #28] 13185 cmp r3, r2 13186 it cs 13187 movcs r3, r2 13188 cmp fp, r3 13189 str r3, [sp, #32] 13190 bne .L1744 13191 str r8, [r10, #8] 13192.L1744: 13193 ldr r3, .L1767+44 13194 ldr r2, .L1767+48 13195 str r4, [r10, #16] 13196 ldrh r3, [r3] 13197 ldr r2, [r2] 13198 muls r3, r5, r3 13199 adds r5, r5, #1 13200 bic r3, r3, #3 13201 add r3, r3, r2 13202 str r3, [r10, #12] 13203 b .L1742 13204.L1743: 13205 ldr r2, [sp, #20] 13206 cmp r4, r2 13207 bne .L1745 13208 ldr r2, .L1767+52 13209 ldr r1, [sp, #12] 13210 ldr r2, [r2] 13211 str r2, [r10, #8] 13212 ldrh r2, [r3] 13213 mul r3, r2, r4 13214 subs r7, r1, r3 13215 cmp r2, r7 13216 bne .L1744 13217.L1765: 13218 subs r3, r3, r6 13219 add r3, r8, r3, lsl #9 13220 str r3, [r10, #8] 13221 b .L1744 13222.L1745: 13223 ldrh r3, [r3] 13224 muls r3, r4, r3 13225 b .L1765 13226.L1748: 13227 ldr r3, [sp, #20] 13228 cmp r3, r1 13229 bne .L1749 13230 ldr r3, .L1767+52 13231 ldr r1, [r2, #8] 13232 ldr r2, [r3] 13233 cmp r1, r2 13234 bne .L1749 13235 ldr r2, .L1767+8 13236 ldr r3, [sp, #20] 13237 ldrh r0, [r2] 13238 ldr r2, [sp, #44] 13239 muls r0, r3, r0 13240 subs r0, r0, r6 13241 add r0, r8, r0, lsl #9 13242 b .L1766 13243.L1751: 13244 cmp r3, #256 13245 bne .L1752 13246 ldr r0, [r2, #4] 13247 ubfx r0, r0, #10, #16 13248 bl P2V_block_in_plane 13249 bl FtlGcRefreshBlock 13250 b .L1752 13251.L1756: 13252 mov r3, #-1 13253.L1757: 13254 str r3, [sp, #4] 13255 b .L1734 13256.L1768: 13257 .align 2 13258.L1767: 13259 .word .LANCHOR34 13260 .word .LANCHOR86 13261 .word .LANCHOR12 13262 .word .LANCHOR69 13263 .word .LANCHOR62 13264 .word .LANCHOR101 13265 .word .LANCHOR48 13266 .word .LANCHOR3 13267 .word .LANCHOR112 13268 .word .LANCHOR118 13269 .word .LANCHOR81 13270 .word .LANCHOR24 13271 .word .LANCHOR124 13272 .word .LANCHOR119 13273 .size FtlRead, .-FtlRead 13274 .section .text.sftl_read,"ax",%progbits 13275 .align 1 13276 .global sftl_read 13277 .syntax unified 13278 .thumb 13279 .thumb_func 13280 .fpu softvfp 13281 .type sftl_read, %function 13282sftl_read: 13283 @ args = 0, pretend = 0, frame = 0 13284 @ frame_needed = 0, uses_anonymous_args = 0 13285 @ link register save eliminated. 13286 mov r3, r2 13287 mov r2, r1 13288 mov r1, r0 13289 movs r0, #0 13290 b FtlRead 13291 .size sftl_read, .-sftl_read 13292 .section .text.FtlWrite,"ax",%progbits 13293 .align 1 13294 .global FtlWrite 13295 .syntax unified 13296 .thumb 13297 .thumb_func 13298 .fpu softvfp 13299 .type FtlWrite, %function 13300FtlWrite: 13301 @ args = 0, pretend = 0, frame = 72 13302 @ frame_needed = 0, uses_anonymous_args = 0 13303 cmp r0, #16 13304 push {r4, r5, r6, r7, r8, r10, fp, lr} 13305 sub sp, sp, #72 13306 str r1, [sp, #4] 13307 str r2, [sp, #20] 13308 str r3, [sp, #16] 13309 bne .L1771 13310 mov r2, r3 13311 ldr r3, [sp, #4] 13312 ldr r1, [sp, #20] 13313 add r0, r3, #256 13314 bl FtlVendorPartWrite 13315.L1770: 13316 add sp, sp, #72 13317 @ sp needed 13318 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13319.L1771: 13320 ldr r3, [sp, #4] 13321 ldr r2, [sp, #20] 13322 adds r4, r3, r2 13323 ldr r3, .L1822 13324 ldr r3, [r3] 13325 cmp r4, r3 13326 bhi .L1808 13327 ldr r3, .L1822+4 13328 ldr r0, [r3] 13329 adds r5, r0, #1 13330 beq .L1770 13331 ldr r3, .L1822+8 13332 mov r2, #2048 13333 ldr r0, [sp, #4] 13334 str r2, [r3] 13335 ldr r3, .L1822+12 13336 ldrh r5, [r3] 13337 mov r1, r5 13338 bl __aeabi_uidiv 13339 mov r1, r5 13340 str r0, [sp, #12] 13341 subs r0, r4, #1 13342 ldr r5, .L1822+16 13343 bl __aeabi_uidiv 13344 ldr r2, [sp, #12] 13345 ldr r1, [sp, #20] 13346 str r0, [sp, #28] 13347 subs r3, r0, r2 13348 ldr r2, .L1822+20 13349 str r3, [sp, #32] 13350 adds r3, r3, #1 13351 str r3, [sp, #8] 13352 ldr r3, [r2] 13353 add r3, r3, r1 13354 ldr r1, [sp, #8] 13355 str r3, [r2] 13356 ldr r2, .L1822+24 13357 ldr r3, [r2] 13358 add r3, r3, r1 13359 str r3, [r2] 13360 ldr r3, .L1822+28 13361 ldr r3, [r3] 13362 cbz r3, .L1773 13363 ldrh r2, [r5, #4] 13364 ldr r3, .L1822+32 13365 cmp r2, #0 13366 it eq 13367 moveq r5, r3 13368.L1773: 13369 ldr r6, [sp, #12] 13370.L1774: 13371 ldr r3, [sp, #8] 13372 cbnz r3, .L1803 13373 ldr r5, .L1822+36 13374 mov r0, r3 13375 ldr r1, [sp, #32] 13376 bl rk_ftl_garbage_collect 13377 ldrh r2, [r5] 13378 cmp r2, #5 13379 bls .L1804 13380.L1806: 13381 movs r0, #0 13382 b .L1770 13383.L1803: 13384 ldr r3, .L1822+40 13385 ldrb r2, [r5, #6] @ zero_extendqisi2 13386 ldrh r3, [r3] 13387 cmp r2, r3 13388 bcc .L1775 13389 movw r2, #1011 13390 ldr r1, .L1822+44 13391 ldr r0, .L1822+48 13392 bl printf 13393.L1775: 13394 ldrh r2, [r5, #4] 13395 cbnz r2, .L1776 13396 ldr r3, .L1822+16 13397 ldr r4, .L1822+28 13398 cmp r5, r3 13399 bne .L1777 13400 ldr r0, .L1822+32 13401 ldrh r5, [r0, #4] 13402 cbnz r5, .L1778 13403 bl allocate_new_data_superblock 13404 str r5, [r4] 13405.L1778: 13406 ldr r0, .L1822+16 13407 bl allocate_new_data_superblock 13408 ldr r5, .L1822+16 13409 ldr r2, [r4] 13410 ldr r3, .L1822+32 13411 cmp r2, #0 13412 it ne 13413 movne r5, r3 13414.L1779: 13415 ldrh r3, [r5, #4] 13416 cbnz r3, .L1776 13417 mov r0, r5 13418 bl allocate_new_data_superblock 13419.L1776: 13420 ldrh r2, [r5, #4] 13421 ldr r3, [sp, #8] 13422 cmp r2, r3 13423 it cs 13424 movcs r2, r3 13425 ldrb r3, [r5, #7] @ zero_extendqisi2 13426 lsls r3, r3, #2 13427 cmp r2, r3 13428 it cs 13429 movcs r2, r3 13430 ldr r3, .L1822+40 13431 str r2, [sp, #44] 13432 ldrb r2, [r5, #6] @ zero_extendqisi2 13433 ldrh r3, [r3] 13434 cmp r2, r3 13435 bcc .L1780 13436 movw r2, #1044 13437 ldr r1, .L1822+44 13438 ldr r0, .L1822+48 13439 bl printf 13440.L1780: 13441 ldr r8, .L1822+52 13442 mov fp, #0 13443.L1781: 13444 ldr r3, [sp, #44] 13445 cmp fp, r3 13446 bne .L1801 13447.L1782: 13448 ldr r0, .L1822+52 13449 mov r3, r5 13450 movs r2, #0 13451 mov r1, fp 13452 ldr r0, [r0] 13453 bl FtlProgPages 13454 ldr r3, [sp, #8] 13455 cmp fp, r3 13456 bls .L1802 13457 movw r2, #1121 13458 ldr r1, .L1822+44 13459 ldr r0, .L1822+48 13460 bl printf 13461.L1802: 13462 ldr r3, [sp, #8] 13463 sub r3, r3, fp 13464 str r3, [sp, #8] 13465 b .L1774 13466.L1777: 13467 str r2, [r4] 13468 ldrh r2, [r3, #4] 13469 cbnz r2, .L1813 13470 mov r0, r5 13471 bl allocate_new_data_superblock 13472 b .L1779 13473.L1813: 13474 mov r5, r3 13475 b .L1776 13476.L1801: 13477 ldrh r2, [r5, #4] 13478 cmp r2, #0 13479 beq .L1782 13480 movs r2, #0 13481 add r1, sp, #48 13482 mov r0, r6 13483 movs r7, #20 13484 bl log2phys 13485 mov r0, r5 13486 mul r7, r7, fp 13487 bl get_new_active_ppa 13488 ldr r3, .L1822+56 13489 ldr r1, [r8] 13490 ldrh r2, [r3] 13491 add r1, r1, r7 13492 str r0, [r1, #4] 13493 str r6, [r1, #16] 13494 mul r0, r2, fp 13495 bic r3, r0, #3 13496 ldr r0, .L1822+60 13497 str r3, [sp, #36] 13498 ldr r3, [r0] 13499 ldr r0, [sp, #36] 13500 str r3, [sp, #40] 13501 add r10, r3, r0 13502 str r10, [r1, #12] 13503 mov r0, r10 13504 movs r1, #0 13505 bl ftl_memset 13506 ldr r3, [sp, #12] 13507 ldr r2, .L1822+12 13508 cmp r6, r3 13509 beq .L1783 13510 ldr r3, [sp, #28] 13511 cmp r6, r3 13512 bne .L1818 13513 ldrh r2, [r2] 13514 ldr r3, [sp, #4] 13515 ldr r1, [sp, #20] 13516 smulbb r2, r2, r6 13517 adds r4, r3, r1 13518 movs r3, #0 13519 subs r4, r4, r2 13520 str r3, [sp, #24] 13521 uxth r4, r4 13522 b .L1786 13523.L1783: 13524 ldrh r4, [r2] 13525 ldr r0, [sp, #4] 13526 mov r1, r4 13527 bl __aeabi_uidivmod 13528 ldr r3, [sp, #20] 13529 subs r4, r4, r1 13530 str r1, [sp, #24] 13531 cmp r4, r3 13532 it cs 13533 movcs r4, r3 13534.L1786: 13535 ldr r2, .L1822+12 13536 ldr r3, [sp, #12] 13537 ldrh r2, [r2] 13538 cmp r4, r2 13539 ldr r2, [r8] 13540 bne .L1787 13541 cmp r6, r3 13542 add r7, r7, r2 13543 ittet ne 13544 mulne r4, r4, r6 13545 ldrne r3, [sp, #4] 13546 ldreq r3, [sp, #16] 13547 subne r4, r4, r3 13548 itett ne 13549 ldrne r3, [sp, #16] 13550 streq r3, [r7, #8] 13551 addne r4, r3, r4, lsl #9 13552 strne r4, [r7, #8] 13553.L1789: 13554 ldr r3, .L1822+40 13555 ldrb r1, [r5, #6] @ zero_extendqisi2 13556 ldrh r2, [r3] 13557 cmp r1, r2 13558 bcc .L1798 13559 mov r2, #1112 13560 ldr r1, .L1822+44 13561 ldr r0, .L1822+48 13562 bl printf 13563.L1798: 13564 ldr r3, [sp, #40] 13565 movw r2, #61589 13566 ldr r1, [sp, #36] 13567 add fp, fp, #1 13568 strh r2, [r3, r1] @ movhi 13569 ldr r1, .L1822+64 13570 str r6, [r10, #8] 13571 adds r6, r6, #1 13572 ldr r2, [r1] 13573 str r2, [r10, #4] 13574 adds r2, r2, #1 13575 adds r3, r2, #1 13576 it eq 13577 moveq r2, #0 13578 str r2, [r1] 13579 ldr r2, [sp, #48] 13580 str r2, [r10, #12] 13581 ldrh r2, [r5] 13582 strh r2, [r10, #2] @ movhi 13583 b .L1781 13584.L1823: 13585 .align 2 13586.L1822: 13587 .word .LANCHOR34 13588 .word .LANCHOR86 13589 .word .LANCHOR181 13590 .word .LANCHOR12 13591 .word .LANCHOR51 13592 .word .LANCHOR68 13593 .word .LANCHOR64 13594 .word .LANCHOR182 13595 .word .LANCHOR52 13596 .word .LANCHOR48 13597 .word .LANCHOR3 13598 .word .LANCHOR183 13599 .word .LC1 13600 .word .LANCHOR114 13601 .word .LANCHOR24 13602 .word .LANCHOR124 13603 .word .LANCHOR71 13604.L1787: 13605 cmp r6, r3 13606 add r2, r2, r7 13607 ite eq 13608 ldreq r1, .L1824 13609 ldrne r1, .L1824+4 13610 ldr r1, [r1] 13611 str r1, [r2, #8] 13612 ldr r2, [sp, #48] 13613 adds r1, r2, #1 13614 beq .L1792 13615 str r2, [sp, #56] 13616 add r0, sp, #52 13617 ldr r2, [r8] 13618 str r6, [sp, #68] 13619 add r2, r2, r7 13620 ldr r1, [r2, #8] 13621 ldr r2, [r2, #12] 13622 str r1, [sp, #60] 13623 movs r1, #1 13624 str r2, [sp, #64] 13625 movs r2, #0 13626 bl FlashReadPages 13627 ldr r2, [sp, #52] 13628 adds r2, r2, #1 13629 bne .L1793 13630 ldr r1, .L1824+8 13631 ldr r2, [r1, #72] 13632 adds r2, r2, #1 13633 str r2, [r1, #72] 13634.L1796: 13635 ldr r3, [sp, #12] 13636 lsls r2, r4, #9 13637 cmp r6, r3 13638 bne .L1797 13639 ldr r1, [r8] 13640 ldr r3, [sp, #24] 13641 add r7, r7, r1 13642 ldr r1, [sp, #16] 13643 ldr r0, [r7, #8] 13644 add r0, r0, r3, lsl #9 13645.L1820: 13646 bl ftl_memcpy 13647 b .L1789 13648.L1793: 13649 ldr r1, [r10, #8] 13650 cmp r6, r1 13651 beq .L1795 13652 ldr r0, .L1824+8 13653 ldr r2, [r0, #72] 13654 adds r2, r2, #1 13655 str r2, [r0, #72] 13656 mov r2, r6 13657 ldr r0, .L1824+12 13658 bl printf 13659.L1795: 13660 ldr r2, [r10, #8] 13661 cmp r6, r2 13662 beq .L1796 13663 movw r2, #1097 13664 ldr r1, .L1824+16 13665 ldr r0, .L1824+20 13666 bl printf 13667 b .L1796 13668.L1792: 13669 ldr r2, [r8] 13670 movs r1, #0 13671 adds r0, r2, r7 13672 ldr r2, .L1824+24 13673 ldr r0, [r0, #8] 13674 ldrh r2, [r2] 13675 bl ftl_memset 13676 b .L1796 13677.L1797: 13678 ldr r1, .L1824+28 13679 ldr r3, [sp, #4] 13680 ldr r0, [r8] 13681 ldrh r1, [r1] 13682 add r7, r7, r0 13683 ldr r0, [r7, #8] 13684 muls r1, r6, r1 13685 subs r1, r1, r3 13686 ldr r3, [sp, #16] 13687 add r1, r3, r1, lsl #9 13688 b .L1820 13689.L1818: 13690 ldrh r2, [r2] 13691 ldr r3, [sp, #4] 13692 ldr r1, [r8] 13693 muls r2, r6, r2 13694 add r7, r7, r1 13695 subs r2, r2, r3 13696 ldr r3, [sp, #16] 13697 add r2, r3, r2, lsl #9 13698 str r2, [r7, #8] 13699 b .L1789 13700.L1804: 13701 ldr r6, .L1824+32 13702 mov r4, #256 13703 ldr r7, .L1824+36 13704.L1807: 13705 ldrh r3, [r6] 13706 movw r2, #65535 13707 cmp r3, r2 13708 bne .L1805 13709 ldrh r2, [r7] 13710 cmp r2, r3 13711 bne .L1805 13712 movs r0, #0 13713 bl List_get_gc_head_node 13714 uxth r0, r0 13715 bl FtlGcRefreshBlock 13716.L1805: 13717 ldr r2, .L1824+40 13718 movs r3, #128 13719 movs r1, #1 13720 mov r0, r1 13721 strh r3, [r2] @ movhi 13722 ldr r2, .L1824+44 13723 strh r3, [r2] @ movhi 13724 bl rk_ftl_garbage_collect 13725 movs r1, #1 13726 movs r0, #0 13727 bl rk_ftl_garbage_collect 13728 ldrh r3, [r5] 13729 cmp r3, #2 13730 bhi .L1806 13731 subs r4, r4, #1 13732 bne .L1807 13733 b .L1806 13734.L1808: 13735 mov r0, #-1 13736 b .L1770 13737.L1825: 13738 .align 2 13739.L1824: 13740 .word .LANCHOR118 13741 .word .LANCHOR119 13742 .word .LANCHOR81 13743 .word .LC113 13744 .word .LANCHOR183 13745 .word .LC1 13746 .word .LANCHOR23 13747 .word .LANCHOR12 13748 .word .LANCHOR80 13749 .word .LANCHOR99 13750 .word .LANCHOR83 13751 .word .LANCHOR82 13752 .size FtlWrite, .-FtlWrite 13753 .global __aeabi_idivmod 13754 .section .text.sftl_write,"ax",%progbits 13755 .align 1 13756 .global sftl_write 13757 .syntax unified 13758 .thumb 13759 .thumb_func 13760 .fpu softvfp 13761 .type sftl_write, %function 13762sftl_write: 13763 @ args = 0, pretend = 0, frame = 128 13764 @ frame_needed = 0, uses_anonymous_args = 0 13765 push {r4, r5, r6, r7, r8, r10, fp, lr} 13766 adds r7, r0, r1 13767 add r8, r7, #-1 13768 sub sp, sp, #136 13769 cmp r8, #63 13770 mov fp, r0 13771 str r1, [sp, #24] 13772 str r2, [sp, #44] 13773 ldr r4, .L1871 13774 bls .L1827 13775 cmp r0, #576 13776 bcc .L1828 13777.L1827: 13778 ldr r3, [r4] 13779 cbz r3, .L1830 13780 ldr r3, .L1871+4 13781 ldr r10, [r3] 13782 ldr r3, .L1871+8 13783 ldr r2, [r10] 13784 cmp r2, r3 13785 beq .L1831 13786.L1848: 13787 ldr r3, .L1871 13788 movs r2, #0 13789 str r2, [r3] 13790 ldr r3, .L1871+4 13791 ldr r0, [r3] 13792 bl free 13793 ldr r3, .L1871+12 13794 ldr r0, [r3] 13795 bl free 13796.L1830: 13797 ldr r3, [sp, #44] 13798 mov r1, fp 13799 ldr r2, [sp, #24] 13800 movs r0, #0 13801 bl FtlWrite 13802 add sp, sp, #136 13803 @ sp needed 13804 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13805.L1831: 13806 ldr r3, .L1871+16 13807 add r0, r10, #262144 13808 movw r2, #65535 13809 ldrh r4, [r3, #14] 13810 ldrh r5, [r3, #10] 13811 movs r3, #0 13812.L1835: 13813 ldr r1, [r0, #-4] 13814 cbnz r1, .L1832 13815 ldr r1, [r10, r3, lsl #2] 13816 adds r3, r3, #1 13817 cmp r3, #4096 13818 add r2, r2, #-1 13819 it hi 13820 movhi r3, #0 13821 cmp r2, #4096 13822 str r1, [r0, #-4]! 13823 bne .L1835 13824 mov r3, #512 13825 str r3, [sp, #12] 13826 b .L1834 13827.L1832: 13828 add r3, r2, #127 13829 ldr r0, .L1871+20 13830 lsrs r3, r3, #7 13831 str r3, [sp, #12] 13832 bl printf 13833.L1834: 13834 uxtb r4, r4 13835 mov r8, #0 13836 smulbb r5, r4, r5 13837 uxth r3, r5 13838 ldr r5, .L1871+24 13839 str r3, [sp, #16] 13840 subs r0, r3, #1 13841 mov r1, r3 13842 ldr r3, [sp, #12] 13843 add r0, r0, r3 13844 bl __aeabi_uidiv 13845 ldr r2, [sp, #16] 13846 mov r3, r0 13847 str r0, [sp, #20] 13848 str r0, [sp, #40] 13849 str r8, [sp, #32] 13850 muls r3, r2, r3 13851 str r3, [sp, #28] 13852 ldr r3, [sp, #12] 13853 lsls r3, r3, #7 13854 str r3, [sp, #56] 13855 b .L1847 13856.L1856: 13857 str r3, [sp, #40] 13858.L1847: 13859 ldr r3, .L1871+12 13860 mov r2, #512 13861 movs r1, #0 13862 ldr r0, [r3] 13863 bl memset 13864 ldr r3, .L1871+16 13865 mov r0, r8 13866 ldrh r7, [r3, #14] 13867 mov r1, r7 13868 uxtb r6, r7 13869 uxth r3, r6 13870 str r3, [sp, #36] 13871 ldr r3, .L1871+16 13872 ldrh r4, [r3, #10] 13873 ldrh r3, [sp, #36] 13874 smulbb r4, r4, r3 13875 bl __aeabi_uidiv 13876 ldr r3, [r5, #4] 13877 mov r1, r0 13878 movs r0, #0 13879 uxth r4, r4 13880 blx r3 13881 ldr r3, [sp, #28] 13882 cmp r3, r4 13883 bls .L1836 13884 mov r1, r7 13885 add r0, r4, r8 13886 bl __aeabi_uidiv 13887 ldr r3, [r5, #4] 13888 mov r1, r0 13889 movs r0, #0 13890 blx r3 13891.L1836: 13892 mov r1, r4 13893 mov r0, r8 13894 movs r4, #0 13895 bl __aeabi_uidivmod 13896 sub r3, r8, r1 13897 str r1, [sp, #48] 13898 str r3, [sp, #52] 13899.L1837: 13900 ldr r3, [sp, #28] 13901 cmp r3, r4 13902 bhi .L1838 13903 ldr r3, .L1871+12 13904 mov r0, r8 13905 movs r4, #0 13906 ldr r3, [r3] 13907 str r3, [sp, #52] 13908 ldr r3, .L1871+16 13909 ldrb r7, [r3, #14] @ zero_extendqisi2 13910 uxth r3, r7 13911 str r3, [sp, #48] 13912 ldr r3, .L1871+16 13913 ldrh r1, [r3, #10] 13914 ldrh r3, [sp, #48] 13915 smulbb r1, r1, r3 13916 uxth r1, r1 13917 bl __aeabi_uidivmod 13918 str r1, [sp, #36] 13919 sub r3, r8, r1 13920 ldrh r0, [sp, #36] 13921 mov r1, r7 13922 str r3, [sp, #60] 13923 bl __aeabi_idivmod 13924 uxth r6, r1 13925.L1839: 13926 ldr r3, [sp, #12] 13927 cmp r4, r3 13928 bcs .L1843 13929 ldr r3, [sp, #48] 13930 mov r1, r7 13931 subs r3, r3, r6 13932 uxth r3, r3 13933 str r3, [sp, #64] 13934 ldr r3, [sp, #52] 13935 add r2, r3, r4, lsl #9 13936 ldr r3, [sp, #36] 13937 str r2, [sp, #68] 13938 adds r0, r3, r4 13939 bl __aeabi_uidiv 13940 ldr r3, [sp, #60] 13941 uxth r0, r0 13942 mov r1, r7 13943 add r6, r6, r3 13944 mla r0, r7, r0, r6 13945 bl __aeabi_uidiv 13946 ldr r6, [r5, #12] 13947 mov r1, r0 13948 add r3, sp, #72 13949 ldr r2, [sp, #68] 13950 movs r0, #0 13951 blx r6 13952 adds r0, r0, #1 13953 bne .L1840 13954.L1843: 13955 ldr r3, .L1871+12 13956 mov r1, r10 13957 movs r4, #0 13958 ldr r0, [r3] 13959.L1841: 13960 mov r7, r1 13961 ldr r2, [r0, r4, lsl #2] 13962 ldr r3, [r7] 13963 lsls r6, r4, #2 13964 adds r1, r1, #4 13965 cmp r2, r3 13966 beq .L1844 13967 mov r2, #512 13968 movs r1, #0 13969 bl memset 13970 ldr r3, .L1871+12 13971 mov r1, r8 13972 ldr r0, .L1871+28 13973 ldr r2, [r3] 13974 str r4, [sp] 13975 ldr r3, [r7] 13976 ldr r2, [r2, r6] 13977 bl printf 13978 ldr r3, [r5, #4] 13979 mov r1, r8 13980 movs r0, #0 13981 blx r3 13982 ldr r3, [sp, #20] 13983 cmp r3, #1 13984 bls .L1855 13985 ldr r2, [sp, #16] 13986 movs r0, #0 13987 ldr r3, [r5, #4] 13988 add r1, r2, r8 13989 blx r3 13990.L1855: 13991 ldr r2, [sp, #40] 13992 ldr r3, [sp, #20] 13993 add r3, r3, r2 13994 ldr r2, [sp, #28] 13995 add r8, r8, r2 13996 ldr r2, [sp, #40] 13997 cmp r2, #15 13998 bls .L1856 13999 b .L1848 14000.L1838: 14001 ldr r3, [sp, #48] 14002 mov r1, r6 14003 adds r0, r3, r4 14004 bl __aeabi_uidiv 14005 uxth r3, r0 14006 add r2, r10, r4, lsl #9 14007 ldr r0, [sp, #52] 14008 mov r7, r3 14009 muls r3, r6, r3 14010 mov r1, r6 14011 str r2, [sp, #60] 14012 str r3, [sp, #72] 14013 movw r3, #61424 14014 str r3, [sp, #76] 14015 bl __aeabi_uidiv 14016 add r3, sp, #72 14017 adds r1, r0, r7 14018 ldr r2, [sp, #60] 14019 movs r0, #0 14020 ldr r7, [r5, #8] 14021 blx r7 14022 ldr r3, [sp, #36] 14023 add r4, r4, r3 14024 uxth r4, r4 14025 b .L1837 14026.L1840: 14027 ldr r3, [sp, #64] 14028 movs r6, #0 14029 add r3, r3, r4 14030 uxth r4, r3 14031 b .L1839 14032.L1844: 14033 ldr r3, [sp, #56] 14034 adds r4, r4, #1 14035 cmp r4, r3 14036 bne .L1841 14037 ldr r3, [sp, #32] 14038 adds r3, r3, #1 14039 cmp r3, #5 14040 str r3, [sp, #32] 14041 bls .L1855 14042 b .L1848 14043.L1872: 14044 .align 2 14045.L1871: 14046 .word .LANCHOR184 14047 .word .LANCHOR185 14048 .word -52655045 14049 .word .LANCHOR186 14050 .word .LANCHOR0 14051 .word .LC114 14052 .word .LANCHOR105 14053 .word .LC115 14054.L1828: 14055 cmp r0, #64 14056 bne .L1849 14057 ldr r5, .L1873 14058 mov r0, #262144 14059 bl ftl_malloc 14060 str r0, [r5] 14061 mov r0, #262144 14062 bl ftl_malloc 14063 ldr r3, .L1873+4 14064 str r0, [r3] 14065 ldr r3, [r5] 14066 cbz r3, .L1850 14067 cbz r0, .L1850 14068 movs r2, #1 14069 movs r1, #0 14070 str r2, [r4] 14071 mov r0, r3 14072 mov r2, #262144 14073 bl ftl_memset 14074.L1849: 14075 ldr r3, [r4] 14076 cmp r3, #0 14077 beq .L1830 14078 ldr r3, .L1873 14079 cmp fp, #63 14080 ldr r1, [r3] 14081 bhi .L1852 14082 ldr r3, [sp, #24] 14083 rsb r5, fp, #64 14084 mov r4, r1 14085 subs r6, r3, r5 14086 ldr r3, [sp, #44] 14087 add r5, r3, r5, lsl #9 14088.L1853: 14089 cmp r8, #576 14090 ldr r0, .L1873+8 14091 it cs 14092 subcs r6, r6, r7 14093 mov r3, r4 14094 it cs 14095 subcs r6, r6, #446 14096 mov r2, #262144 14097 str r6, [sp] 14098 bl printf 14099 lsls r2, r6, #9 14100 mov r1, r5 14101 mov r0, r4 14102 bl ftl_memcpy 14103 b .L1830 14104.L1850: 14105 ldr r1, .L1873+12 14106 ldr r0, .L1873+16 14107 bl printf 14108 b .L1849 14109.L1852: 14110 ldr r4, .L1873+20 14111 ldr r5, [sp, #44] 14112 ldr r6, [sp, #24] 14113 add r4, r4, fp 14114 add r4, r1, r4, lsl #9 14115 b .L1853 14116.L1874: 14117 .align 2 14118.L1873: 14119 .word .LANCHOR185 14120 .word .LANCHOR186 14121 .word .LC117 14122 .word .LANCHOR187 14123 .word .LC116 14124 .word 8388544 14125 .size sftl_write, .-sftl_write 14126 .section .text.FtlMakeBbt,"ax",%progbits 14127 .align 1 14128 .global FtlMakeBbt 14129 .syntax unified 14130 .thumb 14131 .thumb_func 14132 .fpu softvfp 14133 .type FtlMakeBbt, %function 14134FtlMakeBbt: 14135 @ args = 0, pretend = 0, frame = 8 14136 @ frame_needed = 0, uses_anonymous_args = 0 14137 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 14138 movs r6, #0 14139 ldr r7, .L1894 14140 bl FtlBbtMemInit 14141 sub r8, r7, #18 14142 bl FtlLoadFactoryBbt 14143.L1876: 14144 ldr r3, .L1894+4 14145 ldrh r3, [r3] 14146 cmp r6, r3 14147 bcc .L1882 14148 ldr r5, .L1894+8 14149 movs r4, #0 14150.L1883: 14151 ldrh r3, [r5] 14152 uxth r0, r4 14153 adds r4, r4, #1 14154 cmp r3, r0 14155 bhi .L1884 14156 ldr r4, .L1894+12 14157 movw r6, #65535 14158 ldrh r5, [r4, #12] 14159 subs r5, r5, #1 14160 uxth r5, r5 14161.L1885: 14162 ldrh r3, [r4, #12] 14163 subs r3, r3, #47 14164 cmp r3, r5 14165 bgt .L1889 14166 mov r0, r5 14167 bl FtlBbmIsBadBlock 14168 cmp r0, #1 14169 beq .L1886 14170 mov r0, r5 14171 bl FlashTestBlk 14172 cmp r0, #0 14173 beq .L1887 14174 mov r0, r5 14175 bl FtlBbmMapBadBlock 14176.L1886: 14177 subs r5, r5, #1 14178 uxth r5, r5 14179 b .L1885 14180.L1882: 14181 ldr r3, .L1894+16 14182 ldr r5, .L1894+20 14183 ldrh r2, [r8, #2]! 14184 ldr r4, .L1894+24 14185 ldr r0, [r3] 14186 movw r3, #65535 14187 ldr r10, [r5] 14188 cmp r2, r3 14189 mov fp, r4 14190 ldr r3, .L1894+28 14191 str r0, [r4, #8] 14192 str r10, [r4, #12] 14193 beq .L1877 14194 ldrh r5, [r3] 14195 mov r0, r4 14196 str r3, [sp] 14197 mla r5, r6, r5, r2 14198 lsls r2, r5, #10 14199 str r2, [r4, #4] 14200 movs r2, #1 14201 mov r1, r2 14202 bl FlashReadPages 14203 ldr r3, [sp] 14204 ldr r1, [r4, #8] 14205 ldr r0, [r7] 14206 ldrh r2, [r3] 14207 adds r2, r2, #7 14208 asrs r2, r2, #3 14209 bl ftl_memcpy 14210.L1878: 14211 uxth r0, r5 14212 adds r6, r6, #1 14213 adds r7, r7, #4 14214 bl FtlBbmMapBadBlock 14215 b .L1876 14216.L1877: 14217 mov r1, r6 14218 str r3, [sp] 14219 bl FlashGetBadBlockList 14220 ldr r0, [r4, #8] 14221 ldr r1, [r7] 14222 bl FtlBbt2Bitmap 14223 ldr r3, [sp] 14224 str r5, [sp, #4] 14225 ldrh r4, [r3] 14226 subs r4, r4, #1 14227 uxth r4, r4 14228.L1879: 14229 ldr r3, [sp] 14230 ldrh r0, [r3] 14231 smlabb r0, r0, r6, r4 14232 uxth r0, r0 14233 bl FtlBbmIsBadBlock 14234 cmp r0, #1 14235 beq .L1880 14236 ldr r3, [sp, #4] 14237 movs r2, #16 14238 movs r1, #0 14239 strh r4, [r8] @ movhi 14240 ldr r0, [r3] 14241 bl ftl_memset 14242 ldr r3, .L1894+16 14243 mov r2, #4096 14244 movs r1, #0 14245 ldr r0, [r3] 14246 bl ftl_memset 14247 ldr r2, [sp] 14248 movw r3, #61664 14249 strh r3, [r10] @ movhi 14250 movs r3, #0 14251 str r3, [r10, #4] 14252 ldrh r5, [r2] 14253 ldrh r3, [r8] 14254 ldr r1, [r7] 14255 ldr r0, [fp, #8] 14256 strh r3, [r10, #2] @ movhi 14257 mla r5, r6, r5, r3 14258 lsls r3, r5, #10 14259 str r3, [fp, #4] 14260 ldr r3, .L1894+32 14261 ldrh r2, [r3] 14262 lsls r2, r2, #2 14263 bl ftl_memcpy 14264 movs r2, #1 14265 ldr r0, .L1894+24 14266 mov r1, r2 14267 bl FlashEraseBlocks 14268 movs r3, #1 14269 ldr r0, .L1894+24 14270 mov r2, r3 14271 mov r1, r3 14272 bl FlashProgPages 14273 ldr r3, [fp] 14274 adds r3, r3, #1 14275 bne .L1878 14276 uxth r0, r5 14277 bl FtlBbmMapBadBlock 14278 b .L1879 14279.L1880: 14280 subs r4, r4, #1 14281 uxth r4, r4 14282 b .L1879 14283.L1884: 14284 bl FtlBbmMapBadBlock 14285 b .L1883 14286.L1887: 14287 ldrh r3, [r4] 14288 cmp r3, r6 14289 bne .L1888 14290 strh r5, [r4] @ movhi 14291 b .L1886 14292.L1888: 14293 strh r5, [r4, #4] @ movhi 14294.L1889: 14295 ldr r3, .L1894+36 14296 movs r5, #0 14297 str r5, [r4, #8] 14298 movs r1, #1 14299 movs r2, #2 14300 strh r5, [r4, #2] @ movhi 14301 ldr r0, [r3] 14302 ldrh r3, [r4] 14303 lsls r3, r3, #10 14304 str r3, [r0, #4] 14305 ldrh r3, [r4, #4] 14306 lsls r3, r3, #10 14307 str r3, [r0, #24] 14308 bl FlashEraseBlocks 14309 ldrh r0, [r4] 14310 bl FtlBbmMapBadBlock 14311 ldrh r0, [r4, #4] 14312 bl FtlBbmMapBadBlock 14313 bl FtlBbmTblFlush 14314 ldr r3, [r4, #8] 14315 ldrh r2, [r4, #4] 14316 strh r5, [r4, #2] @ movhi 14317 adds r3, r3, #1 14318 str r3, [r4, #8] 14319 ldrh r3, [r4] 14320 strh r2, [r4] @ movhi 14321 strh r3, [r4, #4] @ movhi 14322 bl FtlBbmTblFlush 14323 mov r0, r5 14324 add sp, sp, #8 14325 @ sp needed 14326 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14327.L1895: 14328 .align 2 14329.L1894: 14330 .word .LANCHOR37+28 14331 .word .LANCHOR10 14332 .word .LANCHOR25 14333 .word .LANCHOR37 14334 .word .LANCHOR115 14335 .word .LANCHOR123 14336 .word .LANCHOR148 14337 .word .LANCHOR17 14338 .word .LANCHOR137 14339 .word .LANCHOR106 14340 .size FtlMakeBbt, .-FtlMakeBbt 14341 .section .text.ftl_low_format,"ax",%progbits 14342 .align 1 14343 .global ftl_low_format 14344 .syntax unified 14345 .thumb 14346 .thumb_func 14347 .fpu softvfp 14348 .type ftl_low_format, %function 14349ftl_low_format: 14350 @ args = 0, pretend = 0, frame = 16 14351 @ frame_needed = 0, uses_anonymous_args = 0 14352 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 14353 movs r3, #0 14354 ldr r6, .L1920 14355 ldr r2, .L1920+4 14356 ldr r5, .L1920+8 14357 ldrh r0, [r6] 14358 str r3, [r2] 14359 str r3, [r5] 14360 bl FtlFreeSysBlkQueueInit 14361 bl FtlLoadBbt 14362 cbz r0, .L1897 14363 bl FtlMakeBbt 14364.L1897: 14365 ldr r3, .L1920+12 14366 ldr r2, .L1920+16 14367 ldr ip, .L1920+100 14368 ldrh r1, [r3] 14369 ldr r4, [r2] 14370 ldr r2, .L1920+20 14371 str r3, [sp, #4] 14372 lsls r1, r1, #7 14373 ldr r7, [r2] 14374 movs r2, #0 14375.L1898: 14376 uxth r3, r2 14377 adds r2, r2, #1 14378 cmp r3, r1 14379 blt .L1899 14380 ldr r3, .L1920+24 14381 movs r7, #0 14382 ldr r10, .L1920+104 14383 ldrh r4, [r3] 14384 mov r8, r3 14385 mov fp, r10 14386.L1900: 14387 ldrh r3, [r10] 14388 cmp r3, r4 14389 bhi .L1901 14390 ldr r4, .L1920+28 14391 subs r3, r7, #2 14392 ldrh r1, [r4] 14393 cmp r3, r1, lsl #1 14394 bgt .L1902 14395.L1906: 14396 movs r6, #0 14397 mov r7, r6 14398.L1903: 14399 ldrh r3, [r8] 14400 uxth r0, r6 14401 adds r6, r6, #1 14402 cmp r3, r0 14403 bhi .L1907 14404 ldrh r2, [fp] 14405 ldr r3, .L1920+32 14406 ldrh r4, [r4] 14407 ldr r6, .L1920+36 14408 str r2, [r3] 14409 ldr r3, .L1920+40 14410 mov r1, r4 14411 ldr r2, [r3] 14412 mov r0, r2 14413 str r2, [sp, #12] 14414 bl __aeabi_uidiv 14415 ubfx r10, r0, #5, #16 14416 mov r3, r0 14417 str r0, [r6] 14418 add r1, r10, #36 14419 ldr r0, .L1920+44 14420 strh r1, [r0] @ movhi 14421 movs r1, #24 14422 muls r1, r4, r1 14423 str r0, [sp] 14424 cmp r7, r1 14425 ble .L1908 14426 ldr r2, [sp, #12] 14427 mov r1, r4 14428 str r3, [sp, #8] 14429 subs r0, r2, r7 14430 bl __aeabi_uidiv 14431 ldr r3, [sp] 14432 str r0, [r6] 14433 lsrs r0, r0, #5 14434 adds r0, r0, #24 14435 strh r0, [r3] @ movhi 14436 ldr r3, [sp, #8] 14437.L1908: 14438 ldr r2, .L1920+48 14439 ldrh r2, [r2] 14440 cbz r2, .L1910 14441 ldr r1, .L1920+44 14442 ldrh r0, [r1] 14443 add r0, r0, r2, lsr #1 14444 strh r0, [r1] @ movhi 14445 mul r0, r4, r2 14446 cmp r7, r0 14447 itttt lt 14448 addlt r2, r2, #32 14449 strlt r3, [r6] 14450 addlt r2, r2, r10 14451 strhlt r2, [r1] @ movhi 14452.L1910: 14453 ldr r3, [sp] 14454 ldr r7, .L1920+52 14455 ldr r10, .L1920+108 14456 ldrh r2, [r3] 14457 ldr r3, [r6] 14458 subs r3, r3, r2 14459 muls r4, r3, r4 14460 ldr r3, .L1920+56 14461 ldrh r3, [r3] 14462 str r4, [r7] 14463 muls r4, r3, r4 14464 ldr r3, [sp, #4] 14465 ldrh r3, [r3] 14466 str r4, [r6] 14467 ldr r6, .L1920+60 14468 muls r4, r3, r4 14469 ldr r3, .L1920+64 14470 str r4, [r3] 14471 movw r4, #65535 14472 bl FtlBbmTblFlush 14473 ldrh r2, [fp] 14474 movs r1, #0 14475 ldr r0, [r10] 14476 lsls r2, r2, #1 14477 bl ftl_memset 14478 ldr r2, .L1920+68 14479 movs r3, #0 14480 strh r3, [r6, #2] @ movhi 14481 movs r1, #255 14482 strb r3, [r6, #6] 14483 str r3, [r2] 14484 ldr r2, .L1920+72 14485 strh r3, [r6] @ movhi 14486 strh r3, [r2, #2] @ movhi 14487 strb r3, [r2, #6] 14488 strb r3, [r2, #8] 14489 movs r3, #1 14490 strh r4, [r2] @ movhi 14491 ldrh r2, [r8] 14492 mov r8, r10 14493 strb r3, [r6, #8] 14494 mov r10, r6 14495 ldr r3, .L1920+76 14496 lsrs r2, r2, #3 14497 ldr r0, [r3] 14498 bl ftl_memset 14499.L1912: 14500 mov r0, r10 14501 bl make_superblock 14502 ldrb r3, [r6, #7] @ zero_extendqisi2 14503 ldrh r2, [r6] 14504 cmp r3, #0 14505 bne .L1913 14506 ldr r3, [r8] 14507 strh r4, [r3, r2, lsl #1] @ movhi 14508 ldrh r3, [r6] 14509 adds r3, r3, #1 14510 strh r3, [r6] @ movhi 14511 b .L1912 14512.L1899: 14513 mvns r0, r3 14514 orr r0, r3, r0, lsl #16 14515 str r0, [r4, r3, lsl #2] 14516 str ip, [r7, r3, lsl #2] 14517 b .L1898 14518.L1901: 14519 mov r0, r4 14520 movs r1, #1 14521 bl FtlLowFormatEraseBlock 14522 adds r4, r4, #1 14523 add r7, r7, r0 14524 uxth r7, r7 14525 uxth r4, r4 14526 b .L1900 14527.L1902: 14528 mov r0, r7 14529 bl __aeabi_uidiv 14530 ldr r3, .L1920+80 14531 ldr r3, [r3] 14532 add r0, r0, r3 14533 uxth r0, r0 14534 bl FtlSysBlkNumInit 14535 ldrh r0, [r6] 14536 bl FtlFreeSysBlkQueueInit 14537 ldrh r6, [r8] 14538.L1904: 14539 ldrh r3, [fp] 14540 cmp r3, r6 14541 bls .L1906 14542 mov r0, r6 14543 movs r1, #1 14544 adds r6, r6, #1 14545 bl FtlLowFormatEraseBlock 14546 uxth r6, r6 14547 b .L1904 14548.L1907: 14549 movs r1, #0 14550 bl FtlLowFormatEraseBlock 14551 add r7, r7, r0 14552 uxth r7, r7 14553 b .L1903 14554.L1913: 14555 ldr r3, [r5] 14556 ldrh r1, [r6, #4] 14557 ldr r4, .L1920+84 14558 str r3, [r6, #12] 14559 adds r3, r3, #1 14560 str r3, [r5] 14561 ldr r3, [r8] 14562 mov r10, r4 14563 strh r1, [r3, r2, lsl #1] @ movhi 14564 movs r3, #0 14565 strh r3, [r4, #2] @ movhi 14566 strb r3, [r4, #6] 14567 ldrh r3, [r6] 14568 movw r6, #65535 14569 adds r3, r3, #1 14570 strh r3, [r4] @ movhi 14571 movs r3, #1 14572 strb r3, [r4, #8] 14573.L1914: 14574 mov r0, r10 14575 bl make_superblock 14576 ldrb r3, [r4, #7] @ zero_extendqisi2 14577 ldrh r2, [r4] 14578 cbnz r3, .L1915 14579 ldr r3, [r8] 14580 strh r6, [r3, r2, lsl #1] @ movhi 14581 ldrh r3, [r4] 14582 adds r3, r3, #1 14583 strh r3, [r4] @ movhi 14584 b .L1914 14585.L1915: 14586 ldr r3, [r5] 14587 ldrh r1, [r4, #4] 14588 str r3, [r4, #12] 14589 adds r3, r3, #1 14590 str r3, [r5] 14591 movw r4, #65535 14592 ldr r3, [r8] 14593 strh r1, [r3, r2, lsl #1] @ movhi 14594 ldr r3, .L1920+88 14595 strh r4, [r3] @ movhi 14596 bl FtlFreeSysBlkQueueOut 14597 ldr r3, .L1920+92 14598 movs r2, #0 14599 strh r2, [r3, #2] @ movhi 14600 ldr r2, [r7] 14601 strh r0, [r3] @ movhi 14602 strh r4, [r3, #4] @ movhi 14603 strh r2, [r3, #6] @ movhi 14604 ldr r2, [r5] 14605 str r2, [r3, #8] 14606 adds r2, r2, #1 14607 str r2, [r5] 14608 bl FtlVpcTblFlush 14609 bl FtlSysBlkInit 14610 cbnz r0, .L1916 14611 ldr r3, .L1920+96 14612 movs r2, #1 14613 str r2, [r3] 14614.L1916: 14615 movs r0, #0 14616 add sp, sp, #16 14617 @ sp needed 14618 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14619.L1921: 14620 .align 2 14621.L1920: 14622 .word .LANCHOR4 14623 .word .LANCHOR71 14624 .word .LANCHOR70 14625 .word .LANCHOR12 14626 .word .LANCHOR118 14627 .word .LANCHOR119 14628 .word .LANCHOR5 14629 .word .LANCHOR3 14630 .word .LANCHOR111 14631 .word .LANCHOR61 14632 .word .LANCHOR7 14633 .word .LANCHOR78 14634 .word .LANCHOR15 14635 .word .LANCHOR152 14636 .word .LANCHOR19 14637 .word .LANCHOR51 14638 .word .LANCHOR34 14639 .word .LANCHOR59 14640 .word .LANCHOR80 14641 .word .LANCHOR1 14642 .word .LANCHOR31 14643 .word .LANCHOR52 14644 .word .LANCHOR53 14645 .word .LANCHOR79 14646 .word .LANCHOR86 14647 .word 168778952 14648 .word .LANCHOR6 14649 .word .LANCHOR42 14650 .size ftl_low_format, .-ftl_low_format 14651 .section .text.ftl_memcmp,"ax",%progbits 14652 .align 1 14653 .global ftl_memcmp 14654 .syntax unified 14655 .thumb 14656 .thumb_func 14657 .fpu softvfp 14658 .type ftl_memcmp, %function 14659ftl_memcmp: 14660 @ args = 0, pretend = 0, frame = 0 14661 @ frame_needed = 0, uses_anonymous_args = 0 14662 @ link register save eliminated. 14663 b memcmp 14664 .size ftl_memcmp, .-ftl_memcmp 14665 .global g_nand_ops 14666 .global g_nand_phy_info 14667 .global gc_ink_free_return_value 14668 .global check_vpc_table 14669 .global FtlUpdateVaildLpnCount 14670 .global g_ect_tbl_power_up_flush 14671 .global power_up_flag 14672 .global gFtlInitStatus 14673 .global DeviceCapacity 14674 .global g_power_lost_recovery_flag 14675 .global c_mlc_erase_count_value 14676 .global g_recovery_ppa_tbl 14677 .global g_recovery_page_min_ver 14678 .global g_recovery_page_num 14679 .global sftl_nand_check_spare_buf 14680 .global sftl_temp_buf 14681 .global sftl_nand_check_buf 14682 .global g_cur_erase_blk 14683 .global g_gc_skip_write_count 14684 .global g_gc_head_data_block_count 14685 .global g_gc_head_data_block 14686 .global g_ftl_nand_free_count 14687 .global g_in_swl_replace 14688 .global g_in_gc_progress 14689 .global g_max_erase_count 14690 .global g_totle_sys_slc_erase_count 14691 .global g_totle_slc_erase_count 14692 .global g_min_erase_count 14693 .global g_totle_avg_erase_count 14694 .global g_totle_mlc_erase_count 14695 .global g_totle_l2p_write_count 14696 .global g_totle_cache_write_count 14697 .global g_tmp_data_superblock_id 14698 .global g_totle_read_page_count 14699 .global g_totle_discard_page_count 14700 .global g_totle_read_sector 14701 .global g_totle_write_sector 14702 .global g_totle_write_page_count 14703 .global g_totle_gc_page_count 14704 .global g_gc_blk_index 14705 .global g_gc_merge_free_blk_threshold 14706 .global g_gc_free_blk_threshold 14707 .global g_gc_bad_block_temp_tbl 14708 .global g_gc_bad_block_gc_index 14709 .global g_gc_bad_block_temp_num 14710 .global g_gc_next_blk_1 14711 .global g_gc_next_blk 14712 .global g_gc_cur_blk_max_valid_pages 14713 .global g_gc_cur_blk_valid_pages 14714 .global g_gc_page_offset 14715 .global g_gc_blk_num 14716 .global p_gc_blk_tbl 14717 .global p_gc_page_info 14718 .global g_sys_ext_data 14719 .global g_sys_save_data 14720 .global gp_last_act_superblock 14721 .global g_gc_superblock 14722 .global g_gc_temp_superblock 14723 .global g_buffer_superblock 14724 .global g_active_superblock 14725 .global g_num_data_superblocks 14726 .global g_num_free_superblocks 14727 .global p_data_block_list_tail 14728 .global p_data_block_list_head 14729 .global p_free_data_block_list_head 14730 .global p_data_block_list_table 14731 .global g_l2p_last_update_region_id 14732 .global p_l2p_map_buf 14733 .global p_l2p_ram_map 14734 .global g_totle_vendor_block 14735 .global p_vendor_region_ppn_table 14736 .global p_vendor_block_ver_table 14737 .global p_vendor_block_valid_page_count 14738 .global p_vendor_block_table 14739 .global g_totle_map_block 14740 .global p_map_region_ppn_table 14741 .global p_map_block_ver_table 14742 .global p_map_block_valid_page_count 14743 .global p_map_block_table 14744 .global p_blk_mode_table 14745 .global p_valid_page_count_check_table 14746 .global p_valid_page_count_table 14747 .global g_totle_swl_count 14748 .global p_swl_mul_table 14749 .global p_erase_count_table 14750 .global g_ect_tbl_info_size 14751 .global gp_ect_tbl_info 14752 .global g_gc_num_req 14753 .global c_gc_page_buf_num 14754 .global gp_gc_page_buf_info 14755 .global p_gc_data_buf 14756 .global p_gc_spare_buf 14757 .global p_io_spare_buf 14758 .global p_io_data_buf_1 14759 .global p_io_data_buf_0 14760 .global p_sys_spare_buf 14761 .global p_vendor_data_buf 14762 .global p_sys_data_buf_1 14763 .global p_sys_data_buf 14764 .global p_plane_order_table 14765 .global req_gc_dst 14766 .global req_gc 14767 .global req_erase 14768 .global req_prgm 14769 .global req_read 14770 .global req_sys 14771 .global gVendorBlkInfo 14772 .global gL2pMapInfo 14773 .global gSysFreeQueue 14774 .global gSysInfo 14775 .global gBbtInfo 14776 .global g_MaxLbn 14777 .global g_VaildLpn 14778 .global g_MaxLpn 14779 .global g_MaxLbaSector 14780 .global g_GlobalDataVersion 14781 .global g_GlobalSysVersion 14782 .global ftl_gc_temp_power_lost_recovery_flag 14783 .global c_ftl_nand_max_data_blks 14784 .global c_ftl_nand_data_op_blks_per_plane 14785 .global c_ftl_nand_data_blks_per_plane 14786 .global c_ftl_nand_max_sys_blks 14787 .global c_ftl_nand_init_sys_blks_per_plane 14788 .global c_ftl_nand_sys_blks_per_plane 14789 .global c_ftl_vendor_part_size 14790 .global c_ftl_nand_max_vendor_blks 14791 .global c_ftl_nand_max_map_blks 14792 .global c_ftl_nand_map_blks_per_plane 14793 .global c_ftl_nand_vendor_region_num 14794 .global c_ftl_nand_l2pmap_ram_region_num 14795 .global c_ftl_nand_map_region_num 14796 .global c_ftl_nand_totle_phy_blks 14797 .global c_ftl_nand_reserved_blks 14798 .global c_ftl_nand_byte_pre_oob 14799 .global c_ftl_nand_byte_pre_page 14800 .global c_ftl_nand_sec_pre_page_shift 14801 .global c_ftl_nand_sec_pre_page 14802 .global c_ftl_nand_page_pre_super_blk 14803 .global c_ftl_nand_page_pre_slc_blk 14804 .global c_ftl_nand_page_pre_blk 14805 .global c_ftl_nand_bbm_buf_size 14806 .global c_ftl_nand_ext_blk_pre_plane 14807 .global c_ftl_nand_blk_pre_plane 14808 .global c_ftl_nand_planes_num 14809 .global c_ftl_nand_blks_per_die_shift 14810 .global c_ftl_nand_blks_per_die 14811 .global c_ftl_nand_planes_per_die 14812 .global c_ftl_nand_die_num 14813 .global c_ftl_nand_type 14814 .section .bss.DeviceCapacity,"aw",%nobits 14815 .align 2 14816 .set .LANCHOR26,. + 0 14817 .type DeviceCapacity, %object 14818 .size DeviceCapacity, 4 14819DeviceCapacity: 14820 .space 4 14821 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 14822 .align 1 14823 .set .LANCHOR58,. + 0 14824 .type FtlUpdateVaildLpnCount, %object 14825 .size FtlUpdateVaildLpnCount, 2 14826FtlUpdateVaildLpnCount: 14827 .space 2 14828 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 14829 .align 1 14830 .set .LANCHOR137,. + 0 14831 .type c_ftl_nand_bbm_buf_size, %object 14832 .size c_ftl_nand_bbm_buf_size, 2 14833c_ftl_nand_bbm_buf_size: 14834 .space 2 14835 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 14836 .align 1 14837 .set .LANCHOR6,. + 0 14838 .type c_ftl_nand_blk_pre_plane, %object 14839 .size c_ftl_nand_blk_pre_plane, 2 14840c_ftl_nand_blk_pre_plane: 14841 .space 2 14842 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 14843 .align 1 14844 .set .LANCHOR17,. + 0 14845 .type c_ftl_nand_blks_per_die, %object 14846 .size c_ftl_nand_blks_per_die, 2 14847c_ftl_nand_blks_per_die: 14848 .space 2 14849 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits 14850 .align 1 14851 .set .LANCHOR18,. + 0 14852 .type c_ftl_nand_blks_per_die_shift, %object 14853 .size c_ftl_nand_blks_per_die_shift, 2 14854c_ftl_nand_blks_per_die_shift: 14855 .space 2 14856 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 14857 .align 1 14858 .set .LANCHOR24,. + 0 14859 .type c_ftl_nand_byte_pre_oob, %object 14860 .size c_ftl_nand_byte_pre_oob, 2 14861c_ftl_nand_byte_pre_oob: 14862 .space 2 14863 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 14864 .align 1 14865 .set .LANCHOR23,. + 0 14866 .type c_ftl_nand_byte_pre_page, %object 14867 .size c_ftl_nand_byte_pre_page, 2 14868c_ftl_nand_byte_pre_page: 14869 .space 2 14870 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 14871 .align 1 14872 .set .LANCHOR5,. + 0 14873 .type c_ftl_nand_data_blks_per_plane, %object 14874 .size c_ftl_nand_data_blks_per_plane, 2 14875c_ftl_nand_data_blks_per_plane: 14876 .space 2 14877 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 14878 .align 1 14879 .set .LANCHOR78,. + 0 14880 .type c_ftl_nand_data_op_blks_per_plane, %object 14881 .size c_ftl_nand_data_op_blks_per_plane, 2 14882c_ftl_nand_data_op_blks_per_plane: 14883 .space 2 14884 .section .bss.c_ftl_nand_die_num,"aw",%nobits 14885 .align 1 14886 .set .LANCHOR10,. + 0 14887 .type c_ftl_nand_die_num, %object 14888 .size c_ftl_nand_die_num, 2 14889c_ftl_nand_die_num: 14890 .space 2 14891 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 14892 .align 1 14893 .set .LANCHOR15,. + 0 14894 .type c_ftl_nand_ext_blk_pre_plane, %object 14895 .size c_ftl_nand_ext_blk_pre_plane, 2 14896c_ftl_nand_ext_blk_pre_plane: 14897 .space 2 14898 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 14899 .align 2 14900 .set .LANCHOR31,. + 0 14901 .type c_ftl_nand_init_sys_blks_per_plane, %object 14902 .size c_ftl_nand_init_sys_blks_per_plane, 4 14903c_ftl_nand_init_sys_blks_per_plane: 14904 .space 4 14905 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 14906 .align 1 14907 .set .LANCHOR33,. + 0 14908 .type c_ftl_nand_l2pmap_ram_region_num, %object 14909 .size c_ftl_nand_l2pmap_ram_region_num, 2 14910c_ftl_nand_l2pmap_ram_region_num: 14911 .space 2 14912 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 14913 .align 1 14914 .set .LANCHOR29,. + 0 14915 .type c_ftl_nand_map_blks_per_plane, %object 14916 .size c_ftl_nand_map_blks_per_plane, 2 14917c_ftl_nand_map_blks_per_plane: 14918 .space 2 14919 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 14920 .align 1 14921 .set .LANCHOR32,. + 0 14922 .type c_ftl_nand_map_region_num, %object 14923 .size c_ftl_nand_map_region_num, 2 14924c_ftl_nand_map_region_num: 14925 .space 2 14926 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 14927 .align 2 14928 .set .LANCHOR7,. + 0 14929 .type c_ftl_nand_max_data_blks, %object 14930 .size c_ftl_nand_max_data_blks, 4 14931c_ftl_nand_max_data_blks: 14932 .space 4 14933 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 14934 .align 2 14935 .set .LANCHOR30,. + 0 14936 .type c_ftl_nand_max_map_blks, %object 14937 .size c_ftl_nand_max_map_blks, 4 14938c_ftl_nand_max_map_blks: 14939 .space 4 14940 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 14941 .align 2 14942 .set .LANCHOR4,. + 0 14943 .type c_ftl_nand_max_sys_blks, %object 14944 .size c_ftl_nand_max_sys_blks, 4 14945c_ftl_nand_max_sys_blks: 14946 .space 4 14947 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 14948 .align 1 14949 .set .LANCHOR27,. + 0 14950 .type c_ftl_nand_max_vendor_blks, %object 14951 .size c_ftl_nand_max_vendor_blks, 2 14952c_ftl_nand_max_vendor_blks: 14953 .space 2 14954 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 14955 .align 1 14956 .set .LANCHOR19,. + 0 14957 .type c_ftl_nand_page_pre_blk, %object 14958 .size c_ftl_nand_page_pre_blk, 2 14959c_ftl_nand_page_pre_blk: 14960 .space 2 14961 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 14962 .align 1 14963 .set .LANCHOR20,. + 0 14964 .type c_ftl_nand_page_pre_slc_blk, %object 14965 .size c_ftl_nand_page_pre_slc_blk, 2 14966c_ftl_nand_page_pre_slc_blk: 14967 .space 2 14968 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 14969 .align 1 14970 .set .LANCHOR21,. + 0 14971 .type c_ftl_nand_page_pre_super_blk, %object 14972 .size c_ftl_nand_page_pre_super_blk, 2 14973c_ftl_nand_page_pre_super_blk: 14974 .space 2 14975 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 14976 .align 1 14977 .set .LANCHOR3,. + 0 14978 .type c_ftl_nand_planes_num, %object 14979 .size c_ftl_nand_planes_num, 2 14980c_ftl_nand_planes_num: 14981 .space 2 14982 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 14983 .align 1 14984 .set .LANCHOR11,. + 0 14985 .type c_ftl_nand_planes_per_die, %object 14986 .size c_ftl_nand_planes_per_die, 2 14987c_ftl_nand_planes_per_die: 14988 .space 2 14989 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 14990 .align 1 14991 .set .LANCHOR25,. + 0 14992 .type c_ftl_nand_reserved_blks, %object 14993 .size c_ftl_nand_reserved_blks, 2 14994c_ftl_nand_reserved_blks: 14995 .space 2 14996 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 14997 .align 1 14998 .set .LANCHOR12,. + 0 14999 .type c_ftl_nand_sec_pre_page, %object 15000 .size c_ftl_nand_sec_pre_page, 2 15001c_ftl_nand_sec_pre_page: 15002 .space 2 15003 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 15004 .align 1 15005 .set .LANCHOR22,. + 0 15006 .type c_ftl_nand_sec_pre_page_shift, %object 15007 .size c_ftl_nand_sec_pre_page_shift, 2 15008c_ftl_nand_sec_pre_page_shift: 15009 .space 2 15010 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 15011 .align 2 15012 .set .LANCHOR2,. + 0 15013 .type c_ftl_nand_sys_blks_per_plane, %object 15014 .size c_ftl_nand_sys_blks_per_plane, 4 15015c_ftl_nand_sys_blks_per_plane: 15016 .space 4 15017 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 15018 .align 2 15019 .set .LANCHOR8,. + 0 15020 .type c_ftl_nand_totle_phy_blks, %object 15021 .size c_ftl_nand_totle_phy_blks, 4 15022c_ftl_nand_totle_phy_blks: 15023 .space 4 15024 .section .bss.c_ftl_nand_type,"aw",%nobits 15025 .align 1 15026 .set .LANCHOR9,. + 0 15027 .type c_ftl_nand_type, %object 15028 .size c_ftl_nand_type, 2 15029c_ftl_nand_type: 15030 .space 2 15031 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 15032 .align 1 15033 .set .LANCHOR28,. + 0 15034 .type c_ftl_nand_vendor_region_num, %object 15035 .size c_ftl_nand_vendor_region_num, 2 15036c_ftl_nand_vendor_region_num: 15037 .space 2 15038 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 15039 .align 1 15040 .set .LANCHOR16,. + 0 15041 .type c_ftl_vendor_part_size, %object 15042 .size c_ftl_vendor_part_size, 2 15043c_ftl_vendor_part_size: 15044 .space 2 15045 .section .bss.c_gc_page_buf_num,"aw",%nobits 15046 .align 2 15047 .set .LANCHOR94,. + 0 15048 .type c_gc_page_buf_num, %object 15049 .size c_gc_page_buf_num, 4 15050c_gc_page_buf_num: 15051 .space 4 15052 .section .bss.c_mlc_erase_count_value,"aw",%nobits 15053 .align 1 15054 .set .LANCHOR14,. + 0 15055 .type c_mlc_erase_count_value, %object 15056 .size c_mlc_erase_count_value, 2 15057c_mlc_erase_count_value: 15058 .space 2 15059 .section .bss.check_vpc_table,"aw",%nobits 15060 .align 1 15061 .type check_vpc_table, %object 15062 .size check_vpc_table, 16384 15063check_vpc_table: 15064 .space 16384 15065 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 15066 .align 2 15067 .set .LANCHOR144,. + 0 15068 .type ftl_gc_temp_power_lost_recovery_flag, %object 15069 .size ftl_gc_temp_power_lost_recovery_flag, 4 15070ftl_gc_temp_power_lost_recovery_flag: 15071 .space 4 15072 .section .bss.gBbtInfo,"aw",%nobits 15073 .align 2 15074 .set .LANCHOR37,. + 0 15075 .type gBbtInfo, %object 15076 .size gBbtInfo, 60 15077gBbtInfo: 15078 .space 60 15079 .section .bss.gL2pMapInfo,"aw",%nobits 15080 .align 2 15081 .set .LANCHOR140,. + 0 15082 .type gL2pMapInfo, %object 15083 .size gL2pMapInfo, 40 15084gL2pMapInfo: 15085 .space 40 15086 .section .bss.gSysFreeQueue,"aw",%nobits 15087 .align 1 15088 .set .LANCHOR38,. + 0 15089 .type gSysFreeQueue, %object 15090 .size gSysFreeQueue, 2056 15091gSysFreeQueue: 15092 .space 2056 15093 .section .bss.gSysInfo,"aw",%nobits 15094 .align 2 15095 .set .LANCHOR79,. + 0 15096 .type gSysInfo, %object 15097 .size gSysInfo, 12 15098gSysInfo: 15099 .space 12 15100 .section .bss.gVendorBlkInfo,"aw",%nobits 15101 .align 2 15102 .set .LANCHOR158,. + 0 15103 .type gVendorBlkInfo, %object 15104 .size gVendorBlkInfo, 40 15105gVendorBlkInfo: 15106 .space 40 15107 .section .bss.g_GlobalDataVersion,"aw",%nobits 15108 .align 2 15109 .set .LANCHOR71,. + 0 15110 .type g_GlobalDataVersion, %object 15111 .size g_GlobalDataVersion, 4 15112g_GlobalDataVersion: 15113 .space 4 15114 .section .bss.g_GlobalSysVersion,"aw",%nobits 15115 .align 2 15116 .set .LANCHOR70,. + 0 15117 .type g_GlobalSysVersion, %object 15118 .size g_GlobalSysVersion, 4 15119g_GlobalSysVersion: 15120 .space 4 15121 .section .bss.g_MaxLbaSector,"aw",%nobits 15122 .align 2 15123 .set .LANCHOR34,. + 0 15124 .type g_MaxLbaSector, %object 15125 .size g_MaxLbaSector, 4 15126g_MaxLbaSector: 15127 .space 4 15128 .section .bss.g_MaxLbn,"aw",%nobits 15129 .align 2 15130 .set .LANCHOR152,. + 0 15131 .type g_MaxLbn, %object 15132 .size g_MaxLbn, 4 15133g_MaxLbn: 15134 .space 4 15135 .section .bss.g_MaxLpn,"aw",%nobits 15136 .align 2 15137 .set .LANCHOR61,. + 0 15138 .type g_MaxLpn, %object 15139 .size g_MaxLpn, 4 15140g_MaxLpn: 15141 .space 4 15142 .section .bss.g_VaildLpn,"aw",%nobits 15143 .align 2 15144 .set .LANCHOR59,. + 0 15145 .type g_VaildLpn, %object 15146 .size g_VaildLpn, 4 15147g_VaildLpn: 15148 .space 4 15149 .section .bss.g_active_superblock,"aw",%nobits 15150 .align 2 15151 .set .LANCHOR51,. + 0 15152 .type g_active_superblock, %object 15153 .size g_active_superblock, 48 15154g_active_superblock: 15155 .space 48 15156 .section .bss.g_buffer_superblock,"aw",%nobits 15157 .align 2 15158 .set .LANCHOR52,. + 0 15159 .type g_buffer_superblock, %object 15160 .size g_buffer_superblock, 48 15161g_buffer_superblock: 15162 .space 48 15163 .section .bss.g_cur_erase_blk,"aw",%nobits 15164 .align 2 15165 .set .LANCHOR111,. + 0 15166 .type g_cur_erase_blk, %object 15167 .size g_cur_erase_blk, 4 15168g_cur_erase_blk: 15169 .space 4 15170 .section .bss.g_ect_tbl_info_size,"aw",%nobits 15171 .align 1 15172 .set .LANCHOR125,. + 0 15173 .type g_ect_tbl_info_size, %object 15174 .size g_ect_tbl_info_size, 2 15175g_ect_tbl_info_size: 15176 .space 2 15177 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 15178 .align 1 15179 .set .LANCHOR170,. + 0 15180 .type g_ect_tbl_power_up_flush, %object 15181 .size g_ect_tbl_power_up_flush, 2 15182g_ect_tbl_power_up_flush: 15183 .space 2 15184 .section .bss.g_ftl_nand_free_count,"aw",%nobits 15185 .align 2 15186 .set .LANCHOR181,. + 0 15187 .type g_ftl_nand_free_count, %object 15188 .size g_ftl_nand_free_count, 4 15189g_ftl_nand_free_count: 15190 .space 4 15191 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 15192 .align 1 15193 .set .LANCHOR103,. + 0 15194 .type g_gc_bad_block_gc_index, %object 15195 .size g_gc_bad_block_gc_index, 2 15196g_gc_bad_block_gc_index: 15197 .space 2 15198 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 15199 .align 1 15200 .set .LANCHOR101,. + 0 15201 .type g_gc_bad_block_temp_num, %object 15202 .size g_gc_bad_block_temp_num, 2 15203g_gc_bad_block_temp_num: 15204 .space 2 15205 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 15206 .align 1 15207 .set .LANCHOR102,. + 0 15208 .type g_gc_bad_block_temp_tbl, %object 15209 .size g_gc_bad_block_temp_tbl, 34 15210g_gc_bad_block_temp_tbl: 15211 .space 34 15212 .section .bss.g_gc_blk_index,"aw",%nobits 15213 .align 1 15214 .set .LANCHOR85,. + 0 15215 .type g_gc_blk_index, %object 15216 .size g_gc_blk_index, 2 15217g_gc_blk_index: 15218 .space 2 15219 .section .bss.g_gc_blk_num,"aw",%nobits 15220 .align 1 15221 .set .LANCHOR96,. + 0 15222 .type g_gc_blk_num, %object 15223 .size g_gc_blk_num, 2 15224g_gc_blk_num: 15225 .space 2 15226 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 15227 .align 1 15228 .set .LANCHOR179,. + 0 15229 .type g_gc_cur_blk_max_valid_pages, %object 15230 .size g_gc_cur_blk_max_valid_pages, 2 15231g_gc_cur_blk_max_valid_pages: 15232 .space 2 15233 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 15234 .align 1 15235 .set .LANCHOR178,. + 0 15236 .type g_gc_cur_blk_valid_pages, %object 15237 .size g_gc_cur_blk_valid_pages, 2 15238g_gc_cur_blk_valid_pages: 15239 .space 2 15240 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 15241 .align 1 15242 .set .LANCHOR82,. + 0 15243 .type g_gc_free_blk_threshold, %object 15244 .size g_gc_free_blk_threshold, 2 15245g_gc_free_blk_threshold: 15246 .space 2 15247 .section .bss.g_gc_head_data_block,"aw",%nobits 15248 .align 2 15249 .set .LANCHOR109,. + 0 15250 .type g_gc_head_data_block, %object 15251 .size g_gc_head_data_block, 4 15252g_gc_head_data_block: 15253 .space 4 15254 .section .bss.g_gc_head_data_block_count,"aw",%nobits 15255 .align 2 15256 .set .LANCHOR110,. + 0 15257 .type g_gc_head_data_block_count, %object 15258 .size g_gc_head_data_block_count, 4 15259g_gc_head_data_block_count: 15260 .space 4 15261 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 15262 .align 1 15263 .set .LANCHOR83,. + 0 15264 .type g_gc_merge_free_blk_threshold, %object 15265 .size g_gc_merge_free_blk_threshold, 2 15266g_gc_merge_free_blk_threshold: 15267 .space 2 15268 .section .bss.g_gc_next_blk,"aw",%nobits 15269 .align 1 15270 .set .LANCHOR99,. + 0 15271 .type g_gc_next_blk, %object 15272 .size g_gc_next_blk, 2 15273g_gc_next_blk: 15274 .space 2 15275 .section .bss.g_gc_next_blk_1,"aw",%nobits 15276 .align 1 15277 .set .LANCHOR100,. + 0 15278 .type g_gc_next_blk_1, %object 15279 .size g_gc_next_blk_1, 2 15280g_gc_next_blk_1: 15281 .space 2 15282 .section .bss.g_gc_num_req,"aw",%nobits 15283 .align 2 15284 .set .LANCHOR89,. + 0 15285 .type g_gc_num_req, %object 15286 .size g_gc_num_req, 4 15287g_gc_num_req: 15288 .space 4 15289 .section .bss.g_gc_page_offset,"aw",%nobits 15290 .align 1 15291 .set .LANCHOR97,. + 0 15292 .type g_gc_page_offset, %object 15293 .size g_gc_page_offset, 2 15294g_gc_page_offset: 15295 .space 2 15296 .section .bss.g_gc_skip_write_count,"aw",%nobits 15297 .align 2 15298 .set .LANCHOR84,. + 0 15299 .type g_gc_skip_write_count, %object 15300 .size g_gc_skip_write_count, 4 15301g_gc_skip_write_count: 15302 .space 4 15303 .section .bss.g_gc_superblock,"aw",%nobits 15304 .align 2 15305 .set .LANCHOR80,. + 0 15306 .type g_gc_superblock, %object 15307 .size g_gc_superblock, 48 15308g_gc_superblock: 15309 .space 48 15310 .section .bss.g_gc_temp_superblock,"aw",%nobits 15311 .align 2 15312 .set .LANCHOR53,. + 0 15313 .type g_gc_temp_superblock, %object 15314 .size g_gc_temp_superblock, 48 15315g_gc_temp_superblock: 15316 .space 48 15317 .section .bss.g_in_gc_progress,"aw",%nobits 15318 .align 2 15319 .set .LANCHOR108,. + 0 15320 .type g_in_gc_progress, %object 15321 .size g_in_gc_progress, 4 15322g_in_gc_progress: 15323 .space 4 15324 .section .bss.g_in_swl_replace,"aw",%nobits 15325 .align 2 15326 .set .LANCHOR87,. + 0 15327 .type g_in_swl_replace, %object 15328 .size g_in_swl_replace, 4 15329g_in_swl_replace: 15330 .space 4 15331 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 15332 .align 1 15333 .set .LANCHOR56,. + 0 15334 .type g_l2p_last_update_region_id, %object 15335 .size g_l2p_last_update_region_id, 2 15336g_l2p_last_update_region_id: 15337 .space 2 15338 .section .bss.g_max_erase_count,"aw",%nobits 15339 .align 2 15340 .set .LANCHOR76,. + 0 15341 .type g_max_erase_count, %object 15342 .size g_max_erase_count, 4 15343g_max_erase_count: 15344 .space 4 15345 .section .bss.g_min_erase_count,"aw",%nobits 15346 .align 2 15347 .set .LANCHOR77,. + 0 15348 .type g_min_erase_count, %object 15349 .size g_min_erase_count, 4 15350g_min_erase_count: 15351 .space 4 15352 .section .bss.g_nand_ops,"aw",%nobits 15353 .align 2 15354 .set .LANCHOR105,. + 0 15355 .type g_nand_ops, %object 15356 .size g_nand_ops, 16 15357g_nand_ops: 15358 .space 16 15359 .section .bss.g_nand_phy_info,"aw",%nobits 15360 .align 1 15361 .set .LANCHOR0,. + 0 15362 .type g_nand_phy_info, %object 15363 .size g_nand_phy_info, 24 15364g_nand_phy_info: 15365 .space 24 15366 .section .bss.g_num_data_superblocks,"aw",%nobits 15367 .align 1 15368 .set .LANCHOR45,. + 0 15369 .type g_num_data_superblocks, %object 15370 .size g_num_data_superblocks, 2 15371g_num_data_superblocks: 15372 .space 2 15373 .section .bss.g_num_free_superblocks,"aw",%nobits 15374 .align 1 15375 .set .LANCHOR48,. + 0 15376 .type g_num_free_superblocks, %object 15377 .size g_num_free_superblocks, 2 15378g_num_free_superblocks: 15379 .space 2 15380 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 15381 .align 1 15382 .set .LANCHOR167,. + 0 15383 .type g_power_lost_recovery_flag, %object 15384 .size g_power_lost_recovery_flag, 2 15385g_power_lost_recovery_flag: 15386 .space 2 15387 .section .bss.g_recovery_page_min_ver,"aw",%nobits 15388 .align 2 15389 .set .LANCHOR145,. + 0 15390 .type g_recovery_page_min_ver, %object 15391 .size g_recovery_page_min_ver, 4 15392g_recovery_page_min_ver: 15393 .space 4 15394 .section .bss.g_recovery_page_num,"aw",%nobits 15395 .align 2 15396 .set .LANCHOR168,. + 0 15397 .type g_recovery_page_num, %object 15398 .size g_recovery_page_num, 4 15399g_recovery_page_num: 15400 .space 4 15401 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 15402 .align 2 15403 .set .LANCHOR169,. + 0 15404 .type g_recovery_ppa_tbl, %object 15405 .size g_recovery_ppa_tbl, 128 15406g_recovery_ppa_tbl: 15407 .space 128 15408 .section .bss.g_sys_ext_data,"aw",%nobits 15409 .align 2 15410 .set .LANCHOR81,. + 0 15411 .type g_sys_ext_data, %object 15412 .size g_sys_ext_data, 512 15413g_sys_ext_data: 15414 .space 512 15415 .section .bss.g_sys_save_data,"aw",%nobits 15416 .align 2 15417 .set .LANCHOR39,. + 0 15418 .type g_sys_save_data, %object 15419 .size g_sys_save_data, 48 15420g_sys_save_data: 15421 .space 48 15422 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 15423 .align 1 15424 .set .LANCHOR142,. + 0 15425 .type g_tmp_data_superblock_id, %object 15426 .size g_tmp_data_superblock_id, 2 15427g_tmp_data_superblock_id: 15428 .space 2 15429 .section .bss.g_totle_avg_erase_count,"aw",%nobits 15430 .align 2 15431 .set .LANCHOR74,. + 0 15432 .type g_totle_avg_erase_count, %object 15433 .size g_totle_avg_erase_count, 4 15434g_totle_avg_erase_count: 15435 .space 4 15436 .section .bss.g_totle_cache_write_count,"aw",%nobits 15437 .align 2 15438 .set .LANCHOR65,. + 0 15439 .type g_totle_cache_write_count, %object 15440 .size g_totle_cache_write_count, 4 15441g_totle_cache_write_count: 15442 .space 4 15443 .section .bss.g_totle_discard_page_count,"aw",%nobits 15444 .align 2 15445 .set .LANCHOR63,. + 0 15446 .type g_totle_discard_page_count, %object 15447 .size g_totle_discard_page_count, 4 15448g_totle_discard_page_count: 15449 .space 4 15450 .section .bss.g_totle_gc_page_count,"aw",%nobits 15451 .align 2 15452 .set .LANCHOR67,. + 0 15453 .type g_totle_gc_page_count, %object 15454 .size g_totle_gc_page_count, 4 15455g_totle_gc_page_count: 15456 .space 4 15457 .section .bss.g_totle_l2p_write_count,"aw",%nobits 15458 .align 2 15459 .set .LANCHOR66,. + 0 15460 .type g_totle_l2p_write_count, %object 15461 .size g_totle_l2p_write_count, 4 15462g_totle_l2p_write_count: 15463 .space 4 15464 .section .bss.g_totle_map_block,"aw",%nobits 15465 .align 1 15466 .set .LANCHOR141,. + 0 15467 .type g_totle_map_block, %object 15468 .size g_totle_map_block, 2 15469g_totle_map_block: 15470 .space 2 15471 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 15472 .align 2 15473 .set .LANCHOR72,. + 0 15474 .type g_totle_mlc_erase_count, %object 15475 .size g_totle_mlc_erase_count, 4 15476g_totle_mlc_erase_count: 15477 .space 4 15478 .section .bss.g_totle_read_page_count,"aw",%nobits 15479 .align 2 15480 .set .LANCHOR62,. + 0 15481 .type g_totle_read_page_count, %object 15482 .size g_totle_read_page_count, 4 15483g_totle_read_page_count: 15484 .space 4 15485 .section .bss.g_totle_read_sector,"aw",%nobits 15486 .align 2 15487 .set .LANCHOR69,. + 0 15488 .type g_totle_read_sector, %object 15489 .size g_totle_read_sector, 4 15490g_totle_read_sector: 15491 .space 4 15492 .section .bss.g_totle_slc_erase_count,"aw",%nobits 15493 .align 2 15494 .set .LANCHOR73,. + 0 15495 .type g_totle_slc_erase_count, %object 15496 .size g_totle_slc_erase_count, 4 15497g_totle_slc_erase_count: 15498 .space 4 15499 .section .bss.g_totle_swl_count,"aw",%nobits 15500 .align 2 15501 .set .LANCHOR143,. + 0 15502 .type g_totle_swl_count, %object 15503 .size g_totle_swl_count, 4 15504g_totle_swl_count: 15505 .space 4 15506 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 15507 .align 2 15508 .set .LANCHOR75,. + 0 15509 .type g_totle_sys_slc_erase_count, %object 15510 .size g_totle_sys_slc_erase_count, 4 15511g_totle_sys_slc_erase_count: 15512 .space 4 15513 .section .bss.g_totle_vendor_block,"aw",%nobits 15514 .align 1 15515 .set .LANCHOR35,. + 0 15516 .type g_totle_vendor_block, %object 15517 .size g_totle_vendor_block, 2 15518g_totle_vendor_block: 15519 .space 2 15520 .section .bss.g_totle_write_page_count,"aw",%nobits 15521 .align 2 15522 .set .LANCHOR64,. + 0 15523 .type g_totle_write_page_count, %object 15524 .size g_totle_write_page_count, 4 15525g_totle_write_page_count: 15526 .space 4 15527 .section .bss.g_totle_write_sector,"aw",%nobits 15528 .align 2 15529 .set .LANCHOR68,. + 0 15530 .type g_totle_write_sector, %object 15531 .size g_totle_write_sector, 4 15532g_totle_write_sector: 15533 .space 4 15534 .section .bss.gc_discard_updated,"aw",%nobits 15535 .align 2 15536 .set .LANCHOR172,. + 0 15537 .type gc_discard_updated, %object 15538 .size gc_discard_updated, 4 15539gc_discard_updated: 15540 .space 4 15541 .section .bss.gc_ink_free_return_value,"aw",%nobits 15542 .align 1 15543 .set .LANCHOR177,. + 0 15544 .type gc_ink_free_return_value, %object 15545 .size gc_ink_free_return_value, 2 15546gc_ink_free_return_value: 15547 .space 2 15548 .section .bss.gp_ect_tbl_info,"aw",%nobits 15549 .align 2 15550 .set .LANCHOR127,. + 0 15551 .type gp_ect_tbl_info, %object 15552 .size gp_ect_tbl_info, 4 15553gp_ect_tbl_info: 15554 .space 4 15555 .section .bss.gp_flash_check_buf,"aw",%nobits 15556 .align 2 15557 .set .LANCHOR186,. + 0 15558 .type gp_flash_check_buf, %object 15559 .size gp_flash_check_buf, 4 15560gp_flash_check_buf: 15561 .space 4 15562 .section .bss.gp_gc_page_buf_info,"aw",%nobits 15563 .align 2 15564 .set .LANCHOR90,. + 0 15565 .type gp_gc_page_buf_info, %object 15566 .size gp_gc_page_buf_info, 4 15567gp_gc_page_buf_info: 15568 .space 4 15569 .section .bss.gp_last_act_superblock,"aw",%nobits 15570 .align 2 15571 .type gp_last_act_superblock, %object 15572 .size gp_last_act_superblock, 4 15573gp_last_act_superblock: 15574 .space 4 15575 .section .bss.idb_buf,"aw",%nobits 15576 .align 2 15577 .set .LANCHOR185,. + 0 15578 .type idb_buf, %object 15579 .size idb_buf, 4 15580idb_buf: 15581 .space 4 15582 .section .bss.idb_need_write_back,"aw",%nobits 15583 .align 2 15584 .set .LANCHOR184,. + 0 15585 .type idb_need_write_back, %object 15586 .size idb_need_write_back, 4 15587idb_need_write_back: 15588 .space 4 15589 .section .bss.p_blk_mode_table,"aw",%nobits 15590 .align 2 15591 .set .LANCHOR1,. + 0 15592 .type p_blk_mode_table, %object 15593 .size p_blk_mode_table, 4 15594p_blk_mode_table: 15595 .space 4 15596 .section .bss.p_data_block_list_head,"aw",%nobits 15597 .align 2 15598 .set .LANCHOR41,. + 0 15599 .type p_data_block_list_head, %object 15600 .size p_data_block_list_head, 4 15601p_data_block_list_head: 15602 .space 4 15603 .section .bss.p_data_block_list_table,"aw",%nobits 15604 .align 2 15605 .set .LANCHOR40,. + 0 15606 .type p_data_block_list_table, %object 15607 .size p_data_block_list_table, 4 15608p_data_block_list_table: 15609 .space 4 15610 .section .bss.p_data_block_list_tail,"aw",%nobits 15611 .align 2 15612 .set .LANCHOR44,. + 0 15613 .type p_data_block_list_tail, %object 15614 .size p_data_block_list_tail, 4 15615p_data_block_list_tail: 15616 .space 4 15617 .section .bss.p_erase_count_table,"aw",%nobits 15618 .align 2 15619 .set .LANCHOR43,. + 0 15620 .type p_erase_count_table, %object 15621 .size p_erase_count_table, 4 15622p_erase_count_table: 15623 .space 4 15624 .section .bss.p_free_data_block_list_head,"aw",%nobits 15625 .align 2 15626 .set .LANCHOR47,. + 0 15627 .type p_free_data_block_list_head, %object 15628 .size p_free_data_block_list_head, 4 15629p_free_data_block_list_head: 15630 .space 4 15631 .section .bss.p_gc_blk_tbl,"aw",%nobits 15632 .align 2 15633 .set .LANCHOR95,. + 0 15634 .type p_gc_blk_tbl, %object 15635 .size p_gc_blk_tbl, 4 15636p_gc_blk_tbl: 15637 .space 4 15638 .section .bss.p_gc_data_buf,"aw",%nobits 15639 .align 2 15640 .set .LANCHOR91,. + 0 15641 .type p_gc_data_buf, %object 15642 .size p_gc_data_buf, 4 15643p_gc_data_buf: 15644 .space 4 15645 .section .bss.p_gc_page_info,"aw",%nobits 15646 .align 2 15647 .set .LANCHOR98,. + 0 15648 .type p_gc_page_info, %object 15649 .size p_gc_page_info, 4 15650p_gc_page_info: 15651 .space 4 15652 .section .bss.p_gc_spare_buf,"aw",%nobits 15653 .align 2 15654 .set .LANCHOR92,. + 0 15655 .type p_gc_spare_buf, %object 15656 .size p_gc_spare_buf, 4 15657p_gc_spare_buf: 15658 .space 4 15659 .section .bss.p_io_data_buf_0,"aw",%nobits 15660 .align 2 15661 .set .LANCHOR118,. + 0 15662 .type p_io_data_buf_0, %object 15663 .size p_io_data_buf_0, 4 15664p_io_data_buf_0: 15665 .space 4 15666 .section .bss.p_io_data_buf_1,"aw",%nobits 15667 .align 2 15668 .set .LANCHOR119,. + 0 15669 .type p_io_data_buf_1, %object 15670 .size p_io_data_buf_1, 4 15671p_io_data_buf_1: 15672 .space 4 15673 .section .bss.p_io_spare_buf,"aw",%nobits 15674 .align 2 15675 .set .LANCHOR124,. + 0 15676 .type p_io_spare_buf, %object 15677 .size p_io_spare_buf, 4 15678p_io_spare_buf: 15679 .space 4 15680 .section .bss.p_l2p_map_buf,"aw",%nobits 15681 .align 2 15682 .set .LANCHOR136,. + 0 15683 .type p_l2p_map_buf, %object 15684 .size p_l2p_map_buf, 4 15685p_l2p_map_buf: 15686 .space 4 15687 .section .bss.p_l2p_ram_map,"aw",%nobits 15688 .align 2 15689 .set .LANCHOR55,. + 0 15690 .type p_l2p_ram_map, %object 15691 .size p_l2p_ram_map, 4 15692p_l2p_ram_map: 15693 .space 4 15694 .section .bss.p_map_block_table,"aw",%nobits 15695 .align 2 15696 .set .LANCHOR129,. + 0 15697 .type p_map_block_table, %object 15698 .size p_map_block_table, 4 15699p_map_block_table: 15700 .space 4 15701 .section .bss.p_map_block_valid_page_count,"aw",%nobits 15702 .align 2 15703 .set .LANCHOR130,. + 0 15704 .type p_map_block_valid_page_count, %object 15705 .size p_map_block_valid_page_count, 4 15706p_map_block_valid_page_count: 15707 .space 4 15708 .section .bss.p_map_block_ver_table,"aw",%nobits 15709 .align 2 15710 .set .LANCHOR135,. + 0 15711 .type p_map_block_ver_table, %object 15712 .size p_map_block_ver_table, 4 15713p_map_block_ver_table: 15714 .space 4 15715 .section .bss.p_map_region_ppn_table,"aw",%nobits 15716 .align 2 15717 .set .LANCHOR134,. + 0 15718 .type p_map_region_ppn_table, %object 15719 .size p_map_region_ppn_table, 4 15720p_map_region_ppn_table: 15721 .space 4 15722 .section .bss.p_plane_order_table,"aw",%nobits 15723 .set .LANCHOR13,. + 0 15724 .type p_plane_order_table, %object 15725 .size p_plane_order_table, 32 15726p_plane_order_table: 15727 .space 32 15728 .section .bss.p_swl_mul_table,"aw",%nobits 15729 .align 2 15730 .set .LANCHOR126,. + 0 15731 .type p_swl_mul_table, %object 15732 .size p_swl_mul_table, 4 15733p_swl_mul_table: 15734 .space 4 15735 .section .bss.p_sys_data_buf,"aw",%nobits 15736 .align 2 15737 .set .LANCHOR115,. + 0 15738 .type p_sys_data_buf, %object 15739 .size p_sys_data_buf, 4 15740p_sys_data_buf: 15741 .space 4 15742 .section .bss.p_sys_data_buf_1,"aw",%nobits 15743 .align 2 15744 .set .LANCHOR116,. + 0 15745 .type p_sys_data_buf_1, %object 15746 .size p_sys_data_buf_1, 4 15747p_sys_data_buf_1: 15748 .space 4 15749 .section .bss.p_sys_spare_buf,"aw",%nobits 15750 .align 2 15751 .set .LANCHOR123,. + 0 15752 .type p_sys_spare_buf, %object 15753 .size p_sys_spare_buf, 4 15754p_sys_spare_buf: 15755 .space 4 15756 .section .bss.p_valid_page_count_check_table,"aw",%nobits 15757 .align 2 15758 .set .LANCHOR128,. + 0 15759 .type p_valid_page_count_check_table, %object 15760 .size p_valid_page_count_check_table, 4 15761p_valid_page_count_check_table: 15762 .space 4 15763 .section .bss.p_valid_page_count_table,"aw",%nobits 15764 .align 2 15765 .set .LANCHOR42,. + 0 15766 .type p_valid_page_count_table, %object 15767 .size p_valid_page_count_table, 4 15768p_valid_page_count_table: 15769 .space 4 15770 .section .bss.p_vendor_block_table,"aw",%nobits 15771 .align 2 15772 .set .LANCHOR36,. + 0 15773 .type p_vendor_block_table, %object 15774 .size p_vendor_block_table, 4 15775p_vendor_block_table: 15776 .space 4 15777 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 15778 .align 2 15779 .set .LANCHOR131,. + 0 15780 .type p_vendor_block_valid_page_count, %object 15781 .size p_vendor_block_valid_page_count, 4 15782p_vendor_block_valid_page_count: 15783 .space 4 15784 .section .bss.p_vendor_block_ver_table,"aw",%nobits 15785 .align 2 15786 .set .LANCHOR132,. + 0 15787 .type p_vendor_block_ver_table, %object 15788 .size p_vendor_block_ver_table, 4 15789p_vendor_block_ver_table: 15790 .space 4 15791 .section .bss.p_vendor_data_buf,"aw",%nobits 15792 .align 2 15793 .set .LANCHOR117,. + 0 15794 .type p_vendor_data_buf, %object 15795 .size p_vendor_data_buf, 4 15796p_vendor_data_buf: 15797 .space 4 15798 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 15799 .align 2 15800 .set .LANCHOR133,. + 0 15801 .type p_vendor_region_ppn_table, %object 15802 .size p_vendor_region_ppn_table, 4 15803p_vendor_region_ppn_table: 15804 .space 4 15805 .section .bss.req_erase,"aw",%nobits 15806 .align 2 15807 .set .LANCHOR106,. + 0 15808 .type req_erase, %object 15809 .size req_erase, 4 15810req_erase: 15811 .space 4 15812 .section .bss.req_gc,"aw",%nobits 15813 .align 2 15814 .set .LANCHOR93,. + 0 15815 .type req_gc, %object 15816 .size req_gc, 4 15817req_gc: 15818 .space 4 15819 .section .bss.req_gc_dst,"aw",%nobits 15820 .align 2 15821 .set .LANCHOR113,. + 0 15822 .type req_gc_dst, %object 15823 .size req_gc_dst, 4 15824req_gc_dst: 15825 .space 4 15826 .section .bss.req_prgm,"aw",%nobits 15827 .align 2 15828 .set .LANCHOR114,. + 0 15829 .type req_prgm, %object 15830 .size req_prgm, 4 15831req_prgm: 15832 .space 4 15833 .section .bss.req_read,"aw",%nobits 15834 .align 2 15835 .set .LANCHOR112,. + 0 15836 .type req_read, %object 15837 .size req_read, 4 15838req_read: 15839 .space 4 15840 .section .bss.req_sys,"aw",%nobits 15841 .align 2 15842 .set .LANCHOR148,. + 0 15843 .type req_sys, %object 15844 .size req_sys, 20 15845req_sys: 15846 .space 20 15847 .section .bss.sftl_nand_check_buf,"aw",%nobits 15848 .align 2 15849 .set .LANCHOR120,. + 0 15850 .type sftl_nand_check_buf, %object 15851 .size sftl_nand_check_buf, 4 15852sftl_nand_check_buf: 15853 .space 4 15854 .section .bss.sftl_nand_check_spare_buf,"aw",%nobits 15855 .align 2 15856 .set .LANCHOR122,. + 0 15857 .type sftl_nand_check_spare_buf, %object 15858 .size sftl_nand_check_spare_buf, 4 15859sftl_nand_check_spare_buf: 15860 .space 4 15861 .section .bss.sftl_temp_buf,"aw",%nobits 15862 .align 2 15863 .set .LANCHOR121,. + 0 15864 .type sftl_temp_buf, %object 15865 .size sftl_temp_buf, 4 15866sftl_temp_buf: 15867 .space 4 15868 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 15869 .align 1 15870 .set .LANCHOR162,. + 0 15871 .type ftl_gc_temp_block_bops_scan_page_addr, %object 15872 .size ftl_gc_temp_block_bops_scan_page_addr, 2 15873ftl_gc_temp_block_bops_scan_page_addr: 15874 .short -1 15875 .section .data.gFtlInitStatus,"aw",%progbits 15876 .align 2 15877 .set .LANCHOR86,. + 0 15878 .type gFtlInitStatus, %object 15879 .size gFtlInitStatus, 4 15880gFtlInitStatus: 15881 .word -1 15882 .section .data.power_up_flag,"aw",%progbits 15883 .align 2 15884 .set .LANCHOR182,. + 0 15885 .type power_up_flag, %object 15886 .size power_up_flag, 4 15887power_up_flag: 15888 .word 1 15889 .section .rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1 15890.LC79: 15891 .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" 15892.LC80: 15893 .ascii "not free: w: d:\000" 15894.LC81: 15895 .ascii "not free: w: s:\000" 15896 .section .rodata.FlashProgPages.str1.1,"aMS",%progbits,1 15897.LC85: 15898 .ascii "prog read error: = %x\012\000" 15899.LC86: 15900 .ascii "prog read s error: = %x %x %x\012\000" 15901.LC87: 15902 .ascii "prog read d error: = %x %x %x\012\000" 15903 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 15904.LC0: 15905 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 15906 .ascii "\000" 15907 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 15908.LC101: 15909 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 15910.LC102: 15911 .ascii "FtlBbmTblFlush error:%x\012\000" 15912.LC103: 15913 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 15914 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 15915.LC82: 15916 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 15917 .ascii "\000" 15918 .section .rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",%progbits,1 15919.LC104: 15920 .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" 15921 .section .rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",%progbits,1 15922.LC74: 15923 .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" 15924 .section .rodata.FtlGcRefreshBlock.str1.1,"aMS",%progbits,1 15925.LC73: 15926 .ascii "FtlGcRefreshBlock 0x%x\012\000" 15927 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 15928.LC100: 15929 .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" 15930 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 15931.LC108: 15932 .ascii "no ect\000" 15933 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 15934.LC88: 15935 .ascii "FtlMapWritePage error = %x \012\000" 15936.LC89: 15937 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 15938 .section .rodata.FtlMemInit.str1.1,"aMS",%progbits,1 15939.LC84: 15940 .ascii "%s error allocating memory. return -1\012\000" 15941 .section .rodata.FtlPrintInfo2buf.str1.1,"aMS",%progbits,1 15942.LC2: 15943 .ascii "FLASH INFO:\012\000" 15944.LC3: 15945 .ascii "Device Capacity: %d MB\012\000" 15946.LC4: 15947 .ascii "FTL INFO:\012\000" 15948.LC5: 15949 .ascii "g_MaxLpn = 0x%x\012\000" 15950.LC6: 15951 .ascii "g_VaildLpn = 0x%x\012\000" 15952.LC7: 15953 .ascii "read_page_count = 0x%x\012\000" 15954.LC8: 15955 .ascii "discard_page_count = 0x%x\012\000" 15956.LC9: 15957 .ascii "write_page_count = 0x%x\012\000" 15958.LC10: 15959 .ascii "cache_write_count = 0x%x\012\000" 15960.LC11: 15961 .ascii "l2p_write_count = 0x%x\012\000" 15962.LC12: 15963 .ascii "gc_page_count = 0x%x\012\000" 15964.LC13: 15965 .ascii "totle_write = %d MB\012\000" 15966.LC14: 15967 .ascii "totle_read = %d MB\012\000" 15968.LC15: 15969 .ascii "GSV = 0x%x\012\000" 15970.LC16: 15971 .ascii "GDV = 0x%x\012\000" 15972.LC17: 15973 .ascii "bad blk num = %d\012\000" 15974.LC18: 15975 .ascii "free_superblocks = 0x%x\012\000" 15976.LC19: 15977 .ascii "mlc_EC = 0x%x\012\000" 15978.LC20: 15979 .ascii "slc_EC = 0x%x\012\000" 15980.LC21: 15981 .ascii "avg_EC = 0x%x\012\000" 15982.LC22: 15983 .ascii "sys_EC = 0x%x\012\000" 15984.LC23: 15985 .ascii "max_EC = 0x%x\012\000" 15986.LC24: 15987 .ascii "min_EC = 0x%x\012\000" 15988.LC25: 15989 .ascii "PLT = 0x%x\012\000" 15990.LC26: 15991 .ascii "POT = 0x%x\012\000" 15992.LC27: 15993 .ascii "MaxSector = 0x%x\012\000" 15994.LC28: 15995 .ascii "init_sys_blks_pp = 0x%x\012\000" 15996.LC29: 15997 .ascii "sys_blks_pp = 0x%x\012\000" 15998.LC30: 15999 .ascii "free sysblock = 0x%x\012\000" 16000.LC31: 16001 .ascii "data_blks_pp = 0x%x\012\000" 16002.LC32: 16003 .ascii "data_op_blks_pp = 0x%x\012\000" 16004.LC33: 16005 .ascii "max_data_blks = 0x%x\012\000" 16006.LC34: 16007 .ascii "Sys.id = 0x%x\012\000" 16008.LC35: 16009 .ascii "Bbt.id = 0x%x\012\000" 16010.LC36: 16011 .ascii "ACT.page = 0x%x\012\000" 16012.LC37: 16013 .ascii "ACT.plane = 0x%x\012\000" 16014.LC38: 16015 .ascii "ACT.id = 0x%x\012\000" 16016.LC39: 16017 .ascii "ACT.mode = 0x%x\012\000" 16018.LC40: 16019 .ascii "ACT.a_pages = 0x%x\012\000" 16020.LC41: 16021 .ascii "ACT VPC = 0x%x\012\000" 16022.LC42: 16023 .ascii "BUF.page = 0x%x\012\000" 16024.LC43: 16025 .ascii "BUF.plane = 0x%x\012\000" 16026.LC44: 16027 .ascii "BUF.id = 0x%x\012\000" 16028.LC45: 16029 .ascii "BUF.mode = 0x%x\012\000" 16030.LC46: 16031 .ascii "BUF.a_pages = 0x%x\012\000" 16032.LC47: 16033 .ascii "BUF VPC = 0x%x\012\000" 16034.LC48: 16035 .ascii "TMP.page = 0x%x\012\000" 16036.LC49: 16037 .ascii "TMP.plane = 0x%x\012\000" 16038.LC50: 16039 .ascii "TMP.id = 0x%x\012\000" 16040.LC51: 16041 .ascii "TMP.mode = 0x%x\012\000" 16042.LC52: 16043 .ascii "TMP.a_pages = 0x%x\012\000" 16044.LC53: 16045 .ascii "GC.page = 0x%x\012\000" 16046.LC54: 16047 .ascii "GC.plane = 0x%x\012\000" 16048.LC55: 16049 .ascii "GC.id = 0x%x\012\000" 16050.LC56: 16051 .ascii "GC.mode = 0x%x\012\000" 16052.LC57: 16053 .ascii "GC.a_pages = 0x%x\012\000" 16054.LC58: 16055 .ascii "WR_CHK = %x %x %x\012\000" 16056.LC59: 16057 .ascii "Read Err Cnt = 0x%x\012\000" 16058.LC60: 16059 .ascii "Prog Err Cnt = 0x%x\012\000" 16060.LC61: 16061 .ascii "gc_free_blk_th= 0x%x\012\000" 16062.LC62: 16063 .ascii "gc_merge_free_blk_th= 0x%x\012\000" 16064.LC63: 16065 .ascii "gc_skip_write_count= 0x%x\012\000" 16066.LC64: 16067 .ascii "gc_blk_index= 0x%x\012\000" 16068.LC65: 16069 .ascii "free min EC= 0x%x\012\000" 16070.LC66: 16071 .ascii "free max EC= 0x%x\012\000" 16072.LC67: 16073 .ascii "GC__SB VPC = 0x%x\012\000" 16074.LC68: 16075 .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" 16076.LC69: 16077 .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" 16078 .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 16079.LC111: 16080 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 16081 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 16082.LC106: 16083 .ascii "spuer block %x vpn is 0\012 \000" 16084 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 16085.LC107: 16086 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 16087 .section .rodata.FtlVpcCheckAndModify.str1.1,"aMS",%progbits,1 16088.LC110: 16089 .ascii "FtlCheckVpc %x = %x %x\012\000" 16090 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 16091.LC109: 16092 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 16093 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 16094.LC113: 16095 .ascii "FtlWrite: lpa error:%x %x\012\000" 16096 .section .rodata.GetSwlReplaceBlock.str1.1,"aMS",%progbits,1 16097.LC72: 16098 .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" 16099 .ascii "\012\000" 16100 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 16101.LC1: 16102 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 16103 .section .rodata.__func__.10034,"a",%progbits 16104 .set .LANCHOR176,. + 0 16105 .type __func__.10034, %object 16106 .size __func__.10034, 19 16107__func__.10034: 16108 .ascii "FtlGcFreeTempBlock\000" 16109 .section .rodata.__func__.10145,"a",%progbits 16110 .set .LANCHOR180,. + 0 16111 .type __func__.10145, %object 16112 .size __func__.10145, 23 16113__func__.10145: 16114 .ascii "rk_ftl_garbage_collect\000" 16115 .section .rodata.__func__.10407,"a",%progbits 16116 .set .LANCHOR147,. + 0 16117 .type __func__.10407, %object 16118 .size __func__.10407, 15 16119__func__.10407: 16120 .ascii "FlashReadPages\000" 16121 .section .rodata.__func__.10426,"a",%progbits 16122 .set .LANCHOR153,. + 0 16123 .type __func__.10426, %object 16124 .size __func__.10426, 15 16125__func__.10426: 16126 .ascii "FlashProgPages\000" 16127 .section .rodata.__func__.10450,"a",%progbits 16128 .set .LANCHOR104,. + 0 16129 .type __func__.10450, %object 16130 .size __func__.10450, 17 16131__func__.10450: 16132 .ascii "FlashEraseBlocks\000" 16133 .section .rodata.__func__.8814,"a",%progbits 16134 .set .LANCHOR138,. + 0 16135 .type __func__.8814, %object 16136 .size __func__.8814, 11 16137__func__.8814: 16138 .ascii "FtlMemInit\000" 16139 .section .rodata.__func__.8938,"a",%progbits 16140 .set .LANCHOR175,. + 0 16141 .type __func__.8938, %object 16142 .size __func__.8938, 13 16143__func__.8938: 16144 .ascii "FtlProgPages\000" 16145 .section .rodata.__func__.8966,"a",%progbits 16146 .set .LANCHOR183,. + 0 16147 .type __func__.8966, %object 16148 .size __func__.8966, 9 16149__func__.8966: 16150 .ascii "FtlWrite\000" 16151 .section .rodata.__func__.9072,"a",%progbits 16152 .set .LANCHOR187,. + 0 16153 .type __func__.9072, %object 16154 .size __func__.9072, 14 16155__func__.9072: 16156 .ascii "FtlWriteToIDB\000" 16157 .section .rodata.__func__.9113,"a",%progbits 16158 .set .LANCHOR139,. + 0 16159 .type __func__.9113, %object 16160 .size __func__.9113, 14 16161__func__.9113: 16162 .ascii "FtlBbt2Bitmap\000" 16163 .section .rodata.__func__.9156,"a",%progbits 16164 .set .LANCHOR150,. + 0 16165 .type __func__.9156, %object 16166 .size __func__.9156, 11 16167__func__.9156: 16168 .ascii "FtlLoadBbt\000" 16169 .section .rodata.__func__.9271,"a",%progbits 16170 .set .LANCHOR49,. + 0 16171 .type __func__.9271, %object 16172 .size __func__.9271, 17 16173__func__.9271: 16174 .ascii "INSERT_FREE_LIST\000" 16175 .section .rodata.__func__.9276,"a",%progbits 16176 .set .LANCHOR46,. + 0 16177 .type __func__.9276, %object 16178 .size __func__.9276, 17 16179__func__.9276: 16180 .ascii "INSERT_DATA_LIST\000" 16181 .section .rodata.__func__.9307,"a",%progbits 16182 .set .LANCHOR50,. + 0 16183 .type __func__.9307, %object 16184 .size __func__.9307, 17 16185__func__.9307: 16186 .ascii "List_remove_node\000" 16187 .section .rodata.__func__.9339,"a",%progbits 16188 .set .LANCHOR54,. + 0 16189 .type __func__.9339, %object 16190 .size __func__.9339, 22 16191__func__.9339: 16192 .ascii "List_update_data_list\000" 16193 .section .rodata.__func__.9348,"a",%progbits 16194 .set .LANCHOR156,. + 0 16195 .type __func__.9348, %object 16196 .size __func__.9348, 16 16197__func__.9348: 16198 .ascii "load_l2p_region\000" 16199 .section .rodata.__func__.9381,"a",%progbits 16200 .set .LANCHOR107,. + 0 16201 .type __func__.9381, %object 16202 .size __func__.9381, 26 16203__func__.9381: 16204 .ascii "ftl_map_blk_alloc_new_blk\000" 16205 .section .rodata.__func__.9392,"a",%progbits 16206 .set .LANCHOR157,. + 0 16207 .type __func__.9392, %object 16208 .size __func__.9392, 15 16209__func__.9392: 16210 .ascii "ftl_map_blk_gc\000" 16211 .section .rodata.__func__.9407,"a",%progbits 16212 .set .LANCHOR154,. + 0 16213 .type __func__.9407, %object 16214 .size __func__.9407, 31 16215__func__.9407: 16216 .ascii "Ftl_write_map_blk_to_last_page\000" 16217 .section .rodata.__func__.9421,"a",%progbits 16218 .set .LANCHOR155,. + 0 16219 .type __func__.9421, %object 16220 .size __func__.9421, 16 16221__func__.9421: 16222 .ascii "FtlMapWritePage\000" 16223 .section .rodata.__func__.9446,"a",%progbits 16224 .set .LANCHOR57,. + 0 16225 .type __func__.9446, %object 16226 .size __func__.9446, 22 16227__func__.9446: 16228 .ascii "select_l2p_ram_region\000" 16229 .section .rodata.__func__.9463,"a",%progbits 16230 .set .LANCHOR159,. + 0 16231 .type __func__.9463, %object 16232 .size __func__.9463, 9 16233__func__.9463: 16234 .ascii "log2phys\000" 16235 .section .rodata.__func__.9536,"a",%progbits 16236 .set .LANCHOR171,. + 0 16237 .type __func__.9536, %object 16238 .size __func__.9536, 15 16239__func__.9536: 16240 .ascii "FtlVpcTblFlush\000" 16241 .section .rodata.__func__.9558,"a",%progbits 16242 .set .LANCHOR149,. + 0 16243 .type __func__.9558, %object 16244 .size __func__.9558, 14 16245__func__.9558: 16246 .ascii "FtlScanSysBlk\000" 16247 .section .rodata.__func__.9615,"a",%progbits 16248 .set .LANCHOR151,. + 0 16249 .type __func__.9615, %object 16250 .size __func__.9615, 15 16251__func__.9615: 16252 .ascii "FtlLoadSysInfo\000" 16253 .section .rodata.__func__.9678,"a",%progbits 16254 .set .LANCHOR160,. + 0 16255 .type __func__.9678, %object 16256 .size __func__.9678, 16 16257__func__.9678: 16258 .ascii "FtlReUsePrevPpa\000" 16259 .section .rodata.__func__.9712,"a",%progbits 16260 .set .LANCHOR166,. + 0 16261 .type __func__.9712, %object 16262 .size __func__.9712, 22 16263__func__.9712: 16264 .ascii "FtlRecoverySuperblock\000" 16265 .section .rodata.__func__.9769,"a",%progbits 16266 .set .LANCHOR60,. + 0 16267 .type __func__.9769, %object 16268 .size __func__.9769, 16 16269__func__.9769: 16270 .ascii "make_superblock\000" 16271 .section .rodata.__func__.9790,"a",%progbits 16272 .set .LANCHOR146,. + 0 16273 .type __func__.9790, %object 16274 .size __func__.9790, 18 16275__func__.9790: 16276 .ascii "SupperBlkListInit\000" 16277 .section .rodata.__func__.9815,"a",%progbits 16278 .set .LANCHOR173,. + 0 16279 .type __func__.9815, %object 16280 .size __func__.9815, 21 16281__func__.9815: 16282 .ascii "FtlVpcCheckAndModify\000" 16283 .section .rodata.__func__.9831,"a",%progbits 16284 .set .LANCHOR161,. + 0 16285 .type __func__.9831, %object 16286 .size __func__.9831, 14 16287__func__.9831: 16288 .ascii "ftl_check_vpc\000" 16289 .section .rodata.__func__.9916,"a",%progbits 16290 .set .LANCHOR163,. + 0 16291 .type __func__.9916, %object 16292 .size __func__.9916, 25 16293__func__.9916: 16294 .ascii "allocate_data_superblock\000" 16295 .section .rodata.__func__.9937,"a",%progbits 16296 .set .LANCHOR174,. + 0 16297 .type __func__.9937, %object 16298 .size __func__.9937, 29 16299__func__.9937: 16300 .ascii "allocate_new_data_superblock\000" 16301 .section .rodata.__func__.9944,"a",%progbits 16302 .set .LANCHOR88,. + 0 16303 .type __func__.9944, %object 16304 .size __func__.9944, 19 16305__func__.9944: 16306 .ascii "get_new_active_ppa\000" 16307 .section .rodata.__func__.9957,"a",%progbits 16308 .set .LANCHOR164,. + 0 16309 .type __func__.9957, %object 16310 .size __func__.9957, 16 16311__func__.9957: 16312 .ascii "update_vpc_list\000" 16313 .section .rodata.__func__.9964,"a",%progbits 16314 .set .LANCHOR165,. + 0 16315 .type __func__.9964, %object 16316 .size __func__.9964, 20 16317__func__.9964: 16318 .ascii "decrement_vpc_count\000" 16319 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 16320.LC105: 16321 .ascii "decrement_vpc_count %x = %d\012\000" 16322 .section .rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1 16323.LC94: 16324 .ascii "...%s enter...\012\000" 16325.LC95: 16326 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 16327.LC96: 16328 .ascii "free blk vpc error %x = %x %x\012\000" 16329 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 16330.LC83: 16331 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 16332 .section .rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1 16333.LC97: 16334 .ascii "ftl_scan_all_data = %x\012\000" 16335.LC98: 16336 .ascii "scan lpa = %x ppa= %x\012\000" 16337.LC99: 16338 .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 16339 .ascii "\000" 16340 .section .rodata.load_l2p_region.str1.1,"aMS",%progbits,1 16341.LC90: 16342 .ascii "region_id = %x phyAddr = %x\012\000" 16343.LC91: 16344 .ascii "spare:\000" 16345.LC92: 16346 .ascii "map_ppn:\000" 16347.LC93: 16348 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 16349 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 16350.LC112: 16351 .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" 16352 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 16353.LC75: 16354 .ascii "%s 0x%x:\000" 16355.LC76: 16356 .ascii "%x \000" 16357.LC77: 16358 .ascii "%02x \000" 16359.LC78: 16360 .ascii "\012\000" 16361 .section .rodata.rknand_proc_ftlread.str1.1,"aMS",%progbits,1 16362.LC70: 16363 .ascii "SFTL version: 5.0.48 20181029\000" 16364.LC71: 16365 .ascii "%s\012\000" 16366 .section .rodata.sftl_write.str1.1,"aMS",%progbits,1 16367.LC114: 16368 .ascii "write_idblock fix data %x %x %x\012\000" 16369.LC115: 16370 .ascii "write_idblock fail! %x %x %x %x\012\000" 16371.LC116: 16372 .ascii "%s idb buffer alloc fail\012\000" 16373.LC117: 16374 .ascii "%p %x %p %x\012\000" 16375 .hidden free 16376