1/* 2 * Copyright (c) 2016-2018, Fuzhou Rockchip Electronics Co., Ltd 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * date: 2021-03-18 9 */ 10 .arch armv7-a 11 .eabi_attribute 20, 1 12 .eabi_attribute 21, 1 13 .eabi_attribute 23, 3 14 .eabi_attribute 24, 1 15 .eabi_attribute 25, 1 16 .eabi_attribute 26, 2 17 .eabi_attribute 30, 4 18 .eabi_attribute 34, 0 19 .eabi_attribute 18, 2 20 .file "rk_ftl_arm_v7.S" 21 .section .text.flash_read_ecc,"ax",%progbits 22 .align 1 23 .syntax unified 24 .thumb 25 .thumb_func 26 .fpu softvfp 27 .type flash_read_ecc, %function 28flash_read_ecc: 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 ldr r3, .L2 32 push {r4, lr} 33 ldr r4, [r3, r0, lsl #3] 34 add r3, r3, r0, lsl #3 35 movs r0, #80 36 ldrb r3, [r3, #4] @ zero_extendqisi2 37 add r4, r4, r3, lsl #8 38 movs r3, #122 39 str r3, [r4, #2056] 40 bl udelay 41 ldr r3, [r4, #2048] 42 ldr r0, [r4, #2048] 43 and r3, r3, #15 44 and r0, r0, #15 45 cmp r0, r3 46 it cc 47 movcc r0, r3 48 ldr r3, [r4, #2048] 49 and r3, r3, #15 50 cmp r3, r0 51 it cc 52 movcc r3, r0 53 ldr r0, [r4, #2048] 54 and r0, r0, #15 55 cmp r0, r3 56 it cc 57 movcc r0, r3 58 pop {r4, pc} 59.L3: 60 .align 2 61.L2: 62 .word .LANCHOR0 63 .size flash_read_ecc, .-flash_read_ecc 64 .section .text.ftl_set_blk_mode.part.11,"ax",%progbits 65 .align 1 66 .syntax unified 67 .thumb 68 .thumb_func 69 .fpu softvfp 70 .type ftl_set_blk_mode.part.11, %function 71ftl_set_blk_mode.part.11: 72 @ args = 0, pretend = 0, frame = 0 73 @ frame_needed = 0, uses_anonymous_args = 0 74 @ link register save eliminated. 75 ldr r3, .L5 76 lsrs r1, r0, #5 77 and r0, r0, #31 78 ldr r2, [r3] 79 movs r3, #1 80 lsl r0, r3, r0 81 ldr r3, [r2, r1, lsl #2] 82 orrs r3, r3, r0 83 str r3, [r2, r1, lsl #2] 84 bx lr 85.L6: 86 .align 2 87.L5: 88 .word .LANCHOR1 89 .size ftl_set_blk_mode.part.11, .-ftl_set_blk_mode.part.11 90 .section .text.FlashMemCmp8,"ax",%progbits 91 .align 1 92 .global FlashMemCmp8 93 .syntax unified 94 .thumb 95 .thumb_func 96 .fpu softvfp 97 .type FlashMemCmp8, %function 98FlashMemCmp8: 99 @ args = 0, pretend = 0, frame = 0 100 @ frame_needed = 0, uses_anonymous_args = 0 101 ldr r3, .L15 102 push {r4, r5, lr} 103 ldrb r3, [r3] @ zero_extendqisi2 104 cbz r3, .L10 105 ldrb r4, [r0, #1] @ zero_extendqisi2 106 ldrb r3, [r1, #1] @ zero_extendqisi2 107 cmp r4, r3 108 beq .L14 109 movs r3, #0 110.L10: 111 cmp r3, r2 112 bne .L12 113.L14: 114 movs r0, #0 115 pop {r4, r5, pc} 116.L12: 117 ldrb r5, [r0, r3] @ zero_extendqisi2 118 ldrb r4, [r1, r3] @ zero_extendqisi2 119 adds r3, r3, #1 120 cmp r5, r4 121 beq .L10 122 mov r0, r3 123 pop {r4, r5, pc} 124.L16: 125 .align 2 126.L15: 127 .word .LANCHOR2 128 .size FlashMemCmp8, .-FlashMemCmp8 129 .section .text.FlashRsvdBlkChk,"ax",%progbits 130 .align 1 131 .global FlashRsvdBlkChk 132 .syntax unified 133 .thumb 134 .thumb_func 135 .fpu softvfp 136 .type FlashRsvdBlkChk, %function 137FlashRsvdBlkChk: 138 @ args = 0, pretend = 0, frame = 0 139 @ frame_needed = 0, uses_anonymous_args = 0 140 @ link register save eliminated. 141 ldr r3, .L20 142 ldrb r2, [r3] @ zero_extendqisi2 143 ldr r3, .L20+4 144 ldr r3, [r3] 145 muls r3, r2, r3 146 cmp r3, r1 147 bls .L19 148 adds r0, r0, #0 149 it ne 150 movne r0, #1 151 bx lr 152.L19: 153 movs r0, #1 154 bx lr 155.L21: 156 .align 2 157.L20: 158 .word .LANCHOR3 159 .word .LANCHOR4 160 .size FlashRsvdBlkChk, .-FlashRsvdBlkChk 161 .section .text.FlashGetRandomizer,"ax",%progbits 162 .align 1 163 .global FlashGetRandomizer 164 .syntax unified 165 .thumb 166 .thumb_func 167 .fpu softvfp 168 .type FlashGetRandomizer, %function 169FlashGetRandomizer: 170 @ args = 0, pretend = 0, frame = 0 171 @ frame_needed = 0, uses_anonymous_args = 0 172 ldr r3, .L30 173 and r2, r1, #127 174 push {r4, lr} 175 ldrh r4, [r3, r2, lsl #1] 176 ldr r3, .L30+4 177 ldrb r3, [r3] @ zero_extendqisi2 178 cbz r3, .L22 179 bl FlashRsvdBlkChk 180 cbz r0, .L22 181 orr r4, r4, #-1073741824 182.L22: 183 mov r0, r4 184 pop {r4, pc} 185.L31: 186 .align 2 187.L30: 188 .word .LANCHOR5 189 .word .LANCHOR6 190 .size FlashGetRandomizer, .-FlashGetRandomizer 191 .section .text.FlashSetRandomizer,"ax",%progbits 192 .align 1 193 .global FlashSetRandomizer 194 .syntax unified 195 .thumb 196 .thumb_func 197 .fpu softvfp 198 .type FlashSetRandomizer, %function 199FlashSetRandomizer: 200 @ args = 0, pretend = 0, frame = 0 201 @ frame_needed = 0, uses_anonymous_args = 0 202 push {r3, r4, r5, lr} 203 and r2, r1, #127 204 ldr r3, .L40 205 mov r5, r0 206 ldrh r4, [r3, r2, lsl #1] 207 ldr r3, .L40+4 208 ldrb r3, [r3] @ zero_extendqisi2 209 cbz r3, .L33 210 bl FlashRsvdBlkChk 211 cbz r0, .L33 212 orr r4, r4, #-1073741824 213.L33: 214 ldr r3, .L40+8 215 ldr r3, [r3, r5, lsl #3] 216 str r4, [r3, #336] 217 pop {r3, r4, r5, pc} 218.L41: 219 .align 2 220.L40: 221 .word .LANCHOR5 222 .word .LANCHOR6 223 .word .LANCHOR0 224 .size FlashSetRandomizer, .-FlashSetRandomizer 225 .section .text.FlashBlockAlignInit,"ax",%progbits 226 .align 1 227 .global FlashBlockAlignInit 228 .syntax unified 229 .thumb 230 .thumb_func 231 .fpu softvfp 232 .type FlashBlockAlignInit, %function 233FlashBlockAlignInit: 234 @ args = 0, pretend = 0, frame = 0 235 @ frame_needed = 0, uses_anonymous_args = 0 236 @ link register save eliminated. 237 cmp r0, #512 238 ldr r3, .L48 239 bls .L43 240 mov r2, #1024 241.L47: 242 str r2, [r3] 243 bx lr 244.L43: 245 cmp r0, #256 246 bls .L45 247 mov r2, #512 248 b .L47 249.L45: 250 cmp r0, #128 251 bhi .L46 252 str r0, [r3] 253 bx lr 254.L46: 255 mov r2, #256 256 b .L47 257.L49: 258 .align 2 259.L48: 260 .word .LANCHOR4 261 .size FlashBlockAlignInit, .-FlashBlockAlignInit 262 .section .text.FlashReadCmd,"ax",%progbits 263 .align 1 264 .global FlashReadCmd 265 .syntax unified 266 .thumb 267 .thumb_func 268 .fpu softvfp 269 .type FlashReadCmd, %function 270FlashReadCmd: 271 @ args = 0, pretend = 0, frame = 0 272 @ frame_needed = 0, uses_anonymous_args = 0 273 @ link register save eliminated. 274 ldr r2, .L52 275 push {r4, r5} 276 ldr r4, .L52+4 277 ldr r3, [r2, r0, lsl #3] 278 add r2, r2, r0, lsl #3 279 ldr r4, [r4] 280 ldrb r2, [r2, #4] @ zero_extendqisi2 281 ldrb r4, [r4, #7] @ zero_extendqisi2 282 lsls r2, r2, #8 283 cmp r4, #1 284 itt eq 285 addeq r4, r3, r2 286 moveq r5, #38 287 add r3, r3, r2 288 mov r2, #0 289 it eq 290 streq r5, [r4, #2056] 291 str r2, [r3, #2056] 292 str r2, [r3, #2052] 293 str r2, [r3, #2052] 294 uxtb r2, r1 295 str r2, [r3, #2052] 296 lsrs r2, r1, #8 297 str r2, [r3, #2052] 298 lsrs r2, r1, #16 299 str r2, [r3, #2052] 300 movs r2, #48 301 str r2, [r3, #2056] 302 pop {r4, r5} 303 b FlashSetRandomizer 304.L53: 305 .align 2 306.L52: 307 .word .LANCHOR0 308 .word .LANCHOR7 309 .size FlashReadCmd, .-FlashReadCmd 310 .section .text.FlashReadDpDataOutCmd,"ax",%progbits 311 .align 1 312 .global FlashReadDpDataOutCmd 313 .syntax unified 314 .thumb 315 .thumb_func 316 .fpu softvfp 317 .type FlashReadDpDataOutCmd, %function 318FlashReadDpDataOutCmd: 319 @ args = 0, pretend = 0, frame = 0 320 @ frame_needed = 0, uses_anonymous_args = 0 321 @ link register save eliminated. 322 ldr r2, .L58 323 push {r4, r5, r6} 324 uxtb r6, r1 325 ldr r4, .L58+4 326 lsrs r5, r1, #8 327 ldr r3, [r2, r0, lsl #3] 328 add r2, r2, r0, lsl #3 329 ldrb r4, [r4, #16] @ zero_extendqisi2 330 ldrb r2, [r2, #4] @ zero_extendqisi2 331 cmp r4, #1 332 lsr r4, r1, #16 333 lsl r2, r2, #8 334 add r3, r3, r2 335 bne .L55 336 movs r2, #6 337 str r2, [r3, #2056] 338 movs r2, #0 339 str r2, [r3, #2052] 340 str r2, [r3, #2052] 341 str r6, [r3, #2052] 342 str r5, [r3, #2052] 343 str r4, [r3, #2052] 344.L57: 345 movs r2, #224 346 str r2, [r3, #2056] 347 pop {r4, r5, r6} 348 b FlashSetRandomizer 349.L55: 350 movs r2, #0 351 str r2, [r3, #2056] 352 str r2, [r3, #2052] 353 str r2, [r3, #2052] 354 str r6, [r3, #2052] 355 str r5, [r3, #2052] 356 str r4, [r3, #2052] 357 movs r4, #5 358 str r4, [r3, #2056] 359 str r2, [r3, #2052] 360 str r2, [r3, #2052] 361 b .L57 362.L59: 363 .align 2 364.L58: 365 .word .LANCHOR0 366 .word .LANCHOR8 367 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd 368 .section .text.FlashProgFirstCmd,"ax",%progbits 369 .align 1 370 .global FlashProgFirstCmd 371 .syntax unified 372 .thumb 373 .thumb_func 374 .fpu softvfp 375 .type FlashProgFirstCmd, %function 376FlashProgFirstCmd: 377 @ args = 0, pretend = 0, frame = 0 378 @ frame_needed = 0, uses_anonymous_args = 0 379 @ link register save eliminated. 380 push {r4, r5} 381 lsrs r2, r1, #16 382 ldr r4, .L61 383 ldr r3, [r4, r0, lsl #3] 384 add r4, r4, r0, lsl #3 385 ldrb r4, [r4, #4] @ zero_extendqisi2 386 add r3, r3, r4, lsl #8 387 movs r4, #128 388 str r4, [r3, #2056] 389 movs r4, #0 390 str r4, [r3, #2052] 391 str r4, [r3, #2052] 392 uxtb r4, r1 393 str r4, [r3, #2052] 394 lsrs r4, r1, #8 395 str r4, [r3, #2052] 396 str r2, [r3, #2052] 397 pop {r4, r5} 398 b FlashSetRandomizer 399.L62: 400 .align 2 401.L61: 402 .word .LANCHOR0 403 .size FlashProgFirstCmd, .-FlashProgFirstCmd 404 .section .text.FlashEraseCmd,"ax",%progbits 405 .align 1 406 .global FlashEraseCmd 407 .syntax unified 408 .thumb 409 .thumb_func 410 .fpu softvfp 411 .type FlashEraseCmd, %function 412FlashEraseCmd: 413 @ args = 0, pretend = 0, frame = 0 414 @ frame_needed = 0, uses_anonymous_args = 0 415 push {r4, lr} 416 ldr r4, .L68 417 ldr r3, [r4, r0, lsl #3] 418 add r4, r4, r0, lsl #3 419 ldrb r0, [r4, #4] @ zero_extendqisi2 420 lsls r0, r0, #8 421 cbz r2, .L64 422 adds r2, r3, r0 423 movs r4, #96 424 str r4, [r2, #2056] 425 uxtb r4, r1 426 str r4, [r2, #2052] 427 lsrs r4, r1, #8 428 str r4, [r2, #2052] 429 lsrs r4, r1, #16 430 str r4, [r2, #2052] 431 ldr r2, .L68+4 432 ldr r2, [r2] 433 add r1, r1, r2 434.L64: 435 add r3, r3, r0 436 movs r2, #96 437 str r2, [r3, #2056] 438 uxtb r2, r1 439 str r2, [r3, #2052] 440 lsrs r2, r1, #8 441 lsrs r1, r1, #16 442 str r2, [r3, #2052] 443 movs r2, #208 444 str r1, [r3, #2052] 445 str r2, [r3, #2056] 446 pop {r4, pc} 447.L69: 448 .align 2 449.L68: 450 .word .LANCHOR0 451 .word .LANCHOR4 452 .size FlashEraseCmd, .-FlashEraseCmd 453 .section .text.FlashProgDpSecondCmd,"ax",%progbits 454 .align 1 455 .global FlashProgDpSecondCmd 456 .syntax unified 457 .thumb 458 .thumb_func 459 .fpu softvfp 460 .type FlashProgDpSecondCmd, %function 461FlashProgDpSecondCmd: 462 @ args = 0, pretend = 0, frame = 0 463 @ frame_needed = 0, uses_anonymous_args = 0 464 @ link register save eliminated. 465 push {r4, r5} 466 lsrs r2, r1, #16 467 ldr r4, .L71 468 ldr r3, [r4, r0, lsl #3] 469 add r4, r4, r0, lsl #3 470 ldrb r5, [r4, #4] @ zero_extendqisi2 471 ldr r4, .L71+4 472 ldrb r4, [r4, #11] @ zero_extendqisi2 473 add r3, r3, r5, lsl #8 474 str r4, [r3, #2056] 475 movs r4, #0 476 str r4, [r3, #2052] 477 str r4, [r3, #2052] 478 uxtb r4, r1 479 str r4, [r3, #2052] 480 lsrs r4, r1, #8 481 str r4, [r3, #2052] 482 str r2, [r3, #2052] 483 pop {r4, r5} 484 b FlashSetRandomizer 485.L72: 486 .align 2 487.L71: 488 .word .LANCHOR0 489 .word .LANCHOR8 490 .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd 491 .section .text.FlashProgSecondCmd,"ax",%progbits 492 .align 1 493 .global FlashProgSecondCmd 494 .syntax unified 495 .thumb 496 .thumb_func 497 .fpu softvfp 498 .type FlashProgSecondCmd, %function 499FlashProgSecondCmd: 500 @ args = 0, pretend = 0, frame = 0 501 @ frame_needed = 0, uses_anonymous_args = 0 502 @ link register save eliminated. 503 ldr r3, .L74 504 ldr r2, [r3, r0, lsl #3] 505 add r3, r3, r0, lsl #3 506 ldrb r3, [r3, #4] @ zero_extendqisi2 507 add r3, r2, r3, lsl #8 508 movs r2, #16 509 str r2, [r3, #2056] 510 bx lr 511.L75: 512 .align 2 513.L74: 514 .word .LANCHOR0 515 .size FlashProgSecondCmd, .-FlashProgSecondCmd 516 .section .text.FlashProgDpFirstCmd,"ax",%progbits 517 .align 1 518 .global FlashProgDpFirstCmd 519 .syntax unified 520 .thumb 521 .thumb_func 522 .fpu softvfp 523 .type FlashProgDpFirstCmd, %function 524FlashProgDpFirstCmd: 525 @ args = 0, pretend = 0, frame = 0 526 @ frame_needed = 0, uses_anonymous_args = 0 527 @ link register save eliminated. 528 ldr r3, .L77 529 ldr r1, .L77+4 530 ldr r2, [r3, r0, lsl #3] 531 add r3, r3, r0, lsl #3 532 ldrb r1, [r1, #10] @ zero_extendqisi2 533 ldrb r3, [r3, #4] @ zero_extendqisi2 534 add r3, r2, r3, lsl #8 535 str r1, [r3, #2056] 536 bx lr 537.L78: 538 .align 2 539.L77: 540 .word .LANCHOR0 541 .word .LANCHOR8 542 .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd 543 .section .text.FlashReadStatus,"ax",%progbits 544 .align 1 545 .global FlashReadStatus 546 .syntax unified 547 .thumb 548 .thumb_func 549 .fpu softvfp 550 .type FlashReadStatus, %function 551FlashReadStatus: 552 @ args = 0, pretend = 0, frame = 0 553 @ frame_needed = 0, uses_anonymous_args = 0 554 push {r3, r4, r5, lr} 555 movs r2, #112 556 ldr r3, .L80 557 ldr r5, [r3, r0, lsl #3] 558 add r3, r3, r0, lsl #3 559 movs r0, #80 560 ldrb r4, [r3, #4] @ zero_extendqisi2 561 add r3, r5, r4, lsl #8 562 adds r4, r4, #8 563 lsls r4, r4, #8 564 str r2, [r3, #2056] 565 bl udelay 566 ldr r0, [r5, r4] 567 pop {r3, r4, r5, pc} 568.L81: 569 .align 2 570.L80: 571 .word .LANCHOR0 572 .size FlashReadStatus, .-FlashReadStatus 573 .section .text.js_hash,"ax",%progbits 574 .align 1 575 .global js_hash 576 .syntax unified 577 .thumb 578 .thumb_func 579 .fpu softvfp 580 .type js_hash, %function 581js_hash: 582 @ args = 0, pretend = 0, frame = 0 583 @ frame_needed = 0, uses_anonymous_args = 0 584 ldr r3, .L85 585 add r1, r1, r0 586 push {r4, lr} 587.L83: 588 cmp r0, r1 589 bne .L84 590 mov r0, r3 591 pop {r4, pc} 592.L84: 593 lsrs r2, r3, #2 594 ldrb r4, [r0], #1 @ zero_extendqisi2 595 add r2, r2, r3, lsl #5 596 add r2, r2, r4 597 eors r3, r3, r2 598 b .L83 599.L86: 600 .align 2 601.L85: 602 .word 1204201446 603 .size js_hash, .-js_hash 604 .section .text.FlashLoadIdbInfo,"ax",%progbits 605 .align 1 606 .global FlashLoadIdbInfo 607 .syntax unified 608 .thumb 609 .thumb_func 610 .fpu softvfp 611 .type FlashLoadIdbInfo, %function 612FlashLoadIdbInfo: 613 @ args = 0, pretend = 0, frame = 0 614 @ frame_needed = 0, uses_anonymous_args = 0 615 @ link register save eliminated. 616 movs r0, #0 617 bx lr 618 .size FlashLoadIdbInfo, .-FlashLoadIdbInfo 619 .section .text.FlashPrintInfo,"ax",%progbits 620 .align 1 621 .global FlashPrintInfo 622 .syntax unified 623 .thumb 624 .thumb_func 625 .fpu softvfp 626 .type FlashPrintInfo, %function 627FlashPrintInfo: 628 @ args = 0, pretend = 0, frame = 0 629 @ frame_needed = 0, uses_anonymous_args = 0 630 @ link register save eliminated. 631 bx lr 632 .size FlashPrintInfo, .-FlashPrintInfo 633 .section .text.ToshibaSetRRPara,"ax",%progbits 634 .align 1 635 .global ToshibaSetRRPara 636 .syntax unified 637 .thumb 638 .thumb_func 639 .fpu softvfp 640 .type ToshibaSetRRPara, %function 641ToshibaSetRRPara: 642 @ args = 0, pretend = 0, frame = 0 643 @ frame_needed = 0, uses_anonymous_args = 0 644 push {r3, r4, r5, r6, r7, r8, r10, lr} 645 add r7, r1, r1, lsl #2 646 ldr r10, .L97+12 647 mov r5, r0 648 mov r6, r1 649 movs r4, #0 650 ldr r8, .L97+16 651.L90: 652 ldrb r3, [r10] @ zero_extendqisi2 653 cmp r4, r3 654 bcc .L94 655 pop {r3, r4, r5, r6, r7, r8, r10, pc} 656.L94: 657 movs r3, #85 658 movs r0, #200 659 str r3, [r5, #8] 660 ldrsb r3, [r4, r8] 661 str r3, [r5, #4] 662 bl udelay 663 ldr r3, .L97 664 ldrb r3, [r3] @ zero_extendqisi2 665 cmp r3, #34 666 bne .L91 667 adds r3, r4, r7 668 add r3, r3, r8 669.L96: 670 ldrsb r3, [r3, #5] 671.L95: 672 str r3, [r5] 673 adds r4, r4, #1 674 b .L90 675.L91: 676 cmp r3, #35 677 bne .L93 678 ldr r3, .L97+4 679 adds r2, r4, r7 680 add r3, r3, r2 681 b .L96 682.L93: 683 ldr r3, .L97+8 684 ldrsb r3, [r3, r6] 685 b .L95 686.L98: 687 .align 2 688.L97: 689 .word .LANCHOR10 690 .word .LANCHOR11 691 .word .LANCHOR12 692 .word .LANCHOR13 693 .word .LANCHOR9 694 .size ToshibaSetRRPara, .-ToshibaSetRRPara 695 .section .text.SamsungSetRRPara,"ax",%progbits 696 .align 1 697 .global SamsungSetRRPara 698 .syntax unified 699 .thumb 700 .thumb_func 701 .fpu softvfp 702 .type SamsungSetRRPara, %function 703SamsungSetRRPara: 704 @ args = 0, pretend = 0, frame = 0 705 @ frame_needed = 0, uses_anonymous_args = 0 706 push {r3, r4, r5, r6, r7, r8, r10, lr} 707 mov r6, r0 708 ldr r7, .L102 709 movs r4, #0 710 mov r10, #161 711 ldr r8, .L102+4 712 add r1, r7, r1, lsl #2 713 adds r5, r1, #3 714.L100: 715 ldrb r3, [r8] @ zero_extendqisi2 716 cmp r4, r3 717 bcc .L101 718 pop {r3, r4, r5, r6, r7, r8, r10, pc} 719.L101: 720 movs r3, #0 721 str r10, [r6, #8] 722 str r3, [r6] 723 mov r0, #300 724 ldrsb r3, [r7, r4] 725 adds r4, r4, #1 726 str r3, [r6] 727 ldrsb r3, [r5, #1]! 728 str r3, [r6] 729 bl udelay 730 b .L100 731.L103: 732 .align 2 733.L102: 734 .word .LANCHOR14 735 .word .LANCHOR13 736 .size SamsungSetRRPara, .-SamsungSetRRPara 737 .global __aeabi_uidiv 738 .global __aeabi_uidivmod 739 .section .text.LogAddr2PhyAddr,"ax",%progbits 740 .align 1 741 .global LogAddr2PhyAddr 742 .syntax unified 743 .thumb 744 .thumb_func 745 .fpu softvfp 746 .type LogAddr2PhyAddr, %function 747LogAddr2PhyAddr: 748 @ args = 4, pretend = 0, frame = 8 749 @ frame_needed = 0, uses_anonymous_args = 0 750 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 751 mov r6, r3 752 ldr r3, .L109 753 mov r8, r1 754 mov r7, r2 755 mov r5, r0 756 ldrh r4, [r3, #14] 757 ldrh r3, [r3, #12] 758 smulbb r4, r4, r3 759 ldr r3, .L109+4 760 ldrh fp, [r3] 761 uxth r4, r4 762 ldr r3, .L109+8 763 ldrb r3, [r3] @ zero_extendqisi2 764 cmp r3, #1 765 ldr r3, [r0, #4] 766 it eq 767 lsleq r1, fp, #1 768 ubfx r2, r3, #10, #16 769 it eq 770 uxtheq fp, r1 771 mov r0, r2 772 str r3, [sp, #4] 773 mov r1, r4 774 str r2, [sp] 775 bl __aeabi_uidiv 776 ldr r2, [sp] 777 uxth r10, r0 778 mov r1, r4 779 mov r0, r2 780 bl __aeabi_uidivmod 781 ldr r3, [sp, #4] 782 cmp r8, #1 783 uxth r1, r1 784 ubfx r3, r3, #0, #10 785 bne .L106 786 ldr r2, .L109+12 787 ldrb r2, [r2] @ zero_extendqisi2 788 cbnz r2, .L106 789 ldr r2, .L109+16 790 ldrh r3, [r2, r3, lsl #1] 791.L106: 792 ldr r2, .L109+20 793 ldr r2, [r2, r10, lsl #2] 794 mla r1, fp, r1, r2 795 add r1, r1, r3 796 ldrb r3, [sp, #40] @ zero_extendqisi2 797 str r1, [r7] 798 str r10, [r6] 799 cmp r3, #1 800 bls .L108 801 ldr r0, [r5, #4] 802 ldr r3, [r5, #40] 803 add r0, r0, #1024 804 subs r3, r0, r3 805 rsbs r0, r3, #0 806 adcs r0, r0, r3 807.L107: 808 add sp, sp, #8 809 @ sp needed 810 pop {r4, r5, r6, r7, r8, r10, fp, pc} 811.L108: 812 movs r0, #0 813 b .L107 814.L110: 815 .align 2 816.L109: 817 .word .LANCHOR15 818 .word .LANCHOR4 819 .word .LANCHOR2 820 .word .LANCHOR16 821 .word .LANCHOR17 822 .word .LANCHOR18 823 .size LogAddr2PhyAddr, .-LogAddr2PhyAddr 824 .section .text.FlashReadStatusEN,"ax",%progbits 825 .align 1 826 .global FlashReadStatusEN 827 .syntax unified 828 .thumb 829 .thumb_func 830 .fpu softvfp 831 .type FlashReadStatusEN, %function 832FlashReadStatusEN: 833 @ args = 0, pretend = 0, frame = 0 834 @ frame_needed = 0, uses_anonymous_args = 0 835 ldr r3, .L123 836 push {r4, r5, r6, lr} 837 ldr r5, [r3, r0, lsl #3] 838 add r3, r3, r0, lsl #3 839 ldrb r4, [r3, #4] @ zero_extendqisi2 840 ldr r3, .L123+4 841 ldr r3, [r3] 842 ldrb r3, [r3, #8] @ zero_extendqisi2 843 cmp r3, #2 844 lsl r3, r4, #8 845 add r4, r4, #8 846 bne .L112 847 ldr r0, .L123+8 848 cbnz r2, .L113 849 ldrb r2, [r0, #13] @ zero_extendqisi2 850.L122: 851 add r3, r3, r5 852 str r2, [r3, #2056] 853 ldrb r0, [r0, #15] @ zero_extendqisi2 854 cbz r0, .L117 855 add r6, r5, r4, lsl #8 856 movs r2, #0 857.L116: 858 cmp r2, r0 859 bcc .L118 860.L117: 861 lsls r4, r4, #8 862 movs r0, #80 863 bl udelay 864 ldr r0, [r5, r4] 865 uxtb r0, r0 866 pop {r4, r5, r6, pc} 867.L113: 868 ldrb r2, [r0, #14] @ zero_extendqisi2 869 b .L122 870.L118: 871 lsls r3, r2, #3 872 adds r2, r2, #1 873 lsr r3, r1, r3 874 uxtb r3, r3 875 str r3, [r6, #4] 876 b .L116 877.L112: 878 add r3, r3, r5 879 movs r2, #112 880 str r2, [r3, #2056] 881 b .L117 882.L124: 883 .align 2 884.L123: 885 .word .LANCHOR0 886 .word .LANCHOR7 887 .word .LANCHOR8 888 .size FlashReadStatusEN, .-FlashReadStatusEN 889 .section .text.FlashWaitReadyEN,"ax",%progbits 890 .align 1 891 .global FlashWaitReadyEN 892 .syntax unified 893 .thumb 894 .thumb_func 895 .fpu softvfp 896 .type FlashWaitReadyEN, %function 897FlashWaitReadyEN: 898 @ args = 0, pretend = 0, frame = 0 899 @ frame_needed = 0, uses_anonymous_args = 0 900 push {r4, r5, r6, lr} 901 mov r4, r0 902 mov r5, r1 903 mov r6, r2 904.L129: 905 mov r2, r6 906 mov r1, r5 907 mov r0, r4 908 bl FlashReadStatusEN 909 cmp r0, #255 910 mov r3, r0 911 beq .L129 912 lsls r3, r3, #25 913 bpl .L129 914 pop {r4, r5, r6, pc} 915 .size FlashWaitReadyEN, .-FlashWaitReadyEN 916 .section .text.NandcReadDontCaseBusyEn,"ax",%progbits 917 .align 1 918 .global NandcReadDontCaseBusyEn 919 .syntax unified 920 .thumb 921 .thumb_func 922 .fpu softvfp 923 .type NandcReadDontCaseBusyEn, %function 924NandcReadDontCaseBusyEn: 925 @ args = 0, pretend = 0, frame = 0 926 @ frame_needed = 0, uses_anonymous_args = 0 927 @ link register save eliminated. 928 bx lr 929 .size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn 930 .section .text.NandcGetChipIf,"ax",%progbits 931 .align 1 932 .global NandcGetChipIf 933 .syntax unified 934 .thumb 935 .thumb_func 936 .fpu softvfp 937 .type NandcGetChipIf, %function 938NandcGetChipIf: 939 @ args = 0, pretend = 0, frame = 0 940 @ frame_needed = 0, uses_anonymous_args = 0 941 @ link register save eliminated. 942 ldr r2, .L134 943 add r3, r2, r0, lsl #3 944 ldr r0, [r2, r0, lsl #3] 945 ldrb r3, [r3, #4] @ zero_extendqisi2 946 adds r3, r3, #8 947 add r0, r0, r3, lsl #8 948 bx lr 949.L135: 950 .align 2 951.L134: 952 .word .LANCHOR0 953 .size NandcGetChipIf, .-NandcGetChipIf 954 .section .text.NandcSetDdrPara,"ax",%progbits 955 .align 1 956 .global NandcSetDdrPara 957 .syntax unified 958 .thumb 959 .thumb_func 960 .fpu softvfp 961 .type NandcSetDdrPara, %function 962NandcSetDdrPara: 963 @ args = 0, pretend = 0, frame = 0 964 @ frame_needed = 0, uses_anonymous_args = 0 965 @ link register save eliminated. 966 ldr r3, .L137 967 ldr r2, [r3] 968 lsls r3, r0, #8 969 orr r0, r3, r0, lsl #16 970 orr r0, r0, #1 971 str r0, [r2, #304] 972 bx lr 973.L138: 974 .align 2 975.L137: 976 .word .LANCHOR19 977 .size NandcSetDdrPara, .-NandcSetDdrPara 978 .section .text.NandcSetDdrDiv,"ax",%progbits 979 .align 1 980 .global NandcSetDdrDiv 981 .syntax unified 982 .thumb 983 .thumb_func 984 .fpu softvfp 985 .type NandcSetDdrDiv, %function 986NandcSetDdrDiv: 987 @ args = 0, pretend = 0, frame = 0 988 @ frame_needed = 0, uses_anonymous_args = 0 989 @ link register save eliminated. 990 ldr r3, .L140 991 orr r0, r0, #16640 992 ldr r3, [r3] 993 str r0, [r3, #344] 994 bx lr 995.L141: 996 .align 2 997.L140: 998 .word .LANCHOR19 999 .size NandcSetDdrDiv, .-NandcSetDdrDiv 1000 .section .text.NandcSetDdrMode,"ax",%progbits 1001 .align 1 1002 .global NandcSetDdrMode 1003 .syntax unified 1004 .thumb 1005 .thumb_func 1006 .fpu softvfp 1007 .type NandcSetDdrMode, %function 1008NandcSetDdrMode: 1009 @ args = 0, pretend = 0, frame = 0 1010 @ frame_needed = 0, uses_anonymous_args = 0 1011 @ link register save eliminated. 1012 ldr r3, .L145 1013 ldr r2, [r3] 1014 ldr r3, [r2] 1015 cbnz r0, .L143 1016 bfi r3, r0, #13, #1 1017.L144: 1018 str r3, [r2] 1019 bx lr 1020.L143: 1021 orr r3, r3, #253952 1022 b .L144 1023.L146: 1024 .align 2 1025.L145: 1026 .word .LANCHOR19 1027 .size NandcSetDdrMode, .-NandcSetDdrMode 1028 .section .text.NandcSetMode,"ax",%progbits 1029 .align 1 1030 .global NandcSetMode 1031 .syntax unified 1032 .thumb 1033 .thumb_func 1034 .fpu softvfp 1035 .type NandcSetMode, %function 1036NandcSetMode: 1037 @ args = 0, pretend = 0, frame = 0 1038 @ frame_needed = 0, uses_anonymous_args = 0 1039 @ link register save eliminated. 1040 ldr r3, .L154 1041 ands r1, r0, #6 1042 ldr r2, [r3] 1043 ldr r3, [r2] 1044 beq .L148 1045 lsls r1, r0, #29 1046 movw r1, #16641 1047 str r1, [r2, #344] 1048 orr r3, r3, #24576 1049 ldr r1, .L154+4 1050 bfc r3, #15, #1 1051 orr r3, r3, #196608 1052 it mi 1053 orrmi r3, r3, #32768 1054 str r1, [r2, #304] 1055 movs r1, #38 1056 str r1, [r2, #308] 1057 movs r1, #39 1058 str r1, [r2, #308] 1059.L150: 1060 str r3, [r2] 1061 movs r0, #0 1062 bx lr 1063.L148: 1064 bfi r3, r1, #13, #1 1065 b .L150 1066.L155: 1067 .align 2 1068.L154: 1069 .word .LANCHOR19 1070 .word 1710595 1071 .size NandcSetMode, .-NandcSetMode 1072 .section .text.NandcFlashCs,"ax",%progbits 1073 .align 1 1074 .global NandcFlashCs 1075 .syntax unified 1076 .thumb 1077 .thumb_func 1078 .fpu softvfp 1079 .type NandcFlashCs, %function 1080NandcFlashCs: 1081 @ args = 0, pretend = 0, frame = 0 1082 @ frame_needed = 0, uses_anonymous_args = 0 1083 @ link register save eliminated. 1084 ldr r3, .L157 1085 movs r2, #1 1086 ldr r1, [r3, r0, lsl #3] 1087 add r0, r3, r0, lsl #3 1088 ldrb r0, [r0, #4] @ zero_extendqisi2 1089 ldr r3, [r1] 1090 lsls r2, r2, r0 1091 bfi r3, r2, #0, #8 1092 str r3, [r1] 1093 bx lr 1094.L158: 1095 .align 2 1096.L157: 1097 .word .LANCHOR0 1098 .size NandcFlashCs, .-NandcFlashCs 1099 .section .text.NandcFlashDeCs,"ax",%progbits 1100 .align 1 1101 .global NandcFlashDeCs 1102 .syntax unified 1103 .thumb 1104 .thumb_func 1105 .fpu softvfp 1106 .type NandcFlashDeCs, %function 1107NandcFlashDeCs: 1108 @ args = 0, pretend = 0, frame = 0 1109 @ frame_needed = 0, uses_anonymous_args = 0 1110 @ link register save eliminated. 1111 ldr r3, .L160 1112 ldr r2, [r3, r0, lsl #3] 1113 ldr r3, [r2] 1114 bfc r3, #0, #8 1115 bfc r3, #17, #1 1116 str r3, [r2] 1117 bx lr 1118.L161: 1119 .align 2 1120.L160: 1121 .word .LANCHOR0 1122 .size NandcFlashDeCs, .-NandcFlashDeCs 1123 .section .text.HynixSetRRPara,"ax",%progbits 1124 .align 1 1125 .global HynixSetRRPara 1126 .syntax unified 1127 .thumb 1128 .thumb_func 1129 .fpu softvfp 1130 .type HynixSetRRPara, %function 1131HynixSetRRPara: 1132 @ args = 0, pretend = 0, frame = 8 1133 @ frame_needed = 0, uses_anonymous_args = 0 1134 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 1135 mov r6, r3 1136 ldr r3, .L171 1137 mov r5, r0 1138 mov r7, r1 1139 mov r10, r2 1140 ldr r3, [r3] 1141 ldrb r3, [r3, #19] @ zero_extendqisi2 1142 cmp r3, #6 1143 bne .L163 1144 movs r4, #20 1145 add r4, r4, r0, lsl #6 1146 add r3, r4, r6, lsl #2 1147.L169: 1148 ldr r4, .L171+4 1149.L170: 1150 add r4, r4, r3 1151.L164: 1152 ldr r3, .L171+8 1153 mov r0, r5 1154 subs r7, r7, #1 1155 subs r4, r4, #1 1156 add r7, r7, r10 1157 ldr r8, [r3, r5, lsl #3] 1158 add r3, r3, r5, lsl #3 1159 ldrb fp, [r3, #4] @ zero_extendqisi2 1160 bl NandcFlashCs 1161 movs r3, #54 1162 lsl fp, fp, #8 1163 add r0, r8, fp 1164 str r3, [r0, #2056] 1165 add r3, r10, #-1 1166 mov r10, r0 1167.L167: 1168 cmp r3, r7 1169 bne .L168 1170 movs r3, #22 1171 add r8, r8, fp 1172 str r3, [r8, #2056] 1173 mov r0, r5 1174 bl NandcFlashDeCs 1175 ldr r3, .L171+12 1176 strb r6, [r3, r5] 1177 add sp, sp, #8 1178 @ sp needed 1179 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1180.L163: 1181 cmp r3, #7 1182 bne .L165 1183 movs r4, #28 1184 movs r3, #160 1185 smlabb r3, r3, r0, r4 1186 movs r4, #10 1187 smlabb r3, r4, r6, r3 1188 b .L169 1189.L165: 1190 cmp r3, #8 1191 bne .L166 1192 add r4, r6, r6, lsl #2 1193 ldr r3, .L171+16 1194 b .L170 1195.L166: 1196 adds r4, r6, #2 1197 add r3, r4, r0, lsl #3 1198 ldr r4, .L171+4 1199 add r4, r4, r3, lsl #3 1200 adds r4, r4, #4 1201 b .L164 1202.L168: 1203 ldrb r2, [r3, #1]! @ zero_extendqisi2 1204 movs r0, #200 1205 str r2, [r10, #2052] 1206 str r3, [sp, #4] 1207 bl udelay 1208 ldrsb r2, [r4, #1]! 1209 ldr r3, [sp, #4] 1210 str r2, [r10, #2048] 1211 b .L167 1212.L172: 1213 .align 2 1214.L171: 1215 .word .LANCHOR7 1216 .word .LANCHOR20 1217 .word .LANCHOR0 1218 .word .LANCHOR21 1219 .word .LANCHOR20+28 1220 .size HynixSetRRPara, .-HynixSetRRPara 1221 .section .text.FlashSetReadRetryDefault,"ax",%progbits 1222 .align 1 1223 .global FlashSetReadRetryDefault 1224 .syntax unified 1225 .thumb 1226 .thumb_func 1227 .fpu softvfp 1228 .type FlashSetReadRetryDefault, %function 1229FlashSetReadRetryDefault: 1230 @ args = 0, pretend = 0, frame = 0 1231 @ frame_needed = 0, uses_anonymous_args = 0 1232 ldr r3, .L179 1233 push {r4, r5, r6, lr} 1234 ldr r3, [r3] 1235 ldrb r3, [r3, #19] @ zero_extendqisi2 1236 subs r3, r3, #1 1237 cmp r3, #7 1238 bhi .L173 1239 ldr r5, .L179+4 1240 movs r4, #0 1241 adds r6, r5, #4 1242.L176: 1243 ldr r3, .L179+8 1244 uxtb r0, r4 1245 ldrb r3, [r3, r4, lsl #3] @ zero_extendqisi2 1246 cmp r3, #173 1247 bne .L175 1248 movs r3, #0 1249 mov r2, r6 1250 ldrb r1, [r5, #1] @ zero_extendqisi2 1251 bl HynixSetRRPara 1252.L175: 1253 adds r4, r4, #1 1254 cmp r4, #4 1255 bne .L176 1256.L173: 1257 pop {r4, r5, r6, pc} 1258.L180: 1259 .align 2 1260.L179: 1261 .word .LANCHOR7 1262 .word .LANCHOR20 1263 .word .LANCHOR22 1264 .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault 1265 .section .text.FlashWaitCmdDone,"ax",%progbits 1266 .align 1 1267 .global FlashWaitCmdDone 1268 .syntax unified 1269 .thumb 1270 .thumb_func 1271 .fpu softvfp 1272 .type FlashWaitCmdDone, %function 1273FlashWaitCmdDone: 1274 @ args = 0, pretend = 0, frame = 0 1275 @ frame_needed = 0, uses_anonymous_args = 0 1276 ldr r2, .L188 1277 lsls r3, r0, #4 1278 push {r4, r5, r6, lr} 1279 mov r6, r0 1280 adds r4, r2, r3 1281 ldr r1, [r4, #8] 1282 cbz r1, .L183 1283 ldrb r5, [r2, r3] @ zero_extendqisi2 1284 mov r0, r5 1285 bl NandcFlashCs 1286 ldr r3, .L188+4 1287 mov r0, r5 1288 ldr r1, [r4, #4] 1289 ldr r2, [r3, r6, lsl #2] 1290 adds r2, r2, #0 1291 it ne 1292 movne r2, #1 1293 bl FlashWaitReadyEN 1294 mov r1, r0 1295 mov r0, r5 1296 bl NandcFlashDeCs 1297 ldr r3, [r4, #8] 1298 sbfx r1, r1, #0, #1 1299 ldr r2, [r4, #12] 1300 str r1, [r3] 1301 movs r3, #0 1302 str r3, [r4, #8] 1303 cbz r2, .L183 1304 str r1, [r2] 1305 str r3, [r4, #12] 1306.L183: 1307 movs r0, #0 1308 pop {r4, r5, r6, pc} 1309.L189: 1310 .align 2 1311.L188: 1312 .word .LANCHOR23 1313 .word .LANCHOR18 1314 .size FlashWaitCmdDone, .-FlashWaitCmdDone 1315 .section .text.NandcDelayns,"ax",%progbits 1316 .align 1 1317 .global NandcDelayns 1318 .syntax unified 1319 .thumb 1320 .thumb_func 1321 .fpu softvfp 1322 .type NandcDelayns, %function 1323NandcDelayns: 1324 @ args = 0, pretend = 0, frame = 0 1325 @ frame_needed = 0, uses_anonymous_args = 0 1326 push {r3, lr} 1327 bl udelay 1328 movs r0, #0 1329 pop {r3, pc} 1330 .size NandcDelayns, .-NandcDelayns 1331 .section .text.NandcWaitFlashReadyNoDelay,"ax",%progbits 1332 .align 1 1333 .global NandcWaitFlashReadyNoDelay 1334 .syntax unified 1335 .thumb 1336 .thumb_func 1337 .fpu softvfp 1338 .type NandcWaitFlashReadyNoDelay, %function 1339NandcWaitFlashReadyNoDelay: 1340 @ args = 0, pretend = 0, frame = 8 1341 @ frame_needed = 0, uses_anonymous_args = 0 1342 ldr r3, .L196 1343 push {r0, r1, r2, r4, r5, lr} 1344 ldr r4, .L196+4 1345 ldr r5, [r3, r0, lsl #3] 1346.L193: 1347 ldr r3, [r5] 1348 str r3, [sp, #4] 1349 ldr r3, [sp, #4] 1350 lsls r3, r3, #22 1351 bmi .L194 1352 movs r0, #10 1353 bl udelay 1354 subs r4, r4, #1 1355 bne .L193 1356 mov r0, #-1 1357.L191: 1358 add sp, sp, #12 1359 @ sp needed 1360 pop {r4, r5, pc} 1361.L194: 1362 movs r0, #0 1363 b .L191 1364.L197: 1365 .align 2 1366.L196: 1367 .word .LANCHOR0 1368 .word 100000 1369 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay 1370 .section .text.NandcWaitFlashReady,"ax",%progbits 1371 .align 1 1372 .global NandcWaitFlashReady 1373 .syntax unified 1374 .thumb 1375 .thumb_func 1376 .fpu softvfp 1377 .type NandcWaitFlashReady, %function 1378NandcWaitFlashReady: 1379 @ args = 0, pretend = 0, frame = 8 1380 @ frame_needed = 0, uses_anonymous_args = 0 1381 push {r0, r1, r2, r4, r5, lr} 1382 ldr r3, .L203 1383 ldr r4, .L203+4 1384 ldr r5, [r3, r0, lsl #3] 1385 movs r0, #130 1386 bl udelay 1387.L200: 1388 ldr r3, [r5] 1389 str r3, [sp, #4] 1390 ldr r3, [sp, #4] 1391 lsls r3, r3, #22 1392 bmi .L201 1393 movs r0, #10 1394 bl udelay 1395 subs r4, r4, #1 1396 bne .L200 1397 mov r0, #-1 1398.L198: 1399 add sp, sp, #12 1400 @ sp needed 1401 pop {r4, r5, pc} 1402.L201: 1403 movs r0, #0 1404 b .L198 1405.L204: 1406 .align 2 1407.L203: 1408 .word .LANCHOR0 1409 .word 100000 1410 .size NandcWaitFlashReady, .-NandcWaitFlashReady 1411 .section .text.FlashReset,"ax",%progbits 1412 .align 1 1413 .global FlashReset 1414 .syntax unified 1415 .thumb 1416 .thumb_func 1417 .fpu softvfp 1418 .type FlashReset, %function 1419FlashReset: 1420 @ args = 0, pretend = 0, frame = 0 1421 @ frame_needed = 0, uses_anonymous_args = 0 1422 ldr r3, .L206 1423 push {r4, r5, r6, lr} 1424 mov r4, r0 1425 ldr r5, [r3, r0, lsl #3] 1426 add r3, r3, r0, lsl #3 1427 ldrb r6, [r3, #4] @ zero_extendqisi2 1428 bl NandcFlashCs 1429 movs r3, #255 1430 mov r0, r4 1431 add r5, r5, r6, lsl #8 1432 str r3, [r5, #2056] 1433 bl NandcWaitFlashReady 1434 mov r0, r4 1435 pop {r4, r5, r6, lr} 1436 b NandcFlashDeCs 1437.L207: 1438 .align 2 1439.L206: 1440 .word .LANCHOR0 1441 .size FlashReset, .-FlashReset 1442 .section .text.flash_enter_slc_mode,"ax",%progbits 1443 .align 1 1444 .global flash_enter_slc_mode 1445 .syntax unified 1446 .thumb 1447 .thumb_func 1448 .fpu softvfp 1449 .type flash_enter_slc_mode, %function 1450flash_enter_slc_mode: 1451 @ args = 0, pretend = 0, frame = 0 1452 @ frame_needed = 0, uses_anonymous_args = 0 1453 push {r3, r4, r5, r6, r7, lr} 1454 mov r5, r0 1455 ldr r3, .L214 1456 ldrb r3, [r3] @ zero_extendqisi2 1457 cbz r3, .L208 1458 bl NandcFlashCs 1459 ldr r3, .L214+4 1460 ldr r6, [r3, r5, lsl #3] 1461 add r3, r3, r5, lsl #3 1462 ldrb r7, [r3, #4] @ zero_extendqisi2 1463 ldr r3, .L214+8 1464 ldrb r3, [r3, r5, lsl #3] @ zero_extendqisi2 1465 lsls r7, r7, #8 1466 cmp r3, #44 1467 bne .L210 1468 adds r4, r6, r7 1469 movs r3, #239 1470 str r3, [r4, #2056] 1471 movs r3, #145 1472 str r3, [r4, #2052] 1473 movs r0, #50 1474 bl udelay 1475 movs r3, #0 1476 movs r2, #1 1477 str r3, [r4, #2048] 1478 movs r0, #100 1479 str r2, [r4, #2048] 1480 str r3, [r4, #2048] 1481 str r3, [r4, #2048] 1482 bl udelay 1483.L210: 1484 mov r0, r5 1485 add r6, r6, r7 1486 bl NandcWaitFlashReadyNoDelay 1487 movs r3, #218 1488 mov r0, r5 1489 str r3, [r6, #2056] 1490 bl NandcWaitFlashReady 1491 ldr r3, .L214+12 1492 movs r2, #2 1493 strb r2, [r3] 1494.L208: 1495 pop {r3, r4, r5, r6, r7, pc} 1496.L215: 1497 .align 2 1498.L214: 1499 .word .LANCHOR16 1500 .word .LANCHOR0 1501 .word .LANCHOR22 1502 .word .LANCHOR24 1503 .size flash_enter_slc_mode, .-flash_enter_slc_mode 1504 .section .text.flash_exit_slc_mode,"ax",%progbits 1505 .align 1 1506 .global flash_exit_slc_mode 1507 .syntax unified 1508 .thumb 1509 .thumb_func 1510 .fpu softvfp 1511 .type flash_exit_slc_mode, %function 1512flash_exit_slc_mode: 1513 @ args = 0, pretend = 0, frame = 0 1514 @ frame_needed = 0, uses_anonymous_args = 0 1515 push {r3, r4, r5, r6, r7, lr} 1516 mov r5, r0 1517 ldr r3, .L222 1518 ldrb r3, [r3] @ zero_extendqisi2 1519 cbz r3, .L216 1520 bl NandcFlashCs 1521 ldr r3, .L222+4 1522 ldr r6, [r3, r5, lsl #3] 1523 add r3, r3, r5, lsl #3 1524 ldrb r7, [r3, #4] @ zero_extendqisi2 1525 ldr r3, .L222+8 1526 ldrb r3, [r3, r5, lsl #3] @ zero_extendqisi2 1527 lsls r7, r7, #8 1528 cmp r3, #44 1529 bne .L218 1530 adds r4, r6, r7 1531 movs r3, #239 1532 str r3, [r4, #2056] 1533 movs r3, #145 1534 str r3, [r4, #2052] 1535 movs r0, #50 1536 bl udelay 1537 movs r3, #2 1538 movs r0, #100 1539 str r3, [r4, #2048] 1540 movs r3, #1 1541 str r3, [r4, #2048] 1542 movs r3, #0 1543 str r3, [r4, #2048] 1544 str r3, [r4, #2048] 1545 bl udelay 1546.L218: 1547 mov r0, r5 1548 add r6, r6, r7 1549 bl NandcWaitFlashReadyNoDelay 1550 movs r3, #223 1551 mov r0, r5 1552 str r3, [r6, #2056] 1553 bl NandcWaitFlashReady 1554 ldr r3, .L222+12 1555 movs r2, #0 1556 strb r2, [r3] 1557.L216: 1558 pop {r3, r4, r5, r6, r7, pc} 1559.L223: 1560 .align 2 1561.L222: 1562 .word .LANCHOR16 1563 .word .LANCHOR0 1564 .word .LANCHOR22 1565 .word .LANCHOR24 1566 .size flash_exit_slc_mode, .-flash_exit_slc_mode 1567 .section .text.FlashEraseBlock,"ax",%progbits 1568 .align 1 1569 .global FlashEraseBlock 1570 .syntax unified 1571 .thumb 1572 .thumb_func 1573 .fpu softvfp 1574 .type FlashEraseBlock, %function 1575FlashEraseBlock: 1576 @ args = 0, pretend = 0, frame = 0 1577 @ frame_needed = 0, uses_anonymous_args = 0 1578 push {r4, r5, r6, lr} 1579 mov r4, r0 1580 mov r5, r1 1581 mov r6, r2 1582 bl NandcWaitFlashReady 1583 mov r0, r4 1584 bl NandcFlashCs 1585 mov r2, r6 1586 mov r1, r5 1587 mov r0, r4 1588 bl FlashEraseCmd 1589 mov r0, r4 1590 bl NandcWaitFlashReady 1591 mov r1, r5 1592 mov r0, r4 1593 bl FlashReadStatus 1594 mov r1, r0 1595 mov r0, r4 1596 bl NandcFlashDeCs 1597 and r0, r1, #1 1598 pop {r4, r5, r6, pc} 1599 .size FlashEraseBlock, .-FlashEraseBlock 1600 .section .text.FlashSetInterfaceMode,"ax",%progbits 1601 .align 1 1602 .global FlashSetInterfaceMode 1603 .syntax unified 1604 .thumb 1605 .thumb_func 1606 .fpu softvfp 1607 .type FlashSetInterfaceMode, %function 1608FlashSetInterfaceMode: 1609 @ args = 0, pretend = 0, frame = 8 1610 @ frame_needed = 0, uses_anonymous_args = 0 1611 ldr r3, .L253 1612 mov ip, #128 1613 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 1614 movs r5, #0 1615 movs r7, #239 1616 mov lr, #1 1617 mov r8, #35 1618 mov r10, #32 1619 ldrb r3, [r3] @ zero_extendqisi2 1620 and r2, r3, #4 1621 and r3, r3, #1 1622 str r2, [sp, #4] 1623 mov r2, r5 1624 str r3, [sp] 1625.L235: 1626 ldr r3, .L253+4 1627 ldrb r4, [r5, r3] @ zero_extendqisi2 1628 cmp r4, #152 1629 beq .L226 1630 cmp r4, #69 1631 beq .L226 1632 cmp r4, #173 1633 beq .L226 1634 cmp r4, #44 1635 bne .L227 1636.L226: 1637 ldr r3, .L253+8 1638 cmp r0, #1 1639 ldr r1, [r5, r3] 1640 add r3, r3, r5 1641 ldrb r3, [r3, #4] @ zero_extendqisi2 1642 bne .L228 1643 ldr r6, [sp] 1644 cbz r6, .L227 1645 lsls r3, r3, #8 1646 cmp r4, #173 1647 add fp, r1, r3 1648 str r7, [fp, #2056] 1649 bne .L229 1650 str r0, [fp, #2052] 1651.L252: 1652 str r2, [fp, #2048] 1653 b .L233 1654.L229: 1655 cmp r4, #44 1656 ittet eq 1657 moveq r4, #5 1658 streq r0, [fp, #2052] 1659 strne ip, [fp, #2052] 1660 streq r4, [fp, #2048] 1661 it ne 1662 strne r0, [fp, #2048] 1663.L233: 1664 add r3, r3, r1 1665 str r2, [r3, #2048] 1666 str r2, [r3, #2048] 1667 str r2, [r3, #2048] 1668.L227: 1669 adds r5, r5, #8 1670 cmp r5, #32 1671 bne .L235 1672 movs r0, #0 1673 bl NandcWaitFlashReady 1674 movs r0, #0 1675 add sp, sp, #8 1676 @ sp needed 1677 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1678.L228: 1679 ldr r6, [sp, #4] 1680 cmp r6, #0 1681 beq .L227 1682 lsls r3, r3, #8 1683 cmp r4, #173 1684 add fp, r1, r3 1685 str r7, [fp, #2056] 1686 bne .L232 1687 str lr, [fp, #2052] 1688 str r10, [fp, #2048] 1689 b .L233 1690.L232: 1691 cmp r4, #44 1692 bne .L234 1693 str lr, [fp, #2052] 1694 str r8, [fp, #2048] 1695 b .L233 1696.L234: 1697 str ip, [fp, #2052] 1698 b .L252 1699.L254: 1700 .align 2 1701.L253: 1702 .word .LANCHOR25 1703 .word .LANCHOR22 1704 .word .LANCHOR0 1705 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode 1706 .section .text.SandiskSetRRPara,"ax",%progbits 1707 .align 1 1708 .global SandiskSetRRPara 1709 .syntax unified 1710 .thumb 1711 .thumb_func 1712 .fpu softvfp 1713 .type SandiskSetRRPara, %function 1714SandiskSetRRPara: 1715 @ args = 0, pretend = 0, frame = 0 1716 @ frame_needed = 0, uses_anonymous_args = 0 1717 push {r3, r4, r5, r6, r7, lr} 1718 movs r3, #239 1719 str r3, [r0, #8] 1720 movs r3, #17 1721 mov r5, r0 1722 mov r4, r1 1723 str r3, [r0, #4] 1724 movs r0, #200 1725 bl udelay 1726 ldr r3, .L261 1727 add r4, r4, r4, lsl #2 1728 ldr r6, .L261+4 1729 movs r2, #0 1730 ldr r7, .L261+8 1731 ldrb r1, [r3] @ zero_extendqisi2 1732 ldr r3, .L261+12 1733 ldrb r0, [r3] @ zero_extendqisi2 1734.L256: 1735 cmp r2, r1 1736 bcc .L259 1737 movs r0, #0 1738 pop {r3, r4, r5, r6, r7, lr} 1739 b NandcWaitFlashReady 1740.L259: 1741 adds r3, r2, r4 1742 cmp r0, #67 1743 ite eq 1744 addeq r3, r3, r7 1745 addne r3, r3, r6 1746 ldrsb r3, [r3, #5] 1747 adds r2, r2, #1 1748 str r3, [r5] 1749 b .L256 1750.L262: 1751 .align 2 1752.L261: 1753 .word .LANCHOR13 1754 .word .LANCHOR11 1755 .word .LANCHOR9 1756 .word .LANCHOR10 1757 .size SandiskSetRRPara, .-SandiskSetRRPara 1758 .section .text.micron_auto_read_calibration_config,"ax",%progbits 1759 .align 1 1760 .global micron_auto_read_calibration_config 1761 .syntax unified 1762 .thumb 1763 .thumb_func 1764 .fpu softvfp 1765 .type micron_auto_read_calibration_config, %function 1766micron_auto_read_calibration_config: 1767 @ args = 0, pretend = 0, frame = 0 1768 @ frame_needed = 0, uses_anonymous_args = 0 1769 push {r4, r5, r6, lr} 1770 mov r5, r0 1771 mov r6, r1 1772 bl NandcWaitFlashReady 1773 ldr r0, .L264 1774 ldr r4, [r0, r5, lsl #3] 1775 add r0, r0, r5, lsl #3 1776 ldrb r3, [r0, #4] @ zero_extendqisi2 1777 movs r0, #200 1778 add r4, r4, r3, lsl #8 1779 movs r3, #239 1780 str r3, [r4, #2056] 1781 movs r3, #150 1782 str r3, [r4, #2052] 1783 bl udelay 1784 movs r3, #0 1785 str r6, [r4, #2048] 1786 str r3, [r4, #2048] 1787 str r3, [r4, #2048] 1788 str r3, [r4, #2048] 1789 pop {r4, r5, r6, pc} 1790.L265: 1791 .align 2 1792.L264: 1793 .word .LANCHOR0 1794 .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config 1795 .section .text.FlashEraseSLc2KBlocks,"ax",%progbits 1796 .align 1 1797 .global FlashEraseSLc2KBlocks 1798 .syntax unified 1799 .thumb 1800 .thumb_func 1801 .fpu softvfp 1802 .type FlashEraseSLc2KBlocks, %function 1803FlashEraseSLc2KBlocks: 1804 @ args = 0, pretend = 0, frame = 8 1805 @ frame_needed = 0, uses_anonymous_args = 0 1806 push {r4, r5, r6, r7, r8, r10, lr} 1807 mov r7, r1 1808 ldr r8, .L276+12 1809 sub sp, sp, #20 1810 mov r5, r0 1811 movs r6, #0 1812 ldr r10, .L276+16 1813.L267: 1814 cmp r6, r7 1815 bne .L272 1816 movs r0, #0 1817 add sp, sp, #20 1818 @ sp needed 1819 pop {r4, r5, r6, r7, r8, r10, pc} 1820.L272: 1821 subs r3, r7, r6 1822 add r2, sp, #8 1823 uxtb r3, r3 1824 movs r1, #0 1825 mov r0, r5 1826 str r3, [sp] 1827 add r3, sp, #12 1828 bl LogAddr2PhyAddr 1829 ldr r3, [sp, #12] 1830 ldrb r2, [r8] @ zero_extendqisi2 1831 cmp r2, r3 1832 bhi .L268 1833 mov r3, #-1 1834 str r3, [r5] 1835.L269: 1836 adds r6, r6, #1 1837 adds r5, r5, #36 1838 b .L267 1839.L268: 1840 ldrb r4, [r10, r3] @ zero_extendqisi2 1841 lsls r3, r3, #4 1842 ldr r2, .L276 1843 mov r0, r4 1844 strb r4, [r2, r3] 1845 bl NandcWaitFlashReady 1846 mov r0, r4 1847 bl NandcFlashCs 1848 movs r2, #0 1849 ldr r1, [sp, #8] 1850 mov r0, r4 1851 bl FlashEraseCmd 1852 mov r0, r4 1853 bl NandcWaitFlashReady 1854 ldr r1, [sp, #8] 1855 mov r0, r4 1856 bl FlashReadStatus 1857 ldr r3, .L276+4 1858 sbfx r0, r0, #0, #1 1859 str r0, [r5] 1860 movs r2, #0 1861 ldr r1, [sp, #8] 1862 mov r0, r4 1863 ldr r3, [r3] 1864 add r1, r1, r3 1865 bl FlashEraseCmd 1866 mov r0, r4 1867 bl NandcWaitFlashReady 1868 ldr r1, [sp, #8] 1869 mov r0, r4 1870 bl FlashReadStatus 1871 lsls r3, r0, #31 1872 itt mi 1873 movmi r3, #-1 1874 strmi r3, [r5] 1875 ldr r3, [r5] 1876 adds r3, r3, #1 1877 bne .L271 1878 ldr r1, [sp, #8] 1879 ldr r0, .L276+8 1880 bl printf 1881.L271: 1882 mov r0, r4 1883 bl NandcFlashDeCs 1884 b .L269 1885.L277: 1886 .align 2 1887.L276: 1888 .word .LANCHOR23 1889 .word .LANCHOR4 1890 .word .LC1 1891 .word .LANCHOR26 1892 .word .LANCHOR27 1893 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks 1894 .section .text.FlashEraseBlocks,"ax",%progbits 1895 .align 1 1896 .global FlashEraseBlocks 1897 .syntax unified 1898 .thumb 1899 .thumb_func 1900 .fpu softvfp 1901 .type FlashEraseBlocks, %function 1902FlashEraseBlocks: 1903 @ args = 0, pretend = 0, frame = 16 1904 @ frame_needed = 0, uses_anonymous_args = 0 1905 ldr r3, .L305 1906 push {r4, r5, r6, r7, r8, r10, fp, lr} 1907 mov r8, r0 1908 sub sp, sp, #24 1909 mov fp, r1 1910 mov r7, r2 1911 ldrb r4, [r3] @ zero_extendqisi2 1912 cbnz r4, .L279 1913 ldr r10, .L305+8 1914.L280: 1915 cmp r4, r7 1916 bcc .L289 1917 ldr r5, .L305+4 1918 movs r4, #0 1919 ldr r6, .L305+8 1920.L290: 1921 ldr r3, .L305+12 1922 ldrb r3, [r3] @ zero_extendqisi2 1923 cmp r4, r3 1924 bcc .L292 1925 movs r0, #0 1926 b .L278 1927.L279: 1928 mov r1, r2 1929 bl FlashEraseSLc2KBlocks 1930.L278: 1931 add sp, sp, #24 1932 @ sp needed 1933 pop {r4, r5, r6, r7, r8, r10, fp, pc} 1934.L289: 1935 movs r5, #36 1936 add r2, sp, #16 1937 muls r5, r4, r5 1938 movs r1, #0 1939 add r3, r8, r5 1940 str r3, [sp, #12] 1941 subs r3, r7, r4 1942 uxtb r3, r3 1943 ldr r0, [sp, #12] 1944 str r3, [sp] 1945 add r3, sp, #20 1946 bl LogAddr2PhyAddr 1947 ldr r3, .L305+12 1948 mov r6, r0 1949 ldr r0, [sp, #20] 1950 ldrb r3, [r3] @ zero_extendqisi2 1951 cmp r3, r0 1952 bhi .L282 1953 mov r3, #-1 1954 str r3, [r8, r5] 1955.L283: 1956 adds r4, r4, #1 1957 b .L280 1958.L282: 1959 ldr r3, .L305+16 1960 ldrb r3, [r3] @ zero_extendqisi2 1961 cmp r3, #0 1962 add r3, r10, r0, lsl #4 1963 it eq 1964 moveq r6, #0 1965 ldr r3, [r3, #8] 1966 cbz r3, .L285 1967 uxtb r0, r0 1968 bl FlashWaitCmdDone 1969.L285: 1970 ldr r1, [sp, #20] 1971 ldr r0, [sp, #12] 1972 lsls r2, r1, #4 1973 add r3, r10, r2 1974 str r0, [r3, #8] 1975 movs r0, #0 1976 str r0, [r3, #12] 1977 ldr r0, [sp, #16] 1978 str r0, [r3, #4] 1979 cbz r6, .L286 1980 adds r5, r5, #36 1981 add r5, r5, r8 1982 str r5, [r3, #12] 1983.L286: 1984 ldr r3, .L305+20 1985 ldrb r5, [r3, r1] @ zero_extendqisi2 1986 mov r0, r5 1987 strb r5, [r10, r2] 1988 bl NandcFlashCs 1989 cmp fp, #1 1990 mov r0, r5 1991 bne .L287 1992 ldr r3, .L305+4 1993 ldrb r3, [r3] @ zero_extendqisi2 1994 cbz r3, .L287 1995 bl flash_enter_slc_mode 1996.L288: 1997 ldr r3, .L305+24 1998 mov r0, r5 1999 ldr r2, [sp, #20] 2000 add r4, r4, r6 2001 ldr r1, [sp, #16] 2002 ldr r2, [r3, r2, lsl #2] 2003 adds r2, r2, #0 2004 it ne 2005 movne r2, #1 2006 bl FlashWaitReadyEN 2007 mov r2, r6 2008 ldr r1, [sp, #16] 2009 mov r0, r5 2010 bl FlashEraseCmd 2011 mov r0, r5 2012 bl NandcFlashDeCs 2013 b .L283 2014.L287: 2015 bl flash_exit_slc_mode 2016 b .L288 2017.L292: 2018 uxtb r0, r4 2019 bl FlashWaitCmdDone 2020 cmp fp, #1 2021 bne .L291 2022 ldrb r3, [r5] @ zero_extendqisi2 2023 cbz r3, .L291 2024 lsls r3, r4, #4 2025 ldrb r0, [r6, r3] @ zero_extendqisi2 2026 bl flash_exit_slc_mode 2027.L291: 2028 adds r4, r4, #1 2029 b .L290 2030.L306: 2031 .align 2 2032.L305: 2033 .word .LANCHOR2 2034 .word .LANCHOR16 2035 .word .LANCHOR23 2036 .word .LANCHOR26 2037 .word .LANCHOR28 2038 .word .LANCHOR27 2039 .word .LANCHOR18 2040 .size FlashEraseBlocks, .-FlashEraseBlocks 2041 .section .text.FlashReadDpCmd,"ax",%progbits 2042 .align 1 2043 .global FlashReadDpCmd 2044 .syntax unified 2045 .thumb 2046 .thumb_func 2047 .fpu softvfp 2048 .type FlashReadDpCmd, %function 2049FlashReadDpCmd: 2050 @ args = 0, pretend = 0, frame = 0 2051 @ frame_needed = 0, uses_anonymous_args = 0 2052 ldr r3, .L313 2053 push {r4, r5, r6, r7, r8, r10, fp, lr} 2054 mov r8, r1 2055 ldr lr, .L313+8 2056 uxtb fp, r2 2057 lsr r10, r2, #8 2058 lsrs r5, r2, #16 2059 ldr r4, [r3, r0, lsl #3] 2060 add r3, r3, r0, lsl #3 2061 ldr r2, [lr] 2062 mov r7, r0 2063 ldrb r6, [r3, #4] @ zero_extendqisi2 2064 uxtb ip, r8 2065 ldr r3, .L313+4 2066 lsr r0, r8, #8 2067 ldrb r2, [r2, #7] @ zero_extendqisi2 2068 ldrb r1, [r3, #16] @ zero_extendqisi2 2069 lsls r6, r6, #8 2070 cmp r1, #1 2071 lsr r1, r8, #16 2072 bne .L308 2073 cmp r2, #1 2074 ittt eq 2075 addeq r2, r4, r6 2076 moveq lr, #38 2077 streq lr, [r2, #2056] 2078 add r4, r4, r6 2079 ldrb r2, [r3, #8] @ zero_extendqisi2 2080 movs r6, #0 2081 str r2, [r4, #2056] 2082 ldrb r3, [r3, #9] @ zero_extendqisi2 2083 str r6, [r4, #2052] 2084 str r6, [r4, #2052] 2085 str ip, [r4, #2052] 2086 str r0, [r4, #2052] 2087 mov r0, r7 2088 str r1, [r4, #2052] 2089 str r3, [r4, #2056] 2090 bl NandcWaitFlashReady 2091 str r6, [r4, #2056] 2092 str r6, [r4, #2052] 2093 str r6, [r4, #2052] 2094.L312: 2095 movs r3, #48 2096 str fp, [r4, #2052] 2097 mov r1, r8 2098 str r10, [r4, #2052] 2099 mov r0, r7 2100 str r5, [r4, #2052] 2101 str r3, [r4, #2056] 2102 pop {r4, r5, r6, r7, r8, r10, fp, lr} 2103 b FlashSetRandomizer 2104.L308: 2105 cmp r2, #1 2106 ittt eq 2107 addeq r2, r4, r6 2108 moveq lr, #38 2109 streq lr, [r2, #2056] 2110 add r4, r4, r6 2111 ldrb r2, [r3, #8] @ zero_extendqisi2 2112 str r2, [r4, #2056] 2113 ldrb r3, [r3, #9] @ zero_extendqisi2 2114 str ip, [r4, #2052] 2115 str r0, [r4, #2052] 2116 str r1, [r4, #2052] 2117 str r3, [r4, #2056] 2118 b .L312 2119.L314: 2120 .align 2 2121.L313: 2122 .word .LANCHOR0 2123 .word .LANCHOR8 2124 .word .LANCHOR7 2125 .size FlashReadDpCmd, .-FlashReadDpCmd 2126 .section .text.ftl_flash_de_init,"ax",%progbits 2127 .align 1 2128 .global ftl_flash_de_init 2129 .syntax unified 2130 .thumb 2131 .thumb_func 2132 .fpu softvfp 2133 .type ftl_flash_de_init, %function 2134ftl_flash_de_init: 2135 @ args = 0, pretend = 0, frame = 0 2136 @ frame_needed = 0, uses_anonymous_args = 0 2137 push {r4, lr} 2138 movs r0, #0 2139 bl NandcWaitFlashReady 2140 bl FlashSetReadRetryDefault 2141 ldr r3, .L325 2142 ldr r0, [r3] 2143 cbz r0, .L316 2144 movs r0, #0 2145 bl flash_enter_slc_mode 2146.L317: 2147 ldr r4, .L325+4 2148 ldrb r3, [r4] @ zero_extendqisi2 2149 cbz r3, .L318 2150 ldr r3, .L325+8 2151 ldrb r3, [r3] @ zero_extendqisi2 2152 lsls r3, r3, #31 2153 bpl .L318 2154 movs r0, #1 2155 bl FlashSetInterfaceMode 2156 movs r0, #1 2157 bl NandcSetMode 2158 movs r3, #0 2159 strb r3, [r4] 2160.L318: 2161 ldr r3, .L325+12 2162 movs r0, #0 2163 ldr r3, [r3] 2164 str r0, [r3, #336] 2165 pop {r4, pc} 2166.L316: 2167 bl flash_exit_slc_mode 2168 b .L317 2169.L326: 2170 .align 2 2171.L325: 2172 .word .LANCHOR29 2173 .word .LANCHOR30 2174 .word .LANCHOR25 2175 .word .LANCHOR0 2176 .size ftl_flash_de_init, .-ftl_flash_de_init 2177 .section .text.NandcRandmzSel,"ax",%progbits 2178 .align 1 2179 .global NandcRandmzSel 2180 .syntax unified 2181 .thumb 2182 .thumb_func 2183 .fpu softvfp 2184 .type NandcRandmzSel, %function 2185NandcRandmzSel: 2186 @ args = 0, pretend = 0, frame = 0 2187 @ frame_needed = 0, uses_anonymous_args = 0 2188 @ link register save eliminated. 2189 ldr r3, .L328 2190 ldr r3, [r3, r0, lsl #3] 2191 str r1, [r3, #336] 2192 bx lr 2193.L329: 2194 .align 2 2195.L328: 2196 .word .LANCHOR0 2197 .size NandcRandmzSel, .-NandcRandmzSel 2198 .section .text.NandcTimeCfg,"ax",%progbits 2199 .align 1 2200 .global NandcTimeCfg 2201 .syntax unified 2202 .thumb 2203 .thumb_func 2204 .fpu softvfp 2205 .type NandcTimeCfg, %function 2206NandcTimeCfg: 2207 @ args = 0, pretend = 0, frame = 0 2208 @ frame_needed = 0, uses_anonymous_args = 0 2209 @ link register save eliminated. 2210 ldr r3, .L335 2211 cmp r0, #35 2212 ldr r3, [r3] 2213 bhi .L331 2214 movw r2, #4193 2215.L334: 2216 str r2, [r3, #4] 2217 bx lr 2218.L331: 2219 cmp r0, #99 2220 ite hi 2221 movwhi r2, #8322 2222 movwls r2, #4225 2223 b .L334 2224.L336: 2225 .align 2 2226.L335: 2227 .word .LANCHOR19 2228 .size NandcTimeCfg, .-NandcTimeCfg 2229 .section .text.FlashTimingCfg,"ax",%progbits 2230 .align 1 2231 .global FlashTimingCfg 2232 .syntax unified 2233 .thumb 2234 .thumb_func 2235 .fpu softvfp 2236 .type FlashTimingCfg, %function 2237FlashTimingCfg: 2238 @ args = 0, pretend = 0, frame = 0 2239 @ frame_needed = 0, uses_anonymous_args = 0 2240 @ link register save eliminated. 2241 ldr r3, .L338 2242 ldrb r0, [r3, #21] @ zero_extendqisi2 2243 b NandcTimeCfg 2244.L339: 2245 .align 2 2246.L338: 2247 .word .LANCHOR31 2248 .size FlashTimingCfg, .-FlashTimingCfg 2249 .section .text.NandcBchSel,"ax",%progbits 2250 .align 1 2251 .global NandcBchSel 2252 .syntax unified 2253 .thumb 2254 .thumb_func 2255 .fpu softvfp 2256 .type NandcBchSel, %function 2257NandcBchSel: 2258 @ args = 0, pretend = 0, frame = 0 2259 @ frame_needed = 0, uses_anonymous_args = 0 2260 ldr r3, .L348 2261 movs r1, #0 2262 push {r4, lr} 2263 movs r4, #16 2264 cmp r0, r4 2265 ldr r2, [r3] 2266 mov r3, #1 2267 str r3, [r2, #8] 2268 ldr r3, .L348+4 2269 str r0, [r3] 2270 mov r3, r1 2271 bfi r3, r4, #8, #8 2272 bfi r3, r1, #18, #1 2273 bne .L341 2274.L344: 2275 bfc r3, #4, #1 2276.L342: 2277 orr r3, r3, #1 2278 str r3, [r2, #12] 2279 pop {r4, pc} 2280.L341: 2281 cmp r0, #24 2282 bne .L343 2283 orr r3, r3, #16 2284 b .L342 2285.L343: 2286 cmp r0, #40 2287 orr r3, r3, #262144 2288 orr r3, r3, #16 2289 bne .L342 2290 b .L344 2291.L349: 2292 .align 2 2293.L348: 2294 .word .LANCHOR19 2295 .word .LANCHOR32 2296 .size NandcBchSel, .-NandcBchSel 2297 .section .text.FlashBchSel,"ax",%progbits 2298 .align 1 2299 .global FlashBchSel 2300 .syntax unified 2301 .thumb 2302 .thumb_func 2303 .fpu softvfp 2304 .type FlashBchSel, %function 2305FlashBchSel: 2306 @ args = 0, pretend = 0, frame = 0 2307 @ frame_needed = 0, uses_anonymous_args = 0 2308 @ link register save eliminated. 2309 ldr r3, .L351 2310 strb r0, [r3] 2311 b NandcBchSel 2312.L352: 2313 .align 2 2314.L351: 2315 .word .LANCHOR33 2316 .size FlashBchSel, .-FlashBchSel 2317 .section .text.ftl_nandc_get_irq_status,"ax",%progbits 2318 .align 1 2319 .global ftl_nandc_get_irq_status 2320 .syntax unified 2321 .thumb 2322 .thumb_func 2323 .fpu softvfp 2324 .type ftl_nandc_get_irq_status, %function 2325ftl_nandc_get_irq_status: 2326 @ args = 0, pretend = 0, frame = 0 2327 @ frame_needed = 0, uses_anonymous_args = 0 2328 @ link register save eliminated. 2329 ldr r0, [r0, #372] 2330 bx lr 2331 .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status 2332 .section .text.rk_nandc_flash_ready,"ax",%progbits 2333 .align 1 2334 .global rk_nandc_flash_ready 2335 .syntax unified 2336 .thumb 2337 .thumb_func 2338 .fpu softvfp 2339 .type rk_nandc_flash_ready, %function 2340rk_nandc_flash_ready: 2341 @ args = 0, pretend = 0, frame = 0 2342 @ frame_needed = 0, uses_anonymous_args = 0 2343 @ link register save eliminated. 2344 bx lr 2345 .size rk_nandc_flash_ready, .-rk_nandc_flash_ready 2346 .section .text.NandcIqrWaitFlashReady,"ax",%progbits 2347 .align 1 2348 .global NandcIqrWaitFlashReady 2349 .syntax unified 2350 .thumb 2351 .thumb_func 2352 .fpu softvfp 2353 .type NandcIqrWaitFlashReady, %function 2354NandcIqrWaitFlashReady: 2355 @ args = 0, pretend = 0, frame = 0 2356 @ frame_needed = 0, uses_anonymous_args = 0 2357 @ link register save eliminated. 2358 bx lr 2359 .size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady 2360 .section .text.rk_nandc_flash_xfer_completed,"ax",%progbits 2361 .align 1 2362 .global rk_nandc_flash_xfer_completed 2363 .syntax unified 2364 .thumb 2365 .thumb_func 2366 .fpu softvfp 2367 .type rk_nandc_flash_xfer_completed, %function 2368rk_nandc_flash_xfer_completed: 2369 @ args = 0, pretend = 0, frame = 0 2370 @ frame_needed = 0, uses_anonymous_args = 0 2371 @ link register save eliminated. 2372 bx lr 2373 .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed 2374 .section .text.NandcSendDumpDataStart,"ax",%progbits 2375 .align 1 2376 .global NandcSendDumpDataStart 2377 .syntax unified 2378 .thumb 2379 .thumb_func 2380 .fpu softvfp 2381 .type NandcSendDumpDataStart, %function 2382NandcSendDumpDataStart: 2383 @ args = 0, pretend = 0, frame = 8 2384 @ frame_needed = 0, uses_anonymous_args = 0 2385 @ link register save eliminated. 2386 ldr r2, [r0, #16] 2387 sub sp, sp, #8 2388 ldr r3, .L358 2389 str r2, [sp, #4] 2390 ldr r2, [sp, #4] 2391 bfc r2, #2, #1 2392 str r2, [sp, #4] 2393 ldr r2, [sp, #4] 2394 str r2, [r0, #16] 2395 str r3, [r0, #8] 2396 orr r3, r3, #4 2397 str r3, [r0, #8] 2398 add sp, sp, #8 2399 @ sp needed 2400 bx lr 2401.L359: 2402 .align 2 2403.L358: 2404 .word 538969130 2405 .size NandcSendDumpDataStart, .-NandcSendDumpDataStart 2406 .section .text.NandcSendDumpDataDone,"ax",%progbits 2407 .align 1 2408 .global NandcSendDumpDataDone 2409 .syntax unified 2410 .thumb 2411 .thumb_func 2412 .fpu softvfp 2413 .type NandcSendDumpDataDone, %function 2414NandcSendDumpDataDone: 2415 @ args = 0, pretend = 0, frame = 8 2416 @ frame_needed = 0, uses_anonymous_args = 0 2417 @ link register save eliminated. 2418 sub sp, sp, #8 2419.L361: 2420 ldr r3, [r0, #8] 2421 str r3, [sp, #4] 2422 ldr r3, [sp, #4] 2423 lsls r3, r3, #11 2424 bpl .L361 2425 add sp, sp, #8 2426 @ sp needed 2427 bx lr 2428 .size NandcSendDumpDataDone, .-NandcSendDumpDataDone 2429 .section .text.NandcXferStart,"ax",%progbits 2430 .align 1 2431 .global NandcXferStart 2432 .syntax unified 2433 .thumb 2434 .thumb_func 2435 .fpu softvfp 2436 .type NandcXferStart, %function 2437NandcXferStart: 2438 @ args = 8, pretend = 0, frame = 24 2439 @ frame_needed = 0, uses_anonymous_args = 0 2440 push {r4, r5, r6, r7, r8, r10, fp, lr} 2441 sub sp, sp, #24 2442 mov r7, r1 2443 ldr r1, [sp, #60] 2444 str r2, [sp, #4] 2445 ldr fp, [sp, #56] 2446 cmp r1, #0 2447 bne .L378 2448 adds r5, fp, #0 2449 it ne 2450 movne r5, #1 2451.L365: 2452 ldr r1, .L383 2453 movs r4, #0 2454 ldr r6, [r1, r0, lsl #3] 2455 add r1, r1, r0, lsl #3 2456 movs r0, #16 2457 ldr r8, [r6, #12] 2458 ldrb r1, [r1, #4] @ zero_extendqisi2 2459 bfi r8, r0, #8, #8 2460 bfi r8, r4, #3, #1 2461 bfi r4, r7, #1, #1 2462 bfi r8, r1, #5, #3 2463 orr r4, r4, #8 2464 movs r1, #1 2465 bfi r4, r1, #5, #2 2466 lsrs r3, r3, r1 2467 orr r4, r4, #536870912 2468 orr r4, r4, #1024 2469 bfi r4, r3, #4, #1 2470 ldr r3, .L383+4 2471 ldr r3, [r3] 2472 cmp r3, #3 2473 bls .L366 2474 ldr r3, [r6, #16] 2475 str r3, [sp, #20] 2476 ldr r3, [sp, #20] 2477 bfc r3, #2, #1 2478 str r3, [sp, #20] 2479 cmp r5, #0 2480 beq .L367 2481 ldr r5, .L383+8 2482 cmp r7, #0 2483 bne .L368 2484.L376: 2485 ldr r2, [sp, #4] 2486 adds r2, r2, #1 2487 asrs r2, r2, #1 2488 bfi r4, r2, #22, #6 2489 cmp fp, #0 2490 beq .L369 2491 mov r0, fp 2492.L370: 2493 ldr r3, [r5, #4] 2494 add r1, r0, #63 2495 ubfx r10, r4, #22, #5 2496 bic r1, r1, #63 2497 str r0, [r5, #8] 2498 add r1, r1, r10, lsl #10 2499 str r0, [r5, #16] 2500 bic r0, r0, #63 2501 str r3, [r5, #12] 2502 clz r7, r7 2503 str r3, [r5, #20] 2504 lsrs r7, r7, #5 2505 bl flush_dcache_range 2506 ldr r0, [r5, #20] 2507 add r1, r0, #63 2508 bic r0, r0, #63 2509 bic r1, r1, #63 2510 add r1, r1, r10, lsl #7 2511 bl flush_dcache_range 2512 movs r3, #1 2513 movs r2, #16 2514 str r3, [r5, #24] 2515 tst fp, #3 2516 ldr r3, [r5, #16] 2517 str r3, [r6, #20] 2518 ldr r3, [r5, #20] 2519 str r3, [r6, #24] 2520 mov r3, #0 2521 str r3, [sp, #20] 2522 ldr r3, [sp, #20] 2523 bfi r3, r2, #9, #5 2524 it eq 2525 moveq r2, #2 2526 str r3, [sp, #20] 2527 ldr r3, [sp, #20] 2528 orr r3, r3, #448 2529 str r3, [sp, #20] 2530 ittt eq 2531 ldreq r3, [sp, #20] 2532 bfieq r3, r2, #3, #3 2533 streq r3, [sp, #20] 2534 ldr r3, [sp, #20] 2535 orr r3, r3, #4 2536 str r3, [sp, #20] 2537 ldr r3, [sp, #20] 2538 bfi r3, r7, #1, #1 2539 str r3, [sp, #20] 2540 ldr r3, [sp, #20] 2541 orr r3, r3, #1 2542 str r3, [sp, #20] 2543.L367: 2544 ldr r3, [sp, #20] 2545 str r3, [r6, #16] 2546.L366: 2547 str r8, [r6, #12] 2548 str r4, [r6, #8] 2549 orr r4, r4, #4 2550 str r4, [r6, #8] 2551 add sp, sp, #24 2552 @ sp needed 2553 pop {r4, r5, r6, r7, r8, r10, fp, pc} 2554.L378: 2555 movs r5, #1 2556 b .L365 2557.L368: 2558 ldr r3, .L383+12 2559 movs r1, #0 2560 ldr lr, [r5, #4] 2561 mov r0, r1 2562 ldr r3, [r3] 2563 cmp r3, #25 2564 ite cc 2565 movcc r3, #64 2566 movcs r3, #128 2567 str r3, [sp, #8] 2568 ldr r3, [sp, #4] 2569 lsrs r3, r3, #1 2570 str r3, [sp, #12] 2571 ldr r3, [sp, #60] 2572.L372: 2573 ldr r2, [sp, #12] 2574 cmp r0, r2 2575 bcs .L376 2576 ldr r2, [sp, #60] 2577 bic r10, r1, #3 2578 cbz r2, .L373 2579 ldrh ip, [r3] 2580 adds r3, r3, #4 2581 ldrh r2, [r3, #-2] 2582 orr ip, ip, r2, lsl #16 2583 str ip, [lr, r10] 2584.L374: 2585 ldr r2, [sp, #8] 2586 adds r0, r0, #1 2587 add r1, r1, r2 2588 b .L372 2589.L373: 2590 mov r2, #-1 2591 str r2, [lr, r10] 2592 b .L374 2593.L369: 2594 ldr r3, .L383+8 2595 ldr r0, [r3] 2596 b .L370 2597.L384: 2598 .align 2 2599.L383: 2600 .word .LANCHOR0 2601 .word .LANCHOR34 2602 .word .LANCHOR35 2603 .word .LANCHOR32 2604 .size NandcXferStart, .-NandcXferStart 2605 .section .text.NandcXferComp,"ax",%progbits 2606 .align 1 2607 .global NandcXferComp 2608 .syntax unified 2609 .thumb 2610 .thumb_func 2611 .fpu softvfp 2612 .type NandcXferComp, %function 2613NandcXferComp: 2614 @ args = 0, pretend = 0, frame = 8 2615 @ frame_needed = 0, uses_anonymous_args = 0 2616 ldr r3, .L413 2617 push {r0, r1, r4, lr} 2618 ldr r1, [r3, r0, lsl #3] 2619 ldr r3, .L413+4 2620 ldr r0, [r3] 2621 cmp r0, #3 2622 bls .L406 2623 ldr r3, [r1, #16] 2624 lsls r2, r3, #29 2625 bpl .L406 2626 ldr r3, [r1, #16] 2627 tst r3, #2 2628 ldr r3, [r1, #8] 2629 str r3, [sp] 2630 beq .L393 2631.L389: 2632 ldr r2, [r1, #28] 2633 ldr r3, [sp] 2634 ubfx r2, r2, #16, #5 2635 ubfx r3, r3, #22, #6 2636 cmp r2, r3 2637 bge .L390 2638 cmp r0, #5 2639 bls .L389 2640 ldr r3, [r1] 2641 str r3, [sp, #4] 2642 ldr r3, [sp, #4] 2643 lsls r3, r3, #18 2644 bpl .L389 2645 ldr r3, [sp, #4] 2646 lsls r4, r3, #14 2647 bpl .L389 2648.L390: 2649 ldr r3, .L413+8 2650 movs r2, #0 2651 str r2, [r3, #24] 2652.L385: 2653 add sp, sp, #8 2654 @ sp needed 2655 pop {r4, pc} 2656.L394: 2657 ldr r3, [r1, #8] 2658 str r3, [sp] 2659.L393: 2660 ldr r3, [sp] 2661 lsls r2, r3, #11 2662 bpl .L394 2663 ldr r4, .L413+12 2664 ldr r2, [r4] 2665 cbz r2, .L395 2666 mov r0, r1 2667 bl NandcSendDumpDataStart 2668.L395: 2669 ldr r3, [r4] 2670 cmp r3, #0 2671 beq .L390 2672 mov r0, r1 2673 bl NandcSendDumpDataDone 2674 b .L390 2675.L406: 2676 ldr r3, [r1, #8] 2677 str r3, [sp] 2678 ldr r3, [sp] 2679 lsls r3, r3, #11 2680 bpl .L406 2681 b .L385 2682.L414: 2683 .align 2 2684.L413: 2685 .word .LANCHOR0 2686 .word .LANCHOR34 2687 .word .LANCHOR35 2688 .word .LANCHOR36 2689 .size NandcXferComp, .-NandcXferComp 2690 .section .text.Ftl_log2,"ax",%progbits 2691 .align 1 2692 .global Ftl_log2 2693 .syntax unified 2694 .thumb 2695 .thumb_func 2696 .fpu softvfp 2697 .type Ftl_log2, %function 2698Ftl_log2: 2699 @ args = 0, pretend = 0, frame = 0 2700 @ frame_needed = 0, uses_anonymous_args = 0 2701 @ link register save eliminated. 2702 movs r1, #0 2703 movs r2, #1 2704.L416: 2705 cmp r2, r0 2706 uxth r3, r1 2707 add r1, r1, #1 2708 bls .L417 2709 subs r0, r3, #1 2710 uxth r0, r0 2711 bx lr 2712.L417: 2713 lsls r2, r2, #1 2714 b .L416 2715 .size Ftl_log2, .-Ftl_log2 2716 .section .text.FtlPrintInfo,"ax",%progbits 2717 .align 1 2718 .global FtlPrintInfo 2719 .syntax unified 2720 .thumb 2721 .thumb_func 2722 .fpu softvfp 2723 .type FtlPrintInfo, %function 2724FtlPrintInfo: 2725 @ args = 0, pretend = 0, frame = 0 2726 @ frame_needed = 0, uses_anonymous_args = 0 2727 @ link register save eliminated. 2728 bx lr 2729 .size FtlPrintInfo, .-FtlPrintInfo 2730 .section .text.FtlSysBlkNumInit,"ax",%progbits 2731 .align 1 2732 .global FtlSysBlkNumInit 2733 .syntax unified 2734 .thumb 2735 .thumb_func 2736 .fpu softvfp 2737 .type FtlSysBlkNumInit, %function 2738FtlSysBlkNumInit: 2739 @ args = 0, pretend = 0, frame = 0 2740 @ frame_needed = 0, uses_anonymous_args = 0 2741 @ link register save eliminated. 2742 ldr r3, .L420 2743 cmp r0, #24 2744 it cc 2745 movcc r0, #24 2746 ldr r2, .L420+4 2747 str r0, [r3] 2748 ldr r3, .L420+8 2749 ldrh r3, [r3] 2750 muls r3, r0, r3 2751 str r3, [r2] 2752 ldr r2, .L420+12 2753 ldrh r2, [r2] 2754 subs r0, r2, r0 2755 ldr r2, .L420+16 2756 strh r0, [r2] @ movhi 2757 movs r0, #0 2758 ldr r2, .L420+20 2759 ldr r2, [r2] 2760 subs r3, r2, r3 2761 ldr r2, .L420+24 2762 str r3, [r2] 2763 bx lr 2764.L421: 2765 .align 2 2766.L420: 2767 .word .LANCHOR37 2768 .word .LANCHOR39 2769 .word .LANCHOR38 2770 .word .LANCHOR41 2771 .word .LANCHOR40 2772 .word .LANCHOR43 2773 .word .LANCHOR42 2774 .size FtlSysBlkNumInit, .-FtlSysBlkNumInit 2775 .global __aeabi_idiv 2776 .section .text.FtlConstantsInit,"ax",%progbits 2777 .align 1 2778 .global FtlConstantsInit 2779 .syntax unified 2780 .thumb 2781 .thumb_func 2782 .fpu softvfp 2783 .type FtlConstantsInit, %function 2784FtlConstantsInit: 2785 @ args = 0, pretend = 0, frame = 24 2786 @ frame_needed = 0, uses_anonymous_args = 0 2787 push {r4, r5, r6, r7, r8, r10, fp, lr} 2788 mov r10, r0 2789 ldrh r7, [r0, #8] 2790 sub sp, sp, #24 2791 ldr r3, .L449 2792 ldrh r2, [r0, #10] 2793 ldrh r6, [r0, #14] 2794 strh r7, [r3] @ movhi 2795 ldrh r3, [r0, #12] 2796 ldr r0, .L449+4 2797 ldr r1, .L449+8 2798 ldr r4, .L449+12 2799 strh r6, [r0] @ movhi 2800 str r0, [sp, #20] 2801 ldr r0, .L449+16 2802 strh r3, [r1] @ movhi 2803 movs r1, #0 2804 strh r2, [r4] @ movhi 2805 str r4, [sp, #8] 2806.L423: 2807 strb r1, [r1, r0] 2808 adds r1, r1, #1 2809 cmp r1, #32 2810 bne .L423 2811 ldrh r0, [r10, #14] 2812 ldrh r1, [r10, #20] 2813 cmp r1, r0, lsr #8 2814 bcs .L424 2815 uxtb r8, r3 2816 lsl r1, r8, #1 2817 uxtb r1, r1 2818 str r1, [sp, #4] 2819 subs r1, r2, #1 2820 muls r1, r3, r1 2821 str r1, [sp, #12] 2822 movs r1, #0 2823.L425: 2824 cmp r1, r3 2825 bcs .L427 2826 ldr r4, [sp, #12] 2827 sub fp, r1, r3 2828 uxtb r0, r1 2829 adds r5, r1, r4 2830 ldr r4, .L449+16 2831 add r4, r4, r5 2832 movs r5, #0 2833 mov lr, r4 2834 ldr r4, .L449+16 2835 mov ip, r5 2836 add fp, fp, r4 2837 b .L428 2838.L426: 2839 add r4, r8, r0 2840 strb r0, [fp, r5] 2841 str r4, [sp, #16] 2842 add ip, ip, #1 2843 ldrb r4, [sp, #16] @ zero_extendqisi2 2844 strb r4, [lr, r5] 2845 ldr r4, [sp, #4] 2846 add r0, r0, r4 2847 uxtb r0, r0 2848.L428: 2849 cmp ip, r2 2850 add r5, r5, r3 2851 bcc .L426 2852 adds r1, r1, #1 2853 b .L425 2854.L427: 2855 ldr r1, [sp, #8] 2856 lsls r2, r2, #1 2857 lsrs r6, r6, #1 2858 strh r2, [r1] @ movhi 2859 ldr r2, .L449+4 2860 strh r6, [r2] @ movhi 2861.L424: 2862 ldr r1, .L449+20 2863 movs r2, #5 2864 cmp r7, #1 2865 mov r0, #0 2866 strh r2, [r1] @ movhi 2867 ldr r2, .L449+24 2868 it eq 2869 strheq r7, [r1] @ movhi 2870 ldr r1, .L449+28 2871 strh r0, [r2] @ movhi 2872 mov r0, #4352 2873 strh r0, [r1] @ movhi 2874 ldr r0, .L449+32 2875 ldrb r0, [r0] @ zero_extendqisi2 2876 str r0, [sp, #4] 2877 cbz r0, .L430 2878 mov r0, #384 2879 strh r0, [r1] @ movhi 2880.L430: 2881 str r2, [sp, #16] 2882 ldr r2, [sp, #8] 2883 ldr r1, .L449+36 2884 ldrh r6, [r10, #16] 2885 ldrh r5, [r2] 2886 ldr r2, [sp, #20] 2887 ldr fp, .L449+116 2888 ldr r8, .L449+120 2889 smulbb r5, r5, r3 2890 ldrh r4, [r2] 2891 strh r6, [fp] @ movhi 2892 uxth r5, r5 2893 smulbb r3, r3, r4 2894 strh r5, [r1] @ movhi 2895 smulbb r0, r5, r6 2896 ldr r1, .L449+40 2897 strh r3, [r1] @ movhi 2898 ldrh r1, [r10, #18] 2899 ldr r3, .L449+44 2900 str r1, [sp, #12] 2901 strh r1, [r3] @ movhi 2902 ldr r3, .L449+48 2903 strh r0, [r3] @ movhi 2904 ldrh r3, [r10, #20] 2905 mov r0, r3 2906 strh r3, [r8] @ movhi 2907 str r3, [sp, #8] 2908 bl Ftl_log2 2909 ldr r3, [sp, #8] 2910 mov r7, r0 2911 ldr ip, .L449+124 2912 cmp r4, #1024 2913 ldr lr, .L449+128 2914 ldr r2, [sp, #16] 2915 strh r0, [ip] @ movhi 2916 lsl r0, r3, #9 2917 ldr r1, [sp, #12] 2918 uxth r0, r0 2919 strh r0, [lr] @ movhi 2920 lsr r0, r0, #8 2921 ldr lr, .L449+132 2922 mul r1, r3, r1 2923 strh r0, [lr] @ movhi 2924 ldrh lr, [r10, #26] 2925 mov r10, ip 2926 ldr r0, .L449+52 2927 strh lr, [r0] @ movhi 2928 mul lr, r4, r5 2929 ldr r0, .L449+56 2930 str lr, [r0] 2931 itt hi 2932 uxtbhi r0, r4 2933 strhhi r0, [r2] @ movhi 2934 ldrh r2, [r2] 2935 subs r2, r4, r2 2936 muls r2, r5, r2 2937 muls r2, r3, r2 2938 muls r6, r2, r6 2939 ldr r2, .L449+60 2940 asrs r6, r6, #11 2941 str r6, [r2] 2942 ldr r6, .L449+28 2943 ldrh r0, [r6] 2944 lsls r0, r0, #3 2945 bl __aeabi_idiv 2946 uxth r0, r0 2947 mov r3, r6 2948 ldr r6, .L449+64 2949 cmp r0, #4 2950 itt ls 2951 movls r2, #4 2952 strhls r2, [r6] @ movhi 2953 ldr r2, [sp, #4] 2954 it hi 2955 strhhi r0, [r6] @ movhi 2956 cbz r2, .L434 2957 mov r2, #640 2958 strh r2, [r3] @ movhi 2959.L434: 2960 ldrh r3, [r3] 2961 lsls r4, r4, #6 2962 ldr r2, .L449+68 2963 mov r1, r5 2964 ldrh r0, [r6] 2965 asrs r3, r3, r7 2966 adds r7, r7, #9 2967 asrs r4, r4, r7 2968 ldr r7, .L449+72 2969 adds r3, r3, #2 2970 strh r3, [r2] @ movhi 2971 ldr r3, .L449+76 2972 strh r4, [r3] @ movhi 2973 uxth r4, r4 2974 mul r3, r4, r5 2975 adds r4, r4, #8 2976 str r3, [r7] 2977 bl __aeabi_uidiv 2978 uxtah r0, r4, r0 2979 ldr r4, .L449+80 2980 cmp r5, #1 2981 ldr r5, .L449+84 2982 it eq 2983 addeq r0, r0, #4 2984 str r0, [r4] 2985 ldrh r0, [r4] 2986 bl FtlSysBlkNumInit 2987 ldr r2, [r4] 2988 movs r0, #24 2989 ldr r3, .L449+88 2990 ldrb r5, [r5] @ zero_extendqisi2 2991 str r2, [r3] 2992 ldr r3, .L449+92 2993 ldr r2, [r3] 2994 ldrh r3, [fp] 2995 lsls r2, r2, #2 2996 muls r3, r2, r3 2997 ldrh r2, [r10] 2998 adds r2, r2, #9 2999 lsrs r3, r3, r2 3000 ldr r2, .L449+96 3001 adds r3, r3, #2 3002 uxth r3, r3 3003 strh r3, [r2] @ movhi 3004 ldr r2, .L449+100 3005 strh r0, [r2] @ movhi 3006 movs r0, #0 3007 ldr r2, .L449+104 3008 str r0, [r2] 3009 ldrh r0, [r6] 3010 adds r2, r0, #3 3011 strh r2, [r6] @ movhi 3012 ldr r2, [r7] 3013 adds r4, r2, #3 3014 str r4, [r7] 3015 cbz r5, .L437 3016 adds r2, r2, #5 3017 adds r0, r0, #4 3018 strh r0, [r6] @ movhi 3019.L448: 3020 str r2, [r7] 3021.L438: 3022 ldr r1, .L449+108 3023 movs r2, #0 3024 strh r2, [r1] @ movhi 3025 ldr r2, .L449+112 3026 ldrh r0, [r2] 3027 lsrs r2, r0, #3 3028 add r2, r2, r0, lsl #1 3029 movs r0, #0 3030 adds r2, r2, #52 3031 add r3, r2, r3, lsl #2 3032 ldrh r2, [r8] 3033 cmp r3, r2, lsl #9 3034 itt cc 3035 movcc r3, #1 3036 strhcc r3, [r1] @ movhi 3037 add sp, sp, #24 3038 @ sp needed 3039 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3040.L437: 3041 cmp r4, #7 3042 bhi .L438 3043 movs r2, #8 3044 b .L448 3045.L450: 3046 .align 2 3047.L449: 3048 .word .LANCHOR44 3049 .word .LANCHOR41 3050 .word .LANCHOR46 3051 .word .LANCHOR45 3052 .word .LANCHOR47 3053 .word .LANCHOR48 3054 .word .LANCHOR49 3055 .word .LANCHOR50 3056 .word .LANCHOR2 3057 .word .LANCHOR38 3058 .word .LANCHOR51 3059 .word .LANCHOR53 3060 .word .LANCHOR54 3061 .word .LANCHOR59 3062 .word .LANCHOR43 3063 .word .LANCHOR60 3064 .word .LANCHOR61 3065 .word .LANCHOR62 3066 .word .LANCHOR64 3067 .word .LANCHOR63 3068 .word .LANCHOR37 3069 .word .LANCHOR16 3070 .word .LANCHOR65 3071 .word .LANCHOR42 3072 .word .LANCHOR66 3073 .word .LANCHOR67 3074 .word .LANCHOR68 3075 .word .LANCHOR69 3076 .word .LANCHOR40 3077 .word .LANCHOR52 3078 .word .LANCHOR55 3079 .word .LANCHOR56 3080 .word .LANCHOR57 3081 .word .LANCHOR58 3082 .size FtlConstantsInit, .-FtlConstantsInit 3083 .section .text.IsBlkInVendorPart,"ax",%progbits 3084 .align 1 3085 .global IsBlkInVendorPart 3086 .syntax unified 3087 .thumb 3088 .thumb_func 3089 .fpu softvfp 3090 .type IsBlkInVendorPart, %function 3091IsBlkInVendorPart: 3092 @ args = 0, pretend = 0, frame = 0 3093 @ frame_needed = 0, uses_anonymous_args = 0 3094 @ link register save eliminated. 3095 ldr r3, .L458 3096 ldrh r3, [r3] 3097 cbz r3, .L457 3098 ldr r3, .L458+4 3099 ldr r2, .L458+8 3100 ldr r3, [r3] 3101 ldrh r2, [r2] 3102 add r2, r3, r2, lsl #1 3103.L453: 3104 cmp r3, r2 3105 bne .L454 3106.L457: 3107 movs r0, #0 3108 bx lr 3109.L454: 3110 ldrh r1, [r3], #2 3111 cmp r0, r1 3112 bne .L453 3113 movs r0, #1 3114 bx lr 3115.L459: 3116 .align 2 3117.L458: 3118 .word .LANCHOR70 3119 .word .LANCHOR71 3120 .word .LANCHOR61 3121 .size IsBlkInVendorPart, .-IsBlkInVendorPart 3122 .section .text.FtlCacheMetchLpa,"ax",%progbits 3123 .align 1 3124 .global FtlCacheMetchLpa 3125 .syntax unified 3126 .thumb 3127 .thumb_func 3128 .fpu softvfp 3129 .type FtlCacheMetchLpa, %function 3130FtlCacheMetchLpa: 3131 @ args = 0, pretend = 0, frame = 0 3132 @ frame_needed = 0, uses_anonymous_args = 0 3133 ldr r3, .L468 3134 push {r4, r5, r6, lr} 3135 ldr r3, [r3] 3136 cbz r3, .L467 3137 ldr r2, .L468+4 3138 movs r6, #36 3139 ldr r5, [r2] 3140 movs r2, #0 3141.L463: 3142 mla r4, r6, r2, r5 3143 ldr r4, [r4, #16] 3144 cmp r4, r0 3145 bcc .L462 3146 cmp r4, r1 3147 bls .L465 3148.L462: 3149 adds r2, r2, #1 3150 cmp r3, r2 3151 bne .L463 3152.L467: 3153 movs r0, #0 3154 pop {r4, r5, r6, pc} 3155.L465: 3156 movs r0, #1 3157 pop {r4, r5, r6, pc} 3158.L469: 3159 .align 2 3160.L468: 3161 .word .LANCHOR72 3162 .word .LANCHOR73 3163 .size FtlCacheMetchLpa, .-FtlCacheMetchLpa 3164 .section .text.FtlGetCap,"ax",%progbits 3165 .align 1 3166 .global FtlGetCap 3167 .syntax unified 3168 .thumb 3169 .thumb_func 3170 .fpu softvfp 3171 .type FtlGetCap, %function 3172FtlGetCap: 3173 @ args = 0, pretend = 0, frame = 0 3174 @ frame_needed = 0, uses_anonymous_args = 0 3175 @ link register save eliminated. 3176 ldr r3, .L471 3177 ldr r0, [r3] 3178 bx lr 3179.L472: 3180 .align 2 3181.L471: 3182 .word .LANCHOR68 3183 .size FtlGetCap, .-FtlGetCap 3184 .section .text.FtlGetCapacity,"ax",%progbits 3185 .align 1 3186 .global FtlGetCapacity 3187 .syntax unified 3188 .thumb 3189 .thumb_func 3190 .fpu softvfp 3191 .type FtlGetCapacity, %function 3192FtlGetCapacity: 3193 @ args = 0, pretend = 0, frame = 0 3194 @ frame_needed = 0, uses_anonymous_args = 0 3195 @ link register save eliminated. 3196 ldr r3, .L474 3197 ldr r0, [r3] 3198 bx lr 3199.L475: 3200 .align 2 3201.L474: 3202 .word .LANCHOR68 3203 .size FtlGetCapacity, .-FtlGetCapacity 3204 .section .text.ftl_get_density,"ax",%progbits 3205 .align 1 3206 .global ftl_get_density 3207 .syntax unified 3208 .thumb 3209 .thumb_func 3210 .fpu softvfp 3211 .type ftl_get_density, %function 3212ftl_get_density: 3213 @ args = 0, pretend = 0, frame = 0 3214 @ frame_needed = 0, uses_anonymous_args = 0 3215 @ link register save eliminated. 3216 ldr r3, .L477 3217 ldr r0, [r3] 3218 bx lr 3219.L478: 3220 .align 2 3221.L477: 3222 .word .LANCHOR68 3223 .size ftl_get_density, .-ftl_get_density 3224 .section .text.FtlGetLpn,"ax",%progbits 3225 .align 1 3226 .global FtlGetLpn 3227 .syntax unified 3228 .thumb 3229 .thumb_func 3230 .fpu softvfp 3231 .type FtlGetLpn, %function 3232FtlGetLpn: 3233 @ args = 0, pretend = 0, frame = 0 3234 @ frame_needed = 0, uses_anonymous_args = 0 3235 @ link register save eliminated. 3236 ldr r3, .L480 3237 ldr r0, [r3] 3238 bx lr 3239.L481: 3240 .align 2 3241.L480: 3242 .word .LANCHOR74 3243 .size FtlGetLpn, .-FtlGetLpn 3244 .section .text.FtlGetCurEraseBlock,"ax",%progbits 3245 .align 1 3246 .global FtlGetCurEraseBlock 3247 .syntax unified 3248 .thumb 3249 .thumb_func 3250 .fpu softvfp 3251 .type FtlGetCurEraseBlock, %function 3252FtlGetCurEraseBlock: 3253 @ args = 0, pretend = 0, frame = 0 3254 @ frame_needed = 0, uses_anonymous_args = 0 3255 @ link register save eliminated. 3256 ldr r2, .L483 3257 ldr r3, .L483+4 3258 ldr r0, [r2] 3259 ldrh r3, [r3] 3260 muls r0, r3, r0 3261 bx lr 3262.L484: 3263 .align 2 3264.L483: 3265 .word .LANCHOR75 3266 .word .LANCHOR38 3267 .size FtlGetCurEraseBlock, .-FtlGetCurEraseBlock 3268 .section .text.FtlGetAllBlockNum,"ax",%progbits 3269 .align 1 3270 .global FtlGetAllBlockNum 3271 .syntax unified 3272 .thumb 3273 .thumb_func 3274 .fpu softvfp 3275 .type FtlGetAllBlockNum, %function 3276FtlGetAllBlockNum: 3277 @ args = 0, pretend = 0, frame = 0 3278 @ frame_needed = 0, uses_anonymous_args = 0 3279 @ link register save eliminated. 3280 ldr r2, .L486 3281 ldr r3, .L486+4 3282 ldrh r0, [r2] 3283 ldrh r3, [r3] 3284 muls r0, r3, r0 3285 bx lr 3286.L487: 3287 .align 2 3288.L486: 3289 .word .LANCHOR38 3290 .word .LANCHOR41 3291 .size FtlGetAllBlockNum, .-FtlGetAllBlockNum 3292 .section .text.FtlBbmMapBadBlock,"ax",%progbits 3293 .align 1 3294 .global FtlBbmMapBadBlock 3295 .syntax unified 3296 .thumb 3297 .thumb_func 3298 .fpu softvfp 3299 .type FtlBbmMapBadBlock, %function 3300FtlBbmMapBadBlock: 3301 @ args = 0, pretend = 0, frame = 0 3302 @ frame_needed = 0, uses_anonymous_args = 0 3303 ldr r3, .L489 3304 push {r0, r1, r2, r4, r5, r6, r7, lr} 3305 mov r5, r0 3306 ldrh r4, [r3] 3307 mov r1, r4 3308 bl __aeabi_uidiv 3309 mov r1, r4 3310 ldr r4, .L489+4 3311 uxth r6, r0 3312 mov r0, r5 3313 bl __aeabi_uidivmod 3314 add r2, r4, r6, lsl #2 3315 uxth r3, r1 3316 ldr r2, [r2, #28] 3317 lsrs r1, r3, #5 3318 and r7, r3, #31 3319 movs r0, #1 3320 lsls r0, r0, r7 3321 ldr r7, [r2, r1, lsl #2] 3322 orrs r0, r0, r7 3323 str r0, [r2, r1, lsl #2] 3324 mov r2, r6 3325 str r0, [sp] 3326 mov r1, r5 3327 ldr r0, .L489+8 3328 bl printf 3329 ldrh r3, [r4, #6] 3330 movs r0, #0 3331 adds r3, r3, #1 3332 strh r3, [r4, #6] @ movhi 3333 add sp, sp, #12 3334 @ sp needed 3335 pop {r4, r5, r6, r7, pc} 3336.L490: 3337 .align 2 3338.L489: 3339 .word .LANCHOR51 3340 .word .LANCHOR76 3341 .word .LC2 3342 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock 3343 .section .text.FtlBbmIsBadBlock,"ax",%progbits 3344 .align 1 3345 .global FtlBbmIsBadBlock 3346 .syntax unified 3347 .thumb 3348 .thumb_func 3349 .fpu softvfp 3350 .type FtlBbmIsBadBlock, %function 3351FtlBbmIsBadBlock: 3352 @ args = 0, pretend = 0, frame = 0 3353 @ frame_needed = 0, uses_anonymous_args = 0 3354 ldr r3, .L492 3355 push {r4, r5, r6, lr} 3356 mov r6, r0 3357 ldrh r5, [r3] 3358 mov r1, r5 3359 bl __aeabi_uidivmod 3360 mov r0, r6 3361 uxth r4, r1 3362 mov r1, r5 3363 bl __aeabi_uidiv 3364 ldr r3, .L492+4 3365 uxth r0, r0 3366 lsrs r2, r4, #5 3367 and r4, r4, #31 3368 add r0, r3, r0, lsl #2 3369 ldr r3, [r0, #28] 3370 ldr r0, [r3, r2, lsl #2] 3371 lsrs r0, r0, r4 3372 and r0, r0, #1 3373 pop {r4, r5, r6, pc} 3374.L493: 3375 .align 2 3376.L492: 3377 .word .LANCHOR51 3378 .word .LANCHOR76 3379 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock 3380 .section .text.FtlBbtInfoPrint,"ax",%progbits 3381 .align 1 3382 .global FtlBbtInfoPrint 3383 .syntax unified 3384 .thumb 3385 .thumb_func 3386 .fpu softvfp 3387 .type FtlBbtInfoPrint, %function 3388FtlBbtInfoPrint: 3389 @ args = 0, pretend = 0, frame = 0 3390 @ frame_needed = 0, uses_anonymous_args = 0 3391 @ link register save eliminated. 3392 bx lr 3393 .size FtlBbtInfoPrint, .-FtlBbtInfoPrint 3394 .section .text.V2P_block,"ax",%progbits 3395 .align 1 3396 .global V2P_block 3397 .syntax unified 3398 .thumb 3399 .thumb_func 3400 .fpu softvfp 3401 .type V2P_block, %function 3402V2P_block: 3403 @ args = 0, pretend = 0, frame = 0 3404 @ frame_needed = 0, uses_anonymous_args = 0 3405 push {r3, r4, r5, r6, r7, lr} 3406 mov r5, r1 3407 ldr r3, .L496 3408 mov r7, r0 3409 ldrh r6, [r3] 3410 mov r1, r6 3411 bl __aeabi_uidiv 3412 ldr r3, .L496+4 3413 smulbb r5, r6, r5 3414 mov r1, r6 3415 ldrh r4, [r3] 3416 smulbb r4, r4, r0 3417 mov r0, r7 3418 bl __aeabi_uidivmod 3419 adds r0, r5, r1 3420 add r0, r0, r4 3421 uxth r0, r0 3422 pop {r3, r4, r5, r6, r7, pc} 3423.L497: 3424 .align 2 3425.L496: 3426 .word .LANCHOR46 3427 .word .LANCHOR51 3428 .size V2P_block, .-V2P_block 3429 .section .text.P2V_plane,"ax",%progbits 3430 .align 1 3431 .global P2V_plane 3432 .syntax unified 3433 .thumb 3434 .thumb_func 3435 .fpu softvfp 3436 .type P2V_plane, %function 3437P2V_plane: 3438 @ args = 0, pretend = 0, frame = 0 3439 @ frame_needed = 0, uses_anonymous_args = 0 3440 ldr r3, .L499 3441 push {r4, r5, r6, lr} 3442 mov r6, r0 3443 ldrh r5, [r3] 3444 ldr r3, .L499+4 3445 ldrh r1, [r3] 3446 bl __aeabi_uidiv 3447 smulbb r4, r0, r5 3448 mov r1, r5 3449 mov r0, r6 3450 bl __aeabi_uidivmod 3451 add r1, r1, r4 3452 uxth r0, r1 3453 pop {r4, r5, r6, pc} 3454.L500: 3455 .align 2 3456.L499: 3457 .word .LANCHOR46 3458 .word .LANCHOR51 3459 .size P2V_plane, .-P2V_plane 3460 .section .text.P2V_block_in_plane,"ax",%progbits 3461 .align 1 3462 .global P2V_block_in_plane 3463 .syntax unified 3464 .thumb 3465 .thumb_func 3466 .fpu softvfp 3467 .type P2V_block_in_plane, %function 3468P2V_block_in_plane: 3469 @ args = 0, pretend = 0, frame = 0 3470 @ frame_needed = 0, uses_anonymous_args = 0 3471 push {r3, lr} 3472 ldr r3, .L502 3473 ldrh r1, [r3] 3474 bl __aeabi_uidivmod 3475 ldr r3, .L502+4 3476 uxth r0, r1 3477 ldrh r1, [r3] 3478 bl __aeabi_uidiv 3479 uxth r0, r0 3480 pop {r3, pc} 3481.L503: 3482 .align 2 3483.L502: 3484 .word .LANCHOR51 3485 .word .LANCHOR46 3486 .size P2V_block_in_plane, .-P2V_block_in_plane 3487 .section .text.ftl_cmp_data_ver,"ax",%progbits 3488 .align 1 3489 .global ftl_cmp_data_ver 3490 .syntax unified 3491 .thumb 3492 .thumb_func 3493 .fpu softvfp 3494 .type ftl_cmp_data_ver, %function 3495ftl_cmp_data_ver: 3496 @ args = 0, pretend = 0, frame = 0 3497 @ frame_needed = 0, uses_anonymous_args = 0 3498 @ link register save eliminated. 3499 cmp r0, r1 3500 bls .L505 3501 subs r0, r0, r1 3502 cmp r0, #-2147483648 3503 ite hi 3504 movhi r0, #0 3505 movls r0, #1 3506 bx lr 3507.L505: 3508 subs r0, r1, r0 3509 cmp r0, #-2147483648 3510 ite ls 3511 movls r0, #0 3512 movhi r0, #1 3513 bx lr 3514 .size ftl_cmp_data_ver, .-ftl_cmp_data_ver 3515 .section .text.FtlFreeSysBlkQueueEmpty,"ax",%progbits 3516 .align 1 3517 .global FtlFreeSysBlkQueueEmpty 3518 .syntax unified 3519 .thumb 3520 .thumb_func 3521 .fpu softvfp 3522 .type FtlFreeSysBlkQueueEmpty, %function 3523FtlFreeSysBlkQueueEmpty: 3524 @ args = 0, pretend = 0, frame = 0 3525 @ frame_needed = 0, uses_anonymous_args = 0 3526 @ link register save eliminated. 3527 ldr r3, .L508 3528 ldrh r0, [r3, #6] 3529 clz r0, r0 3530 lsrs r0, r0, #5 3531 bx lr 3532.L509: 3533 .align 2 3534.L508: 3535 .word .LANCHOR77 3536 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty 3537 .section .text.FtlFreeSysBlkQueueFull,"ax",%progbits 3538 .align 1 3539 .global FtlFreeSysBlkQueueFull 3540 .syntax unified 3541 .thumb 3542 .thumb_func 3543 .fpu softvfp 3544 .type FtlFreeSysBlkQueueFull, %function 3545FtlFreeSysBlkQueueFull: 3546 @ args = 0, pretend = 0, frame = 0 3547 @ frame_needed = 0, uses_anonymous_args = 0 3548 @ link register save eliminated. 3549 ldr r3, .L511 3550 ldrh r0, [r3, #6] 3551 sub r3, r0, #1024 3552 rsbs r0, r3, #0 3553 adcs r0, r0, r3 3554 bx lr 3555.L512: 3556 .align 2 3557.L511: 3558 .word .LANCHOR77 3559 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull 3560 .section .text.FtlFreeSysBlkQueueIn,"ax",%progbits 3561 .align 1 3562 .global FtlFreeSysBlkQueueIn 3563 .syntax unified 3564 .thumb 3565 .thumb_func 3566 .fpu softvfp 3567 .type FtlFreeSysBlkQueueIn, %function 3568FtlFreeSysBlkQueueIn: 3569 @ args = 0, pretend = 0, frame = 0 3570 @ frame_needed = 0, uses_anonymous_args = 0 3571 subs r3, r0, #1 3572 movw r2, #65533 3573 uxth r3, r3 3574 push {r4, r5, r6, lr} 3575 mov r5, r0 3576 cmp r3, r2 3577 bhi .L513 3578 ldr r4, .L522 3579 ldrh r3, [r4, #6] 3580 cmp r3, #1024 3581 beq .L513 3582 cbz r1, .L515 3583 ldr r3, .L522+4 3584 ldr r3, [r3] 3585 cbnz r3, .L515 3586 bl P2V_block_in_plane 3587 ldr r3, .L522+8 3588 mov r6, r0 3589 movs r2, #1 3590 mov r1, r2 3591 ldr r0, [r3] 3592 lsls r3, r5, #10 3593 str r3, [r0, #4] 3594 bl FlashEraseBlocks 3595 ldr r3, .L522+12 3596 ldr r2, [r3] 3597 ldrh r3, [r2, r6, lsl #1] 3598 adds r3, r3, #1 3599 strh r3, [r2, r6, lsl #1] @ movhi 3600 ldr r2, .L522+16 3601 ldr r3, [r2] 3602 adds r3, r3, #1 3603 str r3, [r2] 3604.L515: 3605 ldrh r3, [r4, #6] 3606 adds r3, r3, #1 3607 strh r3, [r4, #6] @ movhi 3608 ldrh r3, [r4, #4] 3609 adds r2, r3, #4 3610 adds r3, r3, #1 3611 ubfx r3, r3, #0, #10 3612 strh r5, [r4, r2, lsl #1] @ movhi 3613 strh r3, [r4, #4] @ movhi 3614.L513: 3615 pop {r4, r5, r6, pc} 3616.L523: 3617 .align 2 3618.L522: 3619 .word .LANCHOR77 3620 .word .LANCHOR78 3621 .word .LANCHOR79 3622 .word .LANCHOR80 3623 .word .LANCHOR81 3624 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn 3625 .section .text.FtlFreeSysBLkSort,"ax",%progbits 3626 .align 1 3627 .global FtlFreeSysBLkSort 3628 .syntax unified 3629 .thumb 3630 .thumb_func 3631 .fpu softvfp 3632 .type FtlFreeSysBLkSort, %function 3633FtlFreeSysBLkSort: 3634 @ args = 0, pretend = 0, frame = 0 3635 @ frame_needed = 0, uses_anonymous_args = 0 3636 ldr r3, .L533 3637 push {r4, r5, r6, lr} 3638 ldrh r2, [r3, #6] 3639 cbz r2, .L524 3640 ldr r2, .L533+4 3641 movs r6, #0 3642 ldrh r1, [r3, #2] 3643 mov r5, r6 3644 ldrh r4, [r2, #28] 3645 ldrh r2, [r3, #4] 3646 and r4, r4, #31 3647.L526: 3648 uxth r0, r6 3649 adds r6, r6, #1 3650 cmp r4, r0 3651 bgt .L527 3652 cbz r5, .L524 3653 strh r1, [r3, #2] @ movhi 3654 strh r2, [r3, #4] @ movhi 3655.L524: 3656 pop {r4, r5, r6, pc} 3657.L527: 3658 adds r0, r1, #4 3659 adds r1, r1, #1 3660 ldrh r5, [r3, r0, lsl #1] 3661 adds r0, r2, #4 3662 ubfx r1, r1, #0, #10 3663 strh r5, [r3, r0, lsl #1] @ movhi 3664 movs r5, #1 3665 add r2, r2, r5 3666 ubfx r2, r2, #0, #10 3667 b .L526 3668.L534: 3669 .align 2 3670.L533: 3671 .word .LANCHOR77 3672 .word .LANCHOR82 3673 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort 3674 .section .text.FtlFreeSysBlkQueueOut,"ax",%progbits 3675 .align 1 3676 .global FtlFreeSysBlkQueueOut 3677 .syntax unified 3678 .thumb 3679 .thumb_func 3680 .fpu softvfp 3681 .type FtlFreeSysBlkQueueOut, %function 3682FtlFreeSysBlkQueueOut: 3683 @ args = 0, pretend = 0, frame = 0 3684 @ frame_needed = 0, uses_anonymous_args = 0 3685 push {r3, r4, r5, r6, r7, r8, r10, lr} 3686 ldr r4, .L545 3687 mov r6, r4 3688.L536: 3689 ldrh r1, [r4, #6] 3690 cmp r1, #0 3691 beq .L537 3692 ldrh r3, [r4, #2] 3693 subs r1, r1, #1 3694 strh r1, [r4, #6] @ movhi 3695 adds r2, r3, #4 3696 adds r3, r3, #1 3697 ubfx r3, r3, #0, #10 3698 ldrh r5, [r4, r2, lsl #1] 3699 strh r3, [r4, #2] @ movhi 3700 ldr r3, .L545+4 3701 ldr r10, [r3] 3702 cmp r10, #0 3703 bne .L538 3704 ldr r8, .L545+28 3705 mov r0, r5 3706 bl P2V_block_in_plane 3707 mov r7, r0 3708 lsls r3, r5, #10 3709 ldr r0, [r8] 3710 str r3, [r0, #4] 3711 ldr r3, .L545+8 3712 ldrb r3, [r3] @ zero_extendqisi2 3713 cbz r3, .L539 3714 movs r2, #1 3715 mov r1, r10 3716 bl FlashEraseBlocks 3717.L539: 3718 movs r2, #1 3719 ldr r0, [r8] 3720 mov r1, r2 3721 bl FlashEraseBlocks 3722 ldr r3, .L545+12 3723 ldr r2, [r3] 3724 ldrh r3, [r2, r7, lsl #1] 3725 adds r3, r3, #1 3726 strh r3, [r2, r7, lsl #1] @ movhi 3727 ldr r2, .L545+16 3728 ldr r3, [r2] 3729 adds r3, r3, #1 3730 str r3, [r2] 3731.L538: 3732 subs r3, r5, #1 3733 movw r2, #65533 3734 uxth r3, r3 3735 cmp r3, r2 3736 bls .L541 3737 ldrh r2, [r6, #6] 3738 mov r1, r5 3739 ldr r0, .L545+20 3740 bl printf 3741 b .L536 3742.L537: 3743 ldr r0, .L545+24 3744 bl printf 3745.L540: 3746 b .L540 3747.L541: 3748 mov r0, r5 3749 pop {r3, r4, r5, r6, r7, r8, r10, pc} 3750.L546: 3751 .align 2 3752.L545: 3753 .word .LANCHOR77 3754 .word .LANCHOR78 3755 .word .LANCHOR16 3756 .word .LANCHOR80 3757 .word .LANCHOR81 3758 .word .LC4 3759 .word .LC3 3760 .word .LANCHOR79 3761 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut 3762 .section .text.test_node_in_list,"ax",%progbits 3763 .align 1 3764 .global test_node_in_list 3765 .syntax unified 3766 .thumb 3767 .thumb_func 3768 .fpu softvfp 3769 .type test_node_in_list, %function 3770test_node_in_list: 3771 @ args = 0, pretend = 0, frame = 0 3772 @ frame_needed = 0, uses_anonymous_args = 0 3773 ldr r3, .L552 3774 push {r4, r5, lr} 3775 movw r5, #65535 3776 ldr r2, [r0] 3777 ldr r4, [r3] 3778 subs r3, r2, r4 3779 asrs r0, r3, #1 3780 ldr r3, .L552+4 3781 muls r3, r0, r3 3782 movs r0, #6 3783 uxth r3, r3 3784.L549: 3785 cmp r3, r1 3786 beq .L550 3787 ldrh r3, [r2] 3788 cmp r3, r5 3789 beq .L551 3790 mla r2, r0, r3, r4 3791 b .L549 3792.L550: 3793 movs r0, #1 3794 pop {r4, r5, pc} 3795.L551: 3796 movs r0, #0 3797 pop {r4, r5, pc} 3798.L553: 3799 .align 2 3800.L552: 3801 .word .LANCHOR83 3802 .word -1431655765 3803 .size test_node_in_list, .-test_node_in_list 3804 .section .text.insert_data_list,"ax",%progbits 3805 .align 1 3806 .global insert_data_list 3807 .syntax unified 3808 .thumb 3809 .thumb_func 3810 .fpu softvfp 3811 .type insert_data_list, %function 3812insert_data_list: 3813 @ args = 0, pretend = 0, frame = 16 3814 @ frame_needed = 0, uses_anonymous_args = 0 3815 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 3816 ldr r3, .L570 3817 ldrh lr, [r3] 3818 cmp lr, r0 3819 bls .L556 3820 ldr r3, .L570+4 3821 movs r5, #6 3822 ldr r4, [r3] 3823 mul r3, r5, r0 3824 str r3, [sp, #4] 3825 adds r1, r4, r3 3826 ldr r2, [sp, #4] 3827 movw r3, #65535 3828 strh r3, [r1, #2] @ movhi 3829 strh r3, [r4, r2] @ movhi 3830 ldr r3, .L570+8 3831 ldr ip, [r3] 3832 cmp ip, #0 3833 bne .L557 3834.L569: 3835 str r1, [r3] 3836.L556: 3837 movs r0, #0 3838 add sp, sp, #16 3839 @ sp needed 3840 pop {r4, r5, r6, r7, r8, r10, fp, pc} 3841.L557: 3842 ldr r3, .L570+12 3843 lsls r2, r0, #1 3844 ldr r3, [r3] 3845 str r3, [sp, #8] 3846 ldrh r6, [r3, r0, lsl #1] 3847 ldrh r3, [r1, #4] 3848 cbz r3, .L567 3849 mul fp, r3, r6 3850.L558: 3851 sub r3, ip, r4 3852 asrs r6, r3, #1 3853 ldr r3, .L570+16 3854 muls r3, r6, r3 3855 ldr r6, .L570+20 3856 ldr r8, [r6] 3857 movs r6, #0 3858 uxth r3, r3 3859 add r2, r8, r2 3860 str r2, [sp, #12] 3861 mov r2, ip 3862.L565: 3863 adds r6, r6, #1 3864 uxth r6, r6 3865 cmp lr, r6 3866 bcc .L556 3867 cmp r3, r0 3868 beq .L556 3869 ldr r7, [sp, #8] 3870 lsl r10, r3, #1 3871 ldrh r7, [r7, r3, lsl #1] 3872 mov r5, r7 3873 ldrh r7, [r2, #4] 3874 cbz r7, .L568 3875 muls r7, r5, r7 3876.L560: 3877 cmp fp, r7 3878 bne .L561 3879 ldr r5, [sp, #12] 3880 ldrh r10, [r8, r10] 3881 ldrh r7, [r5] 3882 cmp r10, r7 3883 bcc .L563 3884.L562: 3885 ldr r5, [sp, #4] 3886 cmp r2, ip 3887 strh r3, [r4, r5] @ movhi 3888 ldrh r3, [r2, #2] 3889 strh r3, [r1, #2] @ movhi 3890 bne .L566 3891 strh r0, [r2, #2] @ movhi 3892 ldr r3, .L570+8 3893 b .L569 3894.L567: 3895 mov fp, #-1 3896 b .L558 3897.L568: 3898 mov r7, #-1 3899 b .L560 3900.L561: 3901 bcc .L562 3902.L563: 3903 ldrh r7, [r2] 3904 movw r5, #65535 3905 cmp r7, r5 3906 bne .L564 3907 strh r3, [r1, #2] @ movhi 3908 strh r0, [r2] @ movhi 3909 ldr r3, .L570+24 3910 b .L569 3911.L564: 3912 movs r3, #6 3913 mla r2, r3, r7, r4 3914 mov r3, r7 3915 b .L565 3916.L566: 3917 ldrh r1, [r2, #2] 3918 movs r3, #6 3919 muls r3, r1, r3 3920 strh r0, [r4, r3] @ movhi 3921 strh r0, [r2, #2] @ movhi 3922 b .L556 3923.L571: 3924 .align 2 3925.L570: 3926 .word .LANCHOR40 3927 .word .LANCHOR83 3928 .word .LANCHOR84 3929 .word .LANCHOR85 3930 .word -1431655765 3931 .word .LANCHOR80 3932 .word .LANCHOR86 3933 .size insert_data_list, .-insert_data_list 3934 .section .text.INSERT_DATA_LIST,"ax",%progbits 3935 .align 1 3936 .global INSERT_DATA_LIST 3937 .syntax unified 3938 .thumb 3939 .thumb_func 3940 .fpu softvfp 3941 .type INSERT_DATA_LIST, %function 3942INSERT_DATA_LIST: 3943 @ args = 0, pretend = 0, frame = 0 3944 @ frame_needed = 0, uses_anonymous_args = 0 3945 push {r3, lr} 3946 bl insert_data_list 3947 ldr r2, .L574 3948 ldrh r3, [r2] 3949 adds r3, r3, #1 3950 uxth r3, r3 3951 strh r3, [r2] @ movhi 3952 ldr r2, .L574+4 3953 ldrh r2, [r2] 3954 cmp r2, r3 3955 bcs .L572 3956 ldr r1, .L574+8 3957 movs r2, #245 3958 ldr r0, .L574+12 3959 bl printf 3960 ldr r1, .L574+16 3961 ldr r0, .L574+20 3962 pop {r3, lr} 3963 b printf 3964.L572: 3965 pop {r3, pc} 3966.L575: 3967 .align 2 3968.L574: 3969 .word .LANCHOR87 3970 .word .LANCHOR40 3971 .word .LANCHOR88 3972 .word .LC5 3973 .word .LC6 3974 .word .LC7 3975 .size INSERT_DATA_LIST, .-INSERT_DATA_LIST 3976 .section .text.insert_free_list,"ax",%progbits 3977 .align 1 3978 .global insert_free_list 3979 .syntax unified 3980 .thumb 3981 .thumb_func 3982 .fpu softvfp 3983 .type insert_free_list, %function 3984insert_free_list: 3985 @ args = 0, pretend = 0, frame = 0 3986 @ frame_needed = 0, uses_anonymous_args = 0 3987 movw r1, #65535 3988 push {r4, r5, r6, r7, r8, r10, fp, lr} 3989 cmp r0, r1 3990 beq .L577 3991 ldr r3, .L583 3992 mov r10, #6 3993 mul r7, r10, r0 3994 ldr r4, [r3] 3995 ldr r3, .L583+4 3996 adds r5, r4, r7 3997 ldr r6, [r3] 3998 mov lr, r3 3999 strh r1, [r5, #2] @ movhi 4000 strh r1, [r4, r7] @ movhi 4001 cbnz r6, .L578 4002 str r5, [r3] 4003.L577: 4004 movs r0, #0 4005 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4006.L578: 4007 ldr r3, .L583+8 4008 subs r2, r6, r4 4009 mov fp, r1 4010 ldr ip, [r3] 4011 asrs r3, r2, #1 4012 ldr r2, .L583+12 4013 ldrh r8, [ip, r0, lsl #1] 4014 muls r2, r3, r2 4015 mov r3, r6 4016 uxth r2, r2 4017.L581: 4018 ldrh r1, [ip, r2, lsl #1] 4019 cmp r1, r8 4020 bcs .L579 4021 ldrh r1, [r3] 4022 cmp r1, fp 4023 bne .L580 4024 strh r2, [r5, #2] @ movhi 4025 strh r0, [r3] @ movhi 4026 b .L577 4027.L580: 4028 mla r3, r10, r1, r4 4029 mov r2, r1 4030 b .L581 4031.L579: 4032 ldrh r1, [r3, #2] 4033 cmp r3, r6 4034 strh r1, [r5, #2] @ movhi 4035 it ne 4036 ldrhne r1, [r3, #2] 4037 strh r2, [r4, r7] @ movhi 4038 iteet ne 4039 movne r2, #6 4040 strheq r0, [r3, #2] @ movhi 4041 streq r5, [lr] 4042 mulne r2, r2, r1 4043 itt ne 4044 strhne r0, [r4, r2] @ movhi 4045 strhne r0, [r3, #2] @ movhi 4046 b .L577 4047.L584: 4048 .align 2 4049.L583: 4050 .word .LANCHOR83 4051 .word .LANCHOR89 4052 .word .LANCHOR80 4053 .word -1431655765 4054 .size insert_free_list, .-insert_free_list 4055 .section .text.INSERT_FREE_LIST,"ax",%progbits 4056 .align 1 4057 .global INSERT_FREE_LIST 4058 .syntax unified 4059 .thumb 4060 .thumb_func 4061 .fpu softvfp 4062 .type INSERT_FREE_LIST, %function 4063INSERT_FREE_LIST: 4064 @ args = 0, pretend = 0, frame = 0 4065 @ frame_needed = 0, uses_anonymous_args = 0 4066 push {r3, lr} 4067 bl insert_free_list 4068 ldr r2, .L587 4069 ldrh r3, [r2] 4070 adds r3, r3, #1 4071 uxth r3, r3 4072 strh r3, [r2] @ movhi 4073 ldr r2, .L587+4 4074 ldrh r2, [r2] 4075 cmp r2, r3 4076 bcs .L585 4077 ldr r1, .L587+8 4078 movs r2, #238 4079 ldr r0, .L587+12 4080 bl printf 4081 ldr r1, .L587+16 4082 ldr r0, .L587+20 4083 pop {r3, lr} 4084 b printf 4085.L585: 4086 pop {r3, pc} 4087.L588: 4088 .align 2 4089.L587: 4090 .word .LANCHOR90 4091 .word .LANCHOR40 4092 .word .LANCHOR91 4093 .word .LC5 4094 .word .LC6 4095 .word .LC7 4096 .size INSERT_FREE_LIST, .-INSERT_FREE_LIST 4097 .section .text.List_remove_node,"ax",%progbits 4098 .align 1 4099 .global List_remove_node 4100 .syntax unified 4101 .thumb 4102 .thumb_func 4103 .fpu softvfp 4104 .type List_remove_node, %function 4105List_remove_node: 4106 @ args = 0, pretend = 0, frame = 0 4107 @ frame_needed = 0, uses_anonymous_args = 0 4108 push {r4, r5, r6, r7, r8, lr} 4109 movs r6, #6 4110 ldr r5, .L595 4111 muls r6, r1, r6 4112 movw r3, #65535 4113 mov r8, r0 4114 ldr r7, [r5] 4115 adds r4, r7, r6 4116 ldrh r2, [r4, #2] 4117 cmp r2, r3 4118 bne .L590 4119 ldr r3, [r0] 4120 cmp r4, r3 4121 beq .L590 4122 ldr r1, .L595+4 4123 movw r2, #435 4124 ldr r0, .L595+8 4125 bl printf 4126 ldr r1, .L595+12 4127 ldr r0, .L595+16 4128 bl printf 4129.L590: 4130 ldr r3, [r8] 4131 movw r1, #65535 4132 cmp r4, r3 4133 ldrh r3, [r7, r6] 4134 bne .L591 4135 cmp r3, r1 4136 ittee ne 4137 ldrne r0, [r5] 4138 movne r2, #6 4139 moveq r3, #0 4140 streq r3, [r8] 4141 ittt ne 4142 mlane r3, r2, r3, r0 4143 strne r3, [r8] 4144 strhne r1, [r3, #2] @ movhi 4145.L593: 4146 movw r3, #65535 4147 movs r0, #0 4148 strh r3, [r7, r6] @ movhi 4149 strh r3, [r4, #2] @ movhi 4150 pop {r4, r5, r6, r7, r8, pc} 4151.L591: 4152 cmp r3, r1 4153 ldrh r1, [r4, #2] 4154 bne .L594 4155 cmp r1, r3 4156 beq .L593 4157 movs r2, #6 4158 ldr r0, [r5] 4159 muls r1, r2, r1 4160 strh r3, [r0, r1] @ movhi 4161 b .L593 4162.L594: 4163 ldr r0, [r5] 4164 movs r2, #6 4165 mla r5, r2, r3, r0 4166 strh r1, [r5, #2] @ movhi 4167 ldrh r1, [r4, #2] 4168 muls r2, r1, r2 4169 strh r3, [r0, r2] @ movhi 4170 b .L593 4171.L596: 4172 .align 2 4173.L595: 4174 .word .LANCHOR83 4175 .word .LANCHOR92 4176 .word .LC5 4177 .word .LC6 4178 .word .LC7 4179 .size List_remove_node, .-List_remove_node 4180 .section .text.List_pop_index_node,"ax",%progbits 4181 .align 1 4182 .global List_pop_index_node 4183 .syntax unified 4184 .thumb 4185 .thumb_func 4186 .fpu softvfp 4187 .type List_pop_index_node, %function 4188List_pop_index_node: 4189 @ args = 0, pretend = 0, frame = 0 4190 @ frame_needed = 0, uses_anonymous_args = 0 4191 ldr r3, [r0] 4192 push {r4, r5, r6, lr} 4193 cbz r3, .L603 4194 ldr r2, .L604 4195 movw r5, #65535 4196 movs r6, #6 4197 ldr r2, [r2] 4198.L599: 4199 cbnz r1, .L600 4200.L602: 4201 ldr r4, .L604+4 4202 subs r3, r3, r2 4203 asrs r3, r3, #1 4204 muls r4, r3, r4 4205 uxth r1, r4 4206 bl List_remove_node 4207 uxth r0, r4 4208 pop {r4, r5, r6, pc} 4209.L600: 4210 ldrh r4, [r3] 4211 cmp r4, r5 4212 beq .L602 4213 subs r1, r1, #1 4214 mla r3, r6, r4, r2 4215 uxth r1, r1 4216 b .L599 4217.L603: 4218 movw r0, #65535 4219 pop {r4, r5, r6, pc} 4220.L605: 4221 .align 2 4222.L604: 4223 .word .LANCHOR83 4224 .word -1431655765 4225 .size List_pop_index_node, .-List_pop_index_node 4226 .section .text.List_get_gc_head_node,"ax",%progbits 4227 .align 1 4228 .global List_get_gc_head_node 4229 .syntax unified 4230 .thumb 4231 .thumb_func 4232 .fpu softvfp 4233 .type List_get_gc_head_node, %function 4234List_get_gc_head_node: 4235 @ args = 0, pretend = 0, frame = 0 4236 @ frame_needed = 0, uses_anonymous_args = 0 4237 ldr r3, .L612 4238 push {r4, lr} 4239 ldr r3, [r3] 4240 cbz r3, .L611 4241 ldr r2, .L612+4 4242 movs r4, #6 4243 ldr r1, [r2] 4244 movw r2, #65535 4245.L608: 4246 cbz r0, .L609 4247 ldrh r3, [r3] 4248 cmp r3, r2 4249 bne .L610 4250.L611: 4251 movw r0, #65535 4252 pop {r4, pc} 4253.L610: 4254 subs r0, r0, #1 4255 mla r3, r4, r3, r1 4256 uxth r0, r0 4257 b .L608 4258.L609: 4259 ldr r0, .L612+8 4260 subs r3, r3, r1 4261 asrs r3, r3, #1 4262 muls r3, r0, r3 4263 uxth r0, r3 4264 pop {r4, pc} 4265.L613: 4266 .align 2 4267.L612: 4268 .word .LANCHOR84 4269 .word .LANCHOR83 4270 .word -1431655765 4271 .size List_get_gc_head_node, .-List_get_gc_head_node 4272 .section .text.List_update_data_list,"ax",%progbits 4273 .align 1 4274 .global List_update_data_list 4275 .syntax unified 4276 .thumb 4277 .thumb_func 4278 .fpu softvfp 4279 .type List_update_data_list, %function 4280List_update_data_list: 4281 @ args = 0, pretend = 0, frame = 0 4282 @ frame_needed = 0, uses_anonymous_args = 0 4283 ldr r3, .L625 4284 push {r4, r5, r6, r7, r8, r10, fp, lr} 4285 mov r4, r0 4286 ldrh r3, [r3] 4287 cmp r3, r0 4288 beq .L616 4289 ldr r3, .L625+4 4290 ldrh r3, [r3] 4291 cmp r3, r0 4292 beq .L616 4293 ldr r3, .L625+8 4294 ldrh r3, [r3] 4295 cmp r3, r0 4296 beq .L616 4297 ldr r7, .L625+12 4298 movs r6, #6 4299 ldr r3, .L625+16 4300 muls r6, r0, r6 4301 ldr fp, [r7] 4302 ldr r3, [r3] 4303 add r10, fp, r6 4304 cmp r10, r3 4305 beq .L616 4306 ldr r3, .L625+20 4307 ldrh r5, [r10, #4] 4308 ldr r2, [r3] 4309 mov r8, r3 4310 ldrh r2, [r2, r0, lsl #1] 4311 cmp r5, #0 4312 beq .L623 4313 muls r5, r2, r5 4314.L618: 4315 ldrh r3, [r10, #2] 4316 movw r2, #65535 4317 cmp r3, r2 4318 bne .L619 4319 ldrh r2, [fp, r6] 4320 cmp r2, r3 4321 bne .L619 4322 ldr r1, .L625+24 4323 movw r2, #571 4324 ldr r0, .L625+28 4325 bl printf 4326 ldr r1, .L625+32 4327 ldr r0, .L625+36 4328 bl printf 4329.L619: 4330 ldrh r3, [r10, #2] 4331 movw r2, #65535 4332 cmp r3, r2 4333 bne .L620 4334 ldrh r2, [fp, r6] 4335 cmp r2, r3 4336 beq .L616 4337.L620: 4338 movs r2, #6 4339 muls r2, r3, r2 4340 ldr r3, .L625+40 4341 asrs r1, r2, #1 4342 muls r3, r1, r3 4343 ldr r1, [r8] 4344 ldrh r0, [r1, r3, lsl #1] 4345 ldr r1, [r7] 4346 add r2, r2, r1 4347 ldrh r3, [r2, #4] 4348 cbz r3, .L624 4349 muls r3, r0, r3 4350.L621: 4351 cmp r5, r3 4352 bcs .L616 4353 ldr r5, .L625+44 4354 mov r1, r4 4355 ldr r0, .L625+16 4356 bl List_remove_node 4357 ldrh r3, [r5] 4358 cbnz r3, .L622 4359 ldr r1, .L625+24 4360 movw r2, #585 4361 ldr r0, .L625+28 4362 bl printf 4363 ldr r1, .L625+32 4364 ldr r0, .L625+36 4365 bl printf 4366.L622: 4367 ldrh r3, [r5] 4368 mov r0, r4 4369 subs r3, r3, #1 4370 strh r3, [r5] @ movhi 4371 bl INSERT_DATA_LIST 4372.L616: 4373 movs r0, #0 4374 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4375.L623: 4376 mov r5, #-1 4377 b .L618 4378.L624: 4379 mov r3, #-1 4380 b .L621 4381.L626: 4382 .align 2 4383.L625: 4384 .word .LANCHOR93 4385 .word .LANCHOR94 4386 .word .LANCHOR95 4387 .word .LANCHOR83 4388 .word .LANCHOR84 4389 .word .LANCHOR85 4390 .word .LANCHOR96 4391 .word .LC5 4392 .word .LC6 4393 .word .LC7 4394 .word -1431655765 4395 .word .LANCHOR87 4396 .size List_update_data_list, .-List_update_data_list 4397 .section .text.ftl_map_blk_alloc_new_blk,"ax",%progbits 4398 .align 1 4399 .global ftl_map_blk_alloc_new_blk 4400 .syntax unified 4401 .thumb 4402 .thumb_func 4403 .fpu softvfp 4404 .type ftl_map_blk_alloc_new_blk, %function 4405ftl_map_blk_alloc_new_blk: 4406 @ args = 0, pretend = 0, frame = 0 4407 @ frame_needed = 0, uses_anonymous_args = 0 4408 ldrh r1, [r0, #10] 4409 ldr r2, [r0, #12] 4410 push {r3, r4, r5, r6, r7, lr} 4411 mov r4, r0 4412 movs r3, #0 4413.L628: 4414 uxth r5, r3 4415 cmp r5, r1 4416 bcs .L631 4417 mov r7, r2 4418 adds r3, r3, #1 4419 ldrh r6, [r7] 4420 adds r2, r2, #2 4421 cmp r6, #0 4422 bne .L628 4423 bl FtlFreeSysBlkQueueOut 4424 subs r3, r0, #1 4425 movw r2, #65533 4426 uxth r3, r3 4427 mov r1, r0 4428 strh r0, [r7] @ movhi 4429 cmp r3, r2 4430 bls .L629 4431 ldr r3, .L635 4432 ldr r0, .L635+4 4433 ldrh r2, [r3, #6] 4434 bl printf 4435.L630: 4436 b .L630 4437.L629: 4438 ldr r3, [r4, #28] 4439 strh r6, [r4, #2] @ movhi 4440 strh r5, [r4] @ movhi 4441 adds r3, r3, #1 4442 str r3, [r4, #28] 4443 ldrh r3, [r4, #8] 4444 adds r3, r3, #1 4445 strh r3, [r4, #8] @ movhi 4446.L631: 4447 ldrh r3, [r4, #10] 4448 cmp r3, r5 4449 bhi .L633 4450 ldr r1, .L635+8 4451 movw r2, #715 4452 ldr r0, .L635+12 4453 bl printf 4454 ldr r1, .L635+16 4455 ldr r0, .L635+20 4456 bl printf 4457.L633: 4458 movs r0, #0 4459 pop {r3, r4, r5, r6, r7, pc} 4460.L636: 4461 .align 2 4462.L635: 4463 .word .LANCHOR77 4464 .word .LC8 4465 .word .LANCHOR97 4466 .word .LC5 4467 .word .LC6 4468 .word .LC7 4469 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk 4470 .section .text.select_l2p_ram_region,"ax",%progbits 4471 .align 1 4472 .global select_l2p_ram_region 4473 .syntax unified 4474 .thumb 4475 .thumb_func 4476 .fpu softvfp 4477 .type select_l2p_ram_region, %function 4478select_l2p_ram_region: 4479 @ args = 0, pretend = 0, frame = 0 4480 @ frame_needed = 0, uses_anonymous_args = 0 4481 push {r3, r4, r5, r6, r7, lr} 4482 movs r1, #0 4483 ldr r3, .L647 4484 movs r0, #12 4485 movw r5, #65535 4486 ldrh r2, [r3] 4487 ldr r3, .L647+4 4488 ldr r3, [r3] 4489.L638: 4490 uxth r4, r1 4491 cmp r4, r2 4492 bcc .L640 4493 mov r4, r2 4494 movs r1, #0 4495 mov r6, #-2147483648 4496 movs r7, #12 4497.L641: 4498 uxth r5, r1 4499 cmp r5, r2 4500 bcc .L643 4501 cmp r4, r2 4502 bcc .L639 4503 ldr r1, .L647+8 4504 mov r4, r2 4505 mov r0, #-1 4506 ldrh r7, [r1] 4507 movs r1, #0 4508.L644: 4509 uxth r5, r1 4510 cmp r5, r2 4511 bcc .L646 4512 cmp r4, r2 4513 bcc .L639 4514 movw r2, #977 4515 ldr r1, .L647+12 4516 ldr r0, .L647+16 4517 bl printf 4518 ldr r1, .L647+20 4519 ldr r0, .L647+24 4520 bl printf 4521 b .L639 4522.L640: 4523 adds r1, r1, #1 4524 mla r6, r0, r1, r3 4525 ldrh r6, [r6, #-12] 4526 cmp r6, r5 4527 bne .L638 4528.L639: 4529 mov r0, r4 4530 pop {r3, r4, r5, r6, r7, pc} 4531.L643: 4532 mla r0, r7, r1, r3 4533 ldr r0, [r0, #4] 4534 cmp r0, #0 4535 blt .L642 4536 cmp r6, r0 4537 itt hi 4538 movhi r6, r0 4539 movhi r4, r5 4540.L642: 4541 adds r1, r1, #1 4542 b .L641 4543.L646: 4544 ldr r6, [r3, #4] 4545 cmp r0, r6 4546 bls .L645 4547 ldrh ip, [r3] 4548 cmp ip, r7 4549 itt ne 4550 movne r0, r6 4551 movne r4, r5 4552.L645: 4553 adds r1, r1, #1 4554 adds r3, r3, #12 4555 b .L644 4556.L648: 4557 .align 2 4558.L647: 4559 .word .LANCHOR67 4560 .word .LANCHOR98 4561 .word .LANCHOR99 4562 .word .LANCHOR100 4563 .word .LC5 4564 .word .LC6 4565 .word .LC7 4566 .size select_l2p_ram_region, .-select_l2p_ram_region 4567 .section .text.FtlUpdateVaildLpn,"ax",%progbits 4568 .align 1 4569 .global FtlUpdateVaildLpn 4570 .syntax unified 4571 .thumb 4572 .thumb_func 4573 .fpu softvfp 4574 .type FtlUpdateVaildLpn, %function 4575FtlUpdateVaildLpn: 4576 @ args = 0, pretend = 0, frame = 0 4577 @ frame_needed = 0, uses_anonymous_args = 0 4578 ldr r2, .L659 4579 push {r4, r5, r6, lr} 4580 mov r1, r2 4581 ldrh r3, [r2] 4582 cmp r3, #4 4583 bhi .L650 4584 cbnz r0, .L650 4585 adds r3, r3, #1 4586 strh r3, [r2] @ movhi 4587 pop {r4, r5, r6, pc} 4588.L650: 4589 movs r3, #0 4590 ldr r0, .L659+4 4591 strh r3, [r1] @ movhi 4592 movw r6, #65535 4593 ldr r1, .L659+8 4594 ldrh r4, [r0] 4595 mov r0, r3 4596 ldr r2, .L659+12 4597 ldr r1, [r1] 4598 str r3, [r2] 4599 add r4, r1, r4, lsl #1 4600.L651: 4601 cmp r1, r4 4602 bne .L653 4603 cbz r3, .L649 4604 str r0, [r2] 4605.L649: 4606 pop {r4, r5, r6, pc} 4607.L653: 4608 ldrh r5, [r1], #2 4609 cmp r5, r6 4610 itt ne 4611 addne r0, r0, r5 4612 movne r3, #1 4613 b .L651 4614.L660: 4615 .align 2 4616.L659: 4617 .word .LANCHOR101 4618 .word .LANCHOR40 4619 .word .LANCHOR85 4620 .word .LANCHOR102 4621 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn 4622 .section .text.ftl_set_blk_mode,"ax",%progbits 4623 .align 1 4624 .global ftl_set_blk_mode 4625 .syntax unified 4626 .thumb 4627 .thumb_func 4628 .fpu softvfp 4629 .type ftl_set_blk_mode, %function 4630ftl_set_blk_mode: 4631 @ args = 0, pretend = 0, frame = 0 4632 @ frame_needed = 0, uses_anonymous_args = 0 4633 @ link register save eliminated. 4634 mov r3, r0 4635 cbz r1, .L662 4636 b ftl_set_blk_mode.part.11 4637.L662: 4638 ldr r2, .L663 4639 lsrs r0, r0, #5 4640 and r3, r3, #31 4641 ldr r1, [r2] 4642 movs r2, #1 4643 lsl r3, r2, r3 4644 ldr r2, [r1, r0, lsl #2] 4645 bic r2, r2, r3 4646 str r2, [r1, r0, lsl #2] 4647 bx lr 4648.L664: 4649 .align 2 4650.L663: 4651 .word .LANCHOR1 4652 .size ftl_set_blk_mode, .-ftl_set_blk_mode 4653 .section .text.ftl_get_blk_mode,"ax",%progbits 4654 .align 1 4655 .global ftl_get_blk_mode 4656 .syntax unified 4657 .thumb 4658 .thumb_func 4659 .fpu softvfp 4660 .type ftl_get_blk_mode, %function 4661ftl_get_blk_mode: 4662 @ args = 0, pretend = 0, frame = 0 4663 @ frame_needed = 0, uses_anonymous_args = 0 4664 @ link register save eliminated. 4665 ldr r3, .L666 4666 lsrs r2, r0, #5 4667 and r0, r0, #31 4668 ldr r3, [r3] 4669 ldr r3, [r3, r2, lsl #2] 4670 lsr r0, r3, r0 4671 and r0, r0, #1 4672 bx lr 4673.L667: 4674 .align 2 4675.L666: 4676 .word .LANCHOR1 4677 .size ftl_get_blk_mode, .-ftl_get_blk_mode 4678 .section .text.ftl_sb_update_avl_pages,"ax",%progbits 4679 .align 1 4680 .global ftl_sb_update_avl_pages 4681 .syntax unified 4682 .thumb 4683 .thumb_func 4684 .fpu softvfp 4685 .type ftl_sb_update_avl_pages, %function 4686ftl_sb_update_avl_pages: 4687 @ args = 0, pretend = 0, frame = 0 4688 @ frame_needed = 0, uses_anonymous_args = 0 4689 movs r3, #0 4690 push {r4, r5, r6, lr} 4691 strh r3, [r0, #4] @ movhi 4692 movw r6, #65535 4693 ldr r3, .L675 4694 ldrh r4, [r3] 4695 add r3, r0, r2, lsl #1 4696 adds r3, r3, #14 4697.L669: 4698 cmp r2, r4 4699 bcc .L671 4700 ldr r3, .L675+4 4701 add r5, r0, #16 4702 movw r6, #65535 4703 ldrh r3, [r3] 4704 subs r3, r3, #1 4705 subs r1, r3, r1 4706 movs r3, #0 4707 uxth r1, r1 4708.L672: 4709 uxth r2, r3 4710 cmp r4, r2 4711 bhi .L674 4712 pop {r4, r5, r6, pc} 4713.L671: 4714 ldrh r5, [r3, #2]! 4715 adds r2, r2, #1 4716 uxth r2, r2 4717 cmp r5, r6 4718 ittt ne 4719 ldrhne r5, [r0, #4] 4720 addne r5, r5, #1 4721 strhne r5, [r0, #4] @ movhi 4722 b .L669 4723.L674: 4724 ldrh r2, [r5], #2 4725 adds r3, r3, #1 4726 cmp r2, r6 4727 ittt ne 4728 ldrhne r2, [r0, #4] 4729 addne r2, r2, r1 4730 strhne r2, [r0, #4] @ movhi 4731 b .L672 4732.L676: 4733 .align 2 4734.L675: 4735 .word .LANCHOR38 4736 .word .LANCHOR52 4737 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages 4738 .section .text.make_superblock,"ax",%progbits 4739 .align 1 4740 .global make_superblock 4741 .syntax unified 4742 .thumb 4743 .thumb_func 4744 .fpu softvfp 4745 .type make_superblock, %function 4746make_superblock: 4747 @ args = 0, pretend = 0, frame = 0 4748 @ frame_needed = 0, uses_anonymous_args = 0 4749 ldr r3, .L690 4750 ldrh r2, [r0] 4751 push {r4, r5, r6, r7, r8, r10, fp, lr} 4752 mov r4, r0 4753 ldrh r3, [r3] 4754 cmp r2, r3 4755 bcc .L678 4756 ldr r1, .L690+4 4757 movw r2, #2819 4758 ldr r0, .L690+8 4759 bl printf 4760 ldr r1, .L690+12 4761 ldr r0, .L690+16 4762 bl printf 4763.L678: 4764 ldr r3, .L690+20 4765 add r6, r4, #16 4766 ldr r10, .L690+40 4767 movw r7, #65535 4768 movs r5, #0 4769 ldrh r8, [r3] 4770 strh r5, [r4, #4] @ movhi 4771 strb r5, [r4, #7] 4772.L679: 4773 uxth r3, r5 4774 cmp r8, r3 4775 bhi .L681 4776 ldr r2, .L690+24 4777 ldrb r3, [r4, #7] @ zero_extendqisi2 4778 ldrh r2, [r2] 4779 smulbb r3, r3, r2 4780 strh r3, [r4, #4] @ movhi 4781 movs r3, #0 4782 strb r3, [r4, #9] 4783 ldr r3, .L690+28 4784 ldr r3, [r3] 4785 cbz r3, .L682 4786 ldr r3, .L690+32 4787 ldrh r2, [r4] 4788 ldr r3, [r3] 4789 ldrh r3, [r3, r2, lsl #1] 4790 cmp r3, #79 4791 itt ls 4792 movls r3, #1 4793 strbls r3, [r4, #9] 4794.L682: 4795 ldr r3, .L690+36 4796 ldrb r3, [r3] @ zero_extendqisi2 4797 cbz r3, .L683 4798 movs r3, #1 4799 strb r3, [r4, #9] 4800.L683: 4801 movs r0, #0 4802 pop {r4, r5, r6, r7, r8, r10, fp, pc} 4803.L681: 4804 ldrh r1, [r4] 4805 ldrb r0, [r10, r5] @ zero_extendqisi2 4806 bl V2P_block 4807 strh r7, [r6] @ movhi 4808 mov fp, r0 4809 bl FtlBbmIsBadBlock 4810 cbnz r0, .L680 4811 strh fp, [r6] @ movhi 4812 ldrb r3, [r4, #7] @ zero_extendqisi2 4813 adds r3, r3, #1 4814 strb r3, [r4, #7] 4815.L680: 4816 adds r5, r5, #1 4817 adds r6, r6, #2 4818 b .L679 4819.L691: 4820 .align 2 4821.L690: 4822 .word .LANCHOR40 4823 .word .LANCHOR103 4824 .word .LC5 4825 .word .LC6 4826 .word .LC7 4827 .word .LANCHOR38 4828 .word .LANCHOR52 4829 .word .LANCHOR104 4830 .word .LANCHOR80 4831 .word .LANCHOR2 4832 .word .LANCHOR47 4833 .size make_superblock, .-make_superblock 4834 .section .text.update_multiplier_value,"ax",%progbits 4835 .align 1 4836 .global update_multiplier_value 4837 .syntax unified 4838 .thumb 4839 .thumb_func 4840 .fpu softvfp 4841 .type update_multiplier_value, %function 4842update_multiplier_value: 4843 @ args = 0, pretend = 0, frame = 0 4844 @ frame_needed = 0, uses_anonymous_args = 0 4845 push {r3, r4, r5, r6, r7, r8, r10, lr} 4846 movs r5, #0 4847 ldr r3, .L698 4848 mov r6, r0 4849 mov r4, r5 4850 ldr r10, .L698+12 4851 ldrh r7, [r3] 4852 ldr r3, .L698+4 4853 ldrh r8, [r3] 4854.L693: 4855 uxth r3, r5 4856 cmp r7, r3 4857 bhi .L695 4858 cbz r4, .L697 4859 mov r1, r4 4860 mov r0, #32768 4861 bl __aeabi_idiv 4862.L696: 4863 ldr r3, .L698+8 4864 movs r2, #6 4865 ldr r3, [r3] 4866 mla r6, r2, r6, r3 4867 strh r0, [r6, #4] @ movhi 4868 movs r0, #0 4869 pop {r3, r4, r5, r6, r7, r8, r10, pc} 4870.L695: 4871 mov r1, r6 4872 ldrb r0, [r10, r5] @ zero_extendqisi2 4873 bl V2P_block 4874 bl FtlBbmIsBadBlock 4875 cbnz r0, .L694 4876 add r4, r4, r8 4877 uxth r4, r4 4878.L694: 4879 adds r5, r5, #1 4880 b .L693 4881.L697: 4882 mov r0, r4 4883 b .L696 4884.L699: 4885 .align 2 4886.L698: 4887 .word .LANCHOR38 4888 .word .LANCHOR52 4889 .word .LANCHOR83 4890 .word .LANCHOR47 4891 .size update_multiplier_value, .-update_multiplier_value 4892 .section .text.GetFreeBlockMinEraseCount,"ax",%progbits 4893 .align 1 4894 .global GetFreeBlockMinEraseCount 4895 .syntax unified 4896 .thumb 4897 .thumb_func 4898 .fpu softvfp 4899 .type GetFreeBlockMinEraseCount, %function 4900GetFreeBlockMinEraseCount: 4901 @ args = 0, pretend = 0, frame = 0 4902 @ frame_needed = 0, uses_anonymous_args = 0 4903 @ link register save eliminated. 4904 ldr r3, .L703 4905 ldr r0, [r3] 4906 cbz r0, .L701 4907 ldr r3, .L703+4 4908 ldr r3, [r3] 4909 subs r0, r0, r3 4910 ldr r3, .L703+8 4911 asrs r0, r0, #1 4912 muls r0, r3, r0 4913 ldr r3, .L703+12 4914 ldr r3, [r3] 4915 uxth r0, r0 4916 ldrh r0, [r3, r0, lsl #1] 4917.L701: 4918 bx lr 4919.L704: 4920 .align 2 4921.L703: 4922 .word .LANCHOR89 4923 .word .LANCHOR83 4924 .word -1431655765 4925 .word .LANCHOR80 4926 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount 4927 .section .text.GetFreeBlockMaxEraseCount,"ax",%progbits 4928 .align 1 4929 .global GetFreeBlockMaxEraseCount 4930 .syntax unified 4931 .thumb 4932 .thumb_func 4933 .fpu softvfp 4934 .type GetFreeBlockMaxEraseCount, %function 4935GetFreeBlockMaxEraseCount: 4936 @ args = 0, pretend = 0, frame = 0 4937 @ frame_needed = 0, uses_anonymous_args = 0 4938 ldr r3, .L713 4939 push {r4, r5, r6, lr} 4940 ldr r3, [r3] 4941 cbz r3, .L711 4942 ldr r2, .L713+4 4943 movs r5, #6 4944 movw r6, #65535 4945 ldrh r2, [r2] 4946 rsb r2, r2, r2, lsl #3 4947 asrs r2, r2, #3 4948 cmp r0, r2 4949 it gt 4950 uxthgt r0, r2 4951 ldr r2, .L713+8 4952 ldr r1, [r2] 4953 ldr r2, .L713+12 4954 subs r3, r3, r1 4955 asrs r3, r3, #1 4956 muls r3, r2, r3 4957 movs r2, #0 4958 uxth r3, r3 4959.L708: 4960 uxth r4, r2 4961 cmp r0, r4 4962 bls .L710 4963 mul r4, r5, r3 4964 adds r2, r2, #1 4965 ldrh r4, [r1, r4] 4966 cmp r4, r6 4967 bne .L712 4968.L710: 4969 ldr r2, .L713+16 4970 ldr r2, [r2] 4971 ldrh r0, [r2, r3, lsl #1] 4972 pop {r4, r5, r6, pc} 4973.L712: 4974 mov r3, r4 4975 b .L708 4976.L711: 4977 mov r0, r3 4978 pop {r4, r5, r6, pc} 4979.L714: 4980 .align 2 4981.L713: 4982 .word .LANCHOR89 4983 .word .LANCHOR90 4984 .word .LANCHOR83 4985 .word -1431655765 4986 .word .LANCHOR80 4987 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount 4988 .section .text.free_data_superblock,"ax",%progbits 4989 .align 1 4990 .global free_data_superblock 4991 .syntax unified 4992 .thumb 4993 .thumb_func 4994 .fpu softvfp 4995 .type free_data_superblock, %function 4996free_data_superblock: 4997 @ args = 0, pretend = 0, frame = 0 4998 @ frame_needed = 0, uses_anonymous_args = 0 4999 movw r2, #65535 5000 push {r3, lr} 5001 cmp r0, r2 5002 beq .L716 5003 ldr r2, .L717 5004 movs r1, #0 5005 ldr r2, [r2] 5006 strh r1, [r2, r0, lsl #1] @ movhi 5007 bl INSERT_FREE_LIST 5008.L716: 5009 movs r0, #0 5010 pop {r3, pc} 5011.L718: 5012 .align 2 5013.L717: 5014 .word .LANCHOR85 5015 .size free_data_superblock, .-free_data_superblock 5016 .section .text.FtlGcBufInit,"ax",%progbits 5017 .align 1 5018 .global FtlGcBufInit 5019 .syntax unified 5020 .thumb 5021 .thumb_func 5022 .fpu softvfp 5023 .type FtlGcBufInit, %function 5024FtlGcBufInit: 5025 @ args = 0, pretend = 0, frame = 8 5026 @ frame_needed = 0, uses_anonymous_args = 0 5027 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 5028 movs r3, #0 5029 ldr r1, .L724 5030 mov fp, #1 5031 ldr r2, .L724+4 5032 ldr r5, [r1] 5033 ldr r1, .L724+8 5034 str r3, [r2] 5035 ldr r2, .L724+12 5036 mov r0, r5 5037 ldr r1, [r1] 5038 ldrh r2, [r2] 5039 str r1, [sp, #4] 5040 ldr r1, .L724+16 5041 ldrh r1, [r1] 5042 str r1, [sp] 5043 ldr r1, .L724+20 5044 ldr r10, [r1] 5045 ldr r1, .L724+24 5046 ldrh r7, [r1] 5047 ldr r1, .L724+28 5048 ldr r4, [r1] 5049 movs r1, #12 5050 mla r1, r2, r1, r1 5051 adds r4, r4, #8 5052 add r8, r5, r1 5053 mov r1, r3 5054.L720: 5055 adds r0, r0, #12 5056 ldr r6, [sp] 5057 cmp r0, r8 5058 add ip, r3, r7 5059 add r4, r4, #36 5060 add lr, r1, r6 5061 bne .L721 5062 ldr r3, .L724+32 5063 mov lr, #12 5064 mov r8, #0 5065 ldr r0, [r3] 5066 ldr r3, .L724+8 5067 ldr r4, [r3] 5068 ldr r3, .L724+20 5069 ldr ip, [r3] 5070.L722: 5071 cmp r2, r0 5072 bcc .L723 5073 add sp, sp, #8 5074 @ sp needed 5075 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5076.L721: 5077 bic r1, r1, #3 5078 bic r3, r3, #3 5079 mov r6, r1 5080 ldr r1, [sp, #4] 5081 add r3, r3, r10 5082 str fp, [r0, #-4] 5083 str r3, [r0, #-8] 5084 add r6, r6, r1 5085 mov r1, lr 5086 str r6, [r0, #-12] 5087 str r3, [r4, #-32] 5088 mov r3, ip 5089 str r6, [r4, #-36] 5090 b .L720 5091.L723: 5092 ldr r3, [sp] 5093 mul r10, lr, r2 5094 muls r3, r2, r3 5095 add r1, r5, r10 5096 str r8, [r1, #8] 5097 bic r3, r3, #3 5098 add r3, r3, r4 5099 str r3, [r5, r10] 5100 mul r3, r2, r7 5101 adds r2, r2, #1 5102 uxth r2, r2 5103 bic r3, r3, #3 5104 add r3, r3, ip 5105 str r3, [r1, #4] 5106 b .L722 5107.L725: 5108 .align 2 5109.L724: 5110 .word .LANCHOR106 5111 .word .LANCHOR105 5112 .word .LANCHOR107 5113 .word .LANCHOR38 5114 .word .LANCHOR57 5115 .word .LANCHOR108 5116 .word .LANCHOR58 5117 .word .LANCHOR109 5118 .word .LANCHOR110 5119 .size FtlGcBufInit, .-FtlGcBufInit 5120 .section .text.FtlGcBufFree,"ax",%progbits 5121 .align 1 5122 .global FtlGcBufFree 5123 .syntax unified 5124 .thumb 5125 .thumb_func 5126 .fpu softvfp 5127 .type FtlGcBufFree, %function 5128FtlGcBufFree: 5129 @ args = 0, pretend = 0, frame = 0 5130 @ frame_needed = 0, uses_anonymous_args = 0 5131 ldr r3, .L733 5132 mov ip, #12 5133 push {r4, r5, r6, r7, r8, r10, fp, lr} 5134 movs r4, #0 5135 mov fp, #36 5136 mov lr, r4 5137 ldr r7, [r3] 5138 ldr r3, .L733+4 5139 ldr r5, [r3] 5140.L727: 5141 uxth r3, r4 5142 cmp r1, r3 5143 bls .L726 5144 mla r8, fp, r3, r0 5145 movs r2, #0 5146.L728: 5147 uxth r3, r2 5148 cmp r7, r3 5149 bls .L729 5150 mul r3, ip, r3 5151 ldr r6, [r8, #8] 5152 adds r2, r2, #1 5153 add r10, r5, r3 5154 ldr r3, [r5, r3] 5155 cmp r3, r6 5156 bne .L728 5157 str lr, [r10, #8] 5158.L729: 5159 adds r4, r4, #1 5160 b .L727 5161.L726: 5162 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5163.L734: 5164 .align 2 5165.L733: 5166 .word .LANCHOR110 5167 .word .LANCHOR106 5168 .size FtlGcBufFree, .-FtlGcBufFree 5169 .section .text.FtlGcBufAlloc,"ax",%progbits 5170 .align 1 5171 .global FtlGcBufAlloc 5172 .syntax unified 5173 .thumb 5174 .thumb_func 5175 .fpu softvfp 5176 .type FtlGcBufAlloc, %function 5177FtlGcBufAlloc: 5178 @ args = 0, pretend = 0, frame = 0 5179 @ frame_needed = 0, uses_anonymous_args = 0 5180 ldr r3, .L742 5181 movs r2, #0 5182 push {r4, r5, r6, r7, r8, r10, lr} 5183 mov ip, #12 5184 movs r7, #1 5185 mov lr, #36 5186 ldr r4, [r3] 5187 ldr r3, .L742+4 5188 ldr r5, [r3] 5189.L736: 5190 uxth r8, r2 5191 cmp r1, r8 5192 bhi .L740 5193 pop {r4, r5, r6, r7, r8, r10, pc} 5194.L740: 5195 mov r10, #0 5196.L737: 5197 uxth r3, r10 5198 cmp r4, r3 5199 bls .L738 5200 mla r3, ip, r3, r5 5201 add r10, r10, #1 5202 ldr r6, [r3, #8] 5203 cmp r6, #0 5204 bne .L737 5205 mla r8, lr, r8, r0 5206 str r7, [r3, #8] 5207 ldr r6, [r3] 5208 ldr r3, [r3, #4] 5209 str r6, [r8, #8] 5210 str r3, [r8, #12] 5211.L738: 5212 adds r2, r2, #1 5213 b .L736 5214.L743: 5215 .align 2 5216.L742: 5217 .word .LANCHOR110 5218 .word .LANCHOR106 5219 .size FtlGcBufAlloc, .-FtlGcBufAlloc 5220 .section .text.IsBlkInGcList,"ax",%progbits 5221 .align 1 5222 .global IsBlkInGcList 5223 .syntax unified 5224 .thumb 5225 .thumb_func 5226 .fpu softvfp 5227 .type IsBlkInGcList, %function 5228IsBlkInGcList: 5229 @ args = 0, pretend = 0, frame = 0 5230 @ frame_needed = 0, uses_anonymous_args = 0 5231 @ link register save eliminated. 5232 ldr r3, .L749 5233 ldr r2, .L749+4 5234 ldr r3, [r3] 5235 ldrh r2, [r2] 5236 add r2, r3, r2, lsl #1 5237.L745: 5238 cmp r3, r2 5239 bne .L747 5240 movs r0, #0 5241 bx lr 5242.L747: 5243 ldrh r1, [r3], #2 5244 cmp r1, r0 5245 bne .L745 5246 movs r0, #1 5247 bx lr 5248.L750: 5249 .align 2 5250.L749: 5251 .word .LANCHOR111 5252 .word .LANCHOR112 5253 .size IsBlkInGcList, .-IsBlkInGcList 5254 .section .text.FtlGcUpdatePage,"ax",%progbits 5255 .align 1 5256 .global FtlGcUpdatePage 5257 .syntax unified 5258 .thumb 5259 .thumb_func 5260 .fpu softvfp 5261 .type FtlGcUpdatePage, %function 5262FtlGcUpdatePage: 5263 @ args = 0, pretend = 0, frame = 0 5264 @ frame_needed = 0, uses_anonymous_args = 0 5265 push {r3, r4, r5, r6, r7, lr} 5266 mov r5, r0 5267 ldr r4, .L755 5268 ubfx r0, r0, #10, #16 5269 mov r6, r1 5270 mov r7, r2 5271 bl P2V_block_in_plane 5272 ldr r3, .L755+4 5273 ldrh r1, [r4] 5274 ldr r2, [r3] 5275 movs r3, #0 5276.L752: 5277 uxth ip, r3 5278 cmp ip, r1 5279 bcc .L754 5280 bne .L753 5281 strh r0, [r2, ip, lsl #1] @ movhi 5282 ldrh r3, [r4] 5283 adds r3, r3, #1 5284 strh r3, [r4] @ movhi 5285 b .L753 5286.L754: 5287 adds r3, r3, #1 5288 add ip, r2, r3, lsl #1 5289 ldrh ip, [ip, #-2] 5290 cmp ip, r0 5291 bne .L752 5292.L753: 5293 ldr r2, .L755+8 5294 movs r0, #12 5295 ldr r1, .L755+12 5296 ldrh r3, [r2] 5297 ldr r1, [r1] 5298 muls r0, r3, r0 5299 adds r3, r3, #1 5300 adds r4, r1, r0 5301 str r6, [r4, #4] 5302 str r7, [r4, #8] 5303 str r5, [r1, r0] 5304 strh r3, [r2] @ movhi 5305 pop {r3, r4, r5, r6, r7, pc} 5306.L756: 5307 .align 2 5308.L755: 5309 .word .LANCHOR112 5310 .word .LANCHOR111 5311 .word .LANCHOR113 5312 .word .LANCHOR114 5313 .size FtlGcUpdatePage, .-FtlGcUpdatePage 5314 .section .text.FtlGcRefreshOpenBlock,"ax",%progbits 5315 .align 1 5316 .global FtlGcRefreshOpenBlock 5317 .syntax unified 5318 .thumb 5319 .thumb_func 5320 .fpu softvfp 5321 .type FtlGcRefreshOpenBlock, %function 5322FtlGcRefreshOpenBlock: 5323 @ args = 0, pretend = 0, frame = 0 5324 @ frame_needed = 0, uses_anonymous_args = 0 5325 ldr ip, .L762+12 5326 push {r4, r5, r6, r7, lr} 5327 ldrh lr, [ip] 5328 cmp lr, r0 5329 beq .L758 5330 ldr r6, .L762 5331 ldrh r7, [r6] 5332 cmp r0, r7 5333 beq .L758 5334 ldr r4, .L762+4 5335 ldrh r5, [r4] 5336 cmp r0, r5 5337 beq .L758 5338 ldr r2, .L762+8 5339 ldrh r1, [r2] 5340 cmp r0, r1 5341 beq .L758 5342 movw r3, #65535 5343 cmp lr, r3 5344 bne .L759 5345 strh r0, [ip] @ movhi 5346.L758: 5347 movs r0, #0 5348 pop {r4, r5, r6, r7, pc} 5349.L759: 5350 cmp r7, r3 5351 bne .L760 5352 strh r0, [r6] @ movhi 5353 b .L758 5354.L760: 5355 cmp r5, r3 5356 bne .L761 5357 strh r0, [r4] @ movhi 5358 b .L758 5359.L761: 5360 cmp r1, r3 5361 it eq 5362 strheq r0, [r2] @ movhi 5363 b .L758 5364.L763: 5365 .align 2 5366.L762: 5367 .word .LANCHOR116 5368 .word .LANCHOR117 5369 .word .LANCHOR118 5370 .word .LANCHOR115 5371 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock 5372 .section .text.FtlGcRefreshBlock,"ax",%progbits 5373 .align 1 5374 .global FtlGcRefreshBlock 5375 .syntax unified 5376 .thumb 5377 .thumb_func 5378 .fpu softvfp 5379 .type FtlGcRefreshBlock, %function 5380FtlGcRefreshBlock: 5381 @ args = 0, pretend = 0, frame = 0 5382 @ frame_needed = 0, uses_anonymous_args = 0 5383 ldr ip, .L774+12 5384 push {r4, r5, r6, r7, lr} 5385 ldrh lr, [ip] 5386 cmp lr, r0 5387 beq .L772 5388 ldr r6, .L774 5389 ldrh r7, [r6] 5390 cmp r0, r7 5391 beq .L772 5392 ldr r4, .L774+4 5393 ldrh r5, [r4] 5394 cmp r0, r5 5395 beq .L772 5396 ldr r2, .L774+8 5397 ldrh r1, [r2] 5398 cmp r0, r1 5399 beq .L772 5400 movw r3, #65535 5401 cmp lr, r3 5402 bne .L766 5403 strh r0, [ip] @ movhi 5404.L772: 5405 movs r0, #0 5406 pop {r4, r5, r6, r7, pc} 5407.L766: 5408 cmp r7, r3 5409 bne .L767 5410 strh r0, [r6] @ movhi 5411 b .L772 5412.L767: 5413 cmp r5, r3 5414 bne .L768 5415 strh r0, [r4] @ movhi 5416 b .L772 5417.L768: 5418 cmp r1, r3 5419 bne .L773 5420 strh r0, [r2] @ movhi 5421 b .L772 5422.L773: 5423 mov r0, #-1 5424 pop {r4, r5, r6, r7, pc} 5425.L775: 5426 .align 2 5427.L774: 5428 .word .LANCHOR116 5429 .word .LANCHOR117 5430 .word .LANCHOR118 5431 .word .LANCHOR115 5432 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock 5433 .section .text.FtlGcMarkBadPhyBlk,"ax",%progbits 5434 .align 1 5435 .global FtlGcMarkBadPhyBlk 5436 .syntax unified 5437 .thumb 5438 .thumb_func 5439 .fpu softvfp 5440 .type FtlGcMarkBadPhyBlk, %function 5441FtlGcMarkBadPhyBlk: 5442 @ args = 0, pretend = 0, frame = 0 5443 @ frame_needed = 0, uses_anonymous_args = 0 5444 push {r3, r4, r5, lr} 5445 mov r4, r0 5446 bl P2V_block_in_plane 5447 mov r5, r0 5448 bl FtlGcRefreshBlock 5449 ldr r3, .L784 5450 ldr r3, [r3] 5451 cbz r3, .L777 5452 ldr r3, .L784+4 5453 ldr r2, [r3] 5454 ldrh r3, [r2, r5, lsl #1] 5455 cmp r3, #39 5456 itt hi 5457 subhi r3, r3, #40 5458 strhhi r3, [r2, r5, lsl #1] @ movhi 5459.L777: 5460 ldr r2, .L784+8 5461 movs r1, #0 5462 ldr r5, .L784+12 5463 ldrh r3, [r2] 5464.L778: 5465 uxth r0, r1 5466 cmp r3, r0 5467 bhi .L780 5468 cmp r3, #15 5469 itttt ls 5470 addls r1, r3, #1 5471 strhls r1, [r2] @ movhi 5472 ldrls r2, .L784+12 5473 strhls r4, [r2, r3, lsl #1] @ movhi 5474 b .L779 5475.L780: 5476 adds r1, r1, #1 5477 add r0, r5, r1, lsl #1 5478 ldrh r0, [r0, #-2] 5479 cmp r0, r4 5480 bne .L778 5481.L779: 5482 movs r0, #0 5483 pop {r3, r4, r5, pc} 5484.L785: 5485 .align 2 5486.L784: 5487 .word .LANCHOR104 5488 .word .LANCHOR80 5489 .word .LANCHOR119 5490 .word .LANCHOR120 5491 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk 5492 .section .text.FtlGcReFreshBadBlk,"ax",%progbits 5493 .align 1 5494 .global FtlGcReFreshBadBlk 5495 .syntax unified 5496 .thumb 5497 .thumb_func 5498 .fpu softvfp 5499 .type FtlGcReFreshBadBlk, %function 5500FtlGcReFreshBadBlk: 5501 @ args = 0, pretend = 0, frame = 0 5502 @ frame_needed = 0, uses_anonymous_args = 0 5503 ldr r3, .L792 5504 push {r4, lr} 5505 ldrh r3, [r3] 5506 cbz r3, .L787 5507 ldr r2, .L792+4 5508 ldrh r1, [r2] 5509 movw r2, #65535 5510 cmp r1, r2 5511 bne .L787 5512 ldr r4, .L792+8 5513 ldrh r2, [r4] 5514 cmp r2, r3 5515 itt cs 5516 movcs r3, #0 5517 strhcs r3, [r4] @ movhi 5518 ldr r3, .L792+12 5519 ldrh r2, [r4] 5520 ldrh r0, [r3, r2, lsl #1] 5521 bl P2V_block_in_plane 5522 bl FtlGcRefreshBlock 5523 ldrh r3, [r4] 5524 adds r3, r3, #1 5525 strh r3, [r4] @ movhi 5526.L787: 5527 movs r0, #0 5528 pop {r4, pc} 5529.L793: 5530 .align 2 5531.L792: 5532 .word .LANCHOR119 5533 .word .LANCHOR115 5534 .word .LANCHOR121 5535 .word .LANCHOR120 5536 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk 5537 .section .text.flash_boot_enter_slc_mode,"ax",%progbits 5538 .align 1 5539 .global flash_boot_enter_slc_mode 5540 .syntax unified 5541 .thumb 5542 .thumb_func 5543 .fpu softvfp 5544 .type flash_boot_enter_slc_mode, %function 5545flash_boot_enter_slc_mode: 5546 @ args = 0, pretend = 0, frame = 0 5547 @ frame_needed = 0, uses_anonymous_args = 0 5548 @ link register save eliminated. 5549 ldr r3, .L796 5550 ldr r2, [r3] 5551 ldr r3, .L796+4 5552 cmp r2, r3 5553 bne .L794 5554 b flash_enter_slc_mode 5555.L794: 5556 bx lr 5557.L797: 5558 .align 2 5559.L796: 5560 .word .LANCHOR122 5561 .word 1446522928 5562 .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode 5563 .section .text.flash_boot_exit_slc_mode,"ax",%progbits 5564 .align 1 5565 .global flash_boot_exit_slc_mode 5566 .syntax unified 5567 .thumb 5568 .thumb_func 5569 .fpu softvfp 5570 .type flash_boot_exit_slc_mode, %function 5571flash_boot_exit_slc_mode: 5572 @ args = 0, pretend = 0, frame = 0 5573 @ frame_needed = 0, uses_anonymous_args = 0 5574 @ link register save eliminated. 5575 ldr r3, .L800 5576 ldr r2, [r3] 5577 ldr r3, .L800+4 5578 cmp r2, r3 5579 bne .L798 5580 b flash_exit_slc_mode 5581.L798: 5582 bx lr 5583.L801: 5584 .align 2 5585.L800: 5586 .word .LANCHOR122 5587 .word 1446522928 5588 .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode 5589 .section .text.FW_FlashBlockErase.constprop.41,"ax",%progbits 5590 .align 1 5591 .syntax unified 5592 .thumb 5593 .thumb_func 5594 .fpu softvfp 5595 .type FW_FlashBlockErase.constprop.41, %function 5596FW_FlashBlockErase.constprop.41: 5597 @ args = 0, pretend = 0, frame = 0 5598 @ frame_needed = 0, uses_anonymous_args = 0 5599 push {r3, r4, r5, lr} 5600 mov r4, r0 5601 ldr r3, .L803 5602 movs r0, #0 5603 ldr r3, [r3] 5604 ldrb r5, [r3, #9] @ zero_extendqisi2 5605 bl flash_boot_enter_slc_mode 5606 mov r0, r4 5607 mov r1, r5 5608 bl __aeabi_uidiv 5609 movs r2, #0 5610 mov r1, r0 5611 mov r0, r2 5612 bl FlashEraseBlock 5613 mov r4, r0 5614 movs r0, #0 5615 bl flash_boot_exit_slc_mode 5616 uxtb r0, r4 5617 pop {r3, r4, r5, pc} 5618.L804: 5619 .align 2 5620.L803: 5621 .word .LANCHOR7 5622 .size FW_FlashBlockErase.constprop.41, .-FW_FlashBlockErase.constprop.41 5623 .section .text.ftl_memset,"ax",%progbits 5624 .align 1 5625 .global ftl_memset 5626 .syntax unified 5627 .thumb 5628 .thumb_func 5629 .fpu softvfp 5630 .type ftl_memset, %function 5631ftl_memset: 5632 @ args = 0, pretend = 0, frame = 0 5633 @ frame_needed = 0, uses_anonymous_args = 0 5634 @ link register save eliminated. 5635 b memset 5636 .size ftl_memset, .-ftl_memset 5637 .section .text.BuildFlashLsbPageTable,"ax",%progbits 5638 .align 1 5639 .global BuildFlashLsbPageTable 5640 .syntax unified 5641 .thumb 5642 .thumb_func 5643 .fpu softvfp 5644 .type BuildFlashLsbPageTable, %function 5645BuildFlashLsbPageTable: 5646 @ args = 0, pretend = 0, frame = 0 5647 @ frame_needed = 0, uses_anonymous_args = 0 5648 push {r4, lr} 5649 mov r4, r1 5650 cbnz r0, .L807 5651 ldr r3, .L862 5652.L808: 5653 strh r0, [r3, r0, lsl #1] @ movhi 5654 adds r0, r0, #1 5655 cmp r0, #512 5656 bne .L808 5657.L814: 5658 movs r1, #255 5659 mov r2, #2048 5660 ldr r0, .L862+4 5661 uxth r4, r4 5662 bl ftl_memset 5663 ldr r1, .L862 5664 movs r3, #0 5665 ldr r0, .L862+4 5666.L809: 5667 uxth r2, r3 5668 cmp r4, r2 5669 bhi .L842 5670 pop {r4, pc} 5671.L807: 5672 cmp r0, #1 5673 bne .L810 5674 ldr r1, .L862 5675 movs r3, #0 5676.L813: 5677 cmp r3, #3 5678 uxth r2, r3 5679 bls .L811 5680 tst r2, #1 5681 ite ne 5682 movne r0, #3 5683 moveq r0, #2 5684 rsb r2, r0, r2, lsl #1 5685 uxth r2, r2 5686.L811: 5687 strh r2, [r1, r3, lsl #1] @ movhi 5688 adds r3, r3, #1 5689 cmp r3, #512 5690 bne .L813 5691 b .L814 5692.L810: 5693 cmp r0, #2 5694 bne .L815 5695 ldr r1, .L862 5696 movs r2, #0 5697.L817: 5698 uxth r3, r2 5699 cmp r2, #1 5700 ittt hi 5701 lslhi r3, r3, #1 5702 addhi r3, r3, #-1 5703 uxthhi r3, r3 5704 strh r3, [r1, r2, lsl #1] @ movhi 5705 adds r2, r2, #1 5706 cmp r2, #512 5707 bne .L817 5708 b .L814 5709.L815: 5710 cmp r0, #3 5711 bne .L818 5712 ldr r1, .L862 5713 movs r3, #0 5714.L821: 5715 cmp r3, #5 5716 uxth r2, r3 5717 bls .L819 5718 tst r2, #1 5719 ite ne 5720 movne r0, #5 5721 moveq r0, #4 5722 rsb r2, r0, r2, lsl #1 5723 uxth r2, r2 5724.L819: 5725 strh r2, [r1, r3, lsl #1] @ movhi 5726 adds r3, r3, #1 5727 cmp r3, #512 5728 bne .L821 5729 b .L814 5730.L818: 5731 cmp r0, #4 5732 mov r3, #0 5733 bne .L822 5734 ldr r2, .L862 5735 strh r3, [r2] @ movhi 5736 movs r3, #1 5737 strh r3, [r2, #2] @ movhi 5738 movs r3, #2 5739 strh r3, [r2, #4] @ movhi 5740 movs r3, #3 5741 strh r3, [r2, #6] @ movhi 5742 movs r3, #5 5743 strh r3, [r2, #10] @ movhi 5744 movs r3, #7 5745 strh r3, [r2, #12] @ movhi 5746 movs r3, #8 5747 strh r0, [r2, #8] @ movhi 5748 strh r3, [r2, #14]! @ movhi 5749.L824: 5750 tst r3, #1 5751 ite ne 5752 movne r1, #7 5753 moveq r1, #6 5754 rsb r1, r1, r3, lsl #1 5755 adds r3, r3, #1 5756 uxth r3, r3 5757 strh r1, [r2, #2]! @ movhi 5758 cmp r3, #512 5759 bne .L824 5760 b .L814 5761.L822: 5762 cmp r0, #5 5763 bne .L825 5764 ldr r2, .L862 5765.L826: 5766 strh r3, [r2, r3, lsl #1] @ movhi 5767 adds r3, r3, #1 5768 cmp r3, #16 5769 bne .L826 5770 ldr r2, .L862+8 5771.L827: 5772 strh r3, [r2, #2]! @ movhi 5773 adds r3, r3, #2 5774 uxth r3, r3 5775 cmp r3, #1008 5776 bne .L827 5777 b .L814 5778.L825: 5779 cmp r0, #6 5780 bne .L828 5781 ldr r0, .L862 5782 mov r1, r3 5783.L831: 5784 cmp r1, #5 5785 uxth r2, r1 5786 bls .L829 5787 tst r2, #1 5788 ite ne 5789 movne r2, #12 5790 moveq r2, #10 5791 subs r2, r3, r2 5792 uxth r2, r2 5793.L829: 5794 strh r2, [r0, r1, lsl #1] @ movhi 5795 adds r1, r1, #1 5796 cmp r1, #512 5797 add r3, r3, #3 5798 uxth r3, r3 5799 bne .L831 5800 b .L814 5801.L828: 5802 cmp r0, #9 5803 bne .L832 5804 ldr r2, .L862 5805 movw r1, #1021 5806 strh r3, [r2] @ movhi 5807 movs r3, #1 5808 strh r3, [r2, #2] @ movhi 5809 mov r3, r2 5810 movs r2, #2 5811 strh r2, [r3, #4]! @ movhi 5812 movs r2, #3 5813.L833: 5814 strh r2, [r3, #2]! @ movhi 5815 adds r2, r2, #2 5816 uxth r2, r2 5817 cmp r2, r1 5818 bne .L833 5819 b .L814 5820.L832: 5821 cmp r0, #10 5822 bne .L834 5823 ldr r2, .L862 5824.L835: 5825 strh r3, [r2, r3, lsl #1] @ movhi 5826 adds r3, r3, #1 5827 cmp r3, #63 5828 bne .L835 5829 ldr r2, .L862+12 5830 movw r1, #961 5831.L836: 5832 strh r3, [r2, #2]! @ movhi 5833 adds r3, r3, #2 5834 uxth r3, r3 5835 cmp r3, r1 5836 bne .L836 5837 b .L814 5838.L834: 5839 cmp r0, #11 5840 bne .L837 5841 ldr r2, .L862 5842 movs r3, #0 5843.L838: 5844 strh r3, [r2, r3, lsl #1] @ movhi 5845 adds r3, r3, #1 5846 cmp r3, #8 5847 bne .L838 5848 ldr r1, .L862+16 5849.L840: 5850 tst r3, #1 5851 ite ne 5852 movne r2, #7 5853 moveq r2, #6 5854 rsb r2, r2, r3, lsl #1 5855 adds r3, r3, #1 5856 uxth r3, r3 5857 strh r2, [r1, #2]! @ movhi 5858 cmp r3, #512 5859 bne .L840 5860 b .L814 5861.L837: 5862 cmp r0, #12 5863 bne .L814 5864 ldr r3, .L862 5865 movs r2, #0 5866 strh r2, [r3] @ movhi 5867 movs r2, #1 5868 strh r2, [r3, #2] @ movhi 5869 movs r2, #2 5870 strh r2, [r3, #4] @ movhi 5871 movs r2, #3 5872 strh r2, [r3, #6]! @ movhi 5873 movs r2, #4 5874.L841: 5875 subs r1, r2, #1 5876 add r1, r1, r2, lsr #1 5877 adds r2, r2, #1 5878 uxth r2, r2 5879 strh r1, [r3, #2]! @ movhi 5880 cmp r2, #512 5881 bne .L841 5882 b .L814 5883.L842: 5884 ldrh r2, [r1, r3, lsl #1] 5885 adds r3, r3, #1 5886 strh r2, [r0, r2, lsl #1] @ movhi 5887 b .L809 5888.L863: 5889 .align 2 5890.L862: 5891 .word .LANCHOR17 5892 .word .LANCHOR123 5893 .word .LANCHOR17+30 5894 .word .LANCHOR17+124 5895 .word .LANCHOR17+14 5896 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable 5897 .section .text.FlashDieInfoInit,"ax",%progbits 5898 .align 1 5899 .global FlashDieInfoInit 5900 .syntax unified 5901 .thumb 5902 .thumb_func 5903 .fpu softvfp 5904 .type FlashDieInfoInit, %function 5905FlashDieInfoInit: 5906 @ args = 0, pretend = 0, frame = 8 5907 @ frame_needed = 0, uses_anonymous_args = 0 5908 ldr r3, .L878 5909 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 5910 movs r4, #0 5911 ldr r5, .L878+4 5912 ldr fp, .L878+36 5913 ldrh r0, [r3, #10] 5914 strb r4, [r5] 5915 strb r4, [fp] 5916 bl FlashBlockAlignInit 5917 movs r2, #8 5918 mov r1, r4 5919 ldr r0, .L878+8 5920 bl ftl_memset 5921 movs r2, #32 5922 mov r1, r4 5923 ldr r0, .L878+12 5924 bl ftl_memset 5925 movs r2, #128 5926 mov r1, r4 5927 ldr r0, .L878+16 5928 bl ftl_memset 5929 ldr r3, .L878+20 5930 ldr r10, .L878+32 5931 ldr r6, [r3] 5932 ldr r3, .L878+8 5933 ldrb r8, [r6] @ zero_extendqisi2 5934 adds r7, r6, #1 5935.L866: 5936 mov r2, r8 5937 add r1, r10, r4, lsl #3 5938 mov r0, r7 5939 str r3, [sp, #4] 5940 bl FlashMemCmp8 5941 ldr r3, [sp, #4] 5942 cbnz r0, .L865 5943 ldrb r2, [r5] @ zero_extendqisi2 5944 ldr r1, .L878+12 5945 strb r4, [r3, r2] 5946 str r0, [r1, r2, lsl #2] 5947 adds r1, r2, #1 5948 strb r1, [r5] 5949.L865: 5950 adds r4, r4, #1 5951 cmp r4, #4 5952 bne .L866 5953 ldrb r3, [r5] @ zero_extendqisi2 5954 strb r3, [fp] 5955 ldrb r3, [r6, #8] @ zero_extendqisi2 5956 cmp r3, #2 5957 beq .L867 5958.L871: 5959 ldrh r2, [r6, #14] 5960 ldrb r3, [r5] @ zero_extendqisi2 5961 smulbb r3, r3, r2 5962 ldrb r2, [r6, #13] @ zero_extendqisi2 5963 smulbb r3, r3, r2 5964 ldr r2, .L878+24 5965 strh r3, [r2] @ movhi 5966 add sp, sp, #8 5967 @ sp needed 5968 pop {r4, r5, r6, r7, r8, r10, fp, pc} 5969.L867: 5970 ldr r3, .L878+28 5971 movs r4, #0 5972 ldr r10, .L878+12 5973 ldr fp, [r3] 5974 ldr r3, .L878+8 5975.L870: 5976 str r3, [sp, #4] 5977 mov r2, r8 5978 ldr r3, .L878+32 5979 mov r0, r7 5980 add r1, r3, r4, lsl #3 5981 bl FlashMemCmp8 5982 ldr r3, [sp, #4] 5983 cbnz r0, .L868 5984 ldrh r2, [r6, #14] 5985 ldrb r1, [r5] @ zero_extendqisi2 5986 and r0, r2, #65280 5987 ldrb r2, [r6, #13] @ zero_extendqisi2 5988 mul r2, fp, r2 5989 muls r2, r0, r2 5990 str r2, [r10, r1, lsl #2] 5991 ldrb r0, [r6, #23] @ zero_extendqisi2 5992 cbz r0, .L869 5993 lsls r2, r2, #1 5994 str r2, [r10, r1, lsl #2] 5995.L869: 5996 adds r2, r1, #1 5997 strb r4, [r3, r1] 5998 strb r2, [r5] 5999.L868: 6000 adds r4, r4, #1 6001 cmp r4, #4 6002 bne .L870 6003 b .L871 6004.L879: 6005 .align 2 6006.L878: 6007 .word .LANCHOR31 6008 .word .LANCHOR26 6009 .word .LANCHOR27 6010 .word .LANCHOR18 6011 .word .LANCHOR23 6012 .word .LANCHOR7 6013 .word .LANCHOR125 6014 .word .LANCHOR4 6015 .word .LANCHOR22 6016 .word .LANCHOR124 6017 .size FlashDieInfoInit, .-FlashDieInfoInit 6018 .section .text.ftl_read_flash_info,"ax",%progbits 6019 .align 1 6020 .global ftl_read_flash_info 6021 .syntax unified 6022 .thumb 6023 .thumb_func 6024 .fpu softvfp 6025 .type ftl_read_flash_info, %function 6026ftl_read_flash_info: 6027 @ args = 0, pretend = 0, frame = 0 6028 @ frame_needed = 0, uses_anonymous_args = 0 6029 push {r4, r5, r6, lr} 6030 movs r2, #11 6031 movs r1, #0 6032 mov r4, r0 6033 bl ftl_memset 6034 ldr r3, .L883 6035 movs r2, #0 6036 ldr r1, [r3] 6037 ldr r3, .L883+4 6038 ldrb r5, [r1, #9] @ zero_extendqisi2 6039 ldr r3, [r3] 6040 smulbb r3, r3, r5 6041 uxth r3, r3 6042 lsrs r0, r3, #8 6043 strb r3, [r4, #4] 6044 strb r0, [r4, #5] 6045 ldr r0, .L883+8 6046 ldrb r0, [r0] @ zero_extendqisi2 6047 strb r0, [r4, #7] 6048 ldrb r0, [r1, #13] @ zero_extendqisi2 6049 muls r3, r0, r3 6050 ldrh r0, [r1, #14] 6051 muls r0, r3, r0 6052 ldrb r3, [r1, #8] @ zero_extendqisi2 6053 strb r5, [r4, #6] 6054 movs r5, #1 6055 muls r3, r0, r3 6056 ubfx r0, r3, #8, #8 6057 strb r3, [r4] 6058 strb r0, [r4, #1] 6059 ubfx r0, r3, #16, #8 6060 lsrs r3, r3, #24 6061 strb r0, [r4, #2] 6062 ldr r0, .L883+12 6063 strb r3, [r4, #3] 6064 movs r3, #32 6065 strb r3, [r4, #8] 6066 ldrb r3, [r1, #7] @ zero_extendqisi2 6067 strb r2, [r4, #10] 6068 strb r3, [r4, #9] 6069 ldr r3, .L883+16 6070 ldrb r1, [r3] @ zero_extendqisi2 6071 mov r3, r2 6072.L881: 6073 uxtb r2, r3 6074 cmp r1, r2 6075 bhi .L882 6076 pop {r4, r5, r6, pc} 6077.L882: 6078 ldrb r2, [r3, r0] @ zero_extendqisi2 6079 adds r3, r3, #1 6080 ldrb r6, [r4, #10] @ zero_extendqisi2 6081 lsl r2, r5, r2 6082 orrs r2, r2, r6 6083 strb r2, [r4, #10] 6084 b .L881 6085.L884: 6086 .align 2 6087.L883: 6088 .word .LANCHOR7 6089 .word .LANCHOR4 6090 .word .LANCHOR33 6091 .word .LANCHOR27 6092 .word .LANCHOR26 6093 .size ftl_read_flash_info, .-ftl_read_flash_info 6094 .section .text.FtlBbt2Bitmap,"ax",%progbits 6095 .align 1 6096 .global FtlBbt2Bitmap 6097 .syntax unified 6098 .thumb 6099 .thumb_func 6100 .fpu softvfp 6101 .type FtlBbt2Bitmap, %function 6102FtlBbt2Bitmap: 6103 @ args = 0, pretend = 0, frame = 0 6104 @ frame_needed = 0, uses_anonymous_args = 0 6105 ldr r3, .L891 6106 push {r4, r5, r6, r7, r8, lr} 6107 mov r5, r0 6108 ldr r7, .L891+4 6109 mov r6, r1 6110 subs r4, r5, #2 6111 addw r5, r5, #1022 6112 ldrh r2, [r3] 6113 movs r1, #0 6114 ldr r8, .L891+24 6115 mov r0, r6 6116 lsls r2, r2, #2 6117 bl ftl_memset 6118.L888: 6119 ldrh r3, [r4, #2] 6120 movw r2, #65535 6121 cmp r3, r2 6122 beq .L885 6123 ldrh r2, [r7] 6124 cmp r2, r3 6125 bhi .L887 6126 mov r1, r8 6127 movs r2, #92 6128 ldr r0, .L891+8 6129 bl printf 6130 ldr r1, .L891+12 6131 ldr r0, .L891+16 6132 bl printf 6133.L887: 6134 ldrh r3, [r4, #2]! 6135 movs r2, #1 6136 cmp r5, r4 6137 lsr r1, r3, #5 6138 and r3, r3, #31 6139 lsl r3, r2, r3 6140 ldr r2, [r6, r1, lsl #2] 6141 orr r2, r2, r3 6142 str r2, [r6, r1, lsl #2] 6143 ldr r2, .L891+20 6144 ldrh r3, [r2, #6] 6145 add r3, r3, #1 6146 strh r3, [r2, #6] @ movhi 6147 bne .L888 6148.L885: 6149 pop {r4, r5, r6, r7, r8, pc} 6150.L892: 6151 .align 2 6152.L891: 6153 .word .LANCHOR126 6154 .word .LANCHOR51 6155 .word .LC5 6156 .word .LC6 6157 .word .LC7 6158 .word .LANCHOR76 6159 .word .LANCHOR127 6160 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap 6161 .section .text.FtlBbtMemInit,"ax",%progbits 6162 .align 1 6163 .global FtlBbtMemInit 6164 .syntax unified 6165 .thumb 6166 .thumb_func 6167 .fpu softvfp 6168 .type FtlBbtMemInit, %function 6169FtlBbtMemInit: 6170 @ args = 0, pretend = 0, frame = 0 6171 @ frame_needed = 0, uses_anonymous_args = 0 6172 @ link register save eliminated. 6173 ldr r0, .L894 6174 movw r3, #65535 6175 movs r2, #16 6176 movs r1, #255 6177 strh r3, [r0] @ movhi 6178 movs r3, #0 6179 strh r3, [r0, #6] @ movhi 6180 adds r0, r0, #12 6181 b ftl_memset 6182.L895: 6183 .align 2 6184.L894: 6185 .word .LANCHOR76 6186 .size FtlBbtMemInit, .-FtlBbtMemInit 6187 .section .text.FtlFreeSysBlkQueueInit,"ax",%progbits 6188 .align 1 6189 .global FtlFreeSysBlkQueueInit 6190 .syntax unified 6191 .thumb 6192 .thumb_func 6193 .fpu softvfp 6194 .type FtlFreeSysBlkQueueInit, %function 6195FtlFreeSysBlkQueueInit: 6196 @ args = 0, pretend = 0, frame = 0 6197 @ frame_needed = 0, uses_anonymous_args = 0 6198 ldr r3, .L897 6199 mov r2, #2048 6200 push {r4, lr} 6201 movs r4, #0 6202 mov r1, r4 6203 strh r4, [r3, #2] @ movhi 6204 strh r4, [r3, #4] @ movhi 6205 strh r4, [r3, #6] @ movhi 6206 strh r0, [r3], #8 @ movhi 6207 mov r0, r3 6208 bl ftl_memset 6209 mov r0, r4 6210 pop {r4, pc} 6211.L898: 6212 .align 2 6213.L897: 6214 .word .LANCHOR77 6215 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit 6216 .section .text.ftl_free_no_use_map_blk,"ax",%progbits 6217 .align 1 6218 .global ftl_free_no_use_map_blk 6219 .syntax unified 6220 .thumb 6221 .thumb_func 6222 .fpu softvfp 6223 .type ftl_free_no_use_map_blk, %function 6224ftl_free_no_use_map_blk: 6225 @ args = 0, pretend = 0, frame = 8 6226 @ frame_needed = 0, uses_anonymous_args = 0 6227 ldrh r2, [r0, #10] 6228 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 6229 mov r4, r0 6230 ldr r5, [r0, #20] 6231 movs r1, #0 6232 ldr r7, [r0, #12] 6233 lsls r2, r2, #1 6234 ldr r6, [r0, #24] 6235 mov r0, r5 6236 bl ftl_memset 6237 movs r3, #0 6238.L900: 6239 ldrh r1, [r4, #6] 6240 uxth r2, r3 6241 cmp r1, r2 6242 bhi .L904 6243 ldr r3, .L919 6244 movs r6, #0 6245 mov r10, r6 6246 ldrh r2, [r3] 6247 ldrh r3, [r4] 6248 strh r2, [r5, r3, lsl #1] @ movhi 6249 mov r2, r6 6250 ldrh fp, [r5] 6251.L905: 6252 ldrh r3, [r4, #10] 6253 uxth ip, r6 6254 cmp r3, ip 6255 bhi .L909 6256 mov r0, r10 6257 add sp, sp, #8 6258 @ sp needed 6259 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6260.L904: 6261 uxth r2, r3 6262 ldr r1, [r6, r2, lsl #2] 6263 movs r2, #0 6264 ubfx r1, r1, #10, #16 6265.L901: 6266 ldrh ip, [r4, #10] 6267 uxth r0, r2 6268 cmp ip, r0 6269 bhi .L903 6270 adds r3, r3, #1 6271 b .L900 6272.L903: 6273 uxth r0, r2 6274 ldrh ip, [r7, r0, lsl #1] 6275 cmp ip, r1 6276 bne .L902 6277 cbz r1, .L902 6278 ldrh ip, [r5, r0, lsl #1] 6279 add ip, ip, #1 6280 strh ip, [r5, r0, lsl #1] @ movhi 6281.L902: 6282 adds r2, r2, #1 6283 b .L901 6284.L909: 6285 uxth r1, r6 6286 ldrh r3, [r5, r1, lsl #1] 6287 lsl r8, r1, #1 6288 cmp fp, r3 6289 bls .L906 6290 ldrh r0, [r7, r1, lsl #1] 6291 add r8, r8, r7 6292 cbnz r0, .L907 6293.L908: 6294 adds r6, r6, #1 6295 b .L905 6296.L906: 6297 cmp r3, #0 6298 bne .L908 6299 ldrh r0, [r7, r1, lsl #1] 6300 add r8, r8, r7 6301 cmp r0, #0 6302 beq .L908 6303.L910: 6304 movs r1, #1 6305 str r2, [sp, #4] 6306 bl FtlFreeSysBlkQueueIn 6307 ldr r2, [sp, #4] 6308 strh r2, [r8] @ movhi 6309 ldrh r3, [r4, #8] 6310 subs r3, r3, #1 6311 strh r3, [r4, #8] @ movhi 6312 b .L908 6313.L907: 6314 mov r10, ip 6315 mov fp, r3 6316 cmp r3, #0 6317 beq .L910 6318 b .L908 6319.L920: 6320 .align 2 6321.L919: 6322 .word .LANCHOR53 6323 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk 6324 .section .text.FtlL2PDataInit,"ax",%progbits 6325 .align 1 6326 .global FtlL2PDataInit 6327 .syntax unified 6328 .thumb 6329 .thumb_func 6330 .fpu softvfp 6331 .type FtlL2PDataInit, %function 6332FtlL2PDataInit: 6333 @ args = 0, pretend = 0, frame = 0 6334 @ frame_needed = 0, uses_anonymous_args = 0 6335 push {r4, r5, r6, r7, r8, lr} 6336 movs r1, #0 6337 ldr r5, .L924 6338 ldr r4, .L924+4 6339 ldr r2, [r5] 6340 ldr r7, .L924+8 6341 ldr r6, .L924+12 6342 ldr r0, [r4] 6343 lsls r2, r2, #1 6344 ldr r8, .L924+44 6345 bl ftl_memset 6346 ldrh r3, [r7] 6347 movs r1, #255 6348 ldrh r2, [r6] 6349 ldr r0, [r8] 6350 muls r2, r3, r2 6351 bl ftl_memset 6352 ldr r3, .L924+16 6353 movw r0, #65535 6354 ldrh r1, [r6] 6355 ldr ip, [r8] 6356 ldr r2, [r3] 6357 movs r3, #12 6358 ldrh r7, [r7] 6359 mla r3, r1, r3, r3 6360 adds r1, r2, r3 6361 movs r3, #0 6362 mov lr, r3 6363.L922: 6364 adds r2, r2, #12 6365 adds r6, r3, r7 6366 cmp r2, r1 6367 bne .L923 6368 ldr r3, .L924+20 6369 ldr r2, [r5] 6370 strh r0, [r3, #2] @ movhi 6371 strh r2, [r3, #10] @ movhi 6372 movw r2, #61634 6373 strh r2, [r3, #4] @ movhi 6374 ldr r2, .L924+24 6375 strh r0, [r3] @ movhi 6376 ldrh r2, [r2] 6377 strh r2, [r3, #8] @ movhi 6378 ldr r2, .L924+28 6379 ldrh r2, [r2] 6380 strh r2, [r3, #6] @ movhi 6381 ldr r2, .L924+32 6382 ldr r2, [r2] 6383 str r2, [r3, #12] 6384 ldr r2, .L924+36 6385 ldr r2, [r2] 6386 str r2, [r3, #16] 6387 ldr r2, [r4] 6388 str r2, [r3, #20] 6389 ldr r2, .L924+40 6390 ldr r2, [r2] 6391 str r2, [r3, #24] 6392 pop {r4, r5, r6, r7, r8, pc} 6393.L923: 6394 bic r3, r3, #3 6395 str lr, [r2, #-8] 6396 add r3, r3, ip 6397 strh r0, [r2, #-12] @ movhi 6398 str r3, [r2, #-4] 6399 mov r3, r6 6400 b .L922 6401.L925: 6402 .align 2 6403.L924: 6404 .word .LANCHOR64 6405 .word .LANCHOR128 6406 .word .LANCHOR57 6407 .word .LANCHOR67 6408 .word .LANCHOR98 6409 .word .LANCHOR130 6410 .word .LANCHOR131 6411 .word .LANCHOR66 6412 .word .LANCHOR132 6413 .word .LANCHOR133 6414 .word .LANCHOR134 6415 .word .LANCHOR129 6416 .size FtlL2PDataInit, .-FtlL2PDataInit 6417 .section .text.FtlVariablesInit,"ax",%progbits 6418 .align 1 6419 .global FtlVariablesInit 6420 .syntax unified 6421 .thumb 6422 .thumb_func 6423 .fpu softvfp 6424 .type FtlVariablesInit, %function 6425FtlVariablesInit: 6426 @ args = 0, pretend = 0, frame = 0 6427 @ frame_needed = 0, uses_anonymous_args = 0 6428 push {r3, r4, r5, lr} 6429 movs r4, #0 6430 ldr r3, .L927 6431 movw r2, #65535 6432 mov r1, r4 6433 ldr r5, .L927+4 6434 str r4, [r3] 6435 ldr r3, .L927+8 6436 strh r2, [r3] @ movhi 6437 mov r2, #-1 6438 ldr r3, .L927+12 6439 str r4, [r3] 6440 ldr r3, .L927+16 6441 str r4, [r3] 6442 ldr r3, .L927+20 6443 str r2, [r3] 6444 ldr r3, .L927+24 6445 str r4, [r3] 6446 ldr r3, .L927+28 6447 strh r4, [r3] @ movhi 6448 ldr r3, .L927+32 6449 ldrh r2, [r3] 6450 ldr r3, .L927+36 6451 lsls r2, r2, #1 6452 ldr r0, [r3] 6453 bl ftl_memset 6454 ldrh r2, [r5] 6455 mov r1, r4 6456 ldr r3, .L927+40 6457 lsls r2, r2, #1 6458 ldr r0, [r3] 6459 bl ftl_memset 6460 ldrh r2, [r5] 6461 mov r1, r4 6462 ldr r3, .L927+44 6463 lsls r2, r2, #1 6464 ldr r0, [r3] 6465 bl ftl_memset 6466 mov r1, r4 6467 movs r2, #48 6468 ldr r0, .L927+48 6469 bl ftl_memset 6470 mov r2, #512 6471 mov r1, r4 6472 ldr r0, .L927+52 6473 bl ftl_memset 6474 bl FtlGcBufInit 6475 bl FtlL2PDataInit 6476 mov r0, r4 6477 pop {r3, r4, r5, pc} 6478.L928: 6479 .align 2 6480.L927: 6481 .word .LANCHOR135 6482 .word .LANCHOR41 6483 .word .LANCHOR136 6484 .word .LANCHOR137 6485 .word .LANCHOR138 6486 .word .LANCHOR139 6487 .word .LANCHOR104 6488 .word .LANCHOR70 6489 .word .LANCHOR61 6490 .word .LANCHOR71 6491 .word .LANCHOR80 6492 .word .LANCHOR140 6493 .word .LANCHOR82 6494 .word .LANCHOR141 6495 .size FtlVariablesInit, .-FtlVariablesInit 6496 .section .text.SupperBlkListInit,"ax",%progbits 6497 .align 1 6498 .global SupperBlkListInit 6499 .syntax unified 6500 .thumb 6501 .thumb_func 6502 .fpu softvfp 6503 .type SupperBlkListInit, %function 6504SupperBlkListInit: 6505 @ args = 0, pretend = 0, frame = 24 6506 @ frame_needed = 0, uses_anonymous_args = 0 6507 ldr r3, .L940 6508 movs r2, #6 6509 push {r4, r5, r6, r7, r8, r10, fp, lr} 6510 movs r1, #0 6511 ldr r6, .L940+4 6512 sub sp, sp, #24 6513 movs r4, #0 6514 ldrh r3, [r3] 6515 mov r8, r4 6516 ldr r0, [r6] 6517 mov r5, r4 6518 mov r10, r6 6519 muls r2, r3, r2 6520 bl ftl_memset 6521 ldr r3, .L940+8 6522 ldr r2, .L940+12 6523 ldr r1, .L940+16 6524 str r4, [r3] 6525 ldr r3, .L940+20 6526 strh r4, [r2] @ movhi 6527 strh r4, [r1] @ movhi 6528 str r4, [r3] 6529 ldr r3, .L940+24 6530 str r2, [sp, #8] 6531 str r4, [r3] 6532 ldr r3, .L940+28 6533 mov fp, r3 6534 strh r4, [r3] @ movhi 6535.L930: 6536 ldr r3, .L940+32 6537 sxth r7, r4 6538 ldrh r3, [r3] 6539 cmp r7, r3 6540 bge .L937 6541 ldr r3, .L940+36 6542 uxth r1, r4 6543 str r1, [sp, #12] 6544 ldrh r2, [r3] 6545 ldr r3, .L940+40 6546 ldrh r3, [r3] 6547 str r3, [sp, #4] 6548 movs r3, #0 6549 mov r6, r3 6550 b .L938 6551.L932: 6552 str r3, [sp, #20] 6553 ldr r3, .L940+44 6554 ldr r1, [sp, #12] 6555 str r2, [sp, #16] 6556 ldrb r0, [r3, r0] @ zero_extendqisi2 6557 bl V2P_block 6558 bl FtlBbmIsBadBlock 6559 ldr r2, [sp, #16] 6560 ldr r3, [sp, #20] 6561 cbnz r0, .L931 6562 ldr r1, [sp, #4] 6563 add r6, r6, r1 6564 sxth r6, r6 6565.L931: 6566 adds r3, r3, #1 6567.L938: 6568 sxth r0, r3 6569 cmp r0, r2 6570 blt .L932 6571 lsls r3, r7, #1 6572 cbz r6, .L933 6573 mov r1, r6 6574 str r3, [sp, #4] 6575 mov r0, #32768 6576 bl __aeabi_idiv 6577 ldr r3, [sp, #4] 6578 sxth r6, r0 6579.L934: 6580 ldr r2, [r10] 6581 add r3, r3, r7 6582 add r2, r2, r3, lsl #1 6583 ldr r3, .L940+48 6584 strh r6, [r2, #4] @ movhi 6585 ldrh r3, [r3] 6586 cmp r7, r3 6587 beq .L935 6588 ldr r3, .L940+52 6589 ldrh r3, [r3] 6590 cmp r7, r3 6591 beq .L935 6592 ldr r3, .L940+56 6593 ldrh r3, [r3] 6594 cmp r7, r3 6595 beq .L935 6596 ldr r3, .L940+60 6597 uxth r0, r4 6598 ldr r3, [r3] 6599 ldrh r3, [r3, r7, lsl #1] 6600 cbnz r3, .L936 6601 add r8, r8, #1 6602 uxth r8, r8 6603 bl INSERT_FREE_LIST 6604.L935: 6605 adds r4, r4, #1 6606 b .L930 6607.L933: 6608 ldr r2, .L940+60 6609 movw r1, #65535 6610 ldr r2, [r2] 6611 strh r1, [r2, r7, lsl #1] @ movhi 6612 b .L934 6613.L936: 6614 adds r5, r5, #1 6615 uxth r5, r5 6616 bl INSERT_DATA_LIST 6617 b .L935 6618.L937: 6619 ldr r2, [sp, #8] 6620 strh r8, [fp] @ movhi 6621 strh r5, [r2] @ movhi 6622 add r5, r5, r8 6623 cmp r3, r5 6624 bge .L939 6625 ldr r1, .L940+64 6626 movw r2, #2899 6627 ldr r0, .L940+68 6628 bl printf 6629 ldr r1, .L940+72 6630 ldr r0, .L940+76 6631 bl printf 6632.L939: 6633 movs r0, #0 6634 add sp, sp, #24 6635 @ sp needed 6636 pop {r4, r5, r6, r7, r8, r10, fp, pc} 6637.L941: 6638 .align 2 6639.L940: 6640 .word .LANCHOR41 6641 .word .LANCHOR83 6642 .word .LANCHOR89 6643 .word .LANCHOR87 6644 .word .LANCHOR142 6645 .word .LANCHOR84 6646 .word .LANCHOR86 6647 .word .LANCHOR90 6648 .word .LANCHOR40 6649 .word .LANCHOR38 6650 .word .LANCHOR52 6651 .word .LANCHOR47 6652 .word .LANCHOR93 6653 .word .LANCHOR94 6654 .word .LANCHOR95 6655 .word .LANCHOR85 6656 .word .LANCHOR143 6657 .word .LC5 6658 .word .LC6 6659 .word .LC7 6660 .size SupperBlkListInit, .-SupperBlkListInit 6661 .section .text.FtlGcPageVarInit,"ax",%progbits 6662 .align 1 6663 .global FtlGcPageVarInit 6664 .syntax unified 6665 .thumb 6666 .thumb_func 6667 .fpu softvfp 6668 .type FtlGcPageVarInit, %function 6669FtlGcPageVarInit: 6670 @ args = 0, pretend = 0, frame = 0 6671 @ frame_needed = 0, uses_anonymous_args = 0 6672 ldr r2, .L943 6673 movs r3, #0 6674 push {r4, lr} 6675 movs r1, #255 6676 ldr r4, .L943+4 6677 strh r3, [r2] @ movhi 6678 ldr r2, .L943+8 6679 strh r3, [r2] @ movhi 6680 ldrh r2, [r4] 6681 ldr r3, .L943+12 6682 lsls r2, r2, #1 6683 ldr r0, [r3] 6684 bl ftl_memset 6685 ldrh r3, [r4] 6686 movs r2, #12 6687 movs r1, #255 6688 muls r2, r3, r2 6689 ldr r3, .L943+16 6690 ldr r0, [r3] 6691 bl ftl_memset 6692 pop {r4, lr} 6693 b FtlGcBufInit 6694.L944: 6695 .align 2 6696.L943: 6697 .word .LANCHOR112 6698 .word .LANCHOR54 6699 .word .LANCHOR113 6700 .word .LANCHOR111 6701 .word .LANCHOR114 6702 .size FtlGcPageVarInit, .-FtlGcPageVarInit 6703 .section .text.idb_init,"ax",%progbits 6704 .align 1 6705 .global idb_init 6706 .syntax unified 6707 .thumb 6708 .thumb_func 6709 .fpu softvfp 6710 .type idb_init, %function 6711idb_init: 6712 @ args = 0, pretend = 0, frame = 0 6713 @ frame_needed = 0, uses_anonymous_args = 0 6714 push {r3, lr} 6715 mov r2, #262144 6716 movs r1, #0 6717 ldr r0, .L946 6718 bl ftl_memset 6719 movs r0, #0 6720 pop {r3, pc} 6721.L947: 6722 .align 2 6723.L946: 6724 .word idb_buf 6725 .size idb_init, .-idb_init 6726 .section .text.NandcXferData,"ax",%progbits 6727 .align 1 6728 .global NandcXferData 6729 .syntax unified 6730 .thumb 6731 .thumb_func 6732 .fpu softvfp 6733 .type NandcXferData, %function 6734NandcXferData: 6735 @ args = 4, pretend = 0, frame = 72 6736 @ frame_needed = 0, uses_anonymous_args = 0 6737 push {r4, r5, r6, r7, r8, r10, lr} 6738 sub sp, sp, #84 6739 ldr r6, [sp, #112] 6740 mov r10, r3 6741 mov r8, r0 6742 mov r4, r1 6743 ldr r3, .L970 6744 mov r7, r2 6745 ldr r5, [r3, r0, lsl #3] 6746 cbnz r6, .L949 6747 add r6, sp, #16 6748 movs r2, #64 6749 movs r1, #255 6750 add r0, sp, #16 6751 bl ftl_memset 6752.L949: 6753 mov r1, r4 6754 mov r0, r8 6755 str r6, [sp, #4] 6756 movs r3, #0 6757 str r10, [sp] 6758 mov r2, r7 6759 bl NandcXferStart 6760 mov r1, r4 6761 mov r0, r8 6762 bl NandcXferComp 6763 cmp r4, #0 6764 bne .L963 6765 ldr r1, .L970+4 6766 lsr ip, r7, #1 6767 ldr r8, .L970+12 6768 mov r2, r4 6769 mov r0, r4 6770 ldr r3, [r1] 6771 cmp r3, #25 6772 mov r3, r6 6773 ite cc 6774 movcc lr, #64 6775 movcs lr, #128 6776.L952: 6777 cmp r0, ip 6778 add r3, r3, #4 6779 add r6, lr, r2 6780 bcc .L953 6781 ldr r3, .L970+8 6782 lsrs r2, r7, #2 6783 ldr r7, [r1] 6784 movs r1, #0 6785 mov r0, r1 6786 ldr r6, [r3] 6787.L954: 6788 cmp r1, r2 6789 bcs .L950 6790 cbnz r7, .L960 6791.L950: 6792 movs r3, #0 6793 str r3, [r5, #16] 6794 ldr r3, .L970+8 6795 ldr r3, [r3] 6796 cmp r3, #5 6797 bls .L948 6798 cbnz r4, .L948 6799 ldr r3, [r5] 6800 and r2, r3, #139264 6801 cmp r2, #139264 6802 ittt eq 6803 moveq r0, #-1 6804 orreq r3, r3, #131072 6805 streq r3, [r5] 6806.L948: 6807 add sp, sp, #84 6808 @ sp needed 6809 pop {r4, r5, r6, r7, r8, r10, pc} 6810.L953: 6811 bic r10, r2, #3 6812 ldr r2, [r8, #4] 6813 adds r0, r0, #1 6814 ldr r2, [r2, r10] 6815 strb r2, [r3, #-4] 6816 lsr r10, r2, #8 6817 strb r10, [r3, #-3] 6818 lsr r10, r2, #16 6819 lsrs r2, r2, #24 6820 strb r10, [r3, #-2] 6821 strb r2, [r3, #-1] 6822 mov r2, r6 6823 b .L952 6824.L960: 6825 add r3, r1, #8 6826 ldr r3, [r5, r3, lsl #2] 6827 str r3, [sp, #12] 6828 ldr r3, [sp, #12] 6829 lsls r3, r3, #29 6830 bmi .L966 6831 ldr r3, [sp, #12] 6832 ubfx r3, r3, #15, #1 6833 cmp r3, #0 6834 bne .L966 6835 cmp r6, #5 6836 bls .L956 6837 ldr r3, [sp, #12] 6838 ubfx ip, r3, #3, #5 6839 ldr r3, [sp, #12] 6840 ubfx r8, r3, #27, #1 6841 ldr r3, [sp, #12] 6842 ldr lr, [sp, #12] 6843 orr ip, ip, r8, lsl #5 6844 ubfx r3, r3, #16, #5 6845 ubfx lr, lr, #29, #1 6846 orr r3, r3, lr, lsl #5 6847 cmp ip, r3 6848 ldr r3, [sp, #12] 6849 itete hi 6850 ldrhi ip, [sp, #12] 6851 ldrls ip, [sp, #12] 6852 ubfxhi r3, r3, #3, #5 6853 ubfxls r3, r3, #16, #5 6854 ite hi 6855 ubfxhi ip, ip, #27, #1 6856 ubfxls ip, ip, #29, #1 6857.L969: 6858 orr r3, r3, ip, lsl #5 6859.L958: 6860 cmp r0, r3 6861 it cc 6862 movcc r0, r3 6863.L955: 6864 adds r1, r1, #1 6865 b .L954 6866.L956: 6867 cmp r6, #3 6868 bls .L958 6869 ldr r3, [sp, #12] 6870 ubfx ip, r3, #3, #5 6871 ldr r3, [sp, #12] 6872 ubfx r8, r3, #28, #1 6873 ldr r3, [sp, #12] 6874 ldr lr, [sp, #12] 6875 orr ip, ip, r8, lsl #5 6876 ubfx r3, r3, #16, #5 6877 ubfx lr, lr, #30, #1 6878 orr r3, r3, lr, lsl #5 6879 cmp ip, r3 6880 ldr r3, [sp, #12] 6881 itete hi 6882 ldrhi ip, [sp, #12] 6883 ldrls ip, [sp, #12] 6884 ubfxhi r3, r3, #3, #5 6885 ubfxls r3, r3, #16, #5 6886 ite hi 6887 ubfxhi ip, ip, #28, #1 6888 ubfxls ip, ip, #30, #1 6889 b .L969 6890.L966: 6891 mov r0, #-1 6892 b .L955 6893.L963: 6894 movs r0, #0 6895 b .L950 6896.L971: 6897 .align 2 6898.L970: 6899 .word .LANCHOR0 6900 .word .LANCHOR32 6901 .word .LANCHOR34 6902 .word .LANCHOR35 6903 .size NandcXferData, .-NandcXferData 6904 .section .text.FlashReadRawPage,"ax",%progbits 6905 .align 1 6906 .global FlashReadRawPage 6907 .syntax unified 6908 .thumb 6909 .thumb_func 6910 .fpu softvfp 6911 .type FlashReadRawPage, %function 6912FlashReadRawPage: 6913 @ args = 0, pretend = 0, frame = 0 6914 @ frame_needed = 0, uses_anonymous_args = 0 6915 push {r0, r1, r4, r5, r6, r7, r8, lr} 6916 mov r8, r3 6917 ldr r3, .L974 6918 mov r6, r1 6919 mov r7, r2 6920 mov r4, r0 6921 ldrb r5, [r3, #9] @ zero_extendqisi2 6922 cbnz r0, .L973 6923 ldr r3, .L974+4 6924 ldr r2, .L974+8 6925 ldrb r3, [r3] @ zero_extendqisi2 6926 ldr r0, [r2] 6927 muls r0, r3, r0 6928 cmp r0, r1 6929 it hi 6930 movhi r5, #4 6931.L973: 6932 mov r0, r4 6933 bl NandcWaitFlashReady 6934 mov r0, r4 6935 bl NandcFlashCs 6936 mov r1, r6 6937 mov r0, r4 6938 bl FlashReadCmd 6939 mov r0, r4 6940 bl NandcWaitFlashReady 6941 mov r3, r7 6942 mov r2, r5 6943 str r8, [sp] 6944 movs r1, #0 6945 mov r0, r4 6946 bl NandcXferData 6947 mov r1, r0 6948 mov r0, r4 6949 bl NandcFlashDeCs 6950 mov r0, r1 6951 add sp, sp, #8 6952 @ sp needed 6953 pop {r4, r5, r6, r7, r8, pc} 6954.L975: 6955 .align 2 6956.L974: 6957 .word .LANCHOR31 6958 .word .LANCHOR3 6959 .word .LANCHOR4 6960 .size FlashReadRawPage, .-FlashReadRawPage 6961 .section .text.FlashDdrTunningRead,"ax",%progbits 6962 .align 1 6963 .global FlashDdrTunningRead 6964 .syntax unified 6965 .thumb 6966 .thumb_func 6967 .fpu softvfp 6968 .type FlashDdrTunningRead, %function 6969FlashDdrTunningRead: 6970 @ args = 4, pretend = 0, frame = 24 6971 @ frame_needed = 0, uses_anonymous_args = 0 6972 push {r4, r5, r6, r7, r8, r10, fp, lr} 6973 mov r7, r3 6974 ldr r3, .L1001 6975 sub sp, sp, #24 6976 str r0, [sp, #8] 6977 ldr r3, [r3] 6978 str r1, [sp, #12] 6979 str r2, [sp, #4] 6980 ldr r3, [r3, #304] 6981 str r3, [sp, #20] 6982 ldr r3, .L1001+4 6983 ldr r3, [r3] 6984 cmp r3, #8 6985 ldr r3, [sp, #56] 6986 ite cc 6987 movcc fp, #6 6988 movcs fp, #12 6989 cmp r3, #0 6990 beq .L990 6991 movs r0, #1 6992 ldr r4, .L1001+8 6993 bl FlashSetInterfaceMode 6994 movs r0, #1 6995 bl NandcSetMode 6996 ldr r0, [sp, #8] 6997 bl FlashReset 6998 mov r3, r7 6999 ldr r2, [sp, #4] 7000 ldr r1, [sp, #12] 7001 ldr r0, [sp, #8] 7002 bl FlashReadRawPage 7003 mov r6, r0 7004 ldrb r0, [r4] @ zero_extendqisi2 7005 bl FlashSetInterfaceMode 7006 ldrb r0, [r4] @ zero_extendqisi2 7007 bl NandcSetMode 7008 adds r3, r6, #1 7009 bne .L979 7010.L988: 7011 mov r6, #-1 7012.L976: 7013 mov r0, r6 7014 add sp, sp, #24 7015 @ sp needed 7016 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7017.L979: 7018 mov r2, r6 7019 ldr r1, [sp, #12] 7020 ldr r0, .L1001+12 7021 bl printf 7022 ldr r2, .L1001+16 7023 ldr r3, [r2] 7024 adds r3, r3, #1 7025 cmp r3, #2048 7026 bcs .L981 7027 str r3, [r2] 7028 b .L976 7029.L981: 7030 movs r7, #0 7031 str r7, [r2] 7032 str r7, [sp, #4] 7033.L978: 7034 mov r10, #0 7035 mov r8, #-1 7036 mov r5, r10 7037 mov r4, r10 7038 str r10, [sp, #16] 7039.L986: 7040 uxtb r0, fp 7041 bl NandcSetDdrPara 7042 mov r3, r7 7043 ldr r2, [sp, #4] 7044 ldr r1, [sp, #12] 7045 ldr r0, [sp, #8] 7046 bl FlashReadRawPage 7047 adds r3, r6, #1 7048 cmp r0, r3 7049 bhi .L982 7050 cmp r0, #2 7051 bhi .L992 7052 adds r4, r4, #1 7053 cmp r4, #9 7054 bls .L992 7055 mov r3, r5 7056 mov r6, r0 7057 sub r5, fp, r4 7058 mov r8, #0 7059.L984: 7060 ldr r2, [sp, #16] 7061 cmp r4, r2 7062 it ls 7063 movls r5, r3 7064.L985: 7065 cbz r5, .L987 7066 mov r1, r5 7067 ldr r0, .L1001+20 7068 bl printf 7069 uxtb r0, r5 7070 bl NandcSetDdrPara 7071.L987: 7072 cmp r8, #0 7073 beq .L976 7074 ldr r2, [sp, #12] 7075 ldr r1, [sp, #8] 7076 ldr r0, .L1001+24 7077 bl printf 7078 ldr r3, [sp, #56] 7079 cmp r3, #0 7080 beq .L988 7081 ldr r3, [sp, #20] 7082 ubfx r0, r3, #8, #8 7083 bl NandcSetDdrPara 7084 b .L976 7085.L990: 7086 mov r6, #1024 7087 b .L978 7088.L982: 7089 ldr r3, [sp, #16] 7090 cmp r4, r3 7091 bls .L993 7092 cmp r4, #7 7093 sub r5, r10, r4 7094 bhi .L985 7095 str r4, [sp, #16] 7096.L993: 7097 movs r4, #0 7098 b .L983 7099.L992: 7100 mov r8, #0 7101 mov r10, fp 7102 mov r6, r0 7103 mov r7, r8 7104 str r8, [sp, #4] 7105.L983: 7106 add fp, fp, #2 7107 cmp fp, #69 7108 bls .L986 7109 mov r3, r5 7110 mov r5, r10 7111 b .L984 7112.L1002: 7113 .align 2 7114.L1001: 7115 .word .LANCHOR19 7116 .word .LANCHOR34 7117 .word .LANCHOR25 7118 .word .LC9 7119 .word .LANCHOR144 7120 .word .LC10 7121 .word .LC11 7122 .size FlashDdrTunningRead, .-FlashDdrTunningRead 7123 .section .text.FlashReadPage,"ax",%progbits 7124 .align 1 7125 .global FlashReadPage 7126 .syntax unified 7127 .thumb 7128 .thumb_func 7129 .fpu softvfp 7130 .type FlashReadPage, %function 7131FlashReadPage: 7132 @ args = 0, pretend = 0, frame = 0 7133 @ frame_needed = 0, uses_anonymous_args = 0 7134 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7135 mov r7, r2 7136 mov r5, r0 7137 mov r6, r1 7138 mov r8, r3 7139 bl FlashReadRawPage 7140 adds r2, r0, #1 7141 mov r4, r0 7142 bne .L1004 7143 ldr r10, .L1022+20 7144 ldrb fp, [r10] @ zero_extendqisi2 7145 cmp fp, #0 7146 bne .L1005 7147.L1007: 7148 ldr r3, .L1022 7149 ldrb r3, [r3] @ zero_extendqisi2 7150 cbz r3, .L1004 7151 ldr r3, .L1022+4 7152 mov r1, r6 7153 mov r2, r7 7154 mov r0, r5 7155 ldr r3, [r3] 7156 ldr r10, [r3, #304] 7157 movs r3, #1 7158 str r3, [sp] 7159 mov r3, r8 7160 bl FlashDdrTunningRead 7161 adds r1, r0, #1 7162 mov r4, r0 7163 beq .L1008 7164 ldr r3, .L1022+8 7165 ldrb r3, [r3] @ zero_extendqisi2 7166 cmp r0, r3, lsr #1 7167 bls .L1004 7168.L1008: 7169 ubfx r0, r10, #8, #8 7170 bl NandcSetDdrPara 7171 b .L1004 7172.L1005: 7173 movs r3, #0 7174 mov r2, r7 7175 strb r3, [r10] 7176 mov r1, r6 7177 mov r3, r8 7178 mov r0, r5 7179 bl FlashReadRawPage 7180 adds r3, r0, #1 7181 strb fp, [r10] 7182 beq .L1007 7183 mov r4, r0 7184.L1004: 7185 ldr r10, .L1022+24 7186 ldr fp, [r10] 7187 cmp fp, #0 7188 beq .L1003 7189 adds r2, r4, #1 7190 bne .L1003 7191 mov r3, r8 7192 mov r2, r7 7193 mov r1, r6 7194 mov r0, r5 7195 blx fp 7196 mov r3, r6 7197 mov r4, r0 7198 mov r1, r0 7199 mov r2, r5 7200 ldr r0, .L1022+12 7201 bl printf 7202 adds r3, r4, #1 7203 bne .L1003 7204 ldr r3, .L1022+16 7205 ldrb r3, [r3] @ zero_extendqisi2 7206 cbz r3, .L1003 7207 mov r0, r5 7208 bl flash_enter_slc_mode 7209 ldr r4, [r10] 7210 mov r3, r8 7211 mov r2, r7 7212 mov r1, r6 7213 mov r0, r5 7214 blx r4 7215 mov r4, r0 7216 mov r0, r5 7217 bl flash_exit_slc_mode 7218.L1003: 7219 mov r0, r4 7220 add sp, sp, #8 7221 @ sp needed 7222 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7223.L1023: 7224 .align 2 7225.L1022: 7226 .word .LANCHOR30 7227 .word .LANCHOR19 7228 .word .LANCHOR33 7229 .word .LC12 7230 .word .LANCHOR16 7231 .word .LANCHOR6 7232 .word .LANCHOR145 7233 .size FlashReadPage, .-FlashReadPage 7234 .section .text.FlashDdrParaScan,"ax",%progbits 7235 .align 1 7236 .global FlashDdrParaScan 7237 .syntax unified 7238 .thumb 7239 .thumb_func 7240 .fpu softvfp 7241 .type FlashDdrParaScan, %function 7242FlashDdrParaScan: 7243 @ args = 0, pretend = 0, frame = 0 7244 @ frame_needed = 0, uses_anonymous_args = 0 7245 push {r0, r1, r4, r5, r6, r7, r8, lr} 7246 mov r6, r0 7247 ldr r4, .L1035 7248 movs r5, #0 7249 mov r7, r1 7250 ldrb r0, [r4] @ zero_extendqisi2 7251 bl FlashSetInterfaceMode 7252 ldrb r0, [r4] @ zero_extendqisi2 7253 bl NandcSetMode 7254 mov r3, r5 7255 mov r2, r5 7256 str r5, [sp] 7257 mov r1, r7 7258 mov r0, r6 7259 bl FlashDdrTunningRead 7260 mov r3, r5 7261 mov r2, r5 7262 mov r8, r0 7263 mov r1, r7 7264 mov r0, r6 7265 ldr r5, .L1035+4 7266 bl FlashReadRawPage 7267 adds r0, r0, #1 7268 beq .L1025 7269 cmp r8, #-1 7270 bne .L1026 7271.L1025: 7272 ldrb r3, [r4] @ zero_extendqisi2 7273 lsls r3, r3, #31 7274 bpl .L1026 7275 movs r0, #1 7276 bl FlashSetInterfaceMode 7277 movs r0, #1 7278 bl NandcSetMode 7279 movs r3, #0 7280.L1034: 7281 movs r0, #0 7282 strb r3, [r5] 7283 add sp, sp, #8 7284 @ sp needed 7285 pop {r4, r5, r6, r7, r8, pc} 7286.L1026: 7287 movs r3, #1 7288 b .L1034 7289.L1036: 7290 .align 2 7291.L1035: 7292 .word .LANCHOR25 7293 .word .LANCHOR30 7294 .size FlashDdrParaScan, .-FlashDdrParaScan 7295 .section .text.ToshibaReadRetrial,"ax",%progbits 7296 .align 1 7297 .global ToshibaReadRetrial 7298 .syntax unified 7299 .thumb 7300 .thumb_func 7301 .fpu softvfp 7302 .type ToshibaReadRetrial, %function 7303ToshibaReadRetrial: 7304 @ args = 0, pretend = 0, frame = 24 7305 @ frame_needed = 0, uses_anonymous_args = 0 7306 push {r4, r5, r6, r7, r8, r10, fp, lr} 7307 sub sp, sp, #24 7308 mov r6, r0 7309 str r2, [sp, #12] 7310 mov fp, r3 7311 str r1, [sp, #20] 7312 bl NandcWaitFlashReady 7313 ldr r3, .L1064 7314 ldr r2, .L1064+4 7315 ldr r4, [r3, r6, lsl #3] 7316 add r3, r3, r6, lsl #3 7317 str r2, [sp, #16] 7318 ldrb r7, [r3, #4] @ zero_extendqisi2 7319 ldrb r3, [r2] @ zero_extendqisi2 7320 add r5, r7, #8 7321 subs r3, r3, #67 7322 add r5, r4, r5, lsl #8 7323 cmp r3, #1 7324 bls .L1054 7325 ldr r3, .L1064+8 7326 ldrb r3, [r3] @ zero_extendqisi2 7327 cbz r3, .L1055 7328 movs r0, #0 7329 bl NandcSetDdrMode 7330 movs r3, #1 7331.L1055: 7332 str r3, [sp, #8] 7333 add r3, r4, r7, lsl #8 7334 movs r2, #92 7335 str r2, [r3, #2056] 7336 movs r2, #197 7337 str r2, [r3, #2056] 7338.L1038: 7339 mov r8, #1 7340 mov r3, #-1 7341 str r3, [sp, #4] 7342.L1040: 7343 ldr r3, .L1064+12 7344 ldrb r3, [r3] @ zero_extendqisi2 7345 adds r3, r3, #1 7346 cmp r8, r3 7347 bcc .L1049 7348 ldr r10, [sp, #4] 7349.L1048: 7350 ldr r3, [sp, #16] 7351 movs r1, #0 7352 mov r0, r5 7353 ldrb r2, [r3] @ zero_extendqisi2 7354 subs r2, r2, #67 7355 cmp r2, #1 7356 bhi .L1050 7357 bl SandiskSetRRPara 7358.L1051: 7359 add r4, r4, r7, lsl #8 7360 movs r2, #255 7361 str r2, [r4, #2056] 7362 ldr r2, .L1064+16 7363 ldrb r2, [r2] @ zero_extendqisi2 7364 add r2, r2, r2, lsl #1 7365 cmp r10, r2, asr #2 7366 bcc .L1052 7367 cmp r10, #-1 7368 it ne 7369 movne r10, #256 7370.L1052: 7371 mov r0, r6 7372 bl NandcWaitFlashReady 7373 ldr r3, [sp, #8] 7374 cbz r3, .L1037 7375 movs r0, #4 7376 bl NandcSetDdrMode 7377.L1037: 7378 mov r0, r10 7379 add sp, sp, #24 7380 @ sp needed 7381 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7382.L1054: 7383 movs r3, #0 7384 str r3, [sp, #8] 7385 b .L1038 7386.L1049: 7387 ldr r3, [sp, #16] 7388 mov r0, r5 7389 uxtb r1, r8 7390 ldrb r3, [r3] @ zero_extendqisi2 7391 subs r3, r3, #67 7392 cmp r3, #1 7393 bhi .L1041 7394 bl SandiskSetRRPara 7395.L1042: 7396 ldr r3, [sp, #16] 7397 ldrb r3, [r3] @ zero_extendqisi2 7398 cmp r3, #34 7399 bne .L1043 7400 ldr r3, .L1064+12 7401 ldrb r3, [r3] @ zero_extendqisi2 7402 subs r3, r3, #3 7403 cmp r8, r3 7404 ittt eq 7405 addeq r3, r4, r7, lsl #8 7406 moveq r2, #179 7407 streq r2, [r3, #2056] 7408.L1043: 7409 add r3, r4, r7, lsl #8 7410 movs r2, #38 7411 str r2, [r3, #2056] 7412 movs r2, #93 7413 str r2, [r3, #2056] 7414 ldr r3, [sp, #8] 7415 cbz r3, .L1044 7416 movs r0, #4 7417 bl NandcSetDdrMode 7418 mov r3, fp 7419 ldr r2, [sp, #12] 7420 ldr r1, [sp, #20] 7421 mov r0, r6 7422 bl FlashReadRawPage 7423 mov r10, r0 7424 movs r0, #0 7425 bl NandcSetDdrMode 7426.L1045: 7427 cmp r10, #-1 7428 beq .L1046 7429 ldr r2, .L1064+16 7430 ldr r3, [sp, #4] 7431 ldrb r2, [r2] @ zero_extendqisi2 7432 cmp r3, #-1 7433 it eq 7434 moveq r3, r10 7435 str r3, [sp, #4] 7436 add r2, r2, r2, lsl #1 7437 cmp r10, r2, asr #2 7438 bcc .L1048 7439 mov fp, #0 7440 str fp, [sp, #12] 7441.L1046: 7442 add r8, r8, #1 7443 b .L1040 7444.L1041: 7445 bl ToshibaSetRRPara 7446 b .L1042 7447.L1044: 7448 mov r3, fp 7449 ldr r2, [sp, #12] 7450 ldr r1, [sp, #20] 7451 mov r0, r6 7452 bl FlashReadRawPage 7453 mov r10, r0 7454 b .L1045 7455.L1050: 7456 bl ToshibaSetRRPara 7457 b .L1051 7458.L1065: 7459 .align 2 7460.L1064: 7461 .word .LANCHOR0 7462 .word .LANCHOR10 7463 .word .LANCHOR30 7464 .word .LANCHOR146 7465 .word .LANCHOR33 7466 .size ToshibaReadRetrial, .-ToshibaReadRetrial 7467 .section .text.SamsungReadRetrial,"ax",%progbits 7468 .align 1 7469 .global SamsungReadRetrial 7470 .syntax unified 7471 .thumb 7472 .thumb_func 7473 .fpu softvfp 7474 .type SamsungReadRetrial, %function 7475SamsungReadRetrial: 7476 @ args = 0, pretend = 0, frame = 0 7477 @ frame_needed = 0, uses_anonymous_args = 0 7478 push {r4, r5, r6, r7, r8, r10, fp, lr} 7479 mov r7, r0 7480 mov r10, r2 7481 mov r8, r3 7482 mov fp, r1 7483 movs r6, #1 7484 bl NandcWaitFlashReady 7485 ldr r2, .L1079 7486 mov r4, #-1 7487 add r3, r2, r7, lsl #3 7488 ldrb r5, [r3, #4] @ zero_extendqisi2 7489 add r3, r5, #8 7490 ldr r5, [r2, r7, lsl #3] 7491 add r5, r5, r3, lsl #8 7492.L1067: 7493 ldr r3, .L1079+4 7494 ldrb r3, [r3] @ zero_extendqisi2 7495 adds r3, r3, #1 7496 cmp r6, r3 7497 bcc .L1071 7498.L1070: 7499 movs r1, #0 7500 mov r0, r5 7501 bl SamsungSetRRPara 7502 ldr r3, .L1079+8 7503 ldrb r3, [r3] @ zero_extendqisi2 7504 add r3, r3, r3, lsl #1 7505 cmp r4, r3, asr #2 7506 bcc .L1066 7507 adds r3, r4, #1 7508 it ne 7509 movne r4, #256 7510.L1066: 7511 mov r0, r4 7512 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7513.L1071: 7514 uxtb r1, r6 7515 mov r0, r5 7516 bl SamsungSetRRPara 7517 mov r2, r10 7518 mov r3, r8 7519 mov r1, fp 7520 mov r0, r7 7521 bl FlashReadRawPage 7522 adds r2, r0, #1 7523 beq .L1068 7524 ldr r3, .L1079+8 7525 cmp r4, #-1 7526 it eq 7527 moveq r4, r0 7528 ldrb r3, [r3] @ zero_extendqisi2 7529 add r3, r3, r3, lsl #1 7530 cmp r0, r3, asr #2 7531 bcc .L1074 7532 mov r8, #0 7533 mov r10, r8 7534.L1068: 7535 adds r6, r6, #1 7536 b .L1067 7537.L1074: 7538 mov r4, r0 7539 b .L1070 7540.L1080: 7541 .align 2 7542.L1079: 7543 .word .LANCHOR0 7544 .word .LANCHOR146 7545 .word .LANCHOR33 7546 .size SamsungReadRetrial, .-SamsungReadRetrial 7547 .section .text.MicronReadRetrial,"ax",%progbits 7548 .align 1 7549 .global MicronReadRetrial 7550 .syntax unified 7551 .thumb 7552 .thumb_func 7553 .fpu softvfp 7554 .type MicronReadRetrial, %function 7555MicronReadRetrial: 7556 @ args = 0, pretend = 0, frame = 32 7557 @ frame_needed = 0, uses_anonymous_args = 0 7558 push {r4, r5, r6, r7, r8, r10, fp, lr} 7559 mov r7, r3 7560 ldr r3, .L1106 7561 sub sp, sp, #40 7562 mov r5, r0 7563 str r2, [sp, #16] 7564 ldrb r2, [r3] @ zero_extendqisi2 7565 ldr r3, .L1106+4 7566 str r1, [sp, #28] 7567 ldrb r3, [r3] @ zero_extendqisi2 7568 cmp r3, #0 7569 bne .L1082 7570 add r2, r2, r2, lsl #1 7571 asrs r3, r2, #2 7572.L1105: 7573.L1083: 7574 mov r8, #0 7575 str r3, [sp, #12] 7576 mov r6, r8 7577.L1093: 7578 mov r0, r5 7579 mov r10, #0 7580 bl NandcWaitFlashReady 7581 ldr r3, .L1106+8 7582 mov r4, #-1 7583 ldr r2, [r3, r5, lsl #3] 7584 add r3, r3, r5, lsl #3 7585 ldrb fp, [r3, #4] @ zero_extendqisi2 7586 str r2, [sp, #24] 7587 lsl r3, fp, #8 7588 str r3, [sp, #32] 7589.L1084: 7590 ldr r3, .L1106+12 7591 ldrb r3, [r3] @ zero_extendqisi2 7592 cmp r10, r3 7593 bcc .L1088 7594.L1087: 7595 ldr r3, [sp, #24] 7596 movs r0, #200 7597 add fp, r3, fp, lsl #8 7598 movs r3, #239 7599 str r3, [fp, #2056] 7600 movs r3, #137 7601 str r3, [fp, #2052] 7602 bl udelay 7603 ldr r3, [sp, #12] 7604 str r6, [fp, #2048] 7605 str r6, [fp, #2048] 7606 cmp r4, r3 7607 str r6, [fp, #2048] 7608 str r6, [fp, #2048] 7609 bcc .L1089 7610 adds r1, r4, #1 7611 mov r3, r10 7612 it ne 7613 movne r4, #256 7614 ldr r2, [sp, #28] 7615 str r4, [sp] 7616 mov r1, r10 7617 ldr r0, .L1106+16 7618 bl printf 7619 cmp r8, #0 7620 bne .L1091 7621 ldr r3, .L1106+4 7622 ldrb r3, [r3] @ zero_extendqisi2 7623 cmp r3, #0 7624 beq .L1081 7625 adds r2, r4, #1 7626 bne .L1081 7627 movs r1, #3 7628 mov r0, r5 7629 bl micron_auto_read_calibration_config 7630 mov r8, #1 7631 b .L1093 7632.L1082: 7633 ldr r3, .L1106+20 7634 smull r2, r3, r2, r3 7635 b .L1105 7636.L1088: 7637 ldr r2, [sp, #32] 7638 movs r0, #200 7639 ldr r3, [sp, #24] 7640 add r3, r3, r2 7641 movs r2, #239 7642 str r2, [r3, #2056] 7643 movs r2, #137 7644 str r2, [r3, #2052] 7645 str r3, [sp, #36] 7646 bl udelay 7647 add r3, r10, #1 7648 ldr r1, [sp, #28] 7649 mov r2, r3 7650 str r3, [sp, #20] 7651 ldr r3, [sp, #36] 7652 mov r0, r5 7653 str r2, [r3, #2048] 7654 str r6, [r3, #2048] 7655 ldr r2, [sp, #16] 7656 str r6, [r3, #2048] 7657 str r6, [r3, #2048] 7658 mov r3, r7 7659 bl FlashReadRawPage 7660 adds r3, r0, #1 7661 beq .L1085 7662 ldr r3, [sp, #12] 7663 cmp r4, #-1 7664 it eq 7665 moveq r4, r0 7666 cmp r0, r3 7667 bcc .L1095 7668 movs r7, #0 7669 str r7, [sp, #16] 7670.L1085: 7671 ldr r10, [sp, #20] 7672 b .L1084 7673.L1095: 7674 movs r7, #0 7675 mov r4, r0 7676 str r7, [sp, #16] 7677 b .L1087 7678.L1091: 7679 movs r1, #0 7680 mov r0, r5 7681 bl micron_auto_read_calibration_config 7682 adds r3, r4, #1 7683 it ne 7684 movne r4, #256 7685.L1081: 7686 mov r0, r4 7687 add sp, sp, #40 7688 @ sp needed 7689 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7690.L1089: 7691 cmp r8, #0 7692 beq .L1081 7693 movs r1, #0 7694 mov r0, r5 7695 bl micron_auto_read_calibration_config 7696 mov r4, #256 7697 b .L1081 7698.L1107: 7699 .align 2 7700.L1106: 7701 .word .LANCHOR33 7702 .word .LANCHOR16 7703 .word .LANCHOR0 7704 .word .LANCHOR146 7705 .word .LC13 7706 .word 1431655766 7707 .size MicronReadRetrial, .-MicronReadRetrial 7708 .section .text.HynixReadRetrial,"ax",%progbits 7709 .align 1 7710 .global HynixReadRetrial 7711 .syntax unified 7712 .thumb 7713 .thumb_func 7714 .fpu softvfp 7715 .type HynixReadRetrial, %function 7716HynixReadRetrial: 7717 @ args = 0, pretend = 0, frame = 8 7718 @ frame_needed = 0, uses_anonymous_args = 0 7719 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 7720 mov r10, r3 7721 ldr r4, .L1125 7722 mov r8, #0 7723 mov r6, #-1 7724 mov fp, r2 7725 mov r7, r0 7726 str r1, [sp, #4] 7727 ldrb r3, [r4, #2] @ zero_extendqisi2 7728 adds r2, r4, r0 7729 ldrb r5, [r2, #12] @ zero_extendqisi2 7730 str r3, [sp] 7731 ldr r3, .L1125+4 7732 ldr r3, [r3] 7733 ldrb r3, [r3, #19] @ zero_extendqisi2 7734 subs r3, r3, #7 7735 cmp r3, #1 7736 it ls 7737 ldrbls r5, [r2, #20] @ zero_extendqisi2 7738 bl NandcWaitFlashReady 7739.L1110: 7740 ldr r3, [sp] 7741 cmp r8, r3 7742 bcc .L1115 7743.L1114: 7744 ldr r3, .L1125+4 7745 add r4, r4, r7 7746 ldr r3, [r3] 7747 ldrb r3, [r3, #19] @ zero_extendqisi2 7748 subs r3, r3, #7 7749 cmp r3, #1 7750 ldr r3, .L1125+8 7751 ite ls 7752 strbls r5, [r4, #20] 7753 strbhi r5, [r4, #12] 7754 ldrb r3, [r3] @ zero_extendqisi2 7755 add r3, r3, r3, lsl #1 7756 cmp r6, r3, asr #2 7757 bcc .L1108 7758 adds r3, r6, #1 7759 it ne 7760 movne r6, #256 7761.L1108: 7762 mov r0, r6 7763 add sp, sp, #8 7764 @ sp needed 7765 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7766.L1115: 7767 ldr r3, [sp] 7768 adds r5, r5, #1 7769 uxtb r5, r5 7770 ldr r2, .L1125+12 7771 ldrb r1, [r4, #1] @ zero_extendqisi2 7772 mov r0, r7 7773 cmp r3, r5 7774 it ls 7775 movls r5, #0 7776 mov r3, r5 7777 bl HynixSetRRPara 7778 mov r2, fp 7779 mov r3, r10 7780 ldr r1, [sp, #4] 7781 mov r0, r7 7782 bl FlashReadRawPage 7783 adds r2, r0, #1 7784 beq .L1112 7785 ldr r3, .L1125+8 7786 cmp r6, #-1 7787 it eq 7788 moveq r6, r0 7789 ldrb r3, [r3] @ zero_extendqisi2 7790 add r3, r3, r3, lsl #1 7791 cmp r0, r3, asr #2 7792 bcc .L1119 7793 mov r10, #0 7794 mov fp, r10 7795.L1112: 7796 add r8, r8, #1 7797 b .L1110 7798.L1119: 7799 mov r6, r0 7800 b .L1114 7801.L1126: 7802 .align 2 7803.L1125: 7804 .word .LANCHOR20 7805 .word .LANCHOR7 7806 .word .LANCHOR33 7807 .word .LANCHOR20+4 7808 .size HynixReadRetrial, .-HynixReadRetrial 7809 .section .text.samsung_read_retrial,"ax",%progbits 7810 .align 1 7811 .syntax unified 7812 .thumb 7813 .thumb_func 7814 .fpu softvfp 7815 .type samsung_read_retrial, %function 7816samsung_read_retrial: 7817 @ args = 0, pretend = 0, frame = 16 7818 @ frame_needed = 0, uses_anonymous_args = 0 7819 push {r4, r5, r6, r7, r8, r10, fp, lr} 7820 sub sp, sp, #24 7821 mov r8, r0 7822 mov r10, r2 7823 mov r7, r3 7824 str r1, [sp, #16] 7825 bl NandcWaitFlashReady 7826 ldr r3, .L1152 7827 ldr r2, [r3, r8, lsl #3] 7828 add r3, r3, r8, lsl #3 7829 str r2, [sp, #12] 7830 ldr r2, .L1152+4 7831 ldrb r3, [r3, #4] @ zero_extendqisi2 7832 ldrb r2, [r2] @ zero_extendqisi2 7833 cmp r2, #0 7834 bne .L1128 7835 lsls r3, r3, #8 7836 mov r4, #-1 7837 movs r6, #1 7838 str r3, [sp, #20] 7839 ldr r2, [sp, #20] 7840 ldr r3, [sp, #12] 7841 adds r5, r3, r2 7842.L1132: 7843 movs r3, #239 7844 mov fp, #0 7845 str r3, [r5, #2056] 7846 movs r3, #141 7847 str r3, [r5, #2052] 7848 mov r2, r10 7849 ldr r3, .L1152+8 7850 mov r0, r8 7851 ldr r1, [sp, #16] 7852 ldrsb r3, [r6, r3] 7853 str r3, [r5, #2048] 7854 mov r3, r7 7855 str fp, [r5, #2048] 7856 str fp, [r5, #2048] 7857 str fp, [r5, #2048] 7858 bl FlashReadRawPage 7859 adds r1, r0, #1 7860 beq .L1129 7861 ldr r3, .L1152+12 7862 cmp r4, #-1 7863 it eq 7864 moveq r4, r0 7865 ldrb r3, [r3] @ zero_extendqisi2 7866 add r3, r3, r3, lsl #1 7867 cmp r0, r3, asr #2 7868 bcc .L1140 7869 mov r7, fp 7870 mov r10, fp 7871.L1129: 7872 adds r6, r6, #1 7873 cmp r6, #26 7874 bne .L1132 7875.L1131: 7876 ldr r2, [sp, #20] 7877 ldr r3, [sp, #12] 7878 add r3, r3, r2 7879 movs r2, #239 7880 str r2, [r3, #2056] 7881 movs r3, #141 7882.L1151: 7883 str r3, [r5, #2052] 7884 movs r3, #0 7885 str r3, [r5, #2048] 7886 str r3, [r5, #2048] 7887 str r3, [r5, #2048] 7888 str r3, [r5, #2048] 7889 ldr r3, .L1152+12 7890 ldrb r3, [r3] @ zero_extendqisi2 7891 add r3, r3, r3, lsl #1 7892 cmp r4, r3, asr #2 7893 bcc .L1138 7894 adds r3, r4, #1 7895 ldr r2, [sp, #16] 7896 it ne 7897 movne r4, #256 7898 mov r3, r6 7899 str r4, [sp] 7900 mov r1, r6 7901 ldr r0, .L1152+16 7902 bl printf 7903.L1138: 7904 mov r0, r8 7905 bl NandcWaitFlashReady 7906 mov r0, r4 7907 add sp, sp, #24 7908 @ sp needed 7909 pop {r4, r5, r6, r7, r8, r10, fp, pc} 7910.L1140: 7911 mov r4, r0 7912 b .L1131 7913.L1128: 7914 lsls r3, r3, #8 7915 ldr fp, .L1152+20 7916 mov r4, #-1 7917 str r3, [sp, #20] 7918 movs r6, #1 7919 ldr r3, [sp, #12] 7920 ldr r2, [sp, #20] 7921 adds r5, r3, r2 7922.L1137: 7923 movs r3, #239 7924 mov r2, r10 7925 str r3, [r5, #2056] 7926 movs r3, #137 7927 str r3, [r5, #2052] 7928 mov r0, r8 7929 ldrb r3, [fp, #4] @ zero_extendqisi2 7930 ldr r1, [sp, #16] 7931 str r3, [r5, #2048] 7932 ldrb r3, [fp, #5] @ zero_extendqisi2 7933 str r3, [r5, #2048] 7934 ldrb r3, [fp, #6] @ zero_extendqisi2 7935 str r3, [r5, #2048] 7936 ldrb r3, [fp, #7] @ zero_extendqisi2 7937 str r3, [r5, #2048] 7938 mov r3, r7 7939 bl FlashReadRawPage 7940 adds r2, r0, #1 7941 beq .L1134 7942 ldr r3, .L1152+12 7943 cmp r4, #-1 7944 it eq 7945 moveq r4, r0 7946 ldrb r3, [r3] @ zero_extendqisi2 7947 add r3, r3, r3, lsl #1 7948 cmp r0, r3, asr #2 7949 bcc .L1141 7950 movs r7, #0 7951 mov r10, r7 7952.L1134: 7953 adds r6, r6, #1 7954 add fp, fp, #4 7955 cmp r6, #26 7956 bne .L1137 7957.L1136: 7958 ldr r2, [sp, #20] 7959 ldr r3, [sp, #12] 7960 add r3, r3, r2 7961 movs r2, #239 7962 str r2, [r3, #2056] 7963 movs r3, #137 7964 b .L1151 7965.L1141: 7966 mov r4, r0 7967 b .L1136 7968.L1153: 7969 .align 2 7970.L1152: 7971 .word .LANCHOR0 7972 .word .LANCHOR24 7973 .word .LANCHOR147 7974 .word .LANCHOR33 7975 .word .LC14 7976 .word .LANCHOR148 7977 .size samsung_read_retrial, .-samsung_read_retrial 7978 .section .text.FlashProgPage,"ax",%progbits 7979 .align 1 7980 .global FlashProgPage 7981 .syntax unified 7982 .thumb 7983 .thumb_func 7984 .fpu softvfp 7985 .type FlashProgPage, %function 7986FlashProgPage: 7987 @ args = 0, pretend = 0, frame = 0 7988 @ frame_needed = 0, uses_anonymous_args = 0 7989 push {r0, r1, r4, r5, r6, r7, r8, lr} 7990 mov r8, r3 7991 ldr r3, .L1157 7992 mov r5, r1 7993 mov r7, r2 7994 mov r4, r0 7995 ldrb r6, [r3, #9] @ zero_extendqisi2 7996 cbnz r0, .L1155 7997 ldr r3, .L1157+4 7998 ldr r2, .L1157+8 7999 ldrb r3, [r3] @ zero_extendqisi2 8000 ldr r1, [r2] 8001 muls r1, r3, r1 8002 cmp r1, r5 8003 bls .L1155 8004 ldr r3, .L1157+12 8005 ldrb r3, [r3] @ zero_extendqisi2 8006 cmp r3, #0 8007 it ne 8008 movne r6, #4 8009.L1155: 8010 mov r0, r4 8011 bl NandcWaitFlashReady 8012 mov r0, r4 8013 bl NandcFlashCs 8014 mov r1, r5 8015 mov r0, r4 8016 bl FlashProgFirstCmd 8017 mov r3, r7 8018 mov r2, r6 8019 str r8, [sp] 8020 movs r1, #1 8021 mov r0, r4 8022 bl NandcXferData 8023 mov r1, r5 8024 mov r0, r4 8025 bl FlashProgSecondCmd 8026 mov r0, r4 8027 bl NandcWaitFlashReady 8028 mov r1, r5 8029 mov r0, r4 8030 bl FlashReadStatus 8031 mov r1, r0 8032 mov r0, r4 8033 bl NandcFlashDeCs 8034 and r0, r1, #1 8035 add sp, sp, #8 8036 @ sp needed 8037 pop {r4, r5, r6, r7, r8, pc} 8038.L1158: 8039 .align 2 8040.L1157: 8041 .word .LANCHOR31 8042 .word .LANCHOR3 8043 .word .LANCHOR4 8044 .word .LANCHOR2 8045 .size FlashProgPage, .-FlashProgPage 8046 .section .text.FlashPageProgMsbFFData,"ax",%progbits 8047 .align 1 8048 .global FlashPageProgMsbFFData 8049 .syntax unified 8050 .thumb 8051 .thumb_func 8052 .fpu softvfp 8053 .type FlashPageProgMsbFFData, %function 8054FlashPageProgMsbFFData: 8055 @ args = 0, pretend = 0, frame = 0 8056 @ frame_needed = 0, uses_anonymous_args = 0 8057 push {r3, r4, r5, r6, r7, r8, r10, lr} 8058 mov r6, r0 8059 ldr r3, .L1179 8060 mov r7, r1 8061 mov r4, r2 8062 ldrb r3, [r3] @ zero_extendqisi2 8063 cbz r3, .L1160 8064 ldr r3, .L1179+4 8065 ldr r3, [r3] 8066 cbnz r3, .L1159 8067.L1160: 8068 ldr r5, .L1179+8 8069 ldr r3, [r5] 8070 ldrb r2, [r3, #19] @ zero_extendqisi2 8071 subs r3, r2, #5 8072 uxtb r3, r3 8073 cmp r3, #30 8074 bhi .L1161 8075 ldr r1, .L1179+12 8076 lsr r3, r1, r3 8077 lsls r3, r3, #31 8078 bmi .L1162 8079.L1166: 8080 cmp r2, #68 8081 bne .L1159 8082.L1162: 8083 ldr r10, .L1179+16 8084 ldr r8, .L1179+20 8085.L1164: 8086 ldr r3, [r5] 8087 ldrh r3, [r3, #10] 8088 cmp r3, r4 8089 bhi .L1165 8090 pop {r3, r4, r5, r6, r7, r8, r10, pc} 8091.L1165: 8092 ldrh r2, [r10, r4, lsl #1] 8093 movw r3, #65535 8094 cmp r2, r3 8095 bne .L1159 8096 mov r2, #32768 8097 movs r1, #255 8098 ldr r0, [r8] 8099 bl ftl_memset 8100 ldr r3, [r8] 8101 adds r1, r4, r7 8102 mov r0, r6 8103 adds r4, r4, #1 8104 uxth r4, r4 8105 mov r2, r3 8106 bl FlashProgPage 8107 b .L1164 8108.L1161: 8109 cmp r2, #50 8110 bne .L1166 8111 b .L1162 8112.L1159: 8113 pop {r3, r4, r5, r6, r7, r8, r10, pc} 8114.L1180: 8115 .align 2 8116.L1179: 8117 .word .LANCHOR16 8118 .word .LANCHOR29 8119 .word .LANCHOR7 8120 .word 1073758215 8121 .word .LANCHOR123 8122 .word .LANCHOR149 8123 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData 8124 .section .text.ftl_memcpy,"ax",%progbits 8125 .align 1 8126 .global ftl_memcpy 8127 .syntax unified 8128 .thumb 8129 .thumb_func 8130 .fpu softvfp 8131 .type ftl_memcpy, %function 8132ftl_memcpy: 8133 @ args = 0, pretend = 0, frame = 0 8134 @ frame_needed = 0, uses_anonymous_args = 0 8135 @ link register save eliminated. 8136 b memcpy 8137 .size ftl_memcpy, .-ftl_memcpy 8138 .section .text.FlashReadIdbData,"ax",%progbits 8139 .align 1 8140 .global FlashReadIdbData 8141 .syntax unified 8142 .thumb 8143 .thumb_func 8144 .fpu softvfp 8145 .type FlashReadIdbData, %function 8146FlashReadIdbData: 8147 @ args = 0, pretend = 0, frame = 0 8148 @ frame_needed = 0, uses_anonymous_args = 0 8149 push {r3, lr} 8150 mov r2, #2048 8151 ldr r1, .L1183 8152 bl ftl_memcpy 8153 movs r0, #0 8154 pop {r3, pc} 8155.L1184: 8156 .align 2 8157.L1183: 8158 .word .LANCHOR150 8159 .size FlashReadIdbData, .-FlashReadIdbData 8160 .section .text.FlashLoadPhyInfoInRam,"ax",%progbits 8161 .align 1 8162 .global FlashLoadPhyInfoInRam 8163 .syntax unified 8164 .thumb 8165 .thumb_func 8166 .fpu softvfp 8167 .type FlashLoadPhyInfoInRam, %function 8168FlashLoadPhyInfoInRam: 8169 @ args = 0, pretend = 0, frame = 0 8170 @ frame_needed = 0, uses_anonymous_args = 0 8171 push {r4, r5, r6, r7, r8, lr} 8172 movs r6, #0 8173 ldr r7, .L1193 8174 ldr r5, .L1193+4 8175.L1188: 8176 ldrb r2, [r7, #-1] @ zero_extendqisi2 8177 mov r1, r5 8178 mov r0, r7 8179 lsl r8, r6, #5 8180 bl FlashMemCmp8 8181 mov r4, r0 8182 cbnz r0, .L1186 8183 ldr r5, .L1193+8 8184 mov r3, r4 8185 ldr r2, .L1193+12 8186 add r5, r5, r8 8187 ldrb r0, [r5, #22] @ zero_extendqisi2 8188 mov r1, r2 8189.L1187: 8190 lsls r6, r3, #5 8191 ldrb r6, [r6, r2] @ zero_extendqisi2 8192 cmp r6, r0 8193 beq .L1190 8194 adds r3, r3, #1 8195 cmp r3, #4 8196 bne .L1187 8197.L1190: 8198 ldr r6, .L1193+16 8199 add r1, r1, r3, lsl #5 8200 movs r2, #32 8201 ldr r0, .L1193+20 8202 bl ftl_memcpy 8203 movs r2, #32 8204 mov r1, r5 8205 mov r0, r6 8206 bl ftl_memcpy 8207 ldrh r0, [r6, #10] 8208 bl FlashBlockAlignInit 8209 b .L1185 8210.L1186: 8211 adds r6, r6, #1 8212 adds r7, r7, #32 8213 cmp r6, #86 8214 bne .L1188 8215 mov r4, #-1 8216.L1185: 8217 mov r0, r4 8218 pop {r4, r5, r6, r7, r8, pc} 8219.L1194: 8220 .align 2 8221.L1193: 8222 .word .LANCHOR151+1 8223 .word .LANCHOR22 8224 .word .LANCHOR151 8225 .word .LANCHOR152 8226 .word .LANCHOR31 8227 .word .LANCHOR8 8228 .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam 8229 .section .text.NandcCopy1KB,"ax",%progbits 8230 .align 1 8231 .global NandcCopy1KB 8232 .syntax unified 8233 .thumb 8234 .thumb_func 8235 .fpu softvfp 8236 .type NandcCopy1KB, %function 8237NandcCopy1KB: 8238 @ args = 4, pretend = 0, frame = 0 8239 @ frame_needed = 0, uses_anonymous_args = 0 8240 cmp r1, #1 8241 push {r4, r5, r6, lr} 8242 mov r4, r2 8243 add r2, r0, #4096 8244 add r6, r0, #512 8245 add r0, r2, r4, lsl #9 8246 ldr r5, [sp, #16] 8247 bne .L1196 8248 cbz r3, .L1197 8249 mov r2, #1024 8250 mov r1, r3 8251 bl ftl_memcpy 8252.L1197: 8253 cbz r5, .L1195 8254 ldrb r2, [r5, #1] @ zero_extendqisi2 8255 lsrs r4, r4, #1 8256 ldrb r3, [r5] @ zero_extendqisi2 8257 add r4, r4, r4, lsl #1 8258 lsls r4, r4, #4 8259 orr r3, r3, r2, lsl #8 8260 ldrb r2, [r5, #2] @ zero_extendqisi2 8261 orr r3, r3, r2, lsl #16 8262 ldrb r2, [r5, #3] @ zero_extendqisi2 8263 orr r3, r3, r2, lsl #24 8264 str r3, [r6, r4] 8265 pop {r4, r5, r6, pc} 8266.L1196: 8267 cbz r3, .L1200 8268 mov r1, r0 8269 mov r2, #1024 8270 mov r0, r3 8271 bl ftl_memcpy 8272.L1200: 8273 cbz r5, .L1195 8274 lsrs r4, r4, #1 8275 add r4, r4, r4, lsl #1 8276 lsls r4, r4, #4 8277 ldr r3, [r6, r4] 8278 strb r3, [r5] 8279 lsrs r2, r3, #8 8280 strb r2, [r5, #1] 8281 lsrs r2, r3, #16 8282 lsrs r3, r3, #24 8283 strb r2, [r5, #2] 8284 strb r3, [r5, #3] 8285.L1195: 8286 pop {r4, r5, r6, pc} 8287 .size NandcCopy1KB, .-NandcCopy1KB 8288 .section .text.FlashLoadPhyInfo,"ax",%progbits 8289 .align 1 8290 .global FlashLoadPhyInfo 8291 .syntax unified 8292 .thumb 8293 .thumb_func 8294 .fpu softvfp 8295 .type FlashLoadPhyInfo, %function 8296FlashLoadPhyInfo: 8297 @ args = 0, pretend = 0, frame = 24 8298 @ frame_needed = 0, uses_anonymous_args = 0 8299 push {r4, r5, r6, r7, r8, r10, fp, lr} 8300 movs r3, #60 8301 sub sp, sp, #24 8302 ldr fp, .L1225+32 8303 movs r4, #0 8304 movs r7, #4 8305 strb r3, [sp, #20] 8306 movs r3, #40 8307 strb r3, [sp, #21] 8308 movs r3, #24 8309 strb r3, [sp, #22] 8310 movs r3, #16 8311 strb r3, [sp, #23] 8312 mov r0, r4 8313 ldr r3, [fp] 8314 mov r6, #-1 8315 ldr r8, .L1225+36 8316 ldr r10, .L1225+40 8317 str r3, [sp, #4] 8318 ldr r5, .L1225 8319 ldr r3, [r8] 8320 str r4, [r10] 8321 str r3, [r5] 8322 bl flash_enter_slc_mode 8323 str r10, [sp, #12] 8324 mov r10, r8 8325.L1212: 8326 mov r8, #0 8327 adds r3, r4, #1 8328 str r3, [sp, #8] 8329.L1214: 8330 add r3, sp, #20 8331 ldrb r0, [r3, r8] @ zero_extendqisi2 8332 bl FlashBchSel 8333 movs r3, #0 8334 ldr r2, [r10] 8335 mov r1, r4 8336 mov r0, r3 8337 bl FlashReadRawPage 8338 adds r0, r0, #1 8339 bne .L1213 8340 movs r3, #0 8341 ldr r2, [r10] 8342 ldr r1, [sp, #8] 8343 mov r0, r3 8344 bl FlashReadRawPage 8345 adds r0, r0, #1 8346 bne .L1213 8347 add r8, r8, #1 8348 cmp r8, #4 8349 bne .L1214 8350.L1215: 8351 ldr r3, [sp, #4] 8352 subs r7, r7, #1 8353 add r4, r4, r3 8354 bne .L1212 8355 mov r0, r7 8356 b .L1224 8357.L1216: 8358 movw r1, #2036 8359 add r0, r8, #12 8360 bl js_hash 8361 ldr r3, [r8, #8] 8362 cmp r3, r0 8363 bne .L1222 8364 ldr r6, .L1225+4 8365 movs r2, #32 8366 add r1, r8, #160 8367 mov r0, r6 8368 bl ftl_memcpy 8369 ldr r1, [r5] 8370 movs r2, #32 8371 ldr r0, .L1225+8 8372 adds r1, r1, #192 8373 bl ftl_memcpy 8374 ldr r1, [r5] 8375 mov r2, #852 8376 ldr r0, .L1225+12 8377 adds r1, r1, #224 8378 bl ftl_memcpy 8379 ldrh r0, [r6, #10] 8380 bl FlashBlockAlignInit 8381 ldr r6, [r5] 8382 mov r0, r4 8383 ldr r3, .L1225+16 8384 ldr r1, [fp] 8385 ldr r2, [r6, #1076] 8386 strb r2, [r3] 8387 ldr r3, [sp, #12] 8388 str r4, [r3] 8389 bl __aeabi_uidiv 8390 ldr r3, .L1225+20 8391 adds r0, r0, #1 8392 cmp r0, #1 8393 itte ls 8394 movls r2, #2 8395 strls r2, [r3] 8396 strhi r0, [r3] 8397 ldrh r2, [r6, #14] 8398 movs r6, #0 8399 ldr r3, .L1225+24 8400 strb r2, [r3] 8401 b .L1215 8402.L1222: 8403 mov r6, #-1 8404 b .L1215 8405.L1213: 8406 ldr r8, [r5] 8407 ldr r2, .L1225+28 8408 ldr r3, [r8] 8409 cmp r3, r2 8410 bne .L1215 8411 cmp r6, #0 8412 bne .L1216 8413 ldr r1, [fp] 8414 mov r0, r4 8415 bl __aeabi_uidiv 8416 ldr r3, .L1225+20 8417 adds r0, r0, #1 8418 str r0, [r3] 8419 mov r0, r6 8420.L1224: 8421 bl flash_exit_slc_mode 8422 mov r0, r6 8423 add sp, sp, #24 8424 @ sp needed 8425 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8426.L1226: 8427 .align 2 8428.L1225: 8429 .word .LANCHOR153 8430 .word .LANCHOR31 8431 .word .LANCHOR8 8432 .word .LANCHOR20 8433 .word .LANCHOR30 8434 .word .LANCHOR156 8435 .word .LANCHOR157 8436 .word 1312902724 8437 .word .LANCHOR4 8438 .word .LANCHOR154 8439 .word .LANCHOR155 8440 .size FlashLoadPhyInfo, .-FlashLoadPhyInfo 8441 .section .text.FlashSavePhyInfo,"ax",%progbits 8442 .align 1 8443 .global FlashSavePhyInfo 8444 .syntax unified 8445 .thumb 8446 .thumb_func 8447 .fpu softvfp 8448 .type FlashSavePhyInfo, %function 8449FlashSavePhyInfo: 8450 @ args = 0, pretend = 0, frame = 16 8451 @ frame_needed = 0, uses_anonymous_args = 0 8452 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 8453 ldr r6, .L1240 8454 ldr r7, .L1240+4 8455 ldr r3, [r6] 8456 ldr r10, .L1240+64 8457 ldr r8, .L1240+68 8458 str r3, [r7] 8459 ldr r3, .L1240+8 8460 ldrb r0, [r3] @ zero_extendqisi2 8461 bl FlashBchSel 8462 mov r2, #2048 8463 movs r1, #0 8464 ldr r0, [r6] 8465 bl ftl_memset 8466 ldr r0, [r7] 8467 movs r2, #32 8468 ldr r3, .L1240+12 8469 ldr r1, .L1240+16 8470 str r10, [r0] 8471 adds r0, r0, #16 8472 ldrb r3, [r3] @ zero_extendqisi2 8473 strh r3, [r0, #-4] @ movhi 8474 ldr r3, .L1240+20 8475 ldrb r3, [r3] @ zero_extendqisi2 8476 strh r3, [r0, #-2] @ movhi 8477 ldr r3, .L1240+24 8478 ldrb r3, [r3] @ zero_extendqisi2 8479 str r3, [r0, #1060] 8480 bl ftl_memcpy 8481 ldr r0, [r7] 8482 movs r2, #8 8483 ldr r1, .L1240+28 8484 adds r0, r0, #80 8485 bl ftl_memcpy 8486 ldr r0, [r7] 8487 movs r2, #32 8488 ldr r1, .L1240+32 8489 adds r0, r0, #96 8490 bl ftl_memcpy 8491 ldr r0, [r7] 8492 movs r2, #32 8493 ldr r1, .L1240+36 8494 adds r0, r0, #160 8495 bl ftl_memcpy 8496 ldr r0, [r7] 8497 movs r2, #32 8498 ldr r1, .L1240+40 8499 adds r0, r0, #192 8500 bl ftl_memcpy 8501 ldr r0, [r7] 8502 mov r2, #852 8503 ldr r1, .L1240+44 8504 adds r0, r0, #224 8505 bl ftl_memcpy 8506 ldr r4, [r7] 8507 movw r1, #2036 8508 add r0, r4, #12 8509 bl js_hash 8510 mov r3, #1592 8511 str r0, [r4, #8] 8512 str r3, [r4, #4] 8513 movs r0, #0 8514 ldr r3, [r8] 8515 movs r4, #0 8516 mov r5, r4 8517 str r3, [r7] 8518 bl flash_enter_slc_mode 8519 str r7, [sp, #4] 8520 ldr r7, .L1240+48 8521 str r10, [sp, #8] 8522 mov fp, r7 8523.L1233: 8524 ldr r1, [r7] 8525 movs r2, #0 8526 mov r0, r2 8527 muls r1, r5, r1 8528 bl FlashEraseBlock 8529 ldr r3, .L1240+52 8530 ldrb r10, [r3] @ zero_extendqisi2 8531 cmp r10, #0 8532 beq .L1228 8533 mov r10, #0 8534.L1229: 8535 ldr r1, [fp] 8536 movs r3, #0 8537 ldr r2, [r6] 8538 mov r0, r3 8539 mla r1, r1, r5, r10 8540 add r10, r10, #1 8541 bl FlashProgPage 8542 cmp r10, #10 8543 bne .L1229 8544.L1230: 8545 ldr r1, [fp] 8546 movs r3, #0 8547 ldr r2, [r8] 8548 mov r0, r3 8549 add r10, r5, #1 8550 muls r1, r5, r1 8551 bl FlashReadRawPage 8552 adds r0, r0, #1 8553 beq .L1231 8554 ldr r3, [sp, #4] 8555 ldr r1, [sp, #8] 8556 ldr r3, [r3] 8557 ldr r2, [r3] 8558 cmp r2, r1 8559 bne .L1231 8560 add r0, r3, #12 8561 movw r1, #2036 8562 str r3, [sp, #12] 8563 bl js_hash 8564 ldr r3, [sp, #12] 8565 ldr r3, [r3, #8] 8566 cmp r3, r0 8567 bne .L1231 8568 ldr r3, .L1240+56 8569 cmp r4, #1 8570 str r10, [r3] 8571 ldr r3, [fp] 8572 mul r5, r5, r3 8573 ldr r3, .L1240+60 8574 str r5, [r3] 8575 beq .L1234 8576 movs r4, #1 8577.L1231: 8578 mov r5, r10 8579 cmp r5, #4 8580 bne .L1233 8581.L1232: 8582 movs r0, #0 8583 bl flash_exit_slc_mode 8584 clz r0, r4 8585 lsrs r0, r0, #5 8586 negs r0, r0 8587 add sp, sp, #16 8588 @ sp needed 8589 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8590.L1228: 8591 ldr r1, [r7] 8592 mov r3, r10 8593 ldr r2, [r6] 8594 mov r0, r10 8595 muls r1, r5, r1 8596 bl FlashProgPage 8597 ldr r1, [r7] 8598 mov r3, r10 8599 ldr r2, [r6] 8600 mov r0, r10 8601 muls r1, r5, r1 8602 adds r1, r1, #1 8603 bl FlashProgPage 8604 b .L1230 8605.L1234: 8606 movs r4, #2 8607 b .L1232 8608.L1241: 8609 .align 2 8610.L1240: 8611 .word .LANCHOR154 8612 .word .LANCHOR153 8613 .word .LANCHOR158 8614 .word .LANCHOR26 8615 .word .LANCHOR22 8616 .word .LANCHOR3 8617 .word .LANCHOR30 8618 .word .LANCHOR27 8619 .word .LANCHOR18 8620 .word .LANCHOR31 8621 .word .LANCHOR8 8622 .word .LANCHOR20 8623 .word .LANCHOR4 8624 .word .LANCHOR16 8625 .word .LANCHOR156 8626 .word .LANCHOR155 8627 .word 1312902724 8628 .word .LANCHOR149 8629 .size FlashSavePhyInfo, .-FlashSavePhyInfo 8630 .section .text.FlashReadIdbDataRaw,"ax",%progbits 8631 .align 1 8632 .global FlashReadIdbDataRaw 8633 .syntax unified 8634 .thumb 8635 .thumb_func 8636 .fpu softvfp 8637 .type FlashReadIdbDataRaw, %function 8638FlashReadIdbDataRaw: 8639 @ args = 0, pretend = 0, frame = 16 8640 @ frame_needed = 0, uses_anonymous_args = 0 8641 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 8642 movs r3, #60 8643 strb r3, [sp, #12] 8644 movs r3, #40 8645 mov r10, r0 8646 strb r3, [sp, #13] 8647 movs r3, #24 8648 strb r3, [sp, #14] 8649 movs r3, #16 8650 strb r3, [sp, #15] 8651 ldr r3, .L1260 8652 ldrb r3, [r3] @ zero_extendqisi2 8653 str r3, [sp] 8654 ldr r3, .L1260+4 8655 ldr r2, [r3] 8656 str r3, [sp, #4] 8657 cbz r2, .L1243 8658 movs r0, #0 8659 bl flash_enter_slc_mode 8660.L1243: 8661 mov r7, #-1 8662 movs r4, #2 8663 mov r2, #2048 8664 movs r1, #0 8665 mov r0, r10 8666 bl ftl_memset 8667.L1244: 8668 ldr r3, .L1260+8 8669 ldrb r3, [r3] @ zero_extendqisi2 8670 cmp r4, r3 8671 bcc .L1249 8672.L1248: 8673 ldr r0, [sp] 8674 bl FlashBchSel 8675 ldr r3, [sp, #4] 8676 ldr r3, [r3] 8677 cbz r3, .L1242 8678 movs r0, #0 8679 bl flash_exit_slc_mode 8680.L1242: 8681 mov r0, r7 8682 add sp, sp, #16 8683 @ sp needed 8684 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8685.L1249: 8686 ldr r5, .L1260+12 8687 movs r6, #0 8688 ldr fp, .L1260+28 8689.L1246: 8690 add r3, sp, #12 8691 ldrb r8, [r6, r3] @ zero_extendqisi2 8692 mov r0, r8 8693 bl FlashBchSel 8694 ldr r1, [fp] 8695 movs r3, #0 8696 ldr r2, [r5] 8697 mov r0, r3 8698 muls r1, r4, r1 8699 bl FlashReadRawPage 8700 adds r0, r0, #1 8701 bne .L1245 8702 adds r6, r6, #1 8703 cmp r6, #4 8704 bne .L1246 8705.L1247: 8706 adds r4, r4, #1 8707 b .L1244 8708.L1252: 8709 movs r7, #0 8710 b .L1248 8711.L1245: 8712 ldr r3, [r5] 8713 ldr r2, [r3] 8714 ldr r3, .L1260+16 8715 cmp r2, r3 8716 bne .L1247 8717 mov r1, r8 8718 ldr r0, .L1260+20 8719 bl printf 8720 mov r2, #2048 8721 ldr r1, [r5] 8722 mov r0, r10 8723 bl ftl_memcpy 8724 ldr r3, [r5] 8725 ldr r2, .L1260+8 8726 ldr r3, [r3, #512] 8727 strb r3, [r2] 8728 ldr r3, .L1260+24 8729 ldr r2, [r3] 8730 cmp r4, r2 8731 bcs .L1252 8732 str r4, [r3] 8733 movs r7, #0 8734 bl FlashSavePhyInfo 8735 b .L1247 8736.L1261: 8737 .align 2 8738.L1260: 8739 .word .LANCHOR33 8740 .word .LANCHOR29 8741 .word .LANCHOR3 8742 .word .LANCHOR154 8743 .word -52655045 8744 .word .LC15 8745 .word .LANCHOR156 8746 .word .LANCHOR4 8747 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw 8748 .section .text.idb_write_data,"ax",%progbits 8749 .align 1 8750 .global idb_write_data 8751 .syntax unified 8752 .thumb 8753 .thumb_func 8754 .fpu softvfp 8755 .type idb_write_data, %function 8756idb_write_data: 8757 @ args = 0, pretend = 0, frame = 96 8758 @ frame_needed = 0, uses_anonymous_args = 0 8759 mov r0, r1 8760 mov r1, r2 8761 adds r2, r0, r3 8762 push {r4, r5, r6, r7, r8, r10, fp, lr} 8763 cmp r2, #63 8764 sub sp, sp, #104 8765 bls .L1263 8766 cmp r0, #576 8767 bcs .L1264 8768 ldr r2, .L1315 8769 cmp r0, #64 8770 mov r4, #1 8771 str r4, [r2] 8772 bhi .L1265 8773 rsb r0, r0, #64 8774 subs r2, r3, r0 8775 add r1, r1, r0, lsl #9 8776 ldr r0, .L1315+4 8777 lsls r2, r2, #9 8778.L1314: 8779 bl ftl_memcpy 8780.L1303: 8781 movs r0, #0 8782 add sp, sp, #104 8783 @ sp needed 8784 pop {r4, r5, r6, r7, r8, r10, fp, pc} 8785.L1265: 8786 rsb r2, r0, #576 8787 subs r0, r0, #64 8788 cmp r2, r3 8789 it cs 8790 movcs r2, r3 8791 ldr r3, .L1315+4 8792 lsls r2, r2, #9 8793 add r0, r3, r0, lsl #9 8794 b .L1314 8795.L1263: 8796 cmp r0, #576 8797 bcc .L1303 8798.L1264: 8799 ldr r3, .L1315 8800 ldr r3, [r3] 8801 cmp r3, #0 8802 beq .L1303 8803 ldr r3, .L1315+8 8804 ldr r2, [r3] 8805 ldrb r3, [r2, #9] @ zero_extendqisi2 8806 ldrh r2, [r2, #10] 8807 smulbb r3, r3, r2 8808 uxth r3, r3 8809 mov r1, r3 8810 addw r0, r3, #511 8811 str r3, [sp, #8] 8812 bl __aeabi_uidiv 8813 ldr r1, .L1315+4 8814 movs r3, #0 8815 str r0, [sp, #20] 8816 movw r2, #65535 8817 mov r0, r1 8818.L1269: 8819 ldr r4, [r1, r2, lsl #2] 8820 cbnz r4, .L1267 8821 ldr r4, [r1, r3, lsl #2] 8822 adds r3, r3, #1 8823 cmp r3, #4096 8824 it hi 8825 movhi r3, #0 8826 str r4, [r1, r2, lsl #2] 8827 subs r2, r2, #1 8828 cmp r2, #4096 8829 bne .L1269 8830.L1267: 8831 ldr r1, [r0, r2, lsl #2] 8832 mov r3, #512 8833 ldr r0, .L1315+12 8834 bl printf 8835 ldr r3, .L1315+16 8836 ldr r2, [sp, #8] 8837 ldr r3, [r3] 8838 str r3, [sp, #16] 8839 ldr r3, [sp, #20] 8840 muls r3, r2, r3 8841 str r3, [sp, #36] 8842 ldr r3, [sp, #16] 8843 mul r4, r3, r2 8844 movs r3, #0 8845 str r3, [sp, #12] 8846.L1270: 8847 ldr r3, [sp, #16] 8848 cmp r3, #15 8849 bls .L1287 8850 ldr r3, [sp, #12] 8851 cbnz r3, .L1289 8852 mov r1, r3 8853 ldr r0, .L1315+20 8854 bl printf 8855.L1289: 8856 ldr r3, .L1315 8857 movs r2, #0 8858 str r2, [r3] 8859 b .L1303 8860.L1316: 8861 .align 2 8862.L1315: 8863 .word .LANCHOR159 8864 .word idb_buf 8865 .word .LANCHOR7 8866 .word .LC16 8867 .word .LANCHOR156 8868 .word .LC18 8869.L1287: 8870 mov r2, #512 8871 movs r1, #0 8872 ldr r0, .L1317 8873 bl memset 8874 ldr r3, .L1317+4 8875 mov r0, r4 8876 ldr r3, [r3] 8877 ldrb fp, [r3, #9] @ zero_extendqisi2 8878 ldrh r5, [r3, #10] 8879 bl FW_FlashBlockErase.constprop.41 8880 smulbb r5, r5, fp 8881 uxth r5, r5 8882 cmp r5, #512 8883 bcs .L1271 8884 adds r0, r5, r4 8885 bl FW_FlashBlockErase.constprop.41 8886.L1271: 8887 ldr r7, .L1317+8 8888 mov r1, r5 8889 ldr r10, .L1317+36 8890 mov r0, r4 8891 bl __aeabi_uidivmod 8892 mov r6, r1 8893 subs r3, r4, r1 8894 str r3, [sp, #24] 8895.L1275: 8896 lsrs r2, r6, #2 8897 beq .L1272 8898 ldr r0, .L1317+12 8899 adds r1, r2, #1 8900 ldr r3, .L1317+16 8901 ldrb r0, [r0] @ zero_extendqisi2 8902 ldrh r3, [r3, r1, lsl #1] 8903 cbz r0, .L1273 8904 ldr r0, [r10] 8905 ldr r5, .L1317+20 8906 cmp r0, r5 8907 it eq 8908 moveq r3, r1 8909.L1273: 8910 add r3, r3, #1073741824 8911 subs r3, r3, #1 8912 lsls r3, r3, #2 8913 str r3, [sp, #40] 8914.L1272: 8915 movw r3, #61424 8916 str r3, [sp, #44] 8917 ldr r3, .L1317+16 8918 ldrh r5, [r3, r2, lsl #1] 8919 ldr r3, .L1317+12 8920 ldrb r3, [r3] @ zero_extendqisi2 8921 cbz r3, .L1274 8922 ldr r3, [r10] 8923 ldr r1, .L1317+20 8924 cmp r3, r1 8925 it eq 8926 moveq r5, r2 8927.L1274: 8928 ldr r3, [sp, #24] 8929 adds r6, r6, #4 8930 ldr r2, .L1317+24 8931 ldr r8, .L1317+4 8932 mla r3, r5, fp, r3 8933 adds r5, r5, #1 8934 uxth r5, r5 8935 str r3, [sp, #32] 8936 ldrb r3, [r2] @ zero_extendqisi2 8937 ldr r2, .L1317+28 8938 str r3, [sp, #28] 8939 ldrb r0, [r2] @ zero_extendqisi2 8940 bl FlashBchSel 8941 movs r0, #0 8942 bl flash_boot_enter_slc_mode 8943 ldr r2, [r8] 8944 ldr r3, [sp, #32] 8945 ldrb r1, [r2, #9] @ zero_extendqisi2 8946 mov r0, r3 8947 bl __aeabi_uidiv 8948 add r3, sp, #40 8949 mov r2, r7 8950 mov r1, r0 8951 movs r0, #0 8952 bl FlashProgPage 8953 movs r0, #0 8954 add r7, r7, #2048 8955 bl flash_boot_exit_slc_mode 8956 ldr r0, [sp, #28] 8957 bl FlashBchSel 8958 mov r1, fp 8959 ldr r0, [sp, #24] 8960 bl __aeabi_uidiv 8961 mov r2, r5 8962 mov r1, r0 8963 movs r0, #0 8964 bl FlashPageProgMsbFFData 8965 ldr r3, .L1317+32 8966 cmp r7, r3 8967 bne .L1275 8968 ldr r3, [r8] 8969 mov r0, r4 8970 ldr r7, .L1317 8971 movs r6, #0 8972 ldrb r8, [r3, #9] @ zero_extendqisi2 8973 ldrh r1, [r3, #10] 8974 smulbb r1, r1, r8 8975 uxth r1, r1 8976 bl __aeabi_uidivmod 8977 mul r5, r8, r1 8978 mov r10, r1 8979 subs r3, r4, r1 8980 str r3, [sp, #28] 8981 ubfx r5, r5, #2, #2 8982.L1276: 8983 cmp r6, #512 8984 bcs .L1283 8985 ldr r1, .L1317+12 8986 rsb r3, r5, #4 8987 uxth r3, r3 8988 ldr r2, .L1317+16 8989 ldrb r1, [r1] @ zero_extendqisi2 8990 str r3, [sp, #24] 8991 add r3, r10, r6 8992 lsrs r3, r3, #2 8993 ldrh r2, [r2, r3, lsl #1] 8994 cbz r1, .L1277 8995 ldr r1, .L1317+36 8996 ldr r0, .L1317+20 8997 ldr r1, [r1] 8998 cmp r1, r0 8999 it eq 9000 moveq r2, r3 9001.L1277: 9002 ldr r3, [sp, #28] 9003 add r5, r5, r3 9004 ldr r3, .L1317+24 9005 mla r5, r2, r8, r5 9006 ldrb r3, [r3] @ zero_extendqisi2 9007 str r3, [sp, #32] 9008 ldr r3, .L1317+4 9009 ldr r3, [r3] 9010 ldrb fp, [r3, #9] @ zero_extendqisi2 9011 ldr r3, .L1317+40 9012 ldrh r2, [r3, #26] 9013 ldr r3, .L1317+44 9014 ldr r3, [r3] 9015 muls r3, r2, r3 9016 mul r3, fp, r3 9017 cmp r5, r3 9018 bcs .L1278 9019 ldr r3, .L1317+28 9020 ldrb r0, [r3] @ zero_extendqisi2 9021 bl FlashBchSel 9022.L1278: 9023 movs r0, #0 9024 bl flash_boot_enter_slc_mode 9025 mov r1, fp 9026 mov r0, r5 9027 bl __aeabi_uidiv 9028 add r3, sp, #40 9029 mov r1, r0 9030 mov fp, r0 9031 mov r2, r7 9032 movs r0, #0 9033 bl FlashReadPage 9034 adds r3, r0, #1 9035 mov r5, r0 9036 bne .L1279 9037 ldr r3, .L1317+28 9038 ldrb r3, [r3] @ zero_extendqisi2 9039 cmp r3, #40 9040 beq .L1279 9041 movs r0, #40 9042 bl FlashBchSel 9043 add r3, sp, #40 9044 mov r2, r7 9045 mov r1, fp 9046 movs r0, #0 9047 bl FlashReadPage 9048 mov r5, r0 9049.L1279: 9050 movs r0, #0 9051 bl flash_boot_exit_slc_mode 9052 ldr r0, [sp, #32] 9053 bl FlashBchSel 9054 adds r5, r5, #1 9055 mov r5, #-1 9056 it ne 9057 movne r5, #0 9058 cbz r5, .L1280 9059.L1283: 9060 ldr r3, .L1317+8 9061 movs r5, #0 9062 ldr r6, .L1317 9063.L1281: 9064 mov r7, r3 9065 ldr r1, [r6, r5, lsl #2] 9066 ldr r2, [r7] 9067 adds r3, r3, #4 9068 cmp r1, r2 9069 beq .L1284 9070 mov r2, #512 9071 movs r1, #0 9072 ldr r0, .L1317 9073 bl memset 9074 str r5, [sp] 9075 mov r1, r4 9076 ldr r3, [r7] 9077 ldr r2, [r6, r5, lsl #2] 9078 ldr r0, .L1317+48 9079 bl printf 9080 mov r0, r4 9081 bl FW_FlashBlockErase.constprop.41 9082 ldr r3, [sp, #20] 9083 cmp r3, #1 9084 bls .L1285 9085 ldr r3, [sp, #8] 9086 adds r0, r3, r4 9087 bl FW_FlashBlockErase.constprop.41 9088.L1285: 9089 ldr r3, [sp, #16] 9090 ldr r2, [sp, #20] 9091 add r3, r3, r2 9092 str r3, [sp, #16] 9093 ldr r3, [sp, #36] 9094 add r4, r4, r3 9095 b .L1270 9096.L1280: 9097 ldr r3, [sp, #24] 9098 add r6, r6, r3 9099 add r7, r7, r3, lsl #9 9100 uxth r6, r6 9101 b .L1276 9102.L1284: 9103 adds r5, r5, #1 9104 cmp r5, #65536 9105 bne .L1281 9106 ldr r3, [sp, #12] 9107 adds r3, r3, #1 9108 cmp r3, #5 9109 str r3, [sp, #12] 9110 bls .L1285 9111 b .L1289 9112.L1318: 9113 .align 2 9114.L1317: 9115 .word gp_flash_check_buf 9116 .word .LANCHOR7 9117 .word idb_buf 9118 .word .LANCHOR16 9119 .word .LANCHOR17 9120 .word 1446522928 9121 .word .LANCHOR33 9122 .word .LANCHOR158 9123 .word idb_buf+262144 9124 .word .LANCHOR122 9125 .word .LANCHOR15 9126 .word .LANCHOR4 9127 .word .LC17 9128 .size idb_write_data, .-idb_write_data 9129 .section .text.ftl_memcpy32,"ax",%progbits 9130 .align 1 9131 .global ftl_memcpy32 9132 .syntax unified 9133 .thumb 9134 .thumb_func 9135 .fpu softvfp 9136 .type ftl_memcpy32, %function 9137ftl_memcpy32: 9138 @ args = 0, pretend = 0, frame = 0 9139 @ frame_needed = 0, uses_anonymous_args = 0 9140 movs r3, #0 9141 push {r4, lr} 9142.L1320: 9143 cmp r3, r2 9144 bne .L1321 9145 pop {r4, pc} 9146.L1321: 9147 ldr r4, [r1, r3, lsl #2] 9148 str r4, [r0, r3, lsl #2] 9149 adds r3, r3, #1 9150 b .L1320 9151 .size ftl_memcpy32, .-ftl_memcpy32 9152 .section .text.ftl_memcmp,"ax",%progbits 9153 .align 1 9154 .global ftl_memcmp 9155 .syntax unified 9156 .thumb 9157 .thumb_func 9158 .fpu softvfp 9159 .type ftl_memcmp, %function 9160ftl_memcmp: 9161 @ args = 0, pretend = 0, frame = 0 9162 @ frame_needed = 0, uses_anonymous_args = 0 9163 @ link register save eliminated. 9164 b memcmp 9165 .size ftl_memcmp, .-ftl_memcmp 9166 .section .text.rknand_get_clk_rate,"ax",%progbits 9167 .align 1 9168 .global rknand_get_clk_rate 9169 .syntax unified 9170 .thumb 9171 .thumb_func 9172 .fpu softvfp 9173 .type rknand_get_clk_rate, %function 9174rknand_get_clk_rate: 9175 @ args = 0, pretend = 0, frame = 0 9176 @ frame_needed = 0, uses_anonymous_args = 0 9177 @ link register save eliminated. 9178 ldr r0, .L1324 9179 bx lr 9180.L1325: 9181 .align 2 9182.L1324: 9183 .word 148000000 9184 .size rknand_get_clk_rate, .-rknand_get_clk_rate 9185 .section .text.ftl_malloc,"ax",%progbits 9186 .align 1 9187 .global ftl_malloc 9188 .syntax unified 9189 .thumb 9190 .thumb_func 9191 .fpu softvfp 9192 .type ftl_malloc, %function 9193ftl_malloc: 9194 @ args = 0, pretend = 0, frame = 0 9195 @ frame_needed = 0, uses_anonymous_args = 0 9196 @ link register save eliminated. 9197 movs r1, #0 9198 b kmalloc 9199 .size ftl_malloc, .-ftl_malloc 9200 .section .text.NandcInit,"ax",%progbits 9201 .align 1 9202 .global NandcInit 9203 .syntax unified 9204 .thumb 9205 .thumb_func 9206 .fpu softvfp 9207 .type NandcInit, %function 9208NandcInit: 9209 @ args = 0, pretend = 0, frame = 0 9210 @ frame_needed = 0, uses_anonymous_args = 0 9211 push {r3, r4, r5, lr} 9212 movs r2, #1 9213 ldr r3, .L1329 9214 movs r4, #0 9215 ldr r5, .L1329+4 9216 str r2, [r3, #12] 9217 movs r2, #2 9218 str r2, [r3, #20] 9219 movs r2, #3 9220 stm r3, {r0, r4} 9221 str r0, [r3, #8] 9222 str r0, [r3, #16] 9223 str r2, [r3, #28] 9224 str r0, [r3, #24] 9225 ldr r3, .L1329+8 9226 ldr r2, .L1329+12 9227 str r0, [r3] 9228 ldr r3, [r0] 9229 and r3, r3, #253952 9230 ubfx r1, r3, #13, #1 9231 bfi r3, r4, #13, #1 9232 str r1, [r2] 9233 orr r3, r3, #256 9234 ldr r2, [r0, #352] 9235 ldr r1, .L1329+16 9236 ubfx r2, r2, #16, #4 9237 str r2, [r1] 9238 ldr r2, [r0, #352] 9239 str r2, [r5] 9240 movw r5, #2049 9241 cmp r2, r5 9242 itt eq 9243 moveq r2, #8 9244 streq r2, [r1] 9245 str r3, [r0] 9246 movw r3, #4225 9247 str r4, [r0, #336] 9248 str r3, [r0, #4] 9249 movw r3, #8322 9250 str r3, [r0, #344] 9251 ldr r3, .L1329+20 9252 str r3, [r0, #304] 9253 mov r0, #36864 9254 bl ftl_malloc 9255 ldr r3, .L1329+24 9256 str r0, [r3] 9257 ldr r3, .L1329+28 9258 str r0, [r3] 9259 add r0, r0, #32768 9260 str r0, [r3, #4] 9261 str r4, [r3, #24] 9262 ldr r3, .L1329+32 9263 str r4, [r3] 9264 pop {r3, r4, r5, pc} 9265.L1330: 9266 .align 2 9267.L1329: 9268 .word .LANCHOR0 9269 .word .LANCHOR122 9270 .word .LANCHOR19 9271 .word .LANCHOR160 9272 .word .LANCHOR34 9273 .word 1710593 9274 .word .LANCHOR161 9275 .word .LANCHOR35 9276 .word .LANCHOR36 9277 .size NandcInit, .-NandcInit 9278 .section .text.FtlMemInit,"ax",%progbits 9279 .align 1 9280 .global FtlMemInit 9281 .syntax unified 9282 .thumb 9283 .thumb_func 9284 .fpu softvfp 9285 .type FtlMemInit, %function 9286FtlMemInit: 9287 @ args = 0, pretend = 0, frame = 0 9288 @ frame_needed = 0, uses_anonymous_args = 0 9289 ldr r3, .L1337 9290 movs r0, #128 9291 push {r4, r5, r6, r7, r8, r10, fp, lr} 9292 movs r4, #0 9293 ldr r2, .L1337+4 9294 movs r6, #12 9295 movs r7, #36 9296 strh r4, [r3] @ movhi 9297 ldr r3, .L1337+8 9298 ldr r5, .L1337+12 9299 ldr fp, .L1337+320 9300 str r4, [r3] 9301 ldr r3, .L1337+16 9302 str r4, [r3] 9303 ldr r3, .L1337+20 9304 str r4, [r3] 9305 ldr r3, .L1337+24 9306 str r4, [r3] 9307 ldr r3, .L1337+28 9308 str r4, [r3] 9309 ldr r3, .L1337+32 9310 str r4, [r3] 9311 ldr r3, .L1337+36 9312 str r4, [r3] 9313 ldr r3, .L1337+40 9314 str r4, [r3] 9315 ldr r3, .L1337+44 9316 str r4, [r3] 9317 ldr r3, .L1337+48 9318 str r4, [r3] 9319 ldr r3, .L1337+52 9320 str r4, [r3] 9321 ldr r3, .L1337+56 9322 str r4, [r3] 9323 ldr r3, .L1337+60 9324 str r4, [r3] 9325 ldr r3, .L1337+64 9326 str r4, [r3] 9327 ldr r3, .L1337+68 9328 str r4, [r3] 9329 ldr r3, .L1337+72 9330 str r4, [r3] 9331 ldr r3, .L1337+76 9332 str r4, [r3] 9333 movw r3, #65535 9334 str r3, [r2] 9335 ldr r2, .L1337+80 9336 str r4, [r2] 9337 ldr r2, .L1337+84 9338 str r4, [r2] 9339 ldr r2, .L1337+88 9340 str r4, [r2] 9341 ldr r2, .L1337+92 9342 strh r3, [r2] @ movhi 9343 ldr r2, .L1337+96 9344 strh r3, [r2] @ movhi 9345 ldr r2, .L1337+100 9346 strh r3, [r2] @ movhi 9347 ldr r2, .L1337+104 9348 strh r3, [r2] @ movhi 9349 movs r2, #32 9350 ldr r3, .L1337+108 9351 strh r2, [r3] @ movhi 9352 ldr r3, .L1337+112 9353 strh r0, [r3] @ movhi 9354 ldr r3, .L1337+116 9355 strh r4, [r3] @ movhi 9356 ldr r3, .L1337+120 9357 strh r4, [r3] @ movhi 9358 ldr r3, .L1337+124 9359 strh r4, [r3] @ movhi 9360 ldr r3, .L1337+128 9361 strh r4, [r3] @ movhi 9362 ldr r3, .L1337+132 9363 ldrh r1, [r3] 9364 bl __aeabi_idiv 9365 ldr r2, .L1337+136 9366 str r0, [r5] 9367 ldrh r3, [r2] 9368 mov r8, r2 9369 lsls r3, r3, #2 9370 cmp r0, r3 9371 it hi 9372 strhi r3, [r5] 9373 ldr r3, .L1337+140 9374 str r4, [r3] 9375 ldr r4, .L1337+144 9376 ldrh r0, [r4] 9377 lsls r0, r0, #1 9378 bl ftl_malloc 9379 ldr r3, .L1337+148 9380 str r0, [r3] 9381 ldrh r0, [r4] 9382 muls r0, r6, r0 9383 bl ftl_malloc 9384 ldrh r4, [r8] 9385 ldr r3, .L1337+152 9386 muls r4, r7, r4 9387 str r0, [r3] 9388 lsl r10, r4, #2 9389 mov r0, r10 9390 bl ftl_malloc 9391 ldr r3, .L1337+156 9392 str r0, [r3] 9393 mov r0, r4 9394 bl ftl_malloc 9395 ldr r3, .L1337+160 9396 str r0, [r3] 9397 mov r0, r10 9398 bl ftl_malloc 9399 ldr r3, .L1337+164 9400 ldr r10, .L1337+324 9401 str r0, [r3] 9402 mov r0, r4 9403 bl ftl_malloc 9404 ldr r3, .L1337+168 9405 str r0, [r3] 9406 mov r0, r4 9407 bl ftl_malloc 9408 ldr r3, .L1337+172 9409 str r0, [r3] 9410 ldr r0, [r5] 9411 muls r0, r7, r0 9412 ldr r7, .L1337+176 9413 bl ftl_malloc 9414 ldr r3, .L1337+180 9415 ldrh r4, [r7] 9416 str r0, [r3] 9417 ldrh r3, [r8] 9418 mov r0, r4 9419 lsls r3, r3, #1 9420 adds r3, r3, #1 9421 str r3, [r10] 9422 bl ftl_malloc 9423 ldr r3, .L1337+184 9424 str r0, [r3] 9425 mov r0, r4 9426 bl ftl_malloc 9427 ldr r3, .L1337+188 9428 str r0, [r3] 9429 mov r0, r4 9430 bl ftl_malloc 9431 ldr r3, .L1337+192 9432 str r0, [r3] 9433 ldr r0, [r10] 9434 muls r0, r4, r0 9435 bl ftl_malloc 9436 ldr r3, .L1337+196 9437 str r0, [r3] 9438 ldr r0, [r5] 9439 muls r0, r4, r0 9440 bl ftl_malloc 9441 ldr r3, .L1337+200 9442 str r0, [r3] 9443 mov r0, r4 9444 bl ftl_malloc 9445 ldr r3, .L1337+204 9446 str r0, [r3] 9447 mov r0, r4 9448 bl ftl_malloc 9449 ldr r3, .L1337+208 9450 str r0, [r3] 9451 ldr r0, [r10] 9452 muls r0, r6, r0 9453 bl ftl_malloc 9454 ldr r3, .L1337+212 9455 ldrh r4, [r8] 9456 ldr r8, .L1337+328 9457 str r0, [r3] 9458 ldrh r3, [fp] 9459 muls r4, r3, r4 9460 mov r0, r4 9461 bl ftl_malloc 9462 ldr r3, .L1337+216 9463 str r0, [r3] 9464 lsls r0, r4, #2 9465 ldr r4, .L1337+220 9466 bl ftl_malloc 9467 ldr r3, .L1337+224 9468 str r0, [r3] 9469 ldrh r3, [fp] 9470 ldr r0, [r10] 9471 muls r0, r3, r0 9472 bl ftl_malloc 9473 ldr r3, .L1337+228 9474 str r0, [r3] 9475 ldrh r3, [fp] 9476 ldr r0, [r5] 9477 ldr r5, .L1337+232 9478 muls r0, r3, r0 9479 bl ftl_malloc 9480 ldr r3, .L1337+236 9481 str r0, [r3] 9482 ldrh r0, [r4] 9483 lsls r0, r0, #1 9484 uxth r0, r0 9485 strh r0, [r5] @ movhi 9486 bl ftl_malloc 9487 ldr r3, .L1337+240 9488 str r0, [r3] 9489 ldrh r3, [r5] 9490 ldr r0, .L1337+244 9491 addw r3, r3, #547 9492 lsrs r3, r3, #9 9493 and r0, r0, r3, lsl #9 9494 strh r3, [r5] @ movhi 9495 bl ftl_malloc 9496 ldr r3, .L1337+248 9497 str r0, [r3] 9498 adds r0, r0, #32 9499 ldr r3, .L1337+252 9500 str r0, [r3] 9501 ldrh r0, [r4] 9502 lsls r0, r0, #1 9503 bl ftl_malloc 9504 ldr r5, [r8] 9505 ldr r3, .L1337+256 9506 lsls r5, r5, #1 9507 str r0, [r3] 9508 mov r0, r5 9509 bl ftl_malloc 9510 ldr r3, .L1337+260 9511 str r0, [r3] 9512 mov r0, r5 9513 bl ftl_malloc 9514 ldr r3, .L1337+264 9515 ldr r5, .L1337+268 9516 str r0, [r3] 9517 ldrh r0, [r4] 9518 lsrs r0, r0, #3 9519 adds r0, r0, #4 9520 bl ftl_malloc 9521 ldr r3, .L1337+272 9522 str r0, [r3] 9523 ldrh r0, [r5] 9524 lsls r0, r0, #1 9525 bl ftl_malloc 9526 ldr r3, .L1337+276 9527 str r0, [r3] 9528 ldrh r0, [r5] 9529 lsls r0, r0, #1 9530 bl ftl_malloc 9531 ldr r3, .L1337+280 9532 str r0, [r3] 9533 ldrh r0, [r5] 9534 ldr r5, .L1337+284 9535 lsls r0, r0, #2 9536 bl ftl_malloc 9537 ldr r3, .L1337+288 9538 str r0, [r3] 9539 ldrh r0, [r5] 9540 lsls r0, r0, #2 9541 bl ftl_malloc 9542 ldrh r2, [r5] 9543 movs r1, #0 9544 ldr r3, .L1337+292 9545 lsls r2, r2, #2 9546 str r0, [r3] 9547 bl ftl_memset 9548 ldr r3, .L1337+296 9549 ldrh r5, [r3] 9550 lsls r5, r5, #2 9551 mov r0, r5 9552 bl ftl_malloc 9553 ldr r3, .L1337+300 9554 str r0, [r3] 9555 mov r0, r5 9556 bl ftl_malloc 9557 ldr r3, .L1337+304 9558 ldr r5, .L1337+308 9559 str r0, [r3] 9560 ldr r0, [r8] 9561 lsls r0, r0, #2 9562 bl ftl_malloc 9563 ldr r3, .L1337+312 9564 str r0, [r3] 9565 ldrh r0, [r5] 9566 muls r0, r6, r0 9567 ldr r6, .L1337+316 9568 bl ftl_malloc 9569 b .L1338 9570.L1339: 9571 .align 2 9572.L1337: 9573 .word .LANCHOR142 9574 .word .LANCHOR178 9575 .word .LANCHOR162 9576 .word .LANCHOR185 9577 .word .LANCHOR163 9578 .word .LANCHOR164 9579 .word .LANCHOR165 9580 .word .LANCHOR166 9581 .word .LANCHOR167 9582 .word .LANCHOR168 9583 .word .LANCHOR169 9584 .word .LANCHOR170 9585 .word .LANCHOR171 9586 .word .LANCHOR172 9587 .word .LANCHOR173 9588 .word .LANCHOR81 9589 .word .LANCHOR174 9590 .word .LANCHOR175 9591 .word .LANCHOR176 9592 .word .LANCHOR177 9593 .word .LANCHOR179 9594 .word .LANCHOR180 9595 .word .LANCHOR75 9596 .word .LANCHOR115 9597 .word .LANCHOR116 9598 .word .LANCHOR117 9599 .word .LANCHOR118 9600 .word .LANCHOR181 9601 .word .LANCHOR182 9602 .word .LANCHOR183 9603 .word .LANCHOR119 9604 .word .LANCHOR184 9605 .word .LANCHOR121 9606 .word .LANCHOR55 9607 .word .LANCHOR38 9608 .word .LANCHOR72 9609 .word .LANCHOR54 9610 .word .LANCHOR111 9611 .word .LANCHOR114 9612 .word .LANCHOR186 9613 .word .LANCHOR187 9614 .word .LANCHOR188 9615 .word .LANCHOR79 9616 .word .LANCHOR109 9617 .word .LANCHOR57 9618 .word .LANCHOR73 9619 .word .LANCHOR189 9620 .word .LANCHOR190 9621 .word .LANCHOR191 9622 .word .LANCHOR107 9623 .word .LANCHOR192 9624 .word .LANCHOR193 9625 .word .LANCHOR194 9626 .word .LANCHOR106 9627 .word .LANCHOR195 9628 .word .LANCHOR41 9629 .word .LANCHOR196 9630 .word .LANCHOR108 9631 .word .LANCHOR198 9632 .word .LANCHOR197 9633 .word .LANCHOR140 9634 .word 33553920 9635 .word .LANCHOR199 9636 .word .LANCHOR80 9637 .word .LANCHOR85 9638 .word .LANCHOR132 9639 .word .LANCHOR128 9640 .word .LANCHOR61 9641 .word .LANCHOR1 9642 .word .LANCHOR71 9643 .word .LANCHOR200 9644 .word .LANCHOR62 9645 .word .LANCHOR201 9646 .word .LANCHOR202 9647 .word .LANCHOR66 9648 .word .LANCHOR134 9649 .word .LANCHOR203 9650 .word .LANCHOR67 9651 .word .LANCHOR133 9652 .word .LANCHOR45 9653 .word .LANCHOR58 9654 .word .LANCHOR110 9655 .word .LANCHOR64 9656.L1338: 9657 ldr r3, .L1340 9658 str r0, [r3] 9659 ldrh r3, [r5] 9660 ldrh r0, [r7] 9661 ldr r5, .L1340+4 9662 muls r0, r3, r0 9663 bl ftl_malloc 9664 ldr r3, .L1340+8 9665 str r0, [r3] 9666 movs r0, #6 9667 ldrh r3, [r4] 9668 muls r0, r3, r0 9669 bl ftl_malloc 9670 ldr r3, .L1340+12 9671 str r0, [r3] 9672 ldr r3, .L1340+16 9673 ldrh r0, [r3] 9674 ldrh r3, [r6] 9675 adds r0, r0, #31 9676 asrs r0, r0, #5 9677 strh r0, [r5] @ movhi 9678 muls r0, r3, r0 9679 lsls r0, r0, #2 9680 bl ftl_malloc 9681 ldrh r1, [r5] 9682 movs r2, #1 9683 ldr r3, .L1340+20 9684 ldrh r6, [r6] 9685 lsls r1, r1, #2 9686 mov r4, r3 9687 str r0, [r4, #28]! 9688 mov r0, r1 9689.L1333: 9690 cmp r2, r6 9691 bcc .L1334 9692 add r3, r3, r2, lsl #2 9693 ldr r2, .L1340+24 9694 movs r1, #0 9695 adds r3, r3, #24 9696.L1335: 9697 cmp r3, r2 9698 bne .L1336 9699 movs r0, #0 9700 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9701.L1334: 9702 ldr r5, [r3, #28] 9703 adds r2, r2, #1 9704 add r5, r5, r0 9705 add r0, r0, r1 9706 str r5, [r4, #4]! 9707 b .L1333 9708.L1336: 9709 str r1, [r3, #4]! 9710 b .L1335 9711.L1341: 9712 .align 2 9713.L1340: 9714 .word .LANCHOR98 9715 .word .LANCHOR126 9716 .word .LANCHOR129 9717 .word .LANCHOR83 9718 .word .LANCHOR51 9719 .word .LANCHOR76 9720 .word .LANCHOR76+56 9721 .size FtlMemInit, .-FtlMemInit 9722 .section .text.ftl_free,"ax",%progbits 9723 .align 1 9724 .global ftl_free 9725 .syntax unified 9726 .thumb 9727 .thumb_func 9728 .fpu softvfp 9729 .type ftl_free, %function 9730ftl_free: 9731 @ args = 0, pretend = 0, frame = 0 9732 @ frame_needed = 0, uses_anonymous_args = 0 9733 @ link register save eliminated. 9734 b free 9735 .size ftl_free, .-ftl_free 9736 .section .text.FlashCs123Init,"ax",%progbits 9737 .align 1 9738 .global FlashCs123Init 9739 .syntax unified 9740 .thumb 9741 .thumb_func 9742 .fpu softvfp 9743 .type FlashCs123Init, %function 9744FlashCs123Init: 9745 @ args = 0, pretend = 0, frame = 0 9746 @ frame_needed = 0, uses_anonymous_args = 0 9747 @ link register save eliminated. 9748 bx lr 9749 .size FlashCs123Init, .-FlashCs123Init 9750 .section .text.rk_nand_de_init,"ax",%progbits 9751 .align 1 9752 .global rk_nand_de_init 9753 .syntax unified 9754 .thumb 9755 .thumb_func 9756 .fpu softvfp 9757 .type rk_nand_de_init, %function 9758rk_nand_de_init: 9759 @ args = 0, pretend = 0, frame = 0 9760 @ frame_needed = 0, uses_anonymous_args = 0 9761 @ link register save eliminated. 9762 b FlashDeInit 9763 .size rk_nand_de_init, .-rk_nand_de_init 9764 .section .text.rk_ftl_get_capacity,"ax",%progbits 9765 .align 1 9766 .global rk_ftl_get_capacity 9767 .syntax unified 9768 .thumb 9769 .thumb_func 9770 .fpu softvfp 9771 .type rk_ftl_get_capacity, %function 9772rk_ftl_get_capacity: 9773 @ args = 0, pretend = 0, frame = 0 9774 @ frame_needed = 0, uses_anonymous_args = 0 9775 @ link register save eliminated. 9776 ldr r3, .L1346 9777 ldr r0, [r3] 9778 bx lr 9779.L1347: 9780 .align 2 9781.L1346: 9782 .word .LANCHOR68 9783 .size rk_ftl_get_capacity, .-rk_ftl_get_capacity 9784 .section .text.rknand_print_hex,"ax",%progbits 9785 .align 1 9786 .global rknand_print_hex 9787 .syntax unified 9788 .thumb 9789 .thumb_func 9790 .fpu softvfp 9791 .type rknand_print_hex, %function 9792rknand_print_hex: 9793 @ args = 0, pretend = 0, frame = 0 9794 @ frame_needed = 0, uses_anonymous_args = 0 9795 push {r4, r5, r6, r7, r8, r10, fp, lr} 9796 movs r5, #0 9797 ldr r7, .L1357 9798 mov fp, r0 9799 mov r6, r1 9800 mov r8, r2 9801 mov r10, r3 9802 mov r4, r5 9803.L1349: 9804 cmp r4, r10 9805 bne .L1355 9806 ldr r1, .L1357+4 9807 ldr r0, .L1357+8 9808 pop {r4, r5, r6, r7, r8, r10, fp, lr} 9809 b printf 9810.L1355: 9811 cbnz r5, .L1350 9812 mov r2, r4 9813 mov r1, fp 9814 ldr r0, .L1357+12 9815 bl printf 9816.L1350: 9817 cmp r8, #4 9818 bne .L1351 9819 ldr r1, [r6, r4, lsl #2] 9820.L1356: 9821 mov r0, r7 9822 adds r5, r5, #1 9823 bl printf 9824 cmp r5, #15 9825 bls .L1354 9826 movs r5, #0 9827 ldr r1, .L1357+4 9828 ldr r0, .L1357+8 9829 bl printf 9830.L1354: 9831 adds r4, r4, #1 9832 b .L1349 9833.L1351: 9834 cmp r8, #2 9835 ite eq 9836 ldrsheq r1, [r6, r4, lsl #1] 9837 ldrbne r1, [r6, r4] @ zero_extendqisi2 9838 b .L1356 9839.L1358: 9840 .align 2 9841.L1357: 9842 .word .LC20 9843 .word .LC21 9844 .word .LC7 9845 .word .LC19 9846 .size rknand_print_hex, .-rknand_print_hex 9847 .section .text.HynixGetReadRetryDefault,"ax",%progbits 9848 .align 1 9849 .global HynixGetReadRetryDefault 9850 .syntax unified 9851 .thumb 9852 .thumb_func 9853 .fpu softvfp 9854 .type HynixGetReadRetryDefault, %function 9855HynixGetReadRetryDefault: 9856 @ args = 0, pretend = 0, frame = 56 9857 @ frame_needed = 0, uses_anonymous_args = 0 9858 push {r4, r5, r6, r7, r8, r10, fp, lr} 9859 movs r3, #172 9860 ldr r5, .L1477 9861 cmp r0, #2 9862 mov r1, #173 9863 mov r2, #174 9864 sub sp, sp, #56 9865 mov r4, r0 9866 strb r3, [r5, #4] 9867 mov r3, #175 9868 strb r0, [r5] 9869 strb r1, [r5, #5] 9870 strb r2, [r5, #6] 9871 strb r3, [r5, #7] 9872 bne .L1360 9873 movs r3, #167 9874 mov fp, #7 9875 strb r3, [r5, #4] 9876 movs r2, #247 9877 ldr r3, .L1477+4 9878 strb r2, [r3, #17] 9879.L1470: 9880 mov r10, #4 9881 b .L1361 9882.L1360: 9883 cmp r0, #3 9884 bne .L1362 9885 movs r3, #176 9886 strb r3, [r5, #4] 9887 movs r3, #177 9888 strb r3, [r5, #5] 9889 movs r3, #178 9890 strb r3, [r5, #6] 9891 movs r3, #179 9892 strb r3, [r5, #7] 9893 movs r3, #180 9894 strb r3, [r5, #8] 9895 movs r3, #181 9896 strb r3, [r5, #9] 9897 movs r3, #182 9898 strb r3, [r5, #10] 9899 movs r3, #183 9900.L1471: 9901 mov fp, #8 9902 strb r3, [r5, #11] 9903 mov r10, fp 9904.L1361: 9905 subs r3, r4, #1 9906 cmp r3, #1 9907 bhi .L1367 9908 mov r8, #0 9909.L1368: 9910 ldr r3, .L1477+8 9911 ldrb r2, [r3] @ zero_extendqisi2 9912 uxtb r3, r8 9913 cmp r2, r3 9914 bhi .L1374 9915.L1375: 9916 ldr r3, .L1477 9917 strb r10, [r3, #1] 9918 strb fp, [r3, #2] 9919 add sp, sp, #56 9920 @ sp needed 9921 pop {r4, r5, r6, r7, r8, r10, fp, pc} 9922.L1362: 9923 cmp r0, #4 9924 bne .L1363 9925 movs r0, #204 9926 strb r1, [r5, #9] 9927 strb r0, [r5, #4] 9928 movs r0, #191 9929 strb r0, [r5, #5] 9930 movs r0, #170 9931 strb r0, [r5, #6] 9932 movs r0, #171 9933 strb r0, [r5, #7] 9934 movs r0, #205 9935 strb r0, [r5, #8] 9936 strb r2, [r5, #10] 9937 b .L1471 9938.L1363: 9939 cmp r0, #5 9940 bne .L1364 9941 movs r3, #56 9942 mov fp, #8 9943 strb r3, [r5, #4] 9944 movs r3, #57 9945 strb r3, [r5, #5] 9946 movs r3, #58 9947 strb r3, [r5, #6] 9948 movs r3, #59 9949 strb r3, [r5, #7] 9950 b .L1470 9951.L1364: 9952 cmp r0, #6 9953 bne .L1365 9954 movs r3, #14 9955 mov fp, #12 9956 strb r3, [r5, #4] 9957 movs r3, #15 9958 strb r3, [r5, #5] 9959 movs r3, #16 9960 strb r3, [r5, #6] 9961 movs r3, #17 9962 strb r3, [r5, #7] 9963 b .L1470 9964.L1365: 9965 cmp r0, #7 9966 bne .L1366 9967 movs r3, #176 9968 mov fp, #12 9969 strb r3, [r5, #4] 9970 movs r3, #177 9971 strb r3, [r5, #5] 9972 movs r3, #178 9973 strb r3, [r5, #6] 9974 movs r3, #179 9975 strb r3, [r5, #7] 9976 movs r3, #180 9977 strb r3, [r5, #8] 9978 movs r3, #181 9979 strb r3, [r5, #9] 9980 movs r3, #182 9981 strb r3, [r5, #10] 9982 movs r3, #183 9983 strb r3, [r5, #11] 9984 movs r3, #212 9985 strb r3, [r5, #12] 9986 movs r3, #213 9987 strb r3, [r5, #13] 9988 mov r10, #10 9989 b .L1361 9990.L1366: 9991 cmp r0, #8 9992 mov r3, #7 9993 bne .L1425 9994 strb r3, [r5, #5] 9995 movs r3, #9 9996 movs r2, #6 9997 strb r3, [r5, #7] 9998 movs r3, #10 9999 strb r2, [r5, #4] 10000 strb r0, [r5, #6] 10001 mov fp, #50 10002 strb r3, [r5, #8] 10003 mov r10, #5 10004 b .L1361 10005.L1425: 10006 mov fp, r3 10007 b .L1470 10008.L1374: 10009 ldr r2, .L1477+12 10010 movs r6, #0 10011 ldrb r2, [r2, r3] @ zero_extendqisi2 10012 ldr r3, .L1477+16 10013 ldr r7, [r3, r2, lsl #3] 10014 add r4, r5, r2, lsl #6 10015 add r3, r3, r2, lsl #3 10016 movs r2, #55 10017 adds r4, r4, #20 10018 ldrb r3, [r3, #4] @ zero_extendqisi2 10019 add r7, r7, r3, lsl #8 10020 addw r3, r7, #2056 10021.L1369: 10022 adds r1, r5, r6 10023 str r2, [r3] 10024 ldrb r1, [r1, #4] @ zero_extendqisi2 10025 movs r0, #80 10026 str r2, [sp, #4] 10027 str r3, [sp] 10028 str r1, [r7, #2052] 10029 bl udelay 10030 ldr r1, [r7, #2048] 10031 ldr r3, [sp] 10032 ldr r2, [sp, #4] 10033 strb r1, [r4, r6] 10034 adds r6, r6, #1 10035 uxtb r1, r6 10036 cmp r10, r1 10037 bhi .L1369 10038 ldr r7, .L1477+4 10039 mov r1, r4 10040 movs r2, #0 10041.L1372: 10042 movs r3, #1 10043 adds r6, r7, r2 10044.L1371: 10045 ldrb r0, [r6, r3, lsl #2] @ zero_extendqisi2 10046 ldrb ip, [r1] @ zero_extendqisi2 10047 add r0, r0, ip 10048 strb r0, [r1, r3, lsl #3] 10049 adds r3, r3, #1 10050 cmp r3, #7 10051 bne .L1371 10052 adds r2, r2, #1 10053 adds r1, r1, #1 10054 cmp r2, #4 10055 bne .L1372 10056 movs r3, #0 10057 add r8, r8, #1 10058 strb r3, [r4, #16] 10059 strb r3, [r4, #24] 10060 strb r3, [r4, #32] 10061 strb r3, [r4, #40] 10062 strb r3, [r4, #48] 10063 strb r3, [r4, #41] 10064 strb r3, [r4, #49] 10065 b .L1368 10066.L1367: 10067 subs r3, r4, #3 10068 cmp r3, #5 10069 bhi .L1375 10070 smulbb r3, fp, r10 10071 asrs r2, r3, #1 10072 lsls r3, r3, #4 10073 str r3, [sp, #48] 10074 lsls r3, r2, #2 10075 str r2, [sp, #12] 10076 str r3, [sp, #44] 10077 lsls r3, r2, #1 10078 str r3, [sp, #32] 10079 movs r3, #0 10080.L1476: 10081 str r3, [sp, #28] 10082 ldrb r3, [sp, #28] @ zero_extendqisi2 10083 str r3, [sp, #16] 10084 ldr r3, .L1477+8 10085 ldr r2, [sp, #16] 10086 ldrb r3, [r3] @ zero_extendqisi2 10087 cmp r3, r2 10088 bls .L1375 10089 ldr r2, [sp, #16] 10090 ldr r3, .L1477+12 10091 ldrb r8, [r3, r2] @ zero_extendqisi2 10092 ldr r3, .L1477+16 10093 mov r0, r8 10094 ldr r2, [r3, r8, lsl #3] 10095 add r3, r3, r8, lsl #3 10096 ldrb r3, [r3, #4] @ zero_extendqisi2 10097 str r2, [sp] 10098 str r3, [sp, #4] 10099 mov r3, r2 10100 ldr r2, [sp, #4] 10101 add r5, r3, r2, lsl #8 10102 movs r3, #255 10103 str r3, [r5, #2056] 10104 bl NandcWaitFlashReady 10105 cmp r4, #7 10106 bne .L1377 10107 ldr r3, .L1477 10108 movs r0, #160 10109 mla r0, r0, r8, r3 10110 add r3, r0, #28 10111.L1472: 10112 ldr r2, [sp, #4] 10113 cmp r4, #4 10114 str r3, [sp, #20] 10115 ldr r3, [sp] 10116 add r3, r3, r2, lsl #8 10117 mov r2, #54 10118 str r2, [r3, #2056] 10119 bne .L1380 10120 movs r2, #255 10121 str r2, [r3, #2052] 10122 movs r2, #64 10123 str r2, [r3, #2048] 10124 movs r2, #204 10125.L1473: 10126 str r2, [r3, #2052] 10127 movs r2, #77 10128 b .L1474 10129.L1377: 10130 cmp r4, #8 10131 beq .L1379 10132 ldr r0, .L1477 10133 add r0, r0, r8, lsl #6 10134 add r3, r0, #20 10135 b .L1472 10136.L1478: 10137 .align 2 10138.L1477: 10139 .word .LANCHOR20 10140 .word .LANCHOR204 10141 .word .LANCHOR26 10142 .word .LANCHOR27 10143 .word .LANCHOR0 10144.L1380: 10145 subs r2, r4, #5 10146 cmp r2, #1 10147 bhi .L1382 10148 ldr r2, .L1479 10149 ldrb r2, [r2, #4] @ zero_extendqisi2 10150 str r2, [r3, #2052] 10151 movs r2, #82 10152.L1474: 10153 str r2, [r3, #2048] 10154.L1381: 10155 ldr r2, [sp, #4] 10156 cmp r4, #6 10157 ldr r3, [sp] 10158 add r3, r3, r2, lsl #8 10159 mov r2, #22 10160 str r2, [r3, #2056] 10161 mov r2, #23 10162 str r2, [r3, #2056] 10163 mov r2, #4 10164 str r2, [r3, #2056] 10165 mov r2, #25 10166 str r2, [r3, #2056] 10167 mov r2, #0 10168 str r2, [r3, #2056] 10169 str r2, [r3, #2052] 10170 str r2, [r3, #2052] 10171 it eq 10172 moveq r2, #31 10173 str r2, [r3, #2052] 10174 movs r2, #2 10175 str r2, [r3, #2052] 10176 movs r2, #0 10177 str r2, [r3, #2052] 10178.L1424: 10179 ldr r2, [sp, #4] 10180 mov r0, r8 10181 ldr r3, [sp] 10182 add r3, r3, r2, lsl #8 10183 movs r2, #48 10184 str r2, [r3, #2056] 10185 bl NandcWaitFlashReady 10186 subs r3, r4, #5 10187 cmp r3, #1 10188 str r3, [sp, #36] 10189 bls .L1427 10190 cmp r4, #8 10191 beq .L1427 10192 cmp r4, #7 10193 ite eq 10194 moveq r2, #32 10195 movne r2, #2 10196.L1385: 10197 ldr r3, .L1479+4 10198 subs r2, r2, #1 10199 ldm sp, {r5, r6} 10200 ldr r3, [r3] 10201 add r5, r5, r6, lsl #8 10202 subs r1, r3, #1 10203 uxtab r2, r3, r2 10204 mov r0, r1 10205 str r5, [sp, #8] 10206.L1386: 10207 ldr r5, [sp, #8] 10208 ldr r5, [r5, #2048] 10209 strb r5, [r0, #1]! 10210 cmp r0, r2 10211 bne .L1386 10212 cmp r4, #8 10213 bne .L1387 10214 movs r2, #0 10215.L1389: 10216 ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 10217 uxtb r1, r2 10218 cmp r0, #50 10219 beq .L1388 10220 add r0, r3, r2, lsl #2 10221 ldrb r0, [r0, #1] @ zero_extendqisi2 10222 cmp r0, #5 10223 beq .L1388 10224 adds r2, r2, #1 10225 cmp r2, #8 10226 bne .L1389 10227.L1390: 10228 movs r1, #0 10229 ldr r0, .L1479+8 10230 bl printf 10231.L1392: 10232 b .L1392 10233.L1382: 10234 cmp r4, #7 10235 bne .L1381 10236 movs r2, #174 10237 str r2, [r3, #2052] 10238 movs r2, #0 10239 str r2, [r3, #2048] 10240 movs r2, #176 10241 b .L1473 10242.L1427: 10243 movs r2, #16 10244 b .L1385 10245.L1388: 10246 cmp r1, #6 10247 bhi .L1390 10248.L1391: 10249 ldr r3, .L1479+4 10250 ldr r2, [r3] 10251 mov r3, r2 10252.L1401: 10253 ldr r0, [sp, #48] 10254 subs r1, r3, r2 10255 cmp r1, r0 10256 blt .L1402 10257 ldr r3, .L1479+4 10258 ldr r1, [r3] 10259 ldr r3, [sp, #32] 10260 adds r0, r1, r3 10261 movs r3, #8 10262.L1404: 10263 mov r6, r0 10264 movs r5, #0 10265.L1403: 10266 ldrh r7, [r6] 10267 adds r5, r5, #1 10268 mvns r7, r7 10269 strh r7, [r6], #2 @ movhi 10270 ldr r7, [sp, #12] 10271 cmp r7, r5 10272 bgt .L1403 10273 ldr r5, [sp, #44] 10274 subs r3, r3, #1 10275 add r0, r0, r5 10276 bne .L1404 10277 mov r7, r1 10278 str r3, [sp, #24] 10279.L1410: 10280 movs r5, #0 10281 mov r0, r5 10282.L1409: 10283 movs r3, #1 10284 mov ip, #0 10285 lsl r6, r3, r0 10286 movs r3, #16 10287 str r3, [sp, #40] 10288 mov lr, r6 10289 mov r6, r7 10290.L1407: 10291 ldrh r3, [r6] 10292 str r3, [sp, #52] 10293 ldr r3, [sp, #52] 10294 bics r3, lr, r3 10295 ldr r3, [sp, #32] 10296 it eq 10297 addeq ip, ip, #1 10298 add r6, r6, r3 10299 ldr r3, [sp, #40] 10300 subs r3, r3, #1 10301 str r3, [sp, #40] 10302 bne .L1407 10303 cmp ip, #8 10304 add r0, r0, #1 10305 ittt hi 10306 movhi r3, lr 10307 orrhi r5, r5, r3 10308 uxthhi r5, r5 10309 cmp r0, #16 10310 bne .L1409 10311 ldr r3, [sp, #24] 10312 strh r5, [r7], #2 @ movhi 10313 adds r3, r3, #1 10314 str r3, [sp, #24] 10315 ldr r0, [sp, #24] 10316 ldr r3, [sp, #12] 10317 cmp r3, r0 10318 bgt .L1410 10319 subs r0, r1, #4 10320 add r5, r1, #28 10321 movs r3, #0 10322.L1413: 10323 ldr r6, [r0, #4]! 10324 cbnz r6, .L1412 10325 adds r3, r3, #1 10326.L1412: 10327 cmp r5, r0 10328 bne .L1413 10329 cmp r3, #7 10330 ble .L1414 10331 ldr r0, .L1479+12 10332 mov r3, #1024 10333 movs r2, #1 10334 bl rknand_print_hex 10335 movs r1, #0 10336 ldr r0, .L1479+8 10337 bl printf 10338.L1415: 10339 b .L1415 10340.L1387: 10341 cmp r4, #7 10342 bne .L1393 10343 movs r2, #0 10344.L1395: 10345 ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2 10346 uxtb r1, r2 10347 cmp r0, #12 10348 beq .L1394 10349 add r0, r3, r2, lsl #2 10350 ldrb r0, [r0, #1] @ zero_extendqisi2 10351 cmp r0, #10 10352 beq .L1394 10353 adds r2, r2, #1 10354 cmp r2, #8 10355 bne .L1395 10356.L1396: 10357 movs r1, #0 10358 ldr r0, .L1479+8 10359 bl printf 10360.L1397: 10361 b .L1397 10362.L1394: 10363 cmp r1, #6 10364 bls .L1391 10365 b .L1396 10366.L1393: 10367 cmp r4, #6 10368 bne .L1391 10369 adds r3, r3, #7 10370.L1398: 10371 ldrb r2, [r1, #1]! @ zero_extendqisi2 10372 cmp r2, #12 10373 beq .L1391 10374 ldrb r2, [r1, #8] @ zero_extendqisi2 10375 cmp r2, #4 10376 beq .L1391 10377 cmp r1, r3 10378 bne .L1398 10379 movs r1, #0 10380 ldr r0, .L1479+8 10381 bl printf 10382.L1400: 10383 b .L1400 10384.L1402: 10385 ldr r1, [sp, #8] 10386 ldr r1, [r1, #2048] 10387 strb r1, [r3], #1 10388 b .L1401 10389.L1414: 10390 cmp r4, #6 10391 beq .L1429 10392 cmp r4, #7 10393 beq .L1430 10394 cmp r4, #8 10395 ite eq 10396 moveq r6, #5 10397 movne r6, #8 10398.L1416: 10399 add r3, r10, #-1 10400 ldr r0, [sp, #20] 10401 uxtb r3, r3 10402 movs r5, #0 10403 adds r3, r3, #1 10404.L1417: 10405 mov ip, r0 10406 mov r1, r2 10407.L1418: 10408 ldrb r7, [r1], #1 @ zero_extendqisi2 10409 strb r7, [ip], #1 10410 subs r7, r1, r2 10411 uxtb r7, r7 10412 cmp r10, r7 10413 bhi .L1418 10414 adds r5, r5, #1 10415 add r2, r2, r3 10416 cmp fp, r5 10417 add r0, r0, r6 10418 bgt .L1417 10419 ldr r3, [sp] 10420 mov r0, r8 10421 ldr r2, [sp, #4] 10422 add r5, r3, r2, lsl #8 10423 movs r3, #255 10424 str r3, [r5, #2056] 10425 bl NandcWaitFlashReady 10426 ldr r3, [sp, #36] 10427 cmp r3, #1 10428 bhi .L1420 10429 movs r3, #54 10430 ldr r2, [sp, #8] 10431 str r3, [r5, #2056] 10432 mov r1, #-1 10433 ldr r3, .L1479 10434 ldr r0, [sp, #16] 10435 ldrb r3, [r3, #4] @ zero_extendqisi2 10436 str r3, [r2, #2052] 10437 movs r3, #0 10438 str r3, [r2, #2048] 10439 movs r3, #22 10440 str r3, [r5, #2056] 10441 bl FlashReadCmd 10442.L1421: 10443 mov r0, r8 10444 bl NandcWaitFlashReady 10445 ldr r3, [sp, #28] 10446 adds r3, r3, #1 10447 b .L1476 10448.L1429: 10449 movs r6, #4 10450 b .L1416 10451.L1430: 10452 movs r6, #10 10453 b .L1416 10454.L1420: 10455 cmp r4, #8 10456 ite eq 10457 moveq r3, #190 10458 movne r3, #56 10459 str r3, [r5, #2056] 10460 b .L1421 10461.L1379: 10462 movs r3, #120 10463 movs r2, #23 10464 str r3, [r5, #2056] 10465 movs r3, #0 10466 str r3, [r5, #2052] 10467 movs r1, #25 10468 str r3, [r5, #2052] 10469 str r3, [r5, #2052] 10470 str r2, [r5, #2056] 10471 movs r2, #4 10472 str r2, [r5, #2056] 10473 str r1, [r5, #2056] 10474 movs r1, #218 10475 str r1, [r5, #2056] 10476 movs r1, #21 10477 str r3, [r5, #2056] 10478 str r3, [r5, #2052] 10479 str r3, [r5, #2052] 10480 str r1, [r5, #2052] 10481 str r2, [r5, #2052] 10482 str r3, [r5, #2052] 10483 ldr r3, .L1479+16 10484 str r3, [sp, #20] 10485 b .L1424 10486.L1480: 10487 .align 2 10488.L1479: 10489 .word .LANCHOR20 10490 .word .LANCHOR154 10491 .word .LC22 10492 .word .LC23 10493 .word .LANCHOR20+28 10494 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault 10495 .section .text.FlashGetReadRetryDefault,"ax",%progbits 10496 .align 1 10497 .global FlashGetReadRetryDefault 10498 .syntax unified 10499 .thumb 10500 .thumb_func 10501 .fpu softvfp 10502 .type FlashGetReadRetryDefault, %function 10503FlashGetReadRetryDefault: 10504 @ args = 0, pretend = 0, frame = 0 10505 @ frame_needed = 0, uses_anonymous_args = 0 10506 @ link register save eliminated. 10507 mov r3, r0 10508 cbz r0, .L1481 10509 subs r2, r0, #1 10510 cmp r2, #7 10511 bhi .L1483 10512 b HynixGetReadRetryDefault 10513.L1483: 10514 cmp r0, #49 10515 bne .L1484 10516 ldr r0, .L1504 10517 movs r2, #64 10518 ldr r1, .L1504+4 10519 strb r3, [r0] 10520 movs r3, #4 10521 strb r3, [r0, #1] 10522 movs r3, #15 10523 strb r3, [r0, #2] 10524.L1502: 10525 adds r0, r0, #4 10526 b ftl_memcpy 10527.L1484: 10528 cmp r0, #33 10529 beq .L1485 10530 sub r2, r0, #65 10531 cmp r2, #1 10532 bhi .L1486 10533.L1485: 10534 ldr r0, .L1504 10535 strb r3, [r0] 10536 movs r3, #4 10537.L1503: 10538 strb r3, [r0, #1] 10539 movs r3, #7 10540 strb r3, [r0, #2] 10541 movs r2, #45 10542 ldr r1, .L1504+8 10543 b .L1502 10544.L1486: 10545 cmp r0, #34 10546 beq .L1487 10547 cmp r0, #67 10548 bne .L1488 10549.L1487: 10550 ldr r0, .L1504 10551 strb r3, [r0] 10552 movs r3, #5 10553 b .L1503 10554.L1488: 10555 cmp r0, #35 10556 beq .L1489 10557 cmp r0, #68 10558 bne .L1481 10559.L1489: 10560 ldr r0, .L1504 10561 movs r2, #95 10562 ldr r1, .L1504+12 10563 strb r3, [r0] 10564 movs r3, #5 10565 strb r3, [r0, #1] 10566 movs r3, #17 10567 strb r3, [r0, #2] 10568 b .L1502 10569.L1481: 10570 bx lr 10571.L1505: 10572 .align 2 10573.L1504: 10574 .word .LANCHOR20 10575 .word .LANCHOR14 10576 .word .LANCHOR9 10577 .word .LANCHOR11 10578 .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault 10579 .section .text.FlashInit,"ax",%progbits 10580 .align 1 10581 .global FlashInit 10582 .syntax unified 10583 .thumb 10584 .thumb_func 10585 .fpu softvfp 10586 .type FlashInit, %function 10587FlashInit: 10588 @ args = 0, pretend = 0, frame = 16 10589 @ frame_needed = 0, uses_anonymous_args = 0 10590 push {r4, r5, r6, r7, r8, r10, fp, lr} 10591 mov r4, r0 10592 sub sp, sp, #32 10593 mov r0, #32768 10594 movs r5, #0 10595 bl ftl_malloc 10596 ldr r3, .L1614 10597 ldr fp, .L1614+124 10598 ldr r10, .L1614+128 10599 str r0, [r3] 10600 mov r0, #32768 10601 bl ftl_malloc 10602 ldr r3, .L1614+4 10603 ldr r8, .L1614+132 10604 ldr r6, .L1614+8 10605 str r0, [r3] 10606 mov r0, #4096 10607 bl ftl_malloc 10608 ldr r3, .L1614+12 10609 ldr r7, .L1614+16 10610 str r0, [r3] 10611 mov r0, #32768 10612 bl ftl_malloc 10613 ldr r3, .L1614+20 10614 str r0, [r3] 10615 mov r0, #4096 10616 bl ftl_malloc 10617 ldr r3, .L1614+24 10618 ldr r2, .L1614+28 10619 strb r5, [r6] 10620 str r0, [r3] 10621 movs r3, #50 10622 strb r3, [r2] 10623 movs r2, #128 10624 strb r3, [fp] 10625 mov r0, r4 10626 ldr r3, .L1614+32 10627 ldr r4, .L1614+36 10628 strb r5, [r10] 10629 str r5, [r3] 10630 ldr r3, .L1614+40 10631 strb r5, [r8] 10632 str r2, [r3] 10633 ldr r3, .L1614+44 10634 str r5, [r3] 10635 movs r3, #60 10636 strb r3, [r7] 10637 bl NandcInit 10638 str fp, [sp, #24] 10639 str r10, [sp, #20] 10640 str r8, [sp, #28] 10641.L1512: 10642 ldr r3, .L1614+48 10643 uxtb r8, r5 10644 mov r0, r8 10645 ldr fp, [r3, r5, lsl #3] 10646 add r2, r3, r5, lsl #3 10647 ldrb r10, [r2, #4] @ zero_extendqisi2 10648 bl FlashReset 10649 mov r0, r8 10650 bl NandcFlashCs 10651 add fp, fp, r10, lsl #8 10652 movs r2, #144 10653 mov r10, #0 10654 str r2, [fp, #2056] 10655 movs r0, #200 10656 str r10, [fp, #2052] 10657 bl udelay 10658 ldr r1, [fp, #2048] 10659 uxtb r1, r1 10660 strb r1, [r4] 10661 cmp r1, #44 10662 ldr r0, [fp, #2048] 10663 strb r0, [r4, #1] 10664 ldr r0, [fp, #2048] 10665 strb r0, [r4, #2] 10666 ldr r0, [fp, #2048] 10667 strb r0, [r4, #3] 10668 ldr r0, [fp, #2048] 10669 strb r0, [r4, #4] 10670 ldr r0, [fp, #2048] 10671 strb r0, [r4, #5] 10672 bne .L1507 10673 movs r1, #239 10674 movs r0, #200 10675 str r1, [fp, #2056] 10676 movs r1, #1 10677 str r1, [fp, #2052] 10678 bl udelay 10679 movs r1, #4 10680 str r1, [fp, #2048] 10681 str r10, [fp, #2048] 10682 str r10, [fp, #2048] 10683 str r10, [fp, #2048] 10684.L1507: 10685 mov r0, r8 10686 bl NandcFlashDeCs 10687 ldrb r2, [r4] @ zero_extendqisi2 10688 subs r3, r2, #1 10689 uxtb r3, r3 10690 cmp r3, #253 10691 bhi .L1508 10692 ldrb r1, [r4, #5] @ zero_extendqisi2 10693 ldrb r3, [r4, #1] @ zero_extendqisi2 10694 ldr r0, .L1614+52 10695 str r1, [sp, #12] 10696 ldrb r1, [r4, #4] @ zero_extendqisi2 10697 str r1, [sp, #8] 10698 ldrb r1, [r4, #3] @ zero_extendqisi2 10699 str r1, [sp, #4] 10700 ldrb r1, [r4, #2] @ zero_extendqisi2 10701 str r1, [sp] 10702 adds r1, r5, #1 10703 bl printf 10704.L1508: 10705 cbnz r5, .L1509 10706 ldr r2, .L1614+36 10707 ldrb r3, [r2] @ zero_extendqisi2 10708 subs r3, r3, #1 10709 uxtb r3, r3 10710 cmp r3, #253 10711 bhi .L1560 10712 ldrb r3, [r2, #1] @ zero_extendqisi2 10713 cmp r3, #255 10714 beq .L1560 10715.L1509: 10716 ldrb r3, [r4] @ zero_extendqisi2 10717 adds r5, r5, #1 10718 adds r4, r4, #8 10719 cmp r3, #181 10720 itt eq 10721 moveq r3, #44 10722 strbeq r3, [r4, #-8] 10723 cmp r5, #4 10724 bne .L1512 10725 ldr r3, .L1614+36 10726 ldrb r2, [r3] @ zero_extendqisi2 10727 mov r10, r3 10728 cmp r2, #173 10729 beq .L1513 10730 ldr r3, .L1614+56 10731 ldr r0, [r3] 10732 bl NandcSetDdrMode 10733.L1513: 10734 ldr r5, .L1614+60 10735 mov r2, #852 10736 movs r1, #0 10737 ldr r0, .L1614+64 10738 bl ftl_memset 10739 movs r2, #0 10740 ldr r4, .L1614+68 10741 strb r2, [r5] 10742 mov fp, r5 10743 ldr r2, .L1614+72 10744 ldr r3, .L1614+76 10745 ldr r1, [r2] 10746 ldr r2, .L1614+80 10747 str r3, [r4] 10748 cmp r1, r2 10749 mov r8, r2 10750 bne .L1514 10751 ldrb r3, [r3, #19] @ zero_extendqisi2 10752 cmp r3, #50 10753 ittt ne 10754 ldrne r3, .L1614+84 10755 movne r2, #1 10756 strne r2, [r3] 10757.L1514: 10758 ldrb r3, [r10, #1] @ zero_extendqisi2 10759 cmp r3, #161 10760 beq .L1515 10761 cmp r3, #241 10762 beq .L1515 10763 cmp r3, #218 10764 beq .L1515 10765 and r2, r3, #253 10766 cmp r2, #209 10767 beq .L1515 10768 cmp r3, #220 10769 bne .L1516 10770 ldrb r2, [r10, #3] @ zero_extendqisi2 10771 cmp r2, #149 10772 bne .L1516 10773.L1515: 10774 ldr ip, .L1614+36 10775 movs r0, #1 10776 ldr r2, [sp, #20] 10777 ldr r5, [sp, #24] 10778 ldrb lr, [ip] @ zero_extendqisi2 10779 strb r0, [r2] 10780 movs r2, #16 10781 strb r2, [r5] 10782 strb r2, [r7] 10783 cmp lr, #152 10784 ldr r2, .L1614+88 10785 strb lr, [r2, #1] 10786 strb r3, [r2, #2] 10787 bne .L1518 10788 ldrsb ip, [ip, #4] 10789 cmp ip, #0 10790 blt .L1519 10791 movs r0, #24 10792 strb r0, [r7] 10793.L1518: 10794 cmp r1, r8 10795 beq .L1521 10796 movw r0, #2049 10797 cmp r1, r0 10798 bne .L1522 10799.L1521: 10800 movs r1, #16 10801 strb r1, [r7] 10802.L1522: 10803 cmp r3, #218 10804 bne .L1523 10805 mov r1, #2048 10806.L1610: 10807 strh r1, [r2, #14] @ movhi 10808 strb r3, [r2, #2] 10809.L1524: 10810 movs r2, #32 10811 ldr r1, .L1614+92 10812 ldr r0, .L1614+96 10813 bl ftl_memcpy 10814 movs r2, #32 10815 ldr r1, .L1614+88 10816 ldr r0, .L1614+76 10817 bl ftl_memcpy 10818.L1516: 10819 ldr r3, [sp, #20] 10820 ldr r10, .L1614+136 10821 ldrb r3, [r3] @ zero_extendqisi2 10822 cmp r3, #0 10823 bne .L1527 10824 bl FlashLoadPhyInfoInRam 10825 cbnz r0, .L1529 10826 ldr r3, [r4] 10827 ldr r7, .L1614+100 10828 ldrh r3, [r3, #16] 10829 lsrs r3, r3, #8 10830 lsls r1, r3, #31 10831 and r0, r3, #7 10832 strb r0, [r7] 10833 bmi .L1529 10834 movs r3, #1 10835 strb r3, [r6] 10836 bl FlashSetInterfaceMode 10837 ldrb r0, [r7] @ zero_extendqisi2 10838 bl NandcSetMode 10839.L1529: 10840 ldr r3, [r4] 10841 ldrb r3, [r3, #26] @ zero_extendqisi2 10842 strb r3, [r10] 10843 bl FlashLoadPhyInfo 10844 cmp r0, #0 10845 beq .L1527 10846 ldr r3, [r4] 10847 ldr r0, .L1614+104 10848 ldrh r1, [r3, #14] 10849 bl printf 10850 bl FlashLoadPhyInfoInRam 10851 adds r2, r0, #1 10852 beq .L1506 10853 bl FlashDieInfoInit 10854 ldr r3, [r4] 10855 ldrb r0, [r3, #19] @ zero_extendqisi2 10856 bl FlashGetReadRetryDefault 10857 ldr r3, [r4] 10858 ldr r2, .L1614+108 10859 ldrb r1, [r3, #9] @ zero_extendqisi2 10860 ldrh r2, [r2] 10861 addw r2, r2, #4095 10862 cmp r1, r2, asr #12 10863 blt .L1532 10864 ldrh r2, [r3, #14] 10865 adds r2, r2, #255 10866 cmp r1, r2, asr #8 10867 bge .L1533 10868.L1532: 10869 ldrh r2, [r3, #14] 10870 bic r2, r2, #255 10871 strh r2, [r3, #14] @ movhi 10872.L1533: 10873 ldr r3, .L1614+100 10874 ldrb r3, [r3] @ zero_extendqisi2 10875 tst r3, #6 10876 beq .L1534 10877 bl FlashSavePhyInfo 10878 movs r0, #0 10879 bl flash_enter_slc_mode 10880 ldr r3, .L1614+112 10881 movs r0, #0 10882 ldr r1, [r3] 10883 bl FlashDdrParaScan 10884 movs r0, #0 10885 bl flash_exit_slc_mode 10886.L1534: 10887 bl FlashSavePhyInfo 10888.L1527: 10889 ldr r7, [r4] 10890 ldr r5, .L1614+116 10891 ldrh r2, [r7, #16] 10892 ldrb r3, [r7, #26] @ zero_extendqisi2 10893 ldrh r0, [r7, #10] 10894 ubfx r1, r2, #3, #1 10895 strb r3, [r10] 10896 ubfx r3, r2, #7, #1 10897 strb r3, [fp] 10898 mov fp, #0 10899 ldr r3, .L1614+120 10900 str fp, [r5] 10901 strb r1, [r3] 10902 b .L1615 10903.L1616: 10904 .align 2 10905.L1614: 10906 .word .LANCHOR154 10907 .word .LANCHOR149 10908 .word .LANCHOR30 10909 .word .LANCHOR205 10910 .word .LANCHOR158 10911 .word .LANCHOR206 10912 .word .LANCHOR207 10913 .word .LANCHOR157 10914 .word .LANCHOR156 10915 .word .LANCHOR22 10916 .word .LANCHOR4 10917 .word .LANCHOR144 10918 .word .LANCHOR0 10919 .word .LC24 10920 .word .LANCHOR160 10921 .word .LANCHOR6 10922 .word .LANCHOR20 10923 .word .LANCHOR7 10924 .word .LANCHOR122 10925 .word .LANCHOR31 10926 .word 1446522928 10927 .word .LANCHOR29 10928 .word .LANCHOR209 10929 .word .LANCHOR152+32 10930 .word .LANCHOR8 10931 .word .LANCHOR25 10932 .word .LC25 10933 .word .LANCHOR125 10934 .word .LANCHOR155 10935 .word .LANCHOR145 10936 .word .LANCHOR210 10937 .word .LANCHOR3 10938 .word .LANCHOR2 10939 .word .LANCHOR208 10940 .word .LANCHOR16 10941.L1615: 10942 ubfx r1, r2, #4, #1 10943 ldr r3, .L1617 10944 ubfx r2, r2, #8, #3 10945 strb r1, [r3] 10946 ldr r3, .L1617+4 10947 ldrb r1, [r7, #12] @ zero_extendqisi2 10948 strb r2, [r3] 10949 str r3, [sp, #28] 10950 bl __aeabi_idiv 10951 mov r1, r0 10952 ldrb r0, [r7, #18] @ zero_extendqisi2 10953 bl BuildFlashLsbPageTable 10954 bl FlashDieInfoInit 10955 ldr r2, [r4] 10956 mov ip, r5 10957 ldr r3, [sp, #28] 10958 ldrh r1, [r2, #16] 10959 mov r7, r3 10960 tst r1, #64 10961 beq .L1536 10962 ldrb r0, [r2, #19] @ zero_extendqisi2 10963 ldr r3, .L1617+8 10964 ldr r1, .L1617+12 10965 strb r0, [r3] 10966 ldrb r2, [r1, #1] @ zero_extendqisi2 10967 ldr r3, .L1617+16 10968 ldrb r1, [r1, #2] @ zero_extendqisi2 10969 strb r2, [r3] 10970 ldr r2, .L1617+20 10971 strb r1, [r2] 10972 subs r1, r0, #1 10973 cmp r1, #7 10974 mov r1, r2 10975 bhi .L1537 10976 ldr r3, .L1617+24 10977 str r3, [r5] 10978 subs r3, r0, #5 10979 cmp r3, #1 10980 bls .L1538 10981 cmp r0, #8 10982 bne .L1539 10983.L1538: 10984 ldr r3, .L1617+28 10985 movs r2, #1 10986 str r2, [r3] 10987.L1539: 10988 cmp r0, #7 10989 ldr r3, .L1617+32 10990 beq .L1540 10991 sub r2, r3, #8 10992 cmp r0, #8 10993 it ne 10994 movne r3, r2 10995.L1540: 10996 subs r1, r3, #1 10997 movs r2, #0 10998 adds r3, r3, #31 10999.L1542: 11000 ldrsb r5, [r1, #1]! 11001 cbnz r5, .L1541 11002 adds r2, r2, #1 11003.L1541: 11004 cmp r3, r1 11005 bne .L1542 11006 cmp r2, #27 11007 bls .L1536 11008 bl FlashGetReadRetryDefault 11009 bl FlashSavePhyInfo 11010.L1536: 11011 ldr r3, .L1617+36 11012 ldr r3, [r3] 11013 cmp r3, r8 11014 bne .L1554 11015 ldrb r3, [r10] @ zero_extendqisi2 11016 cbz r3, .L1554 11017 ldr r3, .L1617+40 11018 movs r2, #0 11019 ldr r3, [r3] 11020 strb r2, [r3, #18] 11021.L1554: 11022 ldr r3, .L1617+44 11023 ldrb r3, [r3] @ zero_extendqisi2 11024 cmp r3, #44 11025 bne .L1555 11026 ldrb r3, [r6] @ zero_extendqisi2 11027 cbz r3, .L1555 11028 movs r3, #0 11029 movs r0, #1 11030 strb r3, [r6] 11031 bl FlashSetInterfaceMode 11032 movs r0, #1 11033 bl NandcSetMode 11034.L1555: 11035 ldrb r3, [r7] @ zero_extendqisi2 11036 tst r3, #6 11037 beq .L1556 11038 ldrb r2, [r6] @ zero_extendqisi2 11039 cbnz r2, .L1557 11040 lsls r3, r3, #31 11041 bmi .L1556 11042.L1557: 11043 movs r0, #0 11044 bl flash_enter_slc_mode 11045 ldr r3, .L1617+48 11046 movs r0, #0 11047 ldr r1, [r3] 11048 bl FlashDdrParaScan 11049 movs r0, #0 11050 bl flash_exit_slc_mode 11051.L1556: 11052 ldr r3, [r4] 11053 movs r6, #16 11054 ldrb r0, [r3, #20] @ zero_extendqisi2 11055 bl FlashBchSel 11056 ldr r0, .L1617+52 11057 bl FlashReadIdbDataRaw 11058 ldr r7, [r4] 11059 ldr r3, [sp, #24] 11060 ldr r4, .L1617+56 11061 ldrb r1, [r7, #12] @ zero_extendqisi2 11062 strb r6, [r3] 11063 ldrh r5, [r7, #10] 11064 strh r1, [r4, #8] @ movhi 11065 ldrb r3, [r7, #7] @ zero_extendqisi2 11066 ldrh r8, [r7, #14] 11067 mov r0, r5 11068 str r3, [r4, #4] 11069 ldr r3, .L1617+44 11070 ldrb r2, [r3, #1] @ zero_extendqisi2 11071 lsl r3, r2, r6 11072 orr r3, r3, r2, lsl #8 11073 ldr r2, .L1617+44 11074 ldrb r2, [r2] @ zero_extendqisi2 11075 orrs r3, r3, r2 11076 ldr r2, .L1617+44 11077 ldrb r2, [r2, #3] @ zero_extendqisi2 11078 orr r3, r3, r2, lsl #24 11079 str r3, [r4] 11080 ldr r3, .L1617+60 11081 ldrb r3, [r3] @ zero_extendqisi2 11082 strh r3, [r4, #10] @ movhi 11083 ldrb r3, [r7, #13] @ zero_extendqisi2 11084 strh r5, [r4, #16] @ movhi 11085 strh r8, [r4, #14] @ movhi 11086 strh r3, [r4, #12] @ movhi 11087 bl __aeabi_idiv 11088 mov r2, #512 11089 strh r0, [r4, #18] @ movhi 11090 ldrb r3, [r7, #9] @ zero_extendqisi2 11091 strh r2, [r4, #24] @ movhi 11092 ldr r2, [sp, #20] 11093 strh r3, [r4, #20] @ movhi 11094 smulbb r5, r5, r3 11095 strh r6, [r4, #26] @ movhi 11096 ldrb r2, [r2] @ zero_extendqisi2 11097 uxth r5, r5 11098 cmp r2, #1 11099 strh r5, [r4, #22] @ movhi 11100 bne .L1558 11101 lsls r3, r3, #1 11102 lsr r2, r8, #1 11103 lsls r5, r5, #1 11104 strh r3, [r4, #20] @ movhi 11105 movs r3, #8 11106 strh r2, [r4, #14] @ movhi 11107 strh r5, [r4, #22] @ movhi 11108 strh r3, [r4, #26] @ movhi 11109.L1558: 11110 ldrb r0, [r7, #20] @ zero_extendqisi2 11111 bl FlashBchSel 11112 movs r0, #0 11113.L1506: 11114 add sp, sp, #32 11115 @ sp needed 11116 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11117.L1523: 11118 cmp r3, #220 11119 bne .L1525 11120 mov r1, #4096 11121 b .L1610 11122.L1525: 11123 cmp r3, #211 11124 itttt eq 11125 moveq r3, #4096 11126 strheq r3, [r2, #14] @ movhi 11127 moveq r3, #2 11128 strbeq r3, [r2, #13] 11129 b .L1524 11130.L1537: 11131 sub lr, r0, #17 11132 cmp lr, #2 11133 bhi .L1544 11134 ldr r3, .L1617+64 11135 cmp r0, #19 11136 str r3, [r5] 11137 ite ne 11138 movne r3, #7 11139 moveq r3, #15 11140 strb r3, [r2] 11141 b .L1536 11142.L1544: 11143 cmp r0, #33 11144 beq .L1546 11145 sub r2, r0, #65 11146 cmp r2, #1 11147 bhi .L1547 11148.L1546: 11149 ldr r2, .L1617+68 11150 str r2, [ip] 11151 movs r2, #4 11152 strb r2, [r3] 11153 movs r3, #7 11154 strb r3, [r1] 11155 b .L1536 11156.L1547: 11157 sub r2, r0, #67 11158 uxtb r2, r2 11159 cmp r2, #1 11160 bls .L1548 11161 sub r1, r0, #34 11162 cmp r1, #1 11163 bhi .L1549 11164.L1548: 11165 ldr r1, .L1617+72 11166 cmp r0, #35 11167 ldr r5, .L1617+68 11168 str r5, [r1] 11169 ldr r1, .L1617+20 11170 beq .L1550 11171 cmp r0, #68 11172 beq .L1550 11173 movs r0, #7 11174.L1611: 11175 cmp r2, #1 11176 strb r0, [r1] 11177 ite ls 11178 movls r2, #4 11179 movhi r2, #5 11180 strb r2, [r3] 11181 b .L1536 11182.L1550: 11183 movs r0, #17 11184 b .L1611 11185.L1549: 11186 cmp r0, #49 11187 bne .L1553 11188 ldr r3, .L1617+76 11189 str r3, [r5] 11190 b .L1536 11191.L1553: 11192 cmp r0, #50 11193 itttt eq 11194 ldreq r3, .L1617+80 11195 streq r3, [r5] 11196 ldreq r3, .L1617+84 11197 streq fp, [r3] 11198 b .L1536 11199.L1560: 11200 mvn r0, #1 11201 b .L1506 11202.L1519: 11203 ldr r5, [sp, #28] 11204 strb r0, [r5] 11205 b .L1518 11206.L1618: 11207 .align 2 11208.L1617: 11209 .word .LANCHOR28 11210 .word .LANCHOR25 11211 .word .LANCHOR10 11212 .word .LANCHOR20 11213 .word .LANCHOR13 11214 .word .LANCHOR146 11215 .word HynixReadRetrial 11216 .word .LANCHOR36 11217 .word .LANCHOR20+28 11218 .word .LANCHOR122 11219 .word .LANCHOR7 11220 .word .LANCHOR22 11221 .word .LANCHOR155 11222 .word .LANCHOR150 11223 .word .LANCHOR15 11224 .word .LANCHOR26 11225 .word MicronReadRetrial 11226 .word ToshibaReadRetrial 11227 .word .LANCHOR145 11228 .word SamsungReadRetrial 11229 .word samsung_read_retrial 11230 .word .LANCHOR29 11231 .size FlashInit, .-FlashInit 11232 .section .text.FlashReadSlc2KPages,"ax",%progbits 11233 .align 1 11234 .global FlashReadSlc2KPages 11235 .syntax unified 11236 .thumb 11237 .thumb_func 11238 .fpu softvfp 11239 .type FlashReadSlc2KPages, %function 11240FlashReadSlc2KPages: 11241 @ args = 0, pretend = 0, frame = 16 11242 @ frame_needed = 0, uses_anonymous_args = 0 11243 ldr r3, .L1676 11244 push {r4, r5, r6, r7, r8, r10, fp, lr} 11245 mov r4, r0 11246 movs r7, #0 11247 sub sp, sp, #24 11248 ldrb fp, [r3, #9] @ zero_extendqisi2 11249 str r1, [sp, #8] 11250 str r2, [sp, #12] 11251.L1620: 11252 ldr r3, [sp, #8] 11253 cmp r7, r3 11254 bne .L1644 11255 movs r0, #0 11256 add sp, sp, #24 11257 @ sp needed 11258 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11259.L1644: 11260 ldr r3, [sp, #8] 11261 add r2, sp, #20 11262 ldr r1, [sp, #12] 11263 mov r0, r4 11264 subs r3, r3, r7 11265 uxtb r3, r3 11266 str r3, [sp] 11267 add r3, sp, #16 11268 bl LogAddr2PhyAddr 11269 ldr r2, .L1676+4 11270 ldr r3, [sp, #16] 11271 ldrb r2, [r2] @ zero_extendqisi2 11272 cmp r2, r3 11273 bhi .L1621 11274 mov r3, #-1 11275 str r3, [r4] 11276.L1622: 11277 adds r7, r7, #1 11278 adds r4, r4, #36 11279 b .L1620 11280.L1621: 11281 ldr r2, .L1676+8 11282 mov r8, #0 11283 ldrb r5, [r2, r3] @ zero_extendqisi2 11284 mov r0, r5 11285 bl NandcWaitFlashReady 11286 mov r0, r5 11287 bl NandcFlashCs 11288.L1623: 11289 ldr r1, [sp, #20] 11290 mov r0, r5 11291 bl FlashReadCmd 11292 mov r0, r5 11293 bl NandcWaitFlashReady 11294 ldr r3, [r4, #12] 11295 mov r2, fp 11296 movs r1, #0 11297 mov r0, r5 11298 str r3, [sp] 11299 ldr r3, [r4, #8] 11300 bl NandcXferData 11301 ldr r3, .L1676+12 11302 mov r6, r0 11303 ldrb r3, [r3] @ zero_extendqisi2 11304 cmp r3, #0 11305 bne .L1624 11306.L1627: 11307 adds r3, r6, #1 11308 beq .L1625 11309.L1626: 11310 cmp r8, #0 11311 beq .L1629 11312.L1628: 11313 mov r6, #256 11314.L1629: 11315 mov r8, #0 11316.L1630: 11317 ldr r3, .L1676+16 11318 mov r0, r5 11319 ldr r1, [sp, #20] 11320 ldr r3, [r3] 11321 add r1, r1, r3 11322 bl FlashReadCmd 11323 mov r0, r5 11324 bl NandcWaitFlashReady 11325 ldr r3, [r4, #8] 11326 cbz r3, .L1631 11327 add r3, r3, #2048 11328.L1631: 11329 ldr r2, [r4, #12] 11330 cbz r2, .L1632 11331 adds r2, r2, #8 11332.L1632: 11333 str r2, [sp] 11334 movs r1, #0 11335 mov r2, fp 11336 mov r0, r5 11337 bl NandcXferData 11338 ldr r3, .L1676+12 11339 mov r10, r0 11340 ldrb r2, [r3] @ zero_extendqisi2 11341 cmp r2, #0 11342 bne .L1633 11343.L1636: 11344 cmp r10, #-1 11345 beq .L1634 11346.L1635: 11347 cmp r8, #0 11348 beq .L1638 11349.L1637: 11350 mov r10, #256 11351.L1638: 11352 mov r0, r5 11353 bl NandcFlashDeCs 11354 ldr r2, .L1676+20 11355 cmp r6, r10 11356 it cc 11357 movcc r6, r10 11358 ldrb r2, [r2] @ zero_extendqisi2 11359 add r3, r2, r2, lsl #1 11360 cmp r6, r3, asr #2 11361 bhi .L1639 11362 movs r3, #0 11363.L1675: 11364 str r3, [r4] 11365 ldr r3, [r4, #12] 11366 cbz r3, .L1640 11367 ldr r1, [r3, #12] 11368 adds r1, r1, #1 11369 bne .L1640 11370 ldr r1, [r3, #8] 11371 adds r0, r1, #1 11372 bne .L1640 11373 ldr r3, [r3] 11374 adds r3, r3, #1 11375 it ne 11376 strne r1, [r4] 11377.L1640: 11378 ldr r3, [r4] 11379 adds r1, r3, #1 11380 bne .L1622 11381 ldr r1, [r4, #4] 11382 ldr r0, .L1676+24 11383 bl printf 11384 ldr r1, [r4, #8] 11385 cbz r1, .L1642 11386 movs r3, #8 11387 movs r2, #4 11388 ldr r0, .L1676+28 11389 bl rknand_print_hex 11390.L1642: 11391 ldr r1, [r4, #12] 11392 cmp r1, #0 11393 beq .L1622 11394 movs r3, #4 11395 ldr r0, .L1676+32 11396 mov r2, r3 11397 bl rknand_print_hex 11398 b .L1622 11399.L1624: 11400 mov r0, r5 11401 bl flash_read_ecc 11402 cmp r0, #5 11403 bls .L1627 11404 mov r6, #256 11405 b .L1626 11406.L1625: 11407 cmp r8, #10 11408 beq .L1628 11409 add r8, r8, #1 11410 b .L1623 11411.L1633: 11412 mov r0, r5 11413 bl flash_read_ecc 11414 cmp r0, #5 11415 bls .L1636 11416 mov r10, #256 11417 b .L1635 11418.L1634: 11419 cmp r8, #10 11420 beq .L1637 11421 add r8, r8, #1 11422 b .L1630 11423.L1639: 11424 mov r3, #256 11425 b .L1675 11426.L1677: 11427 .align 2 11428.L1676: 11429 .word .LANCHOR31 11430 .word .LANCHOR26 11431 .word .LANCHOR27 11432 .word .LANCHOR208 11433 .word .LANCHOR4 11434 .word .LANCHOR33 11435 .word .LC26 11436 .word .LC27 11437 .word .LC28 11438 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages 11439 .section .text.FlashReadPages,"ax",%progbits 11440 .align 1 11441 .global FlashReadPages 11442 .syntax unified 11443 .thumb 11444 .thumb_func 11445 .fpu softvfp 11446 .type FlashReadPages, %function 11447FlashReadPages: 11448 @ args = 0, pretend = 0, frame = 32 11449 @ frame_needed = 0, uses_anonymous_args = 0 11450 ldr r3, .L1769 11451 push {r4, r5, r6, r7, r8, r10, fp, lr} 11452 sub sp, sp, #40 11453 mov r10, r0 11454 str r1, [sp, #24] 11455 ldrb r3, [r3] @ zero_extendqisi2 11456 str r2, [sp, #12] 11457 cbnz r3, .L1679 11458 ldr r2, .L1769+4 11459 mov r8, r3 11460 str r3, [sp, #8] 11461 ldrb r2, [r2, #9] @ zero_extendqisi2 11462 str r2, [sp, #20] 11463 ldr r2, .L1769+8 11464 ldrb r2, [r2] @ zero_extendqisi2 11465 str r2, [sp, #28] 11466.L1680: 11467 ldr r3, [sp, #8] 11468 ldr r2, [sp, #24] 11469 cmp r3, r2 11470 bcc .L1718 11471 movs r0, #0 11472 b .L1678 11473.L1679: 11474 bl FlashReadSlc2KPages 11475.L1678: 11476 add sp, sp, #40 11477 @ sp needed 11478 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11479.L1718: 11480 ldr r2, [sp, #8] 11481 movs r3, #36 11482 ldr r1, [sp, #12] 11483 mul fp, r3, r2 11484 add r7, r10, fp 11485 ldr r3, [r7, #4] 11486 mov r0, r7 11487 str r3, [sp, #16] 11488 ldr r3, [sp, #24] 11489 subs r3, r3, r2 11490 add r2, sp, #36 11491 uxtb r3, r3 11492 str r3, [sp] 11493 add r3, sp, #32 11494 bl LogAddr2PhyAddr 11495 ldr r2, .L1769+12 11496 mov r5, r0 11497 ldr r3, [sp, #32] 11498 ldrb r2, [r2] @ zero_extendqisi2 11499 cmp r2, r3 11500 bhi .L1682 11501 mov r3, #-1 11502 str r3, [r10, fp] 11503.L1683: 11504 ldr r3, [sp, #8] 11505 adds r3, r3, #1 11506 str r3, [sp, #8] 11507 b .L1680 11508.L1682: 11509 ldr r2, .L1769+16 11510 ldrb r4, [r2, r3] @ zero_extendqisi2 11511 ldr r3, .L1769+20 11512 mov r0, r4 11513 ldrb r3, [r3] @ zero_extendqisi2 11514 cmp r3, #0 11515 it eq 11516 moveq r5, #0 11517 bl NandcWaitFlashReady 11518 ldr r3, .L1769+24 11519 ldr r3, [r3] 11520 ldrb r2, [r3, #19] @ zero_extendqisi2 11521 subs r3, r2, #1 11522 cmp r3, #7 11523 bhi .L1685 11524 ldr r3, .L1769+28 11525 subs r2, r2, #7 11526 cmp r2, #1 11527 ldr r2, .L1769+32 11528 add r1, r3, r4 11529 ldrb r3, [r1, #12] @ zero_extendqisi2 11530 ldrb r2, [r2, r4] @ zero_extendqisi2 11531 it ls 11532 ldrbls r3, [r1, #20] @ zero_extendqisi2 11533 cmp r2, r3 11534 beq .L1685 11535 ldr r2, .L1769+36 11536 mov r0, r4 11537 ldrb r1, [r2, #-3] @ zero_extendqisi2 11538 bl HynixSetRRPara 11539.L1685: 11540 mov r0, r4 11541 bl NandcFlashCs 11542 ldr r3, [sp, #12] 11543 cmp r3, #1 11544 beq .L1687 11545 ldr r3, [sp, #16] 11546 cmp r3, #0 11547 bge .L1688 11548.L1687: 11549 ldr r3, .L1769+40 11550 ldrb r3, [r3] @ zero_extendqisi2 11551 cbz r3, .L1688 11552 mov r0, r4 11553 bl flash_enter_slc_mode 11554.L1695: 11555 ldr r1, [sp, #36] 11556 adds r6, r1, #1 11557 bne .L1690 11558 cmp r4, #255 11559 beq .L1720 11560.L1690: 11561 cbz r5, .L1692 11562 ldr r3, .L1769+44 11563 mov r0, r4 11564 ldr r2, [r3] 11565 add r2, r2, r1 11566 bl FlashReadDpCmd 11567.L1693: 11568 mov r0, r4 11569 bl NandcWaitFlashReady 11570 cbz r5, .L1691 11571 ldr r1, [sp, #36] 11572 mov r0, r4 11573 bl FlashReadDpDataOutCmd 11574.L1691: 11575 ldr r3, [r7, #12] 11576 movs r1, #0 11577 ldr r2, [sp, #20] 11578 mov r0, r4 11579 str r3, [sp] 11580 ldr r3, [r7, #8] 11581 bl NandcXferData 11582 ldr r3, .L1769+8 11583 mov r6, r0 11584 ldrb r3, [r3] @ zero_extendqisi2 11585 cbz r3, .L1694 11586 adds r0, r0, #1 11587 bne .L1694 11588 ldr r3, .L1769+8 11589 movs r5, #0 11590 strb r5, [r3] 11591 b .L1695 11592.L1688: 11593 mov r0, r4 11594 bl flash_exit_slc_mode 11595 b .L1695 11596.L1692: 11597 mov r0, r4 11598 bl FlashReadCmd 11599 b .L1693 11600.L1720: 11601 movs r5, #0 11602 b .L1691 11603.L1694: 11604 cbz r5, .L1696 11605 ldr r3, .L1769+44 11606 mov r0, r4 11607 ldr r1, [sp, #36] 11608 ldr r3, [r3] 11609 add r1, r1, r3 11610 bl FlashReadDpDataOutCmd 11611 add r3, fp, #36 11612 movs r1, #0 11613 add r3, r3, r10 11614 mov r0, r4 11615 ldr r2, [r3, #12] 11616 str r2, [sp] 11617 ldr r2, [sp, #20] 11618 ldr r3, [r3, #8] 11619 bl NandcXferData 11620 cmp r0, #-1 11621 mov r8, r0 11622 it eq 11623 moveq r5, #0 11624.L1696: 11625 mov r0, r4 11626 bl NandcFlashDeCs 11627 ldr r3, .L1769+8 11628 adds r1, r6, #1 11629 ldrb r2, [sp, #28] @ zero_extendqisi2 11630 strb r2, [r3] 11631 bne .L1697 11632 ldr r3, .L1769+48 11633 ldrb r3, [r3] @ zero_extendqisi2 11634 cbnz r3, .L1698 11635.L1702: 11636 ldr r3, .L1769+52 11637 ldr r5, [r3] 11638 cmp r5, #0 11639 bne .L1699 11640 ldr r3, [r7, #12] 11641 mov r0, r4 11642 ldr r2, [r7, #8] 11643 ldr r1, [sp, #36] 11644 bl FlashReadRawPage 11645 b .L1768 11646.L1698: 11647 ldr r3, .L1769+56 11648 mov r0, r4 11649 ldr r1, [sp, #36] 11650 ldr r3, [r3] 11651 ldr r5, [r3, #304] 11652 movs r3, #1 11653 str r3, [sp] 11654 ldr r2, [r7, #8] 11655 ldr r3, [r7, #12] 11656 bl FlashDdrTunningRead 11657 adds r2, r0, #1 11658 mov r6, r0 11659 beq .L1701 11660 ldr r3, .L1769+60 11661 ldrb r3, [r3] @ zero_extendqisi2 11662 cmp r0, r3, lsr #1 11663 bls .L1721 11664.L1701: 11665 ubfx r0, r5, #8, #8 11666 bl NandcSetDdrPara 11667 adds r3, r6, #1 11668 beq .L1702 11669.L1721: 11670 movs r5, #0 11671.L1697: 11672 ldr r3, .L1769+60 11673 ldrb r3, [r3] @ zero_extendqisi2 11674 add r3, r3, r3, lsl #1 11675 cmp r6, r3, asr #2 11676 bls .L1710 11677 ldr r3, .L1769+52 11678 ldr r3, [r3] 11679 cmp r3, #0 11680 bne .L1710 11681 mov r6, #256 11682 b .L1705 11683.L1770: 11684 .align 2 11685.L1769: 11686 .word .LANCHOR2 11687 .word .LANCHOR31 11688 .word .LANCHOR6 11689 .word .LANCHOR26 11690 .word .LANCHOR27 11691 .word .LANCHOR210 11692 .word .LANCHOR7 11693 .word .LANCHOR20 11694 .word .LANCHOR21 11695 .word .LANCHOR20+4 11696 .word .LANCHOR16 11697 .word .LANCHOR4 11698 .word .LANCHOR30 11699 .word .LANCHOR145 11700 .word .LANCHOR19 11701 .word .LANCHOR33 11702.L1699: 11703 ldr r3, [r7, #12] 11704 mov r0, r4 11705 ldr r2, [r7, #8] 11706 ldr r1, [sp, #36] 11707 blx r5 11708 adds r5, r0, #1 11709 mov r6, r0 11710 bne .L1703 11711 ldr r3, .L1771 11712 ldr r3, [r3] 11713 ldrb r3, [r3, #19] @ zero_extendqisi2 11714 subs r3, r3, #1 11715 cmp r3, #7 11716 bhi .L1704 11717 ldr r2, .L1771+4 11718 movs r3, #0 11719 mov r0, r4 11720 ldrb r1, [r2, #-3] @ zero_extendqisi2 11721 bl HynixSetRRPara 11722.L1704: 11723 ldr r3, [r7, #12] 11724 mov r0, r4 11725 ldr r2, [r7, #8] 11726 ldr r1, [sp, #36] 11727 bl FlashReadRawPage 11728 ldr r2, .L1771+8 11729 mov r6, r0 11730 mov r3, r0 11731 ldr r1, [r7, #4] 11732 ldr r0, .L1771+12 11733 ldrb r2, [r2] @ zero_extendqisi2 11734 bl printf 11735 adds r0, r6, #1 11736 bne .L1703 11737 ldr r3, .L1771+16 11738 ldrb r5, [r3] @ zero_extendqisi2 11739 cbz r5, .L1705 11740 ldr r3, [sp, #12] 11741 mov r0, r4 11742 cmp r3, #1 11743 beq .L1706 11744 ldr r3, [sp, #16] 11745 cmp r3, #0 11746 bge .L1707 11747.L1706: 11748 bl flash_enter_slc_mode 11749.L1708: 11750 ldr r3, .L1771+20 11751 mov r0, r4 11752 ldr r2, [r7, #8] 11753 ldr r1, [sp, #36] 11754 ldr r5, [r3] 11755 ldr r3, [r7, #12] 11756 blx r5 11757.L1768: 11758 adds r1, r0, #1 11759 mov r6, r0 11760 mov r5, #0 11761 bne .L1710 11762.L1705: 11763 str r6, [r10, fp] 11764.L1711: 11765 ldr r3, [r10, fp] 11766 adds r2, r3, #1 11767 bne .L1713 11768 ldr r2, .L1771+8 11769 ldr r1, [r7, #4] 11770 ldr r0, .L1771+24 11771 ldrb r2, [r2] @ zero_extendqisi2 11772 bl printf 11773 ldr r1, [r7, #12] 11774 cbz r1, .L1713 11775 movs r3, #4 11776 ldr r0, .L1771+28 11777 mov r2, r3 11778 bl rknand_print_hex 11779.L1713: 11780 cbz r5, .L1715 11781 ldr r3, .L1771+8 11782 ldrb r3, [r3] @ zero_extendqisi2 11783 add r3, r3, r3, lsl #1 11784 cmp r8, r3, asr #2 11785 bls .L1716 11786 ldr r3, .L1771+20 11787 ldr r3, [r3] 11788 cmp r3, #0 11789 it eq 11790 moveq r8, #256 11791.L1716: 11792 cmp r8, #-1 11793 add r3, fp, #36 11794 str r8, [r10, r3] 11795 beq .L1715 11796 cmp r8, #256 11797 itt ne 11798 movne r2, #0 11799 strne r2, [r10, r3] 11800.L1715: 11801 ldr r3, [sp, #8] 11802 add r3, r3, r5 11803 str r3, [sp, #8] 11804 ldr r3, [sp, #12] 11805 cmp r3, #1 11806 beq .L1717 11807 ldr r3, [sp, #16] 11808 cmp r3, #0 11809 bge .L1683 11810.L1717: 11811 ldr r3, .L1771+16 11812 ldrb r3, [r3] @ zero_extendqisi2 11813 cmp r3, #0 11814 beq .L1683 11815 mov r0, r4 11816 bl flash_exit_slc_mode 11817 b .L1683 11818.L1707: 11819 bl flash_exit_slc_mode 11820 b .L1708 11821.L1703: 11822 movs r5, #0 11823.L1710: 11824 cmp r6, #256 11825 beq .L1705 11826 movs r3, #0 11827 str r3, [r10, fp] 11828 b .L1711 11829.L1772: 11830 .align 2 11831.L1771: 11832 .word .LANCHOR7 11833 .word .LANCHOR20+4 11834 .word .LANCHOR33 11835 .word .LC29 11836 .word .LANCHOR16 11837 .word .LANCHOR145 11838 .word .LC26 11839 .word .LC28 11840 .size FlashReadPages, .-FlashReadPages 11841 .section .text.FlashProgSlc2KPages,"ax",%progbits 11842 .align 1 11843 .global FlashProgSlc2KPages 11844 .syntax unified 11845 .thumb 11846 .thumb_func 11847 .fpu softvfp 11848 .type FlashProgSlc2KPages, %function 11849FlashProgSlc2KPages: 11850 @ args = 0, pretend = 0, frame = 56 11851 @ frame_needed = 0, uses_anonymous_args = 0 11852 ldr r3, .L1800 11853 push {r4, r5, r6, r7, r8, r10, fp, lr} 11854 mov r8, r1 11855 ldr fp, .L1800+32 11856 mov r4, r0 11857 mov r6, r0 11858 movs r7, #0 11859 ldrb r10, [r3, #9] @ zero_extendqisi2 11860 sub sp, sp, #64 11861 str r2, [sp, #12] 11862.L1774: 11863 cmp r7, r8 11864 bne .L1780 11865 ldr r10, .L1800+36 11866 mov r8, #0 11867.L1781: 11868 cmp r7, r8 11869 bne .L1788 11870 movs r0, #0 11871 add sp, sp, #64 11872 @ sp needed 11873 pop {r4, r5, r6, r7, r8, r10, fp, pc} 11874.L1780: 11875 sub r3, r8, r7 11876 add r2, sp, #20 11877 uxtb r3, r3 11878 ldr r1, [sp, #12] 11879 mov r0, r6 11880 str r3, [sp] 11881 add r3, sp, #24 11882 bl LogAddr2PhyAddr 11883 ldr r2, .L1800+4 11884 ldr r3, [sp, #24] 11885 ldrb r2, [r2] @ zero_extendqisi2 11886 cmp r2, r3 11887 bhi .L1775 11888 mov r3, #-1 11889 str r3, [r6] 11890.L1776: 11891 adds r7, r7, #1 11892 adds r6, r6, #36 11893 b .L1774 11894.L1775: 11895 ldr r2, .L1800+8 11896 ldrb r5, [r2, r3] @ zero_extendqisi2 11897 mov r0, r5 11898 bl NandcWaitFlashReady 11899 mov r0, r5 11900 bl NandcFlashCs 11901 ldr r1, [sp, #20] 11902 mov r0, r5 11903 bl FlashProgFirstCmd 11904 ldr r3, [r6, #12] 11905 mov r2, r10 11906 movs r1, #1 11907 mov r0, r5 11908 str r3, [sp] 11909 ldr r3, [r6, #8] 11910 bl NandcXferData 11911 ldr r1, [sp, #20] 11912 mov r0, r5 11913 bl FlashProgSecondCmd 11914 mov r0, r5 11915 bl NandcWaitFlashReady 11916 ldr r1, [sp, #20] 11917 mov r0, r5 11918 bl FlashReadStatus 11919 sbfx r0, r0, #0, #1 11920 ldr r1, [sp, #20] 11921 str r0, [r6] 11922 mov r0, r5 11923 ldr r3, [fp] 11924 add r1, r1, r3 11925 bl FlashProgFirstCmd 11926 ldr r3, [r6, #8] 11927 cbz r3, .L1777 11928 add r3, r3, #2048 11929.L1777: 11930 ldr r2, [r6, #12] 11931 cbz r2, .L1778 11932 adds r2, r2, #8 11933.L1778: 11934 str r2, [sp] 11935 movs r1, #1 11936 mov r2, r10 11937 mov r0, r5 11938 bl NandcXferData 11939 ldr r3, [fp] 11940 mov r0, r5 11941 ldr r1, [sp, #20] 11942 add r1, r1, r3 11943 bl FlashProgSecondCmd 11944 mov r0, r5 11945 bl NandcWaitFlashReady 11946 ldr r1, [sp, #20] 11947 mov r0, r5 11948 bl FlashReadStatus 11949 lsls r2, r0, #31 11950 mov r0, r5 11951 itt mi 11952 movmi r3, #-1 11953 strmi r3, [r6] 11954 bl NandcFlashDeCs 11955 b .L1776 11956.L1788: 11957 ldr r3, [r4] 11958 adds r3, r3, #1 11959 bne .L1782 11960 ldr r1, [r4, #4] 11961 ldr r0, .L1800+12 11962 bl printf 11963.L1783: 11964 add r8, r8, #1 11965 adds r4, r4, #36 11966 b .L1781 11967.L1782: 11968 sub r3, r7, r8 11969 ldr fp, .L1800+40 11970 uxtb r3, r3 11971 add r2, sp, #20 11972 ldr r1, [sp, #12] 11973 mov r0, r4 11974 str r3, [sp] 11975 add r3, sp, #24 11976 bl LogAddr2PhyAddr 11977 ldr lr, [r10] 11978 movs r3, #0 11979 ldr ip, [fp] 11980 mov r6, r4 11981 add r5, sp, #28 11982 str r3, [lr] 11983 str r3, [ip] 11984 ldmia r6!, {r0, r1, r2, r3} 11985 stmia r5!, {r0, r1, r2, r3} 11986 str lr, [sp, #36] 11987 ldmia r6!, {r0, r1, r2, r3} 11988 str ip, [sp, #40] 11989 stmia r5!, {r0, r1, r2, r3} 11990 movs r1, #1 11991 ldr r3, [r6] 11992 add r0, sp, #28 11993 ldr r2, [sp, #12] 11994 str r3, [r5] 11995 bl FlashReadPages 11996 ldr r5, [sp, #28] 11997 adds r3, r5, #1 11998 bne .L1784 11999 ldr r1, [r4, #4] 12000 ldr r0, .L1800+16 12001 bl printf 12002 str r5, [r4] 12003.L1784: 12004 ldr r5, [sp, #28] 12005 cmp r5, #256 12006 bne .L1785 12007 ldr r1, [r4, #4] 12008 ldr r0, .L1800+20 12009 bl printf 12010 str r5, [r4] 12011.L1785: 12012 ldr r3, [r4, #12] 12013 cbz r3, .L1786 12014 ldr r2, [r3] 12015 ldr r3, [fp] 12016 ldr r3, [r3] 12017 cmp r2, r3 12018 beq .L1786 12019 ldr r1, [r4, #4] 12020 ldr r0, .L1800+24 12021 bl printf 12022 mov r3, #-1 12023 str r3, [r4] 12024.L1786: 12025 ldr r3, [r4, #8] 12026 cmp r3, #0 12027 beq .L1783 12028 ldr r2, [r3] 12029 ldr r3, [r10] 12030 ldr r3, [r3] 12031 cmp r2, r3 12032 beq .L1783 12033 ldr r1, [r4, #4] 12034 ldr r0, .L1800+28 12035 bl printf 12036 mov r3, #-1 12037 str r3, [r4] 12038 b .L1783 12039.L1801: 12040 .align 2 12041.L1800: 12042 .word .LANCHOR31 12043 .word .LANCHOR26 12044 .word .LANCHOR27 12045 .word .LC30 12046 .word .LC31 12047 .word .LC32 12048 .word .LC33 12049 .word .LC34 12050 .word .LANCHOR4 12051 .word .LANCHOR206 12052 .word .LANCHOR207 12053 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages 12054 .section .text.FlashProgPages,"ax",%progbits 12055 .align 1 12056 .global FlashProgPages 12057 .syntax unified 12058 .thumb 12059 .thumb_func 12060 .fpu softvfp 12061 .type FlashProgPages, %function 12062FlashProgPages: 12063 @ args = 0, pretend = 0, frame = 64 12064 @ frame_needed = 0, uses_anonymous_args = 0 12065 push {r4, r5, r6, r7, r8, r10, fp, lr} 12066 sub sp, sp, #72 12067 ldr r5, .L1854 12068 mov r4, r0 12069 mov r8, r2 12070 str r1, [sp, #8] 12071 ldr r5, [r5] 12072 str r3, [sp, #20] 12073 ldrb r5, [r5, #19] @ zero_extendqisi2 12074 str r5, [sp, #16] 12075 ldr r5, .L1854+4 12076 ldrb r7, [r5] @ zero_extendqisi2 12077 cbnz r7, .L1803 12078 ldr r3, .L1854+8 12079 ldrb r3, [r3, #9] @ zero_extendqisi2 12080 str r3, [sp, #12] 12081.L1804: 12082 ldr r3, [sp, #8] 12083 cmp r7, r3 12084 bcc .L1817 12085 ldr r6, .L1854+12 12086 movs r5, #0 12087 ldr r7, .L1854+16 12088.L1818: 12089 ldrb r3, [r6] @ zero_extendqisi2 12090 cmp r5, r3 12091 bcc .L1820 12092 ldr r3, [sp, #20] 12093 cmp r3, #0 12094 bne .L1821 12095.L1829: 12096 movs r0, #0 12097 b .L1802 12098.L1803: 12099 bl FlashProgSlc2KPages 12100.L1802: 12101 add sp, sp, #72 12102 @ sp needed 12103 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12104.L1817: 12105 ldr r3, [sp, #8] 12106 movs r6, #36 12107 muls r6, r7, r6 12108 add r2, sp, #28 12109 mov r1, r8 12110 subs r3, r3, r7 12111 uxtb r3, r3 12112 add fp, r4, r6 12113 str r3, [sp] 12114 mov r0, fp 12115 add r3, sp, #32 12116 bl LogAddr2PhyAddr 12117 ldr r3, .L1854+12 12118 mov r10, r0 12119 ldr r0, [sp, #32] 12120 ldrb r3, [r3] @ zero_extendqisi2 12121 cmp r3, r0 12122 bhi .L1806 12123 mov r3, #-1 12124 str r3, [r4, r6] 12125.L1807: 12126 adds r7, r7, #1 12127 b .L1804 12128.L1806: 12129 ldr r3, .L1854+20 12130 ldrb r3, [r3] @ zero_extendqisi2 12131 cmp r3, #0 12132 ldr r3, .L1854+24 12133 it eq 12134 moveq r10, #0 12135 add r3, r3, r0, lsl #4 12136 ldr r3, [r3, #8] 12137 cbz r3, .L1809 12138 uxtb r0, r0 12139 bl FlashWaitCmdDone 12140.L1809: 12141 ldr r3, [sp, #32] 12142 movs r1, #0 12143 ldr r2, .L1854+24 12144 add r2, r2, r3, lsl #4 12145 str r1, [r2, #12] 12146 ldr r1, [sp, #28] 12147 str fp, [r2, #8] 12148 str r1, [r2, #4] 12149 cmp r10, #0 12150 beq .L1810 12151 add r1, r6, #36 12152 add r1, r1, r4 12153 str r1, [r2, #12] 12154.L1810: 12155 ldr r2, .L1854+28 12156 ldrb r5, [r2, r3] @ zero_extendqisi2 12157 lsls r3, r3, #4 12158 ldr r2, .L1854+24 12159 mov r0, r5 12160 strb r5, [r2, r3] 12161 ldr r3, .L1854+12 12162 ldrb r3, [r3] @ zero_extendqisi2 12163 cmp r3, #1 12164 bne .L1811 12165 bl NandcWaitFlashReady 12166.L1812: 12167 ldr r3, [sp, #16] 12168 subs r3, r3, #1 12169 cmp r3, #7 12170 bhi .L1813 12171 ldr r3, .L1854+32 12172 ldrb r3, [r3, r5] @ zero_extendqisi2 12173 cbz r3, .L1813 12174 ldr r1, .L1854+36 12175 movs r3, #0 12176 mov r0, r5 12177 adds r2, r1, #4 12178 ldrb r1, [r1, #1] @ zero_extendqisi2 12179 bl HynixSetRRPara 12180.L1813: 12181 mov r0, r5 12182 bl NandcFlashCs 12183 cmp r8, #1 12184 mov r0, r5 12185 bne .L1814 12186 ldr r3, .L1854+16 12187 ldrb r3, [r3] @ zero_extendqisi2 12188 cmp r3, #0 12189 beq .L1814 12190 bl flash_enter_slc_mode 12191.L1815: 12192 ldr r1, [sp, #28] 12193 mov r0, r5 12194 bl FlashProgFirstCmd 12195 ldr r3, [fp, #12] 12196 movs r1, #1 12197 ldr r2, [sp, #12] 12198 mov r0, r5 12199 str r3, [sp] 12200 ldr r3, [fp, #8] 12201 bl NandcXferData 12202 cmp r10, #0 12203 beq .L1816 12204 ldr r1, [sp, #28] 12205 mov r0, r5 12206 bl FlashProgDpFirstCmd 12207 ldr r3, .L1854+40 12208 mov r0, r5 12209 ldr r2, [sp, #32] 12210 adds r6, r6, #36 12211 ldr r1, [sp, #28] 12212 add r6, r6, r4 12213 ldr r2, [r3, r2, lsl #2] 12214 adds r2, r2, #0 12215 it ne 12216 movne r2, #1 12217 bl FlashWaitReadyEN 12218 ldr r3, .L1854+44 12219 mov r0, r5 12220 ldr r1, [sp, #28] 12221 ldr r3, [r3] 12222 add r1, r1, r3 12223 bl FlashProgDpSecondCmd 12224 ldr r3, [r6, #12] 12225 movs r1, #1 12226 ldr r2, [sp, #12] 12227 mov r0, r5 12228 str r3, [sp] 12229 ldr r3, [r6, #8] 12230 bl NandcXferData 12231.L1816: 12232 ldr r1, [sp, #28] 12233 mov r0, r5 12234 bl FlashProgSecondCmd 12235 mov r0, r5 12236 add r7, r7, r10 12237 bl NandcFlashDeCs 12238 b .L1807 12239.L1811: 12240 bl NandcFlashCs 12241 ldr r2, [sp, #32] 12242 mov r0, r5 12243 ldr r3, .L1854+40 12244 ldr r1, [sp, #28] 12245 ldr r2, [r3, r2, lsl #2] 12246 adds r2, r2, #0 12247 it ne 12248 movne r2, #1 12249 bl FlashWaitReadyEN 12250 mov r0, r5 12251 bl NandcFlashDeCs 12252 b .L1812 12253.L1814: 12254 bl flash_exit_slc_mode 12255 b .L1815 12256.L1820: 12257 uxtb r0, r5 12258 bl FlashWaitCmdDone 12259 cmp r8, #1 12260 bne .L1819 12261 ldrb r3, [r7] @ zero_extendqisi2 12262 cbz r3, .L1819 12263 ldr r2, .L1854+24 12264 lsls r3, r5, #4 12265 ldrb r0, [r2, r3] @ zero_extendqisi2 12266 bl flash_exit_slc_mode 12267.L1819: 12268 adds r5, r5, #1 12269 b .L1818 12270.L1821: 12271 ldr r10, .L1854+64 12272 movs r7, #0 12273.L1822: 12274 ldr r3, [sp, #8] 12275 cmp r7, r3 12276 beq .L1829 12277 ldr r3, [r4] 12278 adds r3, r3, #1 12279 bne .L1823 12280 ldr r1, [r4, #4] 12281 ldr r0, .L1854+48 12282 bl printf 12283.L1824: 12284 adds r7, r7, #1 12285 adds r4, r4, #36 12286 b .L1822 12287.L1823: 12288 ldr r3, [sp, #8] 12289 add r2, sp, #28 12290 ldr fp, .L1854+68 12291 mov r1, r8 12292 mov r0, r4 12293 mov r6, r4 12294 subs r3, r3, r7 12295 add r5, sp, #36 12296 uxtb r3, r3 12297 str r3, [sp] 12298 add r3, sp, #32 12299 bl LogAddr2PhyAddr 12300 ldr lr, [r10] 12301 movs r3, #0 12302 ldr ip, [fp] 12303 str r3, [lr] 12304 str r3, [ip] 12305 ldmia r6!, {r0, r1, r2, r3} 12306 stmia r5!, {r0, r1, r2, r3} 12307 str lr, [sp, #44] 12308 ldmia r6!, {r0, r1, r2, r3} 12309 str ip, [sp, #48] 12310 stmia r5!, {r0, r1, r2, r3} 12311 mov r2, r8 12312 ldr r3, [r6] 12313 movs r1, #1 12314 add r0, sp, #36 12315 str r3, [r5] 12316 bl FlashReadPages 12317 ldr r5, [sp, #36] 12318 adds r3, r5, #1 12319 bne .L1825 12320 ldr r1, [r4, #4] 12321 ldr r0, .L1854+52 12322 bl printf 12323 str r5, [r4] 12324.L1825: 12325 ldr r3, [r4, #12] 12326 cbz r3, .L1826 12327 ldr r2, [r3] 12328 ldr r3, [fp] 12329 ldr r3, [r3] 12330 cmp r2, r3 12331 beq .L1826 12332 ldr r1, [r4, #4] 12333 ldr r0, .L1854+56 12334 bl printf 12335 mov r3, #-1 12336 str r3, [r4] 12337.L1826: 12338 ldr r3, [r4, #8] 12339 cmp r3, #0 12340 beq .L1824 12341 ldr r2, [r3] 12342 ldr r3, [r10] 12343 ldr r3, [r3] 12344 cmp r2, r3 12345 beq .L1824 12346 ldr r1, [r4, #4] 12347 ldr r0, .L1854+60 12348 bl printf 12349 mov r3, #-1 12350 str r3, [r4] 12351 b .L1824 12352.L1855: 12353 .align 2 12354.L1854: 12355 .word .LANCHOR7 12356 .word .LANCHOR2 12357 .word .LANCHOR31 12358 .word .LANCHOR26 12359 .word .LANCHOR16 12360 .word .LANCHOR28 12361 .word .LANCHOR23 12362 .word .LANCHOR27 12363 .word .LANCHOR21 12364 .word .LANCHOR20 12365 .word .LANCHOR18 12366 .word .LANCHOR4 12367 .word .LC30 12368 .word .LC31 12369 .word .LC33 12370 .word .LC34 12371 .word .LANCHOR206 12372 .word .LANCHOR207 12373 .size FlashProgPages, .-FlashProgPages 12374 .section .text.FlashTestBlk,"ax",%progbits 12375 .align 1 12376 .global FlashTestBlk 12377 .syntax unified 12378 .thumb 12379 .thumb_func 12380 .fpu softvfp 12381 .type FlashTestBlk, %function 12382FlashTestBlk: 12383 @ args = 0, pretend = 0, frame = 104 12384 @ frame_needed = 0, uses_anonymous_args = 0 12385 ldr r3, .L1859 12386 push {r4, r5, lr} 12387 mov r4, r0 12388 sub sp, sp, #108 12389 ldr r3, [r3] 12390 cmp r0, r3 12391 bcc .L1858 12392 ldr r5, .L1859+4 12393 add r0, sp, #40 12394 movs r2, #32 12395 movs r1, #165 12396 str r0, [sp, #16] 12397 lsls r4, r4, #10 12398 ldr r3, [r5] 12399 str r3, [sp, #12] 12400 bl ftl_memset 12401 movs r2, #8 12402 movs r1, #90 12403 ldr r0, [r5] 12404 bl ftl_memset 12405 movs r2, #1 12406 add r0, sp, #4 12407 mov r1, r2 12408 str r4, [sp, #8] 12409 bl FlashEraseBlocks 12410 movs r3, #1 12411 add r0, sp, #4 12412 mov r2, r3 12413 mov r1, r3 12414 bl FlashProgPages 12415 ldr r4, [sp, #4] 12416 movs r2, #1 12417 movs r1, #0 12418 add r0, sp, #4 12419 adds r4, r4, #0 12420 it ne 12421 movne r4, #1 12422 negs r4, r4 12423 bl FlashEraseBlocks 12424.L1856: 12425 mov r0, r4 12426 add sp, sp, #108 12427 @ sp needed 12428 pop {r4, r5, pc} 12429.L1858: 12430 movs r4, #0 12431 b .L1856 12432.L1860: 12433 .align 2 12434.L1859: 12435 .word .LANCHOR156 12436 .word .LANCHOR149 12437 .size FlashTestBlk, .-FlashTestBlk 12438 .section .text.FtlLowFormatEraseBlock,"ax",%progbits 12439 .align 1 12440 .global FtlLowFormatEraseBlock 12441 .syntax unified 12442 .thumb 12443 .thumb_func 12444 .fpu softvfp 12445 .type FtlLowFormatEraseBlock, %function 12446FtlLowFormatEraseBlock: 12447 @ args = 0, pretend = 0, frame = 40 12448 @ frame_needed = 0, uses_anonymous_args = 0 12449 ldr r3, .L1906 12450 push {r4, r5, r6, r7, r8, r10, fp, lr} 12451 sub sp, sp, #40 12452 str r0, [sp, #8] 12453 ldr r3, [r3] 12454 str r1, [sp, #4] 12455 cmp r3, #0 12456 bne .L1888 12457 ldr r2, .L1906+4 12458 mov r10, r3 12459 mov r5, r3 12460 mov r4, r3 12461 mov r8, #36 12462 ldrb r2, [r2] @ zero_extendqisi2 12463 str r2, [sp, #20] 12464 ldr r2, .L1906+8 12465 ldrb r2, [r2] @ zero_extendqisi2 12466 str r2, [sp, #12] 12467 ldr r2, .L1906+12 12468 str r0, [r2] 12469 ldr r2, .L1906+16 12470 ldrh fp, [r2] 12471 ldr r2, .L1906+20 12472 ldr r7, [r2] 12473 ldr r2, .L1906+24 12474 ldr r2, [r2] 12475 str r2, [sp, #16] 12476 ldr r2, .L1906+28 12477 ldrh r2, [r2] 12478 str r2, [sp, #24] 12479.L1863: 12480 uxth r2, r10 12481 cmp fp, r2 12482 bhi .L1867 12483 cmp r5, #0 12484 beq .L1861 12485 ldr r3, [sp, #12] 12486 mov r0, r7 12487 ldr r10, .L1906+4 12488 mov r8, #0 12489 mov r2, r5 12490 ldr r7, .L1906+20 12491 adds r6, r3, #0 12492 it ne 12493 movne r6, #1 12494 strb r8, [r10] 12495 mov r1, r6 12496 bl FlashEraseBlocks 12497 ldrb r3, [sp, #20] @ zero_extendqisi2 12498 strb r3, [r10] 12499 mov r10, #36 12500.L1869: 12501 uxth r3, r8 12502 cmp r5, r3 12503 bhi .L1871 12504 ldr r3, [sp, #4] 12505 cmp r3, #0 12506 bne .L1872 12507 uxth r6, r6 12508 movs r3, #6 12509 str r3, [sp, #16] 12510 movs r3, #1 12511 str r3, [sp, #12] 12512.L1873: 12513 mov r8, #0 12514.L1882: 12515 ldr r3, .L1906+16 12516 mov fp, #0 12517 mov r5, fp 12518 ldrh r3, [r3] 12519 str r3, [sp, #24] 12520 ldr r3, .L1906+20 12521 ldr r10, [r3] 12522 ldr r3, .L1906+32 12523 ldr r3, [r3] 12524 str r3, [sp, #28] 12525 ldr r3, .L1906+36 12526 ldr r3, [r3] 12527 str r3, [sp, #32] 12528 ldr r3, .L1906+28 12529 ldrh r3, [r3] 12530 str r3, [sp, #36] 12531.L1874: 12532 ldr r3, [sp, #24] 12533 uxth r2, fp 12534 cmp r3, r2 12535 bhi .L1877 12536 cbz r5, .L1861 12537 ldr fp, .L1906+4 12538 movs r3, #1 12539 mov r0, r10 12540 movs r7, #0 12541 mov r2, r6 12542 mov r1, r5 12543 strb r7, [fp] 12544 bl FlashProgPages 12545 ldrb r3, [sp, #20] @ zero_extendqisi2 12546 ldr r10, .L1906+20 12547 strb r3, [fp] 12548 mov fp, #36 12549.L1879: 12550 uxth r3, r7 12551 cmp r5, r3 12552 bhi .L1881 12553 ldr r3, [sp, #16] 12554 add r8, r8, r3 12555 ldr r3, [sp, #12] 12556 uxth r8, r8 12557 cmp r3, r8 12558 bhi .L1882 12559 ldr r8, .L1906+20 12560 movs r7, #0 12561 mov r10, #36 12562.L1883: 12563 uxth r3, r7 12564 cmp r5, r3 12565 bhi .L1885 12566 ldr r3, [sp, #8] 12567 cmp r3, #63 12568 bls .L1886 12569 ldr r3, [sp, #4] 12570 cbz r3, .L1861 12571.L1886: 12572 ldr r3, .L1906+20 12573 mov r2, r5 12574 mov r1, r6 12575 ldr r0, [r3] 12576 bl FlashEraseBlocks 12577.L1861: 12578 mov r0, r4 12579 add sp, sp, #40 12580 @ sp needed 12581 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12582.L1867: 12583 mul r2, r8, r10 12584 movs r3, #0 12585 ldr r1, [sp, #8] 12586 str r3, [r7, r2] 12587 ldr r3, .L1906+40 12588 ldrb r0, [r3, r10] @ zero_extendqisi2 12589 bl V2P_block 12590 ldr r3, [sp, #4] 12591 mov r6, r0 12592 cbz r3, .L1864 12593 bl IsBlkInVendorPart 12594 cbnz r0, .L1865 12595.L1864: 12596 mov r0, r6 12597 bl FtlBbmIsBadBlock 12598 cbnz r0, .L1866 12599 ldr r3, [sp, #24] 12600 mla r1, r8, r5, r7 12601 lsls r6, r6, #10 12602 mul r2, r3, r5 12603 ldr r3, [sp, #16] 12604 adds r5, r5, #1 12605 str r6, [r1, #4] 12606 uxth r5, r5 12607 str r0, [r1, #8] 12608 bic r2, r2, #3 12609 add r2, r2, r3 12610 str r2, [r1, #12] 12611.L1865: 12612 add r10, r10, #1 12613 b .L1863 12614.L1866: 12615 adds r4, r4, #1 12616 uxth r4, r4 12617 b .L1865 12618.L1871: 12619 mul r3, r10, r8 12620 ldr r2, [r7] 12621 adds r1, r2, r3 12622 ldr r3, [r2, r3] 12623 adds r3, r3, #1 12624 bne .L1870 12625 ldr r0, [r1, #4] 12626 adds r4, r4, #1 12627 uxth r4, r4 12628 ubfx r0, r0, #10, #16 12629 bl FtlBbmMapBadBlock 12630.L1870: 12631 add r8, r8, #1 12632 b .L1869 12633.L1872: 12634 ldr r3, .L1906+44 12635 ldrh r3, [r3] 12636 str r3, [sp, #12] 12637 ldr r3, .L1906+8 12638 ldrb r3, [r3] @ zero_extendqisi2 12639 cbnz r3, .L1889 12640 ldr r3, [sp, #12] 12641 movs r6, #1 12642 lsrs r3, r3, #2 12643 str r3, [sp, #16] 12644 b .L1873 12645.L1889: 12646 movs r6, #1 12647 str r6, [sp, #16] 12648 b .L1873 12649.L1877: 12650 movs r3, #36 12651 ldr r1, [sp, #8] 12652 mul r2, r3, fp 12653 movs r3, #0 12654 str r3, [r10, r2] 12655 ldr r3, .L1906+40 12656 ldrb r0, [r3, fp] @ zero_extendqisi2 12657 bl V2P_block 12658 ldr r3, [sp, #4] 12659 mov r7, r0 12660 cbz r3, .L1875 12661 bl IsBlkInVendorPart 12662 cbnz r0, .L1876 12663.L1875: 12664 mov r0, r7 12665 bl FtlBbmIsBadBlock 12666 cbnz r0, .L1876 12667 movs r3, #36 12668 add r7, r8, r7, lsl #10 12669 mla r1, r3, r5, r10 12670 ldr r3, [sp, #28] 12671 str r3, [r1, #8] 12672 ldr r3, [sp, #36] 12673 str r7, [r1, #4] 12674 mul r2, r3, r5 12675 ldr r3, [sp, #32] 12676 adds r5, r5, #1 12677 uxth r5, r5 12678 bic r2, r2, #3 12679 add r2, r2, r3 12680 str r2, [r1, #12] 12681.L1876: 12682 add fp, fp, #1 12683 b .L1874 12684.L1881: 12685 mul r3, fp, r7 12686 ldr r2, [r10] 12687 adds r1, r2, r3 12688 ldr r3, [r2, r3] 12689 cbz r3, .L1880 12690 ldr r0, [r1, #4] 12691 adds r4, r4, #1 12692 uxth r4, r4 12693 ubfx r0, r0, #10, #16 12694 bl FtlBbmMapBadBlock 12695.L1880: 12696 adds r7, r7, #1 12697 b .L1879 12698.L1885: 12699 ldr r3, [sp, #4] 12700 cbz r3, .L1884 12701 mul r3, r10, r7 12702 ldr r2, [r8] 12703 adds r1, r2, r3 12704 ldr r3, [r2, r3] 12705 cbnz r3, .L1884 12706 ldr r0, [r1, #4] 12707 movs r1, #1 12708 ubfx r0, r0, #10, #16 12709 bl FtlFreeSysBlkQueueIn 12710.L1884: 12711 adds r7, r7, #1 12712 b .L1883 12713.L1888: 12714 movs r4, #0 12715 b .L1861 12716.L1907: 12717 .align 2 12718.L1906: 12719 .word .LANCHOR78 12720 .word .LANCHOR28 12721 .word .LANCHOR16 12722 .word .LANCHOR75 12723 .word .LANCHOR38 12724 .word .LANCHOR79 12725 .word .LANCHOR196 12726 .word .LANCHOR58 12727 .word .LANCHOR193 12728 .word .LANCHOR194 12729 .word .LANCHOR47 12730 .word .LANCHOR53 12731 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock 12732 .section .text.FtlBbmTblFlush,"ax",%progbits 12733 .align 1 12734 .global FtlBbmTblFlush 12735 .syntax unified 12736 .thumb 12737 .thumb_func 12738 .fpu softvfp 12739 .type FtlBbmTblFlush, %function 12740FtlBbmTblFlush: 12741 @ args = 0, pretend = 0, frame = 8 12742 @ frame_needed = 0, uses_anonymous_args = 0 12743 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 12744 ldr r3, .L1924 12745 ldr r4, [r3] 12746 str r3, [sp, #12] 12747 cmp r4, #0 12748 bne .L1910 12749 ldr r3, .L1924+4 12750 mov r1, r4 12751 ldr r7, .L1924+8 12752 ldr r5, .L1924+12 12753 ldr r3, [r3] 12754 ldr r0, [r7] 12755 mov fp, r7 12756 ldr r6, .L1924+16 12757 str r3, [r5, #12] 12758 ldr r7, .L1924+20 12759 ldr r3, .L1924+24 12760 ldr r8, .L1924+56 12761 str r0, [r5, #8] 12762 ldrh r2, [r3] 12763 bl ftl_memset 12764.L1911: 12765 ldrh r3, [r7] 12766 cmp r4, r3 12767 blt .L1912 12768 ldr r6, [r5, #12] 12769 movs r2, #16 12770 ldr r4, .L1924+28 12771 movs r1, #255 12772 movs r7, #0 12773 mov r0, r6 12774 mov r8, r7 12775 bl ftl_memset 12776 movw r3, #61649 12777 mov r10, r4 12778 strh r3, [r6] @ movhi 12779 ldr r3, [r4, #8] 12780 str r3, [r6, #4] 12781 ldrh r3, [r4] 12782 strh r3, [r6, #2] @ movhi 12783 ldrh r3, [r4, #4] 12784 strh r3, [r6, #8] @ movhi 12785 ldrh r3, [r4, #6] 12786 strh r3, [r6, #10] @ movhi 12787 ldr r3, .L1924+32 12788 ldr r3, [r3] 12789 strh r3, [r6, #12] @ movhi 12790.L1913: 12791 ldr r3, [fp] 12792 ldrh r2, [r4, #2] 12793 ldrh r1, [r4] 12794 str r3, [r5, #8] 12795 ldr r3, .L1924+4 12796 ldrh r0, [r6, #10] 12797 ldr r3, [r3] 12798 str r3, [r5, #12] 12799 movs r3, #0 12800 str r3, [r5] 12801 orr r3, r2, r1, lsl #10 12802 str r3, [r5, #4] 12803 ldrh r3, [r4, #4] 12804 str r0, [sp] 12805 ldr r0, .L1924+36 12806 bl printf 12807 ldr r3, .L1924+40 12808 ldrh r2, [r4, #2] 12809 ldrh r3, [r3] 12810 subs r3, r3, #1 12811 cmp r2, r3 12812 blt .L1914 12813 ldr r3, [r4, #8] 12814 mov r1, #0 @ movhi 12815 ldrh r2, [r4] 12816 strh r1, [r4, #2] @ movhi 12817 adds r3, r3, #1 12818 str r3, [r4, #8] 12819 str r3, [r6, #4] 12820 strh r2, [r6, #8] @ movhi 12821 ldrh r3, [r4, #4] 12822 strh r2, [r4, #4] @ movhi 12823 ldr r2, .L1924+44 12824 strh r3, [r4] @ movhi 12825 lsls r3, r3, #10 12826 ldr r0, [r2] 12827 movs r2, #1 12828 str r3, [r5, #4] 12829 mov r1, r2 12830 str r3, [r0, #4] 12831 bl FlashEraseBlocks 12832.L1914: 12833 movs r3, #1 12834 ldr r0, .L1924+12 12835 mov r2, r3 12836 mov r1, r3 12837 bl FlashProgPages 12838 ldrh r3, [r10, #2] 12839 adds r3, r3, #1 12840 strh r3, [r10, #2] @ movhi 12841 ldr r3, [r5] 12842 adds r2, r3, #1 12843 bne .L1915 12844 adds r7, r7, #1 12845 ldr r1, [r5, #4] 12846 uxth r7, r7 12847 ldr r0, .L1924+48 12848 bl printf 12849 cmp r7, #3 12850 bls .L1913 12851 mov r2, r7 12852 ldr r1, [r5, #4] 12853 ldr r0, .L1924+52 12854 bl printf 12855 ldr r2, [sp, #12] 12856 movs r3, #1 12857 str r3, [r2] 12858.L1910: 12859 movs r0, #0 12860 add sp, sp, #16 12861 @ sp needed 12862 pop {r4, r5, r6, r7, r8, r10, fp, pc} 12863.L1912: 12864 ldrh r2, [r8] 12865 ldr r3, [r5, #8] 12866 ldr r1, [r6, #4]! 12867 mul r0, r4, r2 12868 lsls r2, r2, #2 12869 adds r4, r4, #1 12870 add r0, r3, r0, lsl #2 12871 bl ftl_memcpy 12872 b .L1911 12873.L1915: 12874 add r8, r8, #1 12875 cmp r8, #1 12876 beq .L1913 12877 cmp r3, #256 12878 beq .L1913 12879 b .L1910 12880.L1925: 12881 .align 2 12882.L1924: 12883 .word .LANCHOR78 12884 .word .LANCHOR195 12885 .word .LANCHOR189 12886 .word .LANCHOR211 12887 .word .LANCHOR76+24 12888 .word .LANCHOR45 12889 .word .LANCHOR57 12890 .word .LANCHOR76 12891 .word .LANCHOR37 12892 .word .LC35 12893 .word .LANCHOR53 12894 .word .LANCHOR79 12895 .word .LC36 12896 .word .LC37 12897 .word .LANCHOR126 12898 .size FtlBbmTblFlush, .-FtlBbmTblFlush 12899 .section .text.allocate_data_superblock,"ax",%progbits 12900 .align 1 12901 .global allocate_data_superblock 12902 .syntax unified 12903 .thumb 12904 .thumb_func 12905 .fpu softvfp 12906 .type allocate_data_superblock, %function 12907allocate_data_superblock: 12908 @ args = 0, pretend = 0, frame = 8 12909 @ frame_needed = 0, uses_anonymous_args = 0 12910 ldr r3, .L1991 12911 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 12912 mov r4, r0 12913 ldr r3, [r3] 12914 cmp r3, #0 12915 bne .L1928 12916.L1927: 12917 ldr r3, .L1991+4 12918 ldr r8, .L1991+60 12919 ldr r7, .L1991+8 12920 ldrh r3, [r3] 12921 ldrh r2, [r8] 12922 add r3, r3, r2 12923 ldrh r2, [r7] 12924 cmp r3, r2 12925 ble .L1929 12926 ldr r1, .L1991+12 12927 movw r2, #3507 12928 ldr r0, .L1991+16 12929 bl printf 12930 ldr r1, .L1991+20 12931 ldr r0, .L1991+24 12932 bl printf 12933.L1929: 12934 ldr r3, .L1991+28 12935 ldrb r2, [r4, #8] @ zero_extendqisi2 12936 cmp r4, r3 12937 bne .L1930 12938 ldr r3, .L1991+4 12939 ldrh r5, [r3] 12940 ldr r3, .L1991+32 12941 ldr r3, [r3] 12942 lsrs r0, r5, #1 12943 adds r1, r0, #1 12944 mul r6, r3, r5 12945 add r1, r1, r6, lsr #2 12946 ldr r6, .L1991+36 12947 uxth r1, r1 12948 ldr r6, [r6] 12949 cbz r6, .L1931 12950 ldr r6, .L1991+40 12951 ldr r6, [r6] 12952 cmp r6, #39 12953 bhi .L1931 12954 cmp r6, #2 12955 bls .L1965 12956 lsls r1, r5, #31 12957 bpl .L1961 12958 cmp r3, #0 12959 beq .L1965 12960.L1961: 12961 mov r1, r0 12962 b .L1931 12963.L1930: 12964 cmp r2, #1 12965 bne .L1965 12966 ldr r3, .L1991+44 12967 ldrh r3, [r3] 12968 cmp r3, #1 12969 beq .L1965 12970 ldr r3, .L1991+48 12971 ldrb r3, [r3] @ zero_extendqisi2 12972 cmp r3, #0 12973 bne .L1965 12974 ldr r3, .L1991+4 12975 ldr r0, .L1991+36 12976 ldrh r3, [r3] 12977 ldr r0, [r0] 12978 lsrs r1, r3, #3 12979 cbz r0, .L1931 12980 ldr r0, .L1991+40 12981 ldr r0, [r0] 12982 cmp r0, #1 12983 bhi .L1931 12984 rsb r3, r3, r3, lsl #3 12985 ubfx r1, r3, #3, #16 12986.L1931: 12987 cbz r1, .L1932 12988 subs r1, r1, #1 12989 uxth r1, r1 12990.L1932: 12991 ldr r0, .L1991+52 12992 bl List_pop_index_node 12993 ldr r3, .L1991+4 12994 mov r5, r0 12995 uxth r10, r0 12996 ldrh r3, [r3] 12997 cbnz r3, .L1933 12998 ldr r1, .L1991+12 12999 movw r2, #3532 13000 ldr r0, .L1991+16 13001 bl printf 13002 ldr r1, .L1991+20 13003 ldr r0, .L1991+24 13004 bl printf 13005.L1933: 13006 ldr r3, .L1991+4 13007 ldr r2, .L1991+4 13008 ldrh r3, [r3] 13009 subs r3, r3, #1 13010 strh r3, [r2] @ movhi 13011 ldrh r3, [r7] 13012 cmp r3, r10 13013 bls .L1927 13014 uxth r5, r5 13015 lsls r3, r5, #1 13016 str r3, [sp] 13017 ldr r3, .L1991+56 13018 ldr r3, [r3] 13019 ldrh r6, [r3, r5, lsl #1] 13020 cmp r6, #0 13021 bne .L1927 13022 strh r10, [r4] @ movhi 13023 mov r0, r4 13024 bl make_superblock 13025 ldrb r3, [r4, #7] @ zero_extendqisi2 13026 cmp r3, #0 13027 bne .L1935 13028 ldr r3, .L1991+56 13029 movw r2, #65535 13030 ldr r3, [r3] 13031 strh r2, [r3, r5, lsl #1] @ movhi 13032 ldr r3, .L1991+4 13033 ldrh r2, [r8] 13034 ldrh r3, [r3] 13035 add r3, r3, r2 13036 ldrh r2, [r7] 13037 cmp r3, r2 13038 ble .L1927 13039 mov r2, #3552 13040 ldr r1, .L1991+12 13041 ldr r0, .L1991+16 13042 bl printf 13043 ldr r1, .L1991+20 13044 ldr r0, .L1991+24 13045 bl printf 13046 b .L1927 13047.L1965: 13048 movs r1, #0 13049 b .L1932 13050.L1992: 13051 .align 2 13052.L1991: 13053 .word .LANCHOR78 13054 .word .LANCHOR90 13055 .word .LANCHOR40 13056 .word .LANCHOR212 13057 .word .LC5 13058 .word .LC6 13059 .word .LC7 13060 .word .LANCHOR95 13061 .word .LANCHOR177 13062 .word .LANCHOR104 13063 .word .LANCHOR175 13064 .word .LANCHOR44 13065 .word .LANCHOR16 13066 .word .LANCHOR89 13067 .word .LANCHOR85 13068 .word .LANCHOR87 13069.L1935: 13070 ldr r3, .L1993 13071 ldrh r2, [r8] 13072 ldrh r3, [r3] 13073 add r3, r3, r2 13074 ldrh r2, [r7] 13075 cmp r3, r2 13076 ble .L1937 13077 ldr r1, .L1993+4 13078 movw r2, #3556 13079 ldr r0, .L1993+8 13080 bl printf 13081 ldr r1, .L1993+12 13082 ldr r0, .L1993+16 13083 bl printf 13084.L1937: 13085 ldr r3, .L1993+20 13086 add lr, r4, #16 13087 ldr r2, .L1993+24 13088 mov r8, #0 13089 ldr ip, [r3] 13090 ldrh r0, [r2] 13091 movs r2, #36 13092 mov r3, ip 13093 mla r0, r2, r0, ip 13094.L1938: 13095 cmp r0, r3 13096 bne .L1940 13097 cbnz r6, .L1941 13098 ldr r1, .L1993+4 13099 movw r2, #3571 13100 ldr r0, .L1993+8 13101 bl printf 13102 ldr r1, .L1993+12 13103 ldr r0, .L1993+16 13104 bl printf 13105.L1941: 13106 ldr r3, .L1993+28 13107 ldr r8, .L1993+80 13108 ldr r3, [r3] 13109 cbz r3, .L1942 13110 ldr r3, .L1993+32 13111 cmp r4, r3 13112 bne .L1942 13113 ldr r3, [r8] 13114 ldrh r3, [r3, r5, lsl #1] 13115 cmp r3, #40 13116 itt hi 13117 movhi r3, #0 13118 strbhi r3, [r4, #8] 13119.L1942: 13120 ldr r3, .L1993+36 13121 ldrh r3, [r3] 13122 cmp r3, r10 13123 bne .L1943 13124 ldr r1, .L1993+4 13125 movw r2, #3578 13126 ldr r0, .L1993+8 13127 bl printf 13128 ldr r1, .L1993+12 13129 ldr r0, .L1993+16 13130 bl printf 13131.L1943: 13132 ldrb r2, [r4, #8] @ zero_extendqisi2 13133 ldr r3, .L1993+40 13134 ldr fp, .L1993+84 13135 cmp r2, #0 13136 bne .L1944 13137 ldr r1, [r8] 13138 ldrh r2, [r1, r5, lsl #1] 13139 cmp r2, #0 13140 beq .L1945 13141 ldr r0, .L1993+44 13142 ldrh r0, [r0] 13143 add r2, r2, r0 13144.L1988: 13145 strh r2, [r1, r5, lsl #1] @ movhi 13146 mov r0, r10 13147 ldr r2, [r3] 13148 movs r1, #0 13149 str r3, [sp, #4] 13150 adds r2, r2, #1 13151 str r2, [r3] 13152 bl ftl_set_blk_mode 13153.L1989: 13154 ldr r2, [r8] 13155 ldr r3, [sp, #4] 13156 ldrh r0, [r2, r5, lsl #1] 13157 ldr r2, .L1993+48 13158 ldr r1, [r2] 13159 cmp r0, r1 13160 ldrh r1, [r7] 13161 it hi 13162 strhi r0, [r2] 13163 ldr r2, .L1993+44 13164 ldr r0, [r3] 13165 ldr r3, [fp] 13166 ldrh r2, [r2] 13167 ldr r7, .L1993+52 13168 mla r0, r0, r2, r3 13169 bl __aeabi_uidiv 13170 ldr r3, .L1993+56 13171 str r0, [r3] 13172 ldr r3, .L1993+60 13173 ldr r2, [r3] 13174 ldr r3, [r2, #16] 13175 adds r3, r3, #1 13176 str r3, [r2, #16] 13177 ldr r3, .L1993+20 13178 ldr r0, [r3] 13179 movs r3, #36 13180 adds r1, r0, #4 13181 mla r3, r3, r6, r0 13182 adds r3, r3, #40 13183.L1949: 13184 adds r1, r1, #36 13185 cmp r3, r1 13186 bne .L1950 13187 ldr r3, .L1993+64 13188 ldrb r3, [r3] @ zero_extendqisi2 13189 cbz r3, .L1951 13190 ldrb r3, [r4, #8] @ zero_extendqisi2 13191 mov r2, r6 13192 cmp r3, #1 13193 ite eq 13194 moveq r1, #0 13195 movne r1, #1 13196 bl FlashEraseBlocks 13197.L1951: 13198 ldr r3, .L1993+20 13199 movs r7, #0 13200 mov r8, r7 13201 mov fp, #36 13202 mov r2, r6 13203 ldrb r1, [r4, #8] @ zero_extendqisi2 13204 ldr r0, [r3] 13205 bl FlashEraseBlocks 13206.L1953: 13207 uxth r3, r7 13208 cmp r6, r3 13209 bhi .L1955 13210 cmp r8, #0 13211 beq .L1956 13212 mov r0, r10 13213 bl update_multiplier_value 13214 bl FtlBbmTblFlush 13215.L1956: 13216 ldrb r2, [r4, #7] @ zero_extendqisi2 13217 cmp r2, #0 13218 bne .L1957 13219 ldr r3, .L1993+68 13220 movw r2, #65535 13221 ldr r3, [r3] 13222 strh r2, [r3, r5, lsl #1] @ movhi 13223 b .L1927 13224.L1940: 13225 ldrh r1, [lr], #2 13226 movw fp, #65535 13227 str r8, [r3, #8] 13228 str r8, [r3, #12] 13229 cmp r1, fp 13230 beq .L1939 13231 mla fp, r2, r6, ip 13232 adds r6, r6, #1 13233 lsls r1, r1, #10 13234 uxth r6, r6 13235 str r1, [fp, #4] 13236.L1939: 13237 adds r3, r3, #36 13238 b .L1938 13239.L1945: 13240 movs r2, #2 13241 b .L1988 13242.L1944: 13243 ldr r1, [r8] 13244 mov r0, r10 13245 str r3, [sp, #4] 13246 ldrh r2, [r1, r5, lsl #1] 13247 adds r2, r2, #1 13248 strh r2, [r1, r5, lsl #1] @ movhi 13249 ldr r2, [fp] 13250 adds r2, r2, #1 13251 str r2, [fp] 13252 bl ftl_set_blk_mode.part.11 13253 b .L1989 13254.L1950: 13255 ldr r2, [r1, #-36] 13256 ands r2, r2, r7 13257 str r2, [r1, #-36] 13258 b .L1949 13259.L1955: 13260 ldr r2, .L1993+20 13261 mul r3, fp, r7 13262 ldr r2, [r2] 13263 adds r1, r2, r3 13264 ldr r2, [r2, r3] 13265 adds r3, r2, #1 13266 bne .L1954 13267 ldr r0, [r1, #4] 13268 add r8, r8, #1 13269 str r2, [sp, #4] 13270 ubfx r0, r0, #10, #16 13271 bl FtlBbmMapBadBlock 13272 ldr r2, [sp, #4] 13273 add r3, r4, r7, lsl #1 13274 strh r2, [r3, #16] @ movhi 13275 ldrb r3, [r4, #7] @ zero_extendqisi2 13276 subs r3, r3, #1 13277 strb r3, [r4, #7] 13278.L1954: 13279 adds r7, r7, #1 13280 b .L1953 13281.L1957: 13282 ldr r3, .L1993+72 13283 ldr r1, .L1993+76 13284 ldrh r3, [r3] 13285 strh r10, [r4] @ movhi 13286 smulbb r3, r3, r2 13287 movs r2, #0 13288 strh r2, [r4, #2] @ movhi 13289 strb r2, [r4, #6] 13290 ldr r2, [r1] 13291 uxth r3, r3 13292 strh r3, [r4, #4] @ movhi 13293 str r2, [r4, #12] 13294 adds r2, r2, #1 13295 str r2, [r1] 13296 ldr r2, .L1993+68 13297 ldr r1, [sp] 13298 ldr r2, [r2] 13299 strh r3, [r2, r1] @ movhi 13300 ldrh r3, [r4, #4] 13301 cbz r3, .L1958 13302 ldrb r3, [r4, #7] @ zero_extendqisi2 13303 cbnz r3, .L1928 13304.L1958: 13305 ldr r1, .L1993+4 13306 movw r2, #3642 13307 ldr r0, .L1993+8 13308 bl printf 13309 ldr r1, .L1993+12 13310 ldr r0, .L1993+16 13311 bl printf 13312.L1928: 13313 movs r0, #0 13314 add sp, sp, #8 13315 @ sp needed 13316 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13317.L1994: 13318 .align 2 13319.L1993: 13320 .word .LANCHOR90 13321 .word .LANCHOR212 13322 .word .LC5 13323 .word .LC6 13324 .word .LC7 13325 .word .LANCHOR79 13326 .word .LANCHOR38 13327 .word .LANCHOR104 13328 .word .LANCHOR93 13329 .word .LANCHOR213 13330 .word .LANCHOR172 13331 .word .LANCHOR48 13332 .word .LANCHOR174 13333 .word -1024 13334 .word .LANCHOR214 13335 .word .LANCHOR199 13336 .word .LANCHOR16 13337 .word .LANCHOR85 13338 .word .LANCHOR52 13339 .word .LANCHOR164 13340 .word .LANCHOR80 13341 .word .LANCHOR173 13342 .size allocate_data_superblock, .-allocate_data_superblock 13343 .section .text.FtlGcFreeBadSuperBlk,"ax",%progbits 13344 .align 1 13345 .global FtlGcFreeBadSuperBlk 13346 .syntax unified 13347 .thumb 13348 .thumb_func 13349 .fpu softvfp 13350 .type FtlGcFreeBadSuperBlk, %function 13351FtlGcFreeBadSuperBlk: 13352 @ args = 0, pretend = 0, frame = 8 13353 @ frame_needed = 0, uses_anonymous_args = 0 13354 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 13355 mov r10, r0 13356 ldr r4, .L2007 13357 ldrh r3, [r4] 13358 cbz r3, .L1996 13359 ldr r8, .L2007+12 13360 movs r7, #0 13361.L1997: 13362 ldr r3, .L2007+4 13363 ldrh r2, [r3] 13364 uxth r3, r7 13365 cmp r2, r3 13366 bhi .L2003 13367 bl FtlGcReFreshBadBlk 13368.L1996: 13369 movs r0, #0 13370 add sp, sp, #8 13371 @ sp needed 13372 pop {r4, r5, r6, r7, r8, r10, fp, pc} 13373.L2003: 13374 ldr r2, .L2007+8 13375 uxth r3, r7 13376 mov r1, r10 13377 mov fp, #0 13378 ldrb r0, [r2, r3] @ zero_extendqisi2 13379 bl V2P_block 13380 mov r1, r0 13381.L1998: 13382 ldrh r3, [r4] 13383 uxth r5, fp 13384 cmp r3, r5 13385 bhi .L2002 13386 adds r7, r7, #1 13387 b .L1997 13388.L2002: 13389 uxth r6, fp 13390 ldrh r3, [r8, r6, lsl #1] 13391 cmp r3, r1 13392 bne .L1999 13393 mov r0, r1 13394 str r1, [sp, #4] 13395 bl FtlBbmMapBadBlock 13396 bl FtlBbmTblFlush 13397 ldrh r2, [r4] 13398 add r3, r8, r6, lsl #1 13399 ldr r1, [sp, #4] 13400.L2000: 13401 cmp r5, r2 13402 bcc .L2001 13403 subs r2, r2, #1 13404 strh r2, [r4] @ movhi 13405.L1999: 13406 add fp, fp, #1 13407 b .L1998 13408.L2001: 13409 ldrh r0, [r3, #2]! 13410 adds r5, r5, #1 13411 uxth r5, r5 13412 strh r0, [r3, #-2] @ movhi 13413 b .L2000 13414.L2008: 13415 .align 2 13416.L2007: 13417 .word .LANCHOR119 13418 .word .LANCHOR38 13419 .word .LANCHOR47 13420 .word .LANCHOR120 13421 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk 13422 .section .text.update_vpc_list,"ax",%progbits 13423 .align 1 13424 .global update_vpc_list 13425 .syntax unified 13426 .thumb 13427 .thumb_func 13428 .fpu softvfp 13429 .type update_vpc_list, %function 13430update_vpc_list: 13431 @ args = 0, pretend = 0, frame = 0 13432 @ frame_needed = 0, uses_anonymous_args = 0 13433 push {r3, r4, r5, lr} 13434 mov r4, r0 13435 ldr r3, .L2019 13436 ldr r3, [r3] 13437 ldrh r3, [r3, r0, lsl #1] 13438 cmp r3, #0 13439 bne .L2010 13440 ldr r2, .L2019+4 13441 ldrh r1, [r2] 13442 cmp r1, r0 13443 bne .L2011 13444 movw r3, #65535 13445 strh r3, [r2] @ movhi 13446.L2012: 13447 ldr r5, .L2019+8 13448 mov r1, r4 13449 ldr r0, .L2019+12 13450 bl List_remove_node 13451 ldrh r3, [r5] 13452 cbnz r3, .L2014 13453 ldr r1, .L2019+16 13454 movw r2, #3767 13455 ldr r0, .L2019+20 13456 bl printf 13457 ldr r1, .L2019+24 13458 ldr r0, .L2019+28 13459 bl printf 13460.L2014: 13461 ldrh r3, [r5] 13462 mov r0, r4 13463 subs r3, r3, #1 13464 strh r3, [r5] @ movhi 13465 bl free_data_superblock 13466 mov r0, r4 13467 bl FtlGcFreeBadSuperBlk 13468 ldr r3, .L2019+32 13469 ldrh r2, [r5] 13470 ldrh r3, [r3] 13471 add r3, r3, r2 13472 ldr r2, .L2019+36 13473 ldrh r2, [r2] 13474 cmp r3, r2 13475 ble .L2018 13476 ldr r1, .L2019+16 13477 movw r2, #3770 13478 ldr r0, .L2019+20 13479 bl printf 13480 ldr r1, .L2019+24 13481 ldr r0, .L2019+28 13482 bl printf 13483.L2018: 13484 movs r3, #1 13485 b .L2009 13486.L2011: 13487 ldr r2, .L2019+40 13488 ldrh r2, [r2] 13489 cmp r2, r0 13490 beq .L2009 13491 ldr r2, .L2019+44 13492 ldrh r2, [r2] 13493 cmp r2, r0 13494 beq .L2009 13495 ldr r2, .L2019+48 13496 ldrh r2, [r2] 13497 cmp r2, r0 13498 bne .L2012 13499.L2009: 13500 mov r0, r3 13501 pop {r3, r4, r5, pc} 13502.L2010: 13503 bl List_update_data_list 13504 movs r3, #0 13505 b .L2009 13506.L2020: 13507 .align 2 13508.L2019: 13509 .word .LANCHOR85 13510 .word .LANCHOR213 13511 .word .LANCHOR87 13512 .word .LANCHOR84 13513 .word .LANCHOR215 13514 .word .LC5 13515 .word .LC6 13516 .word .LC7 13517 .word .LANCHOR90 13518 .word .LANCHOR40 13519 .word .LANCHOR93 13520 .word .LANCHOR94 13521 .word .LANCHOR95 13522 .size update_vpc_list, .-update_vpc_list 13523 .section .text.decrement_vpc_count,"ax",%progbits 13524 .align 1 13525 .global decrement_vpc_count 13526 .syntax unified 13527 .thumb 13528 .thumb_func 13529 .fpu softvfp 13530 .type decrement_vpc_count, %function 13531decrement_vpc_count: 13532 @ args = 0, pretend = 0, frame = 0 13533 @ frame_needed = 0, uses_anonymous_args = 0 13534 movw r3, #65535 13535 push {r4, r5, r6, lr} 13536 cmp r0, r3 13537 mov r4, r0 13538 beq .L2022 13539 ldr r5, .L2033 13540 ldr r3, [r5] 13541 ldrh r2, [r3, r0, lsl #1] 13542 cmp r2, #0 13543 bne .L2023 13544 mov r1, r0 13545 ldr r0, .L2033+4 13546 bl printf 13547 ldr r3, [r5] 13548 ldrh r3, [r3, r4, lsl #1] 13549 cbnz r3, .L2024 13550 ldr r1, .L2033+8 13551 movw r2, #3786 13552 ldr r0, .L2033+12 13553 bl printf 13554 ldr r1, .L2033+16 13555 ldr r0, .L2033+20 13556 bl printf 13557.L2024: 13558 ldr r3, [r5] 13559 movs r2, #32 13560 mov r1, r4 13561 ldr r0, .L2033+24 13562 strh r2, [r3, r4, lsl #1] @ movhi 13563 bl test_node_in_list 13564 cbz r0, .L2025 13565 ldr r6, .L2033+28 13566 mov r1, r4 13567 ldr r0, .L2033+24 13568 bl List_remove_node 13569 ldrh r3, [r6] 13570 cbnz r3, .L2026 13571 ldr r1, .L2033+8 13572 mov r2, #3792 13573 ldr r0, .L2033+12 13574 bl printf 13575 ldr r1, .L2033+16 13576 ldr r0, .L2033+20 13577 bl printf 13578.L2026: 13579 ldrh r3, [r6] 13580 mov r0, r4 13581 subs r3, r3, #1 13582 strh r3, [r6] @ movhi 13583 bl INSERT_DATA_LIST 13584 ldr r3, [r5] 13585 mov r1, r4 13586 ldr r0, .L2033+32 13587 ldrh r2, [r3, r4, lsl #1] 13588 bl printf 13589.L2025: 13590 mov r0, r4 13591 bl FtlGcRefreshBlock 13592.L2029: 13593 movs r5, #0 13594 b .L2021 13595.L2023: 13596 subs r2, r2, #1 13597 strh r2, [r3, r0, lsl #1] @ movhi 13598.L2022: 13599 ldr r6, .L2033+36 13600 movw r3, #65535 13601 ldrh r0, [r6] 13602 cmp r0, r3 13603 bne .L2028 13604 strh r4, [r6] @ movhi 13605 b .L2029 13606.L2028: 13607 cmp r4, r0 13608 beq .L2029 13609 bl update_vpc_list 13610 ldr r3, .L2033+40 13611 adds r5, r0, #0 13612 ldr r2, .L2033+44 13613 it ne 13614 movne r5, #1 13615 strh r4, [r6] @ movhi 13616 ldr r3, [r3] 13617 ldr r2, [r2] 13618 subs r3, r3, r2 13619 asrs r2, r3, #1 13620 ldr r3, .L2033+48 13621 muls r3, r2, r3 13622 ldr r2, .L2033 13623 ldr r2, [r2] 13624 uxth r1, r3 13625 ldrh r2, [r2, r1, lsl #1] 13626 cbnz r2, .L2021 13627 cmp r4, r1 13628 beq .L2021 13629 ldr r1, .L2033+8 13630 movw r2, #3816 13631 ldr r0, .L2033+12 13632 bl printf 13633 ldr r1, .L2033+16 13634 ldr r0, .L2033+20 13635 bl printf 13636.L2021: 13637 mov r0, r5 13638 pop {r4, r5, r6, pc} 13639.L2034: 13640 .align 2 13641.L2033: 13642 .word .LANCHOR85 13643 .word .LC38 13644 .word .LANCHOR216 13645 .word .LC5 13646 .word .LC6 13647 .word .LC7 13648 .word .LANCHOR89 13649 .word .LANCHOR90 13650 .word .LC39 13651 .word .LANCHOR136 13652 .word .LANCHOR84 13653 .word .LANCHOR83 13654 .word -1431655765 13655 .size decrement_vpc_count, .-decrement_vpc_count 13656 .section .text.FtlSlcSuperblockCheck,"ax",%progbits 13657 .align 1 13658 .global FtlSlcSuperblockCheck 13659 .syntax unified 13660 .thumb 13661 .thumb_func 13662 .fpu softvfp 13663 .type FtlSlcSuperblockCheck, %function 13664FtlSlcSuperblockCheck: 13665 @ args = 0, pretend = 0, frame = 0 13666 @ frame_needed = 0, uses_anonymous_args = 0 13667 ldrh r3, [r0, #4] 13668 push {r4, r5, r6, lr} 13669 mov r4, r0 13670 cmp r3, #0 13671 beq .L2035 13672 ldrh r2, [r0] 13673 movw r3, #65535 13674 cmp r2, r3 13675 beq .L2035 13676 ldrb r3, [r0, #6] @ zero_extendqisi2 13677 ldr r5, .L2046 13678 ldr r6, .L2046+4 13679 adds r3, r3, #8 13680 ldrh r3, [r0, r3, lsl #1] 13681.L2039: 13682 movw r2, #65535 13683 cmp r3, r2 13684 beq .L2041 13685 ldrb r3, [r4, #8] @ zero_extendqisi2 13686 cmp r3, #1 13687 bne .L2042 13688 ldrb r1, [r5] @ zero_extendqisi2 13689 cbnz r1, .L2042 13690 ldrh r1, [r4, #2] 13691 ldrh r1, [r6, r1, lsl #1] 13692 cmp r1, r2 13693 bne .L2042 13694 ldrh r3, [r4, #4] 13695 ldrh r0, [r4] 13696 subs r3, r3, #1 13697 strh r3, [r4, #4] @ movhi 13698 bl decrement_vpc_count 13699 ldrh r2, [r4, #4] 13700 cbnz r2, .L2041 13701 ldrh r3, [r4, #2] 13702 strb r2, [r4, #6] 13703 adds r3, r3, #1 13704 strh r3, [r4, #2] @ movhi 13705 pop {r4, r5, r6, pc} 13706.L2041: 13707 ldrb r3, [r4, #6] @ zero_extendqisi2 13708 ldr r2, .L2046+8 13709 adds r3, r3, #1 13710 ldrh r2, [r2] 13711 uxtb r3, r3 13712 strb r3, [r4, #6] 13713 cmp r2, r3 13714 bne .L2040 13715 ldrh r3, [r4, #2] 13716 adds r3, r3, #1 13717 strh r3, [r4, #2] @ movhi 13718 movs r3, #0 13719 strb r3, [r4, #6] 13720.L2040: 13721 ldrb r3, [r4, #6] @ zero_extendqisi2 13722 adds r3, r3, #8 13723 ldrh r3, [r4, r3, lsl #1] 13724 b .L2039 13725.L2042: 13726 ldrb r2, [r5] @ zero_extendqisi2 13727 cbz r2, .L2035 13728 cmp r3, #1 13729 bne .L2035 13730 ldr r3, .L2046+12 13731 ldrh r2, [r4, #2] 13732 ldrh r3, [r3] 13733 cmp r2, r3 13734 bcc .L2035 13735 ldr r3, .L2046+16 13736 ldrh r1, [r4] 13737 ldrh r0, [r4, #4] 13738 ldr r2, [r3] 13739 ldrh r3, [r2, r1, lsl #1] 13740 subs r3, r3, r0 13741 strh r3, [r2, r1, lsl #1] @ movhi 13742 movs r3, #0 13743 ldr r2, .L2046+20 13744 strh r3, [r4, #4] @ movhi 13745 strb r3, [r4, #6] 13746 ldrh r2, [r2] 13747 strh r2, [r4, #2] @ movhi 13748.L2035: 13749 pop {r4, r5, r6, pc} 13750.L2047: 13751 .align 2 13752.L2046: 13753 .word .LANCHOR16 13754 .word .LANCHOR123 13755 .word .LANCHOR38 13756 .word .LANCHOR53 13757 .word .LANCHOR85 13758 .word .LANCHOR52 13759 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck 13760 .section .text.get_new_active_ppa,"ax",%progbits 13761 .align 1 13762 .global get_new_active_ppa 13763 .syntax unified 13764 .thumb 13765 .thumb_func 13766 .fpu softvfp 13767 .type get_new_active_ppa, %function 13768get_new_active_ppa: 13769 @ args = 0, pretend = 0, frame = 0 13770 @ frame_needed = 0, uses_anonymous_args = 0 13771 ldrh r2, [r0] 13772 movw r3, #65535 13773 push {r4, r5, r6, r7, r8, lr} 13774 mov r4, r0 13775 cmp r2, r3 13776 bne .L2049 13777 ldr r1, .L2070 13778 movw r2, #3700 13779 ldr r0, .L2070+4 13780 bl printf 13781 ldr r1, .L2070+8 13782 ldr r0, .L2070+12 13783 bl printf 13784.L2049: 13785 ldr r5, .L2070+16 13786 ldrh r2, [r4, #2] 13787 ldrh r3, [r5] 13788 cmp r2, r3 13789 bne .L2050 13790 ldr r1, .L2070 13791 movw r2, #3701 13792 ldr r0, .L2070+4 13793 bl printf 13794 ldr r1, .L2070+8 13795 ldr r0, .L2070+12 13796 bl printf 13797.L2050: 13798 ldrh r3, [r4, #4] 13799 cbnz r3, .L2051 13800 ldr r1, .L2070 13801 movw r2, #3702 13802 ldr r0, .L2070+4 13803 bl printf 13804 ldr r1, .L2070+8 13805 ldr r0, .L2070+12 13806 bl printf 13807.L2051: 13808 movs r3, #0 13809 ldr r7, .L2070+20 13810 strb r3, [r4, #10] 13811 ldrb r3, [r4, #6] @ zero_extendqisi2 13812 ldr r6, .L2070+24 13813 adds r3, r3, #8 13814 ldrh r2, [r4, r3, lsl #1] 13815.L2052: 13816 movw r0, #65535 13817 cmp r2, r0 13818 beq .L2053 13819 ldrb r3, [r4, #8] @ zero_extendqisi2 13820 ldrh r1, [r4, #2] 13821 cmp r3, #1 13822 ldrh r3, [r4, #4] 13823 bne .L2055 13824 ldrb ip, [r6] @ zero_extendqisi2 13825 cmp ip, #0 13826 bne .L2055 13827 ldr ip, .L2070+28 13828 ldrh ip, [ip, r1, lsl #1] 13829 cmp ip, r0 13830 bne .L2055 13831 subs r3, r3, #1 13832 ldrh r0, [r4] 13833 strh r3, [r4, #4] @ movhi 13834 bl decrement_vpc_count 13835.L2053: 13836 ldrb r3, [r4, #6] @ zero_extendqisi2 13837 ldrh r2, [r7] 13838 adds r3, r3, #1 13839 uxtb r3, r3 13840 cmp r2, r3 13841 strb r3, [r4, #6] 13842 bne .L2054 13843 ldrh r3, [r4, #2] 13844 adds r3, r3, #1 13845 strh r3, [r4, #2] @ movhi 13846 movs r3, #0 13847 strb r3, [r4, #6] 13848.L2054: 13849 ldrb r3, [r4, #6] @ zero_extendqisi2 13850 adds r3, r3, #8 13851 ldrh r2, [r4, r3, lsl #1] 13852 b .L2052 13853.L2055: 13854 ldr r8, .L2070+24 13855 orr r6, r1, r2, lsl #10 13856 subs r3, r3, #1 13857 strh r3, [r4, #4] @ movhi 13858.L2056: 13859 ldrb r3, [r4, #6] @ zero_extendqisi2 13860 movw r2, #65535 13861 ldrh r0, [r7] 13862.L2058: 13863 adds r3, r3, #1 13864 uxtb r3, r3 13865 cmp r3, r0 13866 itttt eq 13867 ldrheq r3, [r4, #2] 13868 addeq r3, r3, #1 13869 strheq r3, [r4, #2] @ movhi 13870 moveq r3, #0 13871 add r1, r3, #8 13872 ldrh r1, [r4, r1, lsl #1] 13873 cmp r1, r2 13874 beq .L2058 13875 strb r3, [r4, #6] 13876 ldrb r3, [r4, #8] @ zero_extendqisi2 13877 cmp r3, #1 13878 bne .L2059 13879 ldrb r1, [r8] @ zero_extendqisi2 13880 ldrh r3, [r4, #2] 13881 cbnz r1, .L2060 13882 ldr r1, .L2070+28 13883 ldrh r3, [r1, r3, lsl #1] 13884 cmp r3, r2 13885 bne .L2059 13886 ldrh r3, [r4, #4] 13887 cbz r3, .L2059 13888 subs r3, r3, #1 13889 ldrh r0, [r4] 13890 strh r3, [r4, #4] @ movhi 13891 bl decrement_vpc_count 13892 b .L2056 13893.L2060: 13894 ldr r2, .L2070+32 13895 ldrh r2, [r2] 13896 cmp r3, r2 13897 bcc .L2059 13898 ldr r3, .L2070+36 13899 ldrh r1, [r4] 13900 ldrh r0, [r4, #4] 13901 ldr r2, [r3] 13902 ldrh r3, [r2, r1, lsl #1] 13903 subs r3, r3, r0 13904 strh r3, [r2, r1, lsl #1] @ movhi 13905 movs r3, #0 13906 ldrh r2, [r5] 13907 strh r3, [r4, #4] @ movhi 13908 strb r3, [r4, #6] 13909 strh r2, [r4, #2] @ movhi 13910.L2059: 13911 ldrh r2, [r4, #2] 13912 ldrh r3, [r5] 13913 cmp r2, r3 13914 bne .L2048 13915 ldrh r3, [r4, #4] 13916 cbz r3, .L2048 13917 ldr r1, .L2070 13918 movw r2, #3752 13919 ldr r0, .L2070+4 13920 bl printf 13921 ldr r1, .L2070+8 13922 ldr r0, .L2070+12 13923 bl printf 13924.L2048: 13925 mov r0, r6 13926 pop {r4, r5, r6, r7, r8, pc} 13927.L2071: 13928 .align 2 13929.L2070: 13930 .word .LANCHOR217 13931 .word .LC5 13932 .word .LC6 13933 .word .LC7 13934 .word .LANCHOR52 13935 .word .LANCHOR38 13936 .word .LANCHOR16 13937 .word .LANCHOR123 13938 .word .LANCHOR53 13939 .word .LANCHOR85 13940 .size get_new_active_ppa, .-get_new_active_ppa 13941 .section .text.FtlVpcTblFlush,"ax",%progbits 13942 .align 1 13943 .global FtlVpcTblFlush 13944 .syntax unified 13945 .thumb 13946 .thumb_func 13947 .fpu softvfp 13948 .type FtlVpcTblFlush, %function 13949FtlVpcTblFlush: 13950 @ args = 0, pretend = 0, frame = 8 13951 @ frame_needed = 0, uses_anonymous_args = 0 13952 ldr r2, .L2096 13953 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 13954 ldr r3, [r2] 13955 str r2, [sp, #4] 13956 cmp r3, #0 13957 bne .L2074 13958 ldr r4, .L2096+4 13959 ldr r8, .L2096+112 13960 ldr fp, .L2096+116 13961 ldr r5, .L2096+8 13962 ldr r0, [r8] 13963 ldr r6, [fp] 13964 ldrh r2, [r4] 13965 str r0, [r5, #8] 13966 str r6, [r5, #12] 13967 strh r2, [r6, #2] @ movhi 13968 movw r2, #61604 13969 ldr r7, .L2096+12 13970 strh r2, [r6] @ movhi 13971 str r3, [r6, #12] 13972 ldr ip, .L2096+120 13973 ldr r2, [r4, #8] 13974 str r3, [r6, #8] 13975 ldr r3, .L2096+16 13976 str r2, [r6, #4] 13977 stm r7, {r3, ip} 13978 ldrh r3, [r4, #6] 13979 strh r3, [r7, #8] @ movhi 13980 ldr r3, .L2096+20 13981 ldrh r3, [r3] 13982 strb r3, [r7, #10] 13983 ldr r3, .L2096+24 13984 ldrh r2, [r3] 13985 ldrh r1, [r3, #2] 13986 strh r2, [r7, #14] @ movhi 13987 ldrb r2, [r3, #6] @ zero_extendqisi2 13988 ldrb r3, [r3, #8] @ zero_extendqisi2 13989 strb r3, [r7, #11] 13990 orr r2, r2, r1, lsl #6 13991 ldr r3, .L2096+28 13992 strh r2, [r7, #16] @ movhi 13993 ldrh r2, [r3] 13994 ldrh r1, [r3, #2] 13995 strh r2, [r7, #18] @ movhi 13996 ldrb r2, [r3, #6] @ zero_extendqisi2 13997 ldrb r3, [r3, #8] @ zero_extendqisi2 13998 strb r3, [r7, #12] 13999 orr r2, r2, r1, lsl #6 14000 ldr r3, .L2096+32 14001 strh r2, [r7, #20] @ movhi 14002 ldrh r2, [r3] 14003 strh r2, [r7, #22] @ movhi 14004 ldrh r1, [r3, #2] 14005 ldrb r2, [r3, #6] @ zero_extendqisi2 14006 ldrb r3, [r3, #8] @ zero_extendqisi2 14007 strb r3, [r7, #13] 14008 orr r2, r2, r1, lsl #6 14009 ldr r3, .L2096+36 14010 movs r1, #255 14011 strh r2, [r7, #24] @ movhi 14012 ldr r3, [r3] 14013 str r3, [r7, #32] 14014 ldr r3, .L2096+40 14015 ldr r3, [r3] 14016 str r3, [r7, #40] 14017 ldr r3, .L2096+44 14018 ldr r3, [r3] 14019 str r3, [r7, #36] 14020 ldr r3, .L2096+48 14021 ldrh r3, [r3] 14022 strh r3, [r7, #44] @ movhi 14023 ldr r3, .L2096+52 14024 ldrh r3, [r3] 14025 strh r3, [r7, #46] @ movhi 14026 ldr r3, .L2096+56 14027 ldrh r2, [r3] 14028 bl ftl_memset 14029 mov r1, r7 14030 ldr r7, .L2096+60 14031 movs r2, #48 14032 ldr r0, [r5, #8] 14033 bl ftl_memcpy 14034 ldrh r2, [r7] 14035 ldr r3, .L2096+64 14036 ldr r0, [r5, #8] 14037 ldr r1, [r3] 14038 lsls r2, r2, #1 14039 adds r0, r0, #48 14040 bl ftl_memcpy 14041 ldrh r0, [r7] 14042 ldr r3, [r5, #8] 14043 ldr r1, .L2096+68 14044 lsrs r2, r0, #3 14045 lsls r0, r0, #1 14046 ldr r1, [r1] 14047 adds r0, r0, #51 14048 adds r2, r2, #4 14049 bic r0, r0, #3 14050 add r0, r0, r3 14051 bl ftl_memcpy 14052 ldr r3, .L2096+72 14053 ldrh r3, [r3] 14054 cbz r3, .L2075 14055 ldrh r0, [r7] 14056 ldr r3, .L2096+76 14057 ldr r1, .L2096+80 14058 ldrh r2, [r3] 14059 lsrs r3, r0, #3 14060 ldr r1, [r1] 14061 add r3, r3, r0, lsl #1 14062 ldr r0, [r5, #8] 14063 adds r3, r3, #52 14064 lsls r2, r2, #2 14065 ubfx r3, r3, #2, #14 14066 add r0, r0, r3, lsl #2 14067 bl ftl_memcpy 14068.L2075: 14069 movs r7, #0 14070 movw r10, #65535 14071 movs r0, #0 14072 bl FtlUpdateVaildLpn 14073.L2076: 14074 ldr r3, [r8] 14075 ldrh r1, [r4, #2] 14076 ldrh r2, [r4] 14077 str r3, [r5, #8] 14078 ldr r3, [fp] 14079 str r3, [r5, #12] 14080 orr r3, r1, r2, lsl #10 14081 str r3, [r5, #4] 14082 ldr r3, .L2096+84 14083 ldrh r3, [r3] 14084 subs r3, r3, #1 14085 cmp r1, r3 14086 blt .L2077 14087 movs r3, #0 14088 ldrh r10, [r4, #4] 14089 strh r3, [r4, #2] @ movhi 14090 strh r2, [r4, #4] @ movhi 14091 bl FtlFreeSysBlkQueueOut 14092 ldr r3, .L2096+40 14093 ldr r1, .L2096+40 14094 strh r0, [r4] @ movhi 14095 ldr r3, [r3] 14096 adds r2, r3, #1 14097 str r3, [r4, #8] 14098 str r2, [r1] 14099 lsls r2, r0, #10 14100 str r2, [r5, #4] 14101 str r3, [r6, #4] 14102 strh r0, [r6, #2] @ movhi 14103.L2077: 14104 ldr r3, .L2096+88 14105 ldrb r3, [r3] @ zero_extendqisi2 14106 cbz r3, .L2078 14107 ldr r3, .L2096+56 14108 ldr r0, [r8] 14109 ldrh r1, [r3] 14110 bl js_hash 14111 str r0, [r6, #12] 14112.L2078: 14113 movs r3, #1 14114 ldr r0, .L2096+8 14115 mov r2, r3 14116 mov r1, r3 14117 bl FlashProgPages 14118 ldrh r3, [r4, #2] 14119 ldr r2, [r5] 14120 adds r3, r3, #1 14121 uxth r3, r3 14122 adds r1, r2, #1 14123 strh r3, [r4, #2] @ movhi 14124 bne .L2079 14125 cmp r3, #1 14126 bne .L2080 14127 ldr r1, .L2096+92 14128 movw r2, #1375 14129 ldr r0, .L2096+96 14130 bl printf 14131 ldr r1, .L2096+100 14132 ldr r0, .L2096+104 14133 bl printf 14134.L2080: 14135 ldrh r3, [r4, #2] 14136 adds r7, r7, #1 14137 uxth r7, r7 14138 cmp r3, #1 14139 itttt eq 14140 ldreq r3, .L2096+84 14141 ldrheq r3, [r3] 14142 addeq r3, r3, #-1 14143 strheq r3, [r4, #2] @ movhi 14144 cmp r7, #3 14145 bls .L2076 14146 mov r2, r7 14147 ldr r1, [r5, #4] 14148 ldr r0, .L2096+108 14149 bl printf 14150 ldr r2, [sp, #4] 14151 movs r3, #1 14152 str r3, [r2] 14153.L2074: 14154 movs r0, #0 14155 add sp, sp, #8 14156 @ sp needed 14157 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14158.L2079: 14159 cmp r3, #1 14160 beq .L2076 14161 cmp r2, #256 14162 beq .L2076 14163 movw r3, #65535 14164 cmp r10, r3 14165 beq .L2074 14166 movs r1, #1 14167 mov r0, r10 14168 bl FtlFreeSysBlkQueueIn 14169 b .L2074 14170.L2097: 14171 .align 2 14172.L2096: 14173 .word .LANCHOR78 14174 .word .LANCHOR218 14175 .word .LANCHOR211 14176 .word .LANCHOR82 14177 .word 1179929683 14178 .word .LANCHOR45 14179 .word .LANCHOR93 14180 .word .LANCHOR94 14181 .word .LANCHOR95 14182 .word .LANCHOR172 14183 .word .LANCHOR164 14184 .word .LANCHOR165 14185 .word .LANCHOR115 14186 .word .LANCHOR116 14187 .word .LANCHOR57 14188 .word .LANCHOR40 14189 .word .LANCHOR85 14190 .word .LANCHOR1 14191 .word .LANCHOR69 14192 .word .LANCHOR66 14193 .word .LANCHOR134 14194 .word .LANCHOR53 14195 .word .LANCHOR2 14196 .word .LANCHOR219 14197 .word .LC5 14198 .word .LC6 14199 .word .LC7 14200 .word .LC40 14201 .word .LANCHOR189 14202 .word .LANCHOR195 14203 .word 1342177379 14204 .size FtlVpcTblFlush, .-FtlVpcTblFlush 14205 .section .text.FtlSuperblockPowerLostFix,"ax",%progbits 14206 .align 1 14207 .global FtlSuperblockPowerLostFix 14208 .syntax unified 14209 .thumb 14210 .thumb_func 14211 .fpu softvfp 14212 .type FtlSuperblockPowerLostFix, %function 14213FtlSuperblockPowerLostFix: 14214 @ args = 0, pretend = 0, frame = 40 14215 @ frame_needed = 0, uses_anonymous_args = 0 14216 ldr r3, .L2113 14217 push {r4, r5, r6, r7, r8, r10, lr} 14218 mov r4, r0 14219 sub sp, sp, #44 14220 ldr r8, [r3] 14221 cmp r8, #0 14222 bne .L2098 14223 ldr r3, .L2113+4 14224 ldrb r3, [r3] @ zero_extendqisi2 14225 cmp r3, #0 14226 beq .L2109 14227 ldrb r3, [r0, #8] @ zero_extendqisi2 14228 cmp r3, #1 14229 bne .L2109 14230 ldrh r6, [r0, #4] 14231 mov r8, r3 14232.L2100: 14233 mov r3, #-1 14234 ldr r2, .L2113+8 14235 str r3, [sp, #20] 14236 movs r7, #0 14237 ldr r3, .L2113+12 14238 ldr r5, [r2] 14239 mvn r2, #2 14240 ldr r10, .L2113+24 14241 ldr r3, [r3] 14242 str r5, [sp, #16] 14243 str r3, [sp, #12] 14244 str r2, [r5, #8] 14245 mvn r2, #1 14246 str r2, [r5, #12] 14247 ldrh r2, [r4] 14248 strh r7, [r5] @ movhi 14249 strh r2, [r5, #2] @ movhi 14250 movw r2, #61589 14251 str r2, [r3] 14252 add r2, r2, #304087040 14253 add r2, r2, #1269760 14254 addw r2, r2, #1507 14255 str r2, [r3, #4] 14256.L2101: 14257 adds r6, r6, #-1 14258 bcc .L2104 14259 ldrh r3, [r4, #4] 14260 cbnz r3, .L2102 14261.L2104: 14262 ldr r3, .L2113+16 14263 ldrh r1, [r4] 14264 ldrh r0, [r4, #4] 14265 ldr r2, [r3] 14266 ldrh r3, [r2, r1, lsl #1] 14267 subs r3, r3, r0 14268 strh r3, [r2, r1, lsl #1] @ movhi 14269 ldr r3, .L2113+20 14270 ldrh r3, [r3] 14271 strh r3, [r4, #2] @ movhi 14272 movs r3, #0 14273 strb r3, [r4, #6] 14274 strh r3, [r4, #4] @ movhi 14275.L2098: 14276 add sp, sp, #44 14277 @ sp needed 14278 pop {r4, r5, r6, r7, r8, r10, pc} 14279.L2109: 14280 movs r6, #12 14281 b .L2100 14282.L2102: 14283 mov r0, r4 14284 bl get_new_active_ppa 14285 str r0, [sp, #8] 14286 adds r0, r0, #1 14287 beq .L2104 14288 ldr r3, [r10] 14289 movs r1, #1 14290 add r0, sp, #4 14291 str r3, [r5, #4] 14292 adds r3, r3, #1 14293 adds r2, r3, #1 14294 mov r2, r8 14295 it eq 14296 moveq r3, r7 14297 str r3, [r10] 14298 movs r3, #0 14299 bl FlashProgPages 14300 ldrh r0, [r4] 14301 bl decrement_vpc_count 14302 b .L2101 14303.L2114: 14304 .align 2 14305.L2113: 14306 .word .LANCHOR78 14307 .word .LANCHOR16 14308 .word .LANCHOR195 14309 .word .LANCHOR189 14310 .word .LANCHOR85 14311 .word .LANCHOR52 14312 .word .LANCHOR165 14313 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix 14314 .section .text.FtlLoadFactoryBbt,"ax",%progbits 14315 .align 1 14316 .global FtlLoadFactoryBbt 14317 .syntax unified 14318 .thumb 14319 .thumb_func 14320 .fpu softvfp 14321 .type FtlLoadFactoryBbt, %function 14322FtlLoadFactoryBbt: 14323 @ args = 0, pretend = 0, frame = 0 14324 @ frame_needed = 0, uses_anonymous_args = 0 14325 ldr r3, .L2125 14326 push {r4, r5, r6, r7, r8, r10, fp, lr} 14327 movs r6, #0 14328 ldr r5, .L2125+4 14329 ldr r3, [r3] 14330 ldr r7, .L2125+8 14331 ldr r10, .L2125+20 14332 str r3, [r5, #8] 14333 ldr r3, .L2125+12 14334 ldr r8, [r3] 14335 str r8, [r5, #12] 14336.L2116: 14337 ldr r3, .L2125+16 14338 ldrh r3, [r3] 14339 cmp r6, r3 14340 bcc .L2121 14341 movs r0, #0 14342 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14343.L2121: 14344 ldrh r4, [r10] 14345 movw r3, #65535 14346 ldr fp, .L2125+4 14347 strh r3, [r7, #2]! @ movhi 14348 subs r4, r4, #1 14349 uxth r4, r4 14350.L2117: 14351 ldrh r3, [r10] 14352 sub r2, r3, #15 14353 cmp r2, r4 14354 bgt .L2119 14355 mla r3, r6, r3, r4 14356 movs r2, #1 14357 mov r1, r2 14358 mov r0, fp 14359 lsls r3, r3, #10 14360 str r3, [r5, #4] 14361 bl FlashReadPages 14362 ldr r3, [r5] 14363 adds r3, r3, #1 14364 beq .L2118 14365 ldrh r2, [r8] 14366 movw r3, #61664 14367 cmp r2, r3 14368 bne .L2118 14369 strh r4, [r7] @ movhi 14370.L2119: 14371 adds r6, r6, #1 14372 b .L2116 14373.L2118: 14374 subs r4, r4, #1 14375 uxth r4, r4 14376 b .L2117 14377.L2126: 14378 .align 2 14379.L2125: 14380 .word .LANCHOR189 14381 .word .LANCHOR211 14382 .word .LANCHOR76+10 14383 .word .LANCHOR195 14384 .word .LANCHOR45 14385 .word .LANCHOR51 14386 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt 14387 .section .text.FtlGetLastWrittenPage,"ax",%progbits 14388 .align 1 14389 .global FtlGetLastWrittenPage 14390 .syntax unified 14391 .thumb 14392 .thumb_func 14393 .fpu softvfp 14394 .type FtlGetLastWrittenPage, %function 14395FtlGetLastWrittenPage: 14396 @ args = 0, pretend = 0, frame = 104 14397 @ frame_needed = 0, uses_anonymous_args = 0 14398 cmp r1, #1 14399 push {r4, r5, r6, r7, r8, lr} 14400 it eq 14401 ldreq r3, .L2139 14402 sub sp, sp, #104 14403 lsl r7, r0, #10 14404 mov r2, r1 14405 it ne 14406 ldrne r3, .L2139+4 14407 mov r8, r1 14408 movs r6, #0 14409 movs r1, #1 14410 add r0, sp, #4 14411 ldrh r5, [r3] 14412 add r3, sp, #40 14413 str r3, [sp, #16] 14414 str r6, [sp, #12] 14415 subs r5, r5, #1 14416 sxth r5, r5 14417 orr r3, r5, r7 14418 str r3, [sp, #8] 14419 bl FlashReadPages 14420 ldr r3, [sp, #40] 14421 adds r3, r3, #1 14422 bne .L2130 14423.L2131: 14424 cmp r6, r5 14425 ble .L2134 14426.L2130: 14427 mov r0, r5 14428 add sp, sp, #104 14429 @ sp needed 14430 pop {r4, r5, r6, r7, r8, pc} 14431.L2134: 14432 adds r3, r6, r5 14433 mov r2, r8 14434 add r3, r3, r3, lsr #31 14435 movs r1, #1 14436 add r0, sp, #4 14437 asrs r4, r3, #1 14438 sxth r3, r4 14439 orrs r3, r3, r7 14440 str r3, [sp, #8] 14441 bl FlashReadPages 14442 ldr r3, [sp, #40] 14443 adds r3, r3, #1 14444 bne .L2132 14445 ldr r3, [sp, #44] 14446 adds r3, r3, #1 14447 bne .L2132 14448 ldr r3, [sp, #4] 14449 adds r3, r3, #1 14450 beq .L2132 14451 subs r4, r4, #1 14452 sxth r5, r4 14453 b .L2131 14454.L2132: 14455 adds r4, r4, #1 14456 sxth r6, r4 14457 b .L2131 14458.L2140: 14459 .align 2 14460.L2139: 14461 .word .LANCHOR53 14462 .word .LANCHOR52 14463 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage 14464 .section .text.FtlLoadBbt,"ax",%progbits 14465 .align 1 14466 .global FtlLoadBbt 14467 .syntax unified 14468 .thumb 14469 .thumb_func 14470 .fpu softvfp 14471 .type FtlLoadBbt, %function 14472FtlLoadBbt: 14473 @ args = 0, pretend = 0, frame = 0 14474 @ frame_needed = 0, uses_anonymous_args = 0 14475 push {r3, r4, r5, r6, r7, r8, r10, lr} 14476 ldr r8, .L2170+48 14477 ldr r4, .L2170 14478 ldr r3, [r8] 14479 ldr r7, .L2170+4 14480 mov r10, r4 14481 str r3, [r4, #8] 14482 ldr r3, .L2170+8 14483 ldr r6, [r3] 14484 str r6, [r4, #12] 14485 bl FtlBbtMemInit 14486 ldrh r5, [r7] 14487 subs r5, r5, #1 14488 uxth r5, r5 14489.L2142: 14490 ldrh r3, [r7] 14491 subs r3, r3, #47 14492 cmp r3, r5 14493 bgt .L2145 14494 lsls r3, r5, #10 14495 movs r2, #1 14496 mov r1, r2 14497 mov r0, r10 14498 str r3, [r4, #4] 14499 bl FlashReadPages 14500 ldr r3, [r4] 14501 adds r3, r3, #1 14502 bne .L2143 14503 ldr r3, [r4, #4] 14504 movs r2, #1 14505 mov r1, r2 14506 mov r0, r10 14507 adds r3, r3, #1 14508 str r3, [r4, #4] 14509 bl FlashReadPages 14510.L2143: 14511 ldr r3, [r4] 14512 adds r3, r3, #1 14513 beq .L2144 14514 ldrh r2, [r6] 14515 movw r3, #61649 14516 cmp r2, r3 14517 bne .L2144 14518 ldr r3, .L2170+12 14519 ldr r2, [r6, #4] 14520 strh r5, [r3] @ movhi 14521 str r2, [r3, #8] 14522 ldrh r2, [r6, #8] 14523 strh r2, [r3, #4] @ movhi 14524.L2145: 14525 ldr r5, .L2170+12 14526 movw r2, #65535 14527 ldrh r3, [r5] 14528 cmp r3, r2 14529 beq .L2159 14530 ldrh r3, [r5, #4] 14531 cmp r3, r2 14532 beq .L2149 14533 lsls r3, r3, #10 14534 movs r2, #1 14535 mov r1, r2 14536 ldr r0, .L2170 14537 str r3, [r4, #4] 14538 bl FlashReadPages 14539 ldr r3, [r4] 14540 adds r3, r3, #1 14541 beq .L2149 14542 ldrh r2, [r6] 14543 movw r3, #61649 14544 cmp r2, r3 14545 bne .L2149 14546 ldr r3, [r6, #4] 14547 ldr r2, [r5, #8] 14548 cmp r3, r2 14549 bls .L2149 14550 ldrh r2, [r5, #4] 14551 str r3, [r5, #8] 14552 ldrh r3, [r6, #8] 14553 strh r2, [r5] @ movhi 14554 strh r3, [r5, #4] @ movhi 14555.L2149: 14556 ldr r10, .L2170 14557 movs r1, #1 14558 ldrh r0, [r5] 14559 bl FtlGetLastWrittenPage 14560 sxth r7, r0 14561 adds r0, r0, #1 14562 strh r0, [r5, #2] @ movhi 14563.L2151: 14564 cmp r7, #0 14565 bge .L2154 14566 ldr r1, .L2170+16 14567 movw r2, #339 14568 ldr r0, .L2170+20 14569 bl printf 14570 ldr r1, .L2170+24 14571 ldr r0, .L2170+28 14572 bl printf 14573.L2153: 14574 ldrh r3, [r6, #10] 14575 ldrh r0, [r6, #12] 14576 strh r3, [r5, #6] @ movhi 14577 movw r3, #65535 14578 cmp r0, r3 14579 beq .L2156 14580 ldr r3, .L2170+32 14581 ldr r2, [r3] 14582 cmp r0, r2 14583 beq .L2156 14584 ldr r3, .L2170+36 14585 ldrh r3, [r3] 14586 lsrs r3, r3, #2 14587 cmp r2, r3 14588 bcs .L2156 14589 cmp r0, r3 14590 bcs .L2156 14591 bl FtlSysBlkNumInit 14592.L2156: 14593 ldr r6, .L2170+40 14594 movs r5, #0 14595 ldr r7, .L2170+44 14596 ldr r8, .L2170+52 14597.L2157: 14598 ldrh r3, [r7] 14599 cmp r5, r3 14600 bcc .L2158 14601 movs r0, #0 14602 pop {r3, r4, r5, r6, r7, r8, r10, pc} 14603.L2144: 14604 subs r5, r5, #1 14605 uxth r5, r5 14606 b .L2142 14607.L2154: 14608 ldrh r3, [r5] 14609 movs r2, #1 14610 mov r1, r2 14611 mov r0, r10 14612 orr r3, r7, r3, lsl #10 14613 str r3, [r4, #4] 14614 ldr r3, [r8] 14615 str r3, [r4, #8] 14616 bl FlashReadPages 14617 ldr r3, [r4] 14618 adds r3, r3, #1 14619 beq .L2152 14620 ldrh r2, [r6] 14621 movw r3, #61649 14622 cmp r2, r3 14623 beq .L2153 14624.L2152: 14625 subs r7, r7, #1 14626 sxth r7, r7 14627 b .L2151 14628.L2158: 14629 ldrh r2, [r8] 14630 ldr r1, [r4, #8] 14631 ldr r0, [r6, #4]! 14632 lsls r2, r2, #2 14633 mla r1, r5, r2, r1 14634 adds r5, r5, #1 14635 bl ftl_memcpy 14636 b .L2157 14637.L2159: 14638 mov r0, #-1 14639 pop {r3, r4, r5, r6, r7, r8, r10, pc} 14640.L2171: 14641 .align 2 14642.L2170: 14643 .word .LANCHOR211 14644 .word .LANCHOR51 14645 .word .LANCHOR195 14646 .word .LANCHOR76 14647 .word .LANCHOR220 14648 .word .LC5 14649 .word .LC6 14650 .word .LC7 14651 .word .LANCHOR37 14652 .word .LANCHOR41 14653 .word .LANCHOR76+24 14654 .word .LANCHOR45 14655 .word .LANCHOR189 14656 .word .LANCHOR126 14657 .size FtlLoadBbt, .-FtlLoadBbt 14658 .section .text.ftl_map_blk_gc,"ax",%progbits 14659 .align 1 14660 .global ftl_map_blk_gc 14661 .syntax unified 14662 .thumb 14663 .thumb_func 14664 .fpu softvfp 14665 .type ftl_map_blk_gc, %function 14666ftl_map_blk_gc: 14667 @ args = 0, pretend = 0, frame = 8 14668 @ frame_needed = 0, uses_anonymous_args = 0 14669 ldr r3, [r0, #24] 14670 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 14671 mov r4, r0 14672 ldr r5, [r0, #12] 14673 str r3, [sp] 14674 bl ftl_free_no_use_map_blk 14675 ldrh r3, [r4, #10] 14676 ldrh r2, [r4, #8] 14677 subs r3, r3, #4 14678 cmp r2, r3 14679 blt .L2173 14680 uxth r0, r0 14681 ldrh r8, [r5, r0, lsl #1] 14682 cmp r8, #0 14683 beq .L2173 14684 ldr r3, [r4, #32] 14685 cbnz r3, .L2173 14686 movs r2, #1 14687 str r2, [r4, #32] 14688 strh r3, [r5, r0, lsl #1] @ movhi 14689 ldrh r3, [r4, #8] 14690 ldrh r2, [r4, #2] 14691 subs r3, r3, #1 14692 strh r3, [r4, #8] @ movhi 14693 ldr r3, .L2185 14694 ldrh r3, [r3] 14695 cmp r2, r3 14696 bcc .L2174 14697 mov r0, r4 14698 bl ftl_map_blk_alloc_new_blk 14699.L2174: 14700 ldr r5, .L2185+4 14701 movs r6, #0 14702.L2175: 14703 ldrh r3, [r4, #6] 14704 uxth r10, r6 14705 cmp r3, r10 14706 bhi .L2181 14707 movs r1, #1 14708 mov r0, r8 14709 bl FtlFreeSysBlkQueueIn 14710 movs r3, #0 14711 str r3, [r4, #32] 14712.L2173: 14713 ldr r3, .L2185 14714 ldrh r2, [r4, #2] 14715 ldrh r3, [r3] 14716 cmp r2, r3 14717 bcc .L2179 14718 mov r0, r4 14719 bl ftl_map_blk_alloc_new_blk 14720 b .L2179 14721.L2181: 14722 ldr r3, [sp] 14723 uxth fp, r6 14724 add r3, r3, fp, lsl #2 14725 str r3, [sp, #4] 14726 ldr r3, [sp] 14727 ldr r2, [r3, fp, lsl #2] 14728 cmp r8, r2, lsr #10 14729 bne .L2176 14730 ldr r3, .L2185+8 14731 str r2, [r5, #4] 14732 movs r2, #1 14733 ldr r0, .L2185+4 14734 ldr r1, [r3] 14735 str r1, [r5, #8] 14736 ldr r1, .L2185+12 14737 ldr r7, [r1] 14738 mov r1, r2 14739 str r7, [r5, #12] 14740 bl FlashReadPages 14741 ldrh r2, [r7, #8] 14742 cmp r2, r10 14743 beq .L2177 14744 ldr r1, .L2185+16 14745 mov r2, #752 14746 ldr r0, .L2185+20 14747 bl printf 14748 ldr r1, .L2185+24 14749 ldr r0, .L2185+28 14750 bl printf 14751.L2177: 14752 ldr r2, [r5] 14753 adds r2, r2, #1 14754 ldrh r2, [r7, #8] 14755 bne .L2178 14756.L2180: 14757 ldr r1, [sp, #4] 14758 movs r3, #0 14759 ldr r0, .L2185+32 14760 str r3, [r1] 14761 ldr r1, [r5, #4] 14762 bl printf 14763 ldr r3, .L2185+36 14764 movs r2, #1 14765 str r2, [r3] 14766.L2179: 14767 movs r0, #0 14768 add sp, sp, #8 14769 @ sp needed 14770 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14771.L2178: 14772 cmp r2, r10 14773 bne .L2180 14774 ldrh r0, [r7] 14775 ldrh r1, [r4, #4] 14776 cmp r0, r1 14777 bne .L2180 14778 ldr r2, [r5, #8] 14779 mov r1, fp 14780 mov r0, r4 14781 bl FtlMapWritePage 14782.L2176: 14783 adds r6, r6, #1 14784 b .L2175 14785.L2186: 14786 .align 2 14787.L2185: 14788 .word .LANCHOR53 14789 .word .LANCHOR211 14790 .word .LANCHOR190 14791 .word .LANCHOR195 14792 .word .LANCHOR221 14793 .word .LC5 14794 .word .LC6 14795 .word .LC7 14796 .word .LC41 14797 .word .LANCHOR78 14798 .size ftl_map_blk_gc, .-ftl_map_blk_gc 14799 .section .text.Ftl_write_map_blk_to_last_page,"ax",%progbits 14800 .align 1 14801 .global Ftl_write_map_blk_to_last_page 14802 .syntax unified 14803 .thumb 14804 .thumb_func 14805 .fpu softvfp 14806 .type Ftl_write_map_blk_to_last_page, %function 14807Ftl_write_map_blk_to_last_page: 14808 @ args = 0, pretend = 0, frame = 0 14809 @ frame_needed = 0, uses_anonymous_args = 0 14810 ldr r3, .L2201 14811 push {r4, r5, r6, r7, r8, r10, fp, lr} 14812 mov r4, r0 14813 ldr r5, [r3] 14814 cbnz r5, .L2188 14815 ldrh r3, [r0] 14816 movw r2, #65535 14817 ldr r6, [r0, #12] 14818 cmp r3, r2 14819 bne .L2189 14820 ldrh r3, [r0, #8] 14821 cbz r3, .L2190 14822 ldr r1, .L2201+4 14823 movw r2, #793 14824 ldr r0, .L2201+8 14825 bl printf 14826 ldr r1, .L2201+12 14827 ldr r0, .L2201+16 14828 bl printf 14829.L2190: 14830 ldrh r3, [r4, #8] 14831 adds r3, r3, #1 14832 strh r3, [r4, #8] @ movhi 14833 bl FtlFreeSysBlkQueueOut 14834 movs r3, #0 14835 strh r0, [r6] @ movhi 14836 strh r3, [r4, #2] @ movhi 14837 strh r3, [r4] @ movhi 14838 ldr r3, [r4, #28] 14839 adds r3, r3, #1 14840 str r3, [r4, #28] 14841.L2188: 14842 movs r0, #0 14843 pop {r4, r5, r6, r7, r8, r10, fp, pc} 14844.L2189: 14845 ldrh r8, [r6, r3, lsl #1] 14846 movs r1, #255 14847 ldrh r3, [r0, #2] 14848 ldr r7, .L2201+20 14849 ldr fp, .L2201+40 14850 ldr r10, [r0, #24] 14851 orr r3, r3, r8, lsl #10 14852 ldr r0, [fp] 14853 str r3, [r7, #4] 14854 ldr r3, .L2201+24 14855 str r0, [r7, #8] 14856 ldr r6, [r3] 14857 ldr r3, [r4, #28] 14858 str r6, [r7, #12] 14859 str r3, [r6, #4] 14860 movw r3, #64245 14861 strh r3, [r6, #8] @ movhi 14862 ldrh r3, [r4, #4] 14863 strh r8, [r6, #2] @ movhi 14864 strh r3, [r6] @ movhi 14865 ldr r3, .L2201+28 14866 ldrh r2, [r3] 14867 lsls r2, r2, #3 14868 bl ftl_memset 14869 ldrh ip, [r4, #6] 14870 mov r3, r5 14871 ldr r1, [fp] 14872 mov r2, r5 14873.L2191: 14874 uxth r0, r3 14875 cmp ip, r0 14876 bhi .L2193 14877 ldr r3, .L2201+32 14878 ldrb r3, [r3] @ zero_extendqisi2 14879 cbz r3, .L2194 14880 ldr r3, .L2201+36 14881 ldr r0, [r7, #8] 14882 ldrh r1, [r3] 14883 bl js_hash 14884 str r0, [r6, #12] 14885.L2194: 14886 movs r2, #1 14887 movs r3, #0 14888 mov r1, r2 14889 ldr r0, .L2201+20 14890 bl FlashProgPages 14891 ldrh r3, [r4, #2] 14892 mov r0, r4 14893 adds r3, r3, #1 14894 strh r3, [r4, #2] @ movhi 14895 bl ftl_map_blk_gc 14896 b .L2188 14897.L2193: 14898 ldr r0, [r10, r3, lsl #2] 14899 cmp r8, r0, lsr #10 14900 bne .L2192 14901 adds r2, r2, #1 14902 uxth r2, r2 14903 str r3, [r1, r2, lsl #3] 14904 add r5, r1, r2, lsl #3 14905 ldr r0, [r10, r3, lsl #2] 14906 str r0, [r5, #4] 14907.L2192: 14908 adds r3, r3, #1 14909 b .L2191 14910.L2202: 14911 .align 2 14912.L2201: 14913 .word .LANCHOR78 14914 .word .LANCHOR222 14915 .word .LC5 14916 .word .LC6 14917 .word .LC7 14918 .word .LANCHOR211 14919 .word .LANCHOR195 14920 .word .LANCHOR53 14921 .word .LANCHOR2 14922 .word .LANCHOR57 14923 .word .LANCHOR189 14924 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page 14925 .section .text.FtlMapWritePage,"ax",%progbits 14926 .align 1 14927 .global FtlMapWritePage 14928 .syntax unified 14929 .thumb 14930 .thumb_func 14931 .fpu softvfp 14932 .type FtlMapWritePage, %function 14933FtlMapWritePage: 14934 @ args = 0, pretend = 0, frame = 16 14935 @ frame_needed = 0, uses_anonymous_args = 0 14936 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 14937 mov r4, r0 14938 ldr r10, .L2229+44 14939 mov r8, r1 14940 movs r6, #0 14941 str r2, [sp, #4] 14942.L2204: 14943 ldr r2, .L2229 14944 ldr r3, [r2] 14945 adds r3, r3, #1 14946 str r3, [r2] 14947 ldrh r3, [r10] 14948 ldrh r2, [r4, #2] 14949 subs r3, r3, #1 14950 cmp r2, r3 14951 bge .L2205 14952 ldrh r2, [r4] 14953 movw r3, #65535 14954 cmp r2, r3 14955 bne .L2206 14956.L2205: 14957 mov r0, r4 14958 bl Ftl_write_map_blk_to_last_page 14959.L2206: 14960 ldr r3, .L2229+4 14961 ldr r2, [r3] 14962 str r3, [sp, #8] 14963 cmp r2, #0 14964 bne .L2224 14965 ldrh r2, [r4] 14966 ldr r3, [r4, #12] 14967 ldrh r3, [r3, r2, lsl #1] 14968 cbnz r3, .L2208 14969 ldr r1, .L2229+8 14970 movw r2, #865 14971 ldr r0, .L2229+12 14972 bl printf 14973 ldr r1, .L2229+16 14974 ldr r0, .L2229+20 14975 bl printf 14976.L2208: 14977 ldrh r2, [r4] 14978 ldrh r3, [r4, #10] 14979 cmp r2, r3 14980 bcc .L2209 14981 ldr r1, .L2229+8 14982 movw r2, #866 14983 ldr r0, .L2229+12 14984 bl printf 14985 ldr r1, .L2229+16 14986 ldr r0, .L2229+20 14987 bl printf 14988.L2209: 14989 ldrh r2, [r4] 14990 movs r1, #0 14991 ldr r3, [r4, #12] 14992 ldr r5, .L2229+24 14993 ldrh r7, [r3, r2, lsl #1] 14994 movs r2, #16 14995 ldrh r3, [r4, #2] 14996 mov fp, r5 14997 orr r3, r3, r7, lsl #10 14998 str r3, [r5, #4] 14999 ldr r3, [sp, #4] 15000 str r3, [r5, #8] 15001 ldr r3, .L2229+28 15002 ldr r0, [r3] 15003 str r0, [r5, #12] 15004 bl ftl_memset 15005 ldr r3, [r5, #12] 15006 ldr r2, [r4, #28] 15007 str r3, [sp, #12] 15008 str r2, [r3, #4] 15009 ldrh r2, [r4, #4] 15010 strh r8, [r3, #8] @ movhi 15011 strh r7, [r3, #2] @ movhi 15012 strh r2, [r3] @ movhi 15013 ldr r2, .L2229+32 15014 ldrb r2, [r2] @ zero_extendqisi2 15015 cbz r2, .L2210 15016 ldr r2, .L2229+36 15017 ldr r0, [r5, #8] 15018 ldrh r1, [r2] 15019 bl js_hash 15020 ldr r3, [sp, #12] 15021 str r0, [r3, #12] 15022.L2210: 15023 movs r3, #1 15024 ldr r0, .L2229+24 15025 mov r2, r3 15026 mov r1, r3 15027 bl FlashProgPages 15028 ldrh r3, [r4, #2] 15029 ldr r2, [r5] 15030 adds r3, r3, #1 15031 uxth r3, r3 15032 adds r1, r2, #1 15033 strh r3, [r4, #2] @ movhi 15034 bne .L2211 15035 ldr r1, [r5, #4] 15036 adds r6, r6, #1 15037 ldr r0, .L2229+40 15038 uxth r6, r6 15039 bl printf 15040 ldrh r3, [r4, #2] 15041 cmp r3, #2 15042 itttt ls 15043 ldrls r3, .L2229+44 15044 ldrhls r3, [r3] 15045 addls r3, r3, #-1 15046 strhls r3, [r4, #2] @ movhi 15047 cmp r6, #3 15048 bls .L2204 15049 mov r2, r6 15050 ldr r1, [fp, #4] 15051 ldr r0, .L2229+48 15052 bl printf 15053 ldr r2, [sp, #8] 15054 movs r3, #1 15055 str r3, [r2] 15056.L2224: 15057 movs r0, #0 15058 add sp, sp, #16 15059 @ sp needed 15060 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15061.L2211: 15062 cbz r2, .L2214 15063 cmp r3, #1 15064 strh r7, [r4, #40] @ movhi 15065 bne .L2215 15066.L2216: 15067 movs r3, #0 15068 str r3, [r4, #36] 15069 b .L2204 15070.L2215: 15071 cmp r2, #256 15072.L2228: 15073 beq .L2216 15074 ldr r3, [r4, #36] 15075 cmp r3, #0 15076 bne .L2216 15077 ldr r2, [fp, #4] 15078 ldr r3, [r4, #24] 15079 str r2, [r3, r8, lsl #2] 15080 b .L2224 15081.L2214: 15082 cmp r3, #1 15083 b .L2228 15084.L2230: 15085 .align 2 15086.L2229: 15087 .word .LANCHOR170 15088 .word .LANCHOR78 15089 .word .LANCHOR223 15090 .word .LC5 15091 .word .LC6 15092 .word .LC7 15093 .word .LANCHOR211 15094 .word .LANCHOR195 15095 .word .LANCHOR2 15096 .word .LANCHOR57 15097 .word .LC42 15098 .word .LANCHOR53 15099 .word .LC43 15100 .size FtlMapWritePage, .-FtlMapWritePage 15101 .section .text.flush_l2p_region,"ax",%progbits 15102 .align 1 15103 .global flush_l2p_region 15104 .syntax unified 15105 .thumb 15106 .thumb_func 15107 .fpu softvfp 15108 .type flush_l2p_region, %function 15109flush_l2p_region: 15110 @ args = 0, pretend = 0, frame = 0 15111 @ frame_needed = 0, uses_anonymous_args = 0 15112 push {r3, r4, r5, lr} 15113 movs r4, #12 15114 ldr r5, .L2232 15115 muls r4, r0, r4 15116 ldr r0, .L2232+4 15117 ldr r3, [r5] 15118 adds r2, r3, r4 15119 ldrh r1, [r3, r4] 15120 ldr r2, [r2, #8] 15121 bl FtlMapWritePage 15122 ldr r3, [r5] 15123 movs r0, #0 15124 add r4, r4, r3 15125 ldr r3, [r4, #4] 15126 bic r3, r3, #-2147483648 15127 str r3, [r4, #4] 15128 pop {r3, r4, r5, pc} 15129.L2233: 15130 .align 2 15131.L2232: 15132 .word .LANCHOR98 15133 .word .LANCHOR130 15134 .size flush_l2p_region, .-flush_l2p_region 15135 .section .text.l2p_flush,"ax",%progbits 15136 .align 1 15137 .global l2p_flush 15138 .syntax unified 15139 .thumb 15140 .thumb_func 15141 .fpu softvfp 15142 .type l2p_flush, %function 15143l2p_flush: 15144 @ args = 0, pretend = 0, frame = 0 15145 @ frame_needed = 0, uses_anonymous_args = 0 15146 push {r4, r5, r6, lr} 15147 movs r4, #0 15148 ldr r5, .L2238 15149 ldr r6, .L2238+4 15150.L2235: 15151 ldrh r3, [r5] 15152 uxth r0, r4 15153 cmp r3, r0 15154 bhi .L2237 15155 movs r0, #0 15156 pop {r4, r5, r6, pc} 15157.L2237: 15158 ldr r2, [r6] 15159 uxth r3, r4 15160 movs r1, #12 15161 mla r3, r1, r3, r2 15162 ldr r3, [r3, #4] 15163 cmp r3, #0 15164 bge .L2236 15165 bl flush_l2p_region 15166.L2236: 15167 adds r4, r4, #1 15168 b .L2235 15169.L2239: 15170 .align 2 15171.L2238: 15172 .word .LANCHOR67 15173 .word .LANCHOR98 15174 .size l2p_flush, .-l2p_flush 15175 .section .text.FtlVendorPartWrite,"ax",%progbits 15176 .align 1 15177 .global FtlVendorPartWrite 15178 .syntax unified 15179 .thumb 15180 .thumb_func 15181 .fpu softvfp 15182 .type FtlVendorPartWrite, %function 15183FtlVendorPartWrite: 15184 @ args = 0, pretend = 0, frame = 56 15185 @ frame_needed = 0, uses_anonymous_args = 0 15186 ldr r3, .L2252 15187 push {r4, r5, r6, r7, r8, r10, fp, lr} 15188 sub sp, sp, #56 15189 str r2, [sp] 15190 adds r2, r0, r1 15191 mov r7, r0 15192 mov r5, r1 15193 ldrh r3, [r3] 15194 cmp r2, r3 15195 bhi .L2248 15196 ldr r3, .L2252+4 15197 mov r8, #0 15198 ldrh r6, [r3] 15199 lsr r6, r0, r6 15200 lsl fp, r6, #2 15201.L2242: 15202 cbnz r5, .L2247 15203.L2240: 15204 mov r0, r8 15205 add sp, sp, #56 15206 @ sp needed 15207 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15208.L2247: 15209 ldr r3, .L2252+8 15210 mov r0, r7 15211 ldr r10, .L2252+24 15212 ldr r3, [r3] 15213 ldr r2, [r3, fp] 15214 ldr r3, .L2252+12 15215 str r2, [sp, #12] 15216 ldrh r3, [r3] 15217 mov r1, r3 15218 str r3, [sp, #8] 15219 bl __aeabi_uidivmod 15220 ldr r3, [sp, #8] 15221 ldr r2, [sp, #12] 15222 str r1, [sp, #4] 15223 subs r4, r3, r1 15224 uxth r4, r4 15225 cmp r5, r4 15226 it cc 15227 uxthcc r4, r5 15228 cbz r2, .L2244 15229 cmp r4, r3 15230 beq .L2244 15231 ldr r3, [r10] 15232 add r0, sp, #20 15233 str r2, [sp, #24] 15234 movs r2, #1 15235 mov r1, r2 15236 str r3, [sp, #28] 15237 movs r3, #0 15238 str r3, [sp, #32] 15239 bl FlashReadPages 15240.L2245: 15241 lsls r3, r4, #9 15242 ldr r0, [r10] 15243 subs r5, r5, r4 15244 mov r2, r3 15245 str r3, [sp, #8] 15246 ldm sp, {r1, r3} 15247 add r7, r7, r4 15248 add fp, fp, #4 15249 add r0, r0, r3, lsl #9 15250 bl ftl_memcpy 15251 ldr r2, [r10] 15252 mov r1, r6 15253 ldr r0, .L2252+16 15254 adds r6, r6, #1 15255 bl FtlMapWritePage 15256 ldr r3, [sp] 15257 adds r0, r0, #1 15258 it eq 15259 moveq r8, #-1 15260 mov r2, r3 15261 ldr r3, [sp, #8] 15262 add r2, r2, r3 15263 str r2, [sp] 15264 b .L2242 15265.L2244: 15266 ldr r3, .L2252+20 15267 movs r1, #0 15268 ldr r0, [r10] 15269 ldrh r2, [r3] 15270 bl ftl_memset 15271 b .L2245 15272.L2248: 15273 mov r8, #-1 15274 b .L2240 15275.L2253: 15276 .align 2 15277.L2252: 15278 .word .LANCHOR50 15279 .word .LANCHOR56 15280 .word .LANCHOR202 15281 .word .LANCHOR55 15282 .word .LANCHOR224 15283 .word .LANCHOR57 15284 .word .LANCHOR191 15285 .size FtlVendorPartWrite, .-FtlVendorPartWrite 15286 .section .text.Ftl_save_ext_data,"ax",%progbits 15287 .align 1 15288 .global Ftl_save_ext_data 15289 .syntax unified 15290 .thumb 15291 .thumb_func 15292 .fpu softvfp 15293 .type Ftl_save_ext_data, %function 15294Ftl_save_ext_data: 15295 @ args = 0, pretend = 0, frame = 0 15296 @ frame_needed = 0, uses_anonymous_args = 0 15297 @ link register save eliminated. 15298 ldr r2, .L2256 15299 ldr r3, .L2256+4 15300 ldr r1, [r2] 15301 cmp r1, r3 15302 bne .L2254 15303 ldr r3, .L2256+8 15304 movs r1, #1 15305 movs r0, #0 15306 str r3, [r2, #4] 15307 ldr r3, .L2256+12 15308 ldr r3, [r3] 15309 str r3, [r2, #88] 15310 ldr r3, .L2256+16 15311 ldr r3, [r3] 15312 str r3, [r2, #92] 15313 ldr r3, .L2256+20 15314 ldr r3, [r3] 15315 str r3, [r2, #8] 15316 ldr r3, .L2256+24 15317 ldr r3, [r3] 15318 str r3, [r2, #12] 15319 ldr r3, .L2256+28 15320 ldr r3, [r3] 15321 str r3, [r2, #16] 15322 ldr r3, .L2256+32 15323 ldr r3, [r3] 15324 str r3, [r2, #20] 15325 ldr r3, .L2256+36 15326 ldr r3, [r3] 15327 str r3, [r2, #28] 15328 ldr r3, .L2256+40 15329 ldr r3, [r3] 15330 str r3, [r2, #32] 15331 ldr r3, .L2256+44 15332 ldr r3, [r3] 15333 str r3, [r2, #36] 15334 ldr r3, .L2256+48 15335 ldr r3, [r3] 15336 str r3, [r2, #40] 15337 ldr r3, .L2256+52 15338 ldr r3, [r3] 15339 str r3, [r2, #44] 15340 ldr r3, .L2256+56 15341 ldr r3, [r3] 15342 str r3, [r2, #48] 15343 ldr r3, .L2256+60 15344 ldr r3, [r3] 15345 str r3, [r2, #60] 15346 ldr r3, .L2256+64 15347 ldr r3, [r3] 15348 str r3, [r2, #64] 15349 b FtlVendorPartWrite 15350.L2254: 15351 bx lr 15352.L2257: 15353 .align 2 15354.L2256: 15355 .word .LANCHOR141 15356 .word 1179929683 15357 .word 1342177379 15358 .word .LANCHOR225 15359 .word .LANCHOR226 15360 .word .LANCHOR166 15361 .word .LANCHOR167 15362 .word .LANCHOR171 15363 .word .LANCHOR170 15364 .word .LANCHOR173 15365 .word .LANCHOR81 15366 .word .LANCHOR168 15367 .word .LANCHOR169 15368 .word .LANCHOR174 15369 .word .LANCHOR175 15370 .word .LANCHOR163 15371 .word .LANCHOR162 15372 .size Ftl_save_ext_data, .-Ftl_save_ext_data 15373 .section .text.FtlEctTblFlush,"ax",%progbits 15374 .align 1 15375 .global FtlEctTblFlush 15376 .syntax unified 15377 .thumb 15378 .thumb_func 15379 .fpu softvfp 15380 .type FtlEctTblFlush, %function 15381FtlEctTblFlush: 15382 @ args = 0, pretend = 0, frame = 0 15383 @ frame_needed = 0, uses_anonymous_args = 0 15384 push {r3, lr} 15385 ldr r3, .L2265 15386 ldr r3, [r3] 15387 cmp r3, #0 15388 beq .L2263 15389 ldr r3, .L2265+4 15390 ldr r3, [r3] 15391 cmp r3, #39 15392 ite hi 15393 movhi r3, #32 15394 movls r3, #4 15395.L2259: 15396 ldr r1, .L2265+8 15397 ldrh r2, [r1] 15398 cmp r2, #31 15399 ittt ls 15400 addls r2, r2, #1 15401 movls r3, #1 15402 strhls r2, [r1] @ movhi 15403 ldr r2, .L2265+12 15404 cbnz r0, .L2261 15405 ldr r1, [r2] 15406 ldr r0, [r1, #20] 15407 ldr r1, [r1, #16] 15408 add r3, r3, r0 15409 cmp r1, r3 15410 bcc .L2262 15411.L2261: 15412 ldr r2, [r2] 15413 movs r0, #64 15414 ldr r3, [r2, #16] 15415 str r3, [r2, #20] 15416 ldr r3, .L2265+16 15417 str r3, [r2] 15418 ldr r3, .L2265+20 15419 ldrh r1, [r3] 15420 lsls r3, r1, #9 15421 str r3, [r2, #12] 15422 ldr r3, [r2, #8] 15423 adds r3, r3, #1 15424 str r3, [r2, #8] 15425 movs r3, #0 15426 str r3, [r2, #4] 15427 bl FtlVendorPartWrite 15428 bl Ftl_save_ext_data 15429.L2262: 15430 movs r0, #0 15431 pop {r3, pc} 15432.L2263: 15433 movs r3, #32 15434 b .L2259 15435.L2266: 15436 .align 2 15437.L2265: 15438 .word .LANCHOR104 15439 .word .LANCHOR175 15440 .word .LANCHOR227 15441 .word .LANCHOR199 15442 .word 1112818501 15443 .word .LANCHOR198 15444 .size FtlEctTblFlush, .-FtlEctTblFlush 15445 .section .text.allocate_new_data_superblock,"ax",%progbits 15446 .align 1 15447 .global allocate_new_data_superblock 15448 .syntax unified 15449 .thumb 15450 .thumb_func 15451 .fpu softvfp 15452 .type allocate_new_data_superblock, %function 15453allocate_new_data_superblock: 15454 @ args = 0, pretend = 0, frame = 0 15455 @ frame_needed = 0, uses_anonymous_args = 0 15456 ldr r3, .L2294 15457 push {r4, r5, r6, lr} 15458 mov r4, r0 15459 ldrh r5, [r0] 15460 ldrh r3, [r3] 15461 cmp r3, r5 15462 bcs .L2268 15463 ldr r1, .L2294+4 15464 movw r2, #3650 15465 ldr r0, .L2294+8 15466 bl printf 15467 ldr r1, .L2294+12 15468 ldr r0, .L2294+16 15469 bl printf 15470.L2268: 15471 ldr r3, .L2294+20 15472 ldr r3, [r3] 15473 cmp r3, #0 15474 bne .L2269 15475 movw r3, #65535 15476 cmp r5, r3 15477 beq .L2270 15478 ldr r3, .L2294+24 15479 mov r0, r5 15480 ldr r3, [r3] 15481 ldrh r3, [r3, r5, lsl #1] 15482 cbz r3, .L2271 15483 bl INSERT_DATA_LIST 15484.L2270: 15485 movs r3, #0 15486 strb r3, [r4, #8] 15487 ldr r3, .L2294+28 15488 cmp r4, r3 15489 beq .L2272 15490 ldr r3, .L2294+32 15491 ldrh r2, [r3] 15492 cmp r2, #1 15493 beq .L2272 15494 ldr r3, .L2294+36 15495 ldrb r3, [r3] @ zero_extendqisi2 15496 cbz r3, .L2273 15497.L2272: 15498 movs r3, #1 15499 strb r3, [r4, #8] 15500.L2274: 15501 ldr r6, .L2294+40 15502 movw r2, #65535 15503 ldrh r0, [r6] 15504 cmp r0, r2 15505 beq .L2279 15506 cmp r5, r0 15507 bne .L2280 15508 ldr r3, .L2294+24 15509 ldr r3, [r3] 15510 ldrh r3, [r3, r0, lsl #1] 15511 cbz r3, .L2281 15512.L2280: 15513 bl update_vpc_list 15514.L2281: 15515 movw r3, #65535 15516 strh r3, [r6] @ movhi 15517.L2279: 15518 mov r0, r4 15519 bl allocate_data_superblock 15520 bl l2p_flush 15521 movs r0, #0 15522 bl FtlEctTblFlush 15523 bl FtlVpcTblFlush 15524.L2269: 15525 movs r0, #0 15526 pop {r4, r5, r6, pc} 15527.L2271: 15528 bl INSERT_FREE_LIST 15529 b .L2270 15530.L2273: 15531 ldr r3, .L2294+44 15532 cmp r4, r3 15533 bne .L2274 15534 cmp r2, #3 15535 beq .L2276 15536 ldr r2, .L2294+48 15537 ldr r2, [r2] 15538 cmp r2, #1 15539 bne .L2277 15540.L2276: 15541 movs r2, #1 15542 strb r2, [r3, #8] 15543.L2277: 15544 ldr r2, .L2294+52 15545 ldr r2, [r2] 15546 cmp r2, #0 15547 beq .L2274 15548 ldr r2, .L2294+56 15549 ldr r2, [r2] 15550 cmp r2, #39 15551 itt ls 15552 movls r2, #1 15553 strbls r2, [r3, #8] 15554 b .L2274 15555.L2295: 15556 .align 2 15557.L2294: 15558 .word .LANCHOR40 15559 .word .LANCHOR228 15560 .word .LC5 15561 .word .LC6 15562 .word .LC7 15563 .word .LANCHOR78 15564 .word .LANCHOR85 15565 .word .LANCHOR94 15566 .word .LANCHOR44 15567 .word .LANCHOR16 15568 .word .LANCHOR136 15569 .word .LANCHOR93 15570 .word .LANCHOR163 15571 .word .LANCHOR104 15572 .word .LANCHOR175 15573 .size allocate_new_data_superblock, .-allocate_new_data_superblock 15574 .section .text.FtlVendorPartRead,"ax",%progbits 15575 .align 1 15576 .global FtlVendorPartRead 15577 .syntax unified 15578 .thumb 15579 .thumb_func 15580 .fpu softvfp 15581 .type FtlVendorPartRead, %function 15582FtlVendorPartRead: 15583 @ args = 0, pretend = 0, frame = 56 15584 @ frame_needed = 0, uses_anonymous_args = 0 15585 ldr r3, .L2306 15586 push {r4, r5, r6, r7, r8, r10, fp, lr} 15587 mov r10, r2 15588 adds r2, r0, r1 15589 sub sp, sp, #56 15590 mov r7, r0 15591 mov r6, r1 15592 ldrh r3, [r3] 15593 cmp r2, r3 15594 bhi .L2305 15595 ldr r3, .L2306+4 15596 mov r8, #0 15597 ldr fp, .L2306+28 15598 ldrh r5, [r3] 15599 lsr r5, r0, r5 15600 lsls r3, r5, #2 15601 str r3, [sp] 15602.L2298: 15603 cbnz r6, .L2304 15604.L2296: 15605 mov r0, r8 15606 add sp, sp, #56 15607 @ sp needed 15608 pop {r4, r5, r6, r7, r8, r10, fp, pc} 15609.L2304: 15610 ldr r3, .L2306+8 15611 mov r0, r7 15612 ldr r2, [sp] 15613 ldr r3, [r3] 15614 ldr r3, [r3, r2] 15615 ldr r2, .L2306+12 15616 str r3, [sp, #8] 15617 ldrh r4, [r2] 15618 mov r1, r4 15619 bl __aeabi_uidivmod 15620 subs r4, r4, r1 15621 ldr r3, [sp, #8] 15622 uxth r4, r4 15623 str r1, [sp, #4] 15624 cmp r6, r4 15625 it cc 15626 uxthcc r4, r6 15627 lsls r2, r4, #9 15628 str r2, [sp, #8] 15629 cmp r3, #0 15630 beq .L2300 15631 ldr r2, [fp] 15632 add r0, sp, #20 15633 str r3, [sp, #24] 15634 str r3, [sp, #12] 15635 str r2, [sp, #28] 15636 movs r2, #0 15637 str r2, [sp, #32] 15638 movs r2, #1 15639 mov r1, r2 15640 bl FlashReadPages 15641 ldr r2, [sp, #20] 15642 ldr r3, [sp, #12] 15643 adds r2, r2, #1 15644 ldr r2, .L2306+16 15645 it eq 15646 moveq r8, #-1 15647 ldr r2, [r2] 15648 cmp r2, #256 15649 bne .L2302 15650 mov r2, r3 15651 mov r1, r5 15652 ldr r0, .L2306+20 15653 bl printf 15654 ldr r2, [fp] 15655 mov r1, r5 15656 ldr r0, .L2306+24 15657 bl FtlMapWritePage 15658.L2302: 15659 ldr r1, [fp] 15660 lsls r2, r4, #9 15661 ldr r3, [sp, #4] 15662 mov r0, r10 15663 add r1, r1, r3, lsl #9 15664 bl ftl_memcpy 15665.L2303: 15666 ldr r3, [sp, #8] 15667 adds r5, r5, #1 15668 subs r6, r6, r4 15669 add r7, r7, r4 15670 add r10, r10, r3 15671 ldr r3, [sp] 15672 adds r3, r3, #4 15673 str r3, [sp] 15674 b .L2298 15675.L2300: 15676 lsls r2, r4, #9 15677 mov r1, r3 15678 mov r0, r10 15679 bl ftl_memset 15680 b .L2303 15681.L2305: 15682 mov r8, #-1 15683 b .L2296 15684.L2307: 15685 .align 2 15686.L2306: 15687 .word .LANCHOR50 15688 .word .LANCHOR56 15689 .word .LANCHOR202 15690 .word .LANCHOR55 15691 .word .LANCHOR211 15692 .word .LC44 15693 .word .LANCHOR224 15694 .word .LANCHOR191 15695 .size FtlVendorPartRead, .-FtlVendorPartRead 15696 .section .text.FtlLoadEctTbl,"ax",%progbits 15697 .align 1 15698 .global FtlLoadEctTbl 15699 .syntax unified 15700 .thumb 15701 .thumb_func 15702 .fpu softvfp 15703 .type FtlLoadEctTbl, %function 15704FtlLoadEctTbl: 15705 @ args = 0, pretend = 0, frame = 0 15706 @ frame_needed = 0, uses_anonymous_args = 0 15707 push {r3, r4, r5, lr} 15708 movs r0, #64 15709 ldr r4, .L2310 15710 ldr r5, .L2310+4 15711 ldr r2, [r4] 15712 ldrh r1, [r5] 15713 bl FtlVendorPartRead 15714 ldr r3, [r4] 15715 ldr r2, [r3] 15716 ldr r3, .L2310+8 15717 cmp r2, r3 15718 beq .L2309 15719 ldr r1, .L2310+12 15720 ldr r0, .L2310+16 15721 bl printf 15722 ldrh r2, [r5] 15723 movs r1, #0 15724 ldr r0, [r4] 15725 lsls r2, r2, #9 15726 bl ftl_memset 15727.L2309: 15728 movs r0, #0 15729 pop {r3, r4, r5, pc} 15730.L2311: 15731 .align 2 15732.L2310: 15733 .word .LANCHOR199 15734 .word .LANCHOR198 15735 .word 1112818501 15736 .word .LC45 15737 .word .LC7 15738 .size FtlLoadEctTbl, .-FtlLoadEctTbl 15739 .section .text.Ftl_load_ext_data,"ax",%progbits 15740 .align 1 15741 .global Ftl_load_ext_data 15742 .syntax unified 15743 .thumb 15744 .thumb_func 15745 .fpu softvfp 15746 .type Ftl_load_ext_data, %function 15747Ftl_load_ext_data: 15748 @ args = 0, pretend = 0, frame = 0 15749 @ frame_needed = 0, uses_anonymous_args = 0 15750 push {r3, r4, r5, lr} 15751 movs r1, #1 15752 ldr r4, .L2317 15753 movs r0, #0 15754 ldr r5, .L2317+4 15755 mov r2, r4 15756 bl FtlVendorPartRead 15757 ldr r3, [r4] 15758 cmp r3, r5 15759 beq .L2313 15760 mov r2, #512 15761 movs r1, #0 15762 mov r0, r4 15763 bl ftl_memset 15764 str r5, [r4] 15765.L2313: 15766 ldr r3, [r4] 15767 cmp r3, r5 15768 ldr r5, .L2317+8 15769 bne .L2314 15770 ldr r2, [r4, #88] 15771 ldr r3, .L2317+12 15772 str r2, [r3] 15773 ldr r2, [r4, #92] 15774 ldr r3, .L2317+16 15775 str r2, [r3] 15776 ldr r2, [r4, #8] 15777 ldr r3, .L2317+20 15778 str r2, [r3] 15779 ldr r2, [r4, #12] 15780 ldr r3, .L2317+24 15781 str r2, [r3] 15782 ldr r2, [r4, #16] 15783 ldr r3, .L2317+28 15784 str r2, [r3] 15785 ldr r2, [r4, #20] 15786 ldr r3, .L2317+32 15787 str r2, [r3] 15788 ldr r3, [r4, #28] 15789 ldr r2, [r4, #32] 15790 str r3, [r5] 15791 ldr r3, .L2317+36 15792 str r2, [r3] 15793 ldr r2, [r4, #36] 15794 ldr r3, .L2317+40 15795 str r2, [r3] 15796 ldr r2, [r4, #40] 15797 ldr r3, .L2317+44 15798 str r2, [r3] 15799 ldr r2, [r4, #44] 15800 ldr r3, .L2317+48 15801 str r2, [r3] 15802 ldr r2, [r4, #48] 15803 ldr r3, .L2317+52 15804 str r2, [r3] 15805 ldr r2, [r4, #60] 15806 ldr r3, .L2317+56 15807 str r2, [r3] 15808.L2314: 15809 ldr r2, .L2317+60 15810 movs r3, #0 15811 ldr r1, [r4, #68] 15812 str r3, [r2] 15813 ldr r2, .L2317+64 15814 cmp r1, r2 15815 bne .L2315 15816 ldr r2, .L2317+68 15817 ldrb r2, [r2] @ zero_extendqisi2 15818 cbz r2, .L2316 15819 str r3, [r4, #68] 15820 bl Ftl_save_ext_data 15821.L2315: 15822 ldr r3, .L2317+72 15823 ldr r1, .L2317+76 15824 ldrh r2, [r3] 15825 ldr r3, .L2317+80 15826 ldrh r1, [r1] 15827 ldr r0, [r3] 15828 ldr r3, [r5] 15829 mla r0, r0, r2, r3 15830 bl __aeabi_uidiv 15831 ldr r3, .L2317+84 15832 str r0, [r3] 15833 pop {r3, r4, r5, pc} 15834.L2316: 15835 ldr r3, .L2317+88 15836 movs r2, #1 15837 ldr r1, .L2317+92 15838 ldr r0, .L2317+96 15839 str r2, [r3] 15840 bl printf 15841 b .L2315 15842.L2318: 15843 .align 2 15844.L2317: 15845 .word .LANCHOR141 15846 .word 1179929683 15847 .word .LANCHOR173 15848 .word .LANCHOR225 15849 .word .LANCHOR226 15850 .word .LANCHOR166 15851 .word .LANCHOR167 15852 .word .LANCHOR171 15853 .word .LANCHOR170 15854 .word .LANCHOR81 15855 .word .LANCHOR168 15856 .word .LANCHOR169 15857 .word .LANCHOR174 15858 .word .LANCHOR175 15859 .word .LANCHOR163 15860 .word .LANCHOR162 15861 .word 305432421 15862 .word .LANCHOR16 15863 .word .LANCHOR48 15864 .word .LANCHOR40 15865 .word .LANCHOR172 15866 .word .LANCHOR214 15867 .word .LANCHOR104 15868 .word .LC46 15869 .word .LC7 15870 .size Ftl_load_ext_data, .-Ftl_load_ext_data 15871 .section .text.FtlMapBlkWriteDumpData,"ax",%progbits 15872 .align 1 15873 .global FtlMapBlkWriteDumpData 15874 .syntax unified 15875 .thumb 15876 .thumb_func 15877 .fpu softvfp 15878 .type FtlMapBlkWriteDumpData, %function 15879FtlMapBlkWriteDumpData: 15880 @ args = 0, pretend = 0, frame = 0 15881 @ frame_needed = 0, uses_anonymous_args = 0 15882 push {r3, r4, r5, r6, r7, r8, r10, lr} 15883 mov r4, r0 15884 ldr r3, [r0, #36] 15885 cmp r3, #0 15886 beq .L2319 15887 movs r3, #0 15888 ldrh r6, [r0, #6] 15889 str r3, [r0, #36] 15890 ldr r3, .L2333 15891 ldr r10, [r0, #24] 15892 ldr r3, [r3] 15893 cmp r3, #0 15894 bne .L2319 15895 ldr r3, .L2333+4 15896 ldr r5, .L2333+8 15897 ldr r3, [r3] 15898 mov r7, r5 15899 str r3, [r5, #8] 15900 ldr r3, .L2333+12 15901 ldr r8, [r3] 15902 ldrh r3, [r0, #2] 15903 str r8, [r5, #12] 15904 cbz r3, .L2323 15905 ldr r2, .L2333+16 15906 ldrh r2, [r2] 15907 subs r2, r2, #1 15908 cmp r3, r2 15909 bge .L2323 15910 ldrh r2, [r0] 15911 movw r1, #65535 15912 cmp r2, r1 15913 beq .L2323 15914 ldr r1, [r0, #12] 15915 subs r3, r3, #1 15916 mov r0, r5 15917 ldrh r2, [r1, r2, lsl #1] 15918 orr r3, r3, r2, lsl #10 15919 movs r2, #1 15920 mov r1, r2 15921 str r3, [r5, #4] 15922 bl FlashReadPages 15923 ldr r3, [r5] 15924 adds r3, r3, #1 15925 beq .L2323 15926 ldr r3, [r4, #24] 15927 ldrh r1, [r8, #8] 15928 ldr r2, [r3, r1, lsl #2] 15929 ldr r3, [r5, #4] 15930 cmp r2, r3 15931 bne .L2323 15932 ldr r2, [r5, #8] 15933.L2332: 15934 mov r0, r4 15935 pop {r3, r4, r5, r6, r7, r8, r10, lr} 15936 b FtlMapWritePage 15937.L2323: 15938 subs r6, r6, #1 15939 uxth r6, r6 15940 ldr r3, [r10, r6, lsl #2] 15941 str r3, [r7, #4] 15942 cbz r3, .L2324 15943 movs r2, #1 15944 ldr r0, .L2333+8 15945 mov r1, r2 15946 bl FlashReadPages 15947.L2325: 15948 ldr r2, [r7, #8] 15949 mov r1, r6 15950 b .L2332 15951.L2324: 15952 ldr r3, .L2333+20 15953 movs r1, #255 15954 ldr r0, [r7, #8] 15955 ldrh r2, [r3] 15956 bl ftl_memset 15957 b .L2325 15958.L2319: 15959 pop {r3, r4, r5, r6, r7, r8, r10, pc} 15960.L2334: 15961 .align 2 15962.L2333: 15963 .word .LANCHOR78 15964 .word .LANCHOR190 15965 .word .LANCHOR211 15966 .word .LANCHOR195 15967 .word .LANCHOR53 15968 .word .LANCHOR57 15969 .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData 15970 .section .text.FtlScanSysBlk,"ax",%progbits 15971 .align 1 15972 .global FtlScanSysBlk 15973 .syntax unified 15974 .thumb 15975 .thumb_func 15976 .fpu softvfp 15977 .type FtlScanSysBlk, %function 15978FtlScanSysBlk: 15979 @ args = 0, pretend = 0, frame = 32 15980 @ frame_needed = 0, uses_anonymous_args = 0 15981 push {r4, r5, r6, r7, r8, r10, fp, lr} 15982 movs r4, #0 15983 ldr r5, .L2417 15984 sub sp, sp, #32 15985 mov r1, r4 15986 ldr r3, .L2417+4 15987 ldr r2, [r5] 15988 ldr r6, .L2417+8 15989 strh r4, [r3] @ movhi 15990 ldr r3, .L2417+12 15991 lsls r2, r2, #2 15992 strh r4, [r6] @ movhi 15993 ldr r7, .L2417+16 15994 ldr r0, [r3] 15995 bl ftl_memset 15996 ldr r2, [r5] 15997 mov r1, r4 15998 ldr r3, .L2417+20 15999 lsls r2, r2, #1 16000 ldr r0, [r3] 16001 bl ftl_memset 16002 ldrh r2, [r7] 16003 mov r1, r4 16004 ldr r3, .L2417+24 16005 lsls r2, r2, #2 16006 ldr r0, [r3] 16007 bl ftl_memset 16008 ldrh r2, [r7] 16009 mov r1, r4 16010 ldr r3, .L2417+28 16011 lsls r2, r2, #1 16012 ldr r0, [r3] 16013 bl ftl_memset 16014 movs r2, #16 16015 movs r1, #255 16016 ldr r0, .L2417+32 16017 bl ftl_memset 16018 ldr r3, .L2417+36 16019 str r6, [sp, #12] 16020 str r5, [sp, #16] 16021 ldrh r3, [r3] 16022 str r3, [sp, #4] 16023.L2336: 16024 ldr r3, .L2417+40 16025 ldr r2, [sp, #4] 16026 ldrh r3, [r3] 16027 cmp r3, r2 16028 bls .L2378 16029 ldr r3, .L2417+44 16030 movs r5, #0 16031 ldr r1, .L2417+48 16032 mov fp, r5 16033 movs r7, #36 16034 ldrh r8, [r3] 16035 ldr r3, .L2417+52 16036 ldr r2, [r1] 16037 ldr r1, .L2417+56 16038 ldr r6, [r3] 16039 ldr r3, .L2417+60 16040 str r2, [sp, #8] 16041 ldrh r10, [r1] 16042 ldr r3, [r3] 16043 ldr r2, .L2417+64 16044 b .L2379 16045.L2338: 16046 ldrb r0, [r2, r5] @ zero_extendqisi2 16047 ldr r1, [sp, #4] 16048 str r3, [sp, #28] 16049 str r2, [sp, #24] 16050 bl V2P_block 16051 str r0, [sp, #20] 16052 bl FtlBbmIsBadBlock 16053 ldr r2, [sp, #24] 16054 ldr r3, [sp, #28] 16055 cbnz r0, .L2337 16056 ldr r1, [sp, #20] 16057 mla r0, r7, fp, r6 16058 ldr r4, [sp, #8] 16059 lsls r1, r1, #10 16060 str r3, [r0, #8] 16061 str r1, [r0, #4] 16062 mul r1, r10, fp 16063 bic r1, r1, #3 16064 add r1, r1, r4 16065 str r1, [r0, #12] 16066 add r1, fp, #1 16067 uxth fp, r1 16068.L2337: 16069 adds r5, r5, #1 16070.L2379: 16071 uxth r1, r5 16072 cmp r8, r1 16073 bhi .L2338 16074 cmp fp, #0 16075 bne .L2339 16076.L2377: 16077 ldr r3, [sp, #4] 16078 adds r3, r3, #1 16079 uxth r3, r3 16080 str r3, [sp, #4] 16081 b .L2336 16082.L2339: 16083 movs r7, #0 16084 movs r2, #1 16085 mov r1, fp 16086 mov r0, r6 16087 bl FlashReadPages 16088.L2340: 16089 uxth r3, r7 16090 cmp fp, r3 16091 bls .L2377 16092 ldr r3, .L2417+52 16093 mov r8, #36 16094 mul r8, r8, r7 16095 ldr r3, [r3] 16096 add r2, r3, r8 16097 ldr r3, [r3, r8] 16098 ldr r5, [r2, #4] 16099 ldr r6, [r2, #12] 16100 adds r3, r3, #1 16101 ubfx r5, r5, #10, #16 16102 bne .L2343 16103 mov r10, #16 16104.L2345: 16105 ldr r3, .L2417+52 16106 movs r2, #1 16107 mov r1, r2 16108 ldr r0, [r3] 16109 add r0, r0, r8 16110 ldr r3, [r0, #4] 16111 adds r3, r3, #1 16112 str r3, [r0, #4] 16113 bl FlashReadPages 16114 ldrh r2, [r6] 16115 movw r3, #65535 16116 cmp r2, r3 16117 ldr r3, .L2417+52 16118 ldr r3, [r3] 16119 bne .L2342 16120 mov r2, #-1 16121 str r2, [r3, r8] 16122 ldr r3, .L2417+52 16123 ldr r3, [r3] 16124 ldr r3, [r3, r8] 16125 cmp r3, r2 16126 beq .L2344 16127.L2343: 16128 ldr r3, .L2417+68 16129 ldr r2, [r3] 16130 ldr r3, [r6, #4] 16131 adds r1, r2, #1 16132 beq .L2346 16133 cmp r2, r3 16134 bhi .L2347 16135.L2346: 16136 adds r2, r3, #1 16137 ittt ne 16138 ldrne r1, .L2417+68 16139 addne r2, r3, #1 16140 strne r2, [r1] 16141.L2347: 16142 ldrh r2, [r6] 16143 movw r1, #61604 16144 cmp r2, r1 16145 beq .L2349 16146 bhi .L2350 16147 movw r3, #61574 16148 cmp r2, r3 16149 beq .L2351 16150.L2348: 16151 adds r7, r7, #1 16152 b .L2340 16153.L2342: 16154 ldr r3, [r3, r8] 16155 adds r3, r3, #1 16156 bne .L2343 16157 add r10, r10, #-1 16158 uxth r10, r10 16159 cmp r10, #0 16160 bne .L2345 16161.L2344: 16162 ldr r3, .L2417+72 16163 ldrb r1, [r3] @ zero_extendqisi2 16164 cbnz r1, .L2416 16165.L2375: 16166 mov r0, r5 16167 bl FtlFreeSysBlkQueueIn 16168 b .L2348 16169.L2350: 16170 movw r3, #61634 16171 cmp r2, r3 16172 beq .L2352 16173 movw r3, #65535 16174 cmp r2, r3 16175 bne .L2348 16176.L2416: 16177 movs r1, #0 16178 b .L2375 16179.L2352: 16180 ldr r3, .L2417+8 16181 ldrh r2, [r3] 16182 ldr r3, .L2417 16183 ldr r3, [r3] 16184 cmp r2, r3 16185 bls .L2354 16186 ldr r1, .L2417+76 16187 movw r2, #1469 16188 ldr r0, .L2417+80 16189 bl printf 16190 ldr r1, .L2417+84 16191 ldr r0, .L2417+88 16192 bl printf 16193.L2354: 16194 ldr r3, [sp, #16] 16195 ldr r2, [sp, #12] 16196 ldr r1, [r3] 16197 ldrh r0, [r2] 16198 ldr r2, .L2417+12 16199 uxth r10, r1 16200 ldr ip, [r2] 16201 add r3, r10, #-1 16202 sub r10, r10, r0 16203 add r10, r10, #-1 16204 sxth r3, r3 16205 sxth r10, r10 16206.L2355: 16207 cmp r3, r10 16208 bgt .L2361 16209 cmp r3, #0 16210 bge .L2394 16211 b .L2348 16212.L2361: 16213 ldr r2, [ip, r3, lsl #2] 16214 add r8, ip, r3, lsl #2 16215 ldr r4, [r6, #4] 16216 cmp r4, r2 16217 bls .L2356 16218 ldr r2, [ip] 16219 cbnz r2, .L2357 16220 cmp r1, r0 16221 ittt ne 16222 ldrne r2, .L2417+8 16223 addne r0, r0, #1 16224 strhne r0, [r2] @ movhi 16225.L2357: 16226 ldr r2, .L2417+20 16227 uxth r10, r3 16228 ldr r0, [r2] 16229 movs r2, #0 16230.L2358: 16231 uxth lr, r2 16232 sxth r1, r2 16233 cmp r10, lr 16234 bhi .L2359 16235 ldr r2, [r6, #4] 16236 cmp r3, #0 16237 str r2, [r8] 16238 strh r5, [r0, r3, lsl #1] @ movhi 16239 blt .L2348 16240 ldr r2, .L2417+8 16241 ldrh r0, [r2] 16242 ldr r2, .L2417 16243 ldr r2, [r2] 16244 subs r2, r2, r0 16245 subs r2, r2, #1 16246 sxth r2, r2 16247 cmp r3, r2 16248 bgt .L2348 16249.L2394: 16250 ldr r2, .L2417+8 16251 adds r0, r0, #1 16252 strh r0, [r2] @ movhi 16253 ldr r2, [r6, #4] 16254 str r2, [ip, r3, lsl #2] 16255 ldr r2, .L2417+20 16256.L2414: 16257 ldr r2, [r2] 16258 strh r5, [r2, r3, lsl #1] @ movhi 16259 b .L2348 16260.L2359: 16261 add lr, ip, r1, lsl #2 16262 adds r2, r2, #1 16263 ldr r4, [lr, #4] 16264 add lr, r0, r1, lsl #1 16265 ldrh lr, [lr, #2] 16266 str r4, [ip, r1, lsl #2] 16267 strh lr, [r0, r1, lsl #1] @ movhi 16268 b .L2358 16269.L2356: 16270 subs r3, r3, #1 16271 sxth r3, r3 16272 b .L2355 16273.L2418: 16274 .align 2 16275.L2417: 16276 .word .LANCHOR64 16277 .word .LANCHOR70 16278 .word .LANCHOR131 16279 .word .LANCHOR133 16280 .word .LANCHOR61 16281 .word .LANCHOR132 16282 .word .LANCHOR201 16283 .word .LANCHOR71 16284 .word .LANCHOR218 16285 .word .LANCHOR40 16286 .word .LANCHOR41 16287 .word .LANCHOR38 16288 .word .LANCHOR108 16289 .word .LANCHOR186 16290 .word .LANCHOR58 16291 .word .LANCHOR107 16292 .word .LANCHOR47 16293 .word .LANCHOR164 16294 .word .LANCHOR16 16295 .word .LANCHOR229 16296 .word .LC5 16297 .word .LC6 16298 .word .LC7 16299.L2351: 16300 ldr r8, .L2419+20 16301 ldr r10, .L2419+28 16302 ldrh r2, [r8] 16303 ldrh r3, [r10] 16304 cmp r2, r3 16305 bls .L2364 16306 ldr r1, .L2419 16307 movw r2, #1513 16308 ldr r0, .L2419+4 16309 bl printf 16310 ldr r1, .L2419+8 16311 ldr r0, .L2419+12 16312 bl printf 16313.L2364: 16314 ldr r2, .L2419+16 16315 ldrh lr, [r10] 16316 ldrh ip, [r8] 16317 ldr r0, [r2] 16318 add r10, lr, #-1 16319 sxth r3, r10 16320 sub r10, r10, ip 16321.L2365: 16322 cmp r3, r10 16323 ble .L2370 16324 ldr r1, [r6, #4] 16325 add r8, r0, r3, lsl #2 16326 ldr r2, [r0, r3, lsl #2] 16327 cmp r1, r2 16328 bls .L2366 16329 ldr r2, [r0] 16330 cbnz r2, .L2367 16331 cmp lr, ip 16332 ittt ne 16333 ldrne r2, .L2419+20 16334 addne ip, ip, #1 16335 strhne ip, [r2] @ movhi 16336.L2367: 16337 ldr r2, .L2419+24 16338 uxth r10, r3 16339 ldr ip, [r2] 16340 movs r2, #0 16341.L2368: 16342 uxth lr, r2 16343 sxth r1, r2 16344 cmp r10, lr 16345 bhi .L2369 16346 ldr r2, [r6, #4] 16347 str r2, [r8] 16348 strh r5, [ip, r3, lsl #1] @ movhi 16349.L2370: 16350 cmp r3, #0 16351 blt .L2348 16352 ldr r2, .L2419+28 16353 ldr ip, .L2419+20 16354 ldrh r2, [r2] 16355 ldrh r1, [ip] 16356 subs r2, r2, #1 16357 subs r2, r2, r1 16358 sxth r2, r2 16359 cmp r3, r2 16360 bgt .L2348 16361 ldr r2, [r6, #4] 16362 adds r1, r1, #1 16363 strh r1, [ip] @ movhi 16364 str r2, [r0, r3, lsl #2] 16365 ldr r2, .L2419+24 16366 b .L2414 16367.L2369: 16368 add lr, r0, r1, lsl #2 16369 adds r2, r2, #1 16370 ldr r4, [lr, #4] 16371 add lr, ip, r1, lsl #1 16372 ldrh lr, [lr, #2] 16373 str r4, [r0, r1, lsl #2] 16374 strh lr, [ip, r1, lsl #1] @ movhi 16375 b .L2368 16376.L2366: 16377 subs r3, r3, #1 16378 sxth r3, r3 16379 b .L2365 16380.L2349: 16381 ldr r8, .L2419+48 16382 movw r2, #65535 16383 ldrh r1, [r8] 16384 cmp r1, r2 16385 bne .L2372 16386.L2415: 16387 strh r5, [r8] @ movhi 16388 str r3, [r8, #8] 16389 b .L2348 16390.L2372: 16391 ldrh r0, [r8, #4] 16392 cmp r0, r2 16393 beq .L2373 16394 movs r1, #1 16395 bl FtlFreeSysBlkQueueIn 16396.L2373: 16397 ldr r3, [r6, #4] 16398 ldr r2, [r8, #8] 16399 cmp r2, r3 16400 bcs .L2374 16401 ldrh r2, [r8] 16402 strh r2, [r8, #4] @ movhi 16403 b .L2415 16404.L2374: 16405 strh r5, [r8, #4] @ movhi 16406 b .L2348 16407.L2378: 16408 ldr r3, .L2419+32 16409 ldr r2, [r3] 16410 ldrh r3, [r2] 16411 cbz r3, .L2380 16412.L2383: 16413 ldr r3, .L2419+24 16414 ldr r4, [r3] 16415 ldrh r2, [r4] 16416 cmp r2, #0 16417 beq .L2381 16418.L2382: 16419 ldr r3, .L2419+36 16420 ldrh r2, [r3] 16421 ldr r3, .L2419+40 16422 ldr r3, [r3] 16423 cmp r2, r3 16424 bls .L2413 16425 ldr r1, .L2419 16426 movw r2, #1631 16427 ldr r0, .L2419+4 16428 bl printf 16429 ldr r1, .L2419+8 16430 ldr r0, .L2419+12 16431 bl printf 16432.L2413: 16433 movs r0, #0 16434 add sp, sp, #32 16435 @ sp needed 16436 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16437.L2380: 16438 ldr r1, .L2419+36 16439 ldrh r1, [r1] 16440 cmp r1, #0 16441 beq .L2383 16442 ldr r5, .L2419+40 16443 ldr r0, [r5] 16444.L2384: 16445 sxth r1, r3 16446 cmp r1, r0 16447 bcs .L2383 16448 ldrh r4, [r2, r1, lsl #1] 16449 adds r3, r3, #1 16450 cmp r4, #0 16451 beq .L2384 16452 ldr r3, .L2419+44 16453 movs r6, #0 16454 ldr r0, [r3] 16455 mov r3, r1 16456.L2385: 16457 ldr r4, [r5] 16458 cmp r3, r4 16459 bcs .L2383 16460 ldrh r7, [r2, r3, lsl #1] 16461 subs r4, r3, r1 16462 strh r7, [r2, r4, lsl #1] @ movhi 16463 ldr r7, [r0, r3, lsl #2] 16464 str r7, [r0, r4, lsl #2] 16465 strh r6, [r2, r3, lsl #1] @ movhi 16466 adds r3, r3, #1 16467 sxth r3, r3 16468 b .L2385 16469.L2381: 16470 ldr r3, .L2419+20 16471 ldrh r3, [r3] 16472 cmp r3, #0 16473 beq .L2382 16474 ldr r5, .L2419+28 16475 ldrh r1, [r5] 16476.L2390: 16477 sxth r3, r2 16478 cmp r3, r1 16479 mov r6, r3 16480 bge .L2382 16481 ldrh r0, [r4, r3, lsl #1] 16482 adds r2, r2, #1 16483 cmp r0, #0 16484 beq .L2390 16485 ldr r2, .L2419+16 16486 movs r0, #0 16487 ldr r2, [r2] 16488.L2391: 16489 ldrh r1, [r5] 16490 cmp r3, r1 16491 bge .L2382 16492 ldrh r7, [r4, r3, lsl #1] 16493 subs r1, r3, r6 16494 strh r7, [r4, r1, lsl #1] @ movhi 16495 ldr r7, [r2, r3, lsl #2] 16496 str r7, [r2, r1, lsl #2] 16497 adds r1, r3, #1 16498 strh r0, [r4, r3, lsl #1] @ movhi 16499 sxth r3, r1 16500 b .L2391 16501.L2420: 16502 .align 2 16503.L2419: 16504 .word .LANCHOR229 16505 .word .LC5 16506 .word .LC6 16507 .word .LC7 16508 .word .LANCHOR201 16509 .word .LANCHOR70 16510 .word .LANCHOR71 16511 .word .LANCHOR61 16512 .word .LANCHOR132 16513 .word .LANCHOR131 16514 .word .LANCHOR64 16515 .word .LANCHOR133 16516 .word .LANCHOR218 16517 .size FtlScanSysBlk, .-FtlScanSysBlk 16518 .section .text.FtlLoadSysInfo,"ax",%progbits 16519 .align 1 16520 .global FtlLoadSysInfo 16521 .syntax unified 16522 .thumb 16523 .thumb_func 16524 .fpu softvfp 16525 .type FtlLoadSysInfo, %function 16526FtlLoadSysInfo: 16527 @ args = 0, pretend = 0, frame = 16 16528 @ frame_needed = 0, uses_anonymous_args = 0 16529 push {r4, r5, r6, r7, r8, r10, fp, lr} 16530 movs r1, #0 16531 ldr r7, .L2455 16532 sub sp, sp, #40 16533 ldr r6, .L2455+4 16534 ldr r3, [r7] 16535 ldr r4, .L2455+8 16536 ldr r8, .L2455+52 16537 ldrh r2, [r6] 16538 ldr r5, .L2455+12 16539 str r3, [r4, #8] 16540 ldr r3, [r8] 16541 lsls r2, r2, #1 16542 ldr r0, [r5] 16543 str r3, [r4, #12] 16544 bl ftl_memset 16545 ldr r3, .L2455+16 16546 movw r2, #65535 16547 str r8, [sp, #24] 16548 str r5, [sp, #28] 16549 ldrh r0, [r3] 16550 mov fp, r3 16551 cmp r0, r2 16552 bne .L2422 16553.L2434: 16554 mov r0, #-1 16555.L2421: 16556 add sp, sp, #40 16557 @ sp needed 16558 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16559.L2422: 16560 movs r1, #1 16561 bl FtlGetLastWrittenPage 16562 ldrsh r10, [fp] 16563 sxth r5, r0 16564 adds r0, r0, #1 16565 strh r0, [fp, #2] @ movhi 16566.L2424: 16567 cmp r5, #0 16568 bge .L2430 16569 movw r2, #1708 16570 ldr r1, .L2455+20 16571 ldr r0, .L2455+24 16572 bl printf 16573 ldr r1, .L2455+28 16574 ldr r0, .L2455+32 16575 bl printf 16576 b .L2429 16577.L2430: 16578 orr r3, r5, r10, lsl #10 16579 movs r2, #1 16580 mov r1, r2 16581 ldr r0, .L2455+8 16582 str r3, [r4, #4] 16583 ldr r3, [r7] 16584 str r3, [r4, #8] 16585 bl FlashReadPages 16586 ldr r3, .L2455+36 16587 ldrb r3, [r3] @ zero_extendqisi2 16588 cmp r3, #0 16589 beq .L2425 16590 ldr r8, [r4, #12] 16591 ldr r3, [r8, #12] 16592 str r3, [sp, #36] 16593 cmp r3, #0 16594 beq .L2425 16595 ldr r2, [r4, #8] 16596 ldr r1, .L2455+40 16597 mov r0, r2 16598 str r2, [sp, #32] 16599 ldrh r1, [r1] 16600 bl js_hash 16601 ldr r3, [sp, #36] 16602 cmp r3, r0 16603 beq .L2425 16604 cmp r5, #0 16605 bne .L2426 16606 ldr r2, .L2455+16 16607 ldrh r1, [r2, #4] 16608 cmp r10, r1 16609 beq .L2426 16610 ldrh r1, [r2] 16611 ldr r2, [sp, #32] 16612 ldr r0, .L2455+44 16613 ldr r2, [r2] 16614 str r3, [sp, #12] 16615 str r2, [sp, #16] 16616 ldr r3, [r8, #8] 16617 str r3, [sp, #8] 16618 ldr r3, [r8, #4] 16619 str r3, [sp, #4] 16620 ldr r3, [r8] 16621 str r3, [sp] 16622 ldm r4, {r2, r3} 16623 bl printf 16624 ldr r3, .L2455+16 16625 ldrsh r10, [r3, #4] 16626 ldr r3, .L2455+48 16627 ldrh r5, [r3] 16628.L2428: 16629 subs r5, r5, #1 16630 sxth r5, r5 16631 b .L2424 16632.L2456: 16633 .align 2 16634.L2455: 16635 .word .LANCHOR189 16636 .word .LANCHOR40 16637 .word .LANCHOR211 16638 .word .LANCHOR85 16639 .word .LANCHOR218 16640 .word .LANCHOR230 16641 .word .LC5 16642 .word .LC6 16643 .word .LC7 16644 .word .LANCHOR2 16645 .word .LANCHOR57 16646 .word .LC47 16647 .word .LANCHOR53 16648 .word .LANCHOR195 16649.L2426: 16650 mov r3, #-1 16651 str r3, [r4] 16652.L2425: 16653 ldr r3, [r4] 16654 adds r3, r3, #1 16655 beq .L2428 16656 ldr r3, [r7] 16657 ldr r2, .L2457 16658 ldr r3, [r3] 16659 cmp r3, r2 16660 bne .L2428 16661 ldr r3, [sp, #24] 16662 ldr r3, [r3] 16663 ldrh r2, [r3] 16664 movw r3, #61604 16665 cmp r2, r3 16666 bne .L2428 16667.L2429: 16668 ldr r2, .L2457+4 16669 ldrh r3, [r6] 16670 ldrh r2, [r2] 16671 adds r3, r3, #24 16672 cmp r2, r3, lsl #1 16673 bcs .L2432 16674 ldr r1, .L2457+8 16675 movw r2, #1710 16676 ldr r0, .L2457+12 16677 bl printf 16678 ldr r1, .L2457+16 16679 ldr r0, .L2457+20 16680 bl printf 16681.L2432: 16682 movs r2, #48 16683 ldr r1, [r4, #8] 16684 ldr r0, .L2457+24 16685 bl ftl_memcpy 16686 ldrh r2, [r6] 16687 ldr r3, [sp, #28] 16688 ldr r1, [r4, #8] 16689 lsls r2, r2, #1 16690 ldr r0, [r3] 16691 adds r1, r1, #48 16692 bl ftl_memcpy 16693 ldrh r1, [r6] 16694 ldr r3, [r4, #8] 16695 lsrs r2, r1, #3 16696 lsls r1, r1, #1 16697 adds r1, r1, #51 16698 adds r2, r2, #4 16699 bic r1, r1, #3 16700 add r1, r1, r3 16701 ldr r3, .L2457+28 16702 ldr r0, [r3] 16703 bl ftl_memcpy 16704 ldr r3, .L2457+32 16705 ldrh r3, [r3] 16706 cbz r3, .L2433 16707 ldrh r1, [r6] 16708 ldr r3, .L2457+36 16709 ldrh r2, [r3] 16710 lsrs r3, r1, #3 16711 add r3, r3, r1, lsl #1 16712 ldr r1, [r4, #8] 16713 adds r3, r3, #52 16714 lsls r2, r2, #2 16715 ubfx r3, r3, #2, #14 16716 add r1, r1, r3, lsl #2 16717 ldr r3, .L2457+40 16718 ldr r0, [r3] 16719 bl ftl_memcpy 16720.L2433: 16721 ldr r4, .L2457+24 16722 ldr r3, .L2457 16723 ldr r2, [r4] 16724 cmp r2, r3 16725 bne .L2434 16726 ldr r3, .L2457+44 16727 ldrb r2, [r4, #10] @ zero_extendqisi2 16728 ldrh r5, [r4, #8] 16729 ldrh r3, [r3] 16730 strh r5, [fp, #6] @ movhi 16731 cmp r2, r3 16732 bne .L2434 16733 ldr r3, .L2457+48 16734 ldr r2, .L2457+52 16735 str r5, [r3] 16736 ldr r3, .L2457+56 16737 ldrh r3, [r3] 16738 muls r3, r5, r3 16739 str r3, [r2] 16740 ldr r2, .L2457+60 16741 ldrh r2, [r2] 16742 muls r3, r2, r3 16743 ldr r2, .L2457+64 16744 str r3, [r2] 16745 ldr r3, .L2457+68 16746 ldr r6, [r3] 16747 ldr r3, .L2457+72 16748 ldrh r0, [r3, #6] 16749 ldr r3, .L2457+76 16750 subs r0, r6, r0 16751 ldrh r1, [r3] 16752 subs r0, r0, r5 16753 bl __aeabi_uidiv 16754 ldr r3, .L2457+80 16755 cmp r5, r6 16756 strh r0, [r3] @ movhi 16757 bls .L2435 16758 ldr r1, .L2457+8 16759 movw r2, #1739 16760 ldr r0, .L2457+12 16761 bl printf 16762 ldr r1, .L2457+16 16763 ldr r0, .L2457+20 16764 bl printf 16765.L2435: 16766 ldrh r2, [r4, #16] 16767 ldr r3, .L2457+84 16768 ldrh ip, [r4, #14] 16769 ldr r7, .L2457+88 16770 lsrs r1, r2, #6 16771 and r2, r2, #63 16772 strb r2, [r3, #6] 16773 ldrb r2, [r4, #11] @ zero_extendqisi2 16774 strh r1, [r3, #2] @ movhi 16775 ldr r1, .L2457+92 16776 strb r2, [r3, #8] 16777 ldrh r2, [r4, #18] 16778 strh ip, [r3] @ movhi 16779 movw r3, #65535 16780 strh r3, [r7] @ movhi 16781 movs r3, #0 16782 strh r2, [r1] @ movhi 16783 ldrh r2, [r4, #20] 16784 strh r3, [r7, #2] @ movhi 16785 strb r3, [r7, #6] 16786 strb r3, [r7, #8] 16787 lsrs r5, r2, #6 16788 and r2, r2, #63 16789 strb r2, [r1, #6] 16790 ldrb r2, [r4, #12] @ zero_extendqisi2 16791 strh r5, [r1, #2] @ movhi 16792 ldrh r5, [r4, #22] 16793 strb r2, [r1, #8] 16794 ldr r2, .L2457+96 16795 strh r5, [r2] @ movhi 16796 ldrh r5, [r4, #24] 16797 lsrs r6, r5, #6 16798 and r5, r5, #63 16799 strb r5, [r2, #6] 16800 ldrb r5, [r4, #13] @ zero_extendqisi2 16801 strh r6, [r2, #2] @ movhi 16802 ldr r6, [r4, #32] 16803 strb r5, [r2, #8] 16804 ldr r5, .L2457+100 16805 str r3, [r5] 16806 ldr r5, .L2457+104 16807 str r3, [r5] 16808 ldr r5, .L2457+108 16809 str r3, [r5] 16810 ldr r5, .L2457+112 16811 str r3, [r5] 16812 ldr r5, .L2457+116 16813 str r6, [r5] 16814 mov r6, r1 16815 ldr r5, .L2457+120 16816 str r3, [r5] 16817 ldr r5, .L2457+124 16818 str r3, [r5] 16819 ldr r5, .L2457+128 16820 ldr lr, [r4, #40] 16821 str r3, [r5] 16822 ldr r3, .L2457+132 16823 ldr r5, [r3] 16824 cmp lr, r5 16825 mov r5, r2 16826 it hi 16827 strhi lr, [r3] 16828 ldr r3, .L2457+136 16829 ldr r2, [r4, #36] 16830 ldr r1, [r3] 16831 cmp r2, r1 16832 it hi 16833 strhi r2, [r3] 16834 movw r3, #65535 16835 cmp ip, r3 16836 beq .L2438 16837 ldr r0, .L2457+84 16838 bl make_superblock 16839.L2438: 16840 ldrh r2, [r6] 16841 movw r3, #65535 16842 cmp r2, r3 16843 beq .L2439 16844 ldr r0, .L2457+92 16845 bl make_superblock 16846.L2439: 16847 ldrh r2, [r5] 16848 movw r3, #65535 16849 cmp r2, r3 16850 beq .L2440 16851 ldr r0, .L2457+96 16852 bl make_superblock 16853.L2440: 16854 ldrh r2, [r7] 16855 movw r3, #65535 16856 cmp r2, r3 16857 beq .L2441 16858 ldr r0, .L2457+88 16859 bl make_superblock 16860.L2441: 16861 movs r0, #0 16862 b .L2421 16863.L2458: 16864 .align 2 16865.L2457: 16866 .word 1179929683 16867 .word .LANCHOR57 16868 .word .LANCHOR230 16869 .word .LC5 16870 .word .LC6 16871 .word .LC7 16872 .word .LANCHOR82 16873 .word .LANCHOR1 16874 .word .LANCHOR69 16875 .word .LANCHOR66 16876 .word .LANCHOR203 16877 .word .LANCHOR45 16878 .word .LANCHOR231 16879 .word .LANCHOR74 16880 .word .LANCHOR52 16881 .word .LANCHOR55 16882 .word .LANCHOR68 16883 .word .LANCHOR42 16884 .word .LANCHOR76 16885 .word .LANCHOR38 16886 .word .LANCHOR232 16887 .word .LANCHOR93 16888 .word .LANCHOR213 16889 .word .LANCHOR94 16890 .word .LANCHOR95 16891 .word .LANCHOR166 16892 .word .LANCHOR167 16893 .word .LANCHOR171 16894 .word .LANCHOR170 16895 .word .LANCHOR172 16896 .word .LANCHOR173 16897 .word .LANCHOR174 16898 .word .LANCHOR169 16899 .word .LANCHOR164 16900 .word .LANCHOR165 16901 .size FtlLoadSysInfo, .-FtlLoadSysInfo 16902 .section .text.FtlDumpBlockInfo,"ax",%progbits 16903 .align 1 16904 .global FtlDumpBlockInfo 16905 .syntax unified 16906 .thumb 16907 .thumb_func 16908 .fpu softvfp 16909 .type FtlDumpBlockInfo, %function 16910FtlDumpBlockInfo: 16911 @ args = 0, pretend = 0, frame = 64 16912 @ frame_needed = 0, uses_anonymous_args = 0 16913 push {r4, r5, r6, r7, r8, r10, fp, lr} 16914 ubfx r0, r0, #10, #16 16915 ldr r4, .L2471 16916 sub sp, sp, #88 16917 mov r8, r1 16918 ldrh r3, [r4] 16919 str r3, [sp, #24] 16920 bl P2V_block_in_plane 16921 ldr r1, .L2471+4 16922 mov r6, r0 16923 ldr r0, .L2471+8 16924 bl printf 16925 ldr r3, .L2471+12 16926 mov r1, r6 16927 ldr r0, .L2471+16 16928 ldr r3, [r3] 16929 ldrh r2, [r3, r6, lsl #1] 16930 bl printf 16931 add r0, sp, #88 16932 strh r6, [r0, #-48]! @ movhi 16933 bl make_superblock 16934 ldr r3, .L2471+20 16935 ldrb r5, [r3] @ zero_extendqisi2 16936 cbz r5, .L2460 16937 cmp r8, #0 16938 bne .L2469 16939 mov r0, r6 16940 bl ftl_get_blk_mode 16941 cmp r0, #1 16942 mov r5, r0 16943 bne .L2460 16944 ldr r3, .L2471+24 16945 ldrh r3, [r3] 16946 str r3, [sp, #24] 16947.L2460: 16948 movs r6, #0 16949 ldrh r3, [r4] 16950 ldr r2, [sp, #24] 16951 mov r1, r5 16952 ldr r0, .L2471+28 16953 bl printf 16954.L2461: 16955 ldr r3, .L2471+32 16956 movs r2, #0 16957 add ip, sp, #54 16958 mov r4, r2 16959 movw r10, #65535 16960 mov fp, #36 16961 ldrh lr, [r3] 16962 ldr r3, .L2471+36 16963 ldr r0, [r3] 16964 ldr r3, .L2471+40 16965 ldr r3, [r3] 16966 str r3, [sp, #28] 16967 ldr r3, .L2471+44 16968 ldrh r3, [r3] 16969 str r3, [sp, #32] 16970 ldr r3, .L2471+48 16971 ldr r3, [r3] 16972 str r3, [sp, #36] 16973 ldr r3, .L2471+52 16974 ldrh r8, [r3] 16975.L2462: 16976 uxth r3, r2 16977 cmp lr, r3 16978 bhi .L2464 16979 ldr fp, .L2471+56 16980 mov r8, #0 16981 mov r10, #36 16982 mov r2, r5 16983 mov r1, r4 16984 bl FlashReadPages 16985.L2465: 16986 uxth r3, r8 16987 cmp r4, r3 16988 bhi .L2466 16989 adds r6, r6, #1 16990 ldr r3, [sp, #24] 16991 uxth r6, r6 16992 cmp r3, r6 16993 bne .L2461 16994.L2467: 16995 movs r0, #0 16996 add sp, sp, #88 16997 @ sp needed 16998 pop {r4, r5, r6, r7, r8, r10, fp, pc} 16999.L2469: 17000 movs r5, #0 17001 b .L2460 17002.L2464: 17003 ldrh r3, [ip, #2]! 17004 cmp r3, r10 17005 beq .L2463 17006 mla r1, fp, r4, r0 17007 ldr r7, [sp, #28] 17008 orr r3, r6, r3, lsl #10 17009 str r3, [r1, #4] 17010 ldr r3, [sp, #32] 17011 muls r3, r4, r3 17012 bic r3, r3, #3 17013 add r3, r3, r7 17014 ldr r7, [sp, #36] 17015 str r3, [r1, #8] 17016 mul r3, r8, r4 17017 adds r4, r4, #1 17018 uxth r4, r4 17019 bic r3, r3, #3 17020 add r3, r3, r7 17021 str r3, [r1, #12] 17022.L2463: 17023 adds r2, r2, #1 17024 b .L2462 17025.L2466: 17026 ldr r3, .L2471+36 17027 mul r0, r10, r8 17028 ldrh r1, [sp, #40] 17029 add r8, r8, #1 17030 ldr ip, [r3] 17031 add r2, ip, r0 17032 ldr lr, [r2, #8] 17033 ldr r3, [r2, #12] 17034 ldr r7, [lr, #4] 17035 str r7, [sp, #20] 17036 ldr r7, [lr] 17037 str r7, [sp, #16] 17038 ldr r7, [r3, #12] 17039 str r7, [sp, #12] 17040 ldr r7, [r3, #8] 17041 str r7, [sp, #8] 17042 ldr r7, [r3, #4] 17043 str r7, [sp, #4] 17044 ldr r3, [r3] 17045 str r3, [sp] 17046 ldr r3, [r2, #4] 17047 ldr r2, [ip, r0] 17048 mov r0, fp 17049 bl printf 17050 b .L2465 17051.L2472: 17052 .align 2 17053.L2471: 17054 .word .LANCHOR52 17055 .word .LANCHOR233 17056 .word .LC48 17057 .word .LANCHOR85 17058 .word .LC49 17059 .word .LANCHOR16 17060 .word .LANCHOR53 17061 .word .LC50 17062 .word .LANCHOR38 17063 .word .LANCHOR186 17064 .word .LANCHOR107 17065 .word .LANCHOR57 17066 .word .LANCHOR108 17067 .word .LANCHOR58 17068 .word .LC51 17069 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo 17070 .section .text.FtlScanAllBlock,"ax",%progbits 17071 .align 1 17072 .global FtlScanAllBlock 17073 .syntax unified 17074 .thumb 17075 .thumb_func 17076 .fpu softvfp 17077 .type FtlScanAllBlock, %function 17078FtlScanAllBlock: 17079 @ args = 0, pretend = 0, frame = 64 17080 @ frame_needed = 0, uses_anonymous_args = 0 17081 push {r4, r5, r6, r7, r8, r10, fp, lr} 17082 sub sp, sp, #88 17083 ldr r6, .L2483 17084 ldr r1, .L2483+4 17085 ldr r0, .L2483+8 17086 bl printf 17087 movs r3, #0 17088 str r3, [sp, #28] 17089.L2474: 17090 ldr r3, .L2483+12 17091 ldrh r0, [sp, #28] 17092 ldrh r3, [r3] 17093 cmp r3, r0 17094 bhi .L2482 17095 movs r0, #0 17096 add sp, sp, #88 17097 @ sp needed 17098 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17099.L2482: 17100 add r4, sp, #88 17101 add r7, sp, #54 17102 strh r0, [r4, #-48]! @ movhi 17103 movw r10, #65535 17104 bl ftl_get_blk_mode 17105 ldr r3, .L2483+16 17106 mov fp, #36 17107 ldrh r1, [sp, #28] 17108 ldr r2, [r3] 17109 mov r3, r0 17110 ldr r0, .L2483+20 17111 ldrh r2, [r2, r1, lsl #1] 17112 bl printf 17113 mov r0, r4 17114 bl make_superblock 17115 ldr r3, .L2483+24 17116 movs r2, #0 17117 ldr r0, [r6] 17118 mov r4, r2 17119 ldrh lr, [r3] 17120 ldr r3, .L2483+28 17121 ldr r3, [r3] 17122 str r3, [sp, #32] 17123 ldr r3, .L2483+32 17124 ldrh ip, [r3] 17125 ldr r3, .L2483+36 17126 ldr r3, [r3] 17127 str r3, [sp, #36] 17128 ldr r3, .L2483+40 17129 ldrh r8, [r3] 17130.L2475: 17131 uxth r3, r2 17132 cmp lr, r3 17133 bhi .L2477 17134 ldr r10, .L2483+44 17135 movs r7, #0 17136 mov r8, #36 17137 movs r2, #0 17138 mov r1, r4 17139 bl FlashReadPages 17140.L2478: 17141 uxth r3, r7 17142 cmp r4, r3 17143 bhi .L2479 17144 ldr r10, .L2483+48 17145 movs r7, #0 17146 mov r8, #36 17147 movs r2, #1 17148 mov r1, r4 17149 ldr r0, [r6] 17150 bl FlashReadPages 17151.L2480: 17152 uxth r3, r7 17153 cmp r4, r3 17154 bhi .L2481 17155 ldr r3, [sp, #28] 17156 adds r3, r3, #1 17157 str r3, [sp, #28] 17158 b .L2474 17159.L2477: 17160 ldrh r3, [r7, #2]! 17161 cmp r3, r10 17162 beq .L2476 17163 mla r1, fp, r4, r0 17164 ldr r5, [sp, #32] 17165 lsls r3, r3, #10 17166 str r3, [r1, #4] 17167 mul r3, ip, r4 17168 bic r3, r3, #3 17169 add r3, r3, r5 17170 ldr r5, [sp, #36] 17171 str r3, [r1, #8] 17172 mul r3, r8, r4 17173 adds r4, r4, #1 17174 uxth r4, r4 17175 bic r3, r3, #3 17176 add r3, r3, r5 17177 str r3, [r1, #12] 17178.L2476: 17179 adds r2, r2, #1 17180 b .L2475 17181.L2479: 17182 mul r2, r8, r7 17183 ldr r0, [r6] 17184 ldrh r1, [sp, #40] 17185 adds r7, r7, #1 17186 add lr, r0, r2 17187 ldr fp, [lr, #8] 17188 ldr r3, [lr, #12] 17189 ldr r5, [fp, #4] 17190 str r5, [sp, #20] 17191 ldr r5, [fp] 17192 str r5, [sp, #16] 17193 ldr r5, [r3, #12] 17194 str r5, [sp, #12] 17195 ldr r5, [r3, #8] 17196 str r5, [sp, #8] 17197 ldr r5, [r3, #4] 17198 str r5, [sp, #4] 17199 ldr r3, [r3] 17200 str r3, [sp] 17201 ldr r2, [r0, r2] 17202 mov r0, r10 17203 ldr r3, [lr, #4] 17204 bl printf 17205 b .L2478 17206.L2481: 17207 mul r2, r8, r7 17208 ldr r0, [r6] 17209 ldrh r1, [sp, #40] 17210 adds r7, r7, #1 17211 add lr, r0, r2 17212 ldr fp, [lr, #8] 17213 ldr r3, [lr, #12] 17214 ldr r5, [fp, #4] 17215 str r5, [sp, #20] 17216 ldr r5, [fp] 17217 str r5, [sp, #16] 17218 ldr r5, [r3, #12] 17219 str r5, [sp, #12] 17220 ldr r5, [r3, #8] 17221 str r5, [sp, #8] 17222 ldr r5, [r3, #4] 17223 str r5, [sp, #4] 17224 ldr r3, [r3] 17225 str r3, [sp] 17226 ldr r2, [r0, r2] 17227 mov r0, r10 17228 ldr r3, [lr, #4] 17229 bl printf 17230 b .L2480 17231.L2484: 17232 .align 2 17233.L2483: 17234 .word .LANCHOR186 17235 .word .LANCHOR234 17236 .word .LC48 17237 .word .LANCHOR41 17238 .word .LANCHOR85 17239 .word .LC52 17240 .word .LANCHOR38 17241 .word .LANCHOR107 17242 .word .LANCHOR57 17243 .word .LANCHOR108 17244 .word .LANCHOR58 17245 .word .LC53 17246 .word .LC54 17247 .size FtlScanAllBlock, .-FtlScanAllBlock 17248 .section .text.FtlMapTblRecovery,"ax",%progbits 17249 .align 1 17250 .global FtlMapTblRecovery 17251 .syntax unified 17252 .thumb 17253 .thumb_func 17254 .fpu softvfp 17255 .type FtlMapTblRecovery, %function 17256FtlMapTblRecovery: 17257 @ args = 0, pretend = 0, frame = 24 17258 @ frame_needed = 0, uses_anonymous_args = 0 17259 ldr r3, [r0, #24] 17260 movs r1, #0 17261 push {r4, r5, r6, r7, r8, r10, fp, lr} 17262 sub sp, sp, #24 17263 ldrh r7, [r0, #6] 17264 mov r4, r0 17265 movs r6, #0 17266 str r3, [sp] 17267 ldr r3, [r0, #16] 17268 ldr r10, [r0, #12] 17269 lsls r2, r7, #2 17270 str r3, [sp, #12] 17271 ldrh r3, [r0, #8] 17272 ldr r0, [sp] 17273 str r3, [sp, #4] 17274 bl ftl_memset 17275 ldr r2, .L2526 17276 ldr r3, .L2526+4 17277 str r6, [r4, #32] 17278 ldr r1, [r2] 17279 mov fp, r3 17280 str r6, [r4, #28] 17281 str r2, [sp, #8] 17282 str r1, [r3, #8] 17283 ldr r1, .L2526+8 17284 ldr r5, [r1] 17285 movw r1, #65535 17286 str r5, [r3, #12] 17287 strh r1, [r4] @ movhi 17288 strh r1, [r4, #2] @ movhi 17289 movs r1, #1 17290 str r1, [r4, #36] 17291.L2486: 17292 ldr r2, [sp, #4] 17293 sxth r3, r6 17294 cmp r3, r2 17295 bge .L2505 17296 ldr r2, [sp, #4] 17297 lsl r8, r3, #1 17298 subs r2, r2, #1 17299 cmp r3, r2 17300 bne .L2487 17301 ldrh r0, [r10, r3, lsl #1] 17302 movs r1, #1 17303 str r3, [sp, #4] 17304 mov fp, #0 17305 bl FtlGetLastWrittenPage 17306 ldr r3, [sp, #12] 17307 add r8, r8, r10 17308 strh r6, [r4] @ movhi 17309 sxth r10, r0 17310 ldr r6, .L2526+4 17311 adds r0, r0, #1 17312 mov r2, r3 17313 ldr r3, [sp, #4] 17314 strh r0, [r4, #2] @ movhi 17315 ldr r3, [r2, r3, lsl #2] 17316 str r3, [r4, #28] 17317.L2488: 17318 sxth r2, fp 17319 cmp r2, r10 17320 ble .L2491 17321.L2505: 17322 mov r0, r4 17323 bl ftl_free_no_use_map_blk 17324 ldr r3, .L2526+12 17325 ldrh r2, [r4, #2] 17326 ldrh r3, [r3] 17327 cmp r2, r3 17328 bne .L2493 17329 mov r0, r4 17330 bl ftl_map_blk_alloc_new_blk 17331.L2493: 17332 mov r0, r4 17333 bl ftl_map_blk_gc 17334 mov r0, r4 17335 bl ftl_map_blk_gc 17336 movs r0, #0 17337 add sp, sp, #24 17338 @ sp needed 17339 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17340.L2491: 17341 ldrh r1, [r8] 17342 ldr r0, .L2526+4 17343 orr r2, r2, r1, lsl #10 17344 str r2, [r6, #4] 17345 movs r2, #1 17346 mov r1, r2 17347 bl FlashReadPages 17348 ldr r3, .L2526+16 17349 ldrb r2, [r3] @ zero_extendqisi2 17350 cbz r2, .L2489 17351 ldr r2, [r6, #12] 17352 ldr r2, [r2, #12] 17353 str r2, [sp, #4] 17354 cbz r2, .L2489 17355 ldr r1, .L2526+20 17356 ldr r0, [r6, #8] 17357 ldrh r1, [r1] 17358 bl js_hash 17359 ldr r2, [sp, #4] 17360 cmp r2, r0 17361 itt ne 17362 movne r2, #-1 17363 strne r2, [r6] 17364.L2489: 17365 ldr r2, [r6] 17366 adds r2, r2, #1 17367 beq .L2490 17368 ldrh r2, [r5, #8] 17369 cmp r7, r2 17370 bls .L2490 17371 ldrh r1, [r4, #4] 17372 ldrh r0, [r5] 17373 cmp r0, r1 17374 ittt eq 17375 ldreq r1, [r6, #4] 17376 ldreq r3, [sp] 17377 streq r1, [r3, r2, lsl #2] 17378.L2490: 17379 add fp, fp, #1 17380 b .L2488 17381.L2487: 17382 ldr r2, [sp, #8] 17383 ldr r0, .L2526+4 17384 ldr r2, [r2] 17385 str r2, [fp, #8] 17386 add r2, r10, r8 17387 ldr r8, .L2526+12 17388 str r2, [sp, #16] 17389 ldrh r2, [r10, r3, lsl #1] 17390 ldrh r3, [r8] 17391 subs r3, r3, #1 17392 orr r3, r3, r2, lsl #10 17393 movs r2, #1 17394 mov r1, r2 17395 str r3, [fp, #4] 17396 bl FlashReadPages 17397 ldr r3, [fp] 17398 adds r3, r3, #1 17399 beq .L2507 17400 ldrh r2, [r5] 17401 ldrh r3, [r4, #4] 17402 cmp r2, r3 17403 bne .L2507 17404 ldrh r2, [r5, #8] 17405 movw r3, #64245 17406 cmp r2, r3 17407 beq .L2495 17408.L2507: 17409 mov r8, #0 17410.L2496: 17411 ldr r2, .L2526+12 17412 sxth r3, r8 17413 ldrh r2, [r2] 17414 cmp r3, r2 17415 bge .L2503 17416 ldr r2, [sp, #16] 17417 ldr r0, .L2526+4 17418 ldrh r2, [r2] 17419 orr r3, r3, r2, lsl #10 17420 movs r2, #1 17421 mov r1, r2 17422 str r3, [fp, #4] 17423 bl FlashReadPages 17424 ldr r3, .L2526+16 17425 ldrb r3, [r3] @ zero_extendqisi2 17426 cbz r3, .L2500 17427 ldr r3, [fp, #12] 17428 ldr r3, [r3, #12] 17429 str r3, [sp, #20] 17430 cbz r3, .L2500 17431 ldr r2, .L2526+20 17432 ldr r0, [fp, #8] 17433 ldrh r1, [r2] 17434 bl js_hash 17435 ldr r3, [sp, #20] 17436 cmp r3, r0 17437 itt ne 17438 movne r3, #-1 17439 strne r3, [fp] 17440.L2500: 17441 ldr r3, [fp] 17442 adds r3, r3, #1 17443 beq .L2501 17444 ldrh r3, [r5, #8] 17445 cmp r7, r3 17446 bls .L2501 17447 ldrh r1, [r5] 17448 ldrh r2, [r4, #4] 17449 cmp r1, r2 17450 ittt eq 17451 ldreq r2, [fp, #4] 17452 ldreq r1, [sp] 17453 streq r2, [r1, r3, lsl #2] 17454.L2501: 17455 add r8, r8, #1 17456 b .L2496 17457.L2495: 17458 ldr r3, [sp, #8] 17459 movs r1, #0 17460 ldrh r2, [r8] 17461 ldr ip, [r3] 17462 subs r2, r2, #1 17463.L2497: 17464 sxth r3, r1 17465 cmp r3, r2 17466 blt .L2499 17467.L2503: 17468 adds r6, r6, #1 17469 b .L2486 17470.L2499: 17471 lsls r0, r3, #3 17472 ldr r3, [ip, r3, lsl #3] 17473 adds r1, r1, #1 17474 uxth lr, r3 17475 cmp r7, lr 17476 itttt hi 17477 addhi r0, r0, ip 17478 ldrhi r3, [sp] 17479 ldrhi r0, [r0, #4] 17480 strhi r0, [r3, lr, lsl #2] 17481 b .L2497 17482.L2527: 17483 .align 2 17484.L2526: 17485 .word .LANCHOR189 17486 .word .LANCHOR211 17487 .word .LANCHOR195 17488 .word .LANCHOR53 17489 .word .LANCHOR2 17490 .word .LANCHOR57 17491 .size FtlMapTblRecovery, .-FtlMapTblRecovery 17492 .section .text.FtlLoadVonderInfo,"ax",%progbits 17493 .align 1 17494 .global FtlLoadVonderInfo 17495 .syntax unified 17496 .thumb 17497 .thumb_func 17498 .fpu softvfp 17499 .type FtlLoadVonderInfo, %function 17500FtlLoadVonderInfo: 17501 @ args = 0, pretend = 0, frame = 0 17502 @ frame_needed = 0, uses_anonymous_args = 0 17503 push {r3, lr} 17504 ldr r3, .L2529 17505 ldr r0, .L2529+4 17506 ldrh r3, [r3] 17507 strh r3, [r0, #10] @ movhi 17508 movw r3, #61574 17509 strh r3, [r0, #4] @ movhi 17510 ldr r3, .L2529+8 17511 ldrh r3, [r3] 17512 strh r3, [r0, #8] @ movhi 17513 ldr r3, .L2529+12 17514 ldrh r3, [r3] 17515 strh r3, [r0, #6] @ movhi 17516 ldr r3, .L2529+16 17517 ldr r3, [r3] 17518 str r3, [r0, #12] 17519 ldr r3, .L2529+20 17520 ldr r3, [r3] 17521 str r3, [r0, #16] 17522 ldr r3, .L2529+24 17523 ldr r3, [r3] 17524 str r3, [r0, #20] 17525 ldr r3, .L2529+28 17526 ldr r3, [r3] 17527 str r3, [r0, #24] 17528 bl FtlMapTblRecovery 17529 movs r0, #0 17530 pop {r3, pc} 17531.L2530: 17532 .align 2 17533.L2529: 17534 .word .LANCHOR61 17535 .word .LANCHOR224 17536 .word .LANCHOR70 17537 .word .LANCHOR62 17538 .word .LANCHOR71 17539 .word .LANCHOR201 17540 .word .LANCHOR200 17541 .word .LANCHOR202 17542 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo 17543 .section .text.FtlLoadMapInfo,"ax",%progbits 17544 .align 1 17545 .global FtlLoadMapInfo 17546 .syntax unified 17547 .thumb 17548 .thumb_func 17549 .fpu softvfp 17550 .type FtlLoadMapInfo, %function 17551FtlLoadMapInfo: 17552 @ args = 0, pretend = 0, frame = 0 17553 @ frame_needed = 0, uses_anonymous_args = 0 17554 push {r3, lr} 17555 bl FtlL2PDataInit 17556 ldr r0, .L2532 17557 bl FtlMapTblRecovery 17558 movs r0, #0 17559 pop {r3, pc} 17560.L2533: 17561 .align 2 17562.L2532: 17563 .word .LANCHOR130 17564 .size FtlLoadMapInfo, .-FtlLoadMapInfo 17565 .section .text.ftl_scan_all_ppa,"ax",%progbits 17566 .align 1 17567 .global ftl_scan_all_ppa 17568 .syntax unified 17569 .thumb 17570 .thumb_func 17571 .fpu softvfp 17572 .type ftl_scan_all_ppa, %function 17573ftl_scan_all_ppa: 17574 @ args = 0, pretend = 0, frame = 8 17575 @ frame_needed = 0, uses_anonymous_args = 0 17576 ldr r3, .L2550 17577 push {r4, r5, r6, r7, r8, r10, fp, lr} 17578 sub sp, sp, #32 17579 ldr r5, .L2550+4 17580 ldrh r4, [r3] 17581 str r3, [sp, #28] 17582 subs r4, r4, #16 17583 lsl r10, r4, #10 17584.L2535: 17585 ldr r3, [sp, #28] 17586 ldrh r3, [r3] 17587 cmp r4, r3 17588 blt .L2543 17589 ldr r1, .L2550+8 17590 ldr r0, .L2550+12 17591 add sp, sp, #32 17592 @ sp needed 17593 pop {r4, r5, r6, r7, r8, r10, fp, lr} 17594 b printf 17595.L2543: 17596 uxth r7, r4 17597 mov r0, r7 17598 bl ftl_get_blk_mode 17599 ldr r3, .L2550+16 17600 ldrb r3, [r3] @ zero_extendqisi2 17601 cbz r3, .L2536 17602 ldr r3, .L2550+20 17603 ldrh r3, [r3] 17604 cmp r4, r3 17605 bge .L2537 17606 ldr r3, .L2550+24 17607 ldrh r3, [r3] 17608 cmp r4, r3 17609 blt .L2537 17610.L2536: 17611 cmp r0, #1 17612 bne .L2538 17613.L2537: 17614 ldr r3, .L2550+28 17615 mov r8, #-2147483648 17616 ldrh r6, [r3] 17617.L2539: 17618 mov r3, r8 17619 mov r2, r6 17620 mov r1, r4 17621 ldr r0, .L2550+32 17622 bl printf 17623 mov r0, r7 17624 bl FtlBbmIsBadBlock 17625 cbz r0, .L2540 17626 mov r3, r8 17627 mov r2, r6 17628 mov r1, r4 17629 ldr r0, .L2550+36 17630 bl printf 17631.L2540: 17632 ldr fp, .L2550+52 17633 movs r7, #0 17634.L2541: 17635 cmp r7, r6 17636 bne .L2542 17637 adds r4, r4, #1 17638 add r10, r10, #1024 17639 b .L2535 17640.L2538: 17641 ldr r3, .L2550+40 17642 mov r8, #0 17643 ldrh r6, [r3] 17644 b .L2539 17645.L2542: 17646 add r3, r8, r10 17647 movs r2, #0 17648 add r3, r3, r7 17649 movs r1, #1 17650 str r3, [r5, #4] 17651 mov r0, r5 17652 ldr r3, [fp] 17653 adds r7, r7, #1 17654 str r2, [r5] 17655 str r3, [r5, #8] 17656 ldr r3, .L2550+44 17657 ldr r3, [r3] 17658 str r3, [r5, #12] 17659 bl FlashReadPages 17660 ldr r2, [r5, #8] 17661 ldr r3, [r5, #12] 17662 ldr r0, .L2550+48 17663 ldr r1, [r2, #4] 17664 str r1, [sp, #16] 17665 ldr r2, [r2] 17666 ldr r1, [r5, #4] 17667 str r2, [sp, #12] 17668 ldr r2, [r3, #12] 17669 str r2, [sp, #8] 17670 ldr r2, [r3, #8] 17671 str r2, [sp, #4] 17672 ldr r2, [r3, #4] 17673 str r2, [sp] 17674 ldr r2, [r5] 17675 ldr r3, [r3] 17676 bl printf 17677 b .L2541 17678.L2551: 17679 .align 2 17680.L2550: 17681 .word .LANCHOR51 17682 .word .LANCHOR211 17683 .word .LANCHOR235 17684 .word .LC58 17685 .word .LANCHOR16 17686 .word .LANCHOR40 17687 .word .LANCHOR59 17688 .word .LANCHOR53 17689 .word .LC55 17690 .word .LC56 17691 .word .LANCHOR52 17692 .word .LANCHOR195 17693 .word .LC57 17694 .word .LANCHOR189 17695 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa 17696 .section .text.FlashReadFacBbtData,"ax",%progbits 17697 .align 1 17698 .global FlashReadFacBbtData 17699 .syntax unified 17700 .thumb 17701 .thumb_func 17702 .fpu softvfp 17703 .type FlashReadFacBbtData, %function 17704FlashReadFacBbtData: 17705 @ args = 0, pretend = 0, frame = 48 17706 @ frame_needed = 0, uses_anonymous_args = 0 17707 push {r4, r5, r6, r7, r8, r10, fp, lr} 17708 mov fp, r2 17709 ldr r2, .L2565 17710 sub sp, sp, #48 17711 mov r6, r1 17712 mov r4, r0 17713 ldr r7, .L2565+4 17714 ldrh r3, [r2, #14] 17715 ldrh r2, [r2, #12] 17716 smulbb r3, r3, r2 17717 ldr r2, [r7] 17718 uxth r3, r3 17719 str r2, [sp, #20] 17720 ldr r2, .L2565+8 17721 subs r5, r3, #1 17722 mul r10, r6, r3 17723 uxth r5, r5 17724 subs r3, r3, #15 17725 ldr r1, [r2] 17726 mov r8, r2 17727 str r1, [sp, #24] 17728.L2553: 17729 cmp r3, r5 17730 ble .L2560 17731 mov r0, #-1 17732 b .L2552 17733.L2560: 17734 add r2, r5, r10 17735 add r0, sp, #12 17736 lsls r2, r2, #10 17737 str r3, [sp, #4] 17738 str r2, [sp, #16] 17739 movs r2, #1 17740 mov r1, r2 17741 bl FlashReadPages 17742 ldr r2, [sp, #12] 17743 ldr r3, [sp, #4] 17744 adds r2, r2, #1 17745 beq .L2554 17746 ldr r2, [r8] 17747 ldrh r1, [r2] 17748 movw r2, #61664 17749 cmp r1, r2 17750 bne .L2554 17751 cbz r4, .L2561 17752 cbz r6, .L2556 17753.L2559: 17754 mov r2, fp 17755 ldr r1, [r7] 17756 mov r0, r4 17757 bl ftl_memcpy 17758 movs r3, #4 17759 ldr r0, .L2565+12 17760 mov r2, r3 17761 mov r1, r4 17762 bl rknand_print_hex 17763 movs r0, #0 17764.L2552: 17765 add sp, sp, #48 17766 @ sp needed 17767 pop {r4, r5, r6, r7, r8, r10, fp, pc} 17768.L2556: 17769 ldr r1, [r7] 17770 mov ip, #1 17771 ldr r5, .L2565+16 17772.L2557: 17773 ldr r0, [r5] 17774 uxth r3, r6 17775 adds r6, r6, #1 17776 cmp r3, r0 17777 bcs .L2559 17778 lsrs r0, r3, #5 17779 and r3, r3, #31 17780 lsl r3, ip, r3 17781 ldr r2, [r1, r0, lsl #2] 17782 orrs r3, r3, r2 17783 str r3, [r1, r0, lsl #2] 17784 b .L2557 17785.L2554: 17786 subs r5, r5, #1 17787 uxth r5, r5 17788 b .L2553 17789.L2561: 17790 mov r0, r4 17791 b .L2552 17792.L2566: 17793 .align 2 17794.L2565: 17795 .word .LANCHOR15 17796 .word .LANCHOR154 17797 .word .LANCHOR205 17798 .word .LC59 17799 .word .LANCHOR156 17800 .size FlashReadFacBbtData, .-FlashReadFacBbtData 17801 .section .text.FlashGetBadBlockList,"ax",%progbits 17802 .align 1 17803 .global FlashGetBadBlockList 17804 .syntax unified 17805 .thumb 17806 .thumb_func 17807 .fpu softvfp 17808 .type FlashGetBadBlockList, %function 17809FlashGetBadBlockList: 17810 @ args = 0, pretend = 0, frame = 0 17811 @ frame_needed = 0, uses_anonymous_args = 0 17812 push {r3, r4, r5, r6, r7, lr} 17813 mov r5, r0 17814 ldr r3, .L2577 17815 ldr r6, .L2577+4 17816 ldr r3, [r3] 17817 ldr r0, [r6] 17818 ldrb r4, [r3, #13] @ zero_extendqisi2 17819 ldrh r3, [r3, #14] 17820 smulbb r4, r4, r3 17821 uxth r4, r4 17822 adds r2, r4, #7 17823 asrs r2, r2, #3 17824 bl FlashReadFacBbtData 17825 adds r0, r0, #1 17826 bne .L2568 17827.L2572: 17828 movs r3, #0 17829.L2569: 17830 movw r2, #65535 17831 movs r0, #0 17832 strh r2, [r5, r3, lsl #1] @ movhi 17833 pop {r3, r4, r5, r6, r7, pc} 17834.L2568: 17835 ldr r7, [r6] 17836 movs r2, #0 17837 lsr ip, r4, #4 17838 mov r3, r2 17839 subs r4, r4, #1 17840 mov lr, #1 17841.L2570: 17842 uxth r1, r2 17843 cmp r1, r4 17844 bge .L2569 17845 lsrs r6, r1, #5 17846 and r0, r1, #31 17847 lsl r0, lr, r0 17848 adds r2, r2, #1 17849 ldr r6, [r7, r6, lsl #2] 17850 tst r0, r6 17851 ittt ne 17852 addne r0, r3, #1 17853 strhne r1, [r5, r3, lsl #1] @ movhi 17854 uxthne r3, r0 17855 cmp r3, ip 17856 bcc .L2570 17857 b .L2572 17858.L2578: 17859 .align 2 17860.L2577: 17861 .word .LANCHOR7 17862 .word .LANCHOR149 17863 .size FlashGetBadBlockList, .-FlashGetBadBlockList 17864 .section .text.FtlMakeBbt,"ax",%progbits 17865 .align 1 17866 .global FtlMakeBbt 17867 .syntax unified 17868 .thumb 17869 .thumb_func 17870 .fpu softvfp 17871 .type FtlMakeBbt, %function 17872FtlMakeBbt: 17873 @ args = 0, pretend = 0, frame = 8 17874 @ frame_needed = 0, uses_anonymous_args = 0 17875 ldr r3, .L2599 17876 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 17877 ldr r7, [r3] 17878 cmp r7, #0 17879 bne .L2580 17880 ldr r8, .L2599+40 17881 ldr r4, .L2599+4 17882 bl FtlBbtMemInit 17883 sub r10, r8, #18 17884 bl FtlLoadFactoryBbt 17885.L2581: 17886 ldr r3, .L2599+8 17887 ldrh r3, [r3] 17888 cmp r7, r3 17889 bcc .L2587 17890 ldr r5, .L2599+12 17891 movs r4, #0 17892.L2588: 17893 ldrh r3, [r5] 17894 uxth r0, r4 17895 adds r4, r4, #1 17896 cmp r3, r0 17897 bhi .L2589 17898 ldr r4, .L2599+16 17899 movw r6, #65535 17900 ldrh r5, [r4, #12] 17901 subs r5, r5, #1 17902 uxth r5, r5 17903.L2590: 17904 ldrh r3, [r4, #12] 17905 subs r3, r3, #47 17906 cmp r3, r5 17907 bgt .L2594 17908 mov r0, r5 17909 bl FtlBbmIsBadBlock 17910 cmp r0, #1 17911 beq .L2591 17912 mov r0, r5 17913 bl FlashTestBlk 17914 cmp r0, #0 17915 beq .L2592 17916 mov r0, r5 17917 bl FtlBbmMapBadBlock 17918.L2591: 17919 subs r5, r5, #1 17920 uxth r5, r5 17921 b .L2590 17922.L2587: 17923 ldr r3, .L2599+20 17924 movw r1, #65535 17925 ldrh r2, [r10, #2]! 17926 ldr r0, [r3] 17927 ldr r3, .L2599+24 17928 cmp r2, r1 17929 str r0, [r4, #8] 17930 ldr fp, [r3] 17931 str r3, [sp, #4] 17932 ldr r3, .L2599+28 17933 str fp, [r4, #12] 17934 beq .L2582 17935 ldrh r6, [r3] 17936 mov r0, r4 17937 str r3, [sp] 17938 mla r6, r7, r6, r2 17939 lsls r2, r6, #10 17940 str r2, [r4, #4] 17941 movs r2, #1 17942 mov r1, r2 17943 bl FlashReadPages 17944 ldr r3, [sp] 17945 ldr r1, [r4, #8] 17946 ldr r0, [r8] 17947 ldrh r2, [r3] 17948 adds r2, r2, #7 17949 asrs r2, r2, #3 17950 bl ftl_memcpy 17951.L2583: 17952 uxth r0, r6 17953 adds r7, r7, #1 17954 add r8, r8, #4 17955 bl FtlBbmMapBadBlock 17956 b .L2581 17957.L2582: 17958 mov r1, r7 17959 str r3, [sp] 17960 bl FlashGetBadBlockList 17961 ldr r1, [r8] 17962 ldr r0, [r4, #8] 17963 bl FtlBbt2Bitmap 17964 ldr r3, [sp] 17965 ldrh r5, [r3] 17966.L2585: 17967 subs r5, r5, #1 17968 uxth r5, r5 17969.L2584: 17970 ldr r3, [sp] 17971 ldrh r0, [r3] 17972 smlabb r0, r0, r7, r5 17973 uxth r0, r0 17974 bl FtlBbmIsBadBlock 17975 cmp r0, #1 17976 beq .L2585 17977 ldr r3, [sp, #4] 17978 movs r2, #16 17979 movs r1, #0 17980 strh r5, [r10] @ movhi 17981 ldr r0, [r3] 17982 bl ftl_memset 17983 ldr r2, [sp] 17984 movw r3, #61664 17985 strh r3, [fp] @ movhi 17986 movs r3, #0 17987 str r3, [fp, #4] 17988 ldrh r6, [r2] 17989 ldrh r3, [r10] 17990 ldr r1, [r8] 17991 ldr r0, [r4, #8] 17992 strh r3, [fp, #2] @ movhi 17993 mla r6, r7, r6, r3 17994 lsls r3, r6, #10 17995 str r3, [r4, #4] 17996 ldr r3, .L2599+32 17997 ldrh r2, [r3] 17998 lsls r2, r2, #2 17999 bl ftl_memcpy 18000 movs r2, #1 18001 mov r0, r4 18002 mov r1, r2 18003 bl FlashEraseBlocks 18004 movs r3, #1 18005 mov r0, r4 18006 mov r2, r3 18007 mov r1, r3 18008 bl FlashProgPages 18009 ldr r3, [r4] 18010 adds r3, r3, #1 18011 bne .L2583 18012 uxth r0, r6 18013 bl FtlBbmMapBadBlock 18014 b .L2584 18015.L2589: 18016 bl FtlBbmMapBadBlock 18017 b .L2588 18018.L2592: 18019 ldrh r3, [r4] 18020 cmp r3, r6 18021 bne .L2593 18022 strh r5, [r4] @ movhi 18023 b .L2591 18024.L2593: 18025 strh r5, [r4, #4] @ movhi 18026.L2594: 18027 ldr r3, .L2599+36 18028 movs r5, #0 18029 str r5, [r4, #8] 18030 movs r2, #2 18031 movs r1, #1 18032 strh r5, [r4, #2] @ movhi 18033 ldr r0, [r3] 18034 ldrh r3, [r4] 18035 lsls r3, r3, #10 18036 str r3, [r0, #4] 18037 ldrh r3, [r4, #4] 18038 lsls r3, r3, #10 18039 str r3, [r0, #40] 18040 bl FlashEraseBlocks 18041 ldrh r0, [r4] 18042 bl FtlBbmMapBadBlock 18043 ldrh r0, [r4, #4] 18044 bl FtlBbmMapBadBlock 18045 bl FtlBbmTblFlush 18046 ldr r3, [r4, #8] 18047 ldrh r2, [r4, #4] 18048 strh r5, [r4, #2] @ movhi 18049 adds r3, r3, #1 18050 str r3, [r4, #8] 18051 ldrh r3, [r4] 18052 strh r2, [r4] @ movhi 18053 strh r3, [r4, #4] @ movhi 18054 bl FtlBbmTblFlush 18055.L2580: 18056 movs r0, #0 18057 add sp, sp, #8 18058 @ sp needed 18059 pop {r4, r5, r6, r7, r8, r10, fp, pc} 18060.L2600: 18061 .align 2 18062.L2599: 18063 .word .LANCHOR78 18064 .word .LANCHOR211 18065 .word .LANCHOR45 18066 .word .LANCHOR59 18067 .word .LANCHOR76 18068 .word .LANCHOR189 18069 .word .LANCHOR195 18070 .word .LANCHOR51 18071 .word .LANCHOR126 18072 .word .LANCHOR79 18073 .word .LANCHOR76+28 18074 .size FtlMakeBbt, .-FtlMakeBbt 18075 .section .text.log2phys,"ax",%progbits 18076 .align 1 18077 .global log2phys 18078 .syntax unified 18079 .thumb 18080 .thumb_func 18081 .fpu softvfp 18082 .type log2phys, %function 18083log2phys: 18084 @ args = 0, pretend = 0, frame = 24 18085 @ frame_needed = 0, uses_anonymous_args = 0 18086 push {r4, r5, r6, r7, r8, r10, fp, lr} 18087 sub sp, sp, #24 18088 ldr r4, .L2619 18089 mov fp, r0 18090 str r2, [sp, #16] 18091 ldr r2, [r4] 18092 ldr r3, .L2619+4 18093 str r1, [sp, #4] 18094 cmp r0, r2 18095 ldrh r5, [r3] 18096 bcc .L2602 18097 ldr r1, .L2619+8 18098 mov r2, #1004 18099 ldr r0, .L2619+12 18100 bl printf 18101 ldr r1, .L2619+16 18102 ldr r0, .L2619+20 18103 bl printf 18104.L2602: 18105 ldr r3, [r4] 18106 cmp fp, r3 18107 bcs .L2603 18108 adds r3, r5, #7 18109 ldr r5, .L2619+24 18110 lsr r7, fp, r3 18111 str r3, [sp, #8] 18112 ldr r3, .L2619+28 18113 movs r4, #12 18114 ldr r1, [r5] 18115 uxth r6, r7 18116 ldrh r2, [r3] 18117 movs r3, #0 18118.L2604: 18119 uxth r10, r3 18120 cmp r10, r2 18121 bcc .L2609 18122 bl select_l2p_ram_region 18123 muls r4, r0, r4 18124 ldr r3, [r5] 18125 mov r10, r0 18126 ldrh r1, [r3, r4] 18127 adds r2, r3, r4 18128 movw r3, #65535 18129 cmp r1, r3 18130 beq .L2610 18131 ldr r3, [r2, #4] 18132 cmp r3, #0 18133 bge .L2610 18134 bl flush_l2p_region 18135.L2610: 18136 ldr r3, .L2619+32 18137 ldrh r3, [r3] 18138 cmp r3, r6 18139 bcs .L2611 18140 ldr r1, .L2619+36 18141 movw r2, #597 18142 ldr r0, .L2619+12 18143 bl printf 18144 ldr r1, .L2619+16 18145 ldr r0, .L2619+20 18146 bl printf 18147.L2611: 18148 ldr r3, .L2619+40 18149 uxth r7, r7 18150 ldr r3, [r3] 18151 ldr r3, [r3, r7, lsl #2] 18152 cmp r3, #0 18153 bne .L2612 18154 ldr r2, [r5] 18155 movs r1, #255 18156 str r3, [sp, #12] 18157 adds r0, r2, r4 18158 ldr r2, .L2619+44 18159 ldr r0, [r0, #8] 18160 ldrh r2, [r2] 18161 bl ftl_memset 18162 ldr r2, [r5] 18163 ldr r3, [sp, #12] 18164 adds r1, r2, r4 18165 strh r6, [r2, r4] @ movhi 18166 str r3, [r1, #4] 18167 b .L2606 18168.L2603: 18169 ldr r3, [sp, #16] 18170 mov r0, #-1 18171 cbnz r3, .L2601 18172 ldr r3, [sp, #4] 18173 str r0, [r3] 18174.L2601: 18175 add sp, sp, #24 18176 @ sp needed 18177 pop {r4, r5, r6, r7, r8, r10, fp, pc} 18178.L2609: 18179 adds r3, r3, #1 18180 mla r0, r4, r3, r1 18181 ldrh r0, [r0, #-12] 18182 cmp r0, r6 18183 bne .L2604 18184.L2606: 18185 ldr r2, [sp, #8] 18186 movs r3, #1 18187 ldr r0, [sp, #16] 18188 ldr r1, .L2619+24 18189 lsls r3, r3, r2 18190 movs r2, #12 18191 subs r3, r3, #1 18192 and r3, r3, fp 18193 uxth r3, r3 18194 cbnz r0, .L2607 18195 ldr r0, [r1] 18196 mla r2, r2, r10, r0 18197 ldr r2, [r2, #8] 18198 ldr r3, [r2, r3, lsl #2] 18199 ldr r2, [sp, #4] 18200 str r3, [r2] 18201.L2608: 18202 ldr r2, [r1] 18203 movs r3, #12 18204 mla r10, r3, r10, r2 18205 ldr r3, [r10, #4] 18206 adds r2, r3, #1 18207 beq .L2617 18208 adds r3, r3, #1 18209 str r3, [r10, #4] 18210.L2617: 18211 movs r0, #0 18212 b .L2601 18213.L2607: 18214 ldr r0, [r1] 18215 mla r2, r2, r10, r0 18216 ldr r0, [sp, #4] 18217 ldr r4, [r0] 18218 ldr r0, [r2, #8] 18219 str r4, [r0, r3, lsl #2] 18220 ldr r3, [r2, #4] 18221 orr r3, r3, #-2147483648 18222 str r3, [r2, #4] 18223 ldr r3, .L2619+48 18224 strh r6, [r3] @ movhi 18225 b .L2608 18226.L2612: 18227 ldr r2, [r5] 18228 ldr r8, .L2619+80 18229 str r3, [sp, #20] 18230 add r2, r2, r4 18231 ldr r2, [r2, #8] 18232 mov r0, r8 18233 str r3, [r8, #4] 18234 str r2, [r8, #8] 18235 ldr r2, .L2619+52 18236 ldr r2, [r2] 18237 str r2, [r8, #12] 18238 movs r2, #1 18239 mov r1, r2 18240 bl FlashReadPages 18241 ldr r3, [r8, #12] 18242 ldrh r2, [r3, #8] 18243 str r3, [sp, #12] 18244 ldr r3, [sp, #20] 18245 cmp r2, r6 18246 beq .L2613 18247 mov r2, r3 18248 mov r1, r7 18249 ldr r0, .L2619+56 18250 bl printf 18251 movs r3, #4 18252 ldr r1, [r8, #12] 18253 mov r2, r3 18254 ldr r0, .L2619+60 18255 bl rknand_print_hex 18256 ldr r3, .L2619+32 18257 movs r2, #4 18258 ldr r1, .L2619+40 18259 ldr r0, .L2619+64 18260 ldrh r3, [r3] 18261 ldr r1, [r1] 18262 bl rknand_print_hex 18263 ldr r3, .L2619+68 18264 movs r2, #1 18265 str r2, [r3] 18266.L2614: 18267 ldr r3, [sp, #12] 18268 ldrh r3, [r3, #8] 18269 cmp r3, r6 18270 beq .L2615 18271 ldr r1, .L2619+36 18272 mov r2, #624 18273 ldr r0, .L2619+12 18274 bl printf 18275 ldr r1, .L2619+16 18276 ldr r0, .L2619+20 18277 bl printf 18278.L2615: 18279 ldr r3, .L2619+24 18280 movs r1, #0 18281 ldr r3, [r3] 18282 adds r2, r3, r4 18283 str r1, [r2, #4] 18284 strh r6, [r3, r4] @ movhi 18285 b .L2606 18286.L2613: 18287 ldr r2, [r8] 18288 cmp r2, #256 18289 bne .L2614 18290 mov r2, r3 18291 mov r1, r7 18292 ldr r0, .L2619+72 18293 bl printf 18294 ldr r3, [r5] 18295 mov r1, r7 18296 ldr r0, .L2619+76 18297 add r3, r3, r4 18298 ldr r2, [r3, #8] 18299 bl FtlMapWritePage 18300 b .L2614 18301.L2620: 18302 .align 2 18303.L2619: 18304 .word .LANCHOR74 18305 .word .LANCHOR56 18306 .word .LANCHOR236 18307 .word .LC5 18308 .word .LC6 18309 .word .LC7 18310 .word .LANCHOR98 18311 .word .LANCHOR67 18312 .word .LANCHOR66 18313 .word .LANCHOR237 18314 .word .LANCHOR134 18315 .word .LANCHOR57 18316 .word .LANCHOR99 18317 .word .LANCHOR195 18318 .word .LC60 18319 .word .LC28 18320 .word .LC61 18321 .word .LANCHOR78 18322 .word .LC62 18323 .word .LANCHOR130 18324 .word .LANCHOR211 18325 .size log2phys, .-log2phys 18326 .section .text.FtlCheckVpc,"ax",%progbits 18327 .align 1 18328 .global FtlCheckVpc 18329 .syntax unified 18330 .thumb 18331 .thumb_func 18332 .fpu softvfp 18333 .type FtlCheckVpc, %function 18334FtlCheckVpc: 18335 @ args = 0, pretend = 0, frame = 8 18336 @ frame_needed = 0, uses_anonymous_args = 0 18337 push {r0, r1, r4, r5, r6, r7, r8, r10, fp, lr} 18338 movs r4, #0 18339 ldr r6, .L2645 18340 ldr r5, .L2645+4 18341 ldr r1, .L2645+8 18342 ldr r0, .L2645+12 18343 bl printf 18344 mov r2, #8192 18345 movs r1, #0 18346 ldr r0, .L2645+4 18347 bl memset 18348.L2622: 18349 ldr r3, [r6] 18350 cmp r4, r3 18351 bcc .L2624 18352 ldr r10, .L2645+60 18353 movs r4, #0 18354 ldr r7, .L2645+16 18355 mov r5, r4 18356.L2625: 18357 ldrh r2, [r10] 18358 uxth r3, r4 18359 cmp r2, r3 18360 bhi .L2627 18361 ldr r3, .L2645+20 18362 ldr r4, [r3] 18363 cbz r4, .L2628 18364 ldr r3, .L2645+24 18365 mov r8, #0 18366 ldr r6, .L2645+28 18367 ldr r10, .L2645+16 18368 ldrh r7, [r3] 18369 ldr r3, [r6] 18370 ldr fp, .L2645+4 18371 subs r4, r4, r3 18372 ldr r3, .L2645+32 18373 asrs r4, r4, #1 18374 muls r4, r3, r4 18375 uxth r4, r4 18376.L2629: 18377 uxth r3, r8 18378 cmp r7, r3 18379 bls .L2628 18380 ldr r3, [r10] 18381 ldrh r2, [r3, r4, lsl #1] 18382 cbz r2, .L2630 18383 movs r5, #1 18384 ldrh r3, [fp, r4, lsl #1] 18385 mov r1, r4 18386 ldr r0, .L2645+36 18387 bl printf 18388.L2630: 18389 movs r3, #6 18390 ldr r2, [r6] 18391 muls r4, r3, r4 18392 movw r3, #65535 18393 add r8, r8, #1 18394 ldrh r4, [r2, r4] 18395 cmp r4, r3 18396 bne .L2629 18397.L2628: 18398 mov r1, r5 18399 ldr r0, .L2645+40 18400 bl printf 18401 cbz r5, .L2621 18402 ldr r1, .L2645+8 18403 movw r2, #1849 18404 ldr r0, .L2645+44 18405 bl printf 18406 ldr r1, .L2645+48 18407 ldr r0, .L2645+52 18408 bl printf 18409.L2621: 18410 add sp, sp, #8 18411 @ sp needed 18412 pop {r4, r5, r6, r7, r8, r10, fp, pc} 18413.L2624: 18414 movs r2, #0 18415 add r1, sp, #4 18416 mov r0, r4 18417 bl log2phys 18418 ldr r0, [sp, #4] 18419 adds r3, r0, #1 18420 beq .L2623 18421 ubfx r0, r0, #10, #16 18422 bl P2V_block_in_plane 18423 ldrh r3, [r5, r0, lsl #1] 18424 adds r3, r3, #1 18425 strh r3, [r5, r0, lsl #1] @ movhi 18426.L2623: 18427 adds r4, r4, #1 18428 b .L2622 18429.L2627: 18430 ldr r3, [r7] 18431 uxth r6, r4 18432 ldr r8, .L2645+4 18433 ldrh r2, [r3, r6, lsl #1] 18434 ldrh r3, [r8, r6, lsl #1] 18435 cmp r2, r3 18436 beq .L2626 18437 mov r1, r6 18438 ldr r0, .L2645+56 18439 bl printf 18440 ldr r3, [r7] 18441 movw r2, #65535 18442 ldrh r3, [r3, r6, lsl #1] 18443 cmp r3, r2 18444 beq .L2626 18445 ldrh r2, [r8, r6, lsl #1] 18446 cmp r2, r3 18447 it hi 18448 movhi r5, #1 18449.L2626: 18450 adds r4, r4, #1 18451 b .L2625 18452.L2646: 18453 .align 2 18454.L2645: 18455 .word .LANCHOR74 18456 .word check_valid_page_count_table 18457 .word .LANCHOR238 18458 .word .LC48 18459 .word .LANCHOR85 18460 .word .LANCHOR89 18461 .word .LANCHOR90 18462 .word .LANCHOR83 18463 .word -1431655765 18464 .word .LC64 18465 .word .LC65 18466 .word .LC5 18467 .word .LC6 18468 .word .LC7 18469 .word .LC63 18470 .word .LANCHOR40 18471 .size FtlCheckVpc, .-FtlCheckVpc 18472 .section .text.Ftlscanalldata,"ax",%progbits 18473 .align 1 18474 .global Ftlscanalldata 18475 .syntax unified 18476 .thumb 18477 .thumb_func 18478 .fpu softvfp 18479 .type Ftlscanalldata, %function 18480Ftlscanalldata: 18481 @ args = 0, pretend = 0, frame = 8 18482 @ frame_needed = 0, uses_anonymous_args = 0 18483 push {r4, r5, r6, r7, r8, lr} 18484 movs r5, #0 18485 ldr r7, .L2661 18486 sub sp, sp, #32 18487 movs r1, #0 18488 ldr r8, .L2661+24 18489 ldr r0, .L2661+4 18490 bl printf 18491.L2648: 18492 ldr r3, [r7] 18493 cmp r5, r3 18494 bcc .L2654 18495 add sp, sp, #32 18496 @ sp needed 18497 pop {r4, r5, r6, r7, r8, pc} 18498.L2654: 18499 movs r2, #0 18500 add r1, sp, #28 18501 mov r0, r5 18502 bl log2phys 18503 ubfx r3, r5, #0, #11 18504 cbnz r3, .L2649 18505 ldr r2, [sp, #28] 18506 mov r1, r5 18507 mov r0, r8 18508 bl printf 18509.L2649: 18510 ldr r3, [sp, #28] 18511 adds r2, r3, #1 18512 beq .L2651 18513 ldr r4, .L2661+8 18514 movs r2, #0 18515 movs r1, #1 18516 str r3, [r4, #4] 18517 mov r0, r4 18518 ldr r3, .L2661+12 18519 str r5, [r4, #16] 18520 str r2, [r4] 18521 ldr r3, [r3] 18522 str r3, [r4, #8] 18523 ldr r3, .L2661+16 18524 ldr r6, [r3] 18525 str r6, [r4, #12] 18526 bl FlashReadPages 18527 ldr r3, [r4] 18528 cmp r3, #256 18529 beq .L2652 18530 adds r3, r3, #1 18531 beq .L2652 18532 ldr r3, [r6, #8] 18533 cmp r5, r3 18534 beq .L2651 18535.L2652: 18536 ldr r2, [r4, #8] 18537 ldr r3, [r4, #12] 18538 ldr r0, .L2661+20 18539 ldr r1, [r2, #4] 18540 str r1, [sp, #16] 18541 mov r1, r5 18542 ldr r2, [r2] 18543 str r2, [sp, #12] 18544 ldr r2, [r3, #12] 18545 str r2, [sp, #8] 18546 ldr r2, [r3, #8] 18547 str r2, [sp, #4] 18548 ldr r2, [r3, #4] 18549 str r2, [sp] 18550 ldr r2, [r4, #4] 18551 ldr r3, [r3] 18552 bl printf 18553.L2651: 18554 adds r5, r5, #1 18555 b .L2648 18556.L2662: 18557 .align 2 18558.L2661: 18559 .word .LANCHOR74 18560 .word .LC66 18561 .word .LANCHOR211 18562 .word .LANCHOR189 18563 .word .LANCHOR195 18564 .word .LC68 18565 .word .LC67 18566 .size Ftlscanalldata, .-Ftlscanalldata 18567 .section .text.FtlReUsePrevPpa,"ax",%progbits 18568 .align 1 18569 .global FtlReUsePrevPpa 18570 .syntax unified 18571 .thumb 18572 .thumb_func 18573 .fpu softvfp 18574 .type FtlReUsePrevPpa, %function 18575FtlReUsePrevPpa: 18576 @ args = 0, pretend = 0, frame = 8 18577 @ frame_needed = 0, uses_anonymous_args = 0 18578 push {r0, r1, r4, r5, r6, r7, r8, lr} 18579 mov r6, r0 18580 ldr r5, .L2673 18581 ubfx r0, r1, #10, #16 18582 str r1, [sp, #4] 18583 bl P2V_block_in_plane 18584 ldr r2, [r5] 18585 mov r7, r0 18586 ldrh r3, [r2, r0, lsl #1] 18587 cmp r3, #0 18588 bne .L2664 18589 ldr r2, .L2673+4 18590 ldr r4, [r2] 18591 cmp r4, #0 18592 beq .L2665 18593 ldr r2, .L2673+8 18594 movw lr, #65535 18595 ldr ip, .L2673+32 18596 ldr r0, .L2673+12 18597 ldr r2, [r2] 18598 ldrh r1, [r0] 18599 mov r8, r0 18600 subs r4, r4, r2 18601 asrs r4, r4, #1 18602 mul r4, ip, r4 18603 mov ip, #6 18604 uxth r4, r4 18605.L2666: 18606 uxth r0, r3 18607 cmp r1, r0 18608 bls .L2665 18609 cmp r4, r7 18610 bne .L2667 18611 mov r1, r4 18612 ldr r0, .L2673+4 18613 bl List_remove_node 18614 ldrh r3, [r8] 18615 cbnz r3, .L2668 18616 ldr r1, .L2673+16 18617 movw r2, #2271 18618 ldr r0, .L2673+20 18619 bl printf 18620 ldr r1, .L2673+24 18621 ldr r0, .L2673+28 18622 bl printf 18623.L2668: 18624 ldrh r3, [r8] 18625 mov r0, r4 18626 subs r3, r3, #1 18627 strh r3, [r8] @ movhi 18628 bl INSERT_DATA_LIST 18629 ldr r2, [r5] 18630 ldrh r3, [r2, r7, lsl #1] 18631.L2664: 18632 adds r3, r3, #1 18633 strh r3, [r2, r7, lsl #1] @ movhi 18634 b .L2665 18635.L2667: 18636 mul r4, ip, r4 18637 adds r3, r3, #1 18638 ldrh r4, [r2, r4] 18639 cmp r4, lr 18640 bne .L2666 18641.L2665: 18642 movs r2, #1 18643 add r1, sp, #4 18644 mov r0, r6 18645 bl log2phys 18646 add sp, sp, #8 18647 @ sp needed 18648 pop {r4, r5, r6, r7, r8, pc} 18649.L2674: 18650 .align 2 18651.L2673: 18652 .word .LANCHOR85 18653 .word .LANCHOR89 18654 .word .LANCHOR83 18655 .word .LANCHOR90 18656 .word .LANCHOR239 18657 .word .LC5 18658 .word .LC6 18659 .word .LC7 18660 .word -1431655765 18661 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa 18662 .section .text.FtlRecoverySuperblock,"ax",%progbits 18663 .align 1 18664 .global FtlRecoverySuperblock 18665 .syntax unified 18666 .thumb 18667 .thumb_func 18668 .fpu softvfp 18669 .type FtlRecoverySuperblock, %function 18670FtlRecoverySuperblock: 18671 @ args = 0, pretend = 0, frame = 56 18672 @ frame_needed = 0, uses_anonymous_args = 0 18673 ldrh r3, [r0] 18674 movw r2, #65535 18675 push {r4, r5, r6, r7, r8, r10, fp, lr} 18676 mov r10, r0 18677 sub sp, sp, #56 18678 cmp r3, r2 18679 beq .L2839 18680 ldrh r3, [r0, #2] 18681 str r3, [sp, #12] 18682 ldrb r3, [r0, #6] @ zero_extendqisi2 18683 ldr r1, [sp, #12] 18684 str r3, [sp, #28] 18685 ldr r3, .L2848 18686 ldrh r3, [r3] 18687 cmp r3, r1 18688 mov r3, #0 18689 bne .L2678 18690 strh r3, [r0, #4] @ movhi 18691.L2846: 18692 strb r3, [r10, #6] 18693.L2839: 18694 movs r0, #0 18695 add sp, sp, #56 18696 @ sp needed 18697 pop {r4, r5, r6, r7, r8, r10, fp, pc} 18698.L2678: 18699 ldrh r0, [r0, #16] 18700.L2679: 18701 cmp r0, r2 18702 uxth r5, r3 18703 add r3, r3, #1 18704 beq .L2680 18705 ldrb r1, [r10, #8] @ zero_extendqisi2 18706 cmp r1, #1 18707 bne .L2681 18708 bl FtlGetLastWrittenPage 18709 adds r6, r0, #1 18710 mov r4, r0 18711 beq .L2682 18712 ldr r3, .L2848+4 18713 ldrb r3, [r3] @ zero_extendqisi2 18714 cmp r3, #0 18715 bne .L2760 18716 ldr r3, .L2848+8 18717 ldrh r5, [r3, r0, lsl #1] 18718.L2683: 18719 ldr r3, .L2848+12 18720 movw r8, #65535 18721 mov fp, #36 18722 ldrh ip, [r3] 18723 ldr r3, .L2848+16 18724 ldr r0, [r3] 18725 ldr r3, .L2848+20 18726 ldr r3, [r3] 18727 str r3, [sp, #8] 18728 ldr r3, .L2848+24 18729 ldrh lr, [r3] 18730 add r3, r10, #16 18731 str r3, [sp, #20] 18732 str r3, [sp, #4] 18733 movs r3, #0 18734 mov r6, r3 18735.L2684: 18736 uxth r2, r3 18737 cmp ip, r2 18738 bhi .L2688 18739 ldrb r3, [r10, #8] @ zero_extendqisi2 18740 cmp r3, #1 18741 bne .L2761 18742 ldr r3, .L2848+4 18743 ldrb r3, [r3] @ zero_extendqisi2 18744 adds r3, r3, #0 18745 it ne 18746 movne r3, #1 18747.L2840: 18748 str r3, [sp, #36] 18749 mov r1, r6 18750 ldr r2, [sp, #36] 18751 movs r7, #0 18752 bl FlashReadPages 18753 ldr r3, .L2848+28 18754 movw fp, #65535 18755 ldr r8, .L2848+16 18756 ldr r3, [r3] 18757 subs r3, r3, #1 18758 str r3, [sp, #4] 18759.L2690: 18760 uxth r3, r7 18761 cmp r6, r3 18762 bhi .L2695 18763 bne .L2693 18764 adds r4, r4, #1 18765 uxth r3, r4 18766 str r3, [sp, #8] 18767 ldr r3, [r8] 18768 ldr r0, [r3, #4] 18769.L2841: 18770 ubfx r0, r0, #10, #16 18771 bl P2V_plane 18772 ldrb r3, [r10, #8] @ zero_extendqisi2 18773 str r0, [sp, #16] 18774 cmp r3, #1 18775 bne .L2697 18776 ldr r2, .L2848+4 18777 ldrb r2, [r2] @ zero_extendqisi2 18778 cbnz r2, .L2697 18779 ldr r1, [sp, #8] 18780 ldr r2, .L2848+8 18781 ldrh r2, [r2, r1, lsl #1] 18782 str r2, [sp, #8] 18783.L2697: 18784 ldr r2, .L2848 18785 ldr r1, [sp, #8] 18786 ldrh r2, [r2] 18787 cmp r2, r1 18788 bne .L2698 18789 ldrh r2, [sp, #8] 18790 strh r2, [r10, #2] @ movhi 18791 movs r2, #0 18792 strb r2, [r10, #6] 18793 strh r2, [r10, #4] @ movhi 18794.L2698: 18795 ldr r2, [sp, #8] 18796 ldr r1, [sp, #12] 18797 cmp r2, r1 18798 bne .L2699 18799 ldr r2, [sp, #16] 18800 ldr r1, [sp, #28] 18801 cmp r2, r1 18802 bne .L2699 18803.L2847: 18804 ldr r1, [sp, #8] 18805 mov r0, r10 18806 bl ftl_sb_update_avl_pages 18807 b .L2839 18808.L2680: 18809 uxth r1, r3 18810 adds r1, r1, #8 18811 ldrh r0, [r10, r1, lsl #1] 18812 b .L2679 18813.L2681: 18814 movs r1, #0 18815 bl FtlGetLastWrittenPage 18816 mov r4, r0 18817 adds r0, r0, #1 18818 beq .L2682 18819.L2760: 18820 mov r5, r4 18821 b .L2683 18822.L2682: 18823 ldr r3, [sp, #12] 18824 cbz r3, .L2685 18825 ldr r1, .L2848+32 18826 movw r2, #2350 18827 ldr r0, .L2848+36 18828 bl printf 18829 ldr r1, .L2848+40 18830 ldr r0, .L2848+44 18831 bl printf 18832.L2685: 18833 ldr r3, [sp, #28] 18834 cbz r3, .L2686 18835 cmp r5, r3 18836 beq .L2686 18837 ldr r1, .L2848+32 18838 movw r2, #2351 18839 ldr r0, .L2848+36 18840 bl printf 18841 ldr r1, .L2848+40 18842 ldr r0, .L2848+44 18843 bl printf 18844.L2686: 18845 movs r3, #0 18846 strh r3, [r10, #2] @ movhi 18847 b .L2846 18848.L2688: 18849 ldr r1, [sp, #4] 18850 ldrh r2, [r1], #2 18851 cmp r2, r8 18852 str r1, [sp, #4] 18853 beq .L2687 18854 mla r1, fp, r6, r0 18855 orr r2, r5, r2, lsl #10 18856 str r2, [r1, #4] 18857 movs r2, #0 18858 str r2, [r1, #8] 18859 mul r2, lr, r6 18860 adds r6, r6, #1 18861 uxth r6, r6 18862 bic r2, r2, #3 18863 mov r7, r2 18864 ldr r2, [sp, #8] 18865 add r7, r7, r2 18866 str r7, [r1, #12] 18867.L2687: 18868 adds r3, r3, #1 18869 b .L2684 18870.L2761: 18871 movs r3, #0 18872 b .L2840 18873.L2695: 18874 movs r3, #36 18875 ldr r1, [r8] 18876 muls r3, r7, r3 18877 adds r2, r1, r3 18878 ldr r3, [r1, r3] 18879 cbnz r3, .L2691 18880 ldr r2, [r2, #12] 18881 ldr r3, [r2, #4] 18882 adds r1, r3, #1 18883 beq .L2692 18884 ldr r1, .L2848+28 18885 mov r0, r3 18886 ldr r1, [r1] 18887 bl ftl_cmp_data_ver 18888 cbz r0, .L2692 18889 ldr r1, .L2848+28 18890 adds r3, r3, #1 18891 str r3, [r1] 18892.L2692: 18893 ldr r3, [r2] 18894 adds r3, r3, #1 18895 bne .L2694 18896.L2693: 18897 uxth r3, r4 18898 uxth r7, r7 18899 str r3, [sp, #8] 18900 movs r2, #36 18901 ldr r3, [r8] 18902 mla r7, r2, r7, r3 18903 ldr r0, [r7, #4] 18904 b .L2841 18905.L2691: 18906 ldr r1, [r2, #4] 18907 uxth fp, r5 18908 ldr r0, .L2848+48 18909 bl printf 18910 ldrh r2, [r10] 18911 ldr r3, .L2848+52 18912 strh r2, [r3] @ movhi 18913.L2694: 18914 adds r7, r7, #1 18915 b .L2690 18916.L2699: 18917 movw r2, #65535 18918 cmp fp, r2 18919 bne .L2700 18920 cmp r3, #0 18921 bne .L2701 18922.L2700: 18923 ldr r3, .L2848+56 18924 uxth fp, r5 18925 uxth r5, r5 18926 mov r7, #-1 18927 mov r6, r7 18928 ldr r2, [r3] 18929 adds r2, r2, #1 18930 itt eq 18931 ldreq r2, [sp, #4] 18932 streq r2, [r3] 18933 ldr r3, [r3] 18934 str r3, [sp, #24] 18935 ldr r3, [sp, #12] 18936 adds r3, r3, #7 18937 cmp r5, r3 18938 itet gt 18939 subgt r4, fp, #7 18940 ldrle r4, [sp, #12] 18941 uxthgt r4, r4 18942.L2704: 18943 cmp r4, fp 18944 bhi .L2719 18945 ldr r3, .L2848+12 18946 movw lr, #65535 18947 mov ip, #36 18948 ldrh r8, [r3] 18949 ldr r3, .L2848+16 18950 ldr r0, [r3] 18951 ldr r3, [sp, #20] 18952 str r3, [sp, #32] 18953 movs r3, #0 18954 mov r5, r3 18955 b .L2720 18956.L2706: 18957 ldr r1, [sp, #32] 18958 ldrh r2, [r1], #2 18959 cmp r2, lr 18960 str r1, [sp, #32] 18961 beq .L2705 18962 mla r1, ip, r5, r0 18963 adds r5, r5, #1 18964 orr r2, r4, r2, lsl #10 18965 uxth r5, r5 18966 str r2, [r1, #4] 18967.L2705: 18968 adds r3, r3, #1 18969.L2720: 18970 uxth r2, r3 18971 cmp r8, r2 18972 bhi .L2706 18973 mov r1, r5 18974 ldr r2, [sp, #36] 18975 bl FlashReadPages 18976 ldr r2, .L2848+4 18977 movs r1, #36 18978 ldr r3, .L2848+56 18979 movs r0, #0 18980 movw ip, #65535 18981 ldrb lr, [r2] @ zero_extendqisi2 18982 ldr r2, .L2848+16 18983 ldr r3, [r3] 18984 ldr r2, [r2] 18985 mla r5, r1, r5, r2 18986.L2707: 18987 cmp r5, r2 18988 bne .L2717 18989 cbz r0, .L2718 18990 ldr r2, .L2848+56 18991 str r3, [r2] 18992.L2718: 18993 adds r4, r4, #1 18994 uxth r4, r4 18995 b .L2704 18996.L2849: 18997 .align 2 18998.L2848: 18999 .word .LANCHOR52 19000 .word .LANCHOR16 19001 .word .LANCHOR17 19002 .word .LANCHOR38 19003 .word .LANCHOR186 19004 .word .LANCHOR108 19005 .word .LANCHOR58 19006 .word .LANCHOR165 19007 .word .LANCHOR240 19008 .word .LC5 19009 .word .LC6 19010 .word .LC7 19011 .word .LC69 19012 .word .LANCHOR241 19013 .word .LANCHOR139 19014.L2717: 19015 ldr r1, [r2] 19016 cbnz r1, .L2708 19017 ldr r1, [r2, #12] 19018 ldrh r8, [r1] 19019 cmp r8, ip 19020 beq .L2764 19021 ldr r1, [r1, #4] 19022 cmp r1, #-1 19023 beq .L2764 19024 adds r0, r7, #1 19025 bne .L2766 19026 ldr r0, .L2850 19027 ldrh r0, [r0, r4, lsl #1] 19028 cmp r0, ip 19029 bne .L2710 19030 cmp lr, #0 19031 beq .L2766 19032.L2710: 19033 ldr r0, [sp, #4] 19034 cmp r0, r3 19035 it ne 19036 movne r7, r3 19037.L2766: 19038 movs r0, #1 19039 b .L2709 19040.L2708: 19041 cbz r0, .L2711 19042 ldr r2, .L2850+4 19043 str r3, [r2] 19044.L2711: 19045 ldr r3, .L2850+8 19046 ldrh r2, [r10] 19047 strh r2, [r3] @ movhi 19048 ldrb r3, [r10, #8] @ zero_extendqisi2 19049 cbnz r3, .L2701 19050 ldr r3, .L2850 19051 ldrh r2, [r3, r4, lsl #1] 19052 movw r3, #65535 19053 cmp r2, r3 19054 bne .L2713 19055 adds r1, r7, #1 19056 ldr r3, .L2850+4 19057 beq .L2714 19058 str r7, [r3] 19059.L2701: 19060 ldr fp, [sp, #12] 19061 movs r2, #1 19062 ldr r6, .L2850+12 19063 ldr r3, .L2850+16 19064 strh r2, [r3] @ movhi 19065.L2721: 19066 ldr r3, .L2850+20 19067 movw ip, #65535 19068 ldr r0, [r6] 19069 mov lr, #36 19070 ldr r1, [sp, #20] 19071 movs r2, #0 19072 ldrh r5, [r3] 19073 ldr r3, .L2850+24 19074 str r2, [sp, #24] 19075 ldrb r7, [r3] @ zero_extendqisi2 19076.L2722: 19077 uxth r3, r2 19078 cmp r3, r5 19079 bcc .L2725 19080 ldr r2, [sp, #36] 19081 ldr r1, [sp, #24] 19082 bl FlashReadPages 19083 movs r3, #0 19084.L2845: 19085 str r3, [sp, #32] 19086 ldr r2, [sp, #24] 19087 ldrh r3, [sp, #32] 19088 cmp r2, r3 19089 bhi .L2754 19090 ldrb r3, [r10, #8] @ zero_extendqisi2 19091 add fp, fp, #1 19092 uxth fp, fp 19093 cmp r3, #1 19094 bne .L2755 19095 ldr r3, .L2850+24 19096 ldrb r3, [r3] @ zero_extendqisi2 19097 cbz r3, .L2755 19098 ldr r3, .L2850+28 19099 ldrh r3, [r3] 19100 cmp r3, fp 19101 bne .L2755 19102 ldr r3, [sp, #8] 19103 cmp r3, fp 19104 beq .L2730 19105.L2755: 19106 ldr r3, .L2850+32 19107 ldrh r3, [r3] 19108 cmp r3, fp 19109 bne .L2721 19110 ldr r2, .L2850+20 19111 movw r0, #65535 19112 movs r3, #0 19113 strh fp, [r10, #2] @ movhi 19114 strh r3, [r10, #4] @ movhi 19115 ldrh r2, [r2] 19116.L2756: 19117 uxth r1, r3 19118 cmp r1, r2 19119 bcs .L2839 19120 ldr r1, [sp, #20] 19121 ldrh r4, [r1], #2 19122 cmp r4, r0 19123 str r1, [sp, #20] 19124 add r1, r3, #1 19125 bne .L2846 19126 mov r3, r1 19127 b .L2756 19128.L2714: 19129 ldr r2, [sp, #4] 19130 ldr r1, [sp, #24] 19131 cmp r2, r1 19132 itet eq 19133 ldreq r2, [r3] 19134 movne r2, r1 19135 addeq r2, r2, #-1 19136.L2842: 19137 str r2, [r3] 19138 b .L2701 19139.L2713: 19140 ldr r3, [sp, #4] 19141 cmp r6, r3 19142 beq .L2716 19143 adds r2, r6, #1 19144 beq .L2701 19145 ldr r3, .L2850+4 19146 str r6, [r3] 19147 b .L2701 19148.L2716: 19149 ldr r2, .L2850+4 19150 ldr r1, [sp, #4] 19151 ldr r3, [r2] 19152 cmp r1, r3 19153 beq .L2701 19154 subs r3, r3, #1 19155 str r3, [r2] 19156 b .L2701 19157.L2764: 19158 mov r1, r3 19159 mov r3, r6 19160.L2709: 19161 mov r6, r3 19162 adds r2, r2, #36 19163 mov r3, r1 19164 b .L2707 19165.L2719: 19166 mov r2, #-1 19167 ldr r3, .L2850+4 19168 b .L2842 19169.L2725: 19170 ldrh r3, [r1], #2 19171 cmp r3, ip 19172 beq .L2723 19173 ldr r4, [sp, #24] 19174 orr r3, fp, r3, lsl #10 19175 mla r4, lr, r4, r0 19176 str r3, [r4, #4] 19177 ldrb r8, [r10, #8] @ zero_extendqisi2 19178 cmp r8, #1 19179 bne .L2724 19180 cbz r7, .L2724 19181 orr r3, r3, #-2147483648 19182 str r3, [r4, #4] 19183.L2724: 19184 ldr r3, [sp, #24] 19185 adds r3, r3, #1 19186 uxth r3, r3 19187 str r3, [sp, #24] 19188.L2723: 19189 adds r2, r2, #1 19190 b .L2722 19191.L2754: 19192 ldr r3, [sp, #32] 19193 movs r5, #36 19194 ldr r8, [r6] 19195 muls r5, r3, r5 19196 add r7, r8, r5 19197 ldr r4, [r7, #4] 19198 ubfx r0, r4, #10, #16 19199 str r4, [sp, #52] 19200 bl P2V_plane 19201 ldr r3, [sp, #12] 19202 cmp fp, r3 19203 bcc .L2727 19204 bne .L2728 19205 ldr r3, [sp, #28] 19206 cmp r3, r0 19207 bhi .L2727 19208.L2728: 19209 ldr r3, [sp, #8] 19210 cmp fp, r3 19211 bne .L2729 19212 ldr r3, [sp, #16] 19213 cmp r3, r0 19214 beq .L2730 19215.L2729: 19216 ldr r3, [r8, r5] 19217 adds r3, r3, #1 19218 beq .L2731 19219 ldr r3, [r7, #12] 19220 movw r2, #61589 19221 ldrh r1, [r3] 19222 cmp r1, r2 19223 beq .L2732 19224 ldrh r0, [r10] 19225.L2843: 19226 bl decrement_vpc_count 19227 b .L2727 19228.L2732: 19229 ldr r2, [r3, #4] 19230 str r2, [sp, #4] 19231 adds r2, r2, #1 19232 beq .L2733 19233 ldr r2, .L2850+36 19234 ldr r0, [sp, #4] 19235 ldr r1, [r2] 19236 bl ftl_cmp_data_ver 19237 cbz r0, .L2733 19238 ldr r1, [sp, #4] 19239 adds r1, r1, #1 19240 str r1, [r2] 19241.L2733: 19242 ldr r4, [r3, #8] 19243 add r1, sp, #48 19244 ldr r3, [r3, #12] 19245 movs r2, #0 19246 mov r0, r4 19247 str r3, [sp, #44] 19248 bl log2phys 19249 ldr r3, .L2850+4 19250 ldr r1, [r3] 19251 adds r3, r1, #1 19252 beq .L2734 19253 ldr r0, [sp, #4] 19254 bl ftl_cmp_data_ver 19255 cmp r0, #0 19256 beq .L2734 19257 ldr r3, [sp, #44] 19258 adds r7, r3, #1 19259 beq .L2735 19260 ldr r0, [r6] 19261 movs r2, #0 19262 movs r1, #1 19263 add r0, r0, r5 19264 str r3, [r0, #4] 19265 ldr r7, [r0, #12] 19266 bl FlashReadPages 19267 ldr r2, [r6] 19268 ldr r1, [r2, r5] 19269 adds r3, r2, r5 19270 adds r1, r1, #1 19271 bne .L2736 19272.L2737: 19273 mov r3, #-1 19274 str r3, [sp, #44] 19275.L2744: 19276 ldr r7, [sp, #44] 19277 adds r0, r7, #1 19278 beq .L2727 19279.L2759: 19280 ubfx r0, r7, #10, #16 19281 bl P2V_block_in_plane 19282 ldr r3, .L2850+40 19283 mov r4, r0 19284 ldrh r3, [r3] 19285 cmp r3, r0 19286 bhi .L2750 19287 ldr r1, .L2850+44 19288 movw r2, #2683 19289 ldr r0, .L2850+48 19290 bl printf 19291 ldr r1, .L2850+52 19292 ldr r0, .L2850+56 19293 bl printf 19294.L2750: 19295 ldr r3, .L2850+60 19296 ldr r3, [r3] 19297 ldrh r3, [r3, r4, lsl #1] 19298 cmp r3, #0 19299 beq .L2751 19300 mov r0, r4 19301 b .L2843 19302.L2735: 19303 ldr r3, [sp, #52] 19304 ldr r2, [sp, #48] 19305 cmp r2, r3 19306 bne .L2727 19307 movs r2, #1 19308 add r1, sp, #44 19309 mov r0, r4 19310 bl log2phys 19311.L2727: 19312 ldr r3, [sp, #32] 19313 adds r3, r3, #1 19314 b .L2845 19315.L2736: 19316 ldr r1, [r7, #8] 19317 cmp r4, r1 19318 bne .L2737 19319 ldr r8, [r7, #4] 19320 ldr r0, .L2850+4 19321 mov r1, r8 19322 ldr r0, [r0] 19323 bl ftl_cmp_data_ver 19324 cmp r0, #0 19325 beq .L2737 19326 ldr r1, [sp, #48] 19327 ldr r0, [sp, #52] 19328 cmp r1, r0 19329 bne .L2739 19330.L2742: 19331 ldr r1, [sp, #44] 19332 mov r0, r4 19333 bl FtlReUsePrevPpa 19334 b .L2737 19335.L2851: 19336 .align 2 19337.L2850: 19338 .word .LANCHOR123 19339 .word .LANCHOR139 19340 .word .LANCHOR241 19341 .word .LANCHOR186 19342 .word .LANCHOR242 19343 .word .LANCHOR38 19344 .word .LANCHOR16 19345 .word .LANCHOR53 19346 .word .LANCHOR52 19347 .word .LANCHOR165 19348 .word .LANCHOR40 19349 .word .LANCHOR240 19350 .word .LC5 19351 .word .LC6 19352 .word .LC7 19353 .word .LANCHOR85 19354.L2739: 19355 ldr r0, [sp, #44] 19356 cmp r1, r0 19357 beq .L2737 19358 adds r0, r1, #1 19359 beq .L2740 19360 str r1, [r3, #4] 19361 movs r2, #0 19362 movs r1, #1 19363 mov r0, r3 19364 ldr r7, [r3, #12] 19365 bl FlashReadPages 19366.L2741: 19367 ldr r3, [r6] 19368 ldr r3, [r3, r5] 19369 adds r3, r3, #1 19370 beq .L2742 19371 ldr r3, [r7, #4] 19372 ldr r2, .L2852 19373 mov r1, r3 19374 ldr r0, [r2] 19375 bl ftl_cmp_data_ver 19376 cmp r0, #0 19377 beq .L2742 19378 mov r1, r3 19379 mov r0, r8 19380 bl ftl_cmp_data_ver 19381 cmp r0, #0 19382 beq .L2737 19383 b .L2742 19384.L2740: 19385 str r1, [r2, r5] 19386 b .L2741 19387.L2734: 19388 ldr r3, [sp, #52] 19389 ldr r2, [sp, #48] 19390 cmp r2, r3 19391 beq .L2744 19392 ldr r3, [sp, #44] 19393 adds r7, r3, #1 19394 beq .L2746 19395 ldr r2, .L2852+4 19396 ubfx r3, r3, #10, #21 19397 ldr r2, [r2] 19398 cmp r3, r2 19399 bcs .L2727 19400.L2746: 19401 movs r2, #1 19402 add r1, sp, #52 19403 mov r0, r4 19404 bl log2phys 19405 ldr r7, [sp, #48] 19406 adds r5, r7, #1 19407 beq .L2744 19408 ldr r3, [sp, #44] 19409 cmp r7, r3 19410 beq .L2759 19411 ubfx r0, r7, #10, #16 19412 bl P2V_block_in_plane 19413 ldr r3, .L2852+8 19414 ldrh r3, [r3] 19415 cmp r3, r0 19416 beq .L2749 19417 ldr r3, .L2852+12 19418 ldrh r3, [r3] 19419 cmp r3, r0 19420 beq .L2749 19421 ldr r3, .L2852+16 19422 ldrh r3, [r3] 19423 cmp r3, r0 19424 bne .L2744 19425.L2749: 19426 ldr r0, [r6] 19427 movs r2, #0 19428 movs r1, #1 19429 str r7, [r0, #4] 19430 ldr r5, [r0, #12] 19431 bl FlashReadPages 19432 ldr r3, [r6] 19433 ldr r3, [r3] 19434 adds r3, r3, #1 19435 beq .L2744 19436 ldr r1, [r5, #4] 19437 ldr r0, [sp, #4] 19438 bl ftl_cmp_data_ver 19439 cmp r0, #0 19440 bne .L2744 19441 movs r2, #1 19442 add r1, sp, #48 19443 mov r0, r4 19444 bl log2phys 19445 b .L2744 19446.L2751: 19447 mov r1, r4 19448 ldr r0, .L2852+20 19449 bl printf 19450 b .L2727 19451.L2731: 19452 ldrh r3, [r10] 19453 mov r1, r4 19454 ldr r2, .L2852+24 19455 ldr r0, .L2852+28 19456 strh r3, [r2] @ movhi 19457 ldr r2, [sp, #4] 19458 bl printf 19459 ldr r2, .L2852+32 19460 ldr r3, [r2] 19461 cmp r3, #31 19462 bhi .L2752 19463 ldr r0, [sp, #52] 19464 ldr r1, .L2852+36 19465 str r0, [r1, r3, lsl #2] 19466 adds r3, r3, #1 19467 str r3, [r2] 19468.L2752: 19469 ldrh r0, [r10] 19470 bl decrement_vpc_count 19471 ldr r3, .L2852 19472 ldr r2, [r3] 19473 adds r1, r2, #1 19474 bne .L2753 19475 ldr r2, [sp, #4] 19476.L2844: 19477 str r2, [r3] 19478 b .L2727 19479.L2753: 19480 ldr r1, [sp, #4] 19481 cmp r1, r2 19482 bcs .L2727 19483 mov r2, r1 19484 b .L2844 19485.L2730: 19486 ldrb r3, [sp, #16] @ zero_extendqisi2 19487 ldr r2, [sp, #16] 19488 strb r3, [r10, #6] 19489 ldrh r3, [sp, #8] 19490 strh r3, [r10, #2] @ movhi 19491 b .L2847 19492.L2853: 19493 .align 2 19494.L2852: 19495 .word .LANCHOR139 19496 .word .LANCHOR43 19497 .word .LANCHOR93 19498 .word .LANCHOR94 19499 .word .LANCHOR95 19500 .word .LC70 19501 .word .LANCHOR241 19502 .word .LC71 19503 .word .LANCHOR243 19504 .word .LANCHOR244 19505 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock 19506 .section .text.FtlGcScanTempBlk,"ax",%progbits 19507 .align 1 19508 .global FtlGcScanTempBlk 19509 .syntax unified 19510 .thumb 19511 .thumb_func 19512 .fpu softvfp 19513 .type FtlGcScanTempBlk, %function 19514FtlGcScanTempBlk: 19515 @ args = 0, pretend = 0, frame = 64 19516 @ frame_needed = 0, uses_anonymous_args = 0 19517 ldr r3, .L2899 19518 push {r4, r5, r6, r7, r8, r10, fp, lr} 19519 mov r4, r0 19520 sub sp, sp, #64 19521 ldrh r5, [r3] 19522 movw r3, #65535 19523 cmp r5, r3 19524 beq .L2883 19525 cbnz r5, .L2855 19526.L2856: 19527 bl FtlGcPageVarInit 19528 b .L2857 19529.L2883: 19530 movs r5, #0 19531.L2855: 19532 ldr r3, .L2899+4 19533 ldrh r3, [r3] 19534 cmp r3, r1 19535 beq .L2856 19536.L2857: 19537 ldr r8, .L2899+80 19538 mov r3, #-1 19539 str r3, [sp, #8] 19540.L2858: 19541 ldrh r1, [r4] 19542 movw r3, #65535 19543 movs r2, #0 19544 strb r2, [r4, #8] 19545 cmp r1, r3 19546 beq .L2859 19547.L2882: 19548 ldr r3, .L2899+8 19549 movs r2, #0 19550 ldr r0, [r8] 19551 mov fp, r2 19552 movw lr, #65535 19553 mov r10, #36 19554 ldrh r3, [r3] 19555 str r3, [sp, #12] 19556 ldr r3, .L2899+12 19557 ldr r3, [r3] 19558 str r3, [sp, #16] 19559 ldr r3, .L2899+16 19560 ldrh r3, [r3] 19561 str r3, [sp, #20] 19562 ldr r3, .L2899+20 19563 ldr r7, [r3] 19564 ldr r3, .L2899+24 19565 ldrh ip, [r3] 19566 add r3, r4, #16 19567 str r3, [sp, #4] 19568.L2860: 19569 ldr r1, [sp, #12] 19570 uxth r3, r2 19571 cmp r1, r3 19572 bhi .L2862 19573 mov r10, #0 19574 movs r2, #0 19575 mov r1, fp 19576 bl FlashReadPages 19577.L2863: 19578 uxth r3, r10 19579 cmp fp, r3 19580 bhi .L2881 19581 ldr r3, .L2899+4 19582 adds r5, r5, #1 19583 uxth r5, r5 19584 ldrh r3, [r3] 19585 cmp r3, r5 19586 bhi .L2882 19587 movs r2, #0 19588 b .L2859 19589.L2862: 19590 ldr r1, [sp, #4] 19591 ldrh r3, [r1], #2 19592 cmp r3, lr 19593 str r1, [sp, #4] 19594 beq .L2861 19595 mla r1, r10, fp, r0 19596 orr r3, r5, r3, lsl #10 19597 str r3, [r1, #4] 19598 ldr r3, [sp, #20] 19599 mul r3, r3, fp 19600 bic r3, r3, #3 19601 mov r6, r3 19602 ldr r3, [sp, #16] 19603 add r6, r6, r3 19604 mul r3, ip, fp 19605 str r6, [r1, #8] 19606 bic r3, r3, #3 19607 add r3, r3, r7 19608 str r3, [r1, #12] 19609 add r3, fp, #1 19610 uxth fp, r3 19611.L2861: 19612 adds r2, r2, #1 19613 b .L2860 19614.L2881: 19615 movs r7, #36 19616 ldr r6, [r8] 19617 mul r7, r7, r10 19618 adds r3, r6, r7 19619 ldr r2, [r3, #4] 19620 str r3, [sp, #12] 19621 ubfx r0, r2, #10, #16 19622 str r2, [sp, #4] 19623 bl P2V_plane 19624 ldr r6, [r6, r7] 19625 mov r2, r0 19626 ldr r3, [sp, #12] 19627 ldr r3, [r3, #12] 19628 cmp r6, #0 19629 bne .L2864 19630 ldrh r0, [r3] 19631 movw r1, #65535 19632 cmp r0, r1 19633 bne .L2865 19634.L2868: 19635 ldr r3, .L2899+28 19636 ldrb r3, [r3] @ zero_extendqisi2 19637 cbz r3, .L2895 19638 ldr r3, .L2899+32 19639 movs r1, #1 19640 str r1, [r3] 19641.L2859: 19642 ldr r3, .L2899 19643 movw r1, #65535 19644 mov r0, r4 19645 strh r5, [r4, #2] @ movhi 19646 strb r2, [r4, #6] 19647 strh r1, [r3] @ movhi 19648 mov r1, r5 19649 bl ftl_sb_update_avl_pages 19650 ldr r0, [sp, #8] 19651 add sp, sp, #64 19652 @ sp needed 19653 pop {r4, r5, r6, r7, r8, r10, fp, pc} 19654.L2865: 19655 ldr r1, .L2899+36 19656 ldr r0, [r3, #8] 19657 ldr r1, [r1] 19658 cmp r0, r1 19659 bhi .L2868 19660 ldr r2, .L2899+40 19661 ldrb r2, [r2] @ zero_extendqisi2 19662 cbnz r2, .L2871 19663.L2872: 19664 ldr r2, [r3, #8] 19665 add r10, r10, #1 19666 ldr r1, [sp, #4] 19667 ldr r0, [r3, #12] 19668 bl FtlGcUpdatePage 19669 b .L2863 19670.L2895: 19671 ldr r2, .L2899+44 19672 ldrh r1, [r4] 19673 ldr r2, [r2] 19674 strh r3, [r2, r1, lsl #1] @ movhi 19675.L2898: 19676 ldrh r0, [r4] 19677 bl INSERT_FREE_LIST 19678 ldr r2, .L2899+48 19679 movw r3, #65535 19680 strh r3, [r4] @ movhi 19681 strh r3, [r2] @ movhi 19682.L2897: 19683 bl FtlGcPageVarInit 19684 movs r5, #0 19685 b .L2858 19686.L2871: 19687 mov r2, r6 19688 add r1, sp, #24 19689 str r3, [sp, #12] 19690 bl log2phys 19691 ldr r3, [sp, #12] 19692 ldr r1, [sp, #24] 19693 ldr r2, [r3, #12] 19694 cmp r2, r1 19695 bne .L2872 19696 adds r1, r2, #1 19697 beq .L2872 19698 str r2, [sp, #32] 19699 movs r1, #1 19700 ldr r2, .L2899+52 19701 add r0, sp, #28 19702 ldr r2, [r2] 19703 str r2, [sp, #36] 19704 ldr r2, .L2899+56 19705 ldr r2, [r2] 19706 str r2, [sp, #40] 19707 mov r2, r6 19708 bl FlashReadPages 19709 ldr r2, .L2899+60 19710 ldr r1, [r8] 19711 ldr r0, [sp, #36] 19712 ldrh r2, [r2] 19713 ldr r3, [sp, #12] 19714 add r7, r7, r1 19715 lsl ip, r2, #7 19716.L2873: 19717 cmp r6, ip 19718 beq .L2872 19719 ldr r1, [r7, #8] 19720 ldr r2, [r0, r6, lsl #2] 19721 ldr r1, [r1, r6, lsl #2] 19722 cmp r1, r2 19723 beq .L2874 19724 ldr r2, [sp, #32] 19725 ldrh r1, [r4] 19726 ldr r0, .L2899+64 19727 bl printf 19728 ldr r3, .L2899+44 19729 movs r1, #0 19730 ldrh r2, [r4] 19731 ldr r3, [r3] 19732 strh r1, [r3, r2, lsl #1] @ movhi 19733 b .L2898 19734.L2874: 19735 adds r6, r6, #1 19736 b .L2873 19737.L2864: 19738 ldr r2, [sp, #4] 19739 ldrh r1, [r4] 19740 ldr r0, .L2899+68 19741 bl printf 19742 ldr r3, .L2899+72 19743 ldrh r2, [r4] 19744 ldr r3, [r3] 19745 cbnz r3, .L2877 19746 ldr r3, .L2899+28 19747 ldrb r3, [r3] @ zero_extendqisi2 19748 cbz r3, .L2878 19749.L2877: 19750 ldr r3, .L2899+76 19751 ldr r3, [r3] 19752 ldrh r3, [r3, r2, lsl #1] 19753 cmp r3, #159 19754 bls .L2879 19755.L2878: 19756 ldr r3, [r8] 19757 ldr r3, [r3, r7] 19758 adds r3, r3, #1 19759 bne .L2880 19760.L2879: 19761 ldr r3, [r8] 19762 add r7, r7, r3 19763 ldr r3, [r7, #4] 19764 str r3, [sp, #8] 19765.L2880: 19766 ldr r3, .L2899+44 19767 movs r1, #0 19768 ldr r3, [r3] 19769 strh r1, [r3, r2, lsl #1] @ movhi 19770 ldrh r0, [r4] 19771 bl INSERT_FREE_LIST 19772 movw r3, #65535 19773 strh r3, [r4] @ movhi 19774 b .L2897 19775.L2900: 19776 .align 2 19777.L2899: 19778 .word .LANCHOR245 19779 .word .LANCHOR52 19780 .word .LANCHOR38 19781 .word .LANCHOR107 19782 .word .LANCHOR57 19783 .word .LANCHOR108 19784 .word .LANCHOR58 19785 .word .LANCHOR16 19786 .word .LANCHOR138 19787 .word .LANCHOR74 19788 .word .LANCHOR2 19789 .word .LANCHOR85 19790 .word .LANCHOR213 19791 .word .LANCHOR194 19792 .word .LANCHOR196 19793 .word .LANCHOR55 19794 .word .LC72 19795 .word .LC73 19796 .word .LANCHOR104 19797 .word .LANCHOR80 19798 .word .LANCHOR186 19799 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk 19800 .section .text.FtlGcFreeTempBlock,"ax",%progbits 19801 .align 1 19802 .global FtlGcFreeTempBlock 19803 .syntax unified 19804 .thumb 19805 .thumb_func 19806 .fpu softvfp 19807 .type FtlGcFreeTempBlock, %function 19808FtlGcFreeTempBlock: 19809 @ args = 0, pretend = 0, frame = 16 19810 @ frame_needed = 0, uses_anonymous_args = 0 19811 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 19812 ldr r3, .L2925 19813 ldr r3, [r3] 19814 cbz r3, .L2902 19815.L2907: 19816 movs r0, #0 19817.L2901: 19818 add sp, sp, #16 19819 @ sp needed 19820 pop {r4, r5, r6, r7, r8, r10, fp, pc} 19821.L2902: 19822 ldr r0, .L2925+4 19823 movw r3, #65535 19824 ldr r5, .L2925+8 19825 ldrh r6, [r0] 19826 mov r4, r0 19827 cmp r6, r3 19828 beq .L2904 19829 ldr r3, .L2925+12 19830 ldrh r1, [r3] 19831 bl FtlGcScanTempBlk 19832 str r0, [sp, #12] 19833 adds r0, r0, #1 19834 beq .L2904 19835 ldr r3, .L2925+16 19836 ldr r2, [r3] 19837 ldrh r3, [r2, r6, lsl #1] 19838 cmp r3, #4 19839 bls .L2905 19840 subs r3, r3, #5 19841 movs r0, #1 19842 strh r3, [r2, r6, lsl #1] @ movhi 19843 bl FtlEctTblFlush 19844.L2905: 19845 ldr r3, [r5] 19846 cbnz r3, .L2906 19847 ldr r2, .L2925+20 19848 ldr r0, [sp, #12] 19849 ldr r3, [r2, #96] 19850 ubfx r0, r0, #10, #16 19851 adds r3, r3, #1 19852 str r3, [r2, #96] 19853 bl FtlBbmMapBadBlock 19854 bl FtlBbmTblFlush 19855.L2906: 19856 movs r3, #0 19857 movs r0, #1 19858 str r3, [r5] 19859 b .L2901 19860.L2904: 19861 ldrh r2, [r4] 19862 movs r3, #0 19863 str r3, [r5] 19864 movw r3, #65535 19865 cmp r2, r3 19866 beq .L2907 19867 ldr r6, .L2925+12 19868 bl FtlCacheWriteBack 19869 ldrb r0, [r4, #7] @ zero_extendqisi2 19870 ldrh r2, [r6] 19871 ldr r5, .L2925+24 19872 muls r2, r0, r2 19873 ldrh r1, [r5] 19874 cmp r1, r2 19875 beq .L2908 19876 ldr r1, .L2925+28 19877 movs r2, #193 19878 ldr r0, .L2925+32 19879 bl printf 19880 ldr r1, .L2925+36 19881 ldr r0, .L2925+40 19882 bl printf 19883.L2908: 19884 ldrh r6, [r6] 19885 ldrb r3, [r4, #7] @ zero_extendqisi2 19886 ldr r2, .L2925+44 19887 ldrh r0, [r4] 19888 ldr fp, .L2925+84 19889 smulbb r3, r3, r6 19890 ldr r1, [r2] 19891 movs r6, #0 19892 mov r10, r2 19893 strh r3, [r1, r0, lsl #1] @ movhi 19894 ldr r1, .L2925+48 19895 ldrh r3, [r5] 19896 ldr r0, [r1] 19897 add r3, r3, r0 19898 str r3, [r1] 19899.L2909: 19900 ldrh r2, [r5] 19901 uxth r3, r6 19902 cmp r2, r3 19903 bhi .L2913 19904 movw r0, #65535 19905 bl decrement_vpc_count 19906 ldr r3, .L2925+52 19907 ldrb r3, [r3] @ zero_extendqisi2 19908 cbz r3, .L2914 19909 ldrh r1, [r4] 19910 ldr r0, .L2925+56 19911 bl printf 19912.L2914: 19913 ldrh r0, [r4] 19914 ldr r3, [r10] 19915 ldrh r3, [r3, r0, lsl #1] 19916 cmp r3, #0 19917 beq .L2915 19918 bl INSERT_DATA_LIST 19919.L2916: 19920 ldr r3, .L2925+60 19921 movw r6, #65535 19922 strh r6, [r4] @ movhi 19923 movs r4, #0 19924 strh r4, [r5] @ movhi 19925 strh r4, [r3] @ movhi 19926 bl l2p_flush 19927 bl FtlVpcTblFlush 19928 ldr r3, .L2925+64 19929 strh r6, [r3] @ movhi 19930 ldr r3, .L2925+68 19931 ldrh r2, [r3] 19932 ldr r3, .L2925+72 19933 ldrh r3, [r3] 19934 add r3, r3, r3, lsl #1 19935 cmp r2, r3, asr #2 19936 ble .L2907 19937 ldr r3, .L2925+76 19938 movs r2, #20 19939 mov r0, r4 19940 strh r2, [r3] @ movhi 19941 b .L2901 19942.L2913: 19943 uxth r3, r6 19944 mov r8, #12 19945 ldr r2, [fp] 19946 mul r8, r8, r3 19947 ldr r3, .L2925+80 19948 ldr r3, [r3] 19949 add r7, r3, r8 19950 ldr r0, [r7, #8] 19951 cmp r0, r2 19952 bcc .L2910 19953.L2923: 19954 ldrh r0, [r4] 19955 b .L2924 19956.L2910: 19957 movs r2, #0 19958 add r1, sp, #12 19959 str r3, [sp, #4] 19960 bl log2phys 19961 ldr r3, [sp, #4] 19962 ldr r2, [sp, #12] 19963 ldr r0, [r3, r8] 19964 cmp r0, r2 19965 bne .L2912 19966 ubfx r0, r0, #10, #16 19967 bl P2V_block_in_plane 19968 movs r2, #1 19969 mov r8, r0 19970 adds r1, r7, #4 19971 ldr r0, [r7, #8] 19972 bl log2phys 19973 mov r0, r8 19974.L2924: 19975 bl decrement_vpc_count 19976 b .L2911 19977.L2912: 19978 ldr r3, [r7, #4] 19979 cmp r2, r3 19980 bne .L2923 19981.L2911: 19982 adds r6, r6, #1 19983 b .L2909 19984.L2915: 19985 bl INSERT_FREE_LIST 19986 b .L2916 19987.L2926: 19988 .align 2 19989.L2925: 19990 .word .LANCHOR78 19991 .word .LANCHOR95 19992 .word .LANCHOR138 19993 .word .LANCHOR52 19994 .word .LANCHOR80 19995 .word .LANCHOR141 19996 .word .LANCHOR113 19997 .word .LANCHOR246 19998 .word .LC5 19999 .word .LC6 20000 .word .LC7 20001 .word .LANCHOR85 20002 .word .LANCHOR166 20003 .word .LANCHOR16 20004 .word .LC74 20005 .word .LANCHOR112 20006 .word .LANCHOR213 20007 .word .LANCHOR90 20008 .word .LANCHOR232 20009 .word .LANCHOR181 20010 .word .LANCHOR114 20011 .word .LANCHOR74 20012 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock 20013 .section .text.FtlGcPageRecovery,"ax",%progbits 20014 .align 1 20015 .global FtlGcPageRecovery 20016 .syntax unified 20017 .thumb 20018 .thumb_func 20019 .fpu softvfp 20020 .type FtlGcPageRecovery, %function 20021FtlGcPageRecovery: 20022 @ args = 0, pretend = 0, frame = 0 20023 @ frame_needed = 0, uses_anonymous_args = 0 20024 push {r3, r4, r5, lr} 20025 ldr r4, .L2929 20026 ldr r5, .L2929+4 20027 ldrh r1, [r4] 20028 mov r0, r5 20029 bl FtlGcScanTempBlk 20030 ldrh r2, [r5, #2] 20031 ldrh r3, [r4] 20032 cmp r2, r3 20033 bcc .L2927 20034 ldr r0, .L2929+8 20035 bl FtlMapBlkWriteDumpData 20036 movs r0, #0 20037 bl FtlGcFreeTempBlock 20038 ldr r3, .L2929+12 20039 movs r2, #0 20040 str r2, [r3] 20041.L2927: 20042 pop {r3, r4, r5, pc} 20043.L2930: 20044 .align 2 20045.L2929: 20046 .word .LANCHOR52 20047 .word .LANCHOR95 20048 .word .LANCHOR130 20049 .word .LANCHOR138 20050 .size FtlGcPageRecovery, .-FtlGcPageRecovery 20051 .section .text.FtlPowerLostRecovery,"ax",%progbits 20052 .align 1 20053 .global FtlPowerLostRecovery 20054 .syntax unified 20055 .thumb 20056 .thumb_func 20057 .fpu softvfp 20058 .type FtlPowerLostRecovery, %function 20059FtlPowerLostRecovery: 20060 @ args = 0, pretend = 0, frame = 0 20061 @ frame_needed = 0, uses_anonymous_args = 0 20062 push {r3, r4, r5, lr} 20063 movs r4, #0 20064 ldr r5, .L2932 20065 ldr r3, .L2932+4 20066 mov r0, r5 20067 str r4, [r3] 20068 bl FtlRecoverySuperblock 20069 mov r0, r5 20070 ldr r5, .L2932+8 20071 bl FtlSlcSuperblockCheck 20072 mov r0, r5 20073 bl FtlRecoverySuperblock 20074 mov r0, r5 20075 bl FtlSlcSuperblockCheck 20076 bl FtlGcPageRecovery 20077 movw r0, #65535 20078 bl decrement_vpc_count 20079 mov r0, r4 20080 pop {r3, r4, r5, pc} 20081.L2933: 20082 .align 2 20083.L2932: 20084 .word .LANCHOR93 20085 .word .LANCHOR243 20086 .word .LANCHOR94 20087 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery 20088 .section .text.FtlSysBlkInit,"ax",%progbits 20089 .align 1 20090 .global FtlSysBlkInit 20091 .syntax unified 20092 .thumb 20093 .thumb_func 20094 .fpu softvfp 20095 .type FtlSysBlkInit, %function 20096FtlSysBlkInit: 20097 @ args = 0, pretend = 0, frame = 0 20098 @ frame_needed = 0, uses_anonymous_args = 0 20099 push {r3, r4, r5, r6, r7, lr} 20100 movs r3, #0 20101 ldr r4, .L2947 20102 movw r5, #65535 20103 strh r3, [r4] @ movhi 20104 ldr r3, .L2947+4 20105 strh r5, [r3] @ movhi 20106 ldr r3, .L2947+8 20107 ldrh r0, [r3] 20108 bl FtlFreeSysBlkQueueInit 20109 bl FtlScanSysBlk 20110 ldr r3, .L2947+12 20111 ldrh r3, [r3] 20112 cmp r3, r5 20113 mov r5, r4 20114 bne .L2935 20115.L2937: 20116 mov r4, #-1 20117.L2934: 20118 mov r0, r4 20119 pop {r3, r4, r5, r6, r7, pc} 20120.L2935: 20121 bl FtlLoadSysInfo 20122 mov r4, r0 20123 cmp r0, #0 20124 bne .L2937 20125 bl FtlLoadMapInfo 20126 bl FtlLoadVonderInfo 20127 bl Ftl_load_ext_data 20128 bl FtlLoadEctTbl 20129 bl FtlFreeSysBLkSort 20130 bl SupperBlkListInit 20131 bl FtlPowerLostRecovery 20132 movs r0, #1 20133 bl FtlUpdateVaildLpn 20134 ldr r3, .L2947+16 20135 movs r0, #12 20136 ldrh r1, [r3] 20137 ldr r3, .L2947+20 20138 ldr r2, [r3] 20139 mov r3, r4 20140.L2938: 20141 cmp r3, r1 20142 bge .L2943 20143 mla r6, r0, r3, r2 20144 ldr r6, [r6, #4] 20145 cmp r6, #0 20146 bge .L2939 20147.L2943: 20148 ldr r0, .L2947+24 20149 cmp r3, r1 20150 ldr r2, [r0] 20151 add r2, r2, #32 20152 str r2, [r0] 20153 bge .L2945 20154.L2940: 20155 ldr r3, .L2947+28 20156 ldr r1, [r3] 20157 ldr r3, .L2947+32 20158 ldrh r0, [r3] 20159 ldrh r5, [r3, #4] 20160 ldrh r2, [r1, r0, lsl #1] 20161 subs r2, r2, r5 20162 ldr r5, .L2947+36 20163 strh r2, [r1, r0, lsl #1] @ movhi 20164 ldrh r2, [r5] 20165 strh r2, [r3, #2] @ movhi 20166 movs r2, #0 20167 strh r2, [r3, #4] @ movhi 20168 strb r2, [r3, #6] 20169 ldr r3, .L2947+40 20170 ldrh r6, [r3] 20171 ldrh r7, [r3, #4] 20172 ldrh r0, [r1, r6, lsl #1] 20173 subs r0, r0, r7 20174 strh r0, [r1, r6, lsl #1] @ movhi 20175 strb r2, [r3, #6] 20176 ldrh r1, [r5] 20177 strh r2, [r3, #4] @ movhi 20178 ldr r2, .L2947+44 20179 strh r1, [r3, #2] @ movhi 20180 ldrh r3, [r2, #30] 20181 adds r3, r3, #1 20182 strh r3, [r2, #30] @ movhi 20183 bl l2p_flush 20184 bl FtlVpcTblFlush 20185.L2946: 20186 bl FtlVpcTblFlush 20187 b .L2934 20188.L2939: 20189 adds r3, r3, #1 20190 b .L2938 20191.L2945: 20192 ldrh r3, [r5] 20193 cmp r3, #0 20194 bne .L2940 20195 bl l2p_flush 20196 b .L2946 20197.L2948: 20198 .align 2 20199.L2947: 20200 .word .LANCHOR242 20201 .word .LANCHOR241 20202 .word .LANCHOR39 20203 .word .LANCHOR218 20204 .word .LANCHOR67 20205 .word .LANCHOR98 20206 .word .LANCHOR165 20207 .word .LANCHOR85 20208 .word .LANCHOR93 20209 .word .LANCHOR52 20210 .word .LANCHOR94 20211 .word .LANCHOR82 20212 .size FtlSysBlkInit, .-FtlSysBlkInit 20213 .section .text.FtlLowFormat,"ax",%progbits 20214 .align 1 20215 .global FtlLowFormat 20216 .syntax unified 20217 .thumb 20218 .thumb_func 20219 .fpu softvfp 20220 .type FtlLowFormat, %function 20221FtlLowFormat: 20222 @ args = 0, pretend = 0, frame = 24 20223 @ frame_needed = 0, uses_anonymous_args = 0 20224 ldr r3, .L2980 20225 push {r4, r5, r6, r7, r8, r10, fp, lr} 20226 sub sp, sp, #24 20227 ldr r4, [r3] 20228 cmp r4, #0 20229 bne .L2951 20230 ldr r5, .L2980+4 20231 mov r1, r4 20232 ldr r3, .L2980+8 20233 ldr r6, .L2980+12 20234 ldrh r2, [r5] 20235 ldr r0, [r3] 20236 ldr r7, .L2980+16 20237 lsls r2, r2, #2 20238 bl ftl_memset 20239 ldrh r2, [r5] 20240 mov r1, r4 20241 ldr r3, .L2980+20 20242 lsls r2, r2, #2 20243 ldr r0, [r3] 20244 bl ftl_memset 20245 ldr r3, .L2980+24 20246 ldrh r0, [r6] 20247 str r4, [r7] 20248 str r4, [r3] 20249 bl FtlFreeSysBlkQueueInit 20250 bl FtlLoadBbt 20251 cbz r0, .L2952 20252 bl FtlMakeBbt 20253.L2952: 20254 ldr r3, .L2980+28 20255 ldr r2, .L2980+32 20256 ldr ip, .L2980+124 20257 ldrh r1, [r3] 20258 ldr r4, [r2] 20259 ldr r2, .L2980+36 20260 str r3, [sp, #12] 20261 lsls r1, r1, #7 20262 ldr r5, [r2] 20263 movs r2, #0 20264.L2953: 20265 uxth r3, r2 20266 adds r2, r2, #1 20267 cmp r3, r1 20268 blt .L2954 20269 ldr r3, .L2980+40 20270 movs r4, #0 20271 ldr r8, .L2980+128 20272 ldrh r5, [r3] 20273 mov r10, r8 20274 str r3, [sp] 20275.L2955: 20276 ldrh r3, [r8] 20277 cmp r3, r5 20278 bhi .L2956 20279 ldr r5, .L2980+44 20280 subs r3, r4, #2 20281 ldrh r1, [r5] 20282 cmp r3, r1, lsl #1 20283 ble .L2957 20284 mov r0, r4 20285 movs r4, #0 20286 bl __aeabi_uidiv 20287 ldr r3, .L2980+48 20288 ldr r3, [r3] 20289 add r0, r0, r3 20290 uxth r0, r0 20291 bl FtlSysBlkNumInit 20292 ldrh r0, [r6] 20293 bl FtlFreeSysBlkQueueInit 20294 ldr r3, [sp] 20295 ldrh r6, [r3] 20296.L2958: 20297 ldrh r3, [r10] 20298 cmp r3, r6 20299 bhi .L2959 20300.L2957: 20301 mov r8, #0 20302 mov r6, r8 20303.L2960: 20304 ldr r3, [sp] 20305 uxth r0, r8 20306 add r8, r8, #1 20307 ldrh r3, [r3] 20308 cmp r3, r0 20309 bhi .L2961 20310 ldrh r2, [r10] 20311 ldr r3, .L2980+52 20312 ldrh r5, [r5] 20313 str r2, [r3] 20314 ldr r3, .L2980+56 20315 mov r1, r5 20316 ldr r3, [r3] 20317 mov r0, r3 20318 str r3, [sp, #16] 20319 bl __aeabi_uidiv 20320 ldr r1, .L2980+60 20321 mov fp, r0 20322 ubfx r3, fp, #5, #16 20323 ldr r0, .L2980+64 20324 add r2, r3, #36 20325 str r3, [sp, #4] 20326 strh r2, [r1] @ movhi 20327 movs r2, #24 20328 muls r2, r5, r2 20329 str fp, [r0] 20330 mov r8, r0 20331 str r1, [sp, #8] 20332 cmp r6, r2 20333 ble .L2962 20334 ldr r3, [sp, #16] 20335 mov r1, r5 20336 subs r0, r3, r6 20337 bl __aeabi_uidiv 20338 ldr r3, [sp, #8] 20339 str r0, [r8] 20340 lsrs r0, r0, #5 20341 adds r0, r0, #24 20342 strh r0, [r3] @ movhi 20343.L2962: 20344 ldr r3, .L2980+68 20345 ldr r3, [r3] 20346 cmp r3, #1 20347 bne .L2963 20348 ldr r2, .L2980+60 20349 mov r1, r5 20350 mov r0, r6 20351 ldrh r3, [r2] 20352 str r2, [sp, #20] 20353 str r3, [sp, #16] 20354 bl __aeabi_uidiv 20355 ldr r3, [sp, #16] 20356 ldr r2, [sp, #20] 20357 uxtah r0, r3, r0 20358 add r3, r3, r0, asr #2 20359 strh r3, [r2] @ movhi 20360.L2963: 20361 ldr r3, .L2980+72 20362 ldrb r3, [r3] @ zero_extendqisi2 20363 cbz r3, .L2964 20364 ldr r2, .L2980+60 20365 mov r1, r5 20366 mov r0, r6 20367 ldrh r3, [r2] 20368 str r2, [sp, #20] 20369 str r3, [sp, #16] 20370 bl __aeabi_uidiv 20371 ldr r3, [sp, #16] 20372 ldr r2, [sp, #20] 20373 uxtah r0, r3, r0 20374 add r3, r3, r0, asr #2 20375 strh r3, [r2] @ movhi 20376.L2964: 20377 ldr r3, .L2980+76 20378 ldrh r3, [r3] 20379 cbz r3, .L2966 20380 ldr r2, .L2980+60 20381 ldrh r1, [r2] 20382 add r1, r1, r3, lsr #1 20383 strh r1, [r2] @ movhi 20384 mul r1, r5, r3 20385 cmp r6, r1 20386 bge .L2966 20387 ldr r1, .L2980+64 20388 adds r3, r3, #32 20389 str fp, [r1] 20390 ldr r1, [sp, #4] 20391 add r1, r1, r3 20392 strh r1, [r2] @ movhi 20393.L2966: 20394 ldr r3, [sp, #8] 20395 ldr fp, .L2980+132 20396 ldrh r2, [r3] 20397 ldr r3, [r8] 20398 subs r3, r3, r2 20399 muls r5, r3, r5 20400 ldr r3, .L2980+80 20401 ldrh r3, [r3] 20402 str r5, [fp] 20403 muls r5, r3, r5 20404 ldr r3, [sp, #12] 20405 ldrh r3, [r3] 20406 str r5, [r8] 20407 muls r5, r3, r5 20408 ldr r3, .L2980+84 20409 str r5, [r3] 20410 bl FtlBbmTblFlush 20411 ldr r3, .L2980+88 20412 adds r1, r4, r6 20413 ldr r2, [r3] 20414 ldr r3, .L2980+92 20415 ldrh r3, [r3] 20416 add r3, r3, r2, lsr #3 20417 cmp r1, r3 20418 bls .L2968 20419 lsrs r2, r2, #5 20420 ldr r0, .L2980+96 20421 bl printf 20422.L2968: 20423 ldrh r2, [r10] 20424 movs r1, #0 20425 ldr r5, .L2980+100 20426 movw r6, #65535 20427 ldr r4, .L2980+104 20428 lsls r2, r2, #1 20429 ldr r0, [r5] 20430 mov r8, r4 20431 bl ftl_memset 20432 ldr r2, .L2980+108 20433 movs r3, #0 20434 strh r3, [r4, #2] @ movhi 20435 movs r1, #255 20436 strb r3, [r4, #6] 20437 str r3, [r2] 20438 ldr r2, .L2980+112 20439 strh r3, [r4] @ movhi 20440 strh r3, [r2, #2] @ movhi 20441 strb r3, [r2, #6] 20442 strb r3, [r2, #8] 20443 movs r3, #1 20444 strb r3, [r4, #8] 20445 ldr r3, [sp] 20446 strh r6, [r2] @ movhi 20447 ldrh r2, [r3] 20448 ldr r3, .L2980+116 20449 lsrs r2, r2, #3 20450 ldr r0, [r3] 20451 bl ftl_memset 20452.L2969: 20453 mov r0, r8 20454 bl make_superblock 20455 ldrb r3, [r4, #7] @ zero_extendqisi2 20456 ldrh r2, [r4] 20457 cbnz r3, .L2970 20458 ldr r3, [r5] 20459 strh r6, [r3, r2, lsl #1] @ movhi 20460 ldrh r3, [r4] 20461 adds r3, r3, #1 20462 strh r3, [r4] @ movhi 20463 b .L2969 20464.L2954: 20465 mvns r0, r3 20466 orr r0, r3, r0, lsl #16 20467 str r0, [r4, r3, lsl #2] 20468 str ip, [r5, r3, lsl #2] 20469 b .L2953 20470.L2956: 20471 mov r0, r5 20472 movs r1, #1 20473 bl FtlLowFormatEraseBlock 20474 adds r5, r5, #1 20475 add r4, r4, r0 20476 uxth r4, r4 20477 uxth r5, r5 20478 b .L2955 20479.L2959: 20480 mov r0, r6 20481 movs r1, #1 20482 bl FtlLowFormatEraseBlock 20483 adds r6, r6, #1 20484 add r4, r4, r0 20485 uxth r4, r4 20486 uxth r6, r6 20487 b .L2958 20488.L2961: 20489 movs r1, #0 20490 bl FtlLowFormatEraseBlock 20491 add r6, r6, r0 20492 uxth r6, r6 20493 b .L2960 20494.L2970: 20495 ldr r3, [r7] 20496 movw r6, #65535 20497 ldrh r1, [r4, #4] 20498 str r3, [r4, #12] 20499 adds r3, r3, #1 20500 str r3, [r7] 20501 ldr r3, [r5] 20502 strh r1, [r3, r2, lsl #1] @ movhi 20503 movs r2, #0 20504 ldr r3, .L2980+120 20505 strh r2, [r3, #2] @ movhi 20506 mov r8, r3 20507 strb r2, [r3, #6] 20508 ldrh r2, [r4] 20509 mov r4, r3 20510 adds r2, r2, #1 20511 strh r2, [r3] @ movhi 20512 movs r2, #1 20513 strb r2, [r3, #8] 20514.L2971: 20515 mov r0, r8 20516 bl make_superblock 20517 ldrb r3, [r4, #7] @ zero_extendqisi2 20518 ldrh r2, [r4] 20519 cmp r3, #0 20520 bne .L2972 20521 ldr r3, [r5] 20522 strh r6, [r3, r2, lsl #1] @ movhi 20523 ldrh r3, [r4] 20524 adds r3, r3, #1 20525 strh r3, [r4] @ movhi 20526 b .L2971 20527.L2981: 20528 .align 2 20529.L2980: 20530 .word .LANCHOR78 20531 .word .LANCHOR66 20532 .word .LANCHOR203 20533 .word .LANCHOR39 20534 .word .LANCHOR164 20535 .word .LANCHOR134 20536 .word .LANCHOR165 20537 .word .LANCHOR55 20538 .word .LANCHOR193 20539 .word .LANCHOR194 20540 .word .LANCHOR40 20541 .word .LANCHOR38 20542 .word .LANCHOR65 20543 .word .LANCHOR75 20544 .word .LANCHOR42 20545 .word .LANCHOR232 20546 .word .LANCHOR74 20547 .word .LANCHOR104 20548 .word .LANCHOR16 20549 .word .LANCHOR49 20550 .word .LANCHOR52 20551 .word .LANCHOR68 20552 .word .LANCHOR43 20553 .word .LANCHOR59 20554 .word .LC75 20555 .word .LANCHOR85 20556 .word .LANCHOR93 20557 .word .LANCHOR102 20558 .word .LANCHOR213 20559 .word .LANCHOR1 20560 .word .LANCHOR94 20561 .word 168778952 20562 .word .LANCHOR41 20563 .word .LANCHOR231 20564.L2972: 20565 ldr r3, [r7] 20566 ldrh r1, [r4, #4] 20567 str r3, [r4, #12] 20568 adds r3, r3, #1 20569 str r3, [r7] 20570 movw r4, #65535 20571 ldr r3, [r5] 20572 strh r1, [r3, r2, lsl #1] @ movhi 20573 ldr r3, .L2982 20574 strh r4, [r3] @ movhi 20575 bl FtlFreeSysBlkQueueOut 20576 ldr r3, .L2982+4 20577 movs r2, #0 20578 strh r2, [r3, #2] @ movhi 20579 ldr r2, [fp] 20580 strh r0, [r3] @ movhi 20581 strh r4, [r3, #4] @ movhi 20582 strh r2, [r3, #6] @ movhi 20583 ldr r2, [r7] 20584 str r2, [r3, #8] 20585 adds r2, r2, #1 20586 str r2, [r7] 20587 bl FtlVpcTblFlush 20588 bl FtlSysBlkInit 20589 cbnz r0, .L2951 20590 ldr r3, .L2982+8 20591 movs r2, #1 20592 str r2, [r3] 20593.L2951: 20594 movs r0, #0 20595 add sp, sp, #24 20596 @ sp needed 20597 pop {r4, r5, r6, r7, r8, r10, fp, pc} 20598.L2983: 20599 .align 2 20600.L2982: 20601 .word .LANCHOR95 20602 .word .LANCHOR218 20603 .word .LANCHOR247 20604 .size FtlLowFormat, .-FtlLowFormat 20605 .section .text.Ftl_gc_temp_data_write_back,"ax",%progbits 20606 .align 1 20607 .global Ftl_gc_temp_data_write_back 20608 .syntax unified 20609 .thumb 20610 .thumb_func 20611 .fpu softvfp 20612 .type Ftl_gc_temp_data_write_back, %function 20613Ftl_gc_temp_data_write_back: 20614 @ args = 0, pretend = 0, frame = 0 20615 @ frame_needed = 0, uses_anonymous_args = 0 20616 push {r3, r4, r5, r6, r7, lr} 20617 ldr r3, .L2999 20618 ldr r3, [r3] 20619 cbz r3, .L2985 20620.L2988: 20621 movs r0, #0 20622 pop {r3, r4, r5, r6, r7, pc} 20623.L2985: 20624 ldr r3, .L2999+4 20625 ldr r5, .L2999+8 20626 ldrb r3, [r3] @ zero_extendqisi2 20627 cbz r3, .L2987 20628 ldr r3, [r5] 20629 lsls r2, r3, #31 20630 bpl .L2987 20631 ldr r3, .L2999+12 20632 ldrh r3, [r3, #4] 20633 cmp r3, #0 20634 bne .L2988 20635.L2987: 20636 ldr r4, .L2999+16 20637 movs r3, #0 20638 movs r6, #0 20639 movs r7, #36 20640 mov r2, r3 20641 ldr r1, [r5] 20642 ldr r0, [r4] 20643 bl FlashProgPages 20644.L2989: 20645 ldr r1, [r5] 20646 uxth r3, r6 20647 cmp r3, r1 20648 bcc .L2991 20649 ldr r0, [r4] 20650 bl FtlGcBufFree 20651 movs r3, #0 20652 str r3, [r5] 20653 ldr r3, .L2999+12 20654 ldrh r3, [r3, #4] 20655 cmp r3, #0 20656 bne .L2988 20657 movs r0, #1 20658 bl FtlGcFreeTempBlock 20659 b .L2998 20660.L2991: 20661 muls r3, r7, r3 20662 ldr r2, [r4] 20663 adds r6, r6, #1 20664 adds r1, r2, r3 20665 ldr r2, [r2, r3] 20666 ldr r0, [r1, #12] 20667 adds r3, r2, #1 20668 bne .L2990 20669 ldr r3, .L2999+12 20670 movs r5, #0 20671 ldr r0, .L2999+20 20672 ldrh r4, [r3] 20673 ldr r0, [r0] 20674 strh r5, [r0, r4, lsl #1] @ movhi 20675 strh r2, [r3] @ movhi 20676 ldr r2, .L2999+24 20677 ldr r0, [r1, #4] 20678 ldr r3, [r2, #96] 20679 ubfx r0, r0, #10, #16 20680 adds r3, r3, #1 20681 str r3, [r2, #96] 20682 bl FtlBbmMapBadBlock 20683 bl FtlBbmTblFlush 20684 bl FtlGcPageVarInit 20685.L2998: 20686 movs r0, #1 20687 pop {r3, r4, r5, r6, r7, pc} 20688.L2990: 20689 ldr r2, [r0, #8] 20690 ldr r1, [r1, #4] 20691 ldr r0, [r0, #12] 20692 bl FtlGcUpdatePage 20693 b .L2989 20694.L3000: 20695 .align 2 20696.L2999: 20697 .word .LANCHOR78 20698 .word .LANCHOR16 20699 .word .LANCHOR105 20700 .word .LANCHOR95 20701 .word .LANCHOR187 20702 .word .LANCHOR85 20703 .word .LANCHOR141 20704 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back 20705 .section .text.Ftl_get_new_temp_ppa,"ax",%progbits 20706 .align 1 20707 .global Ftl_get_new_temp_ppa 20708 .syntax unified 20709 .thumb 20710 .thumb_func 20711 .fpu softvfp 20712 .type Ftl_get_new_temp_ppa, %function 20713Ftl_get_new_temp_ppa: 20714 @ args = 0, pretend = 0, frame = 0 20715 @ frame_needed = 0, uses_anonymous_args = 0 20716 push {r3, r4, r5, lr} 20717 movw r3, #65535 20718 ldr r4, .L3004 20719 ldrh r2, [r4] 20720 cmp r2, r3 20721 beq .L3002 20722 ldrh r3, [r4, #4] 20723 cbnz r3, .L3003 20724.L3002: 20725 bl FtlCacheWriteBack 20726 movs r0, #0 20727 movs r5, #0 20728 bl FtlGcFreeTempBlock 20729 ldr r0, .L3004 20730 strb r5, [r4, #8] 20731 bl allocate_data_superblock 20732 ldr r3, .L3004+4 20733 strh r5, [r3] @ movhi 20734 ldr r3, .L3004+8 20735 strh r5, [r3] @ movhi 20736 bl l2p_flush 20737 mov r0, r5 20738 bl FtlEctTblFlush 20739 bl FtlVpcTblFlush 20740.L3003: 20741 ldr r0, .L3004 20742 pop {r3, r4, r5, lr} 20743 b get_new_active_ppa 20744.L3005: 20745 .align 2 20746.L3004: 20747 .word .LANCHOR95 20748 .word .LANCHOR112 20749 .word .LANCHOR113 20750 .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa 20751 .section .text.ftl_do_gc,"ax",%progbits 20752 .align 1 20753 .global ftl_do_gc 20754 .syntax unified 20755 .thumb 20756 .thumb_func 20757 .fpu softvfp 20758 .type ftl_do_gc, %function 20759ftl_do_gc: 20760 @ args = 0, pretend = 0, frame = 32 20761 @ frame_needed = 0, uses_anonymous_args = 0 20762 ldr r3, .L3106 20763 push {r4, r5, r6, r7, r8, r10, fp, lr} 20764 mov lr, r0 20765 sub sp, sp, #32 20766 ldr r0, [r3] 20767 cmp r0, #0 20768 bne .L3065 20769 ldr r3, .L3106+4 20770 ldr r3, [r3] 20771 cmp r3, #1 20772 bne .L3006 20773 ldr r3, .L3106+8 20774 ldr r3, [r3] 20775 cmp r3, #0 20776 bne .L3006 20777 ldr r2, .L3106+12 20778 ldrh r2, [r2] 20779 cmp r2, #47 20780 bls .L3068 20781 ldr r5, .L3106+16 20782 movw r2, #65535 20783 ldrh ip, [r5] 20784 cmp ip, r2 20785 beq .L3008 20786 ldr r7, .L3106+20 20787 ldrh r3, [r7] 20788 cmp r3, r2 20789 bne .L3008 20790 ldr r1, .L3106+24 20791 ldrh r6, [r1] 20792 cmp r6, r3 20793 beq .L3008 20794 ldr r2, .L3106+28 20795 ldrh r4, [r2] 20796 cmp r4, r3 20797 itttt ne 20798 strhne ip, [r7] @ movhi 20799 strhne r6, [r5] @ movhi 20800 strhne r4, [r1] @ movhi 20801 strhne r3, [r2] @ movhi 20802.L3008: 20803 cmp lr, #0 20804 bne .L3069 20805 ldr r3, .L3106+32 20806 ldrh r3, [r3] 20807 cmp r3, #24 20808 bhi .L3070 20809 ldr r2, .L3106+36 20810 cmp r3, #16 20811 ldrh r4, [r2] 20812 bls .L3011 20813 lsrs r4, r4, #5 20814.L3010: 20815 ldr r2, .L3106+40 20816 ldrh r1, [r2] 20817 cmp r1, r3 20818 mov r1, r2 20819 bcs .L3014 20820 ldr r3, .L3106+44 20821 movw r0, #65535 20822 ldrh r3, [r3] 20823 cmp r3, r0 20824 bne .L3015 20825 ldr r0, .L3106+20 20826 ldrh r0, [r0] 20827 cmp r0, r3 20828 bne .L3015 20829 ldr r3, .L3106+48 20830 ldrh r0, [r3] 20831 cbnz r0, .L3016 20832 ldr r3, .L3106+52 20833 ldr r4, .L3106+56 20834 ldr r3, [r3] 20835 ldr r4, [r4] 20836 add r3, r3, r3, lsl #1 20837 cmp r4, r3, lsr #2 20838 bcs .L3017 20839.L3016: 20840 ldr r3, .L3106+60 20841 ldrh r3, [r3] 20842 add r3, r3, r3, lsl #1 20843 asrs r3, r3, #2 20844 strh r3, [r1] @ movhi 20845.L3018: 20846 ldr r3, .L3106+64 20847 movs r2, #0 20848 str r2, [r3] 20849.L3006: 20850 add sp, sp, #32 20851 @ sp needed 20852 pop {r4, r5, r6, r7, r8, r10, fp, pc} 20853.L3011: 20854 cmp r3, #12 20855 bls .L3012 20856 lsrs r4, r4, #4 20857 b .L3010 20858.L3012: 20859 cmp r3, #8 20860 bls .L3010 20861 lsrs r4, r4, #2 20862 b .L3010 20863.L3070: 20864 movs r4, #1 20865 b .L3010 20866.L3017: 20867 movs r3, #18 20868 strh r3, [r2] @ movhi 20869 b .L3018 20870.L3015: 20871 ldr r3, .L3106+60 20872 ldrh r3, [r3] 20873 add r3, r3, r3, lsl #1 20874 asrs r3, r3, #2 20875 strh r3, [r1] @ movhi 20876.L3014: 20877 ldr r3, .L3106+68 20878 ldrh r3, [r3] 20879 cbz r3, .L3009 20880 adds r4, r4, #32 20881 uxth r4, r4 20882.L3009: 20883 ldr r5, .L3106+72 20884 movw r3, #65535 20885 ldrh r2, [r5] 20886 cmp r2, r3 20887 bne .L3021 20888 ldr r3, .L3106+20 20889 ldrh r1, [r3] 20890 cmp r1, r2 20891 beq .L3022 20892 ldr r0, .L3106+76 20893 ldr r0, [r0] 20894 ldrh r1, [r0, r1, lsl #1] 20895 cbnz r1, .L3023 20896 strh r2, [r3] @ movhi 20897.L3023: 20898 ldrh r2, [r3] 20899 strh r2, [r5] @ movhi 20900 movw r2, #65535 20901 strh r2, [r3] @ movhi 20902.L3022: 20903 ldrh r0, [r5] 20904 movw r6, #65535 20905 movs r3, #0 20906 strb r3, [r5, #8] 20907 cmp r0, r6 20908 beq .L3021 20909 bl IsBlkInGcList 20910 cbz r0, .L3025 20911 strh r6, [r5] @ movhi 20912.L3025: 20913 ldr r3, .L3106+80 20914 ldrb r3, [r3] @ zero_extendqisi2 20915 cbz r3, .L3026 20916 ldrh r0, [r5] 20917 bl ftl_get_blk_mode 20918 strb r0, [r5, #8] 20919.L3026: 20920 ldrh r2, [r5] 20921 movw r3, #65535 20922 cmp r2, r3 20923 beq .L3021 20924 ldr r0, .L3106+72 20925 bl make_superblock 20926 ldr r2, .L3106+84 20927 movs r3, #0 20928 strh r3, [r5, #2] @ movhi 20929 strb r3, [r5, #6] 20930 strh r3, [r2] @ movhi 20931 ldr r3, .L3106+76 20932 ldrh r2, [r5] 20933 ldr r3, [r3] 20934 ldrh r2, [r3, r2, lsl #1] 20935 ldr r3, .L3106+88 20936 strh r2, [r3] @ movhi 20937.L3021: 20938 ldr r2, .L3106+92 20939 ldrh r3, [r5] 20940 ldrh r2, [r2] 20941 cmp r2, r3 20942 beq .L3027 20943 ldr r2, .L3106+96 20944 ldrh r2, [r2] 20945 cmp r2, r3 20946 beq .L3027 20947 ldr r2, .L3106+44 20948 ldrh r2, [r2] 20949 cmp r2, r3 20950 bne .L3028 20951.L3027: 20952 movw r3, #65535 20953 strh r3, [r5] @ movhi 20954.L3028: 20955 ldr r5, .L3106+72 20956 mov r6, r5 20957.L3064: 20958 ldrh r2, [r5] 20959 movw r3, #65535 20960 cmp r2, r3 20961 bne .L3029 20962 ldr r10, .L3106+104 20963 movs r2, #0 20964 ldr r3, .L3106+64 20965 mov r7, r10 20966 str r2, [r3] 20967.L3030: 20968 ldrh r8, [r10] 20969 mov r0, r8 20970 bl List_get_gc_head_node 20971 uxth fp, r0 20972 movw r3, #65535 20973 cmp fp, r3 20974 strh fp, [r6] @ movhi 20975 bne .L3031 20976 movs r3, #0 20977 movs r0, #8 20978 strh r3, [r10] @ movhi 20979 b .L3006 20980.L3069: 20981 movs r4, #1 20982 b .L3009 20983.L3031: 20984 str r0, [sp] 20985 mov r0, fp 20986 bl IsBlkInGcList 20987 add r3, r8, #1 20988 ldr r2, [sp] 20989 cbz r0, .L3032 20990 strh r3, [r10] @ movhi 20991 b .L3030 20992.L3032: 20993 ldr r1, .L3106+36 20994 uxth r3, r3 20995 ldr lr, .L3106+108 20996 uxth r2, r2 20997 ldr r8, .L3106+76 20998 ldrh r1, [r1] 20999 ldrh lr, [lr] 21000 ldr r0, [r8] 21001 strh r3, [r10] @ movhi 21002 mul r1, lr, r1 21003 ldrh ip, [r0, r2, lsl #1] 21004 cmp ip, r1, asr #1 21005 bgt .L3034 21006 cmp r3, #48 21007 bls .L3035 21008 cmp ip, #8 21009 bls .L3035 21010 ldr r3, .L3106+100 21011 ldrh r3, [r3] 21012 cmp r3, #35 21013 bhi .L3035 21014.L3034: 21015 movs r3, #0 21016 strh r3, [r7] @ movhi 21017.L3035: 21018 ldrh r3, [r0, r2, lsl #1] 21019 cmp r1, r3 21020 bgt .L3036 21021 ldrh r2, [r7] 21022 cmp r2, #3 21023 bhi .L3036 21024 movw r3, #65535 21025 strh r3, [r6] @ movhi 21026 movs r3, #0 21027 strh r3, [r7] @ movhi 21028.L3105: 21029 ldr r3, .L3106+48 21030 ldrh r0, [r3] 21031 b .L3006 21032.L3036: 21033 cmp r3, #0 21034 bne .L3037 21035 movw r0, #65535 21036 bl decrement_vpc_count 21037 ldrh r3, [r7] 21038 adds r3, r3, #1 21039 strh r3, [r7] @ movhi 21040 b .L3030 21041.L3107: 21042 .align 2 21043.L3106: 21044 .word .LANCHOR78 21045 .word .LANCHOR247 21046 .word .LANCHOR176 21047 .word .LANCHOR87 21048 .word .LANCHOR116 21049 .word .LANCHOR115 21050 .word .LANCHOR117 21051 .word .LANCHOR118 21052 .word .LANCHOR90 21053 .word .LANCHOR52 21054 .word .LANCHOR181 21055 .word .LANCHOR95 21056 .word .LANCHOR248 21057 .word .LANCHOR74 21058 .word .LANCHOR102 21059 .word .LANCHOR232 21060 .word .LANCHOR177 21061 .word .LANCHOR119 21062 .word .LANCHOR213 21063 .word .LANCHOR85 21064 .word .LANCHOR16 21065 .word .LANCHOR249 21066 .word .LANCHOR250 21067 .word .LANCHOR93 21068 .word .LANCHOR94 21069 .word .LANCHOR112 21070 .word .LANCHOR183 21071 .word .LANCHOR38 21072.L3037: 21073 movs r3, #0 21074 strb r3, [r6, #8] 21075 ldr r3, .L3108 21076 ldrb r3, [r3] @ zero_extendqisi2 21077 cbz r3, .L3038 21078 mov r0, fp 21079 bl ftl_get_blk_mode 21080 strb r0, [r6, #8] 21081.L3038: 21082 ldr r3, .L3108+4 21083 ldrh r3, [r3] 21084 cmp r3, fp 21085 bne .L3039 21086 ldr r1, .L3108+8 21087 movw r2, #1069 21088 ldr r0, .L3108+12 21089 bl printf 21090 ldr r1, .L3108+16 21091 ldr r0, .L3108+20 21092 bl printf 21093.L3039: 21094 ldr r3, .L3108+24 21095 ldrh r2, [r6] 21096 ldrh r3, [r3] 21097 cmp r2, r3 21098 bne .L3040 21099 ldr r1, .L3108+8 21100 movw r2, #1070 21101 ldr r0, .L3108+12 21102 bl printf 21103 ldr r1, .L3108+16 21104 ldr r0, .L3108+20 21105 bl printf 21106.L3040: 21107 ldr r3, .L3108+28 21108 ldrh r2, [r6] 21109 ldrh r3, [r3] 21110 cmp r2, r3 21111 bne .L3041 21112 ldr r1, .L3108+8 21113 movw r2, #1071 21114 ldr r0, .L3108+12 21115 bl printf 21116 ldr r1, .L3108+16 21117 ldr r0, .L3108+20 21118 bl printf 21119.L3041: 21120 mov r0, r5 21121 bl make_superblock 21122 ldr r2, .L3108+32 21123 movs r3, #0 21124 ldrh r1, [r6] 21125 strh r3, [r2] @ movhi 21126 ldr r2, [r8] 21127 ldrh r1, [r2, r1, lsl #1] 21128 ldr r2, .L3108+36 21129 strh r3, [r6, #2] @ movhi 21130 strb r3, [r6, #6] 21131 strh r1, [r2] @ movhi 21132.L3029: 21133 ldr r3, .L3108+40 21134 movs r2, #1 21135 str r2, [r3] 21136 ldr r3, .L3108+44 21137 ldrh r3, [r3] 21138 str r3, [sp, #4] 21139 ldr r3, .L3108 21140 ldrb r3, [r3] @ zero_extendqisi2 21141 cbz r3, .L3042 21142 ldrb r3, [r6, #8] @ zero_extendqisi2 21143 cmp r3, r2 21144 ittt eq 21145 ldreq r3, .L3108+48 21146 ldrheq r3, [r3] 21147 streq r3, [sp, #4] 21148.L3042: 21149 ldrh r3, [r6, #2] 21150 ldr r1, [sp, #4] 21151 ldr fp, .L3108+76 21152 adds r2, r3, r4 21153 cmp r2, r1 21154 itt gt 21155 movgt r2, r1 21156 subgt r4, r2, r3 21157 mov r3, #0 21158 it gt 21159 uxthgt r4, r4 21160 str r3, [sp, #12] 21161.L3044: 21162 ldrh r3, [sp, #12] 21163 cmp r4, r3 21164 bls .L3052 21165 ldr r3, .L3108+52 21166 movw r8, #65535 21167 ldrh lr, [r5, #2] 21168 mov r10, #36 21169 ldr r0, [fp] 21170 ldrh r7, [r3] 21171 ldr r3, [sp, #12] 21172 add lr, lr, r3 21173 ldr r3, .L3108+56 21174 str r3, [sp, #8] 21175 movs r3, #0 21176 str r3, [sp] 21177 b .L3053 21178.L3046: 21179 ldr r1, [sp, #8] 21180 ldrh r2, [r1, #2]! 21181 cmp r2, r8 21182 str r1, [sp, #8] 21183 beq .L3045 21184 ldr r1, [sp] 21185 orr r2, lr, r2, lsl #10 21186 mla ip, r10, r1, r0 21187 str r2, [ip, #4] 21188 mov r2, r1 21189 adds r2, r2, #1 21190 uxth r2, r2 21191 str r2, [sp] 21192.L3045: 21193 adds r3, r3, #1 21194.L3053: 21195 uxth r2, r3 21196 cmp r7, r2 21197 bhi .L3046 21198 ldrb r2, [r5, #8] @ zero_extendqisi2 21199 ldr r1, [sp] 21200 bl FlashReadPages 21201 movs r3, #0 21202.L3104: 21203 str r3, [sp, #8] 21204 ldr r2, [sp] 21205 ldrh r3, [sp, #8] 21206 cmp r2, r3 21207 bhi .L3051 21208 ldr r3, [sp, #12] 21209 adds r3, r3, #1 21210 str r3, [sp, #12] 21211 b .L3044 21212.L3051: 21213 ldr r3, [sp, #8] 21214 movs r7, #36 21215 muls r7, r3, r7 21216 ldr r3, [fp] 21217 adds r2, r3, r7 21218 ldr r3, [r3, r7] 21219 adds r3, r3, #1 21220 beq .L3048 21221 ldr r8, [r2, #12] 21222 movw r3, #61589 21223 ldrh r2, [r8] 21224 cmp r2, r3 21225 bne .L3048 21226 ldr r10, [r8, #8] 21227 cmp r10, #-1 21228 bne .L3049 21229 ldr r1, .L3108+8 21230 movw r2, #1119 21231 ldr r0, .L3108+12 21232 bl printf 21233 ldr r1, .L3108+16 21234 ldr r0, .L3108+20 21235 bl printf 21236.L3049: 21237 movs r2, #0 21238 add r1, sp, #24 21239 mov r0, r10 21240 bl log2phys 21241 ldr r0, [fp] 21242 ldr r3, [sp, #24] 21243 add r0, r0, r7 21244 ldr r2, [r0, #4] 21245 bic r3, r3, #-2147483648 21246 cmp r3, r2 21247 bne .L3048 21248 ldr r2, .L3108+32 21249 ldr r1, .L3108+60 21250 ldr r10, .L3108+72 21251 ldrh r3, [r2] 21252 str r1, [sp, #20] 21253 adds r3, r3, #1 21254 strh r3, [r2] @ movhi 21255 ldr r2, [r1] 21256 movs r1, #36 21257 ldr r3, [r10] 21258 mla r3, r1, r3, r2 21259 ldr r2, [r0, #16] 21260 str r2, [r3, #16] 21261 str r3, [sp, #16] 21262 bl Ftl_get_new_temp_ppa 21263 ldr r3, [sp, #16] 21264 ldr r1, [sp, #20] 21265 str r0, [r3, #4] 21266 ldr r2, [r1] 21267 movs r1, #36 21268 ldr r3, [r10] 21269 ldr r0, [fp] 21270 mla r2, r1, r3, r2 21271 add r0, r0, r7 21272 ldr r7, .L3108+28 21273 ldr r1, [r0, #8] 21274 adds r3, r3, #1 21275 str r1, [r2, #8] 21276 ldr r1, [r0, #12] 21277 str r1, [r2, #12] 21278 movs r1, #1 21279 ldr r2, [sp, #24] 21280 str r2, [r8, #12] 21281 ldrh r2, [r7] 21282 strh r2, [r8, #2] @ movhi 21283 ldr r2, .L3108+64 21284 str r3, [r10] 21285 ldr r2, [r2] 21286 str r2, [r8, #4] 21287 bl FtlGcBufAlloc 21288 ldr r3, .L3108 21289 ldrb r3, [r3] @ zero_extendqisi2 21290 cbnz r3, .L3050 21291 ldrb r2, [r7, #7] @ zero_extendqisi2 21292 ldr r3, [r10] 21293 cmp r2, r3 21294 beq .L3050 21295 ldrh r3, [r7, #4] 21296 cbnz r3, .L3048 21297.L3050: 21298 bl Ftl_gc_temp_data_write_back 21299 cbz r0, .L3048 21300 ldr r3, .L3108+40 21301 movs r2, #0 21302 movw r1, #65535 21303 str r2, [r3] 21304 ldr r3, .L3108+68 21305 strh r1, [r3] @ movhi 21306 strh r2, [r3, #2] @ movhi 21307 b .L3105 21308.L3048: 21309 ldr r3, [sp, #8] 21310 adds r3, r3, #1 21311 b .L3104 21312.L3052: 21313 ldrh r3, [r5, #2] 21314 add r4, r4, r3 21315 ldr r3, [sp, #4] 21316 uxth r4, r4 21317 cmp r3, r4 21318 strh r4, [r5, #2] @ movhi 21319 bhi .L3054 21320 ldr r3, .L3108+72 21321 ldr r3, [r3] 21322 cbz r3, .L3055 21323 bl Ftl_gc_temp_data_write_back 21324 cbz r0, .L3055 21325 ldr r3, .L3108+40 21326 movs r2, #0 21327 str r2, [r3] 21328 b .L3105 21329.L3109: 21330 .align 2 21331.L3108: 21332 .word .LANCHOR16 21333 .word .LANCHOR93 21334 .word .LANCHOR251 21335 .word .LC5 21336 .word .LC6 21337 .word .LC7 21338 .word .LANCHOR94 21339 .word .LANCHOR95 21340 .word .LANCHOR249 21341 .word .LANCHOR250 21342 .word .LANCHOR176 21343 .word .LANCHOR52 21344 .word .LANCHOR53 21345 .word .LANCHOR38 21346 .word .LANCHOR213+14 21347 .word .LANCHOR187 21348 .word .LANCHOR165 21349 .word .LANCHOR213 21350 .word .LANCHOR105 21351 .word .LANCHOR109 21352.L3055: 21353 ldr r3, .L3110 21354 ldrh r7, [r3] 21355 cbnz r7, .L3056 21356 ldr r8, .L3110+20 21357 ldrh r2, [r5] 21358 ldr r3, [r8] 21359 ldrh r3, [r3, r2, lsl #1] 21360 cbz r3, .L3056 21361 ldr r4, .L3110+4 21362.L3057: 21363 ldr r3, [r4] 21364 cmp r7, r3 21365 bcs .L3062 21366 movs r2, #0 21367 add r1, sp, #28 21368 mov r0, r7 21369 bl log2phys 21370 ldr r0, [sp, #28] 21371 adds r3, r0, #1 21372 beq .L3058 21373 ubfx r0, r0, #10, #16 21374 bl P2V_block_in_plane 21375 ldrh r3, [r5] 21376 cmp r3, r0 21377 bne .L3058 21378.L3062: 21379 ldr r3, [r4] 21380 cmp r7, r3 21381 bcc .L3056 21382 ldrh r2, [r5] 21383 movs r1, #0 21384 ldr r3, [r8] 21385 strh r1, [r3, r2, lsl #1] @ movhi 21386 ldrh r0, [r5] 21387 bl update_vpc_list 21388 bl FtlCacheWriteBack 21389 bl l2p_flush 21390 bl FtlVpcTblFlush 21391.L3056: 21392 movw r3, #65535 21393 strh r3, [r5] @ movhi 21394.L3054: 21395 ldr r3, .L3110+8 21396 ldrh r0, [r3] 21397 cmp r0, #2 21398 bhi .L3063 21399 ldr r3, .L3110+12 21400 ldrh r4, [r3] 21401 b .L3064 21402.L3058: 21403 adds r7, r7, #1 21404 b .L3057 21405.L3063: 21406 ldr r3, .L3110+16 21407 movs r2, #0 21408 adds r0, r0, #1 21409 str r2, [r3] 21410 b .L3006 21411.L3065: 21412 movs r0, #0 21413 b .L3006 21414.L3068: 21415 mov r0, r3 21416 b .L3006 21417.L3111: 21418 .align 2 21419.L3110: 21420 .word .LANCHOR249 21421 .word .LANCHOR74 21422 .word .LANCHOR90 21423 .word .LANCHOR52 21424 .word .LANCHOR176 21425 .word .LANCHOR85 21426 .size ftl_do_gc, .-ftl_do_gc 21427 .section .text.FtlCacheWriteBack,"ax",%progbits 21428 .align 1 21429 .global FtlCacheWriteBack 21430 .syntax unified 21431 .thumb 21432 .thumb_func 21433 .fpu softvfp 21434 .type FtlCacheWriteBack, %function 21435FtlCacheWriteBack: 21436 @ args = 0, pretend = 0, frame = 16 21437 @ frame_needed = 0, uses_anonymous_args = 0 21438 push {r0, r1, r2, r3, r4, r5, r6, r7, r8, r10, fp, lr} 21439 ldr r3, .L3154 21440 ldr r10, [r3] 21441 str r3, [sp] 21442 cmp r10, #0 21443 bne .L3114 21444 ldr r3, .L3154+4 21445 ldr r1, [r3] 21446 mov r8, r3 21447 cbz r1, .L3114 21448 ldr r3, .L3154+8 21449 ldr r4, [r3] 21450 ldr r3, .L3154+12 21451 ldrb r3, [r3] @ zero_extendqisi2 21452 cbz r3, .L3139 21453 ldrb r7, [r4, #8] @ zero_extendqisi2 21454 subs r0, r7, #1 21455 rsbs r7, r0, #0 21456 adcs r7, r7, r0 21457.L3116: 21458 ldr r5, .L3154+16 21459 movs r6, #0 21460 ldr fp, .L3154+36 21461 mov r2, r7 21462 ldrb r3, [r4, #9] @ zero_extendqisi2 21463 ldr r0, [r5] 21464 bl FlashProgPages 21465.L3117: 21466 ldr r3, [r8] 21467 cmp r6, r3 21468 bcc .L3124 21469.L3136: 21470 movs r3, #0 21471 str r3, [r8] 21472.L3114: 21473 movs r0, #0 21474 add sp, sp, #16 21475 @ sp needed 21476 pop {r4, r5, r6, r7, r8, r10, fp, pc} 21477.L3139: 21478 mov r7, r10 21479 b .L3116 21480.L3124: 21481 movs r3, #36 21482 ldr r2, [r5] 21483 muls r3, r6, r3 21484 adds r0, r2, r3 21485 ldr r2, [r2, r3] 21486 adds r2, r2, #1 21487 bne .L3118 21488 ldr fp, .L3154+36 21489.L3119: 21490 ldr r3, [r8] 21491 cmp r10, r3 21492 bcc .L3134 21493 ldr r5, .L3154+20 21494 movw r4, #16386 21495.L3137: 21496 ldrh r3, [r5] 21497 cmp r3, #0 21498 beq .L3136 21499 movs r1, #1 21500 mov r0, r1 21501 bl ftl_do_gc 21502 subs r4, r4, #1 21503 bne .L3137 21504 b .L3136 21505.L3118: 21506 ldr r2, [r0, #4] 21507 cbnz r7, .L3120 21508.L3152: 21509 str r2, [sp, #12] 21510 add r1, sp, #12 21511 movs r2, #1 21512 ldr r0, [r0, #16] 21513 str r3, [sp, #4] 21514 bl log2phys 21515 ldr r2, [r5] 21516 ldr r3, [sp, #4] 21517 add r3, r3, r2 21518 ldr r3, [r3, #12] 21519 ldr r0, [r3, #12] 21520 adds r2, r0, #1 21521 beq .L3122 21522 ubfx r0, r0, #10, #16 21523 bl P2V_block_in_plane 21524 ldr r2, [fp] 21525 mov r3, r0 21526 ldrh r2, [r2, r0, lsl #1] 21527 cbnz r2, .L3123 21528 mov r1, r0 21529 str r0, [sp, #4] 21530 ldr r0, .L3154+24 21531 bl printf 21532 ldr r3, [sp, #4] 21533.L3123: 21534 mov r0, r3 21535 bl decrement_vpc_count 21536.L3122: 21537 adds r6, r6, #1 21538 b .L3117 21539.L3120: 21540 orr r2, r2, #-2147483648 21541 b .L3152 21542.L3134: 21543 movs r6, #36 21544 ldr r3, [r5] 21545 mul r6, r6, r10 21546 mov r2, #-1 21547 str r2, [r3, r6] 21548.L3125: 21549 ldr r2, [r5] 21550 adds r3, r2, r6 21551 ldr r2, [r2, r6] 21552 ldr r0, [r3, #4] 21553 adds r2, r2, #1 21554 beq .L3129 21555 cmp r7, #0 21556 bne .L3130 21557.L3153: 21558 str r0, [sp, #12] 21559 movs r2, #1 21560 ldr r0, [r3, #16] 21561 add r1, sp, #12 21562 bl log2phys 21563 ldr r3, [r5] 21564 add r6, r6, r3 21565 ldr r3, [r6, #12] 21566 ldr r0, [r3, #12] 21567 adds r3, r0, #1 21568 beq .L3132 21569 ubfx r0, r0, #10, #16 21570 bl P2V_block_in_plane 21571 ldr r3, [fp] 21572 mov r6, r0 21573 ldrh r2, [r3, r0, lsl #1] 21574 cbnz r2, .L3133 21575 mov r1, r0 21576 ldr r0, .L3154+24 21577 bl printf 21578.L3133: 21579 mov r0, r6 21580 bl decrement_vpc_count 21581.L3132: 21582 add r10, r10, #1 21583 b .L3119 21584.L3129: 21585 ubfx r0, r0, #10, #16 21586 bl P2V_block_in_plane 21587 ldrh r3, [r4] 21588 cmp r3, r0 21589 bne .L3126 21590 ldr r1, [fp] 21591 ldrh r0, [r4, #4] 21592 ldrh r2, [r1, r3, lsl #1] 21593 subs r2, r2, r0 21594 strh r2, [r1, r3, lsl #1] @ movhi 21595 ldr r3, .L3154+28 21596 ldrh r3, [r3] 21597 strh r3, [r4, #2] @ movhi 21598 movs r3, #0 21599 strb r3, [r4, #6] 21600 strh r3, [r4, #4] @ movhi 21601.L3126: 21602 ldrh r3, [r4, #4] 21603 cbnz r3, .L3127 21604 mov r0, r4 21605 bl allocate_new_data_superblock 21606.L3127: 21607 ldr r2, .L3154+32 21608 ldr r3, [r2, #96] 21609 adds r3, r3, #1 21610 str r3, [r2, #96] 21611 ldr r3, [r5] 21612 add r3, r3, r6 21613 ldr r0, [r3, #4] 21614 ubfx r0, r0, #10, #16 21615 bl FtlGcMarkBadPhyBlk 21616 mov r0, r4 21617 bl get_new_active_ppa 21618 ldr r3, [r5] 21619 mov r2, r0 21620 str r0, [sp, #12] 21621 movs r1, #1 21622 adds r0, r3, r6 21623 str r2, [r0, #4] 21624 mov r2, r7 21625 ldrb r3, [r4, #9] @ zero_extendqisi2 21626 bl FlashProgPages 21627 ldr r3, [r5] 21628 ldr r3, [r3, r6] 21629 adds r3, r3, #1 21630 ittt eq 21631 ldreq r2, [sp] 21632 moveq r3, #1 21633 streq r3, [r2] 21634 ldr r3, [sp] 21635 ldr r3, [r3] 21636 cmp r3, #0 21637 beq .L3125 21638 b .L3114 21639.L3130: 21640 orr r0, r0, #-2147483648 21641 b .L3153 21642.L3155: 21643 .align 2 21644.L3154: 21645 .word .LANCHOR78 21646 .word .LANCHOR72 21647 .word .LANCHOR252 21648 .word .LANCHOR16 21649 .word .LANCHOR73 21650 .word .LANCHOR119 21651 .word .LC76 21652 .word .LANCHOR52 21653 .word .LANCHOR141 21654 .word .LANCHOR85 21655 .size FtlCacheWriteBack, .-FtlCacheWriteBack 21656 .section .text.FtlSysFlush,"ax",%progbits 21657 .align 1 21658 .global FtlSysFlush 21659 .syntax unified 21660 .thumb 21661 .thumb_func 21662 .fpu softvfp 21663 .type FtlSysFlush, %function 21664FtlSysFlush: 21665 @ args = 0, pretend = 0, frame = 0 21666 @ frame_needed = 0, uses_anonymous_args = 0 21667 ldr r3, .L3158 21668 push {r4, lr} 21669 ldr r3, [r3] 21670 cbnz r3, .L3157 21671 ldr r3, .L3158+4 21672 ldr r4, [r3] 21673 cmp r4, #1 21674 bne .L3157 21675 bl FtlCacheWriteBack 21676 bl l2p_flush 21677 mov r0, r4 21678 bl FtlEctTblFlush 21679 bl FtlVpcTblFlush 21680.L3157: 21681 movs r0, #0 21682 pop {r4, pc} 21683.L3159: 21684 .align 2 21685.L3158: 21686 .word .LANCHOR78 21687 .word .LANCHOR247 21688 .size FtlSysFlush, .-FtlSysFlush 21689 .section .text.FtlDeInit,"ax",%progbits 21690 .align 1 21691 .global FtlDeInit 21692 .syntax unified 21693 .thumb 21694 .thumb_func 21695 .fpu softvfp 21696 .type FtlDeInit, %function 21697FtlDeInit: 21698 @ args = 0, pretend = 0, frame = 0 21699 @ frame_needed = 0, uses_anonymous_args = 0 21700 push {r3, lr} 21701 ldr r3, .L3162 21702 ldr r3, [r3] 21703 cmp r3, #1 21704 bne .L3161 21705 bl FtlSysFlush 21706.L3161: 21707 movs r0, #0 21708 pop {r3, pc} 21709.L3163: 21710 .align 2 21711.L3162: 21712 .word .LANCHOR247 21713 .size FtlDeInit, .-FtlDeInit 21714 .section .text.ftl_deinit,"ax",%progbits 21715 .align 1 21716 .global ftl_deinit 21717 .syntax unified 21718 .thumb 21719 .thumb_func 21720 .fpu softvfp 21721 .type ftl_deinit, %function 21722ftl_deinit: 21723 @ args = 0, pretend = 0, frame = 0 21724 @ frame_needed = 0, uses_anonymous_args = 0 21725 push {r3, lr} 21726 bl ftl_flash_de_init 21727 bl FtlDeInit 21728 pop {r3, lr} 21729 b ftl_flash_de_init 21730 .size ftl_deinit, .-ftl_deinit 21731 .section .text.rk_ftl_de_init,"ax",%progbits 21732 .align 1 21733 .global rk_ftl_de_init 21734 .syntax unified 21735 .thumb 21736 .thumb_func 21737 .fpu softvfp 21738 .type rk_ftl_de_init, %function 21739rk_ftl_de_init: 21740 @ args = 0, pretend = 0, frame = 0 21741 @ frame_needed = 0, uses_anonymous_args = 0 21742 push {r3, lr} 21743 bl FlashDeInit 21744 bl FtlDeInit 21745 pop {r3, lr} 21746 b FlashDeInit 21747 .size rk_ftl_de_init, .-rk_ftl_de_init 21748 .section .text.ftl_cache_flush,"ax",%progbits 21749 .align 1 21750 .global ftl_cache_flush 21751 .syntax unified 21752 .thumb 21753 .thumb_func 21754 .fpu softvfp 21755 .type ftl_cache_flush, %function 21756ftl_cache_flush: 21757 @ args = 0, pretend = 0, frame = 0 21758 @ frame_needed = 0, uses_anonymous_args = 0 21759 @ link register save eliminated. 21760 b FtlCacheWriteBack 21761 .size ftl_cache_flush, .-ftl_cache_flush 21762 .section .text.ftl_discard,"ax",%progbits 21763 .align 1 21764 .global ftl_discard 21765 .syntax unified 21766 .thumb 21767 .thumb_func 21768 .fpu softvfp 21769 .type ftl_discard, %function 21770ftl_discard: 21771 @ args = 0, pretend = 0, frame = 8 21772 @ frame_needed = 0, uses_anonymous_args = 0 21773 ldr r3, .L3184 21774 push {r0, r1, r4, r5, r6, r7, r8, lr} 21775 mov r6, r1 21776 mov r4, r2 21777 ldr r3, [r3] 21778 cmp r3, r1 21779 bls .L3177 21780 cmp r3, r2 21781 bcc .L3177 21782 adds r2, r1, r2 21783 cmp r3, r2 21784 bcc .L3177 21785 cmp r4, #31 21786 bhi .L3169 21787.L3170: 21788 movs r0, #0 21789.L3167: 21790 add sp, sp, #8 21791 @ sp needed 21792 pop {r4, r5, r6, r7, r8, pc} 21793.L3169: 21794 ldr r3, .L3184+4 21795 ldr r3, [r3] 21796 cmp r3, #0 21797 bne .L3170 21798 ldr r8, .L3184+16 21799 bl FtlCacheWriteBack 21800 mov r0, r6 21801 ldrh r5, [r8] 21802 mov r1, r5 21803 bl __aeabi_uidiv 21804 smulbb r3, r0, r5 21805 mov r7, r0 21806 subs r6, r6, r3 21807 uxth r6, r6 21808 cbz r6, .L3171 21809 subs r5, r5, r6 21810 adds r7, r7, #1 21811 cmp r5, r4 21812 it cs 21813 movcs r5, r4 21814 uxth r5, r5 21815 subs r4, r4, r5 21816.L3171: 21817 ldr r5, .L3184+8 21818 mov r3, #-1 21819 ldr r6, .L3184+12 21820 str r3, [sp, #4] 21821.L3172: 21822 ldrh r3, [r8] 21823 cmp r4, r3 21824 bcs .L3174 21825 ldr r3, .L3184+8 21826 ldr r2, [r3] 21827 cmp r2, #32 21828 bls .L3170 21829 movs r4, #0 21830 str r4, [r3] 21831 bl l2p_flush 21832 bl FtlVpcTblFlush 21833 b .L3170 21834.L3174: 21835 movs r2, #0 21836 mov r1, sp 21837 mov r0, r7 21838 bl log2phys 21839 ldr r3, [sp] 21840 adds r3, r3, #1 21841 beq .L3173 21842 ldr r3, [r5] 21843 movs r2, #1 21844 add r1, sp, #4 21845 mov r0, r7 21846 adds r3, r3, #1 21847 str r3, [r5] 21848 ldr r3, [r6] 21849 adds r3, r3, #1 21850 str r3, [r6] 21851 bl log2phys 21852 ldr r0, [sp] 21853 ubfx r0, r0, #10, #16 21854 bl P2V_block_in_plane 21855 bl decrement_vpc_count 21856.L3173: 21857 ldrh r3, [r8] 21858 adds r7, r7, #1 21859 subs r4, r4, r3 21860 b .L3172 21861.L3177: 21862 mov r0, #-1 21863 b .L3167 21864.L3185: 21865 .align 2 21866.L3184: 21867 .word .LANCHOR68 21868 .word .LANCHOR78 21869 .word .LANCHOR253 21870 .word .LANCHOR168 21871 .word .LANCHOR55 21872 .size ftl_discard, .-ftl_discard 21873 .section .text.FtlRead,"ax",%progbits 21874 .align 1 21875 .global FtlRead 21876 .syntax unified 21877 .thumb 21878 .thumb_func 21879 .fpu softvfp 21880 .type FtlRead, %function 21881FtlRead: 21882 @ args = 0, pretend = 0, frame = 64 21883 @ frame_needed = 0, uses_anonymous_args = 0 21884 push {r4, r5, r6, r7, r8, r10, fp, lr} 21885 sub sp, sp, #88 21886 str r3, [sp, #24] 21887 mov r4, r1 21888 ldr r3, .L3231 21889 str r2, [sp, #44] 21890 ldr r3, [r3] 21891 cmp r3, #1 21892 bne .L3213 21893 cmp r0, #16 21894 bne .L3188 21895 ldr r2, [sp, #24] 21896 add r0, r4, #256 21897 ldr r1, [sp, #44] 21898 bl FtlVendorPartRead 21899 mov r7, r0 21900.L3186: 21901 mov r0, r7 21902 add sp, sp, #88 21903 @ sp needed 21904 pop {r4, r5, r6, r7, r8, r10, fp, pc} 21905.L3188: 21906 ldr r3, .L3231+4 21907 ldr r3, [r3] 21908 cmp r1, r3 21909 bcs .L3213 21910 ldr r2, [sp, #44] 21911 cmp r2, r3 21912 bhi .L3213 21913 adds r2, r1, r2 21914 cmp r3, r2 21915 str r2, [sp, #48] 21916 bcc .L3213 21917 ldr r3, .L3231+8 21918 mov r0, r4 21919 ldrh r5, [r3] 21920 mov r1, r5 21921 bl __aeabi_uidiv 21922 ldr r3, [sp, #48] 21923 mov r1, r5 21924 str r0, [sp, #36] 21925 subs r0, r3, #1 21926 bl __aeabi_uidiv 21927 ldr r3, [sp, #36] 21928 ldr r2, .L3231+12 21929 ldr r1, [sp, #44] 21930 rsb r3, r3, #1 21931 str r0, [sp, #40] 21932 add r3, r3, r0 21933 str r3, [sp, #32] 21934 ldr r3, [r2] 21935 add r3, r3, r1 21936 ldr r1, [sp, #32] 21937 str r3, [r2] 21938 ldr r2, .L3231+16 21939 ldr r3, [r2] 21940 add r3, r3, r1 21941 mov r1, r0 21942 ldr r0, [sp, #36] 21943 str r3, [r2] 21944 bl FtlCacheMetchLpa 21945 cbz r0, .L3189 21946 bl FtlCacheWriteBack 21947.L3189: 21948 ldr r5, [sp, #36] 21949 movs r3, #0 21950 ldr r10, .L3231+60 21951 mov r6, r3 21952 mov r7, r3 21953 str r3, [sp, #28] 21954 str r3, [sp, #52] 21955.L3190: 21956 ldr r3, [sp, #32] 21957 cbnz r3, .L3209 21958 ldr r3, .L3231+20 21959 ldrh r3, [r3] 21960 cmp r3, #0 21961 beq .L3186 21962 movs r1, #1 21963 ldr r0, [sp, #32] 21964 bl ftl_do_gc 21965 b .L3186 21966.L3209: 21967 movs r2, #0 21968 add r1, sp, #84 21969 mov r0, r5 21970 bl log2phys 21971 ldr r3, [sp, #84] 21972 adds r2, r3, #1 21973 bne .L3191 21974 ldr fp, .L3231+8 21975 mov r8, #0 21976.L3192: 21977 ldrh r0, [fp] 21978 cmp r8, r0 21979 bcc .L3194 21980.L3195: 21981 ldr r3, [sp, #32] 21982 adds r5, r5, #1 21983 subs r3, r3, #1 21984 str r3, [sp, #32] 21985 beq .L3199 21986 ldr r3, .L3231+24 21987 ldrh r3, [r3] 21988 cmp r6, r3, lsl #2 21989 bne .L3190 21990.L3199: 21991 cmp r6, #0 21992 beq .L3190 21993 movs r2, #0 21994 mov r1, r6 21995 ldr r0, [r10] 21996 mov fp, #0 21997 bl FlashReadPages 21998 ldr r3, [sp, #28] 21999 lsls r3, r3, #9 22000 str r3, [sp, #68] 22001 ldr r3, [sp, #56] 22002 lsls r3, r3, #9 22003 str r3, [sp, #60] 22004 ldr r3, [sp, #52] 22005 lsls r3, r3, #9 22006 str r3, [sp, #64] 22007.L3208: 22008 mov r8, #36 22009 ldr r3, [r10] 22010 mul r8, r8, fp 22011 ldr r1, [sp, #36] 22012 add r3, r3, r8 22013 ldr r2, [r3, #16] 22014 cmp r1, r2 22015 bne .L3201 22016 ldr r1, [r3, #8] 22017 ldr r3, .L3231+28 22018 ldr r3, [r3] 22019 cmp r1, r3 22020 bne .L3202 22021 ldr r3, [sp, #60] 22022 ldr r2, [sp, #64] 22023 ldr r0, [sp, #24] 22024 add r1, r1, r3 22025.L3230: 22026 bl ftl_memcpy 22027.L3202: 22028 ldr r3, [r10] 22029 ldr r1, [r3, r8] 22030 add r2, r3, r8 22031 adds r3, r1, #1 22032 bne .L3203 22033 ldr r0, .L3231+32 22034 mov r7, r1 22035 ldr r3, [r0, #72] 22036 adds r3, r3, #1 22037 str r3, [r0, #72] 22038.L3203: 22039 ldr r3, [r2, #12] 22040 ldr lr, [r2, #16] 22041 ldr r0, [r3, #8] 22042 cmp lr, r0 22043 beq .L3204 22044 ldr ip, .L3231+32 22045 ldr r0, [ip, #72] 22046 adds r0, r0, #1 22047 str r0, [ip, #72] 22048 ldr r0, [r2, #8] 22049 ldr r1, [r0, #4] 22050 str r1, [sp, #16] 22051 mov r1, lr 22052 ldr r0, [r0] 22053 str r0, [sp, #12] 22054 ldr r0, [r3, #12] 22055 str r0, [sp, #8] 22056 ldr r0, [r3, #8] 22057 str r0, [sp, #4] 22058 ldr r0, [r3, #4] 22059 str r0, [sp] 22060 ldr r0, .L3231+36 22061 ldr r3, [r3] 22062 ldr r2, [r2, #4] 22063 bl printf 22064.L3204: 22065 ldr r3, [r10] 22066 add r2, r3, r8 22067 ldr r3, [r3, r8] 22068 cmp r3, #256 22069 bne .L3205 22070 ldr r0, [r2, #4] 22071 ubfx r0, r0, #10, #16 22072 bl P2V_block_in_plane 22073 mov r8, r0 22074 bl FtlGcRefreshBlock 22075 ldr r2, .L3231+40 22076 ldr r3, .L3231+44 22077.L3207: 22078 movs r1, #1 22079 str r2, [sp, #72] 22080 mov r0, r1 22081 str r3, [sp, #76] 22082 bl ftl_do_gc 22083 ldr r2, [sp, #72] 22084 ldr r1, [r2] 22085 cbnz r1, .L3206 22086 ldr r3, [sp, #76] 22087 ldrh r1, [r3] 22088 cmp r1, r8 22089 beq .L3207 22090.L3206: 22091 bl FtlSysFlush 22092.L3205: 22093 add fp, fp, #1 22094 cmp r6, fp 22095 bne .L3208 22096 movs r6, #0 22097 b .L3190 22098.L3194: 22099 mla r0, r0, r5, r8 22100 cmp r4, r0 22101 bhi .L3193 22102 ldr r3, [sp, #48] 22103 cmp r3, r0 22104 bls .L3193 22105 ldr r3, [sp, #24] 22106 subs r0, r0, r4 22107 mov r2, #512 22108 movs r1, #0 22109 add r0, r3, r0, lsl #9 22110 bl ftl_memset 22111.L3193: 22112 add r8, r8, #1 22113 b .L3192 22114.L3191: 22115 ldr r2, [r10] 22116 mov r8, #36 22117 mla r8, r8, r6, r2 22118 str r3, [r8, #4] 22119 ldr r3, [sp, #36] 22120 cmp r5, r3 22121 ldr r3, .L3231+8 22122 bne .L3196 22123 ldr r2, .L3231+28 22124 mov r0, r4 22125 ldrh fp, [r3] 22126 ldr r2, [r2] 22127 mov r1, fp 22128 str r2, [r8, #8] 22129 bl __aeabi_uidivmod 22130 ldr r2, [sp, #44] 22131 sub r3, fp, r1 22132 str r1, [sp, #56] 22133 cmp r3, r2 22134 it cs 22135 movcs r3, r2 22136 cmp r3, fp 22137 str r3, [sp, #52] 22138 bne .L3197 22139 ldr r3, [sp, #24] 22140.L3228: 22141 str r3, [r8, #8] 22142.L3197: 22143 ldr r3, .L3231+48 22144 ldr r2, .L3231+52 22145 str r5, [r8, #16] 22146 ldrh r3, [r3] 22147 ldr r2, [r2] 22148 muls r3, r6, r3 22149 adds r6, r6, #1 22150 bic r3, r3, #3 22151 add r3, r3, r2 22152 str r3, [r8, #12] 22153 b .L3195 22154.L3196: 22155 ldr r2, [sp, #40] 22156 cmp r5, r2 22157 bne .L3198 22158 ldr r2, .L3231+56 22159 ldr r1, [sp, #48] 22160 ldr r2, [r2] 22161 str r2, [r8, #8] 22162 ldrh r2, [r3] 22163 mul r3, r2, r5 22164 subs r1, r1, r3 22165 cmp r2, r1 22166 str r1, [sp, #28] 22167 bne .L3197 22168.L3229: 22169 ldr r2, [sp, #24] 22170 subs r3, r3, r4 22171 add r3, r2, r3, lsl #9 22172 b .L3228 22173.L3198: 22174 ldrh r3, [r3] 22175 muls r3, r5, r3 22176 b .L3229 22177.L3201: 22178 ldr r1, [sp, #40] 22179 cmp r1, r2 22180 bne .L3202 22181 ldr r1, [r3, #8] 22182 ldr r3, .L3231+56 22183 ldr r3, [r3] 22184 cmp r1, r3 22185 bne .L3202 22186 ldr r3, .L3231+8 22187 ldr r2, [sp, #68] 22188 ldrh r0, [r3] 22189 ldr r3, [sp, #40] 22190 muls r0, r3, r0 22191 ldr r3, [sp, #24] 22192 subs r0, r0, r4 22193 add r0, r3, r0, lsl #9 22194 b .L3230 22195.L3213: 22196 mov r7, #-1 22197 b .L3186 22198.L3232: 22199 .align 2 22200.L3231: 22201 .word .LANCHOR247 22202 .word .LANCHOR68 22203 .word .LANCHOR55 22204 .word .LANCHOR226 22205 .word .LANCHOR171 22206 .word .LANCHOR119 22207 .word .LANCHOR38 22208 .word .LANCHOR193 22209 .word .LANCHOR141 22210 .word .LC68 22211 .word .LANCHOR78 22212 .word .LANCHOR213 22213 .word .LANCHOR58 22214 .word .LANCHOR196 22215 .word .LANCHOR194 22216 .word .LANCHOR186 22217 .size FtlRead, .-FtlRead 22218 .section .text.ftl_vendor_read,"ax",%progbits 22219 .align 1 22220 .global ftl_vendor_read 22221 .syntax unified 22222 .thumb 22223 .thumb_func 22224 .fpu softvfp 22225 .type ftl_vendor_read, %function 22226ftl_vendor_read: 22227 @ args = 0, pretend = 0, frame = 0 22228 @ frame_needed = 0, uses_anonymous_args = 0 22229 @ link register save eliminated. 22230 mov r3, r2 22231 mov r2, r1 22232 mov r1, r0 22233 movs r0, #16 22234 b FtlRead 22235 .size ftl_vendor_read, .-ftl_vendor_read 22236 .section .text.ftl_sys_read,"ax",%progbits 22237 .align 1 22238 .global ftl_sys_read 22239 .syntax unified 22240 .thumb 22241 .thumb_func 22242 .fpu softvfp 22243 .type ftl_sys_read, %function 22244ftl_sys_read: 22245 @ args = 0, pretend = 0, frame = 0 22246 @ frame_needed = 0, uses_anonymous_args = 0 22247 @ link register save eliminated. 22248 mov r3, r2 22249 mov r2, r1 22250 add r1, r0, #256 22251 movs r0, #16 22252 b FtlRead 22253 .size ftl_sys_read, .-ftl_sys_read 22254 .section .text.StorageSysDataLoad,"ax",%progbits 22255 .align 1 22256 .global StorageSysDataLoad 22257 .syntax unified 22258 .thumb 22259 .thumb_func 22260 .fpu softvfp 22261 .type StorageSysDataLoad, %function 22262StorageSysDataLoad: 22263 @ args = 0, pretend = 0, frame = 0 22264 @ frame_needed = 0, uses_anonymous_args = 0 22265 push {r4, r5, r6, lr} 22266 mov r4, r1 22267 mov r5, r0 22268 mov r2, #512 22269 movs r1, #0 22270 mov r0, r4 22271 bl memset 22272 mov r3, r4 22273 add r1, r5, #256 22274 movs r2, #1 22275 movs r0, #16 22276 pop {r4, r5, r6, lr} 22277 b FtlRead 22278 .size StorageSysDataLoad, .-StorageSysDataLoad 22279 .section .text.FlashBootVendorRead,"ax",%progbits 22280 .align 1 22281 .global FlashBootVendorRead 22282 .syntax unified 22283 .thumb 22284 .thumb_func 22285 .fpu softvfp 22286 .type FlashBootVendorRead, %function 22287FlashBootVendorRead: 22288 @ args = 0, pretend = 0, frame = 0 22289 @ frame_needed = 0, uses_anonymous_args = 0 22290 @ link register save eliminated. 22291 mov r3, r2 22292 mov r1, r0 22293 movs r2, #1 22294 movs r0, #16 22295 b FtlRead 22296 .size FlashBootVendorRead, .-FlashBootVendorRead 22297 .section .text.ftl_read,"ax",%progbits 22298 .align 1 22299 .global ftl_read 22300 .syntax unified 22301 .thumb 22302 .thumb_func 22303 .fpu softvfp 22304 .type ftl_read, %function 22305ftl_read: 22306 @ args = 0, pretend = 0, frame = 0 22307 @ frame_needed = 0, uses_anonymous_args = 0 22308 @ link register save eliminated. 22309 b FtlRead 22310 .size ftl_read, .-ftl_read 22311 .section .text.FtlInit,"ax",%progbits 22312 .align 1 22313 .global FtlInit 22314 .syntax unified 22315 .thumb 22316 .thumb_func 22317 .fpu softvfp 22318 .type FtlInit, %function 22319FtlInit: 22320 @ args = 0, pretend = 0, frame = 0 22321 @ frame_needed = 0, uses_anonymous_args = 0 22322 push {r4, r5, r6, r7, r8, lr} 22323 mov r3, #-1 22324 ldr r5, .L3248 22325 ldr r2, .L3248+4 22326 str r3, [r5] 22327 movs r3, #0 22328 ldr r1, .L3248+8 22329 str r3, [r2] 22330 ldr r2, .L3248+12 22331 ldr r0, .L3248+16 22332 str r3, [r2] 22333 bl printf 22334 ldr r0, .L3248+20 22335 bl FtlConstantsInit 22336 bl FtlMemInit 22337 bl FtlVariablesInit 22338 ldr r3, .L3248+24 22339 ldrh r0, [r3] 22340 bl FtlFreeSysBlkQueueInit 22341 bl FtlLoadBbt 22342 cbz r0, .L3239 22343 ldr r1, .L3248+28 22344 ldr r0, .L3248+32 22345.L3247: 22346 bl printf 22347.L3240: 22348 movs r0, #0 22349 pop {r4, r5, r6, r7, r8, pc} 22350.L3239: 22351 bl FtlSysBlkInit 22352 mov r4, r0 22353 cbz r0, .L3241 22354 ldr r1, .L3248+28 22355 ldr r0, .L3248+36 22356 b .L3247 22357.L3241: 22358 movs r1, #1 22359 str r1, [r5] 22360 ldr r5, .L3248+40 22361 bl ftl_do_gc 22362 ldrh r6, [r5] 22363 cmp r6, #15 22364 bhi .L3240 22365 ldr r7, .L3248+44 22366 ldr r8, .L3248+48 22367.L3245: 22368 ldrh r3, [r7] 22369 movw r2, #65535 22370 cmp r3, r2 22371 bne .L3243 22372 ldrh r2, [r8] 22373 cmp r2, r3 22374 bne .L3243 22375 and r0, r4, #63 22376 bl List_get_gc_head_node 22377 uxth r0, r0 22378 bl FtlGcRefreshBlock 22379.L3243: 22380 movs r1, #1 22381 mov r0, r1 22382 bl ftl_do_gc 22383 movs r1, #1 22384 movs r0, #0 22385 bl ftl_do_gc 22386 ldrh r2, [r5] 22387 adds r3, r6, #2 22388 cmp r2, r3 22389 bhi .L3240 22390 adds r4, r4, #1 22391 cmp r4, #4096 22392 bne .L3245 22393 b .L3240 22394.L3249: 22395 .align 2 22396.L3248: 22397 .word .LANCHOR247 22398 .word .LANCHOR254 22399 .word .LC77 22400 .word .LANCHOR78 22401 .word .LC7 22402 .word .LANCHOR15 22403 .word .LANCHOR39 22404 .word .LANCHOR255 22405 .word .LC78 22406 .word .LC79 22407 .word .LANCHOR90 22408 .word .LANCHOR213 22409 .word .LANCHOR115 22410 .size FtlInit, .-FtlInit 22411 .section .text.rk_ftl_init,"ax",%progbits 22412 .align 1 22413 .global rk_ftl_init 22414 .syntax unified 22415 .thumb 22416 .thumb_func 22417 .fpu softvfp 22418 .type rk_ftl_init, %function 22419rk_ftl_init: 22420 @ args = 0, pretend = 0, frame = 0 22421 @ frame_needed = 0, uses_anonymous_args = 0 22422 push {r4, lr} 22423 bl FlashInit 22424 mov r4, r0 22425 cbnz r0, .L3251 22426 bl FtlInit 22427.L3251: 22428 bl idb_init 22429 mov r1, r4 22430 ldr r0, .L3252 22431 bl printf 22432 mov r0, r4 22433 pop {r4, pc} 22434.L3253: 22435 .align 2 22436.L3252: 22437 .word .LC80 22438 .size rk_ftl_init, .-rk_ftl_init 22439 .section .text.ftl_fix_nand_power_lost_error,"ax",%progbits 22440 .align 1 22441 .global ftl_fix_nand_power_lost_error 22442 .syntax unified 22443 .thumb 22444 .thumb_func 22445 .fpu softvfp 22446 .type ftl_fix_nand_power_lost_error, %function 22447ftl_fix_nand_power_lost_error: 22448 @ args = 0, pretend = 0, frame = 56 22449 @ frame_needed = 0, uses_anonymous_args = 0 22450 ldr r3, .L3268 22451 push {r4, r5, r6, r7, r8, r10, fp, lr} 22452 sub sp, sp, #56 22453 ldrb r3, [r3] @ zero_extendqisi2 22454 cmp r3, #0 22455 beq .L3254 22456 ldr r7, .L3268+4 22457 ldr r6, .L3268+8 22458 ldr r10, .L3268+32 22459 ldrh r5, [r7] 22460 ldr r3, [r6] 22461 ldr r4, .L3268+12 22462 mov r1, r5 22463 ldr r0, .L3268+16 22464 ldrh r2, [r3, r5, lsl #1] 22465 lsl r8, r5, #1 22466 bl printf 22467 ldrh r0, [r10] 22468 bl FtlGcRefreshOpenBlock 22469 ldrh r0, [r4] 22470 bl FtlGcRefreshOpenBlock 22471 mov r0, r10 22472 bl allocate_new_data_superblock 22473 mov r0, r4 22474 movw r4, #4097 22475 bl allocate_new_data_superblock 22476 str r7, [sp, #4] 22477.L3256: 22478 subs r4, r4, #1 22479 beq .L3260 22480 movs r1, #1 22481 mov r0, r1 22482 bl ftl_do_gc 22483 ldr r3, [r6] 22484 ldrh r3, [r3, r8] 22485 cmp r3, #0 22486 bne .L3256 22487.L3260: 22488 ldr r3, [r6] 22489 mov r1, r5 22490 ldr r0, .L3268+16 22491 ldrh r2, [r3, r5, lsl #1] 22492 bl printf 22493 ldr r3, [r6] 22494 ldrh r4, [r3, r5, lsl #1] 22495 cbnz r4, .L3258 22496 add r0, sp, #56 22497 ldr r7, .L3268+20 22498 strh r5, [r0, #-48]! @ movhi 22499 movw r10, #65535 22500 bl make_superblock 22501 ldr r3, .L3268+24 22502 add r0, sp, #22 22503 ldr r8, [r7] 22504 mov r2, r4 22505 mov fp, #36 22506 mov ip, r4 22507 ldrh lr, [r3] 22508.L3261: 22509 uxth r3, r2 22510 cmp lr, r3 22511 bhi .L3263 22512 ldr r3, [r6] 22513 mov r1, r5 22514 ldr r0, .L3268+28 22515 ldrh r2, [r3, r5, lsl #1] 22516 bl printf 22517 mov r2, r4 22518 movs r1, #0 22519 ldr r0, [r7] 22520 bl FlashEraseBlocks 22521 mov r2, r4 22522 movs r1, #1 22523 ldr r0, [r7] 22524 bl FlashEraseBlocks 22525.L3258: 22526 ldr r2, [sp, #4] 22527 movw r3, #65535 22528 strh r3, [r2] @ movhi 22529.L3254: 22530 add sp, sp, #56 22531 @ sp needed 22532 pop {r4, r5, r6, r7, r8, r10, fp, pc} 22533.L3263: 22534 ldrh r3, [r0, #2]! 22535 cmp r3, r10 22536 beq .L3262 22537 mla r1, fp, r4, r8 22538 adds r4, r4, #1 22539 lsls r3, r3, #10 22540 uxth r4, r4 22541 str r3, [r1, #4] 22542 str ip, [r1, #8] 22543 str ip, [r1, #12] 22544.L3262: 22545 adds r2, r2, #1 22546 b .L3261 22547.L3269: 22548 .align 2 22549.L3268: 22550 .word .LANCHOR16 22551 .word .LANCHOR241 22552 .word .LANCHOR85 22553 .word .LANCHOR94 22554 .word .LC81 22555 .word .LANCHOR79 22556 .word .LANCHOR38 22557 .word .LC82 22558 .word .LANCHOR93 22559 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error 22560 .section .text.FtlWrite,"ax",%progbits 22561 .align 1 22562 .global FtlWrite 22563 .syntax unified 22564 .thumb 22565 .thumb_func 22566 .fpu softvfp 22567 .type FtlWrite, %function 22568FtlWrite: 22569 @ args = 0, pretend = 0, frame = 72 22570 @ frame_needed = 0, uses_anonymous_args = 0 22571 push {r4, r5, r6, r7, r8, r10, fp, lr} 22572 mov r8, r3 22573 ldr r3, .L3342 22574 sub sp, sp, #72 22575 mov r5, r1 22576 mov r7, r2 22577 ldr r3, [r3] 22578 cmp r3, #0 22579 bne .L3313 22580 ldr r2, .L3342+4 22581 ldr r2, [r2] 22582 cmp r2, #1 22583 bne .L3314 22584 cmp r0, #16 22585 bne .L3272 22586 mov r2, r8 22587 mov r1, r7 22588 add r0, r5, #256 22589 bl FtlVendorPartWrite 22590.L3270: 22591 add sp, sp, #72 22592 @ sp needed 22593 pop {r4, r5, r6, r7, r8, r10, fp, pc} 22594.L3272: 22595 ldr r3, .L3342+8 22596 ldr r3, [r3] 22597 cmp r1, r3 22598 bcs .L3317 22599 cmp r7, r3 22600 bhi .L3317 22601 adds r6, r1, r7 22602 cmp r3, r6 22603 bcc .L3317 22604 ldr r3, .L3342+12 22605 mov r2, #2048 22606 mov r0, r5 22607 str r2, [r3] 22608 ldr r3, .L3342+16 22609 ldrh r4, [r3] 22610 mov r1, r4 22611 bl __aeabi_uidiv 22612 mov r1, r4 22613 mov fp, r0 22614 subs r0, r6, #1 22615 bl __aeabi_uidiv 22616 ldr r2, .L3342+20 22617 sub r10, r0, fp 22618 add r6, r10, #1 22619 cmp r7, r4, lsl #1 22620 str r0, [sp, #4] 22621 ldr r3, [r2] 22622 add r3, r3, r6 22623 str r3, [r2] 22624 ldr r2, .L3342+24 22625 ldr r3, [r2] 22626 add r3, r3, r7 22627 str r3, [r2] 22628 ite cs 22629 movcs r3, #1 22630 movcc r3, #0 22631 str r3, [sp, #12] 22632 ldr r3, .L3342+28 22633 ldr r2, [r3] 22634 cmp r2, #0 22635 beq .L3318 22636 movs r3, #36 22637 muls r3, r2, r3 22638 ldr r2, .L3342+32 22639 ldr r2, [r2] 22640 subs r3, r3, #36 22641 add r3, r3, r2 22642 ldr r2, [r3, #16] 22643 cmp fp, r2 22644 bne .L3319 22645 ldr r1, .L3342+36 22646 mov r0, r5 22647 ldr r6, .L3342+40 22648 str r3, [sp, #8] 22649 ldr r2, [r1] 22650 adds r2, r2, #1 22651 str r2, [r1] 22652 mov r1, r4 22653 ldr r2, [r6] 22654 adds r2, r2, #1 22655 str r2, [r6] 22656 bl __aeabi_uidivmod 22657 subs r4, r4, r1 22658 mov r0, r1 22659 cmp r4, r7 22660 mov r1, r8 22661 it cs 22662 movcs r4, r7 22663 lsls r3, r4, #9 22664 lsls r2, r4, #9 22665 str r3, [sp] 22666 ldr r3, [sp, #8] 22667 ldr r3, [r3, #8] 22668 add r0, r3, r0, lsl #9 22669 bl ftl_memcpy 22670 cmp r10, #0 22671 bne .L3276 22672 ldr r3, [r6] 22673 cmp r3, #2 22674 bgt .L3276 22675.L3313: 22676 movs r0, #0 22677 b .L3270 22678.L3276: 22679 ldr r3, [sp] 22680 subs r7, r7, r4 22681 add r5, r5, r4 22682 add fp, fp, #1 22683 mov r6, r10 22684 add r3, r3, r8 22685 str r3, [sp] 22686.L3275: 22687 ldr r3, .L3342+40 22688 movs r2, #0 22689 str r2, [r3] 22690.L3274: 22691 ldr r1, [sp, #4] 22692 mov r0, fp 22693 bl FtlCacheMetchLpa 22694 cbz r0, .L3277 22695 bl FtlCacheWriteBack 22696.L3277: 22697 ldr r3, .L3342+44 22698 mov r4, fp 22699 ldr r2, .L3342+48 22700 str r2, [r3] 22701.L3278: 22702 cmp r6, #0 22703 bne .L3308 22704 bl FtlCacheWriteBack 22705 ldr r3, [sp, #4] 22706 mov r0, r6 22707 ldr r4, .L3342+52 22708 sub r1, r3, fp 22709 bl ftl_do_gc 22710 ldrh r3, [r4] 22711 cmp r3, #5 22712 bls .L3309 22713 cmp r3, #31 22714 bhi .L3313 22715 ldr r3, .L3342+56 22716 ldrb r3, [r3] @ zero_extendqisi2 22717 cmp r3, #0 22718 bne .L3313 22719.L3309: 22720 ldr r5, .L3342+60 22721 ldr r7, .L3342+64 22722.L3312: 22723 ldrh r2, [r5] 22724 movw r3, #65535 22725 cmp r2, r3 22726 bne .L3311 22727 ldrh r3, [r7] 22728 cmp r3, r2 22729 bne .L3311 22730 ldr r2, .L3342+68 22731 ldrh r2, [r2] 22732 cmp r2, r3 22733 bne .L3311 22734 and r0, r6, #7 22735 bl List_get_gc_head_node 22736 uxth r0, r0 22737 bl FtlGcRefreshBlock 22738.L3311: 22739 ldr r2, .L3342+72 22740 movs r3, #128 22741 movs r1, #1 22742 mov r0, r1 22743 strh r3, [r2] @ movhi 22744 ldr r2, .L3342+76 22745 strh r3, [r2] @ movhi 22746 bl ftl_do_gc 22747 movs r1, #1 22748 movs r0, #0 22749 bl ftl_do_gc 22750 ldr r3, .L3342 22751 ldr r3, [r3] 22752 cmp r3, #0 22753 bne .L3313 22754 ldrh r3, [r4] 22755 cmp r3, #2 22756 bhi .L3313 22757 adds r6, r6, #1 22758 cmp r6, #256 22759 bne .L3312 22760 b .L3313 22761.L3319: 22762 str r8, [sp] 22763 b .L3275 22764.L3318: 22765 str r8, [sp] 22766 b .L3274 22767.L3308: 22768 ldr r3, .L3342+48 22769 ldr r8, .L3342+100 22770 ldrb r2, [r3, #6] @ zero_extendqisi2 22771 ldrh r3, [r8] 22772 cmp r2, r3 22773 bcc .L3279 22774 ldr r1, .L3342+80 22775 mov r2, #1472 22776 ldr r0, .L3342+84 22777 bl printf 22778 ldr r1, .L3342+88 22779 ldr r0, .L3342+92 22780 bl printf 22781.L3279: 22782 ldr r3, .L3342+48 22783 ldrh r3, [r3, #4] 22784 cbnz r3, .L3280 22785 ldr r0, .L3342+48 22786 bl allocate_new_data_superblock 22787 ldr r3, .L3342+44 22788 ldr r2, .L3342+48 22789 str r2, [r3] 22790.L3280: 22791 ldr r3, .L3342+96 22792 ldr r2, .L3342+28 22793 ldr r3, [r3] 22794 ldr r2, [r2] 22795 subs r3, r3, r2 22796 ldr r2, .L3342+48 22797 ldrh r2, [r2, #4] 22798 cmp r3, r2 22799 it cs 22800 movcs r3, r2 22801 cmp r3, r6 22802 it cs 22803 movcs r3, r6 22804 str r3, [sp, #28] 22805 ldr r3, .L3342+48 22806 ldrb r2, [r3, #6] @ zero_extendqisi2 22807 ldrh r3, [r8] 22808 cmp r2, r3 22809 bcc .L3281 22810 ldr r1, .L3342+80 22811 movw r2, #1515 22812 ldr r0, .L3342+84 22813 bl printf 22814 ldr r1, .L3342+88 22815 ldr r0, .L3342+92 22816 bl printf 22817.L3281: 22818 movs r3, #0 22819.L3340: 22820 str r3, [sp, #8] 22821 ldr r3, [sp, #8] 22822 ldr r2, [sp, #28] 22823 cmp r3, r2 22824 bne .L3303 22825.L3283: 22826 ldr r3, [sp, #8] 22827 cmp r6, r3 22828 bcs .L3304 22829 ldr r1, .L3342+80 22830 movw r2, #1609 22831 ldr r0, .L3342+84 22832 bl printf 22833 ldr r1, .L3342+88 22834 ldr r0, .L3342+92 22835 bl printf 22836.L3304: 22837 ldr r3, [sp, #8] 22838 ldr r8, .L3342+28 22839 subs r6, r6, r3 22840 ldr r3, .L3342+96 22841 ldr r2, [r8] 22842 ldr r3, [r3] 22843 cmp r2, r3 22844 bcs .L3305 22845 ldr r3, [sp, #12] 22846 cmp r3, #0 22847 bne .L3305 22848 ldr r3, .L3342+48 22849 ldrh r3, [r3, #4] 22850 cmp r3, #0 22851 beq .L3305 22852.L3307: 22853 movs r3, #0 22854 str r3, [sp, #12] 22855 b .L3278 22856.L3343: 22857 .align 2 22858.L3342: 22859 .word .LANCHOR78 22860 .word .LANCHOR247 22861 .word .LANCHOR68 22862 .word .LANCHOR256 22863 .word .LANCHOR55 22864 .word .LANCHOR167 22865 .word .LANCHOR225 22866 .word .LANCHOR72 22867 .word .LANCHOR73 22868 .word .LANCHOR169 22869 .word .LANCHOR257 22870 .word .LANCHOR252 22871 .word .LANCHOR93 22872 .word .LANCHOR90 22873 .word .LANCHOR2 22874 .word .LANCHOR213 22875 .word .LANCHOR115 22876 .word .LANCHOR116 22877 .word .LANCHOR182 22878 .word .LANCHOR181 22879 .word .LANCHOR258 22880 .word .LC5 22881 .word .LC6 22882 .word .LC7 22883 .word .LANCHOR185 22884 .word .LANCHOR38 22885.L3303: 22886 ldr r3, .L3344 22887 ldrh r3, [r3, #4] 22888 cmp r3, #0 22889 beq .L3283 22890 ldr r3, [sp, #12] 22891 cbz r3, .L3284 22892 ldr r3, [sp, #4] 22893 cmp r3, r4 22894 bne .L3284 22895 ldr r3, [sp, #8] 22896 cbz r3, .L3284 22897 ldr r3, .L3344+4 22898 ldr r1, [sp, #4] 22899 ldrh r2, [r3] 22900 adds r3, r5, r7 22901 mls r3, r2, r1, r3 22902 cmp r2, r3 22903 bne .L3283 22904.L3284: 22905 movs r2, #0 22906 add r1, sp, #32 22907 mov r0, r4 22908 ldr r8, .L3344+28 22909 bl log2phys 22910 ldr r0, .L3344 22911 bl get_new_active_ppa 22912 ldr r3, .L3344+8 22913 movs r2, #36 22914 ldr r1, [r3] 22915 ldr r3, [r8] 22916 mla ip, r2, r1, r3 22917 ldr r3, .L3344+12 22918 ldrh r2, [r3] 22919 str r0, [ip, #4] 22920 str r4, [ip, #16] 22921 mul r3, r2, r1 22922 bic r3, r3, #3 22923 str r3, [sp, #20] 22924 ldr r3, .L3344+16 22925 ldr r0, [sp, #20] 22926 ldr r3, [r3] 22927 add r10, r3, r0 22928 str r3, [sp, #24] 22929 ldr r3, .L3344+20 22930 str r10, [ip, #12] 22931 ldrh r0, [r3] 22932 str r3, [sp, #16] 22933 muls r1, r0, r1 22934 ldr r0, .L3344+24 22935 ldr r0, [r0] 22936 bic r1, r1, #3 22937 add r1, r1, r0 22938 mov r0, r10 22939 str r1, [ip, #8] 22940 movs r1, #0 22941 bl ftl_memset 22942 cmp fp, r4 22943 ldr r2, .L3344+4 22944 beq .L3285 22945 ldr r3, [sp, #4] 22946 cmp r3, r4 22947 ldr r3, [sp, #16] 22948 bne .L3337 22949 ldrh r3, [sp, #4] 22950 add r8, r5, r7 22951 ldrh r2, [r2] 22952 smulbb r2, r2, r3 22953 movs r3, #0 22954 str r3, [sp, #16] 22955 sub r8, r8, r2 22956 uxth r8, r8 22957 b .L3288 22958.L3285: 22959 ldrh r8, [r2] 22960 mov r0, r5 22961 mov r1, r8 22962 bl __aeabi_uidivmod 22963 sub r8, r8, r1 22964 str r1, [sp, #16] 22965 cmp r8, r7 22966 it cs 22967 movcs r8, r7 22968.L3288: 22969 ldr r3, .L3344+4 22970 ldr r0, .L3344+28 22971 ldrh r3, [r3] 22972 cmp r3, r8 22973 ldr r3, .L3344+8 22974 bne .L3289 22975 cmp fp, r4 22976 ldr r3, [r3] 22977 ittet ne 22978 mulne r1, r8, r4 22979 ldrne r2, [sp] 22980 ldreq r1, [sp] 22981 subne r1, r1, r5 22982 it ne 22983 addne r1, r2, r1, lsl #9 22984 ldr r2, [sp, #12] 22985 cmp r2, #0 22986 beq .L3291 22987 ldr r2, [r0] 22988 movs r0, #36 22989 mla r3, r0, r3, r2 22990 str r1, [r3, #8] 22991.L3292: 22992 ldr r3, .L3344 22993 ldrb r2, [r3, #6] @ zero_extendqisi2 22994 ldr r3, .L3344+32 22995 ldrh r3, [r3] 22996 cmp r2, r3 22997 bcc .L3300 22998 ldr r1, .L3344+36 22999 movw r2, #1599 23000 ldr r0, .L3344+40 23001 bl printf 23002 ldr r1, .L3344+44 23003 ldr r0, .L3344+48 23004 bl printf 23005.L3300: 23006 ldr r2, [sp, #24] 23007 movw r3, #61589 23008 ldr r1, [sp, #20] 23009 strh r3, [r2, r1] @ movhi 23010 ldr r2, .L3344+52 23011 str r4, [r10, #8] 23012 adds r4, r4, #1 23013 ldr r3, [r2] 23014 str r3, [r10, #4] 23015 adds r3, r3, #1 23016 adds r1, r3, #1 23017 it eq 23018 moveq r3, #0 23019 str r3, [r2] 23020 ldr r3, [sp, #32] 23021 ldr r2, .L3344+8 23022 str r3, [r10, #12] 23023 ldr r3, .L3344 23024 ldrh r3, [r3] 23025 strh r3, [r10, #2] @ movhi 23026 ldr r3, [r2] 23027 adds r3, r3, #1 23028 str r3, [r2] 23029 ldr r3, [sp, #8] 23030 adds r3, r3, #1 23031 b .L3340 23032.L3291: 23033 ldr r2, .L3344+28 23034 movs r0, #36 23035 ldr r2, [r2] 23036 mla r3, r0, r3, r2 23037 ldr r2, .L3344+20 23038 ldrh r2, [r2] 23039.L3341: 23040 ldr r0, [r3, #8] 23041 b .L3338 23042.L3289: 23043 ldr r2, [sp, #32] 23044 adds r1, r2, #1 23045 beq .L3293 23046 str r2, [sp, #40] 23047 movs r1, #36 23048 ldr r2, [r0] 23049 add r0, sp, #36 23050 ldr r3, [r3] 23051 str r4, [sp, #52] 23052 mla r3, r1, r3, r2 23053 movs r1, #1 23054 ldr r2, [r3, #8] 23055 ldr r3, [r3, #12] 23056 str r2, [sp, #44] 23057 movs r2, #0 23058 str r3, [sp, #48] 23059 bl FlashReadPages 23060 ldr r3, [sp, #36] 23061 adds r3, r3, #1 23062 bne .L3294 23063 ldr r2, .L3344+56 23064 ldr r3, [r2, #72] 23065 adds r3, r3, #1 23066 str r3, [r2, #72] 23067.L3297: 23068 cmp fp, r4 23069 ldr r0, .L3344+28 23070 lsl r2, r8, #9 23071 bne .L3298 23072 ldr r3, .L3344+8 23073 ldr r1, [r0] 23074 movs r0, #36 23075 ldr r3, [r3] 23076 mla r3, r0, r3, r1 23077 ldr r1, [sp] 23078 ldr r0, [r3, #8] 23079 ldr r3, [sp, #16] 23080 add r0, r0, r3, lsl #9 23081.L3338: 23082 bl ftl_memcpy 23083 b .L3292 23084.L3294: 23085 ldr r1, [r10, #8] 23086 cmp r4, r1 23087 beq .L3296 23088 ldr r2, .L3344+56 23089 ldr r0, .L3344+60 23090 ldr r3, [r2, #72] 23091 adds r3, r3, #1 23092 str r3, [r2, #72] 23093 mov r2, r4 23094 bl printf 23095.L3296: 23096 ldr r3, [r10, #8] 23097 cmp r4, r3 23098 beq .L3297 23099 movw r2, #1581 23100 ldr r1, .L3344+36 23101 ldr r0, .L3344+40 23102 bl printf 23103 ldr r1, .L3344+44 23104 ldr r0, .L3344+48 23105 bl printf 23106 b .L3297 23107.L3293: 23108 ldr r2, [r0] 23109 movs r1, #36 23110 ldr r3, [r3] 23111 mla r3, r1, r3, r2 23112 ldr r2, .L3344+20 23113 movs r1, #0 23114 ldrh r2, [r2] 23115 ldr r0, [r3, #8] 23116 bl ftl_memset 23117 b .L3297 23118.L3298: 23119 ldr r3, .L3344+4 23120 mov ip, #36 23121 ldr r0, [r0] 23122 ldrh r1, [r3] 23123 ldr r3, .L3344+8 23124 ldr r3, [r3] 23125 muls r1, r4, r1 23126 mla r3, ip, r3, r0 23127 ldr r0, [sp] 23128 subs r1, r1, r5 23129 add r1, r0, r1, lsl #9 23130 b .L3341 23131.L3337: 23132 ldr r1, [sp, #12] 23133 cbz r1, .L3299 23134 ldr r3, .L3344+8 23135 movs r0, #36 23136 ldr r1, [r8] 23137 ldr r3, [r3] 23138 mla r8, r0, r3, r1 23139 ldrh r3, [r2] 23140 ldr r2, [sp] 23141 muls r3, r4, r3 23142 subs r3, r3, r5 23143 add r3, r2, r3, lsl #9 23144 str r3, [r8, #8] 23145 b .L3292 23146.L3299: 23147 ldrh r1, [r2] 23148 mov ip, #36 23149 ldr r2, .L3344+8 23150 ldr r0, [r8] 23151 ldr r2, [r2] 23152 muls r1, r4, r1 23153 mla r8, ip, r2, r0 23154 ldrh r2, [r3] 23155 ldr r3, [sp] 23156 subs r1, r1, r5 23157 ldr r0, [r8, #8] 23158 add r1, r3, r1, lsl #9 23159 b .L3338 23160.L3305: 23161 bl FtlCacheWriteBack 23162 cmp r6, #1 23163 mov r3, #0 23164 str r3, [r8] 23165 bhi .L3278 23166 b .L3307 23167.L3317: 23168 mov r0, #-1 23169 b .L3270 23170.L3314: 23171 mov r0, r3 23172 b .L3270 23173.L3345: 23174 .align 2 23175.L3344: 23176 .word .LANCHOR93 23177 .word .LANCHOR55 23178 .word .LANCHOR72 23179 .word .LANCHOR58 23180 .word .LANCHOR197 23181 .word .LANCHOR57 23182 .word .LANCHOR192 23183 .word .LANCHOR73 23184 .word .LANCHOR38 23185 .word .LANCHOR258 23186 .word .LC5 23187 .word .LC6 23188 .word .LC7 23189 .word .LANCHOR165 23190 .word .LANCHOR141 23191 .word .LC83 23192 .size FtlWrite, .-FtlWrite 23193 .section .text.ftl_vendor_write,"ax",%progbits 23194 .align 1 23195 .global ftl_vendor_write 23196 .syntax unified 23197 .thumb 23198 .thumb_func 23199 .fpu softvfp 23200 .type ftl_vendor_write, %function 23201ftl_vendor_write: 23202 @ args = 0, pretend = 0, frame = 0 23203 @ frame_needed = 0, uses_anonymous_args = 0 23204 @ link register save eliminated. 23205 mov r3, r2 23206 mov r2, r1 23207 mov r1, r0 23208 movs r0, #16 23209 b FtlWrite 23210 .size ftl_vendor_write, .-ftl_vendor_write 23211 .section .text.ftl_sys_write,"ax",%progbits 23212 .align 1 23213 .global ftl_sys_write 23214 .syntax unified 23215 .thumb 23216 .thumb_func 23217 .fpu softvfp 23218 .type ftl_sys_write, %function 23219ftl_sys_write: 23220 @ args = 0, pretend = 0, frame = 0 23221 @ frame_needed = 0, uses_anonymous_args = 0 23222 @ link register save eliminated. 23223 mov r3, r2 23224 mov r2, r1 23225 add r1, r0, #256 23226 movs r0, #16 23227 b FtlWrite 23228 .size ftl_sys_write, .-ftl_sys_write 23229 .section .text.StorageSysDataStore,"ax",%progbits 23230 .align 1 23231 .global StorageSysDataStore 23232 .syntax unified 23233 .thumb 23234 .thumb_func 23235 .fpu softvfp 23236 .type StorageSysDataStore, %function 23237StorageSysDataStore: 23238 @ args = 0, pretend = 0, frame = 0 23239 @ frame_needed = 0, uses_anonymous_args = 0 23240 @ link register save eliminated. 23241 mov r3, r1 23242 movs r2, #1 23243 add r1, r0, #256 23244 movs r0, #16 23245 b FtlWrite 23246 .size StorageSysDataStore, .-StorageSysDataStore 23247 .section .text.FlashBootVendorWrite,"ax",%progbits 23248 .align 1 23249 .global FlashBootVendorWrite 23250 .syntax unified 23251 .thumb 23252 .thumb_func 23253 .fpu softvfp 23254 .type FlashBootVendorWrite, %function 23255FlashBootVendorWrite: 23256 @ args = 0, pretend = 0, frame = 0 23257 @ frame_needed = 0, uses_anonymous_args = 0 23258 @ link register save eliminated. 23259 mov r3, r2 23260 mov r1, r0 23261 movs r2, #1 23262 movs r0, #16 23263 b FtlWrite 23264 .size FlashBootVendorWrite, .-FlashBootVendorWrite 23265 .section .text.ftl_write,"ax",%progbits 23266 .align 1 23267 .global ftl_write 23268 .syntax unified 23269 .thumb 23270 .thumb_func 23271 .fpu softvfp 23272 .type ftl_write, %function 23273ftl_write: 23274 @ args = 0, pretend = 0, frame = 0 23275 @ frame_needed = 0, uses_anonymous_args = 0 23276 push {r4, r5, r6, r7, r8, lr} 23277 mov r7, r1 23278 mov r4, r2 23279 mov r5, r3 23280 mov r6, r0 23281 cbnz r0, .L3351 23282 mov r3, r2 23283 mov r2, r5 23284 bl idb_write_data 23285.L3351: 23286 mov r3, r5 23287 mov r2, r4 23288 mov r1, r7 23289 mov r0, r6 23290 pop {r4, r5, r6, r7, r8, lr} 23291 b FtlWrite 23292 .size ftl_write, .-ftl_write 23293 .section .text.FtlDumpSysBlock,"ax",%progbits 23294 .align 1 23295 .global FtlDumpSysBlock 23296 .syntax unified 23297 .thumb 23298 .thumb_func 23299 .fpu softvfp 23300 .type FtlDumpSysBlock, %function 23301FtlDumpSysBlock: 23302 @ args = 0, pretend = 0, frame = 0 23303 @ frame_needed = 0, uses_anonymous_args = 0 23304 push {r4, r5, r6, r7, r8, r10, fp, lr} 23305 lsl r10, r0, #10 23306 ldr r5, .L3359 23307 sub sp, sp, #24 23308 mov r7, r0 23309 movs r6, #0 23310 ldr r4, .L3359+4 23311 ldr r3, [r5] 23312 ldr r8, .L3359+20 23313 mov fp, r4 23314 str r3, [r4, #8] 23315 ldr r3, .L3359+8 23316 ldr r3, [r3] 23317 str r3, [r4, #12] 23318.L3353: 23319 ldrh r2, [r8] 23320 sxth r3, r6 23321 cmp r3, r2 23322 blt .L3355 23323 add sp, sp, #24 23324 @ sp needed 23325 pop {r4, r5, r6, r7, r8, r10, fp, pc} 23326.L3355: 23327 movs r2, #1 23328 orr r3, r3, r10 23329 mov r1, r2 23330 mov r0, fp 23331 str r3, [r4, #4] 23332 bl FlashReadPages 23333 ldr r2, [r4, #8] 23334 mov r1, r7 23335 ldr r3, [r4, #12] 23336 ldr r0, .L3359+12 23337 ldr r2, [r2] 23338 str r2, [sp, #16] 23339 ldr r2, [r3, #12] 23340 str r2, [sp, #12] 23341 ldr r2, [r3, #8] 23342 str r2, [sp, #8] 23343 ldr r2, [r3, #4] 23344 str r2, [sp, #4] 23345 ldr r3, [r3] 23346 str r3, [sp] 23347 ldm r4, {r2, r3} 23348 bl printf 23349 ldr r3, [r4, #12] 23350 ldr r3, [r3] 23351 adds r3, r3, #1 23352 beq .L3354 23353 mov r3, #768 23354 movs r2, #4 23355 ldr r1, [r5] 23356 ldr r0, .L3359+16 23357 bl rknand_print_hex 23358.L3354: 23359 adds r6, r6, #1 23360 b .L3353 23361.L3360: 23362 .align 2 23363.L3359: 23364 .word .LANCHOR189 23365 .word .LANCHOR211 23366 .word .LANCHOR195 23367 .word .LC84 23368 .word .LC85 23369 .word .LANCHOR53 23370 .size FtlDumpSysBlock, .-FtlDumpSysBlock 23371 .section .text.dump_map_info,"ax",%progbits 23372 .align 1 23373 .global dump_map_info 23374 .syntax unified 23375 .thumb 23376 .thumb_func 23377 .fpu softvfp 23378 .type dump_map_info, %function 23379dump_map_info: 23380 @ args = 0, pretend = 0, frame = 16 23381 @ frame_needed = 0, uses_anonymous_args = 0 23382 ldr r3, .L3375 23383 push {r4, r5, r6, r7, r8, r10, fp, lr} 23384 sub sp, sp, #40 23385 ldr r8, .L3375+72 23386 ldrh r5, [r3] 23387.L3362: 23388 ldr r3, .L3375+4 23389 ldrh r3, [r3] 23390 cmp r3, r5 23391 bhi .L3369 23392 ldr r4, .L3375+8 23393 movs r7, #0 23394.L3370: 23395 ldr r3, .L3375+12 23396 sxth r5, r7 23397 ldrh r3, [r3] 23398 cmp r5, r3 23399 bge .L3373 23400 lsls r5, r5, #1 23401 movs r6, #0 23402 ldr r8, .L3375+76 23403 b .L3374 23404.L3364: 23405 str r3, [sp, #36] 23406 mov r1, r5 23407 ldr r3, .L3375+16 23408 str r2, [sp, #32] 23409 ldrb r0, [r3, r6] @ zero_extendqisi2 23410 bl V2P_block 23411 str r0, [sp, #28] 23412 bl FtlBbmIsBadBlock 23413 ldr r2, [sp, #32] 23414 ldr r3, [sp, #36] 23415 cbnz r0, .L3363 23416 ldr r1, [sp, #28] 23417 mla r0, fp, r4, r7 23418 lsls r1, r1, #10 23419 str r3, [r0, #8] 23420 str r1, [r0, #4] 23421 mul r1, r10, r4 23422 adds r4, r4, #1 23423 uxth r4, r4 23424 bic ip, r1, #3 23425 ldr r1, [sp, #24] 23426 add r1, r1, ip 23427 str r1, [r0, #12] 23428.L3363: 23429 adds r6, r6, #1 23430.L3371: 23431 uxth r1, r6 23432 cmp r2, r1 23433 bhi .L3364 23434 cbnz r4, .L3365 23435.L3368: 23436 adds r5, r5, #1 23437 uxth r5, r5 23438 b .L3362 23439.L3365: 23440 ldr r10, .L3375+80 23441 mov r0, r7 23442 movs r6, #0 23443 movs r7, #36 23444 movs r2, #1 23445 mov r1, r4 23446 bl FlashReadPages 23447.L3366: 23448 uxth r3, r6 23449 cmp r4, r3 23450 bls .L3368 23451 ldr r3, [r8] 23452 mla r3, r7, r6, r3 23453 adds r6, r6, #1 23454 ldr r1, [r3, #12] 23455 ldr r2, [r3, #4] 23456 ldr r3, [r3, #8] 23457 ldr r0, [r3, #4] 23458 str r0, [sp, #16] 23459 mov r0, r10 23460 ldr r3, [r3] 23461 str r3, [sp, #12] 23462 ldr r3, [r1, #12] 23463 str r3, [sp, #8] 23464 ldr r3, [r1, #8] 23465 str r3, [sp, #4] 23466 ldr r3, [r1, #4] 23467 str r3, [sp] 23468 ldr r3, [r1] 23469 ubfx r1, r2, #10, #16 23470 bl printf 23471 b .L3366 23472.L3369: 23473 ldr r1, .L3375+20 23474 movs r6, #0 23475 ldr r3, .L3375+24 23476 mov r4, r6 23477 ldr r7, [r8] 23478 mov fp, #36 23479 ldr r1, [r1] 23480 ldrh r2, [r3] 23481 ldr r3, .L3375+28 23482 str r1, [sp, #24] 23483 ldr r1, .L3375+32 23484 ldr r3, [r3] 23485 ldrh r10, [r1] 23486 b .L3371 23487.L3372: 23488 ldr r10, .L3375+44 23489 mov r0, r4 23490 ldr r2, [r10] 23491 ldrh r2, [r2, r5] 23492 orr r3, r3, r2, lsl #10 23493 movs r2, #1 23494 mov r1, r2 23495 str r3, [r4, #4] 23496 bl FlashReadPages 23497 ldr r2, [r4, #8] 23498 ldr r1, [r10] 23499 ldr r3, [r4, #12] 23500 ldr r0, [r2, #4] 23501 ldrh r1, [r1, r5] 23502 str r0, [sp, #20] 23503 ldr r2, [r2] 23504 ldr r0, .L3375+36 23505 str r2, [sp, #16] 23506 ldr r2, [r3, #12] 23507 str r2, [sp, #12] 23508 ldr r2, [r3, #8] 23509 str r2, [sp, #8] 23510 ldr r2, [r3, #4] 23511 str r2, [sp, #4] 23512 ldr r3, [r3] 23513 str r3, [sp] 23514 ldm r4, {r2, r3} 23515 bl printf 23516.L3374: 23517 ldrh r2, [r8] 23518 sxth r3, r6 23519 adds r6, r6, #1 23520 cmp r3, r2 23521 blt .L3372 23522 adds r7, r7, #1 23523 b .L3370 23524.L3373: 23525 ldr r3, .L3375+40 23526 movs r2, #2 23527 ldr r1, .L3375+44 23528 ldr r0, .L3375+48 23529 ldr r3, [r3] 23530 ldr r1, [r1] 23531 bl rknand_print_hex 23532 ldr r4, .L3375+52 23533 movs r2, #4 23534 ldr r1, .L3375+56 23535 ldr r0, .L3375+60 23536 ldrh r3, [r4] 23537 ldr r1, [r1] 23538 bl rknand_print_hex 23539 ldr r1, .L3375+64 23540 movs r2, #4 23541 ldrh r3, [r4] 23542 ldr r0, .L3375+68 23543 ldr r1, [r1] 23544 add sp, sp, #40 23545 @ sp needed 23546 pop {r4, r5, r6, r7, r8, r10, fp, lr} 23547 b rknand_print_hex 23548.L3376: 23549 .align 2 23550.L3375: 23551 .word .LANCHOR40 23552 .word .LANCHOR41 23553 .word .LANCHOR211 23554 .word .LANCHOR131 23555 .word .LANCHOR47 23556 .word .LANCHOR108 23557 .word .LANCHOR38 23558 .word .LANCHOR107 23559 .word .LANCHOR58 23560 .word .LC51 23561 .word .LANCHOR64 23562 .word .LANCHOR132 23563 .word .LC87 23564 .word .LANCHOR66 23565 .word .LANCHOR134 23566 .word .LC88 23567 .word .LANCHOR203 23568 .word .LC89 23569 .word .LANCHOR186 23570 .word .LANCHOR53 23571 .word .LC86 23572 .size dump_map_info, .-dump_map_info 23573 .global FtlMallocOffset 23574 .global FtlMallocBuffer 23575 .global LastWritenPbaAddr 23576 .global gc_ink_free_return_value 23577 .global check_valid_page_count_table 23578 .global FtlUpdateVaildLpnCount 23579 .global g_ect_tbl_power_up_flush 23580 .global last_cache_match_count 23581 .global power_up_flag 23582 .global g_LowFormat 23583 .global gFtlInitStatus 23584 .global DeviceCapacity 23585 .global ToshibaRefValue 23586 .global Toshiba15RefValue 23587 .global ToshibaA19RefValue 23588 .global SamsungRefValue 23589 .global refValueDefault 23590 .global random_seed 23591 .global gSlcNandParaInfo 23592 .global gNandParaInfo 23593 .global g_page_map_check_enable 23594 .global g_power_lost_ecc_error_blk 23595 .global g_power_lost_recovery_flag 23596 .global c_mlc_erase_count_value 23597 .global g_recovery_ppa_tbl 23598 .global g_recovery_page_min_ver 23599 .global g_recovery_page_num 23600 .global g_cur_erase_blk 23601 .global g_gc_skip_write_count 23602 .global g_gc_head_data_block_count 23603 .global g_gc_head_data_block 23604 .global g_ftl_nand_free_count 23605 .global g_in_swl_replace 23606 .global g_in_gc_progress 23607 .global g_all_blk_used_slc_mode 23608 .global g_max_erase_count 23609 .global g_totle_sys_slc_erase_count 23610 .global g_totle_slc_erase_count 23611 .global g_min_erase_count 23612 .global g_totle_avg_erase_count 23613 .global g_totle_mlc_erase_count 23614 .global g_totle_l2p_write_count 23615 .global g_totle_cache_write_count 23616 .global g_tmp_data_superblock_id 23617 .global g_totle_read_page_count 23618 .global g_totle_discard_page_count 23619 .global g_totle_read_sector 23620 .global g_totle_write_sector 23621 .global g_totle_write_page_count 23622 .global g_totle_gc_page_count 23623 .global g_gc_blk_index 23624 .global g_gc_merge_free_blk_threshold 23625 .global g_gc_free_blk_threshold 23626 .global g_gc_refresh_block_temp_tbl 23627 .global g_free_slc_blk_num 23628 .global g_gc_refresh_block_temp_num 23629 .global g_gc_bad_block_temp_tbl 23630 .global g_gc_bad_block_gc_index 23631 .global g_gc_bad_block_temp_num 23632 .global g_gc_next_blk_3 23633 .global g_gc_next_blk_2 23634 .global g_gc_next_blk_1 23635 .global g_gc_next_blk 23636 .global g_gc_cur_blk_max_valid_pages 23637 .global g_gc_cur_blk_valid_pages 23638 .global g_gc_page_offset 23639 .global g_gc_blk_num 23640 .global p_gc_blk_tbl 23641 .global p_gc_page_info 23642 .global g_sys_ext_data 23643 .global g_sys_save_data 23644 .global gp_last_act_superblock 23645 .global g_gc_superblock 23646 .global g_gc_temp_superblock 23647 .global g_buffer_superblock 23648 .global g_active_superblock 23649 .global g_num_data_superblocks 23650 .global g_num_free_superblocks 23651 .global p_data_block_list_tail 23652 .global p_data_block_list_head 23653 .global p_free_data_block_list_head 23654 .global p_data_block_list_table 23655 .global g_l2p_last_update_region_id 23656 .global p_l2p_map_buf 23657 .global p_l2p_ram_map 23658 .global g_totle_vendor_block 23659 .global p_vendor_region_ppn_table 23660 .global p_vendor_block_ver_table 23661 .global p_vendor_block_valid_page_count 23662 .global p_vendor_block_table 23663 .global g_totle_map_block 23664 .global p_map_region_ppn_check_table 23665 .global p_map_region_ppn_table 23666 .global p_map_block_ver_table 23667 .global p_map_block_valid_page_count 23668 .global p_map_block_table 23669 .global p_blk_mode_table 23670 .global p_valid_page_count_table 23671 .global g_totle_swl_count 23672 .global p_swl_mul_table 23673 .global p_erase_count_table 23674 .global g_ect_tbl_info_size 23675 .global gp_ect_tbl_info 23676 .global g_gc_num_req 23677 .global c_gc_page_buf_num 23678 .global gp_gc_page_buf_info 23679 .global p_gc_data_buf 23680 .global p_gc_spare_buf 23681 .global p_io_spare_buf 23682 .global p_io_data_buf_1 23683 .global p_io_data_buf_0 23684 .global p_sys_spare_buf 23685 .global p_vendor_data_buf 23686 .global p_sys_data_buf_1 23687 .global p_sys_data_buf 23688 .global g_wr_page_num 23689 .global req_wr_io 23690 .global c_wr_page_buf_num 23691 .global p_wr_io_data_buf 23692 .global p_wr_io_spare_buf 23693 .global p_plane_order_table 23694 .global g_req_cache 23695 .global req_gc_dst 23696 .global req_gc 23697 .global req_erase 23698 .global req_prgm 23699 .global req_read 23700 .global req_sys 23701 .global gVendorBlkInfo 23702 .global gL2pMapInfo 23703 .global gSysFreeQueue 23704 .global gSysInfo 23705 .global gBbtInfo 23706 .global g_flash_read_only_en 23707 .global g_inkDie_check_enable 23708 .global g_SlcPartLbaEndSector 23709 .global g_MaxLbn 23710 .global g_VaildLpn 23711 .global g_MaxLpn 23712 .global g_MaxLbaSector 23713 .global g_GlobalDataVersion 23714 .global g_GlobalSysVersion 23715 .global ftl_gc_temp_power_lost_recovery_flag 23716 .global c_ftl_nand_max_data_blks 23717 .global c_ftl_nand_data_op_blks_per_plane 23718 .global c_ftl_nand_data_blks_per_plane 23719 .global c_ftl_nand_max_sys_blks 23720 .global c_ftl_nand_init_sys_blks_per_plane 23721 .global c_ftl_nand_sys_blks_per_plane 23722 .global c_ftl_vendor_part_size 23723 .global c_ftl_nand_max_vendor_blks 23724 .global c_ftl_nand_max_map_blks 23725 .global c_ftl_nand_map_blks_per_plane 23726 .global c_ftl_nand_vendor_region_num 23727 .global c_ftl_nand_l2pmap_ram_region_num 23728 .global c_ftl_nand_map_region_num 23729 .global c_ftl_nand_totle_phy_blks 23730 .global c_ftl_nand_reserved_blks 23731 .global c_ftl_nand_byte_pre_oob 23732 .global c_ftl_nand_byte_pre_page 23733 .global c_ftl_nand_sec_pre_page_shift 23734 .global c_ftl_nand_sec_pre_page 23735 .global c_ftl_nand_page_pre_super_blk 23736 .global c_ftl_nand_page_pre_slc_blk 23737 .global c_ftl_nand_page_pre_blk 23738 .global c_ftl_nand_bbm_buf_size 23739 .global c_ftl_nand_ext_blk_pre_plane 23740 .global c_ftl_nand_blk_pre_plane 23741 .global c_ftl_nand_planes_num 23742 .global c_ftl_nand_blks_per_die 23743 .global c_ftl_nand_planes_per_die 23744 .global c_ftl_nand_die_num 23745 .global c_ftl_nand_type 23746 .global gMasterTempBuf 23747 .global gMasterInfo 23748 .global gNandcDumpWriteEn 23749 .global gToggleModeClkDiv 23750 .global gBootDdrMode 23751 .global gNandcEccBits 23752 .global gpNandc1 23753 .global gpNandc 23754 .global g_nandc_version_data 23755 .global gNandcVer 23756 .global gNandChipMap 23757 .global gNandIDataBuf 23758 .global idb_flash_slc_mode 23759 .global FlashDdrTunningReadCount 23760 .global FlashWaitBusyScheduleEn 23761 .global gNandPhyInfo 23762 .global gFlashProgCheckSpareBuffer 23763 .global gFlashProgCheckBuffer 23764 .global gFlashSpareBuffer 23765 .global gFlashPageBuffer1 23766 .global gFlashPageBuffer0 23767 .global gpFlashSaveInfo 23768 .global gReadRetryInfo 23769 .global gpNandParaInfo 23770 .global gNandOptPara 23771 .global g_nand_ecc_en 23772 .global g_slc2KBNand 23773 .global g_maxRetryCount 23774 .global g_maxRegNum 23775 .global g_retryMode 23776 .global gNandIDBResBlkNumSaveInFlash 23777 .global gNandIDBResBlkNum 23778 .global gNandFlashResEndPageAddr 23779 .global gNandFlashInfoBlockAddr 23780 .global gNandFlashIdbBlockAddr 23781 .global gNandFlashInfoBlockEcc 23782 .global gNandFlashIDBEccBits 23783 .global gNandFlashEccBits 23784 .global gNandRandomizer 23785 .global gBlockPageAlignSize 23786 .global gTotleBlock 23787 .global gNandMaxChip 23788 .global gNandMaxDie 23789 .global gFlashInterfaceMode 23790 .global gFlashCurMode 23791 .global gFlashSlcMode 23792 .global gFlashOnfiModeEn 23793 .global gFlashToggleModeEn 23794 .global gFlashSdrModeEn 23795 .global gMultiPageProgEn 23796 .global gMultiPageReadEn 23797 .global gpReadRetrial 23798 .global mlcPageToSlcPageTbl 23799 .global slcPageToMlcPageTbl 23800 .global DieAddrs 23801 .global gDieOp 23802 .global DieCsIndex 23803 .global IDByte 23804 .global read_retry_cur_offset 23805 .section .bss.DeviceCapacity,"aw",%nobits 23806 .align 2 23807 .set .LANCHOR60,. + 0 23808 .type DeviceCapacity, %object 23809 .size DeviceCapacity, 4 23810DeviceCapacity: 23811 .space 4 23812 .section .bss.DieAddrs,"aw",%nobits 23813 .align 2 23814 .set .LANCHOR18,. + 0 23815 .type DieAddrs, %object 23816 .size DieAddrs, 32 23817DieAddrs: 23818 .space 32 23819 .section .bss.DieCsIndex,"aw",%nobits 23820 .align 2 23821 .set .LANCHOR27,. + 0 23822 .type DieCsIndex, %object 23823 .size DieCsIndex, 8 23824DieCsIndex: 23825 .space 8 23826 .section .bss.FlashDdrTunningReadCount,"aw",%nobits 23827 .align 2 23828 .set .LANCHOR144,. + 0 23829 .type FlashDdrTunningReadCount, %object 23830 .size FlashDdrTunningReadCount, 4 23831FlashDdrTunningReadCount: 23832 .space 4 23833 .section .bss.FlashWaitBusyScheduleEn,"aw",%nobits 23834 .align 2 23835 .type FlashWaitBusyScheduleEn, %object 23836 .size FlashWaitBusyScheduleEn, 4 23837FlashWaitBusyScheduleEn: 23838 .space 4 23839 .section .bss.FtlMallocBuffer,"aw",%nobits 23840 .align 6 23841 .type FtlMallocBuffer, %object 23842 .size FtlMallocBuffer, 1310720 23843FtlMallocBuffer: 23844 .space 1310720 23845 .section .bss.FtlUpdateVaildLpnCount,"aw",%nobits 23846 .align 1 23847 .set .LANCHOR101,. + 0 23848 .type FtlUpdateVaildLpnCount, %object 23849 .size FtlUpdateVaildLpnCount, 2 23850FtlUpdateVaildLpnCount: 23851 .space 2 23852 .section .bss.IDByte,"aw",%nobits 23853 .align 2 23854 .set .LANCHOR22,. + 0 23855 .type IDByte, %object 23856 .size IDByte, 32 23857IDByte: 23858 .space 32 23859 .section .bss.c_ftl_nand_bbm_buf_size,"aw",%nobits 23860 .align 1 23861 .set .LANCHOR126,. + 0 23862 .type c_ftl_nand_bbm_buf_size, %object 23863 .size c_ftl_nand_bbm_buf_size, 2 23864c_ftl_nand_bbm_buf_size: 23865 .space 2 23866 .section .bss.c_ftl_nand_blk_pre_plane,"aw",%nobits 23867 .align 1 23868 .set .LANCHOR41,. + 0 23869 .type c_ftl_nand_blk_pre_plane, %object 23870 .size c_ftl_nand_blk_pre_plane, 2 23871c_ftl_nand_blk_pre_plane: 23872 .space 2 23873 .section .bss.c_ftl_nand_blks_per_die,"aw",%nobits 23874 .align 1 23875 .set .LANCHOR51,. + 0 23876 .type c_ftl_nand_blks_per_die, %object 23877 .size c_ftl_nand_blks_per_die, 2 23878c_ftl_nand_blks_per_die: 23879 .space 2 23880 .section .bss.c_ftl_nand_byte_pre_oob,"aw",%nobits 23881 .align 1 23882 .set .LANCHOR58,. + 0 23883 .type c_ftl_nand_byte_pre_oob, %object 23884 .size c_ftl_nand_byte_pre_oob, 2 23885c_ftl_nand_byte_pre_oob: 23886 .space 2 23887 .section .bss.c_ftl_nand_byte_pre_page,"aw",%nobits 23888 .align 1 23889 .set .LANCHOR57,. + 0 23890 .type c_ftl_nand_byte_pre_page, %object 23891 .size c_ftl_nand_byte_pre_page, 2 23892c_ftl_nand_byte_pre_page: 23893 .space 2 23894 .section .bss.c_ftl_nand_data_blks_per_plane,"aw",%nobits 23895 .align 1 23896 .set .LANCHOR40,. + 0 23897 .type c_ftl_nand_data_blks_per_plane, %object 23898 .size c_ftl_nand_data_blks_per_plane, 2 23899c_ftl_nand_data_blks_per_plane: 23900 .space 2 23901 .section .bss.c_ftl_nand_data_op_blks_per_plane,"aw",%nobits 23902 .align 1 23903 .set .LANCHOR232,. + 0 23904 .type c_ftl_nand_data_op_blks_per_plane, %object 23905 .size c_ftl_nand_data_op_blks_per_plane, 2 23906c_ftl_nand_data_op_blks_per_plane: 23907 .space 2 23908 .section .bss.c_ftl_nand_die_num,"aw",%nobits 23909 .align 1 23910 .set .LANCHOR45,. + 0 23911 .type c_ftl_nand_die_num, %object 23912 .size c_ftl_nand_die_num, 2 23913c_ftl_nand_die_num: 23914 .space 2 23915 .section .bss.c_ftl_nand_ext_blk_pre_plane,"aw",%nobits 23916 .align 1 23917 .set .LANCHOR49,. + 0 23918 .type c_ftl_nand_ext_blk_pre_plane, %object 23919 .size c_ftl_nand_ext_blk_pre_plane, 2 23920c_ftl_nand_ext_blk_pre_plane: 23921 .space 2 23922 .section .bss.c_ftl_nand_init_sys_blks_per_plane,"aw",%nobits 23923 .align 2 23924 .set .LANCHOR65,. + 0 23925 .type c_ftl_nand_init_sys_blks_per_plane, %object 23926 .size c_ftl_nand_init_sys_blks_per_plane, 4 23927c_ftl_nand_init_sys_blks_per_plane: 23928 .space 4 23929 .section .bss.c_ftl_nand_l2pmap_ram_region_num,"aw",%nobits 23930 .align 1 23931 .set .LANCHOR67,. + 0 23932 .type c_ftl_nand_l2pmap_ram_region_num, %object 23933 .size c_ftl_nand_l2pmap_ram_region_num, 2 23934c_ftl_nand_l2pmap_ram_region_num: 23935 .space 2 23936 .section .bss.c_ftl_nand_map_blks_per_plane,"aw",%nobits 23937 .align 1 23938 .set .LANCHOR63,. + 0 23939 .type c_ftl_nand_map_blks_per_plane, %object 23940 .size c_ftl_nand_map_blks_per_plane, 2 23941c_ftl_nand_map_blks_per_plane: 23942 .space 2 23943 .section .bss.c_ftl_nand_map_region_num,"aw",%nobits 23944 .align 1 23945 .set .LANCHOR66,. + 0 23946 .type c_ftl_nand_map_region_num, %object 23947 .size c_ftl_nand_map_region_num, 2 23948c_ftl_nand_map_region_num: 23949 .space 2 23950 .section .bss.c_ftl_nand_max_data_blks,"aw",%nobits 23951 .align 2 23952 .set .LANCHOR42,. + 0 23953 .type c_ftl_nand_max_data_blks, %object 23954 .size c_ftl_nand_max_data_blks, 4 23955c_ftl_nand_max_data_blks: 23956 .space 4 23957 .section .bss.c_ftl_nand_max_map_blks,"aw",%nobits 23958 .align 2 23959 .set .LANCHOR64,. + 0 23960 .type c_ftl_nand_max_map_blks, %object 23961 .size c_ftl_nand_max_map_blks, 4 23962c_ftl_nand_max_map_blks: 23963 .space 4 23964 .section .bss.c_ftl_nand_max_sys_blks,"aw",%nobits 23965 .align 2 23966 .set .LANCHOR39,. + 0 23967 .type c_ftl_nand_max_sys_blks, %object 23968 .size c_ftl_nand_max_sys_blks, 4 23969c_ftl_nand_max_sys_blks: 23970 .space 4 23971 .section .bss.c_ftl_nand_max_vendor_blks,"aw",%nobits 23972 .align 1 23973 .set .LANCHOR61,. + 0 23974 .type c_ftl_nand_max_vendor_blks, %object 23975 .size c_ftl_nand_max_vendor_blks, 2 23976c_ftl_nand_max_vendor_blks: 23977 .space 2 23978 .section .bss.c_ftl_nand_page_pre_blk,"aw",%nobits 23979 .align 1 23980 .set .LANCHOR52,. + 0 23981 .type c_ftl_nand_page_pre_blk, %object 23982 .size c_ftl_nand_page_pre_blk, 2 23983c_ftl_nand_page_pre_blk: 23984 .space 2 23985 .section .bss.c_ftl_nand_page_pre_slc_blk,"aw",%nobits 23986 .align 1 23987 .set .LANCHOR53,. + 0 23988 .type c_ftl_nand_page_pre_slc_blk, %object 23989 .size c_ftl_nand_page_pre_slc_blk, 2 23990c_ftl_nand_page_pre_slc_blk: 23991 .space 2 23992 .section .bss.c_ftl_nand_page_pre_super_blk,"aw",%nobits 23993 .align 1 23994 .set .LANCHOR54,. + 0 23995 .type c_ftl_nand_page_pre_super_blk, %object 23996 .size c_ftl_nand_page_pre_super_blk, 2 23997c_ftl_nand_page_pre_super_blk: 23998 .space 2 23999 .section .bss.c_ftl_nand_planes_num,"aw",%nobits 24000 .align 1 24001 .set .LANCHOR38,. + 0 24002 .type c_ftl_nand_planes_num, %object 24003 .size c_ftl_nand_planes_num, 2 24004c_ftl_nand_planes_num: 24005 .space 2 24006 .section .bss.c_ftl_nand_planes_per_die,"aw",%nobits 24007 .align 1 24008 .set .LANCHOR46,. + 0 24009 .type c_ftl_nand_planes_per_die, %object 24010 .size c_ftl_nand_planes_per_die, 2 24011c_ftl_nand_planes_per_die: 24012 .space 2 24013 .section .bss.c_ftl_nand_reserved_blks,"aw",%nobits 24014 .align 1 24015 .set .LANCHOR59,. + 0 24016 .type c_ftl_nand_reserved_blks, %object 24017 .size c_ftl_nand_reserved_blks, 2 24018c_ftl_nand_reserved_blks: 24019 .space 2 24020 .section .bss.c_ftl_nand_sec_pre_page,"aw",%nobits 24021 .align 1 24022 .set .LANCHOR55,. + 0 24023 .type c_ftl_nand_sec_pre_page, %object 24024 .size c_ftl_nand_sec_pre_page, 2 24025c_ftl_nand_sec_pre_page: 24026 .space 2 24027 .section .bss.c_ftl_nand_sec_pre_page_shift,"aw",%nobits 24028 .align 1 24029 .set .LANCHOR56,. + 0 24030 .type c_ftl_nand_sec_pre_page_shift, %object 24031 .size c_ftl_nand_sec_pre_page_shift, 2 24032c_ftl_nand_sec_pre_page_shift: 24033 .space 2 24034 .section .bss.c_ftl_nand_sys_blks_per_plane,"aw",%nobits 24035 .align 2 24036 .set .LANCHOR37,. + 0 24037 .type c_ftl_nand_sys_blks_per_plane, %object 24038 .size c_ftl_nand_sys_blks_per_plane, 4 24039c_ftl_nand_sys_blks_per_plane: 24040 .space 4 24041 .section .bss.c_ftl_nand_totle_phy_blks,"aw",%nobits 24042 .align 2 24043 .set .LANCHOR43,. + 0 24044 .type c_ftl_nand_totle_phy_blks, %object 24045 .size c_ftl_nand_totle_phy_blks, 4 24046c_ftl_nand_totle_phy_blks: 24047 .space 4 24048 .section .bss.c_ftl_nand_type,"aw",%nobits 24049 .align 1 24050 .set .LANCHOR44,. + 0 24051 .type c_ftl_nand_type, %object 24052 .size c_ftl_nand_type, 2 24053c_ftl_nand_type: 24054 .space 2 24055 .section .bss.c_ftl_nand_vendor_region_num,"aw",%nobits 24056 .align 1 24057 .set .LANCHOR62,. + 0 24058 .type c_ftl_nand_vendor_region_num, %object 24059 .size c_ftl_nand_vendor_region_num, 2 24060c_ftl_nand_vendor_region_num: 24061 .space 2 24062 .section .bss.c_ftl_vendor_part_size,"aw",%nobits 24063 .align 1 24064 .set .LANCHOR50,. + 0 24065 .type c_ftl_vendor_part_size, %object 24066 .size c_ftl_vendor_part_size, 2 24067c_ftl_vendor_part_size: 24068 .space 2 24069 .section .bss.c_gc_page_buf_num,"aw",%nobits 24070 .align 2 24071 .set .LANCHOR110,. + 0 24072 .type c_gc_page_buf_num, %object 24073 .size c_gc_page_buf_num, 4 24074c_gc_page_buf_num: 24075 .space 4 24076 .section .bss.c_mlc_erase_count_value,"aw",%nobits 24077 .align 1 24078 .set .LANCHOR48,. + 0 24079 .type c_mlc_erase_count_value, %object 24080 .size c_mlc_erase_count_value, 2 24081c_mlc_erase_count_value: 24082 .space 2 24083 .section .bss.c_wr_page_buf_num,"aw",%nobits 24084 .align 2 24085 .set .LANCHOR185,. + 0 24086 .type c_wr_page_buf_num, %object 24087 .size c_wr_page_buf_num, 4 24088c_wr_page_buf_num: 24089 .space 4 24090 .section .bss.check_valid_page_count_table,"aw",%nobits 24091 .align 1 24092 .type check_valid_page_count_table, %object 24093 .size check_valid_page_count_table, 8192 24094check_valid_page_count_table: 24095 .space 8192 24096 .section .bss.ftl_gc_temp_power_lost_recovery_flag,"aw",%nobits 24097 .align 2 24098 .set .LANCHOR138,. + 0 24099 .type ftl_gc_temp_power_lost_recovery_flag, %object 24100 .size ftl_gc_temp_power_lost_recovery_flag, 4 24101ftl_gc_temp_power_lost_recovery_flag: 24102 .space 4 24103 .section .bss.gBbtInfo,"aw",%nobits 24104 .align 2 24105 .set .LANCHOR76,. + 0 24106 .type gBbtInfo, %object 24107 .size gBbtInfo, 60 24108gBbtInfo: 24109 .space 60 24110 .section .bss.gBlockPageAlignSize,"aw",%nobits 24111 .align 2 24112 .set .LANCHOR4,. + 0 24113 .type gBlockPageAlignSize, %object 24114 .size gBlockPageAlignSize, 4 24115gBlockPageAlignSize: 24116 .space 4 24117 .section .bss.gBootDdrMode,"aw",%nobits 24118 .align 2 24119 .set .LANCHOR160,. + 0 24120 .type gBootDdrMode, %object 24121 .size gBootDdrMode, 4 24122gBootDdrMode: 24123 .space 4 24124 .section .bss.gDieOp,"aw",%nobits 24125 .align 2 24126 .set .LANCHOR23,. + 0 24127 .type gDieOp, %object 24128 .size gDieOp, 128 24129gDieOp: 24130 .space 128 24131 .section .bss.gFlashCurMode,"aw",%nobits 24132 .set .LANCHOR24,. + 0 24133 .type gFlashCurMode, %object 24134 .size gFlashCurMode, 1 24135gFlashCurMode: 24136 .space 1 24137 .section .bss.gFlashInterfaceMode,"aw",%nobits 24138 .set .LANCHOR25,. + 0 24139 .type gFlashInterfaceMode, %object 24140 .size gFlashInterfaceMode, 1 24141gFlashInterfaceMode: 24142 .space 1 24143 .section .bss.gFlashOnfiModeEn,"aw",%nobits 24144 .type gFlashOnfiModeEn, %object 24145 .size gFlashOnfiModeEn, 1 24146gFlashOnfiModeEn: 24147 .space 1 24148 .section .bss.gFlashPageBuffer0,"aw",%nobits 24149 .align 2 24150 .set .LANCHOR154,. + 0 24151 .type gFlashPageBuffer0, %object 24152 .size gFlashPageBuffer0, 4 24153gFlashPageBuffer0: 24154 .space 4 24155 .section .bss.gFlashPageBuffer1,"aw",%nobits 24156 .align 2 24157 .set .LANCHOR149,. + 0 24158 .type gFlashPageBuffer1, %object 24159 .size gFlashPageBuffer1, 4 24160gFlashPageBuffer1: 24161 .space 4 24162 .section .bss.gFlashProgCheckBuffer,"aw",%nobits 24163 .align 2 24164 .set .LANCHOR206,. + 0 24165 .type gFlashProgCheckBuffer, %object 24166 .size gFlashProgCheckBuffer, 4 24167gFlashProgCheckBuffer: 24168 .space 4 24169 .section .bss.gFlashProgCheckSpareBuffer,"aw",%nobits 24170 .align 2 24171 .set .LANCHOR207,. + 0 24172 .type gFlashProgCheckSpareBuffer, %object 24173 .size gFlashProgCheckSpareBuffer, 4 24174gFlashProgCheckSpareBuffer: 24175 .space 4 24176 .section .bss.gFlashSdrModeEn,"aw",%nobits 24177 .type gFlashSdrModeEn, %object 24178 .size gFlashSdrModeEn, 1 24179gFlashSdrModeEn: 24180 .space 1 24181 .section .bss.gFlashSlcMode,"aw",%nobits 24182 .set .LANCHOR16,. + 0 24183 .type gFlashSlcMode, %object 24184 .size gFlashSlcMode, 1 24185gFlashSlcMode: 24186 .space 1 24187 .section .bss.gFlashSpareBuffer,"aw",%nobits 24188 .align 2 24189 .set .LANCHOR205,. + 0 24190 .type gFlashSpareBuffer, %object 24191 .size gFlashSpareBuffer, 4 24192gFlashSpareBuffer: 24193 .space 4 24194 .section .bss.gFlashToggleModeEn,"aw",%nobits 24195 .set .LANCHOR30,. + 0 24196 .type gFlashToggleModeEn, %object 24197 .size gFlashToggleModeEn, 1 24198gFlashToggleModeEn: 24199 .space 1 24200 .section .bss.gL2pMapInfo,"aw",%nobits 24201 .align 2 24202 .set .LANCHOR130,. + 0 24203 .type gL2pMapInfo, %object 24204 .size gL2pMapInfo, 44 24205gL2pMapInfo: 24206 .space 44 24207 .section .bss.gMasterInfo,"aw",%nobits 24208 .align 2 24209 .set .LANCHOR35,. + 0 24210 .type gMasterInfo, %object 24211 .size gMasterInfo, 32 24212gMasterInfo: 24213 .space 32 24214 .section .bss.gMasterTempBuf,"aw",%nobits 24215 .align 2 24216 .set .LANCHOR161,. + 0 24217 .type gMasterTempBuf, %object 24218 .size gMasterTempBuf, 4 24219gMasterTempBuf: 24220 .space 4 24221 .section .bss.gMultiPageProgEn,"aw",%nobits 24222 .set .LANCHOR28,. + 0 24223 .type gMultiPageProgEn, %object 24224 .size gMultiPageProgEn, 1 24225gMultiPageProgEn: 24226 .space 1 24227 .section .bss.gMultiPageReadEn,"aw",%nobits 24228 .set .LANCHOR210,. + 0 24229 .type gMultiPageReadEn, %object 24230 .size gMultiPageReadEn, 1 24231gMultiPageReadEn: 24232 .space 1 24233 .section .bss.gNandChipMap,"aw",%nobits 24234 .align 2 24235 .set .LANCHOR0,. + 0 24236 .type gNandChipMap, %object 24237 .size gNandChipMap, 32 24238gNandChipMap: 24239 .space 32 24240 .section .bss.gNandFlashEccBits,"aw",%nobits 24241 .set .LANCHOR33,. + 0 24242 .type gNandFlashEccBits, %object 24243 .size gNandFlashEccBits, 1 24244gNandFlashEccBits: 24245 .space 1 24246 .section .bss.gNandFlashIDBEccBits,"aw",%nobits 24247 .set .LANCHOR158,. + 0 24248 .type gNandFlashIDBEccBits, %object 24249 .size gNandFlashIDBEccBits, 1 24250gNandFlashIDBEccBits: 24251 .space 1 24252 .section .bss.gNandFlashIdbBlockAddr,"aw",%nobits 24253 .align 2 24254 .set .LANCHOR156,. + 0 24255 .type gNandFlashIdbBlockAddr, %object 24256 .size gNandFlashIdbBlockAddr, 4 24257gNandFlashIdbBlockAddr: 24258 .space 4 24259 .section .bss.gNandFlashInfoBlockAddr,"aw",%nobits 24260 .align 2 24261 .set .LANCHOR155,. + 0 24262 .type gNandFlashInfoBlockAddr, %object 24263 .size gNandFlashInfoBlockAddr, 4 24264gNandFlashInfoBlockAddr: 24265 .space 4 24266 .section .bss.gNandFlashInfoBlockEcc,"aw",%nobits 24267 .type gNandFlashInfoBlockEcc, %object 24268 .size gNandFlashInfoBlockEcc, 1 24269gNandFlashInfoBlockEcc: 24270 .space 1 24271 .section .bss.gNandFlashResEndPageAddr,"aw",%nobits 24272 .align 2 24273 .type gNandFlashResEndPageAddr, %object 24274 .size gNandFlashResEndPageAddr, 4 24275gNandFlashResEndPageAddr: 24276 .space 4 24277 .section .bss.gNandIDBResBlkNum,"aw",%nobits 24278 .set .LANCHOR3,. + 0 24279 .type gNandIDBResBlkNum, %object 24280 .size gNandIDBResBlkNum, 1 24281gNandIDBResBlkNum: 24282 .space 1 24283 .section .bss.gNandIDBResBlkNumSaveInFlash,"aw",%nobits 24284 .set .LANCHOR157,. + 0 24285 .type gNandIDBResBlkNumSaveInFlash, %object 24286 .size gNandIDBResBlkNumSaveInFlash, 1 24287gNandIDBResBlkNumSaveInFlash: 24288 .space 1 24289 .section .bss.gNandIDataBuf,"aw",%nobits 24290 .align 2 24291 .set .LANCHOR150,. + 0 24292 .type gNandIDataBuf, %object 24293 .size gNandIDataBuf, 2048 24294gNandIDataBuf: 24295 .space 2048 24296 .section .bss.gNandMaxChip,"aw",%nobits 24297 .set .LANCHOR124,. + 0 24298 .type gNandMaxChip, %object 24299 .size gNandMaxChip, 1 24300gNandMaxChip: 24301 .space 1 24302 .section .bss.gNandMaxDie,"aw",%nobits 24303 .set .LANCHOR26,. + 0 24304 .type gNandMaxDie, %object 24305 .size gNandMaxDie, 1 24306gNandMaxDie: 24307 .space 1 24308 .section .bss.gNandOptPara,"aw",%nobits 24309 .set .LANCHOR8,. + 0 24310 .type gNandOptPara, %object 24311 .size gNandOptPara, 32 24312gNandOptPara: 24313 .space 32 24314 .section .bss.gNandPhyInfo,"aw",%nobits 24315 .align 2 24316 .set .LANCHOR15,. + 0 24317 .type gNandPhyInfo, %object 24318 .size gNandPhyInfo, 28 24319gNandPhyInfo: 24320 .space 28 24321 .section .bss.gNandRandomizer,"aw",%nobits 24322 .set .LANCHOR6,. + 0 24323 .type gNandRandomizer, %object 24324 .size gNandRandomizer, 1 24325gNandRandomizer: 24326 .space 1 24327 .section .bss.gNandcDumpWriteEn,"aw",%nobits 24328 .align 2 24329 .set .LANCHOR36,. + 0 24330 .type gNandcDumpWriteEn, %object 24331 .size gNandcDumpWriteEn, 4 24332gNandcDumpWriteEn: 24333 .space 4 24334 .section .bss.gNandcEccBits,"aw",%nobits 24335 .align 2 24336 .set .LANCHOR32,. + 0 24337 .type gNandcEccBits, %object 24338 .size gNandcEccBits, 4 24339gNandcEccBits: 24340 .space 4 24341 .section .bss.gNandcVer,"aw",%nobits 24342 .align 2 24343 .set .LANCHOR34,. + 0 24344 .type gNandcVer, %object 24345 .size gNandcVer, 4 24346gNandcVer: 24347 .space 4 24348 .section .bss.gReadRetryInfo,"aw",%nobits 24349 .set .LANCHOR20,. + 0 24350 .type gReadRetryInfo, %object 24351 .size gReadRetryInfo, 852 24352gReadRetryInfo: 24353 .space 852 24354 .section .bss.gSysFreeQueue,"aw",%nobits 24355 .align 1 24356 .set .LANCHOR77,. + 0 24357 .type gSysFreeQueue, %object 24358 .size gSysFreeQueue, 2056 24359gSysFreeQueue: 24360 .space 2056 24361 .section .bss.gSysInfo,"aw",%nobits 24362 .align 2 24363 .set .LANCHOR218,. + 0 24364 .type gSysInfo, %object 24365 .size gSysInfo, 16 24366gSysInfo: 24367 .space 16 24368 .section .bss.gToggleModeClkDiv,"aw",%nobits 24369 .align 2 24370 .type gToggleModeClkDiv, %object 24371 .size gToggleModeClkDiv, 4 24372gToggleModeClkDiv: 24373 .space 4 24374 .section .bss.gTotleBlock,"aw",%nobits 24375 .align 1 24376 .set .LANCHOR125,. + 0 24377 .type gTotleBlock, %object 24378 .size gTotleBlock, 2 24379gTotleBlock: 24380 .space 2 24381 .section .bss.gVendorBlkInfo,"aw",%nobits 24382 .align 2 24383 .set .LANCHOR224,. + 0 24384 .type gVendorBlkInfo, %object 24385 .size gVendorBlkInfo, 44 24386gVendorBlkInfo: 24387 .space 44 24388 .section .bss.g_GlobalDataVersion,"aw",%nobits 24389 .align 2 24390 .set .LANCHOR165,. + 0 24391 .type g_GlobalDataVersion, %object 24392 .size g_GlobalDataVersion, 4 24393g_GlobalDataVersion: 24394 .space 4 24395 .section .bss.g_GlobalSysVersion,"aw",%nobits 24396 .align 2 24397 .set .LANCHOR164,. + 0 24398 .type g_GlobalSysVersion, %object 24399 .size g_GlobalSysVersion, 4 24400g_GlobalSysVersion: 24401 .space 4 24402 .section .bss.g_LowFormat,"aw",%nobits 24403 .align 2 24404 .set .LANCHOR254,. + 0 24405 .type g_LowFormat, %object 24406 .size g_LowFormat, 4 24407g_LowFormat: 24408 .space 4 24409 .section .bss.g_MaxLbaSector,"aw",%nobits 24410 .align 2 24411 .set .LANCHOR68,. + 0 24412 .type g_MaxLbaSector, %object 24413 .size g_MaxLbaSector, 4 24414g_MaxLbaSector: 24415 .space 4 24416 .section .bss.g_MaxLbn,"aw",%nobits 24417 .align 2 24418 .set .LANCHOR231,. + 0 24419 .type g_MaxLbn, %object 24420 .size g_MaxLbn, 4 24421g_MaxLbn: 24422 .space 4 24423 .section .bss.g_MaxLpn,"aw",%nobits 24424 .align 2 24425 .set .LANCHOR74,. + 0 24426 .type g_MaxLpn, %object 24427 .size g_MaxLpn, 4 24428g_MaxLpn: 24429 .space 4 24430 .section .bss.g_SlcPartLbaEndSector,"aw",%nobits 24431 .align 2 24432 .set .LANCHOR162,. + 0 24433 .type g_SlcPartLbaEndSector, %object 24434 .size g_SlcPartLbaEndSector, 4 24435g_SlcPartLbaEndSector: 24436 .space 4 24437 .section .bss.g_VaildLpn,"aw",%nobits 24438 .align 2 24439 .set .LANCHOR102,. + 0 24440 .type g_VaildLpn, %object 24441 .size g_VaildLpn, 4 24442g_VaildLpn: 24443 .space 4 24444 .section .bss.g_active_superblock,"aw",%nobits 24445 .align 2 24446 .set .LANCHOR93,. + 0 24447 .type g_active_superblock, %object 24448 .size g_active_superblock, 48 24449g_active_superblock: 24450 .space 48 24451 .section .bss.g_all_blk_used_slc_mode,"aw",%nobits 24452 .align 2 24453 .set .LANCHOR163,. + 0 24454 .type g_all_blk_used_slc_mode, %object 24455 .size g_all_blk_used_slc_mode, 4 24456g_all_blk_used_slc_mode: 24457 .space 4 24458 .section .bss.g_buffer_superblock,"aw",%nobits 24459 .align 2 24460 .set .LANCHOR94,. + 0 24461 .type g_buffer_superblock, %object 24462 .size g_buffer_superblock, 48 24463g_buffer_superblock: 24464 .space 48 24465 .section .bss.g_cur_erase_blk,"aw",%nobits 24466 .align 2 24467 .set .LANCHOR75,. + 0 24468 .type g_cur_erase_blk, %object 24469 .size g_cur_erase_blk, 4 24470g_cur_erase_blk: 24471 .space 4 24472 .section .bss.g_ect_tbl_info_size,"aw",%nobits 24473 .align 1 24474 .set .LANCHOR198,. + 0 24475 .type g_ect_tbl_info_size, %object 24476 .size g_ect_tbl_info_size, 2 24477g_ect_tbl_info_size: 24478 .space 2 24479 .section .bss.g_ect_tbl_power_up_flush,"aw",%nobits 24480 .align 1 24481 .set .LANCHOR227,. + 0 24482 .type g_ect_tbl_power_up_flush, %object 24483 .size g_ect_tbl_power_up_flush, 2 24484g_ect_tbl_power_up_flush: 24485 .space 2 24486 .section .bss.g_flash_read_only_en,"aw",%nobits 24487 .align 2 24488 .set .LANCHOR78,. + 0 24489 .type g_flash_read_only_en, %object 24490 .size g_flash_read_only_en, 4 24491g_flash_read_only_en: 24492 .space 4 24493 .section .bss.g_free_slc_blk_num,"aw",%nobits 24494 .align 1 24495 .set .LANCHOR142,. + 0 24496 .type g_free_slc_blk_num, %object 24497 .size g_free_slc_blk_num, 2 24498g_free_slc_blk_num: 24499 .space 2 24500 .section .bss.g_ftl_nand_free_count,"aw",%nobits 24501 .align 2 24502 .set .LANCHOR256,. + 0 24503 .type g_ftl_nand_free_count, %object 24504 .size g_ftl_nand_free_count, 4 24505g_ftl_nand_free_count: 24506 .space 4 24507 .section .bss.g_gc_bad_block_gc_index,"aw",%nobits 24508 .align 1 24509 .set .LANCHOR121,. + 0 24510 .type g_gc_bad_block_gc_index, %object 24511 .size g_gc_bad_block_gc_index, 2 24512g_gc_bad_block_gc_index: 24513 .space 2 24514 .section .bss.g_gc_bad_block_temp_num,"aw",%nobits 24515 .align 1 24516 .set .LANCHOR119,. + 0 24517 .type g_gc_bad_block_temp_num, %object 24518 .size g_gc_bad_block_temp_num, 2 24519g_gc_bad_block_temp_num: 24520 .space 2 24521 .section .bss.g_gc_bad_block_temp_tbl,"aw",%nobits 24522 .align 1 24523 .set .LANCHOR120,. + 0 24524 .type g_gc_bad_block_temp_tbl, %object 24525 .size g_gc_bad_block_temp_tbl, 34 24526g_gc_bad_block_temp_tbl: 24527 .space 34 24528 .section .bss.g_gc_blk_index,"aw",%nobits 24529 .align 1 24530 .set .LANCHOR183,. + 0 24531 .type g_gc_blk_index, %object 24532 .size g_gc_blk_index, 2 24533g_gc_blk_index: 24534 .space 2 24535 .section .bss.g_gc_blk_num,"aw",%nobits 24536 .align 1 24537 .set .LANCHOR112,. + 0 24538 .type g_gc_blk_num, %object 24539 .size g_gc_blk_num, 2 24540g_gc_blk_num: 24541 .space 2 24542 .section .bss.g_gc_cur_blk_max_valid_pages,"aw",%nobits 24543 .align 1 24544 .set .LANCHOR250,. + 0 24545 .type g_gc_cur_blk_max_valid_pages, %object 24546 .size g_gc_cur_blk_max_valid_pages, 2 24547g_gc_cur_blk_max_valid_pages: 24548 .space 2 24549 .section .bss.g_gc_cur_blk_valid_pages,"aw",%nobits 24550 .align 1 24551 .set .LANCHOR249,. + 0 24552 .type g_gc_cur_blk_valid_pages, %object 24553 .size g_gc_cur_blk_valid_pages, 2 24554g_gc_cur_blk_valid_pages: 24555 .space 2 24556 .section .bss.g_gc_free_blk_threshold,"aw",%nobits 24557 .align 1 24558 .set .LANCHOR181,. + 0 24559 .type g_gc_free_blk_threshold, %object 24560 .size g_gc_free_blk_threshold, 2 24561g_gc_free_blk_threshold: 24562 .space 2 24563 .section .bss.g_gc_head_data_block,"aw",%nobits 24564 .align 2 24565 .set .LANCHOR178,. + 0 24566 .type g_gc_head_data_block, %object 24567 .size g_gc_head_data_block, 4 24568g_gc_head_data_block: 24569 .space 4 24570 .section .bss.g_gc_head_data_block_count,"aw",%nobits 24571 .align 2 24572 .set .LANCHOR179,. + 0 24573 .type g_gc_head_data_block_count, %object 24574 .size g_gc_head_data_block_count, 4 24575g_gc_head_data_block_count: 24576 .space 4 24577 .section .bss.g_gc_merge_free_blk_threshold,"aw",%nobits 24578 .align 1 24579 .set .LANCHOR182,. + 0 24580 .type g_gc_merge_free_blk_threshold, %object 24581 .size g_gc_merge_free_blk_threshold, 2 24582g_gc_merge_free_blk_threshold: 24583 .space 2 24584 .section .bss.g_gc_next_blk,"aw",%nobits 24585 .align 1 24586 .set .LANCHOR115,. + 0 24587 .type g_gc_next_blk, %object 24588 .size g_gc_next_blk, 2 24589g_gc_next_blk: 24590 .space 2 24591 .section .bss.g_gc_next_blk_1,"aw",%nobits 24592 .align 1 24593 .set .LANCHOR116,. + 0 24594 .type g_gc_next_blk_1, %object 24595 .size g_gc_next_blk_1, 2 24596g_gc_next_blk_1: 24597 .space 2 24598 .section .bss.g_gc_next_blk_2,"aw",%nobits 24599 .align 1 24600 .set .LANCHOR117,. + 0 24601 .type g_gc_next_blk_2, %object 24602 .size g_gc_next_blk_2, 2 24603g_gc_next_blk_2: 24604 .space 2 24605 .section .bss.g_gc_next_blk_3,"aw",%nobits 24606 .align 1 24607 .set .LANCHOR118,. + 0 24608 .type g_gc_next_blk_3, %object 24609 .size g_gc_next_blk_3, 2 24610g_gc_next_blk_3: 24611 .space 2 24612 .section .bss.g_gc_num_req,"aw",%nobits 24613 .align 2 24614 .set .LANCHOR105,. + 0 24615 .type g_gc_num_req, %object 24616 .size g_gc_num_req, 4 24617g_gc_num_req: 24618 .space 4 24619 .section .bss.g_gc_page_offset,"aw",%nobits 24620 .align 1 24621 .set .LANCHOR113,. + 0 24622 .type g_gc_page_offset, %object 24623 .size g_gc_page_offset, 2 24624g_gc_page_offset: 24625 .space 2 24626 .section .bss.g_gc_refresh_block_temp_num,"aw",%nobits 24627 .align 1 24628 .set .LANCHOR184,. + 0 24629 .type g_gc_refresh_block_temp_num, %object 24630 .size g_gc_refresh_block_temp_num, 2 24631g_gc_refresh_block_temp_num: 24632 .space 2 24633 .section .bss.g_gc_refresh_block_temp_tbl,"aw",%nobits 24634 .align 1 24635 .type g_gc_refresh_block_temp_tbl, %object 24636 .size g_gc_refresh_block_temp_tbl, 34 24637g_gc_refresh_block_temp_tbl: 24638 .space 34 24639 .section .bss.g_gc_skip_write_count,"aw",%nobits 24640 .align 2 24641 .set .LANCHOR180,. + 0 24642 .type g_gc_skip_write_count, %object 24643 .size g_gc_skip_write_count, 4 24644g_gc_skip_write_count: 24645 .space 4 24646 .section .bss.g_gc_superblock,"aw",%nobits 24647 .align 2 24648 .set .LANCHOR213,. + 0 24649 .type g_gc_superblock, %object 24650 .size g_gc_superblock, 48 24651g_gc_superblock: 24652 .space 48 24653 .section .bss.g_gc_temp_superblock,"aw",%nobits 24654 .align 2 24655 .set .LANCHOR95,. + 0 24656 .type g_gc_temp_superblock, %object 24657 .size g_gc_temp_superblock, 48 24658g_gc_temp_superblock: 24659 .space 48 24660 .section .bss.g_in_gc_progress,"aw",%nobits 24661 .align 2 24662 .set .LANCHOR176,. + 0 24663 .type g_in_gc_progress, %object 24664 .size g_in_gc_progress, 4 24665g_in_gc_progress: 24666 .space 4 24667 .section .bss.g_in_swl_replace,"aw",%nobits 24668 .align 2 24669 .set .LANCHOR177,. + 0 24670 .type g_in_swl_replace, %object 24671 .size g_in_swl_replace, 4 24672g_in_swl_replace: 24673 .space 4 24674 .section .bss.g_inkDie_check_enable,"aw",%nobits 24675 .align 2 24676 .set .LANCHOR104,. + 0 24677 .type g_inkDie_check_enable, %object 24678 .size g_inkDie_check_enable, 4 24679g_inkDie_check_enable: 24680 .space 4 24681 .section .bss.g_l2p_last_update_region_id,"aw",%nobits 24682 .align 1 24683 .set .LANCHOR99,. + 0 24684 .type g_l2p_last_update_region_id, %object 24685 .size g_l2p_last_update_region_id, 2 24686g_l2p_last_update_region_id: 24687 .space 2 24688 .section .bss.g_maxRegNum,"aw",%nobits 24689 .set .LANCHOR13,. + 0 24690 .type g_maxRegNum, %object 24691 .size g_maxRegNum, 1 24692g_maxRegNum: 24693 .space 1 24694 .section .bss.g_maxRetryCount,"aw",%nobits 24695 .set .LANCHOR146,. + 0 24696 .type g_maxRetryCount, %object 24697 .size g_maxRetryCount, 1 24698g_maxRetryCount: 24699 .space 1 24700 .section .bss.g_max_erase_count,"aw",%nobits 24701 .align 2 24702 .set .LANCHOR174,. + 0 24703 .type g_max_erase_count, %object 24704 .size g_max_erase_count, 4 24705g_max_erase_count: 24706 .space 4 24707 .section .bss.g_min_erase_count,"aw",%nobits 24708 .align 2 24709 .set .LANCHOR175,. + 0 24710 .type g_min_erase_count, %object 24711 .size g_min_erase_count, 4 24712g_min_erase_count: 24713 .space 4 24714 .section .bss.g_nand_ecc_en,"aw",%nobits 24715 .set .LANCHOR208,. + 0 24716 .type g_nand_ecc_en, %object 24717 .size g_nand_ecc_en, 1 24718g_nand_ecc_en: 24719 .space 1 24720 .section .bss.g_nandc_version_data,"aw",%nobits 24721 .align 2 24722 .set .LANCHOR122,. + 0 24723 .type g_nandc_version_data, %object 24724 .size g_nandc_version_data, 4 24725g_nandc_version_data: 24726 .space 4 24727 .section .bss.g_num_data_superblocks,"aw",%nobits 24728 .align 1 24729 .set .LANCHOR87,. + 0 24730 .type g_num_data_superblocks, %object 24731 .size g_num_data_superblocks, 2 24732g_num_data_superblocks: 24733 .space 2 24734 .section .bss.g_num_free_superblocks,"aw",%nobits 24735 .align 1 24736 .set .LANCHOR90,. + 0 24737 .type g_num_free_superblocks, %object 24738 .size g_num_free_superblocks, 2 24739g_num_free_superblocks: 24740 .space 2 24741 .section .bss.g_page_map_check_enable,"aw",%nobits 24742 .align 1 24743 .set .LANCHOR69,. + 0 24744 .type g_page_map_check_enable, %object 24745 .size g_page_map_check_enable, 2 24746g_page_map_check_enable: 24747 .space 2 24748 .section .bss.g_power_lost_ecc_error_blk,"aw",%nobits 24749 .align 1 24750 .set .LANCHOR241,. + 0 24751 .type g_power_lost_ecc_error_blk, %object 24752 .size g_power_lost_ecc_error_blk, 2 24753g_power_lost_ecc_error_blk: 24754 .space 2 24755 .section .bss.g_power_lost_recovery_flag,"aw",%nobits 24756 .align 1 24757 .set .LANCHOR242,. + 0 24758 .type g_power_lost_recovery_flag, %object 24759 .size g_power_lost_recovery_flag, 2 24760g_power_lost_recovery_flag: 24761 .space 2 24762 .section .bss.g_recovery_page_min_ver,"aw",%nobits 24763 .align 2 24764 .set .LANCHOR139,. + 0 24765 .type g_recovery_page_min_ver, %object 24766 .size g_recovery_page_min_ver, 4 24767g_recovery_page_min_ver: 24768 .space 4 24769 .section .bss.g_recovery_page_num,"aw",%nobits 24770 .align 2 24771 .set .LANCHOR243,. + 0 24772 .type g_recovery_page_num, %object 24773 .size g_recovery_page_num, 4 24774g_recovery_page_num: 24775 .space 4 24776 .section .bss.g_recovery_ppa_tbl,"aw",%nobits 24777 .align 2 24778 .set .LANCHOR244,. + 0 24779 .type g_recovery_ppa_tbl, %object 24780 .size g_recovery_ppa_tbl, 128 24781g_recovery_ppa_tbl: 24782 .space 128 24783 .section .bss.g_req_cache,"aw",%nobits 24784 .align 2 24785 .set .LANCHOR135,. + 0 24786 .type g_req_cache, %object 24787 .size g_req_cache, 4 24788g_req_cache: 24789 .space 4 24790 .section .bss.g_retryMode,"aw",%nobits 24791 .set .LANCHOR10,. + 0 24792 .type g_retryMode, %object 24793 .size g_retryMode, 1 24794g_retryMode: 24795 .space 1 24796 .section .bss.g_slc2KBNand,"aw",%nobits 24797 .set .LANCHOR2,. + 0 24798 .type g_slc2KBNand, %object 24799 .size g_slc2KBNand, 1 24800g_slc2KBNand: 24801 .space 1 24802 .section .bss.g_sys_ext_data,"aw",%nobits 24803 .align 2 24804 .set .LANCHOR141,. + 0 24805 .type g_sys_ext_data, %object 24806 .size g_sys_ext_data, 512 24807g_sys_ext_data: 24808 .space 512 24809 .section .bss.g_sys_save_data,"aw",%nobits 24810 .align 2 24811 .set .LANCHOR82,. + 0 24812 .type g_sys_save_data, %object 24813 .size g_sys_save_data, 48 24814g_sys_save_data: 24815 .space 48 24816 .section .bss.g_tmp_data_superblock_id,"aw",%nobits 24817 .align 1 24818 .set .LANCHOR136,. + 0 24819 .type g_tmp_data_superblock_id, %object 24820 .size g_tmp_data_superblock_id, 2 24821g_tmp_data_superblock_id: 24822 .space 2 24823 .section .bss.g_totle_avg_erase_count,"aw",%nobits 24824 .align 2 24825 .set .LANCHOR214,. + 0 24826 .type g_totle_avg_erase_count, %object 24827 .size g_totle_avg_erase_count, 4 24828g_totle_avg_erase_count: 24829 .space 4 24830 .section .bss.g_totle_cache_write_count,"aw",%nobits 24831 .align 2 24832 .set .LANCHOR169,. + 0 24833 .type g_totle_cache_write_count, %object 24834 .size g_totle_cache_write_count, 4 24835g_totle_cache_write_count: 24836 .space 4 24837 .section .bss.g_totle_discard_page_count,"aw",%nobits 24838 .align 2 24839 .set .LANCHOR168,. + 0 24840 .type g_totle_discard_page_count, %object 24841 .size g_totle_discard_page_count, 4 24842g_totle_discard_page_count: 24843 .space 4 24844 .section .bss.g_totle_gc_page_count,"aw",%nobits 24845 .align 2 24846 .set .LANCHOR166,. + 0 24847 .type g_totle_gc_page_count, %object 24848 .size g_totle_gc_page_count, 4 24849g_totle_gc_page_count: 24850 .space 4 24851 .section .bss.g_totle_l2p_write_count,"aw",%nobits 24852 .align 2 24853 .set .LANCHOR170,. + 0 24854 .type g_totle_l2p_write_count, %object 24855 .size g_totle_l2p_write_count, 4 24856g_totle_l2p_write_count: 24857 .space 4 24858 .section .bss.g_totle_map_block,"aw",%nobits 24859 .align 1 24860 .set .LANCHOR131,. + 0 24861 .type g_totle_map_block, %object 24862 .size g_totle_map_block, 2 24863g_totle_map_block: 24864 .space 2 24865 .section .bss.g_totle_mlc_erase_count,"aw",%nobits 24866 .align 2 24867 .set .LANCHOR172,. + 0 24868 .type g_totle_mlc_erase_count, %object 24869 .size g_totle_mlc_erase_count, 4 24870g_totle_mlc_erase_count: 24871 .space 4 24872 .section .bss.g_totle_read_page_count,"aw",%nobits 24873 .align 2 24874 .set .LANCHOR171,. + 0 24875 .type g_totle_read_page_count, %object 24876 .size g_totle_read_page_count, 4 24877g_totle_read_page_count: 24878 .space 4 24879 .section .bss.g_totle_read_sector,"aw",%nobits 24880 .align 2 24881 .set .LANCHOR226,. + 0 24882 .type g_totle_read_sector, %object 24883 .size g_totle_read_sector, 4 24884g_totle_read_sector: 24885 .space 4 24886 .section .bss.g_totle_slc_erase_count,"aw",%nobits 24887 .align 2 24888 .set .LANCHOR173,. + 0 24889 .type g_totle_slc_erase_count, %object 24890 .size g_totle_slc_erase_count, 4 24891g_totle_slc_erase_count: 24892 .space 4 24893 .section .bss.g_totle_swl_count,"aw",%nobits 24894 .align 2 24895 .set .LANCHOR137,. + 0 24896 .type g_totle_swl_count, %object 24897 .size g_totle_swl_count, 4 24898g_totle_swl_count: 24899 .space 4 24900 .section .bss.g_totle_sys_slc_erase_count,"aw",%nobits 24901 .align 2 24902 .set .LANCHOR81,. + 0 24903 .type g_totle_sys_slc_erase_count, %object 24904 .size g_totle_sys_slc_erase_count, 4 24905g_totle_sys_slc_erase_count: 24906 .space 4 24907 .section .bss.g_totle_vendor_block,"aw",%nobits 24908 .align 1 24909 .set .LANCHOR70,. + 0 24910 .type g_totle_vendor_block, %object 24911 .size g_totle_vendor_block, 2 24912g_totle_vendor_block: 24913 .space 2 24914 .section .bss.g_totle_write_page_count,"aw",%nobits 24915 .align 2 24916 .set .LANCHOR167,. + 0 24917 .type g_totle_write_page_count, %object 24918 .size g_totle_write_page_count, 4 24919g_totle_write_page_count: 24920 .space 4 24921 .section .bss.g_totle_write_sector,"aw",%nobits 24922 .align 2 24923 .set .LANCHOR225,. + 0 24924 .type g_totle_write_sector, %object 24925 .size g_totle_write_sector, 4 24926g_totle_write_sector: 24927 .space 4 24928 .section .bss.g_wr_page_num,"aw",%nobits 24929 .align 2 24930 .set .LANCHOR72,. + 0 24931 .type g_wr_page_num, %object 24932 .size g_wr_page_num, 4 24933g_wr_page_num: 24934 .space 4 24935 .section .bss.gc_discard_updated,"aw",%nobits 24936 .align 2 24937 .set .LANCHOR253,. + 0 24938 .type gc_discard_updated, %object 24939 .size gc_discard_updated, 4 24940gc_discard_updated: 24941 .space 4 24942 .section .bss.gc_ink_free_return_value,"aw",%nobits 24943 .align 1 24944 .set .LANCHOR248,. + 0 24945 .type gc_ink_free_return_value, %object 24946 .size gc_ink_free_return_value, 2 24947gc_ink_free_return_value: 24948 .space 2 24949 .section .bss.gpFlashSaveInfo,"aw",%nobits 24950 .align 2 24951 .set .LANCHOR153,. + 0 24952 .type gpFlashSaveInfo, %object 24953 .size gpFlashSaveInfo, 4 24954gpFlashSaveInfo: 24955 .space 4 24956 .section .bss.gpNandParaInfo,"aw",%nobits 24957 .align 2 24958 .set .LANCHOR7,. + 0 24959 .type gpNandParaInfo, %object 24960 .size gpNandParaInfo, 4 24961gpNandParaInfo: 24962 .space 4 24963 .section .bss.gpNandc,"aw",%nobits 24964 .align 2 24965 .set .LANCHOR19,. + 0 24966 .type gpNandc, %object 24967 .size gpNandc, 4 24968gpNandc: 24969 .space 4 24970 .section .bss.gpNandc1,"aw",%nobits 24971 .align 2 24972 .type gpNandc1, %object 24973 .size gpNandc1, 4 24974gpNandc1: 24975 .space 4 24976 .section .bss.gpReadRetrial,"aw",%nobits 24977 .align 2 24978 .set .LANCHOR145,. + 0 24979 .type gpReadRetrial, %object 24980 .size gpReadRetrial, 4 24981gpReadRetrial: 24982 .space 4 24983 .section .bss.gp_ect_tbl_info,"aw",%nobits 24984 .align 2 24985 .set .LANCHOR199,. + 0 24986 .type gp_ect_tbl_info, %object 24987 .size gp_ect_tbl_info, 4 24988gp_ect_tbl_info: 24989 .space 4 24990 .section .bss.gp_flash_check_buf,"aw",%nobits 24991 .align 2 24992 .type gp_flash_check_buf, %object 24993 .size gp_flash_check_buf, 262144 24994gp_flash_check_buf: 24995 .space 262144 24996 .section .bss.gp_gc_page_buf_info,"aw",%nobits 24997 .align 2 24998 .set .LANCHOR106,. + 0 24999 .type gp_gc_page_buf_info, %object 25000 .size gp_gc_page_buf_info, 4 25001gp_gc_page_buf_info: 25002 .space 4 25003 .section .bss.gp_last_act_superblock,"aw",%nobits 25004 .align 2 25005 .set .LANCHOR252,. + 0 25006 .type gp_last_act_superblock, %object 25007 .size gp_last_act_superblock, 4 25008gp_last_act_superblock: 25009 .space 4 25010 .section .bss.idb_buf,"aw",%nobits 25011 .align 2 25012 .type idb_buf, %object 25013 .size idb_buf, 262144 25014idb_buf: 25015 .space 262144 25016 .section .bss.idb_flash_slc_mode,"aw",%nobits 25017 .align 2 25018 .set .LANCHOR29,. + 0 25019 .type idb_flash_slc_mode, %object 25020 .size idb_flash_slc_mode, 4 25021idb_flash_slc_mode: 25022 .space 4 25023 .section .bss.idb_need_write_back,"aw",%nobits 25024 .align 2 25025 .set .LANCHOR159,. + 0 25026 .type idb_need_write_back, %object 25027 .size idb_need_write_back, 4 25028idb_need_write_back: 25029 .space 4 25030 .section .bss.last_cache_match_count,"aw",%nobits 25031 .align 2 25032 .set .LANCHOR257,. + 0 25033 .type last_cache_match_count, %object 25034 .size last_cache_match_count, 4 25035last_cache_match_count: 25036 .space 4 25037 .section .bss.mlcPageToSlcPageTbl,"aw",%nobits 25038 .align 2 25039 .set .LANCHOR123,. + 0 25040 .type mlcPageToSlcPageTbl, %object 25041 .size mlcPageToSlcPageTbl, 2048 25042mlcPageToSlcPageTbl: 25043 .space 2048 25044 .section .bss.p_blk_mode_table,"aw",%nobits 25045 .align 2 25046 .set .LANCHOR1,. + 0 25047 .type p_blk_mode_table, %object 25048 .size p_blk_mode_table, 4 25049p_blk_mode_table: 25050 .space 4 25051 .section .bss.p_data_block_list_head,"aw",%nobits 25052 .align 2 25053 .set .LANCHOR84,. + 0 25054 .type p_data_block_list_head, %object 25055 .size p_data_block_list_head, 4 25056p_data_block_list_head: 25057 .space 4 25058 .section .bss.p_data_block_list_table,"aw",%nobits 25059 .align 2 25060 .set .LANCHOR83,. + 0 25061 .type p_data_block_list_table, %object 25062 .size p_data_block_list_table, 4 25063p_data_block_list_table: 25064 .space 4 25065 .section .bss.p_data_block_list_tail,"aw",%nobits 25066 .align 2 25067 .set .LANCHOR86,. + 0 25068 .type p_data_block_list_tail, %object 25069 .size p_data_block_list_tail, 4 25070p_data_block_list_tail: 25071 .space 4 25072 .section .bss.p_erase_count_table,"aw",%nobits 25073 .align 2 25074 .set .LANCHOR80,. + 0 25075 .type p_erase_count_table, %object 25076 .size p_erase_count_table, 4 25077p_erase_count_table: 25078 .space 4 25079 .section .bss.p_free_data_block_list_head,"aw",%nobits 25080 .align 2 25081 .set .LANCHOR89,. + 0 25082 .type p_free_data_block_list_head, %object 25083 .size p_free_data_block_list_head, 4 25084p_free_data_block_list_head: 25085 .space 4 25086 .section .bss.p_gc_blk_tbl,"aw",%nobits 25087 .align 2 25088 .set .LANCHOR111,. + 0 25089 .type p_gc_blk_tbl, %object 25090 .size p_gc_blk_tbl, 4 25091p_gc_blk_tbl: 25092 .space 4 25093 .section .bss.p_gc_data_buf,"aw",%nobits 25094 .align 2 25095 .set .LANCHOR107,. + 0 25096 .type p_gc_data_buf, %object 25097 .size p_gc_data_buf, 4 25098p_gc_data_buf: 25099 .space 4 25100 .section .bss.p_gc_page_info,"aw",%nobits 25101 .align 2 25102 .set .LANCHOR114,. + 0 25103 .type p_gc_page_info, %object 25104 .size p_gc_page_info, 4 25105p_gc_page_info: 25106 .space 4 25107 .section .bss.p_gc_spare_buf,"aw",%nobits 25108 .align 2 25109 .set .LANCHOR108,. + 0 25110 .type p_gc_spare_buf, %object 25111 .size p_gc_spare_buf, 4 25112p_gc_spare_buf: 25113 .space 4 25114 .section .bss.p_io_data_buf_0,"aw",%nobits 25115 .align 2 25116 .set .LANCHOR193,. + 0 25117 .type p_io_data_buf_0, %object 25118 .size p_io_data_buf_0, 4 25119p_io_data_buf_0: 25120 .space 4 25121 .section .bss.p_io_data_buf_1,"aw",%nobits 25122 .align 2 25123 .set .LANCHOR194,. + 0 25124 .type p_io_data_buf_1, %object 25125 .size p_io_data_buf_1, 4 25126p_io_data_buf_1: 25127 .space 4 25128 .section .bss.p_io_spare_buf,"aw",%nobits 25129 .align 2 25130 .set .LANCHOR196,. + 0 25131 .type p_io_spare_buf, %object 25132 .size p_io_spare_buf, 4 25133p_io_spare_buf: 25134 .space 4 25135 .section .bss.p_l2p_map_buf,"aw",%nobits 25136 .align 2 25137 .set .LANCHOR129,. + 0 25138 .type p_l2p_map_buf, %object 25139 .size p_l2p_map_buf, 4 25140p_l2p_map_buf: 25141 .space 4 25142 .section .bss.p_l2p_ram_map,"aw",%nobits 25143 .align 2 25144 .set .LANCHOR98,. + 0 25145 .type p_l2p_ram_map, %object 25146 .size p_l2p_ram_map, 4 25147p_l2p_ram_map: 25148 .space 4 25149 .section .bss.p_map_block_table,"aw",%nobits 25150 .align 2 25151 .set .LANCHOR132,. + 0 25152 .type p_map_block_table, %object 25153 .size p_map_block_table, 4 25154p_map_block_table: 25155 .space 4 25156 .section .bss.p_map_block_valid_page_count,"aw",%nobits 25157 .align 2 25158 .set .LANCHOR128,. + 0 25159 .type p_map_block_valid_page_count, %object 25160 .size p_map_block_valid_page_count, 4 25161p_map_block_valid_page_count: 25162 .space 4 25163 .section .bss.p_map_block_ver_table,"aw",%nobits 25164 .align 2 25165 .set .LANCHOR133,. + 0 25166 .type p_map_block_ver_table, %object 25167 .size p_map_block_ver_table, 4 25168p_map_block_ver_table: 25169 .space 4 25170 .section .bss.p_map_region_ppn_check_table,"aw",%nobits 25171 .align 2 25172 .set .LANCHOR203,. + 0 25173 .type p_map_region_ppn_check_table, %object 25174 .size p_map_region_ppn_check_table, 4 25175p_map_region_ppn_check_table: 25176 .space 4 25177 .section .bss.p_map_region_ppn_table,"aw",%nobits 25178 .align 2 25179 .set .LANCHOR134,. + 0 25180 .type p_map_region_ppn_table, %object 25181 .size p_map_region_ppn_table, 4 25182p_map_region_ppn_table: 25183 .space 4 25184 .section .bss.p_plane_order_table,"aw",%nobits 25185 .set .LANCHOR47,. + 0 25186 .type p_plane_order_table, %object 25187 .size p_plane_order_table, 32 25188p_plane_order_table: 25189 .space 32 25190 .section .bss.p_swl_mul_table,"aw",%nobits 25191 .align 2 25192 .set .LANCHOR140,. + 0 25193 .type p_swl_mul_table, %object 25194 .size p_swl_mul_table, 4 25195p_swl_mul_table: 25196 .space 4 25197 .section .bss.p_sys_data_buf,"aw",%nobits 25198 .align 2 25199 .set .LANCHOR189,. + 0 25200 .type p_sys_data_buf, %object 25201 .size p_sys_data_buf, 4 25202p_sys_data_buf: 25203 .space 4 25204 .section .bss.p_sys_data_buf_1,"aw",%nobits 25205 .align 2 25206 .set .LANCHOR190,. + 0 25207 .type p_sys_data_buf_1, %object 25208 .size p_sys_data_buf_1, 4 25209p_sys_data_buf_1: 25210 .space 4 25211 .section .bss.p_sys_spare_buf,"aw",%nobits 25212 .align 2 25213 .set .LANCHOR195,. + 0 25214 .type p_sys_spare_buf, %object 25215 .size p_sys_spare_buf, 4 25216p_sys_spare_buf: 25217 .space 4 25218 .section .bss.p_valid_page_count_table,"aw",%nobits 25219 .align 2 25220 .set .LANCHOR85,. + 0 25221 .type p_valid_page_count_table, %object 25222 .size p_valid_page_count_table, 4 25223p_valid_page_count_table: 25224 .space 4 25225 .section .bss.p_vendor_block_table,"aw",%nobits 25226 .align 2 25227 .set .LANCHOR71,. + 0 25228 .type p_vendor_block_table, %object 25229 .size p_vendor_block_table, 4 25230p_vendor_block_table: 25231 .space 4 25232 .section .bss.p_vendor_block_valid_page_count,"aw",%nobits 25233 .align 2 25234 .set .LANCHOR200,. + 0 25235 .type p_vendor_block_valid_page_count, %object 25236 .size p_vendor_block_valid_page_count, 4 25237p_vendor_block_valid_page_count: 25238 .space 4 25239 .section .bss.p_vendor_block_ver_table,"aw",%nobits 25240 .align 2 25241 .set .LANCHOR201,. + 0 25242 .type p_vendor_block_ver_table, %object 25243 .size p_vendor_block_ver_table, 4 25244p_vendor_block_ver_table: 25245 .space 4 25246 .section .bss.p_vendor_data_buf,"aw",%nobits 25247 .align 2 25248 .set .LANCHOR191,. + 0 25249 .type p_vendor_data_buf, %object 25250 .size p_vendor_data_buf, 4 25251p_vendor_data_buf: 25252 .space 4 25253 .section .bss.p_vendor_region_ppn_table,"aw",%nobits 25254 .align 2 25255 .set .LANCHOR202,. + 0 25256 .type p_vendor_region_ppn_table, %object 25257 .size p_vendor_region_ppn_table, 4 25258p_vendor_region_ppn_table: 25259 .space 4 25260 .section .bss.p_wr_io_data_buf,"aw",%nobits 25261 .align 2 25262 .set .LANCHOR192,. + 0 25263 .type p_wr_io_data_buf, %object 25264 .size p_wr_io_data_buf, 4 25265p_wr_io_data_buf: 25266 .space 4 25267 .section .bss.p_wr_io_spare_buf,"aw",%nobits 25268 .align 2 25269 .set .LANCHOR197,. + 0 25270 .type p_wr_io_spare_buf, %object 25271 .size p_wr_io_spare_buf, 4 25272p_wr_io_spare_buf: 25273 .space 4 25274 .section .bss.read_retry_cur_offset,"aw",%nobits 25275 .set .LANCHOR21,. + 0 25276 .type read_retry_cur_offset, %object 25277 .size read_retry_cur_offset, 4 25278read_retry_cur_offset: 25279 .space 4 25280 .section .bss.req_erase,"aw",%nobits 25281 .align 2 25282 .set .LANCHOR79,. + 0 25283 .type req_erase, %object 25284 .size req_erase, 4 25285req_erase: 25286 .space 4 25287 .section .bss.req_gc,"aw",%nobits 25288 .align 2 25289 .set .LANCHOR109,. + 0 25290 .type req_gc, %object 25291 .size req_gc, 4 25292req_gc: 25293 .space 4 25294 .section .bss.req_gc_dst,"aw",%nobits 25295 .align 2 25296 .set .LANCHOR187,. + 0 25297 .type req_gc_dst, %object 25298 .size req_gc_dst, 4 25299req_gc_dst: 25300 .space 4 25301 .section .bss.req_prgm,"aw",%nobits 25302 .align 2 25303 .set .LANCHOR188,. + 0 25304 .type req_prgm, %object 25305 .size req_prgm, 4 25306req_prgm: 25307 .space 4 25308 .section .bss.req_read,"aw",%nobits 25309 .align 2 25310 .set .LANCHOR186,. + 0 25311 .type req_read, %object 25312 .size req_read, 4 25313req_read: 25314 .space 4 25315 .section .bss.req_sys,"aw",%nobits 25316 .align 2 25317 .set .LANCHOR211,. + 0 25318 .type req_sys, %object 25319 .size req_sys, 36 25320req_sys: 25321 .space 36 25322 .section .bss.req_wr_io,"aw",%nobits 25323 .align 2 25324 .set .LANCHOR73,. + 0 25325 .type req_wr_io, %object 25326 .size req_wr_io, 4 25327req_wr_io: 25328 .space 4 25329 .section .bss.slcPageToMlcPageTbl,"aw",%nobits 25330 .align 2 25331 .set .LANCHOR17,. + 0 25332 .type slcPageToMlcPageTbl, %object 25333 .size slcPageToMlcPageTbl, 1024 25334slcPageToMlcPageTbl: 25335 .space 1024 25336 .section .data.FtlMallocOffset,"aw",%progbits 25337 .align 2 25338 .type FtlMallocOffset, %object 25339 .size FtlMallocOffset, 4 25340FtlMallocOffset: 25341 .word 64 25342 .section .data.LastWritenPbaAddr,"aw",%progbits 25343 .align 2 25344 .type LastWritenPbaAddr, %object 25345 .size LastWritenPbaAddr, 4 25346LastWritenPbaAddr: 25347 .word -1 25348 .section .data.NandFlashParaTbl,"aw",%progbits 25349 .align 1 25350 .set .LANCHOR151,. + 0 25351 .type NandFlashParaTbl, %object 25352 .size NandFlashParaTbl, 2752 25353NandFlashParaTbl: 25354 .byte 6 25355 .byte 44 25356 .byte 100 25357 .byte 68 25358 .byte 75 25359 .byte -87 25360 .byte 0 25361 .byte 4 25362 .byte 1 25363 .byte 16 25364 .short 256 25365 .byte 2 25366 .byte 2 25367 .short 2048 25368 .short 479 25369 .byte 3 25370 .byte 17 25371 .byte 40 25372 .byte 32 25373 .byte 1 25374 .byte 0 25375 .byte 1 25376 .byte 0 25377 .byte 0 25378 .byte 0 25379 .space 4 25380 .byte 6 25381 .byte 44 25382 .byte 68 25383 .byte 68 25384 .byte 75 25385 .byte -87 25386 .byte 0 25387 .byte 4 25388 .byte 1 25389 .byte 16 25390 .short 256 25391 .byte 2 25392 .byte 2 25393 .short 1064 25394 .short 479 25395 .byte 3 25396 .byte 17 25397 .byte 40 25398 .byte 32 25399 .byte 1 25400 .byte 0 25401 .byte 1 25402 .byte 0 25403 .byte 0 25404 .byte 0 25405 .space 4 25406 .byte 6 25407 .byte 44 25408 .byte 104 25409 .byte 4 25410 .byte 74 25411 .byte -87 25412 .byte 0 25413 .byte 4 25414 .byte 1 25415 .byte 8 25416 .short 256 25417 .byte 2 25418 .byte 2 25419 .short 2048 25420 .short 287 25421 .byte 1 25422 .byte 0 25423 .byte 24 25424 .byte 32 25425 .byte 1 25426 .byte 0 25427 .byte 1 25428 .byte 0 25429 .byte 0 25430 .byte 0 25431 .space 4 25432 .byte 5 25433 .byte 44 25434 .byte -120 25435 .byte 4 25436 .byte 75 25437 .byte -87 25438 .byte 0 25439 .byte 4 25440 .byte 1 25441 .byte 16 25442 .short 256 25443 .byte 2 25444 .byte 2 25445 .short 2048 25446 .short 287 25447 .byte 1 25448 .byte 0 25449 .byte 24 25450 .byte 32 25451 .byte 1 25452 .byte 0 25453 .byte 1 25454 .byte 0 25455 .byte 0 25456 .byte 0 25457 .space 4 25458 .byte 6 25459 .byte 44 25460 .byte -88 25461 .byte 5 25462 .byte -53 25463 .byte -87 25464 .byte 0 25465 .byte 4 25466 .byte 2 25467 .byte 16 25468 .short 256 25469 .byte 2 25470 .byte 2 25471 .short 2048 25472 .short 287 25473 .byte 1 25474 .byte 0 25475 .byte 24 25476 .byte 32 25477 .byte 1 25478 .byte 0 25479 .byte 1 25480 .byte 0 25481 .byte 0 25482 .byte 0 25483 .space 4 25484 .byte 6 25485 .byte 44 25486 .byte 104 25487 .byte 4 25488 .byte 70 25489 .byte -119 25490 .byte 0 25491 .byte 4 25492 .byte 1 25493 .byte 8 25494 .short 256 25495 .byte 2 25496 .byte 2 25497 .short 2048 25498 .short 287 25499 .byte 1 25500 .byte 0 25501 .byte 24 25502 .byte 32 25503 .byte 1 25504 .byte 0 25505 .byte 1 25506 .byte 0 25507 .byte 0 25508 .byte 0 25509 .space 4 25510 .byte 6 25511 .byte 44 25512 .byte 72 25513 .byte 4 25514 .byte 74 25515 .byte -91 25516 .byte 0 25517 .byte 4 25518 .byte 1 25519 .byte 8 25520 .short 256 25521 .byte 2 25522 .byte 2 25523 .short 1024 25524 .short 287 25525 .byte 1 25526 .byte 0 25527 .byte 24 25528 .byte 32 25529 .byte 1 25530 .byte 0 25531 .byte 1 25532 .byte 0 25533 .byte 0 25534 .byte 0 25535 .space 4 25536 .byte 6 25537 .byte 44 25538 .byte -124 25539 .byte 100 25540 .byte 60 25541 .byte -91 25542 .byte 0 25543 .byte 4 25544 .byte 1 25545 .byte 32 25546 .short 512 25547 .byte 2 25548 .byte 2 25549 .short 1024 25550 .short 479 25551 .byte 3 25552 .byte 17 25553 .byte 40 25554 .byte 32 25555 .byte 1 25556 .byte 0 25557 .byte 1 25558 .byte 0 25559 .byte 0 25560 .byte 0 25561 .space 4 25562 .byte 5 25563 .byte 44 25564 .byte -124 25565 .byte 100 25566 .byte 84 25567 .byte -87 25568 .byte 0 25569 .byte 4 25570 .byte 1 25571 .byte 32 25572 .short 512 25573 .byte 2 25574 .byte 2 25575 .short 1024 25576 .short 479 25577 .byte 4 25578 .byte 18 25579 .byte 60 25580 .byte 32 25581 .byte 1 25582 .byte 0 25583 .byte 1 25584 .byte 0 25585 .byte 0 25586 .byte 0 25587 .space 4 25588 .byte 6 25589 .byte 44 25590 .byte -41 25591 .byte -108 25592 .byte 62 25593 .byte -124 25594 .byte 0 25595 .byte 4 25596 .byte 1 25597 .byte 8 25598 .short 128 25599 .byte 2 25600 .byte 2 25601 .short 4096 25602 .short 279 25603 .byte 1 25604 .byte 0 25605 .byte 24 25606 .byte 32 25607 .byte 1 25608 .byte 0 25609 .byte 1 25610 .byte 0 25611 .byte 0 25612 .byte 0 25613 .space 4 25614 .byte 6 25615 .byte 44 25616 .byte 72 25617 .byte 4 25618 .byte 70 25619 .byte -123 25620 .byte 0 25621 .byte 4 25622 .byte 1 25623 .byte 8 25624 .short 256 25625 .byte 2 25626 .byte 2 25627 .short 1024 25628 .short 287 25629 .byte 1 25630 .byte 0 25631 .byte 24 25632 .byte 32 25633 .byte 1 25634 .byte 0 25635 .byte 1 25636 .byte 0 25637 .byte 0 25638 .byte 0 25639 .space 4 25640 .byte 6 25641 .byte 44 25642 .byte -120 25643 .byte 5 25644 .byte -58 25645 .byte -119 25646 .byte 0 25647 .byte 4 25648 .byte 2 25649 .byte 8 25650 .short 256 25651 .byte 2 25652 .byte 2 25653 .short 2048 25654 .short 287 25655 .byte 1 25656 .byte 0 25657 .byte 24 25658 .byte 32 25659 .byte 1 25660 .byte 0 25661 .byte 1 25662 .byte 0 25663 .byte 0 25664 .byte 0 25665 .space 4 25666 .byte 5 25667 .byte 44 25668 .byte -120 25669 .byte 36 25670 .byte 75 25671 .byte -87 25672 .byte 0 25673 .byte 4 25674 .byte 1 25675 .byte 16 25676 .short 256 25677 .byte 2 25678 .byte 2 25679 .short 2048 25680 .short 287 25681 .byte 1 25682 .byte 0 25683 .byte 24 25684 .byte 32 25685 .byte 1 25686 .byte 0 25687 .byte 1 25688 .byte 0 25689 .byte 0 25690 .byte 0 25691 .space 4 25692 .byte 6 25693 .byte 44 25694 .byte 104 25695 .byte 0 25696 .byte 39 25697 .byte -87 25698 .byte 0 25699 .byte 4 25700 .byte 1 25701 .byte 16 25702 .short 128 25703 .byte 1 25704 .byte 2 25705 .short 2048 25706 .short 287 25707 .byte 0 25708 .byte 0 25709 .byte 24 25710 .byte 32 25711 .byte 1 25712 .byte 0 25713 .byte 1 25714 .byte 0 25715 .byte 0 25716 .byte 0 25717 .space 4 25718 .byte 5 25719 .byte 44 25720 .byte 100 25721 .byte 100 25722 .byte 86 25723 .byte -91 25724 .byte 0 25725 .byte 4 25726 .byte 1 25727 .byte 24 25728 .short 512 25729 .byte 2 25730 .byte 2 25731 .short 700 25732 .short 479 25733 .byte 4 25734 .byte 18 25735 .byte 60 25736 .byte 32 25737 .byte 1 25738 .byte 0 25739 .byte 1 25740 .byte 0 25741 .byte 0 25742 .byte 0 25743 .space 4 25744 .byte 6 25745 .byte 44 25746 .byte -124 25747 .byte -59 25748 .byte 75 25749 .byte -87 25750 .byte 0 25751 .byte 4 25752 .byte 2 25753 .byte 16 25754 .short 256 25755 .byte 2 25756 .byte 2 25757 .short 2048 25758 .short 479 25759 .byte 3 25760 .byte 17 25761 .byte 40 25762 .byte 32 25763 .byte 1 25764 .byte 0 25765 .byte 1 25766 .byte 0 25767 .byte 0 25768 .byte 0 25769 .space 4 25770 .byte 6 25771 .byte 44 25772 .byte -43 25773 .byte -47 25774 .byte -90 25775 .byte 104 25776 .byte 0 25777 .byte 4 25778 .byte 2 25779 .byte 8 25780 .short 64 25781 .byte 1 25782 .byte 2 25783 .short 2048 25784 .short 279 25785 .byte 0 25786 .byte 0 25787 .byte 24 25788 .byte 32 25789 .byte 1 25790 .byte 0 25791 .byte 1 25792 .byte 0 25793 .byte 0 25794 .byte 0 25795 .space 4 25796 .byte 6 25797 .byte 44 25798 .byte -36 25799 .byte -112 25800 .byte -90 25801 .byte 84 25802 .byte 0 25803 .byte 4 25804 .byte 1 25805 .byte 8 25806 .short 64 25807 .byte 1 25808 .byte 2 25809 .short 1024 25810 .short 279 25811 .byte 0 25812 .byte 0 25813 .byte 24 25814 .byte 32 25815 .byte 1 25816 .byte 0 25817 .byte 1 25818 .byte 0 25819 .byte 0 25820 .byte 0 25821 .space 4 25822 .byte 5 25823 .byte 44 25824 .byte 100 25825 .byte 100 25826 .byte 84 25827 .byte -92 25828 .byte 0 25829 .byte 4 25830 .byte 1 25831 .byte 32 25832 .short 512 25833 .byte 2 25834 .byte 1 25835 .short 1024 25836 .short 479 25837 .byte 4 25838 .byte 18 25839 .byte 60 25840 .byte 32 25841 .byte 1 25842 .byte 0 25843 .byte 1 25844 .byte 0 25845 .byte 0 25846 .byte 0 25847 .space 4 25848 .byte 5 25849 .byte 44 25850 .byte -124 25851 .byte 68 25852 .byte 50 25853 .byte -86 25854 .byte 0 25855 .byte 4 25856 .byte 1 25857 .byte 32 25858 .short 512 25859 .byte 2 25860 .byte 1 25861 .short 2184 25862 .short 1479 25863 .byte 5 25864 .byte 19 25865 .byte 60 25866 .byte 32 25867 .byte 1 25868 .byte 0 25869 .byte 1 25870 .byte 0 25871 .byte 1 25872 .byte 0 25873 .space 4 25874 .byte 5 25875 .byte 44 25876 .byte 100 25877 .byte 68 25878 .byte 50 25879 .byte -91 25880 .byte 0 25881 .byte 4 25882 .byte 1 25883 .byte 32 25884 .short 512 25885 .byte 2 25886 .byte 1 25887 .short 1048 25888 .short 1479 25889 .byte 5 25890 .byte 19 25891 .byte 60 25892 .byte 32 25893 .byte 1 25894 .byte 0 25895 .byte 1 25896 .byte 0 25897 .byte 1 25898 .byte 0 25899 .space 4 25900 .byte 5 25901 .byte 44 25902 .byte 100 25903 .byte 100 25904 .byte 60 25905 .byte -91 25906 .byte 0 25907 .byte 4 25908 .byte 1 25909 .byte 32 25910 .short 512 25911 .byte 2 25912 .byte 1 25913 .short 1044 25914 .short 479 25915 .byte 3 25916 .byte 17 25917 .byte 40 25918 .byte 32 25919 .byte 1 25920 .byte 0 25921 .byte 1 25922 .byte 0 25923 .byte 0 25924 .byte 0 25925 .space 4 25926 .byte 5 25927 .byte 44 25928 .byte -124 25929 .byte 68 25930 .byte 50 25931 .byte -86 25932 .byte 0 25933 .byte 4 25934 .byte 1 25935 .byte 32 25936 .short 512 25937 .byte 2 25938 .byte 1 25939 .short 2184 25940 .short 1479 25941 .byte 5 25942 .byte 19 25943 .byte 60 25944 .byte 32 25945 .byte 1 25946 .byte 0 25947 .byte 4 25948 .byte 0 25949 .byte 1 25950 .byte 0 25951 .space 4 25952 .byte 5 25953 .byte 44 25954 .byte -124 25955 .byte 68 25956 .byte 52 25957 .byte -86 25958 .byte 0 25959 .byte 4 25960 .byte 1 25961 .byte 32 25962 .short 512 25963 .byte 2 25964 .byte 1 25965 .short 2184 25966 .short 1479 25967 .byte 5 25968 .byte 19 25969 .byte 60 25970 .byte 32 25971 .byte 1 25972 .byte 0 25973 .byte 4 25974 .byte 0 25975 .byte 1 25976 .byte 0 25977 .space 4 25978 .byte 5 25979 .byte 44 25980 .byte -124 25981 .byte -60 25982 .byte 52 25983 .byte -86 25984 .byte 0 25985 .byte 4 25986 .byte 1 25987 .byte 32 25988 .short 512 25989 .byte 2 25990 .byte 1 25991 .short 2184 25992 .short 1479 25993 .byte 5 25994 .byte 19 25995 .byte 60 25996 .byte 32 25997 .byte 1 25998 .byte 0 25999 .byte 1 26000 .byte 0 26001 .byte 1 26002 .byte 0 26003 .space 4 26004 .byte 5 26005 .byte 44 26006 .byte -124 26007 .byte 68 26008 .byte 52 26009 .byte -92 26010 .byte 0 26011 .byte 4 26012 .byte 1 26013 .byte 32 26014 .short 512 26015 .byte 2 26016 .byte 1 26017 .short 2184 26018 .short 1479 26019 .byte 5 26020 .byte 19 26021 .byte 60 26022 .byte 32 26023 .byte 1 26024 .byte 0 26025 .byte 1 26026 .byte 0 26027 .byte 1 26028 .byte 0 26029 .space 4 26030 .byte 5 26031 .byte 44 26032 .byte -124 26033 .byte 100 26034 .byte 60 26035 .byte -87 26036 .byte 0 26037 .byte 4 26038 .byte 1 26039 .byte 32 26040 .short 512 26041 .byte 2 26042 .byte 2 26043 .short 1024 26044 .short 479 26045 .byte 3 26046 .byte 17 26047 .byte 40 26048 .byte 32 26049 .byte 1 26050 .byte 0 26051 .byte 1 26052 .byte 0 26053 .byte 0 26054 .byte 0 26055 .space 4 26056 .byte 6 26057 .byte 44 26058 .byte -92 26059 .byte 100 26060 .byte 50 26061 .byte -86 26062 .byte 4 26063 .byte 4 26064 .byte 1 26065 .byte 32 26066 .short 1024 26067 .byte 2 26068 .byte 1 26069 .short 2192 26070 .short 1479 26071 .byte 10 26072 .byte 19 26073 .byte 60 26074 .byte 32 26075 .byte 1 26076 .byte 0 26077 .byte 4 26078 .byte 0 26079 .byte 1 26080 .byte 0 26081 .space 4 26082 .byte 6 26083 .byte -83 26084 .byte -34 26085 .byte -108 26086 .byte -46 26087 .byte 4 26088 .byte 67 26089 .byte 2 26090 .byte 1 26091 .byte 16 26092 .short 256 26093 .byte 2 26094 .byte 2 26095 .short 2048 26096 .short 473 26097 .byte 1 26098 .byte 1 26099 .byte 24 26100 .byte 32 26101 .byte 4 26102 .byte 0 26103 .byte 3 26104 .byte 0 26105 .byte 0 26106 .byte 0 26107 .space 4 26108 .byte 6 26109 .byte -83 26110 .byte -41 26111 .byte -108 26112 .byte -38 26113 .byte 116 26114 .byte -61 26115 .byte 2 26116 .byte 1 26117 .byte 16 26118 .short 256 26119 .byte 2 26120 .byte 2 26121 .short 1024 26122 .short 473 26123 .byte 1 26124 .byte 2 26125 .byte 40 26126 .byte 32 26127 .byte 4 26128 .byte 0 26129 .byte 3 26130 .byte 0 26131 .byte 0 26132 .byte 0 26133 .space 4 26134 .byte 6 26135 .byte -83 26136 .byte -41 26137 .byte -108 26138 .byte -111 26139 .byte 96 26140 .byte 68 26141 .byte 2 26142 .byte 1 26143 .byte 16 26144 .short 256 26145 .byte 2 26146 .byte 2 26147 .short 1046 26148 .short 473 26149 .byte 1 26150 .byte 3 26151 .byte 40 26152 .byte 32 26153 .byte 4 26154 .byte 1 26155 .byte 3 26156 .byte 0 26157 .byte 0 26158 .byte 0 26159 .space 4 26160 .byte 6 26161 .byte -83 26162 .byte -34 26163 .byte -108 26164 .byte -38 26165 .byte 116 26166 .byte -60 26167 .byte 2 26168 .byte 1 26169 .byte 16 26170 .short 256 26171 .byte 2 26172 .byte 2 26173 .short 2090 26174 .short 473 26175 .byte 1 26176 .byte 4 26177 .byte 40 26178 .byte 32 26179 .byte 4 26180 .byte 1 26181 .byte 3 26182 .byte 0 26183 .byte 0 26184 .byte 0 26185 .space 4 26186 .byte 6 26187 .byte -83 26188 .byte -34 26189 .byte -108 26190 .byte -21 26191 .byte 116 26192 .byte 68 26193 .byte 2 26194 .byte 1 26195 .byte 32 26196 .short 256 26197 .byte 2 26198 .byte 2 26199 .short 1066 26200 .short 473 26201 .byte 1 26202 .byte 7 26203 .byte 40 26204 .byte 32 26205 .byte 4 26206 .byte 1 26207 .byte 3 26208 .byte 0 26209 .byte 0 26210 .byte 0 26211 .space 4 26212 .byte 6 26213 .byte -83 26214 .byte -43 26215 .byte -108 26216 .byte -38 26217 .byte 116 26218 .byte -60 26219 .byte 2 26220 .byte 1 26221 .byte 16 26222 .short 256 26223 .byte 2 26224 .byte 2 26225 .short 530 26226 .short 473 26227 .byte 1 26228 .byte 3 26229 .byte 40 26230 .byte 32 26231 .byte 4 26232 .byte 1 26233 .byte 3 26234 .byte 0 26235 .byte 0 26236 .byte 0 26237 .space 4 26238 .byte 6 26239 .byte -83 26240 .byte -41 26241 .byte -108 26242 .byte -102 26243 .byte 116 26244 .byte 66 26245 .byte 2 26246 .byte 1 26247 .byte 16 26248 .short 256 26249 .byte 2 26250 .byte 2 26251 .short 1024 26252 .short 281 26253 .byte 1 26254 .byte 0 26255 .byte 24 26256 .byte 32 26257 .byte 4 26258 .byte 0 26259 .byte 3 26260 .byte 0 26261 .byte 0 26262 .byte 0 26263 .space 4 26264 .byte 6 26265 .byte -83 26266 .byte -34 26267 .byte 20 26268 .byte -89 26269 .byte 66 26270 .byte 74 26271 .byte 2 26272 .byte 1 26273 .byte 32 26274 .short 256 26275 .byte 2 26276 .byte 2 26277 .short 1060 26278 .short 473 26279 .byte 2 26280 .byte 5 26281 .byte 40 26282 .byte 32 26283 .byte 4 26284 .byte 1 26285 .byte 3 26286 .byte 0 26287 .byte 0 26288 .byte 0 26289 .space 4 26290 .byte 6 26291 .byte -83 26292 .byte -41 26293 .byte 20 26294 .byte -98 26295 .byte 52 26296 .byte 74 26297 .byte 2 26298 .byte 1 26299 .byte 16 26300 .short 256 26301 .byte 2 26302 .byte 2 26303 .short 1056 26304 .short 473 26305 .byte 2 26306 .byte 5 26307 .byte 40 26308 .byte 32 26309 .byte 4 26310 .byte 1 26311 .byte 3 26312 .byte 0 26313 .byte 0 26314 .byte 0 26315 .space 4 26316 .byte 6 26317 .byte -83 26318 .byte -34 26319 .byte -108 26320 .byte -89 26321 .byte 66 26322 .byte 72 26323 .byte 2 26324 .byte 1 26325 .byte 32 26326 .short 256 26327 .byte 2 26328 .byte 2 26329 .short 1060 26330 .short 473 26331 .byte 2 26332 .byte 5 26333 .byte 40 26334 .byte 32 26335 .byte 4 26336 .byte 1 26337 .byte 3 26338 .byte 0 26339 .byte 0 26340 .byte 0 26341 .space 4 26342 .byte 6 26343 .byte -83 26344 .byte -34 26345 .byte 20 26346 .byte -85 26347 .byte 66 26348 .byte 74 26349 .byte 2 26350 .byte 1 26351 .byte 32 26352 .short 256 26353 .byte 2 26354 .byte 2 26355 .short 1056 26356 .short 473 26357 .byte 2 26358 .byte 6 26359 .byte 40 26360 .byte 32 26361 .byte 3 26362 .byte 1 26363 .byte 3 26364 .byte 0 26365 .byte 0 26366 .byte 0 26367 .space 4 26368 .byte 6 26369 .byte -83 26370 .byte 58 26371 .byte 20 26372 .byte -85 26373 .byte 66 26374 .byte 74 26375 .byte 2 26376 .byte 1 26377 .byte 32 26378 .short 256 26379 .byte 2 26380 .byte 2 26381 .short 2092 26382 .short 473 26383 .byte 2 26384 .byte 5 26385 .byte 40 26386 .byte 32 26387 .byte 3 26388 .byte 1 26389 .byte 3 26390 .byte 0 26391 .byte 0 26392 .byte 0 26393 .space 4 26394 .byte 6 26395 .byte -83 26396 .byte -43 26397 .byte -108 26398 .byte -102 26399 .byte 116 26400 .byte 66 26401 .byte 2 26402 .byte 1 26403 .byte 16 26404 .short 256 26405 .byte 2 26406 .byte 1 26407 .short 1024 26408 .short 273 26409 .byte 1 26410 .byte 0 26411 .byte 24 26412 .byte 32 26413 .byte 4 26414 .byte 1 26415 .byte 3 26416 .byte 0 26417 .byte 0 26418 .byte 0 26419 .space 4 26420 .byte 6 26421 .byte -83 26422 .byte 58 26423 .byte 20 26424 .byte 3 26425 .byte 8 26426 .byte 80 26427 .byte 2 26428 .byte 1 26429 .byte 32 26430 .short 388 26431 .byte 2 26432 .byte 2 26433 .short 1362 26434 .short 473 26435 .byte 9 26436 .byte 8 26437 .byte 40 26438 .byte 32 26439 .byte 3 26440 .byte 1 26441 .byte 3 26442 .byte 0 26443 .byte 0 26444 .byte 0 26445 .space 4 26446 .byte 6 26447 .byte -119 26448 .byte 100 26449 .byte 68 26450 .byte 75 26451 .byte -87 26452 .byte 0 26453 .byte 7 26454 .byte 1 26455 .byte 16 26456 .short 256 26457 .byte 2 26458 .byte 2 26459 .short 2048 26460 .short 479 26461 .byte 3 26462 .byte 17 26463 .byte 40 26464 .byte 32 26465 .byte 1 26466 .byte 0 26467 .byte 1 26468 .byte 0 26469 .byte 0 26470 .byte 0 26471 .space 4 26472 .byte 6 26473 .byte -119 26474 .byte -120 26475 .byte 36 26476 .byte 75 26477 .byte -87 26478 .byte -124 26479 .byte 7 26480 .byte 1 26481 .byte 16 26482 .short 256 26483 .byte 2 26484 .byte 2 26485 .short 2048 26486 .short 479 26487 .byte 3 26488 .byte 17 26489 .byte 40 26490 .byte 32 26491 .byte 1 26492 .byte 0 26493 .byte 1 26494 .byte 0 26495 .byte 0 26496 .byte 0 26497 .space 4 26498 .byte 6 26499 .byte -119 26500 .byte -120 26501 .byte 36 26502 .byte 75 26503 .byte -87 26504 .byte 0 26505 .byte 7 26506 .byte 1 26507 .byte 16 26508 .short 256 26509 .byte 2 26510 .byte 2 26511 .short 2048 26512 .short 279 26513 .byte 1 26514 .byte 0 26515 .byte 24 26516 .byte 32 26517 .byte 1 26518 .byte 0 26519 .byte 1 26520 .byte 0 26521 .byte 0 26522 .byte 0 26523 .space 4 26524 .byte 6 26525 .byte -119 26526 .byte 104 26527 .byte 36 26528 .byte 74 26529 .byte -87 26530 .byte 0 26531 .byte 7 26532 .byte 1 26533 .byte 8 26534 .short 256 26535 .byte 2 26536 .byte 2 26537 .short 2048 26538 .short 279 26539 .byte 1 26540 .byte 0 26541 .byte 24 26542 .byte 32 26543 .byte 1 26544 .byte 0 26545 .byte 1 26546 .byte 0 26547 .byte 0 26548 .byte 0 26549 .space 4 26550 .byte 6 26551 .byte -119 26552 .byte 104 26553 .byte 4 26554 .byte 74 26555 .byte -87 26556 .byte 0 26557 .byte 7 26558 .byte 1 26559 .byte 8 26560 .short 256 26561 .byte 2 26562 .byte 2 26563 .short 2048 26564 .short 279 26565 .byte 1 26566 .byte 0 26567 .byte 24 26568 .byte 32 26569 .byte 1 26570 .byte 0 26571 .byte 1 26572 .byte 0 26573 .byte 0 26574 .byte 0 26575 .space 4 26576 .byte 6 26577 .byte -119 26578 .byte -41 26579 .byte -108 26580 .byte 62 26581 .byte -124 26582 .byte 0 26583 .byte 7 26584 .byte 1 26585 .byte 8 26586 .short 256 26587 .byte 2 26588 .byte 2 26589 .short 2048 26590 .short 279 26591 .byte 1 26592 .byte 0 26593 .byte 24 26594 .byte 32 26595 .byte 1 26596 .byte 0 26597 .byte 1 26598 .byte 0 26599 .byte 0 26600 .byte 0 26601 .space 4 26602 .byte 6 26603 .byte -119 26604 .byte 104 26605 .byte 4 26606 .byte 70 26607 .byte -87 26608 .byte 0 26609 .byte 7 26610 .byte 1 26611 .byte 8 26612 .short 256 26613 .byte 2 26614 .byte 2 26615 .short 2048 26616 .short 279 26617 .byte 1 26618 .byte 0 26619 .byte 24 26620 .byte 32 26621 .byte 1 26622 .byte 0 26623 .byte 1 26624 .byte 0 26625 .byte 0 26626 .byte 0 26627 .space 4 26628 .byte 5 26629 .byte -119 26630 .byte 100 26631 .byte 100 26632 .byte 60 26633 .byte -95 26634 .byte 0 26635 .byte 7 26636 .byte 1 26637 .byte 32 26638 .short 512 26639 .byte 2 26640 .byte 1 26641 .short 1024 26642 .short 455 26643 .byte 4 26644 .byte 17 26645 .byte 40 26646 .byte 32 26647 .byte 1 26648 .byte 0 26649 .byte 1 26650 .byte 0 26651 .byte 0 26652 .byte 0 26653 .space 4 26654 .byte 5 26655 .byte -119 26656 .byte -124 26657 .byte 100 26658 .byte 60 26659 .byte -91 26660 .byte 0 26661 .byte 7 26662 .byte 1 26663 .byte 32 26664 .short 512 26665 .byte 2 26666 .byte 2 26667 .short 1024 26668 .short 455 26669 .byte 4 26670 .byte 17 26671 .byte 40 26672 .byte 32 26673 .byte 1 26674 .byte 0 26675 .byte 1 26676 .byte 0 26677 .byte 0 26678 .byte 0 26679 .space 4 26680 .byte 6 26681 .byte -119 26682 .byte -120 26683 .byte 36 26684 .byte 59 26685 .byte -87 26686 .byte 0 26687 .byte 7 26688 .byte 1 26689 .byte 16 26690 .short 192 26691 .byte 2 26692 .byte 2 26693 .short 2048 26694 .short 279 26695 .byte 12 26696 .byte 0 26697 .byte 24 26698 .byte 32 26699 .byte 1 26700 .byte 0 26701 .byte 1 26702 .byte 0 26703 .byte 0 26704 .byte 0 26705 .space 4 26706 .byte 6 26707 .byte -104 26708 .byte -41 26709 .byte -124 26710 .byte -109 26711 .byte 114 26712 .byte 87 26713 .byte 1 26714 .byte 1 26715 .byte 32 26716 .short 256 26717 .byte 2 26718 .byte 1 26719 .short 1060 26720 .short 1473 26721 .byte 2 26722 .byte 33 26723 .byte 40 26724 .byte 32 26725 .byte 2 26726 .byte 1 26727 .byte 1 26728 .byte 0 26729 .byte 0 26730 .byte 0 26731 .space 4 26732 .byte 6 26733 .byte -104 26734 .byte -34 26735 .byte -124 26736 .byte -109 26737 .byte 114 26738 .byte 87 26739 .byte 1 26740 .byte 1 26741 .byte 32 26742 .short 256 26743 .byte 2 26744 .byte 1 26745 .short 2092 26746 .short 1473 26747 .byte 2 26748 .byte 33 26749 .byte 40 26750 .byte 32 26751 .byte 2 26752 .byte 1 26753 .byte 1 26754 .byte 0 26755 .byte 0 26756 .byte 0 26757 .space 4 26758 .byte 6 26759 .byte -104 26760 .byte 58 26761 .byte -123 26762 .byte -109 26763 .byte 118 26764 .byte 87 26765 .byte 1 26766 .byte 2 26767 .byte 32 26768 .short 256 26769 .byte 2 26770 .byte 1 26771 .short 2092 26772 .short 1505 26773 .byte 2 26774 .byte 33 26775 .byte 40 26776 .byte 32 26777 .byte 2 26778 .byte 1 26779 .byte 1 26780 .byte 0 26781 .byte 0 26782 .byte 0 26783 .space 4 26784 .byte 6 26785 .byte -104 26786 .byte -43 26787 .byte -124 26788 .byte 50 26789 .byte 114 26790 .byte 86 26791 .byte 1 26792 .byte 1 26793 .byte 16 26794 .short 128 26795 .byte 2 26796 .byte 1 26797 .short 2056 26798 .short 1473 26799 .byte 2 26800 .byte 33 26801 .byte 40 26802 .byte 32 26803 .byte 2 26804 .byte 1 26805 .byte 1 26806 .byte 0 26807 .byte 0 26808 .byte 0 26809 .space 4 26810 .byte 6 26811 .byte -104 26812 .byte -41 26813 .byte -108 26814 .byte 50 26815 .byte 118 26816 .byte 86 26817 .byte 1 26818 .byte 1 26819 .byte 16 26820 .short 128 26821 .byte 2 26822 .byte 2 26823 .short 2058 26824 .short 1489 26825 .byte 2 26826 .byte 33 26827 .byte 40 26828 .byte 32 26829 .byte 2 26830 .byte 1 26831 .byte 1 26832 .byte 0 26833 .byte 0 26834 .byte 0 26835 .space 4 26836 .byte 6 26837 .byte -104 26838 .byte -34 26839 .byte -108 26840 .byte -126 26841 .byte 118 26842 .byte 86 26843 .byte 1 26844 .byte 1 26845 .byte 16 26846 .short 256 26847 .byte 2 26848 .byte 2 26849 .short 2062 26850 .short 1489 26851 .byte 1 26852 .byte 33 26853 .byte 40 26854 .byte 32 26855 .byte 2 26856 .byte 1 26857 .byte 1 26858 .byte 0 26859 .byte 0 26860 .byte 0 26861 .space 4 26862 .byte 6 26863 .byte -104 26864 .byte -34 26865 .byte -108 26866 .byte -109 26867 .byte 118 26868 .byte 80 26869 .byte 1 26870 .byte 1 26871 .byte 32 26872 .short 256 26873 .byte 2 26874 .byte 2 26875 .short 1066 26876 .short 1497 26877 .byte 2 26878 .byte 34 26879 .byte 40 26880 .byte 32 26881 .byte 3 26882 .byte 1 26883 .byte 1 26884 .byte 0 26885 .byte 0 26886 .byte 0 26887 .space 4 26888 .byte 6 26889 .byte -104 26890 .byte 58 26891 .byte -107 26892 .byte -109 26893 .byte 122 26894 .byte 80 26895 .byte 1 26896 .byte 2 26897 .byte 32 26898 .short 256 26899 .byte 2 26900 .byte 2 26901 .short 1066 26902 .short 1497 26903 .byte 2 26904 .byte 34 26905 .byte 40 26906 .byte 32 26907 .byte 3 26908 .byte 1 26909 .byte 1 26910 .byte 0 26911 .byte 0 26912 .byte 0 26913 .space 4 26914 .byte 6 26915 .byte -104 26916 .byte -41 26917 .byte -108 26918 .byte 50 26919 .byte 118 26920 .byte 85 26921 .byte 1 26922 .byte 1 26923 .byte 16 26924 .short 128 26925 .byte 2 26926 .byte 2 26927 .short 2050 26928 .short 401 26929 .byte 2 26930 .byte 0 26931 .byte 24 26932 .byte 32 26933 .byte 1 26934 .byte 1 26935 .byte 1 26936 .byte 0 26937 .byte 0 26938 .byte 0 26939 .space 4 26940 .byte 6 26941 .byte -104 26942 .byte -34 26943 .byte -108 26944 .byte -109 26945 .byte 118 26946 .byte 87 26947 .byte 1 26948 .byte 1 26949 .byte 32 26950 .short 256 26951 .byte 2 26952 .byte 2 26953 .short 1058 26954 .short 1497 26955 .byte 2 26956 .byte 33 26957 .byte 40 26958 .byte 32 26959 .byte 3 26960 .byte 1 26961 .byte 1 26962 .byte 0 26963 .byte 0 26964 .byte 0 26965 .space 4 26966 .byte 6 26967 .byte -104 26968 .byte -41 26969 .byte -124 26970 .byte -109 26971 .byte 114 26972 .byte 80 26973 .byte 1 26974 .byte 1 26975 .byte 32 26976 .short 256 26977 .byte 2 26978 .byte 1 26979 .short 1060 26980 .short 1473 26981 .byte 2 26982 .byte 34 26983 .byte 40 26984 .byte 32 26985 .byte 3 26986 .byte 1 26987 .byte 1 26988 .byte 0 26989 .byte 0 26990 .byte 0 26991 .space 4 26992 .byte 6 26993 .byte -104 26994 .byte -34 26995 .byte -108 26996 .byte -109 26997 .byte 118 26998 .byte 81 26999 .byte 1 27000 .byte 1 27001 .byte 32 27002 .short 256 27003 .byte 2 27004 .byte 2 27005 .short 1074 27006 .short 1497 27007 .byte 2 27008 .byte 35 27009 .byte 40 27010 .byte 32 27011 .byte 3 27012 .byte 1 27013 .byte 4 27014 .byte 0 27015 .byte 0 27016 .byte 0 27017 .space 4 27018 .byte 6 27019 .byte -104 27020 .byte 58 27021 .byte -108 27022 .byte -109 27023 .byte 118 27024 .byte 81 27025 .byte 1 27026 .byte 1 27027 .byte 32 27028 .short 256 27029 .byte 2 27030 .byte 2 27031 .short 2106 27032 .short 1497 27033 .byte 2 27034 .byte 35 27035 .byte 40 27036 .byte 32 27037 .byte 3 27038 .byte 1 27039 .byte 4 27040 .byte 0 27041 .byte 0 27042 .byte 0 27043 .space 4 27044 .byte 6 27045 .byte -104 27046 .byte -41 27047 .byte -124 27048 .byte -109 27049 .byte 114 27050 .byte 81 27051 .byte 1 27052 .byte 1 27053 .byte 32 27054 .short 256 27055 .byte 2 27056 .byte 1 27057 .short 1056 27058 .short 1497 27059 .byte 2 27060 .byte 35 27061 .byte 40 27062 .byte 32 27063 .byte 3 27064 .byte 1 27065 .byte 4 27066 .byte 0 27067 .byte 0 27068 .byte 0 27069 .space 4 27070 .byte 6 27071 .byte -104 27072 .byte -34 27073 .byte -108 27074 .byte -109 27075 .byte 118 27076 .byte -47 27077 .byte 1 27078 .byte 1 27079 .byte 32 27080 .short 256 27081 .byte 2 27082 .byte 2 27083 .short 1074 27084 .short 1497 27085 .byte 2 27086 .byte 35 27087 .byte 40 27088 .byte 32 27089 .byte 3 27090 .byte 1 27091 .byte 4 27092 .byte 0 27093 .byte 0 27094 .byte 0 27095 .space 4 27096 .byte 6 27097 .byte 69 27098 .byte -34 27099 .byte -108 27100 .byte -109 27101 .byte 118 27102 .byte 87 27103 .byte 8 27104 .byte 1 27105 .byte 32 27106 .short 256 27107 .byte 2 27108 .byte 2 27109 .short 1058 27110 .short 1497 27111 .byte 2 27112 .byte 66 27113 .byte 40 27114 .byte 32 27115 .byte 3 27116 .byte 1 27117 .byte 1 27118 .byte 0 27119 .byte 0 27120 .byte 0 27121 .space 4 27122 .byte 6 27123 .byte 69 27124 .byte -41 27125 .byte -124 27126 .byte -109 27127 .byte 114 27128 .byte 87 27129 .byte 8 27130 .byte 1 27131 .byte 32 27132 .short 256 27133 .byte 2 27134 .byte 1 27135 .short 1060 27136 .short 1473 27137 .byte 2 27138 .byte 66 27139 .byte 40 27140 .byte 32 27141 .byte 2 27142 .byte 1 27143 .byte 1 27144 .byte 0 27145 .byte 0 27146 .byte 0 27147 .space 4 27148 .byte 6 27149 .byte 69 27150 .byte -34 27151 .byte -92 27152 .byte -126 27153 .byte 118 27154 .byte 86 27155 .byte 8 27156 .byte 1 27157 .byte 16 27158 .short 256 27159 .byte 2 27160 .byte 2 27161 .short 2082 27162 .short 473 27163 .byte 1 27164 .byte 65 27165 .byte 40 27166 .byte 32 27167 .byte 3 27168 .byte 1 27169 .byte 1 27170 .byte 0 27171 .byte 0 27172 .byte 0 27173 .space 4 27174 .byte 6 27175 .byte 69 27176 .byte -34 27177 .byte -108 27178 .byte -109 27179 .byte 118 27180 .byte 80 27181 .byte 8 27182 .byte 1 27183 .byte 32 27184 .short 256 27185 .byte 2 27186 .byte 2 27187 .short 1066 27188 .short 1497 27189 .byte 2 27190 .byte 67 27191 .byte 40 27192 .byte 32 27193 .byte 3 27194 .byte 1 27195 .byte 1 27196 .byte 0 27197 .byte 0 27198 .byte 0 27199 .space 4 27200 .byte 6 27201 .byte 69 27202 .byte -41 27203 .byte -124 27204 .byte -109 27205 .byte 114 27206 .byte 80 27207 .byte 8 27208 .byte 1 27209 .byte 32 27210 .short 256 27211 .byte 2 27212 .byte 1 27213 .short 1060 27214 .short 1473 27215 .byte 2 27216 .byte 67 27217 .byte 40 27218 .byte 32 27219 .byte 3 27220 .byte 1 27221 .byte 1 27222 .byte 0 27223 .byte 0 27224 .byte 0 27225 .space 4 27226 .byte 6 27227 .byte 69 27228 .byte -34 27229 .byte -92 27230 .byte -126 27231 .byte 118 27232 .byte -41 27233 .byte 8 27234 .byte 1 27235 .byte 16 27236 .short 256 27237 .byte 2 27238 .byte 2 27239 .short 2090 27240 .short 1241 27241 .byte 1 27242 .byte 66 27243 .byte 40 27244 .byte 32 27245 .byte 3 27246 .byte 1 27247 .byte 1 27248 .byte 0 27249 .byte 0 27250 .byte 0 27251 .space 4 27252 .byte 6 27253 .byte 69 27254 .byte -34 27255 .byte -124 27256 .byte -109 27257 .byte 114 27258 .byte 87 27259 .byte 8 27260 .byte 1 27261 .byte 32 27262 .short 256 27263 .byte 2 27264 .byte 1 27265 .short 2092 27266 .short 1473 27267 .byte 2 27268 .byte 66 27269 .byte 40 27270 .byte 32 27271 .byte 3 27272 .byte 1 27273 .byte 1 27274 .byte 0 27275 .byte 0 27276 .byte 0 27277 .space 4 27278 .byte 6 27279 .byte 69 27280 .byte 58 27281 .byte -108 27282 .byte -109 27283 .byte 118 27284 .byte 81 27285 .byte 8 27286 .byte 1 27287 .byte 32 27288 .short 256 27289 .byte 2 27290 .byte 2 27291 .short 2106 27292 .short 473 27293 .byte 2 27294 .byte 68 27295 .byte 40 27296 .byte 32 27297 .byte 3 27298 .byte 1 27299 .byte 4 27300 .byte 0 27301 .byte 0 27302 .byte 0 27303 .space 4 27304 .byte 6 27305 .byte 69 27306 .byte -34 27307 .byte -108 27308 .byte -109 27309 .byte 118 27310 .byte 81 27311 .byte 8 27312 .byte 1 27313 .byte 32 27314 .short 256 27315 .byte 2 27316 .byte 2 27317 .short 1074 27318 .short 473 27319 .byte 2 27320 .byte 68 27321 .byte 40 27322 .byte 32 27323 .byte 3 27324 .byte 1 27325 .byte 4 27326 .byte 0 27327 .byte 0 27328 .byte 0 27329 .space 4 27330 .byte 6 27331 .byte 69 27332 .byte 58 27333 .byte -92 27334 .byte -109 27335 .byte 122 27336 .byte 80 27337 .byte 8 27338 .byte 1 27339 .byte 32 27340 .short 256 27341 .byte 2 27342 .byte 2 27343 .short 2138 27344 .short 1497 27345 .byte 2 27346 .byte 0 27347 .byte 40 27348 .byte 32 27349 .byte 3 27350 .byte 1 27351 .byte 1 27352 .byte 0 27353 .byte 0 27354 .byte 0 27355 .space 4 27356 .byte 6 27357 .byte 69 27358 .byte -34 27359 .byte -108 27360 .byte -126 27361 .byte 118 27362 .byte 86 27363 .byte 8 27364 .byte 1 27365 .byte 16 27366 .short 256 27367 .byte 2 27368 .byte 2 27369 .short 2062 27370 .short 473 27371 .byte 1 27372 .byte 0 27373 .byte 40 27374 .byte 32 27375 .byte 3 27376 .byte 1 27377 .byte 1 27378 .byte 0 27379 .byte 0 27380 .byte 0 27381 .space 4 27382 .byte 6 27383 .byte 69 27384 .byte -34 27385 .byte -108 27386 .byte -109 27387 .byte 118 27388 .byte -41 27389 .byte 8 27390 .byte 1 27391 .byte 32 27392 .short 256 27393 .byte 2 27394 .byte 2 27395 .short 1058 27396 .short 1497 27397 .byte 2 27398 .byte 66 27399 .byte 40 27400 .byte 32 27401 .byte 3 27402 .byte 1 27403 .byte 1 27404 .byte 0 27405 .byte 0 27406 .byte 0 27407 .space 4 27408 .byte 5 27409 .byte -20 27410 .byte -41 27411 .byte -108 27412 .byte 126 27413 .byte 100 27414 .byte 68 27415 .byte 0 27416 .byte 1 27417 .byte 16 27418 .short 128 27419 .byte 2 27420 .byte 2 27421 .short 2048 27422 .short 473 27423 .byte 2 27424 .byte 49 27425 .byte 60 27426 .byte 36 27427 .byte 3 27428 .byte 0 27429 .byte 3 27430 .byte 0 27431 .byte 0 27432 .byte 0 27433 .space 4 27434 .byte 6 27435 .byte -20 27436 .byte -34 27437 .byte -43 27438 .byte 126 27439 .byte 104 27440 .byte 68 27441 .byte 0 27442 .byte 2 27443 .byte 16 27444 .short 128 27445 .byte 2 27446 .byte 2 27447 .short 2048 27448 .short 505 27449 .byte 2 27450 .byte 49 27451 .byte 60 27452 .byte 36 27453 .byte 3 27454 .byte 0 27455 .byte 3 27456 .byte 0 27457 .byte 0 27458 .byte 0 27459 .space 4 27460 .byte 6 27461 .byte -20 27462 .byte -41 27463 .byte -108 27464 .byte 122 27465 .byte 84 27466 .byte 67 27467 .byte 0 27468 .byte 1 27469 .byte 16 27470 .short 128 27471 .byte 2 27472 .byte 2 27473 .short 2076 27474 .short 409 27475 .byte 2 27476 .byte 0 27477 .byte 40 27478 .byte 36 27479 .byte 3 27480 .byte 1 27481 .byte 3 27482 .byte 0 27483 .byte 0 27484 .byte 0 27485 .space 4 27486 .byte 6 27487 .byte -20 27488 .byte -34 27489 .byte -43 27490 .byte 122 27491 .byte 88 27492 .byte 67 27493 .byte 0 27494 .byte 2 27495 .byte 16 27496 .short 128 27497 .byte 2 27498 .byte 2 27499 .short 2076 27500 .short 441 27501 .byte 2 27502 .byte 0 27503 .byte 40 27504 .byte 36 27505 .byte 3 27506 .byte 1 27507 .byte 3 27508 .byte 0 27509 .byte 0 27510 .byte 0 27511 .space 4 27512 .byte 6 27513 .byte -20 27514 .byte -43 27515 .byte -108 27516 .byte 118 27517 .byte 84 27518 .byte 67 27519 .byte 0 27520 .byte 1 27521 .byte 16 27522 .short 128 27523 .byte 2 27524 .byte 2 27525 .short 1038 27526 .short 281 27527 .byte 2 27528 .byte 0 27529 .byte 24 27530 .byte 36 27531 .byte 3 27532 .byte 1 27533 .byte 3 27534 .byte 0 27535 .byte 0 27536 .byte 0 27537 .space 4 27538 .byte 6 27539 .byte -20 27540 .byte -41 27541 .byte 20 27542 .byte 118 27543 .byte 84 27544 .byte -62 27545 .byte 0 27546 .byte 1 27547 .byte 16 27548 .short 128 27549 .byte 2 27550 .byte 2 27551 .short 2076 27552 .short 1169 27553 .byte 2 27554 .byte 0 27555 .byte 24 27556 .byte 40 27557 .byte 3 27558 .byte 1 27559 .byte 3 27560 .byte 0 27561 .byte 0 27562 .byte 0 27563 .space 4 27564 .byte 6 27565 .byte -20 27566 .byte -34 27567 .byte -108 27568 .byte -61 27569 .byte -92 27570 .byte -54 27571 .byte 0 27572 .byte 1 27573 .byte 32 27574 .short 792 27575 .byte 2 27576 .byte 1 27577 .short 688 27578 .short 1217 27579 .byte 11 27580 .byte 50 27581 .byte 40 27582 .byte 32 27583 .byte 3 27584 .byte 1 27585 .byte 1 27586 .byte 0 27587 .byte 1 27588 .byte 0 27589 .space 4 27590 .section .data.NandOptPara,"aw",%progbits 27591 .set .LANCHOR152,. + 0 27592 .type NandOptPara, %object 27593 .size NandOptPara, 128 27594NandOptPara: 27595 .byte 1 27596 .byte 0 27597 .byte 49 27598 .byte 63 27599 .byte 0 27600 .byte 49 27601 .byte -128 27602 .byte 21 27603 .byte 0 27604 .byte 50 27605 .byte 17 27606 .byte -128 27607 .byte 112 27608 .byte 120 27609 .byte 120 27610 .byte 3 27611 .byte 1 27612 .byte 0 27613 .space 14 27614 .byte 2 27615 .byte 0 27616 .byte 49 27617 .byte 63 27618 .byte 0 27619 .byte 49 27620 .byte -128 27621 .byte 21 27622 .byte 0 27623 .byte 0 27624 .byte 17 27625 .byte -127 27626 .byte 112 27627 .byte -15 27628 .byte -14 27629 .byte 0 27630 .byte 0 27631 .byte 0 27632 .space 14 27633 .byte 3 27634 .byte 0 27635 .byte 49 27636 .byte 63 27637 .byte 0 27638 .byte 49 27639 .byte -128 27640 .byte 21 27641 .byte 96 27642 .byte 96 27643 .byte 17 27644 .byte -127 27645 .byte 112 27646 .byte -15 27647 .byte -14 27648 .byte 0 27649 .byte 0 27650 .byte 0 27651 .space 14 27652 .byte 4 27653 .byte 0 27654 .byte 49 27655 .byte 63 27656 .byte 0 27657 .byte 49 27658 .byte -128 27659 .byte 21 27660 .byte 96 27661 .byte 96 27662 .byte 17 27663 .byte -127 27664 .byte 112 27665 .byte 112 27666 .byte 112 27667 .byte 0 27668 .byte 0 27669 .byte 0 27670 .space 14 27671 .section .data.SamsungRefValue,"aw",%progbits 27672 .set .LANCHOR14,. + 0 27673 .type SamsungRefValue, %object 27674 .size SamsungRefValue, 64 27675SamsungRefValue: 27676 .byte -89 27677 .byte -92 27678 .byte -91 27679 .byte -90 27680 .byte 0 27681 .byte 0 27682 .byte 0 27683 .byte 0 27684 .byte 5 27685 .byte 10 27686 .byte 0 27687 .byte 0 27688 .byte 40 27689 .byte 0 27690 .byte -20 27691 .byte -40 27692 .byte -19 27693 .byte -11 27694 .byte -19 27695 .byte -26 27696 .byte 10 27697 .byte 15 27698 .byte 5 27699 .byte 0 27700 .byte 15 27701 .byte 10 27702 .byte -5 27703 .byte -20 27704 .byte -24 27705 .byte -17 27706 .byte -24 27707 .byte -36 27708 .byte -15 27709 .byte -5 27710 .byte -2 27711 .byte -16 27712 .byte 10 27713 .byte 0 27714 .byte -5 27715 .byte -20 27716 .byte -48 27717 .byte -30 27718 .byte -48 27719 .byte -62 27720 .byte 20 27721 .byte 15 27722 .byte -5 27723 .byte -20 27724 .byte -24 27725 .byte -5 27726 .byte -24 27727 .byte -36 27728 .byte 30 27729 .byte 20 27730 .byte -5 27731 .byte -20 27732 .byte -5 27733 .byte -1 27734 .byte -5 27735 .byte -8 27736 .byte 7 27737 .byte 12 27738 .byte 2 27739 .byte 0 27740 .section .data.Toshiba15RefValue,"aw",%progbits 27741 .set .LANCHOR11,. + 0 27742 .type Toshiba15RefValue, %object 27743 .size Toshiba15RefValue, 95 27744Toshiba15RefValue: 27745 .byte 4 27746 .byte 5 27747 .byte 6 27748 .byte 7 27749 .byte 13 27750 .byte 0 27751 .byte 0 27752 .byte 0 27753 .byte 0 27754 .byte 0 27755 .byte 0 27756 .byte 0 27757 .byte 0 27758 .byte 0 27759 .byte 0 27760 .byte 2 27761 .byte 4 27762 .byte 2 27763 .byte 0 27764 .byte 0 27765 .byte 8 27766 .byte 8 27767 .byte 0 27768 .byte 0 27769 .byte 0 27770 .byte 124 27771 .byte 0 27772 .byte 124 27773 .byte 124 27774 .byte 0 27775 .byte 122 27776 .byte 0 27777 .byte 122 27778 .byte 122 27779 .byte 0 27780 .byte 11 27781 .byte 126 27782 .byte 118 27783 .byte 116 27784 .byte 0 27785 .byte 120 27786 .byte 2 27787 .byte 120 27788 .byte 122 27789 .byte 0 27790 .byte 126 27791 .byte 4 27792 .byte 126 27793 .byte 122 27794 .byte 0 27795 .byte 16 27796 .byte 118 27797 .byte 114 27798 .byte 112 27799 .byte 0 27800 .byte 118 27801 .byte 4 27802 .byte 118 27803 .byte 120 27804 .byte 0 27805 .byte 4 27806 .byte 4 27807 .byte 4 27808 .byte 118 27809 .byte 0 27810 .byte 2 27811 .byte 0 27812 .byte 126 27813 .byte 124 27814 .byte 0 27815 .byte 6 27816 .byte 10 27817 .byte 6 27818 .byte 2 27819 .byte 0 27820 .byte 116 27821 .byte 124 27822 .byte 116 27823 .byte 118 27824 .byte 0 27825 .byte 4 27826 .byte 4 27827 .byte 124 27828 .byte 126 27829 .byte 0 27830 .byte 0 27831 .byte 124 27832 .byte 120 27833 .byte 120 27834 .byte 0 27835 .byte 124 27836 .byte 118 27837 .byte 116 27838 .byte 114 27839 .byte 0 27840 .section .data.ToshibaA19RefValue,"aw",%progbits 27841 .set .LANCHOR9,. + 0 27842 .type ToshibaA19RefValue, %object 27843 .size ToshibaA19RefValue, 45 27844ToshibaA19RefValue: 27845 .byte 4 27846 .byte 5 27847 .byte 6 27848 .byte 7 27849 .byte 13 27850 .byte 0 27851 .byte 0 27852 .byte 0 27853 .byte 0 27854 .byte 0 27855 .byte 4 27856 .byte 4 27857 .byte 124 27858 .byte 126 27859 .byte 0 27860 .byte 0 27861 .byte 124 27862 .byte 120 27863 .byte 120 27864 .byte 0 27865 .byte 124 27866 .byte 118 27867 .byte 116 27868 .byte 114 27869 .byte 0 27870 .byte 8 27871 .byte 8 27872 .byte 0 27873 .byte 0 27874 .byte 0 27875 .byte 11 27876 .byte 126 27877 .byte 118 27878 .byte 116 27879 .byte 0 27880 .byte 16 27881 .byte 118 27882 .byte 114 27883 .byte 112 27884 .byte 0 27885 .byte 2 27886 .byte 0 27887 .byte 126 27888 .byte 124 27889 .byte 0 27890 .section .data.ToshibaRefValue,"aw",%progbits 27891 .set .LANCHOR12,. + 0 27892 .type ToshibaRefValue, %object 27893 .size ToshibaRefValue, 8 27894ToshibaRefValue: 27895 .byte 0 27896 .byte 4 27897 .byte 124 27898 .byte 120 27899 .byte 116 27900 .byte 8 27901 .byte 12 27902 .byte 112 27903 .section .data.ftl_gc_temp_block_bops_scan_page_addr,"aw",%progbits 27904 .align 1 27905 .set .LANCHOR245,. + 0 27906 .type ftl_gc_temp_block_bops_scan_page_addr, %object 27907 .size ftl_gc_temp_block_bops_scan_page_addr, 2 27908ftl_gc_temp_block_bops_scan_page_addr: 27909 .short -1 27910 .section .data.gFtlInitStatus,"aw",%progbits 27911 .align 2 27912 .set .LANCHOR247,. + 0 27913 .type gFtlInitStatus, %object 27914 .size gFtlInitStatus, 4 27915gFtlInitStatus: 27916 .word -1 27917 .section .data.gNandParaInfo,"aw",%progbits 27918 .align 1 27919 .set .LANCHOR31,. + 0 27920 .type gNandParaInfo, %object 27921 .size gNandParaInfo, 32 27922gNandParaInfo: 27923 .byte 0 27924 .byte 0 27925 .space 5 27926 .byte 0 27927 .byte 1 27928 .byte 8 27929 .short 128 27930 .byte 2 27931 .byte 1 27932 .short 2048 27933 .short 0 27934 .byte 1 27935 .byte 0 27936 .byte 24 27937 .byte 32 27938 .byte 1 27939 .byte 0 27940 .byte 1 27941 .byte 0 27942 .byte 0 27943 .byte 0 27944 .space 4 27945 .section .data.gSlcNandParaInfo,"aw",%progbits 27946 .align 1 27947 .set .LANCHOR209,. + 0 27948 .type gSlcNandParaInfo, %object 27949 .size gSlcNandParaInfo, 32 27950gSlcNandParaInfo: 27951 .byte 2 27952 .byte -104 27953 .byte -15 27954 .byte 0 27955 .byte 0 27956 .byte 0 27957 .byte 0 27958 .byte 1 27959 .byte 1 27960 .byte 4 27961 .short 64 27962 .byte 1 27963 .byte 1 27964 .short 1024 27965 .short 256 27966 .byte 0 27967 .byte 0 27968 .byte 16 27969 .byte 40 27970 .byte 1 27971 .byte 0 27972 .byte 1 27973 .byte 0 27974 .byte 0 27975 .byte 0 27976 .space 4 27977 .section .data.power_up_flag,"aw",%progbits 27978 .align 2 27979 .type power_up_flag, %object 27980 .size power_up_flag, 4 27981power_up_flag: 27982 .word 1 27983 .section .data.random_seed,"aw",%progbits 27984 .align 1 27985 .set .LANCHOR5,. + 0 27986 .type random_seed, %object 27987 .size random_seed, 256 27988random_seed: 27989 .short 22378 27990 .short 1512 27991 .short 25245 27992 .short 17827 27993 .short 25756 27994 .short 19440 27995 .short 9026 27996 .short 10030 27997 .short 29528 27998 .short 20467 27999 .short 29676 28000 .short 24432 28001 .short 31328 28002 .short 6872 28003 .short 13426 28004 .short 13842 28005 .short 8783 28006 .short 1108 28007 .short 782 28008 .short 28837 28009 .short 30729 28010 .short 9505 28011 .short 18676 28012 .short 23085 28013 .short 18730 28014 .short 1085 28015 .short 32609 28016 .short 14697 28017 .short 20858 28018 .short 15170 28019 .short 30365 28020 .short 1607 28021 .short 32298 28022 .short 4995 28023 .short 18905 28024 .short 1976 28025 .short 9592 28026 .short 20204 28027 .short 17443 28028 .short 13615 28029 .short 23330 28030 .short 29369 28031 .short 13947 28032 .short 9398 28033 .short 32398 28034 .short 8984 28035 .short 27600 28036 .short 21785 28037 .short 6019 28038 .short 6311 28039 .short 31598 28040 .short 30210 28041 .short 19327 28042 .short 13896 28043 .short 11347 28044 .short 27545 28045 .short 3107 28046 .short 26575 28047 .short 32270 28048 .short 19852 28049 .short 20601 28050 .short 8349 28051 .short 9290 28052 .short 29819 28053 .short 13579 28054 .short 3661 28055 .short 28676 28056 .short 27331 28057 .short 32574 28058 .short 8693 28059 .short 31253 28060 .short 9081 28061 .short 5399 28062 .short 6842 28063 .short 20087 28064 .short 5537 28065 .short 1274 28066 .short 11617 28067 .short 9530 28068 .short 4866 28069 .short 8035 28070 .short 23219 28071 .short 1178 28072 .short 23272 28073 .short 7383 28074 .short 18944 28075 .short 12488 28076 .short 12871 28077 .short 29340 28078 .short 20532 28079 .short 11022 28080 .short 22514 28081 .short 228 28082 .short 22363 28083 .short 24978 28084 .short 14584 28085 .short 12138 28086 .short 3092 28087 .short 17916 28088 .short 16863 28089 .short 14554 28090 .short 31457 28091 .short 29474 28092 .short 25311 28093 .short 24121 28094 .short 3684 28095 .short 28037 28096 .short 22865 28097 .short 22839 28098 .short 25217 28099 .short 13217 28100 .short 27186 28101 .short 14938 28102 .short 11180 28103 .short 29754 28104 .short 24180 28105 .short 15150 28106 .short 32455 28107 .short 20434 28108 .short 23848 28109 .short 29983 28110 .short 16120 28111 .short 14769 28112 .short 20041 28113 .short 29803 28114 .short 28406 28115 .short 17598 28116 .short 28087 28117 .section .data.refValueDefault,"aw",%progbits 28118 .set .LANCHOR204,. + 0 28119 .type refValueDefault, %object 28120 .size refValueDefault, 28 28121refValueDefault: 28122 .byte 0 28123 .byte 0 28124 .byte 0 28125 .byte 0 28126 .byte 0 28127 .byte 6 28128 .byte 10 28129 .byte 6 28130 .byte 0 28131 .byte -3 28132 .byte -7 28133 .byte -8 28134 .byte 0 28135 .byte -6 28136 .byte -13 28137 .byte -15 28138 .byte 0 28139 .byte -11 28140 .byte -20 28141 .byte -23 28142 .byte 0 28143 .byte 0 28144 .byte -26 28145 .byte -30 28146 .byte 0 28147 .byte 0 28148 .byte -32 28149 .byte -37 28150 .section .rodata.FlashDdrTunningRead.str1.1,"aMS",%progbits,1 28151.LC9: 28152 .ascii "sdr read ok %x ecc=%d\012\000" 28153.LC10: 28154 .ascii "sync para %d\012\000" 28155.LC11: 28156 .ascii "TOG mode Read error %x %x\012\000" 28157 .section .rodata.FlashEraseSLc2KBlocks.str1.1,"aMS",%progbits,1 28158.LC1: 28159 .ascii "FlashEraseBlocks pageAddr error %x\012\000" 28160 .section .rodata.FlashInit.str1.1,"aMS",%progbits,1 28161.LC24: 28162 .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" 28163.LC25: 28164 .ascii "FlashLoadPhyInfo fail %x!!\012\000" 28165 .section .rodata.FlashProgSlc2KPages.str1.1,"aMS",%progbits,1 28166.LC30: 28167 .ascii "prog error: = %x\012\000" 28168.LC31: 28169 .ascii "prog read error: = %x\012\000" 28170.LC32: 28171 .ascii "prog read REFRESH: = %x\012\000" 28172.LC33: 28173 .ascii "prog read s error: = %x %x %x\012\000" 28174.LC34: 28175 .ascii "prog read d error: = %x %x %x\012\000" 28176 .section .rodata.FlashReadFacBbtData.str1.1,"aMS",%progbits,1 28177.LC59: 28178 .ascii "BBT:\000" 28179 .section .rodata.FlashReadIdbDataRaw.str1.1,"aMS",%progbits,1 28180.LC15: 28181 .ascii "ECC:%d\012\000" 28182 .section .rodata.FlashReadPage.str1.1,"aMS",%progbits,1 28183.LC12: 28184 .ascii "read retry status %x %x %x\012\000" 28185 .section .rodata.FlashReadPages.str1.1,"aMS",%progbits,1 28186.LC29: 28187 .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000" 28188 .section .rodata.FlashReadSlc2KPages.str1.1,"aMS",%progbits,1 28189.LC26: 28190 .ascii "Read pageadd=%x ecc=%x err=%x\012\000" 28191.LC27: 28192 .ascii "data:\000" 28193.LC28: 28194 .ascii "spare:\000" 28195 .section .rodata.FtlBbmMapBadBlock.str1.1,"aMS",%progbits,1 28196.LC2: 28197 .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" 28198 .ascii "\000" 28199 .section .rodata.FtlBbmTblFlush.str1.1,"aMS",%progbits,1 28200.LC35: 28201 .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" 28202.LC36: 28203 .ascii "FtlBbmTblFlush error:%x\012\000" 28204.LC37: 28205 .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" 28206 .section .rodata.FtlCacheWriteBack.str1.1,"aMS",%progbits,1 28207.LC76: 28208 .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" 28209 .section .rodata.FtlCheckVpc.str1.1,"aMS",%progbits,1 28210.LC63: 28211 .ascii "FtlCheckVpc2 %x = %x %x\012\000" 28212.LC64: 28213 .ascii "free blk vpc error %x = %x %x\012\000" 28214.LC65: 28215 .ascii "error_flag %x\012\000" 28216 .section .rodata.FtlDumpBlockInfo.str1.1,"aMS",%progbits,1 28217.LC48: 28218 .ascii "...%s enter...\012\000" 28219.LC49: 28220 .ascii "superBlkID = %x vpc=%x\012\000" 28221.LC50: 28222 .ascii "flashmode = %x pagenum = %x %x\012\000" 28223.LC51: 28224 .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012" 28225 .ascii "\000" 28226 .section .rodata.FtlDumpSysBlock.str1.1,"aMS",%progbits,1 28227.LC84: 28228 .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012" 28229 .ascii "\000" 28230.LC85: 28231 .ascii ":\000" 28232 .section .rodata.FtlFreeSysBlkQueueOut.str1.1,"aMS",%progbits,1 28233.LC3: 28234 .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000" 28235.LC4: 28236 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" 28237 .ascii "\000" 28238 .section .rodata.FtlGcFreeTempBlock.str1.1,"aMS",%progbits,1 28239.LC74: 28240 .ascii "GC des block %x done\012\000" 28241 .section .rodata.FtlGcScanTempBlk.str1.1,"aMS",%progbits,1 28242.LC72: 28243 .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" 28244.LC73: 28245 .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000" 28246 .section .rodata.FtlInit.str1.1,"aMS",%progbits,1 28247.LC77: 28248 .ascii "FTL version: 5.0.63 20210318\000" 28249.LC78: 28250 .ascii "...%s: no bad block mapping table, format device\012" 28251 .ascii "\000" 28252.LC79: 28253 .ascii "...%s FtlSysBlkInit error ,format device!\012\000" 28254 .section .rodata.FtlLoadEctTbl.str1.1,"aMS",%progbits,1 28255.LC45: 28256 .ascii "no ect\000" 28257 .section .rodata.FtlLoadSysInfo.str1.1,"aMS",%progbits,1 28258.LC47: 28259 .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012" 28260 .ascii "\000" 28261 .section .rodata.FtlLowFormat.str1.1,"aMS",%progbits,1 28262.LC75: 28263 .ascii "too many bad block = %d %d\012\000" 28264 .section .rodata.FtlMapWritePage.str1.1,"aMS",%progbits,1 28265.LC42: 28266 .ascii "FtlMapWritePage error = %x\012\000" 28267.LC43: 28268 .ascii "FtlMapWritePage error = %x error count = %d\012\000" 28269 .section .rodata.FtlRecoverySuperblock.str1.1,"aMS",%progbits,1 28270.LC69: 28271 .ascii "RSB refresh addr %x\012\000" 28272.LC70: 28273 .ascii "spuer block %x vpn is 0\012 \000" 28274.LC71: 28275 .ascii "g_recovery_ppa %x ver %x\012 \000" 28276 .section .rodata.FtlScanAllBlock.str1.1,"aMS",%progbits,1 28277.LC52: 28278 .ascii "blk = %x vpc=%x mode = %x\012\000" 28279.LC53: 28280 .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " 28281 .ascii "%x\012\000" 28282.LC54: 28283 .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x " 28284 .ascii "%x\012\000" 28285 .section .rodata.FtlVendorPartRead.str1.1,"aMS",%progbits,1 28286.LC44: 28287 .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" 28288 .section .rodata.FtlVpcTblFlush.str1.1,"aMS",%progbits,1 28289.LC40: 28290 .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" 28291 .section .rodata.FtlWrite.str1.1,"aMS",%progbits,1 28292.LC83: 28293 .ascii "FtlWrite: lpa error:%x %x\012\000" 28294 .section .rodata.Ftl_load_ext_data.str1.1,"aMS",%progbits,1 28295.LC46: 28296 .ascii "slc mode\000" 28297 .section .rodata.Ftlscanalldata.str1.1,"aMS",%progbits,1 28298.LC66: 28299 .ascii "Ftlscanalldata = %x\012\000" 28300.LC67: 28301 .ascii "scan lpa = %x ppa= %x\012\000" 28302.LC68: 28303 .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 28304 .ascii "\000" 28305 .section .rodata.HynixGetReadRetryDefault.str1.1,"aMS",%progbits,1 28306.LC22: 28307 .ascii "otp error! %d\000" 28308.LC23: 28309 .ascii "rr\000" 28310 .section .rodata.INSERT_DATA_LIST.str1.1,"aMS",%progbits,1 28311.LC5: 28312 .ascii "\012!!!!! error @ func:%s - line:%d\012\000" 28313.LC6: 28314 .ascii "!!!!! FTL sys Error !!!!!\000" 28315.LC7: 28316 .ascii "%s\012\000" 28317 .section .rodata.MicronReadRetrial.str1.1,"aMS",%progbits,1 28318.LC13: 28319 .ascii "micron RR %d row=%x,count %d,status=%d\012\000" 28320 .section .rodata.__func__.10661,"a",%progbits 28321 .set .LANCHOR255,. + 0 28322 .type __func__.10661, %object 28323 .size __func__.10661, 8 28324__func__.10661: 28325 .ascii "FtlInit\000" 28326 .section .rodata.__func__.10765,"a",%progbits 28327 .set .LANCHOR258,. + 0 28328 .type __func__.10765, %object 28329 .size __func__.10765, 9 28330__func__.10765: 28331 .ascii "FtlWrite\000" 28332 .section .rodata.__func__.10855,"a",%progbits 28333 .set .LANCHOR127,. + 0 28334 .type __func__.10855, %object 28335 .size __func__.10855, 14 28336__func__.10855: 28337 .ascii "FtlBbt2Bitmap\000" 28338 .section .rodata.__func__.10901,"a",%progbits 28339 .set .LANCHOR220,. + 0 28340 .type __func__.10901, %object 28341 .size __func__.10901, 11 28342__func__.10901: 28343 .ascii "FtlLoadBbt\000" 28344 .section .rodata.__func__.10994,"a",%progbits 28345 .set .LANCHOR91,. + 0 28346 .type __func__.10994, %object 28347 .size __func__.10994, 17 28348__func__.10994: 28349 .ascii "INSERT_FREE_LIST\000" 28350 .section .rodata.__func__.10998,"a",%progbits 28351 .set .LANCHOR88,. + 0 28352 .type __func__.10998, %object 28353 .size __func__.10998, 17 28354__func__.10998: 28355 .ascii "INSERT_DATA_LIST\000" 28356 .section .rodata.__func__.11036,"a",%progbits 28357 .set .LANCHOR92,. + 0 28358 .type __func__.11036, %object 28359 .size __func__.11036, 17 28360__func__.11036: 28361 .ascii "List_remove_node\000" 28362 .section .rodata.__func__.11066,"a",%progbits 28363 .set .LANCHOR96,. + 0 28364 .type __func__.11066, %object 28365 .size __func__.11066, 22 28366__func__.11066: 28367 .ascii "List_update_data_list\000" 28368 .section .rodata.__func__.11073,"a",%progbits 28369 .set .LANCHOR237,. + 0 28370 .type __func__.11073, %object 28371 .size __func__.11073, 20 28372__func__.11073: 28373 .ascii "ftl_load_l2p_region\000" 28374 .section .rodata.__func__.11104,"a",%progbits 28375 .set .LANCHOR97,. + 0 28376 .type __func__.11104, %object 28377 .size __func__.11104, 26 28378__func__.11104: 28379 .ascii "ftl_map_blk_alloc_new_blk\000" 28380 .section .rodata.__func__.11114,"a",%progbits 28381 .set .LANCHOR221,. + 0 28382 .type __func__.11114, %object 28383 .size __func__.11114, 15 28384__func__.11114: 28385 .ascii "ftl_map_blk_gc\000" 28386 .section .rodata.__func__.11127,"a",%progbits 28387 .set .LANCHOR222,. + 0 28388 .type __func__.11127, %object 28389 .size __func__.11127, 31 28390__func__.11127: 28391 .ascii "Ftl_write_map_blk_to_last_page\000" 28392 .section .rodata.__func__.11140,"a",%progbits 28393 .set .LANCHOR223,. + 0 28394 .type __func__.11140, %object 28395 .size __func__.11140, 16 28396__func__.11140: 28397 .ascii "FtlMapWritePage\000" 28398 .section .rodata.__func__.11160,"a",%progbits 28399 .set .LANCHOR100,. + 0 28400 .type __func__.11160, %object 28401 .size __func__.11160, 22 28402__func__.11160: 28403 .ascii "select_l2p_ram_region\000" 28404 .section .rodata.__func__.11176,"a",%progbits 28405 .set .LANCHOR236,. + 0 28406 .type __func__.11176, %object 28407 .size __func__.11176, 9 28408__func__.11176: 28409 .ascii "log2phys\000" 28410 .section .rodata.__func__.11238,"a",%progbits 28411 .set .LANCHOR219,. + 0 28412 .type __func__.11238, %object 28413 .size __func__.11238, 15 28414__func__.11238: 28415 .ascii "FtlVpcTblFlush\000" 28416 .section .rodata.__func__.11257,"a",%progbits 28417 .set .LANCHOR229,. + 0 28418 .type __func__.11257, %object 28419 .size __func__.11257, 14 28420__func__.11257: 28421 .ascii "FtlScanSysBlk\000" 28422 .section .rodata.__func__.11312,"a",%progbits 28423 .set .LANCHOR230,. + 0 28424 .type __func__.11312, %object 28425 .size __func__.11312, 15 28426__func__.11312: 28427 .ascii "FtlLoadSysInfo\000" 28428 .section .rodata.__func__.11323,"a",%progbits 28429 .set .LANCHOR238,. + 0 28430 .type __func__.11323, %object 28431 .size __func__.11323, 12 28432__func__.11323: 28433 .ascii "FtlCheckVpc\000" 28434 .section .rodata.__func__.11355,"a",%progbits 28435 .set .LANCHOR233,. + 0 28436 .type __func__.11355, %object 28437 .size __func__.11355, 17 28438__func__.11355: 28439 .ascii "FtlDumpBlockInfo\000" 28440 .section .rodata.__func__.11374,"a",%progbits 28441 .set .LANCHOR234,. + 0 28442 .type __func__.11374, %object 28443 .size __func__.11374, 16 28444__func__.11374: 28445 .ascii "FtlScanAllBlock\000" 28446 .section .rodata.__func__.11479,"a",%progbits 28447 .set .LANCHOR239,. + 0 28448 .type __func__.11479, %object 28449 .size __func__.11479, 16 28450__func__.11479: 28451 .ascii "FtlReUsePrevPpa\000" 28452 .section .rodata.__func__.11512,"a",%progbits 28453 .set .LANCHOR240,. + 0 28454 .type __func__.11512, %object 28455 .size __func__.11512, 22 28456__func__.11512: 28457 .ascii "FtlRecoverySuperblock\000" 28458 .section .rodata.__func__.11566,"a",%progbits 28459 .set .LANCHOR103,. + 0 28460 .type __func__.11566, %object 28461 .size __func__.11566, 16 28462__func__.11566: 28463 .ascii "make_superblock\000" 28464 .section .rodata.__func__.11586,"a",%progbits 28465 .set .LANCHOR143,. + 0 28466 .type __func__.11586, %object 28467 .size __func__.11586, 18 28468__func__.11586: 28469 .ascii "SupperBlkListInit\000" 28470 .section .rodata.__func__.11632,"a",%progbits 28471 .set .LANCHOR235,. + 0 28472 .type __func__.11632, %object 28473 .size __func__.11632, 17 28474__func__.11632: 28475 .ascii "ftl_scan_all_ppa\000" 28476 .section .rodata.__func__.11677,"a",%progbits 28477 .set .LANCHOR212,. + 0 28478 .type __func__.11677, %object 28479 .size __func__.11677, 25 28480__func__.11677: 28481 .ascii "allocate_data_superblock\000" 28482 .section .rodata.__func__.11691,"a",%progbits 28483 .set .LANCHOR228,. + 0 28484 .type __func__.11691, %object 28485 .size __func__.11691, 29 28486__func__.11691: 28487 .ascii "allocate_new_data_superblock\000" 28488 .section .rodata.__func__.11697,"a",%progbits 28489 .set .LANCHOR217,. + 0 28490 .type __func__.11697, %object 28491 .size __func__.11697, 19 28492__func__.11697: 28493 .ascii "get_new_active_ppa\000" 28494 .section .rodata.__func__.11708,"a",%progbits 28495 .set .LANCHOR215,. + 0 28496 .type __func__.11708, %object 28497 .size __func__.11708, 16 28498__func__.11708: 28499 .ascii "update_vpc_list\000" 28500 .section .rodata.__func__.11713,"a",%progbits 28501 .set .LANCHOR216,. + 0 28502 .type __func__.11713, %object 28503 .size __func__.11713, 20 28504__func__.11713: 28505 .ascii "decrement_vpc_count\000" 28506 .section .rodata.__func__.11781,"a",%progbits 28507 .set .LANCHOR246,. + 0 28508 .type __func__.11781, %object 28509 .size __func__.11781, 19 28510__func__.11781: 28511 .ascii "FtlGcFreeTempBlock\000" 28512 .section .rodata.__func__.11882,"a",%progbits 28513 .set .LANCHOR251,. + 0 28514 .type __func__.11882, %object 28515 .size __func__.11882, 10 28516__func__.11882: 28517 .ascii "ftl_do_gc\000" 28518 .section .rodata.decrement_vpc_count.str1.1,"aMS",%progbits,1 28519.LC38: 28520 .ascii "decrement_vpc_count %x = %d\012\000" 28521.LC39: 28522 .ascii "decrement_vpc_count %x = %d in free list\012\000" 28523 .section .rodata.dump_map_info.str1.1,"aMS",%progbits,1 28524.LC86: 28525 .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" 28526 .ascii "\000" 28527.LC87: 28528 .ascii "Mblk:\000" 28529.LC88: 28530 .ascii "L2P:\000" 28531.LC89: 28532 .ascii "L2PC:\000" 28533 .section .rodata.ftl_fix_nand_power_lost_error.str1.1,"aMS",%progbits,1 28534.LC81: 28535 .ascii "fix power lost blk = %x vpc=%x\012\000" 28536.LC82: 28537 .ascii "erase power lost blk = %x vpc=%x\012\000" 28538 .section .rodata.ftl_map_blk_alloc_new_blk.str1.1,"aMS",%progbits,1 28539.LC8: 28540 .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" 28541 .section .rodata.ftl_map_blk_gc.str1.1,"aMS",%progbits,1 28542.LC41: 28543 .ascii "page map lost: %x %x\012\000" 28544 .section .rodata.ftl_scan_all_ppa.str1.1,"aMS",%progbits,1 28545.LC55: 28546 .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000" 28547.LC56: 28548 .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........." 28549 .ascii "..... is bad block\012\000" 28550.LC57: 28551 .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012" 28552 .ascii "\000" 28553.LC58: 28554 .ascii "%s finished\012\000" 28555 .section .rodata.idb_write_data.str1.1,"aMS",%progbits,1 28556.LC16: 28557 .ascii "1 write_idblock fix data %x %x %x\012\000" 28558.LC17: 28559 .ascii "write_idblock fail! %x %x %x %x\012\000" 28560.LC18: 28561 .ascii "write_idblock fail! %x\012\000" 28562 .section .rodata.log2phys.str1.1,"aMS",%progbits,1 28563.LC60: 28564 .ascii "region_id = %x phyAddr = %x\012\000" 28565.LC61: 28566 .ascii "map_ppn:\000" 28567.LC62: 28568 .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" 28569 .section .rodata.rk_ftl_init.str1.1,"aMS",%progbits,1 28570.LC80: 28571 .ascii "FtlInit %x\012\000" 28572 .section .rodata.rknand_print_hex.str1.1,"aMS",%progbits,1 28573.LC19: 28574 .ascii "%s 0x%x:\000" 28575.LC20: 28576 .ascii "%x \000" 28577.LC21: 28578 .ascii "\000" 28579 .section .rodata.samsung_14nm_mlc_rr,"a",%progbits 28580 .set .LANCHOR148,. + 0 28581 .type samsung_14nm_mlc_rr, %object 28582 .size samsung_14nm_mlc_rr, 104 28583samsung_14nm_mlc_rr: 28584 .byte 0 28585 .byte 0 28586 .byte 0 28587 .byte 0 28588 .byte -4 28589 .byte 3 28590 .byte -4 28591 .byte -6 28592 .byte 6 28593 .byte 0 28594 .byte 6 28595 .byte -10 28596 .byte -10 28597 .byte 4 28598 .byte -10 28599 .byte 16 28600 .byte 12 28601 .byte -4 28602 .byte 12 28603 .byte 8 28604 .byte -16 28605 .byte 10 28606 .byte -16 28607 .byte 24 28608 .byte 18 28609 .byte -14 28610 .byte 18 28611 .byte -4 28612 .byte -22 28613 .byte -16 28614 .byte -22 28615 .byte -8 28616 .byte 24 28617 .byte -9 28618 .byte 24 28619 .byte 8 28620 .byte -28 28621 .byte -4 28622 .byte -28 28623 .byte 16 28624 .byte 30 28625 .byte 10 28626 .byte 30 28627 .byte 10 28628 .byte -34 28629 .byte 6 28630 .byte -34 28631 .byte 0 28632 .byte 36 28633 .byte -8 28634 .byte 36 28635 .byte -8 28636 .byte -40 28637 .byte -2 28638 .byte -40 28639 .byte -20 28640 .byte -46 28641 .byte -4 28642 .byte -46 28643 .byte -30 28644 .byte 3 28645 .byte 0 28646 .byte 3 28647 .byte -3 28648 .byte -2 28649 .byte -4 28650 .byte -2 28651 .byte -6 28652 .byte -4 28653 .byte -4 28654 .byte -4 28655 .byte -10 28656 .byte -6 28657 .byte -8 28658 .byte -6 28659 .byte -14 28660 .byte -9 28661 .byte -8 28662 .byte -9 28663 .byte -18 28664 .byte -52 28665 .byte 22 28666 .byte -52 28667 .byte 10 28668 .byte 42 28669 .byte 4 28670 .byte 42 28671 .byte 4 28672 .byte 48 28673 .byte -9 28674 .byte 48 28675 .byte 4 28676 .byte -58 28677 .byte 12 28678 .byte -58 28679 .byte 0 28680 .byte -64 28681 .byte -24 28682 .byte -64 28683 .byte -6 28684 .byte 9 28685 .byte 18 28686 .byte 9 28687 .byte 8 28688 .section .rodata.samsung_14nm_slc_rr,"a",%progbits 28689 .set .LANCHOR147,. + 0 28690 .type samsung_14nm_slc_rr, %object 28691 .size samsung_14nm_slc_rr, 26 28692samsung_14nm_slc_rr: 28693 .byte 0 28694 .byte 10 28695 .byte -10 28696 .byte 20 28697 .byte -20 28698 .byte 30 28699 .byte -30 28700 .byte 40 28701 .byte -40 28702 .byte 50 28703 .byte -50 28704 .byte 60 28705 .byte -60 28706 .byte -70 28707 .byte -80 28708 .byte -90 28709 .byte -100 28710 .byte -110 28711 .byte -120 28712 .byte -9 28713 .byte 70 28714 .byte 80 28715 .byte 90 28716 .byte -125 28717 .byte -115 28718 .byte 100 28719 .section .rodata.samsung_read_retrial.str1.1,"aMS",%progbits,1 28720.LC14: 28721 .ascii "samsung RR %d row=%x,count %d,status=%d\012\000" 28722 .hidden free 28723