1/* 2 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * SPDX-License-Identifier: GPL-2.0 5 * date: 2018-11-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 = 8 183 @ frame_needed = 0, uses_anonymous_args = 0 184 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 185 mov r3, r0 186 ldrh r4, [r0] 187 ldr r2, .L25 188 ldrh r5, [r0, #2] 189 ldrh r0, [r0, #4] 190 strh r4, [r2] @ movhi 191 ldr r2, .L25+4 192 ldrh r1, [r3, #6] 193 ldrh r7, [r3, #14] 194 strh r5, [r2] @ movhi 195 ldr r2, .L25+8 196 ldr r6, .L25+12 197 cmp r7, #4 198 strh r0, [r2] @ movhi 199 ldr r2, .L25+16 200 strh r7, [r6] @ movhi 201 ldr r7, .L25+20 202 strh r1, [r2] @ movhi 203 itttt eq 204 lsreq r1, r1, #1 205 strheq r1, [r2] @ movhi 206 moveq r1, #8 207 strheq r1, [r6] @ movhi 208 movs r1, #0 209.L17: 210 strb r1, [r1, r7] 211 adds r1, r1, #1 212 cmp r1, #32 213 bne .L17 214 ldr r1, .L25+24 215 cmp r4, #1 216 mov r7, #5 217 smulbb r5, r5, r0 218 mov ip, #0 219 str r3, [sp, #4] 220 strh r7, [r1] @ movhi 221 it eq 222 strheq r4, [r1] @ movhi 223 mov r4, #640 224 ldr r1, .L25+28 225 uxth r5, r5 226 ldr r7, .L25+32 227 strh r4, [r1] @ movhi 228 ldrh r4, [r2] 229 ldr r1, .L25+36 230 ldr r2, .L25+40 231 strh ip, [r7] @ movhi 232 smulbb r0, r0, r4 233 strh r5, [r1] @ movhi 234 ldr r7, .L25+44 235 uxth r0, r0 236 strh r0, [r2] @ movhi 237 bl Ftl_log2 238 ldr r3, [sp, #4] 239 ldr r2, .L25+48 240 ldrh fp, [r6] 241 ldrh r8, [r3, #12] 242 strh r0, [r2] @ movhi 243 ldr r2, .L25+52 244 mov r0, fp 245 strh r8, [r7] @ movhi 246 smulbb r1, r5, r8 247 ldr r6, .L25+56 248 strh r8, [r2] @ movhi 249 ldr r2, .L25+60 250 strh r1, [r2] @ movhi 251 bl Ftl_log2 252 lsl r2, fp, #9 253 ldr r1, .L25+64 254 ldr r3, [sp, #4] 255 mov r10, r0 256 uxth r2, r2 257 strh r0, [r6] @ movhi 258 mov r0, #5120 259 strh r2, [r1] @ movhi 260 lsrs r2, r2, #8 261 ldr r1, .L25+68 262 strh r2, [r1] @ movhi 263 mul r1, r8, fp 264 ldrh r2, [r3, #20] 265 ldr r3, .L25+72 266 strh r2, [r3] @ movhi 267 mul r3, r4, r5 268 ldr r2, .L25+76 269 lsls r4, r4, #6 270 str r3, [r2] 271 mul r3, fp, r3 272 ldr r2, .L25+80 273 mul r3, r8, r3 274 ldr r8, .L25+116 275 asrs r3, r3, #11 276 str r3, [r2] 277 bl __aeabi_idiv 278 uxth r0, r0 279 ldr r2, .L25+84 280 mov r1, r5 281 cmp r0, #4 282 itet ls 283 movls r3, #4 284 strhhi r0, [r8] @ movhi 285 strhls r3, [r8] @ movhi 286 mov r3, #640 287 asr r3, r3, r10 288 add r10, r10, #9 289 asr r4, r4, r10 290 ldr r10, .L25+120 291 adds r3, r3, #2 292 ldrh r0, [r8] 293 strh r3, [r2] @ movhi 294 ldr r3, .L25+88 295 strh r4, [r3] @ movhi 296 uxth r4, r4 297 mul r3, r5, r4 298 adds r4, r4, #8 299 str r3, [r10] 300 bl __aeabi_uidiv 301 uxtah r0, r4, r0 302 ldr r4, .L25+92 303 cmp r5, #1 304 it eq 305 addeq r0, r0, #4 306 str r0, [r4] 307 ldrh r0, [r4] 308 bl FtlSysBlkNumInit 309 ldr r2, [r4] 310 movs r0, #0 311 ldr r3, .L25+96 312 str r2, [r3] 313 ldr r3, .L25+100 314 ldr r2, [r3] 315 ldrh r3, [r7] 316 lsls r2, r2, #2 317 muls r3, r2, r3 318 ldrh r2, [r6] 319 adds r2, r2, #9 320 lsrs r3, r3, r2 321 ldr r2, .L25+104 322 adds r3, r3, #2 323 strh r3, [r2] @ movhi 324 movs r2, #32 325 ldr r3, .L25+108 326 strh r2, [r3] @ movhi 327 ldr r3, .L25+112 328 str r0, [r3] 329 ldrh r3, [r8] 330 adds r3, r3, #3 331 strh r3, [r8] @ movhi 332 ldr r3, [r10] 333 adds r3, r3, #3 334 str r3, [r10] 335 add sp, sp, #8 336 @ sp needed 337 pop {r4, r5, r6, r7, r8, r10, fp, pc} 338.L26: 339 .align 2 340.L25: 341 .word .LANCHOR9 342 .word .LANCHOR10 343 .word .LANCHOR11 344 .word .LANCHOR12 345 .word .LANCHOR6 346 .word .LANCHOR13 347 .word .LANCHOR14 348 .word .LANCHOR16 349 .word .LANCHOR15 350 .word .LANCHOR3 351 .word .LANCHOR17 352 .word .LANCHOR19 353 .word .LANCHOR18 354 .word .LANCHOR20 355 .word .LANCHOR22 356 .word .LANCHOR21 357 .word .LANCHOR23 358 .word .LANCHOR24 359 .word .LANCHOR25 360 .word .LANCHOR8 361 .word .LANCHOR26 362 .word .LANCHOR28 363 .word .LANCHOR29 364 .word .LANCHOR2 365 .word .LANCHOR31 366 .word .LANCHOR7 367 .word .LANCHOR32 368 .word .LANCHOR33 369 .word .LANCHOR34 370 .word .LANCHOR27 371 .word .LANCHOR30 372 .size FtlConstantsInit, .-FtlConstantsInit 373 .section .text.IsBlkInVendorPart,"ax",%progbits 374 .align 1 375 .global IsBlkInVendorPart 376 .syntax unified 377 .thumb 378 .thumb_func 379 .fpu softvfp 380 .type IsBlkInVendorPart, %function 381IsBlkInVendorPart: 382 @ args = 0, pretend = 0, frame = 0 383 @ frame_needed = 0, uses_anonymous_args = 0 384 @ link register save eliminated. 385 ldr r3, .L34 386 ldrh r3, [r3] 387 cbz r3, .L33 388 ldr r3, .L34+4 389 ldr r2, .L34+8 390 ldr r3, [r3] 391 ldrh r2, [r2] 392 add r2, r3, r2, lsl #1 393.L29: 394 cmp r3, r2 395 bne .L30 396.L33: 397 movs r0, #0 398 bx lr 399.L30: 400 ldrh r1, [r3], #2 401 cmp r0, r1 402 bne .L29 403 movs r0, #1 404 bx lr 405.L35: 406 .align 2 407.L34: 408 .word .LANCHOR35 409 .word .LANCHOR36 410 .word .LANCHOR27 411 .size IsBlkInVendorPart, .-IsBlkInVendorPart 412 .section .text.FtlCacheWriteBack,"ax",%progbits 413 .align 1 414 .global FtlCacheWriteBack 415 .syntax unified 416 .thumb 417 .thumb_func 418 .fpu softvfp 419 .type FtlCacheWriteBack, %function 420FtlCacheWriteBack: 421 @ args = 0, pretend = 0, frame = 0 422 @ frame_needed = 0, uses_anonymous_args = 0 423 @ link register save eliminated. 424 movs r0, #0 425 bx lr 426 .size FtlCacheWriteBack, .-FtlCacheWriteBack 427 .section .text.sftl_get_density,"ax",%progbits 428 .align 1 429 .global sftl_get_density 430 .syntax unified 431 .thumb 432 .thumb_func 433 .fpu softvfp 434 .type sftl_get_density, %function 435sftl_get_density: 436 @ args = 0, pretend = 0, frame = 0 437 @ frame_needed = 0, uses_anonymous_args = 0 438 @ link register save eliminated. 439 ldr r3, .L38 440 ldr r0, [r3] 441 bx lr 442.L39: 443 .align 2 444.L38: 445 .word .LANCHOR34 446 .size sftl_get_density, .-sftl_get_density 447 .global __aeabi_uidivmod 448 .section .text.FtlBbmMapBadBlock,"ax",%progbits 449 .align 1 450 .global FtlBbmMapBadBlock 451 .syntax unified 452 .thumb 453 .thumb_func 454 .fpu softvfp 455 .type FtlBbmMapBadBlock, %function 456FtlBbmMapBadBlock: 457 @ args = 0, pretend = 0, frame = 0 458 @ frame_needed = 0, uses_anonymous_args = 0 459 ldr r3, .L41 460 push {r0, r1, r2, r4, r5, r6, r7, lr} 461 mov r5, r0 462 ldrh r4, [r3] 463 mov r1, r4 464 bl __aeabi_uidiv 465 mov r1, r4 466 ldr r4, .L41+4 467 uxth r6, r0 468 mov r0, r5 469 bl __aeabi_uidivmod 470 add r2, r4, r6, lsl #2 471 uxth r3, r1 472 ldr r2, [r2, #28] 473 lsrs r1, r3, #5 474 and r7, r3, #31 475 movs r0, #1 476 lsls r0, r0, r7 477 ldr r7, [r2, r1, lsl #2] 478 orrs r0, r0, r7 479 str r0, [r2, r1, lsl #2] 480 mov r2, r6 481 str r0, [sp] 482 mov r1, r5 483 ldr r0, .L41+8 484 bl printf 485 ldrh r3, [r4, #6] 486 movs r0, #0 487 adds r3, r3, #1 488 strh r3, [r4, #6] @ movhi 489 add sp, sp, #12 490 @ sp needed 491 pop {r4, r5, r6, r7, pc} 492.L42: 493 .align 2 494.L41: 495 .word .LANCHOR17 496 .word .LANCHOR37 497 .word .LC0 498 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 499 .section .text.FtlBbmIsBadBlock,"ax",%progbits 500 .align 1 501 .global FtlBbmIsBadBlock 502 .syntax unified 503 .thumb 504 .thumb_func 505 .fpu softvfp 506 .type FtlBbmIsBadBlock, %function 507FtlBbmIsBadBlock: 508 @ args = 0, pretend = 0, frame = 0 509 @ frame_needed = 0, uses_anonymous_args = 0 510 ldr r3, .L44 511 push {r4, r5, r6, lr} 512 mov r6, r0 513 ldrh r5, [r3] 514 mov r1, r5 515 bl __aeabi_uidivmod 516 mov r0, r6 517 uxth r4, r1 518 mov r1, r5 519 bl __aeabi_uidiv 520 ldr r3, .L44+4 521 uxth r0, r0 522 lsrs r2, r4, #5 523 and r4, r4, #31 524 add r0, r3, r0, lsl #2 525 ldr r3, [r0, #28] 526 ldr r0, [r3, r2, lsl #2] 527 lsrs r0, r0, r4 528 and r0, r0, #1 529 pop {r4, r5, r6, pc} 530.L45: 531 .align 2 532.L44: 533 .word .LANCHOR17 534 .word .LANCHOR37 535 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 536 .section .text.FtlBbtInfoPrint,"ax",%progbits 537 .align 1 538 .global FtlBbtInfoPrint 539 .syntax unified 540 .thumb 541 .thumb_func 542 .fpu softvfp 543 .type FtlBbtInfoPrint, %function 544FtlBbtInfoPrint: 545 @ args = 0, pretend = 0, frame = 0 546 @ frame_needed = 0, uses_anonymous_args = 0 547 @ link register save eliminated. 548 bx lr 549 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 550 .section .text.FtlBbtCalcTotleCnt,"ax",%progbits 551 .align 1 552 .global FtlBbtCalcTotleCnt 553 .syntax unified 554 .thumb 555 .thumb_func 556 .fpu softvfp 557 .type FtlBbtCalcTotleCnt, %function 558FtlBbtCalcTotleCnt: 559 @ args = 0, pretend = 0, frame = 0 560 @ frame_needed = 0, uses_anonymous_args = 0 561 ldr r3, .L54 562 ldr r2, .L54+4 563 push {r4, r5, r6, lr} 564 movs r5, #0 565 ldrh r3, [r3] 566 mov r4, r5 567 ldrh r6, [r2] 568 muls r6, r3, r6 569.L48: 570 uxth r0, r5 571 cmp r0, r6 572 blt .L50 573 mov r0, r4 574 pop {r4, r5, r6, pc} 575.L50: 576 bl FtlBbmIsBadBlock 577 cbz r0, .L49 578 adds r4, r4, #1 579 uxth r4, r4 580.L49: 581 adds r5, r5, #1 582 b .L48 583.L55: 584 .align 2 585.L54: 586 .word .LANCHOR17 587 .word .LANCHOR10 588 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt 589 .section .text.V2P_block,"ax",%progbits 590 .align 1 591 .global V2P_block 592 .syntax unified 593 .thumb 594 .thumb_func 595 .fpu softvfp 596 .type V2P_block, %function 597V2P_block: 598 @ args = 0, pretend = 0, frame = 0 599 @ frame_needed = 0, uses_anonymous_args = 0 600 push {r3, r4, r5, r6, r7, lr} 601 mov r5, r1 602 ldr r3, .L57 603 mov r7, r0 604 ldrh r6, [r3] 605 mov r1, r6 606 bl __aeabi_uidiv 607 ldr r3, .L57+4 608 smulbb r5, r6, r5 609 mov r1, r6 610 ldrh r4, [r3] 611 smulbb r4, r4, r0 612 mov r0, r7 613 bl __aeabi_uidivmod 614 adds r0, r5, r1 615 add r0, r0, r4 616 uxth r0, r0 617 pop {r3, r4, r5, r6, r7, pc} 618.L58: 619 .align 2 620.L57: 621 .word .LANCHOR11 622 .word .LANCHOR17 623 .size V2P_block, .-V2P_block 624 .section .text.P2V_plane,"ax",%progbits 625 .align 1 626 .global P2V_plane 627 .syntax unified 628 .thumb 629 .thumb_func 630 .fpu softvfp 631 .type P2V_plane, %function 632P2V_plane: 633 @ args = 0, pretend = 0, frame = 0 634 @ frame_needed = 0, uses_anonymous_args = 0 635 ldr r3, .L60 636 push {r4, r5, r6, lr} 637 mov r6, r0 638 ldrh r5, [r3] 639 ldr r3, .L60+4 640 ldrh r1, [r3] 641 bl __aeabi_uidiv 642 smulbb r4, r0, r5 643 mov r1, r5 644 mov r0, r6 645 bl __aeabi_uidivmod 646 add r1, r1, r4 647 uxth r0, r1 648 pop {r4, r5, r6, pc} 649.L61: 650 .align 2 651.L60: 652 .word .LANCHOR11 653 .word .LANCHOR17 654 .size P2V_plane, .-P2V_plane 655 .section .text.P2V_block_in_plane,"ax",%progbits 656 .align 1 657 .global P2V_block_in_plane 658 .syntax unified 659 .thumb 660 .thumb_func 661 .fpu softvfp 662 .type P2V_block_in_plane, %function 663P2V_block_in_plane: 664 @ args = 0, pretend = 0, frame = 0 665 @ frame_needed = 0, uses_anonymous_args = 0 666 push {r3, lr} 667 ldr r3, .L63 668 ldrh r1, [r3] 669 bl __aeabi_uidivmod 670 ldr r3, .L63+4 671 uxth r0, r1 672 ldrh r1, [r3] 673 bl __aeabi_uidiv 674 uxth r0, r0 675 pop {r3, pc} 676.L64: 677 .align 2 678.L63: 679 .word .LANCHOR17 680 .word .LANCHOR11 681 .size P2V_block_in_plane, .-P2V_block_in_plane 682 .section .text.ftl_cmp_data_ver,"ax",%progbits 683 .align 1 684 .global ftl_cmp_data_ver 685 .syntax unified 686 .thumb 687 .thumb_func 688 .fpu softvfp 689 .type ftl_cmp_data_ver, %function 690ftl_cmp_data_ver: 691 @ args = 0, pretend = 0, frame = 0 692 @ frame_needed = 0, uses_anonymous_args = 0 693 @ link register save eliminated. 694 cmp r0, r1 695 bls .L66 696 subs r0, r0, r1 697 cmp r0, #-2147483648 698 ite hi 699 movhi r0, #0 700 movls r0, #1 701 bx lr 702.L66: 703 subs r0, r1, r0 704 cmp r0, #-2147483648 705 ite ls 706 movls r0, #0 707 movhi r0, #1 708 bx lr 709 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 710 .section .text.FtlFreeSysBlkQueueEmpty,"ax",%progbits 711 .align 1 712 .global FtlFreeSysBlkQueueEmpty 713 .syntax unified 714 .thumb 715 .thumb_func 716 .fpu softvfp 717 .type FtlFreeSysBlkQueueEmpty, %function 718FtlFreeSysBlkQueueEmpty: 719 @ args = 0, pretend = 0, frame = 0 720 @ frame_needed = 0, uses_anonymous_args = 0 721 @ link register save eliminated. 722 ldr r3, .L69 723 ldrh r0, [r3, #6] 724 clz r0, r0 725 lsrs r0, r0, #5 726 bx lr 727.L70: 728 .align 2 729.L69: 730 .word .LANCHOR38 731 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 732 .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits 733 .align 1 734 .global FtlFreeSysBlkQueueFull 735 .syntax unified 736 .thumb 737 .thumb_func 738 .fpu softvfp 739 .type FtlFreeSysBlkQueueFull, %function 740FtlFreeSysBlkQueueFull: 741 @ args = 0, pretend = 0, frame = 0 742 @ frame_needed = 0, uses_anonymous_args = 0 743 @ link register save eliminated. 744 ldr r3, .L72 745 ldrh r0, [r3, #6] 746 sub r3, r0, #1024 747 rsbs r0, r3, #0 748 adcs r0, r0, r3 749 bx lr 750.L73: 751 .align 2 752.L72: 753 .word .LANCHOR38 754 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 755 .section .text.FtlFreeSysBLkSort,"ax",%progbits 756 .align 1 757 .global FtlFreeSysBLkSort 758 .syntax unified 759 .thumb 760 .thumb_func 761 .fpu softvfp 762 .type FtlFreeSysBLkSort, %function 763FtlFreeSysBLkSort: 764 @ args = 0, pretend = 0, frame = 0 765 @ frame_needed = 0, uses_anonymous_args = 0 766 ldr r3, .L83 767 push {r4, r5, r6, lr} 768 ldrh r2, [r3, #6] 769 cbz r2, .L74 770 ldr r2, .L83+4 771 movs r6, #0 772 ldrh r1, [r3, #2] 773 mov r5, r6 774 ldrh r4, [r2, #28] 775 ldrh r2, [r3, #4] 776 and r4, r4, #31 777.L76: 778 uxth r0, r6 779 adds r6, r6, #1 780 cmp r4, r0 781 bgt .L77 782 cbz r5, .L74 783 strh r1, [r3, #2] @ movhi 784 strh r2, [r3, #4] @ movhi 785.L74: 786 pop {r4, r5, r6, pc} 787.L77: 788 adds r0, r1, #4 789 adds r1, r1, #1 790 ldrh r5, [r3, r0, lsl #1] 791 adds r0, r2, #4 792 ubfx r1, r1, #0, #10 793 strh r5, [r3, r0, lsl #1] @ movhi 794 movs r5, #1 795 add r2, r2, r5 796 ubfx r2, r2, #0, #10 797 b .L76 798.L84: 799 .align 2 800.L83: 801 .word .LANCHOR38 802 .word .LANCHOR39 803 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 804 .section .text.IsInFreeQueue,"ax",%progbits 805 .align 1 806 .global IsInFreeQueue 807 .syntax unified 808 .thumb 809 .thumb_func 810 .fpu softvfp 811 .type IsInFreeQueue, %function 812IsInFreeQueue: 813 @ args = 0, pretend = 0, frame = 0 814 @ frame_needed = 0, uses_anonymous_args = 0 815 ldr r3, .L91 816 push {r4, r5, lr} 817 ldrh r4, [r3, #6] 818 cmp r4, #1024 819 beq .L89 820 ldrh r5, [r3, #2] 821 movs r1, #0 822.L87: 823 cmp r1, r4 824 bcc .L88 825.L89: 826 movs r0, #0 827 pop {r4, r5, pc} 828.L88: 829 adds r2, r1, r5 830 ubfx r2, r2, #0, #10 831 adds r2, r2, #4 832 ldrh r2, [r3, r2, lsl #1] 833 cmp r2, r0 834 beq .L90 835 adds r1, r1, #1 836 b .L87 837.L90: 838 movs r0, #1 839 pop {r4, r5, pc} 840.L92: 841 .align 2 842.L91: 843 .word .LANCHOR38 844 .size IsInFreeQueue, .-IsInFreeQueue 845 .section .text.insert_data_list,"ax",%progbits 846 .align 1 847 .global insert_data_list 848 .syntax unified 849 .thumb 850 .thumb_func 851 .fpu softvfp 852 .type insert_data_list, %function 853insert_data_list: 854 @ args = 0, pretend = 0, frame = 16 855 @ frame_needed = 0, uses_anonymous_args = 0 856 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 857 ldr r3, .L109 858 ldrh lr, [r3] 859 cmp lr, r0 860 bls .L95 861 ldr r3, .L109+4 862 movs r5, #6 863 ldr r4, [r3] 864 mul r3, r5, r0 865 str r3, [sp, #4] 866 adds r1, r4, r3 867 ldr r2, [sp, #4] 868 movw r3, #65535 869 strh r3, [r1, #2] @ movhi 870 strh r3, [r4, r2] @ movhi 871 ldr r3, .L109+8 872 ldr ip, [r3] 873 cmp ip, #0 874 bne .L96 875.L108: 876 str r1, [r3] 877.L95: 878 movs r0, #0 879 add sp, sp, #16 880 @ sp needed 881 pop {r4, r5, r6, r7, r8, r10, fp, pc} 882.L96: 883 ldr r3, .L109+12 884 lsls r2, r0, #1 885 ldr r3, [r3] 886 str r3, [sp, #8] 887 ldrh r6, [r3, r0, lsl #1] 888 ldrh r3, [r1, #4] 889 cbz r3, .L106 890 mul fp, r3, r6 891.L97: 892 sub r3, ip, r4 893 asrs r6, r3, #1 894 ldr r3, .L109+16 895 muls r3, r6, r3 896 ldr r6, .L109+20 897 ldr r8, [r6] 898 movs r6, #0 899 uxth r3, r3 900 add r2, r8, r2 901 str r2, [sp, #12] 902 mov r2, ip 903.L104: 904 adds r6, r6, #1 905 uxth r6, r6 906 cmp lr, r6 907 bcc .L95 908 cmp r3, r0 909 beq .L95 910 ldr r7, [sp, #8] 911 lsl r10, r3, #1 912 ldrh r7, [r7, r3, lsl #1] 913 mov r5, r7 914 ldrh r7, [r2, #4] 915 cbz r7, .L107 916 muls r7, r5, r7 917.L99: 918 cmp fp, r7 919 bne .L100 920 ldr r5, [sp, #12] 921 ldrh r10, [r8, r10] 922 ldrh r7, [r5] 923 cmp r10, r7 924 bcc .L102 925.L101: 926 ldr r5, [sp, #4] 927 cmp r2, ip 928 strh r3, [r4, r5] @ movhi 929 ldrh r3, [r2, #2] 930 strh r3, [r1, #2] @ movhi 931 bne .L105 932 strh r0, [r2, #2] @ movhi 933 ldr r3, .L109+8 934 b .L108 935.L106: 936 mov fp, #-1 937 b .L97 938.L107: 939 mov r7, #-1 940 b .L99 941.L100: 942 bcc .L101 943.L102: 944 ldrh r7, [r2] 945 movw r5, #65535 946 cmp r7, r5 947 bne .L103 948 strh r3, [r1, #2] @ movhi 949 strh r0, [r2] @ movhi 950 ldr r3, .L109+24 951 b .L108 952.L103: 953 movs r3, #6 954 mla r2, r3, r7, r4 955 mov r3, r7 956 b .L104 957.L105: 958 ldrh r1, [r2, #2] 959 movs r3, #6 960 muls r3, r1, r3 961 strh r0, [r4, r3] @ movhi 962 strh r0, [r2, #2] @ movhi 963 b .L95 964.L110: 965 .align 2 966.L109: 967 .word .LANCHOR5 968 .word .LANCHOR40 969 .word .LANCHOR41 970 .word .LANCHOR42 971 .word -1431655765 972 .word .LANCHOR43 973 .word .LANCHOR44 974 .size insert_data_list, .-insert_data_list 975 .section .text.INSERT_DATA_LIST,"ax",%progbits 976 .align 1 977 .global INSERT_DATA_LIST 978 .syntax unified 979 .thumb 980 .thumb_func 981 .fpu softvfp 982 .type INSERT_DATA_LIST, %function 983INSERT_DATA_LIST: 984 @ args = 0, pretend = 0, frame = 0 985 @ frame_needed = 0, uses_anonymous_args = 0 986 push {r3, lr} 987 bl insert_data_list 988 ldr r2, .L113 989 ldrh r3, [r2] 990 adds r3, r3, #1 991 uxth r3, r3 992 strh r3, [r2] @ movhi 993 ldr r2, .L113+4 994 ldrh r2, [r2] 995 cmp r2, r3 996 bcs .L111 997 movs r2, #214 998 ldr r1, .L113+8 999 ldr r0, .L113+12 1000 pop {r3, lr} 1001 b printf 1002.L111: 1003 pop {r3, pc} 1004.L114: 1005 .align 2 1006.L113: 1007 .word .LANCHOR45 1008 .word .LANCHOR5 1009 .word .LANCHOR46 1010 .word .LC1 1011 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 1012 .section .text.insert_free_list,"ax",%progbits 1013 .align 1 1014 .global insert_free_list 1015 .syntax unified 1016 .thumb 1017 .thumb_func 1018 .fpu softvfp 1019 .type insert_free_list, %function 1020insert_free_list: 1021 @ args = 0, pretend = 0, frame = 0 1022 @ frame_needed = 0, uses_anonymous_args = 0 1023 movw r1, #65535 1024 push {r4, r5, r6, r7, r8, r10, fp, lr} 1025 cmp r0, r1 1026 beq .L116 1027 ldr r3, .L122 1028 mov r10, #6 1029 mul r7, r10, r0 1030 ldr r4, [r3] 1031 ldr r3, .L122+4 1032 adds r5, r4, r7 1033 ldr r6, [r3] 1034 mov lr, r3 1035 strh r1, [r5, #2] @ movhi 1036 strh r1, [r4, r7] @ movhi 1037 cbnz r6, .L117 1038 str r5, [r3] 1039.L116: 1040 movs r0, #0 1041 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1042.L117: 1043 ldr r3, .L122+8 1044 subs r2, r6, r4 1045 mov fp, r1 1046 ldr ip, [r3] 1047 asrs r3, r2, #1 1048 ldr r2, .L122+12 1049 ldrh r8, [ip, r0, lsl #1] 1050 muls r2, r3, r2 1051 mov r3, r6 1052 uxth r2, r2 1053.L120: 1054 ldrh r1, [ip, r2, lsl #1] 1055 cmp r1, r8 1056 bcs .L118 1057 ldrh r1, [r3] 1058 cmp r1, fp 1059 bne .L119 1060 strh r2, [r5, #2] @ movhi 1061 strh r0, [r3] @ movhi 1062 b .L116 1063.L119: 1064 mla r3, r10, r1, r4 1065 mov r2, r1 1066 b .L120 1067.L118: 1068 ldrh r1, [r3, #2] 1069 cmp r3, r6 1070 strh r1, [r5, #2] @ movhi 1071 it ne 1072 ldrhne r1, [r3, #2] 1073 strh r2, [r4, r7] @ movhi 1074 iteet ne 1075 movne r2, #6 1076 strheq r0, [r3, #2] @ movhi 1077 streq r5, [lr] 1078 mulne r2, r2, r1 1079 itt ne 1080 strhne r0, [r4, r2] @ movhi 1081 strhne r0, [r3, #2] @ movhi 1082 b .L116 1083.L123: 1084 .align 2 1085.L122: 1086 .word .LANCHOR40 1087 .word .LANCHOR47 1088 .word .LANCHOR43 1089 .word -1431655765 1090 .size insert_free_list, .-insert_free_list 1091 .section .text.INSERT_FREE_LIST,"ax",%progbits 1092 .align 1 1093 .global INSERT_FREE_LIST 1094 .syntax unified 1095 .thumb 1096 .thumb_func 1097 .fpu softvfp 1098 .type INSERT_FREE_LIST, %function 1099INSERT_FREE_LIST: 1100 @ args = 0, pretend = 0, frame = 0 1101 @ frame_needed = 0, uses_anonymous_args = 0 1102 push {r3, lr} 1103 bl insert_free_list 1104 ldr r2, .L126 1105 ldrh r3, [r2] 1106 adds r3, r3, #1 1107 uxth r3, r3 1108 strh r3, [r2] @ movhi 1109 ldr r2, .L126+4 1110 ldrh r2, [r2] 1111 cmp r2, r3 1112 bcs .L124 1113 movs r2, #207 1114 ldr r1, .L126+8 1115 ldr r0, .L126+12 1116 pop {r3, lr} 1117 b printf 1118.L124: 1119 pop {r3, pc} 1120.L127: 1121 .align 2 1122.L126: 1123 .word .LANCHOR48 1124 .word .LANCHOR5 1125 .word .LANCHOR49 1126 .word .LC1 1127 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 1128 .section .text.List_remove_node,"ax",%progbits 1129 .align 1 1130 .global List_remove_node 1131 .syntax unified 1132 .thumb 1133 .thumb_func 1134 .fpu softvfp 1135 .type List_remove_node, %function 1136List_remove_node: 1137 @ args = 0, pretend = 0, frame = 0 1138 @ frame_needed = 0, uses_anonymous_args = 0 1139 push {r4, r5, r6, r7, r8, lr} 1140 movs r6, #6 1141 ldr r5, .L134 1142 muls r6, r1, r6 1143 movw r3, #65535 1144 mov r8, r0 1145 ldr r7, [r5] 1146 adds r4, r7, r6 1147 ldrh r2, [r4, #2] 1148 cmp r2, r3 1149 bne .L129 1150 ldr r3, [r0] 1151 cmp r4, r3 1152 beq .L129 1153 mov r2, #372 1154 ldr r1, .L134+4 1155 ldr r0, .L134+8 1156 bl printf 1157.L129: 1158 ldr r3, [r8] 1159 movw r1, #65535 1160 cmp r4, r3 1161 ldrh r3, [r7, r6] 1162 bne .L130 1163 cmp r3, r1 1164 ittee ne 1165 ldrne r0, [r5] 1166 movne r2, #6 1167 moveq r3, #0 1168 streq r3, [r8] 1169 ittt ne 1170 mlane r3, r2, r3, r0 1171 strne r3, [r8] 1172 strhne r1, [r3, #2] @ movhi 1173.L132: 1174 movw r3, #65535 1175 movs r0, #0 1176 strh r3, [r7, r6] @ movhi 1177 strh r3, [r4, #2] @ movhi 1178 pop {r4, r5, r6, r7, r8, pc} 1179.L130: 1180 cmp r3, r1 1181 ldrh r1, [r4, #2] 1182 bne .L133 1183 cmp r1, r3 1184 beq .L132 1185 movs r2, #6 1186 ldr r0, [r5] 1187 muls r1, r2, r1 1188 strh r3, [r0, r1] @ movhi 1189 b .L132 1190.L133: 1191 ldr r0, [r5] 1192 movs r2, #6 1193 mla r5, r2, r3, r0 1194 strh r1, [r5, #2] @ movhi 1195 ldrh r1, [r4, #2] 1196 muls r2, r1, r2 1197 strh r3, [r0, r2] @ movhi 1198 b .L132 1199.L135: 1200 .align 2 1201.L134: 1202 .word .LANCHOR40 1203 .word .LANCHOR50 1204 .word .LC1 1205 .size List_remove_node, .-List_remove_node 1206 .section .text.List_pop_index_node,"ax",%progbits 1207 .align 1 1208 .global List_pop_index_node 1209 .syntax unified 1210 .thumb 1211 .thumb_func 1212 .fpu softvfp 1213 .type List_pop_index_node, %function 1214List_pop_index_node: 1215 @ args = 0, pretend = 0, frame = 0 1216 @ frame_needed = 0, uses_anonymous_args = 0 1217 ldr r3, [r0] 1218 push {r4, r5, r6, lr} 1219 cbz r3, .L142 1220 ldr r2, .L143 1221 movw r5, #65535 1222 movs r6, #6 1223 ldr r2, [r2] 1224.L138: 1225 cbnz r1, .L139 1226.L141: 1227 ldr r4, .L143+4 1228 subs r3, r3, r2 1229 asrs r3, r3, #1 1230 muls r4, r3, r4 1231 uxth r1, r4 1232 bl List_remove_node 1233 uxth r0, r4 1234 pop {r4, r5, r6, pc} 1235.L139: 1236 ldrh r4, [r3] 1237 cmp r4, r5 1238 beq .L141 1239 subs r1, r1, #1 1240 mla r3, r6, r4, r2 1241 uxth r1, r1 1242 b .L138 1243.L142: 1244 movw r0, #65535 1245 pop {r4, r5, r6, pc} 1246.L144: 1247 .align 2 1248.L143: 1249 .word .LANCHOR40 1250 .word -1431655765 1251 .size List_pop_index_node, .-List_pop_index_node 1252 .section .text.List_pop_head_node,"ax",%progbits 1253 .align 1 1254 .global List_pop_head_node 1255 .syntax unified 1256 .thumb 1257 .thumb_func 1258 .fpu softvfp 1259 .type List_pop_head_node, %function 1260List_pop_head_node: 1261 @ args = 0, pretend = 0, frame = 0 1262 @ frame_needed = 0, uses_anonymous_args = 0 1263 @ link register save eliminated. 1264 movs r1, #0 1265 b List_pop_index_node 1266 .size List_pop_head_node, .-List_pop_head_node 1267 .section .text.List_get_gc_head_node,"ax",%progbits 1268 .align 1 1269 .global List_get_gc_head_node 1270 .syntax unified 1271 .thumb 1272 .thumb_func 1273 .fpu softvfp 1274 .type List_get_gc_head_node, %function 1275List_get_gc_head_node: 1276 @ args = 0, pretend = 0, frame = 0 1277 @ frame_needed = 0, uses_anonymous_args = 0 1278 ldr r3, .L152 1279 push {r4, lr} 1280 ldr r3, [r3] 1281 cbz r3, .L151 1282 ldr r2, .L152+4 1283 movs r4, #6 1284 ldr r1, [r2] 1285 movw r2, #65535 1286.L148: 1287 cbz r0, .L149 1288 ldrh r3, [r3] 1289 cmp r3, r2 1290 bne .L150 1291.L151: 1292 movw r0, #65535 1293 pop {r4, pc} 1294.L150: 1295 subs r0, r0, #1 1296 mla r3, r4, r3, r1 1297 uxth r0, r0 1298 b .L148 1299.L149: 1300 ldr r0, .L152+8 1301 subs r3, r3, r1 1302 asrs r3, r3, #1 1303 muls r3, r0, r3 1304 uxth r0, r3 1305 pop {r4, pc} 1306.L153: 1307 .align 2 1308.L152: 1309 .word .LANCHOR41 1310 .word .LANCHOR40 1311 .word -1431655765 1312 .size List_get_gc_head_node, .-List_get_gc_head_node 1313 .section .text.List_update_data_list,"ax",%progbits 1314 .align 1 1315 .global List_update_data_list 1316 .syntax unified 1317 .thumb 1318 .thumb_func 1319 .fpu softvfp 1320 .type List_update_data_list, %function 1321List_update_data_list: 1322 @ args = 0, pretend = 0, frame = 0 1323 @ frame_needed = 0, uses_anonymous_args = 0 1324 ldr r3, .L165 1325 push {r4, r5, r6, r7, r8, r10, fp, lr} 1326 mov r4, r0 1327 ldrh r3, [r3] 1328 cmp r3, r0 1329 beq .L156 1330 ldr r3, .L165+4 1331 ldrh r3, [r3] 1332 cmp r3, r0 1333 beq .L156 1334 ldr r3, .L165+8 1335 ldrh r3, [r3] 1336 cmp r3, r0 1337 beq .L156 1338 ldr r7, .L165+12 1339 movs r6, #6 1340 ldr r3, .L165+16 1341 muls r6, r0, r6 1342 ldr fp, [r7] 1343 ldr r3, [r3] 1344 add r10, fp, r6 1345 cmp r10, r3 1346 beq .L156 1347 ldr r3, .L165+20 1348 ldrh r5, [r10, #4] 1349 ldr r2, [r3] 1350 mov r8, r3 1351 ldrh r2, [r2, r0, lsl #1] 1352 cmp r5, #0 1353 beq .L163 1354 muls r5, r2, r5 1355.L158: 1356 ldrh r3, [r10, #2] 1357 movw r2, #65535 1358 cmp r3, r2 1359 bne .L159 1360 ldrh r2, [fp, r6] 1361 cmp r2, r3 1362 bne .L159 1363 movw r2, #463 1364 ldr r1, .L165+24 1365 ldr r0, .L165+28 1366 bl printf 1367.L159: 1368 ldrh r3, [r10, #2] 1369 movw r2, #65535 1370 cmp r3, r2 1371 bne .L160 1372 ldrh r2, [fp, r6] 1373 cmp r2, r3 1374 beq .L156 1375.L160: 1376 movs r2, #6 1377 muls r2, r3, r2 1378 ldr r3, .L165+32 1379 asrs r1, r2, #1 1380 muls r3, r1, r3 1381 ldr r1, [r8] 1382 ldrh r0, [r1, r3, lsl #1] 1383 ldr r1, [r7] 1384 add r2, r2, r1 1385 ldrh r3, [r2, #4] 1386 cbz r3, .L164 1387 muls r3, r0, r3 1388.L161: 1389 cmp r5, r3 1390 bcs .L156 1391 ldr r5, .L165+36 1392 mov r1, r4 1393 ldr r0, .L165+16 1394 bl List_remove_node 1395 ldrh r3, [r5] 1396 cbnz r3, .L162 1397 mov r2, #474 1398 ldr r1, .L165+24 1399 ldr r0, .L165+28 1400 bl printf 1401.L162: 1402 ldrh r3, [r5] 1403 mov r0, r4 1404 subs r3, r3, #1 1405 strh r3, [r5] @ movhi 1406 bl INSERT_DATA_LIST 1407.L156: 1408 movs r0, #0 1409 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1410.L163: 1411 mov r5, #-1 1412 b .L158 1413.L164: 1414 mov r3, #-1 1415 b .L161 1416.L166: 1417 .align 2 1418.L165: 1419 .word .LANCHOR51 1420 .word .LANCHOR52 1421 .word .LANCHOR53 1422 .word .LANCHOR40 1423 .word .LANCHOR41 1424 .word .LANCHOR42 1425 .word .LANCHOR54 1426 .word .LC1 1427 .word -1431655765 1428 .word .LANCHOR45 1429 .size List_update_data_list, .-List_update_data_list 1430 .section .text.select_l2p_ram_region,"ax",%progbits 1431 .align 1 1432 .global select_l2p_ram_region 1433 .syntax unified 1434 .thumb 1435 .thumb_func 1436 .fpu softvfp 1437 .type select_l2p_ram_region, %function 1438select_l2p_ram_region: 1439 @ args = 0, pretend = 0, frame = 0 1440 @ frame_needed = 0, uses_anonymous_args = 0 1441 push {r3, r4, r5, r6, r7, lr} 1442 movs r1, #0 1443 ldr r3, .L177 1444 movs r0, #12 1445 movw r5, #65535 1446 ldrh r2, [r3] 1447 ldr r3, .L177+4 1448 ldr r3, [r3] 1449.L168: 1450 uxth r4, r1 1451 cmp r4, r2 1452 bcc .L170 1453 mov r4, r2 1454 movs r1, #0 1455 mov r6, #-2147483648 1456 movs r7, #12 1457.L171: 1458 uxth r5, r1 1459 cmp r5, r2 1460 bcc .L173 1461 cmp r4, r2 1462 bcc .L169 1463 ldr r1, .L177+8 1464 mov r4, r2 1465 mov r0, #-1 1466 ldrh r7, [r1] 1467 movs r1, #0 1468.L174: 1469 uxth r5, r1 1470 cmp r5, r2 1471 bcc .L176 1472 cmp r4, r2 1473 bcc .L169 1474 movw r2, #787 1475 ldr r1, .L177+12 1476 ldr r0, .L177+16 1477 bl printf 1478 b .L169 1479.L170: 1480 adds r1, r1, #1 1481 mla r6, r0, r1, r3 1482 ldrh r6, [r6, #-12] 1483 cmp r6, r5 1484 bne .L168 1485.L169: 1486 mov r0, r4 1487 pop {r3, r4, r5, r6, r7, pc} 1488.L173: 1489 mla r0, r7, r1, r3 1490 ldr r0, [r0, #4] 1491 cmp r0, #0 1492 blt .L172 1493 cmp r6, r0 1494 itt hi 1495 movhi r6, r0 1496 movhi r4, r5 1497.L172: 1498 adds r1, r1, #1 1499 b .L171 1500.L176: 1501 ldr r6, [r3, #4] 1502 cmp r0, r6 1503 bls .L175 1504 ldrh ip, [r3] 1505 cmp ip, r7 1506 itt ne 1507 movne r0, r6 1508 movne r4, r5 1509.L175: 1510 adds r1, r1, #1 1511 adds r3, r3, #12 1512 b .L174 1513.L178: 1514 .align 2 1515.L177: 1516 .word .LANCHOR33 1517 .word .LANCHOR55 1518 .word .LANCHOR56 1519 .word .LANCHOR57 1520 .word .LC1 1521 .size select_l2p_ram_region, .-select_l2p_ram_region 1522 .section .text.FtlUpdateVaildLpn,"ax",%progbits 1523 .align 1 1524 .global FtlUpdateVaildLpn 1525 .syntax unified 1526 .thumb 1527 .thumb_func 1528 .fpu softvfp 1529 .type FtlUpdateVaildLpn, %function 1530FtlUpdateVaildLpn: 1531 @ args = 0, pretend = 0, frame = 0 1532 @ frame_needed = 0, uses_anonymous_args = 0 1533 ldr r2, .L189 1534 push {r4, r5, r6, lr} 1535 mov r1, r2 1536 ldrh r3, [r2] 1537 cmp r3, #4 1538 bhi .L180 1539 cbnz r0, .L180 1540 adds r3, r3, #1 1541 strh r3, [r2] @ movhi 1542 pop {r4, r5, r6, pc} 1543.L180: 1544 movs r3, #0 1545 ldr r0, .L189+4 1546 strh r3, [r1] @ movhi 1547 movw r6, #65535 1548 ldr r1, .L189+8 1549 ldrh r4, [r0] 1550 mov r0, r3 1551 ldr r2, .L189+12 1552 ldr r1, [r1] 1553 str r3, [r2] 1554 add r4, r1, r4, lsl #1 1555.L181: 1556 cmp r1, r4 1557 bne .L183 1558 cbz r3, .L179 1559 str r0, [r2] 1560.L179: 1561 pop {r4, r5, r6, pc} 1562.L183: 1563 ldrh r5, [r1], #2 1564 cmp r5, r6 1565 itt ne 1566 addne r0, r0, r5 1567 movne r3, #1 1568 b .L181 1569.L190: 1570 .align 2 1571.L189: 1572 .word .LANCHOR58 1573 .word .LANCHOR5 1574 .word .LANCHOR42 1575 .word .LANCHOR59 1576 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 1577 .section .text.ftl_set_blk_mode,"ax",%progbits 1578 .align 1 1579 .global ftl_set_blk_mode 1580 .syntax unified 1581 .thumb 1582 .thumb_func 1583 .fpu softvfp 1584 .type ftl_set_blk_mode, %function 1585ftl_set_blk_mode: 1586 @ args = 0, pretend = 0, frame = 0 1587 @ frame_needed = 0, uses_anonymous_args = 0 1588 @ link register save eliminated. 1589 mov r3, r0 1590 cbz r1, .L192 1591 b ftl_set_blk_mode.part.6 1592.L192: 1593 ldr r2, .L193 1594 lsrs r0, r0, #5 1595 and r3, r3, #31 1596 ldr r1, [r2] 1597 movs r2, #1 1598 lsl r3, r2, r3 1599 ldr r2, [r1, r0, lsl #2] 1600 bic r2, r2, r3 1601 str r2, [r1, r0, lsl #2] 1602 bx lr 1603.L194: 1604 .align 2 1605.L193: 1606 .word .LANCHOR1 1607 .size ftl_set_blk_mode, .-ftl_set_blk_mode 1608 .section .text.ftl_get_blk_mode,"ax",%progbits 1609 .align 1 1610 .global ftl_get_blk_mode 1611 .syntax unified 1612 .thumb 1613 .thumb_func 1614 .fpu softvfp 1615 .type ftl_get_blk_mode, %function 1616ftl_get_blk_mode: 1617 @ args = 0, pretend = 0, frame = 0 1618 @ frame_needed = 0, uses_anonymous_args = 0 1619 @ link register save eliminated. 1620 ldr r3, .L196 1621 lsrs r2, r0, #5 1622 and r0, r0, #31 1623 ldr r3, [r3] 1624 ldr r3, [r3, r2, lsl #2] 1625 lsr r0, r3, r0 1626 and r0, r0, #1 1627 bx lr 1628.L197: 1629 .align 2 1630.L196: 1631 .word .LANCHOR1 1632 .size ftl_get_blk_mode, .-ftl_get_blk_mode 1633 .section .text.ftl_sb_update_avl_pages,"ax",%progbits 1634 .align 1 1635 .global ftl_sb_update_avl_pages 1636 .syntax unified 1637 .thumb 1638 .thumb_func 1639 .fpu softvfp 1640 .type ftl_sb_update_avl_pages, %function 1641ftl_sb_update_avl_pages: 1642 @ args = 0, pretend = 0, frame = 0 1643 @ frame_needed = 0, uses_anonymous_args = 0 1644 movs r3, #0 1645 push {r4, r5, r6, lr} 1646 strh r3, [r0, #4] @ movhi 1647 movw r6, #65535 1648 ldr r3, .L205 1649 ldrh r4, [r3] 1650 add r3, r0, r2, lsl #1 1651 adds r3, r3, #14 1652.L199: 1653 cmp r2, r4 1654 bcc .L201 1655 ldr r3, .L205+4 1656 add r5, r0, #16 1657 movw r6, #65535 1658 ldrh r3, [r3] 1659 subs r3, r3, #1 1660 subs r1, r3, r1 1661 movs r3, #0 1662 uxth r1, r1 1663.L202: 1664 uxth r2, r3 1665 cmp r4, r2 1666 bhi .L204 1667 pop {r4, r5, r6, pc} 1668.L201: 1669 ldrh r5, [r3, #2]! 1670 adds r2, r2, #1 1671 uxth r2, r2 1672 cmp r5, r6 1673 ittt ne 1674 ldrhne r5, [r0, #4] 1675 addne r5, r5, #1 1676 strhne r5, [r0, #4] @ movhi 1677 b .L199 1678.L204: 1679 ldrh r2, [r5], #2 1680 adds r3, r3, #1 1681 cmp r2, r6 1682 ittt ne 1683 ldrhne r2, [r0, #4] 1684 addne r2, r2, r1 1685 strhne r2, [r0, #4] @ movhi 1686 b .L202 1687.L206: 1688 .align 2 1689.L205: 1690 .word .LANCHOR3 1691 .word .LANCHOR19 1692 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 1693 .section .text.FtlSlcSuperblockCheck,"ax",%progbits 1694 .align 1 1695 .global FtlSlcSuperblockCheck 1696 .syntax unified 1697 .thumb 1698 .thumb_func 1699 .fpu softvfp 1700 .type FtlSlcSuperblockCheck, %function 1701FtlSlcSuperblockCheck: 1702 @ args = 0, pretend = 0, frame = 0 1703 @ frame_needed = 0, uses_anonymous_args = 0 1704 ldrh r3, [r0, #4] 1705 push {r4, r5, lr} 1706 cbz r3, .L207 1707 ldrh r2, [r0] 1708 movw r3, #65535 1709 cmp r2, r3 1710 beq .L207 1711 ldrb r2, [r0, #6] @ zero_extendqisi2 1712 movs r5, #0 1713 adds r2, r2, #8 1714 ldrh r1, [r0, r2, lsl #1] 1715 ldr r2, .L213 1716 ldrh r4, [r2] 1717 mov r2, r3 1718.L210: 1719 cmp r1, r2 1720 beq .L212 1721.L207: 1722 pop {r4, r5, pc} 1723.L212: 1724 ldrb r3, [r0, #6] @ zero_extendqisi2 1725 adds r3, r3, #1 1726 uxtb r3, r3 1727 cmp r3, r4 1728 strb r3, [r0, #6] 1729 itttt eq 1730 ldrheq r3, [r0, #2] 1731 strbeq r5, [r0, #6] 1732 addeq r3, r3, #1 1733 strheq r3, [r0, #2] @ movhi 1734 ldrb r3, [r0, #6] @ zero_extendqisi2 1735 adds r3, r3, #8 1736 ldrh r1, [r0, r3, lsl #1] 1737 b .L210 1738.L214: 1739 .align 2 1740.L213: 1741 .word .LANCHOR3 1742 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 1743 .section .text.make_superblock,"ax",%progbits 1744 .align 1 1745 .global make_superblock 1746 .syntax unified 1747 .thumb 1748 .thumb_func 1749 .fpu softvfp 1750 .type make_superblock, %function 1751make_superblock: 1752 @ args = 0, pretend = 0, frame = 0 1753 @ frame_needed = 0, uses_anonymous_args = 0 1754 ldr r3, .L220 1755 ldrh r2, [r0] 1756 push {r4, r5, r6, r7, r8, r10, fp, lr} 1757 mov r4, r0 1758 ldrh r3, [r3] 1759 cmp r2, r3 1760 bcc .L216 1761 movw r2, #2110 1762 ldr r1, .L220+4 1763 ldr r0, .L220+8 1764 bl printf 1765.L216: 1766 ldr r3, .L220+12 1767 add r6, r4, #16 1768 ldr r10, .L220+20 1769 movw r7, #65535 1770 movs r5, #0 1771 ldrh r8, [r3] 1772 strh r5, [r4, #4] @ movhi 1773 strb r5, [r4, #7] 1774.L217: 1775 uxth r3, r5 1776 cmp r8, r3 1777 bhi .L219 1778 ldr r2, .L220+16 1779 movs r0, #0 1780 ldrb r3, [r4, #7] @ zero_extendqisi2 1781 strb r0, [r4, #9] 1782 ldrh r2, [r2] 1783 smulbb r3, r3, r2 1784 strh r3, [r4, #4] @ movhi 1785 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1786.L219: 1787 ldrh r1, [r4] 1788 ldrb r0, [r10, r5] @ zero_extendqisi2 1789 bl V2P_block 1790 strh r7, [r6] @ movhi 1791 mov fp, r0 1792 bl FtlBbmIsBadBlock 1793 cbnz r0, .L218 1794 strh fp, [r6] @ movhi 1795 ldrb r3, [r4, #7] @ zero_extendqisi2 1796 adds r3, r3, #1 1797 strb r3, [r4, #7] 1798.L218: 1799 adds r5, r5, #1 1800 adds r6, r6, #2 1801 b .L217 1802.L221: 1803 .align 2 1804.L220: 1805 .word .LANCHOR5 1806 .word .LANCHOR60 1807 .word .LC1 1808 .word .LANCHOR3 1809 .word .LANCHOR19 1810 .word .LANCHOR13 1811 .size make_superblock, .-make_superblock 1812 .section .text.update_multiplier_value,"ax",%progbits 1813 .align 1 1814 .global update_multiplier_value 1815 .syntax unified 1816 .thumb 1817 .thumb_func 1818 .fpu softvfp 1819 .type update_multiplier_value, %function 1820update_multiplier_value: 1821 @ args = 0, pretend = 0, frame = 0 1822 @ frame_needed = 0, uses_anonymous_args = 0 1823 push {r3, r4, r5, r6, r7, r8, r10, lr} 1824 movs r5, #0 1825 ldr r3, .L228 1826 mov r6, r0 1827 mov r4, r5 1828 ldr r10, .L228+12 1829 ldrh r7, [r3] 1830 ldr r3, .L228+4 1831 ldrh r8, [r3] 1832.L223: 1833 uxth r3, r5 1834 cmp r7, r3 1835 bhi .L225 1836 cbz r4, .L227 1837 mov r1, r4 1838 mov r0, #32768 1839 bl __aeabi_idiv 1840.L226: 1841 ldr r3, .L228+8 1842 movs r2, #6 1843 ldr r3, [r3] 1844 mla r6, r2, r6, r3 1845 strh r0, [r6, #4] @ movhi 1846 movs r0, #0 1847 pop {r3, r4, r5, r6, r7, r8, r10, pc} 1848.L225: 1849 mov r1, r6 1850 ldrb r0, [r10, r5] @ zero_extendqisi2 1851 bl V2P_block 1852 bl FtlBbmIsBadBlock 1853 cbnz r0, .L224 1854 add r4, r4, r8 1855 uxth r4, r4 1856.L224: 1857 adds r5, r5, #1 1858 b .L223 1859.L227: 1860 mov r0, r4 1861 b .L226 1862.L229: 1863 .align 2 1864.L228: 1865 .word .LANCHOR3 1866 .word .LANCHOR19 1867 .word .LANCHOR40 1868 .word .LANCHOR13 1869 .size update_multiplier_value, .-update_multiplier_value 1870 .section .text.GetFreeBlockMinEraseCount,"ax",%progbits 1871 .align 1 1872 .global GetFreeBlockMinEraseCount 1873 .syntax unified 1874 .thumb 1875 .thumb_func 1876 .fpu softvfp 1877 .type GetFreeBlockMinEraseCount, %function 1878GetFreeBlockMinEraseCount: 1879 @ args = 0, pretend = 0, frame = 0 1880 @ frame_needed = 0, uses_anonymous_args = 0 1881 @ link register save eliminated. 1882 ldr r3, .L233 1883 ldr r0, [r3] 1884 cbz r0, .L231 1885 ldr r3, .L233+4 1886 ldr r3, [r3] 1887 subs r0, r0, r3 1888 ldr r3, .L233+8 1889 asrs r0, r0, #1 1890 muls r0, r3, r0 1891 ldr r3, .L233+12 1892 ldr r3, [r3] 1893 uxth r0, r0 1894 ldrh r0, [r3, r0, lsl #1] 1895.L231: 1896 bx lr 1897.L234: 1898 .align 2 1899.L233: 1900 .word .LANCHOR47 1901 .word .LANCHOR40 1902 .word -1431655765 1903 .word .LANCHOR43 1904 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 1905 .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits 1906 .align 1 1907 .global GetFreeBlockMaxEraseCount 1908 .syntax unified 1909 .thumb 1910 .thumb_func 1911 .fpu softvfp 1912 .type GetFreeBlockMaxEraseCount, %function 1913GetFreeBlockMaxEraseCount: 1914 @ args = 0, pretend = 0, frame = 0 1915 @ frame_needed = 0, uses_anonymous_args = 0 1916 ldr r3, .L243 1917 push {r4, r5, r6, lr} 1918 ldr r3, [r3] 1919 cbz r3, .L241 1920 ldr r2, .L243+4 1921 movs r5, #6 1922 movw r6, #65535 1923 ldrh r2, [r2] 1924 rsb r2, r2, r2, lsl #3 1925 asrs r2, r2, #3 1926 cmp r0, r2 1927 it gt 1928 uxthgt r0, r2 1929 ldr r2, .L243+8 1930 ldr r1, [r2] 1931 ldr r2, .L243+12 1932 subs r3, r3, r1 1933 asrs r3, r3, #1 1934 muls r3, r2, r3 1935 movs r2, #0 1936 uxth r3, r3 1937.L238: 1938 uxth r4, r2 1939 cmp r0, r4 1940 bls .L240 1941 mul r4, r5, r3 1942 adds r2, r2, #1 1943 ldrh r4, [r1, r4] 1944 cmp r4, r6 1945 bne .L242 1946.L240: 1947 ldr r2, .L243+16 1948 ldr r2, [r2] 1949 ldrh r0, [r2, r3, lsl #1] 1950 pop {r4, r5, r6, pc} 1951.L242: 1952 mov r3, r4 1953 b .L238 1954.L241: 1955 mov r0, r3 1956 pop {r4, r5, r6, pc} 1957.L244: 1958 .align 2 1959.L243: 1960 .word .LANCHOR47 1961 .word .LANCHOR48 1962 .word .LANCHOR40 1963 .word -1431655765 1964 .word .LANCHOR43 1965 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 1966 .section .text.FtlPrintInfo2buf,"ax",%progbits 1967 .align 1 1968 .global FtlPrintInfo2buf 1969 .syntax unified 1970 .thumb 1971 .thumb_func 1972 .fpu softvfp 1973 .type FtlPrintInfo2buf, %function 1974FtlPrintInfo2buf: 1975 @ args = 0, pretend = 0, frame = 0 1976 @ frame_needed = 0, uses_anonymous_args = 0 1977 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 1978 movs r1, #64 1979 ldr r2, .L257 1980 mov r8, r0 1981 bl snprintf 1982 ldr r3, .L257+4 1983 add r5, r8, r0 1984 ldr r2, .L257+8 1985 movs r1, #64 1986 mov r0, r5 1987 ldr r6, .L257+12 1988 ldr r3, [r3] 1989 bl snprintf 1990 add r5, r5, r0 1991 ldr r2, .L257+16 1992 movs r1, #64 1993 mov r0, r5 1994 bl snprintf 1995 ldr r3, .L257+20 1996 add r5, r5, r0 1997 ldr r2, .L257+24 1998 movs r1, #64 1999 mov r0, r5 2000 ldr r4, .L257+28 2001 ldr r3, [r3] 2002 bl snprintf 2003 ldr r3, .L257+32 2004 add r5, r5, r0 2005 ldr r2, .L257+36 2006 movs r1, #64 2007 mov r0, r5 2008 ldr r7, .L257+40 2009 ldr r3, [r3] 2010 bl snprintf 2011 ldr r3, .L257+44 2012 add r5, r5, r0 2013 ldr r2, .L257+48 2014 movs r1, #64 2015 mov r0, r5 2016 ldr r10, .L257+328 2017 ldr r3, [r3] 2018 bl snprintf 2019 ldr r3, .L257+52 2020 add r5, r5, r0 2021 ldr r2, .L257+56 2022 movs r1, #64 2023 mov r0, r5 2024 ldr r3, [r3] 2025 bl snprintf 2026 ldr r3, .L257+60 2027 add r5, r5, r0 2028 ldr r2, .L257+64 2029 movs r1, #64 2030 mov r0, r5 2031 ldr r3, [r3] 2032 bl snprintf 2033 ldr r3, .L257+68 2034 add r5, r5, r0 2035 ldr r2, .L257+72 2036 movs r1, #64 2037 mov r0, r5 2038 ldr r3, [r3] 2039 bl snprintf 2040 ldr r3, .L257+76 2041 add r5, r5, r0 2042 ldr r2, .L257+80 2043 movs r1, #64 2044 mov r0, r5 2045 ldr r3, [r3] 2046 bl snprintf 2047 ldr r3, .L257+84 2048 add r5, r5, r0 2049 ldr r2, .L257+88 2050 movs r1, #64 2051 mov r0, r5 2052 ldr r3, [r3] 2053 bl snprintf 2054 ldr r3, .L257+92 2055 add r5, r5, r0 2056 ldr r2, .L257+96 2057 movs r1, #64 2058 mov r0, r5 2059 ldr r3, [r3] 2060 lsrs r3, r3, #11 2061 bl snprintf 2062 ldr r3, .L257+100 2063 add r5, r5, r0 2064 ldr r2, .L257+104 2065 movs r1, #64 2066 mov r0, r5 2067 ldr r3, [r3] 2068 lsrs r3, r3, #11 2069 bl snprintf 2070 ldr r3, .L257+108 2071 add r5, r5, r0 2072 ldr r2, .L257+112 2073 movs r1, #64 2074 mov r0, r5 2075 ldr r3, [r3] 2076 bl snprintf 2077 ldr r3, .L257+116 2078 add r5, r5, r0 2079 ldr r2, .L257+120 2080 movs r1, #64 2081 mov r0, r5 2082 ldr r3, [r3] 2083 bl snprintf 2084 add r5, r5, r0 2085 ldrh r3, [r6, #6] 2086 ldr r2, .L257+124 2087 movs r1, #64 2088 mov r0, r5 2089 bl snprintf 2090 add r5, r5, r0 2091 ldrh r3, [r4] 2092 ldr r2, .L257+128 2093 movs r1, #64 2094 mov r0, r5 2095 bl snprintf 2096 ldr r3, .L257+132 2097 add r5, r5, r0 2098 ldr r2, .L257+136 2099 movs r1, #64 2100 mov r0, r5 2101 ldr r3, [r3] 2102 bl snprintf 2103 ldr r3, .L257+140 2104 add r5, r5, r0 2105 ldr r2, .L257+144 2106 movs r1, #64 2107 mov r0, r5 2108 ldr r3, [r3] 2109 bl snprintf 2110 ldr r3, .L257+148 2111 add r5, r5, r0 2112 ldr r2, .L257+152 2113 movs r1, #64 2114 mov r0, r5 2115 ldr r3, [r3] 2116 bl snprintf 2117 ldr r3, .L257+156 2118 add r5, r5, r0 2119 ldr r2, .L257+160 2120 movs r1, #64 2121 mov r0, r5 2122 ldr r3, [r3] 2123 bl snprintf 2124 ldr r3, .L257+164 2125 add r5, r5, r0 2126 ldr r2, .L257+168 2127 movs r1, #64 2128 mov r0, r5 2129 ldr r3, [r3] 2130 bl snprintf 2131 ldr r3, .L257+172 2132 add r5, r5, r0 2133 ldr r2, .L257+176 2134 movs r1, #64 2135 mov r0, r5 2136 ldr r3, [r3] 2137 bl snprintf 2138 add r5, r5, r0 2139 ldrh r3, [r7, #30] 2140 ldr r2, .L257+180 2141 movs r1, #64 2142 mov r0, r5 2143 bl snprintf 2144 add r5, r5, r0 2145 ldrh r3, [r7, #28] 2146 ldr r2, .L257+184 2147 movs r1, #64 2148 mov r0, r5 2149 ldr r7, .L257+188 2150 bl snprintf 2151 ldr r3, .L257+192 2152 add r5, r5, r0 2153 ldr r2, .L257+196 2154 movs r1, #64 2155 mov r0, r5 2156 ldr r3, [r3] 2157 bl snprintf 2158 ldr r3, .L257+200 2159 add r5, r5, r0 2160 ldr r2, .L257+204 2161 movs r1, #64 2162 mov r0, r5 2163 ldr r3, [r3] 2164 bl snprintf 2165 ldr r3, .L257+208 2166 add r5, r5, r0 2167 ldr r2, .L257+212 2168 movs r1, #64 2169 mov r0, r5 2170 ldr r3, [r3] 2171 bl snprintf 2172 ldr r3, .L257+216 2173 add r5, r5, r0 2174 ldr r2, .L257+220 2175 movs r1, #64 2176 mov r0, r5 2177 ldrh r3, [r3, #6] 2178 bl snprintf 2179 ldr r3, .L257+224 2180 add r5, r5, r0 2181 ldr r2, .L257+228 2182 movs r1, #64 2183 mov r0, r5 2184 ldrh r3, [r3] 2185 bl snprintf 2186 ldr r3, .L257+232 2187 add r5, r5, r0 2188 ldr r2, .L257+236 2189 movs r1, #64 2190 mov r0, r5 2191 ldrh r3, [r3] 2192 bl snprintf 2193 ldr r3, .L257+240 2194 add r5, r5, r0 2195 ldr r2, .L257+244 2196 movs r1, #64 2197 mov r0, r5 2198 ldr r3, [r3] 2199 bl snprintf 2200 ldr r3, .L257+248 2201 add r5, r5, r0 2202 ldr r2, .L257+252 2203 movs r1, #64 2204 mov r0, r5 2205 ldrh r3, [r3] 2206 bl snprintf 2207 add r5, r5, r0 2208 ldrh r3, [r6] 2209 ldr r2, .L257+256 2210 movs r1, #64 2211 mov r0, r5 2212 ldr r6, .L257+260 2213 bl snprintf 2214 add r5, r5, r0 2215 ldrh r3, [r7, #2] 2216 ldr r2, .L257+264 2217 movs r1, #64 2218 mov r0, r5 2219 bl snprintf 2220 add r5, r5, r0 2221 ldrb r3, [r7, #6] @ zero_extendqisi2 2222 ldr r2, .L257+268 2223 movs r1, #64 2224 mov r0, r5 2225 bl snprintf 2226 add r5, r5, r0 2227 ldrh r3, [r7] 2228 ldr r2, .L257+272 2229 movs r1, #64 2230 mov r0, r5 2231 bl snprintf 2232 add r5, r5, r0 2233 ldrb r3, [r7, #8] @ zero_extendqisi2 2234 ldr r2, .L257+276 2235 movs r1, #64 2236 mov r0, r5 2237 bl snprintf 2238 add r5, r5, r0 2239 ldrh r3, [r7, #4] 2240 ldr r2, .L257+280 2241 movs r1, #64 2242 mov r0, r5 2243 bl snprintf 2244 ldrh r2, [r7] 2245 add r5, r5, r0 2246 ldr r3, [r6] 2247 movs r1, #64 2248 ldr r7, .L257+284 2249 mov r0, r5 2250 ldrh r3, [r3, r2, lsl #1] 2251 ldr r2, .L257+288 2252 bl snprintf 2253 add r5, r5, r0 2254 ldrh r3, [r7, #2] 2255 ldr r2, .L257+292 2256 movs r1, #64 2257 mov r0, r5 2258 bl snprintf 2259 add r5, r5, r0 2260 ldrb r3, [r7, #6] @ zero_extendqisi2 2261 ldr r2, .L257+296 2262 movs r1, #64 2263 mov r0, r5 2264 bl snprintf 2265 add r5, r5, r0 2266 ldrh r3, [r7] 2267 ldr r2, .L257+300 2268 movs r1, #64 2269 mov r0, r5 2270 bl snprintf 2271 add r5, r5, r0 2272 ldrb r3, [r7, #8] @ zero_extendqisi2 2273 ldr r2, .L257+304 2274 movs r1, #64 2275 mov r0, r5 2276 bl snprintf 2277 add r5, r5, r0 2278 ldrh r3, [r7, #4] 2279 ldr r2, .L257+308 2280 movs r1, #64 2281 mov r0, r5 2282 bl snprintf 2283 ldrh r2, [r7] 2284 add r5, r5, r0 2285 ldr r3, [r6] 2286 movs r1, #64 2287 ldr r7, .L257+312 2288 mov r0, r5 2289 ldrh r3, [r3, r2, lsl #1] 2290 ldr r2, .L257+316 2291 bl snprintf 2292 add r5, r5, r0 2293 ldrh r3, [r7, #2] 2294 ldr r2, .L257+320 2295 movs r1, #64 2296 mov r0, r5 2297 bl snprintf 2298 add r5, r5, r0 2299 ldrb r3, [r7, #6] @ zero_extendqisi2 2300 ldr r2, .L257+324 2301 movs r1, #64 2302 mov r0, r5 2303 bl snprintf 2304 add r5, r5, r0 2305 b .L258 2306.L259: 2307 .align 2 2308.L257: 2309 .word .LC2 2310 .word .LANCHOR26 2311 .word .LC3 2312 .word .LANCHOR37 2313 .word .LC4 2314 .word .LANCHOR61 2315 .word .LC5 2316 .word .LANCHOR48 2317 .word .LANCHOR59 2318 .word .LC6 2319 .word .LANCHOR39 2320 .word .LANCHOR62 2321 .word .LC7 2322 .word .LANCHOR63 2323 .word .LC8 2324 .word .LANCHOR64 2325 .word .LC9 2326 .word .LANCHOR65 2327 .word .LC10 2328 .word .LANCHOR66 2329 .word .LC11 2330 .word .LANCHOR67 2331 .word .LC12 2332 .word .LANCHOR68 2333 .word .LC13 2334 .word .LANCHOR69 2335 .word .LC14 2336 .word .LANCHOR70 2337 .word .LC15 2338 .word .LANCHOR71 2339 .word .LC16 2340 .word .LC17 2341 .word .LC18 2342 .word .LANCHOR72 2343 .word .LC19 2344 .word .LANCHOR73 2345 .word .LC20 2346 .word .LANCHOR74 2347 .word .LC21 2348 .word .LANCHOR75 2349 .word .LC22 2350 .word .LANCHOR76 2351 .word .LC23 2352 .word .LANCHOR77 2353 .word .LC24 2354 .word .LC25 2355 .word .LC26 2356 .word .LANCHOR51 2357 .word .LANCHOR34 2358 .word .LC27 2359 .word .LANCHOR31 2360 .word .LC28 2361 .word .LANCHOR2 2362 .word .LC29 2363 .word .LANCHOR38 2364 .word .LC30 2365 .word .LANCHOR5 2366 .word .LC31 2367 .word .LANCHOR78 2368 .word .LC32 2369 .word .LANCHOR7 2370 .word .LC33 2371 .word .LANCHOR79 2372 .word .LC34 2373 .word .LC35 2374 .word .LANCHOR42 2375 .word .LC36 2376 .word .LC37 2377 .word .LC38 2378 .word .LC39 2379 .word .LC40 2380 .word .LANCHOR52 2381 .word .LC41 2382 .word .LC42 2383 .word .LC43 2384 .word .LC44 2385 .word .LC45 2386 .word .LC46 2387 .word .LANCHOR53 2388 .word .LC47 2389 .word .LC48 2390 .word .LC49 2391 .word .LANCHOR81 2392.L258: 2393 ldrh r3, [r7] 2394 ldr r2, .L260 2395 movs r1, #64 2396 mov r0, r5 2397 bl snprintf 2398 add r5, r5, r0 2399 ldrb r3, [r7, #8] @ zero_extendqisi2 2400 ldr r2, .L260+4 2401 movs r1, #64 2402 mov r0, r5 2403 bl snprintf 2404 ldrh r3, [r7, #4] 2405 add r5, r5, r0 2406 ldr r7, .L260+8 2407 movs r1, #64 2408 ldr r2, .L260+12 2409 mov r0, r5 2410 bl snprintf 2411 add r5, r5, r0 2412 ldrh r3, [r7, #2] 2413 ldr r2, .L260+16 2414 movs r1, #64 2415 mov r0, r5 2416 bl snprintf 2417 add r5, r5, r0 2418 ldrb r3, [r7, #6] @ zero_extendqisi2 2419 ldr r2, .L260+20 2420 movs r1, #64 2421 mov r0, r5 2422 bl snprintf 2423 add r5, r5, r0 2424 ldrh r3, [r7] 2425 ldr r2, .L260+24 2426 movs r1, #64 2427 mov r0, r5 2428 bl snprintf 2429 add r5, r5, r0 2430 ldrb r3, [r7, #8] @ zero_extendqisi2 2431 ldr r2, .L260+28 2432 movs r1, #64 2433 mov r0, r5 2434 bl snprintf 2435 add r5, r5, r0 2436 ldrh r3, [r7, #4] 2437 ldr r2, .L260+32 2438 movs r1, #64 2439 mov r0, r5 2440 bl snprintf 2441 ldr r3, [r10, #76] 2442 add r5, r5, r0 2443 ldr r2, .L260+36 2444 movs r1, #64 2445 mov r0, r5 2446 str r3, [sp, #4] 2447 ldr r3, [r10, #84] 2448 str r3, [sp] 2449 ldr r3, [r10, #80] 2450 bl snprintf 2451 add r5, r5, r0 2452 ldr r3, [r10, #72] 2453 ldr r2, .L260+40 2454 movs r1, #64 2455 mov r0, r5 2456 bl snprintf 2457 add r5, r5, r0 2458 ldr r3, [r10, #96] 2459 ldr r2, .L260+44 2460 movs r1, #64 2461 mov r0, r5 2462 bl snprintf 2463 ldr r3, .L260+48 2464 add r5, r5, r0 2465 ldr r2, .L260+52 2466 movs r1, #64 2467 mov r0, r5 2468 ldrh r3, [r3] 2469 bl snprintf 2470 ldr r3, .L260+56 2471 add r5, r5, r0 2472 ldr r2, .L260+60 2473 movs r1, #64 2474 mov r0, r5 2475 ldrh r3, [r3] 2476 bl snprintf 2477 ldr r3, .L260+64 2478 add r5, r5, r0 2479 ldr r2, .L260+68 2480 movs r1, #64 2481 mov r0, r5 2482 ldr r3, [r3] 2483 bl snprintf 2484 ldr r3, .L260+72 2485 add r5, r5, r0 2486 ldr r2, .L260+76 2487 movs r1, #64 2488 mov r0, r5 2489 ldrh r3, [r3] 2490 bl snprintf 2491 add r5, r5, r0 2492 bl GetFreeBlockMinEraseCount 2493 ldr r2, .L260+80 2494 mov r3, r0 2495 movs r1, #64 2496 mov r0, r5 2497 bl snprintf 2498 add r5, r5, r0 2499 ldrh r0, [r4] 2500 bl GetFreeBlockMaxEraseCount 2501 ldr r2, .L260+84 2502 mov r3, r0 2503 movs r1, #64 2504 mov r0, r5 2505 bl snprintf 2506 ldr r3, .L260+88 2507 adds r4, r5, r0 2508 ldr r3, [r3] 2509 cmp r3, #1 2510 beq .L246 2511.L251: 2512 sub r0, r4, r8 2513 add sp, sp, #16 2514 @ sp needed 2515 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2516.L246: 2517 ldrh r3, [r7] 2518 movw r2, #65535 2519 cmp r3, r2 2520 beq .L248 2521 ldr r2, [r6] 2522 mov r0, r4 2523 movs r1, #64 2524 ldrh r3, [r2, r3, lsl #1] 2525 ldr r2, .L260+92 2526 bl snprintf 2527 add r4, r4, r0 2528.L248: 2529 movs r0, #0 2530 ldr r5, .L260+96 2531 ldr fp, .L260+112 2532 movs r7, #0 2533 bl List_get_gc_head_node 2534 uxth r0, r0 2535.L250: 2536 movw r3, #65535 2537 cmp r0, r3 2538 beq .L249 2539 ldr r3, [fp] 2540 mov r10, #6 2541 mul r10, r10, r0 2542 ldr r2, .L260+100 2543 movs r1, #64 2544 ldrh r3, [r3, r0, lsl #1] 2545 str r3, [sp, #12] 2546 ldr r3, [r5] 2547 add r3, r3, r10 2548 ldrh r3, [r3, #4] 2549 str r3, [sp, #8] 2550 ldr r3, [r6] 2551 ldrh r3, [r3, r0, lsl #1] 2552 stm sp, {r0, r3} 2553 mov r3, r7 2554 mov r0, r4 2555 adds r7, r7, #1 2556 bl snprintf 2557 ldr r3, [r5] 2558 cmp r7, #16 2559 add r4, r4, r0 2560 ldrh r0, [r3, r10] 2561 bne .L250 2562.L249: 2563 ldr r3, .L260+104 2564 movs r7, #0 2565 ldr r2, [r5] 2566 ldr r10, .L260+112 2567 ldr r3, [r3] 2568 ldr fp, .L260+116 2569 subs r3, r3, r2 2570 ldr r2, .L260+108 2571 asrs r3, r3, #1 2572 muls r3, r2, r3 2573 uxth r3, r3 2574.L252: 2575 movw r2, #65535 2576 cmp r3, r2 2577 beq .L251 2578 ldr r2, [r10] 2579 movs r6, #6 2580 muls r6, r3, r6 2581 mov r0, r4 2582 movs r1, #64 2583 ldrh r2, [r2, r3, lsl #1] 2584 str r2, [sp, #8] 2585 ldr r2, [r5] 2586 add r2, r2, r6 2587 ldrh r2, [r2, #4] 2588 str r3, [sp] 2589 mov r3, r7 2590 adds r7, r7, #1 2591 str r2, [sp, #4] 2592 mov r2, fp 2593 bl snprintf 2594 cmp r7, #4 2595 add r4, r4, r0 2596 beq .L251 2597 ldr r3, [r5] 2598 ldrh r3, [r3, r6] 2599 b .L252 2600.L261: 2601 .align 2 2602.L260: 2603 .word .LC50 2604 .word .LC51 2605 .word .LANCHOR80 2606 .word .LC52 2607 .word .LC53 2608 .word .LC54 2609 .word .LC55 2610 .word .LC56 2611 .word .LC57 2612 .word .LC58 2613 .word .LC59 2614 .word .LC60 2615 .word .LANCHOR82 2616 .word .LC61 2617 .word .LANCHOR83 2618 .word .LC62 2619 .word .LANCHOR84 2620 .word .LC63 2621 .word .LANCHOR85 2622 .word .LC64 2623 .word .LC65 2624 .word .LC66 2625 .word .LANCHOR86 2626 .word .LC67 2627 .word .LANCHOR40 2628 .word .LC68 2629 .word .LANCHOR47 2630 .word -1431655765 2631 .word .LANCHOR43 2632 .word .LC69 2633 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf 2634 .section .text.rknand_proc_ftlread,"ax",%progbits 2635 .align 1 2636 .global rknand_proc_ftlread 2637 .syntax unified 2638 .thumb 2639 .thumb_func 2640 .fpu softvfp 2641 .type rknand_proc_ftlread, %function 2642rknand_proc_ftlread: 2643 @ args = 0, pretend = 0, frame = 0 2644 @ frame_needed = 0, uses_anonymous_args = 0 2645 cmp r0, #2048 2646 push {r3, r4, r5, lr} 2647 mov r5, r1 2648 blt .L264 2649 ldr r3, .L265 2650 movs r1, #64 2651 ldr r2, .L265+4 2652 mov r0, r5 2653 bl snprintf 2654 adds r4, r5, r0 2655 mov r0, r4 2656 bl FtlPrintInfo2buf 2657 add r0, r0, r4 2658 subs r0, r0, r5 2659 pop {r3, r4, r5, pc} 2660.L264: 2661 movs r0, #0 2662 pop {r3, r4, r5, pc} 2663.L266: 2664 .align 2 2665.L265: 2666 .word .LC70 2667 .word .LC71 2668 .size rknand_proc_ftlread, .-rknand_proc_ftlread 2669 .section .text.GetSwlReplaceBlock,"ax",%progbits 2670 .align 1 2671 .global GetSwlReplaceBlock 2672 .syntax unified 2673 .thumb 2674 .thumb_func 2675 .fpu softvfp 2676 .type GetSwlReplaceBlock, %function 2677GetSwlReplaceBlock: 2678 @ args = 0, pretend = 0, frame = 8 2679 @ frame_needed = 0, uses_anonymous_args = 0 2680 push {r4, r5, r6, r7, r8, r10, fp, lr} 2681 sub sp, sp, #24 2682 ldr r3, .L295 2683 ldr r6, .L295+4 2684 ldr r5, [r3] 2685 mov r10, r3 2686 ldr r1, [r6] 2687 cmp r1, r5 2688 bcs .L268 2689 ldr r2, .L295+8 2690 movs r3, #0 2691 ldr r4, .L295+12 2692 mov r0, r3 2693 ldrh r1, [r2] 2694 ldr r2, .L295+16 2695 str r3, [r4] 2696 ldr r7, [r2] 2697 mov r2, r3 2698.L269: 2699 cmp r2, r1 2700 bcc .L270 2701 cbz r3, .L271 2702 str r0, [r4] 2703.L271: 2704 ldr r7, [r4] 2705 mov r0, r7 2706 bl __aeabi_uidiv 2707 ldr r3, .L295+20 2708 str r0, [r6] 2709 ldr r0, [r3] 2710 ldr r3, .L295+24 2711 subs r0, r7, r0 2712 ldrh r1, [r3] 2713 bl __aeabi_uidiv 2714 str r0, [r4] 2715.L272: 2716 ldr r6, [r6] 2717 add r3, r5, #256 2718 cmp r3, r6 2719 bls .L277 2720 ldr r2, .L295+28 2721 add r3, r5, #768 2722 ldr r2, [r2] 2723 cmp r3, r2 2724 bls .L277 2725.L279: 2726 movw r4, #65535 2727.L278: 2728 mov r0, r4 2729 add sp, sp, #24 2730 @ sp needed 2731 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2732.L270: 2733 ldrh r3, [r7, r2, lsl #1] 2734 adds r2, r2, #1 2735 add r0, r0, r3 2736 movs r3, #1 2737 b .L269 2738.L268: 2739 ldr r2, .L295+28 2740 ldr r3, [r2] 2741 cmp r1, r3 2742 bls .L272 2743 adds r3, r3, #1 2744 ldr r0, .L295+8 2745 str r3, [r2] 2746 movs r2, #0 2747 ldr r3, .L295+16 2748 ldr r3, [r3] 2749 subs r3, r3, #2 2750.L274: 2751 ldrh r1, [r0] 2752 cmp r2, r1 2753 bcs .L272 2754 ldrh r1, [r3, #2] 2755 adds r2, r2, #1 2756 adds r1, r1, #1 2757 strh r1, [r3, #2]! @ movhi 2758 b .L274 2759.L277: 2760 ldr r3, .L295+32 2761 ldrh r0, [r3] 2762 add r0, r0, r0, lsl #1 2763 ubfx r0, r0, #2, #16 2764 bl GetFreeBlockMaxEraseCount 2765 add r3, r5, #64 2766 mov r2, r0 2767 cmp r0, r3 2768 bcc .L279 2769 ldr r3, .L295+36 2770 ldr r3, [r3] 2771 cmp r3, #0 2772 beq .L279 2773 ldr r1, .L295+8 2774 movs r0, #0 2775 mov fp, #6 2776 ldrh r1, [r1] 2777 str r1, [sp, #20] 2778 ldr r1, .L295+40 2779 ldr r8, [r1] 2780 ldr r1, .L295+16 2781 ldr r7, [r1] 2782 movw r1, #65535 2783 mov ip, r1 2784.L280: 2785 ldrh lr, [r3] 2786 movw r4, #65535 2787 cmp lr, r4 2788 bne .L283 2789 mov r4, ip 2790.L282: 2791 movw r3, #65535 2792 cmp r4, r3 2793 beq .L279 2794 ldrh r7, [r7, r4, lsl #1] 2795 lsl r8, r4, #1 2796 cmp r5, r7 2797 bcs .L284 2798 bl GetFreeBlockMinEraseCount 2799 cmp r5, r0 2800 it cc 2801 strcc r1, [r10] 2802.L284: 2803 cmp r6, r7 2804 bls .L279 2805 add r3, r7, #128 2806 cmp r2, r3 2807 ble .L279 2808 add r3, r7, #256 2809 ldr r0, .L295+28 2810 cmp r6, r3 2811 bhi .L285 2812 ldr r1, [r0] 2813 add r3, r7, #768 2814 cmp r3, r1 2815 bcs .L279 2816.L285: 2817 ldr r3, .L295+44 2818 mov r1, r4 2819 str r2, [sp, #8] 2820 mov r2, r6 2821 str r7, [sp, #4] 2822 ldr r3, [r3] 2823 ldrh r3, [r3, r8] 2824 str r3, [sp] 2825 ldr r3, [r0] 2826 ldr r0, .L295+48 2827 bl printf 2828 ldr r3, .L295+52 2829 movs r2, #1 2830 str r2, [r3] 2831 b .L278 2832.L283: 2833 adds r0, r0, #1 2834 ldr r4, [sp, #20] 2835 uxth r0, r0 2836 cmp r0, r4 2837 bhi .L279 2838 ldrh r4, [r3, #4] 2839 cbz r4, .L281 2840 ldr r4, .L295+56 2841 sub r3, r3, r8 2842 asrs r3, r3, #1 2843 muls r3, r4, r3 2844 uxth r4, r3 2845 ldrh r3, [r7, r4, lsl #1] 2846 cmp r5, r3 2847 bcs .L282 2848 cmp r1, r3 2849 itt hi 2850 movhi r1, r3 2851 movhi ip, r4 2852.L281: 2853 mla r3, fp, lr, r8 2854 b .L280 2855.L296: 2856 .align 2 2857.L295: 2858 .word .LANCHOR77 2859 .word .LANCHOR74 2860 .word .LANCHOR5 2861 .word .LANCHOR72 2862 .word .LANCHOR43 2863 .word .LANCHOR73 2864 .word .LANCHOR14 2865 .word .LANCHOR76 2866 .word .LANCHOR48 2867 .word .LANCHOR41 2868 .word .LANCHOR40 2869 .word .LANCHOR42 2870 .word .LC72 2871 .word .LANCHOR87 2872 .word -1431655765 2873 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock 2874 .section .text.free_data_superblock,"ax",%progbits 2875 .align 1 2876 .global free_data_superblock 2877 .syntax unified 2878 .thumb 2879 .thumb_func 2880 .fpu softvfp 2881 .type free_data_superblock, %function 2882free_data_superblock: 2883 @ args = 0, pretend = 0, frame = 0 2884 @ frame_needed = 0, uses_anonymous_args = 0 2885 movw r2, #65535 2886 push {r3, lr} 2887 cmp r0, r2 2888 beq .L298 2889 ldr r2, .L299 2890 movs r1, #0 2891 ldr r2, [r2] 2892 strh r1, [r2, r0, lsl #1] @ movhi 2893 bl INSERT_FREE_LIST 2894.L298: 2895 movs r0, #0 2896 pop {r3, pc} 2897.L300: 2898 .align 2 2899.L299: 2900 .word .LANCHOR42 2901 .size free_data_superblock, .-free_data_superblock 2902 .section .text.get_new_active_ppa,"ax",%progbits 2903 .align 1 2904 .global get_new_active_ppa 2905 .syntax unified 2906 .thumb 2907 .thumb_func 2908 .fpu softvfp 2909 .type get_new_active_ppa, %function 2910get_new_active_ppa: 2911 @ args = 0, pretend = 0, frame = 0 2912 @ frame_needed = 0, uses_anonymous_args = 0 2913 ldrh r2, [r0] 2914 push {r3, r4, r5, r6, r7, lr} 2915 movw r3, #65535 2916 mov r4, r0 2917 cmp r2, r3 2918 bne .L302 2919 movw r2, #2740 2920 ldr r1, .L315 2921 ldr r0, .L315+4 2922 bl printf 2923.L302: 2924 ldr r5, .L315+8 2925 ldrh r2, [r4, #2] 2926 ldrh r3, [r5] 2927 cmp r2, r3 2928 bne .L303 2929 movw r2, #2741 2930 ldr r1, .L315 2931 ldr r0, .L315+4 2932 bl printf 2933.L303: 2934 ldrh r3, [r4, #4] 2935 cbnz r3, .L304 2936 movw r2, #2742 2937 ldr r1, .L315 2938 ldr r0, .L315+4 2939 bl printf 2940.L304: 2941 ldrb r2, [r4, #6] @ zero_extendqisi2 2942 movs r3, #0 2943 strb r3, [r4, #10] 2944 movw r6, #65535 2945 adds r2, r2, #8 2946 ldrh r0, [r4, r2, lsl #1] 2947 ldr r2, .L315+12 2948 ldrh r1, [r2] 2949 mov r2, r3 2950.L305: 2951 cmp r0, r6 2952 ldrb r3, [r4, #6] @ zero_extendqisi2 2953 beq .L307 2954 ldrh r2, [r4, #4] 2955 ldrh r6, [r4, #2] 2956 subs r2, r2, #1 2957 uxth r2, r2 2958 orr r6, r6, r0, lsl #10 2959 movw r0, #65535 2960 strh r2, [r4, #4] @ movhi 2961.L309: 2962 adds r3, r3, #1 2963 uxtb r3, r3 2964 cmp r1, r3 2965 itttt eq 2966 ldrheq r3, [r4, #2] 2967 addeq r3, r3, #1 2968 strheq r3, [r4, #2] @ movhi 2969 moveq r3, #0 2970 add r7, r3, #8 2971 ldrh r7, [r4, r7, lsl #1] 2972 cmp r7, r0 2973 beq .L309 2974 strb r3, [r4, #6] 2975 ldrh r1, [r4, #2] 2976 ldrh r3, [r5] 2977 cmp r1, r3 2978 bne .L301 2979 cbz r2, .L301 2980 movw r2, #2763 2981 ldr r1, .L315 2982 ldr r0, .L315+4 2983 bl printf 2984.L301: 2985 mov r0, r6 2986 pop {r3, r4, r5, r6, r7, pc} 2987.L307: 2988 adds r3, r3, #1 2989 uxtb r3, r3 2990 cmp r3, r1 2991 strb r3, [r4, #6] 2992 itttt eq 2993 ldrheq r3, [r4, #2] 2994 strbeq r2, [r4, #6] 2995 addeq r3, r3, #1 2996 strheq r3, [r4, #2] @ movhi 2997 ldrb r3, [r4, #6] @ zero_extendqisi2 2998 adds r3, r3, #8 2999 ldrh r0, [r4, r3, lsl #1] 3000 b .L305 3001.L316: 3002 .align 2 3003.L315: 3004 .word .LANCHOR88 3005 .word .LC1 3006 .word .LANCHOR19 3007 .word .LANCHOR3 3008 .size get_new_active_ppa, .-get_new_active_ppa 3009 .section .text.FtlGcBufInit,"ax",%progbits 3010 .align 1 3011 .global FtlGcBufInit 3012 .syntax unified 3013 .thumb 3014 .thumb_func 3015 .fpu softvfp 3016 .type FtlGcBufInit, %function 3017FtlGcBufInit: 3018 @ args = 0, pretend = 0, frame = 8 3019 @ frame_needed = 0, uses_anonymous_args = 0 3020 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 3021 movs r3, #0 3022 ldr r1, .L322 3023 mov fp, #1 3024 ldr r2, .L322+4 3025 ldr r5, [r1] 3026 ldr r1, .L322+8 3027 str r3, [r2] 3028 ldr r2, .L322+12 3029 mov r0, r5 3030 ldr r1, [r1] 3031 ldrh r2, [r2] 3032 str r1, [sp, #4] 3033 ldr r1, .L322+16 3034 ldrh r1, [r1] 3035 str r1, [sp] 3036 ldr r1, .L322+20 3037 ldr r10, [r1] 3038 ldr r1, .L322+24 3039 ldrh r7, [r1] 3040 ldr r1, .L322+28 3041 ldr r4, [r1] 3042 movs r1, #12 3043 mla r1, r2, r1, r1 3044 adds r4, r4, #8 3045 add r8, r5, r1 3046 mov r1, r3 3047.L318: 3048 adds r0, r0, #12 3049 ldr r6, [sp] 3050 cmp r0, r8 3051 add ip, r3, r7 3052 add r4, r4, #20 3053 add lr, r1, r6 3054 bne .L319 3055 ldr r3, .L322+32 3056 mov lr, #12 3057 mov r8, #0 3058 ldr r0, [r3] 3059 ldr r3, .L322+8 3060 ldr r4, [r3] 3061 ldr r3, .L322+20 3062 ldr ip, [r3] 3063.L320: 3064 cmp r2, r0 3065 bcc .L321 3066 add sp, sp, #8 3067 @ sp needed 3068 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3069.L319: 3070 bic r1, r1, #3 3071 bic r3, r3, #3 3072 mov r6, r1 3073 ldr r1, [sp, #4] 3074 add r3, r3, r10 3075 str fp, [r0, #-4] 3076 str r3, [r0, #-8] 3077 add r6, r6, r1 3078 mov r1, lr 3079 str r6, [r0, #-12] 3080 str r3, [r4, #-16] 3081 mov r3, ip 3082 str r6, [r4, #-20] 3083 b .L318 3084.L321: 3085 ldr r3, [sp] 3086 mul r10, lr, r2 3087 muls r3, r2, r3 3088 add r1, r5, r10 3089 str r8, [r1, #8] 3090 bic r3, r3, #3 3091 add r3, r3, r4 3092 str r3, [r5, r10] 3093 mul r3, r2, r7 3094 adds r2, r2, #1 3095 uxth r2, r2 3096 bic r3, r3, #3 3097 add r3, r3, ip 3098 str r3, [r1, #4] 3099 b .L320 3100.L323: 3101 .align 2 3102.L322: 3103 .word .LANCHOR90 3104 .word .LANCHOR89 3105 .word .LANCHOR91 3106 .word .LANCHOR3 3107 .word .LANCHOR23 3108 .word .LANCHOR92 3109 .word .LANCHOR24 3110 .word .LANCHOR93 3111 .word .LANCHOR94 3112 .size FtlGcBufInit, .-FtlGcBufInit 3113 .section .text.FtlGcBufFree,"ax",%progbits 3114 .align 1 3115 .global FtlGcBufFree 3116 .syntax unified 3117 .thumb 3118 .thumb_func 3119 .fpu softvfp 3120 .type FtlGcBufFree, %function 3121FtlGcBufFree: 3122 @ args = 0, pretend = 0, frame = 0 3123 @ frame_needed = 0, uses_anonymous_args = 0 3124 ldr r3, .L331 3125 mov ip, #12 3126 push {r4, r5, r6, r7, r8, r10, fp, lr} 3127 movs r4, #0 3128 mov fp, #20 3129 mov lr, r4 3130 ldr r7, [r3] 3131 ldr r3, .L331+4 3132 ldr r5, [r3] 3133.L325: 3134 uxth r3, r4 3135 cmp r1, r3 3136 bls .L324 3137 mla r8, fp, r3, r0 3138 movs r2, #0 3139.L326: 3140 uxth r3, r2 3141 cmp r7, r3 3142 bls .L327 3143 mul r3, ip, r3 3144 ldr r6, [r8, #8] 3145 adds r2, r2, #1 3146 add r10, r5, r3 3147 ldr r3, [r5, r3] 3148 cmp r3, r6 3149 bne .L326 3150 str lr, [r10, #8] 3151.L327: 3152 adds r4, r4, #1 3153 b .L325 3154.L324: 3155 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3156.L332: 3157 .align 2 3158.L331: 3159 .word .LANCHOR94 3160 .word .LANCHOR90 3161 .size FtlGcBufFree, .-FtlGcBufFree 3162 .section .text.FtlGcBufAlloc,"ax",%progbits 3163 .align 1 3164 .global FtlGcBufAlloc 3165 .syntax unified 3166 .thumb 3167 .thumb_func 3168 .fpu softvfp 3169 .type FtlGcBufAlloc, %function 3170FtlGcBufAlloc: 3171 @ args = 0, pretend = 0, frame = 0 3172 @ frame_needed = 0, uses_anonymous_args = 0 3173 ldr r3, .L340 3174 movs r2, #0 3175 push {r4, r5, r6, r7, r8, r10, lr} 3176 mov ip, #12 3177 movs r7, #1 3178 mov lr, #20 3179 ldr r4, [r3] 3180 ldr r3, .L340+4 3181 ldr r5, [r3] 3182.L334: 3183 uxth r8, r2 3184 cmp r1, r8 3185 bhi .L338 3186 pop {r4, r5, r6, r7, r8, r10, pc} 3187.L338: 3188 mov r10, #0 3189.L335: 3190 uxth r3, r10 3191 cmp r4, r3 3192 bls .L336 3193 mla r3, ip, r3, r5 3194 add r10, r10, #1 3195 ldr r6, [r3, #8] 3196 cmp r6, #0 3197 bne .L335 3198 mla r8, lr, r8, r0 3199 str r7, [r3, #8] 3200 ldr r6, [r3] 3201 ldr r3, [r3, #4] 3202 str r6, [r8, #8] 3203 str r3, [r8, #12] 3204.L336: 3205 adds r2, r2, #1 3206 b .L334 3207.L341: 3208 .align 2 3209.L340: 3210 .word .LANCHOR94 3211 .word .LANCHOR90 3212 .size FtlGcBufAlloc, .-FtlGcBufAlloc 3213 .section .text.IsBlkInGcList,"ax",%progbits 3214 .align 1 3215 .global IsBlkInGcList 3216 .syntax unified 3217 .thumb 3218 .thumb_func 3219 .fpu softvfp 3220 .type IsBlkInGcList, %function 3221IsBlkInGcList: 3222 @ args = 0, pretend = 0, frame = 0 3223 @ frame_needed = 0, uses_anonymous_args = 0 3224 @ link register save eliminated. 3225 ldr r3, .L347 3226 ldr r2, .L347+4 3227 ldr r3, [r3] 3228 ldrh r2, [r2] 3229 add r2, r3, r2, lsl #1 3230.L343: 3231 cmp r3, r2 3232 bne .L345 3233 movs r0, #0 3234 bx lr 3235.L345: 3236 ldrh r1, [r3], #2 3237 cmp r1, r0 3238 bne .L343 3239 movs r0, #1 3240 bx lr 3241.L348: 3242 .align 2 3243.L347: 3244 .word .LANCHOR95 3245 .word .LANCHOR96 3246 .size IsBlkInGcList, .-IsBlkInGcList 3247 .section .text.FtlGcUpdatePage,"ax",%progbits 3248 .align 1 3249 .global FtlGcUpdatePage 3250 .syntax unified 3251 .thumb 3252 .thumb_func 3253 .fpu softvfp 3254 .type FtlGcUpdatePage, %function 3255FtlGcUpdatePage: 3256 @ args = 0, pretend = 0, frame = 0 3257 @ frame_needed = 0, uses_anonymous_args = 0 3258 push {r3, r4, r5, r6, r7, lr} 3259 mov r5, r0 3260 ldr r4, .L353 3261 ubfx r0, r0, #10, #16 3262 mov r6, r1 3263 mov r7, r2 3264 bl P2V_block_in_plane 3265 ldr r3, .L353+4 3266 ldrh r1, [r4] 3267 ldr r2, [r3] 3268 movs r3, #0 3269.L350: 3270 uxth ip, r3 3271 cmp ip, r1 3272 bcc .L352 3273 bne .L351 3274 strh r0, [r2, ip, lsl #1] @ movhi 3275 ldrh r3, [r4] 3276 adds r3, r3, #1 3277 strh r3, [r4] @ movhi 3278 b .L351 3279.L352: 3280 adds r3, r3, #1 3281 add ip, r2, r3, lsl #1 3282 ldrh ip, [ip, #-2] 3283 cmp ip, r0 3284 bne .L350 3285.L351: 3286 ldr r2, .L353+8 3287 movs r0, #12 3288 ldr r1, .L353+12 3289 ldrh r3, [r2] 3290 ldr r1, [r1] 3291 muls r0, r3, r0 3292 adds r3, r3, #1 3293 adds r4, r1, r0 3294 str r6, [r4, #4] 3295 str r7, [r4, #8] 3296 str r5, [r1, r0] 3297 strh r3, [r2] @ movhi 3298 pop {r3, r4, r5, r6, r7, pc} 3299.L354: 3300 .align 2 3301.L353: 3302 .word .LANCHOR96 3303 .word .LANCHOR95 3304 .word .LANCHOR97 3305 .word .LANCHOR98 3306 .size FtlGcUpdatePage, .-FtlGcUpdatePage 3307 .section .text.FtlGcRefreshBlock,"ax",%progbits 3308 .align 1 3309 .global FtlGcRefreshBlock 3310 .syntax unified 3311 .thumb 3312 .thumb_func 3313 .fpu softvfp 3314 .type FtlGcRefreshBlock, %function 3315FtlGcRefreshBlock: 3316 @ args = 0, pretend = 0, frame = 0 3317 @ frame_needed = 0, uses_anonymous_args = 0 3318 push {r3, r4, r5, lr} 3319 mov r1, r0 3320 mov r4, r0 3321 ldr r0, .L358 3322 bl printf 3323 ldr r0, .L358+4 3324 ldrh r5, [r0] 3325 cmp r4, r5 3326 beq .L356 3327 ldr r3, .L358+8 3328 ldrh r1, [r3] 3329 cmp r4, r1 3330 beq .L356 3331 movw r2, #65535 3332 cmp r5, r2 3333 bne .L357 3334 strh r4, [r0] @ movhi 3335.L356: 3336 movs r0, #0 3337 pop {r3, r4, r5, pc} 3338.L357: 3339 cmp r1, r2 3340 it eq 3341 strheq r4, [r3] @ movhi 3342 b .L356 3343.L359: 3344 .align 2 3345.L358: 3346 .word .LC73 3347 .word .LANCHOR99 3348 .word .LANCHOR100 3349 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 3350 .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits 3351 .align 1 3352 .global FtlGcMarkBadPhyBlk 3353 .syntax unified 3354 .thumb 3355 .thumb_func 3356 .fpu softvfp 3357 .type FtlGcMarkBadPhyBlk, %function 3358FtlGcMarkBadPhyBlk: 3359 @ args = 0, pretend = 0, frame = 0 3360 @ frame_needed = 0, uses_anonymous_args = 0 3361 push {r4, r5, r6, lr} 3362 mov r5, r0 3363 ldr r4, .L364 3364 bl P2V_block_in_plane 3365 mov r2, r5 3366 mov r6, r0 3367 ldrh r1, [r4] 3368 ldr r0, .L364+4 3369 bl printf 3370 mov r0, r6 3371 bl FtlGcRefreshBlock 3372 ldrh r3, [r4] 3373 movs r2, #0 3374 ldr r0, .L364+8 3375.L361: 3376 uxth r1, r2 3377 cmp r3, r1 3378 bhi .L363 3379 cmp r3, #15 3380 itttt ls 3381 addls r2, r3, #1 3382 strhls r2, [r4] @ movhi 3383 ldrls r2, .L364+8 3384 strhls r5, [r2, r3, lsl #1] @ movhi 3385 b .L362 3386.L363: 3387 adds r2, r2, #1 3388 add r1, r0, r2, lsl #1 3389 ldrh r1, [r1, #-2] 3390 cmp r1, r5 3391 bne .L361 3392.L362: 3393 movs r0, #0 3394 pop {r4, r5, r6, pc} 3395.L365: 3396 .align 2 3397.L364: 3398 .word .LANCHOR101 3399 .word .LC74 3400 .word .LANCHOR102 3401 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 3402 .section .text.FtlGcReFreshBadBlk,"ax",%progbits 3403 .align 1 3404 .global FtlGcReFreshBadBlk 3405 .syntax unified 3406 .thumb 3407 .thumb_func 3408 .fpu softvfp 3409 .type FtlGcReFreshBadBlk, %function 3410FtlGcReFreshBadBlk: 3411 @ args = 0, pretend = 0, frame = 0 3412 @ frame_needed = 0, uses_anonymous_args = 0 3413 ldr r3, .L372 3414 push {r4, lr} 3415 ldrh r3, [r3] 3416 cbz r3, .L367 3417 ldr r2, .L372+4 3418 ldrh r1, [r2] 3419 movw r2, #65535 3420 cmp r1, r2 3421 bne .L367 3422 ldr r4, .L372+8 3423 ldrh r2, [r4] 3424 cmp r2, r3 3425 itt cs 3426 movcs r3, #0 3427 strhcs r3, [r4] @ movhi 3428 ldr r3, .L372+12 3429 ldrh r2, [r4] 3430 ldrh r0, [r3, r2, lsl #1] 3431 bl P2V_block_in_plane 3432 bl FtlGcRefreshBlock 3433 ldrh r3, [r4] 3434 adds r3, r3, #1 3435 strh r3, [r4] @ movhi 3436.L367: 3437 movs r0, #0 3438 pop {r4, pc} 3439.L373: 3440 .align 2 3441.L372: 3442 .word .LANCHOR101 3443 .word .LANCHOR99 3444 .word .LANCHOR103 3445 .word .LANCHOR102 3446 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 3447 .section .text.ftl_malloc,"ax",%progbits 3448 .align 1 3449 .global ftl_malloc 3450 .syntax unified 3451 .thumb 3452 .thumb_func 3453 .fpu softvfp 3454 .type ftl_malloc, %function 3455ftl_malloc: 3456 @ args = 0, pretend = 0, frame = 0 3457 @ frame_needed = 0, uses_anonymous_args = 0 3458 @ link register save eliminated. 3459 movs r1, #0 3460 b kmalloc 3461 .size ftl_malloc, .-ftl_malloc 3462 .section .text.ftl_free,"ax",%progbits 3463 .align 1 3464 .global ftl_free 3465 .syntax unified 3466 .thumb 3467 .thumb_func 3468 .fpu softvfp 3469 .type ftl_free, %function 3470ftl_free: 3471 @ args = 0, pretend = 0, frame = 0 3472 @ frame_needed = 0, uses_anonymous_args = 0 3473 @ link register save eliminated. 3474 b free 3475 .size ftl_free, .-ftl_free 3476 .section .text.rknand_print_hex,"ax",%progbits 3477 .align 1 3478 .global rknand_print_hex 3479 .syntax unified 3480 .thumb 3481 .thumb_func 3482 .fpu softvfp 3483 .type rknand_print_hex, %function 3484rknand_print_hex: 3485 @ args = 0, pretend = 0, frame = 0 3486 @ frame_needed = 0, uses_anonymous_args = 0 3487 push {r4, r5, r6, r7, r8, r10, fp, lr} 3488 movs r6, #0 3489 mov fp, r0 3490 mov r7, r1 3491 mov r8, r2 3492 mov r10, r3 3493 mov r5, r6 3494 mov r4, r6 3495.L377: 3496 cmp r4, r10 3497 bcc .L383 3498 ldr r0, .L386 3499 pop {r4, r5, r6, r7, r8, r10, fp, lr} 3500 b printf 3501.L383: 3502 cbnz r5, .L378 3503 mov r2, r6 3504 mov r1, fp 3505 ldr r0, .L386+4 3506 bl printf 3507.L378: 3508 cmp r8, #4 3509 bne .L379 3510 ldr r1, [r7, r4, lsl #2] 3511.L385: 3512 ldr r0, .L386+8 3513.L384: 3514 adds r5, r5, #1 3515 bl printf 3516 cmp r5, #15 3517 bls .L382 3518 movs r5, #0 3519 ldr r0, .L386 3520 bl printf 3521.L382: 3522 adds r4, r4, #1 3523 add r6, r6, r8 3524 b .L377 3525.L379: 3526 cmp r8, #2 3527 bne .L381 3528 ldrh r1, [r7, r4, lsl #1] 3529 b .L385 3530.L381: 3531 ldrb r1, [r7, r4] @ zero_extendqisi2 3532 ldr r0, .L386+12 3533 b .L384 3534.L387: 3535 .align 2 3536.L386: 3537 .word .LC78 3538 .word .LC75 3539 .word .LC76 3540 .word .LC77 3541 .size rknand_print_hex, .-rknand_print_hex 3542 .section .text.FlashEraseBlocks,"ax",%progbits 3543 .align 1 3544 .global FlashEraseBlocks 3545 .syntax unified 3546 .thumb 3547 .thumb_func 3548 .fpu softvfp 3549 .type FlashEraseBlocks, %function 3550FlashEraseBlocks: 3551 @ args = 0, pretend = 0, frame = 16 3552 @ frame_needed = 0, uses_anonymous_args = 0 3553 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3554 mov r4, r0 3555 ldr r6, .L404 3556 add r8, r0, #4 3557 movs r7, #0 3558 ldr fp, .L404+20 3559 ldrh r10, [r6, #12] 3560 str r2, [sp] 3561 lsl r3, r10, #3 3562 str r3, [sp, #4] 3563.L389: 3564 ldr r3, [sp] 3565 cmp r7, r3 3566 beq .L403 3567 add r2, sp, #8 3568 add r1, sp, #12 3569 ldr r0, [r8] 3570 bl l2p_addr_tran.isra.0 3571 ldr r5, [sp, #8] 3572 cbnz r5, .L390 3573 ldr r2, [sp, #12] 3574 ldr r3, [sp, #4] 3575 cmp r3, r2 3576 bls .L390 3577 ldr r6, .L404+4 3578 ldr r7, .L404+8 3579.L391: 3580 ldr r3, [sp] 3581 adds r4, r4, #20 3582 cmp r5, r3 3583 bne .L392 3584.L403: 3585 movs r0, #0 3586 add sp, sp, #16 3587 @ sp needed 3588 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3589.L392: 3590 mov r3, #-1 3591 ldr r2, [sp, #12] 3592 str r3, [r4, #-20] 3593 mov r1, r6 3594 mov r0, r7 3595 adds r5, r5, #1 3596 bl printf 3597 movs r3, #16 3598 movs r2, #4 3599 ldr r1, [r4, #-12] 3600 ldr r0, .L404+12 3601 bl rknand_print_hex 3602 movs r3, #4 3603 ldr r1, [r4, #-8] 3604 mov r2, r3 3605 ldr r0, .L404+16 3606 bl rknand_print_hex 3607 b .L391 3608.L390: 3609 ldr r2, [fp, #4] 3610 uxtb r0, r5 3611 ldr r1, [sp, #12] 3612 blx r2 3613 cbnz r0, .L393 3614 str r0, [r8, #-4] 3615.L394: 3616 ldrh r2, [r6, #14] 3617 cmp r2, #4 3618 bne .L396 3619 ldr r1, [sp, #12] 3620 ldr r2, [fp, #4] 3621 ldrb r0, [sp, #8] @ zero_extendqisi2 3622 add r1, r1, r10 3623 blx r2 3624 cbz r0, .L396 3625 mov r2, #-1 3626 str r2, [r8, #-4] 3627.L396: 3628 adds r7, r7, #1 3629 add r8, r8, #20 3630 b .L389 3631.L393: 3632 mov r2, #-1 3633 str r2, [r8, #-4] 3634 b .L394 3635.L405: 3636 .align 2 3637.L404: 3638 .word .LANCHOR0 3639 .word .LANCHOR104 3640 .word .LC79 3641 .word .LC80 3642 .word .LC81 3643 .word .LANCHOR105 3644 .size FlashEraseBlocks, .-FlashEraseBlocks 3645 .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits 3646 .align 1 3647 .global FtlFreeSysBlkQueueIn 3648 .syntax unified 3649 .thumb 3650 .thumb_func 3651 .fpu softvfp 3652 .type FtlFreeSysBlkQueueIn, %function 3653FtlFreeSysBlkQueueIn: 3654 @ args = 0, pretend = 0, frame = 0 3655 @ frame_needed = 0, uses_anonymous_args = 0 3656 subs r3, r0, #1 3657 movw r2, #65533 3658 uxth r3, r3 3659 push {r4, r5, r6, lr} 3660 mov r5, r0 3661 cmp r3, r2 3662 bhi .L406 3663 ldr r4, .L415 3664 ldrh r3, [r4, #6] 3665 cmp r3, #1024 3666 beq .L406 3667 cbz r1, .L408 3668 bl P2V_block_in_plane 3669 ldr r3, .L415+4 3670 mov r6, r0 3671 movs r2, #1 3672 mov r1, r2 3673 ldr r0, [r3] 3674 lsls r3, r5, #10 3675 str r3, [r0, #4] 3676 bl FlashEraseBlocks 3677 ldr r3, .L415+8 3678 ldr r2, [r3] 3679 ldrh r3, [r2, r6, lsl #1] 3680 adds r3, r3, #1 3681 strh r3, [r2, r6, lsl #1] @ movhi 3682 ldr r2, .L415+12 3683 ldr r3, [r2] 3684 adds r3, r3, #1 3685 str r3, [r2] 3686.L408: 3687 ldrh r3, [r4, #6] 3688 adds r3, r3, #1 3689 strh r3, [r4, #6] @ movhi 3690 ldrh r3, [r4, #4] 3691 adds r2, r3, #4 3692 adds r3, r3, #1 3693 ubfx r3, r3, #0, #10 3694 strh r5, [r4, r2, lsl #1] @ movhi 3695 strh r3, [r4, #4] @ movhi 3696.L406: 3697 pop {r4, r5, r6, pc} 3698.L416: 3699 .align 2 3700.L415: 3701 .word .LANCHOR38 3702 .word .LANCHOR106 3703 .word .LANCHOR43 3704 .word .LANCHOR75 3705 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3706 .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits 3707 .align 1 3708 .global FtlFreeSysBlkQueueOut 3709 .syntax unified 3710 .thumb 3711 .thumb_func 3712 .fpu softvfp 3713 .type FtlFreeSysBlkQueueOut, %function 3714FtlFreeSysBlkQueueOut: 3715 @ args = 0, pretend = 0, frame = 0 3716 @ frame_needed = 0, uses_anonymous_args = 0 3717 push {r3, r4, r5, lr} 3718 ldr r4, .L422 3719 ldrh r2, [r4, #6] 3720 cbz r2, .L421 3721 ldrh r3, [r4, #2] 3722 subs r2, r2, #1 3723 strh r2, [r4, #6] @ movhi 3724 movs r2, #1 3725 adds r1, r3, #4 3726 adds r3, r3, #1 3727 ubfx r3, r3, #0, #10 3728 ldrh r5, [r4, r1, lsl #1] 3729 strh r3, [r4, #2] @ movhi 3730 mov r1, r2 3731 ldr r3, .L422+4 3732 ldr r0, [r3] 3733 lsls r3, r5, #10 3734 str r3, [r0, #4] 3735 bl FlashEraseBlocks 3736 ldr r2, .L422+8 3737 ldr r3, [r2] 3738 adds r3, r3, #1 3739 str r3, [r2] 3740.L418: 3741 subs r3, r5, #1 3742 movw r2, #65533 3743 uxth r3, r3 3744 cmp r3, r2 3745 bls .L419 3746 ldrh r2, [r4, #6] 3747 mov r1, r5 3748 ldr r0, .L422+12 3749 bl printf 3750.L420: 3751 b .L420 3752.L421: 3753 movw r5, #65535 3754 b .L418 3755.L419: 3756 mov r0, r5 3757 pop {r3, r4, r5, pc} 3758.L423: 3759 .align 2 3760.L422: 3761 .word .LANCHOR38 3762 .word .LANCHOR106 3763 .word .LANCHOR75 3764 .word .LC82 3765 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3766 .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits 3767 .align 1 3768 .global ftl_map_blk_alloc_new_blk 3769 .syntax unified 3770 .thumb 3771 .thumb_func 3772 .fpu softvfp 3773 .type ftl_map_blk_alloc_new_blk, %function 3774ftl_map_blk_alloc_new_blk: 3775 @ args = 0, pretend = 0, frame = 0 3776 @ frame_needed = 0, uses_anonymous_args = 0 3777 ldrh r1, [r0, #10] 3778 ldr r2, [r0, #12] 3779 push {r3, r4, r5, r6, r7, lr} 3780 mov r4, r0 3781 movs r3, #0 3782.L425: 3783 uxth r5, r3 3784 cmp r5, r1 3785 bcs .L428 3786 mov r7, r2 3787 adds r3, r3, #1 3788 ldrh r6, [r7] 3789 adds r2, r2, #2 3790 cmp r6, #0 3791 bne .L425 3792 bl FtlFreeSysBlkQueueOut 3793 subs r3, r0, #1 3794 movw r2, #65533 3795 uxth r3, r3 3796 mov r1, r0 3797 strh r0, [r7] @ movhi 3798 cmp r3, r2 3799 bls .L426 3800 ldr r3, .L432 3801 ldr r0, .L432+4 3802 ldrh r2, [r3, #6] 3803 bl printf 3804.L427: 3805 b .L427 3806.L426: 3807 ldr r3, [r4, #28] 3808 strh r6, [r4, #2] @ movhi 3809 strh r5, [r4] @ movhi 3810 adds r3, r3, #1 3811 str r3, [r4, #28] 3812 ldrh r3, [r4, #8] 3813 adds r3, r3, #1 3814 strh r3, [r4, #8] @ movhi 3815.L428: 3816 ldrh r3, [r4, #10] 3817 cmp r3, r5 3818 bhi .L430 3819 movw r2, #578 3820 ldr r1, .L432+8 3821 ldr r0, .L432+12 3822 bl printf 3823.L430: 3824 movs r0, #0 3825 pop {r3, r4, r5, r6, r7, pc} 3826.L433: 3827 .align 2 3828.L432: 3829 .word .LANCHOR38 3830 .word .LC83 3831 .word .LANCHOR107 3832 .word .LC1 3833 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 3834 .section .text.ftl_memset,"ax",%progbits 3835 .align 1 3836 .global ftl_memset 3837 .syntax unified 3838 .thumb 3839 .thumb_func 3840 .fpu softvfp 3841 .type ftl_memset, %function 3842ftl_memset: 3843 @ args = 0, pretend = 0, frame = 0 3844 @ frame_needed = 0, uses_anonymous_args = 0 3845 @ link register save eliminated. 3846 b memset 3847 .size ftl_memset, .-ftl_memset 3848 .section .text.FtlMemInit,"ax",%progbits 3849 .align 1 3850 .global FtlMemInit 3851 .syntax unified 3852 .thumb 3853 .thumb_func 3854 .fpu softvfp 3855 .type FtlMemInit, %function 3856FtlMemInit: 3857 @ args = 0, pretend = 0, frame = 24 3858 @ frame_needed = 0, uses_anonymous_args = 0 3859 ldr r3, .L536 3860 movs r1, #0 3861 push {r4, r5, r6, r7, r8, r10, fp, lr} 3862 sub sp, sp, #24 3863 ldr r2, .L536+4 3864 mov r10, #12 3865 str r1, [r3] 3866 ldr r3, .L536+8 3867 ldr r4, .L536+12 3868 ldr r8, .L536+292 3869 str r1, [r3] 3870 ldr r3, .L536+16 3871 ldrh r0, [r4] 3872 str r1, [sp, #12] 3873 str r1, [r3] 3874 ldr r3, .L536+20 3875 lsls r0, r0, #1 3876 ldr r6, .L536+24 3877 ldr fp, .L536+296 3878 str r1, [r3] 3879 ldr r3, .L536+28 3880 ldr r7, .L536+32 3881 str r1, [r3] 3882 ldr r3, .L536+36 3883 str r1, [r3] 3884 ldr r3, .L536+40 3885 str r1, [r3] 3886 ldr r3, .L536+44 3887 str r1, [r3] 3888 ldr r3, .L536+48 3889 str r1, [r3] 3890 ldr r3, .L536+52 3891 str r1, [r3] 3892 ldr r3, .L536+56 3893 str r1, [r3] 3894 ldr r3, .L536+60 3895 str r1, [r3] 3896 ldr r3, .L536+64 3897 str r1, [r3] 3898 ldr r3, .L536+68 3899 str r1, [r3] 3900 ldr r3, .L536+72 3901 str r1, [r3] 3902 movw r3, #65535 3903 str r3, [r2] 3904 ldr r2, .L536+76 3905 str r1, [r2] 3906 ldr r2, .L536+80 3907 str r1, [r2] 3908 ldr r2, .L536+84 3909 str r1, [r2] 3910 ldr r2, .L536+88 3911 strh r3, [r2] @ movhi 3912 ldr r2, .L536+92 3913 strh r3, [r2] @ movhi 3914 movs r2, #32 3915 ldr r3, .L536+96 3916 strh r2, [r3] @ movhi 3917 movs r2, #128 3918 ldr r3, .L536+100 3919 strh r2, [r3] @ movhi 3920 ldr r3, .L536+104 3921 strh r1, [r3] @ movhi 3922 ldr r3, .L536+108 3923 strh r1, [r3] @ movhi 3924 ldr r3, .L536+112 3925 strh r1, [r3] @ movhi 3926 bl ftl_malloc 3927 str r0, [r8] 3928 ldrh r0, [r4] 3929 movs r4, #20 3930 mul r0, r10, r0 3931 bl ftl_malloc 3932 ldr r3, .L536+116 3933 str r0, [r3] 3934 ldrh r3, [r6] 3935 muls r4, r3, r4 3936 lsls r5, r4, #2 3937 mov r0, r5 3938 bl ftl_malloc 3939 ldr r3, .L536+120 3940 str r0, [r3] 3941 mov r0, r4 3942 bl ftl_malloc 3943 ldr r3, .L536+124 3944 str r0, [r3] 3945 mov r0, r5 3946 bl ftl_malloc 3947 str r0, [fp] 3948 mov r0, r4 3949 bl ftl_malloc 3950 ldr r3, .L536+128 3951 ldr r5, .L536+132 3952 str r0, [r3] 3953 mov r0, r4 3954 bl ftl_malloc 3955 ldr r3, .L536+136 3956 str r0, [r3] 3957 ldrh r0, [r6] 3958 ldr r3, .L536+140 3959 lsls r0, r0, #1 3960 ldrh r4, [r3] 3961 adds r0, r0, #1 3962 str r0, [r5] 3963 mov r0, r4 3964 bl ftl_malloc 3965 ldr r3, .L536+144 3966 str r0, [r3] 3967 mov r0, r4 3968 bl ftl_malloc 3969 ldr r3, .L536+148 3970 str r0, [r3] 3971 mov r0, r4 3972 bl ftl_malloc 3973 str r0, [r7] 3974 ldr r0, [r5] 3975 muls r0, r4, r0 3976 bl ftl_malloc 3977 ldr r3, .L536+152 3978 str r0, [r3] 3979 mov r0, r4 3980 bl ftl_malloc 3981 ldr r3, .L536+156 3982 str r0, [r3] 3983 mov r0, r4 3984 bl ftl_malloc 3985 ldr r3, .L536+160 3986 str r0, [r3] 3987 ldr r0, [r5] 3988 mul r0, r10, r0 3989 bl ftl_malloc 3990 ldr r3, .L536+164 3991 str r0, [r3] 3992 mov r0, r4 3993 bl ftl_malloc 3994 ldr r3, .L536+168 3995 str r0, [r3] 3996 mov r0, r4 3997 ldr r4, .L536+172 3998 bl ftl_malloc 3999 str r0, [r4] 4000 ldr r0, .L536+176 4001 ldr r4, .L536+180 4002 ldrh r0, [r0] 4003 lsls r0, r0, #2 4004 bl ftl_malloc 4005 str r0, [r4] 4006 ldr r4, .L536+184 4007 ldrh r2, [r6] 4008 ldr r6, .L536+152 4009 ldrh r0, [r4] 4010 muls r2, r0, r2 4011 mov r0, r2 4012 str r2, [sp, #4] 4013 bl ftl_malloc 4014 ldr r2, [sp, #4] 4015 ldr r3, .L536+188 4016 str r0, [r3] 4017 lsls r0, r2, #2 4018 bl ftl_malloc 4019 ldr r2, .L536+192 4020 str r0, [r2] 4021 ldrh r2, [r4] 4022 ldr r0, [r5] 4023 ldr r4, .L536+196 4024 ldr r5, .L536+200 4025 muls r0, r2, r0 4026 bl ftl_malloc 4027 ldr r3, .L536+204 4028 str r0, [r3] 4029 ldrh r0, [r4] 4030 lsls r0, r0, #1 4031 uxth r0, r0 4032 strh r0, [r5] @ movhi 4033 bl ftl_malloc 4034 ldr r2, .L536+208 4035 str r0, [r2] 4036 ldrh r2, [r5] 4037 ldr r0, .L536+212 4038 addw r2, r2, #547 4039 lsrs r2, r2, #9 4040 and r0, r0, r2, lsl #9 4041 strh r2, [r5] @ movhi 4042 bl ftl_malloc 4043 ldr r3, .L536+216 4044 str r0, [r3] 4045 adds r0, r0, #32 4046 ldr r3, .L536+220 4047 str r0, [r3] 4048 ldrh r3, [r4] 4049 lsls r5, r3, #1 4050 mov r0, r5 4051 bl ftl_malloc 4052 ldr r2, .L536+224 4053 str r0, [r2] 4054 mov r0, r5 4055 bl ftl_malloc 4056 ldr r3, .L536+228 4057 str r0, [r3] 4058 ldr r3, .L536+232 4059 ldr r2, [r3] 4060 str r3, [sp, #8] 4061 lsls r5, r2, #1 4062 mov r0, r5 4063 bl ftl_malloc 4064 ldr r2, .L536+236 4065 str r0, [r2] 4066 mov r0, r5 4067 bl ftl_malloc 4068 ldr r2, .L536+240 4069 ldr r5, .L536+244 4070 str r0, [r2] 4071 ldrh r0, [r4] 4072 lsrs r0, r0, #3 4073 adds r0, r0, #4 4074 bl ftl_malloc 4075 ldr r2, .L536+248 4076 str r0, [r2] 4077 ldrh r0, [r5] 4078 lsls r0, r0, #1 4079 bl ftl_malloc 4080 ldr r2, .L536+252 4081 str r0, [r2] 4082 ldrh r0, [r5] 4083 lsls r0, r0, #1 4084 bl ftl_malloc 4085 ldr r2, .L536+256 4086 str r0, [r2] 4087 ldrh r0, [r5] 4088 ldr r5, .L536+116 4089 lsls r0, r0, #2 4090 bl ftl_malloc 4091 ldr r2, .L536+260 4092 str r0, [r2] 4093 ldr r2, .L536+264 4094 ldrh r0, [r2] 4095 str r2, [sp, #4] 4096 lsls r0, r0, #2 4097 bl ftl_malloc 4098 ldr r2, [sp, #4] 4099 ldr ip, .L536+300 4100 ldr r1, [sp, #12] 4101 ldrh r2, [r2] 4102 str r0, [ip] 4103 lsls r2, r2, #2 4104 bl ftl_memset 4105 ldr r2, .L536+268 4106 ldrh r0, [r2] 4107 lsls r0, r0, #2 4108 bl ftl_malloc 4109 ldr r2, .L536+272 4110 ldr r3, [sp, #8] 4111 str r0, [r2] 4112 ldr r0, [r3] 4113 lsls r0, r0, #2 4114 bl ftl_malloc 4115 ldr r3, .L536+276 4116 str r0, [r3] 4117 ldr r3, .L536+280 4118 ldrh r0, [r3] 4119 str r3, [sp, #4] 4120 mul r0, r10, r0 4121 ldr r10, .L536+304 4122 bl ftl_malloc 4123 ldr r2, .L536+284 4124 ldr r3, [sp, #4] 4125 str r0, [r2] 4126 ldr r2, .L536+140 4127 ldrh r3, [r3] 4128 ldrh r0, [r2] 4129 muls r0, r3, r0 4130 bl ftl_malloc 4131 ldr r3, .L536+288 4132 str r0, [r3] 4133 movs r0, #6 4134 ldrh r3, [r4] 4135 b .L537 4136.L538: 4137 .align 2 4138.L536: 4139 .word .LANCHOR70 4140 .word .LANCHOR109 4141 .word .LANCHOR71 4142 .word .LANCHOR21 4143 .word .LANCHOR67 4144 .word .LANCHOR64 4145 .word .LANCHOR3 4146 .word .LANCHOR63 4147 .word .LANCHOR117 4148 .word .LANCHOR65 4149 .word .LANCHOR66 4150 .word .LANCHOR62 4151 .word .LANCHOR72 4152 .word .LANCHOR73 4153 .word .LANCHOR75 4154 .word .LANCHOR76 4155 .word .LANCHOR77 4156 .word .LANCHOR108 4157 .word .LANCHOR87 4158 .word .LANCHOR110 4159 .word .LANCHOR84 4160 .word .LANCHOR111 4161 .word .LANCHOR99 4162 .word .LANCHOR100 4163 .word .LANCHOR82 4164 .word .LANCHOR83 4165 .word .LANCHOR85 4166 .word .LANCHOR101 4167 .word .LANCHOR103 4168 .word .LANCHOR98 4169 .word .LANCHOR112 4170 .word .LANCHOR113 4171 .word .LANCHOR106 4172 .word .LANCHOR94 4173 .word .LANCHOR93 4174 .word .LANCHOR23 4175 .word .LANCHOR115 4176 .word .LANCHOR116 4177 .word .LANCHOR91 4178 .word .LANCHOR118 4179 .word .LANCHOR119 4180 .word .LANCHOR90 4181 .word .LANCHOR120 4182 .word .LANCHOR121 4183 .word .LANCHOR12 4184 .word .LANCHOR122 4185 .word .LANCHOR24 4186 .word .LANCHOR123 4187 .word .LANCHOR124 4188 .word .LANCHOR6 4189 .word .LANCHOR125 4190 .word .LANCHOR92 4191 .word .LANCHOR126 4192 .word 33553920 4193 .word .LANCHOR127 4194 .word .LANCHOR43 4195 .word .LANCHOR128 4196 .word .LANCHOR42 4197 .word .LANCHOR30 4198 .word .LANCHOR129 4199 .word .LANCHOR130 4200 .word .LANCHOR27 4201 .word .LANCHOR1 4202 .word .LANCHOR36 4203 .word .LANCHOR131 4204 .word .LANCHOR132 4205 .word .LANCHOR28 4206 .word .LANCHOR32 4207 .word .LANCHOR134 4208 .word .LANCHOR135 4209 .word .LANCHOR33 4210 .word .LANCHOR55 4211 .word .LANCHOR136 4212 .word .LANCHOR95 4213 .word .LANCHOR114 4214 .word .LANCHOR133 4215 .word .LANCHOR10 4216.L537: 4217 ldr r4, .L539 4218 muls r0, r3, r0 4219 bl ftl_malloc 4220 ldr r3, .L539+4 4221 str r0, [r3] 4222 ldr r3, .L539+8 4223 ldrh r0, [r3] 4224 ldrh r3, [r10] 4225 adds r0, r0, #31 4226 asrs r0, r0, #5 4227 strh r0, [r4] @ movhi 4228 muls r0, r3, r0 4229 lsls r0, r0, #2 4230 bl ftl_malloc 4231 ldr r2, .L539+12 4232 str r5, [sp, #8] 4233 ldr r5, .L539+16 4234 mov r1, r2 4235 ldrh r3, [r10] 4236 str r0, [r1, #28]! 4237 ldrh r0, [r4] 4238 str r5, [sp, #12] 4239 ldr r5, .L539+20 4240 ldr r10, .L539+116 4241 lsls r0, r0, #2 4242 ldr lr, .L539+120 4243 ldr ip, .L539+124 4244 str r5, [sp, #16] 4245 mov r4, r0 4246 ldr r5, .L539+24 4247 str r3, [sp, #4] 4248 movs r3, #1 4249 str r5, [sp, #20] 4250.L436: 4251 ldr r5, [sp, #4] 4252 cmp r3, r5 4253 bcc .L437 4254 add r3, r2, r3, lsl #2 4255 ldr r1, .L539+28 4256 movs r0, #0 4257 adds r3, r3, #24 4258.L438: 4259 cmp r1, r3 4260 bne .L439 4261 ldr r3, .L539+32 4262 ldr r3, [r3] 4263 cbnz r3, .L440 4264.L442: 4265 ldr r1, .L539+36 4266 ldr r0, .L539+40 4267 bl printf 4268 mov r0, #-1 4269.L435: 4270 add sp, sp, #24 4271 @ sp needed 4272 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4273.L437: 4274 ldr r5, [r2, #28] 4275 adds r3, r3, #1 4276 add r5, r5, r4 4277 add r4, r4, r0 4278 str r5, [r1, #4]! 4279 b .L436 4280.L439: 4281 str r0, [r3, #4]! 4282 b .L438 4283.L440: 4284 ldr r3, .L539+44 4285 ldr r3, [r3] 4286 cmp r3, #0 4287 beq .L442 4288 ldr r3, .L539+48 4289 ldr r3, [r3] 4290 cmp r3, #0 4291 beq .L442 4292 ldr r3, .L539+52 4293 ldr r3, [r3] 4294 cmp r3, #0 4295 beq .L442 4296 ldr r3, .L539+56 4297 ldr r3, [r3] 4298 cmp r3, #0 4299 beq .L442 4300 ldr r3, .L539+60 4301 ldr r3, [r3] 4302 cmp r3, #0 4303 beq .L442 4304 ldr r3, .L539+4 4305 ldr r3, [r3] 4306 cmp r3, #0 4307 beq .L442 4308 ldr r3, [r2, #28] 4309 cmp r3, #0 4310 beq .L442 4311 ldr r3, .L539+64 4312 ldr r3, [r3] 4313 cmp r3, #0 4314 beq .L442 4315 ldr r3, [r8] 4316 cmp r3, #0 4317 beq .L442 4318 ldr r3, [sp, #8] 4319 ldr r3, [r3] 4320 cmp r3, #0 4321 beq .L442 4322 ldr r3, [sp, #12] 4323 ldr r3, [r3] 4324 cmp r3, #0 4325 beq .L442 4326 ldr r3, [fp] 4327 cmp r3, #0 4328 beq .L442 4329 ldr r3, [r10] 4330 cmp r3, #0 4331 beq .L442 4332 ldr r3, [sp, #20] 4333 ldr r3, [r3] 4334 cmp r3, #0 4335 beq .L442 4336 ldr r3, [sp, #16] 4337 ldr r3, [r3] 4338 cmp r3, #0 4339 beq .L442 4340 ldr r3, [lr] 4341 cmp r3, #0 4342 beq .L442 4343 ldr r3, [ip] 4344 cmp r3, #0 4345 beq .L442 4346 ldr r3, [r7] 4347 cmp r3, #0 4348 beq .L442 4349 ldr r3, [r6] 4350 cmp r3, #0 4351 beq .L442 4352 ldr r3, .L539+68 4353 ldr r3, [r3] 4354 cmp r3, #0 4355 beq .L442 4356 ldr r3, .L539+72 4357 ldr r3, [r3] 4358 cmp r3, #0 4359 beq .L442 4360 ldr r3, .L539+76 4361 ldr r3, [r3] 4362 cmp r3, #0 4363 beq .L442 4364 ldr r3, .L539+80 4365 ldr r3, [r3] 4366 cmp r3, #0 4367 beq .L442 4368 ldr r3, .L539+84 4369 ldr r3, [r3] 4370 cmp r3, #0 4371 beq .L442 4372 ldr r3, .L539+88 4373 ldr r3, [r3] 4374 cmp r3, #0 4375 beq .L442 4376 ldr r3, .L539+92 4377 ldr r3, [r3] 4378 cmp r3, #0 4379 beq .L442 4380 ldr r3, .L539+96 4381 ldr r3, [r3] 4382 cmp r3, #0 4383 beq .L442 4384 ldr r3, .L539+100 4385 ldr r3, [r3] 4386 cmp r3, #0 4387 beq .L442 4388 ldr r3, .L539+104 4389 ldr r3, [r3] 4390 cmp r3, #0 4391 beq .L442 4392 ldr r3, .L539+108 4393 ldr r3, [r3] 4394 cmp r3, #0 4395 beq .L442 4396 ldr r3, .L539+112 4397 ldr r3, [r3] 4398 cmp r3, #0 4399 beq .L442 4400 movs r0, #0 4401 b .L435 4402.L540: 4403 .align 2 4404.L539: 4405 .word .LANCHOR137 4406 .word .LANCHOR40 4407 .word .LANCHOR17 4408 .word .LANCHOR37 4409 .word .LANCHOR112 4410 .word .LANCHOR113 4411 .word .LANCHOR93 4412 .word .LANCHOR37+56 4413 .word .LANCHOR129 4414 .word .LANCHOR138 4415 .word .LC84 4416 .word .LANCHOR130 4417 .word .LANCHOR134 4418 .word .LANCHOR135 4419 .word .LANCHOR55 4420 .word .LANCHOR136 4421 .word .LANCHOR42 4422 .word .LANCHOR118 4423 .word .LANCHOR119 4424 .word .LANCHOR90 4425 .word .LANCHOR123 4426 .word .LANCHOR124 4427 .word .LANCHOR92 4428 .word .LANCHOR43 4429 .word .LANCHOR126 4430 .word .LANCHOR36 4431 .word .LANCHOR131 4432 .word .LANCHOR132 4433 .word .LANCHOR133 4434 .word .LANCHOR106 4435 .word .LANCHOR115 4436 .word .LANCHOR116 4437 .size FtlMemInit, .-FtlMemInit 4438 .section .text.FtlBbt2Bitmap,"ax",%progbits 4439 .align 1 4440 .global FtlBbt2Bitmap 4441 .syntax unified 4442 .thumb 4443 .thumb_func 4444 .fpu softvfp 4445 .type FtlBbt2Bitmap, %function 4446FtlBbt2Bitmap: 4447 @ args = 0, pretend = 0, frame = 0 4448 @ frame_needed = 0, uses_anonymous_args = 0 4449 ldr r3, .L547 4450 push {r4, r5, r6, r7, r8, lr} 4451 mov r5, r0 4452 ldr r7, .L547+4 4453 mov r6, r1 4454 subs r4, r5, #2 4455 addw r5, r5, #1022 4456 ldrh r2, [r3] 4457 movs r1, #0 4458 ldr r8, .L547+12 4459 mov r0, r6 4460 lsls r2, r2, #2 4461 bl ftl_memset 4462.L544: 4463 ldrh r3, [r4, #2] 4464 movw r2, #65535 4465 cmp r3, r2 4466 beq .L541 4467 ldrh r2, [r7] 4468 cmp r2, r3 4469 bhi .L543 4470 movs r2, #74 4471 mov r1, r8 4472 ldr r0, .L547+8 4473 bl printf 4474.L543: 4475 ldrh r3, [r4, #2]! 4476 movs r2, #1 4477 cmp r5, r4 4478 lsr r1, r3, #5 4479 and r3, r3, #31 4480 lsl r3, r2, r3 4481 ldr r2, [r6, r1, lsl #2] 4482 orr r2, r2, r3 4483 str r2, [r6, r1, lsl #2] 4484 bne .L544 4485.L541: 4486 pop {r4, r5, r6, r7, r8, pc} 4487.L548: 4488 .align 2 4489.L547: 4490 .word .LANCHOR137 4491 .word .LANCHOR17 4492 .word .LC1 4493 .word .LANCHOR139 4494 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 4495 .section .text.FtlBbtMemInit,"ax",%progbits 4496 .align 1 4497 .global FtlBbtMemInit 4498 .syntax unified 4499 .thumb 4500 .thumb_func 4501 .fpu softvfp 4502 .type FtlBbtMemInit, %function 4503FtlBbtMemInit: 4504 @ args = 0, pretend = 0, frame = 0 4505 @ frame_needed = 0, uses_anonymous_args = 0 4506 @ link register save eliminated. 4507 ldr r0, .L550 4508 movw r3, #65535 4509 movs r2, #16 4510 movs r1, #255 4511 strh r3, [r0] @ movhi 4512 movs r3, #0 4513 strh r3, [r0, #6] @ movhi 4514 adds r0, r0, #12 4515 b ftl_memset 4516.L551: 4517 .align 2 4518.L550: 4519 .word .LANCHOR37 4520 .size FtlBbtMemInit, .-FtlBbtMemInit 4521 .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits 4522 .align 1 4523 .global FtlFreeSysBlkQueueInit 4524 .syntax unified 4525 .thumb 4526 .thumb_func 4527 .fpu softvfp 4528 .type FtlFreeSysBlkQueueInit, %function 4529FtlFreeSysBlkQueueInit: 4530 @ args = 0, pretend = 0, frame = 0 4531 @ frame_needed = 0, uses_anonymous_args = 0 4532 ldr r3, .L553 4533 mov r2, #2048 4534 push {r4, lr} 4535 movs r4, #0 4536 mov r1, r4 4537 strh r4, [r3, #2] @ movhi 4538 strh r4, [r3, #4] @ movhi 4539 strh r4, [r3, #6] @ movhi 4540 strh r0, [r3], #8 @ movhi 4541 mov r0, r3 4542 bl ftl_memset 4543 mov r0, r4 4544 pop {r4, pc} 4545.L554: 4546 .align 2 4547.L553: 4548 .word .LANCHOR38 4549 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 4550 .section .text.ftl_free_no_use_map_blk,"ax",%progbits 4551 .align 1 4552 .global ftl_free_no_use_map_blk 4553 .syntax unified 4554 .thumb 4555 .thumb_func 4556 .fpu softvfp 4557 .type ftl_free_no_use_map_blk, %function 4558ftl_free_no_use_map_blk: 4559 @ args = 0, pretend = 0, frame = 8 4560 @ frame_needed = 0, uses_anonymous_args = 0 4561 ldrh r2, [r0, #10] 4562 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 4563 mov r4, r0 4564 ldr r5, [r0, #20] 4565 movs r1, #0 4566 ldr r7, [r0, #12] 4567 lsls r2, r2, #1 4568 ldr r6, [r0, #24] 4569 mov r0, r5 4570 bl ftl_memset 4571 movs r3, #0 4572.L556: 4573 ldrh r1, [r4, #6] 4574 uxth r2, r3 4575 cmp r1, r2 4576 bhi .L560 4577 ldr r3, .L575 4578 movs r6, #0 4579 mov r10, r6 4580 ldrh r2, [r3] 4581 ldrh r3, [r4] 4582 strh r2, [r5, r3, lsl #1] @ movhi 4583 mov r2, r6 4584 ldrh fp, [r5] 4585.L561: 4586 ldrh r3, [r4, #10] 4587 uxth ip, r6 4588 cmp r3, ip 4589 bhi .L565 4590 mov r0, r10 4591 add sp, sp, #8 4592 @ sp needed 4593 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4594.L560: 4595 uxth r2, r3 4596 ldr r1, [r6, r2, lsl #2] 4597 movs r2, #0 4598 ubfx r1, r1, #10, #16 4599.L557: 4600 ldrh ip, [r4, #10] 4601 uxth r0, r2 4602 cmp ip, r0 4603 bhi .L559 4604 adds r3, r3, #1 4605 b .L556 4606.L559: 4607 uxth r0, r2 4608 ldrh ip, [r7, r0, lsl #1] 4609 cmp ip, r1 4610 bne .L558 4611 cbz r1, .L558 4612 ldrh ip, [r5, r0, lsl #1] 4613 add ip, ip, #1 4614 strh ip, [r5, r0, lsl #1] @ movhi 4615.L558: 4616 adds r2, r2, #1 4617 b .L557 4618.L565: 4619 uxth r1, r6 4620 ldrh r3, [r5, r1, lsl #1] 4621 lsl r8, r1, #1 4622 cmp fp, r3 4623 bls .L562 4624 ldrh r0, [r7, r1, lsl #1] 4625 add r8, r8, r7 4626 cbnz r0, .L563 4627.L564: 4628 adds r6, r6, #1 4629 b .L561 4630.L562: 4631 cmp r3, #0 4632 bne .L564 4633 ldrh r0, [r7, r1, lsl #1] 4634 add r8, r8, r7 4635 cmp r0, #0 4636 beq .L564 4637.L566: 4638 movs r1, #1 4639 str r2, [sp, #4] 4640 bl FtlFreeSysBlkQueueIn 4641 ldr r2, [sp, #4] 4642 strh r2, [r8] @ movhi 4643 ldrh r3, [r4, #8] 4644 subs r3, r3, #1 4645 strh r3, [r4, #8] @ movhi 4646 b .L564 4647.L563: 4648 mov r10, ip 4649 mov fp, r3 4650 cmp r3, #0 4651 beq .L566 4652 b .L564 4653.L576: 4654 .align 2 4655.L575: 4656 .word .LANCHOR20 4657 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 4658 .section .text.FtlL2PDataInit,"ax",%progbits 4659 .align 1 4660 .global FtlL2PDataInit 4661 .syntax unified 4662 .thumb 4663 .thumb_func 4664 .fpu softvfp 4665 .type FtlL2PDataInit, %function 4666FtlL2PDataInit: 4667 @ args = 0, pretend = 0, frame = 0 4668 @ frame_needed = 0, uses_anonymous_args = 0 4669 push {r4, r5, r6, r7, r8, lr} 4670 movs r1, #0 4671 ldr r5, .L580 4672 ldr r4, .L580+4 4673 ldr r2, [r5] 4674 ldr r7, .L580+8 4675 ldr r6, .L580+12 4676 ldr r0, [r4] 4677 lsls r2, r2, #1 4678 ldr r8, .L580+44 4679 bl ftl_memset 4680 ldrh r3, [r7] 4681 movs r1, #255 4682 ldrh r2, [r6] 4683 ldr r0, [r8] 4684 muls r2, r3, r2 4685 bl ftl_memset 4686 ldr r3, .L580+16 4687 movw r0, #65535 4688 ldrh r1, [r6] 4689 ldr ip, [r8] 4690 ldr r2, [r3] 4691 movs r3, #12 4692 ldrh r7, [r7] 4693 mla r3, r1, r3, r3 4694 adds r1, r2, r3 4695 movs r3, #0 4696 mov lr, r3 4697.L578: 4698 adds r2, r2, #12 4699 adds r6, r3, r7 4700 cmp r2, r1 4701 bne .L579 4702 ldr r3, .L580+20 4703 ldr r2, [r5] 4704 strh r0, [r3, #2] @ movhi 4705 strh r2, [r3, #10] @ movhi 4706 movw r2, #61634 4707 strh r2, [r3, #4] @ movhi 4708 ldr r2, .L580+24 4709 strh r0, [r3] @ movhi 4710 ldrh r2, [r2] 4711 strh r2, [r3, #8] @ movhi 4712 ldr r2, .L580+28 4713 ldrh r2, [r2] 4714 strh r2, [r3, #6] @ movhi 4715 ldr r2, .L580+32 4716 ldr r2, [r2] 4717 str r2, [r3, #12] 4718 ldr r2, .L580+36 4719 ldr r2, [r2] 4720 str r2, [r3, #16] 4721 ldr r2, [r4] 4722 str r2, [r3, #20] 4723 ldr r2, .L580+40 4724 ldr r2, [r2] 4725 str r2, [r3, #24] 4726 pop {r4, r5, r6, r7, r8, pc} 4727.L579: 4728 bic r3, r3, #3 4729 str lr, [r2, #-8] 4730 add r3, r3, ip 4731 strh r0, [r2, #-12] @ movhi 4732 str r3, [r2, #-4] 4733 mov r3, r6 4734 b .L578 4735.L581: 4736 .align 2 4737.L580: 4738 .word .LANCHOR30 4739 .word .LANCHOR130 4740 .word .LANCHOR23 4741 .word .LANCHOR33 4742 .word .LANCHOR55 4743 .word .LANCHOR140 4744 .word .LANCHOR141 4745 .word .LANCHOR32 4746 .word .LANCHOR129 4747 .word .LANCHOR135 4748 .word .LANCHOR134 4749 .word .LANCHOR136 4750 .size FtlL2PDataInit, .-FtlL2PDataInit 4751 .section .text.FtlVariablesInit,"ax",%progbits 4752 .align 1 4753 .global FtlVariablesInit 4754 .syntax unified 4755 .thumb 4756 .thumb_func 4757 .fpu softvfp 4758 .type FtlVariablesInit, %function 4759FtlVariablesInit: 4760 @ args = 0, pretend = 0, frame = 0 4761 @ frame_needed = 0, uses_anonymous_args = 0 4762 push {r3, r4, r5, lr} 4763 movw r2, #65535 4764 ldr r3, .L583 4765 movs r4, #0 4766 mov r1, r4 4767 ldr r5, .L583+4 4768 strh r2, [r3] @ movhi 4769 mov r2, #-1 4770 ldr r3, .L583+8 4771 str r4, [r3] 4772 ldr r3, .L583+12 4773 str r4, [r3] 4774 ldr r3, .L583+16 4775 str r2, [r3] 4776 ldr r3, .L583+20 4777 strh r4, [r3] @ movhi 4778 ldr r3, .L583+24 4779 ldrh r2, [r3] 4780 ldr r3, .L583+28 4781 lsls r2, r2, #1 4782 ldr r0, [r3] 4783 bl ftl_memset 4784 ldrh r2, [r5] 4785 mov r1, r4 4786 ldr r3, .L583+32 4787 lsls r2, r2, #1 4788 ldr r0, [r3] 4789 bl ftl_memset 4790 ldrh r2, [r5] 4791 mov r1, r4 4792 ldr r3, .L583+36 4793 lsls r2, r2, #1 4794 ldr r0, [r3] 4795 bl ftl_memset 4796 mov r1, r4 4797 movs r2, #48 4798 ldr r0, .L583+40 4799 bl ftl_memset 4800 mov r2, #512 4801 mov r1, r4 4802 ldr r0, .L583+44 4803 bl ftl_memset 4804 bl FtlGcBufInit 4805 bl FtlL2PDataInit 4806 mov r0, r4 4807 pop {r3, r4, r5, pc} 4808.L584: 4809 .align 2 4810.L583: 4811 .word .LANCHOR142 4812 .word .LANCHOR6 4813 .word .LANCHOR143 4814 .word .LANCHOR144 4815 .word .LANCHOR145 4816 .word .LANCHOR35 4817 .word .LANCHOR27 4818 .word .LANCHOR36 4819 .word .LANCHOR43 4820 .word .LANCHOR126 4821 .word .LANCHOR39 4822 .word .LANCHOR81 4823 .size FtlVariablesInit, .-FtlVariablesInit 4824 .section .text.SupperBlkListInit,"ax",%progbits 4825 .align 1 4826 .global SupperBlkListInit 4827 .syntax unified 4828 .thumb 4829 .thumb_func 4830 .fpu softvfp 4831 .type SupperBlkListInit, %function 4832SupperBlkListInit: 4833 @ args = 0, pretend = 0, frame = 16 4834 @ frame_needed = 0, uses_anonymous_args = 0 4835 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 4836 movs r2, #6 4837 ldr r3, .L596 4838 movs r1, #0 4839 movs r4, #0 4840 ldr r6, .L596+4 4841 mov r8, r4 4842 ldrh r3, [r3] 4843 mov r5, r4 4844 ldr r0, [r6] 4845 mov r10, r6 4846 muls r2, r3, r2 4847 bl ftl_memset 4848 ldr r3, .L596+8 4849 ldr r2, .L596+12 4850 str r4, [r3] 4851 ldr r3, .L596+16 4852 strh r4, [r2] @ movhi 4853 str r2, [sp, #4] 4854 str r4, [r3] 4855 ldr r3, .L596+20 4856 str r4, [r3] 4857 ldr r3, .L596+24 4858 mov fp, r3 4859 strh r4, [r3] @ movhi 4860.L586: 4861 ldr r3, .L596+28 4862 uxth r7, r4 4863 ldrh r3, [r3] 4864 cmp r7, r3 4865 bcs .L593 4866 ldr r3, .L596+32 4867 ldrh r2, [r3] 4868 ldr r3, .L596+36 4869 ldrh r3, [r3] 4870 str r3, [sp] 4871 movs r3, #0 4872 mov r6, r3 4873 b .L594 4874.L588: 4875 str r2, [sp, #12] 4876 mov r1, r7 4877 ldr r2, .L596+40 4878 str r3, [sp, #8] 4879 ldrb r0, [r2, r3] @ zero_extendqisi2 4880 bl V2P_block 4881 bl FtlBbmIsBadBlock 4882 ldr r3, [sp, #8] 4883 ldr r2, [sp, #12] 4884 cbnz r0, .L587 4885 ldr r1, [sp] 4886 add r6, r6, r1 4887 uxth r6, r6 4888.L587: 4889 adds r3, r3, #1 4890.L594: 4891 uxth r1, r3 4892 cmp r2, r1 4893 bhi .L588 4894 uxth r3, r4 4895 cbz r6, .L589 4896 mov r1, r6 4897 str r3, [sp] 4898 mov r0, #32768 4899 bl __aeabi_idiv 4900 ldr r3, [sp] 4901 uxth r6, r0 4902.L590: 4903 ldr r1, [r10] 4904 movs r2, #6 4905 mla r2, r2, r3, r1 4906 strh r6, [r2, #4] @ movhi 4907 ldr r2, .L596+44 4908 ldrh r2, [r2] 4909 cmp r2, r7 4910 beq .L591 4911 ldr r2, .L596+48 4912 ldrh r2, [r2] 4913 cmp r2, r7 4914 beq .L591 4915 ldr r2, .L596+52 4916 ldrh r2, [r2] 4917 cmp r2, r7 4918 beq .L591 4919 ldr r2, .L596+56 4920 ldr r2, [r2] 4921 ldrh r3, [r2, r3, lsl #1] 4922 cbnz r3, .L592 4923 add r8, r8, #1 4924 mov r0, r7 4925 uxth r8, r8 4926 bl INSERT_FREE_LIST 4927.L591: 4928 adds r4, r4, #1 4929 b .L586 4930.L589: 4931 ldr r2, .L596+56 4932 movw r1, #65535 4933 ldr r2, [r2] 4934 strh r1, [r2, r3, lsl #1] @ movhi 4935 b .L590 4936.L592: 4937 adds r5, r5, #1 4938 mov r0, r7 4939 uxth r5, r5 4940 bl INSERT_DATA_LIST 4941 b .L591 4942.L593: 4943 ldr r2, [sp, #4] 4944 strh r8, [fp] @ movhi 4945 strh r5, [r2] @ movhi 4946 add r5, r5, r8 4947 cmp r5, r3 4948 ble .L595 4949 movw r2, #2170 4950 ldr r1, .L596+60 4951 ldr r0, .L596+64 4952 bl printf 4953.L595: 4954 movs r0, #0 4955 add sp, sp, #16 4956 @ sp needed 4957 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4958.L597: 4959 .align 2 4960.L596: 4961 .word .LANCHOR6 4962 .word .LANCHOR40 4963 .word .LANCHOR47 4964 .word .LANCHOR45 4965 .word .LANCHOR41 4966 .word .LANCHOR44 4967 .word .LANCHOR48 4968 .word .LANCHOR5 4969 .word .LANCHOR3 4970 .word .LANCHOR19 4971 .word .LANCHOR13 4972 .word .LANCHOR51 4973 .word .LANCHOR52 4974 .word .LANCHOR53 4975 .word .LANCHOR42 4976 .word .LANCHOR146 4977 .word .LC1 4978 .size SupperBlkListInit, .-SupperBlkListInit 4979 .section .text.FtlGcPageVarInit,"ax",%progbits 4980 .align 1 4981 .global FtlGcPageVarInit 4982 .syntax unified 4983 .thumb 4984 .thumb_func 4985 .fpu softvfp 4986 .type FtlGcPageVarInit, %function 4987FtlGcPageVarInit: 4988 @ args = 0, pretend = 0, frame = 0 4989 @ frame_needed = 0, uses_anonymous_args = 0 4990 ldr r2, .L599 4991 movs r3, #0 4992 push {r4, lr} 4993 movs r1, #255 4994 ldr r4, .L599+4 4995 strh r3, [r2] @ movhi 4996 ldr r2, .L599+8 4997 strh r3, [r2] @ movhi 4998 ldrh r2, [r4] 4999 ldr r3, .L599+12 5000 lsls r2, r2, #1 5001 ldr r0, [r3] 5002 bl ftl_memset 5003 ldrh r3, [r4] 5004 movs r2, #12 5005 movs r1, #255 5006 muls r2, r3, r2 5007 ldr r3, .L599+16 5008 ldr r0, [r3] 5009 bl ftl_memset 5010 pop {r4, lr} 5011 b FtlGcBufInit 5012.L600: 5013 .align 2 5014.L599: 5015 .word .LANCHOR96 5016 .word .LANCHOR21 5017 .word .LANCHOR97 5018 .word .LANCHOR95 5019 .word .LANCHOR98 5020 .size FtlGcPageVarInit, .-FtlGcPageVarInit 5021 .section .text.FlashGetBadBlockList,"ax",%progbits 5022 .align 1 5023 .global FlashGetBadBlockList 5024 .syntax unified 5025 .thumb 5026 .thumb_func 5027 .fpu softvfp 5028 .type FlashGetBadBlockList, %function 5029FlashGetBadBlockList: 5030 @ args = 0, pretend = 0, frame = 0 5031 @ frame_needed = 0, uses_anonymous_args = 0 5032 push {r3, r4, r5, lr} 5033 mov r2, #256 5034 mov r5, r1 5035 movs r1, #255 5036 mov r4, r0 5037 bl ftl_memset 5038 ldr r3, .L608 5039 mov r1, r5 5040 mov r0, r4 5041 ldr r3, [r3] 5042 blx r3 5043 uxth r0, r0 5044 cmp r0, #50 5045 bls .L602 5046 mov r2, #256 5047 movs r1, #255 5048 mov r0, r4 5049 bl ftl_memset 5050 movs r0, #0 5051.L602: 5052 ldr r3, .L608+4 5053 ldrh r3, [r3, #14] 5054 cmp r3, #4 5055 bne .L607 5056 add r1, r4, r0, lsl #1 5057 mov r3, r4 5058.L604: 5059 cmp r3, r1 5060 bne .L605 5061.L607: 5062 pop {r3, r4, r5, pc} 5063.L605: 5064 ldrh r2, [r3] 5065 lsrs r2, r2, #1 5066 strh r2, [r3], #2 @ movhi 5067 b .L604 5068.L609: 5069 .align 2 5070.L608: 5071 .word .LANCHOR105 5072 .word .LANCHOR0 5073 .size FlashGetBadBlockList, .-FlashGetBadBlockList 5074 .section .text.ftl_memcpy,"ax",%progbits 5075 .align 1 5076 .global ftl_memcpy 5077 .syntax unified 5078 .thumb 5079 .thumb_func 5080 .fpu softvfp 5081 .type ftl_memcpy, %function 5082ftl_memcpy: 5083 @ args = 0, pretend = 0, frame = 0 5084 @ frame_needed = 0, uses_anonymous_args = 0 5085 @ link register save eliminated. 5086 b memcpy 5087 .size ftl_memcpy, .-ftl_memcpy 5088 .section .text.FlashReadPages,"ax",%progbits 5089 .align 1 5090 .global FlashReadPages 5091 .syntax unified 5092 .thumb 5093 .thumb_func 5094 .fpu softvfp 5095 .type FlashReadPages, %function 5096FlashReadPages: 5097 @ args = 0, pretend = 0, frame = 16 5098 @ frame_needed = 0, uses_anonymous_args = 0 5099 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 5100 mov fp, r1 5101 ldr r3, .L639 5102 mov r4, r0 5103 mov r10, #0 5104 ldrh r2, [r3, #12] 5105 str r3, [sp, #4] 5106 str r2, [sp] 5107.L612: 5108 cmp r10, fp 5109 bne .L623 5110 movs r0, #0 5111 add sp, sp, #16 5112 @ sp needed 5113 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5114.L623: 5115 ldr r3, [r4, #8] 5116 cbz r3, .L613 5117 ldr r3, [r4, #12] 5118 cbnz r3, .L614 5119.L613: 5120 movs r2, #90 5121 ldr r1, .L639+4 5122 ldr r0, .L639+8 5123 bl printf 5124.L614: 5125 add r2, sp, #8 5126 add r1, sp, #12 5127 ldr r0, [r4, #4] 5128 bl l2p_addr_tran.isra.0 5129 ldr r0, [sp, #8] 5130 cmp r0, #3 5131 bls .L615 5132 mov r3, #-1 5133 str r3, [r4] 5134.L616: 5135 add r10, r10, #1 5136 adds r4, r4, #20 5137 b .L612 5138.L615: 5139 ldr r5, [r4, #8] 5140 uxtb r0, r0 5141 ldr r8, .L639+20 5142 ldr r7, .L639+12 5143 tst r5, #63 5144 ldr r3, [r4, #12] 5145 it ne 5146 ldrne r5, [r8] 5147 ldr r1, [sp, #12] 5148 ldr r6, [r7, #12] 5149 mov r2, r5 5150 blx r6 5151 ldr r3, [sp, #4] 5152 str r0, [r4] 5153 ldrh r3, [r3, #14] 5154 cmp r3, #4 5155 bne .L619 5156 ldr r0, [sp] 5157 add r2, r5, #2048 5158 ldr r3, [r4, #12] 5159 ldr r1, [sp, #12] 5160 ldr r7, [r7, #12] 5161 adds r3, r3, #8 5162 add r1, r1, r0 5163 ldrb r0, [sp, #8] @ zero_extendqisi2 5164 blx r7 5165 adds r3, r0, #1 5166 beq .L620 5167 ldr r3, [r4, #12] 5168 ldr r2, [r3, #12] 5169 adds r2, r2, #1 5170 bne .L621 5171 ldr r2, [r3, #8] 5172 adds r2, r2, #1 5173 bne .L621 5174 ldr r3, [r3] 5175 adds r3, r3, #1 5176 beq .L621 5177.L620: 5178 mov r3, #-1 5179 str r3, [r4] 5180.L621: 5181 ldr r3, [r4] 5182 adds r3, r3, #1 5183 beq .L619 5184 cmp r0, #256 5185 it eq 5186 streq r0, [r4] 5187.L619: 5188 ldr r3, [r8] 5189 cmp r5, r3 5190 bne .L616 5191 ldr r0, [r4, #8] 5192 cmp r5, r0 5193 beq .L616 5194 ldr r3, .L639+16 5195 mov r1, r5 5196 ldrh r2, [r3] 5197 lsls r2, r2, #9 5198 bl ftl_memcpy 5199 b .L616 5200.L640: 5201 .align 2 5202.L639: 5203 .word .LANCHOR0 5204 .word .LANCHOR147 5205 .word .LC1 5206 .word .LANCHOR105 5207 .word .LANCHOR12 5208 .word .LANCHOR120 5209 .size FlashReadPages, .-FlashReadPages 5210 .section .text.FtlLoadFactoryBbt,"ax",%progbits 5211 .align 1 5212 .global FtlLoadFactoryBbt 5213 .syntax unified 5214 .thumb 5215 .thumb_func 5216 .fpu softvfp 5217 .type FtlLoadFactoryBbt, %function 5218FtlLoadFactoryBbt: 5219 @ args = 0, pretend = 0, frame = 0 5220 @ frame_needed = 0, uses_anonymous_args = 0 5221 ldr r3, .L651 5222 push {r4, r5, r6, r7, r8, r10, fp, lr} 5223 movs r6, #0 5224 ldr r5, .L651+4 5225 ldr r3, [r3] 5226 ldr r7, .L651+8 5227 ldr r10, .L651+20 5228 str r3, [r5, #8] 5229 ldr r3, .L651+12 5230 ldr r8, [r3] 5231 str r8, [r5, #12] 5232.L642: 5233 ldr r3, .L651+16 5234 ldrh r3, [r3] 5235 cmp r6, r3 5236 bcc .L647 5237 movs r0, #0 5238 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5239.L647: 5240 ldrh r4, [r10] 5241 movw r3, #65535 5242 ldr fp, .L651+4 5243 strh r3, [r7, #2]! @ movhi 5244 subs r4, r4, #1 5245 uxth r4, r4 5246.L643: 5247 ldrh r3, [r10] 5248 sub r2, r3, #15 5249 cmp r2, r4 5250 bgt .L645 5251 mla r3, r6, r3, r4 5252 movs r2, #1 5253 mov r1, r2 5254 mov r0, fp 5255 lsls r3, r3, #10 5256 str r3, [r5, #4] 5257 bl FlashReadPages 5258 ldr r3, [r5] 5259 adds r3, r3, #1 5260 beq .L644 5261 ldrh r2, [r8] 5262 movw r3, #61664 5263 cmp r2, r3 5264 bne .L644 5265 strh r4, [r7] @ movhi 5266.L645: 5267 adds r6, r6, #1 5268 b .L642 5269.L644: 5270 subs r4, r4, #1 5271 uxth r4, r4 5272 b .L643 5273.L652: 5274 .align 2 5275.L651: 5276 .word .LANCHOR115 5277 .word .LANCHOR148 5278 .word .LANCHOR37+10 5279 .word .LANCHOR123 5280 .word .LANCHOR10 5281 .word .LANCHOR17 5282 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 5283 .section .text.FtlGetLastWrittenPage,"ax",%progbits 5284 .align 1 5285 .global FtlGetLastWrittenPage 5286 .syntax unified 5287 .thumb 5288 .thumb_func 5289 .fpu softvfp 5290 .type FtlGetLastWrittenPage, %function 5291FtlGetLastWrittenPage: 5292 @ args = 0, pretend = 0, frame = 88 5293 @ frame_needed = 0, uses_anonymous_args = 0 5294 cmp r1, #1 5295 push {r4, r5, r6, r7, r8, lr} 5296 it eq 5297 ldreq r3, .L665 5298 sub sp, sp, #88 5299 lsl r7, r0, #10 5300 mov r2, r1 5301 it ne 5302 ldrne r3, .L665+4 5303 mov r6, r1 5304 add r0, sp, #4 5305 movs r1, #1 5306 ldrh r5, [r3] 5307 ldr r3, .L665+8 5308 subs r5, r5, #1 5309 ldr r3, [r3] 5310 sxth r5, r5 5311 str r3, [sp, #12] 5312 add r3, sp, #24 5313 str r3, [sp, #16] 5314 orr r3, r5, r7 5315 str r3, [sp, #8] 5316 bl FlashReadPages 5317 ldr r3, [sp, #24] 5318 adds r3, r3, #1 5319 bne .L656 5320 mov r8, #0 5321.L657: 5322 cmp r8, r5 5323 ble .L660 5324.L656: 5325 mov r0, r5 5326 add sp, sp, #88 5327 @ sp needed 5328 pop {r4, r5, r6, r7, r8, pc} 5329.L660: 5330 add r3, r8, r5 5331 mov r2, r6 5332 add r3, r3, r3, lsr #31 5333 movs r1, #1 5334 add r0, sp, #4 5335 asrs r4, r3, #1 5336 sxth r3, r4 5337 orrs r3, r3, r7 5338 str r3, [sp, #8] 5339 bl FlashReadPages 5340 ldr r3, [sp, #24] 5341 adds r3, r3, #1 5342 bne .L658 5343 ldr r3, [sp, #28] 5344 adds r3, r3, #1 5345 bne .L658 5346 ldr r3, [sp, #4] 5347 adds r3, r3, #1 5348 beq .L658 5349 subs r4, r4, #1 5350 sxth r5, r4 5351 b .L657 5352.L658: 5353 adds r4, r4, #1 5354 sxth r8, r4 5355 b .L657 5356.L666: 5357 .align 2 5358.L665: 5359 .word .LANCHOR20 5360 .word .LANCHOR19 5361 .word .LANCHOR121 5362 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 5363 .section .text.FtlScanSysBlk,"ax",%progbits 5364 .align 1 5365 .global FtlScanSysBlk 5366 .syntax unified 5367 .thumb 5368 .thumb_func 5369 .fpu softvfp 5370 .type FtlScanSysBlk, %function 5371FtlScanSysBlk: 5372 @ args = 0, pretend = 0, frame = 32 5373 @ frame_needed = 0, uses_anonymous_args = 0 5374 push {r4, r5, r6, r7, r8, r10, fp, lr} 5375 movs r4, #0 5376 ldr r5, .L748 5377 sub sp, sp, #32 5378 mov r1, r4 5379 ldr r3, .L748+4 5380 ldr r2, [r5] 5381 ldr r6, .L748+8 5382 strh r4, [r3] @ movhi 5383 ldr r3, .L748+12 5384 lsls r2, r2, #2 5385 strh r4, [r6] @ movhi 5386 ldr r7, .L748+16 5387 ldr r0, [r3] 5388 bl ftl_memset 5389 ldr r2, [r5] 5390 mov r1, r4 5391 ldr r3, .L748+20 5392 lsls r2, r2, #1 5393 ldr r0, [r3] 5394 bl ftl_memset 5395 ldrh r2, [r7] 5396 mov r1, r4 5397 ldr r3, .L748+24 5398 lsls r2, r2, #2 5399 ldr r0, [r3] 5400 bl ftl_memset 5401 ldrh r2, [r7] 5402 mov r1, r4 5403 ldr r3, .L748+28 5404 lsls r2, r2, #1 5405 ldr r0, [r3] 5406 bl ftl_memset 5407 movs r2, #12 5408 movs r1, #255 5409 ldr r0, .L748+32 5410 bl ftl_memset 5411 ldr r3, .L748+36 5412 str r6, [sp, #12] 5413 str r5, [sp, #16] 5414 ldrh r3, [r3] 5415 str r3, [sp, #4] 5416.L668: 5417 ldr r3, .L748+40 5418 ldr r2, [sp, #4] 5419 ldrh r3, [r3] 5420 cmp r3, r2 5421 bls .L709 5422 ldr r3, .L748+44 5423 movs r5, #0 5424 ldr r1, .L748+48 5425 mov fp, r5 5426 movs r7, #20 5427 ldrh r8, [r3] 5428 ldr r3, .L748+52 5429 ldr r2, [r1] 5430 ldr r1, .L748+56 5431 ldr r6, [r3] 5432 ldr r3, .L748+60 5433 str r2, [sp, #8] 5434 ldrh r10, [r1] 5435 ldr r3, [r3] 5436 ldr r2, .L748+64 5437 b .L710 5438.L670: 5439 ldrb r0, [r2, r5] @ zero_extendqisi2 5440 ldr r1, [sp, #4] 5441 str r3, [sp, #28] 5442 str r2, [sp, #24] 5443 bl V2P_block 5444 str r0, [sp, #20] 5445 bl FtlBbmIsBadBlock 5446 ldr r2, [sp, #24] 5447 ldr r3, [sp, #28] 5448 cbnz r0, .L669 5449 ldr r1, [sp, #20] 5450 mla r0, r7, fp, r6 5451 ldr r4, [sp, #8] 5452 lsls r1, r1, #10 5453 str r3, [r0, #8] 5454 str r1, [r0, #4] 5455 mul r1, r10, fp 5456 bic r1, r1, #3 5457 add r1, r1, r4 5458 str r1, [r0, #12] 5459 add r1, fp, #1 5460 uxth fp, r1 5461.L669: 5462 adds r5, r5, #1 5463.L710: 5464 uxth r1, r5 5465 cmp r8, r1 5466 bhi .L670 5467 cmp fp, #0 5468 bne .L671 5469.L708: 5470 ldr r3, [sp, #4] 5471 adds r3, r3, #1 5472 uxth r3, r3 5473 str r3, [sp, #4] 5474 b .L668 5475.L671: 5476 movs r7, #0 5477 movs r2, #1 5478 mov r1, fp 5479 mov r0, r6 5480 bl FlashReadPages 5481.L672: 5482 uxth r3, r7 5483 cmp fp, r3 5484 bls .L708 5485 ldr r3, .L748+52 5486 mov r8, #20 5487 mul r8, r8, r7 5488 ldr r3, [r3] 5489 add r2, r3, r8 5490 ldr r3, [r3, r8] 5491 ldr r5, [r2, #4] 5492 ldr r6, [r2, #12] 5493 adds r3, r3, #1 5494 ubfx r5, r5, #10, #16 5495 bne .L675 5496 mov r10, #16 5497.L677: 5498 ldr r3, .L748+52 5499 movs r2, #1 5500 mov r1, r2 5501 ldr r0, [r3] 5502 add r0, r0, r8 5503 ldr r3, [r0, #4] 5504 adds r3, r3, #1 5505 str r3, [r0, #4] 5506 bl FlashReadPages 5507 ldrh r2, [r6] 5508 movw r3, #65535 5509 cmp r2, r3 5510 ldr r3, .L748+52 5511 ldr r3, [r3] 5512 bne .L674 5513 mov r2, #-1 5514 str r2, [r3, r8] 5515 ldr r3, .L748+52 5516 ldr r3, [r3] 5517 ldr r3, [r3, r8] 5518 cmp r3, r2 5519 bne .L675 5520.L676: 5521 movs r1, #1 5522 b .L747 5523.L674: 5524 ldr r3, [r3, r8] 5525 adds r3, r3, #1 5526 bne .L675 5527 add r10, r10, #-1 5528 uxth r10, r10 5529 cmp r10, #0 5530 bne .L677 5531 b .L676 5532.L675: 5533 ldr r3, .L748+68 5534 ldr r2, [r3] 5535 ldr r3, [r6, #4] 5536 adds r1, r2, #1 5537 beq .L678 5538 cmp r2, r3 5539 bhi .L679 5540.L678: 5541 adds r2, r3, #1 5542 ittt ne 5543 ldrne r1, .L748+68 5544 addne r2, r3, #1 5545 strne r2, [r1] 5546.L679: 5547 ldrh r2, [r6] 5548 movw r1, #61604 5549 cmp r2, r1 5550 beq .L681 5551 bhi .L682 5552 movw r3, #61574 5553 cmp r2, r3 5554 beq .L683 5555.L680: 5556 adds r7, r7, #1 5557 b .L672 5558.L682: 5559 movw r3, #61634 5560 cmp r2, r3 5561 beq .L684 5562 movw r3, #65535 5563 cmp r2, r3 5564 bne .L680 5565 movs r1, #0 5566.L747: 5567 mov r0, r5 5568 bl FtlFreeSysBlkQueueIn 5569 b .L680 5570.L684: 5571 ldr r3, .L748+8 5572 ldrh r2, [r3] 5573 ldr r3, .L748 5574 ldr r3, [r3] 5575 cmp r2, r3 5576 bls .L686 5577 movw r2, #1222 5578 ldr r1, .L748+72 5579 ldr r0, .L748+76 5580 bl printf 5581.L686: 5582 ldr r3, [sp, #16] 5583 ldr r2, [sp, #12] 5584 ldr r1, [r3] 5585 ldrh r0, [r2] 5586 ldr r2, .L748+12 5587 uxth r10, r1 5588 ldr ip, [r2] 5589 add r3, r10, #-1 5590 sub r10, r10, r0 5591 add r10, r10, #-1 5592 sxth r3, r3 5593 sxth r10, r10 5594.L687: 5595 cmp r3, r10 5596 bgt .L693 5597 cmp r3, #0 5598 bge .L725 5599 b .L680 5600.L693: 5601 ldr r2, [ip, r3, lsl #2] 5602 add r8, ip, r3, lsl #2 5603 ldr r4, [r6, #4] 5604 cmp r4, r2 5605 bls .L688 5606 ldr r2, [ip] 5607 cbnz r2, .L689 5608 cmp r1, r0 5609 ittt ne 5610 ldrne r2, .L748+8 5611 addne r0, r0, #1 5612 strhne r0, [r2] @ movhi 5613.L689: 5614 ldr r2, .L748+20 5615 uxth r10, r3 5616 ldr r0, [r2] 5617 movs r2, #0 5618.L690: 5619 uxth lr, r2 5620 sxth r1, r2 5621 cmp r10, lr 5622 bhi .L691 5623 ldr r2, [r6, #4] 5624 cmp r3, #0 5625 str r2, [r8] 5626 strh r5, [r0, r3, lsl #1] @ movhi 5627 blt .L680 5628 ldr r2, .L748+8 5629 ldrh r0, [r2] 5630 ldr r2, .L748 5631 ldr r2, [r2] 5632 subs r2, r2, r0 5633 subs r2, r2, #1 5634 sxth r2, r2 5635 cmp r3, r2 5636 bgt .L680 5637.L725: 5638 ldr r2, .L748+8 5639 adds r0, r0, #1 5640 strh r0, [r2] @ movhi 5641 ldr r2, [r6, #4] 5642 str r2, [ip, r3, lsl #2] 5643 ldr r2, .L748+20 5644.L745: 5645 ldr r2, [r2] 5646 strh r5, [r2, r3, lsl #1] @ movhi 5647 b .L680 5648.L691: 5649 add lr, ip, r1, lsl #2 5650 adds r2, r2, #1 5651 ldr r4, [lr, #4] 5652 add lr, r0, r1, lsl #1 5653 ldrh lr, [lr, #2] 5654 str r4, [ip, r1, lsl #2] 5655 strh lr, [r0, r1, lsl #1] @ movhi 5656 b .L690 5657.L688: 5658 subs r3, r3, #1 5659 sxth r3, r3 5660 b .L687 5661.L749: 5662 .align 2 5663.L748: 5664 .word .LANCHOR30 5665 .word .LANCHOR35 5666 .word .LANCHOR141 5667 .word .LANCHOR135 5668 .word .LANCHOR27 5669 .word .LANCHOR129 5670 .word .LANCHOR132 5671 .word .LANCHOR36 5672 .word .LANCHOR79 5673 .word .LANCHOR5 5674 .word .LANCHOR6 5675 .word .LANCHOR3 5676 .word .LANCHOR92 5677 .word .LANCHOR112 5678 .word .LANCHOR24 5679 .word .LANCHOR91 5680 .word .LANCHOR13 5681 .word .LANCHOR70 5682 .word .LANCHOR149 5683 .word .LC1 5684.L683: 5685 ldr r8, .L750+12 5686 ldr r10, .L750+20 5687 ldrh r2, [r8] 5688 ldrh r3, [r10] 5689 cmp r2, r3 5690 bls .L696 5691 movw r2, #1263 5692 ldr r1, .L750 5693 ldr r0, .L750+4 5694 bl printf 5695.L696: 5696 ldr r2, .L750+8 5697 ldrh lr, [r10] 5698 ldrh ip, [r8] 5699 ldr r0, [r2] 5700 add r10, lr, #-1 5701 sxth r3, r10 5702 sub r10, r10, ip 5703.L697: 5704 cmp r3, r10 5705 ble .L702 5706 ldr r1, [r6, #4] 5707 add r8, r0, r3, lsl #2 5708 ldr r2, [r0, r3, lsl #2] 5709 cmp r1, r2 5710 bls .L698 5711 ldr r2, [r0] 5712 cbnz r2, .L699 5713 cmp lr, ip 5714 ittt ne 5715 ldrne r2, .L750+12 5716 addne ip, ip, #1 5717 strhne ip, [r2] @ movhi 5718.L699: 5719 ldr r2, .L750+16 5720 uxth r10, r3 5721 ldr ip, [r2] 5722 movs r2, #0 5723.L700: 5724 uxth lr, r2 5725 sxth r1, r2 5726 cmp r10, lr 5727 bhi .L701 5728 ldr r2, [r6, #4] 5729 str r2, [r8] 5730 strh r5, [ip, r3, lsl #1] @ movhi 5731.L702: 5732 cmp r3, #0 5733 blt .L680 5734 ldr r2, .L750+20 5735 ldr ip, .L750+12 5736 ldrh r2, [r2] 5737 ldrh r1, [ip] 5738 subs r2, r2, #1 5739 subs r2, r2, r1 5740 sxth r2, r2 5741 cmp r3, r2 5742 bgt .L680 5743 ldr r2, [r6, #4] 5744 adds r1, r1, #1 5745 strh r1, [ip] @ movhi 5746 str r2, [r0, r3, lsl #2] 5747 ldr r2, .L750+16 5748 b .L745 5749.L701: 5750 add lr, r0, r1, lsl #2 5751 adds r2, r2, #1 5752 ldr r4, [lr, #4] 5753 add lr, ip, r1, lsl #1 5754 ldrh lr, [lr, #2] 5755 str r4, [r0, r1, lsl #2] 5756 strh lr, [ip, r1, lsl #1] @ movhi 5757 b .L700 5758.L698: 5759 subs r3, r3, #1 5760 sxth r3, r3 5761 b .L697 5762.L681: 5763 ldr r8, .L750+40 5764 movw r2, #65535 5765 ldrh r1, [r8] 5766 cmp r1, r2 5767 bne .L704 5768.L746: 5769 strh r5, [r8] @ movhi 5770 str r3, [r8, #8] 5771 b .L680 5772.L704: 5773 ldrh r0, [r8, #4] 5774 cmp r0, r2 5775 beq .L705 5776 movs r1, #1 5777 bl FtlFreeSysBlkQueueIn 5778.L705: 5779 ldr r3, [r6, #4] 5780 ldr r2, [r8, #8] 5781 cmp r2, r3 5782 bcs .L706 5783 ldrh r2, [r8] 5784 strh r2, [r8, #4] @ movhi 5785 b .L746 5786.L706: 5787 strh r5, [r8, #4] @ movhi 5788 b .L680 5789.L709: 5790 ldr r3, .L750+24 5791 ldr r2, [r3] 5792 ldrh r3, [r2] 5793 cbz r3, .L711 5794.L714: 5795 ldr r3, .L750+16 5796 ldr r4, [r3] 5797 ldrh r2, [r4] 5798 cmp r2, #0 5799 beq .L712 5800.L713: 5801 ldr r3, .L750+28 5802 ldrh r2, [r3] 5803 ldr r3, .L750+32 5804 ldr r3, [r3] 5805 cmp r2, r3 5806 bls .L744 5807 movw r2, #1388 5808 ldr r1, .L750 5809 ldr r0, .L750+4 5810 bl printf 5811.L744: 5812 movs r0, #0 5813 add sp, sp, #32 5814 @ sp needed 5815 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5816.L711: 5817 ldr r1, .L750+28 5818 ldrh r1, [r1] 5819 cmp r1, #0 5820 beq .L714 5821 ldr r5, .L750+32 5822 ldr r0, [r5] 5823.L715: 5824 sxth r1, r3 5825 cmp r1, r0 5826 bcs .L714 5827 ldrh r4, [r2, r1, lsl #1] 5828 adds r3, r3, #1 5829 cmp r4, #0 5830 beq .L715 5831 ldr r3, .L750+36 5832 movs r6, #0 5833 ldr r0, [r3] 5834 mov r3, r1 5835.L716: 5836 ldr r4, [r5] 5837 cmp r3, r4 5838 bcs .L714 5839 ldrh r7, [r2, r3, lsl #1] 5840 subs r4, r3, r1 5841 strh r7, [r2, r4, lsl #1] @ movhi 5842 ldr r7, [r0, r3, lsl #2] 5843 str r7, [r0, r4, lsl #2] 5844 strh r6, [r2, r3, lsl #1] @ movhi 5845 adds r3, r3, #1 5846 sxth r3, r3 5847 b .L716 5848.L712: 5849 ldr r3, .L750+12 5850 ldrh r3, [r3] 5851 cmp r3, #0 5852 beq .L713 5853 ldr r5, .L750+20 5854 ldrh r1, [r5] 5855.L721: 5856 sxth r3, r2 5857 cmp r3, r1 5858 mov r6, r3 5859 bge .L713 5860 ldrh r0, [r4, r3, lsl #1] 5861 adds r2, r2, #1 5862 cmp r0, #0 5863 beq .L721 5864 ldr r2, .L750+8 5865 movs r0, #0 5866 ldr r2, [r2] 5867.L722: 5868 ldrh r1, [r5] 5869 cmp r3, r1 5870 bge .L713 5871 ldrh r7, [r4, r3, lsl #1] 5872 subs r1, r3, r6 5873 strh r7, [r4, r1, lsl #1] @ movhi 5874 ldr r7, [r2, r3, lsl #2] 5875 str r7, [r2, r1, lsl #2] 5876 adds r1, r3, #1 5877 strh r0, [r4, r3, lsl #1] @ movhi 5878 sxth r3, r1 5879 b .L722 5880.L751: 5881 .align 2 5882.L750: 5883 .word .LANCHOR149 5884 .word .LC1 5885 .word .LANCHOR132 5886 .word .LANCHOR35 5887 .word .LANCHOR36 5888 .word .LANCHOR27 5889 .word .LANCHOR129 5890 .word .LANCHOR141 5891 .word .LANCHOR30 5892 .word .LANCHOR135 5893 .word .LANCHOR79 5894 .size FtlScanSysBlk, .-FtlScanSysBlk 5895 .section .text.FtlLoadBbt,"ax",%progbits 5896 .align 1 5897 .global FtlLoadBbt 5898 .syntax unified 5899 .thumb 5900 .thumb_func 5901 .fpu softvfp 5902 .type FtlLoadBbt, %function 5903FtlLoadBbt: 5904 @ args = 0, pretend = 0, frame = 0 5905 @ frame_needed = 0, uses_anonymous_args = 0 5906 push {r3, r4, r5, r6, r7, r8, r10, lr} 5907 ldr r8, .L781+40 5908 ldr r4, .L781 5909 ldr r3, [r8] 5910 ldr r7, .L781+4 5911 mov r10, r4 5912 str r3, [r4, #8] 5913 ldr r3, .L781+8 5914 ldr r6, [r3] 5915 str r6, [r4, #12] 5916 bl FtlBbtMemInit 5917 ldrh r5, [r7] 5918 subs r5, r5, #1 5919 uxth r5, r5 5920.L753: 5921 ldrh r3, [r7] 5922 subs r3, r3, #15 5923 cmp r3, r5 5924 bgt .L756 5925 lsls r3, r5, #10 5926 movs r2, #1 5927 mov r1, r2 5928 mov r0, r10 5929 str r3, [r4, #4] 5930 bl FlashReadPages 5931 ldr r3, [r4] 5932 adds r3, r3, #1 5933 bne .L754 5934 ldr r3, [r4, #4] 5935 movs r2, #1 5936 mov r1, r2 5937 mov r0, r10 5938 adds r3, r3, #1 5939 str r3, [r4, #4] 5940 bl FlashReadPages 5941.L754: 5942 ldr r3, [r4] 5943 adds r3, r3, #1 5944 beq .L755 5945 ldrh r2, [r6] 5946 movw r3, #61649 5947 cmp r2, r3 5948 bne .L755 5949 ldr r3, .L781+12 5950 ldr r2, [r6, #4] 5951 strh r5, [r3] @ movhi 5952 str r2, [r3, #8] 5953 ldrh r2, [r6, #8] 5954 strh r2, [r3, #4] @ movhi 5955.L756: 5956 ldr r5, .L781+12 5957 movw r2, #65535 5958 ldrh r3, [r5] 5959 cmp r3, r2 5960 beq .L770 5961 ldrh r3, [r5, #4] 5962 cmp r3, r2 5963 beq .L760 5964 lsls r3, r3, #10 5965 movs r2, #1 5966 mov r1, r2 5967 ldr r0, .L781 5968 str r3, [r4, #4] 5969 bl FlashReadPages 5970 ldr r3, [r4] 5971 adds r3, r3, #1 5972 beq .L760 5973 ldrh r2, [r6] 5974 movw r3, #61649 5975 cmp r2, r3 5976 bne .L760 5977 ldr r3, [r6, #4] 5978 ldr r2, [r5, #8] 5979 cmp r3, r2 5980 bls .L760 5981 ldrh r2, [r5, #4] 5982 str r3, [r5, #8] 5983 ldrh r3, [r6, #8] 5984 strh r2, [r5] @ movhi 5985 strh r3, [r5, #4] @ movhi 5986.L760: 5987 ldr r10, .L781 5988 movs r1, #1 5989 ldrh r0, [r5] 5990 bl FtlGetLastWrittenPage 5991 sxth r7, r0 5992 adds r0, r0, #1 5993 strh r0, [r5, #2] @ movhi 5994.L762: 5995 cmp r7, #0 5996 bge .L765 5997 movs r2, #253 5998 ldr r1, .L781+16 5999 ldr r0, .L781+20 6000 bl printf 6001.L764: 6002 ldrh r3, [r6, #10] 6003 ldrh r0, [r6, #12] 6004 strh r3, [r5, #6] @ movhi 6005 movw r3, #65535 6006 cmp r0, r3 6007 beq .L767 6008 ldr r3, .L781+24 6009 ldr r2, [r3] 6010 cmp r0, r2 6011 beq .L767 6012 ldr r3, .L781+28 6013 ldrh r3, [r3] 6014 lsrs r3, r3, #2 6015 cmp r2, r3 6016 bcs .L767 6017 cmp r0, r3 6018 bcs .L767 6019 bl FtlSysBlkNumInit 6020.L767: 6021 ldr r6, .L781+32 6022 movs r5, #0 6023 ldr r7, .L781+36 6024 ldr r8, .L781+44 6025.L768: 6026 ldrh r3, [r7] 6027 cmp r5, r3 6028 bcc .L769 6029 movs r0, #0 6030 pop {r3, r4, r5, r6, r7, r8, r10, pc} 6031.L755: 6032 subs r5, r5, #1 6033 uxth r5, r5 6034 b .L753 6035.L765: 6036 ldrh r3, [r5] 6037 movs r2, #1 6038 mov r1, r2 6039 mov r0, r10 6040 orr r3, r7, r3, lsl #10 6041 str r3, [r4, #4] 6042 ldr r3, [r8] 6043 str r3, [r4, #8] 6044 bl FlashReadPages 6045 ldr r3, [r4] 6046 adds r3, r3, #1 6047 beq .L763 6048 ldrh r2, [r6] 6049 movw r3, #61649 6050 cmp r2, r3 6051 beq .L764 6052.L763: 6053 subs r7, r7, #1 6054 sxth r7, r7 6055 b .L762 6056.L769: 6057 ldrh r2, [r8] 6058 ldr r1, [r4, #8] 6059 ldr r0, [r6, #4]! 6060 lsls r2, r2, #2 6061 mla r1, r5, r2, r1 6062 adds r5, r5, #1 6063 bl ftl_memcpy 6064 b .L768 6065.L770: 6066 mov r0, #-1 6067 pop {r3, r4, r5, r6, r7, r8, r10, pc} 6068.L782: 6069 .align 2 6070.L781: 6071 .word .LANCHOR148 6072 .word .LANCHOR17 6073 .word .LANCHOR123 6074 .word .LANCHOR37 6075 .word .LANCHOR150 6076 .word .LC1 6077 .word .LANCHOR2 6078 .word .LANCHOR6 6079 .word .LANCHOR37+24 6080 .word .LANCHOR10 6081 .word .LANCHOR115 6082 .word .LANCHOR137 6083 .size FtlLoadBbt, .-FtlLoadBbt 6084 .section .text.FtlLoadSysInfo,"ax",%progbits 6085 .align 1 6086 .global FtlLoadSysInfo 6087 .syntax unified 6088 .thumb 6089 .thumb_func 6090 .fpu softvfp 6091 .type FtlLoadSysInfo, %function 6092FtlLoadSysInfo: 6093 @ args = 0, pretend = 0, frame = 8 6094 @ frame_needed = 0, uses_anonymous_args = 0 6095 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6096 movs r1, #0 6097 ldr r8, .L804+136 6098 ldr r5, .L804 6099 ldr r3, [r8] 6100 ldr r4, .L804+4 6101 ldr r10, .L804+140 6102 ldrh r2, [r5] 6103 ldr r7, .L804+8 6104 str r3, [r4, #8] 6105 ldr r6, .L804+12 6106 ldr r3, [r10] 6107 lsls r2, r2, #1 6108 ldr r0, [r7] 6109 str r3, [r4, #12] 6110 bl ftl_memset 6111 ldrh r0, [r6] 6112 movw r3, #65535 6113 str r7, [sp] 6114 cmp r0, r3 6115 bne .L784 6116.L792: 6117 mov r0, #-1 6118.L783: 6119 add sp, sp, #8 6120 @ sp needed 6121 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6122.L784: 6123 movs r1, #1 6124 mov fp, r4 6125 bl FtlGetLastWrittenPage 6126 ldr r3, .L804+16 6127 sxth r7, r0 6128 adds r0, r0, #1 6129 strh r0, [r6, #2] @ movhi 6130.L786: 6131 cmp r7, #0 6132 bge .L789 6133 mov r2, #1448 6134 ldr r1, .L804+20 6135 ldr r0, .L804+24 6136 bl printf 6137.L788: 6138 ldr r2, .L804+28 6139 ldrh r3, [r5] 6140 ldrh r2, [r2] 6141 adds r3, r3, #24 6142 cmp r2, r3, lsl #1 6143 bcs .L791 6144 movw r2, #1450 6145 ldr r1, .L804+20 6146 ldr r0, .L804+24 6147 bl printf 6148.L791: 6149 ldr r7, .L804+32 6150 movs r2, #48 6151 ldr r1, [r4, #8] 6152 mov r0, r7 6153 bl ftl_memcpy 6154 ldrh r2, [r5] 6155 ldr r1, [r4, #8] 6156 ldr r3, [sp] 6157 lsls r2, r2, #1 6158 adds r1, r1, #48 6159 ldr r0, [r3] 6160 bl ftl_memcpy 6161 ldrh r1, [r5] 6162 ldr r3, [r4, #8] 6163 mov r4, r7 6164 lsrs r2, r1, #3 6165 adds r1, r1, #24 6166 lsls r1, r1, #1 6167 adds r2, r2, #4 6168 bic r1, r1, #3 6169 add r1, r1, r3 6170 ldr r3, .L804+36 6171 ldr r0, [r3] 6172 bl ftl_memcpy 6173 ldr r2, [r7] 6174 ldr r3, .L804+16 6175 cmp r2, r3 6176 bne .L792 6177 ldr r3, .L804+40 6178 ldrb r2, [r7, #10] @ zero_extendqisi2 6179 ldrh r5, [r7, #8] 6180 ldrh r3, [r3] 6181 strh r5, [r6, #6] @ movhi 6182 cmp r2, r3 6183 bne .L792 6184 ldr r3, .L804+44 6185 ldr r2, .L804+48 6186 str r5, [r3] 6187 ldr r3, .L804+52 6188 ldrh r3, [r3] 6189 muls r3, r5, r3 6190 str r3, [r2] 6191 ldr r2, .L804+56 6192 ldrh r2, [r2] 6193 muls r3, r2, r3 6194 ldr r2, .L804+60 6195 str r3, [r2] 6196 ldr r3, .L804+64 6197 ldr r6, [r3] 6198 ldr r3, .L804+68 6199 ldrh r0, [r3, #6] 6200 ldr r3, .L804+72 6201 subs r0, r6, r0 6202 ldrh r1, [r3] 6203 subs r0, r0, r5 6204 bl __aeabi_uidiv 6205 ldr r3, .L804+76 6206 cmp r5, r6 6207 strh r0, [r3] @ movhi 6208 bls .L793 6209 mov r2, #1472 6210 ldr r1, .L804+20 6211 ldr r0, .L804+24 6212 bl printf 6213.L793: 6214 ldrh r2, [r4, #16] 6215 ldr r3, .L804+80 6216 ldrh ip, [r4, #14] 6217 ldr r7, .L804+84 6218 lsrs r1, r2, #6 6219 and r2, r2, #63 6220 strb r2, [r3, #6] 6221 ldrb r2, [r4, #11] @ zero_extendqisi2 6222 strh r1, [r3, #2] @ movhi 6223 ldr r1, .L804+88 6224 strb r2, [r3, #8] 6225 ldrh r2, [r4, #18] 6226 strh ip, [r3] @ movhi 6227 movw r3, #65535 6228 strh r3, [r7] @ movhi 6229 movs r3, #0 6230 strh r2, [r1] @ movhi 6231 ldrh r2, [r4, #20] 6232 strh r3, [r7, #2] @ movhi 6233 strb r3, [r7, #6] 6234 strb r3, [r7, #8] 6235 lsrs r5, r2, #6 6236 and r2, r2, #63 6237 strb r2, [r1, #6] 6238 ldrb r2, [r4, #12] @ zero_extendqisi2 6239 strh r5, [r1, #2] @ movhi 6240 ldrh r5, [r4, #22] 6241 strb r2, [r1, #8] 6242 ldr r2, .L804+92 6243 strh r5, [r2] @ movhi 6244 ldrh r5, [r4, #24] 6245 lsrs r6, r5, #6 6246 and r5, r5, #63 6247 strb r5, [r2, #6] 6248 ldrb r5, [r4, #13] @ zero_extendqisi2 6249 strh r6, [r2, #2] @ movhi 6250 ldr r6, [r4, #32] 6251 strb r5, [r2, #8] 6252 ldr r5, .L804+96 6253 str r3, [r5] 6254 ldr r5, .L804+100 6255 str r3, [r5] 6256 ldr r5, .L804+104 6257 str r3, [r5] 6258 ldr r5, .L804+108 6259 str r3, [r5] 6260 ldr r5, .L804+112 6261 str r6, [r5] 6262 mov r6, r1 6263 ldr r5, .L804+116 6264 str r3, [r5] 6265 ldr r5, .L804+120 6266 str r3, [r5] 6267 ldr r5, .L804+124 6268 ldr lr, [r4, #40] 6269 str r3, [r5] 6270 ldr r3, .L804+128 6271 ldr r5, [r3] 6272 cmp lr, r5 6273 mov r5, r2 6274 it hi 6275 strhi lr, [r3] 6276 ldr r3, .L804+132 6277 ldr r2, [r4, #36] 6278 ldr r1, [r3] 6279 cmp r2, r1 6280 it hi 6281 strhi r2, [r3] 6282 movw r3, #65535 6283 cmp ip, r3 6284 beq .L796 6285 ldr r0, .L804+80 6286 bl make_superblock 6287.L796: 6288 ldrh r2, [r6] 6289 movw r3, #65535 6290 cmp r2, r3 6291 beq .L797 6292 ldr r0, .L804+88 6293 bl make_superblock 6294.L797: 6295 ldrh r2, [r5] 6296 movw r3, #65535 6297 cmp r2, r3 6298 beq .L798 6299 ldr r0, .L804+92 6300 bl make_superblock 6301.L798: 6302 ldrh r2, [r7] 6303 movw r3, #65535 6304 cmp r2, r3 6305 beq .L799 6306 ldr r0, .L804+84 6307 bl make_superblock 6308.L799: 6309 movs r0, #0 6310 b .L783 6311.L789: 6312 ldrh r2, [r6] 6313 mov r0, fp 6314 str r3, [sp, #4] 6315 orr r2, r7, r2, lsl #10 6316 str r2, [r4, #4] 6317 ldr r2, [r8] 6318 str r2, [r4, #8] 6319 movs r2, #1 6320 mov r1, r2 6321 bl FlashReadPages 6322 ldr r2, [r4] 6323 ldr r3, [sp, #4] 6324 adds r2, r2, #1 6325 beq .L787 6326 ldr r2, [r8] 6327 ldr r2, [r2] 6328 cmp r2, r3 6329 bne .L787 6330 ldr r2, [r10] 6331 ldrh r1, [r2] 6332 movw r2, #61604 6333 cmp r1, r2 6334 beq .L788 6335.L787: 6336 subs r7, r7, #1 6337 sxth r7, r7 6338 b .L786 6339.L805: 6340 .align 2 6341.L804: 6342 .word .LANCHOR5 6343 .word .LANCHOR148 6344 .word .LANCHOR42 6345 .word .LANCHOR79 6346 .word 1179929683 6347 .word .LANCHOR151 6348 .word .LC1 6349 .word .LANCHOR23 6350 .word .LANCHOR39 6351 .word .LANCHOR1 6352 .word .LANCHOR10 6353 .word .LANCHOR152 6354 .word .LANCHOR61 6355 .word .LANCHOR19 6356 .word .LANCHOR12 6357 .word .LANCHOR34 6358 .word .LANCHOR7 6359 .word .LANCHOR37 6360 .word .LANCHOR3 6361 .word .LANCHOR78 6362 .word .LANCHOR51 6363 .word .LANCHOR80 6364 .word .LANCHOR52 6365 .word .LANCHOR53 6366 .word .LANCHOR67 6367 .word .LANCHOR64 6368 .word .LANCHOR62 6369 .word .LANCHOR66 6370 .word .LANCHOR72 6371 .word .LANCHOR73 6372 .word .LANCHOR76 6373 .word .LANCHOR65 6374 .word .LANCHOR70 6375 .word .LANCHOR71 6376 .word .LANCHOR115 6377 .word .LANCHOR123 6378 .size FtlLoadSysInfo, .-FtlLoadSysInfo 6379 .section .text.FlashProgPages,"ax",%progbits 6380 .align 1 6381 .global FlashProgPages 6382 .syntax unified 6383 .thumb 6384 .thumb_func 6385 .fpu softvfp 6386 .type FlashProgPages, %function 6387FlashProgPages: 6388 @ args = 0, pretend = 0, frame = 48 6389 @ frame_needed = 0, uses_anonymous_args = 0 6390 push {r4, r5, r6, r7, r8, r10, fp, lr} 6391 sub sp, sp, #48 6392 str r3, [sp, #12] 6393 mov r10, r1 6394 mov r4, r0 6395 mov r5, r0 6396 ldr r3, .L846 6397 mov r8, #0 6398 ldr fp, .L846+48 6399 str r2, [sp, #8] 6400 ldrh r3, [r3, #12] 6401 str r3, [sp] 6402 lsls r3, r3, #3 6403 str r3, [sp, #4] 6404.L807: 6405 cmp r8, r10 6406 bne .L820 6407 ldr r3, [sp, #12] 6408 cmp r3, #0 6409 beq .L838 6410 ldr r6, .L846+4 6411 movs r5, #0 6412.L822: 6413 cmp r8, r5 6414 beq .L838 6415 ldr r7, .L846+8 6416 movs r1, #0 6417 ldr r2, [r6] 6418 add r0, sp, #28 6419 ldr r3, [r7] 6420 str r1, [r2] 6421 str r1, [r3] 6422 ldr r1, [r4, #4] 6423 str r2, [sp, #36] 6424 ldr r2, [sp, #8] 6425 str r1, [sp, #32] 6426 movs r1, #1 6427 str r3, [sp, #40] 6428 bl FlashReadPages 6429 ldr r10, [sp, #28] 6430 cmp r10, #-1 6431 bne .L823 6432 ldr r1, [r4, #4] 6433 ldr r0, .L846+12 6434 bl printf 6435 str r10, [r4] 6436.L823: 6437 ldr r3, [r4, #12] 6438 cbz r3, .L824 6439 ldr r2, [r3] 6440 ldr r3, [r7] 6441 ldr r3, [r3] 6442 cmp r2, r3 6443 beq .L824 6444 ldr r1, [r4, #4] 6445 ldr r0, .L846+16 6446 bl printf 6447 mov r3, #-1 6448 str r3, [r4] 6449.L824: 6450 ldr r3, [r4, #8] 6451 cbz r3, .L825 6452 ldr r2, [r3] 6453 ldr r3, [r6] 6454 ldr r3, [r3] 6455 cmp r2, r3 6456 beq .L825 6457 ldr r1, [r4, #4] 6458 ldr r0, .L846+20 6459 bl printf 6460 mov r3, #-1 6461 str r3, [r4] 6462.L825: 6463 adds r5, r5, #1 6464 adds r4, r4, #20 6465 b .L822 6466.L820: 6467 ldr r3, [r5, #8] 6468 cbz r3, .L808 6469 ldr r3, [r5, #12] 6470 cbnz r3, .L809 6471.L808: 6472 movs r2, #134 6473 ldr r1, .L846+24 6474 ldr r0, .L846+28 6475 bl printf 6476.L809: 6477 add r2, sp, #20 6478 add r1, sp, #24 6479 ldr r0, [r5, #4] 6480 bl l2p_addr_tran.isra.0 6481 ldr r6, [sp, #20] 6482 cmp r6, #3 6483 bls .L810 6484.L845: 6485 mov r3, #-1 6486 str r3, [r5] 6487 b .L811 6488.L810: 6489 cbnz r6, .L812 6490 ldr r3, [sp, #24] 6491 ldr r2, [sp, #4] 6492 cmp r2, r3 6493 bls .L812 6494 ldr r5, .L846+24 6495 ldr r7, .L846+32 6496 b .L844 6497.L814: 6498 mov r3, #-1 6499 ldr r2, [r4, #-16] 6500 str r3, [r4, #-20] 6501 mov r1, r5 6502 mov r0, r7 6503 adds r6, r6, #1 6504 bl printf 6505 movs r3, #16 6506 movs r2, #4 6507 ldr r1, [r4, #-12] 6508 ldr r0, .L846+36 6509 bl rknand_print_hex 6510 movs r3, #4 6511 ldr r1, [r4, #-8] 6512 mov r2, r3 6513 ldr r0, .L846+40 6514 bl rknand_print_hex 6515.L844: 6516 cmp r6, r10 6517 add r4, r4, #20 6518 bne .L814 6519.L838: 6520 movs r0, #0 6521 add sp, sp, #48 6522 @ sp needed 6523 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6524.L812: 6525 ldr r1, [r5, #8] 6526 lsls r3, r1, #26 6527 beq .L827 6528 ldr r3, .L846+4 6529 ldr r6, [r3] 6530 cmp r1, r6 6531 beq .L815 6532 ldr r3, .L846+44 6533 mov r0, r6 6534 ldrh r2, [r3] 6535 lsls r2, r2, #9 6536 bl ftl_memcpy 6537.L815: 6538 ldr r3, [r5, #12] 6539 mov r2, r6 6540 ldr r1, [sp, #24] 6541 ldrb r0, [sp, #20] @ zero_extendqisi2 6542 ldr r7, [fp, #8] 6543 blx r7 6544 cbnz r0, .L816 6545 str r0, [r5] 6546.L817: 6547 ldr r3, .L846 6548 ldrh r3, [r3, #14] 6549 cmp r3, #4 6550 bne .L811 6551 ldr r0, [sp] 6552 add r2, r6, #2048 6553 ldr r3, [r5, #12] 6554 ldr r1, [sp, #24] 6555 ldr r6, [fp, #8] 6556 adds r3, r3, #8 6557 add r1, r1, r0 6558 ldrb r0, [sp, #20] @ zero_extendqisi2 6559 blx r6 6560 cmp r0, #0 6561 bne .L845 6562.L811: 6563 add r8, r8, #1 6564 adds r5, r5, #20 6565 b .L807 6566.L827: 6567 mov r6, r1 6568 b .L815 6569.L816: 6570 mov r3, #-1 6571 str r3, [r5] 6572 b .L817 6573.L847: 6574 .align 2 6575.L846: 6576 .word .LANCHOR0 6577 .word .LANCHOR120 6578 .word .LANCHOR122 6579 .word .LC85 6580 .word .LC86 6581 .word .LC87 6582 .word .LANCHOR153 6583 .word .LC1 6584 .word .LC79 6585 .word .LC80 6586 .word .LC81 6587 .word .LANCHOR12 6588 .word .LANCHOR105 6589 .size FlashProgPages, .-FlashProgPages 6590 .section .text.FtlLowFormatEraseBlock,"ax",%progbits 6591 .align 1 6592 .global FtlLowFormatEraseBlock 6593 .syntax unified 6594 .thumb 6595 .thumb_func 6596 .fpu softvfp 6597 .type FtlLowFormatEraseBlock, %function 6598FtlLowFormatEraseBlock: 6599 @ args = 0, pretend = 0, frame = 32 6600 @ frame_needed = 0, uses_anonymous_args = 0 6601 ldr r3, .L891 6602 push {r4, r5, r6, r7, r8, r10, fp, lr} 6603 sub sp, sp, #32 6604 ldr r7, .L891+4 6605 mov r8, #0 6606 mov r6, r1 6607 mov r5, r8 6608 str r0, [r3] 6609 mov r4, r8 6610 ldr r3, .L891+8 6611 mov fp, #20 6612 ldr r10, [r7] 6613 str r0, [sp, #4] 6614 ldrh r3, [r3] 6615 str r3, [sp, #12] 6616 ldr r3, .L891+12 6617 ldr r3, [r3] 6618 str r3, [sp, #16] 6619 ldr r3, .L891+16 6620 ldr r3, [r3] 6621 str r3, [sp, #20] 6622 ldr r3, .L891+20 6623 ldrh r3, [r3] 6624 str r3, [sp, #24] 6625.L849: 6626 ldr r3, [sp, #12] 6627 uxth r2, r8 6628 cmp r3, r2 6629 bhi .L853 6630 cmp r5, #0 6631 beq .L848 6632 mov r0, r10 6633 mov r8, #0 6634 mov r10, #20 6635 mov r2, r5 6636 movs r1, #0 6637 bl FlashEraseBlocks 6638.L856: 6639 uxth r3, r8 6640 cmp r5, r3 6641 bhi .L858 6642 cmp r6, #0 6643 beq .L874 6644 ldr r3, .L891+24 6645 mov r10, #1 6646 ldrh r3, [r3] 6647 str r3, [sp, #8] 6648.L859: 6649 movs r7, #0 6650.L868: 6651 ldr r3, .L891+8 6652 mov r8, #0 6653 mov r5, r8 6654 ldrh r3, [r3] 6655 str r3, [sp, #16] 6656 ldr r3, .L891+4 6657 ldr fp, [r3] 6658 ldr r3, .L891+28 6659 ldr r3, [r3] 6660 str r3, [sp, #20] 6661 ldr r3, .L891+12 6662 ldr r3, [r3] 6663 str r3, [sp, #24] 6664 ldr r3, .L891+20 6665 ldrh r3, [r3] 6666 str r3, [sp, #28] 6667.L860: 6668 ldr r3, [sp, #16] 6669 uxth r2, r8 6670 cmp r3, r2 6671 bhi .L863 6672 cbz r5, .L848 6673 mov r0, fp 6674 ldr fp, .L891+4 6675 movs r3, #1 6676 mov r2, r10 6677 mov r1, r5 6678 mov r8, #0 6679 bl FlashProgPages 6680 movs r3, #20 6681.L865: 6682 uxth r2, r8 6683 cmp r5, r2 6684 bhi .L867 6685 adds r7, r7, #1 6686 ldr r2, [sp, #8] 6687 uxth r3, r7 6688 cmp r2, r3 6689 bhi .L868 6690 ldr r8, .L891+4 6691 movs r7, #0 6692 mov fp, #20 6693.L869: 6694 uxth r3, r7 6695 cmp r5, r3 6696 bhi .L871 6697 ldr r3, [sp, #4] 6698 cmp r3, #63 6699 bls .L872 6700 cbz r6, .L848 6701.L872: 6702 ldr r3, .L891+4 6703 mov r2, r5 6704 mov r1, r10 6705 ldr r0, [r3] 6706 bl FlashEraseBlocks 6707.L848: 6708 mov r0, r4 6709 add sp, sp, #32 6710 @ sp needed 6711 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6712.L853: 6713 mul r2, fp, r8 6714 movs r3, #0 6715 ldr r1, [sp, #4] 6716 str r3, [r10, r2] 6717 ldr r3, .L891+32 6718 ldrb r0, [r3, r8] @ zero_extendqisi2 6719 bl V2P_block 6720 str r0, [sp, #8] 6721 cbz r6, .L850 6722 bl IsBlkInVendorPart 6723 cbnz r0, .L851 6724.L850: 6725 ldr r0, [sp, #8] 6726 bl FtlBbmIsBadBlock 6727 cbnz r0, .L852 6728 ldr r3, [sp, #8] 6729 mla r1, fp, r5, r10 6730 lsls r2, r3, #10 6731 ldr r3, [sp, #16] 6732 str r2, [r1, #4] 6733 str r3, [r1, #8] 6734 ldr r3, [sp, #24] 6735 mul r2, r3, r5 6736 ldr r3, [sp, #20] 6737 adds r5, r5, #1 6738 uxth r5, r5 6739 bic r2, r2, #3 6740 add r2, r2, r3 6741 str r2, [r1, #12] 6742.L851: 6743 add r8, r8, #1 6744 b .L849 6745.L852: 6746 adds r4, r4, #1 6747 uxth r4, r4 6748 b .L851 6749.L858: 6750 mul r3, r10, r8 6751 ldr r2, [r7] 6752 adds r1, r2, r3 6753 ldr r3, [r2, r3] 6754 adds r3, r3, #1 6755 bne .L857 6756 ldr r0, [r1, #4] 6757 adds r4, r4, #1 6758 uxth r4, r4 6759 ubfx r0, r0, #10, #16 6760 bl FtlBbmMapBadBlock 6761.L857: 6762 add r8, r8, #1 6763 b .L856 6764.L874: 6765 movs r3, #2 6766 mov r10, r6 6767 str r3, [sp, #8] 6768 b .L859 6769.L863: 6770 movs r3, #20 6771 ldr r1, [sp, #4] 6772 mul r2, r3, r8 6773 movs r3, #0 6774 str r3, [fp, r2] 6775 ldr r3, .L891+32 6776 ldrb r0, [r3, r8] @ zero_extendqisi2 6777 bl V2P_block 6778 str r0, [sp, #12] 6779 cbz r6, .L861 6780 bl IsBlkInVendorPart 6781 cbnz r0, .L862 6782.L861: 6783 ldr r0, [sp, #12] 6784 bl FtlBbmIsBadBlock 6785 cbnz r0, .L862 6786 movs r3, #20 6787 mla r1, r3, r5, fp 6788 ldr r3, [sp, #12] 6789 add r2, r7, r3, lsl #10 6790 ldr r3, [sp, #20] 6791 str r2, [r1, #4] 6792 str r3, [r1, #8] 6793 ldr r3, [sp, #28] 6794 mul r2, r3, r5 6795 ldr r3, [sp, #24] 6796 adds r5, r5, #1 6797 uxth r5, r5 6798 bic r2, r2, #3 6799 add r2, r2, r3 6800 str r2, [r1, #12] 6801.L862: 6802 add r8, r8, #1 6803 b .L860 6804.L867: 6805 mul r2, r3, r8 6806 ldr r1, [fp] 6807 adds r0, r1, r2 6808 ldr r2, [r1, r2] 6809 cbz r2, .L866 6810 ldr r0, [r0, #4] 6811 adds r4, r4, #1 6812 str r3, [sp, #12] 6813 uxth r4, r4 6814 ubfx r0, r0, #10, #16 6815 bl FtlBbmMapBadBlock 6816 ldr r3, [sp, #12] 6817.L866: 6818 add r8, r8, #1 6819 b .L865 6820.L871: 6821 cbz r6, .L870 6822 mul r3, fp, r7 6823 ldr r2, [r8] 6824 adds r1, r2, r3 6825 ldr r3, [r2, r3] 6826 cbnz r3, .L870 6827 ldr r0, [r1, #4] 6828 movs r1, #1 6829 ubfx r0, r0, #10, #16 6830 bl FtlFreeSysBlkQueueIn 6831.L870: 6832 adds r7, r7, #1 6833 b .L869 6834.L892: 6835 .align 2 6836.L891: 6837 .word .LANCHOR111 6838 .word .LANCHOR106 6839 .word .LANCHOR3 6840 .word .LANCHOR119 6841 .word .LANCHOR124 6842 .word .LANCHOR24 6843 .word .LANCHOR20 6844 .word .LANCHOR118 6845 .word .LANCHOR13 6846 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 6847 .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits 6848 .align 1 6849 .global Ftl_write_map_blk_to_last_page 6850 .syntax unified 6851 .thumb 6852 .thumb_func 6853 .fpu softvfp 6854 .type Ftl_write_map_blk_to_last_page, %function 6855Ftl_write_map_blk_to_last_page: 6856 @ args = 0, pretend = 0, frame = 0 6857 @ frame_needed = 0, uses_anonymous_args = 0 6858 push {r3, r4, r5, r6, r7, lr} 6859 movw r2, #65535 6860 ldrh r3, [r0] 6861 mov r4, r0 6862 ldr r5, [r0, #12] 6863 cmp r3, r2 6864 bne .L894 6865 ldrh r3, [r0, #8] 6866 cbz r3, .L895 6867 movw r2, #641 6868 ldr r1, .L903 6869 ldr r0, .L903+4 6870 bl printf 6871.L895: 6872 ldrh r3, [r4, #8] 6873 adds r3, r3, #1 6874 strh r3, [r4, #8] @ movhi 6875 bl FtlFreeSysBlkQueueOut 6876 movs r3, #0 6877 strh r0, [r5] @ movhi 6878 strh r3, [r4, #2] @ movhi 6879 strh r3, [r4] @ movhi 6880 ldr r3, [r4, #28] 6881 adds r3, r3, #1 6882 str r3, [r4, #28] 6883.L896: 6884 movs r0, #0 6885 pop {r3, r4, r5, r6, r7, pc} 6886.L894: 6887 ldrh r5, [r5, r3, lsl #1] 6888 movs r1, #255 6889 ldrh r3, [r0, #2] 6890 ldr r2, .L903+8 6891 ldr r7, .L903+12 6892 ldr r6, [r0, #24] 6893 orr r3, r3, r5, lsl #10 6894 ldr r0, [r7] 6895 str r3, [r2, #4] 6896 ldr r3, .L903+16 6897 str r0, [r2, #8] 6898 ldr r3, [r3] 6899 str r3, [r2, #12] 6900 ldr r2, [r4, #28] 6901 str r2, [r3, #4] 6902 movw r2, #64245 6903 strh r2, [r3, #8] @ movhi 6904 ldrh r2, [r4, #4] 6905 strh r5, [r3, #2] @ movhi 6906 strh r2, [r3] @ movhi 6907 ldr r3, .L903+20 6908 ldrh r2, [r3] 6909 lsls r2, r2, #3 6910 bl ftl_memset 6911 ldrh ip, [r4, #6] 6912 movs r3, #0 6913 ldr r1, [r7] 6914 mov r2, r3 6915.L897: 6916 uxth r0, r3 6917 cmp ip, r0 6918 bhi .L899 6919 movs r2, #1 6920 movs r3, #0 6921 mov r1, r2 6922 ldr r0, .L903+8 6923 bl FlashProgPages 6924 ldrh r3, [r4, #2] 6925 mov r0, r4 6926 adds r3, r3, #1 6927 strh r3, [r4, #2] @ movhi 6928 bl ftl_map_blk_gc 6929 b .L896 6930.L899: 6931 ldr r0, [r6, r3, lsl #2] 6932 cmp r5, r0, lsr #10 6933 bne .L898 6934 adds r2, r2, #1 6935 uxth r2, r2 6936 str r3, [r1, r2, lsl #3] 6937 add r7, r1, r2, lsl #3 6938 ldr r0, [r6, r3, lsl #2] 6939 str r0, [r7, #4] 6940.L898: 6941 adds r3, r3, #1 6942 b .L897 6943.L904: 6944 .align 2 6945.L903: 6946 .word .LANCHOR154 6947 .word .LC1 6948 .word .LANCHOR148 6949 .word .LANCHOR115 6950 .word .LANCHOR123 6951 .word .LANCHOR20 6952 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 6953 .section .text.FtlMapWritePage,"ax",%progbits 6954 .align 1 6955 .global FtlMapWritePage 6956 .syntax unified 6957 .thumb 6958 .thumb_func 6959 .fpu softvfp 6960 .type FtlMapWritePage, %function 6961FtlMapWritePage: 6962 @ args = 0, pretend = 0, frame = 8 6963 @ frame_needed = 0, uses_anonymous_args = 0 6964 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6965 mov r4, r0 6966 ldr r8, .L929+28 6967 mov r7, r1 6968 movs r6, #0 6969 str r2, [sp, #4] 6970 mov fp, r8 6971.L906: 6972 ldr r2, .L929 6973 ldr r3, [r2] 6974 adds r3, r3, #1 6975 str r3, [r2] 6976 ldrh r3, [r8] 6977 ldrh r2, [r4, #2] 6978 subs r3, r3, #1 6979 cmp r2, r3 6980 bge .L907 6981 ldrh r2, [r4] 6982 movw r3, #65535 6983 cmp r2, r3 6984 bne .L908 6985.L907: 6986 mov r0, r4 6987 bl Ftl_write_map_blk_to_last_page 6988.L908: 6989 ldrh r2, [r4] 6990 ldr r3, [r4, #12] 6991 ldrh r3, [r3, r2, lsl #1] 6992 cbnz r3, .L909 6993 movw r2, #699 6994 ldr r1, .L929+4 6995 ldr r0, .L929+8 6996 bl printf 6997.L909: 6998 ldrh r2, [r4] 6999 ldrh r3, [r4, #10] 7000 cmp r2, r3 7001 bcc .L910 7002 mov r2, #700 7003 ldr r1, .L929+4 7004 ldr r0, .L929+8 7005 bl printf 7006.L910: 7007 ldrh r2, [r4] 7008 movs r1, #0 7009 ldr r3, [r4, #12] 7010 ldr r5, .L929+12 7011 ldrh r10, [r3, r2, lsl #1] 7012 ldrh r2, [r4, #2] 7013 ldr r3, [sp, #4] 7014 orr r2, r2, r10, lsl #10 7015 str r3, [r5, #8] 7016 str r2, [r5, #4] 7017 ldr r2, .L929+16 7018 ldr r0, [r2] 7019 movs r2, #16 7020 str r0, [r5, #12] 7021 bl ftl_memset 7022 ldr r2, [r5, #12] 7023 movs r3, #1 7024 ldr r1, [r4, #28] 7025 mov r0, r5 7026 strh r7, [r2, #8] @ movhi 7027 str r1, [r2, #4] 7028 ldrh r1, [r4, #4] 7029 strh r10, [r2, #2] @ movhi 7030 strh r1, [r2] @ movhi 7031 mov r2, r3 7032 mov r1, r3 7033 bl FlashProgPages 7034 ldrh r2, [r4, #2] 7035 ldr r1, [r5] 7036 adds r2, r2, #1 7037 uxth r2, r2 7038 adds r3, r1, #1 7039 strh r2, [r4, #2] @ movhi 7040 bne .L911 7041 ldr r1, [r5, #4] 7042 adds r6, r6, #1 7043 ldr r0, .L929+20 7044 uxth r6, r6 7045 bl printf 7046 ldrh r2, [r4, #2] 7047 cmp r2, #2 7048 ittt ls 7049 ldrhls r2, [fp] 7050 addls r2, r2, #-1 7051 strhls r2, [r4, #2] @ movhi 7052 cmp r6, #3 7053 bls .L913 7054 mov r2, r6 7055 ldr r1, [r5, #4] 7056 ldr r0, .L929+24 7057 bl printf 7058.L914: 7059 b .L914 7060.L913: 7061 ldr r3, [r4, #32] 7062 cmp r3, #0 7063 beq .L906 7064.L928: 7065 b .L928 7066.L911: 7067 cmp r2, #1 7068 beq .L917 7069 cmp r1, #256 7070 beq .L917 7071 ldr r0, [r4, #36] 7072 cbz r0, .L918 7073.L917: 7074 movs r3, #0 7075 str r3, [r4, #36] 7076 b .L906 7077.L918: 7078 ldr r2, [r5, #4] 7079 ldr r3, [r4, #24] 7080 str r2, [r3, r7, lsl #2] 7081 add sp, sp, #8 7082 @ sp needed 7083 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7084.L930: 7085 .align 2 7086.L929: 7087 .word .LANCHOR66 7088 .word .LANCHOR155 7089 .word .LC1 7090 .word .LANCHOR148 7091 .word .LANCHOR123 7092 .word .LC88 7093 .word .LC89 7094 .word .LANCHOR20 7095 .size FtlMapWritePage, .-FtlMapWritePage 7096 .section .text.load_l2p_region,"ax",%progbits 7097 .align 1 7098 .global load_l2p_region 7099 .syntax unified 7100 .thumb 7101 .thumb_func 7102 .fpu softvfp 7103 .type load_l2p_region, %function 7104load_l2p_region: 7105 @ args = 0, pretend = 0, frame = 8 7106 @ frame_needed = 0, uses_anonymous_args = 0 7107 ldr r3, .L938 7108 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7109 mov r5, r0 7110 mov r10, r1 7111 ldrh r2, [r3] 7112 str r3, [sp, #4] 7113 cmp r2, r0 7114 bcs .L932 7115 movw r2, #485 7116 ldr r1, .L938+4 7117 ldr r0, .L938+8 7118 bl printf 7119.L932: 7120 ldr fp, .L938+48 7121 movs r4, #12 7122 ldr r7, .L938+12 7123 ldr r3, [fp] 7124 ldr r8, [r3, r5, lsl #2] 7125 cmp r8, #0 7126 bne .L933 7127 mul r4, r4, r10 7128 ldr r2, [r7] 7129 movs r1, #255 7130 adds r0, r2, r4 7131 ldr r2, .L938+16 7132 ldr r0, [r0, #8] 7133 ldrh r2, [r2] 7134 bl ftl_memset 7135 ldr r2, [r7] 7136 adds r1, r2, r4 7137 strh r5, [r2, r4] @ movhi 7138 str r8, [r1, #4] 7139.L934: 7140 movs r0, #0 7141 add sp, sp, #8 7142 @ sp needed 7143 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7144.L933: 7145 mul r4, r4, r10 7146 ldr r2, [r7] 7147 ldr r6, .L938+20 7148 add r2, r2, r4 7149 mov r0, r6 7150 ldr r2, [r2, #8] 7151 str r8, [r6, #4] 7152 str r2, [r6, #8] 7153 ldr r2, .L938+24 7154 ldr r2, [r2] 7155 str r2, [r6, #12] 7156 movs r2, #1 7157 mov r1, r2 7158 bl FlashReadPages 7159 ldr r10, [r6, #12] 7160 ldrh r2, [r10, #8] 7161 cmp r2, r5 7162 beq .L935 7163 mov r2, r8 7164 mov r1, r5 7165 ldr r0, .L938+28 7166 bl printf 7167 movs r3, #4 7168 ldr r1, [r6, #12] 7169 mov r2, r3 7170 ldr r0, .L938+32 7171 bl rknand_print_hex 7172 ldr r3, [sp, #4] 7173 movs r2, #4 7174 ldr r1, [fp] 7175 ldr r0, .L938+36 7176 ldrh r3, [r3] 7177 bl rknand_print_hex 7178.L936: 7179 ldrh r3, [r10, #8] 7180 cmp r3, r5 7181 beq .L937 7182 mov r2, #508 7183 ldr r1, .L938+4 7184 ldr r0, .L938+8 7185 bl printf 7186.L937: 7187 ldr r3, [r7] 7188 movs r1, #0 7189 adds r2, r3, r4 7190 str r1, [r2, #4] 7191 strh r5, [r3, r4] @ movhi 7192 b .L934 7193.L935: 7194 ldr r2, [r6] 7195 cmp r2, #256 7196 bne .L936 7197 mov r2, r8 7198 mov r1, r5 7199 ldr r0, .L938+40 7200 bl printf 7201 ldr r3, [r7] 7202 mov r1, r5 7203 ldr r0, .L938+44 7204 add r3, r3, r4 7205 ldr r2, [r3, #8] 7206 bl FtlMapWritePage 7207 b .L936 7208.L939: 7209 .align 2 7210.L938: 7211 .word .LANCHOR32 7212 .word .LANCHOR156 7213 .word .LC1 7214 .word .LANCHOR55 7215 .word .LANCHOR23 7216 .word .LANCHOR148 7217 .word .LANCHOR123 7218 .word .LC90 7219 .word .LC91 7220 .word .LC92 7221 .word .LC93 7222 .word .LANCHOR140 7223 .word .LANCHOR134 7224 .size load_l2p_region, .-load_l2p_region 7225 .section .text.ftl_map_blk_gc,"ax",%progbits 7226 .align 1 7227 .global ftl_map_blk_gc 7228 .syntax unified 7229 .thumb 7230 .thumb_func 7231 .fpu softvfp 7232 .type ftl_map_blk_gc, %function 7233ftl_map_blk_gc: 7234 @ args = 0, pretend = 0, frame = 8 7235 @ frame_needed = 0, uses_anonymous_args = 0 7236 ldr r3, [r0, #24] 7237 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7238 mov r4, r0 7239 ldr r5, [r0, #12] 7240 str r3, [sp] 7241 bl ftl_free_no_use_map_blk 7242 ldrh r3, [r4, #10] 7243 ldrh r2, [r4, #8] 7244 subs r3, r3, #5 7245 cmp r2, r3 7246 blt .L941 7247 uxth r0, r0 7248 ldrh r8, [r5, r0, lsl #1] 7249 cmp r8, #0 7250 beq .L941 7251 ldr r3, [r4, #32] 7252 cbnz r3, .L941 7253 movs r2, #1 7254 str r2, [r4, #32] 7255 strh r3, [r5, r0, lsl #1] @ movhi 7256 ldrh r3, [r4, #8] 7257 ldrh r2, [r4, #2] 7258 subs r3, r3, #1 7259 strh r3, [r4, #8] @ movhi 7260 ldr r3, .L956 7261 ldrh r3, [r3] 7262 cmp r2, r3 7263 bcc .L942 7264 mov r0, r4 7265 bl ftl_map_blk_alloc_new_blk 7266.L942: 7267 ldr r5, .L956+4 7268 movs r6, #0 7269.L943: 7270 ldrh r3, [r4, #6] 7271 uxth r10, r6 7272 cmp r3, r10 7273 bhi .L950 7274 movs r1, #1 7275 mov r0, r8 7276 bl FtlFreeSysBlkQueueIn 7277 movs r3, #0 7278 str r3, [r4, #32] 7279.L941: 7280 ldr r3, .L956 7281 ldrh r2, [r4, #2] 7282 ldrh r3, [r3] 7283 cmp r2, r3 7284 bcc .L951 7285 mov r0, r4 7286 bl ftl_map_blk_alloc_new_blk 7287.L951: 7288 movs r0, #0 7289 add sp, sp, #8 7290 @ sp needed 7291 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7292.L950: 7293 ldr r3, [sp] 7294 uxth fp, r6 7295 add r3, r3, fp, lsl #2 7296 str r3, [sp, #4] 7297 ldr r3, [sp] 7298 ldr r2, [r3, fp, lsl #2] 7299 cmp r8, r2, lsr #10 7300 bne .L944 7301 ldr r3, .L956+8 7302 str r2, [r5, #4] 7303 movs r2, #1 7304 ldr r0, .L956+4 7305 ldr r1, [r3] 7306 str r1, [r5, #8] 7307 ldr r1, .L956+12 7308 ldr r7, [r1] 7309 mov r1, r2 7310 str r7, [r5, #12] 7311 bl FlashReadPages 7312 ldrh r2, [r7, #8] 7313 cmp r2, r10 7314 beq .L945 7315 movw r2, #611 7316 ldr r1, .L956+16 7317 ldr r0, .L956+20 7318 bl printf 7319.L945: 7320 ldr r2, [r5] 7321 adds r2, r2, #1 7322 bne .L946 7323.L948: 7324 ldr r2, [sp, #4] 7325 movs r3, #0 7326 str r3, [r2] 7327.L947: 7328 b .L947 7329.L946: 7330 ldrh r2, [r7, #8] 7331 cmp r2, r10 7332 bne .L948 7333 ldrh r1, [r7] 7334 ldrh r2, [r4, #4] 7335 cmp r1, r2 7336 bne .L948 7337 ldr r2, [r5, #8] 7338 mov r1, fp 7339 mov r0, r4 7340 bl FtlMapWritePage 7341.L944: 7342 adds r6, r6, #1 7343 b .L943 7344.L957: 7345 .align 2 7346.L956: 7347 .word .LANCHOR20 7348 .word .LANCHOR148 7349 .word .LANCHOR116 7350 .word .LANCHOR123 7351 .word .LANCHOR157 7352 .word .LC1 7353 .size ftl_map_blk_gc, .-ftl_map_blk_gc 7354 .section .text.FtlMapTblRecovery,"ax",%progbits 7355 .align 1 7356 .global FtlMapTblRecovery 7357 .syntax unified 7358 .thumb 7359 .thumb_func 7360 .fpu softvfp 7361 .type FtlMapTblRecovery, %function 7362FtlMapTblRecovery: 7363 @ args = 0, pretend = 0, frame = 24 7364 @ frame_needed = 0, uses_anonymous_args = 0 7365 ldr r3, [r0, #16] 7366 movs r1, #0 7367 push {r4, r5, r6, r7, r8, r10, fp, lr} 7368 sub sp, sp, #24 7369 ldrh fp, [r0, #6] 7370 mov r4, r0 7371 movs r6, #0 7372 ldr r8, [r0, #24] 7373 str r3, [sp, #12] 7374 ldrh r3, [r0, #8] 7375 lsl r2, fp, #2 7376 ldr r10, [r0, #12] 7377 mov r0, r8 7378 ldr r5, .L985 7379 str r3, [sp, #4] 7380 bl ftl_memset 7381 ldr r3, .L985+4 7382 str r6, [r4, #32] 7383 str r6, [r4, #28] 7384 ldr r2, [r3] 7385 str r3, [sp, #8] 7386 str r2, [r5, #8] 7387 ldr r2, .L985+8 7388 ldr r7, [r2] 7389 movw r2, #65535 7390 str r7, [r5, #12] 7391 strh r2, [r4] @ movhi 7392 strh r2, [r4, #2] @ movhi 7393 movs r2, #1 7394 str r2, [r4, #36] 7395.L959: 7396 ldr r2, [sp, #4] 7397 sxth r3, r6 7398 cmp r3, r2 7399 bge .L976 7400 ldr r2, [sp, #4] 7401 subs r2, r2, #1 7402 cmp r3, r2 7403 lsl r2, r3, #1 7404 bne .L960 7405 ldrh r0, [r10, r3, lsl #1] 7406 movs r1, #1 7407 add r5, r10, r2 7408 str r3, [sp, #4] 7409 bl FtlGetLastWrittenPage 7410 ldr r3, [sp, #12] 7411 sxth r10, r0 7412 strh r6, [r4] @ movhi 7413 movs r6, #0 7414 adds r0, r0, #1 7415 mov r2, r3 7416 ldr r3, [sp, #4] 7417 strh r0, [r4, #2] @ movhi 7418 ldr r3, [r2, r3, lsl #2] 7419 str r3, [r4, #28] 7420 ldr r3, .L985 7421.L961: 7422 sxth r2, r6 7423 cmp r2, r10 7424 ble .L963 7425.L976: 7426 mov r0, r4 7427 bl ftl_free_no_use_map_blk 7428 ldr r3, .L985+12 7429 ldrh r2, [r4, #2] 7430 ldrh r3, [r3] 7431 cmp r2, r3 7432 bne .L965 7433 mov r0, r4 7434 bl ftl_map_blk_alloc_new_blk 7435.L965: 7436 mov r0, r4 7437 bl ftl_map_blk_gc 7438 mov r0, r4 7439 bl ftl_map_blk_gc 7440 movs r0, #0 7441 add sp, sp, #24 7442 @ sp needed 7443 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7444.L963: 7445 ldrh r1, [r5] 7446 ldr r0, .L985 7447 str r3, [sp, #4] 7448 orr r2, r2, r1, lsl #10 7449 str r2, [r3, #4] 7450 movs r2, #1 7451 mov r1, r2 7452 bl FlashReadPages 7453 ldr r3, [sp, #4] 7454 ldr r2, [r3] 7455 adds r2, r2, #1 7456 beq .L962 7457 ldrh r2, [r7, #8] 7458 cmp fp, r2 7459 bls .L962 7460 ldrh r1, [r4, #4] 7461 ldrh r0, [r7] 7462 cmp r0, r1 7463 itt eq 7464 ldreq r1, [r3, #4] 7465 streq r1, [r8, r2, lsl #2] 7466.L962: 7467 adds r6, r6, #1 7468 b .L961 7469.L960: 7470 ldr r1, [sp, #8] 7471 add r2, r10, r2 7472 str r2, [sp, #16] 7473 ldr r0, .L985 7474 ldr r1, [r1] 7475 str r1, [r5, #8] 7476 ldrh r1, [r10, r3, lsl #1] 7477 ldr r3, .L985+12 7478 ldrh r2, [r3] 7479 str r3, [sp, #20] 7480 subs r2, r2, #1 7481 orr r2, r2, r1, lsl #10 7482 str r2, [r5, #4] 7483 movs r2, #1 7484 mov r1, r2 7485 bl FlashReadPages 7486 ldr r2, [r5] 7487 adds r2, r2, #1 7488 beq .L978 7489 ldrh r1, [r7] 7490 ldrh r2, [r4, #4] 7491 ldr r3, [sp, #20] 7492 cmp r1, r2 7493 bne .L978 7494 ldrh r1, [r7, #8] 7495 movw r2, #64245 7496 cmp r1, r2 7497 beq .L967 7498.L978: 7499 movs r3, #0 7500.L968: 7501 ldr r1, .L985+12 7502 sxth r2, r3 7503 ldrh r1, [r1] 7504 cmp r2, r1 7505 bge .L974 7506 str r3, [sp, #20] 7507 ldr r3, [sp, #16] 7508 ldr r0, .L985 7509 ldrh r1, [r3] 7510 orr r2, r2, r1, lsl #10 7511 str r2, [r5, #4] 7512 movs r2, #1 7513 mov r1, r2 7514 bl FlashReadPages 7515 ldr r2, [r5] 7516 ldr r3, [sp, #20] 7517 adds r2, r2, #1 7518 beq .L972 7519 ldrh r2, [r7, #8] 7520 cmp fp, r2 7521 bls .L972 7522 ldrh r1, [r4, #4] 7523 ldrh r0, [r7] 7524 cmp r0, r1 7525 itt eq 7526 ldreq r1, [r5, #4] 7527 streq r1, [r8, r2, lsl #2] 7528.L972: 7529 adds r3, r3, #1 7530 b .L968 7531.L967: 7532 ldrh r2, [r3] 7533 movs r1, #0 7534 ldr r3, [sp, #8] 7535 subs r2, r2, #1 7536 ldr ip, [r3] 7537.L969: 7538 sxth r3, r1 7539 cmp r3, r2 7540 blt .L971 7541.L974: 7542 adds r6, r6, #1 7543 b .L959 7544.L971: 7545 lsls r0, r3, #3 7546 ldr r3, [ip, r3, lsl #3] 7547 adds r1, r1, #1 7548 uxth lr, r3 7549 cmp fp, lr 7550 itttt hi 7551 addhi r0, r0, ip 7552 movhi r3, lr 7553 ldrhi r0, [r0, #4] 7554 strhi r0, [r8, r3, lsl #2] 7555 b .L969 7556.L986: 7557 .align 2 7558.L985: 7559 .word .LANCHOR148 7560 .word .LANCHOR115 7561 .word .LANCHOR123 7562 .word .LANCHOR20 7563 .size FtlMapTblRecovery, .-FtlMapTblRecovery 7564 .section .text.FtlLoadVonderInfo,"ax",%progbits 7565 .align 1 7566 .global FtlLoadVonderInfo 7567 .syntax unified 7568 .thumb 7569 .thumb_func 7570 .fpu softvfp 7571 .type FtlLoadVonderInfo, %function 7572FtlLoadVonderInfo: 7573 @ args = 0, pretend = 0, frame = 0 7574 @ frame_needed = 0, uses_anonymous_args = 0 7575 push {r3, lr} 7576 ldr r3, .L988 7577 ldr r0, .L988+4 7578 ldrh r3, [r3] 7579 strh r3, [r0, #10] @ movhi 7580 movw r3, #61574 7581 strh r3, [r0, #4] @ movhi 7582 ldr r3, .L988+8 7583 ldrh r3, [r3] 7584 strh r3, [r0, #8] @ movhi 7585 ldr r3, .L988+12 7586 ldrh r3, [r3] 7587 strh r3, [r0, #6] @ movhi 7588 ldr r3, .L988+16 7589 ldr r3, [r3] 7590 str r3, [r0, #12] 7591 ldr r3, .L988+20 7592 ldr r3, [r3] 7593 str r3, [r0, #16] 7594 ldr r3, .L988+24 7595 ldr r3, [r3] 7596 str r3, [r0, #20] 7597 ldr r3, .L988+28 7598 ldr r3, [r3] 7599 str r3, [r0, #24] 7600 bl FtlMapTblRecovery 7601 movs r0, #0 7602 pop {r3, pc} 7603.L989: 7604 .align 2 7605.L988: 7606 .word .LANCHOR27 7607 .word .LANCHOR158 7608 .word .LANCHOR35 7609 .word .LANCHOR28 7610 .word .LANCHOR36 7611 .word .LANCHOR132 7612 .word .LANCHOR131 7613 .word .LANCHOR133 7614 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 7615 .section .text.FtlLoadMapInfo,"ax",%progbits 7616 .align 1 7617 .global FtlLoadMapInfo 7618 .syntax unified 7619 .thumb 7620 .thumb_func 7621 .fpu softvfp 7622 .type FtlLoadMapInfo, %function 7623FtlLoadMapInfo: 7624 @ args = 0, pretend = 0, frame = 0 7625 @ frame_needed = 0, uses_anonymous_args = 0 7626 push {r3, lr} 7627 bl FtlL2PDataInit 7628 ldr r0, .L991 7629 bl FtlMapTblRecovery 7630 movs r0, #0 7631 pop {r3, pc} 7632.L992: 7633 .align 2 7634.L991: 7635 .word .LANCHOR140 7636 .size FtlLoadMapInfo, .-FtlLoadMapInfo 7637 .section .text.flush_l2p_region,"ax",%progbits 7638 .align 1 7639 .global flush_l2p_region 7640 .syntax unified 7641 .thumb 7642 .thumb_func 7643 .fpu softvfp 7644 .type flush_l2p_region, %function 7645flush_l2p_region: 7646 @ args = 0, pretend = 0, frame = 0 7647 @ frame_needed = 0, uses_anonymous_args = 0 7648 push {r3, r4, r5, lr} 7649 movs r4, #12 7650 ldr r5, .L994 7651 muls r4, r0, r4 7652 ldr r0, .L994+4 7653 ldr r3, [r5] 7654 adds r2, r3, r4 7655 ldrh r1, [r3, r4] 7656 ldr r2, [r2, #8] 7657 bl FtlMapWritePage 7658 ldr r3, [r5] 7659 movs r0, #0 7660 add r4, r4, r3 7661 ldr r3, [r4, #4] 7662 bic r3, r3, #-2147483648 7663 str r3, [r4, #4] 7664 pop {r3, r4, r5, pc} 7665.L995: 7666 .align 2 7667.L994: 7668 .word .LANCHOR55 7669 .word .LANCHOR140 7670 .size flush_l2p_region, .-flush_l2p_region 7671 .section .text.log2phys,"ax",%progbits 7672 .align 1 7673 .global log2phys 7674 .syntax unified 7675 .thumb 7676 .thumb_func 7677 .fpu softvfp 7678 .type log2phys, %function 7679log2phys: 7680 @ args = 0, pretend = 0, frame = 8 7681 @ frame_needed = 0, uses_anonymous_args = 0 7682 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7683 mov r7, r2 7684 ldr r4, .L1009 7685 mov r10, r0 7686 mov r5, r1 7687 ldr r3, .L1009+4 7688 ldr r2, [r4] 7689 ldrh fp, [r3] 7690 cmp r0, r2 7691 bcc .L997 7692 movw r2, #811 7693 ldr r1, .L1009+8 7694 ldr r0, .L1009+12 7695 bl printf 7696.L997: 7697 ldr r3, [r4] 7698 cmp r10, r3 7699 bcs .L998 7700 ldr r3, .L1009+16 7701 add fp, fp, #7 7702 lsr r6, r10, fp 7703 movs r2, #0 7704 ldrh r1, [r3] 7705 uxth r6, r6 7706 ldr r3, .L1009+20 7707 ldr r0, [r3] 7708 mov r8, r3 7709 movs r3, #12 7710.L999: 7711 uxth r4, r2 7712 cmp r4, r1 7713 bcc .L1004 7714 str r3, [sp, #4] 7715 bl select_l2p_ram_region 7716 ldr r3, [sp, #4] 7717 mov r4, r0 7718 ldr r2, [r8] 7719 muls r3, r0, r3 7720 adds r1, r2, r3 7721 ldrh r2, [r2, r3] 7722 movw r3, #65535 7723 cmp r2, r3 7724 beq .L1005 7725 ldr r3, [r1, #4] 7726 cmp r3, #0 7727 bge .L1005 7728 bl flush_l2p_region 7729.L1005: 7730 mov r1, r4 7731 mov r0, r6 7732 bl load_l2p_region 7733 b .L1001 7734.L998: 7735 mov r0, #-1 7736 cbnz r7, .L996 7737 str r0, [r5] 7738.L996: 7739 add sp, sp, #8 7740 @ sp needed 7741 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7742.L1004: 7743 adds r2, r2, #1 7744 mla ip, r3, r2, r0 7745 ldrh ip, [ip, #-12] 7746 cmp ip, r6 7747 bne .L999 7748.L1001: 7749 movs r0, #1 7750 ldr r2, [r8] 7751 lsl r0, r0, fp 7752 movs r3, #12 7753 subs r0, r0, #1 7754 and r0, r0, r10 7755 uxth r0, r0 7756 mla r3, r3, r4, r2 7757 cbnz r7, .L1002 7758 ldr r3, [r3, #8] 7759 ldr r3, [r3, r0, lsl #2] 7760 str r3, [r5] 7761.L1003: 7762 ldr r2, [r8] 7763 movs r3, #12 7764 mla r4, r3, r4, r2 7765 ldr r3, [r4, #4] 7766 adds r2, r3, #1 7767 beq .L1007 7768 adds r3, r3, #1 7769 str r3, [r4, #4] 7770.L1007: 7771 movs r0, #0 7772 b .L996 7773.L1002: 7774 ldr r1, [r5] 7775 ldr r2, [r3, #8] 7776 str r1, [r2, r0, lsl #2] 7777 ldr r2, [r3, #4] 7778 orr r2, r2, #-2147483648 7779 str r2, [r3, #4] 7780 ldr r3, .L1009+24 7781 strh r6, [r3] @ movhi 7782 b .L1003 7783.L1010: 7784 .align 2 7785.L1009: 7786 .word .LANCHOR61 7787 .word .LANCHOR22 7788 .word .LANCHOR159 7789 .word .LC1 7790 .word .LANCHOR33 7791 .word .LANCHOR55 7792 .word .LANCHOR56 7793 .size log2phys, .-log2phys 7794 .section .text.FtlReUsePrevPpa,"ax",%progbits 7795 .align 1 7796 .global FtlReUsePrevPpa 7797 .syntax unified 7798 .thumb 7799 .thumb_func 7800 .fpu softvfp 7801 .type FtlReUsePrevPpa, %function 7802FtlReUsePrevPpa: 7803 @ args = 0, pretend = 0, frame = 8 7804 @ frame_needed = 0, uses_anonymous_args = 0 7805 push {r0, r1, r4, r5, r6, r7, r8, lr} 7806 mov r6, r0 7807 ldr r5, .L1021 7808 ubfx r0, r1, #10, #16 7809 str r1, [sp, #4] 7810 bl P2V_block_in_plane 7811 ldr r2, [r5] 7812 mov r7, r0 7813 ldrh r3, [r2, r0, lsl #1] 7814 cbnz r3, .L1012 7815 ldr r2, .L1021+4 7816 ldr r4, [r2] 7817 cmp r4, #0 7818 beq .L1013 7819 ldr r2, .L1021+8 7820 movw lr, #65535 7821 ldr ip, .L1021+24 7822 ldr r0, .L1021+12 7823 ldr r2, [r2] 7824 ldrh r1, [r0] 7825 mov r8, r0 7826 subs r4, r4, r2 7827 asrs r4, r4, #1 7828 mul r4, ip, r4 7829 mov ip, #6 7830 uxth r4, r4 7831.L1014: 7832 uxth r0, r3 7833 cmp r1, r0 7834 bls .L1013 7835 cmp r4, r7 7836 bne .L1015 7837 mov r1, r4 7838 ldr r0, .L1021+4 7839 bl List_remove_node 7840 ldrh r3, [r8] 7841 cbnz r3, .L1016 7842 movw r2, #1699 7843 ldr r1, .L1021+16 7844 ldr r0, .L1021+20 7845 bl printf 7846.L1016: 7847 ldrh r3, [r8] 7848 mov r0, r4 7849 subs r3, r3, #1 7850 strh r3, [r8] @ movhi 7851 bl INSERT_DATA_LIST 7852 ldr r2, [r5] 7853 ldrh r3, [r2, r7, lsl #1] 7854.L1012: 7855 adds r3, r3, #1 7856 strh r3, [r2, r7, lsl #1] @ movhi 7857 b .L1013 7858.L1015: 7859 mul r4, ip, r4 7860 adds r3, r3, #1 7861 ldrh r4, [r2, r4] 7862 cmp r4, lr 7863 bne .L1014 7864.L1013: 7865 movs r2, #1 7866 add r1, sp, #4 7867 mov r0, r6 7868 bl log2phys 7869 add sp, sp, #8 7870 @ sp needed 7871 pop {r4, r5, r6, r7, r8, pc} 7872.L1022: 7873 .align 2 7874.L1021: 7875 .word .LANCHOR42 7876 .word .LANCHOR47 7877 .word .LANCHOR40 7878 .word .LANCHOR48 7879 .word .LANCHOR160 7880 .word .LC1 7881 .word -1431655765 7882 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 7883 .section .text.ftl_check_vpc,"ax",%progbits 7884 .align 1 7885 .global ftl_check_vpc 7886 .syntax unified 7887 .thumb 7888 .thumb_func 7889 .fpu softvfp 7890 .type ftl_check_vpc, %function 7891ftl_check_vpc: 7892 @ args = 0, pretend = 0, frame = 8 7893 @ frame_needed = 0, uses_anonymous_args = 0 7894 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7895 movs r4, #0 7896 ldr r6, .L1047 7897 ldr r5, .L1047+4 7898 ldr r1, .L1047+8 7899 ldr r0, .L1047+12 7900 bl printf 7901 mov r2, #8192 7902 movs r1, #0 7903 ldr r0, .L1047+4 7904 bl ftl_memset 7905.L1024: 7906 ldr r3, [r6] 7907 cmp r4, r3 7908 bcc .L1026 7909 ldr r10, .L1047+48 7910 movs r4, #0 7911 ldr r7, .L1047+16 7912 mov r6, r4 7913.L1027: 7914 ldrh r2, [r10] 7915 uxth r3, r4 7916 cmp r2, r3 7917 bhi .L1029 7918 ldr r3, .L1047+20 7919 ldr r4, [r3] 7920 cbz r4, .L1030 7921 ldr r3, .L1047+24 7922 mov r8, #0 7923 ldr r5, .L1047+28 7924 ldr r10, .L1047+16 7925 ldrh r7, [r3] 7926 ldr r3, [r5] 7927 ldr fp, .L1047+4 7928 subs r4, r4, r3 7929 ldr r3, .L1047+32 7930 asrs r4, r4, #1 7931 muls r4, r3, r4 7932 uxth r4, r4 7933.L1031: 7934 uxth r3, r8 7935 cmp r7, r3 7936 bls .L1030 7937 ldr r3, [r10] 7938 ldrh r2, [r3, r4, lsl #1] 7939 cbz r2, .L1032 7940 movs r6, #1 7941 ldrh r3, [fp, r4, lsl #1] 7942 mov r1, r4 7943 ldr r0, .L1047+36 7944 bl printf 7945.L1032: 7946 movs r3, #6 7947 ldr r2, [r5] 7948 muls r4, r3, r4 7949 movw r3, #65535 7950 add r8, r8, #1 7951 ldrh r4, [r2, r4] 7952 cmp r4, r3 7953 bne .L1031 7954.L1030: 7955 cbz r6, .L1023 7956 movw r2, #2343 7957 ldr r1, .L1047+8 7958 ldr r0, .L1047+40 7959 bl printf 7960.L1023: 7961 add sp, sp, #8 7962 @ sp needed 7963 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7964.L1026: 7965 movs r2, #0 7966 add r1, sp, #4 7967 mov r0, r4 7968 bl log2phys 7969 ldr r0, [sp, #4] 7970 adds r3, r0, #1 7971 beq .L1025 7972 ubfx r0, r0, #10, #16 7973 bl P2V_block_in_plane 7974 ldrh r3, [r5, r0, lsl #1] 7975 adds r3, r3, #1 7976 strh r3, [r5, r0, lsl #1] @ movhi 7977.L1025: 7978 adds r4, r4, #1 7979 b .L1024 7980.L1029: 7981 ldr r3, [r7] 7982 uxth r5, r4 7983 ldr r8, .L1047+4 7984 ldrh r2, [r3, r5, lsl #1] 7985 ldrh r3, [r8, r5, lsl #1] 7986 cmp r2, r3 7987 beq .L1028 7988 mov r1, r5 7989 ldr r0, .L1047+44 7990 bl printf 7991 ldr r3, [r7] 7992 movw r2, #65535 7993 ldrh r3, [r3, r5, lsl #1] 7994 cmp r3, r2 7995 beq .L1028 7996 ldrh r2, [r8, r5, lsl #1] 7997 cmp r2, r3 7998 it hi 7999 movhi r6, #1 8000.L1028: 8001 adds r4, r4, #1 8002 b .L1027 8003.L1048: 8004 .align 2 8005.L1047: 8006 .word .LANCHOR61 8007 .word check_vpc_table 8008 .word .LANCHOR161 8009 .word .LC94 8010 .word .LANCHOR42 8011 .word .LANCHOR47 8012 .word .LANCHOR48 8013 .word .LANCHOR40 8014 .word -1431655765 8015 .word .LC96 8016 .word .LC1 8017 .word .LC95 8018 .word .LANCHOR5 8019 .size ftl_check_vpc, .-ftl_check_vpc 8020 .section .text.ftl_scan_all_data,"ax",%progbits 8021 .align 1 8022 .global ftl_scan_all_data 8023 .syntax unified 8024 .thumb 8025 .thumb_func 8026 .fpu softvfp 8027 .type ftl_scan_all_data, %function 8028ftl_scan_all_data: 8029 @ args = 0, pretend = 0, frame = 8 8030 @ frame_needed = 0, uses_anonymous_args = 0 8031 push {r4, r5, r6, r7, r8, lr} 8032 movs r5, #0 8033 ldr r7, .L1063 8034 sub sp, sp, #32 8035 movs r1, #0 8036 ldr r8, .L1063+24 8037 ldr r0, .L1063+4 8038 bl printf 8039.L1050: 8040 ldr r3, [r7] 8041 cmp r5, r3 8042 bcc .L1056 8043 add sp, sp, #32 8044 @ sp needed 8045 pop {r4, r5, r6, r7, r8, pc} 8046.L1056: 8047 movs r2, #0 8048 add r1, sp, #28 8049 mov r0, r5 8050 bl log2phys 8051 ubfx r3, r5, #0, #11 8052 cbnz r3, .L1051 8053 ldr r2, [sp, #28] 8054 mov r1, r5 8055 mov r0, r8 8056 bl printf 8057.L1051: 8058 ldr r3, [sp, #28] 8059 adds r2, r3, #1 8060 beq .L1053 8061 ldr r4, .L1063+8 8062 movs r2, #0 8063 movs r1, #1 8064 str r3, [r4, #4] 8065 mov r0, r4 8066 ldr r3, .L1063+12 8067 str r5, [r4, #16] 8068 str r2, [r4] 8069 ldr r3, [r3] 8070 str r3, [r4, #8] 8071 ldr r3, .L1063+16 8072 ldr r6, [r3] 8073 str r6, [r4, #12] 8074 bl FlashReadPages 8075 ldr r3, [r4] 8076 cmp r3, #256 8077 beq .L1054 8078 adds r3, r3, #1 8079 beq .L1054 8080 ldr r3, [r6, #8] 8081 cmp r5, r3 8082 beq .L1053 8083.L1054: 8084 ldr r2, [r4, #8] 8085 ldr r3, [r4, #12] 8086 ldr r0, .L1063+20 8087 ldr r1, [r2, #4] 8088 str r1, [sp, #16] 8089 mov r1, r5 8090 ldr r2, [r2] 8091 str r2, [sp, #12] 8092 ldr r2, [r3, #12] 8093 str r2, [sp, #8] 8094 ldr r2, [r3, #8] 8095 str r2, [sp, #4] 8096 ldr r2, [r3, #4] 8097 str r2, [sp] 8098 ldr r2, [r4, #4] 8099 ldr r3, [r3] 8100 bl printf 8101.L1053: 8102 adds r5, r5, #1 8103 b .L1050 8104.L1064: 8105 .align 2 8106.L1063: 8107 .word .LANCHOR61 8108 .word .LC97 8109 .word .LANCHOR148 8110 .word .LANCHOR115 8111 .word .LANCHOR123 8112 .word .LC99 8113 .word .LC98 8114 .size ftl_scan_all_data, .-ftl_scan_all_data 8115 .section .text.FtlGcScanTempBlk,"ax",%progbits 8116 .align 1 8117 .global FtlGcScanTempBlk 8118 .syntax unified 8119 .thumb 8120 .thumb_func 8121 .fpu softvfp 8122 .type FtlGcScanTempBlk, %function 8123FtlGcScanTempBlk: 8124 @ args = 0, pretend = 0, frame = 48 8125 @ frame_needed = 0, uses_anonymous_args = 0 8126 ldr r3, .L1098 8127 push {r4, r5, r6, r7, r8, r10, fp, lr} 8128 sub sp, sp, #48 8129 mov r4, r0 8130 str r1, [sp, #8] 8131 ldrh r5, [r3] 8132 movw r3, #65535 8133 cmp r5, r3 8134 beq .L1090 8135 cbnz r5, .L1066 8136.L1067: 8137 bl FtlGcPageVarInit 8138 b .L1068 8139.L1090: 8140 movs r5, #0 8141.L1066: 8142 ldr r3, .L1098+4 8143 ldr r2, [sp, #8] 8144 ldrh r3, [r3] 8145 cmp r3, r2 8146 beq .L1067 8147.L1068: 8148 ldr fp, .L1098+52 8149 movs r3, #0 8150 str r3, [sp] 8151.L1069: 8152 ldrh r2, [r4] 8153 movs r3, #0 8154 strb r3, [r4, #8] 8155 movw r3, #65535 8156 cmp r2, r3 8157 beq .L1070 8158.L1087: 8159 ldr r3, .L1098+8 8160 movs r2, #0 8161 ldr r0, [fp] 8162 mov r7, r2 8163 movw lr, #65535 8164 mov r8, #20 8165 ldrh r10, [r3] 8166 ldr r3, .L1098+12 8167 ldr r3, [r3] 8168 str r3, [sp, #12] 8169 ldr r3, .L1098+16 8170 ldrh r3, [r3] 8171 str r3, [sp, #16] 8172 ldr r3, .L1098+20 8173 ldr r3, [r3] 8174 str r3, [sp, #20] 8175 ldr r3, .L1098+24 8176 ldrh ip, [r3] 8177 add r3, r4, #16 8178 str r3, [sp, #4] 8179.L1071: 8180 uxth r3, r2 8181 cmp r10, r3 8182 bhi .L1073 8183 mov r10, #0 8184 movs r2, #0 8185 mov r1, r7 8186 bl FlashReadPages 8187.L1074: 8188 uxth r3, r10 8189 cmp r7, r3 8190 bhi .L1085 8191 ldr r3, [sp] 8192 adds r5, r5, #1 8193 uxth r5, r5 8194 adds r3, r3, #1 8195 str r3, [sp] 8196 ldr r2, [sp] 8197 ldr r3, [sp, #8] 8198 cmp r3, r2 8199 ldr r2, .L1098+4 8200 bls .L1086 8201.L1088: 8202 ldrh r3, [r2] 8203 cmp r3, r5 8204 bhi .L1087 8205.L1070: 8206 ldr r3, .L1098 8207 movw r2, #65535 8208 strh r5, [r4, #2] @ movhi 8209 mov r1, r5 8210 mov r0, r4 8211 strh r2, [r3] @ movhi 8212 movs r2, #0 8213 strb r2, [r4, #6] 8214 bl ftl_sb_update_avl_pages 8215 b .L1089 8216.L1073: 8217 ldr r1, [sp, #4] 8218 ldrh r3, [r1], #2 8219 cmp r3, lr 8220 str r1, [sp, #4] 8221 beq .L1072 8222 mla r1, r8, r7, r0 8223 ldr r6, [sp, #12] 8224 orr r3, r5, r3, lsl #10 8225 str r3, [r1, #4] 8226 ldr r3, [sp, #16] 8227 muls r3, r7, r3 8228 bic r3, r3, #3 8229 add r3, r3, r6 8230 ldr r6, [sp, #20] 8231 str r3, [r1, #8] 8232 mul r3, ip, r7 8233 adds r7, r7, #1 8234 uxth r7, r7 8235 bic r3, r3, #3 8236 add r3, r3, r6 8237 str r3, [r1, #12] 8238.L1072: 8239 adds r2, r2, #1 8240 b .L1071 8241.L1085: 8242 movs r3, #20 8243 ldr r1, [fp] 8244 mul r3, r3, r10 8245 adds r2, r1, r3 8246 ldr r6, [r1, r3] 8247 ldr r0, [r2, #4] 8248 str r0, [sp, #4] 8249 cbnz r6, .L1075 8250 ldr r8, [r2, #12] 8251 movw r2, #65535 8252 ldrh r1, [r8] 8253 cmp r1, r2 8254 bne .L1076 8255.L1075: 8256 ldr r3, .L1098+28 8257 movs r1, #0 8258 ldrh r2, [r4] 8259 movs r5, #0 8260 ldr r3, [r3] 8261 strh r1, [r3, r2, lsl #1] @ movhi 8262 ldrh r0, [r4] 8263 bl INSERT_FREE_LIST 8264 movw r3, #65535 8265 strh r3, [r4] @ movhi 8266 bl FtlGcPageVarInit 8267 b .L1069 8268.L1076: 8269 str r3, [sp, #12] 8270 ldr r3, .L1098+32 8271 ldr r0, [r8, #8] 8272 ldr r2, [r3] 8273 cmp r0, r2 8274 bhi .L1075 8275 mov r2, r6 8276 add r1, sp, #24 8277 bl log2phys 8278 ldr r2, [r8, #12] 8279 ldr r1, [sp, #24] 8280 ldr r3, [sp, #12] 8281 cmp r2, r1 8282 beq .L1079 8283.L1080: 8284 ldr r2, [r8, #8] 8285 add r10, r10, #1 8286 ldr r1, [sp, #4] 8287 ldr r0, [r8, #12] 8288 bl FtlGcUpdatePage 8289 b .L1074 8290.L1079: 8291 str r3, [sp, #12] 8292 adds r3, r2, #1 8293 beq .L1080 8294 str r2, [sp, #32] 8295 movs r1, #1 8296 ldr r2, .L1098+36 8297 add r0, sp, #28 8298 ldr r2, [r2] 8299 str r2, [sp, #36] 8300 ldr r2, .L1098+40 8301 ldr r2, [r2] 8302 str r2, [sp, #40] 8303 mov r2, r6 8304 bl FlashReadPages 8305 ldr r2, .L1098+44 8306 ldr r1, [fp] 8307 ldr r3, [sp, #12] 8308 ldrh r2, [r2] 8309 ldr r0, [sp, #36] 8310 add ip, r3, r1 8311 lsls r2, r2, #7 8312.L1081: 8313 cmp r6, r2 8314 beq .L1080 8315 ldr r1, [ip, #8] 8316 ldr r3, [r0, r6, lsl #2] 8317 ldr r1, [r1, r6, lsl #2] 8318 cmp r1, r3 8319 beq .L1082 8320 ldr r2, [sp, #32] 8321 ldrh r1, [r4] 8322 ldr r0, .L1098+48 8323 bl printf 8324 b .L1075 8325.L1082: 8326 adds r6, r6, #1 8327 b .L1081 8328.L1086: 8329 ldr r1, .L1098 8330 movw r0, #65535 8331 ldrh r3, [r1] 8332 cmp r3, r0 8333 beq .L1088 8334 ldr r0, [sp] 8335 add r3, r3, r0 8336 strh r3, [r1] @ movhi 8337 ldrh r3, [r2] 8338 cmp r3, r5 8339 bls .L1088 8340.L1089: 8341 mov r0, #-1 8342 add sp, sp, #48 8343 @ sp needed 8344 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8345.L1099: 8346 .align 2 8347.L1098: 8348 .word .LANCHOR162 8349 .word .LANCHOR19 8350 .word .LANCHOR3 8351 .word .LANCHOR91 8352 .word .LANCHOR23 8353 .word .LANCHOR92 8354 .word .LANCHOR24 8355 .word .LANCHOR42 8356 .word .LANCHOR61 8357 .word .LANCHOR119 8358 .word .LANCHOR124 8359 .word .LANCHOR12 8360 .word .LC100 8361 .word .LANCHOR112 8362 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 8363 .section .text.FtlReadRefresh,"ax",%progbits 8364 .align 1 8365 .global FtlReadRefresh 8366 .syntax unified 8367 .thumb 8368 .thumb_func 8369 .fpu softvfp 8370 .type FtlReadRefresh, %function 8371FtlReadRefresh: 8372 @ args = 0, pretend = 0, frame = 88 8373 @ frame_needed = 0, uses_anonymous_args = 0 8374 ldr r3, .L1113 8375 push {r4, r5, r6, lr} 8376 sub sp, sp, #88 8377 mov r4, r3 8378 ldr r0, [r3, #80] 8379 cmp r0, #0 8380 beq .L1101 8381 ldr r6, .L1113+4 8382 ldr r0, [r3, #84] 8383 ldr r1, [r6] 8384 cmp r0, r1 8385 bcs .L1102 8386 mov r5, #2048 8387.L1107: 8388 ldr r0, [r4, #84] 8389 ldr r3, [r6] 8390 cmp r0, r3 8391 bcs .L1104 8392 movs r2, #0 8393 mov r1, sp 8394 bl log2phys 8395 ldr r2, [sp] 8396 ldr r3, [r4, #84] 8397 adds r1, r2, #1 8398 add r3, r3, #1 8399 str r3, [r4, #84] 8400 beq .L1105 8401 str r3, [sp, #20] 8402 add r0, sp, #88 8403 ldr r3, .L1113+8 8404 movs r1, #1 8405 str r2, [sp, #8] 8406 movs r2, #0 8407 str r2, [r0, #-84]! 8408 ldr r3, [r3] 8409 str r3, [sp, #12] 8410 add r3, sp, #24 8411 str r3, [sp, #16] 8412 bl FlashReadPages 8413 ldr r3, [sp, #4] 8414 cmp r3, #256 8415 bne .L1104 8416 ldr r0, [sp] 8417 ubfx r0, r0, #10, #16 8418 bl P2V_block_in_plane 8419 bl FtlGcRefreshBlock 8420.L1104: 8421 mov r0, #-1 8422.L1100: 8423 add sp, sp, #88 8424 @ sp needed 8425 pop {r4, r5, r6, pc} 8426.L1105: 8427 subs r5, r5, #1 8428 bne .L1107 8429 b .L1104 8430.L1102: 8431 ldr r2, .L1113+12 8432 movs r0, #0 8433 str r0, [r3, #80] 8434 str r0, [r3, #84] 8435 ldr r2, [r2] 8436 str r2, [r3, #76] 8437 b .L1100 8438.L1101: 8439 ldr r1, [r3, #76] 8440 ldr r3, .L1113+12 8441 ldr r5, [r3] 8442 add r3, r5, #1048576 8443 cmp r1, r3 8444 bhi .L1110 8445 ldr r3, .L1113+16 8446 ldr r2, [r3] 8447 mov r3, #33554432 8448 lsrs r2, r2, #10 8449 asrs r3, r3, r2 8450 add r3, r3, r1 8451 cmp r5, r3 8452 bhi .L1110 8453 ldr r3, .L1113+20 8454 ldrb r3, [r3, #28] @ zero_extendqisi2 8455 cmp r3, #0 8456 bne .L1100 8457.L1110: 8458 movs r3, #1 8459 movs r0, #0 8460 str r3, [r4, #80] 8461 str r0, [r4, #84] 8462 str r5, [r4, #76] 8463 b .L1100 8464.L1114: 8465 .align 2 8466.L1113: 8467 .word .LANCHOR81 8468 .word .LANCHOR61 8469 .word .LANCHOR121 8470 .word .LANCHOR62 8471 .word .LANCHOR76 8472 .word .LANCHOR39 8473 .size FtlReadRefresh, .-FtlReadRefresh 8474 .section .text.FtlMapBlkWriteDump_data,"ax",%progbits 8475 .align 1 8476 .global FtlMapBlkWriteDump_data 8477 .syntax unified 8478 .thumb 8479 .thumb_func 8480 .fpu softvfp 8481 .type FtlMapBlkWriteDump_data, %function 8482FtlMapBlkWriteDump_data: 8483 @ args = 0, pretend = 0, frame = 0 8484 @ frame_needed = 0, uses_anonymous_args = 0 8485 ldr r3, [r0, #36] 8486 push {r4, r5, r6, lr} 8487 mov r6, r0 8488 cbz r3, .L1115 8489 ldrh r5, [r0, #6] 8490 movs r3, #0 8491 ldr r2, [r0, #24] 8492 str r3, [r0, #36] 8493 subs r5, r5, #1 8494 ldr r3, .L1119 8495 ldr r1, .L1119+4 8496 uxth r5, r5 8497 ldr r4, .L1119+8 8498 ldr r2, [r2, r5, lsl #2] 8499 ldr r0, [r3] 8500 ldr r1, [r1] 8501 str r2, [r4, #4] 8502 str r0, [r4, #8] 8503 str r1, [r4, #12] 8504 cbz r2, .L1117 8505 movs r2, #1 8506 mov r0, r4 8507 mov r1, r2 8508 bl FlashReadPages 8509.L1118: 8510 ldr r2, [r4, #8] 8511 mov r1, r5 8512 mov r0, r6 8513 pop {r4, r5, r6, lr} 8514 b FtlMapWritePage 8515.L1117: 8516 ldr r3, .L1119+12 8517 movs r1, #255 8518 ldrh r2, [r3] 8519 bl ftl_memset 8520 b .L1118 8521.L1115: 8522 pop {r4, r5, r6, pc} 8523.L1120: 8524 .align 2 8525.L1119: 8526 .word .LANCHOR116 8527 .word .LANCHOR123 8528 .word .LANCHOR148 8529 .word .LANCHOR23 8530 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data 8531 .section .text.FlashTestBlk,"ax",%progbits 8532 .align 1 8533 .global FlashTestBlk 8534 .syntax unified 8535 .thumb 8536 .thumb_func 8537 .fpu softvfp 8538 .type FlashTestBlk, %function 8539FlashTestBlk: 8540 @ args = 0, pretend = 0, frame = 88 8541 @ frame_needed = 0, uses_anonymous_args = 0 8542 cmp r0, #11 8543 push {r4, r5, lr} 8544 mov r4, r0 8545 sub sp, sp, #92 8546 bls .L1123 8547 ldr r5, .L1124 8548 add r0, sp, #24 8549 movs r2, #32 8550 movs r1, #165 8551 str r0, [sp, #16] 8552 lsls r4, r4, #10 8553 ldr r3, [r5] 8554 str r3, [sp, #12] 8555 bl ftl_memset 8556 movs r2, #8 8557 movs r1, #90 8558 ldr r0, [r5] 8559 bl ftl_memset 8560 movs r2, #1 8561 add r0, sp, #4 8562 mov r1, r2 8563 str r4, [sp, #8] 8564 bl FlashEraseBlocks 8565 movs r3, #1 8566 add r0, sp, #4 8567 mov r2, r3 8568 mov r1, r3 8569 bl FlashProgPages 8570 ldr r4, [sp, #4] 8571 movs r2, #1 8572 movs r1, #0 8573 add r0, sp, #4 8574 adds r4, r4, #0 8575 it ne 8576 movne r4, #1 8577 negs r4, r4 8578 bl FlashEraseBlocks 8579.L1121: 8580 mov r0, r4 8581 add sp, sp, #92 8582 @ sp needed 8583 pop {r4, r5, pc} 8584.L1123: 8585 movs r4, #0 8586 b .L1121 8587.L1125: 8588 .align 2 8589.L1124: 8590 .word .LANCHOR121 8591 .size FlashTestBlk, .-FlashTestBlk 8592 .section .text.FtlBbmTblFlush,"ax",%progbits 8593 .align 1 8594 .global FtlBbmTblFlush 8595 .syntax unified 8596 .thumb 8597 .thumb_func 8598 .fpu softvfp 8599 .type FtlBbmTblFlush, %function 8600FtlBbmTblFlush: 8601 @ args = 0, pretend = 0, frame = 8 8602 @ frame_needed = 0, uses_anonymous_args = 0 8603 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 8604 movs r4, #0 8605 ldr r7, .L1135 8606 movs r1, #0 8607 ldr r5, .L1135+4 8608 ldr r3, [r7] 8609 mov fp, r7 8610 ldr r8, .L1135+48 8611 ldr r6, .L1135+8 8612 str r3, [r5, #12] 8613 ldr r7, .L1135+12 8614 ldr r3, .L1135+16 8615 ldr r10, .L1135+52 8616 ldr r0, [r8] 8617 ldrh r2, [r3] 8618 str r0, [r5, #8] 8619 bl ftl_memset 8620.L1127: 8621 ldrh r3, [r7] 8622 cmp r4, r3 8623 blt .L1128 8624 ldr r6, [r5, #12] 8625 movs r2, #16 8626 ldr r4, .L1135+20 8627 movs r1, #255 8628 movs r7, #0 8629 mov r0, r6 8630 bl ftl_memset 8631 movw r3, #61649 8632 mov r10, r4 8633 strh r3, [r6] @ movhi 8634 ldr r3, [r4, #8] 8635 str r7, [sp, #12] 8636 str r3, [r6, #4] 8637 ldrh r3, [r4] 8638 strh r3, [r6, #2] @ movhi 8639 ldrh r3, [r4, #4] 8640 strh r3, [r6, #8] @ movhi 8641 ldrh r3, [r4, #6] 8642 strh r3, [r6, #10] @ movhi 8643 ldr r3, .L1135+24 8644 ldr r3, [r3] 8645 strh r3, [r6, #12] @ movhi 8646.L1129: 8647 ldr r3, [r8] 8648 ldrh r2, [r4, #2] 8649 ldrh r1, [r4] 8650 str r3, [r5, #8] 8651 ldr r3, [fp] 8652 ldrh r0, [r6, #10] 8653 str r3, [r5, #12] 8654 movs r3, #0 8655 str r3, [r5] 8656 orr r3, r2, r1, lsl #10 8657 str r3, [r5, #4] 8658 ldrh r3, [r4, #4] 8659 str r0, [sp] 8660 ldr r0, .L1135+28 8661 bl printf 8662 ldr r3, .L1135+32 8663 ldrh r2, [r4, #2] 8664 ldrh r3, [r3] 8665 subs r3, r3, #1 8666 cmp r2, r3 8667 blt .L1130 8668 ldr r3, [r4, #8] 8669 mov r1, #0 @ movhi 8670 ldrh r2, [r4] 8671 strh r1, [r4, #2] @ movhi 8672 adds r3, r3, #1 8673 str r3, [r4, #8] 8674 str r3, [r6, #4] 8675 strh r2, [r6, #8] @ movhi 8676 ldrh r3, [r4, #4] 8677 strh r2, [r4, #4] @ movhi 8678 ldr r2, .L1135+36 8679 strh r3, [r4] @ movhi 8680 lsls r3, r3, #10 8681 ldr r0, [r2] 8682 movs r2, #1 8683 str r3, [r5, #4] 8684 mov r1, r2 8685 str r3, [r0, #4] 8686 bl FlashEraseBlocks 8687.L1130: 8688 movs r3, #1 8689 ldr r0, .L1135+4 8690 mov r2, r3 8691 mov r1, r3 8692 bl FlashProgPages 8693 ldrh r3, [r10, #2] 8694 adds r3, r3, #1 8695 strh r3, [r10, #2] @ movhi 8696 ldr r3, [r5] 8697 adds r3, r3, #1 8698 bne .L1131 8699 adds r7, r7, #1 8700 ldr r1, [r5, #4] 8701 uxth r7, r7 8702 ldr r0, .L1135+40 8703 bl printf 8704 cmp r7, #3 8705 bls .L1129 8706 mov r2, r7 8707 ldr r1, [r5, #4] 8708 ldr r0, .L1135+44 8709 bl printf 8710.L1133: 8711 b .L1133 8712.L1128: 8713 ldrh r2, [r10] 8714 ldr r3, [r5, #8] 8715 ldr r1, [r6, #4]! 8716 mul r0, r2, r4 8717 lsls r2, r2, #2 8718 adds r4, r4, #1 8719 add r0, r3, r0, lsl #2 8720 bl ftl_memcpy 8721 b .L1127 8722.L1134: 8723 movs r3, #1 8724 str r3, [sp, #12] 8725 b .L1129 8726.L1131: 8727 ldr r3, [sp, #12] 8728 cmp r3, #0 8729 beq .L1134 8730 movs r0, #0 8731 add sp, sp, #16 8732 @ sp needed 8733 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8734.L1136: 8735 .align 2 8736.L1135: 8737 .word .LANCHOR123 8738 .word .LANCHOR148 8739 .word .LANCHOR37+24 8740 .word .LANCHOR10 8741 .word .LANCHOR23 8742 .word .LANCHOR37 8743 .word .LANCHOR2 8744 .word .LC101 8745 .word .LANCHOR20 8746 .word .LANCHOR106 8747 .word .LC102 8748 .word .LC103 8749 .word .LANCHOR115 8750 .word .LANCHOR137 8751 .size FtlBbmTblFlush, .-FtlBbmTblFlush 8752 .section .text.allocate_data_superblock,"ax",%progbits 8753 .align 1 8754 .global allocate_data_superblock 8755 .syntax unified 8756 .thumb 8757 .thumb_func 8758 .fpu softvfp 8759 .type allocate_data_superblock, %function 8760allocate_data_superblock: 8761 @ args = 0, pretend = 0, frame = 8 8762 @ frame_needed = 0, uses_anonymous_args = 0 8763 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 8764 mov r4, r0 8765.L1138: 8766 ldr r3, .L1177 8767 ldr r8, .L1177+68 8768 ldrh r3, [r3] 8769 ldr r10, .L1177+72 8770 ldrh r2, [r8] 8771 add r3, r3, r2 8772 ldrh r2, [r10] 8773 cmp r3, r2 8774 ble .L1139 8775 movw r2, #2615 8776 ldr r1, .L1177+4 8777 ldr r0, .L1177+8 8778 bl printf 8779.L1139: 8780 ldr r3, .L1177+12 8781 cmp r4, r3 8782 bne .L1165 8783 ldr r3, .L1177 8784 ldr r2, .L1177+16 8785 ldrh r3, [r3] 8786 ldr r2, [r2] 8787 lsrs r1, r3, #1 8788 muls r2, r3, r2 8789 adds r1, r1, #1 8790 add r1, r1, r2, lsr #2 8791 uxth r1, r1 8792 cbz r1, .L1140 8793 subs r1, r1, #1 8794 uxth r1, r1 8795.L1140: 8796 ldr r0, .L1177+20 8797 bl List_pop_index_node 8798 ldr r3, .L1177 8799 mov r5, r0 8800 uxth r7, r0 8801 ldrh r3, [r3] 8802 cbnz r3, .L1141 8803 mov r2, #2624 8804 ldr r1, .L1177+4 8805 ldr r0, .L1177+8 8806 bl printf 8807.L1141: 8808 ldr r3, .L1177 8809 ldr r2, .L1177 8810 ldrh r3, [r3] 8811 subs r3, r3, #1 8812 strh r3, [r2] @ movhi 8813 ldrh r3, [r10] 8814 cmp r3, r7 8815 bls .L1138 8816 uxth r5, r5 8817 lsls r3, r5, #1 8818 str r3, [sp] 8819 ldr r3, .L1177+24 8820 ldr r3, [r3] 8821 ldrh r6, [r3, r5, lsl #1] 8822 cmp r6, #0 8823 bne .L1138 8824 strh r7, [r4] @ movhi 8825 mov r0, r4 8826 bl make_superblock 8827 ldrb r3, [r4, #7] @ zero_extendqisi2 8828 cbnz r3, .L1143 8829 ldr r3, .L1177+24 8830 movw r2, #65535 8831 mov r0, r7 8832 ldr r3, [r3] 8833 strh r2, [r3, r5, lsl #1] @ movhi 8834 bl INSERT_DATA_LIST 8835 ldr r3, .L1177 8836 ldrh r2, [r8] 8837 ldrh r3, [r3] 8838 add r3, r3, r2 8839 ldrh r2, [r10] 8840 cmp r3, r2 8841 ble .L1138 8842 movw r2, #2638 8843 ldr r1, .L1177+4 8844 ldr r0, .L1177+8 8845 bl printf 8846 b .L1138 8847.L1165: 8848 movs r1, #0 8849 b .L1140 8850.L1143: 8851 ldr r3, .L1177 8852 ldrh r2, [r8] 8853 ldrh r3, [r3] 8854 add r3, r3, r2 8855 ldrh r2, [r10] 8856 cmp r3, r2 8857 ble .L1145 8858 movw r2, #2641 8859 ldr r1, .L1177+4 8860 ldr r0, .L1177+8 8861 bl printf 8862.L1145: 8863 ldr r3, .L1177+28 8864 add lr, r4, #16 8865 ldr r2, .L1177+32 8866 mov r8, #0 8867 ldr ip, [r3] 8868 ldrh r0, [r2] 8869 movs r2, #20 8870 mov r3, ip 8871 mla r0, r2, r0, ip 8872.L1146: 8873 cmp r0, r3 8874 bne .L1148 8875 cbnz r6, .L1149 8876 movw r2, #2652 8877 ldr r1, .L1177+4 8878 ldr r0, .L1177+8 8879 bl printf 8880.L1149: 8881 ldr r3, .L1177+36 8882 ldrh r3, [r3] 8883 cmp r3, r7 8884 bne .L1150 8885 movw r2, #2654 8886 ldr r1, .L1177+4 8887 ldr r0, .L1177+8 8888 bl printf 8889.L1150: 8890 ldrb r2, [r4, #8] @ zero_extendqisi2 8891 ldr r3, .L1177+40 8892 ldr fp, .L1177+76 8893 ldr r8, .L1177+80 8894 ldr r1, [r3] 8895 cmp r2, #0 8896 bne .L1151 8897 ldrh r2, [r1, r5, lsl #1] 8898 cmp r2, #0 8899 beq .L1152 8900 ldr r0, .L1177+44 8901 ldrh r0, [r0] 8902 add r2, r2, r0 8903.L1175: 8904 strh r2, [r1, r5, lsl #1] @ movhi 8905 mov r0, r7 8906 ldr r2, [fp] 8907 movs r1, #0 8908 str r3, [sp, #4] 8909 adds r2, r2, #1 8910 str r2, [fp] 8911 bl ftl_set_blk_mode 8912.L1176: 8913 ldr r3, [sp, #4] 8914 ldr r0, [fp] 8915 ldr r3, [r3] 8916 ldrh r1, [r3, r5, lsl #1] 8917 ldr r3, .L1177+48 8918 ldr r2, [r3] 8919 cmp r1, r2 8920 it hi 8921 strhi r1, [r3] 8922 ldr r3, .L1177+44 8923 ldrh r1, [r10] 8924 ldrh r2, [r3] 8925 ldr r3, [r8] 8926 mla r0, r0, r2, r3 8927 bl __aeabi_uidiv 8928 ldr r3, .L1177+52 8929 ldr ip, .L1177+84 8930 str r0, [r3] 8931 ldr r3, .L1177+56 8932 ldr r2, [r3] 8933 ldr r3, [r2, #16] 8934 adds r3, r3, #1 8935 str r3, [r2, #16] 8936 movs r2, #20 8937 ldr r3, .L1177+28 8938 ldr r0, [r3] 8939 adds r3, r0, #4 8940 mla r2, r2, r6, r0 8941 adds r2, r2, #24 8942.L1156: 8943 adds r3, r3, #20 8944 cmp r2, r3 8945 bne .L1157 8946 mov r2, r6 8947 ldrb r1, [r4, #8] @ zero_extendqisi2 8948 mov r8, #0 8949 bl FlashEraseBlocks 8950 mov r10, r8 8951 movs r3, #20 8952.L1158: 8953 uxth r2, r8 8954 cmp r6, r2 8955 bhi .L1160 8956 cmp r10, #0 8957 beq .L1161 8958 mov r0, r7 8959 bl update_multiplier_value 8960 bl FtlBbmTblFlush 8961.L1161: 8962 ldrb r2, [r4, #7] @ zero_extendqisi2 8963 cmp r2, #0 8964 bne .L1162 8965 ldr r3, .L1177+24 8966 movw r2, #65535 8967 ldr r3, [r3] 8968 strh r2, [r3, r5, lsl #1] @ movhi 8969 b .L1138 8970.L1148: 8971 ldrh r1, [lr], #2 8972 movw fp, #65535 8973 str r8, [r3, #8] 8974 str r8, [r3, #12] 8975 cmp r1, fp 8976 beq .L1147 8977 mla fp, r2, r6, ip 8978 adds r6, r6, #1 8979 lsls r1, r1, #10 8980 uxth r6, r6 8981 str r1, [fp, #4] 8982.L1147: 8983 adds r3, r3, #20 8984 b .L1146 8985.L1152: 8986 movs r2, #2 8987 b .L1175 8988.L1151: 8989 ldrh r2, [r1, r5, lsl #1] 8990 mov r0, r7 8991 str r3, [sp, #4] 8992 adds r2, r2, #1 8993 strh r2, [r1, r5, lsl #1] @ movhi 8994 ldr r2, [r8] 8995 adds r2, r2, #1 8996 str r2, [r8] 8997 bl ftl_set_blk_mode.part.6 8998 b .L1176 8999.L1157: 9000 ldr r1, [r3, #-20] 9001 and r1, r1, ip 9002 str r1, [r3, #-20] 9003 b .L1156 9004.L1160: 9005 ldr r1, .L1177+28 9006 mul r2, r3, r8 9007 ldr r1, [r1] 9008 ldr fp, [r1, r2] 9009 adds r0, r1, r2 9010 cmp fp, #-1 9011 bne .L1159 9012 ldr r0, [r0, #4] 9013 add r10, r10, #1 9014 str r3, [sp, #4] 9015 ubfx r0, r0, #10, #16 9016 bl FtlBbmMapBadBlock 9017 add r2, r4, r8, lsl #1 9018 ldr r3, [sp, #4] 9019 strh fp, [r2, #16] @ movhi 9020 ldrb r2, [r4, #7] @ zero_extendqisi2 9021 subs r2, r2, #1 9022 strb r2, [r4, #7] 9023.L1159: 9024 add r8, r8, #1 9025 b .L1158 9026.L1162: 9027 ldr r3, .L1177+60 9028 ldr r1, .L1177+64 9029 ldrh r3, [r3] 9030 strh r7, [r4] @ movhi 9031 smulbb r3, r3, r2 9032 movs r2, #0 9033 strh r2, [r4, #2] @ movhi 9034 strb r2, [r4, #6] 9035 ldr r2, [r1] 9036 uxth r3, r3 9037 strh r3, [r4, #4] @ movhi 9038 str r2, [r4, #12] 9039 adds r2, r2, #1 9040 str r2, [r1] 9041 ldr r2, .L1177+24 9042 ldr r1, [sp] 9043 ldr r2, [r2] 9044 strh r3, [r2, r1] @ movhi 9045 ldrh r3, [r4, #4] 9046 cbz r3, .L1163 9047 ldrb r3, [r4, #7] @ zero_extendqisi2 9048 cbnz r3, .L1164 9049.L1163: 9050 movw r2, #2707 9051 ldr r1, .L1177+4 9052 ldr r0, .L1177+8 9053 bl printf 9054.L1164: 9055 movs r0, #0 9056 add sp, sp, #8 9057 @ sp needed 9058 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9059.L1178: 9060 .align 2 9061.L1177: 9062 .word .LANCHOR48 9063 .word .LANCHOR163 9064 .word .LC1 9065 .word .LANCHOR53 9066 .word .LANCHOR87 9067 .word .LANCHOR47 9068 .word .LANCHOR42 9069 .word .LANCHOR106 9070 .word .LANCHOR3 9071 .word .LANCHOR80 9072 .word .LANCHOR43 9073 .word .LANCHOR14 9074 .word .LANCHOR76 9075 .word .LANCHOR74 9076 .word .LANCHOR127 9077 .word .LANCHOR19 9078 .word .LANCHOR70 9079 .word .LANCHOR45 9080 .word .LANCHOR5 9081 .word .LANCHOR72 9082 .word .LANCHOR73 9083 .word -1024 9084 .size allocate_data_superblock, .-allocate_data_superblock 9085 .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits 9086 .align 1 9087 .global FtlGcFreeBadSuperBlk 9088 .syntax unified 9089 .thumb 9090 .thumb_func 9091 .fpu softvfp 9092 .type FtlGcFreeBadSuperBlk, %function 9093FtlGcFreeBadSuperBlk: 9094 @ args = 0, pretend = 0, frame = 8 9095 @ frame_needed = 0, uses_anonymous_args = 0 9096 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 9097 mov r10, r0 9098 ldr r4, .L1191 9099 ldrh r3, [r4] 9100 cbz r3, .L1180 9101 ldr r8, .L1191+16 9102 movs r6, #0 9103.L1181: 9104 ldr r3, .L1191+4 9105 ldrh r2, [r3] 9106 uxth r3, r6 9107 cmp r2, r3 9108 bhi .L1187 9109 bl FtlGcReFreshBadBlk 9110.L1180: 9111 movs r0, #0 9112 add sp, sp, #8 9113 @ sp needed 9114 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9115.L1187: 9116 ldr r2, .L1191+8 9117 uxth r3, r6 9118 mov r1, r10 9119 movs r7, #0 9120 ldrb r0, [r2, r3] @ zero_extendqisi2 9121 bl V2P_block 9122 ldr r2, .L1191+12 9123 mov fp, r0 9124.L1182: 9125 ldrh r3, [r4] 9126 uxth r5, r7 9127 cmp r3, r5 9128 bhi .L1186 9129 adds r6, r6, #1 9130 b .L1181 9131.L1186: 9132 uxth r3, r7 9133 ldrh r1, [r8, r3, lsl #1] 9134 cmp r1, fp 9135 bne .L1183 9136 mov r1, fp 9137 mov r0, r2 9138 str r3, [sp, #4] 9139 str r2, [sp] 9140 bl printf 9141 mov r0, fp 9142 bl FtlBbmMapBadBlock 9143 bl FtlBbmTblFlush 9144 ldr r3, [sp, #4] 9145 ldrh r1, [r4] 9146 ldr r2, [sp] 9147 add r3, r8, r3, lsl #1 9148.L1184: 9149 cmp r5, r1 9150 bcc .L1185 9151 subs r1, r1, #1 9152 strh r1, [r4] @ movhi 9153.L1183: 9154 adds r7, r7, #1 9155 b .L1182 9156.L1185: 9157 ldrh r0, [r3, #2]! 9158 adds r5, r5, #1 9159 uxth r5, r5 9160 strh r0, [r3, #-2] @ movhi 9161 b .L1184 9162.L1192: 9163 .align 2 9164.L1191: 9165 .word .LANCHOR101 9166 .word .LANCHOR3 9167 .word .LANCHOR13 9168 .word .LC104 9169 .word .LANCHOR102 9170 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 9171 .section .text.update_vpc_list,"ax",%progbits 9172 .align 1 9173 .global update_vpc_list 9174 .syntax unified 9175 .thumb 9176 .thumb_func 9177 .fpu softvfp 9178 .type update_vpc_list, %function 9179update_vpc_list: 9180 @ args = 0, pretend = 0, frame = 0 9181 @ frame_needed = 0, uses_anonymous_args = 0 9182 push {r3, r4, r5, lr} 9183 mov r4, r0 9184 ldr r3, .L1203 9185 ldr r3, [r3] 9186 ldrh r3, [r3, r0, lsl #1] 9187 cmp r3, #0 9188 bne .L1194 9189 ldr r2, .L1203+4 9190 ldrh r1, [r2] 9191 cmp r1, r0 9192 bne .L1195 9193 movw r3, #65535 9194 strh r3, [r2] @ movhi 9195.L1196: 9196 ldr r5, .L1203+8 9197 mov r1, r4 9198 ldr r0, .L1203+12 9199 bl List_remove_node 9200 ldrh r3, [r5] 9201 cbnz r3, .L1198 9202 movw r2, #2777 9203 ldr r1, .L1203+16 9204 ldr r0, .L1203+20 9205 bl printf 9206.L1198: 9207 ldrh r3, [r5] 9208 mov r0, r4 9209 subs r3, r3, #1 9210 strh r3, [r5] @ movhi 9211 bl free_data_superblock 9212 mov r0, r4 9213 bl FtlGcFreeBadSuperBlk 9214 ldr r3, .L1203+24 9215 ldrh r2, [r5] 9216 ldrh r3, [r3] 9217 add r3, r3, r2 9218 ldr r2, .L1203+28 9219 ldrh r2, [r2] 9220 cmp r3, r2 9221 ble .L1202 9222 movw r2, #2780 9223 ldr r1, .L1203+16 9224 ldr r0, .L1203+20 9225 bl printf 9226.L1202: 9227 movs r3, #1 9228 b .L1193 9229.L1195: 9230 ldr r2, .L1203+32 9231 ldrh r2, [r2] 9232 cmp r2, r0 9233 beq .L1193 9234 ldr r2, .L1203+36 9235 ldrh r2, [r2] 9236 cmp r2, r0 9237 beq .L1193 9238 ldr r2, .L1203+40 9239 ldrh r2, [r2] 9240 cmp r2, r0 9241 bne .L1196 9242.L1193: 9243 mov r0, r3 9244 pop {r3, r4, r5, pc} 9245.L1194: 9246 bl List_update_data_list 9247 movs r3, #0 9248 b .L1193 9249.L1204: 9250 .align 2 9251.L1203: 9252 .word .LANCHOR42 9253 .word .LANCHOR80 9254 .word .LANCHOR45 9255 .word .LANCHOR41 9256 .word .LANCHOR164 9257 .word .LC1 9258 .word .LANCHOR48 9259 .word .LANCHOR5 9260 .word .LANCHOR51 9261 .word .LANCHOR52 9262 .word .LANCHOR53 9263 .size update_vpc_list, .-update_vpc_list 9264 .section .text.decrement_vpc_count,"ax",%progbits 9265 .align 1 9266 .global decrement_vpc_count 9267 .syntax unified 9268 .thumb 9269 .thumb_func 9270 .fpu softvfp 9271 .type decrement_vpc_count, %function 9272decrement_vpc_count: 9273 @ args = 0, pretend = 0, frame = 0 9274 @ frame_needed = 0, uses_anonymous_args = 0 9275 movw r3, #65535 9276 push {r4, r5, r6, lr} 9277 cmp r0, r3 9278 mov r4, r0 9279 beq .L1206 9280 ldr r5, .L1214 9281 ldr r3, [r5] 9282 ldrh r2, [r3, r0, lsl #1] 9283 cbnz r2, .L1207 9284 mov r1, r0 9285 ldr r0, .L1214+4 9286 bl printf 9287 ldr r3, [r5] 9288 ldrh r5, [r3, r4, lsl #1] 9289 cbz r5, .L1208 9290.L1212: 9291 movs r5, #0 9292.L1205: 9293 mov r0, r5 9294 pop {r4, r5, r6, pc} 9295.L1208: 9296 movw r2, #2795 9297.L1213: 9298 ldr r1, .L1214+8 9299 ldr r0, .L1214+12 9300 bl printf 9301 b .L1205 9302.L1207: 9303 subs r2, r2, #1 9304 strh r2, [r3, r0, lsl #1] @ movhi 9305.L1206: 9306 ldr r6, .L1214+16 9307 movw r3, #65535 9308 ldrh r0, [r6] 9309 cmp r0, r3 9310 bne .L1210 9311 strh r4, [r6] @ movhi 9312 b .L1212 9313.L1210: 9314 cmp r4, r0 9315 beq .L1212 9316 bl update_vpc_list 9317 ldr r3, .L1214+20 9318 adds r5, r0, #0 9319 ldr r2, .L1214+24 9320 it ne 9321 movne r5, #1 9322 strh r4, [r6] @ movhi 9323 ldr r3, [r3] 9324 ldr r2, [r2] 9325 subs r3, r3, r2 9326 asrs r2, r3, #1 9327 ldr r3, .L1214+28 9328 muls r3, r2, r3 9329 ldr r2, .L1214 9330 ldr r2, [r2] 9331 uxth r1, r3 9332 ldrh r2, [r2, r1, lsl #1] 9333 cmp r2, #0 9334 bne .L1205 9335 cmp r4, r1 9336 beq .L1205 9337 movw r2, #2811 9338 b .L1213 9339.L1215: 9340 .align 2 9341.L1214: 9342 .word .LANCHOR42 9343 .word .LC105 9344 .word .LANCHOR165 9345 .word .LC1 9346 .word .LANCHOR142 9347 .word .LANCHOR41 9348 .word .LANCHOR40 9349 .word -1431655765 9350 .size decrement_vpc_count, .-decrement_vpc_count 9351 .section .text.FtlRecoverySuperblock,"ax",%progbits 9352 .align 1 9353 .global FtlRecoverySuperblock 9354 .syntax unified 9355 .thumb 9356 .thumb_func 9357 .fpu softvfp 9358 .type FtlRecoverySuperblock, %function 9359FtlRecoverySuperblock: 9360 @ args = 0, pretend = 0, frame = 48 9361 @ frame_needed = 0, uses_anonymous_args = 0 9362 ldrh r3, [r0] 9363 movw r2, #65535 9364 push {r4, r5, r6, r7, r8, r10, fp, lr} 9365 mov r8, r0 9366 sub sp, sp, #48 9367 cmp r3, r2 9368 beq .L1344 9369 ldrh r3, [r0, #2] 9370 str r3, [sp, #4] 9371 ldrb r3, [r0, #6] @ zero_extendqisi2 9372 ldr r1, [sp, #4] 9373 str r3, [sp, #20] 9374 ldr r3, .L1352 9375 ldrh r3, [r3] 9376 cmp r3, r1 9377 mov r3, #0 9378 bne .L1219 9379 strh r3, [r0, #4] @ movhi 9380.L1350: 9381 strb r3, [r8, #6] 9382.L1344: 9383 movs r0, #0 9384 add sp, sp, #48 9385 @ sp needed 9386 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9387.L1219: 9388 ldrh r0, [r0, #16] 9389.L1220: 9390 cmp r0, r2 9391 uxth r5, r3 9392 add r3, r3, #1 9393 beq .L1221 9394 movs r1, #1 9395 bl FtlGetLastWrittenPage 9396 mov r4, r0 9397 adds r0, r0, #1 9398 beq .L1222 9399 ldr r3, .L1352+4 9400 movs r2, #0 9401 mov r5, r2 9402 movw fp, #65535 9403 mov r10, #20 9404 ldrh ip, [r3] 9405 ldr r3, .L1352+8 9406 ldr r0, [r3] 9407 ldr r3, .L1352+12 9408 ldr r3, [r3] 9409 str r3, [sp, #8] 9410 ldr r3, .L1352+16 9411 ldrh r7, [r3] 9412 ldr r3, .L1352+20 9413 ldr r3, [r3] 9414 str r3, [sp, #12] 9415 ldr r3, .L1352+24 9416 ldrh lr, [r3] 9417 add r3, r8, #16 9418 str r3, [sp, #16] 9419 str r3, [sp] 9420.L1223: 9421 uxth r3, r2 9422 cmp ip, r3 9423 bhi .L1227 9424 movs r2, #0 9425 mov r1, r5 9426 bl FlashReadPages 9427 ldr r2, .L1352+28 9428 uxth r1, r4 9429 movw fp, #65535 9430 str r1, [sp, #12] 9431 ldr r3, [r2] 9432 subs r3, r3, #1 9433 str r3, [sp] 9434 ldr r3, .L1352+8 9435 ldr r10, [r3] 9436 movs r3, #0 9437 mov r7, r10 9438.L1228: 9439 uxth r1, r3 9440 cmp r5, r1 9441 bhi .L1233 9442 bne .L1231 9443 adds r3, r4, #1 9444 uxth r3, r3 9445 str r3, [sp, #8] 9446.L1345: 9447 ldr r0, [r10, #4] 9448 ubfx r0, r0, #10, #16 9449 bl P2V_plane 9450 ldr r3, .L1352 9451 mov r10, r0 9452 ldr r2, [sp, #8] 9453 ldrh r3, [r3] 9454 cmp r3, r2 9455 bne .L1235 9456 ldrh r3, [sp, #8] 9457 strh r3, [r8, #2] @ movhi 9458 movs r3, #0 9459 strb r3, [r8, #6] 9460 strh r3, [r8, #4] @ movhi 9461.L1235: 9462 ldr r3, [sp, #8] 9463 ldr r2, [sp, #4] 9464 cmp r3, r2 9465 bne .L1236 9466 ldr r3, [sp, #20] 9467 cmp r10, r3 9468 bne .L1236 9469 ldr r1, [sp, #8] 9470 mov r2, r10 9471.L1351: 9472 mov r0, r8 9473 bl ftl_sb_update_avl_pages 9474 b .L1344 9475.L1221: 9476 uxth r1, r3 9477 adds r1, r1, #8 9478 ldrh r0, [r8, r1, lsl #1] 9479 b .L1220 9480.L1222: 9481 ldr r3, [sp, #4] 9482 cbz r3, .L1224 9483 movw r2, #1766 9484 ldr r1, .L1352+32 9485 ldr r0, .L1352+36 9486 bl printf 9487.L1224: 9488 ldr r3, [sp, #20] 9489 cbz r3, .L1225 9490 cmp r5, r3 9491 beq .L1225 9492 movw r2, #1767 9493 ldr r1, .L1352+32 9494 ldr r0, .L1352+36 9495 bl printf 9496.L1225: 9497 movs r3, #0 9498 strh r3, [r8, #2] @ movhi 9499 b .L1350 9500.L1227: 9501 ldr r1, [sp] 9502 ldrh r3, [r1], #2 9503 cmp r3, fp 9504 str r1, [sp] 9505 beq .L1226 9506 mla r1, r10, r5, r0 9507 ldr r6, [sp, #8] 9508 orr r3, r4, r3, lsl #10 9509 str r3, [r1, #4] 9510 mul r3, r7, r5 9511 bic r3, r3, #3 9512 add r3, r3, r6 9513 ldr r6, [sp, #12] 9514 str r3, [r1, #8] 9515 mul r3, lr, r5 9516 adds r5, r5, #1 9517 uxth r5, r5 9518 bic r3, r3, #3 9519 add r3, r3, r6 9520 str r3, [r1, #12] 9521.L1226: 9522 adds r2, r2, #1 9523 b .L1223 9524.L1233: 9525 ldr r1, [r7] 9526 cbnz r1, .L1229 9527 ldr r1, [r7, #12] 9528 ldr r6, [r1, #4] 9529 str r1, [sp, #8] 9530 adds r1, r6, #1 9531 beq .L1230 9532 ldr r1, [r2] 9533 mov r0, r6 9534 bl ftl_cmp_data_ver 9535 cbz r0, .L1230 9536 adds r6, r6, #1 9537 str r6, [r2] 9538.L1230: 9539 ldr r1, [sp, #8] 9540 ldr r1, [r1] 9541 adds r1, r1, #1 9542 bne .L1232 9543.L1231: 9544 uxth r2, r4 9545 uxth r3, r3 9546 str r2, [sp, #8] 9547 movs r2, #20 9548 mla r10, r2, r3, r10 9549 b .L1345 9550.L1229: 9551 ldr fp, [sp, #12] 9552.L1232: 9553 adds r3, r3, #1 9554 adds r7, r7, #20 9555 b .L1228 9556.L1236: 9557 movw r3, #65535 9558 cmp fp, r3 9559 bne .L1237 9560 ldrb r3, [r8, #8] @ zero_extendqisi2 9561 cmp r3, #0 9562 bne .L1238 9563.L1237: 9564 ldr r3, .L1352+40 9565 uxth r6, r4 9566 uxth r4, r4 9567 ldr r7, .L1352+8 9568 ldr r2, [r3] 9569 adds r2, r2, #1 9570 itt eq 9571 ldreq r2, [sp] 9572 streq r2, [r3] 9573 ldr r3, [sp, #4] 9574 adds r3, r3, #7 9575 cmp r4, r3 9576 itet gt 9577 subgt r4, r6, #7 9578 ldrle r4, [sp, #4] 9579 uxthgt r4, r4 9580.L1241: 9581 cmp r4, r6 9582 bhi .L1251 9583 ldr r3, .L1352+4 9584 movw lr, #65535 9585 ldr r0, [r7] 9586 mov ip, #20 9587 ldrh fp, [r3] 9588 ldr r3, [sp, #16] 9589 str r3, [sp, #12] 9590 movs r3, #0 9591 mov r5, r3 9592 b .L1252 9593.L1243: 9594 ldr r1, [sp, #12] 9595 ldrh r2, [r1], #2 9596 cmp r2, lr 9597 str r1, [sp, #12] 9598 beq .L1242 9599 mla r1, ip, r5, r0 9600 adds r5, r5, #1 9601 orr r2, r4, r2, lsl #10 9602 uxth r5, r5 9603 str r2, [r1, #4] 9604.L1242: 9605 adds r3, r3, #1 9606.L1252: 9607 uxth r2, r3 9608 cmp fp, r2 9609 bhi .L1243 9610 mov r1, r5 9611 movs r2, #0 9612 bl FlashReadPages 9613 ldr r3, .L1352+40 9614 movs r1, #20 9615 movs r0, #0 9616 movw ip, #65535 9617 ldr r2, [r3] 9618 ldr r3, [r7] 9619 mla r5, r1, r5, r3 9620.L1244: 9621 cmp r5, r3 9622 bne .L1249 9623 cbz r0, .L1250 9624 ldr r3, .L1352+40 9625 str r2, [r3] 9626.L1250: 9627 adds r4, r4, #1 9628 uxth r4, r4 9629 b .L1241 9630.L1353: 9631 .align 2 9632.L1352: 9633 .word .LANCHOR19 9634 .word .LANCHOR3 9635 .word .LANCHOR112 9636 .word .LANCHOR91 9637 .word .LANCHOR23 9638 .word .LANCHOR92 9639 .word .LANCHOR24 9640 .word .LANCHOR71 9641 .word .LANCHOR166 9642 .word .LC1 9643 .word .LANCHOR145 9644.L1249: 9645 ldr r1, [r3] 9646 cmp r1, #0 9647 beq .L1245 9648 cbz r0, .L1238 9649.L1346: 9650 ldr r3, .L1354 9651 str r2, [r3] 9652.L1238: 9653 ldr fp, [sp, #4] 9654 movs r2, #1 9655 ldr r6, .L1354+4 9656 ldr r3, .L1354+8 9657 strh r2, [r3] @ movhi 9658.L1253: 9659 ldr r3, .L1354+12 9660 movw lr, #65535 9661 ldr r0, [r6] 9662 movs r7, #20 9663 ldr r1, [sp, #16] 9664 ldrh r4, [r3] 9665 movs r3, #0 9666 str r3, [sp, #12] 9667.L1254: 9668 uxth r2, r3 9669 cmp r4, r2 9670 bhi .L1256 9671 movs r2, #0 9672 ldr r1, [sp, #12] 9673 bl FlashReadPages 9674 movs r3, #0 9675.L1349: 9676 str r3, [sp, #24] 9677 ldr r2, [sp, #12] 9678 ldrh r3, [sp, #24] 9679 cmp r2, r3 9680 bhi .L1284 9681 ldr r3, .L1354+16 9682 add fp, fp, #1 9683 uxth fp, fp 9684 ldrh r3, [r3] 9685 cmp r3, fp 9686 bne .L1253 9687 ldr r2, .L1354+12 9688 movw r0, #65535 9689 movs r3, #0 9690 strh fp, [r8, #2] @ movhi 9691 strh r3, [r8, #4] @ movhi 9692 ldrh r2, [r2] 9693.L1285: 9694 uxth r1, r3 9695 cmp r1, r2 9696 bcs .L1344 9697 ldr r1, [sp, #16] 9698 ldrh r4, [r1], #2 9699 cmp r4, r0 9700 str r1, [sp, #16] 9701 add r1, r3, #1 9702 bne .L1350 9703 mov r3, r1 9704 b .L1285 9705.L1245: 9706 ldr r1, [r3, #12] 9707 ldrh lr, [r1] 9708 cmp lr, ip 9709 beq .L1248 9710 ldr r1, [r1, #4] 9711 cmp r1, #-1 9712 itt ne 9713 movne r2, r1 9714 movne r0, #1 9715.L1248: 9716 adds r3, r3, #20 9717 b .L1244 9718.L1251: 9719 mov r2, #-1 9720 b .L1346 9721.L1256: 9722 ldrh r2, [r1], #2 9723 cmp r2, lr 9724 beq .L1255 9725 ldr r5, [sp, #12] 9726 orr r2, fp, r2, lsl #10 9727 mla ip, r7, r5, r0 9728 str r2, [ip, #4] 9729 mov r2, r5 9730 adds r2, r2, #1 9731 uxth r2, r2 9732 str r2, [sp, #12] 9733.L1255: 9734 adds r3, r3, #1 9735 b .L1254 9736.L1284: 9737 ldr r3, [sp, #24] 9738 movs r5, #20 9739 muls r5, r3, r5 9740 ldr r3, [r6] 9741 str r3, [sp, #28] 9742 adds r7, r3, r5 9743 ldr r4, [r7, #4] 9744 ubfx r0, r4, #10, #16 9745 str r4, [sp, #44] 9746 bl P2V_plane 9747 ldr r3, [sp, #4] 9748 cmp fp, r3 9749 bcc .L1258 9750 ldr r3, [sp, #28] 9751 bne .L1259 9752 ldr r2, [sp, #20] 9753 cmp r2, r0 9754 bhi .L1258 9755.L1259: 9756 ldr r2, [sp, #8] 9757 cmp fp, r2 9758 bne .L1260 9759 cmp r10, r0 9760 beq .L1261 9761.L1260: 9762 ldr r3, [r3, r5] 9763 adds r3, r3, #1 9764 beq .L1262 9765 ldr r3, [r7, #12] 9766 movw r2, #61589 9767 ldrh r1, [r3] 9768 cmp r1, r2 9769 beq .L1263 9770 ldrh r0, [r8] 9771.L1347: 9772 bl decrement_vpc_count 9773 b .L1258 9774.L1263: 9775 ldr r2, [r3, #4] 9776 str r2, [sp] 9777 adds r2, r2, #1 9778 beq .L1264 9779 ldr r2, .L1354+20 9780 ldr r0, [sp] 9781 ldr r1, [r2] 9782 bl ftl_cmp_data_ver 9783 cbz r0, .L1264 9784 ldr r1, [sp] 9785 adds r1, r1, #1 9786 str r1, [r2] 9787.L1264: 9788 ldr r4, [r3, #8] 9789 add r1, sp, #40 9790 ldr r3, [r3, #12] 9791 movs r2, #0 9792 mov r0, r4 9793 str r3, [sp, #36] 9794 bl log2phys 9795 ldr r3, .L1354 9796 ldr r1, [r3] 9797 adds r3, r1, #1 9798 beq .L1265 9799 ldr r0, [sp] 9800 bl ftl_cmp_data_ver 9801 cmp r0, #0 9802 beq .L1265 9803 ldr r3, [sp, #36] 9804 adds r7, r3, #1 9805 beq .L1266 9806 ldr r0, [r6] 9807 movs r2, #0 9808 movs r1, #1 9809 add r0, r0, r5 9810 str r3, [r0, #4] 9811 ldr r7, [r0, #12] 9812 bl FlashReadPages 9813 ldr r2, [r6] 9814 ldr r1, [r2, r5] 9815 adds r3, r2, r5 9816 adds r1, r1, #1 9817 bne .L1267 9818.L1268: 9819 mov r3, #-1 9820 str r3, [sp, #36] 9821.L1275: 9822 ldr r7, [sp, #36] 9823 adds r0, r7, #1 9824 beq .L1258 9825.L1288: 9826 ubfx r0, r7, #10, #16 9827 bl P2V_block_in_plane 9828 ldr r3, .L1354+24 9829 mov r4, r0 9830 ldrh r3, [r3] 9831 cmp r3, r0 9832 bhi .L1280 9833 movw r2, #2019 9834 ldr r1, .L1354+28 9835 ldr r0, .L1354+32 9836 bl printf 9837.L1280: 9838 ldr r3, .L1354+36 9839 ldr r3, [r3] 9840 ldrh r3, [r3, r4, lsl #1] 9841 cmp r3, #0 9842 beq .L1281 9843 mov r0, r4 9844 b .L1347 9845.L1266: 9846 ldr r3, [sp, #44] 9847 ldr r2, [sp, #40] 9848 cmp r2, r3 9849 bne .L1258 9850 movs r2, #1 9851 add r1, sp, #36 9852 mov r0, r4 9853 bl log2phys 9854.L1258: 9855 ldr r3, [sp, #24] 9856 adds r3, r3, #1 9857 b .L1349 9858.L1267: 9859 ldr r1, [r7, #8] 9860 cmp r4, r1 9861 bne .L1268 9862 ldr r0, .L1354 9863 ldr r1, [r7, #4] 9864 ldr r0, [r0] 9865 str r1, [sp, #28] 9866 bl ftl_cmp_data_ver 9867 cmp r0, #0 9868 beq .L1268 9869 ldr r1, [sp, #40] 9870 ldr r0, [sp, #44] 9871 cmp r1, r0 9872 bne .L1270 9873.L1273: 9874 ldr r1, [sp, #36] 9875 mov r0, r4 9876 bl FtlReUsePrevPpa 9877 b .L1268 9878.L1270: 9879 ldr r0, [sp, #36] 9880 cmp r1, r0 9881 beq .L1268 9882 adds r0, r1, #1 9883 beq .L1271 9884 str r1, [r3, #4] 9885 movs r2, #0 9886 movs r1, #1 9887 mov r0, r3 9888 ldr r7, [r3, #12] 9889 bl FlashReadPages 9890.L1272: 9891 ldr r3, [r6] 9892 ldr r3, [r3, r5] 9893 adds r3, r3, #1 9894 beq .L1273 9895 ldr r3, [r7, #4] 9896 ldr r2, .L1354 9897 mov r1, r3 9898 ldr r0, [r2] 9899 bl ftl_cmp_data_ver 9900 cmp r0, #0 9901 beq .L1273 9902 mov r1, r3 9903 ldr r0, [sp, #28] 9904 bl ftl_cmp_data_ver 9905 cmp r0, #0 9906 beq .L1268 9907 b .L1273 9908.L1271: 9909 str r1, [r2, r5] 9910 b .L1272 9911.L1265: 9912 ldr r3, [sp, #44] 9913 ldr r2, [sp, #40] 9914 cmp r2, r3 9915 beq .L1275 9916 movs r2, #1 9917 add r1, sp, #44 9918 mov r0, r4 9919 bl log2phys 9920 ldr r7, [sp, #40] 9921 adds r5, r7, #1 9922 beq .L1275 9923 ldr r3, [sp, #36] 9924 cmp r7, r3 9925 beq .L1288 9926 ubfx r0, r7, #10, #16 9927 bl P2V_block_in_plane 9928 ldr r3, .L1354+40 9929 ldrh r3, [r3] 9930 cmp r3, r0 9931 beq .L1279 9932 ldr r3, .L1354+44 9933 ldrh r3, [r3] 9934 cmp r3, r0 9935 beq .L1279 9936 ldr r3, .L1354+48 9937 ldrh r3, [r3] 9938 cmp r3, r0 9939 bne .L1275 9940.L1279: 9941 ldr r0, [r6] 9942 movs r2, #0 9943 movs r1, #1 9944 str r7, [r0, #4] 9945 ldr r5, [r0, #12] 9946 bl FlashReadPages 9947 ldr r3, [r6] 9948 ldr r3, [r3] 9949 adds r3, r3, #1 9950 beq .L1275 9951 ldr r1, [r5, #4] 9952 ldr r0, [sp] 9953 bl ftl_cmp_data_ver 9954 cmp r0, #0 9955 bne .L1275 9956 movs r2, #1 9957 add r1, sp, #40 9958 mov r0, r4 9959 bl log2phys 9960 b .L1275 9961.L1355: 9962 .align 2 9963.L1354: 9964 .word .LANCHOR145 9965 .word .LANCHOR112 9966 .word .LANCHOR167 9967 .word .LANCHOR3 9968 .word .LANCHOR19 9969 .word .LANCHOR71 9970 .word .LANCHOR5 9971 .word .LANCHOR166 9972 .word .LC1 9973 .word .LANCHOR42 9974 .word .LANCHOR51 9975 .word .LANCHOR52 9976 .word .LANCHOR53 9977.L1281: 9978 mov r1, r4 9979 ldr r0, .L1356 9980 bl printf 9981 b .L1258 9982.L1262: 9983 ldr r3, .L1356+4 9984 ldr r3, [r3] 9985 cmp r3, #31 9986 bhi .L1282 9987 ldr r2, .L1356+8 9988 str r4, [r2, r3, lsl #2] 9989 adds r3, r3, #1 9990 ldr r2, .L1356+4 9991 str r3, [r2] 9992.L1282: 9993 ldrh r0, [r8] 9994 bl decrement_vpc_count 9995 ldr r3, .L1356+12 9996 ldr r2, [r3] 9997 adds r1, r2, #1 9998 bne .L1283 9999 ldr r2, [sp] 10000.L1348: 10001 str r2, [r3] 10002 b .L1258 10003.L1283: 10004 ldr r1, [sp] 10005 cmp r1, r2 10006 bcs .L1258 10007 mov r2, r1 10008 b .L1348 10009.L1261: 10010 strb r10, [r8, #6] 10011 mov r2, r10 10012 strh fp, [r8, #2] @ movhi 10013 mov r1, fp 10014 b .L1351 10015.L1357: 10016 .align 2 10017.L1356: 10018 .word .LC106 10019 .word .LANCHOR168 10020 .word .LANCHOR169 10021 .word .LANCHOR145 10022 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 10023 .section .text.FtlWriteDump_data,"ax",%progbits 10024 .align 1 10025 .global FtlWriteDump_data 10026 .syntax unified 10027 .thumb 10028 .thumb_func 10029 .fpu softvfp 10030 .type FtlWriteDump_data, %function 10031FtlWriteDump_data: 10032 @ args = 0, pretend = 0, frame = 24 10033 @ frame_needed = 0, uses_anonymous_args = 0 10034 push {r4, r5, r6, r7, r8, r10, fp, lr} 10035 sub sp, sp, #24 10036 ldr r4, .L1377 10037 ldrh r2, [r4, #4] 10038 cmp r2, #0 10039 beq .L1359 10040 ldrb r3, [r4, #8] @ zero_extendqisi2 10041 cmp r3, #0 10042 bne .L1359 10043 ldr r3, .L1377+4 10044 ldrb r1, [r4, #7] @ zero_extendqisi2 10045 ldrh r3, [r3] 10046 muls r3, r1, r3 10047 cmp r2, r3 10048 beq .L1359 10049 ldrb r7, [r4, #10] @ zero_extendqisi2 10050 cbnz r7, .L1358 10051 ldr r3, .L1377+8 10052 mov r2, r7 10053 mov r1, sp 10054 ldr r6, [r3] 10055 ldr r3, .L1377+12 10056 subs r6, r6, #1 10057 mov r0, r6 10058 ldrh r8, [r3] 10059 bl log2phys 10060 ldr r2, .L1377+16 10061 ldr r3, [sp] 10062 str r6, [sp, #20] 10063 ldr r0, [r2] 10064 ldr r2, .L1377+20 10065 str r3, [sp, #8] 10066 adds r3, r3, #1 10067 str r0, [sp, #12] 10068 ldr r5, [r2] 10069 str r5, [sp, #16] 10070 str r7, [r5, #4] 10071 beq .L1361 10072 mov r2, r7 10073 movs r1, #1 10074 add r0, sp, #4 10075 bl FlashReadPages 10076.L1362: 10077 ldr fp, .L1377 10078 lsl r8, r8, #2 10079 ldr r10, .L1377+28 10080 movs r7, #0 10081 movw r3, #61589 10082 strh r3, [r5] @ movhi 10083.L1363: 10084 cmp r8, r7 10085 bne .L1367 10086.L1364: 10087 movs r3, #1 10088.L1376: 10089 strb r3, [r4, #10] 10090.L1358: 10091 add sp, sp, #24 10092 @ sp needed 10093 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10094.L1361: 10095 ldr r3, .L1377+24 10096 movs r1, #255 10097 ldrh r2, [r3] 10098 bl ftl_memset 10099 b .L1362 10100.L1367: 10101 ldrh r3, [r4, #4] 10102 cmp r3, #0 10103 beq .L1364 10104 ldr r3, [sp, #8] 10105 mov r0, fp 10106 str r6, [r5, #8] 10107 adds r7, r7, #1 10108 str r3, [r5, #12] 10109 ldrh r3, [r4] 10110 strh r3, [r5, #2] @ movhi 10111 bl get_new_active_ppa 10112 ldr r3, [r10] 10113 movs r1, #1 10114 str r0, [sp, #8] 10115 add r0, sp, #4 10116 str r3, [r5, #4] 10117 adds r3, r3, #1 10118 adds r2, r3, #1 10119 it eq 10120 moveq r3, #0 10121 str r3, [r10] 10122 movs r3, #0 10123 mov r2, r3 10124 bl FlashProgPages 10125 ldrh r0, [r4] 10126 bl decrement_vpc_count 10127 b .L1363 10128.L1359: 10129 movs r3, #0 10130 b .L1376 10131.L1378: 10132 .align 2 10133.L1377: 10134 .word .LANCHOR51 10135 .word .LANCHOR19 10136 .word .LANCHOR61 10137 .word .LANCHOR3 10138 .word .LANCHOR115 10139 .word .LANCHOR123 10140 .word .LANCHOR23 10141 .word .LANCHOR71 10142 .size FtlWriteDump_data, .-FtlWriteDump_data 10143 .section .text.l2p_flush,"ax",%progbits 10144 .align 1 10145 .global l2p_flush 10146 .syntax unified 10147 .thumb 10148 .thumb_func 10149 .fpu softvfp 10150 .type l2p_flush, %function 10151l2p_flush: 10152 @ args = 0, pretend = 0, frame = 0 10153 @ frame_needed = 0, uses_anonymous_args = 0 10154 push {r4, r5, r6, lr} 10155 movs r4, #0 10156 ldr r5, .L1383 10157 ldr r6, .L1383+4 10158 bl FtlWriteDump_data 10159.L1380: 10160 ldrh r3, [r5] 10161 uxth r0, r4 10162 cmp r3, r0 10163 bhi .L1382 10164 movs r0, #0 10165 pop {r4, r5, r6, pc} 10166.L1382: 10167 ldr r2, [r6] 10168 uxth r3, r4 10169 movs r1, #12 10170 mla r3, r1, r3, r2 10171 ldr r3, [r3, #4] 10172 cmp r3, #0 10173 bge .L1381 10174 bl flush_l2p_region 10175.L1381: 10176 adds r4, r4, #1 10177 b .L1380 10178.L1384: 10179 .align 2 10180.L1383: 10181 .word .LANCHOR33 10182 .word .LANCHOR55 10183 .size l2p_flush, .-l2p_flush 10184 .section .text.FtlSuperblockPowerLostFix,"ax",%progbits 10185 .align 1 10186 .global FtlSuperblockPowerLostFix 10187 .syntax unified 10188 .thumb 10189 .thumb_func 10190 .fpu softvfp 10191 .type FtlSuperblockPowerLostFix, %function 10192FtlSuperblockPowerLostFix: 10193 @ args = 0, pretend = 0, frame = 24 10194 @ frame_needed = 0, uses_anonymous_args = 0 10195 push {r4, r5, r6, r7, r8, lr} 10196 mov r3, #-1 10197 sub sp, sp, #24 10198 ldr r2, .L1398 10199 movs r6, #0 10200 mov r4, r0 10201 str r3, [sp, #20] 10202 ldr r3, .L1398+4 10203 ldr r5, [r2] 10204 mvn r2, #2 10205 ldr r8, .L1398+16 10206 ldr r3, [r3] 10207 str r5, [sp, #16] 10208 str r3, [sp, #12] 10209 str r2, [r5, #8] 10210 mvn r2, #1 10211 str r2, [r5, #12] 10212 ldrh r2, [r0] 10213 strh r6, [r5] @ movhi 10214 strh r2, [r5, #2] @ movhi 10215 movw r2, #61589 10216 str r2, [r3] 10217 add r2, r2, #304087040 10218 add r2, r2, #1269760 10219 addw r2, r2, #1507 10220 str r2, [r3, #4] 10221 ldrh r3, [r0, #4] 10222 tst r3, #1 10223 ite eq 10224 moveq r7, #6 10225 movne r7, #7 10226.L1391: 10227 ldrh r3, [r4, #4] 10228 cbnz r3, .L1387 10229.L1388: 10230 ldr r3, .L1398+8 10231 ldrh r1, [r4] 10232 ldrh r0, [r4, #4] 10233 ldr r2, [r3] 10234 ldrh r3, [r2, r1, lsl #1] 10235 subs r3, r3, r0 10236 strh r3, [r2, r1, lsl #1] @ movhi 10237 ldr r3, .L1398+12 10238 ldrh r3, [r3] 10239 strh r3, [r4, #2] @ movhi 10240 movs r3, #0 10241 strb r3, [r4, #6] 10242 strh r3, [r4, #4] @ movhi 10243 add sp, sp, #24 10244 @ sp needed 10245 pop {r4, r5, r6, r7, r8, pc} 10246.L1387: 10247 mov r0, r4 10248 bl get_new_active_ppa 10249 str r0, [sp, #8] 10250 adds r0, r0, #1 10251 beq .L1388 10252 ldr r3, [r8] 10253 movs r1, #1 10254 add r0, sp, #4 10255 str r3, [r5, #4] 10256 adds r3, r3, #1 10257 adds r2, r3, #1 10258 it eq 10259 moveq r3, r6 10260 str r3, [r8] 10261 movs r3, #0 10262 mov r2, r3 10263 bl FlashProgPages 10264 ldrh r0, [r4] 10265 bl decrement_vpc_count 10266 subs r7, r7, #1 10267 bne .L1391 10268 b .L1388 10269.L1399: 10270 .align 2 10271.L1398: 10272 .word .LANCHOR123 10273 .word .LANCHOR115 10274 .word .LANCHOR42 10275 .word .LANCHOR19 10276 .word .LANCHOR71 10277 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 10278 .section .text.FtlVendorPartWrite,"ax",%progbits 10279 .align 1 10280 .global FtlVendorPartWrite 10281 .syntax unified 10282 .thumb 10283 .thumb_func 10284 .fpu softvfp 10285 .type FtlVendorPartWrite, %function 10286FtlVendorPartWrite: 10287 @ args = 0, pretend = 0, frame = 104 10288 @ frame_needed = 0, uses_anonymous_args = 0 10289 ldr r3, .L1412 10290 push {r4, r5, r6, r7, r8, r10, fp, lr} 10291 sub sp, sp, #104 10292 str r2, [sp] 10293 adds r2, r0, r1 10294 mov r7, r0 10295 mov r5, r1 10296 ldrh r3, [r3] 10297 cmp r2, r3 10298 bhi .L1408 10299 ldr r3, .L1412+4 10300 mov r8, #0 10301 ldrh r6, [r3] 10302 lsr r6, r0, r6 10303 lsl fp, r6, #2 10304.L1402: 10305 cbnz r5, .L1407 10306.L1400: 10307 mov r0, r8 10308 add sp, sp, #104 10309 @ sp needed 10310 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10311.L1407: 10312 ldr r3, .L1412+8 10313 mov r0, r7 10314 ldr r10, .L1412+24 10315 ldr r3, [r3] 10316 ldr r2, [r3, fp] 10317 ldr r3, .L1412+12 10318 str r2, [sp, #12] 10319 ldrh r3, [r3] 10320 mov r1, r3 10321 str r3, [sp, #8] 10322 bl __aeabi_uidivmod 10323 ldr r3, [sp, #8] 10324 ldr r2, [sp, #12] 10325 str r1, [sp, #4] 10326 subs r4, r3, r1 10327 uxth r4, r4 10328 cmp r5, r4 10329 it cc 10330 uxthcc r4, r5 10331 cbz r2, .L1404 10332 cmp r4, r3 10333 beq .L1404 10334 ldr r3, [r10] 10335 add r0, sp, #20 10336 str r2, [sp, #24] 10337 movs r2, #1 10338 mov r1, r2 10339 str r3, [sp, #28] 10340 add r3, sp, #40 10341 str r3, [sp, #32] 10342 bl FlashReadPages 10343.L1405: 10344 lsls r3, r4, #9 10345 ldr r0, [r10] 10346 subs r5, r5, r4 10347 mov r2, r3 10348 str r3, [sp, #8] 10349 ldm sp, {r1, r3} 10350 add r7, r7, r4 10351 add fp, fp, #4 10352 add r0, r0, r3, lsl #9 10353 bl ftl_memcpy 10354 ldr r2, [r10] 10355 mov r1, r6 10356 ldr r0, .L1412+16 10357 adds r6, r6, #1 10358 bl FtlMapWritePage 10359 ldr r3, [sp] 10360 adds r0, r0, #1 10361 it eq 10362 moveq r8, #-1 10363 mov r2, r3 10364 ldr r3, [sp, #8] 10365 add r2, r2, r3 10366 str r2, [sp] 10367 b .L1402 10368.L1404: 10369 ldr r3, .L1412+20 10370 movs r1, #0 10371 ldr r0, [r10] 10372 ldrh r2, [r3] 10373 bl ftl_memset 10374 b .L1405 10375.L1408: 10376 mov r8, #-1 10377 b .L1400 10378.L1413: 10379 .align 2 10380.L1412: 10381 .word .LANCHOR16 10382 .word .LANCHOR22 10383 .word .LANCHOR133 10384 .word .LANCHOR12 10385 .word .LANCHOR158 10386 .word .LANCHOR23 10387 .word .LANCHOR117 10388 .size FtlVendorPartWrite, .-FtlVendorPartWrite 10389 .section .text.Ftl_save_ext_data,"ax",%progbits 10390 .align 1 10391 .global Ftl_save_ext_data 10392 .syntax unified 10393 .thumb 10394 .thumb_func 10395 .fpu softvfp 10396 .type Ftl_save_ext_data, %function 10397Ftl_save_ext_data: 10398 @ args = 0, pretend = 0, frame = 0 10399 @ frame_needed = 0, uses_anonymous_args = 0 10400 @ link register save eliminated. 10401 ldr r2, .L1416 10402 ldr r3, .L1416+4 10403 ldr r1, [r2] 10404 cmp r1, r3 10405 bne .L1414 10406 ldr r3, .L1416+8 10407 movs r1, #1 10408 movs r0, #0 10409 str r3, [r2, #4] 10410 ldr r3, .L1416+12 10411 ldr r3, [r3] 10412 str r3, [r2, #88] 10413 ldr r3, .L1416+16 10414 ldr r3, [r3] 10415 str r3, [r2, #92] 10416 ldr r3, .L1416+20 10417 ldr r3, [r3] 10418 str r3, [r2, #8] 10419 ldr r3, .L1416+24 10420 ldr r3, [r3] 10421 str r3, [r2, #12] 10422 ldr r3, .L1416+28 10423 ldr r3, [r3] 10424 str r3, [r2, #16] 10425 ldr r3, .L1416+32 10426 ldr r3, [r3] 10427 str r3, [r2, #20] 10428 ldr r3, .L1416+36 10429 ldr r3, [r3] 10430 str r3, [r2, #28] 10431 ldr r3, .L1416+40 10432 ldr r3, [r3] 10433 str r3, [r2, #32] 10434 ldr r3, .L1416+44 10435 ldr r3, [r3] 10436 str r3, [r2, #36] 10437 ldr r3, .L1416+48 10438 ldr r3, [r3] 10439 str r3, [r2, #40] 10440 ldr r3, .L1416+52 10441 ldr r3, [r3] 10442 str r3, [r2, #44] 10443 ldr r3, .L1416+56 10444 ldr r3, [r3] 10445 str r3, [r2, #48] 10446 b FtlVendorPartWrite 10447.L1414: 10448 bx lr 10449.L1417: 10450 .align 2 10451.L1416: 10452 .word .LANCHOR81 10453 .word 1179929683 10454 .word 1342177352 10455 .word .LANCHOR68 10456 .word .LANCHOR69 10457 .word .LANCHOR67 10458 .word .LANCHOR64 10459 .word .LANCHOR62 10460 .word .LANCHOR66 10461 .word .LANCHOR73 10462 .word .LANCHOR75 10463 .word .LANCHOR63 10464 .word .LANCHOR65 10465 .word .LANCHOR76 10466 .word .LANCHOR77 10467 .size Ftl_save_ext_data, .-Ftl_save_ext_data 10468 .section .text.FtlEctTblFlush,"ax",%progbits 10469 .align 1 10470 .global FtlEctTblFlush 10471 .syntax unified 10472 .thumb 10473 .thumb_func 10474 .fpu softvfp 10475 .type FtlEctTblFlush, %function 10476FtlEctTblFlush: 10477 @ args = 0, pretend = 0, frame = 0 10478 @ frame_needed = 0, uses_anonymous_args = 0 10479 ldr r2, .L1423 10480 push {r3, lr} 10481 ldrh r3, [r2] 10482 cmp r3, #31 10483 itett ls 10484 addls r3, r3, #1 10485 movhi r3, #32 10486 strhls r3, [r2] @ movhi 10487 movls r3, #1 10488 ldr r2, .L1423+4 10489 cbnz r0, .L1420 10490 ldr r1, [r2] 10491 ldr r0, [r1, #20] 10492 ldr r1, [r1, #16] 10493 add r3, r3, r0 10494 cmp r1, r3 10495 bcc .L1421 10496.L1420: 10497 ldr r2, [r2] 10498 movs r0, #64 10499 ldr r3, [r2, #16] 10500 str r3, [r2, #20] 10501 ldr r3, .L1423+8 10502 str r3, [r2] 10503 ldr r3, .L1423+12 10504 ldrh r1, [r3] 10505 lsls r3, r1, #9 10506 str r3, [r2, #12] 10507 ldr r3, [r2, #8] 10508 adds r3, r3, #1 10509 str r3, [r2, #8] 10510 movs r3, #0 10511 str r3, [r2, #4] 10512 bl FtlVendorPartWrite 10513 bl Ftl_save_ext_data 10514.L1421: 10515 movs r0, #0 10516 pop {r3, pc} 10517.L1424: 10518 .align 2 10519.L1423: 10520 .word .LANCHOR170 10521 .word .LANCHOR127 10522 .word 1112818501 10523 .word .LANCHOR125 10524 .size FtlEctTblFlush, .-FtlEctTblFlush 10525 .section .text.sftl_vendor_write,"ax",%progbits 10526 .align 1 10527 .global sftl_vendor_write 10528 .syntax unified 10529 .thumb 10530 .thumb_func 10531 .fpu softvfp 10532 .type sftl_vendor_write, %function 10533sftl_vendor_write: 10534 @ args = 0, pretend = 0, frame = 0 10535 @ frame_needed = 0, uses_anonymous_args = 0 10536 @ link register save eliminated. 10537 add r0, r0, #256 10538 b FtlVendorPartWrite 10539 .size sftl_vendor_write, .-sftl_vendor_write 10540 .section .text.FtlVendorPartRead,"ax",%progbits 10541 .align 1 10542 .global FtlVendorPartRead 10543 .syntax unified 10544 .thumb 10545 .thumb_func 10546 .fpu softvfp 10547 .type FtlVendorPartRead, %function 10548FtlVendorPartRead: 10549 @ args = 0, pretend = 0, frame = 104 10550 @ frame_needed = 0, uses_anonymous_args = 0 10551 ldr r3, .L1436 10552 push {r4, r5, r6, r7, r8, r10, fp, lr} 10553 mov r10, r2 10554 adds r2, r0, r1 10555 sub sp, sp, #104 10556 mov r7, r0 10557 mov r6, r1 10558 ldrh r3, [r3] 10559 cmp r2, r3 10560 bhi .L1435 10561 ldr r3, .L1436+4 10562 mov r8, #0 10563 ldr fp, .L1436+28 10564 ldrh r5, [r3] 10565 lsr r5, r0, r5 10566 lsls r3, r5, #2 10567 str r3, [sp] 10568.L1428: 10569 cbnz r6, .L1434 10570.L1426: 10571 mov r0, r8 10572 add sp, sp, #104 10573 @ sp needed 10574 pop {r4, r5, r6, r7, r8, r10, fp, pc} 10575.L1434: 10576 ldr r3, .L1436+8 10577 mov r0, r7 10578 ldr r2, [sp] 10579 ldr r3, [r3] 10580 ldr r3, [r3, r2] 10581 ldr r2, .L1436+12 10582 str r3, [sp, #8] 10583 ldrh r4, [r2] 10584 mov r1, r4 10585 bl __aeabi_uidivmod 10586 subs r4, r4, r1 10587 ldr r3, [sp, #8] 10588 uxth r4, r4 10589 str r1, [sp, #4] 10590 cmp r6, r4 10591 it cc 10592 uxthcc r4, r6 10593 lsls r2, r4, #9 10594 str r2, [sp, #8] 10595 cmp r3, #0 10596 beq .L1430 10597 ldr r2, [fp] 10598 add r0, sp, #20 10599 str r3, [sp, #24] 10600 str r3, [sp, #12] 10601 str r2, [sp, #28] 10602 add r2, sp, #40 10603 str r2, [sp, #32] 10604 movs r2, #1 10605 mov r1, r2 10606 bl FlashReadPages 10607 ldr r2, [sp, #20] 10608 ldr r3, [sp, #12] 10609 adds r2, r2, #1 10610 ldr r2, .L1436+16 10611 it eq 10612 moveq r8, #-1 10613 ldr r2, [r2] 10614 cmp r2, #256 10615 bne .L1432 10616 mov r2, r3 10617 mov r1, r5 10618 ldr r0, .L1436+20 10619 bl printf 10620 ldr r2, [fp] 10621 mov r1, r5 10622 ldr r0, .L1436+24 10623 bl FtlMapWritePage 10624.L1432: 10625 ldr r1, [fp] 10626 lsls r2, r4, #9 10627 ldr r3, [sp, #4] 10628 mov r0, r10 10629 add r1, r1, r3, lsl #9 10630 bl ftl_memcpy 10631.L1433: 10632 ldr r3, [sp, #8] 10633 adds r5, r5, #1 10634 subs r6, r6, r4 10635 add r7, r7, r4 10636 add r10, r10, r3 10637 ldr r3, [sp] 10638 adds r3, r3, #4 10639 str r3, [sp] 10640 b .L1428 10641.L1430: 10642 lsls r2, r4, #9 10643 mov r1, r3 10644 mov r0, r10 10645 bl ftl_memset 10646 b .L1433 10647.L1435: 10648 mov r8, #-1 10649 b .L1426 10650.L1437: 10651 .align 2 10652.L1436: 10653 .word .LANCHOR16 10654 .word .LANCHOR22 10655 .word .LANCHOR133 10656 .word .LANCHOR12 10657 .word .LANCHOR148 10658 .word .LC107 10659 .word .LANCHOR158 10660 .word .LANCHOR117 10661 .size FtlVendorPartRead, .-FtlVendorPartRead 10662 .section .text.FtlLoadEctTbl,"ax",%progbits 10663 .align 1 10664 .global FtlLoadEctTbl 10665 .syntax unified 10666 .thumb 10667 .thumb_func 10668 .fpu softvfp 10669 .type FtlLoadEctTbl, %function 10670FtlLoadEctTbl: 10671 @ args = 0, pretend = 0, frame = 0 10672 @ frame_needed = 0, uses_anonymous_args = 0 10673 push {r3, r4, r5, lr} 10674 movs r0, #64 10675 ldr r4, .L1440 10676 ldr r5, .L1440+4 10677 ldr r2, [r4] 10678 ldrh r1, [r5] 10679 bl FtlVendorPartRead 10680 ldr r3, [r4] 10681 ldr r2, [r3] 10682 ldr r3, .L1440+8 10683 cmp r2, r3 10684 beq .L1439 10685 ldr r1, .L1440+12 10686 ldr r0, .L1440+16 10687 bl printf 10688 ldrh r2, [r5] 10689 movs r1, #0 10690 ldr r0, [r4] 10691 lsls r2, r2, #9 10692 bl ftl_memset 10693.L1439: 10694 movs r0, #0 10695 pop {r3, r4, r5, pc} 10696.L1441: 10697 .align 2 10698.L1440: 10699 .word .LANCHOR127 10700 .word .LANCHOR125 10701 .word 1112818501 10702 .word .LC108 10703 .word .LC71 10704 .size FtlLoadEctTbl, .-FtlLoadEctTbl 10705 .section .text.Ftl_load_ext_data,"ax",%progbits 10706 .align 1 10707 .global Ftl_load_ext_data 10708 .syntax unified 10709 .thumb 10710 .thumb_func 10711 .fpu softvfp 10712 .type Ftl_load_ext_data, %function 10713Ftl_load_ext_data: 10714 @ args = 0, pretend = 0, frame = 0 10715 @ frame_needed = 0, uses_anonymous_args = 0 10716 push {r3, r4, r5, lr} 10717 movs r1, #1 10718 ldr r4, .L1445 10719 movs r0, #0 10720 ldr r5, .L1445+4 10721 mov r2, r4 10722 bl FtlVendorPartRead 10723 ldr r3, [r4] 10724 cmp r3, r5 10725 beq .L1443 10726 mov r2, #512 10727 movs r1, #0 10728 mov r0, r4 10729 bl ftl_memset 10730 str r5, [r4] 10731.L1443: 10732 ldr r3, [r4] 10733 cmp r3, r5 10734 ldr r3, .L1445+8 10735 bne .L1444 10736 ldr r1, [r4, #88] 10737 ldr r2, .L1445+12 10738 str r1, [r2] 10739 ldr r1, [r4, #92] 10740 ldr r2, .L1445+16 10741 str r1, [r2] 10742 ldr r1, [r4, #8] 10743 ldr r2, .L1445+20 10744 str r1, [r2] 10745 ldr r1, [r4, #12] 10746 ldr r2, .L1445+24 10747 str r1, [r2] 10748 ldr r1, [r4, #16] 10749 ldr r2, .L1445+28 10750 str r1, [r2] 10751 ldr r1, [r4, #20] 10752 ldr r2, .L1445+32 10753 str r1, [r2] 10754 ldr r2, [r4, #28] 10755 ldr r1, [r4, #32] 10756 str r2, [r3] 10757 ldr r2, .L1445+36 10758 str r1, [r2] 10759 ldr r1, [r4, #36] 10760 ldr r2, .L1445+40 10761 str r1, [r2] 10762 ldr r1, [r4, #40] 10763 ldr r2, .L1445+44 10764 str r1, [r2] 10765 ldr r1, [r4, #44] 10766 ldr r2, .L1445+48 10767 str r1, [r2] 10768 ldr r1, [r4, #48] 10769 ldr r2, .L1445+52 10770 str r1, [r2] 10771.L1444: 10772 ldr r1, .L1445+56 10773 ldr r2, .L1445+60 10774 ldr r3, [r3] 10775 ldr r0, [r1] 10776 ldrh r2, [r2] 10777 ldr r1, .L1445+64 10778 mla r0, r0, r2, r3 10779 ldrh r1, [r1] 10780 bl __aeabi_uidiv 10781 ldr r3, .L1445+68 10782 str r0, [r3] 10783 pop {r3, r4, r5, pc} 10784.L1446: 10785 .align 2 10786.L1445: 10787 .word .LANCHOR81 10788 .word 1179929683 10789 .word .LANCHOR73 10790 .word .LANCHOR68 10791 .word .LANCHOR69 10792 .word .LANCHOR67 10793 .word .LANCHOR64 10794 .word .LANCHOR62 10795 .word .LANCHOR66 10796 .word .LANCHOR75 10797 .word .LANCHOR63 10798 .word .LANCHOR65 10799 .word .LANCHOR76 10800 .word .LANCHOR77 10801 .word .LANCHOR72 10802 .word .LANCHOR14 10803 .word .LANCHOR5 10804 .word .LANCHOR74 10805 .size Ftl_load_ext_data, .-Ftl_load_ext_data 10806 .section .text.sftl_vendor_read,"ax",%progbits 10807 .align 1 10808 .global sftl_vendor_read 10809 .syntax unified 10810 .thumb 10811 .thumb_func 10812 .fpu softvfp 10813 .type sftl_vendor_read, %function 10814sftl_vendor_read: 10815 @ args = 0, pretend = 0, frame = 0 10816 @ frame_needed = 0, uses_anonymous_args = 0 10817 @ link register save eliminated. 10818 add r0, r0, #256 10819 b FtlVendorPartRead 10820 .size sftl_vendor_read, .-sftl_vendor_read 10821 .section .text.FtlVpcTblFlush,"ax",%progbits 10822 .align 1 10823 .global FtlVpcTblFlush 10824 .syntax unified 10825 .thumb 10826 .thumb_func 10827 .fpu softvfp 10828 .type FtlVpcTblFlush, %function 10829FtlVpcTblFlush: 10830 @ args = 0, pretend = 0, frame = 8 10831 @ frame_needed = 0, uses_anonymous_args = 0 10832 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 10833 mov fp, #0 10834 ldr r3, .L1463 10835 ldr r4, .L1463+4 10836 ldr r10, .L1463+76 10837 ldr r0, [r3] 10838 ldr r5, .L1463+8 10839 ldr r7, [r10] 10840 ldrh r2, [r4] 10841 str r0, [r5, #8] 10842 str r7, [r5, #12] 10843 strh r2, [r7, #2] @ movhi 10844 movw r2, #61604 10845 strh r2, [r7] @ movhi 10846 ldr r2, [r4, #8] 10847 ldr r6, .L1463+12 10848 ldr ip, .L1463+80 10849 str r2, [r7, #4] 10850 ldr r2, .L1463+16 10851 str fp, [r7, #8] 10852 str fp, [r7, #12] 10853 stm r6, {r2, ip} 10854 ldrh r2, [r4, #6] 10855 str r3, [sp, #4] 10856 ldr r8, .L1463+84 10857 strh r2, [r6, #8] @ movhi 10858 ldr r2, .L1463+20 10859 ldrh r2, [r2] 10860 strb r2, [r6, #10] 10861 ldr r2, .L1463+24 10862 ldrh r1, [r2] 10863 ldrh ip, [r2, #2] 10864 strh r1, [r6, #14] @ movhi 10865 ldrb r1, [r2, #6] @ zero_extendqisi2 10866 ldrb r2, [r2, #8] @ zero_extendqisi2 10867 strb r2, [r6, #11] 10868 orr r1, r1, ip, lsl #6 10869 ldr r2, .L1463+28 10870 strh r1, [r6, #16] @ movhi 10871 ldrh r1, [r2] 10872 ldrh ip, [r2, #2] 10873 strh r1, [r6, #18] @ movhi 10874 ldrb r1, [r2, #6] @ zero_extendqisi2 10875 ldrb r2, [r2, #8] @ zero_extendqisi2 10876 orr r1, r1, ip, lsl #6 10877 strh r1, [r6, #20] @ movhi 10878 strb r2, [r6, #12] 10879 ldr r2, .L1463+32 10880 ldrh r1, [r2] 10881 ldrh ip, [r2, #2] 10882 strh r1, [r6, #22] @ movhi 10883 ldrb r1, [r2, #6] @ zero_extendqisi2 10884 ldrb r2, [r2, #8] @ zero_extendqisi2 10885 strb r2, [r6, #13] 10886 orr r1, r1, ip, lsl #6 10887 ldr r2, .L1463+36 10888 strh r1, [r6, #24] @ movhi 10889 movs r1, #255 10890 ldr r2, [r2] 10891 str r2, [r6, #32] 10892 ldr r2, [r8] 10893 str r2, [r6, #40] 10894 ldr r2, .L1463+40 10895 ldr r2, [r2] 10896 str r2, [r6, #36] 10897 ldr r2, .L1463+44 10898 ldrh r2, [r2] 10899 bl ftl_memset 10900 mov r1, r6 10901 ldr r6, .L1463+48 10902 movs r2, #48 10903 ldr r0, [r5, #8] 10904 bl ftl_memcpy 10905 ldrh r2, [r6] 10906 ldr r0, [r5, #8] 10907 ldr r1, .L1463+52 10908 lsls r2, r2, #1 10909 adds r0, r0, #48 10910 ldr r1, [r1] 10911 bl ftl_memcpy 10912 ldrh r0, [r6] 10913 ldr r1, .L1463+56 10914 ldr r6, [r5, #8] 10915 lsrs r2, r0, #3 10916 adds r0, r0, #24 10917 lsls r0, r0, #1 10918 ldr r1, [r1] 10919 adds r2, r2, #4 10920 bic r0, r0, #3 10921 add r0, r0, r6 10922 mov r6, fp 10923 bl ftl_memcpy 10924 mov r0, fp 10925 movw fp, #65535 10926 bl FtlUpdateVaildLpn 10927.L1449: 10928 ldr r3, [sp, #4] 10929 ldrh r1, [r4, #2] 10930 ldrh r2, [r4] 10931 ldr r3, [r3] 10932 str r3, [r5, #8] 10933 ldr r3, [r10] 10934 str r3, [r5, #12] 10935 orr r3, r1, r2, lsl #10 10936 str r3, [r5, #4] 10937 ldr r3, .L1463+60 10938 ldrh r3, [r3] 10939 subs r3, r3, #1 10940 cmp r1, r3 10941 blt .L1450 10942 movs r3, #0 10943 ldrh fp, [r4, #4] 10944 strh r3, [r4, #2] @ movhi 10945 strh r2, [r4, #4] @ movhi 10946 bl FtlFreeSysBlkQueueOut 10947 ldr r3, [r8] 10948 strh r0, [r4] @ movhi 10949 adds r2, r3, #1 10950 str r3, [r4, #8] 10951 str r2, [r8] 10952 lsls r2, r0, #10 10953 str r2, [r5, #4] 10954 str r3, [r7, #4] 10955 strh r0, [r7, #2] @ movhi 10956.L1450: 10957 movs r3, #1 10958 ldr r0, .L1463+8 10959 mov r2, r3 10960 mov r1, r3 10961 bl FlashProgPages 10962 ldrh r3, [r4, #2] 10963 ldr r2, [r5] 10964 adds r3, r3, #1 10965 uxth r3, r3 10966 adds r1, r2, #1 10967 strh r3, [r4, #2] @ movhi 10968 bne .L1451 10969 cmp r3, #1 10970 bne .L1452 10971 movw r2, #1135 10972 ldr r1, .L1463+64 10973 ldr r0, .L1463+68 10974 bl printf 10975.L1452: 10976 ldrh r3, [r4, #2] 10977 adds r6, r6, #1 10978 uxth r6, r6 10979 cmp r3, #1 10980 itttt eq 10981 ldreq r3, .L1463+60 10982 ldrheq r3, [r3] 10983 addeq r3, r3, #-1 10984 strheq r3, [r4, #2] @ movhi 10985 cmp r6, #3 10986 bls .L1449 10987 mov r2, r6 10988 ldr r1, [r5, #4] 10989 ldr r0, .L1463+72 10990 bl printf 10991.L1455: 10992 b .L1455 10993.L1451: 10994 cmp r3, #1 10995 beq .L1449 10996 cmp r2, #256 10997 beq .L1449 10998 movw r3, #65535 10999 cmp fp, r3 11000 beq .L1456 11001 movs r1, #1 11002 mov r0, fp 11003 bl FtlFreeSysBlkQueueIn 11004.L1456: 11005 movs r0, #0 11006 add sp, sp, #8 11007 @ sp needed 11008 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11009.L1464: 11010 .align 2 11011.L1463: 11012 .word .LANCHOR115 11013 .word .LANCHOR79 11014 .word .LANCHOR148 11015 .word .LANCHOR39 11016 .word 1179929683 11017 .word .LANCHOR10 11018 .word .LANCHOR51 11019 .word .LANCHOR52 11020 .word .LANCHOR53 11021 .word .LANCHOR72 11022 .word .LANCHOR71 11023 .word .LANCHOR23 11024 .word .LANCHOR5 11025 .word .LANCHOR42 11026 .word .LANCHOR1 11027 .word .LANCHOR20 11028 .word .LANCHOR171 11029 .word .LC1 11030 .word .LC109 11031 .word .LANCHOR123 11032 .word 1342177352 11033 .word .LANCHOR70 11034 .size FtlVpcTblFlush, .-FtlVpcTblFlush 11035 .section .text.FtlSysFlush,"ax",%progbits 11036 .align 1 11037 .global FtlSysFlush 11038 .syntax unified 11039 .thumb 11040 .thumb_func 11041 .fpu softvfp 11042 .type FtlSysFlush, %function 11043FtlSysFlush: 11044 @ args = 0, pretend = 0, frame = 0 11045 @ frame_needed = 0, uses_anonymous_args = 0 11046 push {r3, lr} 11047 bl l2p_flush 11048 movs r0, #1 11049 bl FtlEctTblFlush 11050 bl FtlVpcTblFlush 11051 movs r0, #0 11052 pop {r3, pc} 11053 .size FtlSysFlush, .-FtlSysFlush 11054 .section .text.sftl_deinit,"ax",%progbits 11055 .align 1 11056 .global sftl_deinit 11057 .syntax unified 11058 .thumb 11059 .thumb_func 11060 .fpu softvfp 11061 .type sftl_deinit, %function 11062sftl_deinit: 11063 @ args = 0, pretend = 0, frame = 0 11064 @ frame_needed = 0, uses_anonymous_args = 0 11065 push {r3, lr} 11066 ldr r3, .L1468 11067 ldr r3, [r3] 11068 cmp r3, #1 11069 bne .L1467 11070 bl FtlSysFlush 11071.L1467: 11072 movs r0, #0 11073 pop {r3, pc} 11074.L1469: 11075 .align 2 11076.L1468: 11077 .word .LANCHOR86 11078 .size sftl_deinit, .-sftl_deinit 11079 .section .text.sftl_discard,"ax",%progbits 11080 .align 1 11081 .global sftl_discard 11082 .syntax unified 11083 .thumb 11084 .thumb_func 11085 .fpu softvfp 11086 .type sftl_discard, %function 11087sftl_discard: 11088 @ args = 0, pretend = 0, frame = 8 11089 @ frame_needed = 0, uses_anonymous_args = 0 11090 ldr r3, .L1485 11091 adds r2, r0, r1 11092 push {r0, r1, r4, r5, r6, r7, r8, lr} 11093 mov r7, r0 11094 mov r5, r1 11095 ldr r3, [r3] 11096 cmp r2, r3 11097 bhi .L1478 11098 cmp r1, #31 11099 bhi .L1472 11100.L1477: 11101 movs r0, #0 11102.L1470: 11103 add sp, sp, #8 11104 @ sp needed 11105 pop {r4, r5, r6, r7, r8, pc} 11106.L1472: 11107 ldr r8, .L1485+12 11108 ldrh r4, [r8] 11109 mov r1, r4 11110 bl __aeabi_uidiv 11111 smulbb r3, r0, r4 11112 mov r6, r0 11113 subs r7, r7, r3 11114 uxth r7, r7 11115 cbz r7, .L1473 11116 subs r4, r4, r7 11117 adds r6, r6, #1 11118 cmp r4, r5 11119 it cs 11120 movcs r4, r5 11121 uxth r4, r4 11122 subs r5, r5, r4 11123.L1473: 11124 ldr r4, .L1485+4 11125 mov r3, #-1 11126 ldr r7, .L1485+8 11127 str r3, [sp, #4] 11128.L1474: 11129 ldrh r3, [r8] 11130 cmp r5, r3 11131 bcs .L1476 11132 ldr r3, .L1485+4 11133 ldr r2, [r3] 11134 cmp r2, #32 11135 bls .L1477 11136 movs r4, #0 11137 str r4, [r3] 11138 bl l2p_flush 11139 bl FtlVpcTblFlush 11140 b .L1477 11141.L1476: 11142 movs r2, #0 11143 mov r1, sp 11144 mov r0, r6 11145 bl log2phys 11146 ldr r3, [sp] 11147 adds r3, r3, #1 11148 beq .L1475 11149 ldr r3, [r4] 11150 movs r2, #1 11151 add r1, sp, #4 11152 mov r0, r6 11153 adds r3, r3, #1 11154 str r3, [r4] 11155 ldr r3, [r7] 11156 adds r3, r3, #1 11157 str r3, [r7] 11158 bl log2phys 11159 ldr r0, [sp] 11160 ubfx r0, r0, #10, #16 11161 bl P2V_block_in_plane 11162 bl decrement_vpc_count 11163.L1475: 11164 ldrh r3, [r8] 11165 adds r6, r6, #1 11166 subs r5, r5, r3 11167 b .L1474 11168.L1478: 11169 mov r0, #-1 11170 b .L1470 11171.L1486: 11172 .align 2 11173.L1485: 11174 .word .LANCHOR34 11175 .word .LANCHOR172 11176 .word .LANCHOR63 11177 .word .LANCHOR12 11178 .size sftl_discard, .-sftl_discard 11179 .section .text.FtlVpcCheckAndModify,"ax",%progbits 11180 .align 1 11181 .global FtlVpcCheckAndModify 11182 .syntax unified 11183 .thumb 11184 .thumb_func 11185 .fpu softvfp 11186 .type FtlVpcCheckAndModify, %function 11187FtlVpcCheckAndModify: 11188 @ args = 0, pretend = 0, frame = 8 11189 @ frame_needed = 0, uses_anonymous_args = 0 11190 push {r0, r1, r2, r4, r5, r6, r7, r8, r10, lr} 11191 movs r4, #0 11192 ldr r1, .L1500 11193 ldr r0, .L1500+4 11194 bl printf 11195 ldr r3, .L1500+8 11196 movs r1, #0 11197 ldr r5, .L1500+12 11198 ldr r6, .L1500+16 11199 ldrh r2, [r3] 11200 ldr r0, [r5] 11201 lsls r2, r2, #1 11202 bl ftl_memset 11203.L1488: 11204 ldr r3, [r6] 11205 cmp r4, r3 11206 bcc .L1490 11207 ldr r10, .L1500+36 11208 movs r7, #0 11209 ldr r8, .L1500+40 11210.L1491: 11211 ldrh r3, [r10] 11212 uxth r6, r7 11213 cmp r3, r6 11214 bhi .L1496 11215 bl l2p_flush 11216 bl FtlVpcTblFlush 11217 add sp, sp, #12 11218 @ sp needed 11219 pop {r4, r5, r6, r7, r8, r10, pc} 11220.L1490: 11221 movs r2, #0 11222 add r1, sp, #4 11223 mov r0, r4 11224 bl log2phys 11225 ldr r0, [sp, #4] 11226 adds r3, r0, #1 11227 beq .L1489 11228 ubfx r0, r0, #10, #16 11229 bl P2V_block_in_plane 11230 ldr r2, [r5] 11231 ldrh r3, [r2, r0, lsl #1] 11232 adds r3, r3, #1 11233 strh r3, [r2, r0, lsl #1] @ movhi 11234.L1489: 11235 adds r4, r4, #1 11236 b .L1488 11237.L1496: 11238 ldr r3, [r8] 11239 uxth r4, r7 11240 ldrh r2, [r3, r4, lsl #1] 11241 ldr r3, [r5] 11242 ldrh r3, [r3, r4, lsl #1] 11243 cmp r2, r3 11244 beq .L1493 11245 movw r1, #65535 11246 cmp r2, r1 11247 beq .L1493 11248 mov r1, r4 11249 ldr r0, .L1500+20 11250 bl printf 11251 ldr r3, .L1500+24 11252 ldrh r3, [r3] 11253 cmp r3, r6 11254 beq .L1493 11255 ldr r3, .L1500+28 11256 ldrh r3, [r3] 11257 cmp r3, r6 11258 beq .L1493 11259 ldr r3, .L1500+32 11260 ldrh r3, [r3] 11261 cmp r3, r6 11262 beq .L1493 11263 ldr r3, [r8] 11264 ldrh r2, [r3, r4, lsl #1] 11265 cbnz r2, .L1495 11266 ldr r2, [r5] 11267 ldrh r2, [r2, r4, lsl #1] 11268 strh r2, [r3, r4, lsl #1] @ movhi 11269.L1493: 11270 adds r7, r7, #1 11271 b .L1491 11272.L1495: 11273 ldr r2, [r5] 11274 mov r0, r6 11275 ldrh r2, [r2, r4, lsl #1] 11276 strh r2, [r3, r4, lsl #1] @ movhi 11277 bl update_vpc_list 11278 b .L1493 11279.L1501: 11280 .align 2 11281.L1500: 11282 .word .LANCHOR173 11283 .word .LC94 11284 .word .LANCHOR6 11285 .word .LANCHOR128 11286 .word .LANCHOR61 11287 .word .LC110 11288 .word .LANCHOR51 11289 .word .LANCHOR53 11290 .word .LANCHOR52 11291 .word .LANCHOR5 11292 .word .LANCHOR42 11293 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify 11294 .section .text.allocate_new_data_superblock,"ax",%progbits 11295 .align 1 11296 .global allocate_new_data_superblock 11297 .syntax unified 11298 .thumb 11299 .thumb_func 11300 .fpu softvfp 11301 .type allocate_new_data_superblock, %function 11302allocate_new_data_superblock: 11303 @ args = 0, pretend = 0, frame = 0 11304 @ frame_needed = 0, uses_anonymous_args = 0 11305 ldr r3, .L1512 11306 push {r4, r5, r6, lr} 11307 mov r6, r0 11308 ldrh r4, [r0] 11309 ldrh r3, [r3] 11310 cmp r3, r4 11311 bcs .L1503 11312 movw r2, #2714 11313 ldr r1, .L1512+4 11314 ldr r0, .L1512+8 11315 bl printf 11316.L1503: 11317 movw r3, #65535 11318 cmp r4, r3 11319 beq .L1504 11320 ldr r3, .L1512+12 11321 mov r0, r4 11322 ldr r3, [r3] 11323 ldrh r3, [r3, r4, lsl #1] 11324 cbz r3, .L1505 11325 bl INSERT_DATA_LIST 11326.L1504: 11327 ldr r5, .L1512+16 11328 movw r2, #65535 11329 movs r3, #1 11330 strb r3, [r6, #8] 11331 ldrh r0, [r5] 11332 cmp r0, r2 11333 beq .L1506 11334 cmp r4, r0 11335 bne .L1507 11336 ldr r3, .L1512+12 11337 ldr r3, [r3] 11338 ldrh r3, [r3, r0, lsl #1] 11339 cbz r3, .L1508 11340.L1507: 11341 bl update_vpc_list 11342.L1508: 11343 movw r3, #65535 11344 strh r3, [r5] @ movhi 11345.L1506: 11346 mov r0, r6 11347 bl allocate_data_superblock 11348 bl l2p_flush 11349 movs r0, #0 11350 bl FtlEctTblFlush 11351 bl FtlVpcTblFlush 11352 movs r0, #0 11353 pop {r4, r5, r6, pc} 11354.L1505: 11355 bl INSERT_FREE_LIST 11356 b .L1504 11357.L1513: 11358 .align 2 11359.L1512: 11360 .word .LANCHOR5 11361 .word .LANCHOR174 11362 .word .LC1 11363 .word .LANCHOR42 11364 .word .LANCHOR142 11365 .size allocate_new_data_superblock, .-allocate_new_data_superblock 11366 .section .text.FtlProgPages,"ax",%progbits 11367 .align 1 11368 .global FtlProgPages 11369 .syntax unified 11370 .thumb 11371 .thumb_func 11372 .fpu softvfp 11373 .type FtlProgPages, %function 11374FtlProgPages: 11375 @ args = 0, pretend = 0, frame = 8 11376 @ frame_needed = 0, uses_anonymous_args = 0 11377 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 11378 movs r6, #0 11379 ldr r8, .L1528+24 11380 mov r4, r3 11381 movs r2, #0 11382 mov r5, r0 11383 ldrb r3, [r3, #9] @ zero_extendqisi2 11384 mov r10, r1 11385 bl FlashProgPages 11386.L1515: 11387 cmp r6, r10 11388 beq .L1522 11389 ldr r7, .L1528 11390 b .L1523 11391.L1518: 11392 ldr r0, [r5, #4] 11393 ubfx r0, r0, #10, #16 11394 bl P2V_block_in_plane 11395 ldrh r3, [r4] 11396 cmp r3, r0 11397 bne .L1516 11398 ldr r1, [r8] 11399 ldrh r0, [r4, #4] 11400 ldrh r2, [r1, r3, lsl #1] 11401 subs r2, r2, r0 11402 strh r2, [r1, r3, lsl #1] @ movhi 11403 ldrh r3, [r7] 11404 strh r3, [r4, #2] @ movhi 11405 movs r3, #0 11406 strb r3, [r4, #6] 11407 strh r3, [r4, #4] @ movhi 11408.L1516: 11409 ldrh r3, [r4, #4] 11410 cbnz r3, .L1517 11411 mov r0, r4 11412 bl allocate_new_data_superblock 11413.L1517: 11414 ldr r2, .L1528+4 11415 ldr r3, [r2, #96] 11416 adds r3, r3, #1 11417 str r3, [r2, #96] 11418 ldr r0, [r5, #4] 11419 ubfx r0, r0, #10, #16 11420 bl FtlGcMarkBadPhyBlk 11421 mov r0, r4 11422 bl get_new_active_ppa 11423 movs r2, #0 11424 str r0, [r5, #4] 11425 str r0, [sp, #4] 11426 movs r1, #1 11427 ldrb r3, [r4, #9] @ zero_extendqisi2 11428 mov r0, r5 11429 bl FlashProgPages 11430.L1523: 11431 ldr r3, [r5] 11432 adds r3, r3, #1 11433 beq .L1518 11434 ldr r3, .L1528+8 11435 ldrb r2, [r4, #6] @ zero_extendqisi2 11436 ldrh r3, [r3] 11437 cmp r2, r3 11438 bcc .L1519 11439 movw r2, #957 11440 ldr r1, .L1528+12 11441 ldr r0, .L1528+16 11442 bl printf 11443.L1519: 11444 ldr r3, [r5, #4] 11445 add r1, sp, #8 11446 movs r2, #1 11447 ldr r0, [r5, #16] 11448 str r3, [r1, #-4]! 11449 bl log2phys 11450 ldr r3, [r5, #12] 11451 ldr fp, [r3, #12] 11452 ubfx r0, fp, #10, #16 11453 bl P2V_block_in_plane 11454 cmp fp, #-1 11455 mov r7, r0 11456 beq .L1520 11457 ldr r3, [r8] 11458 ldrh r2, [r3, r0, lsl #1] 11459 cbnz r2, .L1521 11460 mov r1, r0 11461 ldr r0, .L1528+20 11462 bl printf 11463.L1521: 11464 mov r0, r7 11465 bl decrement_vpc_count 11466.L1520: 11467 adds r6, r6, #1 11468 adds r5, r5, #20 11469 b .L1515 11470.L1522: 11471 ldr r3, .L1528+8 11472 ldrb r2, [r4, #6] @ zero_extendqisi2 11473 ldrh r3, [r3] 11474 cmp r2, r3 11475 bcc .L1514 11476 mov r2, #972 11477 ldr r1, .L1528+12 11478 ldr r0, .L1528+16 11479 bl printf 11480.L1514: 11481 add sp, sp, #8 11482 @ sp needed 11483 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11484.L1529: 11485 .align 2 11486.L1528: 11487 .word .LANCHOR19 11488 .word .LANCHOR81 11489 .word .LANCHOR3 11490 .word .LANCHOR175 11491 .word .LC1 11492 .word .LC111 11493 .word .LANCHOR42 11494 .size FtlProgPages, .-FtlProgPages 11495 .section .text.FtlGcFreeTempBlock,"ax",%progbits 11496 .align 1 11497 .global FtlGcFreeTempBlock 11498 .syntax unified 11499 .thumb 11500 .thumb_func 11501 .fpu softvfp 11502 .type FtlGcFreeTempBlock, %function 11503FtlGcFreeTempBlock: 11504 @ args = 0, pretend = 0, frame = 16 11505 @ frame_needed = 0, uses_anonymous_args = 0 11506 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 11507 movw r2, #65535 11508 ldr r4, .L1556 11509 ldr r6, .L1556+4 11510 ldrh r5, [r4] 11511 ldrh r1, [r6] 11512 cmp r5, r2 11513 bne .L1531 11514.L1541: 11515 ldr r3, .L1556+8 11516 movs r2, #0 11517 str r2, [r3] 11518 movw r3, #65535 11519 ldrh r2, [r4] 11520 cmp r2, r3 11521 bne .L1554 11522.L1532: 11523 movs r0, #0 11524.L1530: 11525 add sp, sp, #16 11526 @ sp needed 11527 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11528.L1531: 11529 cbz r0, .L1534 11530 ldr r3, .L1556+12 11531 ldrh r0, [r3] 11532 cmp r0, r2 11533 beq .L1535 11534.L1536: 11535 movs r1, #2 11536.L1534: 11537 ldr r0, .L1556 11538 bl FtlGcScanTempBlk 11539 str r0, [sp, #12] 11540 adds r0, r0, #1 11541 beq .L1537 11542 ldr r3, .L1556+16 11543 ldr r2, [r3] 11544 ldrh r3, [r2, r5, lsl #1] 11545 cmp r3, #4 11546 bls .L1538 11547 subs r3, r3, #5 11548 movs r0, #1 11549 strh r3, [r2, r5, lsl #1] @ movhi 11550 bl FtlEctTblFlush 11551.L1538: 11552 ldr r4, .L1556+8 11553 ldr r2, [r4] 11554 cbnz r2, .L1539 11555 ldr r2, .L1556+20 11556 ldr r0, [sp, #12] 11557 ldr r3, [r2, #96] 11558 ubfx r0, r0, #10, #16 11559 adds r3, r3, #1 11560 str r3, [r2, #96] 11561 bl FtlBbmMapBadBlock 11562 bl FtlBbmTblFlush 11563.L1539: 11564 movs r3, #0 11565 str r3, [r4] 11566.L1550: 11567 movs r0, #1 11568 b .L1530 11569.L1535: 11570 movs r2, #0 11571 strh r2, [r3] @ movhi 11572 ldr r3, .L1556+24 11573 ldrh r3, [r3] 11574 cmp r3, #17 11575 bhi .L1536 11576 b .L1534 11577.L1537: 11578 ldr r3, .L1556+12 11579 ldrh r2, [r3] 11580 movw r3, #65535 11581 cmp r2, r3 11582 bne .L1550 11583 b .L1541 11584.L1554: 11585 ldrb r1, [r4, #7] @ zero_extendqisi2 11586 ldrh r3, [r6] 11587 ldr r5, .L1556+28 11588 muls r3, r1, r3 11589 ldrh r2, [r5] 11590 cmp r2, r3 11591 beq .L1542 11592 movs r2, #162 11593 ldr r1, .L1556+32 11594 ldr r0, .L1556+36 11595 bl printf 11596.L1542: 11597 ldrh r6, [r6] 11598 ldrb r3, [r4, #7] @ zero_extendqisi2 11599 ldr r2, .L1556+40 11600 ldrh r0, [r4] 11601 ldr fp, .L1556+68 11602 smulbb r3, r3, r6 11603 ldr r1, [r2] 11604 movs r6, #0 11605 str r2, [sp, #4] 11606 strh r3, [r1, r0, lsl #1] @ movhi 11607 ldr r1, .L1556+44 11608 ldrh r3, [r5] 11609 ldr r0, [r1] 11610 add r3, r3, r0 11611 str r3, [r1] 11612.L1543: 11613 ldrh r2, [r5] 11614 uxth r3, r6 11615 cmp r2, r3 11616 bhi .L1547 11617 movw r0, #65535 11618 bl decrement_vpc_count 11619 ldr r3, [sp, #4] 11620 ldrh r0, [r4] 11621 ldr r3, [r3] 11622 ldrh r3, [r3, r0, lsl #1] 11623 cmp r3, #0 11624 beq .L1548 11625 bl INSERT_DATA_LIST 11626.L1549: 11627 ldr r3, .L1556+48 11628 movw r6, #65535 11629 strh r6, [r4] @ movhi 11630 movs r4, #0 11631 strh r4, [r5] @ movhi 11632 strh r4, [r3] @ movhi 11633 bl l2p_flush 11634 bl FtlVpcTblFlush 11635 ldr r3, .L1556+52 11636 strh r6, [r3] @ movhi 11637 ldr r3, .L1556+24 11638 ldrh r2, [r3] 11639 ldr r3, .L1556+56 11640 ldrh r3, [r3] 11641 add r3, r3, r3, lsl #1 11642 cmp r2, r3, asr #2 11643 ble .L1532 11644 ldr r3, .L1556+60 11645 movs r2, #20 11646 strh r2, [r3] @ movhi 11647 b .L1532 11648.L1547: 11649 uxth r3, r6 11650 movs r7, #12 11651 ldr r2, [fp] 11652 muls r7, r3, r7 11653 ldr r3, .L1556+64 11654 ldr r8, [r3] 11655 add r10, r8, r7 11656 ldr r1, [r10, #8] 11657 cmp r1, r2 11658 bcc .L1544 11659 movs r2, #168 11660 ldr r1, .L1556+32 11661 ldr r0, .L1556+36 11662 bl printf 11663.L1544: 11664 movs r2, #0 11665 add r1, sp, #12 11666 ldr r0, [r10, #8] 11667 bl log2phys 11668 ldr r2, [sp, #12] 11669 ldr r0, [r8, r7] 11670 cmp r0, r2 11671 bne .L1545 11672 ubfx r0, r0, #10, #16 11673 bl P2V_block_in_plane 11674 movs r2, #1 11675 mov r7, r0 11676 add r1, r10, #4 11677 ldr r0, [r10, #8] 11678 bl log2phys 11679 mov r0, r7 11680.L1555: 11681 bl decrement_vpc_count 11682.L1546: 11683 adds r6, r6, #1 11684 b .L1543 11685.L1545: 11686 ldr r3, [r10, #4] 11687 cmp r2, r3 11688 beq .L1546 11689 ldrh r0, [r4] 11690 b .L1555 11691.L1548: 11692 bl INSERT_FREE_LIST 11693 b .L1549 11694.L1557: 11695 .align 2 11696.L1556: 11697 .word .LANCHOR53 11698 .word .LANCHOR19 11699 .word .LANCHOR144 11700 .word .LANCHOR162 11701 .word .LANCHOR43 11702 .word .LANCHOR81 11703 .word .LANCHOR48 11704 .word .LANCHOR97 11705 .word .LANCHOR176 11706 .word .LC1 11707 .word .LANCHOR42 11708 .word .LANCHOR67 11709 .word .LANCHOR96 11710 .word .LANCHOR80 11711 .word .LANCHOR78 11712 .word .LANCHOR82 11713 .word .LANCHOR98 11714 .word .LANCHOR61 11715 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 11716 .section .text.FtlGcPageRecovery,"ax",%progbits 11717 .align 1 11718 .global FtlGcPageRecovery 11719 .syntax unified 11720 .thumb 11721 .thumb_func 11722 .fpu softvfp 11723 .type FtlGcPageRecovery, %function 11724FtlGcPageRecovery: 11725 @ args = 0, pretend = 0, frame = 0 11726 @ frame_needed = 0, uses_anonymous_args = 0 11727 push {r3, r4, r5, lr} 11728 ldr r4, .L1560 11729 ldr r5, .L1560+4 11730 ldrh r1, [r4] 11731 mov r0, r5 11732 bl FtlGcScanTempBlk 11733 ldrh r2, [r5, #2] 11734 ldrh r3, [r4] 11735 cmp r2, r3 11736 bcc .L1558 11737 ldr r0, .L1560+8 11738 bl FtlMapBlkWriteDump_data 11739 movs r0, #0 11740 bl FtlGcFreeTempBlock 11741 ldr r3, .L1560+12 11742 movs r2, #0 11743 str r2, [r3] 11744.L1558: 11745 pop {r3, r4, r5, pc} 11746.L1561: 11747 .align 2 11748.L1560: 11749 .word .LANCHOR19 11750 .word .LANCHOR53 11751 .word .LANCHOR140 11752 .word .LANCHOR144 11753 .size FtlGcPageRecovery, .-FtlGcPageRecovery 11754 .section .text.FtlPowerLostRecovery,"ax",%progbits 11755 .align 1 11756 .global FtlPowerLostRecovery 11757 .syntax unified 11758 .thumb 11759 .thumb_func 11760 .fpu softvfp 11761 .type FtlPowerLostRecovery, %function 11762FtlPowerLostRecovery: 11763 @ args = 0, pretend = 0, frame = 0 11764 @ frame_needed = 0, uses_anonymous_args = 0 11765 push {r3, r4, r5, lr} 11766 movs r4, #0 11767 ldr r5, .L1563 11768 ldr r3, .L1563+4 11769 mov r0, r5 11770 str r4, [r3] 11771 bl FtlRecoverySuperblock 11772 mov r0, r5 11773 ldr r5, .L1563+8 11774 bl FtlSlcSuperblockCheck 11775 mov r0, r5 11776 bl FtlRecoverySuperblock 11777 mov r0, r5 11778 bl FtlSlcSuperblockCheck 11779 bl FtlGcPageRecovery 11780 movw r0, #65535 11781 bl decrement_vpc_count 11782 mov r0, r4 11783 pop {r3, r4, r5, pc} 11784.L1564: 11785 .align 2 11786.L1563: 11787 .word .LANCHOR51 11788 .word .LANCHOR168 11789 .word .LANCHOR52 11790 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 11791 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 11792 .align 1 11793 .global Ftl_gc_temp_data_write_back 11794 .syntax unified 11795 .thumb 11796 .thumb_func 11797 .fpu softvfp 11798 .type Ftl_gc_temp_data_write_back, %function 11799Ftl_gc_temp_data_write_back: 11800 @ args = 0, pretend = 0, frame = 0 11801 @ frame_needed = 0, uses_anonymous_args = 0 11802 push {r3, r4, r5, r6, r7, lr} 11803 movs r3, #0 11804 ldr r4, .L1572 11805 movs r6, #0 11806 movs r7, #20 11807 mov r2, r3 11808 ldr r5, .L1572+4 11809 ldr r1, [r4] 11810 ldr r0, [r5] 11811 bl FlashProgPages 11812.L1566: 11813 ldr r1, [r4] 11814 uxth r3, r6 11815 cmp r1, r3 11816 bhi .L1569 11817 ldr r0, [r5] 11818 bl FtlGcBufFree 11819 ldr r3, .L1572+8 11820 movs r0, #0 11821 str r0, [r4] 11822 ldrh r3, [r3, #4] 11823 cbnz r3, .L1565 11824 movs r0, #1 11825 bl FtlGcFreeTempBlock 11826 b .L1571 11827.L1569: 11828 muls r3, r7, r3 11829 ldr r2, [r5] 11830 adds r6, r6, #1 11831 adds r1, r2, r3 11832 ldr r2, [r2, r3] 11833 adds r3, r2, #1 11834 bne .L1567 11835 ldr r3, .L1572+8 11836 movs r5, #0 11837 ldr r0, .L1572+12 11838 ldrh r4, [r3] 11839 ldr r0, [r0] 11840 strh r5, [r0, r4, lsl #1] @ movhi 11841 strh r2, [r3] @ movhi 11842 ldr r2, .L1572+16 11843 ldr r0, [r1, #4] 11844 ldr r3, [r2, #96] 11845 ubfx r0, r0, #10, #16 11846 adds r3, r3, #1 11847 str r3, [r2, #96] 11848 bl FtlBbmMapBadBlock 11849 bl FtlBbmTblFlush 11850 bl FtlGcPageVarInit 11851.L1571: 11852 movs r0, #1 11853.L1565: 11854 pop {r3, r4, r5, r6, r7, pc} 11855.L1567: 11856 ldr r3, [r1, #12] 11857 ldr r1, [r1, #4] 11858 ldr r2, [r3, #8] 11859 ldr r0, [r3, #12] 11860 bl FtlGcUpdatePage 11861 b .L1566 11862.L1573: 11863 .align 2 11864.L1572: 11865 .word .LANCHOR89 11866 .word .LANCHOR113 11867 .word .LANCHOR53 11868 .word .LANCHOR42 11869 .word .LANCHOR81 11870 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 11871 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 11872 .align 1 11873 .global Ftl_get_new_temp_ppa 11874 .syntax unified 11875 .thumb 11876 .thumb_func 11877 .fpu softvfp 11878 .type Ftl_get_new_temp_ppa, %function 11879Ftl_get_new_temp_ppa: 11880 @ args = 0, pretend = 0, frame = 0 11881 @ frame_needed = 0, uses_anonymous_args = 0 11882 push {r3, r4, r5, lr} 11883 movw r3, #65535 11884 ldr r4, .L1577 11885 ldrh r2, [r4] 11886 cmp r2, r3 11887 beq .L1575 11888 ldrh r3, [r4, #4] 11889 cbnz r3, .L1576 11890.L1575: 11891 movs r0, #0 11892 movs r5, #0 11893 bl FtlGcFreeTempBlock 11894 ldr r0, .L1577 11895 strb r5, [r4, #8] 11896 bl allocate_data_superblock 11897 ldr r3, .L1577+4 11898 strh r5, [r3] @ movhi 11899 ldr r3, .L1577+8 11900 strh r5, [r3] @ movhi 11901 bl l2p_flush 11902 mov r0, r5 11903 bl FtlEctTblFlush 11904 bl FtlVpcTblFlush 11905.L1576: 11906 ldr r0, .L1577 11907 pop {r3, r4, r5, lr} 11908 b get_new_active_ppa 11909.L1578: 11910 .align 2 11911.L1577: 11912 .word .LANCHOR53 11913 .word .LANCHOR96 11914 .word .LANCHOR97 11915 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 11916 .section .text.FtlSysBlkInit,"ax",%progbits 11917 .align 1 11918 .global FtlSysBlkInit 11919 .syntax unified 11920 .thumb 11921 .thumb_func 11922 .fpu softvfp 11923 .type FtlSysBlkInit, %function 11924FtlSysBlkInit: 11925 @ args = 0, pretend = 0, frame = 0 11926 @ frame_needed = 0, uses_anonymous_args = 0 11927 push {r3, r4, r5, r6, r7, lr} 11928 movs r3, #0 11929 ldr r6, .L1594 11930 strh r3, [r6] @ movhi 11931 ldr r3, .L1594+4 11932 ldrh r0, [r3] 11933 bl FtlFreeSysBlkQueueInit 11934 bl FtlScanSysBlk 11935 ldr r3, .L1594+8 11936 ldrh r2, [r3] 11937 movw r3, #65535 11938 cmp r2, r3 11939 bne .L1580 11940.L1582: 11941 mov r7, #-1 11942.L1579: 11943 mov r0, r7 11944 pop {r3, r4, r5, r6, r7, pc} 11945.L1580: 11946 bl FtlLoadSysInfo 11947 mov r7, r0 11948 cmp r0, #0 11949 bne .L1582 11950 bl FtlLoadMapInfo 11951 bl FtlLoadVonderInfo 11952 bl Ftl_load_ext_data 11953 bl FtlLoadEctTbl 11954 bl FtlFreeSysBLkSort 11955 bl SupperBlkListInit 11956 bl FtlPowerLostRecovery 11957 movs r0, #1 11958 bl FtlUpdateVaildLpn 11959 ldr r3, .L1594+12 11960 movs r0, #12 11961 ldrh r1, [r3] 11962 ldr r3, .L1594+16 11963 ldr r2, [r3] 11964 mov r3, r7 11965.L1583: 11966 cmp r3, r1 11967 bge .L1588 11968 mla r4, r0, r3, r2 11969 ldr r4, [r4, #4] 11970 cmp r4, #0 11971 bge .L1584 11972.L1588: 11973 ldr r5, .L1594+20 11974 cmp r3, r1 11975 ldr r4, .L1594+24 11976 ldrh r2, [r5, #28] 11977 add r2, r2, #1 11978 strh r2, [r5, #28] @ movhi 11979 bge .L1593 11980.L1585: 11981 ldr r6, .L1594+28 11982 ldr r0, .L1594+24 11983 bl FtlSuperblockPowerLostFix 11984 mov r0, r6 11985 bl FtlSuperblockPowerLostFix 11986 ldr r3, .L1594+32 11987 ldrh r1, [r4] 11988 ldrh r0, [r4, #4] 11989 ldr r2, [r3] 11990 ldrh r3, [r2, r1, lsl #1] 11991 subs r3, r3, r0 11992 ldr r0, .L1594+36 11993 strh r3, [r2, r1, lsl #1] @ movhi 11994 ldrh ip, [r6] 11995 ldrh r3, [r0] 11996 ldrh lr, [r6, #4] 11997 strh r3, [r4, #2] @ movhi 11998 movs r3, #0 11999 strb r3, [r4, #6] 12000 strh r3, [r4, #4] @ movhi 12001 ldrh r1, [r2, ip, lsl #1] 12002 sub r1, r1, lr 12003 strh r1, [r2, ip, lsl #1] @ movhi 12004 strb r3, [r6, #6] 12005 strh r3, [r6, #4] @ movhi 12006 ldrh r3, [r5, #30] 12007 ldrh r2, [r0] 12008 adds r3, r3, #1 12009 strh r2, [r6, #2] @ movhi 12010 strh r3, [r5, #30] @ movhi 12011 bl l2p_flush 12012 bl FtlVpcTblFlush 12013 bl FtlVpcTblFlush 12014 b .L1589 12015.L1584: 12016 adds r3, r3, #1 12017 b .L1583 12018.L1593: 12019 ldrh r3, [r6] 12020 cmp r3, #0 12021 bne .L1585 12022.L1589: 12023 bl FtlVpcCheckAndModify 12024 ldrh r0, [r4] 12025 movw r3, #65535 12026 cmp r0, r3 12027 beq .L1579 12028 ldrh r3, [r4, #4] 12029 cmp r3, #0 12030 bne .L1579 12031 ldr r4, .L1594+28 12032 ldrh r3, [r4, #4] 12033 cmp r3, #0 12034 bne .L1579 12035 bl FtlGcRefreshBlock 12036 ldrh r0, [r4] 12037 bl FtlGcRefreshBlock 12038 bl FtlVpcTblFlush 12039 ldr r0, .L1594+24 12040 bl allocate_new_data_superblock 12041 mov r0, r4 12042 bl allocate_new_data_superblock 12043 b .L1579 12044.L1595: 12045 .align 2 12046.L1594: 12047 .word .LANCHOR167 12048 .word .LANCHOR4 12049 .word .LANCHOR79 12050 .word .LANCHOR33 12051 .word .LANCHOR55 12052 .word .LANCHOR39 12053 .word .LANCHOR51 12054 .word .LANCHOR52 12055 .word .LANCHOR42 12056 .word .LANCHOR19 12057 .size FtlSysBlkInit, .-FtlSysBlkInit 12058 .section .text.rk_ftl_garbage_collect,"ax",%progbits 12059 .align 1 12060 .global rk_ftl_garbage_collect 12061 .syntax unified 12062 .thumb 12063 .thumb_func 12064 .fpu softvfp 12065 .type rk_ftl_garbage_collect, %function 12066rk_ftl_garbage_collect: 12067 @ args = 0, pretend = 0, frame = 40 12068 @ frame_needed = 0, uses_anonymous_args = 0 12069 ldr r3, .L1719 12070 push {r4, r5, r6, r7, r8, r10, fp, lr} 12071 sub sp, sp, #48 12072 str r0, [sp, #8] 12073 ldr r0, [r3] 12074 cmp r0, #0 12075 bne .L1673 12076 ldr r3, .L1719+4 12077 ldrh r3, [r3] 12078 cmp r3, #47 12079 bls .L1596 12080 ldr r3, .L1719+8 12081 ldrh r2, [r3] 12082 movw r3, #65535 12083 cmp r2, r3 12084 bne .L1598 12085.L1601: 12086 ldr r3, .L1719+12 12087 movw r4, #65535 12088 ldrh r0, [r3] 12089 cmp r0, r4 12090 bne .L1599 12091.L1600: 12092 bl FtlReadRefresh 12093 ldr r2, .L1719+16 12094 movw r5, #65535 12095 ldr r6, .L1719+20 12096 ldr r1, [sp, #8] 12097 ldr r3, [r2] 12098 ldrh r0, [r6] 12099 adds r3, r3, #1 12100 add r3, r3, r1, lsl #7 12101 cmp r0, r5 12102 str r3, [r2] 12103 bne .L1602 12104 ldr r1, .L1719+24 12105 ldrh r1, [r1] 12106 cmp r1, r0 12107 bne .L1603 12108 ldr r0, .L1719+28 12109 ldrh r8, [r0] 12110 cmp r8, r1 12111 bne .L1604 12112 ldr r7, .L1719+32 12113 ldrh r1, [r7] 12114 cmp r1, #24 12115 ite cc 12116 movcc r1, #5120 12117 movcs r1, #1024 12118 cmp r3, r1 12119 bls .L1604 12120 ldr r3, .L1719+36 12121 movs r4, #0 12122 str r4, [r2] 12123 strh r4, [r3] @ movhi 12124 bl GetSwlReplaceBlock 12125 cmp r0, r8 12126 mov r5, r0 12127 bne .L1677 12128 ldr r8, .L1719+96 12129 ldrh r2, [r7] 12130 ldrh r3, [r8] 12131 cmp r2, r3 12132 bcs .L1607 12133 movs r0, #64 12134 bl List_get_gc_head_node 12135 uxth r3, r0 12136 cmp r3, r5 12137 beq .L1609 12138 mov r0, r3 12139 ldr r3, .L1719+40 12140 ldr r3, [r3] 12141 ldrh r3, [r3, r0, lsl #1] 12142 cmp r3, #7 12143 bhi .L1610 12144 mov r0, r4 12145 bl List_get_gc_head_node 12146 uxth r4, r0 12147 movs r3, #128 12148 strh r3, [r8] @ movhi 12149 cmp r4, r5 12150 bne .L1606 12151.L1609: 12152 bl FtlGcReFreshBadBlk 12153 ldr r3, [sp, #8] 12154 cmp r3, #0 12155 bne .L1612 12156 movw r3, #65535 12157 cmp r5, r3 12158 bne .L1612 12159.L1671: 12160 ldr r3, .L1719+32 12161 ldrh r3, [r3] 12162 cmp r3, #24 12163 bhi .L1678 12164 ldr r2, .L1719+44 12165 cmp r3, #16 12166 ldrh r4, [r2] 12167 bls .L1614 12168 lsrs r4, r4, #5 12169.L1613: 12170 ldr r1, .L1719+48 12171 ldrh r2, [r1] 12172 cmp r2, r3 12173 mov r2, r1 12174 bcs .L1617 12175 ldr r3, .L1719+24 12176 movw r0, #65535 12177 ldrh r3, [r3] 12178 cmp r3, r0 12179 bne .L1618 12180 ldr r0, .L1719+28 12181 ldrh r0, [r0] 12182 cmp r0, r3 12183 bne .L1618 12184 ldr r3, .L1719+36 12185 ldrh r0, [r3] 12186 cbnz r0, .L1619 12187 ldr r3, .L1719+52 12188 ldr r4, .L1719+56 12189 ldr r3, [r3] 12190 ldr r4, [r4] 12191 add r3, r3, r3, lsl #1 12192 cmp r4, r3, lsr #2 12193 bcs .L1620 12194.L1619: 12195 ldr r3, .L1719+60 12196 ldrh r3, [r3] 12197 add r3, r3, r3, lsl #1 12198 asrs r3, r3, #2 12199 strh r3, [r2] @ movhi 12200.L1621: 12201 ldr r3, .L1719+64 12202 movs r2, #0 12203 str r2, [r3] 12204.L1596: 12205 add sp, sp, #48 12206 @ sp needed 12207 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12208.L1598: 12209 ldr r2, .L1719+24 12210 ldrh r2, [r2] 12211 cmp r2, r3 12212 beq .L1601 12213 movs r0, #1 12214 bl FtlGcFreeTempBlock 12215 cmp r0, #0 12216 beq .L1601 12217 movs r0, #1 12218 b .L1596 12219.L1599: 12220 ldr r1, .L1719+28 12221 ldrh r2, [r1] 12222 cmp r2, r4 12223 itt eq 12224 strheq r0, [r1] @ movhi 12225 strheq r2, [r3] @ movhi 12226 b .L1600 12227.L1610: 12228 movs r3, #64 12229.L1713: 12230 strh r3, [r8] @ movhi 12231 b .L1609 12232.L1607: 12233 movs r3, #80 12234 b .L1713 12235.L1677: 12236 mov r4, r0 12237.L1606: 12238 ldr r3, .L1719+40 12239 mov r5, r4 12240 ldr r1, .L1719+48 12241 ldrh r2, [r7] 12242 ldr r3, [r3] 12243 ldrh r1, [r1] 12244 ldr r0, .L1719+68 12245 ldrh r3, [r3, r4, lsl #1] 12246 str r1, [sp, #4] 12247 ldr r1, .L1719+72 12248 ldr r1, [r1] 12249 ldrh r1, [r1, r4, lsl #1] 12250 str r1, [sp] 12251 mov r1, r4 12252 bl printf 12253 b .L1609 12254.L1614: 12255 cmp r3, #12 12256 bls .L1615 12257 lsrs r4, r4, #4 12258 b .L1613 12259.L1615: 12260 cmp r3, #8 12261 bls .L1613 12262 lsrs r4, r4, #2 12263 b .L1613 12264.L1678: 12265 movs r4, #1 12266 b .L1613 12267.L1620: 12268 movs r3, #18 12269 strh r3, [r1] @ movhi 12270 b .L1621 12271.L1618: 12272 ldr r3, .L1719+60 12273 ldrh r3, [r3] 12274 add r3, r3, r3, lsl #1 12275 asrs r3, r3, #2 12276 strh r3, [r2] @ movhi 12277.L1617: 12278 ldr r3, .L1719+76 12279 ldrh r3, [r3] 12280 cbz r3, .L1679 12281 adds r4, r4, #32 12282 uxth r4, r4 12283.L1679: 12284 movw r5, #65535 12285.L1623: 12286 ldrh r3, [r6] 12287 movw r2, #65535 12288 cmp r3, r2 12289 bne .L1632 12290 cmp r5, r3 12291 beq .L1633 12292 strh r5, [r6] @ movhi 12293.L1634: 12294 ldrh r0, [r6] 12295 movw r7, #65535 12296 movs r3, #0 12297 strb r3, [r6, #8] 12298 cmp r0, r7 12299 beq .L1632 12300 bl IsBlkInGcList 12301 cbz r0, .L1637 12302 strh r7, [r6] @ movhi 12303.L1637: 12304 ldrh r2, [r6] 12305 movw r3, #65535 12306 cmp r2, r3 12307 beq .L1632 12308 ldr r0, .L1719+20 12309 bl make_superblock 12310 ldr r2, .L1719+80 12311 movs r3, #0 12312 strh r3, [r6, #2] @ movhi 12313 strb r3, [r6, #6] 12314 strh r3, [r2] @ movhi 12315 ldr r3, .L1719+40 12316 ldrh r2, [r6] 12317 ldr r3, [r3] 12318 ldrh r2, [r3, r2, lsl #1] 12319 ldr r3, .L1719+84 12320 strh r2, [r3] @ movhi 12321.L1632: 12322 ldr r2, .L1719+88 12323 ldrh r3, [r6] 12324 ldrh r2, [r2] 12325 cmp r2, r3 12326 beq .L1638 12327 ldr r2, .L1719+92 12328 ldrh r2, [r2] 12329 cmp r2, r3 12330 bne .L1639 12331.L1638: 12332 movw r3, #65535 12333 strh r3, [r6] @ movhi 12334.L1639: 12335 ldr fp, .L1719+20 12336 mov r6, fp 12337.L1669: 12338 ldrh r2, [fp] 12339 movw r3, #65535 12340 cmp r2, r3 12341 bne .L1640 12342 ldr r10, .L1719+100 12343 movs r2, #0 12344 ldr r3, .L1719+64 12345 mov r8, r10 12346 str r2, [r3] 12347.L1641: 12348 ldrh r7, [r10] 12349 mov r0, r7 12350 bl List_get_gc_head_node 12351 uxth r3, r0 12352 movw r1, #65535 12353 cmp r3, r1 12354 strh r3, [r6] @ movhi 12355 bne .L1642 12356 movs r3, #0 12357 movs r0, #8 12358 strh r3, [r10] @ movhi 12359 b .L1596 12360.L1720: 12361 .align 2 12362.L1719: 12363 .word .LANCHOR108 12364 .word .LANCHOR45 12365 .word .LANCHOR162 12366 .word .LANCHOR100 12367 .word .LANCHOR84 12368 .word .LANCHOR80 12369 .word .LANCHOR53 12370 .word .LANCHOR99 12371 .word .LANCHOR48 12372 .word .LANCHOR177 12373 .word .LANCHOR42 12374 .word .LANCHOR19 12375 .word .LANCHOR82 12376 .word .LANCHOR61 12377 .word .LANCHOR59 12378 .word .LANCHOR78 12379 .word .LANCHOR87 12380 .word .LC112 12381 .word .LANCHOR43 12382 .word .LANCHOR101 12383 .word .LANCHOR178 12384 .word .LANCHOR179 12385 .word .LANCHOR51 12386 .word .LANCHOR52 12387 .word .LANCHOR83 12388 .word .LANCHOR85 12389.L1624: 12390 ldr r3, .L1721 12391 movs r2, #0 12392 ldr r5, .L1721+4 12393 ldr r4, .L1721+8 12394 str r2, [r3] 12395 ldrh r2, [r5] 12396 ldrh r3, [r4] 12397 ldr r7, .L1721+12 12398 cmp r2, r3 12399 bls .L1625 12400 ldrh r3, [r7] 12401 cbnz r3, .L1626 12402 ldr r3, .L1721+16 12403 ldr r2, .L1721+20 12404 ldr r3, [r3] 12405 ldr r2, [r2] 12406 add r3, r3, r3, lsl #1 12407 cmp r2, r3, lsr #2 12408 bcs .L1627 12409.L1626: 12410 ldr r3, .L1721+24 12411 ldrh r3, [r3] 12412 add r3, r3, r3, lsl #1 12413 asrs r3, r3, #2 12414.L1714: 12415 strh r3, [r4] @ movhi 12416 bl FtlReadRefresh 12417 movs r0, #0 12418 bl List_get_gc_head_node 12419 ldr r3, .L1721+28 12420 uxth r0, r0 12421 ldr r3, [r3] 12422 ldrh r3, [r3, r0, lsl #1] 12423 cmp r3, #4 12424 bls .L1625 12425.L1717: 12426 ldrh r0, [r7] 12427 b .L1596 12428.L1627: 12429 movs r3, #18 12430 b .L1714 12431.L1625: 12432 ldrh r0, [r7] 12433 cmp r0, #0 12434 bne .L1629 12435 ldr r3, .L1721+24 12436 ldrh r8, [r3] 12437 add r2, r8, r8, lsl #1 12438 asrs r2, r2, #2 12439 strh r2, [r4] @ movhi 12440 bl List_get_gc_head_node 12441 ldr r3, .L1721+28 12442 uxth r0, r0 12443 ldr r2, .L1721+32 12444 ldr r3, [r3] 12445 ldrh r2, [r2] 12446 ldrh r1, [r3, r0, lsl #1] 12447 ldr r3, .L1721+36 12448 ldrh r3, [r3] 12449 muls r2, r3, r2 12450 cmp r1, r2, asr #1 12451 ble .L1630 12452 ldrh r2, [r5] 12453 add r3, r8, #-1 12454 cmp r2, r3 12455 blt .L1630 12456 bl FtlReadRefresh 12457 b .L1717 12458.L1630: 12459 cmp r1, #0 12460 bne .L1629 12461 movw r0, #65535 12462 bl decrement_vpc_count 12463 ldrh r0, [r5] 12464 adds r0, r0, #1 12465 b .L1596 12466.L1633: 12467 ldr r3, .L1721+40 12468 ldrh r2, [r3] 12469 cmp r2, r5 12470 beq .L1634 12471 ldr r1, .L1721+28 12472 ldr r1, [r1] 12473 ldrh r2, [r1, r2, lsl #1] 12474 cbnz r2, .L1635 12475 strh r5, [r3] @ movhi 12476.L1635: 12477 ldrh r2, [r3] 12478 strh r2, [r6] @ movhi 12479 movw r2, #65535 12480 strh r2, [r3] @ movhi 12481 b .L1634 12482.L1642: 12483 str r0, [sp, #16] 12484 mov r0, r3 12485 str r3, [sp, #12] 12486 adds r7, r7, #1 12487 bl IsBlkInGcList 12488 ldr r3, [sp, #12] 12489 ldr r2, [sp, #16] 12490 cbz r0, .L1643 12491 strh r7, [r10] @ movhi 12492 b .L1641 12493.L1643: 12494 ldr lr, .L1721+28 12495 uxth r0, r2 12496 uxth r7, r7 12497 ldr r2, [lr] 12498 strh r7, [r10] @ movhi 12499 str lr, [sp, #16] 12500 ldrh ip, [r2, r0, lsl #1] 12501 str r2, [sp, #12] 12502 ldr r2, .L1721+44 12503 ldrh r2, [r2] 12504 mov r1, r2 12505 ldr r2, .L1721+32 12506 ldrh r2, [r2] 12507 muls r2, r1, r2 12508 cmp ip, r2, asr #1 12509 bgt .L1645 12510 cmp r7, #48 12511 bls .L1646 12512 cmp ip, #8 12513 bls .L1646 12514 ldr r7, .L1721+48 12515 ldrh r7, [r7] 12516 cmp r7, #35 12517 bhi .L1646 12518.L1645: 12519 movs r7, #0 12520 strh r7, [r8] @ movhi 12521.L1646: 12522 ldr r1, [sp, #12] 12523 ldrh r1, [r1, r0, lsl #1] 12524 cmp r2, r1 12525 bgt .L1647 12526 movw r2, #65535 12527 cmp r5, r2 12528 bne .L1647 12529 ldrh r2, [r8] 12530 cmp r2, #3 12531 bhi .L1647 12532 movs r3, #0 12533 strh r5, [r6] @ movhi 12534 strh r3, [r8] @ movhi 12535.L1718: 12536 ldr r3, .L1721+12 12537 ldrh r0, [r3] 12538 b .L1596 12539.L1647: 12540 cbnz r1, .L1648 12541 movw r0, #65535 12542 bl decrement_vpc_count 12543 ldrh r3, [r8] 12544 adds r3, r3, #1 12545 strh r3, [r8] @ movhi 12546 b .L1641 12547.L1648: 12548 movs r2, #0 12549 strb r2, [r6, #8] 12550 ldr r2, .L1721+52 12551 ldrh r2, [r2] 12552 cmp r2, r3 12553 bne .L1649 12554 mov r2, #700 12555 ldr r1, .L1721+56 12556 ldr r0, .L1721+60 12557 bl printf 12558.L1649: 12559 ldr r3, .L1721+64 12560 ldrh r2, [r6] 12561 ldrh r3, [r3] 12562 cmp r2, r3 12563 bne .L1650 12564 movw r2, #701 12565 ldr r1, .L1721+56 12566 ldr r0, .L1721+60 12567 bl printf 12568.L1650: 12569 ldr r3, .L1721+68 12570 ldrh r2, [r6] 12571 ldrh r3, [r3] 12572 cmp r2, r3 12573 bne .L1651 12574 movw r2, #702 12575 ldr r1, .L1721+56 12576 ldr r0, .L1721+60 12577 bl printf 12578.L1651: 12579 mov r0, fp 12580 bl make_superblock 12581 ldr r2, .L1721+72 12582 movs r3, #0 12583 ldrh r1, [r6] 12584 strh r3, [r2] @ movhi 12585 ldr r2, [sp, #16] 12586 ldr r2, [r2] 12587 ldrh r1, [r2, r1, lsl #1] 12588 ldr r2, .L1721+76 12589 strh r3, [r6, #2] @ movhi 12590 strb r3, [r6, #6] 12591 strh r1, [r2] @ movhi 12592.L1640: 12593 ldr r3, .L1721+80 12594 movs r2, #1 12595 str r2, [r3] 12596 ldr r3, .L1721+44 12597 ldrh r3, [r3] 12598 str r3, [sp, #20] 12599 ldr r3, [sp, #8] 12600 cbz r3, .L1652 12601 ldr r3, .L1721+32 12602 ldr r2, [sp, #20] 12603 ldrh r1, [r6] 12604 ldrh r3, [r3] 12605 muls r3, r2, r3 12606 ldr r2, .L1721+28 12607 ldr r2, [r2] 12608 ldrh r2, [r2, r1, lsl #1] 12609 subs r3, r3, r2 12610 it mi 12611 addmi r3, r3, #3 12612 add r4, r4, r3, asr #2 12613 uxth r4, r4 12614.L1652: 12615 ldrh r3, [r6, #2] 12616 ldr r1, [sp, #20] 12617 adds r2, r3, r4 12618 cmp r2, r1 12619 itt gt 12620 movgt r2, r1 12621 subgt r4, r2, r3 12622 mov r3, #0 12623 it gt 12624 uxthgt r4, r4 12625.L1716: 12626 str r3, [sp, #28] 12627 ldrh r3, [sp, #28] 12628 cmp r4, r3 12629 bls .L1663 12630 ldr r3, .L1721+32 12631 movw lr, #65535 12632 ldrh r1, [fp, #2] 12633 mov ip, #20 12634 ldr r7, .L1721+84 12635 ldrh r8, [r3] 12636 ldr r3, .L1721+88 12637 ldr r0, [r3] 12638 ldr r3, [sp, #28] 12639 adds r3, r1, r3 12640 str r3, [sp, #16] 12641 movs r3, #0 12642 str r3, [sp, #12] 12643 b .L1664 12644.L1657: 12645 ldrh r2, [r7, #2]! 12646 cmp r2, lr 12647 beq .L1656 12648 ldr r1, [sp, #12] 12649 mla r10, ip, r1, r0 12650 ldr r1, [sp, #16] 12651 orr r2, r1, r2, lsl #10 12652 str r2, [r10, #4] 12653 ldr r2, [sp, #12] 12654 adds r2, r2, #1 12655 uxth r2, r2 12656 str r2, [sp, #12] 12657.L1656: 12658 adds r3, r3, #1 12659.L1664: 12660 uxth r2, r3 12661 cmp r8, r2 12662 bhi .L1657 12663 ldrb r2, [fp, #8] @ zero_extendqisi2 12664 ldr r1, [sp, #12] 12665 bl FlashReadPages 12666 movs r3, #0 12667.L1715: 12668 str r3, [sp, #24] 12669 ldr r2, [sp, #12] 12670 ldrh r3, [sp, #24] 12671 cmp r2, r3 12672 bhi .L1662 12673 ldr r3, [sp, #28] 12674 adds r3, r3, #1 12675 b .L1716 12676.L1722: 12677 .align 2 12678.L1721: 12679 .word .LANCHOR87 12680 .word .LANCHOR48 12681 .word .LANCHOR82 12682 .word .LANCHOR177 12683 .word .LANCHOR61 12684 .word .LANCHOR59 12685 .word .LANCHOR78 12686 .word .LANCHOR42 12687 .word .LANCHOR3 12688 .word .LANCHOR20 12689 .word .LANCHOR99 12690 .word .LANCHOR19 12691 .word .LANCHOR96 12692 .word .LANCHOR51 12693 .word .LANCHOR180 12694 .word .LC1 12695 .word .LANCHOR52 12696 .word .LANCHOR53 12697 .word .LANCHOR178 12698 .word .LANCHOR179 12699 .word .LANCHOR108 12700 .word .LANCHOR80+14 12701 .word .LANCHOR93 12702.L1662: 12703 ldr r3, [sp, #24] 12704 movs r7, #20 12705 muls r7, r3, r7 12706 ldr r3, .L1723 12707 ldr r3, [r3] 12708 adds r2, r3, r7 12709 ldr r3, [r3, r7] 12710 adds r3, r3, #1 12711 beq .L1659 12712 ldr r3, [r2, #12] 12713 ldrh r2, [r3] 12714 str r3, [sp, #16] 12715 movw r3, #61589 12716 cmp r2, r3 12717 bne .L1659 12718 ldr r3, [sp, #16] 12719 ldr r8, [r3, #8] 12720 cmp r8, #-1 12721 bne .L1660 12722 mov r2, #736 12723 ldr r1, .L1723+4 12724 ldr r0, .L1723+8 12725 bl printf 12726.L1660: 12727 movs r2, #0 12728 add r1, sp, #44 12729 mov r0, r8 12730 bl log2phys 12731 ldr r3, .L1723 12732 ldr r1, [r3] 12733 ldr r3, [sp, #44] 12734 add r1, r1, r7 12735 ldr r2, [r1, #4] 12736 cmp r2, r3 12737 bne .L1659 12738 ldr r3, .L1723+12 12739 mov r10, #20 12740 ldr r2, .L1723+12 12741 ldr r8, .L1723+32 12742 ldrh r3, [r3] 12743 ldr r1, [r1, #16] 12744 adds r3, r3, #1 12745 strh r3, [r2] @ movhi 12746 ldr r2, .L1723+16 12747 ldr r3, [r8] 12748 ldr r0, [r2] 12749 str r2, [sp, #36] 12750 mla r3, r10, r3, r0 12751 str r1, [r3, #16] 12752 str r3, [sp, #32] 12753 bl Ftl_get_new_temp_ppa 12754 ldr r3, [sp, #32] 12755 ldr r2, [sp, #36] 12756 ldr r1, [sp, #16] 12757 str r0, [r3, #4] 12758 ldr r2, [r2] 12759 ldr r3, [r8] 12760 mla r10, r10, r3, r2 12761 ldr r2, .L1723 12762 adds r3, r3, #1 12763 ldr r0, [r2] 12764 add r0, r0, r7 12765 ldr r7, .L1723+20 12766 ldr r2, [r0, #8] 12767 str r2, [r10, #8] 12768 ldr r2, [r0, #12] 12769 str r2, [r10, #12] 12770 ldr r2, [sp, #44] 12771 str r2, [r1, #12] 12772 ldrh r2, [r7] 12773 strh r2, [r1, #2] @ movhi 12774 ldr r2, .L1723+24 12775 str r3, [r8] 12776 ldr r2, [r2] 12777 str r2, [r1, #4] 12778 movs r1, #1 12779 bl FtlGcBufAlloc 12780 ldrb r2, [r7, #7] @ zero_extendqisi2 12781 ldr r3, [r8] 12782 cmp r2, r3 12783 beq .L1661 12784 ldrh r3, [r7, #4] 12785 cbnz r3, .L1659 12786.L1661: 12787 bl Ftl_gc_temp_data_write_back 12788 cbz r0, .L1659 12789 ldr r3, .L1723+28 12790 movs r2, #0 12791 str r2, [r3] 12792 b .L1718 12793.L1659: 12794 ldr r3, [sp, #24] 12795 adds r3, r3, #1 12796 b .L1715 12797.L1663: 12798 ldrh r3, [fp, #2] 12799 add r4, r4, r3 12800 ldr r3, [sp, #20] 12801 uxth r4, r4 12802 cmp r3, r4 12803 strh r4, [fp, #2] @ movhi 12804 ldr r4, .L1723+28 12805 bhi .L1665 12806 ldr r3, .L1723+32 12807 ldr r3, [r3] 12808 cbz r3, .L1666 12809 bl Ftl_gc_temp_data_write_back 12810 cbz r0, .L1666 12811 movs r3, #0 12812 str r3, [r4] 12813 b .L1718 12814.L1666: 12815 ldr r3, .L1723+12 12816 ldrh r1, [r3] 12817 cbnz r1, .L1667 12818 ldr r3, .L1723+36 12819 ldrh r2, [fp] 12820 ldr r3, [r3] 12821 ldrh r0, [r3, r2, lsl #1] 12822 cbz r0, .L1667 12823 strh r1, [r3, r2, lsl #1] @ movhi 12824 ldrh r0, [fp] 12825 bl update_vpc_list 12826 bl l2p_flush 12827 bl FtlVpcTblFlush 12828.L1667: 12829 movw r3, #65535 12830 strh r3, [fp] @ movhi 12831.L1665: 12832 movs r3, #0 12833 str r3, [r4] 12834 ldr r3, .L1723+40 12835 ldrh r3, [r3] 12836 cmp r3, #2 12837 bhi .L1668 12838 ldr r3, .L1723+44 12839 ldrh r4, [r3] 12840 b .L1669 12841.L1668: 12842 ldr r2, .L1723+48 12843 ldrh r0, [r2] 12844 cmp r0, #0 12845 bne .L1596 12846 adds r0, r3, #1 12847 b .L1596 12848.L1673: 12849 movs r0, #0 12850 b .L1596 12851.L1602: 12852 ldr r3, [sp, #8] 12853 cmp r3, #0 12854 beq .L1671 12855.L1612: 12856 ldr r3, .L1723+20 12857 ldrh r2, [r3] 12858 movw r3, #65535 12859 cmp r2, r3 12860 bne .L1682 12861.L1672: 12862 ldr r3, .L1723+52 12863 movw r2, #65535 12864 ldrh r3, [r3] 12865 cmp r3, r2 12866 bne .L1682 12867 cmp r5, r3 12868 bne .L1682 12869 ldrh r3, [r6] 12870 cmp r3, r5 12871 beq .L1624 12872.L1629: 12873 movw r5, #65535 12874.L1682: 12875 movs r4, #1 12876 b .L1623 12877.L1604: 12878 ldr r3, [sp, #8] 12879 cmp r3, #0 12880 beq .L1671 12881 movw r5, #65535 12882 b .L1672 12883.L1603: 12884 ldr r3, [sp, #8] 12885 cmp r3, #0 12886 bne .L1629 12887 b .L1671 12888.L1724: 12889 .align 2 12890.L1723: 12891 .word .LANCHOR93 12892 .word .LANCHOR180 12893 .word .LC1 12894 .word .LANCHOR178 12895 .word .LANCHOR113 12896 .word .LANCHOR53 12897 .word .LANCHOR71 12898 .word .LANCHOR108 12899 .word .LANCHOR89 12900 .word .LANCHOR42 12901 .word .LANCHOR48 12902 .word .LANCHOR19 12903 .word .LANCHOR177 12904 .word .LANCHOR99 12905 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect 12906 .section .text.sftl_init,"ax",%progbits 12907 .align 1 12908 .global sftl_init 12909 .syntax unified 12910 .thumb 12911 .thumb_func 12912 .fpu softvfp 12913 .type sftl_init, %function 12914sftl_init: 12915 @ args = 0, pretend = 0, frame = 0 12916 @ frame_needed = 0, uses_anonymous_args = 0 12917 push {r4, lr} 12918 mov r3, #-1 12919 ldr r4, .L1731 12920 ldr r1, .L1731+4 12921 ldr r0, .L1731+8 12922 str r3, [r4] 12923 bl printf 12924 ldr r0, .L1731+12 12925 bl FtlConstantsInit 12926 bl FtlMemInit 12927 bl FtlVariablesInit 12928 ldr r3, .L1731+16 12929 ldrh r0, [r3] 12930 bl FtlFreeSysBlkQueueInit 12931 bl FtlLoadBbt 12932 cbnz r0, .L1729 12933 bl FtlSysBlkInit 12934 cbnz r0, .L1729 12935 movs r3, #1 12936 str r3, [r4] 12937 ldr r3, .L1731+20 12938 ldrh r3, [r3] 12939 cmp r3, #15 12940 bhi .L1729 12941 movw r4, #8129 12942.L1728: 12943 movs r1, #1 12944 movs r0, #0 12945 bl rk_ftl_garbage_collect 12946 subs r4, r4, #1 12947 bne .L1728 12948.L1729: 12949 movs r0, #0 12950 pop {r4, pc} 12951.L1732: 12952 .align 2 12953.L1731: 12954 .word .LANCHOR86 12955 .word .LC70 12956 .word .LC71 12957 .word .LANCHOR0 12958 .word .LANCHOR4 12959 .word .LANCHOR48 12960 .size sftl_init, .-sftl_init 12961 .section .text.sftl_gc,"ax",%progbits 12962 .align 1 12963 .global sftl_gc 12964 .syntax unified 12965 .thumb 12966 .thumb_func 12967 .fpu softvfp 12968 .type sftl_gc, %function 12969sftl_gc: 12970 @ args = 0, pretend = 0, frame = 0 12971 @ frame_needed = 0, uses_anonymous_args = 0 12972 @ link register save eliminated. 12973 movs r1, #1 12974 mov r0, r1 12975 b rk_ftl_garbage_collect 12976 .size sftl_gc, .-sftl_gc 12977 .section .text.FtlRead,"ax",%progbits 12978 .align 1 12979 .global FtlRead 12980 .syntax unified 12981 .thumb 12982 .thumb_func 12983 .fpu softvfp 12984 .type FtlRead, %function 12985FtlRead: 12986 @ args = 0, pretend = 0, frame = 56 12987 @ frame_needed = 0, uses_anonymous_args = 0 12988 cmp r0, #16 12989 push {r4, r5, r6, r7, r8, r10, fp, lr} 12990 sub sp, sp, #56 12991 mov r6, r1 12992 mov r8, r3 12993 str r2, [sp, #24] 12994 bne .L1735 12995 mov r2, r3 12996 ldr r1, [sp, #24] 12997 add r0, r6, #256 12998 bl FtlVendorPartRead 12999 str r0, [sp, #4] 13000.L1734: 13001 ldr r0, [sp, #4] 13002 add sp, sp, #56 13003 @ sp needed 13004 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13005.L1735: 13006 ldr r3, [sp, #24] 13007 adds r3, r1, r3 13008 str r3, [sp, #12] 13009 ldr r3, .L1767 13010 ldr r2, [sp, #12] 13011 ldr r3, [r3] 13012 cmp r2, r3 13013 bhi .L1756 13014 ldr r3, .L1767+4 13015 ldr r3, [r3] 13016 adds r4, r3, #1 13017 beq .L1757 13018 ldr r3, .L1767+8 13019 mov r0, r6 13020 movs r7, #0 13021 mov r5, r7 13022 ldrh r4, [r3] 13023 mov r1, r4 13024 bl __aeabi_uidiv 13025 ldr r3, [sp, #12] 13026 mov r1, r4 13027 str r0, [sp, #16] 13028 subs r0, r3, #1 13029 bl __aeabi_uidiv 13030 ldr r3, [sp, #16] 13031 ldr r2, .L1767+12 13032 ldr r1, [sp, #24] 13033 rsb r3, r3, #1 13034 ldr r4, [sp, #16] 13035 add r3, r3, r0 13036 str r0, [sp, #20] 13037 str r3, [sp, #8] 13038 ldr r3, [r2] 13039 str r7, [sp, #32] 13040 str r7, [sp, #28] 13041 add r3, r3, r1 13042 ldr r1, [sp, #8] 13043 str r3, [r2] 13044 ldr r2, .L1767+16 13045 str r7, [sp, #4] 13046 ldr r3, [r2] 13047 add r3, r3, r1 13048 str r3, [r2] 13049.L1737: 13050 ldr r3, [sp, #8] 13051 cbnz r3, .L1754 13052 ldr r3, .L1767+20 13053 ldrh r3, [r3] 13054 cbnz r3, .L1755 13055 ldr r3, .L1767+24 13056 ldrh r3, [r3] 13057 cmp r3, #31 13058 bhi .L1734 13059.L1755: 13060 movs r1, #1 13061 movs r0, #0 13062 bl rk_ftl_garbage_collect 13063 b .L1734 13064.L1754: 13065 movs r2, #0 13066 add r1, sp, #52 13067 mov r0, r4 13068 bl log2phys 13069 ldr r3, [sp, #52] 13070 adds r0, r3, #1 13071 bne .L1738 13072 ldr fp, .L1767+8 13073 mov r10, #0 13074.L1739: 13075 ldrh r0, [fp] 13076 cmp r10, r0 13077 bcc .L1741 13078.L1742: 13079 ldr r3, [sp, #8] 13080 adds r4, r4, #1 13081 subs r3, r3, #1 13082 str r3, [sp, #8] 13083 beq .L1746 13084 ldr r3, .L1767+28 13085 ldrh r3, [r3] 13086 cmp r5, r3, lsl #2 13087 bne .L1737 13088.L1746: 13089 cmp r5, #0 13090 beq .L1737 13091 ldr r3, .L1767+32 13092 movs r2, #0 13093 mov r1, r5 13094 mov r10, #0 13095 ldr r0, [r3] 13096 bl FlashReadPages 13097 lsls r3, r7, #9 13098 str r3, [sp, #44] 13099 ldr r3, [sp, #28] 13100 lsls r3, r3, #9 13101 str r3, [sp, #36] 13102 ldr r3, [sp, #32] 13103 lsls r3, r3, #9 13104 str r3, [sp, #40] 13105.L1753: 13106 movs r3, #20 13107 mul fp, r3, r10 13108 ldr r3, .L1767+32 13109 ldr r2, [r3] 13110 ldr r3, [sp, #16] 13111 add r2, r2, fp 13112 ldr r1, [r2, #16] 13113 cmp r3, r1 13114 bne .L1748 13115 ldr r1, [r2, #8] 13116 ldr r2, .L1767+36 13117 ldr r2, [r2] 13118 cmp r1, r2 13119 bne .L1749 13120 ldr r3, [sp, #36] 13121 mov r0, r8 13122 ldr r2, [sp, #40] 13123 add r1, r1, r3 13124.L1766: 13125 bl ftl_memcpy 13126.L1749: 13127 ldr r3, .L1767+32 13128 ldr r3, [r3] 13129 add r2, r3, fp 13130 ldr r3, [r3, fp] 13131 ldr r0, [r2, #12] 13132 ldr r1, [r2, #16] 13133 ldr r0, [r0, #8] 13134 cmp r1, r0 13135 itttt ne 13136 ldrne r0, .L1767+40 13137 ldrne r1, [r0, #72] 13138 addne r1, r1, #1 13139 strne r1, [r0, #72] 13140 adds r1, r3, #1 13141 bne .L1751 13142 ldr r1, .L1767+40 13143 str r3, [sp, #4] 13144 ldr r2, [r1, #72] 13145 adds r2, r2, #1 13146 str r2, [r1, #72] 13147.L1752: 13148 add r10, r10, #1 13149 cmp r5, r10 13150 bne .L1753 13151 movs r5, #0 13152 b .L1737 13153.L1741: 13154 mla r0, r0, r4, r10 13155 cmp r6, r0 13156 bhi .L1740 13157 ldr r3, [sp, #12] 13158 cmp r3, r0 13159 bls .L1740 13160 subs r0, r0, r6 13161 mov r2, #512 13162 movs r1, #0 13163 add r0, r8, r0, lsl #9 13164 bl ftl_memset 13165.L1740: 13166 add r10, r10, #1 13167 b .L1739 13168.L1738: 13169 ldr r2, .L1767+32 13170 mov r10, #20 13171 ldr r2, [r2] 13172 mla r10, r10, r5, r2 13173 str r3, [r10, #4] 13174 ldr r3, [sp, #16] 13175 cmp r4, r3 13176 ldr r3, .L1767+8 13177 bne .L1743 13178 ldr r2, .L1767+36 13179 mov r0, r6 13180 ldrh fp, [r3] 13181 ldr r2, [r2] 13182 mov r1, fp 13183 str r2, [r10, #8] 13184 bl __aeabi_uidivmod 13185 ldr r2, [sp, #24] 13186 sub r3, fp, r1 13187 str r1, [sp, #28] 13188 cmp r3, r2 13189 it cs 13190 movcs r3, r2 13191 cmp fp, r3 13192 str r3, [sp, #32] 13193 bne .L1744 13194 str r8, [r10, #8] 13195.L1744: 13196 ldr r3, .L1767+44 13197 ldr r2, .L1767+48 13198 str r4, [r10, #16] 13199 ldrh r3, [r3] 13200 ldr r2, [r2] 13201 muls r3, r5, r3 13202 adds r5, r5, #1 13203 bic r3, r3, #3 13204 add r3, r3, r2 13205 str r3, [r10, #12] 13206 b .L1742 13207.L1743: 13208 ldr r2, [sp, #20] 13209 cmp r4, r2 13210 bne .L1745 13211 ldr r2, .L1767+52 13212 ldr r1, [sp, #12] 13213 ldr r2, [r2] 13214 str r2, [r10, #8] 13215 ldrh r2, [r3] 13216 mul r3, r2, r4 13217 subs r7, r1, r3 13218 cmp r2, r7 13219 bne .L1744 13220.L1765: 13221 subs r3, r3, r6 13222 add r3, r8, r3, lsl #9 13223 str r3, [r10, #8] 13224 b .L1744 13225.L1745: 13226 ldrh r3, [r3] 13227 muls r3, r4, r3 13228 b .L1765 13229.L1748: 13230 ldr r3, [sp, #20] 13231 cmp r3, r1 13232 bne .L1749 13233 ldr r3, .L1767+52 13234 ldr r1, [r2, #8] 13235 ldr r2, [r3] 13236 cmp r1, r2 13237 bne .L1749 13238 ldr r2, .L1767+8 13239 ldr r3, [sp, #20] 13240 ldrh r0, [r2] 13241 ldr r2, [sp, #44] 13242 muls r0, r3, r0 13243 subs r0, r0, r6 13244 add r0, r8, r0, lsl #9 13245 b .L1766 13246.L1751: 13247 cmp r3, #256 13248 bne .L1752 13249 ldr r0, [r2, #4] 13250 ubfx r0, r0, #10, #16 13251 bl P2V_block_in_plane 13252 bl FtlGcRefreshBlock 13253 b .L1752 13254.L1756: 13255 mov r3, #-1 13256.L1757: 13257 str r3, [sp, #4] 13258 b .L1734 13259.L1768: 13260 .align 2 13261.L1767: 13262 .word .LANCHOR34 13263 .word .LANCHOR86 13264 .word .LANCHOR12 13265 .word .LANCHOR69 13266 .word .LANCHOR62 13267 .word .LANCHOR101 13268 .word .LANCHOR48 13269 .word .LANCHOR3 13270 .word .LANCHOR112 13271 .word .LANCHOR118 13272 .word .LANCHOR81 13273 .word .LANCHOR24 13274 .word .LANCHOR124 13275 .word .LANCHOR119 13276 .size FtlRead, .-FtlRead 13277 .section .text.sftl_read,"ax",%progbits 13278 .align 1 13279 .global sftl_read 13280 .syntax unified 13281 .thumb 13282 .thumb_func 13283 .fpu softvfp 13284 .type sftl_read, %function 13285sftl_read: 13286 @ args = 0, pretend = 0, frame = 0 13287 @ frame_needed = 0, uses_anonymous_args = 0 13288 @ link register save eliminated. 13289 mov r3, r2 13290 mov r2, r1 13291 mov r1, r0 13292 movs r0, #0 13293 b FtlRead 13294 .size sftl_read, .-sftl_read 13295 .section .text.FtlWrite,"ax",%progbits 13296 .align 1 13297 .global FtlWrite 13298 .syntax unified 13299 .thumb 13300 .thumb_func 13301 .fpu softvfp 13302 .type FtlWrite, %function 13303FtlWrite: 13304 @ args = 0, pretend = 0, frame = 72 13305 @ frame_needed = 0, uses_anonymous_args = 0 13306 cmp r0, #16 13307 push {r4, r5, r6, r7, r8, r10, fp, lr} 13308 sub sp, sp, #72 13309 str r1, [sp, #4] 13310 str r2, [sp, #20] 13311 str r3, [sp, #16] 13312 bne .L1771 13313 mov r2, r3 13314 ldr r3, [sp, #4] 13315 ldr r1, [sp, #20] 13316 add r0, r3, #256 13317 bl FtlVendorPartWrite 13318.L1770: 13319 add sp, sp, #72 13320 @ sp needed 13321 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13322.L1771: 13323 ldr r3, [sp, #4] 13324 ldr r2, [sp, #20] 13325 adds r4, r3, r2 13326 ldr r3, .L1822 13327 ldr r3, [r3] 13328 cmp r4, r3 13329 bhi .L1808 13330 ldr r3, .L1822+4 13331 ldr r0, [r3] 13332 adds r5, r0, #1 13333 beq .L1770 13334 ldr r3, .L1822+8 13335 mov r2, #2048 13336 ldr r0, [sp, #4] 13337 str r2, [r3] 13338 ldr r3, .L1822+12 13339 ldrh r5, [r3] 13340 mov r1, r5 13341 bl __aeabi_uidiv 13342 mov r1, r5 13343 str r0, [sp, #12] 13344 subs r0, r4, #1 13345 ldr r5, .L1822+16 13346 bl __aeabi_uidiv 13347 ldr r2, [sp, #12] 13348 ldr r1, [sp, #20] 13349 str r0, [sp, #28] 13350 subs r3, r0, r2 13351 ldr r2, .L1822+20 13352 str r3, [sp, #32] 13353 adds r3, r3, #1 13354 str r3, [sp, #8] 13355 ldr r3, [r2] 13356 add r3, r3, r1 13357 ldr r1, [sp, #8] 13358 str r3, [r2] 13359 ldr r2, .L1822+24 13360 ldr r3, [r2] 13361 add r3, r3, r1 13362 str r3, [r2] 13363 ldr r3, .L1822+28 13364 ldr r3, [r3] 13365 cbz r3, .L1773 13366 ldrh r2, [r5, #4] 13367 ldr r3, .L1822+32 13368 cmp r2, #0 13369 it eq 13370 moveq r5, r3 13371.L1773: 13372 ldr r6, [sp, #12] 13373.L1774: 13374 ldr r3, [sp, #8] 13375 cbnz r3, .L1803 13376 ldr r5, .L1822+36 13377 mov r0, r3 13378 ldr r1, [sp, #32] 13379 bl rk_ftl_garbage_collect 13380 ldrh r2, [r5] 13381 cmp r2, #5 13382 bls .L1804 13383.L1806: 13384 movs r0, #0 13385 b .L1770 13386.L1803: 13387 ldr r3, .L1822+40 13388 ldrb r2, [r5, #6] @ zero_extendqisi2 13389 ldrh r3, [r3] 13390 cmp r2, r3 13391 bcc .L1775 13392 movw r2, #1013 13393 ldr r1, .L1822+44 13394 ldr r0, .L1822+48 13395 bl printf 13396.L1775: 13397 ldrh r2, [r5, #4] 13398 cbnz r2, .L1776 13399 ldr r3, .L1822+16 13400 ldr r4, .L1822+28 13401 cmp r5, r3 13402 bne .L1777 13403 ldr r0, .L1822+32 13404 ldrh r5, [r0, #4] 13405 cbnz r5, .L1778 13406 bl allocate_new_data_superblock 13407 str r5, [r4] 13408.L1778: 13409 ldr r0, .L1822+16 13410 bl allocate_new_data_superblock 13411 ldr r5, .L1822+16 13412 ldr r2, [r4] 13413 ldr r3, .L1822+32 13414 cmp r2, #0 13415 it ne 13416 movne r5, r3 13417.L1779: 13418 ldrh r3, [r5, #4] 13419 cbnz r3, .L1776 13420 mov r0, r5 13421 bl allocate_new_data_superblock 13422.L1776: 13423 ldrh r2, [r5, #4] 13424 ldr r3, [sp, #8] 13425 cmp r2, r3 13426 it cs 13427 movcs r2, r3 13428 ldrb r3, [r5, #7] @ zero_extendqisi2 13429 lsls r3, r3, #2 13430 cmp r2, r3 13431 it cs 13432 movcs r2, r3 13433 ldr r3, .L1822+40 13434 str r2, [sp, #44] 13435 ldrb r2, [r5, #6] @ zero_extendqisi2 13436 ldrh r3, [r3] 13437 cmp r2, r3 13438 bcc .L1780 13439 movw r2, #1046 13440 ldr r1, .L1822+44 13441 ldr r0, .L1822+48 13442 bl printf 13443.L1780: 13444 ldr r8, .L1822+52 13445 mov fp, #0 13446.L1781: 13447 ldr r3, [sp, #44] 13448 cmp fp, r3 13449 bne .L1801 13450.L1782: 13451 ldr r0, .L1822+52 13452 mov r3, r5 13453 movs r2, #0 13454 mov r1, fp 13455 ldr r0, [r0] 13456 bl FtlProgPages 13457 ldr r3, [sp, #8] 13458 cmp fp, r3 13459 bls .L1802 13460 movw r2, #1123 13461 ldr r1, .L1822+44 13462 ldr r0, .L1822+48 13463 bl printf 13464.L1802: 13465 ldr r3, [sp, #8] 13466 sub r3, r3, fp 13467 str r3, [sp, #8] 13468 b .L1774 13469.L1777: 13470 str r2, [r4] 13471 ldrh r2, [r3, #4] 13472 cbnz r2, .L1813 13473 mov r0, r5 13474 bl allocate_new_data_superblock 13475 b .L1779 13476.L1813: 13477 mov r5, r3 13478 b .L1776 13479.L1801: 13480 ldrh r2, [r5, #4] 13481 cmp r2, #0 13482 beq .L1782 13483 movs r2, #0 13484 add r1, sp, #48 13485 mov r0, r6 13486 movs r7, #20 13487 bl log2phys 13488 mov r0, r5 13489 mul r7, r7, fp 13490 bl get_new_active_ppa 13491 ldr r3, .L1822+56 13492 ldr r1, [r8] 13493 ldrh r2, [r3] 13494 add r1, r1, r7 13495 str r0, [r1, #4] 13496 str r6, [r1, #16] 13497 mul r0, r2, fp 13498 bic r3, r0, #3 13499 ldr r0, .L1822+60 13500 str r3, [sp, #36] 13501 ldr r3, [r0] 13502 ldr r0, [sp, #36] 13503 str r3, [sp, #40] 13504 add r10, r3, r0 13505 str r10, [r1, #12] 13506 mov r0, r10 13507 movs r1, #0 13508 bl ftl_memset 13509 ldr r3, [sp, #12] 13510 ldr r2, .L1822+12 13511 cmp r6, r3 13512 beq .L1783 13513 ldr r3, [sp, #28] 13514 cmp r6, r3 13515 bne .L1818 13516 ldrh r2, [r2] 13517 ldr r3, [sp, #4] 13518 ldr r1, [sp, #20] 13519 smulbb r2, r2, r6 13520 adds r4, r3, r1 13521 movs r3, #0 13522 subs r4, r4, r2 13523 str r3, [sp, #24] 13524 uxth r4, r4 13525 b .L1786 13526.L1783: 13527 ldrh r4, [r2] 13528 ldr r0, [sp, #4] 13529 mov r1, r4 13530 bl __aeabi_uidivmod 13531 ldr r3, [sp, #20] 13532 subs r4, r4, r1 13533 str r1, [sp, #24] 13534 cmp r4, r3 13535 it cs 13536 movcs r4, r3 13537.L1786: 13538 ldr r2, .L1822+12 13539 ldr r3, [sp, #12] 13540 ldrh r2, [r2] 13541 cmp r4, r2 13542 ldr r2, [r8] 13543 bne .L1787 13544 cmp r6, r3 13545 add r7, r7, r2 13546 ittet ne 13547 mulne r4, r4, r6 13548 ldrne r3, [sp, #4] 13549 ldreq r3, [sp, #16] 13550 subne r4, r4, r3 13551 itett ne 13552 ldrne r3, [sp, #16] 13553 streq r3, [r7, #8] 13554 addne r4, r3, r4, lsl #9 13555 strne r4, [r7, #8] 13556.L1789: 13557 ldr r3, .L1822+40 13558 ldrb r1, [r5, #6] @ zero_extendqisi2 13559 ldrh r2, [r3] 13560 cmp r1, r2 13561 bcc .L1798 13562 movw r2, #1114 13563 ldr r1, .L1822+44 13564 ldr r0, .L1822+48 13565 bl printf 13566.L1798: 13567 ldr r3, [sp, #40] 13568 movw r2, #61589 13569 ldr r1, [sp, #36] 13570 add fp, fp, #1 13571 strh r2, [r3, r1] @ movhi 13572 ldr r1, .L1822+64 13573 str r6, [r10, #8] 13574 adds r6, r6, #1 13575 ldr r2, [r1] 13576 str r2, [r10, #4] 13577 adds r2, r2, #1 13578 adds r3, r2, #1 13579 it eq 13580 moveq r2, #0 13581 str r2, [r1] 13582 ldr r2, [sp, #48] 13583 str r2, [r10, #12] 13584 ldrh r2, [r5] 13585 strh r2, [r10, #2] @ movhi 13586 b .L1781 13587.L1823: 13588 .align 2 13589.L1822: 13590 .word .LANCHOR34 13591 .word .LANCHOR86 13592 .word .LANCHOR181 13593 .word .LANCHOR12 13594 .word .LANCHOR51 13595 .word .LANCHOR68 13596 .word .LANCHOR64 13597 .word .LANCHOR182 13598 .word .LANCHOR52 13599 .word .LANCHOR48 13600 .word .LANCHOR3 13601 .word .LANCHOR183 13602 .word .LC1 13603 .word .LANCHOR114 13604 .word .LANCHOR24 13605 .word .LANCHOR124 13606 .word .LANCHOR71 13607.L1787: 13608 cmp r6, r3 13609 add r2, r2, r7 13610 ite eq 13611 ldreq r1, .L1824 13612 ldrne r1, .L1824+4 13613 ldr r1, [r1] 13614 str r1, [r2, #8] 13615 ldr r2, [sp, #48] 13616 adds r1, r2, #1 13617 beq .L1792 13618 str r2, [sp, #56] 13619 add r0, sp, #52 13620 ldr r2, [r8] 13621 str r6, [sp, #68] 13622 add r2, r2, r7 13623 ldr r1, [r2, #8] 13624 ldr r2, [r2, #12] 13625 str r1, [sp, #60] 13626 movs r1, #1 13627 str r2, [sp, #64] 13628 movs r2, #0 13629 bl FlashReadPages 13630 ldr r2, [sp, #52] 13631 adds r2, r2, #1 13632 bne .L1793 13633 ldr r1, .L1824+8 13634 ldr r2, [r1, #72] 13635 adds r2, r2, #1 13636 str r2, [r1, #72] 13637.L1796: 13638 ldr r3, [sp, #12] 13639 lsls r2, r4, #9 13640 cmp r6, r3 13641 bne .L1797 13642 ldr r1, [r8] 13643 ldr r3, [sp, #24] 13644 add r7, r7, r1 13645 ldr r1, [sp, #16] 13646 ldr r0, [r7, #8] 13647 add r0, r0, r3, lsl #9 13648.L1820: 13649 bl ftl_memcpy 13650 b .L1789 13651.L1793: 13652 ldr r1, [r10, #8] 13653 cmp r6, r1 13654 beq .L1795 13655 ldr r0, .L1824+8 13656 ldr r2, [r0, #72] 13657 adds r2, r2, #1 13658 str r2, [r0, #72] 13659 mov r2, r6 13660 ldr r0, .L1824+12 13661 bl printf 13662.L1795: 13663 ldr r2, [r10, #8] 13664 cmp r6, r2 13665 beq .L1796 13666 movw r2, #1099 13667 ldr r1, .L1824+16 13668 ldr r0, .L1824+20 13669 bl printf 13670 b .L1796 13671.L1792: 13672 ldr r2, [r8] 13673 movs r1, #0 13674 adds r0, r2, r7 13675 ldr r2, .L1824+24 13676 ldr r0, [r0, #8] 13677 ldrh r2, [r2] 13678 bl ftl_memset 13679 b .L1796 13680.L1797: 13681 ldr r1, .L1824+28 13682 ldr r3, [sp, #4] 13683 ldr r0, [r8] 13684 ldrh r1, [r1] 13685 add r7, r7, r0 13686 ldr r0, [r7, #8] 13687 muls r1, r6, r1 13688 subs r1, r1, r3 13689 ldr r3, [sp, #16] 13690 add r1, r3, r1, lsl #9 13691 b .L1820 13692.L1818: 13693 ldrh r2, [r2] 13694 ldr r3, [sp, #4] 13695 ldr r1, [r8] 13696 muls r2, r6, r2 13697 add r7, r7, r1 13698 subs r2, r2, r3 13699 ldr r3, [sp, #16] 13700 add r2, r3, r2, lsl #9 13701 str r2, [r7, #8] 13702 b .L1789 13703.L1804: 13704 ldr r6, .L1824+32 13705 mov r4, #256 13706 ldr r7, .L1824+36 13707.L1807: 13708 ldrh r3, [r6] 13709 movw r2, #65535 13710 cmp r3, r2 13711 bne .L1805 13712 ldrh r2, [r7] 13713 cmp r2, r3 13714 bne .L1805 13715 movs r0, #0 13716 bl List_get_gc_head_node 13717 uxth r0, r0 13718 bl FtlGcRefreshBlock 13719.L1805: 13720 ldr r2, .L1824+40 13721 movs r3, #128 13722 movs r1, #1 13723 mov r0, r1 13724 strh r3, [r2] @ movhi 13725 ldr r2, .L1824+44 13726 strh r3, [r2] @ movhi 13727 bl rk_ftl_garbage_collect 13728 movs r1, #1 13729 movs r0, #0 13730 bl rk_ftl_garbage_collect 13731 ldrh r3, [r5] 13732 cmp r3, #2 13733 bhi .L1806 13734 subs r4, r4, #1 13735 bne .L1807 13736 b .L1806 13737.L1808: 13738 mov r0, #-1 13739 b .L1770 13740.L1825: 13741 .align 2 13742.L1824: 13743 .word .LANCHOR118 13744 .word .LANCHOR119 13745 .word .LANCHOR81 13746 .word .LC113 13747 .word .LANCHOR183 13748 .word .LC1 13749 .word .LANCHOR23 13750 .word .LANCHOR12 13751 .word .LANCHOR80 13752 .word .LANCHOR99 13753 .word .LANCHOR83 13754 .word .LANCHOR82 13755 .size FtlWrite, .-FtlWrite 13756 .section .text.FtlMakeBbt,"ax",%progbits 13757 .align 1 13758 .global FtlMakeBbt 13759 .syntax unified 13760 .thumb 13761 .thumb_func 13762 .fpu softvfp 13763 .type FtlMakeBbt, %function 13764FtlMakeBbt: 13765 @ args = 0, pretend = 0, frame = 8 13766 @ frame_needed = 0, uses_anonymous_args = 0 13767 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 13768 movs r6, #0 13769 ldr r7, .L1845 13770 bl FtlBbtMemInit 13771 sub r8, r7, #18 13772 bl FtlLoadFactoryBbt 13773.L1827: 13774 ldr r3, .L1845+4 13775 ldrh r3, [r3] 13776 cmp r6, r3 13777 bcc .L1833 13778 ldr r5, .L1845+8 13779 movs r4, #0 13780.L1834: 13781 ldrh r3, [r5] 13782 uxth r0, r4 13783 adds r4, r4, #1 13784 cmp r3, r0 13785 bhi .L1835 13786 ldr r4, .L1845+12 13787 movw r6, #65535 13788 ldrh r5, [r4, #12] 13789 subs r5, r5, #1 13790 uxth r5, r5 13791.L1836: 13792 ldrh r3, [r4, #12] 13793 subs r3, r3, #47 13794 cmp r3, r5 13795 bgt .L1840 13796 mov r0, r5 13797 bl FtlBbmIsBadBlock 13798 cmp r0, #1 13799 beq .L1837 13800 mov r0, r5 13801 bl FlashTestBlk 13802 cmp r0, #0 13803 beq .L1838 13804 mov r0, r5 13805 bl FtlBbmMapBadBlock 13806.L1837: 13807 subs r5, r5, #1 13808 uxth r5, r5 13809 b .L1836 13810.L1833: 13811 ldr r3, .L1845+16 13812 ldr r5, .L1845+20 13813 ldrh r2, [r8, #2]! 13814 ldr r4, .L1845+24 13815 ldr r0, [r3] 13816 movw r3, #65535 13817 ldr r10, [r5] 13818 cmp r2, r3 13819 mov fp, r4 13820 ldr r3, .L1845+28 13821 str r0, [r4, #8] 13822 str r10, [r4, #12] 13823 beq .L1828 13824 ldrh r5, [r3] 13825 mov r0, r4 13826 str r3, [sp] 13827 mla r5, r6, r5, r2 13828 lsls r2, r5, #10 13829 str r2, [r4, #4] 13830 movs r2, #1 13831 mov r1, r2 13832 bl FlashReadPages 13833 ldr r3, [sp] 13834 ldr r1, [r4, #8] 13835 ldr r0, [r7] 13836 ldrh r2, [r3] 13837 adds r2, r2, #7 13838 asrs r2, r2, #3 13839 bl ftl_memcpy 13840.L1829: 13841 uxth r0, r5 13842 adds r6, r6, #1 13843 adds r7, r7, #4 13844 bl FtlBbmMapBadBlock 13845 b .L1827 13846.L1828: 13847 mov r1, r6 13848 str r3, [sp] 13849 bl FlashGetBadBlockList 13850 ldr r0, [r4, #8] 13851 ldr r1, [r7] 13852 bl FtlBbt2Bitmap 13853 ldr r3, [sp] 13854 str r5, [sp, #4] 13855 ldrh r4, [r3] 13856 subs r4, r4, #1 13857 uxth r4, r4 13858.L1830: 13859 ldr r3, [sp] 13860 ldrh r0, [r3] 13861 smlabb r0, r0, r6, r4 13862 uxth r0, r0 13863 bl FtlBbmIsBadBlock 13864 cmp r0, #1 13865 beq .L1831 13866 ldr r3, [sp, #4] 13867 movs r2, #16 13868 movs r1, #0 13869 strh r4, [r8] @ movhi 13870 ldr r0, [r3] 13871 bl ftl_memset 13872 ldr r3, .L1845+16 13873 mov r2, #4096 13874 movs r1, #0 13875 ldr r0, [r3] 13876 bl ftl_memset 13877 ldr r2, [sp] 13878 movw r3, #61664 13879 strh r3, [r10] @ movhi 13880 movs r3, #0 13881 str r3, [r10, #4] 13882 ldrh r5, [r2] 13883 ldrh r3, [r8] 13884 ldr r1, [r7] 13885 ldr r0, [fp, #8] 13886 strh r3, [r10, #2] @ movhi 13887 mla r5, r6, r5, r3 13888 lsls r3, r5, #10 13889 str r3, [fp, #4] 13890 ldr r3, .L1845+32 13891 ldrh r2, [r3] 13892 lsls r2, r2, #2 13893 bl ftl_memcpy 13894 movs r2, #1 13895 ldr r0, .L1845+24 13896 mov r1, r2 13897 bl FlashEraseBlocks 13898 movs r3, #1 13899 ldr r0, .L1845+24 13900 mov r2, r3 13901 mov r1, r3 13902 bl FlashProgPages 13903 ldr r3, [fp] 13904 adds r3, r3, #1 13905 bne .L1829 13906 uxth r0, r5 13907 bl FtlBbmMapBadBlock 13908 b .L1830 13909.L1831: 13910 subs r4, r4, #1 13911 uxth r4, r4 13912 b .L1830 13913.L1835: 13914 bl FtlBbmMapBadBlock 13915 b .L1834 13916.L1838: 13917 ldrh r3, [r4] 13918 cmp r3, r6 13919 bne .L1839 13920 strh r5, [r4] @ movhi 13921 b .L1837 13922.L1839: 13923 strh r5, [r4, #4] @ movhi 13924.L1840: 13925 ldr r3, .L1845+36 13926 movs r5, #0 13927 str r5, [r4, #8] 13928 movs r1, #1 13929 movs r2, #2 13930 strh r5, [r4, #2] @ movhi 13931 ldr r0, [r3] 13932 ldrh r3, [r4] 13933 lsls r3, r3, #10 13934 str r3, [r0, #4] 13935 ldrh r3, [r4, #4] 13936 lsls r3, r3, #10 13937 str r3, [r0, #24] 13938 bl FlashEraseBlocks 13939 ldrh r0, [r4] 13940 bl FtlBbmMapBadBlock 13941 ldrh r0, [r4, #4] 13942 bl FtlBbmMapBadBlock 13943 bl FtlBbmTblFlush 13944 ldr r3, [r4, #8] 13945 ldrh r2, [r4, #4] 13946 strh r5, [r4, #2] @ movhi 13947 adds r3, r3, #1 13948 str r3, [r4, #8] 13949 ldrh r3, [r4] 13950 strh r2, [r4] @ movhi 13951 strh r3, [r4, #4] @ movhi 13952 bl FtlBbmTblFlush 13953 mov r0, r5 13954 add sp, sp, #8 13955 @ sp needed 13956 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13957.L1846: 13958 .align 2 13959.L1845: 13960 .word .LANCHOR37+28 13961 .word .LANCHOR10 13962 .word .LANCHOR25 13963 .word .LANCHOR37 13964 .word .LANCHOR115 13965 .word .LANCHOR123 13966 .word .LANCHOR148 13967 .word .LANCHOR17 13968 .word .LANCHOR137 13969 .word .LANCHOR106 13970 .size FtlMakeBbt, .-FtlMakeBbt 13971 .section .text.ftl_low_format,"ax",%progbits 13972 .align 1 13973 .global ftl_low_format 13974 .syntax unified 13975 .thumb 13976 .thumb_func 13977 .fpu softvfp 13978 .type ftl_low_format, %function 13979ftl_low_format: 13980 @ args = 0, pretend = 0, frame = 16 13981 @ frame_needed = 0, uses_anonymous_args = 0 13982 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 13983 movs r3, #0 13984 ldr r6, .L1871 13985 ldr r2, .L1871+4 13986 ldr r5, .L1871+8 13987 ldrh r0, [r6] 13988 str r3, [r2] 13989 str r3, [r5] 13990 bl FtlFreeSysBlkQueueInit 13991 bl FtlLoadBbt 13992 cbz r0, .L1848 13993 bl FtlMakeBbt 13994.L1848: 13995 ldr r3, .L1871+12 13996 ldr r2, .L1871+16 13997 ldr ip, .L1871+100 13998 ldrh r1, [r3] 13999 ldr r4, [r2] 14000 ldr r2, .L1871+20 14001 str r3, [sp, #4] 14002 lsls r1, r1, #7 14003 ldr r7, [r2] 14004 movs r2, #0 14005.L1849: 14006 uxth r3, r2 14007 adds r2, r2, #1 14008 cmp r3, r1 14009 blt .L1850 14010 ldr r3, .L1871+24 14011 movs r7, #0 14012 ldr r10, .L1871+104 14013 ldrh r4, [r3] 14014 mov r8, r3 14015 mov fp, r10 14016.L1851: 14017 ldrh r3, [r10] 14018 cmp r3, r4 14019 bhi .L1852 14020 ldr r4, .L1871+28 14021 subs r3, r7, #2 14022 ldrh r1, [r4] 14023 cmp r3, r1, lsl #1 14024 bgt .L1853 14025.L1857: 14026 movs r6, #0 14027 mov r7, r6 14028.L1854: 14029 ldrh r3, [r8] 14030 uxth r0, r6 14031 adds r6, r6, #1 14032 cmp r3, r0 14033 bhi .L1858 14034 ldrh r2, [fp] 14035 ldr r3, .L1871+32 14036 ldrh r4, [r4] 14037 ldr r6, .L1871+36 14038 str r2, [r3] 14039 ldr r3, .L1871+40 14040 mov r1, r4 14041 ldr r2, [r3] 14042 mov r0, r2 14043 str r2, [sp, #12] 14044 bl __aeabi_uidiv 14045 ubfx r10, r0, #5, #16 14046 mov r3, r0 14047 str r0, [r6] 14048 add r1, r10, #36 14049 ldr r0, .L1871+44 14050 strh r1, [r0] @ movhi 14051 movs r1, #24 14052 muls r1, r4, r1 14053 str r0, [sp] 14054 cmp r7, r1 14055 ble .L1859 14056 ldr r2, [sp, #12] 14057 mov r1, r4 14058 str r3, [sp, #8] 14059 subs r0, r2, r7 14060 bl __aeabi_uidiv 14061 ldr r3, [sp] 14062 str r0, [r6] 14063 lsrs r0, r0, #5 14064 adds r0, r0, #24 14065 strh r0, [r3] @ movhi 14066 ldr r3, [sp, #8] 14067.L1859: 14068 ldr r2, .L1871+48 14069 ldrh r2, [r2] 14070 cbz r2, .L1861 14071 ldr r1, .L1871+44 14072 ldrh r0, [r1] 14073 add r0, r0, r2, lsr #1 14074 strh r0, [r1] @ movhi 14075 mul r0, r4, r2 14076 cmp r7, r0 14077 itttt lt 14078 addlt r2, r2, #32 14079 strlt r3, [r6] 14080 addlt r2, r2, r10 14081 strhlt r2, [r1] @ movhi 14082.L1861: 14083 ldr r3, [sp] 14084 ldr r7, .L1871+52 14085 ldr r10, .L1871+108 14086 ldrh r2, [r3] 14087 ldr r3, [r6] 14088 subs r3, r3, r2 14089 muls r4, r3, r4 14090 ldr r3, .L1871+56 14091 ldrh r3, [r3] 14092 str r4, [r7] 14093 muls r4, r3, r4 14094 ldr r3, [sp, #4] 14095 ldrh r3, [r3] 14096 str r4, [r6] 14097 ldr r6, .L1871+60 14098 muls r4, r3, r4 14099 ldr r3, .L1871+64 14100 str r4, [r3] 14101 movw r4, #65535 14102 bl FtlBbmTblFlush 14103 ldrh r2, [fp] 14104 movs r1, #0 14105 ldr r0, [r10] 14106 lsls r2, r2, #1 14107 bl ftl_memset 14108 ldr r2, .L1871+68 14109 movs r3, #0 14110 strh r3, [r6, #2] @ movhi 14111 movs r1, #255 14112 strb r3, [r6, #6] 14113 str r3, [r2] 14114 ldr r2, .L1871+72 14115 strh r3, [r6] @ movhi 14116 strh r3, [r2, #2] @ movhi 14117 strb r3, [r2, #6] 14118 strb r3, [r2, #8] 14119 movs r3, #1 14120 strh r4, [r2] @ movhi 14121 ldrh r2, [r8] 14122 mov r8, r10 14123 strb r3, [r6, #8] 14124 mov r10, r6 14125 ldr r3, .L1871+76 14126 lsrs r2, r2, #3 14127 ldr r0, [r3] 14128 bl ftl_memset 14129.L1863: 14130 mov r0, r10 14131 bl make_superblock 14132 ldrb r3, [r6, #7] @ zero_extendqisi2 14133 ldrh r2, [r6] 14134 cmp r3, #0 14135 bne .L1864 14136 ldr r3, [r8] 14137 strh r4, [r3, r2, lsl #1] @ movhi 14138 ldrh r3, [r6] 14139 adds r3, r3, #1 14140 strh r3, [r6] @ movhi 14141 b .L1863 14142.L1850: 14143 mvns r0, r3 14144 orr r0, r3, r0, lsl #16 14145 str r0, [r4, r3, lsl #2] 14146 str ip, [r7, r3, lsl #2] 14147 b .L1849 14148.L1852: 14149 mov r0, r4 14150 movs r1, #1 14151 bl FtlLowFormatEraseBlock 14152 adds r4, r4, #1 14153 add r7, r7, r0 14154 uxth r7, r7 14155 uxth r4, r4 14156 b .L1851 14157.L1853: 14158 mov r0, r7 14159 bl __aeabi_uidiv 14160 ldr r3, .L1871+80 14161 ldr r3, [r3] 14162 add r0, r0, r3 14163 uxth r0, r0 14164 bl FtlSysBlkNumInit 14165 ldrh r0, [r6] 14166 bl FtlFreeSysBlkQueueInit 14167 ldrh r6, [r8] 14168.L1855: 14169 ldrh r3, [fp] 14170 cmp r3, r6 14171 bls .L1857 14172 mov r0, r6 14173 movs r1, #1 14174 adds r6, r6, #1 14175 bl FtlLowFormatEraseBlock 14176 uxth r6, r6 14177 b .L1855 14178.L1858: 14179 movs r1, #0 14180 bl FtlLowFormatEraseBlock 14181 add r7, r7, r0 14182 uxth r7, r7 14183 b .L1854 14184.L1864: 14185 ldr r3, [r5] 14186 ldrh r1, [r6, #4] 14187 ldr r4, .L1871+84 14188 str r3, [r6, #12] 14189 adds r3, r3, #1 14190 str r3, [r5] 14191 ldr r3, [r8] 14192 mov r10, r4 14193 strh r1, [r3, r2, lsl #1] @ movhi 14194 movs r3, #0 14195 strh r3, [r4, #2] @ movhi 14196 strb r3, [r4, #6] 14197 ldrh r3, [r6] 14198 movw r6, #65535 14199 adds r3, r3, #1 14200 strh r3, [r4] @ movhi 14201 movs r3, #1 14202 strb r3, [r4, #8] 14203.L1865: 14204 mov r0, r10 14205 bl make_superblock 14206 ldrb r3, [r4, #7] @ zero_extendqisi2 14207 ldrh r2, [r4] 14208 cbnz r3, .L1866 14209 ldr r3, [r8] 14210 strh r6, [r3, r2, lsl #1] @ movhi 14211 ldrh r3, [r4] 14212 adds r3, r3, #1 14213 strh r3, [r4] @ movhi 14214 b .L1865 14215.L1866: 14216 ldr r3, [r5] 14217 ldrh r1, [r4, #4] 14218 str r3, [r4, #12] 14219 adds r3, r3, #1 14220 str r3, [r5] 14221 movw r4, #65535 14222 ldr r3, [r8] 14223 strh r1, [r3, r2, lsl #1] @ movhi 14224 ldr r3, .L1871+88 14225 strh r4, [r3] @ movhi 14226 bl FtlFreeSysBlkQueueOut 14227 ldr r3, .L1871+92 14228 movs r2, #0 14229 strh r2, [r3, #2] @ movhi 14230 ldr r2, [r7] 14231 strh r0, [r3] @ movhi 14232 strh r4, [r3, #4] @ movhi 14233 strh r2, [r3, #6] @ movhi 14234 ldr r2, [r5] 14235 str r2, [r3, #8] 14236 adds r2, r2, #1 14237 str r2, [r5] 14238 bl FtlVpcTblFlush 14239 bl FtlSysBlkInit 14240 cbnz r0, .L1867 14241 ldr r3, .L1871+96 14242 movs r2, #1 14243 str r2, [r3] 14244.L1867: 14245 movs r0, #0 14246 add sp, sp, #16 14247 @ sp needed 14248 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14249.L1872: 14250 .align 2 14251.L1871: 14252 .word .LANCHOR4 14253 .word .LANCHOR71 14254 .word .LANCHOR70 14255 .word .LANCHOR12 14256 .word .LANCHOR118 14257 .word .LANCHOR119 14258 .word .LANCHOR5 14259 .word .LANCHOR3 14260 .word .LANCHOR111 14261 .word .LANCHOR61 14262 .word .LANCHOR7 14263 .word .LANCHOR78 14264 .word .LANCHOR15 14265 .word .LANCHOR152 14266 .word .LANCHOR19 14267 .word .LANCHOR51 14268 .word .LANCHOR34 14269 .word .LANCHOR59 14270 .word .LANCHOR80 14271 .word .LANCHOR1 14272 .word .LANCHOR31 14273 .word .LANCHOR52 14274 .word .LANCHOR53 14275 .word .LANCHOR79 14276 .word .LANCHOR86 14277 .word 168778952 14278 .word .LANCHOR6 14279 .word .LANCHOR42 14280 .size ftl_low_format, .-ftl_low_format 14281 .section .text.ftl_memcmp,"ax",%progbits 14282 .align 1 14283 .global ftl_memcmp 14284 .syntax unified 14285 .thumb 14286 .thumb_func 14287 .fpu softvfp 14288 .type ftl_memcmp, %function 14289ftl_memcmp: 14290 @ args = 0, pretend = 0, frame = 0 14291 @ frame_needed = 0, uses_anonymous_args = 0 14292 @ link register save eliminated. 14293 b memcmp 14294 .size ftl_memcmp, .-ftl_memcmp 14295 .section .text.FtlWriteToIDB,"ax",%progbits 14296 .align 1 14297 .global FtlWriteToIDB 14298 .syntax unified 14299 .thumb 14300 .thumb_func 14301 .fpu softvfp 14302 .type FtlWriteToIDB, %function 14303FtlWriteToIDB: 14304 @ args = 0, pretend = 0, frame = 104 14305 @ frame_needed = 0, uses_anonymous_args = 0 14306 push {r4, r5, r6, r7, r8, r10, fp, lr} 14307 add r8, r1, r0 14308 add r10, r8, #-1 14309 sub sp, sp, #112 14310 cmp r10, #63 14311 mov r4, r0 14312 mov r6, r1 14313 mov r7, r2 14314 ldr r5, .L1946 14315 bls .L1875 14316 cmp r0, #576 14317 bcc .L1876 14318.L1875: 14319 ldr r3, [r5] 14320 cbnz r3, .L1877 14321.L1945: 14322 movs r4, #0 14323 b .L1874 14324.L1877: 14325 ldr r3, .L1946+4 14326 ldr r3, [r3] 14327 ldr r2, [r3] 14328 str r3, [sp, #12] 14329 ldr r3, .L1946+8 14330 cmp r2, r3 14331 bne .L1879 14332 ldr r3, .L1946+12 14333 movs r2, #0 14334 ldrh r1, [r3, #10] 14335 ldr r3, [sp, #12] 14336 add r0, r3, #262144 14337 movw r3, #65535 14338.L1883: 14339 ldr r4, [r0, #-4] 14340 cbnz r4, .L1880 14341 ldr r4, [sp, #12] 14342 subs r3, r3, #1 14343 ldr r4, [r4, r2, lsl #2] 14344 adds r2, r2, #1 14345 cmp r2, #4096 14346 it hi 14347 movhi r2, #0 14348 cmp r3, #4096 14349 str r4, [r0, #-4]! 14350 bne .L1883 14351 mov r3, #512 14352 b .L1942 14353.L1880: 14354 adds r3, r3, #127 14355 lsrs r3, r3, #7 14356.L1942: 14357 str r3, [sp, #16] 14358 lsls r1, r1, #2 14359 ldr r3, [sp, #16] 14360 uxth r1, r1 14361 ldr r4, .L1946+16 14362 adds r0, r3, #4 14363 bl __aeabi_uidiv 14364 adds r3, r0, #1 14365 str r3, [sp, #24] 14366 ldr r3, [sp, #16] 14367 lsls r3, r3, #7 14368 str r3, [sp, #36] 14369 movs r3, #0 14370 mov r10, r3 14371 str r3, [sp, #20] 14372.L1906: 14373 ldr r3, .L1946+20 14374 mov r2, #512 14375 movs r1, #0 14376 ldr r0, [r3] 14377 bl memset 14378 ldr r3, .L1946+12 14379 ldrh r6, [r3, #10] 14380 ldr r3, [r4, #16] 14381 mul fp, r10, r6 14382 cmp r3, #0 14383 beq .L1914 14384 ldr r3, [r4, #20] 14385 cmp r3, #0 14386 ite eq 14387 moveq r3, #6 14388 movne r3, #9 14389.L1943: 14390 str r3, [sp, #28] 14391 mov r1, fp 14392 ldr r3, .L1946+16 14393 movs r0, #0 14394 ldr r3, [r3, #4] 14395 blx r3 14396 ldr r3, [sp, #24] 14397 cmp r3, #1 14398 beq .L1885 14399 ldr r3, .L1946+16 14400 add r1, r6, fp 14401 movs r0, #0 14402 ldr r3, [r3, #4] 14403 blx r3 14404.L1885: 14405 ldr r3, [sp, #28] 14406 cmp r3, #9 14407 bne .L1916 14408 ldr r3, .L1946+20 14409 mov r2, #1024 14410 movs r1, #0 14411 ldr r5, [r3] 14412 mov r0, r5 14413 bl ftl_memset 14414 ldr r2, .L1946+24 14415 movs r3, #12 14416 add r1, r5, #11 14417 add r0, r5, #23 14418 stm r5, {r2, r3} 14419 movs r2, #4 14420 strb r2, [r5, #17] 14421 movs r3, #0 14422 ldr r2, .L1946+12 14423 str r3, [r5, #12] 14424 strb r3, [r5, #16] 14425 ldrh r2, [r2, #10] 14426 strb r3, [r5, #20] 14427 strh r3, [r5, #22] @ movhi 14428 ldr r3, .L1946+28 14429 strh r2, [r5, #18] @ movhi 14430 movs r2, #16 14431 strb r2, [r5, #21] 14432.L1887: 14433 lsrs r2, r3, #2 14434 ldrb ip, [r1, #1]! @ zero_extendqisi2 14435 add r2, r2, r3, lsl #5 14436 cmp r0, r1 14437 add r2, r2, ip 14438 eor r3, r3, r2 14439 bne .L1887 14440 str r3, [r5, #8] 14441.L1886: 14442 ldr r3, [sp, #24] 14443 mov r8, fp 14444 muls r3, r6, r3 14445 movs r6, #0 14446 str r3, [sp, #40] 14447 ldr r3, [sp, #12] 14448 str r3, [sp, #32] 14449.L1888: 14450 ldr r3, [sp, #40] 14451 cmp r6, r3 14452 beq .L1895 14453 ldr r3, [sp, #28] 14454 cmp r3, #9 14455 itet ne 14456 addne r3, fp, r6 14457 addeq r3, r8, #1 14458 lslne r3, r3, #2 14459 str r3, [sp, #48] 14460 movw r3, #61424 14461 str r3, [sp, #52] 14462 cmp r6, #0 14463 bne .L1891 14464 ldr r3, [sp, #28] 14465 cmp r3, #9 14466 bne .L1891 14467 ldr r3, [r4, #16] 14468 movs r0, #70 14469 blx r3 14470 add r3, sp, #48 14471 mov r2, r5 14472 mov r1, fp 14473 mov r0, r6 14474 ldr r7, [r4, #8] 14475 blx r7 14476 ldr r2, .L1946+12 14477 str r0, [sp, #44] 14478 ldr r3, [r4, #16] 14479 ldrb r0, [r2, #22] @ zero_extendqisi2 14480 blx r3 14481 ldr r2, [sp, #44] 14482 adds r2, r2, #1 14483 bne .L1892 14484.L1895: 14485 ldr r3, .L1946+20 14486 ldr r2, [r4, #16] 14487 ldr r6, [r3] 14488 ldr r3, .L1946+12 14489 ldrb r3, [r3, #14] @ zero_extendqisi2 14490 str r3, [sp, #28] 14491 ldr r3, .L1946+12 14492 ldrh r3, [r3, #10] 14493 mul r8, r10, r3 14494 cmp r2, #0 14495 bne .L1893 14496 mov fp, #6 14497.L1894: 14498 ldr r2, [sp, #24] 14499 movs r5, #0 14500 muls r3, r2, r3 14501 str r3, [sp, #32] 14502.L1897: 14503 ldr r3, [sp, #32] 14504 cmp r5, r3 14505 beq .L1901 14506 cmp r5, #0 14507 bne .L1898 14508 cmp fp, #9 14509 bne .L1898 14510 ldr r3, [r4, #16] 14511 movs r0, #70 14512 blx r3 14513 ldr r3, [r4, #20] 14514 movs r0, #2 14515 blx r3 14516 mov r2, r6 14517 mov r1, r8 14518 add r3, sp, #48 14519 mov r0, r5 14520 ldr r7, [r4, #12] 14521 blx r7 14522 ldr r3, [r4, #20] 14523 ldr r0, [sp, #28] 14524 blx r3 14525 ldr r2, .L1946+12 14526 ldr r3, [r4, #16] 14527 ldrb r0, [r2, #22] @ zero_extendqisi2 14528 blx r3 14529 ldr r3, [r6] 14530 ldr r2, .L1946+24 14531 cmp r3, r2 14532 beq .L1899 14533.L1901: 14534 ldr r3, .L1946+20 14535 movs r5, #0 14536 ldr r1, [sp, #12] 14537 ldr r0, [r3] 14538.L1900: 14539 mov r8, r1 14540 ldr r2, [r0, r5, lsl #2] 14541 ldr r3, [r8] 14542 lsls r6, r5, #2 14543 adds r1, r1, #4 14544 cmp r2, r3 14545 beq .L1903 14546 mov r2, #512 14547 movs r1, #0 14548 bl memset 14549 ldr r3, .L1946+20 14550 mov r1, r10 14551 ldr r0, .L1946+32 14552 ldr r2, [r3] 14553 str r5, [sp] 14554 ldr r3, [r8] 14555 ldr r2, [r2, r6] 14556 bl printf 14557 ldr r3, .L1946+12 14558 movs r0, #0 14559 ldrh r1, [r3, #10] 14560 ldr r3, [r4, #4] 14561 mul r1, r10, r1 14562 blx r3 14563.L1904: 14564 ldr r3, [sp, #24] 14565 add r10, r10, r3 14566 cmp r10, #15 14567 bls .L1906 14568 ldr r3, [sp, #20] 14569 cbnz r3, .L1907 14570.L1879: 14571 mov r3, #-1 14572 str r3, [sp, #16] 14573.L1907: 14574 ldr r3, .L1946 14575 movs r2, #0 14576 ldr r4, [sp, #16] 14577 str r2, [r3] 14578 ldr r3, .L1946+4 14579 ldr r0, [r3] 14580 bl free 14581 ldr r3, .L1946+20 14582 ldr r0, [r3] 14583 bl free 14584.L1874: 14585 mov r0, r4 14586 add sp, sp, #112 14587 @ sp needed 14588 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14589.L1914: 14590 movs r3, #6 14591 b .L1943 14592.L1916: 14593 movs r5, #0 14594 b .L1886 14595.L1891: 14596 add r3, sp, #48 14597 ldr r2, [sp, #32] 14598 mov r1, r8 14599 movs r0, #0 14600 ldr r7, [r4, #8] 14601 blx r7 14602 adds r0, r0, #1 14603 beq .L1895 14604 ldr r3, [sp, #32] 14605 add r3, r3, #2048 14606 str r3, [sp, #32] 14607.L1892: 14608 adds r6, r6, #1 14609 add r8, r8, #1 14610 b .L1888 14611.L1893: 14612 ldr r2, [r4, #20] 14613 cmp r2, #0 14614 ite eq 14615 moveq fp, #6 14616 movne fp, #9 14617 b .L1894 14618.L1947: 14619 .align 2 14620.L1946: 14621 .word .LANCHOR184 14622 .word .LANCHOR185 14623 .word -52655045 14624 .word .LANCHOR0 14625 .word .LANCHOR105 14626 .word .LANCHOR186 14627 .word 1179535694 14628 .word 1204201446 14629 .word .LC114 14630.L1898: 14631 add r3, sp, #48 14632 mov r2, r6 14633 add r1, r8, r5 14634 movs r0, #0 14635 ldr r7, [r4, #12] 14636 blx r7 14637 adds r0, r0, #1 14638 beq .L1901 14639 ldr r2, [sp, #52] 14640 movw r3, #61424 14641 cmp r2, r3 14642 bne .L1901 14643 add r6, r6, #2048 14644.L1899: 14645 adds r5, r5, #1 14646 b .L1897 14647.L1903: 14648 ldr r3, [sp, #36] 14649 adds r5, r5, #1 14650 cmp r5, r3 14651 bne .L1900 14652 ldr r3, [sp, #20] 14653 adds r3, r3, #1 14654 cmp r3, #5 14655 str r3, [sp, #20] 14656 bls .L1904 14657 b .L1907 14658.L1876: 14659 cmp r0, #64 14660 bne .L1908 14661 ldr fp, .L1948+4 14662 mov r0, #262144 14663 bl ftl_malloc 14664 str r0, [fp] 14665 mov r0, #262144 14666 bl ftl_malloc 14667 ldr r3, .L1948 14668 str r0, [r3] 14669 ldr r3, [fp] 14670 cbz r3, .L1909 14671 cbz r0, .L1909 14672 movs r2, #1 14673 movs r1, #0 14674 str r2, [r5] 14675 mov r0, r3 14676 mov r2, #262144 14677 bl ftl_memset 14678.L1908: 14679 ldr r3, [r5] 14680 cmp r3, #0 14681 beq .L1945 14682 ldr r3, .L1948+4 14683 cmp r4, #63 14684 iteee hi 14685 ldrhi r5, .L1948+8 14686 rsbls r4, r4, #64 14687 subls r6, r6, r4 14688 addls r7, r7, r4, lsl #9 14689 ldr r1, [r3] 14690 mov r2, #262144 14691 it hi 14692 addhi r5, r5, r4 14693 ldr r0, .L1948+12 14694 ite ls 14695 movls r5, r1 14696 addhi r5, r1, r5, lsl #9 14697 cmp r10, #576 14698 itt cs 14699 subcs r6, r6, r8 14700 subcs r6, r6, #446 14701 mov r3, r5 14702 str r6, [sp] 14703 bl printf 14704 lsls r2, r6, #9 14705 mov r1, r7 14706 mov r0, r5 14707 bl ftl_memcpy 14708 b .L1945 14709.L1909: 14710 ldr r1, .L1948+16 14711 ldr r0, .L1948+20 14712 bl printf 14713 b .L1908 14714.L1949: 14715 .align 2 14716.L1948: 14717 .word .LANCHOR186 14718 .word .LANCHOR185 14719 .word 8388544 14720 .word .LC116 14721 .word .LANCHOR187 14722 .word .LC115 14723 .size FtlWriteToIDB, .-FtlWriteToIDB 14724 .section .text.sftl_write,"ax",%progbits 14725 .align 1 14726 .global sftl_write 14727 .syntax unified 14728 .thumb 14729 .thumb_func 14730 .fpu softvfp 14731 .type sftl_write, %function 14732sftl_write: 14733 @ args = 0, pretend = 0, frame = 0 14734 @ frame_needed = 0, uses_anonymous_args = 0 14735 push {r4, r5, r6, lr} 14736 mov r5, r1 14737 mov r6, r2 14738 mov r4, r0 14739 bl FtlWriteToIDB 14740 mov r3, r6 14741 mov r2, r5 14742 mov r1, r4 14743 movs r0, #0 14744 pop {r4, r5, r6, lr} 14745 b FtlWrite 14746 .size sftl_write, .-sftl_write 14747 .global g_nand_ops 14748 .global g_nand_phy_info 14749 .global gc_ink_free_return_value 14750 .global check_vpc_table 14751 .global FtlUpdateVaildLpnCount 14752 .global g_ect_tbl_power_up_flush 14753 .global power_up_flag 14754 .global gFtlInitStatus 14755 .global DeviceCapacity 14756 .global g_power_lost_recovery_flag 14757 .global c_mlc_erase_count_value 14758 .global g_recovery_ppa_tbl 14759 .global g_recovery_page_min_ver 14760 .global g_recovery_page_num 14761 .global sftl_nand_check_spare_buf 14762 .global sftl_temp_buf 14763 .global sftl_nand_check_buf 14764 .global g_cur_erase_blk 14765 .global g_gc_skip_write_count 14766 .global g_gc_head_data_block_count 14767 .global g_gc_head_data_block 14768 .global g_ftl_nand_free_count 14769 .global g_in_swl_replace 14770 .global g_in_gc_progress 14771 .global g_max_erase_count 14772 .global g_totle_sys_slc_erase_count 14773 .global g_totle_slc_erase_count 14774 .global g_min_erase_count 14775 .global g_totle_avg_erase_count 14776 .global g_totle_mlc_erase_count 14777 .global g_totle_l2p_write_count 14778 .global g_totle_cache_write_count 14779 .global g_tmp_data_superblock_id 14780 .global g_totle_read_page_count 14781 .global g_totle_discard_page_count 14782 .global g_totle_read_sector 14783 .global g_totle_write_sector 14784 .global g_totle_write_page_count 14785 .global g_totle_gc_page_count 14786 .global g_gc_blk_index 14787 .global g_gc_merge_free_blk_threshold 14788 .global g_gc_free_blk_threshold 14789 .global g_gc_bad_block_temp_tbl 14790 .global g_gc_bad_block_gc_index 14791 .global g_gc_bad_block_temp_num 14792 .global g_gc_next_blk_1 14793 .global g_gc_next_blk 14794 .global g_gc_cur_blk_max_valid_pages 14795 .global g_gc_cur_blk_valid_pages 14796 .global g_gc_page_offset 14797 .global g_gc_blk_num 14798 .global p_gc_blk_tbl 14799 .global p_gc_page_info 14800 .global g_sys_ext_data 14801 .global g_sys_save_data 14802 .global gp_last_act_superblock 14803 .global g_gc_superblock 14804 .global g_gc_temp_superblock 14805 .global g_buffer_superblock 14806 .global g_active_superblock 14807 .global g_num_data_superblocks 14808 .global g_num_free_superblocks 14809 .global p_data_block_list_tail 14810 .global p_data_block_list_head 14811 .global p_free_data_block_list_head 14812 .global p_data_block_list_table 14813 .global g_l2p_last_update_region_id 14814 .global p_l2p_map_buf 14815 .global p_l2p_ram_map 14816 .global g_totle_vendor_block 14817 .global p_vendor_region_ppn_table 14818 .global p_vendor_block_ver_table 14819 .global p_vendor_block_valid_page_count 14820 .global p_vendor_block_table 14821 .global g_totle_map_block 14822 .global p_map_region_ppn_table 14823 .global p_map_block_ver_table 14824 .global p_map_block_valid_page_count 14825 .global p_map_block_table 14826 .global p_blk_mode_table 14827 .global p_valid_page_count_check_table 14828 .global p_valid_page_count_table 14829 .global g_totle_swl_count 14830 .global p_swl_mul_table 14831 .global p_erase_count_table 14832 .global g_ect_tbl_info_size 14833 .global gp_ect_tbl_info 14834 .global g_gc_num_req 14835 .global c_gc_page_buf_num 14836 .global gp_gc_page_buf_info 14837 .global p_gc_data_buf 14838 .global p_gc_spare_buf 14839 .global p_io_spare_buf 14840 .global p_io_data_buf_1 14841 .global p_io_data_buf_0 14842 .global p_sys_spare_buf 14843 .global p_vendor_data_buf 14844 .global p_sys_data_buf_1 14845 .global p_sys_data_buf 14846 .global p_plane_order_table 14847 .global req_gc_dst 14848 .global req_gc 14849 .global req_erase 14850 .global req_prgm 14851 .global req_read 14852 .global req_sys 14853 .global gVendorBlkInfo 14854 .global gL2pMapInfo 14855 .global gSysFreeQueue 14856 .global gSysInfo 14857 .global gBbtInfo 14858 .global g_MaxLbn 14859 .global g_VaildLpn 14860 .global g_MaxLpn 14861 .global g_MaxLbaSector 14862 .global g_GlobalDataVersion 14863 .global g_GlobalSysVersion 14864 .global ftl_gc_temp_power_lost_recovery_flag 14865 .global c_ftl_nand_max_data_blks 14866 .global c_ftl_nand_data_op_blks_per_plane 14867 .global c_ftl_nand_data_blks_per_plane 14868 .global c_ftl_nand_max_sys_blks 14869 .global c_ftl_nand_init_sys_blks_per_plane 14870 .global c_ftl_nand_sys_blks_per_plane 14871 .global c_ftl_vendor_part_size 14872 .global c_ftl_nand_max_vendor_blks 14873 .global c_ftl_nand_max_map_blks 14874 .global c_ftl_nand_map_blks_per_plane 14875 .global c_ftl_nand_vendor_region_num 14876 .global c_ftl_nand_l2pmap_ram_region_num 14877 .global c_ftl_nand_map_region_num 14878 .global c_ftl_nand_totle_phy_blks 14879 .global c_ftl_nand_reserved_blks 14880 .global c_ftl_nand_byte_pre_oob 14881 .global c_ftl_nand_byte_pre_page 14882 .global c_ftl_nand_sec_pre_page_shift 14883 .global c_ftl_nand_sec_pre_page 14884 .global c_ftl_nand_page_pre_super_blk 14885 .global c_ftl_nand_page_pre_slc_blk 14886 .global c_ftl_nand_page_pre_blk 14887 .global c_ftl_nand_bbm_buf_size 14888 .global c_ftl_nand_ext_blk_pre_plane 14889 .global c_ftl_nand_blk_pre_plane 14890 .global c_ftl_nand_planes_num 14891 .global c_ftl_nand_blks_per_die_shift 14892 .global c_ftl_nand_blks_per_die 14893 .global c_ftl_nand_planes_per_die 14894 .global c_ftl_nand_die_num 14895 .global c_ftl_nand_type 14896 .section .bss.DeviceCapacity,"aw",%nobits 14897 .align 2 14898 .set .LANCHOR26,. + 0 14899 .type DeviceCapacity, %object 14900 .size DeviceCapacity, 4 14901DeviceCapacity: 14902 .space 4 14903 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 14904 .align 1 14905 .set .LANCHOR58,. + 0 14906 .type FtlUpdateVaildLpnCount, %object 14907 .size FtlUpdateVaildLpnCount, 2 14908FtlUpdateVaildLpnCount: 14909 .space 2 14910 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 14911 .align 1 14912 .set .LANCHOR137,. + 0 14913 .type c_ftl_nand_bbm_buf_size, %object 14914 .size c_ftl_nand_bbm_buf_size, 2 14915c_ftl_nand_bbm_buf_size: 14916 .space 2 14917 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 14918 .align 1 14919 .set .LANCHOR6,. + 0 14920 .type c_ftl_nand_blk_pre_plane, %object 14921 .size c_ftl_nand_blk_pre_plane, 2 14922c_ftl_nand_blk_pre_plane: 14923 .space 2 14924 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 14925 .align 1 14926 .set .LANCHOR17,. + 0 14927 .type c_ftl_nand_blks_per_die, %object 14928 .size c_ftl_nand_blks_per_die, 2 14929c_ftl_nand_blks_per_die: 14930 .space 2 14931 .section .bss.c_ftl_nand_blks_per_die_shift,"aw",%nobits 14932 .align 1 14933 .set .LANCHOR18,. + 0 14934 .type c_ftl_nand_blks_per_die_shift, %object 14935 .size c_ftl_nand_blks_per_die_shift, 2 14936c_ftl_nand_blks_per_die_shift: 14937 .space 2 14938 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 14939 .align 1 14940 .set .LANCHOR24,. + 0 14941 .type c_ftl_nand_byte_pre_oob, %object 14942 .size c_ftl_nand_byte_pre_oob, 2 14943c_ftl_nand_byte_pre_oob: 14944 .space 2 14945 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 14946 .align 1 14947 .set .LANCHOR23,. + 0 14948 .type c_ftl_nand_byte_pre_page, %object 14949 .size c_ftl_nand_byte_pre_page, 2 14950c_ftl_nand_byte_pre_page: 14951 .space 2 14952 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 14953 .align 1 14954 .set .LANCHOR5,. + 0 14955 .type c_ftl_nand_data_blks_per_plane, %object 14956 .size c_ftl_nand_data_blks_per_plane, 2 14957c_ftl_nand_data_blks_per_plane: 14958 .space 2 14959 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 14960 .align 1 14961 .set .LANCHOR78,. + 0 14962 .type c_ftl_nand_data_op_blks_per_plane, %object 14963 .size c_ftl_nand_data_op_blks_per_plane, 2 14964c_ftl_nand_data_op_blks_per_plane: 14965 .space 2 14966 .section .bss.c_ftl_nand_die_num,"aw",%nobits 14967 .align 1 14968 .set .LANCHOR10,. + 0 14969 .type c_ftl_nand_die_num, %object 14970 .size c_ftl_nand_die_num, 2 14971c_ftl_nand_die_num: 14972 .space 2 14973 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 14974 .align 1 14975 .set .LANCHOR15,. + 0 14976 .type c_ftl_nand_ext_blk_pre_plane, %object 14977 .size c_ftl_nand_ext_blk_pre_plane, 2 14978c_ftl_nand_ext_blk_pre_plane: 14979 .space 2 14980 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 14981 .align 2 14982 .set .LANCHOR31,. + 0 14983 .type c_ftl_nand_init_sys_blks_per_plane, %object 14984 .size c_ftl_nand_init_sys_blks_per_plane, 4 14985c_ftl_nand_init_sys_blks_per_plane: 14986 .space 4 14987 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 14988 .align 1 14989 .set .LANCHOR33,. + 0 14990 .type c_ftl_nand_l2pmap_ram_region_num, %object 14991 .size c_ftl_nand_l2pmap_ram_region_num, 2 14992c_ftl_nand_l2pmap_ram_region_num: 14993 .space 2 14994 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 14995 .align 1 14996 .set .LANCHOR29,. + 0 14997 .type c_ftl_nand_map_blks_per_plane, %object 14998 .size c_ftl_nand_map_blks_per_plane, 2 14999c_ftl_nand_map_blks_per_plane: 15000 .space 2 15001 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 15002 .align 1 15003 .set .LANCHOR32,. + 0 15004 .type c_ftl_nand_map_region_num, %object 15005 .size c_ftl_nand_map_region_num, 2 15006c_ftl_nand_map_region_num: 15007 .space 2 15008 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 15009 .align 2 15010 .set .LANCHOR7,. + 0 15011 .type c_ftl_nand_max_data_blks, %object 15012 .size c_ftl_nand_max_data_blks, 4 15013c_ftl_nand_max_data_blks: 15014 .space 4 15015 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 15016 .align 2 15017 .set .LANCHOR30,. + 0 15018 .type c_ftl_nand_max_map_blks, %object 15019 .size c_ftl_nand_max_map_blks, 4 15020c_ftl_nand_max_map_blks: 15021 .space 4 15022 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 15023 .align 2 15024 .set .LANCHOR4,. + 0 15025 .type c_ftl_nand_max_sys_blks, %object 15026 .size c_ftl_nand_max_sys_blks, 4 15027c_ftl_nand_max_sys_blks: 15028 .space 4 15029 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 15030 .align 1 15031 .set .LANCHOR27,. + 0 15032 .type c_ftl_nand_max_vendor_blks, %object 15033 .size c_ftl_nand_max_vendor_blks, 2 15034c_ftl_nand_max_vendor_blks: 15035 .space 2 15036 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 15037 .align 1 15038 .set .LANCHOR19,. + 0 15039 .type c_ftl_nand_page_pre_blk, %object 15040 .size c_ftl_nand_page_pre_blk, 2 15041c_ftl_nand_page_pre_blk: 15042 .space 2 15043 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 15044 .align 1 15045 .set .LANCHOR20,. + 0 15046 .type c_ftl_nand_page_pre_slc_blk, %object 15047 .size c_ftl_nand_page_pre_slc_blk, 2 15048c_ftl_nand_page_pre_slc_blk: 15049 .space 2 15050 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 15051 .align 1 15052 .set .LANCHOR21,. + 0 15053 .type c_ftl_nand_page_pre_super_blk, %object 15054 .size c_ftl_nand_page_pre_super_blk, 2 15055c_ftl_nand_page_pre_super_blk: 15056 .space 2 15057 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 15058 .align 1 15059 .set .LANCHOR3,. + 0 15060 .type c_ftl_nand_planes_num, %object 15061 .size c_ftl_nand_planes_num, 2 15062c_ftl_nand_planes_num: 15063 .space 2 15064 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 15065 .align 1 15066 .set .LANCHOR11,. + 0 15067 .type c_ftl_nand_planes_per_die, %object 15068 .size c_ftl_nand_planes_per_die, 2 15069c_ftl_nand_planes_per_die: 15070 .space 2 15071 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 15072 .align 1 15073 .set .LANCHOR25,. + 0 15074 .type c_ftl_nand_reserved_blks, %object 15075 .size c_ftl_nand_reserved_blks, 2 15076c_ftl_nand_reserved_blks: 15077 .space 2 15078 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 15079 .align 1 15080 .set .LANCHOR12,. + 0 15081 .type c_ftl_nand_sec_pre_page, %object 15082 .size c_ftl_nand_sec_pre_page, 2 15083c_ftl_nand_sec_pre_page: 15084 .space 2 15085 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 15086 .align 1 15087 .set .LANCHOR22,. + 0 15088 .type c_ftl_nand_sec_pre_page_shift, %object 15089 .size c_ftl_nand_sec_pre_page_shift, 2 15090c_ftl_nand_sec_pre_page_shift: 15091 .space 2 15092 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 15093 .align 2 15094 .set .LANCHOR2,. + 0 15095 .type c_ftl_nand_sys_blks_per_plane, %object 15096 .size c_ftl_nand_sys_blks_per_plane, 4 15097c_ftl_nand_sys_blks_per_plane: 15098 .space 4 15099 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 15100 .align 2 15101 .set .LANCHOR8,. + 0 15102 .type c_ftl_nand_totle_phy_blks, %object 15103 .size c_ftl_nand_totle_phy_blks, 4 15104c_ftl_nand_totle_phy_blks: 15105 .space 4 15106 .section .bss.c_ftl_nand_type,"aw",%nobits 15107 .align 1 15108 .set .LANCHOR9,. + 0 15109 .type c_ftl_nand_type, %object 15110 .size c_ftl_nand_type, 2 15111c_ftl_nand_type: 15112 .space 2 15113 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 15114 .align 1 15115 .set .LANCHOR28,. + 0 15116 .type c_ftl_nand_vendor_region_num, %object 15117 .size c_ftl_nand_vendor_region_num, 2 15118c_ftl_nand_vendor_region_num: 15119 .space 2 15120 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 15121 .align 1 15122 .set .LANCHOR16,. + 0 15123 .type c_ftl_vendor_part_size, %object 15124 .size c_ftl_vendor_part_size, 2 15125c_ftl_vendor_part_size: 15126 .space 2 15127 .section .bss.c_gc_page_buf_num,"aw",%nobits 15128 .align 2 15129 .set .LANCHOR94,. + 0 15130 .type c_gc_page_buf_num, %object 15131 .size c_gc_page_buf_num, 4 15132c_gc_page_buf_num: 15133 .space 4 15134 .section .bss.c_mlc_erase_count_value,"aw",%nobits 15135 .align 1 15136 .set .LANCHOR14,. + 0 15137 .type c_mlc_erase_count_value, %object 15138 .size c_mlc_erase_count_value, 2 15139c_mlc_erase_count_value: 15140 .space 2 15141 .section .bss.check_vpc_table,"aw",%nobits 15142 .align 1 15143 .type check_vpc_table, %object 15144 .size check_vpc_table, 16384 15145check_vpc_table: 15146 .space 16384 15147 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 15148 .align 2 15149 .set .LANCHOR144,. + 0 15150 .type ftl_gc_temp_power_lost_recovery_flag, %object 15151 .size ftl_gc_temp_power_lost_recovery_flag, 4 15152ftl_gc_temp_power_lost_recovery_flag: 15153 .space 4 15154 .section .bss.gBbtInfo,"aw",%nobits 15155 .align 2 15156 .set .LANCHOR37,. + 0 15157 .type gBbtInfo, %object 15158 .size gBbtInfo, 60 15159gBbtInfo: 15160 .space 60 15161 .section .bss.gL2pMapInfo,"aw",%nobits 15162 .align 2 15163 .set .LANCHOR140,. + 0 15164 .type gL2pMapInfo, %object 15165 .size gL2pMapInfo, 40 15166gL2pMapInfo: 15167 .space 40 15168 .section .bss.gSysFreeQueue,"aw",%nobits 15169 .align 1 15170 .set .LANCHOR38,. + 0 15171 .type gSysFreeQueue, %object 15172 .size gSysFreeQueue, 2056 15173gSysFreeQueue: 15174 .space 2056 15175 .section .bss.gSysInfo,"aw",%nobits 15176 .align 2 15177 .set .LANCHOR79,. + 0 15178 .type gSysInfo, %object 15179 .size gSysInfo, 12 15180gSysInfo: 15181 .space 12 15182 .section .bss.gVendorBlkInfo,"aw",%nobits 15183 .align 2 15184 .set .LANCHOR158,. + 0 15185 .type gVendorBlkInfo, %object 15186 .size gVendorBlkInfo, 40 15187gVendorBlkInfo: 15188 .space 40 15189 .section .bss.g_GlobalDataVersion,"aw",%nobits 15190 .align 2 15191 .set .LANCHOR71,. + 0 15192 .type g_GlobalDataVersion, %object 15193 .size g_GlobalDataVersion, 4 15194g_GlobalDataVersion: 15195 .space 4 15196 .section .bss.g_GlobalSysVersion,"aw",%nobits 15197 .align 2 15198 .set .LANCHOR70,. + 0 15199 .type g_GlobalSysVersion, %object 15200 .size g_GlobalSysVersion, 4 15201g_GlobalSysVersion: 15202 .space 4 15203 .section .bss.g_MaxLbaSector,"aw",%nobits 15204 .align 2 15205 .set .LANCHOR34,. + 0 15206 .type g_MaxLbaSector, %object 15207 .size g_MaxLbaSector, 4 15208g_MaxLbaSector: 15209 .space 4 15210 .section .bss.g_MaxLbn,"aw",%nobits 15211 .align 2 15212 .set .LANCHOR152,. + 0 15213 .type g_MaxLbn, %object 15214 .size g_MaxLbn, 4 15215g_MaxLbn: 15216 .space 4 15217 .section .bss.g_MaxLpn,"aw",%nobits 15218 .align 2 15219 .set .LANCHOR61,. + 0 15220 .type g_MaxLpn, %object 15221 .size g_MaxLpn, 4 15222g_MaxLpn: 15223 .space 4 15224 .section .bss.g_VaildLpn,"aw",%nobits 15225 .align 2 15226 .set .LANCHOR59,. + 0 15227 .type g_VaildLpn, %object 15228 .size g_VaildLpn, 4 15229g_VaildLpn: 15230 .space 4 15231 .section .bss.g_active_superblock,"aw",%nobits 15232 .align 2 15233 .set .LANCHOR51,. + 0 15234 .type g_active_superblock, %object 15235 .size g_active_superblock, 48 15236g_active_superblock: 15237 .space 48 15238 .section .bss.g_buffer_superblock,"aw",%nobits 15239 .align 2 15240 .set .LANCHOR52,. + 0 15241 .type g_buffer_superblock, %object 15242 .size g_buffer_superblock, 48 15243g_buffer_superblock: 15244 .space 48 15245 .section .bss.g_cur_erase_blk,"aw",%nobits 15246 .align 2 15247 .set .LANCHOR111,. + 0 15248 .type g_cur_erase_blk, %object 15249 .size g_cur_erase_blk, 4 15250g_cur_erase_blk: 15251 .space 4 15252 .section .bss.g_ect_tbl_info_size,"aw",%nobits 15253 .align 1 15254 .set .LANCHOR125,. + 0 15255 .type g_ect_tbl_info_size, %object 15256 .size g_ect_tbl_info_size, 2 15257g_ect_tbl_info_size: 15258 .space 2 15259 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 15260 .align 1 15261 .set .LANCHOR170,. + 0 15262 .type g_ect_tbl_power_up_flush, %object 15263 .size g_ect_tbl_power_up_flush, 2 15264g_ect_tbl_power_up_flush: 15265 .space 2 15266 .section .bss.g_ftl_nand_free_count,"aw",%nobits 15267 .align 2 15268 .set .LANCHOR181,. + 0 15269 .type g_ftl_nand_free_count, %object 15270 .size g_ftl_nand_free_count, 4 15271g_ftl_nand_free_count: 15272 .space 4 15273 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 15274 .align 1 15275 .set .LANCHOR103,. + 0 15276 .type g_gc_bad_block_gc_index, %object 15277 .size g_gc_bad_block_gc_index, 2 15278g_gc_bad_block_gc_index: 15279 .space 2 15280 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 15281 .align 1 15282 .set .LANCHOR101,. + 0 15283 .type g_gc_bad_block_temp_num, %object 15284 .size g_gc_bad_block_temp_num, 2 15285g_gc_bad_block_temp_num: 15286 .space 2 15287 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 15288 .align 1 15289 .set .LANCHOR102,. + 0 15290 .type g_gc_bad_block_temp_tbl, %object 15291 .size g_gc_bad_block_temp_tbl, 34 15292g_gc_bad_block_temp_tbl: 15293 .space 34 15294 .section .bss.g_gc_blk_index,"aw",%nobits 15295 .align 1 15296 .set .LANCHOR85,. + 0 15297 .type g_gc_blk_index, %object 15298 .size g_gc_blk_index, 2 15299g_gc_blk_index: 15300 .space 2 15301 .section .bss.g_gc_blk_num,"aw",%nobits 15302 .align 1 15303 .set .LANCHOR96,. + 0 15304 .type g_gc_blk_num, %object 15305 .size g_gc_blk_num, 2 15306g_gc_blk_num: 15307 .space 2 15308 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 15309 .align 1 15310 .set .LANCHOR179,. + 0 15311 .type g_gc_cur_blk_max_valid_pages, %object 15312 .size g_gc_cur_blk_max_valid_pages, 2 15313g_gc_cur_blk_max_valid_pages: 15314 .space 2 15315 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 15316 .align 1 15317 .set .LANCHOR178,. + 0 15318 .type g_gc_cur_blk_valid_pages, %object 15319 .size g_gc_cur_blk_valid_pages, 2 15320g_gc_cur_blk_valid_pages: 15321 .space 2 15322 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 15323 .align 1 15324 .set .LANCHOR82,. + 0 15325 .type g_gc_free_blk_threshold, %object 15326 .size g_gc_free_blk_threshold, 2 15327g_gc_free_blk_threshold: 15328 .space 2 15329 .section .bss.g_gc_head_data_block,"aw",%nobits 15330 .align 2 15331 .set .LANCHOR109,. + 0 15332 .type g_gc_head_data_block, %object 15333 .size g_gc_head_data_block, 4 15334g_gc_head_data_block: 15335 .space 4 15336 .section .bss.g_gc_head_data_block_count,"aw",%nobits 15337 .align 2 15338 .set .LANCHOR110,. + 0 15339 .type g_gc_head_data_block_count, %object 15340 .size g_gc_head_data_block_count, 4 15341g_gc_head_data_block_count: 15342 .space 4 15343 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 15344 .align 1 15345 .set .LANCHOR83,. + 0 15346 .type g_gc_merge_free_blk_threshold, %object 15347 .size g_gc_merge_free_blk_threshold, 2 15348g_gc_merge_free_blk_threshold: 15349 .space 2 15350 .section .bss.g_gc_next_blk,"aw",%nobits 15351 .align 1 15352 .set .LANCHOR99,. + 0 15353 .type g_gc_next_blk, %object 15354 .size g_gc_next_blk, 2 15355g_gc_next_blk: 15356 .space 2 15357 .section .bss.g_gc_next_blk_1,"aw",%nobits 15358 .align 1 15359 .set .LANCHOR100,. + 0 15360 .type g_gc_next_blk_1, %object 15361 .size g_gc_next_blk_1, 2 15362g_gc_next_blk_1: 15363 .space 2 15364 .section .bss.g_gc_num_req,"aw",%nobits 15365 .align 2 15366 .set .LANCHOR89,. + 0 15367 .type g_gc_num_req, %object 15368 .size g_gc_num_req, 4 15369g_gc_num_req: 15370 .space 4 15371 .section .bss.g_gc_page_offset,"aw",%nobits 15372 .align 1 15373 .set .LANCHOR97,. + 0 15374 .type g_gc_page_offset, %object 15375 .size g_gc_page_offset, 2 15376g_gc_page_offset: 15377 .space 2 15378 .section .bss.g_gc_skip_write_count,"aw",%nobits 15379 .align 2 15380 .set .LANCHOR84,. + 0 15381 .type g_gc_skip_write_count, %object 15382 .size g_gc_skip_write_count, 4 15383g_gc_skip_write_count: 15384 .space 4 15385 .section .bss.g_gc_superblock,"aw",%nobits 15386 .align 2 15387 .set .LANCHOR80,. + 0 15388 .type g_gc_superblock, %object 15389 .size g_gc_superblock, 48 15390g_gc_superblock: 15391 .space 48 15392 .section .bss.g_gc_temp_superblock,"aw",%nobits 15393 .align 2 15394 .set .LANCHOR53,. + 0 15395 .type g_gc_temp_superblock, %object 15396 .size g_gc_temp_superblock, 48 15397g_gc_temp_superblock: 15398 .space 48 15399 .section .bss.g_in_gc_progress,"aw",%nobits 15400 .align 2 15401 .set .LANCHOR108,. + 0 15402 .type g_in_gc_progress, %object 15403 .size g_in_gc_progress, 4 15404g_in_gc_progress: 15405 .space 4 15406 .section .bss.g_in_swl_replace,"aw",%nobits 15407 .align 2 15408 .set .LANCHOR87,. + 0 15409 .type g_in_swl_replace, %object 15410 .size g_in_swl_replace, 4 15411g_in_swl_replace: 15412 .space 4 15413 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 15414 .align 1 15415 .set .LANCHOR56,. + 0 15416 .type g_l2p_last_update_region_id, %object 15417 .size g_l2p_last_update_region_id, 2 15418g_l2p_last_update_region_id: 15419 .space 2 15420 .section .bss.g_max_erase_count,"aw",%nobits 15421 .align 2 15422 .set .LANCHOR76,. + 0 15423 .type g_max_erase_count, %object 15424 .size g_max_erase_count, 4 15425g_max_erase_count: 15426 .space 4 15427 .section .bss.g_min_erase_count,"aw",%nobits 15428 .align 2 15429 .set .LANCHOR77,. + 0 15430 .type g_min_erase_count, %object 15431 .size g_min_erase_count, 4 15432g_min_erase_count: 15433 .space 4 15434 .section .bss.g_nand_ops,"aw",%nobits 15435 .align 2 15436 .set .LANCHOR105,. + 0 15437 .type g_nand_ops, %object 15438 .size g_nand_ops, 24 15439g_nand_ops: 15440 .space 24 15441 .section .bss.g_nand_phy_info,"aw",%nobits 15442 .align 1 15443 .set .LANCHOR0,. + 0 15444 .type g_nand_phy_info, %object 15445 .size g_nand_phy_info, 24 15446g_nand_phy_info: 15447 .space 24 15448 .section .bss.g_num_data_superblocks,"aw",%nobits 15449 .align 1 15450 .set .LANCHOR45,. + 0 15451 .type g_num_data_superblocks, %object 15452 .size g_num_data_superblocks, 2 15453g_num_data_superblocks: 15454 .space 2 15455 .section .bss.g_num_free_superblocks,"aw",%nobits 15456 .align 1 15457 .set .LANCHOR48,. + 0 15458 .type g_num_free_superblocks, %object 15459 .size g_num_free_superblocks, 2 15460g_num_free_superblocks: 15461 .space 2 15462 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 15463 .align 1 15464 .set .LANCHOR167,. + 0 15465 .type g_power_lost_recovery_flag, %object 15466 .size g_power_lost_recovery_flag, 2 15467g_power_lost_recovery_flag: 15468 .space 2 15469 .section .bss.g_recovery_page_min_ver,"aw",%nobits 15470 .align 2 15471 .set .LANCHOR145,. + 0 15472 .type g_recovery_page_min_ver, %object 15473 .size g_recovery_page_min_ver, 4 15474g_recovery_page_min_ver: 15475 .space 4 15476 .section .bss.g_recovery_page_num,"aw",%nobits 15477 .align 2 15478 .set .LANCHOR168,. + 0 15479 .type g_recovery_page_num, %object 15480 .size g_recovery_page_num, 4 15481g_recovery_page_num: 15482 .space 4 15483 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 15484 .align 2 15485 .set .LANCHOR169,. + 0 15486 .type g_recovery_ppa_tbl, %object 15487 .size g_recovery_ppa_tbl, 128 15488g_recovery_ppa_tbl: 15489 .space 128 15490 .section .bss.g_sys_ext_data,"aw",%nobits 15491 .align 2 15492 .set .LANCHOR81,. + 0 15493 .type g_sys_ext_data, %object 15494 .size g_sys_ext_data, 512 15495g_sys_ext_data: 15496 .space 512 15497 .section .bss.g_sys_save_data,"aw",%nobits 15498 .align 2 15499 .set .LANCHOR39,. + 0 15500 .type g_sys_save_data, %object 15501 .size g_sys_save_data, 48 15502g_sys_save_data: 15503 .space 48 15504 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 15505 .align 1 15506 .set .LANCHOR142,. + 0 15507 .type g_tmp_data_superblock_id, %object 15508 .size g_tmp_data_superblock_id, 2 15509g_tmp_data_superblock_id: 15510 .space 2 15511 .section .bss.g_totle_avg_erase_count,"aw",%nobits 15512 .align 2 15513 .set .LANCHOR74,. + 0 15514 .type g_totle_avg_erase_count, %object 15515 .size g_totle_avg_erase_count, 4 15516g_totle_avg_erase_count: 15517 .space 4 15518 .section .bss.g_totle_cache_write_count,"aw",%nobits 15519 .align 2 15520 .set .LANCHOR65,. + 0 15521 .type g_totle_cache_write_count, %object 15522 .size g_totle_cache_write_count, 4 15523g_totle_cache_write_count: 15524 .space 4 15525 .section .bss.g_totle_discard_page_count,"aw",%nobits 15526 .align 2 15527 .set .LANCHOR63,. + 0 15528 .type g_totle_discard_page_count, %object 15529 .size g_totle_discard_page_count, 4 15530g_totle_discard_page_count: 15531 .space 4 15532 .section .bss.g_totle_gc_page_count,"aw",%nobits 15533 .align 2 15534 .set .LANCHOR67,. + 0 15535 .type g_totle_gc_page_count, %object 15536 .size g_totle_gc_page_count, 4 15537g_totle_gc_page_count: 15538 .space 4 15539 .section .bss.g_totle_l2p_write_count,"aw",%nobits 15540 .align 2 15541 .set .LANCHOR66,. + 0 15542 .type g_totle_l2p_write_count, %object 15543 .size g_totle_l2p_write_count, 4 15544g_totle_l2p_write_count: 15545 .space 4 15546 .section .bss.g_totle_map_block,"aw",%nobits 15547 .align 1 15548 .set .LANCHOR141,. + 0 15549 .type g_totle_map_block, %object 15550 .size g_totle_map_block, 2 15551g_totle_map_block: 15552 .space 2 15553 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 15554 .align 2 15555 .set .LANCHOR72,. + 0 15556 .type g_totle_mlc_erase_count, %object 15557 .size g_totle_mlc_erase_count, 4 15558g_totle_mlc_erase_count: 15559 .space 4 15560 .section .bss.g_totle_read_page_count,"aw",%nobits 15561 .align 2 15562 .set .LANCHOR62,. + 0 15563 .type g_totle_read_page_count, %object 15564 .size g_totle_read_page_count, 4 15565g_totle_read_page_count: 15566 .space 4 15567 .section .bss.g_totle_read_sector,"aw",%nobits 15568 .align 2 15569 .set .LANCHOR69,. + 0 15570 .type g_totle_read_sector, %object 15571 .size g_totle_read_sector, 4 15572g_totle_read_sector: 15573 .space 4 15574 .section .bss.g_totle_slc_erase_count,"aw",%nobits 15575 .align 2 15576 .set .LANCHOR73,. + 0 15577 .type g_totle_slc_erase_count, %object 15578 .size g_totle_slc_erase_count, 4 15579g_totle_slc_erase_count: 15580 .space 4 15581 .section .bss.g_totle_swl_count,"aw",%nobits 15582 .align 2 15583 .set .LANCHOR143,. + 0 15584 .type g_totle_swl_count, %object 15585 .size g_totle_swl_count, 4 15586g_totle_swl_count: 15587 .space 4 15588 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 15589 .align 2 15590 .set .LANCHOR75,. + 0 15591 .type g_totle_sys_slc_erase_count, %object 15592 .size g_totle_sys_slc_erase_count, 4 15593g_totle_sys_slc_erase_count: 15594 .space 4 15595 .section .bss.g_totle_vendor_block,"aw",%nobits 15596 .align 1 15597 .set .LANCHOR35,. + 0 15598 .type g_totle_vendor_block, %object 15599 .size g_totle_vendor_block, 2 15600g_totle_vendor_block: 15601 .space 2 15602 .section .bss.g_totle_write_page_count,"aw",%nobits 15603 .align 2 15604 .set .LANCHOR64,. + 0 15605 .type g_totle_write_page_count, %object 15606 .size g_totle_write_page_count, 4 15607g_totle_write_page_count: 15608 .space 4 15609 .section .bss.g_totle_write_sector,"aw",%nobits 15610 .align 2 15611 .set .LANCHOR68,. + 0 15612 .type g_totle_write_sector, %object 15613 .size g_totle_write_sector, 4 15614g_totle_write_sector: 15615 .space 4 15616 .section .bss.gc_discard_updated,"aw",%nobits 15617 .align 2 15618 .set .LANCHOR172,. + 0 15619 .type gc_discard_updated, %object 15620 .size gc_discard_updated, 4 15621gc_discard_updated: 15622 .space 4 15623 .section .bss.gc_ink_free_return_value,"aw",%nobits 15624 .align 1 15625 .set .LANCHOR177,. + 0 15626 .type gc_ink_free_return_value, %object 15627 .size gc_ink_free_return_value, 2 15628gc_ink_free_return_value: 15629 .space 2 15630 .section .bss.gp_ect_tbl_info,"aw",%nobits 15631 .align 2 15632 .set .LANCHOR127,. + 0 15633 .type gp_ect_tbl_info, %object 15634 .size gp_ect_tbl_info, 4 15635gp_ect_tbl_info: 15636 .space 4 15637 .section .bss.gp_flash_check_buf,"aw",%nobits 15638 .align 2 15639 .set .LANCHOR186,. + 0 15640 .type gp_flash_check_buf, %object 15641 .size gp_flash_check_buf, 4 15642gp_flash_check_buf: 15643 .space 4 15644 .section .bss.gp_gc_page_buf_info,"aw",%nobits 15645 .align 2 15646 .set .LANCHOR90,. + 0 15647 .type gp_gc_page_buf_info, %object 15648 .size gp_gc_page_buf_info, 4 15649gp_gc_page_buf_info: 15650 .space 4 15651 .section .bss.gp_last_act_superblock,"aw",%nobits 15652 .align 2 15653 .type gp_last_act_superblock, %object 15654 .size gp_last_act_superblock, 4 15655gp_last_act_superblock: 15656 .space 4 15657 .section .bss.idb_buf,"aw",%nobits 15658 .align 2 15659 .set .LANCHOR185,. + 0 15660 .type idb_buf, %object 15661 .size idb_buf, 4 15662idb_buf: 15663 .space 4 15664 .section .bss.idb_need_write_back,"aw",%nobits 15665 .align 2 15666 .set .LANCHOR184,. + 0 15667 .type idb_need_write_back, %object 15668 .size idb_need_write_back, 4 15669idb_need_write_back: 15670 .space 4 15671 .section .bss.p_blk_mode_table,"aw",%nobits 15672 .align 2 15673 .set .LANCHOR1,. + 0 15674 .type p_blk_mode_table, %object 15675 .size p_blk_mode_table, 4 15676p_blk_mode_table: 15677 .space 4 15678 .section .bss.p_data_block_list_head,"aw",%nobits 15679 .align 2 15680 .set .LANCHOR41,. + 0 15681 .type p_data_block_list_head, %object 15682 .size p_data_block_list_head, 4 15683p_data_block_list_head: 15684 .space 4 15685 .section .bss.p_data_block_list_table,"aw",%nobits 15686 .align 2 15687 .set .LANCHOR40,. + 0 15688 .type p_data_block_list_table, %object 15689 .size p_data_block_list_table, 4 15690p_data_block_list_table: 15691 .space 4 15692 .section .bss.p_data_block_list_tail,"aw",%nobits 15693 .align 2 15694 .set .LANCHOR44,. + 0 15695 .type p_data_block_list_tail, %object 15696 .size p_data_block_list_tail, 4 15697p_data_block_list_tail: 15698 .space 4 15699 .section .bss.p_erase_count_table,"aw",%nobits 15700 .align 2 15701 .set .LANCHOR43,. + 0 15702 .type p_erase_count_table, %object 15703 .size p_erase_count_table, 4 15704p_erase_count_table: 15705 .space 4 15706 .section .bss.p_free_data_block_list_head,"aw",%nobits 15707 .align 2 15708 .set .LANCHOR47,. + 0 15709 .type p_free_data_block_list_head, %object 15710 .size p_free_data_block_list_head, 4 15711p_free_data_block_list_head: 15712 .space 4 15713 .section .bss.p_gc_blk_tbl,"aw",%nobits 15714 .align 2 15715 .set .LANCHOR95,. + 0 15716 .type p_gc_blk_tbl, %object 15717 .size p_gc_blk_tbl, 4 15718p_gc_blk_tbl: 15719 .space 4 15720 .section .bss.p_gc_data_buf,"aw",%nobits 15721 .align 2 15722 .set .LANCHOR91,. + 0 15723 .type p_gc_data_buf, %object 15724 .size p_gc_data_buf, 4 15725p_gc_data_buf: 15726 .space 4 15727 .section .bss.p_gc_page_info,"aw",%nobits 15728 .align 2 15729 .set .LANCHOR98,. + 0 15730 .type p_gc_page_info, %object 15731 .size p_gc_page_info, 4 15732p_gc_page_info: 15733 .space 4 15734 .section .bss.p_gc_spare_buf,"aw",%nobits 15735 .align 2 15736 .set .LANCHOR92,. + 0 15737 .type p_gc_spare_buf, %object 15738 .size p_gc_spare_buf, 4 15739p_gc_spare_buf: 15740 .space 4 15741 .section .bss.p_io_data_buf_0,"aw",%nobits 15742 .align 2 15743 .set .LANCHOR118,. + 0 15744 .type p_io_data_buf_0, %object 15745 .size p_io_data_buf_0, 4 15746p_io_data_buf_0: 15747 .space 4 15748 .section .bss.p_io_data_buf_1,"aw",%nobits 15749 .align 2 15750 .set .LANCHOR119,. + 0 15751 .type p_io_data_buf_1, %object 15752 .size p_io_data_buf_1, 4 15753p_io_data_buf_1: 15754 .space 4 15755 .section .bss.p_io_spare_buf,"aw",%nobits 15756 .align 2 15757 .set .LANCHOR124,. + 0 15758 .type p_io_spare_buf, %object 15759 .size p_io_spare_buf, 4 15760p_io_spare_buf: 15761 .space 4 15762 .section .bss.p_l2p_map_buf,"aw",%nobits 15763 .align 2 15764 .set .LANCHOR136,. + 0 15765 .type p_l2p_map_buf, %object 15766 .size p_l2p_map_buf, 4 15767p_l2p_map_buf: 15768 .space 4 15769 .section .bss.p_l2p_ram_map,"aw",%nobits 15770 .align 2 15771 .set .LANCHOR55,. + 0 15772 .type p_l2p_ram_map, %object 15773 .size p_l2p_ram_map, 4 15774p_l2p_ram_map: 15775 .space 4 15776 .section .bss.p_map_block_table,"aw",%nobits 15777 .align 2 15778 .set .LANCHOR129,. + 0 15779 .type p_map_block_table, %object 15780 .size p_map_block_table, 4 15781p_map_block_table: 15782 .space 4 15783 .section .bss.p_map_block_valid_page_count,"aw",%nobits 15784 .align 2 15785 .set .LANCHOR130,. + 0 15786 .type p_map_block_valid_page_count, %object 15787 .size p_map_block_valid_page_count, 4 15788p_map_block_valid_page_count: 15789 .space 4 15790 .section .bss.p_map_block_ver_table,"aw",%nobits 15791 .align 2 15792 .set .LANCHOR135,. + 0 15793 .type p_map_block_ver_table, %object 15794 .size p_map_block_ver_table, 4 15795p_map_block_ver_table: 15796 .space 4 15797 .section .bss.p_map_region_ppn_table,"aw",%nobits 15798 .align 2 15799 .set .LANCHOR134,. + 0 15800 .type p_map_region_ppn_table, %object 15801 .size p_map_region_ppn_table, 4 15802p_map_region_ppn_table: 15803 .space 4 15804 .section .bss.p_plane_order_table,"aw",%nobits 15805 .set .LANCHOR13,. + 0 15806 .type p_plane_order_table, %object 15807 .size p_plane_order_table, 32 15808p_plane_order_table: 15809 .space 32 15810 .section .bss.p_swl_mul_table,"aw",%nobits 15811 .align 2 15812 .set .LANCHOR126,. + 0 15813 .type p_swl_mul_table, %object 15814 .size p_swl_mul_table, 4 15815p_swl_mul_table: 15816 .space 4 15817 .section .bss.p_sys_data_buf,"aw",%nobits 15818 .align 2 15819 .set .LANCHOR115,. + 0 15820 .type p_sys_data_buf, %object 15821 .size p_sys_data_buf, 4 15822p_sys_data_buf: 15823 .space 4 15824 .section .bss.p_sys_data_buf_1,"aw",%nobits 15825 .align 2 15826 .set .LANCHOR116,. + 0 15827 .type p_sys_data_buf_1, %object 15828 .size p_sys_data_buf_1, 4 15829p_sys_data_buf_1: 15830 .space 4 15831 .section .bss.p_sys_spare_buf,"aw",%nobits 15832 .align 2 15833 .set .LANCHOR123,. + 0 15834 .type p_sys_spare_buf, %object 15835 .size p_sys_spare_buf, 4 15836p_sys_spare_buf: 15837 .space 4 15838 .section .bss.p_valid_page_count_check_table,"aw",%nobits 15839 .align 2 15840 .set .LANCHOR128,. + 0 15841 .type p_valid_page_count_check_table, %object 15842 .size p_valid_page_count_check_table, 4 15843p_valid_page_count_check_table: 15844 .space 4 15845 .section .bss.p_valid_page_count_table,"aw",%nobits 15846 .align 2 15847 .set .LANCHOR42,. + 0 15848 .type p_valid_page_count_table, %object 15849 .size p_valid_page_count_table, 4 15850p_valid_page_count_table: 15851 .space 4 15852 .section .bss.p_vendor_block_table,"aw",%nobits 15853 .align 2 15854 .set .LANCHOR36,. + 0 15855 .type p_vendor_block_table, %object 15856 .size p_vendor_block_table, 4 15857p_vendor_block_table: 15858 .space 4 15859 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 15860 .align 2 15861 .set .LANCHOR131,. + 0 15862 .type p_vendor_block_valid_page_count, %object 15863 .size p_vendor_block_valid_page_count, 4 15864p_vendor_block_valid_page_count: 15865 .space 4 15866 .section .bss.p_vendor_block_ver_table,"aw",%nobits 15867 .align 2 15868 .set .LANCHOR132,. + 0 15869 .type p_vendor_block_ver_table, %object 15870 .size p_vendor_block_ver_table, 4 15871p_vendor_block_ver_table: 15872 .space 4 15873 .section .bss.p_vendor_data_buf,"aw",%nobits 15874 .align 2 15875 .set .LANCHOR117,. + 0 15876 .type p_vendor_data_buf, %object 15877 .size p_vendor_data_buf, 4 15878p_vendor_data_buf: 15879 .space 4 15880 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 15881 .align 2 15882 .set .LANCHOR133,. + 0 15883 .type p_vendor_region_ppn_table, %object 15884 .size p_vendor_region_ppn_table, 4 15885p_vendor_region_ppn_table: 15886 .space 4 15887 .section .bss.req_erase,"aw",%nobits 15888 .align 2 15889 .set .LANCHOR106,. + 0 15890 .type req_erase, %object 15891 .size req_erase, 4 15892req_erase: 15893 .space 4 15894 .section .bss.req_gc,"aw",%nobits 15895 .align 2 15896 .set .LANCHOR93,. + 0 15897 .type req_gc, %object 15898 .size req_gc, 4 15899req_gc: 15900 .space 4 15901 .section .bss.req_gc_dst,"aw",%nobits 15902 .align 2 15903 .set .LANCHOR113,. + 0 15904 .type req_gc_dst, %object 15905 .size req_gc_dst, 4 15906req_gc_dst: 15907 .space 4 15908 .section .bss.req_prgm,"aw",%nobits 15909 .align 2 15910 .set .LANCHOR114,. + 0 15911 .type req_prgm, %object 15912 .size req_prgm, 4 15913req_prgm: 15914 .space 4 15915 .section .bss.req_read,"aw",%nobits 15916 .align 2 15917 .set .LANCHOR112,. + 0 15918 .type req_read, %object 15919 .size req_read, 4 15920req_read: 15921 .space 4 15922 .section .bss.req_sys,"aw",%nobits 15923 .align 2 15924 .set .LANCHOR148,. + 0 15925 .type req_sys, %object 15926 .size req_sys, 20 15927req_sys: 15928 .space 20 15929 .section .bss.sftl_nand_check_buf,"aw",%nobits 15930 .align 2 15931 .set .LANCHOR120,. + 0 15932 .type sftl_nand_check_buf, %object 15933 .size sftl_nand_check_buf, 4 15934sftl_nand_check_buf: 15935 .space 4 15936 .section .bss.sftl_nand_check_spare_buf,"aw",%nobits 15937 .align 2 15938 .set .LANCHOR122,. + 0 15939 .type sftl_nand_check_spare_buf, %object 15940 .size sftl_nand_check_spare_buf, 4 15941sftl_nand_check_spare_buf: 15942 .space 4 15943 .section .bss.sftl_temp_buf,"aw",%nobits 15944 .align 2 15945 .set .LANCHOR121,. + 0 15946 .type sftl_temp_buf, %object 15947 .size sftl_temp_buf, 4 15948sftl_temp_buf: 15949 .space 4 15950 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 15951 .align 1 15952 .set .LANCHOR162,. + 0 15953 .type ftl_gc_temp_block_bops_scan_page_addr, %object 15954 .size ftl_gc_temp_block_bops_scan_page_addr, 2 15955ftl_gc_temp_block_bops_scan_page_addr: 15956 .short -1 15957 .section .data.gFtlInitStatus,"aw",%progbits 15958 .align 2 15959 .set .LANCHOR86,. + 0 15960 .type gFtlInitStatus, %object 15961 .size gFtlInitStatus, 4 15962gFtlInitStatus: 15963 .word -1 15964 .section .data.power_up_flag,"aw",%progbits 15965 .align 2 15966 .set .LANCHOR182,. + 0 15967 .type power_up_flag, %object 15968 .size power_up_flag, 4 15969power_up_flag: 15970 .word 1 15971 .section .rodata.FlashEraseBlocks.str1.1,"aMS",%progbits,1 15972.LC79: 15973 .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" 15974.LC80: 15975 .ascii "not free: w: d:\000" 15976.LC81: 15977 .ascii "not free: w: s:\000" 15978 .section .rodata.FlashProgPages.str1.1,"aMS",%progbits,1 15979.LC85: 15980 .ascii "prog read error: = %x\012\000" 15981.LC86: 15982 .ascii "prog read s error: = %x %x %x\012\000" 15983.LC87: 15984 .ascii "prog read d error: = %x %x %x\012\000" 15985 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 15986.LC0: 15987 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 15988 .ascii "\000" 15989 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 15990.LC101: 15991 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 15992.LC102: 15993 .ascii "FtlBbmTblFlush error:%x\012\000" 15994.LC103: 15995 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 15996 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 15997.LC82: 15998 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 15999 .ascii "\000" 16000 .section .rodata.FtlGcFreeBadSuperBlk.str1.1,"aMS",%progbits,1 16001.LC104: 16002 .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" 16003 .section .rodata.FtlGcMarkBadPhyBlk.str1.1,"aMS",%progbits,1 16004.LC74: 16005 .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" 16006 .section .rodata.FtlGcRefreshBlock.str1.1,"aMS",%progbits,1 16007.LC73: 16008 .ascii "FtlGcRefreshBlock 0x%x\012\000" 16009 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 16010.LC100: 16011 .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" 16012 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 16013.LC108: 16014 .ascii "no ect\000" 16015 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 16016.LC88: 16017 .ascii "FtlMapWritePage error = %x \012\000" 16018.LC89: 16019 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 16020 .section .rodata.FtlMemInit.str1.1,"aMS",%progbits,1 16021.LC84: 16022 .ascii "%s error allocating memory. return -1\012\000" 16023 .section .rodata.FtlPrintInfo2buf.str1.1,"aMS",%progbits,1 16024.LC2: 16025 .ascii "FLASH INFO:\012\000" 16026.LC3: 16027 .ascii "Device Capacity: %d MB\012\000" 16028.LC4: 16029 .ascii "FTL INFO:\012\000" 16030.LC5: 16031 .ascii "g_MaxLpn = 0x%x\012\000" 16032.LC6: 16033 .ascii "g_VaildLpn = 0x%x\012\000" 16034.LC7: 16035 .ascii "read_page_count = 0x%x\012\000" 16036.LC8: 16037 .ascii "discard_page_count = 0x%x\012\000" 16038.LC9: 16039 .ascii "write_page_count = 0x%x\012\000" 16040.LC10: 16041 .ascii "cache_write_count = 0x%x\012\000" 16042.LC11: 16043 .ascii "l2p_write_count = 0x%x\012\000" 16044.LC12: 16045 .ascii "gc_page_count = 0x%x\012\000" 16046.LC13: 16047 .ascii "totle_write = %d MB\012\000" 16048.LC14: 16049 .ascii "totle_read = %d MB\012\000" 16050.LC15: 16051 .ascii "GSV = 0x%x\012\000" 16052.LC16: 16053 .ascii "GDV = 0x%x\012\000" 16054.LC17: 16055 .ascii "bad blk num = %d\012\000" 16056.LC18: 16057 .ascii "free_superblocks = 0x%x\012\000" 16058.LC19: 16059 .ascii "mlc_EC = 0x%x\012\000" 16060.LC20: 16061 .ascii "slc_EC = 0x%x\012\000" 16062.LC21: 16063 .ascii "avg_EC = 0x%x\012\000" 16064.LC22: 16065 .ascii "sys_EC = 0x%x\012\000" 16066.LC23: 16067 .ascii "max_EC = 0x%x\012\000" 16068.LC24: 16069 .ascii "min_EC = 0x%x\012\000" 16070.LC25: 16071 .ascii "PLT = 0x%x\012\000" 16072.LC26: 16073 .ascii "POT = 0x%x\012\000" 16074.LC27: 16075 .ascii "MaxSector = 0x%x\012\000" 16076.LC28: 16077 .ascii "init_sys_blks_pp = 0x%x\012\000" 16078.LC29: 16079 .ascii "sys_blks_pp = 0x%x\012\000" 16080.LC30: 16081 .ascii "free sysblock = 0x%x\012\000" 16082.LC31: 16083 .ascii "data_blks_pp = 0x%x\012\000" 16084.LC32: 16085 .ascii "data_op_blks_pp = 0x%x\012\000" 16086.LC33: 16087 .ascii "max_data_blks = 0x%x\012\000" 16088.LC34: 16089 .ascii "Sys.id = 0x%x\012\000" 16090.LC35: 16091 .ascii "Bbt.id = 0x%x\012\000" 16092.LC36: 16093 .ascii "ACT.page = 0x%x\012\000" 16094.LC37: 16095 .ascii "ACT.plane = 0x%x\012\000" 16096.LC38: 16097 .ascii "ACT.id = 0x%x\012\000" 16098.LC39: 16099 .ascii "ACT.mode = 0x%x\012\000" 16100.LC40: 16101 .ascii "ACT.a_pages = 0x%x\012\000" 16102.LC41: 16103 .ascii "ACT VPC = 0x%x\012\000" 16104.LC42: 16105 .ascii "BUF.page = 0x%x\012\000" 16106.LC43: 16107 .ascii "BUF.plane = 0x%x\012\000" 16108.LC44: 16109 .ascii "BUF.id = 0x%x\012\000" 16110.LC45: 16111 .ascii "BUF.mode = 0x%x\012\000" 16112.LC46: 16113 .ascii "BUF.a_pages = 0x%x\012\000" 16114.LC47: 16115 .ascii "BUF VPC = 0x%x\012\000" 16116.LC48: 16117 .ascii "TMP.page = 0x%x\012\000" 16118.LC49: 16119 .ascii "TMP.plane = 0x%x\012\000" 16120.LC50: 16121 .ascii "TMP.id = 0x%x\012\000" 16122.LC51: 16123 .ascii "TMP.mode = 0x%x\012\000" 16124.LC52: 16125 .ascii "TMP.a_pages = 0x%x\012\000" 16126.LC53: 16127 .ascii "GC.page = 0x%x\012\000" 16128.LC54: 16129 .ascii "GC.plane = 0x%x\012\000" 16130.LC55: 16131 .ascii "GC.id = 0x%x\012\000" 16132.LC56: 16133 .ascii "GC.mode = 0x%x\012\000" 16134.LC57: 16135 .ascii "GC.a_pages = 0x%x\012\000" 16136.LC58: 16137 .ascii "WR_CHK = %x %x %x\012\000" 16138.LC59: 16139 .ascii "Read Err Cnt = 0x%x\012\000" 16140.LC60: 16141 .ascii "Prog Err Cnt = 0x%x\012\000" 16142.LC61: 16143 .ascii "gc_free_blk_th= 0x%x\012\000" 16144.LC62: 16145 .ascii "gc_merge_free_blk_th= 0x%x\012\000" 16146.LC63: 16147 .ascii "gc_skip_write_count= 0x%x\012\000" 16148.LC64: 16149 .ascii "gc_blk_index= 0x%x\012\000" 16150.LC65: 16151 .ascii "free min EC= 0x%x\012\000" 16152.LC66: 16153 .ascii "free max EC= 0x%x\012\000" 16154.LC67: 16155 .ascii "GC__SB VPC = 0x%x\012\000" 16156.LC68: 16157 .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" 16158.LC69: 16159 .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" 16160 .section .rodata.FtlProgPages.str1.1,"aMS",%progbits,1 16161.LC111: 16162 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 16163 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 16164.LC106: 16165 .ascii "spuer block %x vpn is 0\012 \000" 16166 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 16167.LC107: 16168 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 16169 .section .rodata.FtlVpcCheckAndModify.str1.1,"aMS",%progbits,1 16170.LC110: 16171 .ascii "FtlCheckVpc %x = %x %x\012\000" 16172 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 16173.LC109: 16174 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 16175 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 16176.LC113: 16177 .ascii "FtlWrite: lpa error:%x %x\012\000" 16178 .section .rodata.FtlWriteToIDB.str1.1,"aMS",%progbits,1 16179.LC114: 16180 .ascii "write_idblock fail! %x %x %x %x\012\000" 16181.LC115: 16182 .ascii "%s idb buffer alloc fail\012\000" 16183.LC116: 16184 .ascii "%p %x %p %x\012\000" 16185 .section .rodata.GetSwlReplaceBlock.str1.1,"aMS",%progbits,1 16186.LC72: 16187 .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" 16188 .ascii "\012\000" 16189 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 16190.LC1: 16191 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 16192 .section .rodata.__func__.10094,"a",%progbits 16193 .set .LANCHOR180,. + 0 16194 .type __func__.10094, %object 16195 .size __func__.10094, 23 16196__func__.10094: 16197 .ascii "rk_ftl_garbage_collect\000" 16198 .section .rodata.__func__.10356,"a",%progbits 16199 .set .LANCHOR147,. + 0 16200 .type __func__.10356, %object 16201 .size __func__.10356, 15 16202__func__.10356: 16203 .ascii "FlashReadPages\000" 16204 .section .rodata.__func__.10375,"a",%progbits 16205 .set .LANCHOR153,. + 0 16206 .type __func__.10375, %object 16207 .size __func__.10375, 15 16208__func__.10375: 16209 .ascii "FlashProgPages\000" 16210 .section .rodata.__func__.10399,"a",%progbits 16211 .set .LANCHOR104,. + 0 16212 .type __func__.10399, %object 16213 .size __func__.10399, 17 16214__func__.10399: 16215 .ascii "FlashEraseBlocks\000" 16216 .section .rodata.__func__.10514,"a",%progbits 16217 .set .LANCHOR187,. + 0 16218 .type __func__.10514, %object 16219 .size __func__.10514, 14 16220__func__.10514: 16221 .ascii "FtlWriteToIDB\000" 16222 .section .rodata.__func__.8835,"a",%progbits 16223 .set .LANCHOR138,. + 0 16224 .type __func__.8835, %object 16225 .size __func__.8835, 11 16226__func__.8835: 16227 .ascii "FtlMemInit\000" 16228 .section .rodata.__func__.8959,"a",%progbits 16229 .set .LANCHOR175,. + 0 16230 .type __func__.8959, %object 16231 .size __func__.8959, 13 16232__func__.8959: 16233 .ascii "FtlProgPages\000" 16234 .section .rodata.__func__.8987,"a",%progbits 16235 .set .LANCHOR183,. + 0 16236 .type __func__.8987, %object 16237 .size __func__.8987, 9 16238__func__.8987: 16239 .ascii "FtlWrite\000" 16240 .section .rodata.__func__.9062,"a",%progbits 16241 .set .LANCHOR139,. + 0 16242 .type __func__.9062, %object 16243 .size __func__.9062, 14 16244__func__.9062: 16245 .ascii "FtlBbt2Bitmap\000" 16246 .section .rodata.__func__.9105,"a",%progbits 16247 .set .LANCHOR150,. + 0 16248 .type __func__.9105, %object 16249 .size __func__.9105, 11 16250__func__.9105: 16251 .ascii "FtlLoadBbt\000" 16252 .section .rodata.__func__.9220,"a",%progbits 16253 .set .LANCHOR49,. + 0 16254 .type __func__.9220, %object 16255 .size __func__.9220, 17 16256__func__.9220: 16257 .ascii "INSERT_FREE_LIST\000" 16258 .section .rodata.__func__.9225,"a",%progbits 16259 .set .LANCHOR46,. + 0 16260 .type __func__.9225, %object 16261 .size __func__.9225, 17 16262__func__.9225: 16263 .ascii "INSERT_DATA_LIST\000" 16264 .section .rodata.__func__.9256,"a",%progbits 16265 .set .LANCHOR50,. + 0 16266 .type __func__.9256, %object 16267 .size __func__.9256, 17 16268__func__.9256: 16269 .ascii "List_remove_node\000" 16270 .section .rodata.__func__.9288,"a",%progbits 16271 .set .LANCHOR54,. + 0 16272 .type __func__.9288, %object 16273 .size __func__.9288, 22 16274__func__.9288: 16275 .ascii "List_update_data_list\000" 16276 .section .rodata.__func__.9297,"a",%progbits 16277 .set .LANCHOR156,. + 0 16278 .type __func__.9297, %object 16279 .size __func__.9297, 16 16280__func__.9297: 16281 .ascii "load_l2p_region\000" 16282 .section .rodata.__func__.9330,"a",%progbits 16283 .set .LANCHOR107,. + 0 16284 .type __func__.9330, %object 16285 .size __func__.9330, 26 16286__func__.9330: 16287 .ascii "ftl_map_blk_alloc_new_blk\000" 16288 .section .rodata.__func__.9341,"a",%progbits 16289 .set .LANCHOR157,. + 0 16290 .type __func__.9341, %object 16291 .size __func__.9341, 15 16292__func__.9341: 16293 .ascii "ftl_map_blk_gc\000" 16294 .section .rodata.__func__.9356,"a",%progbits 16295 .set .LANCHOR154,. + 0 16296 .type __func__.9356, %object 16297 .size __func__.9356, 31 16298__func__.9356: 16299 .ascii "Ftl_write_map_blk_to_last_page\000" 16300 .section .rodata.__func__.9370,"a",%progbits 16301 .set .LANCHOR155,. + 0 16302 .type __func__.9370, %object 16303 .size __func__.9370, 16 16304__func__.9370: 16305 .ascii "FtlMapWritePage\000" 16306 .section .rodata.__func__.9395,"a",%progbits 16307 .set .LANCHOR57,. + 0 16308 .type __func__.9395, %object 16309 .size __func__.9395, 22 16310__func__.9395: 16311 .ascii "select_l2p_ram_region\000" 16312 .section .rodata.__func__.9412,"a",%progbits 16313 .set .LANCHOR159,. + 0 16314 .type __func__.9412, %object 16315 .size __func__.9412, 9 16316__func__.9412: 16317 .ascii "log2phys\000" 16318 .section .rodata.__func__.9485,"a",%progbits 16319 .set .LANCHOR171,. + 0 16320 .type __func__.9485, %object 16321 .size __func__.9485, 15 16322__func__.9485: 16323 .ascii "FtlVpcTblFlush\000" 16324 .section .rodata.__func__.9507,"a",%progbits 16325 .set .LANCHOR149,. + 0 16326 .type __func__.9507, %object 16327 .size __func__.9507, 14 16328__func__.9507: 16329 .ascii "FtlScanSysBlk\000" 16330 .section .rodata.__func__.9564,"a",%progbits 16331 .set .LANCHOR151,. + 0 16332 .type __func__.9564, %object 16333 .size __func__.9564, 15 16334__func__.9564: 16335 .ascii "FtlLoadSysInfo\000" 16336 .section .rodata.__func__.9627,"a",%progbits 16337 .set .LANCHOR160,. + 0 16338 .type __func__.9627, %object 16339 .size __func__.9627, 16 16340__func__.9627: 16341 .ascii "FtlReUsePrevPpa\000" 16342 .section .rodata.__func__.9661,"a",%progbits 16343 .set .LANCHOR166,. + 0 16344 .type __func__.9661, %object 16345 .size __func__.9661, 22 16346__func__.9661: 16347 .ascii "FtlRecoverySuperblock\000" 16348 .section .rodata.__func__.9718,"a",%progbits 16349 .set .LANCHOR60,. + 0 16350 .type __func__.9718, %object 16351 .size __func__.9718, 16 16352__func__.9718: 16353 .ascii "make_superblock\000" 16354 .section .rodata.__func__.9739,"a",%progbits 16355 .set .LANCHOR146,. + 0 16356 .type __func__.9739, %object 16357 .size __func__.9739, 18 16358__func__.9739: 16359 .ascii "SupperBlkListInit\000" 16360 .section .rodata.__func__.9764,"a",%progbits 16361 .set .LANCHOR173,. + 0 16362 .type __func__.9764, %object 16363 .size __func__.9764, 21 16364__func__.9764: 16365 .ascii "FtlVpcCheckAndModify\000" 16366 .section .rodata.__func__.9780,"a",%progbits 16367 .set .LANCHOR161,. + 0 16368 .type __func__.9780, %object 16369 .size __func__.9780, 14 16370__func__.9780: 16371 .ascii "ftl_check_vpc\000" 16372 .section .rodata.__func__.9865,"a",%progbits 16373 .set .LANCHOR163,. + 0 16374 .type __func__.9865, %object 16375 .size __func__.9865, 25 16376__func__.9865: 16377 .ascii "allocate_data_superblock\000" 16378 .section .rodata.__func__.9886,"a",%progbits 16379 .set .LANCHOR174,. + 0 16380 .type __func__.9886, %object 16381 .size __func__.9886, 29 16382__func__.9886: 16383 .ascii "allocate_new_data_superblock\000" 16384 .section .rodata.__func__.9893,"a",%progbits 16385 .set .LANCHOR88,. + 0 16386 .type __func__.9893, %object 16387 .size __func__.9893, 19 16388__func__.9893: 16389 .ascii "get_new_active_ppa\000" 16390 .section .rodata.__func__.9906,"a",%progbits 16391 .set .LANCHOR164,. + 0 16392 .type __func__.9906, %object 16393 .size __func__.9906, 16 16394__func__.9906: 16395 .ascii "update_vpc_list\000" 16396 .section .rodata.__func__.9913,"a",%progbits 16397 .set .LANCHOR165,. + 0 16398 .type __func__.9913, %object 16399 .size __func__.9913, 20 16400__func__.9913: 16401 .ascii "decrement_vpc_count\000" 16402 .section .rodata.__func__.9983,"a",%progbits 16403 .set .LANCHOR176,. + 0 16404 .type __func__.9983, %object 16405 .size __func__.9983, 19 16406__func__.9983: 16407 .ascii "FtlGcFreeTempBlock\000" 16408 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 16409.LC105: 16410 .ascii "decrement_vpc_count %x = %d\012\000" 16411 .section .rodata.ftl_check_vpc.str1.1,"aMS",%progbits,1 16412.LC94: 16413 .ascii "...%s enter...\012\000" 16414.LC95: 16415 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 16416.LC96: 16417 .ascii "free blk vpc error %x = %x %x\012\000" 16418 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 16419.LC83: 16420 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 16421 .section .rodata.ftl_scan_all_data.str1.1,"aMS",%progbits,1 16422.LC97: 16423 .ascii "ftl_scan_all_data = %x\012\000" 16424.LC98: 16425 .ascii "scan lpa = %x ppa= %x\012\000" 16426.LC99: 16427 .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 16428 .ascii "\000" 16429 .section .rodata.load_l2p_region.str1.1,"aMS",%progbits,1 16430.LC90: 16431 .ascii "region_id = %x phyAddr = %x\012\000" 16432.LC91: 16433 .ascii "spare:\000" 16434.LC92: 16435 .ascii "map_ppn:\000" 16436.LC93: 16437 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 16438 .section .rodata.rk_ftl_garbage_collect.str1.1,"aMS",%progbits,1 16439.LC112: 16440 .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" 16441 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 16442.LC75: 16443 .ascii "%s 0x%x:\000" 16444.LC76: 16445 .ascii "%x \000" 16446.LC77: 16447 .ascii "%02x \000" 16448.LC78: 16449 .ascii "\012\000" 16450 .section .rodata.rknand_proc_ftlread.str1.1,"aMS",%progbits,1 16451.LC70: 16452 .ascii "SFTL version: 5.0.49 20181030\000" 16453.LC71: 16454 .ascii "%s\012\000" 16455 .hidden free 16456